Changeset 88 for ttyvaders


Ignore:
Timestamp:
Nov 9, 2003, 2:16:19 PM (16 years ago)
Author:
Sam Hocevar
Message:
  • Coding style everywhere.
Location:
ttyvaders/trunk/src
Files:
14 edited

Legend:

Unmodified
Added
Removed
  • ttyvaders/trunk/src/aliens.c

    r80 r88  
    2525#include "common.h"
    2626
    27 static void draw_alien_foo( game *g, int x, int y, int frame );
    28 static void draw_alien_bar( game *g, int x, int y, int frame );
    29 static void draw_alien_baz( game *g, int x, int y, int frame );
    30 
    31 void init_aliens( game *g, aliens *al )
    32 {
    33     int i;
    34 
    35     for( i = 0; i < ALIENS; i++ )
     27static void draw_alien_foo(game *, int, int, int);
     28static void draw_alien_bar(game *, int, int, int);
     29static void draw_alien_baz(game *, int, int, int);
     30
     31void init_aliens(game *g, aliens *al)
     32{
     33    int i;
     34
     35    for(i = 0; i < ALIENS; i++)
    3636    {
    3737        al->type[i] = ALIEN_NONE;
     
    3939}
    4040
    41 void draw_aliens( game *g, aliens *al )
    42 {
    43     int i;
    44 
    45     for( i = 0; i < ALIENS; i++ )
    46     {
    47         switch( al->type[i] )
     41void draw_aliens(game *g, aliens *al)
     42{
     43    int i;
     44
     45    for(i = 0; i < ALIENS; i++)
     46    {
     47        switch(al->type[i])
    4848        {
    4949            case ALIEN_FOO:
    50                 draw_alien_foo( g, al->x[i], al->y[i], al->img[i] % 8 );
     50                draw_alien_foo(g, al->x[i], al->y[i], al->img[i] % 8);
    5151                break;
    5252            case ALIEN_BAR:
    53                 draw_alien_bar( g, al->x[i], al->y[i], al->img[i] % 2 );
     53                draw_alien_bar(g, al->x[i], al->y[i], al->img[i] % 2);
    5454                break;
    5555            case ALIEN_BAZ:
    56                 draw_alien_baz( g, al->x[i], al->y[i], al->img[i] % 6 );
     56                draw_alien_baz(g, al->x[i], al->y[i], al->img[i] % 6);
    5757                break;
    5858            case ALIEN_NONE:
     
    6262}
    6363
    64 void update_aliens( game *g, aliens *al )
    65 {
    66     int i;
    67 
    68     for( i = 0; i < ALIENS; i++ )
     64void update_aliens(game *g, aliens *al)
     65{
     66    int i;
     67
     68    for(i = 0; i < ALIENS; i++)
    6969    {
    7070        /* If alien died, make it explode */
    71         if( al->type[i] != ALIEN_NONE && al->life[i] < 0 )
    72         {
    73             add_explosion( g, g->ex, al->x[i], al->y[i], 0, 0, EXPLOSION_MEDIUM );
     71        if(al->type[i] != ALIEN_NONE && al->life[i] < 0)
     72        {
     73            add_explosion(g, g->ex, al->x[i], al->y[i], 0, 0, EXPLOSION_MEDIUM);
    7474            al->type[i] = ALIEN_NONE;
    75             add_bonus( g, g->bo, al->x[i], al->y[i], GET_RAND(0,5) ? BONUS_GREEN : BONUS_LIFE );
     75            add_bonus(g, g->bo, al->x[i], al->y[i], GET_RAND(0,5) ? BONUS_GREEN : BONUS_LIFE);
    7676        }
    7777
    7878        /* Update coordinates */
    79         switch( al->type[i] )
     79        switch(al->type[i])
    8080        {
    8181            case ALIEN_FOO:
     
    8787
    8888                /* Check bounds */
    89                 if( al->y[i] < 0 ) al->y[i] = 0;
    90                 if( al->y[i] > g->w - 1 ) al->y[i] = g->w - 1;
     89                if(al->y[i] < 0 ) al->y[i] = 0;
     90                if(al->y[i] > g->w - 1 ) al->y[i] = g->w - 1;
    9191                break;
    9292            case ALIEN_NONE:
     
    9696}
    9797
    98 void add_alien( game *g, aliens *al, int x, int y, int type )
    99 {
    100     int i;
    101 
    102     for( i = 0; i < ALIENS; i++ )
    103     {
    104         if( al->type[i] == ALIEN_NONE )
     98void add_alien(game *g, aliens *al, int x, int y, int type)
     99{
     100    int i;
     101
     102    for(i = 0; i < ALIENS; i++)
     103    {
     104        if(al->type[i] == ALIEN_NONE)
    105105        {
    106106            al->type[i] = type;
     
    109109            al->img[i] = 0;
    110110
    111             switch( al->type[i] )
     111            switch(al->type[i])
    112112            {
    113113                case ALIEN_FOO:
     
    129129}
    130130
    131 static void draw_alien_bar( game *g, int x, int y, int frame )
    132 {
    133     switch( frame )
     131static void draw_alien_bar(game *g, int x, int y, int frame)
     132{
     133    switch(frame)
    134134    {
    135135    case 0:
    136         ee_color( EE_MAGENTA );
    137         ee_goto( x, y );
    138         ee_putstr( ",---." );
    139         ee_goto( x, y+1 );
    140         ee_putchar( '\\' );
    141         ee_color( EE_WHITE );
    142         ee_putstr( "o O" );
    143         ee_color( EE_MAGENTA );
    144         ee_putchar( '/' );
    145         ee_goto( x, y+2 );
    146         ee_putstr( "^^^^^" );
     136        ee_color(EE_MAGENTA);
     137        ee_goto(x, y);
     138        ee_putstr(",---.");
     139        ee_goto(x, y+1);
     140        ee_putchar('\\');
     141        ee_color(EE_WHITE);
     142        ee_putstr("o O");
     143        ee_color(EE_MAGENTA);
     144        ee_putchar('/');
     145        ee_goto(x, y+2);
     146        ee_putstr("^^^^^");
    147147        break;
    148148    case 1:
    149         ee_color( EE_MAGENTA );
    150         ee_goto( x, y );
    151         ee_putstr( ",---." );
    152         ee_goto( x, y+1 );
    153         ee_putchar( '\\' );
    154         ee_color( EE_WHITE );
    155         ee_putstr( "O o" );
    156         ee_color( EE_MAGENTA );
    157         ee_putchar( '/' );
    158         ee_goto( x, y+2 );
    159         ee_putstr( "^^^^^" );
    160         break;
    161     }
    162 }
    163 
    164 static void draw_alien_baz( game *g, int x, int y, int frame )
    165 {
    166     ee_color( EE_GREEN );
    167     ee_goto( x, y-1 );
    168     ee_putstr( "__" );
    169 
    170     ee_goto( x-1, y );
    171     ee_putchar( '/' );
    172     ee_goto( x+2, y );
    173     ee_putchar( '\\' );
    174 
    175     switch( frame )
     149        ee_color(EE_MAGENTA);
     150        ee_goto(x, y);
     151        ee_putstr(",---.");
     152        ee_goto(x, y+1);
     153        ee_putchar('\\');
     154        ee_color(EE_WHITE);
     155        ee_putstr("O o");
     156        ee_color(EE_MAGENTA);
     157        ee_putchar('/');
     158        ee_goto(x, y+2);
     159        ee_putstr("^^^^^");
     160        break;
     161    }
     162}
     163
     164static void draw_alien_baz(game *g, int x, int y, int frame)
     165{
     166    ee_color(EE_GREEN);
     167    ee_goto(x, y-1);
     168    ee_putstr("__");
     169
     170    ee_goto(x-1, y);
     171    ee_putchar('/');
     172    ee_goto(x+2, y);
     173    ee_putchar('\\');
     174
     175    switch(frame)
    176176    {
    177177    case 3:
    178         ee_goto( x-2, y+1 );
    179         ee_putstr( "//'`\\\\" );
     178        ee_goto(x-2, y+1);
     179        ee_putstr("//'`\\\\");
    180180        break;
    181181    case 4:
    182182    case 2:
    183         ee_goto( x-2, y+1 );
    184         ee_putstr( "/(~~)\\" );
     183        ee_goto(x-2, y+1);
     184        ee_putstr("/(~~)\\");
    185185        break;
    186186    case 5:
    187187    case 1:
    188         ee_goto( x-2, y+1 );
    189         ee_putstr( "((^^))" );
     188        ee_goto(x-2, y+1);
     189        ee_putstr("((^^))");
    190190        break;
    191191    case 0:
    192         ee_goto( x-1, y+1 );
    193         ee_putstr( "\\\\//" );
    194         break;
    195     }
    196 
    197     ee_color( EE_WHITE );
    198     ee_goto( x, y );
    199     ee_putstr( "oo" );
    200 }
    201 
    202 static void draw_alien_foo( game *g, int x, int y, int frame )
    203 {
    204     ee_color( EE_YELLOW );
    205 
    206     switch( frame )
     192        ee_goto(x-1, y+1);
     193        ee_putstr("\\\\//");
     194        break;
     195    }
     196
     197    ee_color(EE_WHITE);
     198    ee_goto(x, y);
     199    ee_putstr("oo");
     200}
     201
     202static void draw_alien_foo(game *g, int x, int y, int frame)
     203{
     204    ee_color(EE_YELLOW);
     205
     206    switch(frame)
    207207    {
    208208    case 0:
    209         ee_goto( x, y );
    210         ee_putchar( '.' );
    211         ee_goto( x+6, y );
    212         ee_putchar( ',' );
    213         ee_goto( x+1, y+1 );
    214         ee_putstr( "\\ X /" );
     209        ee_goto(x, y);
     210        ee_putchar('.');
     211        ee_goto(x+6, y);
     212        ee_putchar(',');
     213        ee_goto(x+1, y+1);
     214        ee_putstr("\\ X /");
    215215        break;
    216216    case 7:
    217217    case 1:
    218         ee_goto( x-1, y );
    219         ee_putchar( '.' );
    220         ee_goto( x+7, y );
    221         ee_putchar( ',' );
    222         ee_goto( x, y+1 );
    223         ee_putstr( "`- X -'" );
     218        ee_goto(x-1, y);
     219        ee_putchar('.');
     220        ee_goto(x+7, y);
     221        ee_putchar(',');
     222        ee_goto(x, y+1);
     223        ee_putstr("`- X -'");
    224224        break;
    225225    case 6:
    226226    case 2:
    227         ee_goto( x-1, y+1 );
    228         ee_putstr( "`-- X --'" );
     227        ee_goto(x-1, y+1);
     228        ee_putstr("`-- X --'");
    229229        break;
    230230    case 5:
    231231    case 3:
    232         ee_goto( x, y+1 );
    233         ee_putstr( ",- X -." );
    234         ee_goto( x-1, y+2 );
    235         ee_putchar( '\'' );
    236         ee_goto( x+7, y+2 );
    237         ee_putchar( '`' );
     232        ee_goto(x, y+1);
     233        ee_putstr(",- X -.");
     234        ee_goto(x-1, y+2);
     235        ee_putchar('\'');
     236        ee_goto(x+7, y+2);
     237        ee_putchar('`');
    238238        break;
    239239    case 4:
    240         ee_goto( x+1, y+1 );
    241         ee_putstr( ", X ." );
    242         ee_goto( x, y+2 );
    243         ee_putchar( '/' );
    244         ee_goto( x+6, y+2 );
    245         ee_putchar( '\\' );
    246         break;
    247     }
    248 
    249     ee_goto( x+2, y+2 );
    250     ee_putstr( "`V'" );
    251 
    252     ee_color( EE_WHITE );
    253     ee_goto( x+2, y+1 );
    254     ee_putchar( 'o' );
    255     ee_goto( x+4, y+1 );
    256     ee_putchar( 'o' );
    257 }
    258 
    259 
     240        ee_goto(x+1, y+1);
     241        ee_putstr(", X .");
     242        ee_goto(x, y+2);
     243        ee_putchar('/');
     244        ee_goto(x+6, y+2);
     245        ee_putchar('\\');
     246        break;
     247    }
     248
     249    ee_goto(x+2, y+2);
     250    ee_putstr("`V'");
     251
     252    ee_color(EE_WHITE);
     253    ee_goto(x+2, y+1);
     254    ee_putchar('o');
     255    ee_goto(x+4, y+1);
     256    ee_putchar('o');
     257}
     258
     259
  • ttyvaders/trunk/src/bonus.c

    r80 r88  
    2525#include "common.h"
    2626
    27 void init_bonus( game *g, bonus *bo )
     27void init_bonus(game *g, bonus *bo)
    2828{
    2929    int i;
    3030
    31     for( i = 0; i < BONUS; i++ )
     31    for(i = 0; i < BONUS; i++)
    3232    {
    3333        bo->type[i] = BONUS_NONE;
     
    3535}
    3636
    37 void draw_bonus( game *g, bonus *bo )
     37void draw_bonus(game *g, bonus *bo)
    3838{
    3939    int i;
    4040
    41     for( i = 0; i < BONUS; i++ )
     41    for(i = 0; i < BONUS; i++)
    4242    {
    43         switch( bo->type[i] )
     43        switch(bo->type[i])
    4444        {
    4545            case BONUS_GREEN:
    46                 ee_color( (bo->n[i]/2 % 3) ? EE_GREEN : EE_WHITE );
    47                 ee_goto( bo->x[i]+1, bo->y[i]-1 );
    48                 ee_putchar( '_' );
    49                 ee_goto( bo->x[i], bo->y[i] );
    50                 ee_putstr( "/ \\" );
    51                 ee_goto( bo->x[i], bo->y[i]+1 );
    52                 ee_putstr( "\\_/" );
    53                 ee_color( EE_WHITE );
    54                 ee_goto( bo->x[i]+1, bo->y[i] );
    55                 ee_putchar( 'g' );
     46                ee_color((bo->n[i]/2 % 3) ? EE_GREEN : EE_WHITE);
     47                ee_goto(bo->x[i]+1, bo->y[i]-1);
     48                ee_putchar('_');
     49                ee_goto(bo->x[i], bo->y[i]);
     50                ee_putstr("/ \\");
     51                ee_goto(bo->x[i], bo->y[i]+1);
     52                ee_putstr("\\_/");
     53                ee_color(EE_WHITE);
     54                ee_goto(bo->x[i]+1, bo->y[i]);
     55                ee_putchar('g');
    5656                break;
    5757            case BONUS_LIFE:
    58                 ee_color( (bo->n[i] % 3) ? EE_RED : EE_WHITE );
    59                 ee_goto( bo->x[i]+1, bo->y[i]-1 );
    60                 ee_putchar( '_' );
    61                 ee_goto( bo->x[i]+3, bo->y[i]-1 );
    62                 ee_putchar( '_' );
    63                 ee_goto( bo->x[i], bo->y[i] );
    64                 ee_putstr( "( ' )" );
    65                 ee_goto( bo->x[i]+1, bo->y[i]+1 );
    66                 ee_putstr( "`v'" );
    67                 ee_color( EE_WHITE );
    68                 ee_goto( bo->x[i]+3, bo->y[i] );
    69                 ee_putchar( '^' );
     58                ee_color((bo->n[i] % 3) ? EE_RED : EE_WHITE);
     59                ee_goto(bo->x[i]+1, bo->y[i]-1);
     60                ee_putchar('_');
     61                ee_goto(bo->x[i]+3, bo->y[i]-1);
     62                ee_putchar('_');
     63                ee_goto(bo->x[i], bo->y[i]);
     64                ee_putstr("( ' )");
     65                ee_goto(bo->x[i]+1, bo->y[i]+1);
     66                ee_putstr("`v'");
     67                ee_color(EE_WHITE);
     68                ee_goto(bo->x[i]+3, bo->y[i]);
     69                ee_putchar('^');
    7070                break;
    7171            case BONUS_NONE:
     
    7575}
    7676
    77 void update_bonus( game *g, bonus *bo )
     77void update_bonus(game *g, bonus *bo)
    7878{
    7979    int i;
    8080
    81     for( i = 0; i < BONUS; i++ )
     81    for(i = 0; i < BONUS; i++)
    8282    {
    83         switch( bo->type[i] )
     83        switch(bo->type[i])
    8484        {
    8585            case BONUS_GREEN:
    8686                bo->n[i]++;
    8787                bo->y[i]++;
    88                 if( bo->y[i] > g->h )
     88                if(bo->y[i] > g->h)
    8989                {
    9090                    bo->type[i] = BONUS_NONE;
     
    9494                bo->n[i]++;
    9595                bo->y[i]++;
    96                 if( bo->y[i] > g->h )
     96                if(bo->y[i] > g->h)
    9797                {
    9898                    bo->type[i] = BONUS_NONE;
     
    105105}
    106106
    107 void add_bonus( game *g, bonus *bo, int x, int y, int type )
     107void add_bonus(game *g, bonus *bo, int x, int y, int type)
    108108{
    109109    int i;
    110110
    111     for( i = 0; i < BONUS; i++ )
     111    for(i = 0; i < BONUS; i++)
    112112    {
    113         if( bo->type[i] == BONUS_NONE )
     113        if(bo->type[i] == BONUS_NONE)
    114114        {
    115115            bo->type[i] = type;
  • ttyvaders/trunk/src/box.c

    r80 r88  
    2525#include "common.h"
    2626
    27 box * create_box( game *g, int x, int y, int w, int h )
     27box * create_box(game *g, int x, int y, int w, int h)
    2828{
    29     box *b = malloc( sizeof( box ) );
     29    box *b = malloc(sizeof( box ));
    3030
    3131    b->x = x;
     
    3838}
    3939
    40 void draw_box( game *g, box *b )
     40void draw_box(game *g, box *b)
    4141{
    4242    int i, j, frame;
    4343
    44     ee_color( EE_YELLOW );
     44    ee_color(EE_YELLOW);
    4545
    4646    /* Draw the thin horizontal line */
    47     if( b->frame < 8 )
     47    if(b->frame < 8)
    4848    {
    49         for( i = b->x - b->w * b->frame / 16 ;
     49        for(i = b->x - b->w * b->frame / 16 ;
    5050             i < b->x + b->w * b->frame / 16 ;
    51              i++ )
     51             i++)
    5252        {
    53             ee_goto( i, b->y );
    54             ee_putchar( 'X' );
     53            ee_goto(i, b->y);
     54            ee_putchar('X');
    5555        }
    5656
     
    6161    frame = b->frame < 12 ? b->frame : 12;
    6262
    63     for( i = b->x - b->w / 2 ;
     63    for(i = b->x - b->w / 2 ;
    6464         i < b->x + b->w / 2 ;
    65          i++ )
     65         i++)
    6666    {
    67         ee_goto( i, b->y - b->h * (frame - 8) / 8 );
    68         ee_putchar( 'X' );
    69         ee_goto( i, b->y + b->h * (frame - 8) / 8 );
    70         ee_putchar( 'X' );
     67        ee_goto(i, b->y - b->h * (frame - 8) / 8);
     68        ee_putchar('X');
     69        ee_goto(i, b->y + b->h * (frame - 8) / 8);
     70        ee_putchar('X');
    7171    }
    7272
    73     for( j = b->y - b->h * (frame - 8) / 8 ;
     73    for(j = b->y - b->h * (frame - 8) / 8 ;
    7474         j < b->y + b->h * (frame - 8) / 8 ;
    75          j++ )
     75         j++)
    7676    {
    77         ee_goto( b->x - b->w / 2, j );
    78         ee_putchar( 'X' );
    79         ee_goto( b->x + b->w / 2 - 1, j );
    80         ee_putchar( 'X' );
     77        ee_goto(b->x - b->w / 2, j);
     78        ee_putchar('X');
     79        ee_goto(b->x + b->w / 2 - 1, j);
     80        ee_putchar('X');
    8181    }
    8282
    83     ee_color( EE_BLACK );
     83    ee_color(EE_BLACK);
    8484
    85     for( j = b->y - b->h * (frame - 8) / 8 + 1 ;
     85    for(j = b->y - b->h * (frame - 8) / 8 + 1 ;
    8686         j < b->y + b->h * (frame - 8) / 8 ;
    87          j++ )
     87         j++)
    8888    {
    89         for( i = b->x - b->w / 2 + 1 ;
     89        for(i = b->x - b->w / 2 + 1 ;
    9090             i < b->x + b->w / 2 - 1 ;
    91              i++ )
     91             i++)
    9292        {
    93             ee_goto( i, j );
    94             ee_putchar( 'X' );
     93            ee_goto(i, j);
     94            ee_putchar('X');
    9595        }
    9696    }
    9797
    98     if( b->frame < 12 )
     98    if(b->frame < 12)
    9999    {
    100100        return;
     
    102102
    103103    /* Draw the text inside the frame */
    104     ee_color( EE_YELLOW );
     104    ee_color(EE_YELLOW);
    105105
    106106    /* FIXME: use a font */
    107     ee_goto( b->x - b->w / 2 + 12, b->y - b->h / 2 + 2 );
    108     ee_putstr( "XXXX.  .XXXX  X   X  .XXXX  .XXXX  XXXX." );
    109     ee_goto( b->x - b->w / 2 + 12, b->y - b->h / 2 + 3 );
    110     ee_putstr( "X  `X  X'  X  X   X  X'     X'     X  `X" );
    111     ee_goto( b->x - b->w / 2 + 12, b->y - b->h / 2 + 4 );
    112     ee_putstr( "XXXX'  XXXXX  X   X  `XXX   XXXX   X   X" );
    113     ee_goto( b->x - b->w / 2 + 12, b->y - b->h / 2 + 5 );
    114     ee_putstr( "X'     X' `X  X. ,X     `X  X'     X  ,X" );
    115     ee_goto( b->x - b->w / 2 + 12, b->y - b->h / 2 + 6 );
    116     ee_putstr( "X      X   X  `XXXX  XXXX'  `XXXX  XXXX'" );
     107    ee_goto(b->x - b->w / 2 + 12, b->y - b->h / 2 + 2);
     108    ee_putstr("XXXX.  .XXXX  X   X  .XXXX  .XXXX  XXXX.");
     109    ee_goto(b->x - b->w / 2 + 12, b->y - b->h / 2 + 3);
     110    ee_putstr("X  `X  X'  X  X   X  X'     X'     X  `X");
     111    ee_goto(b->x - b->w / 2 + 12, b->y - b->h / 2 + 4);
     112    ee_putstr("XXXX'  XXXXX  X   X  `XXX   XXXX   X   X");
     113    ee_goto(b->x - b->w / 2 + 12, b->y - b->h / 2 + 5);
     114    ee_putstr("X'     X' `X  X. ,X     `X  X'     X  ,X");
     115    ee_goto(b->x - b->w / 2 + 12, b->y - b->h / 2 + 6);
     116    ee_putstr("X      X   X  `XXXX  XXXX'  `XXXX  XXXX'");
    117117}
    118118
    119 void free_box( box *b )
     119void free_box(box *b)
    120120{
    121     free( b );
     121    free(b);
    122122}
    123123
  • ttyvaders/trunk/src/ceo.c

    r80 r88  
    2828#include "common.h"
    2929
    30 void ceo_alert( game *g )
     30void ceo_alert(game *g)
    3131{
    3232    int end = 0;
    3333
    34     while( !end )
     34    while(!end)
    3535    {
    3636        ee_clear();
    3737
    38         if( ee_get_key() == '\t' )
     38        if(ee_get_key() == '\t')
    3939        {
    4040            end = 1;
    4141        }
    4242
    43         fprintf( stderr, "foo\n" );
     43        fprintf(stderr, "foo\n");
    4444
    4545        ee_refresh();
    4646
    47         usleep( 40000 );
     47        usleep(40000);
    4848    }
    4949}
  • ttyvaders/trunk/src/collide.c

    r72 r88  
    44 *                 All Rights Reserved
    55 *
    6  *   $Id: collide.c,v 1.11 2003/01/06 12:22:58 sam Exp $
     6 *   $Id$
    77 *
    88 *   This program is free software; you can redistribute it and/or modify
     
    2525#include "common.h"
    2626
    27 void collide_weapons_tunnel( game *g, weapons *wp, tunnel *t, explosions *ex )
     27void collide_weapons_tunnel(game *g, weapons *wp, tunnel *t, explosions *ex)
    2828{
    2929    int i, j, x, y;
    3030
    31     for( i = 0; i < WEAPONS; i++ )
     31    for(i = 0; i < WEAPONS; i++)
    3232    {
    3333        x = wp->x[i] >> 4;
    3434        y = wp->y[i] >> 4;
    3535
    36         switch( wp->type[i] )
     36        switch(wp->type[i])
    3737        {
    3838        case WEAPON_LIGHTNING:
     
    4242        case WEAPON_BOMB:
    4343        case WEAPON_FRAGBOMB:
    44             if( y < 0 || y >= g->h )
     44            if(y < 0 || y >= g->h)
    4545            {
    4646                break;
    4747            }
    4848
    49             if( x <= t->left[y]
    50                  || x >= t->right[y] )
     49            if(x <= t->left[y]
     50                 || x >= t->right[y])
    5151            {
    5252                int damage = wp->type[i] == WEAPON_SEEKER ? 1 : 2;
    5353
    54                 add_explosion( g, ex, x, y, 0, 1, wp->type[i] == WEAPON_SEEKER ? EXPLOSION_SMALL : EXPLOSION_MEDIUM );
    55 
    56                 if( x <= t->left[y] )
    57                 {
    58                     if( y-2 >= 0 ) t->left[y-2] -= damage - 1;
    59                     if( y-1 >= 0 ) t->left[y-1] -= damage;
     54                add_explosion(g, ex, x, y, 0, 1, wp->type[i] == WEAPON_SEEKER ? EXPLOSION_SMALL : EXPLOSION_MEDIUM);
     55
     56                if(x <= t->left[y])
     57                {
     58                    if(y-2 >= 0) t->left[y-2] -= damage - 1;
     59                    if(y-1 >= 0) t->left[y-1] -= damage;
    6060                    t->left[y] -= damage + 1;
    61                     if( y+1 < g->h ) t->left[y+1] -= damage;
    62                     if( y+2 < g->h ) t->left[y+2] -= damage - 1;
     61                    if(y+1 < g->h) t->left[y+1] -= damage;
     62                    if(y+2 < g->h) t->left[y+2] -= damage - 1;
    6363                }
    6464                else
    6565                {
    66                     if( y-2 >= 0 ) t->right[y-2] += damage - 1;
    67                     if( y-1 >= 0 ) t->right[y-1] += damage;
     66                    if(y-2 >= 0) t->right[y-2] += damage - 1;
     67                    if(y-1 >= 0) t->right[y-1] += damage;
    6868                    t->right[y] += damage + 1;
    69                     if( y+1 < g->h ) t->right[y+1] += damage;
    70                     if( y+2 < g->h ) t->right[y+2] += damage - 1;
    71                 }
    72 
    73                 if( wp->type[i] == WEAPON_FRAGBOMB )
     69                    if(y+1 < g->h) t->right[y+1] += damage;
     70                    if(y+2 < g->h) t->right[y+2] += damage - 1;
     71                }
     72
     73                if(wp->type[i] == WEAPON_FRAGBOMB)
    7474                {
    7575                    wp->n[i] = -1;
     
    8282            break;
    8383        case WEAPON_LASER:
    84             for( j = GET_MIN( 0, wp->vy[i] >> 4 ) ;
    85                  j < GET_MAX( 0, wp->vy[i] >> 4 ) ;
    86                  j++ )
    87             {
    88                 if( y+j >= g->h || y+j < 0 )
    89                 {
    90                     continue;
    91                 }
    92 
    93                 if( x <= t->left[y+j] || x >= t->right[y+j] )
    94                 {
    95                     add_explosion( g, ex, x, y+j, 0, 1, EXPLOSION_SMALL );
     84            for(j = GET_MIN(0, wp->vy[i] >> 4);
     85                 j < GET_MAX(0, wp->vy[i] >> 4);
     86                 j++)
     87            {
     88                if(y+j >= g->h || y+j < 0)
     89                {
     90                    continue;
     91                }
     92
     93                if(x <= t->left[y+j] || x >= t->right[y+j])
     94                {
     95                    add_explosion(g, ex, x, y+j, 0, 1, EXPLOSION_SMALL);
    9696                    wp->type[i] = WEAPON_NONE;
    9797
    98                     if( x <= t->left[y+j] )
     98                    if(x <= t->left[y+j])
    9999                    {
    100                         if( y+j-1 >= 0 ) t->left[y+j-1]--;
     100                        if(y+j-1 >= 0) t->left[y+j-1]--;
    101101                        t->left[y+j] -= 2;
    102                         if( y+j+1 < g->h ) t->left[y+j+1]--;
     102                        if(y+j+1 < g->h) t->left[y+j+1]--;
    103103                    }
    104104                    else
    105105                    {
    106                         if( y+j-1 >= 0 ) t->right[y+j-1]++;
     106                        if(y+j-1 >= 0) t->right[y+j-1]++;
    107107                        t->right[y+j] += 2;
    108                         if( y+j+1 < g->h ) t->right[y+j+1]++;
     108                        if(y+j+1 < g->h) t->right[y+j+1]++;
    109109                    }
    110110                    break;
     
    113113            break;
    114114        case WEAPON_BEAM:
    115             if( wp->n[i] > 19 )
     115            if(wp->n[i] > 19)
    116116            {
    117117                break;
     
    119119
    120120            j = (29 - wp->n[i]) * (29 - wp->n[i]) / 8;
    121             j = GET_MIN( y, j );
    122 
    123             for( ; j > 0 ; j-- )
    124             {
    125                 if( x - 2 <= t->left[y-j] )
    126                 {
    127                     add_explosion( g, ex, GET_MIN(t->left[y-j], x+3), y-j, 0, 1, EXPLOSION_SMALL );
     121            j = GET_MIN(y, j);
     122
     123            for(; j > 0; j--)
     124            {
     125                if(x - 2 <= t->left[y-j])
     126                {
     127                    add_explosion(g, ex, GET_MIN(t->left[y-j], x+3), y-j, 0, 1, EXPLOSION_SMALL);
    128128                    t->left[y-j] -= GET_RAND(0,3);
    129129                }
    130                 else if( x + 3 >= t->right[y-j] )
    131                 {
    132                     add_explosion( g, ex, GET_MAX(t->right[y-j], x-2), y-j, 0, 1, EXPLOSION_SMALL );
     130                else if(x + 3 >= t->right[y-j])
     131                {
     132                    add_explosion(g, ex, GET_MAX(t->right[y-j], x-2), y-j, 0, 1, EXPLOSION_SMALL);
    133133                    t->right[y-j] += GET_RAND(0,3);
    134134                }
     
    143143}
    144144
    145 void collide_weapons_aliens( game *g, weapons *wp, aliens *al, explosions *ex )
     145void collide_weapons_aliens(game *g, weapons *wp, aliens *al, explosions *ex)
    146146{
    147147    int i, j, k, x, y;
    148148
    149     for( i = 0; i < WEAPONS; i++ )
     149    for(i = 0; i < WEAPONS; i++)
    150150    {
    151151        int ok = 0;
     
    155155        y = wp->y[i] >> 4;
    156156
    157         switch( wp->type[i] )
     157        switch(wp->type[i])
    158158        {
    159159        case WEAPON_LIGHTNING:
     
    164164            r = (29 - wp->n[i]) * (29 - wp->n[i]) / 8;
    165165
    166             for( j = 0; j < ALIENS; j++ )
    167             {
    168                 if( al->type[j] == ALIEN_NONE || al->life[j] < 0 )
    169                 {
    170                     continue;
    171                 }
    172 
    173                 if( wp->n[i] == 0 /* Nuke destroys _everything_ */ ||
     166            for(j = 0; j < ALIENS; j++)
     167            {
     168                if(al->type[j] == ALIEN_NONE || al->life[j] < 0)
     169                {
     170                    continue;
     171                }
     172
     173                if(wp->n[i] == 0 /* Nuke destroys _everything_ */ ||
    174174                    (al->x[j] - x) * (al->x[j] - x)
    175175                      + 4 * (al->y[j] - y) * (al->y[j] - y)
    176                     <= r * r )
     176                    <= r * r)
    177177                {
    178178                    /* Kill alien, not nuke */
     
    183183
    184184        case WEAPON_BEAM:
    185             if( wp->n[i] > 19 )
     185            if(wp->n[i] > 19)
    186186            {
    187187                break;
     
    190190            r = (29 - wp->n[i]) * (29 - wp->n[i]) / 8;
    191191
    192             for( j = 0; j < ALIENS; j++ )
    193             {
    194                 if( al->type[j] == ALIEN_NONE || al->life[j] < 0 )
    195                 {
    196                     continue;
    197                 }
    198 
    199                 if( x >= al->x[j] && x <= al->x[j] + 4
    200                      && y >= al->y[j] + 2 && y-5-r <= al->y[j] )
     192            for(j = 0; j < ALIENS; j++)
     193            {
     194                if(al->type[j] == ALIEN_NONE || al->life[j] < 0)
     195                {
     196                    continue;
     197                }
     198
     199                if(x >= al->x[j] && x <= al->x[j] + 4
     200                     && y >= al->y[j] + 2 && y-5-r <= al->y[j])
    201201                {
    202202                    al->life[j] -= 4;
     
    206206
    207207        case WEAPON_LASER:
    208             for( j = 0; j < ALIENS; j++ )
    209             {
    210                 if( al->type[j] == ALIEN_NONE || al->life[j] < 0 )
    211                 {
    212                     continue;
    213                 }
    214 
    215                 for( k = GET_MIN( 0, wp->vy[i] >> 4 ) ;
    216                      k < GET_MAX( 0, wp->vy[i] >> 4 ) ;
    217                      k++ )
    218                 {
    219                     if( x >= al->x[j] && x <= al->x[j] + 4
    220                          && y+k >= al->y[j] && y+k <= al->y[j] + 2 )
     208            for(j = 0; j < ALIENS; j++)
     209            {
     210                if(al->type[j] == ALIEN_NONE || al->life[j] < 0)
     211                {
     212                    continue;
     213                }
     214
     215                for(k = GET_MIN(0, wp->vy[i] >> 4);
     216                     k < GET_MAX(0, wp->vy[i] >> 4);
     217                     k++)
     218                {
     219                    if(x >= al->x[j] && x <= al->x[j] + 4
     220                         && y+k >= al->y[j] && y+k <= al->y[j] + 2)
    221221                    {
    222222                        al->life[j]--;
     
    227227            }
    228228
    229             if( ok )
    230             {
    231                 add_explosion( g, ex, x, y+1, 0, 0, EXPLOSION_SMALL );
     229            if(ok)
     230            {
     231                add_explosion(g, ex, x, y+1, 0, 0, EXPLOSION_SMALL);
    232232                wp->type[i] = WEAPON_NONE;
    233233            }
     
    237237        case WEAPON_BOMB:
    238238        case WEAPON_FRAGBOMB:
    239             for( j = 0; j < ALIENS; j++ )
    240             {
    241                 if( al->type[j] == ALIEN_NONE || al->life[j] < 0 )
    242                 {
    243                     continue;
    244                 }
    245 
    246                 if( x >= al->x[j] && x <= al->x[j] + 4
    247                      && y >= al->y[j] && y <= al->y[j] + 2 )
     239            for(j = 0; j < ALIENS; j++)
     240            {
     241                if(al->type[j] == ALIEN_NONE || al->life[j] < 0)
     242                {
     243                    continue;
     244                }
     245
     246                if(x >= al->x[j] && x <= al->x[j] + 4
     247                     && y >= al->y[j] && y <= al->y[j] + 2)
    248248                {
    249249                    al->life[j] -= wp->type[i] == WEAPON_SEEKER ? 1 : 5;
     
    252252            }
    253253
    254             if( ok )
    255             {
    256                 add_explosion( g, ex, x, y+1, 0, 0, wp->type[i] == WEAPON_SEEKER ? EXPLOSION_SMALL : EXPLOSION_MEDIUM );
    257 
    258                 if( wp->type[i] == WEAPON_FRAGBOMB )
     254            if(ok)
     255            {
     256                add_explosion(g, ex, x, y+1, 0, 0, wp->type[i] == WEAPON_SEEKER ? EXPLOSION_SMALL : EXPLOSION_MEDIUM);
     257
     258                if(wp->type[i] == WEAPON_FRAGBOMB)
    259259                {
    260260                    wp->n[i] = -1;
     
    270270}
    271271
    272 void collide_player_tunnel( game *g, player *p, tunnel *t, explosions *ex )
     272void collide_player_tunnel(game *g, player *p, tunnel *t, explosions *ex)
    273273{
    274     if( p->dead )
     274    if(p->dead)
    275275    {
    276276        return;
    277277    }
    278278
    279     if( p->x <= t->left[p->y] )
     279    if(p->x <= t->left[p->y])
    280280    {
    281281        p->x += 3;
    282282        p->vx = 2;
    283         add_explosion( g, ex, p->x+1, p->y-1, 0, 0, EXPLOSION_SMALL );
     283        add_explosion(g, ex, p->x+1, p->y-1, 0, 0, EXPLOSION_SMALL);
    284284        p->life -= 180;
    285285    }
    286     else if( p->x + 5 >= t->right[p->y] )
     286    else if(p->x + 5 >= t->right[p->y])
    287287    {
    288288        p->x -= 3;
    289289        p->vx = -2;
    290         add_explosion( g, ex, p->x+4, p->y-1, 0, 0, EXPLOSION_SMALL );
     290        add_explosion(g, ex, p->x+4, p->y-1, 0, 0, EXPLOSION_SMALL);
    291291        p->life -= 180;
    292292    }
  • ttyvaders/trunk/src/common.h

    r80 r88  
    147147 * From aliens.c
    148148 */
    149 void init_aliens( game *g, aliens *al );
    150 void draw_aliens( game *g, aliens *al );
    151 void update_aliens( game *g, aliens *al );
    152 void add_alien( game *g, aliens *al, int x, int y, int type );
     149void init_aliens(game *, aliens *);
     150void draw_aliens(game *, aliens *);
     151void update_aliens(game *, aliens *);
     152void add_alien(game *, aliens *, int, int, int);
    153153
    154154/*
    155155 * From bonus.c
    156156 */
    157 void init_bonus( game *g, bonus *bo );
    158 void draw_bonus( game *g, bonus *bo );
    159 void update_bonus( game *g, bonus *bo );
    160 void add_bonus( game *g, bonus *bo, int x, int y, int type );
     157void init_bonus(game *, bonus *);
     158void draw_bonus(game *, bonus *);
     159void update_bonus(game *, bonus *);
     160void add_bonus(game *, bonus *, int, int, int);
    161161
    162162/*
    163163 * From box.c
    164164 */
    165 box * create_box( game *g, int x, int y, int w, int h );
    166 void draw_box( game *g, box *b );
    167 void free_box( box *b );
     165box * create_box(game *, int, int, int, int);
     166void draw_box(game *, box *);
     167void free_box(box *);
    168168
    169169/*
    170170 * From ceo.c
    171171 */
    172 void ceo_alert( game *g );
     172void ceo_alert(game *);
    173173
    174174/*
    175175 * From collide.c
    176176 */
    177 void collide_weapons_tunnel( game *g, weapons *wp, tunnel *t, explosions *ex );
    178 void collide_weapons_aliens( game *g, weapons *wp, aliens *al, explosions *ex );
    179 void collide_player_tunnel( game *g, player *p, tunnel *t, explosions *ex );
     177void collide_weapons_tunnel(game *, weapons *, tunnel *, explosions *);
     178void collide_weapons_aliens(game *, weapons *, aliens *, explosions *);
     179void collide_player_tunnel(game *, player *, tunnel *, explosions *);
    180180
    181181/*
    182182 * From explosions.c
    183183 */
    184 void init_explosions( game *g, explosions *ex );
    185 void add_explosion( game *g, explosions *ex, int x, int y, int vx, int vy, int type );
    186 void draw_explosions( game *g, explosions *ex );
    187 void update_explosions( game *g, explosions *ex );
     184void init_explosions(game *, explosions *);
     185void add_explosion(game *, explosions *, int, int, int, int, int);
     186void draw_explosions(game *, explosions *);
     187void update_explosions(game *, explosions *);
    188188
    189189/*
    190190 * From math.c
    191191 */
    192 int r00t( int a );
     192int r00t(int);
    193193
    194194/*
    195195 * From overlay.c
    196196 */
    197 void draw_status( game *g );
     197void draw_status(game *);
    198198
    199199/*
    200200 * From player.c
    201201 */
    202 player * create_player( game *g );
    203 void free_player( player *p );
    204 void draw_player( game *g, player *p );
    205 void update_player( game *g, player *p );
     202player * create_player(game *);
     203void free_player(player *);
     204void draw_player(game *, player *);
     205void update_player(game *, player *);
    206206
    207207/*
    208208 * From starfield.c
    209209 */
    210 starfield * create_starfield( game *g );
    211 void draw_starfield( game *g, starfield *s );
    212 void update_starfield( game *g, starfield *s );
    213 void free_starfield( game *g, starfield *s );
     210starfield * create_starfield(game *);
     211void draw_starfield(game *, starfield *);
     212void update_starfield(game *, starfield *);
     213void free_starfield(game *, starfield *);
    214214
    215215/*
    216216 * From tunnel.c
    217217 */
    218 tunnel * create_tunnel( game *g, int w, int h );
    219 void free_tunnel( tunnel *t );
    220 void draw_tunnel( game *g, tunnel *t );
    221 void update_tunnel( game *g, tunnel *t );
     218tunnel * create_tunnel(game *, int, int);
     219void free_tunnel(tunnel *);
     220void draw_tunnel(game *, tunnel *);
     221void update_tunnel(game *, tunnel *);
    222222
    223223/*
    224224 * From weapons.c
    225225 */
    226 void init_weapons( game *g, weapons *wp );
    227 void draw_weapons( game *g, weapons *wp );
    228 void update_weapons( game *g, weapons *wp );
    229 void add_weapon( game *g, weapons *wp, int x, int y, int vx, int vy, int type );
    230 
     226void init_weapons(game *, weapons *);
     227void draw_weapons(game *, weapons *);
     228void update_weapons(game *, weapons *);
     229void add_weapon(game *, weapons *, int, int, int, int, int);
     230
  • ttyvaders/trunk/src/explosions.c

    r80 r88  
    2525#include "common.h"
    2626
    27 static void draw_small_explosion( int x, int y, int frame );
    28 static void draw_medium_explosion( int x, int y, int frame );
    29 
    30 void init_explosions( game *g, explosions *ex )
    31 {
    32     int i;
    33 
    34     for( i = 0; i < EXPLOSIONS; i++ )
     27static void draw_small_explosion(int x, int y, int frame);
     28static void draw_medium_explosion(int x, int y, int frame);
     29
     30void init_explosions(game *g, explosions *ex)
     31{
     32    int i;
     33
     34    for(i = 0; i < EXPLOSIONS; i++)
    3535    {
    3636        ex->type[i] = EXPLOSION_NONE;
     
    3838}
    3939
    40 void add_explosion( game *g, explosions *ex, int x, int y, int vx, int vy, int type )
    41 {
    42     int i;
    43 
    44     for( i = 0; i < EXPLOSIONS; i++ )
    45     {
    46         if( ex->type[i] == EXPLOSION_NONE )
     40void add_explosion(game *g, explosions *ex, int x, int y, int vx, int vy, int type)
     41{
     42    int i;
     43
     44    for(i = 0; i < EXPLOSIONS; i++)
     45    {
     46        if(ex->type[i] == EXPLOSION_NONE)
    4747        {
    4848            ex->type[i] = type;
     
    5151            ex->vx[i] = vx;
    5252            ex->vy[i] = vy;
    53             switch( type )
     53            switch(type)
    5454            {
    5555                case EXPLOSION_MEDIUM:
     
    6565}
    6666
    67 void draw_explosions( game *g, explosions *ex )
    68 {
    69     int i;
    70 
    71     for( i = 0; i < EXPLOSIONS; i++ )
     67void draw_explosions(game *g, explosions *ex)
     68{
     69    int i;
     70
     71    for(i = 0; i < EXPLOSIONS; i++)
    7272    {
    7373#if 0
    74         ee_color( GREEN );
    75         ee_goto( ex->x[i] + 3, ex->y[i] );
    76         switch( GET_RAND(0,3) )
     74        ee_color(GREEN);
     75        ee_goto(ex->x[i] + 3, ex->y[i]);
     76        switch(GET_RAND(0,3))
    7777        {
    7878        case 0:
    79             ee_putchar( 'p' );
    80             ee_putchar( 'i' );
    81             ee_putchar( 'f' );
     79            ee_putchar('p');
     80            ee_putchar('i');
     81            ee_putchar('f');
    8282            break;
    8383        case 1:
    84             ee_putchar( 'p' );
    85             ee_putchar( 'a' );
    86             ee_putchar( 'f' );
     84            ee_putchar('p');
     85            ee_putchar('a');
     86            ee_putchar('f');
    8787            break;
    8888        case 2:
    89             ee_putchar( 'p' );
    90             ee_putchar( 'o' );
    91             ee_putchar( 'u' );
    92             ee_putchar( 'f' );
    93             break;
    94         }
    95         ee_putchar( '!' );
     89            ee_putchar('p');
     90            ee_putchar('o');
     91            ee_putchar('u');
     92            ee_putchar('f');
     93            break;
     94        }
     95        ee_putchar('!');
    9696#endif
    9797
    98         switch( ex->type[i] )
     98        switch(ex->type[i])
    9999        {
    100100            case EXPLOSION_MEDIUM:
    101                 draw_medium_explosion( ex->x[i], ex->y[i], ex->n[i] );
     101                draw_medium_explosion(ex->x[i], ex->y[i], ex->n[i]);
    102102                break;
    103103            case EXPLOSION_SMALL:
    104                 draw_small_explosion( ex->x[i], ex->y[i], ex->n[i] );
     104                draw_small_explosion(ex->x[i], ex->y[i], ex->n[i]);
    105105                break;
    106106            case EXPLOSION_NONE:
     
    110110}
    111111
    112 void update_explosions( game *g, explosions *ex )
    113 {
    114     int i;
    115 
    116     for( i = 0; i < EXPLOSIONS; i++ )
    117     {
    118         switch( ex->type[i] )
     112void update_explosions(game *g, explosions *ex)
     113{
     114    int i;
     115
     116    for(i = 0; i < EXPLOSIONS; i++)
     117    {
     118        switch(ex->type[i])
    119119        {
    120120            case EXPLOSION_MEDIUM:
     
    123123                ex->y[i] += ex->vy[i];
    124124                ex->n[i]--;
    125                 if( ex->n[i] < 0 )
     125                if(ex->n[i] < 0)
    126126                {
    127127                    ex->type[i] = EXPLOSION_NONE;
     
    134134}
    135135
    136 static void draw_small_explosion( int x, int y, int frame )
    137 {
    138     switch( frame )
     136static void draw_small_explosion(int x, int y, int frame)
     137{
     138    switch(frame)
    139139    {
    140140    case 6:
    141         ee_color( EE_YELLOW );
    142         ee_goto( x, y );
    143         ee_putchar( '+' );
     141        ee_color(EE_YELLOW);
     142        ee_goto(x, y);
     143        ee_putchar('+');
    144144        break;
    145145    case 5:
    146         ee_color( EE_YELLOW );
    147         ee_goto( x, y );
    148         ee_putchar( 'o' );
     146        ee_color(EE_YELLOW);
     147        ee_goto(x, y);
     148        ee_putchar('o');
    149149        break;
    150150    case 4:
    151         ee_color( EE_YELLOW );
    152         ee_goto( x, y-1 );
    153         ee_putchar( '_' );
    154         ee_goto( x-1, y );
    155         ee_putstr( ")_(" );
     151        ee_color(EE_YELLOW);
     152        ee_goto(x, y-1);
     153        ee_putchar('_');
     154        ee_goto(x-1, y);
     155        ee_putstr(")_(");
    156156        break;
    157157    case 3:
    158         ee_color( EE_YELLOW );
    159         ee_goto( x-1, y-1 );
    160         ee_putstr( "._," );
    161         ee_goto( x-1, y );
    162         ee_putstr( ")_(" );
    163         ee_goto( x-1, y+1 );
    164         ee_putstr( "\' `" );
     158        ee_color(EE_YELLOW);
     159        ee_goto(x-1, y-1);
     160        ee_putstr("._,");
     161        ee_goto(x-1, y);
     162        ee_putstr(")_(");
     163        ee_goto(x-1, y+1);
     164        ee_putstr("\' `");
    165165        break;
    166166    case 2:
    167         ee_color( EE_YELLOW );
    168         ee_goto( x-1, y-1 );
    169         ee_putstr( ".v," );
    170         ee_goto( x-1, y );
    171         ee_putstr( "> <" );
    172         ee_goto( x-1, y+1 );
    173         ee_putstr( "\'^`" );
     167        ee_color(EE_YELLOW);
     168        ee_goto(x-1, y-1);
     169        ee_putstr(".v,");
     170        ee_goto(x-1, y);
     171        ee_putstr("> <");
     172        ee_goto(x-1, y+1);
     173        ee_putstr("\'^`");
    174174        break;
    175175    case 1:
    176         ee_color( EE_WHITE );
    177         ee_goto( x-1, y-1 );
    178         ee_putstr( ". ," );
    179         ee_goto( x-1, y );
    180         ee_putstr( "   " );
    181         ee_goto( x-1, y+1 );
    182         ee_putstr( "\' `" );
    183         break;
    184     }
    185 }
    186 
    187 static void draw_medium_explosion( int x, int y, int frame )
    188 {
    189     ee_color( EE_YELLOW );
    190 
    191     switch( frame )
     176        ee_color(EE_WHITE);
     177        ee_goto(x-1, y-1);
     178        ee_putstr(". ,");
     179        ee_goto(x-1, y);
     180        ee_putstr("   ");
     181        ee_goto(x-1, y+1);
     182        ee_putstr("\' `");
     183        break;
     184    }
     185}
     186
     187static void draw_medium_explosion(int x, int y, int frame)
     188{
     189    ee_color(EE_YELLOW);
     190
     191    switch(frame)
    192192    {
    193193    case 10:
    194         ee_goto( x, y );
    195         ee_putchar( '+' );
     194        ee_goto(x, y);
     195        ee_putchar('+');
    196196        break;
    197197    case 9:
    198         ee_goto( x, y );
    199         ee_putchar( 'o' );
     198        ee_goto(x, y);
     199        ee_putchar('o');
    200200        break;
    201201    case 8:
    202         ee_goto( x, y-1 );
    203         ee_putchar( '_' );
    204         ee_goto( x-1, y );
    205         ee_putstr( ")_(" );
     202        ee_goto(x, y-1);
     203        ee_putchar('_');
     204        ee_goto(x-1, y);
     205        ee_putstr(")_(");
    206206        break;
    207207    case 7:
    208         ee_goto( x-1, y-1 );
    209         ee_putstr( "._," );
    210         ee_goto( x-1, y );
    211         ee_putstr( ")_(" );
    212         ee_goto( x-1, y+1 );
    213         ee_putstr( "\' `" );
     208        ee_goto(x-1, y-1);
     209        ee_putstr("._,");
     210        ee_goto(x-1, y);
     211        ee_putstr(")_(");
     212        ee_goto(x-1, y+1);
     213        ee_putstr("\' `");
    214214        break;
    215215    case 6:
    216         ee_goto( x-1, y-1 );
    217         ee_putstr( ".v," );
    218         ee_goto( x-1, y );
    219         ee_putstr( "> <" );
    220         ee_goto( x-1, y+1 );
    221         ee_putstr( "\'^`" );
     216        ee_goto(x-1, y-1);
     217        ee_putstr(".v,");
     218        ee_goto(x-1, y);
     219        ee_putstr("> <");
     220        ee_goto(x-1, y+1);
     221        ee_putstr("\'^`");
    222222        break;
    223223    case 5:
    224         ee_color( EE_RED );
     224        ee_color(EE_RED);
    225225    case 4:
    226         ee_goto( x-2, y-1 );
    227         ee_putstr( "_\\~/_" );
    228         ee_goto( x-2, y );
    229         ee_putstr( ">   <" );
    230         ee_goto( x-2, y+1 );
    231         ee_putstr( "~/_\\~" );
     226        ee_goto(x-2, y-1);
     227        ee_putstr("_\\~/_");
     228        ee_goto(x-2, y);
     229        ee_putstr(">   <");
     230        ee_goto(x-2, y+1);
     231        ee_putstr("~/_\\~");
    232232        break;
    233233    case 3:
    234         ee_color( EE_RED );
     234        ee_color(EE_RED);
    235235    case 2:
    236         ee_goto( x-2, y-1 );
    237         ee_putstr( "_\\ /_" );
    238         ee_goto( x-2, y );
    239         ee_putstr( "_   _" );
    240         ee_goto( x-2, y+1 );
    241         ee_putstr( " / \\ " );
     236        ee_goto(x-2, y-1);
     237        ee_putstr("_\\ /_");
     238        ee_goto(x-2, y);
     239        ee_putstr("_   _");
     240        ee_goto(x-2, y+1);
     241        ee_putstr(" / \\ ");
    242242        break;
    243243    case 1:
    244         ee_color( EE_WHITE );
    245         ee_goto( x-2, y-1 );
    246         ee_putstr( ". \' ," );
    247         ee_goto( x-2, y );
    248         ee_putstr( "     " );
    249         ee_goto( x-2, y+1 );
    250         ee_putstr( "\' . `" );
    251         break;
    252     }
    253 }
    254 
     244        ee_color(EE_WHITE);
     245        ee_goto(x-2, y-1);
     246        ee_putstr(". \' ,");
     247        ee_goto(x-2, y);
     248        ee_putstr("     ");
     249        ee_goto(x-2, y+1);
     250        ee_putstr("\' . `");
     251        break;
     252    }
     253}
     254
  • ttyvaders/trunk/src/main.c

    r80 r88  
    3838    srand(time(NULL));
    3939
    40     if( ee_init() )
     40    if(ee_init())
    4141    {
    4242        return 1;
     
    6565    box *pausebox = NULL;
    6666
    67     g->sf = create_starfield( g );
     67    g->sf = create_starfield(g);
    6868    g->wp = malloc(sizeof(weapons));
    6969    g->ex = malloc(sizeof(explosions));
    7070    g->bo = malloc(sizeof(bonus));
    71     g->t = create_tunnel( g, g->w, g->h );
    72     g->p = create_player( g );
     71    g->t = create_tunnel(g, g->w, g->h);
     72    g->p = create_player(g);
    7373    g->al = malloc(sizeof(aliens));
    7474
    75     init_bonus( g, g->bo );
    76     init_weapons( g, g->wp );
    77     init_explosions( g, g->ex );
    78     init_aliens( g, g->al );
     75    init_bonus(g, g->bo);
     76    init_weapons(g, g->wp);
     77    init_explosions(g, g->ex);
     78    init_aliens(g, g->al);
    7979
    8080    /* Temporary stuff */
    8181    g->t->w = 25;
    8282
    83     while( !quit )
     83    while(!quit)
    8484    {
    8585        char key;
    8686
    87         while( ( key = ee_get_key() ) )
     87        while((key = ee_get_key()))
    8888        {
    89             switch( key )
     89            switch(key)
    9090            {
    9191            case 'q':
     
    9494            case 'p':
    9595                poz = !poz;
    96                 if( poz )
    97                 {
    98                     pausebox = create_box( g, g->w / 2, g->h / 2,
    99                                               g->w - 16, 8 );
     96                if(poz)
     97                {
     98                    pausebox = create_box(g, g->w / 2, g->h / 2,
     99                                              g->w - 16, 8);
    100100                }
    101101                else
    102102                {
    103                     free_box( pausebox );
     103                    free_box(pausebox);
    104104                }
    105105                break;
    106106            case '\t':
    107                 ceo_alert( g );
     107                ceo_alert(g);
    108108                poz = 1;
    109109                break;
     
    112112                break;
    113113            default:
    114                 if( g->p->dead )
    115                 {
    116                     break;
    117                 }
    118 
    119                 switch( key )
     114                if(g->p->dead)
     115                {
     116                    break;
     117                }
     118
     119                switch(key)
    120120                {
    121121                case 'h':
     
    123123                    break;
    124124                case 'j':
    125                     if( g->p->y < g->h - 2 ) g->p->y += 1;
     125                    if(g->p->y < g->h - 2) g->p->y += 1;
    126126                    break;
    127127                case 'k':
    128                     if( g->p->y > 1 ) g->p->y -= 1;
     128                    if(g->p->y > 1) g->p->y -= 1;
    129129                    break;
    130130                case 'l':
     
    132132                    break;
    133133                case 'n':
    134                     if( g->p->special >= COST_NUKE )
     134                    if(g->p->special >= COST_NUKE)
    135135                    {
    136136                        g->p->special -= COST_NUKE;
    137                         add_weapon( g, g->wp, (g->p->x + 2) << 4, g->p->y << 4, 0, 0, WEAPON_NUKE );
     137                        add_weapon(g, g->wp, (g->p->x + 2) << 4, g->p->y << 4, 0, 0, WEAPON_NUKE);
    138138                    }
    139139                    break;
    140140                case 'f':
    141                     if( g->p->special >= COST_FRAGBOMB )
     141                    if(g->p->special >= COST_FRAGBOMB)
    142142                    {
    143143                        g->p->special -= COST_FRAGBOMB;
    144                         add_weapon( g, g->wp, (g->p->x + 2) << 4, g->p->y << 4, 0, -16, WEAPON_FRAGBOMB );
     144                        add_weapon(g, g->wp, (g->p->x + 2) << 4, g->p->y << 4, 0, -16, WEAPON_FRAGBOMB);
    145145                    }
    146146                    break;
    147147                case 'b':
    148                     if( g->p->special >= COST_BEAM )
     148                    if(g->p->special >= COST_BEAM)
    149149                    {
    150150                        g->p->special -= COST_BEAM;
    151                         add_weapon( g, g->wp, (g->p->x + 2) << 4, g->p->y << 4, 0, 0, WEAPON_BEAM );
     151                        add_weapon(g, g->wp, (g->p->x + 2) << 4, g->p->y << 4, 0, 0, WEAPON_BEAM);
    152152                    }
    153153                    break;
    154154                case ' ':
    155                     if( g->p->weapon == 0 )
     155                    if(g->p->weapon == 0)
    156156                    {
    157157                        g->p->weapon = 4;
    158                         add_weapon( g, g->wp, g->p->x << 4, g->p->y << 4, 0, -32, WEAPON_LASER );
    159                         add_weapon( g, g->wp, (g->p->x + 5) << 4, g->p->y << 4, 0, -32, WEAPON_LASER );
     158                        add_weapon(g, g->wp, g->p->x << 4, g->p->y << 4, 0, -32, WEAPON_LASER);
     159                        add_weapon(g, g->wp, (g->p->x + 5) << 4, g->p->y << 4, 0, -32, WEAPON_LASER);
    160160                        /* Extra schtuph */
    161                         add_weapon( g, g->wp, g->p->x << 4, g->p->y << 4, -24, -16, WEAPON_SEEKER );
    162                         add_weapon( g, g->wp, (g->p->x + 5) << 4, g->p->y << 4, 24, -16, WEAPON_SEEKER );
     161                        add_weapon(g, g->wp, g->p->x << 4, g->p->y << 4, -24, -16, WEAPON_SEEKER);
     162                        add_weapon(g, g->wp, (g->p->x + 5) << 4, g->p->y << 4, 24, -16, WEAPON_SEEKER);
    163163                        /* More schtuph */
    164                         add_weapon( g, g->wp, (g->p->x + 1) << 4, (g->p->y - 1) << 4, 0, -32, WEAPON_LASER );
    165                         add_weapon( g, g->wp, (g->p->x + 4) << 4, (g->p->y - 1) << 4, 0, -32, WEAPON_LASER );
     164                        add_weapon(g, g->wp, (g->p->x + 1) << 4, (g->p->y - 1) << 4, 0, -32, WEAPON_LASER);
     165                        add_weapon(g, g->wp, (g->p->x + 4) << 4, (g->p->y - 1) << 4, 0, -32, WEAPON_LASER);
    166166                        /* Even more schtuph */
    167                         add_weapon( g, g->wp, (g->p->x + 2) << 4, (g->p->y - 1) << 4, 0, -32, WEAPON_LASER );
    168                         add_weapon( g, g->wp, (g->p->x + 3) << 4, (g->p->y - 1) << 4, 0, -32, WEAPON_LASER );
     167                        add_weapon(g, g->wp, (g->p->x + 2) << 4, (g->p->y - 1) << 4, 0, -32, WEAPON_LASER);
     168                        add_weapon(g, g->wp, (g->p->x + 3) << 4, (g->p->y - 1) << 4, 0, -32, WEAPON_LASER);
    169169                        /* Extra schtuph */
    170                         add_weapon( g, g->wp, g->p->x << 4, g->p->y << 4, -32, 0, WEAPON_SEEKER );
    171                         add_weapon( g, g->wp, (g->p->x + 5) << 4, g->p->y << 4, 32, 0, WEAPON_SEEKER );
     170                        add_weapon(g, g->wp, g->p->x << 4, g->p->y << 4, -32, 0, WEAPON_SEEKER);
     171                        add_weapon(g, g->wp, (g->p->x + 5) << 4, g->p->y << 4, 32, 0, WEAPON_SEEKER);
    172172                        /* MORE SCHTUPH! */
    173                         add_weapon( g, g->wp, (g->p->x + 2) << 4, g->p->y << 4, 0, -16, WEAPON_BOMB );
     173                        add_weapon(g, g->wp, (g->p->x + 2) << 4, g->p->y << 4, 0, -16, WEAPON_BOMB);
    174174                    }
    175175                    break;
     
    178178        }
    179179
    180         if( !poz || skip )
     180        if(!poz || skip)
    181181        {
    182182            skip = 0;
    183183
    184184            /* XXX: to be removed */
    185             if( GET_RAND(0,10) == 0 )
     185            if(GET_RAND(0,10) == 0)
    186186            {
    187187                int list[3] = { ALIEN_FOO, ALIEN_BAR, ALIEN_BAZ };
    188188
    189                 add_alien( g, g->al, 0, rand() % g->h / 2, list[GET_RAND(0,3)] );
     189                add_alien(g, g->al, 0, rand() % g->h / 2, list[GET_RAND(0,3)]);
    190190            }
    191191
    192192            /* Update game rules */
    193             if( g->t->right[1] - g->t->left[1] == g->t->w )
     193            if(g->t->right[1] - g->t->left[1] == g->t->w)
    194194            {
    195195                g->t->w = 85 - g->t->w;
     
    197197
    198198            /* Scroll and update positions */
    199             collide_player_tunnel( g, g->p, g->t, g->ex );
    200             update_player( g, g->p );
    201             collide_player_tunnel( g, g->p, g->t, g->ex );
    202 
    203             update_starfield( g, g->sf );
    204             update_bonus( g, g->bo );
    205             update_aliens( g, g->al );
    206 
    207             collide_weapons_tunnel( g, g->wp, g->t, g->ex );
    208             collide_weapons_aliens( g, g->wp, g->al, g->ex );
    209             update_weapons( g, g->wp );
    210             collide_weapons_tunnel( g, g->wp, g->t, g->ex );
    211             collide_weapons_aliens( g, g->wp, g->al, g->ex );
    212 
    213             update_explosions( g, g->ex );
    214             update_tunnel( g, g->t );
     199            collide_player_tunnel(g, g->p, g->t, g->ex);
     200            update_player(g, g->p);
     201            collide_player_tunnel(g, g->p, g->t, g->ex);
     202
     203            update_starfield(g, g->sf);
     204            update_bonus(g, g->bo);
     205            update_aliens(g, g->al);
     206
     207            collide_weapons_tunnel(g, g->wp, g->t, g->ex);
     208            collide_weapons_aliens(g, g->wp, g->al, g->ex);
     209            update_weapons(g, g->wp);
     210            collide_weapons_tunnel(g, g->wp, g->t, g->ex);
     211            collide_weapons_aliens(g, g->wp, g->al, g->ex);
     212
     213            update_explosions(g, g->ex);
     214            update_tunnel(g, g->t);
    215215        }
    216216
     
    219219
    220220        /* Print starfield, tunnel, aliens, player and explosions */
    221         draw_starfield( g, g->sf );
    222         draw_aliens( g, g->al );
    223         draw_tunnel( g, g->t );
    224         draw_bonus( g, g->bo );
    225         draw_explosions( g, g->ex );
    226         draw_weapons( g, g->wp );
    227         draw_player( g, g->p );
    228         draw_status( g );
     221        draw_starfield(g, g->sf);
     222        draw_aliens(g, g->al);
     223        draw_tunnel(g, g->t);
     224        draw_bonus(g, g->bo);
     225        draw_explosions(g, g->ex);
     226        draw_weapons(g, g->wp);
     227        draw_player(g, g->p);
     228        draw_status(g);
    229229
    230230        /* Print pause box if needed */
    231         if( poz )
     231        if(poz)
    232232        {
    233233            pausebox->frame++;
    234             draw_box( g, pausebox );
     234            draw_box(g, pausebox);
    235235        }
    236236
     
    241241    }
    242242
    243     if( pausebox )
     243    if(pausebox)
    244244    {
    245         free_box( pausebox );
     245        free_box(pausebox);
    246246    }
    247247
    248     free_starfield( g, g->sf );
    249     free_tunnel( g->t );
    250     free_player( g->p );
     248    free_starfield(g, g->sf);
     249    free_tunnel(g->t);
     250    free_player(g->p);
    251251}
    252252
  • ttyvaders/trunk/src/math.c

    r72 r88  
    44 *                 All Rights Reserved
    55 *
    6  *   $Id: math.c,v 1.2 2002/12/22 23:01:35 sam Exp $
     6 *   $Id$
    77 *
    88 *   This program is free software; you can redistribute it and/or modify
     
    2323#include "common.h"
    2424
    25 int r00t( int a )
     25int r00t(int a)
    2626{
    2727    int x = a > 100000 ? 1000 : a > 1000 ? 100 : a > 10 ? 10 : 1;
    2828
    29     if( a <= 0 )
     29    if(a <= 0)
    3030    {
    3131        return 0;
  • ttyvaders/trunk/src/overlay.c

    r80 r88  
    2525#include "common.h"
    2626
    27 void draw_status( game *g )
     27void draw_status(game *g)
    2828{
    2929    static char dots30[] = "------------------------------";
     
    3131
    3232    /* Draw life jauge */
    33     ee_color( EE_GRAY );
    34     ee_goto( 4, 1 );
    35     ee_putstr( dots30 );
     33    ee_color(EE_GRAY);
     34    ee_goto(4, 1);
     35    ee_putstr(dots30);
    3636
    37     if( g->p->life > MAX_LIFE * 7 / 10 )
     37    if(g->p->life > MAX_LIFE * 7 / 10)
    3838    {
    39         ee_color( EE_GREEN );
     39        ee_color(EE_GREEN);
    4040    }
    41     else if( g->p->life > MAX_LIFE * 3 / 10 )
     41    else if(g->p->life > MAX_LIFE * 3 / 10)
    4242    {
    43         ee_color( EE_YELLOW );
     43        ee_color(EE_YELLOW);
    4444    }
    4545    else
    4646    {
    47         ee_color( EE_RED );
     47        ee_color(EE_RED);
    4848    }
    4949
    50     ee_goto( 4, 1 );
    51     ee_putstr( dashes30 + ( MAX_LIFE - g->p->life ) * 30 / MAX_LIFE );
     50    ee_goto(4, 1);
     51    ee_putstr(dashes30 + (MAX_LIFE - g->p->life) * 30 / MAX_LIFE);
    5252
    53     ee_color( EE_WHITE );
    54     ee_goto( 1, 1 );
    55     ee_putstr( "L |" );
    56     ee_goto( 34, 1 );
    57     ee_putstr( "|" );
     53    ee_color(EE_WHITE);
     54    ee_goto(1, 1);
     55    ee_putstr("L |");
     56    ee_goto(34, 1);
     57    ee_putstr("|");
    5858
    5959    /* Draw weapon jauge */
    60     ee_color( EE_GRAY );
    61     ee_goto( 42, 1 );
    62     ee_putstr( dots30 + 10 );
     60    ee_color(EE_GRAY);
     61    ee_goto(42, 1);
     62    ee_putstr(dots30 + 10);
    6363
    64     if( g->p->special > MAX_SPECIAL * 9 / 10 )
     64    if(g->p->special > MAX_SPECIAL * 9 / 10)
    6565    {
    66         ee_color( EE_WHITE );
     66        ee_color(EE_WHITE);
    6767    }
    68     else if( g->p->special > MAX_SPECIAL * 3 / 10 )
     68    else if(g->p->special > MAX_SPECIAL * 3 / 10)
    6969    {
    70         ee_color( EE_CYAN );
     70        ee_color(EE_CYAN);
    7171    }
    7272    else
    7373    {
    74         ee_color( EE_BLUE );
     74        ee_color(EE_BLUE);
    7575    }
    7676
    77     ee_goto( 42, 1 );
    78     ee_putstr( dashes30 + 10 + ( MAX_SPECIAL - g->p->special ) * 20 / MAX_SPECIAL );
     77    ee_goto(42, 1);
     78    ee_putstr(dashes30 + 10 + (MAX_SPECIAL - g->p->special) * 20 / MAX_SPECIAL);
    7979
    80     ee_color( EE_WHITE );
    81     ee_goto( 39, 1 );
    82     ee_putstr( "S |" );
    83     ee_goto( 62, 1 );
    84     ee_putstr( "|" );
     80    ee_color(EE_WHITE);
     81    ee_goto(39, 1);
     82    ee_putstr("S |");
     83    ee_goto(62, 1);
     84    ee_putstr("|");
    8585}
    8686
  • ttyvaders/trunk/src/player.c

    r80 r88  
    2626
    2727/* Init tunnel */
    28 player * create_player( game *g )
     28player * create_player(game *g)
    2929{
    3030    player *p = malloc(sizeof(player));
     
    4242}
    4343
    44 void free_player( player *p )
     44void free_player(player *p)
    4545{
    46     free( p );
     46    free(p);
    4747}
    4848
    49 void draw_player( game *g, player *p )
     49void draw_player(game *g, player *p)
    5050{
    51     if( p->dead )
     51    if(p->dead)
    5252    {
    5353        return;
    5454    }
    5555
    56     ee_goto( p->x + 2, p->y - 2 );
    57     ee_color( EE_GREEN );
    58     ee_putstr( "/\\" );
    59     ee_goto( p->x + 1, p->y - 1 );
    60     ee_putchar( '(' );
    61     ee_color( EE_YELLOW );
    62     ee_putstr( "()" );
    63     ee_color( EE_GREEN );
    64     ee_putchar( ')' );
    65     ee_goto( p->x, p->y );
    66     ee_color( EE_GREEN );
    67     ee_putstr( "I<__>I" );
     56    ee_goto(p->x + 2, p->y - 2);
     57    ee_color(EE_GREEN);
     58    ee_putstr("/\\");
     59    ee_goto(p->x + 1, p->y - 1);
     60    ee_putchar('(');
     61    ee_color(EE_YELLOW);
     62    ee_putstr("()");
     63    ee_color(EE_GREEN);
     64    ee_putchar(')');
     65    ee_goto(p->x, p->y);
     66    ee_color(EE_GREEN);
     67    ee_putstr("I<__>I");
    6868}
    6969
    70 void update_player( game *g, player *p )
     70void update_player(game *g, player *p)
    7171{
    72     if( p->dead )
     72    if(p->dead)
    7373    {
    7474        return;
    7575    }
    7676
    77     if( p->life <= 0 )
     77    if(p->life <= 0)
    7878    {
    79         add_explosion( g, g->ex, p->x, p->y, 0, 0, EXPLOSION_SMALL );
     79        add_explosion(g, g->ex, p->x, p->y, 0, 0, EXPLOSION_SMALL);
    8080        p->dead = 1;
    8181        return;
     
    8383
    8484    /* Update weapon stats */
    85     if( p->weapon )
     85    if(p->weapon)
    8686    {
    8787        p->weapon--;
    8888    }
    8989
    90     if( p->special < MAX_SPECIAL )
     90    if(p->special < MAX_SPECIAL)
    9191    {
    9292        p->special++;
     
    9494
    9595    /* Update life */
    96     if( p->life < MAX_LIFE )
     96    if(p->life < MAX_LIFE)
    9797    {
    9898        p->life++;
     
    102102    p->x += p->vx;
    103103
    104     if( p->vx < 0 )
     104    if(p->vx < 0)
    105105    {
    106106        p->vx++;
    107107    }
    108     else if( p->vx > 0 )
     108    else if(p->vx > 0)
    109109    {
    110110        p->vx--;
    111111    }
    112112
    113     if( p->x < 1 )
     113    if(p->x < 1)
    114114    {
    115115        p->x = 1;
    116116    }
    117     else if( p->x > g->w - 7 )
     117    else if(p->x > g->w - 7)
    118118    {
    119119        p->x = g->w - 7;
  • ttyvaders/trunk/src/starfield.c

    r80 r88  
    2525#include "common.h"
    2626
    27 starfield * create_starfield( game *g )
     27starfield * create_starfield(game *g)
    2828{
    2929    int i;
    3030    starfield *s;
    3131
    32     s = malloc( STARS * sizeof(starfield) );
     32    s = malloc(STARS * sizeof(starfield));
    3333
    34     for( i = 0; i < STARS; i++ )
     34    for(i = 0; i < STARS; i++)
    3535    {
    36         s[i].x = GET_RAND( 0, g->w );
    37         s[i].y = GET_RAND( 0, g->h );
    38         s[i].z = GET_RAND( 1, 4 );
    39         s[i].c = GET_RAND( 6, 8 );
    40         s[i].ch = GET_RAND( 0, 2 ) ? '.' : '\'';
     36        s[i].x = GET_RAND(0, g->w);
     37        s[i].y = GET_RAND(0, g->h);
     38        s[i].z = GET_RAND(1, 4);
     39        s[i].c = GET_RAND(6, 8);
     40        s[i].ch = GET_RAND(0, 2) ? '.' : '\'';
    4141    }
    4242
     
    4444}
    4545
    46 void draw_starfield( game *g, starfield *s )
     46void draw_starfield(game *g, starfield *s)
    4747{
    4848    int i;
    4949
    50     for( i = 0; i < STARS; i++ )
     50    for(i = 0; i < STARS; i++)
    5151    {
    52         if( s[i].x >= 0 )
     52        if(s[i].x >= 0)
    5353        {
    54             ee_color( s[i].c );
    55             ee_goto( s[i].x, s[i].y );
    56             ee_putchar( s[i].ch );
     54            ee_color(s[i].c);
     55            ee_goto(s[i].x, s[i].y);
     56            ee_putchar(s[i].ch);
    5757        }
    5858    }
    5959}
    6060
    61 void update_starfield( game *g, starfield *s )
     61void update_starfield(game *g, starfield *s)
    6262{
    6363    int i;
    6464
    65     for( i = 0; i < STARS; i++ )
     65    for(i = 0; i < STARS; i++)
    6666    {
    67         if( s[i].x < 0 )
     67        if(s[i].x < 0)
    6868        {
    69             s[i].x = GET_RAND( 0, g->w );
     69            s[i].x = GET_RAND(0, g->w);
    7070            s[i].y = 0;
    71             s[i].z = GET_RAND( 1, 3 );
    72             s[i].c = GET_RAND( 6, 8 );
    73             s[i].ch = GET_RAND( 0, 2 ) ? '.' : '\'';
     71            s[i].z = GET_RAND(1, 3);
     72            s[i].c = GET_RAND(6, 8);
     73            s[i].ch = GET_RAND(0, 2) ? '.' : '\'';
    7474        }
    75         else if( s[i].y < g->h-1 )
     75        else if(s[i].y < g->h-1)
    7676        {
    7777            s[i].y += s[i].z;
     
    8484}
    8585
    86 void free_starfield( game *g, starfield *s )
     86void free_starfield(game *g, starfield *s)
    8787{
    88     free( s );
     88    free(s);
    8989}
    9090
  • ttyvaders/trunk/src/tunnel.c

    r80 r88  
    2828
    2929/* Init tunnel */
    30 tunnel * create_tunnel( game *g, int w, int h )
     30tunnel * create_tunnel(game *g, int w, int h)
    3131{
    3232    int i;
     
    3838    t->h = h;
    3939
    40     if( t->w >= g->w )
    41     {
    42         for( i = 0; i < g->h; i++ )
     40    if(t->w >= g->w)
     41    {
     42        for(i = 0; i < g->h; i++)
    4343        {
    4444            t->left[i] = -10;
     
    5151        t->right[0] = (g->w + w) / 2;
    5252        /* Yeah, sub-efficient, but less code to do :-) */
    53         for( i = 0; i < g->h; i++ )
    54         {
    55             update_tunnel( g, t );
     53        for(i = 0; i < g->h; i++)
     54        {
     55            update_tunnel(g, t);
    5656        }
    5757    }
     
    6060}
    6161
    62 void free_tunnel( tunnel *t )
    63 {
    64     free( t->left );
    65     free( t->right );
    66     free( t );
    67 }
    68 
    69 void draw_tunnel( game *g, tunnel *t )
     62void free_tunnel(tunnel *t)
     63{
     64    free(t->left);
     65    free(t->right);
     66    free(t);
     67}
     68
     69void draw_tunnel(game *g, tunnel *t)
    7070{
    7171    int i, j;
    7272    char c;
    7373
    74     ee_color( EE_GREEN );
     74    ee_color(EE_GREEN);
    7575
    7676    /* Left border */
    77     for( i = 0; i < g->h ; i++ )
    78     {
    79         if( t->left[i] <= -10 )
     77    for(i = 0; i < g->h ; i++)
     78    {
     79        if(t->left[i] <= -10)
    8080        {
    8181            continue;
    8282        }
    8383
    84         if( i + 1 == g->h || t->left[i] > t->left[i+1] )
    85         {
    86             c = ( i == 0 || t->left[i] > t->left[i-1] ) ? '>' : '/';
     84        if(i + 1 == g->h || t->left[i] > t->left[i+1])
     85        {
     86            c = (i == 0 || t->left[i] > t->left[i-1]) ? '>' : '/';
    8787        }
    8888        else
    8989        {
    90             c = ( i == 0 || t->left[i] > t->left[i-1] ) ? '\\' : '<';
    91         }
    92 
    93         ee_goto( t->left[i] + 1, i );
    94         ee_putchar( c );
    95 
    96         if( i + 1 < g->h )
    97         {
    98             for( j = 1; j < t->left[i+1] - t->left[i]; j++ )
     90            c = (i == 0 || t->left[i] > t->left[i-1]) ? '\\' : '<';
     91        }
     92
     93        ee_goto(t->left[i] + 1, i);
     94        ee_putchar(c);
     95
     96        if(i + 1 < g->h)
     97        {
     98            for(j = 1; j < t->left[i+1] - t->left[i]; j++)
    9999            {
    100                 ee_goto( t->left[i] + j + 1, i );
    101                 ee_putchar( '_' );
     100                ee_goto(t->left[i] + j + 1, i);
     101                ee_putchar('_');
    102102            }
    103103        }
     
    105105
    106106    /* Right border */
    107     for( i = 0; i < g->h ; i++ )
    108     {
    109         if( t->right[i] >= g->w + 10 )
     107    for(i = 0; i < g->h ; i++)
     108    {
     109        if(t->right[i] >= g->w + 10)
    110110        {
    111111            continue;
    112112        }
    113113
    114         if( i + 1 == g->h || t->right[i] > t->right[i+1] )
    115         {
    116             c = ( i == 0 || t->right[i] > t->right[i-1] ) ? '>' : '/';
     114        if(i + 1 == g->h || t->right[i] > t->right[i+1])
     115        {
     116            c = (i == 0 || t->right[i] > t->right[i-1]) ? '>' : '/';
    117117        }
    118118        else
    119119        {
    120             c = ( i == 0 || t->right[i] > t->right[i-1] ) ? '\\' : '<';
    121         }
    122 
    123         if( i + 1 < g->h )
    124         {
    125             for( j = 1; j < t->right[i] - t->right[i+1]; j++ )
     120            c = (i == 0 || t->right[i] > t->right[i-1]) ? '\\' : '<';
     121        }
     122
     123        if(i + 1 < g->h)
     124        {
     125            for(j = 1; j < t->right[i] - t->right[i+1]; j++)
    126126            {
    127                 ee_goto( t->right[i+1] + j - 1, i );
    128                 ee_putchar( '_' );
     127                ee_goto(t->right[i+1] + j - 1, i);
     128                ee_putchar('_');
    129129            }
    130130        }
    131131
    132         ee_goto( t->right[i] - 1, i );
    133         ee_putchar( c );
    134     }
    135 
    136     ee_color( EE_RED );
     132        ee_goto(t->right[i] - 1, i);
     133        ee_putchar(c);
     134    }
     135
     136    ee_color(EE_RED);
    137137
    138138    /* Left concrete */
    139     for( i = 0; i < g->h ; i++ )
    140     {
    141         for( j = 0 ; j <= t->left[i]; j++ )
    142         {
    143             ee_goto( j, i );
    144             ee_putchar( '#' );
     139    for(i = 0; i < g->h ; i++)
     140    {
     141        for(j = 0 ; j <= t->left[i]; j++)
     142        {
     143            ee_goto(j, i);
     144            ee_putchar('#');
    145145        }
    146146    }
    147147
    148148    /* Right concrete */
    149     for( i = 0; i < g->h ; i++ )
    150     {
    151         for( j = t->right[i] ; j < g->w ; j++ )
    152         {
    153             ee_goto( j, i );
    154             ee_putchar( '#' );
    155         }
    156     }
    157 }
    158 
    159 void update_tunnel( game *g, tunnel *t )
     149    for(i = 0; i < g->h ; i++)
     150    {
     151        for(j = t->right[i] ; j < g->w ; j++)
     152        {
     153            ee_goto(j, i);
     154            ee_putchar('#');
     155        }
     156    }
     157}
     158
     159void update_tunnel(game *g, tunnel *t)
    160160{
    161161    static int const delta[] = { -3, -2, -1, 1, 2, 3 };
     
    163163
    164164    /* Slide tunnel one block vertically */
    165     for( i = t->h - 1; i--; )
     165    for(i = t->h - 1; i--;)
    166166    {
    167167        t->left[i+1] = t->left[i];
     
    174174
    175175    /* Check in which direction we need to alter tunnel */
    176     if( t->right[1] - t->left[1] < t->w )
     176    if(t->right[1] - t->left[1] < t->w)
    177177    {
    178178        /* Not wide enough, make sure i <= j */
    179         if( i > j )
     179        if(i > j)
    180180        {
    181181            k = j; j = i; i = k;
    182182        }
    183183    }
    184     else if( t->right[1] - t->left[1] - 2 > t->w )
     184    else if(t->right[1] - t->left[1] - 2 > t->w)
    185185    {
    186186        /* Too wide, make sure i >= j */
    187         if( i < j )
     187        if(i < j)
    188188        {
    189189            k = j; j = i; i = k;
     
    196196
    197197    /* If width doesn't exceed game size, update coords */
    198     if( t->w <= g->w || t->right[1] - t->left[1] < t->w )
     198    if(t->w <= g->w || t->right[1] - t->left[1] < t->w)
    199199    {
    200200        t->left[0] = t->left[1] + i;
     
    207207    }
    208208
    209     if( t->w > g->w )
    210     {
    211         if( t->left[0] < 0 && t->right[0] < g->w - 2 )
     209    if(t->w > g->w)
     210    {
     211        if(t->left[0] < 0 && t->right[0] < g->w - 2)
    212212        {
    213213             t->left[0] = t->left[1] + 1;
    214214        }
    215215
    216         if( t->left[0] > 1 && t->right[0] > g->w - 1 )
     216        if(t->left[0] > 1 && t->right[0] > g->w - 1)
    217217        {
    218218             t->right[0] = t->right[1] - 1;
     
    221221    else
    222222    {
    223         if( t->left[0] < 0 )
     223        if(t->left[0] < 0)
    224224        {
    225225            t->left[0] = t->left[1] + 1;
    226226        }
    227227
    228         if( t->right[0] > g->w - 1 )
     228        if(t->right[0] > g->w - 1)
    229229        {
    230230            t->right[0] = t->right[1] - 1;
  • ttyvaders/trunk/src/weapons.c

    r80 r88  
    2525#include "common.h"
    2626
    27 static void draw_bomb( int x, int y, int vx, int vy );
    28 static void draw_nuke( int x, int y, int frame );
    29 static void draw_beam( int x, int y, int frame );
    30 static void draw_circle( int x, int y, int r, char c );
    31 static void draw_fragbomb( int x, int y, int frame );
    32 
    33 void init_weapons( game *g, weapons *wp )
     27static void draw_bomb(int x, int y, int vx, int vy);
     28static void draw_nuke(int x, int y, int frame);
     29static void draw_beam(int x, int y, int frame);
     30static void draw_circle(int x, int y, int r, char c);
     31static void draw_fragbomb(int x, int y, int frame);
     32
     33void init_weapons(game *g, weapons *wp)
    3434{
    3535    int i;
    3636
    37     for( i = 0; i < WEAPONS; i++ )
     37    for(i = 0; i < WEAPONS; i++)
    3838    {
    3939        wp->type[i] = WEAPON_NONE;
     
    4141}
    4242
    43 void draw_weapons( game *g, weapons *wp )
     43void draw_weapons(game *g, weapons *wp)
    4444{
    4545    int i;
    4646
    47     for( i = 0; i < WEAPONS; i++ )
    48     {
    49         switch( wp->type[i] )
     47    for(i = 0; i < WEAPONS; i++)
     48    {
     49        switch(wp->type[i])
    5050        {
    5151            case WEAPON_LASER:
    52                 ee_color( EE_WHITE );
    53                 ee_goto( wp->x[i] >> 4, wp->y[i] >> 4 );
    54                 ee_putchar( '|' );
    55                 ee_color( EE_CYAN );
    56                 ee_goto( wp->x[i] >> 4, (wp->y[i] >> 4) + 1 );
    57                 ee_putchar( '|' );
     52                ee_color(EE_WHITE);
     53                ee_goto(wp->x[i] >> 4, wp->y[i] >> 4);
     54                ee_putchar('|');
     55                ee_color(EE_CYAN);
     56                ee_goto(wp->x[i] >> 4, (wp->y[i] >> 4) + 1);
     57                ee_putchar('|');
    5858                break;
    5959            case WEAPON_SEEKER:
    60                 ee_color( EE_CYAN );
    61                 ee_goto( wp->x3[i] >> 4, wp->y3[i] >> 4 );
    62                 ee_putchar( '.' );
    63                 ee_goto( wp->x2[i] >> 4, wp->y2[i] >> 4 );
    64                 ee_putchar( 'o' );
    65                 ee_color( EE_WHITE );
    66                 ee_goto( wp->x[i] >> 4, wp->y[i] >> 4 );
    67                 ee_putchar( '@' );
     60                ee_color(EE_CYAN);
     61                ee_goto(wp->x3[i] >> 4, wp->y3[i] >> 4);
     62                ee_putchar('.');
     63                ee_goto(wp->x2[i] >> 4, wp->y2[i] >> 4);
     64                ee_putchar('o');
     65                ee_color(EE_WHITE);
     66                ee_goto(wp->x[i] >> 4, wp->y[i] >> 4);
     67                ee_putchar('@');
    6868                break;
    6969            case WEAPON_BOMB:
    70                 ee_color( EE_GRAY );
    71                 ee_goto( (wp->x[i] - wp->vx[i]) >> 4, (wp->y[i] - wp->vy[i]) >> 4 );
    72                 ee_putchar( '.' );
    73                 ee_goto( (wp->x3[i] - wp->vx[i]) >> 4, (wp->y3[i] - wp->vy[i]) >> 4 );
    74                 ee_putchar( '.' );
    75                 ee_goto( (wp->x2[i] - wp->vx[i]) >> 4, (wp->y2[i] - wp->vy[i]) >> 4 );
    76                 ee_putchar( '.' );
    77                 ee_goto( wp->x3[i] >> 4, wp->y3[i] >> 4 );
    78                 ee_putchar( '.' );
    79                 ee_goto( wp->x2[i] >> 4, wp->y2[i] >> 4 );
    80                 ee_putchar( '.' );
    81                 draw_bomb( wp->x[i] >> 4, wp->y[i] >> 4, wp->vx[i], wp->vy[i] );
     70                ee_color(EE_GRAY);
     71                ee_goto((wp->x[i] - wp->vx[i]) >> 4, (wp->y[i] - wp->vy[i]) >> 4);
     72                ee_putchar('.');
     73                ee_goto((wp->x3[i] - wp->vx[i]) >> 4, (wp->y3[i] - wp->vy[i]) >> 4);
     74                ee_putchar('.');
     75                ee_goto((wp->x2[i] - wp->vx[i]) >> 4, (wp->y2[i] - wp->vy[i]) >> 4);
     76                ee_putchar('.');
     77                ee_goto(wp->x3[i] >> 4, wp->y3[i] >> 4);
     78                ee_putchar('.');
     79                ee_goto(wp->x2[i] >> 4, wp->y2[i] >> 4);
     80                ee_putchar('.');
     81                draw_bomb(wp->x[i] >> 4, wp->y[i] >> 4, wp->vx[i], wp->vy[i]);
    8282                break;
    8383            case WEAPON_FRAGBOMB:
    84                 draw_fragbomb( wp->x[i] >> 4, wp->y[i] >> 4, wp->n[i] );
     84                draw_fragbomb(wp->x[i] >> 4, wp->y[i] >> 4, wp->n[i]);
    8585                break;
    8686            case WEAPON_BEAM:
    87                 draw_beam( wp->x[i] >> 4, wp->y[i] >> 4, wp->n[i] );
     87                draw_beam(wp->x[i] >> 4, wp->y[i] >> 4, wp->n[i]);
    8888                break;
    8989            case WEAPON_NUKE:
    90                 draw_nuke( wp->x[i] >> 4, wp->y[i] >> 4, wp->n[i] );
     90                draw_nuke(wp->x[i] >> 4, wp->y[i] >> 4, wp->n[i]);
    9191                break;
    9292            case WEAPON_LIGHTNING:
     
    9797}
    9898
    99 void update_weapons( game *g, weapons *wp )
     99void update_weapons(game *g, weapons *wp)
    100100{
    101101    int i, j, dist, xmin, ymin, dx, dy, xnew, ynew;
    102102
    103     for( i = 0; i < WEAPONS; i++ )
    104     {
    105         switch( wp->type[i] )
     103    for(i = 0; i < WEAPONS; i++)
     104    {
     105        switch(wp->type[i])
    106106        {
    107107            case WEAPON_LASER:
    108108                wp->x[i] += wp->vx[i];
    109109                wp->y[i] += wp->vy[i];
    110                 if( wp->y[i] < 0 )
     110                if(wp->y[i] < 0)
    111111                {
    112112                    wp->type[i] = WEAPON_NONE;
     
    125125                wp->y[i] += wp->vy[i];
    126126
    127                 if( wp->y[i] < 0 )
     127                if(wp->y[i] < 0)
    128128                {
    129129                    wp->type[i] = WEAPON_NONE;
     
    131131                }
    132132
    133                 if( wp->n[i] < 0 )
     133                if(wp->n[i] < 0)
    134134                {
    135135                    /* Stop updating direction */
     
    149149
    150150                /* Find the nearest alien */
    151                 for( j = 0; j < ALIENS; j++ )
    152                 {
    153                     if( g->al->type[j] != ALIEN_NONE )
     151                for(j = 0; j < ALIENS; j++)
     152                {
     153                    if(g->al->type[j] != ALIEN_NONE)
    154154                    {
    155155                        int alx = g->al->x[j] << 4;
     
    157157                        int new = (xnew - alx) * (xnew - alx)
    158158                                   + 4 * (ynew - aly) * (ynew - aly);
    159                         if( new <= dist )
     159                        if(new <= dist)
    160160                        {
    161161                            dist = new;
     
    171171
    172172                /* Normalize direction */
    173                 if( dx | dy )
    174                 {
    175                     int norm = r00t( dx * dx + 4 * dy * dy );
     173                if(dx | dy)
     174                {
     175                    int norm = r00t(dx * dx + 4 * dy * dy);
    176176                    dx = dx * 32 / norm;
    177177                    dy = dy * 32 / norm;
     
    183183
    184184                /* Normalize speed */
    185                 if( dx | dy )
    186                 {
    187                     int norm = r00t( dx * dx + 4 * dy * dy );
     185                if(dx | dy)
     186                {
     187                    int norm = r00t(dx * dx + 4 * dy * dy);
    188188                    wp->vx[i] = dx * 32 / norm;
    189189                    wp->vy[i] = dy * 32 / norm;
     
    194194            case WEAPON_FRAGBOMB:
    195195                /* If n was set to -1, the fragbomb just exploded */
    196                 if( wp->n[i] == -1 )
     196                if(wp->n[i] == -1)
    197197                {
    198198                    int coords[] =
     
    204204                    };
    205205
    206                     for( j = 0 ; j < sizeof(coords) / sizeof(int) ; j += 2 )
     206                    for(j = 0 ; j < sizeof(coords) / sizeof(int) ; j += 2)
    207207                    {
    208                         add_weapon( g, g->wp, wp->x[i] + coords[j], wp->y[i] + coords[j+1] / 2, coords[j], coords[j+1], WEAPON_SEEKER );
    209                         add_weapon( g, g->wp, wp->x[i] + coords[j] / 2, wp->y[i] + coords[j+1], coords[j], coords[j+1], WEAPON_SEEKER );
     208                        add_weapon(g, g->wp, wp->x[i] + coords[j], wp->y[i] + coords[j+1] / 2, coords[j], coords[j+1], WEAPON_SEEKER);
     209                        add_weapon(g, g->wp, wp->x[i] + coords[j] / 2, wp->y[i] + coords[j+1], coords[j], coords[j+1], WEAPON_SEEKER);
    210210                    }
    211211
     
    216216                wp->y[i] += wp->vy[i];
    217217                wp->n[i]++;
    218                 if( wp->y[i] < 0 )
     218                if(wp->y[i] < 0)
    219219                {
    220220                    wp->type[i] = WEAPON_NONE;
     
    226226                wp->y[i] = g->p->y << 4;
    227227                wp->n[i]--;
    228                 if( wp->n[i] < 0 )
     228                if(wp->n[i] < 0)
    229229                {
    230230                    wp->type[i] = WEAPON_NONE;
     
    233233            case WEAPON_NUKE:
    234234                wp->n[i]--;
    235                 if( wp->n[i] < 0 )
     235                if(wp->n[i] < 0)
    236236                {
    237237                    wp->type[i] = WEAPON_NONE;
     
    245245}
    246246
    247 void add_weapon( game *g, weapons *wp, int x, int y, int vx, int vy, int type )
     247void add_weapon(game *g, weapons *wp, int x, int y, int vx, int vy, int type)
    248248{
    249249    int i;
    250250
    251     for( i = 0; i < WEAPONS; i++ )
    252     {
    253         if( wp->type[i] == WEAPON_NONE )
     251    for(i = 0; i < WEAPONS; i++)
     252    {
     253        if(wp->type[i] == WEAPON_NONE)
    254254        {
    255255            wp->x[i] = x;
     
    259259            wp->type[i] = type;
    260260            wp->n[i] = 0;
    261             switch( type )
     261            switch(type)
    262262            {
    263263                case WEAPON_LASER:
     
    287287}
    288288
    289 static void draw_bomb( int x, int y, int vx, int vy )
     289static void draw_bomb(int x, int y, int vx, int vy)
    290290{
    291291    vy *= 2;
    292     ee_color( EE_CYAN );
    293 
    294     if( vx > vy )
    295     {
    296         if( vx > -vy ) /* right quarter */
     292    ee_color(EE_CYAN);
     293
     294    if(vx > vy)
     295    {
     296        if(vx > -vy) /* right quarter */
    297297        {
    298             if( vy > vx/4 )
     298            if(vy > vx/4)
    299299            {
    300300                /* -1pi/6 */
    301                 ee_goto( x-4, y-1 );
    302                 ee_putstr( "/`-." );
    303                 ee_goto( x-4, y );
    304                 ee_putstr( "`-._\\" );
    305                 ee_color( EE_WHITE );
    306                 ee_goto( x-1, y );
    307                 ee_putstr( "_\\" );
    308                 ee_goto( x, y+1 );
    309                 ee_putchar( '`' );
    310             }
    311             else if( vy < -vx/4 )
     301                ee_goto(x-4, y-1);
     302                ee_putstr("/`-.");
     303                ee_goto(x-4, y);
     304                ee_putstr("`-._\\");
     305                ee_color(EE_WHITE);
     306                ee_goto(x-1, y);
     307                ee_putstr("_\\");
     308                ee_goto(x, y+1);
     309                ee_putchar('`');
     310            }
     311            else if(vy < -vx/4)
    312312            {
    313313                /* 1pi/6 */
    314                 ee_goto( x-4, y );
    315                 ee_putstr( ",-' " );
    316                 ee_goto( x-4, y+1 );
    317                 ee_putstr( "\\,-'" );
    318                 ee_color( EE_WHITE );
    319                 ee_goto( x-1, y-1 );
    320                 ee_putstr( "_," );
    321                 ee_goto( x, y );
    322                 ee_putchar( '/' );
     314                ee_goto(x-4, y);
     315                ee_putstr(",-' ");
     316                ee_goto(x-4, y+1);
     317                ee_putstr("\\,-'");
     318                ee_color(EE_WHITE);
     319                ee_goto(x-1, y-1);
     320                ee_putstr("_,");
     321                ee_goto(x, y);
     322                ee_putchar('/');
    323323            }
    324324            else
    325325            {
    326326                /* 0pi/6 */
    327                 ee_goto( x-4, y-1 );
    328                 ee_putstr( "____" );
    329                 ee_goto( x-5, y );
    330                 ee_putstr( "|____" );
    331                 ee_color( EE_WHITE );
    332                 ee_goto( x, y );
    333                 ee_putchar( '>' );
     327                ee_goto(x-4, y-1);
     328                ee_putstr("____");
     329                ee_goto(x-5, y);
     330                ee_putstr("|____");
     331                ee_color(EE_WHITE);
     332                ee_goto(x, y);
     333                ee_putchar('>');
    334334            }
    335335        }
    336336        else /* top quarter */
    337337        {
    338             if( vx > -vy/4 )
     338            if(vx > -vy/4)
    339339            {
    340340                /* 2pi/6 */
    341                 ee_goto( x-2, y );
    342                 ee_putstr( "/ " );
    343                 ee_goto( x-3, y+1 );
    344                 ee_putstr( "/ /" );
    345                 ee_goto( x-3, y+2 );
    346                 ee_putstr( "`'" );
    347                 ee_color( EE_WHITE );
    348                 ee_goto( x-1, y-1 );
    349                 ee_putstr( "_," );
    350                 ee_goto( x, y );
    351                 ee_putchar( '|' );
    352             }
    353             else if( vx < vy/4 )
     341                ee_goto(x-2, y);
     342                ee_putstr("/ ");
     343                ee_goto(x-3, y+1);
     344                ee_putstr("/ /");
     345                ee_goto(x-3, y+2);
     346                ee_putstr("`'");
     347                ee_color(EE_WHITE);
     348                ee_goto(x-1, y-1);
     349                ee_putstr("_,");
     350                ee_goto(x, y);
     351                ee_putchar('|');
     352            }
     353            else if(vx < vy/4)
    354354            {
    355355                /* 4pi/6 */
    356                 ee_goto( x+1, y );
    357                 ee_putstr( " \\" );
    358                 ee_goto( x+1, y+1 );
    359                 ee_putstr( "\\ \\" );
    360                 ee_goto( x+2, y+2 );
    361                 ee_putstr( "`'" );
    362                 ee_color( EE_WHITE );
    363                 ee_goto( x, y-1 );
    364                 ee_putstr( "._" );
    365                 ee_goto( x, y );
    366                 ee_putchar( '|' );
     356                ee_goto(x+1, y);
     357                ee_putstr(" \\");
     358                ee_goto(x+1, y+1);
     359                ee_putstr("\\ \\");
     360                ee_goto(x+2, y+2);
     361                ee_putstr("`'");
     362                ee_color(EE_WHITE);
     363                ee_goto(x, y-1);
     364                ee_putstr("._");
     365                ee_goto(x, y);
     366                ee_putchar('|');
    367367            }
    368368            else
    369369            {
    370370                /* 3pi/6 */
    371                 ee_goto( x-1, y+1 );
    372                 ee_putstr( "| |" );
    373                 ee_goto( x-1, y+2 );
    374                 ee_putstr( "|_|" );
    375                 ee_color( EE_WHITE );
    376                 ee_goto( x-1, y );
    377                 ee_putstr( ",^." );
     371                ee_goto(x-1, y+1);
     372                ee_putstr("| |");
     373                ee_goto(x-1, y+2);
     374                ee_putstr("|_|");
     375                ee_color(EE_WHITE);
     376                ee_goto(x-1, y);
     377                ee_putstr(",^.");
    378378            }
    379379        }
     
    381381    else
    382382    {
    383         if( vx > -vy ) /* bottom quarter */
     383        if(vx > -vy) /* bottom quarter */
    384384        {
    385             if( vx > vy/4 )
     385            if(vx > vy/4)
    386386            {
    387387                /* -2pi/6 */
    388                 ee_goto( x-2, y-2 );
    389                 ee_putstr( ",." );
    390                 ee_goto( x-2, y-1 );
    391                 ee_putstr( "\\ \\" );
    392                 ee_goto( x-1, y );
    393                 ee_putchar( '\\' );
    394                 ee_color( EE_WHITE );
    395                 ee_goto( x, y );
    396                 ee_putstr( "_|" );
    397             }
    398             else if( vx < -vy/4 )
     388                ee_goto(x-2, y-2);
     389                ee_putstr(",.");
     390                ee_goto(x-2, y-1);
     391                ee_putstr("\\ \\");
     392                ee_goto(x-1, y);
     393                ee_putchar('\\');
     394                ee_color(EE_WHITE);
     395                ee_goto(x, y);
     396                ee_putstr("_|");
     397            }
     398            else if(vx < -vy/4)
    399399            {
    400400                /* -4pi/6 */
    401                 ee_goto( x+1, y-2 );
    402                 ee_putstr( ",." );
    403                 ee_goto( x, y-1 );
    404                 ee_putstr( "/ /" );
    405                 ee_goto( x+1, y );
    406                 ee_putchar( '/' );
    407                 ee_color( EE_WHITE );
    408                 ee_goto( x-1, y );
    409                 ee_putstr( "|_/" );
     401                ee_goto(x+1, y-2);
     402                ee_putstr(",.");
     403                ee_goto(x, y-1);
     404                ee_putstr("/ /");
     405                ee_goto(x+1, y);
     406                ee_putchar('/');
     407                ee_color(EE_WHITE);
     408                ee_goto(x-1, y);
     409                ee_putstr("|_/");
    410410            }
    411411            else
    412412            {
    413413                /* -3pi/6 */
    414                 ee_goto( x, y-3 );
    415                 ee_putchar( '_' );
    416                 ee_goto( x-1, y-2 );
    417                 ee_putstr( "| |" );
    418                 ee_goto( x-1, y-1 );
    419                 ee_putstr( "| |" );
    420                 ee_color( EE_WHITE );
    421                 ee_goto( x-1, y );
    422                 ee_putstr( "`v'" );
     414                ee_goto(x, y-3);
     415                ee_putchar('_');
     416                ee_goto(x-1, y-2);
     417                ee_putstr("| |");
     418                ee_goto(x-1, y-1);
     419                ee_putstr("| |");
     420                ee_color(EE_WHITE);
     421                ee_goto(x-1, y);
     422                ee_putstr("`v'");
    423423            }
    424424        }
    425425        else /* left quarter */
    426426        {
    427             if( vy > -vx/4 )
     427            if(vy > -vx/4)
    428428            {
    429429                /* -5pi/6 */
    430                 ee_goto( x+1, y-1 );
    431                 ee_putstr( ",-'\\" );
    432                 ee_goto( x+2, y );
    433                 ee_putstr( ",-'" );
    434                 ee_goto( x, y+1 );
    435                 ee_putchar( '\'' );
    436                 ee_color( EE_WHITE );
    437                 ee_goto( x, y );
    438                 ee_putstr( "/_" );
    439             }
    440             else if( vy < vx/4 )
     430                ee_goto(x+1, y-1);
     431                ee_putstr(",-'\\");
     432                ee_goto(x+2, y);
     433                ee_putstr(",-'");
     434                ee_goto(x, y+1);
     435                ee_putchar('\'');
     436                ee_color(EE_WHITE);
     437                ee_goto(x, y);
     438                ee_putstr("/_");
     439            }
     440            else if(vy < vx/4)
    441441            {
    442442                /* 5pi/6 */
    443                 ee_goto( x+1, y );
    444                 ee_putstr( " `-." );
    445                 ee_goto( x+1, y+1 );
    446                 ee_putstr( "`-./" );
    447                 ee_color( EE_WHITE );
    448                 ee_goto( x, y-1 );
    449                 ee_putstr( "._" );
    450                 ee_goto( x, y );
    451                 ee_putchar( '\\' );
     443                ee_goto(x+1, y);
     444                ee_putstr(" `-.");
     445                ee_goto(x+1, y+1);
     446                ee_putstr("`-./");
     447                ee_color(EE_WHITE);
     448                ee_goto(x, y-1);
     449                ee_putstr("._");
     450                ee_goto(x, y);
     451                ee_putchar('\\');
    452452            }
    453453            else
    454454            {
    455455                /* 6pi/6 */
    456                 ee_goto( x+1, y-1 );
    457                 ee_putstr( "____" );
    458                 ee_goto( x+1, y );
    459                 ee_putstr( "____|" );
    460                 ee_color( EE_WHITE );
    461                 ee_goto( x, y );
    462                 ee_putchar( '<' );
     456                ee_goto(x+1, y-1);
     457                ee_putstr("____");
     458                ee_goto(x+1, y);
     459                ee_putstr("____|");
     460                ee_color(EE_WHITE);
     461                ee_goto(x, y);
     462                ee_putchar('<');
    463463            }
    464464        }
     
    466466}
    467467
    468 static void draw_fragbomb( int x, int y, int frame )
    469 {
    470     ee_color( EE_WHITE );
    471 
    472     ee_color( frame & 1 ? EE_CYAN : EE_WHITE );
    473     ee_goto( x-2, y );
    474     ee_putstr( "(    )" );
    475     ee_goto( x-1, y+1 );
    476     ee_putstr( "`--'" );
    477 
    478     ee_color( frame & 1 ? EE_WHITE : EE_CYAN );
    479     ee_goto( x-1, y-1 );
    480     ee_putstr( ",--." );
    481     ee_goto( x, y );
    482     ee_putstr( "'," );
    483 
    484     switch( frame % 4 )
     468static void draw_fragbomb(int x, int y, int frame)
     469{
     470    ee_color(EE_WHITE);
     471
     472    ee_color(frame & 1 ? EE_CYAN : EE_WHITE);
     473    ee_goto(x-2, y);
     474    ee_putstr("(    )");
     475    ee_goto(x-1, y+1);
     476    ee_putstr("`--'");
     477
     478    ee_color(frame & 1 ? EE_WHITE : EE_CYAN);
     479    ee_goto(x-1, y-1);
     480    ee_putstr(",--.");
     481    ee_goto(x, y);
     482    ee_putstr("',");
     483
     484    switch(frame % 4)
    485485    {
    486486    case 0:
    487         ee_color( EE_CYAN );
    488         ee_goto( x, y + 2 );
    489         ee_putchar( 'O' );
    490         ee_goto( x + 2, y + 2 );
    491         ee_putchar( 'o' );
    492         ee_goto( x + 1, y + 3 );
    493         ee_putchar( 'o' );
    494         ee_color( EE_GRAY );
    495         ee_goto( x - 1, y + 3 );
    496         ee_putchar( ':' );
    497         ee_goto( x + 2, y + 4 );
    498         ee_putchar( ':' );
    499         ee_goto( x, y + 4 );
    500         ee_putchar( '.' );
    501         ee_goto( x + 1, y + 5 );
    502         ee_putchar( '.' );
     487        ee_color(EE_CYAN);
     488        ee_goto(x, y + 2);
     489        ee_putchar('O');
     490        ee_goto(x + 2, y + 2);
     491        ee_putchar('o');
     492        ee_goto(x + 1, y + 3);
     493        ee_putchar('o');
     494        ee_color(EE_GRAY);
     495        ee_goto(x - 1, y + 3);
     496        ee_putchar(':');
     497        ee_goto(x + 2, y + 4);
     498        ee_putchar(':');
     499        ee_goto(x, y + 4);
     500        ee_putchar('.');
     501        ee_goto(x + 1, y + 5);
     502        ee_putchar('.');
    503503        break;
    504504    case 1:
    505         ee_color( EE_CYAN );
    506         //ee_goto( x, y + 1 );
    507         //ee_putchar( 'O' );
    508         ee_goto( x + 1, y + 2 );
    509         ee_putchar( 'O' );
    510         ee_goto( x, y + 3 );
    511         ee_putchar( 'o' );
    512         ee_color( EE_GRAY );
    513         ee_goto( x + 2, y + 3 );
    514         ee_putchar( ':' );
    515         ee_goto( x + 1, y + 4 );
    516         ee_putchar( ':' );
    517         ee_goto( x - 1, y + 4 );
    518         ee_putchar( '.' );
    519         ee_goto( x + 2, y + 5 );
    520         ee_putchar( '.' );
     505        ee_color(EE_CYAN);
     506        //ee_goto(x, y + 1);
     507        //ee_putchar('O');
     508        ee_goto(x + 1, y + 2);
     509        ee_putchar('O');
     510        ee_goto(x, y + 3);
     511        ee_putchar('o');
     512        ee_color(EE_GRAY);
     513        ee_goto(x + 2, y + 3);
     514        ee_putchar(':');
     515        ee_goto(x + 1, y + 4);
     516        ee_putchar(':');
     517        ee_goto(x - 1, y + 4);
     518        ee_putchar('.');
     519        ee_goto(x + 2, y + 5);
     520        ee_putchar('.');
    521521        break;
    522522    case 2:
    523         ee_color( EE_CYAN );
    524         //ee_goto( x - 1, y + 1 );
    525         //ee_putchar( 'O' );
    526         ee_goto( x + 2, y + 2 );
    527         ee_putchar( 'O' );
    528         ee_goto( x, y + 2 );
    529         ee_putchar( 'o' );
    530         ee_goto( x + 1, y + 3 );
    531         ee_putchar( 'o' );
    532         ee_color( EE_GRAY );
    533         ee_goto( x, y + 4 );
    534         ee_putchar( ':' );
    535         ee_goto( x + 2, y + 4 );
    536         ee_putchar( '.' );
    537         ee_goto( x + 1, y + 5 );
    538         ee_putchar( '.' );
     523        ee_color(EE_CYAN);
     524        //ee_goto(x - 1, y + 1);
     525        //ee_putchar('O');
     526        ee_goto(x + 2, y + 2);
     527        ee_putchar('O');
     528        ee_goto(x, y + 2);
     529        ee_putchar('o');
     530        ee_goto(x + 1, y + 3);
     531        ee_putchar('o');
     532        ee_color(EE_GRAY);
     533        ee_goto(x, y + 4);
     534        ee_putchar(':');
     535        ee_goto(x + 2, y + 4);
     536        ee_putchar('.');
     537        ee_goto(x + 1, y + 5);
     538        ee_putchar('.');
    539539        break;
    540540    case 3:
    541         ee_color( EE_CYAN );
    542         //ee_goto( x + 2, y + 1 );
    543         //ee_putchar( 'O' );
    544         ee_goto( x + 1, y + 2 );
    545         ee_putchar( 'O' );
    546         ee_goto( x - 1, y + 2 );
    547         ee_putchar( 'o' );
    548         ee_goto( x + 2, y + 3 );
    549         ee_putchar( 'o' );
    550         ee_color( EE_GRAY );
    551         ee_goto( x, y + 3 );
    552         ee_putchar( ':' );
    553         ee_goto( x + 1, y + 4 );
    554         ee_putchar( ':' );
    555         ee_goto( x, y + 5 );
    556         ee_putchar( '.' );
     541        ee_color(EE_CYAN);
     542        //ee_goto(x + 2, y + 1);
     543        //ee_putchar('O');
     544        ee_goto(x + 1, y + 2);
     545        ee_putchar('O');
     546        ee_goto(x - 1, y + 2);
     547        ee_putchar('o');
     548        ee_goto(x + 2, y + 3);
     549        ee_putchar('o');
     550        ee_color(EE_GRAY);
     551        ee_goto(x, y + 3);
     552        ee_putchar(':');
     553        ee_goto(x + 1, y + 4);
     554        ee_putchar(':');
     555        ee_goto(x, y + 5);
     556        ee_putchar('.');
    557557        break;
    558558    }
    559559}
    560560
    561 static void draw_beam( int x, int y, int frame )
     561static void draw_beam(int x, int y, int frame)
    562562{
    563563    int r = (29 - frame) * (29 - frame) / 8;
    564564    int i;
    565565
    566     switch( frame )
     566    switch(frame)
    567567    {
    568568        case 24:
    569             ee_color( EE_WHITE );
    570             ee_goto( x, y-3 );
    571             ee_putstr( "__" );
    572             ee_goto( x-1, y-2 );
    573             ee_putchar( '\'' );
    574             ee_goto( x+2, y-2 );
    575             ee_putchar( '`' );
     569            ee_color(EE_WHITE);
     570            ee_goto(x, y-3);
     571            ee_putstr("__");
     572            ee_goto(x-1, y-2);
     573            ee_putchar('\'');
     574            ee_goto(x+2, y-2);
     575            ee_putchar('`');
    576576            break;
    577577        case 23:
    578             ee_color( EE_CYAN );
    579             ee_goto( x, y-3 );
    580             ee_putstr( "__" );
    581             ee_color( EE_WHITE );
    582             ee_goto( x-2, y-2 );
    583             ee_putstr( "-'" );
    584             ee_goto( x+2, y-2 );
    585             ee_putstr( "`-" );
     578            ee_color(EE_CYAN);
     579            ee_goto(x, y-3);
     580            ee_putstr("__");
     581            ee_color(EE_WHITE);
     582            ee_goto(x-2, y-2);
     583            ee_putstr("-'");
     584            ee_goto(x+2, y-2);
     585            ee_putstr("`-");
    586586            break;
    587587        case 22:
    588             ee_color( EE_CYAN );
    589             ee_goto( x, y-3 );
    590             ee_putstr( "__" );
    591             ee_goto( x-1, y-2 );
    592             ee_putchar( '\'' );
    593             ee_goto( x+2, y-2 );
    594             ee_putchar( '`' );
    595             ee_color( EE_WHITE );
    596             ee_goto( x-3, y-2 );
    597             ee_putstr( ",-" );
    598             ee_goto( x+3, y-2 );
    599             ee_putstr( "-." );
     588            ee_color(EE_CYAN);
     589            ee_goto(x, y-3);
     590            ee_putstr("__");
     591            ee_goto(x-1, y-2);
     592            ee_putchar('\'');
     593            ee_goto(x+2, y-2);
     594            ee_putchar('`');
     595            ee_color(EE_WHITE);
     596            ee_goto(x-3, y-2);
     597            ee_putstr(",-");
     598            ee_goto(x+3, y-2);
     599            ee_putstr("-.");
    600600            break;
    601601        case 21:
    602             ee_color( EE_CYAN );
    603             ee_goto( x-1, y-3 );
    604             ee_putstr( "____" );
    605             ee_goto( x-2, y-2 );
    606             ee_putchar( '\'' );
    607             ee_goto( x+3, y-2 );
    608             ee_putchar( '`' );
    609             ee_color( EE_WHITE );
    610             ee_goto( x-4, y-2 );
    611             ee_putstr( ",-" );
    612             ee_goto( x+4, y-2 );
    613             ee_putstr( "-." );
     602            ee_color(EE_CYAN);
     603            ee_goto(x-1, y-3);
     604            ee_putstr("____");
     605            ee_goto(x-2, y-2);
     606            ee_putchar('\'');
     607            ee_goto(x+3, y-2);
     608            ee_putchar('`');
     609            ee_color(EE_WHITE);
     610            ee_goto(x-4, y-2);
     611            ee_putstr(",-");
     612            ee_goto(x+4, y-2);
     613            ee_putstr("-.");
    614614            break;
    615615        case 20:
    616             ee_color( EE_WHITE );
    617             ee_goto( x, y-3 );
    618             ee_putstr( "%%" );
    619             ee_goto( x-4, y-2 );
    620             ee_putchar( ',' );
    621             ee_goto( x+5, y-2 );
    622             ee_putchar( '.' );
    623             ee_color( EE_CYAN );
    624             ee_goto( x-1, y-3 );
    625             ee_putchar( ':' );
    626             ee_goto( x+2, y-3 );
    627             ee_putchar( ':' );
    628             ee_goto( x-3, y-2 );
    629             ee_putstr( "-'" );
    630             ee_goto( x+3, y-2 );
    631             ee_putstr( "`-" );
     616            ee_color(EE_WHITE);
     617            ee_goto(x, y-3);
     618            ee_putstr("%%");
     619            ee_goto(x-4, y-2);
     620            ee_putchar(',');
     621            ee_goto(x+5, y-2);
     622            ee_putchar('.');
     623            ee_color(EE_CYAN);
     624            ee_goto(x-1, y-3);
     625            ee_putchar(':');
     626            ee_goto(x+2, y-3);
     627            ee_putchar(':');
     628            ee_goto(x-3, y-2);
     629            ee_putstr("-'");
     630            ee_goto(x+3, y-2);
     631            ee_putstr("`-");
    632632            break;
    633633        case 19:
    634             ee_color( EE_WHITE );
    635             ee_goto( x, y-4 );
    636             ee_putstr( "%%" );
    637             ee_goto( x, y-3 );
    638             ee_putstr( "##" );
    639             ee_color( EE_CYAN );
    640             ee_goto( x-1, y-4 );
    641             ee_putchar( ':' );
    642             ee_goto( x+2, y-4 );
    643             ee_putchar( ':' );
    644             ee_goto( x-1, y-3 );
    645             ee_putchar( '%' );
    646             ee_goto( x+2, y-3 );
    647             ee_putchar( '%' );
    648             ee_goto( x-4, y-2 );
    649             ee_putstr( ",-'" );
    650             ee_goto( x+3, y-2 );
    651             ee_putstr( "`-." );
    652             ee_color( EE_BLUE );
    653             ee_goto( x-2, y-3 );
    654             ee_putchar( ':' );
    655             ee_goto( x+3, y-3 );
    656             ee_putchar( ':' );
     634            ee_color(EE_WHITE);
     635            ee_goto(x, y-4);
     636            ee_putstr("%%");
     637            ee_goto(x, y-3);
     638            ee_putstr("##");
     639            ee_color(EE_CYAN);
     640            ee_goto(x-1, y-4);
     641            ee_putchar(':');
     642            ee_goto(x+2, y-4);
     643            ee_putchar(':');
     644            ee_goto(x-1, y-3);
     645            ee_putchar('%');
     646            ee_goto(x+2, y-3);
     647            ee_putchar('%');
     648            ee_goto(x-4, y-2);
     649            ee_putstr(",-'");
     650            ee_goto(x+3, y-2);
     651            ee_putstr("`-.");
     652            ee_color(EE_BLUE);
     653            ee_goto(x-2, y-3);
     654            ee_putchar(':');
     655            ee_goto(x+3, y-3);
     656            ee_putchar(':');
    657657            break;
    658658        case 18:
    659659        default:
    660660            r = (18 - frame) * (18 - frame);
    661             ee_color( EE_WHITE );
    662             ee_goto( x-1, y-5-r );
    663             ee_putstr( ":%%:" );
    664             ee_goto( x-1, y-4-r );
    665             ee_putstr( "%##%" );
    666             ee_color( EE_CYAN );
    667             ee_goto( x-2, y-4-r );
    668             ee_putchar( ':' );
    669             ee_goto( x+3, y-4-r );
    670             ee_putchar( ':' );
    671             ee_goto( x-2, y-2 );
    672             ee_putchar( '\'' );
    673             ee_goto( x+3, y-2 );
    674             ee_putchar( '`' );
    675             ee_color( EE_BLUE );
    676             ee_goto( x-3, y-2 );
    677             ee_putchar( ':' );
    678             ee_goto( x+4, y-2 );
    679             ee_putchar( ':' );
    680             for( i = 0; i <= r; i++ )
    681             {
    682                 ee_color( EE_WHITE );
    683                 ee_goto( x-1, y-3-i );
    684                 ee_putstr( (i+frame) % 5 ? "####" : "%%%%" );
    685                 ee_color( EE_CYAN );
    686                 ee_goto( x-2, y-3-i );
    687                 ee_putchar( '%' );
    688                 ee_goto( x+3, y-3-i );
    689                 ee_putchar( '%' );
    690                 ee_color( EE_BLUE );
    691                 ee_goto( x-3, y-3-i );
    692                 ee_putchar( ':' );
    693                 ee_goto( x+4, y-3-i );
    694                 ee_putchar( ':' );
     661            ee_color(EE_WHITE);
     662            ee_goto(x-1, y-5-r);
     663            ee_putstr(":%%:");
     664            ee_goto(x-1, y-4-r);
     665            ee_putstr("%##%");
     666            ee_color(EE_CYAN);
     667            ee_goto(x-2, y-4-r);
     668            ee_putchar(':');
     669            ee_goto(x+3, y-4-r);
     670            ee_putchar(':');
     671            ee_goto(x-2, y-2);
     672            ee_putchar('\'');
     673            ee_goto(x+3, y-2);
     674            ee_putchar('`');
     675            ee_color(EE_BLUE);
     676            ee_goto(x-3, y-2);
     677            ee_putchar(':');
     678            ee_goto(x+4, y-2);
     679            ee_putchar(':');
     680            for(i = 0; i <= r; i++)
     681            {
     682                ee_color(EE_WHITE);
     683                ee_goto(x-1, y-3-i);
     684                ee_putstr((i+frame) % 5 ? "####" : "%%%%");
     685                ee_color(EE_CYAN);
     686                ee_goto(x-2, y-3-i);
     687                ee_putchar('%');
     688                ee_goto(x+3, y-3-i);
     689                ee_putchar('%');
     690                ee_color(EE_BLUE);
     691                ee_goto(x-3, y-3-i);
     692                ee_putchar(':');
     693                ee_goto(x+4, y-3-i);
     694                ee_putchar(':');
    695695            }
    696696            break;
     
    698698}
    699699
    700 static void draw_nuke( int x, int y, int frame )
     700static void draw_nuke(int x, int y, int frame)
    701701{
    702702    int r = (29 - frame) * (29 - frame) / 8;
    703703
    704704    /* Lots of duplicate pixels, but we don't care */
    705     ee_color( EE_BLUE );
    706     draw_circle( x, y, r++, ':' );
    707     ee_color( EE_CYAN );
    708     draw_circle( x, y, r++, '%' );
    709     ee_color( EE_WHITE );
    710     draw_circle( x, y, r++, '#' );
    711     draw_circle( x, y, r++, '#' );
    712 }
    713 
    714 static void draw_circle( int x, int y, int r, char c )
     705    ee_color(EE_BLUE);
     706    draw_circle(x, y, r++, ':');
     707    ee_color(EE_CYAN);
     708    draw_circle(x, y, r++, '%');
     709    ee_color(EE_WHITE);
     710    draw_circle(x, y, r++, '#');
     711    draw_circle(x, y, r++, '#');
     712}
     713
     714static void draw_circle(int x, int y, int r, char c)
    715715{
    716716    int test, dx, dy;
    717717
    718718    /* Optimized Bresenham. Kick ass. */
    719     for( test = 0, dx = 0, dy = r ; dx <= dy ; dx++ )
    720     {
    721         ee_putcharTO( x + dx, y + dy / 2, c );
    722         ee_putcharTO( x - dx, y + dy / 2, c );
    723         ee_putcharTO( x + dx, y - dy / 2, c );
    724         ee_putcharTO( x - dx, y - dy / 2, c );
    725 
    726         ee_putcharTO( x + dy, y + dx / 2, c );
    727         ee_putcharTO( x - dy, y + dx / 2, c );
    728         ee_putcharTO( x + dy, y - dx / 2, c );
    729         ee_putcharTO( x - dy, y - dx / 2, c );
     719    for(test = 0, dx = 0, dy = r ; dx <= dy ; dx++)
     720    {
     721        ee_putcharTO(x + dx, y + dy / 2, c);
     722        ee_putcharTO(x - dx, y + dy / 2, c);
     723        ee_putcharTO(x + dx, y - dy / 2, c);
     724        ee_putcharTO(x - dx, y - dy / 2, c);
     725
     726        ee_putcharTO(x + dy, y + dx / 2, c);
     727        ee_putcharTO(x - dy, y + dx / 2, c);
     728        ee_putcharTO(x + dy, y - dx / 2, c);
     729        ee_putcharTO(x - dy, y - dx / 2, c);
    730730
    731731        test += test > 0 ? dx - dy-- : dx;
Note: See TracChangeset for help on using the changeset viewer.