| @@ -40,6 +40,7 @@ | |||
| static int XSIZ, YSIZ; | |||
| static struct caca_bitmap *caca_bitmap; | |||
| static char *bitmap; | |||
| static int pause = 0; | |||
| #else | |||
| static aa_context *context; | |||
| static aa_renderparams *params; | |||
| @@ -193,6 +194,9 @@ drawfire (void) | |||
| register unsigned char *p; | |||
| #ifndef LIBCACA | |||
| char *bitmap = aa_image (context); | |||
| #else | |||
| if(pause) | |||
| goto paused; | |||
| #endif | |||
| height++; | |||
| @@ -216,6 +220,7 @@ drawfire (void) | |||
| i = 0; | |||
| firemain (); | |||
| #ifdef LIBCACA | |||
| paused: | |||
| caca_draw_bitmap(0, 0, caca_get_width() - 1, caca_get_height() - 1, | |||
| caca_bitmap, bitmap); | |||
| caca_refresh(); | |||
| @@ -230,14 +235,24 @@ drawfire (void) | |||
| static void | |||
| game (void) | |||
| { | |||
| #ifndef LIBCACA | |||
| int event; | |||
| #endif | |||
| gentable (); | |||
| #ifdef LIBCACA | |||
| while (!(event = caca_get_event(CACA_EVENT_KEY_PRESS))) | |||
| for(;;) | |||
| #else | |||
| while (!(event = aa_getevent (context, 0)) || event == AA_RESIZE) | |||
| #endif | |||
| { | |||
| #ifdef LIBCACA | |||
| switch (caca_get_event(CACA_EVENT_KEY_PRESS)) | |||
| { | |||
| case CACA_EVENT_KEY_PRESS | CACA_KEY_ESCAPE: return; | |||
| case CACA_EVENT_KEY_PRESS | ' ': pause = !pause; | |||
| } | |||
| #endif | |||
| drawfire (); | |||
| } | |||
| } | |||
| @@ -57,7 +57,7 @@ int main(int argc, char **argv) | |||
| unsigned int x[METABALLS], y[METABALLS]; | |||
| struct caca_bitmap *caca_bitmap; | |||
| float i = 10.0, j = 17.0, k = 11.0; | |||
| int p, frame = 0; | |||
| int p, frame = 0, pause = 0; | |||
| if(caca_init()) | |||
| return 1; | |||
| @@ -86,8 +86,17 @@ int main(int argc, char **argv) | |||
| } | |||
| /* Go ! */ | |||
| while(!caca_get_event(CACA_EVENT_KEY_PRESS)) | |||
| for(;;) | |||
| { | |||
| switch(caca_get_event(CACA_EVENT_KEY_PRESS)) | |||
| { | |||
| case CACA_EVENT_KEY_PRESS | CACA_KEY_ESCAPE: goto end; | |||
| case CACA_EVENT_KEY_PRESS | ' ': pause = !pause; | |||
| } | |||
| if(pause) | |||
| goto paused; | |||
| frame++; | |||
| /* Crop the palette */ | |||
| @@ -134,6 +143,7 @@ int main(int argc, char **argv) | |||
| for(p = 0; p < METABALLS; p++) | |||
| draw_ball(x[p], y[p]); | |||
| paused: | |||
| /* Draw our virtual buffer to screen, letting libcaca resize it */ | |||
| caca_draw_bitmap(0, 0, caca_get_width() - 1, caca_get_height() - 1, | |||
| caca_bitmap, pixels + (METASIZE / 2) * (1 + XSIZ)); | |||
| @@ -141,6 +151,8 @@ int main(int argc, char **argv) | |||
| } | |||
| /* End, bye folks */ | |||
| end: | |||
| caca_free_bitmap(caca_bitmap); | |||
| caca_end(); | |||
| return 0; | |||
| @@ -46,7 +46,7 @@ int main (int argc, char **argv) | |||
| { | |||
| int red[256], green[256], blue[256], alpha[256]; | |||
| struct caca_bitmap *bitmap; | |||
| int i, x, y, frame; | |||
| int i, x, y, frame = 0, pause = 0; | |||
| if(caca_init() < 0) | |||
| return 1; | |||
| @@ -68,8 +68,17 @@ int main (int argc, char **argv) | |||
| bitmap = caca_create_bitmap(8, XSIZ, YSIZ, XSIZ, 0, 0, 0, 0); | |||
| /* Main loop */ | |||
| for(frame = 0; !caca_get_event(CACA_EVENT_KEY_PRESS); frame++) | |||
| for(;;) | |||
| { | |||
| switch(caca_get_event(CACA_EVENT_KEY_PRESS)) | |||
| { | |||
| case CACA_EVENT_KEY_PRESS | CACA_KEY_ESCAPE: goto end; | |||
| case CACA_EVENT_KEY_PRESS | ' ': pause = !pause; | |||
| } | |||
| if(pause) | |||
| goto paused; | |||
| memset(screen, 0, XSIZ * YSIZ); | |||
| /* Set the palette */ | |||
| @@ -92,11 +101,15 @@ int main (int argc, char **argv) | |||
| y = sin(0.09 * frame + 1.0) * 64.0 + (YSIZ / 2); | |||
| put_disc(x, y); | |||
| frame++; | |||
| paused: | |||
| caca_draw_bitmap(0, 0, caca_get_width() - 1, caca_get_height() - 1, | |||
| bitmap, screen); | |||
| caca_refresh(); | |||
| } | |||
| end: | |||
| caca_free_bitmap(bitmap); | |||
| caca_end(); | |||
| @@ -89,6 +89,9 @@ int main (int argc, char **argv) | |||
| case CACA_EVENT_KEY_PRESS | ' ': pause = !pause; | |||
| } | |||
| if(pause) | |||
| goto paused; | |||
| for(i = 0 ; i < 256; i++) | |||
| { | |||
| double z = ((double)i) / 256 * 6 * M_PI; | |||
| @@ -101,18 +104,16 @@ int main (int argc, char **argv) | |||
| /* Set the palette */ | |||
| caca_set_bitmap_palette(bitmap, red, green, blue, alpha); | |||
| if(!pause) | |||
| { | |||
| do_plasma(screen, | |||
| (1.0 + sin(((double)frame) * R[0])) / 2, | |||
| (1.0 + sin(((double)frame) * R[1])) / 2, | |||
| (1.0 + sin(((double)frame) * R[2])) / 2, | |||
| (1.0 + sin(((double)frame) * R[3])) / 2, | |||
| (1.0 + sin(((double)frame) * R[4])) / 2, | |||
| (1.0 + sin(((double)frame) * R[5])) / 2); | |||
| frame++; | |||
| } | |||
| do_plasma(screen, | |||
| (1.0 + sin(((double)frame) * R[0])) / 2, | |||
| (1.0 + sin(((double)frame) * R[1])) / 2, | |||
| (1.0 + sin(((double)frame) * R[2])) / 2, | |||
| (1.0 + sin(((double)frame) * R[3])) / 2, | |||
| (1.0 + sin(((double)frame) * R[4])) / 2, | |||
| (1.0 + sin(((double)frame) * R[5])) / 2); | |||
| frame++; | |||
| paused: | |||
| caca_draw_bitmap(0, 0, caca_get_width() - 1, caca_get_height() - 1, | |||
| bitmap, screen); | |||
| caca_refresh(); | |||