Changeset 41
- Timestamp:
- Dec 22, 2002, 11:17:41 PM (20 years ago)
- Location:
- libcaca/trunk
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
libcaca/trunk/doc/shapes.txt
r31 r41 105 105 106 106 ,--. 107 ( ())107 ( ', ) 108 108 `--' 109 109 o O -
libcaca/trunk/src/aliens.c
r37 r41 4 4 * All Rights Reserved 5 5 * 6 * $Id: aliens.c,v 1. 6 2002/12/22 18:44:12sam Exp $6 * $Id: aliens.c,v 1.7 2002/12/22 22:17:41 sam Exp $ 7 7 * 8 8 * This program is free software; you can redistribute it and/or modify … … 68 68 for( i = 0; i < ALIENS; i++ ) 69 69 { 70 /* 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 ); 74 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 ); 76 } 77 78 /* Update coordinates */ 70 79 switch( al->type[i] ) 71 80 { -
libcaca/trunk/src/ceo.c
r37 r41 4 4 * All Rights Reserved 5 5 * 6 * $Id: ceo.c,v 1. 3 2002/12/22 18:44:12sam Exp $6 * $Id: ceo.c,v 1.4 2002/12/22 22:17:41 sam Exp $ 7 7 * 8 8 * This program is free software; you can redistribute it and/or modify … … 21 21 */ 22 22 23 #include "config.h" 24 25 #include <unistd.h> 26 23 27 #include "common.h" 24 28 25 29 void ceo_alert( void ) 26 30 { 27 char key; 28 int end = 0; 31 int end = 0; 29 32 30 33 while( !end ) -
libcaca/trunk/src/collide.c
r37 r41 4 4 * All Rights Reserved 5 5 * 6 * $Id: collide.c,v 1. 6 2002/12/22 18:44:12sam Exp $6 * $Id: collide.c,v 1.7 2002/12/22 22:17:41 sam Exp $ 7 7 * 8 8 * This program is free software; you can redistribute it and/or modify … … 36 36 switch( wp->type[i] ) 37 37 { 38 case WEAPON_NONE: 39 break; 40 case WEAPON_SEEKER: 41 case WEAPON_BOMB: 42 if( x <= t->left[y] 43 || x >= t->right[y] ) 44 { 45 int damage = wp->type[i] == WEAPON_SEEKER ? 1 : 2; 46 47 add_explosion( g, ex, x, y, 0, 1, wp->type[i] == WEAPON_SEEKER ? EXPLOSION_SMALL : EXPLOSION_MEDIUM ); 48 49 if( x <= t->left[y] ) 50 { 51 t->right[y-2] -= damage - 1; 52 t->left[y-1] -= damage; 53 t->left[y] -= damage + 1; 54 t->left[y+1] -= damage; 55 t->right[y+2] -= damage - 1; 56 } 57 else 58 { 59 t->right[y-2] += damage - 1; 60 t->right[y-1] += damage; 61 t->right[y] += damage + 1; 62 t->right[y+1] += damage; 63 t->right[y+2] += damage - 1; 64 } 65 38 case WEAPON_LIGHTNING: 39 case WEAPON_NONE: 40 break; 41 case WEAPON_SEEKER: 42 case WEAPON_BOMB: 43 case WEAPON_FRAGBOMB: 44 if( x <= t->left[y] 45 || x >= t->right[y] ) 46 { 47 int damage = wp->type[i] == WEAPON_SEEKER ? 1 : 2; 48 49 add_explosion( g, ex, x, y, 0, 1, wp->type[i] == WEAPON_SEEKER ? EXPLOSION_SMALL : EXPLOSION_MEDIUM ); 50 51 if( x <= t->left[y] ) 52 { 53 t->right[y-2] -= damage - 1; 54 t->left[y-1] -= damage; 55 t->left[y] -= damage + 1; 56 t->left[y+1] -= damage; 57 t->right[y+2] -= damage - 1; 58 } 59 else 60 { 61 t->right[y-2] += damage - 1; 62 t->right[y-1] += damage; 63 t->right[y] += damage + 1; 64 t->right[y+1] += damage; 65 t->right[y+2] += damage - 1; 66 } 67 68 if( wp->type[i] == WEAPON_FRAGBOMB ) 69 { 70 wp->n[i] = -1; 71 } 72 else 73 { 66 74 wp->type[i] = WEAPON_NONE; 67 75 } 68 break; 69 case WEAPON_LASER: 70 if( x <= t->left[y+1] 71 || x >= t->right[y+1] ) 72 { 73 add_explosion( g, ex, x, y+1, 0, 1, EXPLOSION_SMALL ); 74 75 if( x <= t->left[y+1] ) 76 { 77 t->left[y]--; 78 t->left[y+1]-=2; 79 t->left[y+2]--; 80 } 81 else 82 { 83 t->right[y]++; 84 t->right[y+1]+=2; 85 t->right[y+2]++; 86 } 87 88 wp->type[i] = WEAPON_NONE; 89 } 90 else if( x <= t->left[y] 91 || x >= t->right[y] ) 92 { 93 add_explosion( g, ex, x, y, 0, 1, EXPLOSION_SMALL ); 94 95 if( x <= t->left[y] ) 96 { 97 t->left[y-1]--; 98 t->left[y]-=2; 99 t->left[y+1]--; 100 } 101 else 102 { 103 t->right[y-1]++; 104 t->right[y]+=2; 105 t->right[y+1]++; 106 } 107 108 wp->type[i] = WEAPON_NONE; 109 } 110 break; 111 case WEAPON_NUKE: 112 case WEAPON_BEAM: 113 /* The nuke and the laser do not break the tunnel */ 114 break; 76 } 77 break; 78 case WEAPON_LASER: 79 if( x <= t->left[y+1] 80 || x >= t->right[y+1] ) 81 { 82 add_explosion( g, ex, x, y+1, 0, 1, EXPLOSION_SMALL ); 83 84 if( x <= t->left[y+1] ) 85 { 86 t->left[y]--; 87 t->left[y+1]-=2; 88 t->left[y+2]--; 89 } 90 else 91 { 92 t->right[y]++; 93 t->right[y+1]+=2; 94 t->right[y+2]++; 95 } 96 97 wp->type[i] = WEAPON_NONE; 98 } 99 else if( x <= t->left[y] 100 || x >= t->right[y] ) 101 { 102 add_explosion( g, ex, x, y, 0, 1, EXPLOSION_SMALL ); 103 104 if( x <= t->left[y] ) 105 { 106 t->left[y-1]--; 107 t->left[y]-=2; 108 t->left[y+1]--; 109 } 110 else 111 { 112 t->right[y-1]++; 113 t->right[y]+=2; 114 t->right[y+1]++; 115 } 116 117 wp->type[i] = WEAPON_NONE; 118 } 119 break; 120 case WEAPON_NUKE: 121 case WEAPON_BEAM: 122 /* The nuke and the laser do not break the tunnel */ 123 break; 115 124 } 116 125 } … … 131 140 switch( wp->type[i] ) 132 141 { 133 case WEAPON_NONE: 134 break; 135 case WEAPON_NUKE: 136 /* Big nuke */ 137 r = (29 - wp->n[i]) * (29 - wp->n[i]) / 8; 138 139 for( j = 0; j < ALIENS; j++ ) 140 { 141 if( al->type[j] == ALIEN_NONE ) 142 { 143 continue; 144 } 145 146 if( wp->n[i] == 0 /* Nuke destroys _everything_ */ || 147 (al->x[j] - x) * (al->x[j] - x) 148 + 4 * (al->y[j] - y) * (al->y[j] - y) 149 <= r * r ) 150 { 151 /* Kill alien, not nuke */ 152 al->type[j] = ALIEN_NONE; 153 add_explosion( g, ex, al->x[j], al->y[j], 0, 0, EXPLOSION_MEDIUM ); 154 add_bonus( g, g->bo, al->x[j], al->y[j], GET_RAND(0,5) ? BONUS_GREEN : BONUS_LIFE ); 155 } 156 } 157 break; 158 case WEAPON_BEAM: 159 r = (29 - wp->n[i]) * (29 - wp->n[i]) / 8; 160 161 for( j = 0; j < ALIENS; j++ ) 162 { 163 if( al->type[j] == ALIEN_NONE ) 164 { 165 continue; 166 } 167 168 if( x >= al->x[j] && x <= al->x[j] + 4 169 && y >= al->y[j] + 2 && y-5-r <= al->y[j] ) 170 { 171 al->life[j] -= 4; 172 if( al->life[j] <= 0 ) 173 { 174 al->type[j] = ALIEN_NONE; 175 add_explosion( g, ex, al->x[j], al->y[j], 0, 0, EXPLOSION_MEDIUM ); 176 add_bonus( g, g->bo, al->x[j], al->y[j], GET_RAND(0,5) ? BONUS_GREEN : BONUS_LIFE ); 177 } 178 } 179 } 180 break; 181 182 case WEAPON_LASER: 183 for( j = 0; j < ALIENS; j++ ) 184 { 185 if( al->type[j] == ALIEN_NONE ) 186 { 187 continue; 188 } 189 190 if( x >= al->x[j] && x <= al->x[j] + 4 191 && y >= al->y[j] && y <= al->y[j] + 2 ) 192 { 193 al->life[j]--; 194 if( al->life[j] <= 0 ) 195 { 196 al->type[j] = ALIEN_NONE; 197 add_explosion( g, ex, al->x[j], al->y[j], 0, 0, EXPLOSION_MEDIUM ); 198 add_bonus( g, g->bo, al->x[j], al->y[j], GET_RAND(0,5) ? BONUS_GREEN : BONUS_LIFE ); 199 } 200 ok = 1; 201 } 202 else if( x >= al->x[j] && x <= al->x[j] + 4 203 && y+1 >= al->y[j] && y+1 <= al->y[j] + 2 ) 204 { 205 al->life[j]--; 206 if( al->life[j] <= 0 ) 207 { 208 al->type[j] = ALIEN_NONE; 209 add_explosion( g, ex, al->x[j], al->y[j]+1, 0, 0, EXPLOSION_MEDIUM ); 210 add_bonus( g, g->bo, al->x[j], al->y[j]+1, GET_RAND(0,5) ? BONUS_GREEN : BONUS_LIFE ); 211 } 212 ok = 1; 213 } 214 } 215 216 if( ok ) 217 { 218 add_explosion( g, ex, x, y+1, 0, 0, EXPLOSION_SMALL ); 142 case WEAPON_LIGHTNING: 143 case WEAPON_NONE: 144 break; 145 case WEAPON_NUKE: 146 /* Big nuke */ 147 r = (29 - wp->n[i]) * (29 - wp->n[i]) / 8; 148 149 for( j = 0; j < ALIENS; j++ ) 150 { 151 if( al->type[j] == ALIEN_NONE || al->life[j] < 0 ) 152 { 153 continue; 154 } 155 156 if( wp->n[i] == 0 /* Nuke destroys _everything_ */ || 157 (al->x[j] - x) * (al->x[j] - x) 158 + 4 * (al->y[j] - y) * (al->y[j] - y) 159 <= r * r ) 160 { 161 /* Kill alien, not nuke */ 162 al->life[j] -= 10; 163 } 164 } 165 break; 166 167 case WEAPON_BEAM: 168 r = (29 - wp->n[i]) * (29 - wp->n[i]) / 8; 169 170 for( j = 0; j < ALIENS; j++ ) 171 { 172 if( al->type[j] == ALIEN_NONE || al->life[j] < 0 ) 173 { 174 continue; 175 } 176 177 if( x >= al->x[j] && x <= al->x[j] + 4 178 && y >= al->y[j] + 2 && y-5-r <= al->y[j] ) 179 { 180 al->life[j] -= 4; 181 } 182 } 183 break; 184 185 case WEAPON_LASER: 186 for( j = 0; j < ALIENS; j++ ) 187 { 188 if( al->type[j] == ALIEN_NONE || al->life[j] < 0 ) 189 { 190 continue; 191 } 192 193 if( x >= al->x[j] && x <= al->x[j] + 4 194 && y >= al->y[j] && y <= al->y[j] + 2 ) 195 { 196 al->life[j]--; 197 ok = 1; 198 } 199 else if( x >= al->x[j] && x <= al->x[j] + 4 200 && y+1 >= al->y[j] && y+1 <= al->y[j] + 2 ) 201 { 202 al->life[j]--; 203 ok = 1; 204 } 205 } 206 207 if( ok ) 208 { 209 add_explosion( g, ex, x, y+1, 0, 0, EXPLOSION_SMALL ); 210 wp->type[i] = WEAPON_NONE; 211 } 212 break; 213 214 case WEAPON_SEEKER: 215 case WEAPON_BOMB: 216 case WEAPON_FRAGBOMB: 217 for( j = 0; j < ALIENS; j++ ) 218 { 219 if( al->type[j] == ALIEN_NONE || al->life[j] < 0 ) 220 { 221 continue; 222 } 223 224 if( x >= al->x[j] && x <= al->x[j] + 4 225 && y >= al->y[j] && y <= al->y[j] + 2 ) 226 { 227 al->life[j] -= wp->type[i] == WEAPON_SEEKER ? 1 : 5; 228 ok = 1; 229 } 230 } 231 232 if( ok ) 233 { 234 add_explosion( g, ex, x, y+1, 0, 0, wp->type[i] == WEAPON_SEEKER ? EXPLOSION_SMALL : EXPLOSION_MEDIUM ); 235 236 if( wp->type[i] == WEAPON_FRAGBOMB ) 237 { 238 wp->n[i] = -1; 239 } 240 else 241 { 219 242 wp->type[i] = WEAPON_NONE; 220 243 } 221 break; 222 223 case WEAPON_SEEKER: 224 case WEAPON_BOMB: 225 for( j = 0; j < ALIENS; j++ ) 226 { 227 if( al->type[j] == ALIEN_NONE ) 228 { 229 continue; 230 } 231 232 if( x >= al->x[j] && x <= al->x[j] + 4 233 && y >= al->y[j] && y <= al->y[j] + 2 ) 234 { 235 al->life[j] -= wp->type[i] == WEAPON_BOMB ? 5 : 1; 236 if( al->life[j] <= 0 ) 237 { 238 al->type[j] = ALIEN_NONE; 239 add_explosion( g, ex, al->x[j], al->y[j], 0, 0, EXPLOSION_MEDIUM ); 240 add_bonus( g, g->bo, al->x[j], al->y[j], GET_RAND(0,5) ? BONUS_GREEN : BONUS_LIFE ); 241 } 242 ok = 1; 243 } 244 } 245 246 if( ok ) 247 { 248 add_explosion( g, ex, x, y+1, 0, 0, wp->type[i] == WEAPON_SEEKER ? EXPLOSION_SMALL : EXPLOSION_MEDIUM ); 249 wp->type[i] = WEAPON_NONE; 250 } 251 break; 244 } 245 break; 252 246 } 253 247 } -
libcaca/trunk/src/common.h
r37 r41 4 4 * All Rights Reserved 5 5 * 6 * $Id: common.h,v 1. 7 2002/12/22 18:44:12sam Exp $6 * $Id: common.h,v 1.8 2002/12/22 22:17:41 sam Exp $ 7 7 * 8 8 * This program is free software; you can redistribute it and/or modify … … 74 74 typedef struct 75 75 { 76 enum { WEAPON_NONE, WEAPON_LASER, WEAPON_SEEKER, WEAPON_NUKE, WEAPON_BEAM, WEAPON_LIGHTNING, WEAPON_BOMB } type[WEAPONS];76 enum { WEAPON_NONE, WEAPON_LASER, WEAPON_SEEKER, WEAPON_NUKE, WEAPON_BEAM, WEAPON_LIGHTNING, WEAPON_BOMB, WEAPON_FRAGBOMB } type[WEAPONS]; 77 77 int x[WEAPONS]; 78 78 int y[WEAPONS]; -
libcaca/trunk/src/main.c
r37 r41 4 4 * All Rights Reserved 5 5 * 6 * $Id: main.c,v 1. 7 2002/12/22 18:44:12sam Exp $6 * $Id: main.c,v 1.8 2002/12/22 22:17:41 sam Exp $ 7 7 * 8 8 * This program is free software; you can redistribute it and/or modify … … 128 128 g->p->nuke = 40; 129 129 add_weapon( g, g->wp, (g->p->x + 2) << 4, g->p->y << 4, 0, 0, WEAPON_BEAM ); 130 } 131 break; 132 case 'd': 133 if( g->p->nuke == 0 ) 134 { 135 g->p->nuke = 40; 136 add_weapon( g, g->wp, (g->p->x + 2) << 4, g->p->y << 4, 0, -16, WEAPON_FRAGBOMB ); 130 137 } 131 138 break; … … 206 213 draw_bonus( g, g->bo ); 207 214 draw_aliens( g, g->al ); 208 draw_player( g, g->p );209 215 draw_explosions( g, g->ex ); 210 216 draw_weapons( g, g->wp ); 217 draw_player( g, g->p ); 211 218 212 219 /* Refresh */ -
libcaca/trunk/src/weapons.c
r37 r41 4 4 * All Rights Reserved 5 5 * 6 * $Id: weapons.c,v 1. 7 2002/12/22 18:44:12sam Exp $6 * $Id: weapons.c,v 1.8 2002/12/22 22:17:41 sam Exp $ 7 7 * 8 8 * This program is free software; you can redistribute it and/or modify … … 30 30 static void draw_beam( int x, int y, int frame ); 31 31 static void draw_circle( int x, int y, int r, char c ); 32 static void draw_fragbomb( int x, int y, int frame ); 32 33 33 34 void init_weapons( game *g, weapons *wp ) … … 81 82 draw_bomb( wp->x[i] >> 4, wp->y[i] >> 4, wp->vx[i], wp->vy[i] ); 82 83 break; 84 case WEAPON_FRAGBOMB: 85 draw_fragbomb( wp->x[i] >> 4, wp->y[i] >> 4, wp->n[i] ); 86 break; 83 87 case WEAPON_BEAM: 84 88 draw_beam( wp->x[i] >> 4, wp->y[i] >> 4, wp->n[i] ); … … 87 91 draw_nuke( wp->x[i] >> 4, wp->y[i] >> 4, wp->n[i] ); 88 92 break; 93 case WEAPON_LIGHTNING: 89 94 case WEAPON_NONE: 90 95 break; … … 173 178 174 179 break; 180 case WEAPON_FRAGBOMB: 181 /* If n was set to -1, the fragbomb exploded */ 182 if( wp->n[i] == -1 ) 183 { 184 add_weapon( g, g->wp, wp->x[i] + 24, wp->y[i], 24, 0, WEAPON_SEEKER ); 185 add_weapon( g, g->wp, wp->x[i] - 24, wp->y[i], -24, 0, WEAPON_SEEKER ); 186 add_weapon( g, g->wp, wp->x[i], wp->y[i] + 24, 0, 24, WEAPON_SEEKER ); 187 add_weapon( g, g->wp, wp->x[i], wp->y[i] - 24, 0, -24, WEAPON_SEEKER ); 188 add_weapon( g, g->wp, wp->x[i] + 24, wp->y[i] + 8, 24, 8, WEAPON_SEEKER ); 189 add_weapon( g, g->wp, wp->x[i] - 24, wp->y[i] + 8, -24, 8, WEAPON_SEEKER ); 190 add_weapon( g, g->wp, wp->x[i] + 24, wp->y[i] - 8, 24, -8, WEAPON_SEEKER ); 191 add_weapon( g, g->wp, wp->x[i] - 24, wp->y[i] - 8, -24, -8, WEAPON_SEEKER ); 192 add_weapon( g, g->wp, wp->x[i] + 16, wp->y[i] + 16, 16, 16, WEAPON_SEEKER ); 193 add_weapon( g, g->wp, wp->x[i] - 16, wp->y[i] + 16, -16, 16, WEAPON_SEEKER ); 194 add_weapon( g, g->wp, wp->x[i] + 16, wp->y[i] - 16, 16, -16, WEAPON_SEEKER ); 195 add_weapon( g, g->wp, wp->x[i] - 16, wp->y[i] - 16, -16, -16, WEAPON_SEEKER ); 196 wp->type[i] = WEAPON_NONE; 197 } 198 199 wp->x[i] += wp->vx[i]; 200 wp->y[i] += wp->vy[i]; 201 wp->n[i]++; 202 if( wp->y[i] < 0 ) 203 { 204 wp->type[i] = WEAPON_NONE; 205 } 206 break; 175 207 case WEAPON_BEAM: 176 208 wp->x[i] = (g->p->x + 2) << 4; … … 189 221 } 190 222 break; 223 case WEAPON_LIGHTNING: 191 224 case WEAPON_NONE: 192 225 break; … … 208 241 wp->vy[i] = vy; 209 242 wp->type[i] = type; 243 wp->n[i] = 0; 210 244 switch( type ) 211 245 { 212 246 case WEAPON_LASER: 247 break; 248 case WEAPON_FRAGBOMB: 213 249 break; 214 250 case WEAPON_SEEKER: … … 410 446 } 411 447 } 448 } 449 } 450 451 static void draw_fragbomb( int x, int y, int frame ) 452 { 453 gfx_color( WHITE ); 454 455 gfx_color( frame & 1 ? CYAN : WHITE ); 456 gfx_goto( x-2, y ); 457 gfx_putstr( "( )" ); 458 gfx_goto( x-1, y+1 ); 459 gfx_putstr( "`--'" ); 460 461 gfx_color( frame & 1 ? WHITE : CYAN ); 462 gfx_goto( x-1, y-1 ); 463 gfx_putstr( ",--." ); 464 gfx_goto( x, y ); 465 gfx_putstr( "'," ); 466 467 switch( frame % 4 ) 468 { 469 case 0: 470 gfx_color( CYAN ); 471 gfx_goto( x, y + 2 ); 472 gfx_putchar( 'O' ); 473 gfx_goto( x + 2, y + 2 ); 474 gfx_putchar( 'o' ); 475 gfx_goto( x + 1, y + 3 ); 476 gfx_putchar( 'o' ); 477 gfx_color( GRAY ); 478 gfx_goto( x - 1, y + 3 ); 479 gfx_putchar( '°' ); 480 gfx_goto( x + 2, y + 4 ); 481 gfx_putchar( '°' ); 482 gfx_goto( x, y + 4 ); 483 gfx_putchar( '.' ); 484 gfx_goto( x + 1, y + 5 ); 485 gfx_putchar( '.' ); 486 break; 487 case 1: 488 gfx_color( CYAN ); 489 //gfx_goto( x, y + 1 ); 490 //gfx_putchar( 'O' ); 491 gfx_goto( x + 1, y + 2 ); 492 gfx_putchar( 'O' ); 493 gfx_goto( x, y + 3 ); 494 gfx_putchar( 'o' ); 495 gfx_color( GRAY ); 496 gfx_goto( x + 2, y + 3 ); 497 gfx_putchar( '°' ); 498 gfx_goto( x + 1, y + 4 ); 499 gfx_putchar( '°' ); 500 gfx_goto( x - 1, y + 4 ); 501 gfx_putchar( '.' ); 502 gfx_goto( x + 2, y + 5 ); 503 gfx_putchar( '.' ); 504 break; 505 case 2: 506 gfx_color( CYAN ); 507 //gfx_goto( x - 1, y + 1 ); 508 //gfx_putchar( 'O' ); 509 gfx_goto( x + 2, y + 2 ); 510 gfx_putchar( 'O' ); 511 gfx_goto( x, y + 2 ); 512 gfx_putchar( 'o' ); 513 gfx_goto( x + 1, y + 3 ); 514 gfx_putchar( 'o' ); 515 gfx_color( GRAY ); 516 gfx_goto( x, y + 4 ); 517 gfx_putchar( '°' ); 518 gfx_goto( x + 2, y + 4 ); 519 gfx_putchar( '.' ); 520 gfx_goto( x + 1, y + 5 ); 521 gfx_putchar( '.' ); 522 break; 523 case 3: 524 gfx_color( CYAN ); 525 //gfx_goto( x + 2, y + 1 ); 526 //gfx_putchar( 'O' ); 527 gfx_goto( x + 1, y + 2 ); 528 gfx_putchar( 'O' ); 529 gfx_goto( x - 1, y + 2 ); 530 gfx_putchar( 'o' ); 531 gfx_goto( x + 2, y + 3 ); 532 gfx_putchar( 'o' ); 533 gfx_color( GRAY ); 534 gfx_goto( x, y + 3 ); 535 gfx_putchar( '°' ); 536 gfx_goto( x + 1, y + 4 ); 537 gfx_putchar( '°' ); 538 gfx_goto( x, y + 5 ); 539 gfx_putchar( '.' ); 540 break; 412 541 } 413 542 }
Note: See TracChangeset
for help on using the changeset viewer.