+ No longer check for ncurses etc., we use caca-config.
* src/*:
+ Updated to new libcaca API, mainly caca_get_event() and caca_set_color()
calls.
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/ttyvaders/trunk@365 92316355-f0b4-4df1-b90c-862c8a59935f
master
| @@ -12,47 +12,26 @@ AM_CONFIG_HEADER(config.h) | |||||
| AM_PROG_CC_C_O | AM_PROG_CC_C_O | ||||
| AC_PROG_CPP | AC_PROG_CPP | ||||
| AC_PROG_RANLIB | |||||
| dnl AC_PROG_EGREP only exists in autoconf 2.54+, so we use AC_EGREP_CPP right | dnl AC_PROG_EGREP only exists in autoconf 2.54+, so we use AC_EGREP_CPP right | ||||
| dnl now otherwise it might be set in an obscure if statement. | dnl now otherwise it might be set in an obscure if statement. | ||||
| AC_EGREP_CPP(foo,foo) | AC_EGREP_CPP(foo,foo) | ||||
| AC_ARG_ENABLE(slang, | |||||
| [ --enable-slang slang graphics support (default enabled)]) | |||||
| AC_ARG_ENABLE(ncurses, | |||||
| [ --enable-ncurses ncurses graphics support (default disabled)]) | |||||
| AC_ARG_ENABLE(conio, | |||||
| [ --enable-conio DOS conio.h graphics support (default disabled)]) | |||||
| USE_SLANG=false | |||||
| USE_NCURSES=false | |||||
| USE_CONIO=false | |||||
| if test "${enable_conio}" = "yes"; then | |||||
| AC_CHECK_HEADER(conio.h,:,AC_MSG_ERROR([cannot find conio.h header])) | |||||
| AC_MSG_CHECKING(for ScreenUpdate in pc.h) | |||||
| AC_EGREP_HEADER(ScreenUpdate,pc.h,[ | |||||
| AC_MSG_RESULT(yes) | |||||
| AC_DEFINE(SCREENUPDATE_IN_PC_H, 1, | |||||
| Define if <pc.h> defines ScreenUpdate.)],[ | |||||
| AC_MSG_RESULT(no)]) | |||||
| AC_DEFINE(USE_CONIO, 1, Define if the backend driver is conio.h) | |||||
| USE_CONIO=: | |||||
| elif test "${enable_ncurses}" = "yes"; then | |||||
| AC_CHECK_HEADER(ncurses.h,:,AC_MSG_ERROR([cannot find ncurses headers])) | |||||
| AC_CHECK_LIB(ncurses,initscr,:,AC_MSG_ERROR([cannot find ncurses library])) | |||||
| AC_DEFINE(USE_NCURSES, 1, Define if the backend driver is ncurses) | |||||
| USE_NCURSES=: | |||||
| elif test "${enable_slang}" != "no"; then | |||||
| AC_CHECK_HEADER(slang.h,:,AC_MSG_ERROR([cannot find slang headers])) | |||||
| AC_CHECK_LIB(slang,SLkp_init,:,AC_MSG_ERROR([cannot find slang library])) | |||||
| AC_DEFINE(USE_SLANG, 1, Define if the backend driver is slang) | |||||
| USE_SLANG=: | |||||
| AC_MSG_CHECKING(for libcaca support) | |||||
| video_caca=no | |||||
| AC_TRY_COMPILE([ | |||||
| #include <caca.h> | |||||
| ],[ ],[video_caca=yes]) | |||||
| AC_MSG_RESULT($video_caca) | |||||
| if test "$video_caca" = "yes"; then | |||||
| CACA_CFLAGS="${CFLAGS} `caca-config --cflags`" | |||||
| CACA_LIBS="${LIBS} `caca-config --libs`" | |||||
| AC_SUBST(CACA_CFLAGS) | |||||
| AC_SUBST(CACA_LIBS) | |||||
| else | |||||
| AC_MSG_ERROR([cannot find libcaca]) | |||||
| fi | fi | ||||
| AM_CONDITIONAL(USE_SLANG, ${USE_SLANG}) | |||||
| AM_CONDITIONAL(USE_NCURSES, ${USE_NCURSES}) | |||||
| # Optimizations | # Optimizations | ||||
| CFLAGS="${CFLAGS} -g -O2 -fno-strength-reduce -fomit-frame-pointer" | CFLAGS="${CFLAGS} -g -O2 -fno-strength-reduce -fomit-frame-pointer" | ||||
| # Code qui fait des warnings == code de porc == deux baffes dans ta gueule | # Code qui fait des warnings == code de porc == deux baffes dans ta gueule | ||||
| @@ -2,15 +2,6 @@ | |||||
| # Automake targets and declarations for ttyvaders | # Automake targets and declarations for ttyvaders | ||||
| ############################################################################### | ############################################################################### | ||||
| AM_CPPFLAGS = -I$(top_srcdir)/../libcaca/src | |||||
| if USE_SLANG | |||||
| LDFLAGS_slang = -lslang | |||||
| endif | |||||
| if USE_NCURSES | |||||
| LDFLAGS_ncurses = -lncurses | |||||
| endif | |||||
| bin_PROGRAMS = ttyvaders | bin_PROGRAMS = ttyvaders | ||||
| ttyvaders_SOURCES = \ | ttyvaders_SOURCES = \ | ||||
| @@ -29,5 +20,6 @@ ttyvaders_SOURCES = \ | |||||
| tunnel.c \ | tunnel.c \ | ||||
| weapons.c \ | weapons.c \ | ||||
| $(NULL) | $(NULL) | ||||
| ttyvaders_LDADD = ../../libcaca/src/libcaca.a $(LDFLAGS_slang) $(LDFLAGS_ncurses) -lm | |||||
| ttyvaders_CFLAGS = @CACA_CFLAGS@ | |||||
| ttyvaders_LDADD = @CACA_LIBS@ -lm | |||||
| @@ -45,7 +45,7 @@ void draw_box(game *g, box *b) | |||||
| { | { | ||||
| int j, frame; | int j, frame; | ||||
| caca_set_color(CACA_COLOR_YELLOW); | |||||
| caca_set_color(CACA_COLOR_YELLOW, CACA_COLOR_BLACK); | |||||
| /* Draw the thin horizontal line */ | /* Draw the thin horizontal line */ | ||||
| if(b->frame < 8) | if(b->frame < 8) | ||||
| @@ -68,7 +68,7 @@ void draw_box(game *g, box *b) | |||||
| caca_draw_line(b->x + b->w / 2 - 1, b->y - b->h * (frame - 8) / 8, | caca_draw_line(b->x + b->w / 2 - 1, b->y - b->h * (frame - 8) / 8, | ||||
| b->x + b->w / 2 - 1, b->y + b->h * (frame - 8) / 8 - 1, 'X'); | b->x + b->w / 2 - 1, b->y + b->h * (frame - 8) / 8 - 1, 'X'); | ||||
| caca_set_color(CACA_COLOR_BLACK); | |||||
| caca_set_color(CACA_COLOR_BLACK, CACA_COLOR_BLACK); | |||||
| for(j = b->y - b->h * (frame - 8) / 8 + 1; | for(j = b->y - b->h * (frame - 8) / 8 + 1; | ||||
| j < b->y + b->h * (frame - 8) / 8; | j < b->y + b->h * (frame - 8) / 8; | ||||
| @@ -84,7 +84,7 @@ void draw_box(game *g, box *b) | |||||
| } | } | ||||
| /* Draw the text inside the frame */ | /* Draw the text inside the frame */ | ||||
| caca_set_color(CACA_COLOR_YELLOW); | |||||
| caca_set_color(CACA_COLOR_YELLOW, CACA_COLOR_BLACK); | |||||
| /* FIXME: use a font */ | /* FIXME: use a font */ | ||||
| caca_putstr(b->x - b->w / 2 + 12, b->y - b->h / 2 + 2, | caca_putstr(b->x - b->w / 2 + 12, b->y - b->h / 2 + 2, | ||||
| @@ -35,7 +35,8 @@ void ceo_alert(game *g) | |||||
| { | { | ||||
| caca_clear(); | caca_clear(); | ||||
| if(caca_get_key() == '\t') | |||||
| if(caca_get_event(CACA_EVENT_KEY_PRESS) | |||||
| == (CACA_EVENT_KEY_PRESS | '\t')) | |||||
| { | { | ||||
| end = 1; | end = 1; | ||||
| } | } | ||||
| @@ -36,7 +36,7 @@ void intro(void) | |||||
| int frame = 0; | int frame = 0; | ||||
| while(caca_get_key() == 0) | |||||
| while(caca_get_event(CACA_EVENT_KEY_PRESS) == 0) | |||||
| { | { | ||||
| int i, xo, yo, x[5], y[5]; | int i, xo, yo, x[5], y[5]; | ||||
| @@ -47,9 +47,9 @@ void intro(void) | |||||
| xo = caca_get_width() / 2; | xo = caca_get_width() / 2; | ||||
| yo = caca_get_height() / 2; | yo = caca_get_height() / 2; | ||||
| caca_set_color(CACA_COLOR_RED); | |||||
| caca_set_color(CACA_COLOR_RED, CACA_COLOR_BLACK); | |||||
| caca_fill_ellipse(xo, yo, 16, 8, '#'); | caca_fill_ellipse(xo, yo, 16, 8, '#'); | ||||
| caca_set_color(CACA_COLOR_GREEN); | |||||
| caca_set_color(CACA_COLOR_GREEN, CACA_COLOR_BLACK); | |||||
| caca_draw_thin_ellipse(xo, yo, 16, 8); | caca_draw_thin_ellipse(xo, yo, 16, 8); | ||||
| for(i = 0; i < 4; i ++) | for(i = 0; i < 4; i ++) | ||||
| @@ -60,11 +60,11 @@ void intro(void) | |||||
| x[4] = x[0]; | x[4] = x[0]; | ||||
| y[4] = y[0]; | y[4] = y[0]; | ||||
| caca_set_color(CACA_COLOR_BLACK); | |||||
| caca_set_color(CACA_COLOR_BLACK, CACA_COLOR_BLACK); | |||||
| caca_fill_triangle(x[0], y[0], x[1], y[1], x[2], y[2], ' '); | caca_fill_triangle(x[0], y[0], x[1], y[1], x[2], y[2], ' '); | ||||
| caca_fill_triangle(x[0], y[0], x[3], y[3], x[2], y[2], ' '); | caca_fill_triangle(x[0], y[0], x[3], y[3], x[2], y[2], ' '); | ||||
| caca_draw_line(x[0], y[0], x[2], y[2], ' '); | caca_draw_line(x[0], y[0], x[2], y[2], ' '); | ||||
| caca_set_color(CACA_COLOR_GREEN); | |||||
| caca_set_color(CACA_COLOR_GREEN, CACA_COLOR_BLACK); | |||||
| caca_draw_thin_polyline(x, y, 4); | caca_draw_thin_polyline(x, y, 4); | ||||
| caca_draw_sprite(xo, yo, foo_sprite, frame % 5); | caca_draw_sprite(xo, yo, foo_sprite, frame % 5); | ||||
| @@ -98,10 +98,12 @@ static void start_game (game *g) | |||||
| while(!quit) | while(!quit) | ||||
| { | { | ||||
| char key; | |||||
| int event, key; | |||||
| while((key = caca_get_key())) | |||||
| while((event = caca_get_event(CACA_EVENT_KEY_PRESS))) | |||||
| { | { | ||||
| key = event & 0xffffff; | |||||
| switch(key) | switch(key) | ||||
| { | { | ||||
| case 'q': | case 'q': | ||||
| @@ -32,49 +32,49 @@ void draw_status(game *g) | |||||
| static char dashes30[] = "=============================="; | static char dashes30[] = "=============================="; | ||||
| /* Draw life jauge */ | /* Draw life jauge */ | ||||
| caca_set_color(CACA_COLOR_DARKGRAY); | |||||
| caca_set_color(CACA_COLOR_DARKGRAY, CACA_COLOR_BLACK); | |||||
| caca_putstr(4, 1, dots30); | caca_putstr(4, 1, dots30); | ||||
| if(g->p->life > MAX_LIFE * 7 / 10) | if(g->p->life > MAX_LIFE * 7 / 10) | ||||
| { | { | ||||
| caca_set_color(CACA_COLOR_GREEN); | |||||
| caca_set_color(CACA_COLOR_GREEN, CACA_COLOR_BLACK); | |||||
| } | } | ||||
| else if(g->p->life > MAX_LIFE * 3 / 10) | else if(g->p->life > MAX_LIFE * 3 / 10) | ||||
| { | { | ||||
| caca_set_color(CACA_COLOR_YELLOW); | |||||
| caca_set_color(CACA_COLOR_YELLOW, CACA_COLOR_BLACK); | |||||
| } | } | ||||
| else | else | ||||
| { | { | ||||
| caca_set_color(CACA_COLOR_RED); | |||||
| caca_set_color(CACA_COLOR_RED, CACA_COLOR_BLACK); | |||||
| } | } | ||||
| caca_putstr(4, 1, dashes30 + (MAX_LIFE - g->p->life) * 30 / MAX_LIFE); | caca_putstr(4, 1, dashes30 + (MAX_LIFE - g->p->life) * 30 / MAX_LIFE); | ||||
| caca_set_color(CACA_COLOR_WHITE); | |||||
| caca_set_color(CACA_COLOR_WHITE, CACA_COLOR_BLACK); | |||||
| caca_putstr(1, 1, "L |"); | caca_putstr(1, 1, "L |"); | ||||
| caca_putstr(34, 1, "|"); | caca_putstr(34, 1, "|"); | ||||
| /* Draw weapon jauge */ | /* Draw weapon jauge */ | ||||
| caca_set_color(CACA_COLOR_DARKGRAY); | |||||
| caca_set_color(CACA_COLOR_DARKGRAY, CACA_COLOR_BLACK); | |||||
| caca_putstr(42, 1, dots30 + 10); | caca_putstr(42, 1, dots30 + 10); | ||||
| if(g->p->special > MAX_SPECIAL * 9 / 10) | if(g->p->special > MAX_SPECIAL * 9 / 10) | ||||
| { | { | ||||
| caca_set_color(CACA_COLOR_WHITE); | |||||
| caca_set_color(CACA_COLOR_WHITE, CACA_COLOR_BLACK); | |||||
| } | } | ||||
| else if(g->p->special > MAX_SPECIAL * 3 / 10) | else if(g->p->special > MAX_SPECIAL * 3 / 10) | ||||
| { | { | ||||
| caca_set_color(CACA_COLOR_CYAN); | |||||
| caca_set_color(CACA_COLOR_CYAN, CACA_COLOR_BLACK); | |||||
| } | } | ||||
| else | else | ||||
| { | { | ||||
| caca_set_color(CACA_COLOR_BLUE); | |||||
| caca_set_color(CACA_COLOR_BLUE, CACA_COLOR_BLACK); | |||||
| } | } | ||||
| caca_putstr(42, 1, dashes30 + 10 | caca_putstr(42, 1, dashes30 + 10 | ||||
| + (MAX_SPECIAL - g->p->special) * 20 / MAX_SPECIAL); | + (MAX_SPECIAL - g->p->special) * 20 / MAX_SPECIAL); | ||||
| caca_set_color(CACA_COLOR_WHITE); | |||||
| caca_set_color(CACA_COLOR_WHITE, CACA_COLOR_BLACK); | |||||
| caca_putstr(39, 1, "S |"); | caca_putstr(39, 1, "S |"); | ||||
| caca_putstr(62, 1, "|"); | caca_putstr(62, 1, "|"); | ||||
| } | } | ||||
| @@ -55,7 +55,7 @@ void draw_starfield(game *g, starfield *s) | |||||
| { | { | ||||
| if(s[i].x >= 0) | if(s[i].x >= 0) | ||||
| { | { | ||||
| caca_set_color(s[i].c); | |||||
| caca_set_color(s[i].c, CACA_COLOR_BLACK); | |||||
| caca_putchar(s[i].x, s[i].y, s[i].ch); | caca_putchar(s[i].x, s[i].y, s[i].ch); | ||||
| } | } | ||||
| } | } | ||||
| @@ -77,7 +77,7 @@ void draw_tunnel(game *g, tunnel *t) | |||||
| int i, j; | int i, j; | ||||
| char c; | char c; | ||||
| caca_set_color(CACA_COLOR_GREEN); | |||||
| caca_set_color(CACA_COLOR_RED, CACA_COLOR_BLACK); | |||||
| /* Left border */ | /* Left border */ | ||||
| for(i = 0; i < g->h ; i++) | for(i = 0; i < g->h ; i++) | ||||
| @@ -115,7 +115,7 @@ void draw_tunnel(game *g, tunnel *t) | |||||
| caca_putchar(t->right[i] - 1, i, c); | caca_putchar(t->right[i] - 1, i, c); | ||||
| } | } | ||||
| caca_set_color(CACA_COLOR_RED); | |||||
| caca_set_color(CACA_COLOR_LIGHTRED, CACA_COLOR_RED); | |||||
| /* Left concrete */ | /* Left concrete */ | ||||
| for(i = 0; i < g->h ; i++) | for(i = 0; i < g->h ; i++) | ||||
| @@ -56,20 +56,20 @@ void draw_weapons(game *g, weapons *wp) | |||||
| switch(wp->type[i]) | switch(wp->type[i]) | ||||
| { | { | ||||
| case WEAPON_LASER: | case WEAPON_LASER: | ||||
| caca_set_color(CACA_COLOR_WHITE); | |||||
| caca_set_color(CACA_COLOR_WHITE, CACA_COLOR_BLACK); | |||||
| caca_putchar(wp->x[i] >> 4, wp->y[i] >> 4, '|'); | caca_putchar(wp->x[i] >> 4, wp->y[i] >> 4, '|'); | ||||
| caca_set_color(CACA_COLOR_CYAN); | |||||
| caca_set_color(CACA_COLOR_CYAN, CACA_COLOR_BLACK); | |||||
| caca_putchar(wp->x[i] >> 4, (wp->y[i] >> 4) + 1, '|'); | caca_putchar(wp->x[i] >> 4, (wp->y[i] >> 4) + 1, '|'); | ||||
| break; | break; | ||||
| case WEAPON_SEEKER: | case WEAPON_SEEKER: | ||||
| caca_set_color(CACA_COLOR_CYAN); | |||||
| caca_set_color(CACA_COLOR_CYAN, CACA_COLOR_BLACK); | |||||
| caca_putchar(wp->x3[i] >> 4, wp->y3[i] >> 4, '.'); | caca_putchar(wp->x3[i] >> 4, wp->y3[i] >> 4, '.'); | ||||
| caca_putchar(wp->x2[i] >> 4, wp->y2[i] >> 4, 'o'); | caca_putchar(wp->x2[i] >> 4, wp->y2[i] >> 4, 'o'); | ||||
| caca_set_color(CACA_COLOR_WHITE); | |||||
| caca_set_color(CACA_COLOR_WHITE, CACA_COLOR_BLACK); | |||||
| caca_putchar(wp->x[i] >> 4, wp->y[i] >> 4, '@'); | caca_putchar(wp->x[i] >> 4, wp->y[i] >> 4, '@'); | ||||
| break; | break; | ||||
| case WEAPON_BOMB: | case WEAPON_BOMB: | ||||
| caca_set_color(CACA_COLOR_DARKGRAY); | |||||
| caca_set_color(CACA_COLOR_DARKGRAY, CACA_COLOR_BLACK); | |||||
| caca_putchar((wp->x[i] - wp->vx[i]) >> 4, (wp->y[i] - wp->vy[i]) >> 4, '.'); | caca_putchar((wp->x[i] - wp->vx[i]) >> 4, (wp->y[i] - wp->vy[i]) >> 4, '.'); | ||||
| caca_putchar((wp->x3[i] - wp->vx[i]) >> 4, (wp->y3[i] - wp->vy[i]) >> 4, '.'); | caca_putchar((wp->x3[i] - wp->vx[i]) >> 4, (wp->y3[i] - wp->vy[i]) >> 4, '.'); | ||||
| caca_putchar((wp->x2[i] - wp->vx[i]) >> 4, (wp->y2[i] - wp->vy[i]) >> 4, '.'); | caca_putchar((wp->x2[i] - wp->vx[i]) >> 4, (wp->y2[i] - wp->vy[i]) >> 4, '.'); | ||||
| @@ -354,84 +354,84 @@ static void draw_beam(int x, int y, int frame) | |||||
| switch(frame) | switch(frame) | ||||
| { | { | ||||
| case 24: | case 24: | ||||
| caca_set_color(CACA_COLOR_WHITE); | |||||
| caca_set_color(CACA_COLOR_WHITE, CACA_COLOR_BLACK); | |||||
| caca_putstr(x, y-3, "__"); | caca_putstr(x, y-3, "__"); | ||||
| caca_putchar(x-1, y-2, '\''); | caca_putchar(x-1, y-2, '\''); | ||||
| caca_putchar(x+2, y-2, '`'); | caca_putchar(x+2, y-2, '`'); | ||||
| break; | break; | ||||
| case 23: | case 23: | ||||
| caca_set_color(CACA_COLOR_CYAN); | |||||
| caca_set_color(CACA_COLOR_CYAN, CACA_COLOR_BLACK); | |||||
| caca_putstr(x, y-3, "__"); | caca_putstr(x, y-3, "__"); | ||||
| caca_set_color(CACA_COLOR_WHITE); | |||||
| caca_set_color(CACA_COLOR_WHITE, CACA_COLOR_BLACK); | |||||
| caca_putstr(x-2, y-2, "-'"); | caca_putstr(x-2, y-2, "-'"); | ||||
| caca_putstr(x+2, y-2, "`-"); | caca_putstr(x+2, y-2, "`-"); | ||||
| break; | break; | ||||
| case 22: | case 22: | ||||
| caca_set_color(CACA_COLOR_CYAN); | |||||
| caca_set_color(CACA_COLOR_CYAN, CACA_COLOR_BLACK); | |||||
| caca_putstr(x, y-3, "__"); | caca_putstr(x, y-3, "__"); | ||||
| caca_putchar(x-1, y-2, '\''); | caca_putchar(x-1, y-2, '\''); | ||||
| caca_putchar(x+2, y-2, '`'); | caca_putchar(x+2, y-2, '`'); | ||||
| caca_set_color(CACA_COLOR_WHITE); | |||||
| caca_set_color(CACA_COLOR_WHITE, CACA_COLOR_BLACK); | |||||
| caca_putstr(x-3, y-2, ",-"); | caca_putstr(x-3, y-2, ",-"); | ||||
| caca_putstr(x+3, y-2, "-."); | caca_putstr(x+3, y-2, "-."); | ||||
| break; | break; | ||||
| case 21: | case 21: | ||||
| caca_set_color(CACA_COLOR_CYAN); | |||||
| caca_set_color(CACA_COLOR_CYAN, CACA_COLOR_BLACK); | |||||
| caca_putstr(x-1, y-3, "____"); | caca_putstr(x-1, y-3, "____"); | ||||
| caca_putchar(x-2, y-2, '\''); | caca_putchar(x-2, y-2, '\''); | ||||
| caca_putchar(x+3, y-2, '`'); | caca_putchar(x+3, y-2, '`'); | ||||
| caca_set_color(CACA_COLOR_WHITE); | |||||
| caca_set_color(CACA_COLOR_WHITE, CACA_COLOR_BLACK); | |||||
| caca_putstr(x-4, y-2, ",-"); | caca_putstr(x-4, y-2, ",-"); | ||||
| caca_putstr(x+4, y-2, "-."); | caca_putstr(x+4, y-2, "-."); | ||||
| break; | break; | ||||
| case 20: | case 20: | ||||
| caca_set_color(CACA_COLOR_WHITE); | |||||
| caca_set_color(CACA_COLOR_WHITE, CACA_COLOR_BLACK); | |||||
| caca_putstr(x, y-3, "%%"); | caca_putstr(x, y-3, "%%"); | ||||
| caca_putchar(x-4, y-2, ','); | caca_putchar(x-4, y-2, ','); | ||||
| caca_putchar(x+5, y-2, '.'); | caca_putchar(x+5, y-2, '.'); | ||||
| caca_set_color(CACA_COLOR_CYAN); | |||||
| caca_set_color(CACA_COLOR_CYAN, CACA_COLOR_BLACK); | |||||
| caca_putchar(x-1, y-3, ':'); | caca_putchar(x-1, y-3, ':'); | ||||
| caca_putchar(x+2, y-3, ':'); | caca_putchar(x+2, y-3, ':'); | ||||
| caca_putstr(x-3, y-2, "-'"); | caca_putstr(x-3, y-2, "-'"); | ||||
| caca_putstr(x+3, y-2, "`-"); | caca_putstr(x+3, y-2, "`-"); | ||||
| break; | break; | ||||
| case 19: | case 19: | ||||
| caca_set_color(CACA_COLOR_WHITE); | |||||
| caca_set_color(CACA_COLOR_WHITE, CACA_COLOR_BLACK); | |||||
| caca_putstr(x, y-4, "%%"); | caca_putstr(x, y-4, "%%"); | ||||
| caca_putstr(x, y-3, "##"); | caca_putstr(x, y-3, "##"); | ||||
| caca_set_color(CACA_COLOR_CYAN); | |||||
| caca_set_color(CACA_COLOR_CYAN, CACA_COLOR_BLACK); | |||||
| caca_putchar(x-1, y-4, ':'); | caca_putchar(x-1, y-4, ':'); | ||||
| caca_putchar(x+2, y-4, ':'); | caca_putchar(x+2, y-4, ':'); | ||||
| caca_putchar(x-1, y-3, '%'); | caca_putchar(x-1, y-3, '%'); | ||||
| caca_putchar(x+2, y-3, '%'); | caca_putchar(x+2, y-3, '%'); | ||||
| caca_putstr(x-4, y-2, ",-'"); | caca_putstr(x-4, y-2, ",-'"); | ||||
| caca_putstr(x+3, y-2, "`-."); | caca_putstr(x+3, y-2, "`-."); | ||||
| caca_set_color(CACA_COLOR_BLUE); | |||||
| caca_set_color(CACA_COLOR_BLUE, CACA_COLOR_BLACK); | |||||
| caca_putchar(x-2, y-3, ':'); | caca_putchar(x-2, y-3, ':'); | ||||
| caca_putchar(x+3, y-3, ':'); | caca_putchar(x+3, y-3, ':'); | ||||
| break; | break; | ||||
| case 18: | case 18: | ||||
| default: | default: | ||||
| r = (18 - frame) * (18 - frame); | r = (18 - frame) * (18 - frame); | ||||
| caca_set_color(CACA_COLOR_WHITE); | |||||
| caca_set_color(CACA_COLOR_WHITE, CACA_COLOR_BLACK); | |||||
| caca_putstr(x-1, y-5-r, ":%%:"); | caca_putstr(x-1, y-5-r, ":%%:"); | ||||
| caca_putstr(x-1, y-4-r, "%##%"); | caca_putstr(x-1, y-4-r, "%##%"); | ||||
| caca_set_color(CACA_COLOR_CYAN); | |||||
| caca_set_color(CACA_COLOR_CYAN, CACA_COLOR_BLACK); | |||||
| caca_putchar(x-2, y-4-r, ':'); | caca_putchar(x-2, y-4-r, ':'); | ||||
| caca_putchar(x+3, y-4-r, ':'); | caca_putchar(x+3, y-4-r, ':'); | ||||
| caca_putchar(x-2, y-2, '\''); | caca_putchar(x-2, y-2, '\''); | ||||
| caca_putchar(x+3, y-2, '`'); | caca_putchar(x+3, y-2, '`'); | ||||
| caca_set_color(CACA_COLOR_BLUE); | |||||
| caca_set_color(CACA_COLOR_BLUE, CACA_COLOR_BLACK); | |||||
| caca_putchar(x-3, y-2, ':'); | caca_putchar(x-3, y-2, ':'); | ||||
| caca_putchar(x+4, y-2, ':'); | caca_putchar(x+4, y-2, ':'); | ||||
| for(i = 0; i <= r; i++) | for(i = 0; i <= r; i++) | ||||
| { | { | ||||
| caca_set_color(CACA_COLOR_WHITE); | |||||
| caca_set_color(CACA_COLOR_WHITE, CACA_COLOR_BLACK); | |||||
| caca_putstr(x-1, y-3-i, ((i+frame) % 5) ? "####" : "%%%%"); | caca_putstr(x-1, y-3-i, ((i+frame) % 5) ? "####" : "%%%%"); | ||||
| caca_set_color(CACA_COLOR_CYAN); | |||||
| caca_set_color(CACA_COLOR_CYAN, CACA_COLOR_BLACK); | |||||
| caca_putchar(x-2, y-3-i, '%'); | caca_putchar(x-2, y-3-i, '%'); | ||||
| caca_putchar(x+3, y-3-i, '%'); | caca_putchar(x+3, y-3-i, '%'); | ||||
| caca_set_color(CACA_COLOR_BLUE); | |||||
| caca_set_color(CACA_COLOR_BLUE, CACA_COLOR_BLACK); | |||||
| caca_putchar(x-3, y-3-i, ':'); | caca_putchar(x-3, y-3-i, ':'); | ||||
| caca_putchar(x+4, y-3-i, ':'); | caca_putchar(x+4, y-3-i, ':'); | ||||
| } | } | ||||
| @@ -444,16 +444,20 @@ static void draw_nuke(int x, int y, int frame) | |||||
| int r = (29 - frame) * (29 - frame) / 8; | int r = (29 - frame) * (29 - frame) / 8; | ||||
| /* Lots of duplicate pixels, but we don't care */ | /* Lots of duplicate pixels, but we don't care */ | ||||
| caca_set_color(CACA_COLOR_BLUE); | |||||
| caca_set_color(CACA_COLOR_BLUE, CACA_COLOR_BLACK); | |||||
| caca_draw_ellipse(x, y, r, r / 2, ':'); | caca_draw_ellipse(x, y, r, r / 2, ':'); | ||||
| caca_draw_ellipse(x, y, r + 1, r / 2, ':'); | |||||
| caca_draw_ellipse(x, y, r + 2, r / 2, ':'); | |||||
| caca_set_color(CACA_COLOR_CYAN); | |||||
| caca_draw_ellipse(x, y, r + 2, r / 2 + 1, '%'); | |||||
| caca_draw_ellipse(x, y, r + 3, r / 2 + 1, '%'); | |||||
| caca_set_color(CACA_COLOR_WHITE); | |||||
| caca_set_color(CACA_COLOR_LIGHTBLUE, CACA_COLOR_BLUE); | |||||
| caca_draw_ellipse(x, y, r + 1, r / 2, '#'); | |||||
| caca_set_color(CACA_COLOR_BLUE, CACA_COLOR_LIGHTBLUE); | |||||
| caca_draw_ellipse(x, y, r + 2, r / 2, '#'); | |||||
| caca_set_color(CACA_COLOR_CYAN, CACA_COLOR_LIGHTBLUE); | |||||
| caca_draw_ellipse(x, y, r + 2, r / 2 + 1, '#'); | |||||
| caca_set_color(CACA_COLOR_LIGHTBLUE, CACA_COLOR_CYAN); | |||||
| caca_draw_ellipse(x, y, r + 3, r / 2 + 1, '#'); | |||||
| caca_set_color(CACA_COLOR_WHITE, CACA_COLOR_CYAN); | |||||
| caca_draw_ellipse(x, y, r + 3, r / 2 + 2, '#'); | caca_draw_ellipse(x, y, r + 3, r / 2 + 2, '#'); | ||||
| caca_set_color(CACA_COLOR_CYAN, CACA_COLOR_WHITE); | |||||
| caca_draw_ellipse(x, y, r + 4, r / 2 + 2, '#'); | caca_draw_ellipse(x, y, r + 4, r / 2 + 2, '#'); | ||||
| caca_draw_ellipse(x, y, r + 4, r / 2 + 3, '#'); | |||||
| caca_draw_ellipse(x, y, r + 4, r / 2 + 3, ' '); | |||||
| } | } | ||||