- Timestamp:
- Nov 9, 2003, 1:40:53 PM (19 years ago)
- Location:
- ttyvaders/trunk
- Files:
-
- 1 added
- 15 edited
Legend:
- Unmodified
- Added
- Removed
-
ttyvaders/trunk/libee/Makefile.am
r78 r80 7 7 8 8 lib_LIBRARIES = libee.a 9 libee_a_SOURCES = ee.c 10 libee_a_CPPFLAGS = -I../src$(CPPFLAGS_slang) $(CPPFLAGS_ncurses)9 libee_a_SOURCES = ee.c ee.h 10 libee_a_CPPFLAGS = $(CPPFLAGS_slang) $(CPPFLAGS_ncurses) 11 11 -
ttyvaders/trunk/libee/ee.c
r76 r80 1 1 /* 2 * ttyvaders Textmode shoot'em up3 * Copyright (c) 2002 Sam Hocevar <sam@zoy.org>2 * libee ASCII-Art library 3 * Copyright (c) 2002, 2003 Sam Hocevar <sam@zoy.org> 4 4 * All Rights Reserved 5 5 * … … 28 28 #include <time.h> 29 29 30 #include "common.h" 31 32 int init_graphics( void ) 33 { 34 #ifdef USE_SLANG 30 #include "ee.h" 31 32 int ee_init(void) 33 { 34 #ifdef USE_SLANG 35 static char * colors[] = { "black", "green", "yellow", "white", 36 "red", "gray", "lightgray", "blue", "cyan", "magenta", NULL }; 37 int i; 38 35 39 /* Initialize slang library */ 36 40 SLsig_block_signals(); 37 41 SLtt_get_terminfo(); 38 42 39 if( SLkp_init() == -1)43 if(SLkp_init() == -1) 40 44 { 41 45 SLsig_unblock_signals(); 42 return 1;43 } 44 45 SLang_init_tty 46 47 if( SLsmg_init_smg() == -1)46 return -1; 47 } 48 49 SLang_init_tty(-1, 0, 1); 50 51 if(SLsmg_init_smg() == -1) 48 52 { 49 53 SLsig_unblock_signals(); 50 return 1;54 return -1; 51 55 } 52 56 … … 54 58 55 59 SLsmg_cls(); 56 SLtt_set_cursor_visibility( 0);60 SLtt_set_cursor_visibility(0); 57 61 SLsmg_refresh(); 62 63 for(i = 0; colors[i]; i++) 64 { 65 SLtt_set_color(i + 1, NULL, colors[i], "black"); 66 } 67 58 68 #elif USE_NCURSES 59 69 /* Initialize ncurses library */ … … 64 74 noecho(); 65 75 nodelay(stdscr, TRUE); 66 curs_set( 0 ); 76 curs_set(0); 77 78 start_color(); 79 80 init_pair(EE_BLACK, COLOR_BLACK, COLOR_BLACK); 81 init_pair(EE_GREEN, COLOR_GREEN, COLOR_BLACK); 82 init_pair(EE_YELLOW, COLOR_YELLOW, COLOR_BLACK); 83 init_pair(EE_WHITE, COLOR_WHITE, COLOR_BLACK); 84 init_pair(EE_RED, COLOR_RED, COLOR_BLACK); 85 init_pair(EE_GRAY, COLOR_WHITE, COLOR_BLACK); // XXX 86 init_pair(EE_LIGHTGRAY, COLOR_WHITE, COLOR_BLACK); // XXX 87 init_pair(EE_BLUE, COLOR_BLUE, COLOR_BLACK); 88 init_pair(EE_CYAN, COLOR_CYAN, COLOR_BLACK); 89 init_pair(EE_MAGENTA, COLOR_MAGENTA, COLOR_BLACK); 90 67 91 #else 68 92 /* Dummy driver */ 93 69 94 #endif 70 95 … … 72 97 } 73 98 74 void init_game( game *g ) 75 { 76 #ifdef USE_SLANG 77 static char * const colors[] = 78 { 79 "black", "green", "yellow", "white", 80 "red", "gray", "lightgray", "blue", "cyan", "magenta", NULL 81 }; 82 83 int i; 84 85 for( i = 0; colors[i] ; i++ ) 86 { 87 SLtt_set_color( i+1, NULL, colors[i], "black" ); 88 } 89 90 g->w = SLtt_Screen_Cols; 91 g->h = SLtt_Screen_Rows; 92 #elif USE_NCURSES 93 start_color(); 94 95 init_pair( BLACK, COLOR_BLACK, COLOR_BLACK ); 96 init_pair( GREEN, COLOR_GREEN, COLOR_BLACK ); 97 init_pair( YELLOW, COLOR_YELLOW, COLOR_BLACK ); 98 init_pair( WHITE, COLOR_WHITE, COLOR_BLACK ); 99 init_pair( RED, COLOR_RED, COLOR_BLACK ); 100 init_pair( GRAY, COLOR_WHITE, COLOR_BLACK ); // XXX 101 init_pair( LIGHTGRAY, COLOR_WHITE, COLOR_BLACK ); // XXX 102 init_pair( BLUE, COLOR_BLUE, COLOR_BLACK ); 103 init_pair( CYAN, COLOR_CYAN, COLOR_BLACK ); 104 init_pair( MAGENTA, COLOR_MAGENTA, COLOR_BLACK ); 105 106 g->w = COLS; 107 g->h = LINES; 108 #else 109 /* Use dummy driver */ 110 g->w = 80; 111 g->h = 25; 112 #endif 113 } 114 115 char get_key( void ) 116 { 117 #ifdef USE_SLANG 118 if( SLang_input_pending (0) ) 119 { 120 return SLang_getkey(); 121 } 122 #elif USE_NCURSES 123 char key; 124 125 if( ( key = getch() ) != ERR ) 126 { 127 return key; 128 } 129 #else 130 /* Use dummy driver */ 131 char key = GET_RAND(0,256); 132 133 if( key != 'q' && key != 'p' && key != '\t' ) 134 { 135 return key; 136 } 137 #endif 138 139 return 0; 140 } 141 142 void clear_graphics( game *g ) 99 int ee_get_width(void) 100 { 101 #ifdef USE_SLANG 102 return SLtt_Screen_Cols; 103 #elif USE_NCURSES 104 return COLS; 105 #else 106 return 80; 107 #endif 108 } 109 110 int ee_get_height(void) 111 { 112 #ifdef USE_SLANG 113 return SLtt_Screen_Rows; 114 #elif USE_NCURSES 115 return LINES; 116 #else 117 return 25; 118 #endif 119 } 120 121 void ee_clear(void) 143 122 { 144 123 #ifdef USE_SLANG 145 124 //SLsmg_cls(); 146 125 int y; 147 for( y = 0; y < g->h; y++)148 { 149 gfx_goto( 0, y);150 gfx_putstr( " ");126 for(y = 0; y < ee_get_height(); y++) 127 { 128 ee_goto(0, y); 129 ee_putstr(" "); 151 130 } 152 131 #elif USE_NCURSES 153 132 //clear(); 154 133 int y; 155 for( y = 0; y < g->h; y++)156 { 157 gfx_goto( 0, y);158 gfx_putstr( " ");134 for(y = 0; y < ee_get_height(); y++) 135 { 136 ee_goto(0, y); 137 ee_putstr(" "); 159 138 } 160 139 #else … … 176 155 177 156 #define DELAY 40000 178 179 void refresh_graphics( void ) 157 void ee_refresh(void) 180 158 { 181 159 static int64_t local_clock = 0; 182 160 int64_t now; 183 161 184 gfx_goto( 0, 0);185 186 if( !local_clock)162 ee_goto(0, 0); 163 164 if(!local_clock) 187 165 { 188 166 /* Initialize local_clock */ … … 190 168 } 191 169 192 if( local_time() > local_clock + 10000)170 if(local_time() > local_clock + 10000) 193 171 { 194 172 /* If we are late, we shouldn't display anything */ … … 205 183 now = local_time(); 206 184 207 if( now < local_clock + DELAY - 10000)208 { 209 usleep( local_clock + DELAY - 10000 - now);185 if(now < local_clock + DELAY - 10000) 186 { 187 usleep(local_clock + DELAY - 10000 - now); 210 188 } 211 189 … … 213 191 } 214 192 215 void e nd_graphics( void)216 { 217 #ifdef USE_SLANG 218 SLtt_set_cursor_visibility( 1);193 void ee_end(void) 194 { 195 #ifdef USE_SLANG 196 SLtt_set_cursor_visibility(1); 219 197 SLang_reset_tty(); 220 198 SLsmg_reset_smg(); 221 199 #elif USE_NCURSES 222 curs_set( 1);200 curs_set(1); 223 201 endwin(); 224 202 #else … … 227 205 } 228 206 207 char ee_get_key(void) 208 { 209 #ifdef USE_SLANG 210 if(SLang_input_pending(0)) 211 { 212 return SLang_getkey(); 213 } 214 #elif USE_NCURSES 215 char key = getch(); 216 217 if(key != ERR) 218 { 219 return key; 220 } 221 #else 222 return 0; 223 224 #endif 225 226 return 0; 227 } 228 -
ttyvaders/trunk/src/Makefile.am
r78 r80 36 36 $(NULL) 37 37 38 ttyvaders_CPPFLAGS = $(CPPFLAGS_slang) $(CPPFLAGS_ncurses)38 ttyvaders_CPPFLAGS = -I../libee $(CPPFLAGS_slang) $(CPPFLAGS_ncurses) 39 39 ttyvaders_LDADD = ../libee/libee.a $(LDFLAGS_slang) $(LDFLAGS_ncurses) 40 40 -
ttyvaders/trunk/src/aliens.c
r72 r80 4 4 * All Rights Reserved 5 5 * 6 * $Id : aliens.c,v 1.8 2002/12/23 13:46:27 sam Exp$6 * $Id$ 7 7 * 8 8 * This program is free software; you can redistribute it and/or modify … … 134 134 { 135 135 case 0: 136 gfx_color(MAGENTA );137 gfx_goto( x, y );138 gfx_putstr( ",---." );139 gfx_goto( x, y+1 );140 gfx_putchar( '\\' );141 gfx_color(WHITE );142 gfx_putstr( "o O" );143 gfx_color(MAGENTA );144 gfx_putchar( '/' );145 gfx_goto( x, y+2 );146 gfx_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( "^^^^^" ); 147 147 break; 148 148 case 1: 149 gfx_color(MAGENTA );150 gfx_goto( x, y );151 gfx_putstr( ",---." );152 gfx_goto( x, y+1 );153 gfx_putchar( '\\' );154 gfx_color(WHITE );155 gfx_putstr( "O o" );156 gfx_color(MAGENTA );157 gfx_putchar( '/' );158 gfx_goto( x, y+2 );159 gfx_putstr( "^^^^^" );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 160 break; 161 161 } … … 164 164 static void draw_alien_baz( game *g, int x, int y, int frame ) 165 165 { 166 gfx_color(GREEN );167 gfx_goto( x, y-1 );168 gfx_putstr( "__" );169 170 gfx_goto( x-1, y );171 gfx_putchar( '/' );172 gfx_goto( x+2, y );173 gfx_putchar( '\\' );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 174 175 175 switch( frame ) 176 176 { 177 177 case 3: 178 gfx_goto( x-2, y+1 );179 gfx_putstr( "//'`\\\\" );178 ee_goto( x-2, y+1 ); 179 ee_putstr( "//'`\\\\" ); 180 180 break; 181 181 case 4: 182 182 case 2: 183 gfx_goto( x-2, y+1 );184 gfx_putstr( "/(~~)\\" );183 ee_goto( x-2, y+1 ); 184 ee_putstr( "/(~~)\\" ); 185 185 break; 186 186 case 5: 187 187 case 1: 188 gfx_goto( x-2, y+1 );189 gfx_putstr( "((^^))" );188 ee_goto( x-2, y+1 ); 189 ee_putstr( "((^^))" ); 190 190 break; 191 191 case 0: 192 gfx_goto( x-1, y+1 );193 gfx_putstr( "\\\\//" );194 break; 195 } 196 197 gfx_color(WHITE );198 gfx_goto( x, y );199 gfx_putstr( "oo" );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 200 } 201 201 202 202 static void draw_alien_foo( game *g, int x, int y, int frame ) 203 203 { 204 gfx_color(YELLOW );204 ee_color( EE_YELLOW ); 205 205 206 206 switch( frame ) 207 207 { 208 208 case 0: 209 gfx_goto( x, y );210 gfx_putchar( '.' );211 gfx_goto( x+6, y );212 gfx_putchar( ',' );213 gfx_goto( x+1, y+1 );214 gfx_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 /" ); 215 215 break; 216 216 case 7: 217 217 case 1: 218 gfx_goto( x-1, y );219 gfx_putchar( '.' );220 gfx_goto( x+7, y );221 gfx_putchar( ',' );222 gfx_goto( x, y+1 );223 gfx_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 -'" ); 224 224 break; 225 225 case 6: 226 226 case 2: 227 gfx_goto( x-1, y+1 );228 gfx_putstr( "`-- X --'" );227 ee_goto( x-1, y+1 ); 228 ee_putstr( "`-- X --'" ); 229 229 break; 230 230 case 5: 231 231 case 3: 232 gfx_goto( x, y+1 );233 gfx_putstr( ",- X -." );234 gfx_goto( x-1, y+2 );235 gfx_putchar( '\'' );236 gfx_goto( x+7, y+2 );237 gfx_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( '`' ); 238 238 break; 239 239 case 4: 240 gfx_goto( x+1, y+1 );241 gfx_putstr( ", X ." );242 gfx_goto( x, y+2 );243 gfx_putchar( '/' );244 gfx_goto( x+6, y+2 );245 gfx_putchar( '\\' );246 break; 247 } 248 249 gfx_goto( x+2, y+2 );250 gfx_putstr( "`V'" );251 252 gfx_color(WHITE );253 gfx_goto( x+2, y+1 );254 gfx_putchar( 'o' );255 gfx_goto( x+4, y+1 );256 gfx_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
r72 r80 4 4 * All Rights Reserved 5 5 * 6 * $Id : bonus.c,v 1.3 2002/12/22 18:44:12 sam Exp$6 * $Id$ 7 7 * 8 8 * This program is free software; you can redistribute it and/or modify … … 44 44 { 45 45 case BONUS_GREEN: 46 gfx_color( (bo->n[i]/2 % 3) ? GREEN :WHITE );47 gfx_goto( bo->x[i]+1, bo->y[i]-1 );48 gfx_putchar( '_' );49 gfx_goto( bo->x[i], bo->y[i] );50 gfx_putstr( "/ \\" );51 gfx_goto( bo->x[i], bo->y[i]+1 );52 gfx_putstr( "\\_/" );53 gfx_color(WHITE );54 gfx_goto( bo->x[i]+1, bo->y[i] );55 gfx_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' ); 56 56 break; 57 57 case BONUS_LIFE: 58 gfx_color( (bo->n[i] % 3) ? RED :WHITE );59 gfx_goto( bo->x[i]+1, bo->y[i]-1 );60 gfx_putchar( '_' );61 gfx_goto( bo->x[i]+3, bo->y[i]-1 );62 gfx_putchar( '_' );63 gfx_goto( bo->x[i], bo->y[i] );64 gfx_putstr( "( ' )" );65 gfx_goto( bo->x[i]+1, bo->y[i]+1 );66 gfx_putstr( "`v'" );67 gfx_color(WHITE );68 gfx_goto( bo->x[i]+3, bo->y[i] );69 gfx_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( '^' ); 70 70 break; 71 71 case BONUS_NONE: -
ttyvaders/trunk/src/box.c
r72 r80 4 4 * All Rights Reserved 5 5 * 6 * $Id : box.c,v 1.1 2003/02/09 11:17:40 sam Exp$6 * $Id$ 7 7 * 8 8 * This program is free software; you can redistribute it and/or modify … … 42 42 int i, j, frame; 43 43 44 gfx_color(YELLOW );44 ee_color( EE_YELLOW ); 45 45 46 46 /* Draw the thin horizontal line */ … … 51 51 i++ ) 52 52 { 53 gfx_goto( i, b->y );54 gfx_putchar( 'X' );53 ee_goto( i, b->y ); 54 ee_putchar( 'X' ); 55 55 } 56 56 … … 65 65 i++ ) 66 66 { 67 gfx_goto( i, b->y - b->h * (frame - 8) / 8 );68 gfx_putchar( 'X' );69 gfx_goto( i, b->y + b->h * (frame - 8) / 8 );70 gfx_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' ); 71 71 } 72 72 … … 75 75 j++ ) 76 76 { 77 gfx_goto( b->x - b->w / 2, j );78 gfx_putchar( 'X' );79 gfx_goto( b->x + b->w / 2 - 1, j );80 gfx_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' ); 81 81 } 82 82 83 gfx_color(BLACK );83 ee_color( EE_BLACK ); 84 84 85 85 for( j = b->y - b->h * (frame - 8) / 8 + 1 ; … … 91 91 i++ ) 92 92 { 93 gfx_goto( i, j );94 gfx_putchar( 'X' );93 ee_goto( i, j ); 94 ee_putchar( 'X' ); 95 95 } 96 96 } … … 102 102 103 103 /* Draw the text inside the frame */ 104 gfx_color(YELLOW );104 ee_color( EE_YELLOW ); 105 105 106 106 /* FIXME: use a font */ 107 gfx_goto( b->x - b->w / 2 + 12, b->y - b->h / 2 + 2 );108 gfx_putstr( "XXXX. .XXXX X X .XXXX .XXXX XXXX." );109 gfx_goto( b->x - b->w / 2 + 12, b->y - b->h / 2 + 3 );110 gfx_putstr( "X `X X' X X X X' X' X `X" );111 gfx_goto( b->x - b->w / 2 + 12, b->y - b->h / 2 + 4 );112 gfx_putstr( "XXXX' XXXXX X X `XXX XXXX X X" );113 gfx_goto( b->x - b->w / 2 + 12, b->y - b->h / 2 + 5 );114 gfx_putstr( "X' X' `X X. ,X `X X' X ,X" );115 gfx_goto( b->x - b->w / 2 + 12, b->y - b->h / 2 + 6 );116 gfx_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'" ); 117 117 } 118 118 -
ttyvaders/trunk/src/ceo.c
r76 r80 34 34 while( !end ) 35 35 { 36 clear_graphics( g);36 ee_clear(); 37 37 38 if( get_key() == '\t' )38 if( ee_get_key() == '\t' ) 39 39 { 40 40 end = 1; … … 43 43 fprintf( stderr, "foo\n" ); 44 44 45 refresh_graphics();45 ee_refresh(); 46 46 47 47 usleep( 40000 ); -
ttyvaders/trunk/src/common.h
r76 r80 43 43 * Graphics primitives 44 44 */ 45 #ifdef USE_SLANG 46 # include <slang.h> 47 # define gfx_color(x) SLsmg_set_color(x) 48 # define gfx_goto(x,y) SLsmg_gotorc(y,x) 49 # define gfx_putchar(x) SLsmg_write_char(x) 50 # define gfx_putstr(x) SLsmg_write_string(x) 51 #elif USE_NCURSES 52 #define box box_other 53 # include <curses.h> 54 #undef box 55 # define gfx_color(x) attrset(COLOR_PAIR(x)) 56 # define gfx_goto(x,y) move(y,x) 57 # define gfx_putchar(x) addch(x) 58 # define gfx_putstr(x) addstr(x) 59 #else 60 # define gfx_color(x) (void)(x) 61 # define gfx_goto(x,y) do{ (void)(x); (void)(y); } while(0) 62 # define gfx_putchar(x) (void)(x) 63 # define gfx_putstr(x) (void)(x) 64 #endif 65 66 #define gfx_putcharTO(x,y,c) do{ gfx_goto(x,y); gfx_putchar(c); }while(0) 45 #include "ee.h" 67 46 68 47 /* … … 165 144 } game; 166 145 167 #define BLACK 1168 #define GREEN 2169 #define YELLOW 3170 #define WHITE 4171 #define RED 5172 #define GRAY 6173 #define LIGHTGRAY 7174 #define BLUE 8175 #define CYAN 9176 #define MAGENTA 10177 178 146 /* 179 147 * From aliens.c … … 220 188 221 189 /* 222 * From graphics.c223 */224 int init_graphics( void );225 void init_game( game *g );226 char get_key( void );227 void clear_graphics( game *g );228 void refresh_graphics( void );229 void end_graphics( void );230 231 /*232 190 * From math.c 233 191 */ -
ttyvaders/trunk/src/explosions.c
r72 r80 4 4 * All Rights Reserved 5 5 * 6 * $Id : explosions.c,v 1.4 2002/12/22 18:44:12 sam Exp$6 * $Id$ 7 7 * 8 8 * This program is free software; you can redistribute it and/or modify … … 72 72 { 73 73 #if 0 74 gfx_color( GREEN );75 gfx_goto( ex->x[i] + 3, ex->y[i] );74 ee_color( GREEN ); 75 ee_goto( ex->x[i] + 3, ex->y[i] ); 76 76 switch( GET_RAND(0,3) ) 77 77 { 78 78 case 0: 79 gfx_putchar( 'p' );80 gfx_putchar( 'i' );81 gfx_putchar( 'f' );79 ee_putchar( 'p' ); 80 ee_putchar( 'i' ); 81 ee_putchar( 'f' ); 82 82 break; 83 83 case 1: 84 gfx_putchar( 'p' );85 gfx_putchar( 'a' );86 gfx_putchar( 'f' );84 ee_putchar( 'p' ); 85 ee_putchar( 'a' ); 86 ee_putchar( 'f' ); 87 87 break; 88 88 case 2: 89 gfx_putchar( 'p' );90 gfx_putchar( 'o' );91 gfx_putchar( 'u' );92 gfx_putchar( 'f' );93 break; 94 } 95 gfx_putchar( '!' );89 ee_putchar( 'p' ); 90 ee_putchar( 'o' ); 91 ee_putchar( 'u' ); 92 ee_putchar( 'f' ); 93 break; 94 } 95 ee_putchar( '!' ); 96 96 #endif 97 97 … … 139 139 { 140 140 case 6: 141 gfx_color(YELLOW );142 gfx_goto( x, y );143 gfx_putchar( '+' );141 ee_color( EE_YELLOW ); 142 ee_goto( x, y ); 143 ee_putchar( '+' ); 144 144 break; 145 145 case 5: 146 gfx_color(YELLOW );147 gfx_goto( x, y );148 gfx_putchar( 'o' );146 ee_color( EE_YELLOW ); 147 ee_goto( x, y ); 148 ee_putchar( 'o' ); 149 149 break; 150 150 case 4: 151 gfx_color(YELLOW );152 gfx_goto( x, y-1 );153 gfx_putchar( '_' );154 gfx_goto( x-1, y );155 gfx_putstr( ")_(" );151 ee_color( EE_YELLOW ); 152 ee_goto( x, y-1 ); 153 ee_putchar( '_' ); 154 ee_goto( x-1, y ); 155 ee_putstr( ")_(" ); 156 156 break; 157 157 case 3: 158 gfx_color(YELLOW );159 gfx_goto( x-1, y-1 );160 gfx_putstr( "._," );161 gfx_goto( x-1, y );162 gfx_putstr( ")_(" );163 gfx_goto( x-1, y+1 );164 gfx_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( "\' `" ); 165 165 break; 166 166 case 2: 167 gfx_color(YELLOW );168 gfx_goto( x-1, y-1 );169 gfx_putstr( ".v," );170 gfx_goto( x-1, y );171 gfx_putstr( "> <" );172 gfx_goto( x-1, y+1 );173 gfx_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( "\'^`" ); 174 174 break; 175 175 case 1: 176 gfx_color(WHITE );177 gfx_goto( x-1, y-1 );178 gfx_putstr( ". ," );179 gfx_goto( x-1, y );180 gfx_putstr( " " );181 gfx_goto( x-1, y+1 );182 gfx_putstr( "\' `" );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 183 break; 184 184 } … … 187 187 static void draw_medium_explosion( int x, int y, int frame ) 188 188 { 189 gfx_color(YELLOW );189 ee_color( EE_YELLOW ); 190 190 191 191 switch( frame ) 192 192 { 193 193 case 10: 194 gfx_goto( x, y );195 gfx_putchar( '+' );194 ee_goto( x, y ); 195 ee_putchar( '+' ); 196 196 break; 197 197 case 9: 198 gfx_goto( x, y );199 gfx_putchar( 'o' );198 ee_goto( x, y ); 199 ee_putchar( 'o' ); 200 200 break; 201 201 case 8: 202 gfx_goto( x, y-1 );203 gfx_putchar( '_' );204 gfx_goto( x-1, y );205 gfx_putstr( ")_(" );202 ee_goto( x, y-1 ); 203 ee_putchar( '_' ); 204 ee_goto( x-1, y ); 205 ee_putstr( ")_(" ); 206 206 break; 207 207 case 7: 208 gfx_goto( x-1, y-1 );209 gfx_putstr( "._," );210 gfx_goto( x-1, y );211 gfx_putstr( ")_(" );212 gfx_goto( x-1, y+1 );213 gfx_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( "\' `" ); 214 214 break; 215 215 case 6: 216 gfx_goto( x-1, y-1 );217 gfx_putstr( ".v," );218 gfx_goto( x-1, y );219 gfx_putstr( "> <" );220 gfx_goto( x-1, y+1 );221 gfx_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( "\'^`" ); 222 222 break; 223 223 case 5: 224 gfx_color(RED );224 ee_color( EE_RED ); 225 225 case 4: 226 gfx_goto( x-2, y-1 );227 gfx_putstr( "_\\~/_" );228 gfx_goto( x-2, y );229 gfx_putstr( "> <" );230 gfx_goto( x-2, y+1 );231 gfx_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( "~/_\\~" ); 232 232 break; 233 233 case 3: 234 gfx_color(RED );234 ee_color( EE_RED ); 235 235 case 2: 236 gfx_goto( x-2, y-1 );237 gfx_putstr( "_\\ /_" );238 gfx_goto( x-2, y );239 gfx_putstr( "_ _" );240 gfx_goto( x-2, y+1 );241 gfx_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( " / \\ " ); 242 242 break; 243 243 case 1: 244 gfx_color(WHITE );245 gfx_goto( x-2, y-1 );246 gfx_putstr( ". \' ," );247 gfx_goto( x-2, y );248 gfx_putstr( " " );249 gfx_goto( x-2, y+1 );250 gfx_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
r76 r80 38 38 srand(time(NULL)); 39 39 40 if( init_graphics() )40 if( ee_init() ) 41 41 { 42 42 return 1; … … 44 44 45 45 /* Initialize our program */ 46 init_game(g); 46 g->w = ee_get_width(); 47 g->h = ee_get_height(); 47 48 48 49 /* Go ! */ … … 50 51 51 52 /* Clean up */ 52 e nd_graphics();53 ee_end(); 53 54 54 55 return 0; … … 84 85 char key; 85 86 86 while( ( key = get_key() ) )87 while( ( key = ee_get_key() ) ) 87 88 { 88 89 switch( key ) … … 215 216 216 217 /* Clear screen */ 217 clear_graphics( g);218 ee_clear(); 218 219 219 220 /* Print starfield, tunnel, aliens, player and explosions */ … … 235 236 236 237 /* Refresh */ 237 refresh_graphics();238 ee_refresh(); 238 239 239 240 purcompteur++; -
ttyvaders/trunk/src/overlay.c
r72 r80 4 4 * All Rights Reserved 5 5 * 6 * $Id : overlay.c,v 1.3 2003/02/09 11:17:40 sam Exp$6 * $Id$ 7 7 * 8 8 * This program is free software; you can redistribute it and/or modify … … 31 31 32 32 /* Draw life jauge */ 33 gfx_color(GRAY );34 gfx_goto( 4, 1 );35 gfx_putstr( dots30 );33 ee_color( EE_GRAY ); 34 ee_goto( 4, 1 ); 35 ee_putstr( dots30 ); 36 36 37 37 if( g->p->life > MAX_LIFE * 7 / 10 ) 38 38 { 39 gfx_color(GREEN );39 ee_color( EE_GREEN ); 40 40 } 41 41 else if( g->p->life > MAX_LIFE * 3 / 10 ) 42 42 { 43 gfx_color(YELLOW );43 ee_color( EE_YELLOW ); 44 44 } 45 45 else 46 46 { 47 gfx_color(RED );47 ee_color( EE_RED ); 48 48 } 49 49 50 gfx_goto( 4, 1 );51 gfx_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 ); 52 52 53 gfx_color(WHITE );54 gfx_goto( 1, 1 );55 gfx_putstr( "L |" );56 gfx_goto( 34, 1 );57 gfx_putstr( "|" );53 ee_color( EE_WHITE ); 54 ee_goto( 1, 1 ); 55 ee_putstr( "L |" ); 56 ee_goto( 34, 1 ); 57 ee_putstr( "|" ); 58 58 59 59 /* Draw weapon jauge */ 60 gfx_color(GRAY );61 gfx_goto( 42, 1 );62 gfx_putstr( dots30 + 10 );60 ee_color( EE_GRAY ); 61 ee_goto( 42, 1 ); 62 ee_putstr( dots30 + 10 ); 63 63 64 64 if( g->p->special > MAX_SPECIAL * 9 / 10 ) 65 65 { 66 gfx_color(WHITE );66 ee_color( EE_WHITE ); 67 67 } 68 68 else if( g->p->special > MAX_SPECIAL * 3 / 10 ) 69 69 { 70 gfx_color(CYAN );70 ee_color( EE_CYAN ); 71 71 } 72 72 else 73 73 { 74 gfx_color(BLUE );74 ee_color( EE_BLUE ); 75 75 } 76 76 77 gfx_goto( 42, 1 );78 gfx_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 ); 79 79 80 gfx_color(WHITE );81 gfx_goto( 39, 1 );82 gfx_putstr( "S |" );83 gfx_goto( 62, 1 );84 gfx_putstr( "|" );80 ee_color( EE_WHITE ); 81 ee_goto( 39, 1 ); 82 ee_putstr( "S |" ); 83 ee_goto( 62, 1 ); 84 ee_putstr( "|" ); 85 85 } 86 86 -
ttyvaders/trunk/src/player.c
r72 r80 4 4 * All Rights Reserved 5 5 * 6 * $Id : player.c,v 1.8 2002/12/23 16:21:38 sam Exp$6 * $Id$ 7 7 * 8 8 * This program is free software; you can redistribute it and/or modify … … 54 54 } 55 55 56 gfx_goto( p->x + 2, p->y - 2 );57 gfx_color(GREEN );58 gfx_putstr( "/\\" );59 gfx_goto( p->x + 1, p->y - 1 );60 gfx_putchar( '(' );61 gfx_color(YELLOW );62 gfx_putstr( "()" );63 gfx_color(GREEN );64 gfx_putchar( ')' );65 gfx_goto( p->x, p->y );66 gfx_color(GREEN );67 gfx_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" ); 68 68 } 69 69 -
ttyvaders/trunk/src/starfield.c
r72 r80 4 4 * All Rights Reserved 5 5 * 6 * $Id : starfield.c,v 1.5 2002/12/23 09:28:37 sam Exp$6 * $Id$ 7 7 * 8 8 * This program is free software; you can redistribute it and/or modify … … 52 52 if( s[i].x >= 0 ) 53 53 { 54 gfx_color( s[i].c );55 gfx_goto( s[i].x, s[i].y );56 gfx_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 ); 57 57 } 58 58 } -
ttyvaders/trunk/src/tunnel.c
r72 r80 4 4 * All Rights Reserved 5 5 * 6 * $Id : tunnel.c,v 1.8 2002/12/23 12:47:36 sam Exp$6 * $Id$ 7 7 * 8 8 * This program is free software; you can redistribute it and/or modify … … 72 72 char c; 73 73 74 gfx_color(GREEN );74 ee_color( EE_GREEN ); 75 75 76 76 /* Left border */ … … 91 91 } 92 92 93 gfx_goto( t->left[i] + 1, i );94 gfx_putchar( c );93 ee_goto( t->left[i] + 1, i ); 94 ee_putchar( c ); 95 95 96 96 if( i + 1 < g->h ) … … 98 98 for( j = 1; j < t->left[i+1] - t->left[i]; j++ ) 99 99 { 100 gfx_goto( t->left[i] + j + 1, i );101 gfx_putchar( '_' );100 ee_goto( t->left[i] + j + 1, i ); 101 ee_putchar( '_' ); 102 102 } 103 103 } … … 125 125 for( j = 1; j < t->right[i] - t->right[i+1]; j++ ) 126 126 { 127 gfx_goto( t->right[i+1] + j - 1, i );128 gfx_putchar( '_' );127 ee_goto( t->right[i+1] + j - 1, i ); 128 ee_putchar( '_' ); 129 129 } 130 130 } 131 131 132 gfx_goto( t->right[i] - 1, i );133 gfx_putchar( c );134 } 135 136 gfx_color(RED );132 ee_goto( t->right[i] - 1, i ); 133 ee_putchar( c ); 134 } 135 136 ee_color( EE_RED ); 137 137 138 138 /* Left concrete */ … … 141 141 for( j = 0 ; j <= t->left[i]; j++ ) 142 142 { 143 gfx_goto( j, i );144 gfx_putchar( '#' );143 ee_goto( j, i ); 144 ee_putchar( '#' ); 145 145 } 146 146 } … … 151 151 for( j = t->right[i] ; j < g->w ; j++ ) 152 152 { 153 gfx_goto( j, i );154 gfx_putchar( '#' );153 ee_goto( j, i ); 154 ee_putchar( '#' ); 155 155 } 156 156 } -
ttyvaders/trunk/src/weapons.c
r72 r80 4 4 * All Rights Reserved 5 5 * 6 * $Id : weapons.c,v 1.13 2002/12/23 16:44:28 sam Exp$6 * $Id$ 7 7 * 8 8 * This program is free software; you can redistribute it and/or modify … … 50 50 { 51 51 case WEAPON_LASER: 52 gfx_color(WHITE );53 gfx_goto( wp->x[i] >> 4, wp->y[i] >> 4 );54 gfx_putchar( '|' );55 gfx_color(CYAN );56 gfx_goto( wp->x[i] >> 4, (wp->y[i] >> 4) + 1 );57 gfx_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( '|' ); 58 58 break; 59 59 case WEAPON_SEEKER: 60 gfx_color(CYAN );61 gfx_goto( wp->x3[i] >> 4, wp->y3[i] >> 4 );62 gfx_putchar( '.' );63 gfx_goto( wp->x2[i] >> 4, wp->y2[i] >> 4 );64 gfx_putchar( 'o' );65 gfx_color(WHITE );66 gfx_goto( wp->x[i] >> 4, wp->y[i] >> 4 );67 gfx_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( '@' ); 68 68 break; 69 69 case WEAPON_BOMB: 70 gfx_color(GRAY );71 gfx_goto( (wp->x[i] - wp->vx[i]) >> 4, (wp->y[i] - wp->vy[i]) >> 4 );72 gfx_putchar( '.' );73 gfx_goto( (wp->x3[i] - wp->vx[i]) >> 4, (wp->y3[i] - wp->vy[i]) >> 4 );74 gfx_putchar( '.' );75 gfx_goto( (wp->x2[i] - wp->vx[i]) >> 4, (wp->y2[i] - wp->vy[i]) >> 4 );76 gfx_putchar( '.' );77 gfx_goto( wp->x3[i] >> 4, wp->y3[i] >> 4 );78 gfx_putchar( '.' );79 gfx_goto( wp->x2[i] >> 4, wp->y2[i] >> 4 );80 gfx_putchar( '.' );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 81 draw_bomb( wp->x[i] >> 4, wp->y[i] >> 4, wp->vx[i], wp->vy[i] ); 82 82 break; … … 290 290 { 291 291 vy *= 2; 292 gfx_color(CYAN );292 ee_color( EE_CYAN ); 293 293 294 294 if( vx > vy ) … … 299 299 { 300 300 /* -1pi/6 */ 301 gfx_goto( x-4, y-1 );302 gfx_putstr( "/`-." );303 gfx_goto( x-4, y );304 gfx_putstr( "`-._\\" );305 gfx_color(WHITE );306 gfx_goto( x-1, y );307 gfx_putstr( "_\\" );308 gfx_goto( x, y+1 );309 gfx_putchar( '`' );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 310 } 311 311 else if( vy < -vx/4 ) 312 312 { 313 313 /* 1pi/6 */ 314 gfx_goto( x-4, y );315 gfx_putstr( ",-' " );316 gfx_goto( x-4, y+1 );317 gfx_putstr( "\\,-'" );318 gfx_color(WHITE );319 gfx_goto( x-1, y-1 );320 gfx_putstr( "_," );321 gfx_goto( x, y );322 gfx_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( '/' ); 323 323 } 324 324 else 325 325 { 326 326 /* 0pi/6 */ 327 gfx_goto( x-4, y-1 );328 gfx_putstr( "____" );329 gfx_goto( x-5, y );330 gfx_putstr( "|____" );331 gfx_color(WHITE );332 gfx_goto( x, y );333 gfx_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( '>' ); 334 334 } 335 335 } … … 339 339 { 340 340 /* 2pi/6 */ 341 gfx_goto( x-2, y );342 gfx_putstr( "/ " );343 gfx_goto( x-3, y+1 );344 gfx_putstr( "/ /" );345 gfx_goto( x-3, y+2 );346 gfx_putstr( "`'" );347 gfx_color(WHITE );348 gfx_goto( x-1, y-1 );349 gfx_putstr( "_," );350 gfx_goto( x, y );351 gfx_putchar( '|' );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 352 } 353 353 else if( vx < vy/4 ) 354 354 { 355 355 /* 4pi/6 */ 356 gfx_goto( x+1, y );357 gfx_putstr( " \\" );358 gfx_goto( x+1, y+1 );359 gfx_putstr( "\\ \\" );360 gfx_goto( x+2, y+2 );361 gfx_putstr( "`'" );362 gfx_color(WHITE );363 gfx_goto( x, y-1 );364 gfx_putstr( "._" );365 gfx_goto( x, y );366 gfx_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( '|' ); 367 367 } 368 368 else 369 369 { 370 370 /* 3pi/6 */ 371 gfx_goto( x-1, y+1 );372 gfx_putstr( "| |" );373 gfx_goto( x-1, y+2 );374 gfx_putstr( "|_|" );375 gfx_color(WHITE );376 gfx_goto( x-1, y );377 gfx_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( ",^." ); 378 378 } 379 379 } … … 386 386 { 387 387 /* -2pi/6 */ 388 gfx_goto( x-2, y-2 );389 gfx_putstr( ",." );390 gfx_goto( x-2, y-1 );391 gfx_putstr( "\\ \\" );392 gfx_goto( x-1, y );393 gfx_putchar( '\\' );394 gfx_color(WHITE );395 gfx_goto( x, y );396 gfx_putstr( "_|" );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 397 } 398 398 else if( vx < -vy/4 ) 399 399 { 400 400 /* -4pi/6 */ 401 gfx_goto( x+1, y-2 );402 gfx_putstr( ",." );403 gfx_goto( x, y-1 );404 gfx_putstr( "/ /" );405 gfx_goto( x+1, y );406 gfx_putchar( '/' );407 gfx_color(WHITE );408 gfx_goto( x-1, y );409 gfx_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( "|_/" ); 410 410 } 411 411 else 412 412 { 413 413 /* -3pi/6 */ 414 gfx_goto( x, y-3 );415 gfx_putchar( '_' );416 gfx_goto( x-1, y-2 );417 gfx_putstr( "| |" );418 gfx_goto( x-1, y-1 );419 gfx_putstr( "| |" );420 gfx_color(WHITE );421 gfx_goto( x-1, y );422 gfx_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'" ); 423 423 } 424 424 } … … 428 428 { 429 429 /* -5pi/6 */ 430 gfx_goto( x+1, y-1 );431 gfx_putstr( ",-'\\" );432 gfx_goto( x+2, y );433 gfx_putstr( ",-'" );434 gfx_goto( x, y+1 );435 gfx_putchar( '\'' );436 gfx_color(WHITE );437 gfx_goto( x, y );438 gfx_putstr( "/_" );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 439 } 440 440 else if( vy < vx/4 ) 441 441 { 442 442 /* 5pi/6 */ 443 gfx_goto( x+1, y );444 gfx_putstr( " `-." );445 gfx_goto( x+1, y+1 );446 gfx_putstr( "`-./" );447 gfx_color(WHITE );448 gfx_goto( x, y-1 );449 gfx_putstr( "._" );450 gfx_goto( x, y );451 gfx_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( '\\' ); 452 452 } 453 453 else 454 454 { 455 455 /* 6pi/6 */ 456 gfx_goto( x+1, y-1 );457 gfx_putstr( "____" );458 gfx_goto( x+1, y );459 gfx_putstr( "____|" );460 gfx_color(WHITE );461 gfx_goto( x, y );462 gfx_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( '<' ); 463 463 } 464 464 } … … 468 468 static void draw_fragbomb( int x, int y, int frame ) 469 469 { 470 gfx_color(WHITE );471 472 gfx_color( frame & 1 ? CYAN :WHITE );473 gfx_goto( x-2, y );474 gfx_putstr( "( )" );475 gfx_goto( x-1, y+1 );476 gfx_putstr( "`--'" );477 478 gfx_color( frame & 1 ? WHITE :CYAN );479 gfx_goto( x-1, y-1 );480 gfx_putstr( ",--." );481 gfx_goto( x, y );482 gfx_putstr( "'," );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 483 484 484 switch( frame % 4 ) 485 485 { 486 486 case 0: 487 gfx_color(CYAN );488 gfx_goto( x, y + 2 );489 gfx_putchar( 'O' );490 gfx_goto( x + 2, y + 2 );491 gfx_putchar( 'o' );492 gfx_goto( x + 1, y + 3 );493 gfx_putchar( 'o' );494 gfx_color(GRAY );495 gfx_goto( x - 1, y + 3 );496 gfx_putchar( ':' );497 gfx_goto( x + 2, y + 4 );498 gfx_putchar( ':' );499 gfx_goto( x, y + 4 );500 gfx_putchar( '.' );501 gfx_goto( x + 1, y + 5 );502 gfx_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( '.' ); 503 503 break; 504 504 case 1: 505 gfx_color(CYAN );506 // gfx_goto( x, y + 1 );507 // gfx_putchar( 'O' );508 gfx_goto( x + 1, y + 2 );509 gfx_putchar( 'O' );510 gfx_goto( x, y + 3 );511 gfx_putchar( 'o' );512 gfx_color(GRAY );513 gfx_goto( x + 2, y + 3 );514 gfx_putchar( ':' );515 gfx_goto( x + 1, y + 4 );516 gfx_putchar( ':' );517 gfx_goto( x - 1, y + 4 );518 gfx_putchar( '.' );519 gfx_goto( x + 2, y + 5 );520 gfx_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( '.' ); 521 521 break; 522 522 case 2: 523 gfx_color(CYAN );524 // gfx_goto( x - 1, y + 1 );525 // gfx_putchar( 'O' );526 gfx_goto( x + 2, y + 2 );527 gfx_putchar( 'O' );528 gfx_goto( x, y + 2 );529 gfx_putchar( 'o' );530 gfx_goto( x + 1, y + 3 );531 gfx_putchar( 'o' );532 gfx_color(GRAY );533 gfx_goto( x, y + 4 );534 gfx_putchar( ':' );535 gfx_goto( x + 2, y + 4 );536 gfx_putchar( '.' );537 gfx_goto( x + 1, y + 5 );538 gfx_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( '.' ); 539 539 break; 540 540 case 3: 541 gfx_color(CYAN );542 // gfx_goto( x + 2, y + 1 );543 // gfx_putchar( 'O' );544 gfx_goto( x + 1, y + 2 );545 gfx_putchar( 'O' );546 gfx_goto( x - 1, y + 2 );547 gfx_putchar( 'o' );548 gfx_goto( x + 2, y + 3 );549 gfx_putchar( 'o' );550 gfx_color(GRAY );551 gfx_goto( x, y + 3 );552 gfx_putchar( ':' );553 gfx_goto( x + 1, y + 4 );554 gfx_putchar( ':' );555 gfx_goto( x, y + 5 );556 gfx_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( '.' ); 557 557 break; 558 558 } … … 567 567 { 568 568 case 24: 569 gfx_color(WHITE );570 gfx_goto( x, y-3 );571 gfx_putstr( "__" );572 gfx_goto( x-1, y-2 );573 gfx_putchar( '\'' );574 gfx_goto( x+2, y-2 );575 gfx_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( '`' ); 576 576 break; 577 577 case 23: 578 gfx_color(CYAN );579 gfx_goto( x, y-3 );580 gfx_putstr( "__" );581 gfx_color(WHITE );582 gfx_goto( x-2, y-2 );583 gfx_putstr( "-'" );584 gfx_goto( x+2, y-2 );585 gfx_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( "`-" ); 586 586 break; 587 587 case 22: 588 gfx_color(CYAN );589 gfx_goto( x, y-3 );590 gfx_putstr( "__" );591 gfx_goto( x-1, y-2 );592 gfx_putchar( '\'' );593 gfx_goto( x+2, y-2 );594 gfx_putchar( '`' );595 gfx_color(WHITE );596 gfx_goto( x-3, y-2 );597 gfx_putstr( ",-" );598 gfx_goto( x+3, y-2 );599 gfx_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( "-." ); 600 600 break; 601 601 case 21: 602 gfx_color(CYAN );603 gfx_goto( x-1, y-3 );604 gfx_putstr( "____" );605 gfx_goto( x-2, y-2 );606 gfx_putchar( '\'' );607 gfx_goto( x+3, y-2 );608 gfx_putchar( '`' );609 gfx_color(WHITE );610 gfx_goto( x-4, y-2 );611 gfx_putstr( ",-" );612 gfx_goto( x+4, y-2 );613 gfx_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( "-." ); 614 614 break; 615 615 case 20: 616 gfx_color(WHITE );617 gfx_goto( x, y-3 );618 gfx_putstr( "%%" );619 gfx_goto( x-4, y-2 );620 gfx_putchar( ',' );621 gfx_goto( x+5, y-2 );622 gfx_putchar( '.' );623 gfx_color(CYAN );624 gfx_goto( x-1, y-3 );625 gfx_putchar( ':' );626 gfx_goto( x+2, y-3 );627 gfx_putchar( ':' );628 gfx_goto( x-3, y-2 );629 gfx_putstr( "-'" );630 gfx_goto( x+3, y-2 );631 gfx_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( "`-" ); 632 632 break; 633 633 case 19: 634 gfx_color(WHITE );635 gfx_goto( x, y-4 );636 gfx_putstr( "%%" );637 gfx_goto( x, y-3 );638 gfx_putstr( "##" );639 gfx_color(CYAN );640 gfx_goto( x-1, y-4 );641 gfx_putchar( ':' );642 gfx_goto( x+2, y-4 );643 gfx_putchar( ':' );644 gfx_goto( x-1, y-3 );645 gfx_putchar( '%' );646 gfx_goto( x+2, y-3 );647 gfx_putchar( '%' );648 gfx_goto( x-4, y-2 );649 gfx_putstr( ",-'" );650 gfx_goto( x+3, y-2 );651 gfx_putstr( "`-." );652 gfx_color(BLUE );653 gfx_goto( x-2, y-3 );654 gfx_putchar( ':' );655 gfx_goto( x+3, y-3 );656 gfx_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( ':' ); 657 657 break; 658 658 case 18: 659 659 default: 660 660 r = (18 - frame) * (18 - frame); 661 gfx_color(WHITE );662 gfx_goto( x-1, y-5-r );663 gfx_putstr( ":%%:" );664 gfx_goto( x-1, y-4-r );665 gfx_putstr( "%##%" );666 gfx_color(CYAN );667 gfx_goto( x-2, y-4-r );668 gfx_putchar( ':' );669 gfx_goto( x+3, y-4-r );670 gfx_putchar( ':' );671 gfx_goto( x-2, y-2 );672 gfx_putchar( '\'' );673 gfx_goto( x+3, y-2 );674 gfx_putchar( '`' );675 gfx_color(BLUE );676 gfx_goto( x-3, y-2 );677 gfx_putchar( ':' );678 gfx_goto( x+4, y-2 );679 gfx_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 680 for( i = 0; i <= r; i++ ) 681 681 { 682 gfx_color(WHITE );683 gfx_goto( x-1, y-3-i );684 gfx_putstr( (i+frame) % 5 ? "####" : "%%%%" );685 gfx_color(CYAN );686 gfx_goto( x-2, y-3-i );687 gfx_putchar( '%' );688 gfx_goto( x+3, y-3-i );689 gfx_putchar( '%' );690 gfx_color(BLUE );691 gfx_goto( x-3, y-3-i );692 gfx_putchar( ':' );693 gfx_goto( x+4, y-3-i );694 gfx_putchar( ':' );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( ':' ); 695 695 } 696 696 break; … … 703 703 704 704 /* Lots of duplicate pixels, but we don't care */ 705 gfx_color(BLUE );705 ee_color( EE_BLUE ); 706 706 draw_circle( x, y, r++, ':' ); 707 gfx_color(CYAN );707 ee_color( EE_CYAN ); 708 708 draw_circle( x, y, r++, '%' ); 709 gfx_color(WHITE );709 ee_color( EE_WHITE ); 710 710 draw_circle( x, y, r++, '#' ); 711 711 draw_circle( x, y, r++, '#' ); … … 719 719 for( test = 0, dx = 0, dy = r ; dx <= dy ; dx++ ) 720 720 { 721 gfx_putcharTO( x + dx, y + dy / 2, c );722 gfx_putcharTO( x - dx, y + dy / 2, c );723 gfx_putcharTO( x + dx, y - dy / 2, c );724 gfx_putcharTO( x - dx, y - dy / 2, c );725 726 gfx_putcharTO( x + dy, y + dx / 2, c );727 gfx_putcharTO( x - dy, y + dx / 2, c );728 gfx_putcharTO( x + dy, y - dx / 2, c );729 gfx_putcharTO( x - dy, y - dx / 2, c );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 ); 730 730 731 731 test += test > 0 ? dx - dy-- : dx;
Note: See TracChangeset
for help on using the changeset viewer.