Sat Nov 13 21:03:02 GMT 1999
(gilbertt) Changes to : E-ScreenShoot.[ch] clock.[ch] Renamed "Rotator" to "Mesh", and added new cloak-animation, "Funky Mesh" I was bored. Ok? SVN revision: 1295
This commit is contained in:
parent
649f340477
commit
6a6e15730b
11
ChangeLog
11
ChangeLog
|
@ -537,3 +537,14 @@ Sat Nov 13 00:34:12 GMT 1999
|
|||
Thanks to code from Steve Brunton <brunton@dweeb.turner.com>, E-Mixer should
|
||||
now support IRIX. Please test this for me you funny hardware people you ;-)
|
||||
|
||||
-------------------------------------------------------------------------------
|
||||
|
||||
Sat Nov 13 21:03:02 GMT 1999
|
||||
(gilbertt)
|
||||
|
||||
Changes to : E-ScreenShoot.[ch] clock.[ch]
|
||||
|
||||
Renamed "Rotator" to "Mesh", and added new cloak-animation, "Funky Mesh"
|
||||
|
||||
I was bored. Ok?
|
||||
|
||||
|
|
|
@ -35,7 +35,7 @@ choose_random_cloak(void *data)
|
|||
|
||||
do
|
||||
{
|
||||
opt.cloak_anim = (int) (14 * ((float) rand()) / (RAND_MAX + 1.0)) + 1;
|
||||
opt.cloak_anim = (int) (15 * ((float) rand()) / (RAND_MAX + 1.0)) + 1;
|
||||
}
|
||||
while (opt.cloak_anim == last_anim); /* Don't pick the same one twice in a row. */
|
||||
last_anim = opt.cloak_anim;
|
||||
|
@ -64,7 +64,7 @@ save_config (void)
|
|||
Epplet_modify_config ("DO_CLOAK", buf);
|
||||
if (opt.rand_cloak)
|
||||
{
|
||||
strcpy (buf, "15");
|
||||
strcpy (buf, "16");
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -95,7 +95,7 @@ load_config (void)
|
|||
opt.do_cloak = atoi (Epplet_query_config_def ("DO_CLOAK", "1"));
|
||||
opt.beep = atoi (Epplet_query_config_def ("BEEP", "1"));
|
||||
opt.cloak_anim = atoi (Epplet_query_config_def ("CLOAK_ANIM", "8"));
|
||||
if (opt.cloak_anim == 15)
|
||||
if (opt.cloak_anim == 16)
|
||||
{
|
||||
opt.rand_cloak = 1;
|
||||
choose_random_cloak(NULL);
|
||||
|
@ -242,6 +242,12 @@ cloak_draw (void *data)
|
|||
Epplet_timer (cloak_draw, NULL, opt.draw_interval, "DRAW_TIMER");
|
||||
break;
|
||||
}
|
||||
case 15:
|
||||
{
|
||||
draw_funky_rotator ();
|
||||
Epplet_timer (cloak_draw, NULL, opt.draw_interval, "DRAW_TIMER");
|
||||
break;
|
||||
}
|
||||
default:
|
||||
{
|
||||
blank_buf ();
|
||||
|
@ -278,7 +284,7 @@ cb_cloak_anim (void *data)
|
|||
cb_in (NULL, 0);
|
||||
opt.do_cloak = 1;
|
||||
opt.cloak_anim = *((int *) data);
|
||||
if (opt.cloak_anim == 15)
|
||||
if (opt.cloak_anim == 16)
|
||||
{
|
||||
opt.rand_cloak = 1;
|
||||
choose_random_cloak(NULL);
|
||||
|
@ -476,8 +482,10 @@ create_epplet_layout (void)
|
|||
(void *) (&(cloak_anims[6])));
|
||||
Epplet_add_popup_entry (p, "AA Starfield", NULL, cb_cloak_anim,
|
||||
(void *) (&(cloak_anims[7])));
|
||||
Epplet_add_popup_entry (p, "Rotator", NULL, cb_cloak_anim,
|
||||
Epplet_add_popup_entry (p, "Mesh", NULL, cb_cloak_anim,
|
||||
(void *) (&(cloak_anims[8])));
|
||||
Epplet_add_popup_entry (p, "Funky Mesh", NULL, cb_cloak_anim,
|
||||
(void *) (&(cloak_anims[15])));
|
||||
Epplet_add_popup_entry (p, "Scanner", NULL, cb_cloak_anim,
|
||||
(void *) (&(cloak_anims[9])));
|
||||
Epplet_add_popup_entry (p, "ColorShift", NULL, cb_cloak_anim,
|
||||
|
@ -491,7 +499,7 @@ create_epplet_layout (void)
|
|||
Epplet_add_popup_entry (p, "SineWave", NULL, cb_cloak_anim,
|
||||
(void *) (&(cloak_anims[14])));
|
||||
Epplet_add_popup_entry (p, "Random", NULL, cb_cloak_anim,
|
||||
(void *) (&(cloak_anims[15])));
|
||||
(void *) (&(cloak_anims[16])));
|
||||
|
||||
col_p = Epplet_create_popup ();
|
||||
Epplet_add_popup_entry (col_p, "Flame Colors", NULL, NULL, NULL);
|
||||
|
|
162
epplets/cloak.c
162
epplets/cloak.c
|
@ -26,6 +26,8 @@ static void aa_pixel (double wx, double wy, unsigned char c,
|
|||
static void color_buf (unsigned char rr, unsigned char gg, unsigned char bb);
|
||||
static void fade_buf (int percent);
|
||||
static void scroll_buf (void);
|
||||
static void
|
||||
get_warpedcolor (unsigned char *rrr, unsigned char *ggg, unsigned char *bbb);
|
||||
|
||||
/* Raster's flame colors */
|
||||
/* Look, even US spelling of colours ;-) */
|
||||
|
@ -524,6 +526,107 @@ draw_rotator (void)
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
draw_funky_rotator (void)
|
||||
{
|
||||
int xx = 19;
|
||||
int yy = 19;
|
||||
static int setup = 0;
|
||||
double theta1inc = 0.10;
|
||||
double theta2inc = 0.12;
|
||||
double theta3inc = 0.06;
|
||||
static double theta1 = 0.00;
|
||||
static double theta2 = 0.00;
|
||||
static double theta3 = 0.00;
|
||||
unsigned char rr;
|
||||
unsigned char gg;
|
||||
unsigned char bb;
|
||||
static double zoom = 29.0;
|
||||
static double d_zoom = 0.4;
|
||||
int i;
|
||||
double tx, ty;
|
||||
double xcopy, ycopy, zcopy;
|
||||
int from[84] =
|
||||
{ 0, 1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 14, 15, 16, 17, 18, 19, 21, 22,
|
||||
23, 24, 25, 26, 28, 29, 30, 31, 32, 33, 35, 36, 37, 38, 39, 40, 42, 43,
|
||||
44, 45, 46, 47, 0, 7, 14, 21, 28, 35, 1, 8, 15, 22, 29, 36, 2, 9, 16,
|
||||
23, 30, 37, 3, 10, 17, 24, 31, 38, 4, 11, 18, 25, 32, 39, 5, 12, 19, 26,
|
||||
33, 40, 6, 13, 20, 27, 34, 41
|
||||
};
|
||||
int to[84] =
|
||||
{ 1, 2, 3, 4, 5, 6, 8, 9, 10, 11, 12, 13, 15, 16, 17, 18, 19, 20, 22, 23,
|
||||
24, 25, 26, 27, 29, 30, 31, 32, 33, 34, 36, 37, 38, 39, 40, 41, 43, 44,
|
||||
45, 46, 47, 48, 7, 14, 21, 28, 35, 42, 8, 15, 22, 29, 36, 43, 9, 16, 23,
|
||||
30, 37, 44, 10, 17, 24, 31, 38, 45, 11, 18, 25, 32, 39, 46, 12, 19, 26,
|
||||
33, 40, 47, 13, 20, 27, 34, 41, 48
|
||||
};
|
||||
|
||||
if (!setup)
|
||||
{
|
||||
for (i = 0; i < 49; i++)
|
||||
{
|
||||
x[i] = 0;
|
||||
y[i] = 0;
|
||||
z[i] = 0;
|
||||
|
||||
ox[i] = ((i % 7) - 3) * 75;
|
||||
oy[i] = ((i / 7) - 3) * 75;
|
||||
tx = (i % 7) - 3;
|
||||
ty = (i / 7) - 3;
|
||||
oz[i] = 50 - (-9 * tx * tx + 9 * ty * ty);
|
||||
}
|
||||
setup = 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
zoom += d_zoom;
|
||||
if (zoom > 60)
|
||||
d_zoom = 0 - d_zoom;
|
||||
if (zoom < 15)
|
||||
d_zoom = 0 - d_zoom;
|
||||
}
|
||||
|
||||
theta1 += theta1inc;
|
||||
theta2 += theta2inc;
|
||||
theta3 += theta3inc;
|
||||
|
||||
get_warpedcolor (&rr, &gg, &bb);
|
||||
|
||||
blank_buf ();
|
||||
|
||||
for (i = 0; i < 49; i++)
|
||||
{
|
||||
x[i] = ox[i];
|
||||
y[i] = oy[i];
|
||||
z[i] = oz[i];
|
||||
|
||||
xcopy = x[i];
|
||||
x[i] = (x[i] * cos (theta1) - y[i] * sin (theta1));
|
||||
y[i] = (xcopy * sin (theta1) + y[i] * cos (theta1));
|
||||
|
||||
ycopy = y[i];
|
||||
y[i] = (y[i] * cos (theta2) - z[i] * sin (theta2));
|
||||
z[i] = (ycopy * sin (theta2) + z[i] * cos (theta2));
|
||||
|
||||
zcopy = z[i];
|
||||
z[i] = (z[i] * cos (theta3) - x[i] * sin (theta3));
|
||||
x[i] = (zcopy * sin (theta3) + x[i] * cos (theta3));
|
||||
|
||||
/* add perspective */
|
||||
x[i] = (zoom * x[i] / (550 - z[i]));
|
||||
y[i] = (zoom * y[i] / (550 - z[i]));
|
||||
}
|
||||
|
||||
for (i = 0; i < 84; i++)
|
||||
{
|
||||
aa_line (xx + x[from[i]], yy + y[from[i]],
|
||||
xx + x[to[i]], yy + y[to[i]], (unsigned char) 255, rr, gg, bb);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Can I fit a starfield into a 40x40 window? */
|
||||
/* Gotta be worth a try! */
|
||||
#define NUM_STARS 100
|
||||
|
@ -695,6 +798,65 @@ draw_colorwarp (void)
|
|||
color_buf (rr, gg, bb);
|
||||
}
|
||||
|
||||
void
|
||||
get_warpedcolor (unsigned char *rrr, unsigned char *ggg, unsigned char *bbb)
|
||||
{
|
||||
static int setup = 0;
|
||||
static int rr = 0;
|
||||
static int gg = 0;
|
||||
static int bb = 0;
|
||||
static int d_rr = 2;
|
||||
static int d_gg = -3;
|
||||
static int d_bb = 1;
|
||||
|
||||
if (!setup)
|
||||
{
|
||||
/* setup */
|
||||
rr = rand () % 255;
|
||||
gg = rand () % 255;
|
||||
bb = rand () % 255;
|
||||
setup = 1;
|
||||
}
|
||||
|
||||
rr += d_rr;
|
||||
gg += d_gg;
|
||||
bb += d_bb;
|
||||
|
||||
if (rr <= 0)
|
||||
{
|
||||
d_rr = -d_rr;
|
||||
rr = 0;
|
||||
}
|
||||
if (rr >= 255)
|
||||
{
|
||||
d_rr = -d_rr;
|
||||
rr = 255;
|
||||
}
|
||||
if (gg <= 0)
|
||||
{
|
||||
d_gg = -d_gg;
|
||||
gg = 0;
|
||||
}
|
||||
if (gg >= 255)
|
||||
{
|
||||
d_gg = -d_gg;
|
||||
gg = 255;
|
||||
}
|
||||
if (bb <= 0)
|
||||
{
|
||||
d_bb = -d_bb;
|
||||
bb = 0;
|
||||
}
|
||||
if (bb >= 255)
|
||||
{
|
||||
d_bb = -d_bb;
|
||||
bb = 255;
|
||||
}
|
||||
*rrr = rr;
|
||||
*ggg = gg;
|
||||
*bbb = bb;
|
||||
}
|
||||
|
||||
|
||||
/* Bouncing ball */
|
||||
void
|
||||
|
|
|
@ -21,3 +21,5 @@ void draw_ball(void);
|
|||
void draw_atoms(void);
|
||||
void draw_text(void);
|
||||
void draw_sine(void);
|
||||
void
|
||||
draw_funky_rotator (void);
|
||||
|
|
Loading…
Reference in New Issue