Changeset 121
- Timestamp:
- Nov 10, 2003, 10:26:40 AM (20 years ago)
- Location:
- libcaca/trunk
- Files:
-
- 4 added
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
libcaca/trunk/data/Makefile.am
r119 r121 1 EXTRA_DIST = bar_fighter bar_boss1 EXTRA_DIST = foo_fighter bar_fighter bar_boss baz_fighter item_gem item_heart -
libcaca/trunk/libee/ee.h
r115 r121 88 88 89 89 struct ee_sprite * ee_load_sprite(const char *); 90 void ee_set_sprite_frame(struct ee_sprite *, int); 91 int ee_get_sprite_frame(struct ee_sprite *); 90 92 void ee_draw_sprite(int, int, struct ee_sprite *); 91 93 void ee_free_sprite(struct ee_sprite *); -
libcaca/trunk/libee/sprite.c
r115 r121 25 25 #include <stdio.h> 26 26 #include <stdlib.h> 27 #include <string.h> 27 28 28 29 #include "ee.h" … … 88 89 for(y = 0; y < h; y++) 89 90 { 91 memset(buf, ' ', w); 92 buf[w] = '\0'; 90 93 if(!fgets(buf, BUFSIZ, fd)) 91 94 goto failed; … … 97 100 for(y = 0; y < h; y++) 98 101 { 102 memset(buf, ' ', w); 103 buf[w] = '\0'; 99 104 if(!fgets(buf, BUFSIZ, fd)) 100 105 goto failed; … … 124 129 } 125 130 131 void ee_set_sprite_frame(struct ee_sprite *sprite, int f) 132 { 133 if(f < 0 || f >= sprite->nf) 134 return; 135 136 sprite->f = f; 137 } 138 139 int ee_get_sprite_frame(struct ee_sprite *sprite) 140 { 141 return sprite->f; 142 } 143 126 144 void ee_draw_sprite(int x, int y, struct ee_sprite *sprite) 127 145 { … … 146 164 void ee_free_sprite(struct ee_sprite *sprite) 147 165 { 166 int i; 167 168 for(i = sprite->nf; i--;) 169 { 170 struct ee_frame *frame = &sprite->frames[i]; 171 free(frame->chars); 172 free(frame->color); 173 } 174 175 free(sprite->frames); 148 176 free(sprite); 149 177 } -
libcaca/trunk/src/aliens.c
r109 r121 31 31 static void draw_alien_baz(game *, int, int, int); 32 32 33 struct ee_sprite *foo_sprite; 34 struct ee_sprite *bar_sprite; 35 struct ee_sprite *baz_sprite; 36 33 37 void init_aliens(game *g, aliens *al) 34 38 { … … 39 43 al->type[i] = ALIEN_NONE; 40 44 } 45 46 foo_sprite = ee_load_sprite("data/foo_fighter"); 47 bar_sprite = ee_load_sprite("data/bar_fighter"); 48 baz_sprite = ee_load_sprite("data/baz_fighter"); 41 49 } 42 50 … … 133 141 static void draw_alien_bar(game *g, int x, int y, int frame) 134 142 { 135 switch(frame) 136 { 137 case 0: 138 ee_color(EE_MAGENTA); 139 ee_goto(x, y); 140 ee_putstr(",---."); 141 ee_goto(x, y+1); 142 ee_putchar('\\'); 143 ee_color(EE_WHITE); 144 ee_putstr("o O"); 145 ee_color(EE_MAGENTA); 146 ee_putchar('/'); 147 ee_goto(x, y+2); 148 ee_putstr("^^^^^"); 149 break; 150 case 1: 151 ee_color(EE_MAGENTA); 152 ee_goto(x, y); 153 ee_putstr(",---."); 154 ee_goto(x, y+1); 155 ee_putchar('\\'); 156 ee_color(EE_WHITE); 157 ee_putstr("O o"); 158 ee_color(EE_MAGENTA); 159 ee_putchar('/'); 160 ee_goto(x, y+2); 161 ee_putstr("^^^^^"); 162 break; 163 } 143 ee_set_sprite_frame(bar_sprite, frame); 144 ee_draw_sprite(x, y, bar_sprite); 164 145 } 165 146 166 147 static void draw_alien_baz(game *g, int x, int y, int frame) 167 148 { 168 ee_color(EE_GREEN); 169 ee_goto(x, y-1); 170 ee_putstr("__"); 171 172 ee_goto(x-1, y); 173 ee_putchar('/'); 174 ee_goto(x+2, y); 175 ee_putchar('\\'); 176 177 switch(frame) 178 { 179 case 3: 180 ee_goto(x-2, y+1); 181 ee_putstr("//'`\\\\"); 182 break; 183 case 4: 184 case 2: 185 ee_goto(x-2, y+1); 186 ee_putstr("/(~~)\\"); 187 break; 188 case 5: 189 case 1: 190 ee_goto(x-2, y+1); 191 ee_putstr("((^^))"); 192 break; 193 case 0: 194 ee_goto(x-1, y+1); 195 ee_putstr("\\\\//"); 196 break; 197 } 198 199 ee_color(EE_WHITE); 200 ee_goto(x, y); 201 ee_putstr("oo"); 149 ee_set_sprite_frame(baz_sprite, frame); 150 ee_draw_sprite(x, y, baz_sprite); 202 151 } 203 152 204 153 static void draw_alien_foo(game *g, int x, int y, int frame) 205 154 { 206 ee_color(EE_YELLOW); 207 208 switch(frame) 209 { 210 case 0: 211 ee_goto(x, y); 212 ee_putchar('.'); 213 ee_goto(x+6, y); 214 ee_putchar(','); 215 ee_goto(x+1, y+1); 216 ee_putstr("\\ X /"); 217 break; 218 case 7: 219 case 1: 220 ee_goto(x-1, y); 221 ee_putchar('.'); 222 ee_goto(x+7, y); 223 ee_putchar(','); 224 ee_goto(x, y+1); 225 ee_putstr("`- X -'"); 226 break; 227 case 6: 228 case 2: 229 ee_goto(x-1, y+1); 230 ee_putstr("`-- X --'"); 231 break; 232 case 5: 233 case 3: 234 ee_goto(x, y+1); 235 ee_putstr(",- X -."); 236 ee_goto(x-1, y+2); 237 ee_putchar('\''); 238 ee_goto(x+7, y+2); 239 ee_putchar('`'); 240 break; 241 case 4: 242 ee_goto(x+1, y+1); 243 ee_putstr(", X ."); 244 ee_goto(x, y+2); 245 ee_putchar('/'); 246 ee_goto(x+6, y+2); 247 ee_putchar('\\'); 248 break; 249 } 250 251 ee_goto(x+2, y+2); 252 ee_putstr("`V'"); 253 254 ee_color(EE_WHITE); 255 ee_goto(x+2, y+1); 256 ee_putchar('o'); 257 ee_goto(x+4, y+1); 258 ee_putchar('o'); 155 ee_set_sprite_frame(foo_sprite, frame); 156 ee_draw_sprite(x, y, foo_sprite); 259 157 } 260 158 -
libcaca/trunk/src/bonus.c
r109 r121 27 27 #include "common.h" 28 28 29 struct ee_sprite *heart_sprite; 30 struct ee_sprite *gem_sprite; 31 29 32 void init_bonus(game *g, bonus *bo) 30 33 { … … 35 38 bo->type[i] = BONUS_NONE; 36 39 } 40 41 heart_sprite = ee_load_sprite("data/heart"); 42 gem_sprite = ee_load_sprite("data/gem"); 37 43 } 38 44 … … 46 52 { 47 53 case BONUS_GREEN: 48 ee_color((bo->n[i]/2 % 3) ? EE_GREEN : EE_WHITE); 49 ee_goto(bo->x[i]+1, bo->y[i]-1); 50 ee_putchar('_'); 51 ee_goto(bo->x[i], bo->y[i]); 52 ee_putstr("/ \\"); 53 ee_goto(bo->x[i], bo->y[i]+1); 54 ee_putstr("\\_/"); 55 ee_color(EE_WHITE); 56 ee_goto(bo->x[i]+1, bo->y[i]); 57 ee_putchar('g'); 54 ee_set_sprite_frame(gem_sprite, (bo->n[i]/2 % 3) ? 0 : 1); 55 ee_draw_sprite(bo->x[i], bo->y[i], gem_sprite); 58 56 break; 59 57 case BONUS_LIFE: 60 ee_color((bo->n[i] % 3) ? EE_RED : EE_WHITE); 61 ee_goto(bo->x[i]+1, bo->y[i]-1); 62 ee_putchar('_'); 63 ee_goto(bo->x[i]+3, bo->y[i]-1); 64 ee_putchar('_'); 65 ee_goto(bo->x[i], bo->y[i]); 66 ee_putstr("( ' )"); 67 ee_goto(bo->x[i]+1, bo->y[i]+1); 68 ee_putstr("`v'"); 69 ee_color(EE_WHITE); 70 ee_goto(bo->x[i]+3, bo->y[i]); 71 ee_putchar('^'); 58 ee_set_sprite_frame(heart_sprite, (bo->n[i] % 3) ? 0 : 1); 59 ee_draw_sprite(bo->x[i], bo->y[i], heart_sprite); 72 60 break; 73 61 case BONUS_NONE: -
libcaca/trunk/src/box.c
r109 r121 42 42 void draw_box(game *g, box *b) 43 43 { 44 int i,j, frame;44 int j, frame; 45 45 46 46 ee_color(EE_YELLOW); … … 49 49 if(b->frame < 8) 50 50 { 51 for(i = b->x - b->w * b->frame / 16 ; 52 i < b->x + b->w * b->frame / 16 ; 53 i++) 54 { 55 ee_goto(i, b->y); 56 ee_putchar('X'); 57 } 58 51 ee_draw_line(b->x - b->w * b->frame / 16, b->y, 52 b->x + b->w * b->frame / 16 - 1, b->y, 'X'); 59 53 return; 60 54 } … … 63 57 frame = b->frame < 12 ? b->frame : 12; 64 58 65 for(i = b->x - b->w / 2 ; 66 i < b->x + b->w / 2 ; 67 i++) 68 { 69 ee_goto(i, b->y - b->h * (frame - 8) / 8); 70 ee_putchar('X'); 71 ee_goto(i, b->y + b->h * (frame - 8) / 8); 72 ee_putchar('X'); 73 } 59 ee_draw_line(b->x - b->w / 2, b->y - b->h * (frame - 8) / 8, 60 b->x + b->w / 2 - 1, b->y - b->h * (frame - 8) / 8, 'X'); 61 ee_draw_line(b->x - b->w / 2, b->y + b->h * (frame - 8) / 8, 62 b->x + b->w / 2 - 1, b->y + b->h * (frame - 8) / 8, 'X'); 74 63 75 for(j = b->y - b->h * (frame - 8) / 8 ; 76 j < b->y + b->h * (frame - 8) / 8 ; 77 j++) 78 { 79 ee_goto(b->x - b->w / 2, j); 80 ee_putchar('X'); 81 ee_goto(b->x + b->w / 2 - 1, j); 82 ee_putchar('X'); 83 } 64 ee_draw_line(b->x - b->w / 2, b->y - b->h * (frame - 8) / 8, 65 b->x - b->w / 2, b->y + b->h * (frame - 8) / 8 - 1, 'X'); 66 ee_draw_line(b->x + b->w / 2 - 1, b->y - b->h * (frame - 8) / 8, 67 b->x + b->w / 2 - 1, b->y + b->h * (frame - 8) / 8 - 1, 'X'); 84 68 85 69 ee_color(EE_BLACK); 86 70 87 for(j = b->y - b->h * (frame - 8) / 8 + 1 88 j < b->y + b->h * (frame - 8) / 8 71 for(j = b->y - b->h * (frame - 8) / 8 + 1; 72 j < b->y + b->h * (frame - 8) / 8; 89 73 j++) 90 74 { 91 for(i = b->x - b->w / 2 + 1 ; 92 i < b->x + b->w / 2 - 1 ; 93 i++) 94 { 95 ee_goto(i, j); 96 ee_putchar('X'); 97 } 75 ee_draw_line(b->x - b->w / 2 + 1, j, 76 b->x + b->w / 2 - 2, j, 'X'); 98 77 } 99 78
Note: See TracChangeset
for help on using the changeset viewer.