浏览代码

* configure.ac:

+ 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
sam 22 年前
父节点
当前提交
7dde414836
共有 10 个文件被更改,包括 77 次插入99 次删除
  1. +13
    -34
      configure.ac
  2. +2
    -10
      src/Makefile.am
  3. +3
    -3
      src/box.c
  4. +2
    -1
      src/ceo.c
  5. +5
    -5
      src/intro.c
  6. +4
    -2
      src/main.c
  7. +10
    -10
      src/overlay.c
  8. +1
    -1
      src/starfield.c
  9. +2
    -2
      src/tunnel.c
  10. +35
    -31
      src/weapons.c

+ 13
- 34
configure.ac 查看文件

@@ -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
- 10
src/Makefile.am 查看文件

@@ -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



+ 3
- 3
src/box.c 查看文件

@@ -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,


+ 2
- 1
src/ceo.c 查看文件

@@ -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;
} }


+ 5
- 5
src/intro.c 查看文件

@@ -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);


+ 4
- 2
src/main.c 查看文件

@@ -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':


+ 10
- 10
src/overlay.c 查看文件

@@ -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, "|");
} }


+ 1
- 1
src/starfield.c 查看文件

@@ -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);
} }
} }


+ 2
- 2
src/tunnel.c 查看文件

@@ -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++)


+ 35
- 31
src/weapons.c 查看文件

@@ -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, ' ');
} }



正在加载...
取消
保存