diff --git a/gr-sim/tfv_sprites.c b/gr-sim/tfv_sprites.c index 9d42f356..87ea997e 100644 --- a/gr-sim/tfv_sprites.c +++ b/gr-sim/tfv_sprites.c @@ -48,6 +48,96 @@ unsigned char tfv_led_sword[]={ /* Bird Sprites */ +unsigned char bird_stand_right[] = { + 0x6,0x7, + 0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0xdd,0x90, + 0x00,0x00,0x00,0x00,0xdd,0x00, + 0x0d,0xdd,0xdd,0xdd,0xdd,0x00, + 0x00,0x00,0x0d,0xdd,0x0d,0x00, + 0x00,0x00,0x00,0x99,0x00,0x00, + 0x00,0x00,0x00,0x99,0x90,0x00, +}; + +unsigned char bird_stand_left[] = { + 0x6,0x7, + 0x00,0x00,0x00,0x00,0x00,0x00, + 0x90,0xdd,0x00,0x00,0x00,0x00, + 0x00,0xdd,0x00,0x00,0x00,0x00, + 0x00,0xdd,0xdd,0xdd,0xdd,0x0d, + 0x00,0x0d,0xdd,0x0d,0x00,0x00, + 0x00,0x00,0x99,0x00,0x00,0x00, + 0x00,0x90,0x99,0x00,0x00,0x00, +}; + +unsigned char bird_walk_right[] = { + 0x6,0x7, + 0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0xdd,0x90, + 0x00,0x00,0x00,0x00,0xdd,0x00, + 0x0d,0xdd,0xdd,0xdd,0xdd,0x00, + 0x00,0x00,0x0d,0xdd,0x0d,0x00, + 0x00,0x00,0x00,0x99,0x00,0x00, + 0x00,0x00,0x99,0x00,0x99,0x00, +}; + + +unsigned char bird_walk_left[] = { + 0x6,0x7, + 0x00,0x00,0x00,0x00,0x00,0x00, + 0x90,0xdd,0x00,0x00,0x00,0x00, + 0x00,0xdd,0x00,0x00,0x00,0x00, + 0x00,0xdd,0xdd,0xdd,0xdd,0x0d, + 0x00,0x0d,0xdd,0x0d,0x00,0x00, + 0x00,0x00,0x99,0x00,0x00,0x00, + 0x00,0x99,0x00,0x99,0x00,0x00, +}; + +/* with rider */ + +unsigned char bird_rider_stand_right[] = { + 0x6,0x7, + 0x00,0xdd,0xbd,0x00,0x00,0x00, + 0x00,0xdd,0xdb,0x00,0xdd,0x90, + 0x00,0x00,0x22,0x02,0xdd,0x00, + 0x0d,0xdd,0xd2,0x22,0xdd,0x00, + 0x00,0x00,0x0d,0x82,0x8d,0x00, + 0x00,0x00,0x00,0x99,0x00,0x00, + 0x00,0x00,0x00,0x99,0x90,0x00, +}; + +unsigned char bird_rider_walk_right[] = { + 0x6,0x7, + 0x00,0xdd,0xbd,0x00,0x00,0x00, + 0x00,0xdd,0xdb,0x00,0xdd,0x90, + 0x00,0x00,0x22,0x02,0xdd,0x00, + 0x0d,0xdd,0xd2,0x22,0xdd,0x00, + 0x00,0x00,0x0d,0x82,0x8d,0x00, + 0x00,0x00,0x00,0x99,0x00,0x00, + 0x00,0x00,0x99,0x00,0x99,0x00, +}; + +unsigned char bird_rider_stand_left[] = { + 0x6,0x7, + 0x00,0x00,0x00,0xbd,0xdd,0x00, + 0x90,0xdd,0x00,0xdb,0xdd,0x00, + 0x00,0xdd,0x02,0x22,0x00,0x00, + 0x00,0xdd,0x22,0xd2,0xdd,0x0d, + 0x00,0x8d,0x82,0x0d,0x00,0x00, + 0x00,0x00,0x99,0x00,0x00,0x00, + 0x00,0x90,0x99,0x00,0x00,0x00, +}; + +unsigned char bird_rider_walk_left[] = { + 0x6,0x7, + 0x00,0x00,0x00,0xbd,0xdd,0x00, + 0x90,0xdd,0x00,0xdb,0xdd,0x00, + 0x00,0xdd,0x02,0x22,0x00,0x00, + 0x00,0xdd,0x22,0xd2,0xdd,0x0d, + 0x00,0x8d,0x82,0x0d,0x00,0x00, + 0x00,0x00,0x99,0x00,0x00,0x00, + 0x00,0x99,0x00,0x99,0x00,0x00, +}; diff --git a/gr-sim/tfv_sprites.h b/gr-sim/tfv_sprites.h index 9f96bddc..6e9a955c 100644 --- a/gr-sim/tfv_sprites.h +++ b/gr-sim/tfv_sprites.h @@ -4,6 +4,16 @@ extern unsigned char tfv_stand_left[]; extern unsigned char tfv_walk_left[]; extern unsigned char tfv_led_sword[]; +extern unsigned char bird_stand_right[]; +extern unsigned char bird_walk_right[]; +extern unsigned char bird_stand_left[]; +extern unsigned char bird_walk_left[]; + +extern unsigned char bird_rider_stand_right[]; +extern unsigned char bird_rider_walk_right[]; +extern unsigned char bird_rider_stand_left[]; +extern unsigned char bird_rider_walk_left[]; + extern unsigned char ship_forward[]; extern unsigned char ship_right[]; extern unsigned char ship_left[]; diff --git a/gr-sim/tfv_worldmap.c b/gr-sim/tfv_worldmap.c index f3cc7fb6..31178777 100644 --- a/gr-sim/tfv_worldmap.c +++ b/gr-sim/tfv_worldmap.c @@ -187,6 +187,7 @@ int world_map(void) { direction=1; int odd=0; int refresh=1; + int on_bird=1; while(1) { moved=0; @@ -304,18 +305,25 @@ int world_map(void) { } } - - - - - - if (direction==-1) { - if (odd) grsim_put_sprite(tfv_walk_left,tfv_x,tfv_y); - else grsim_put_sprite(tfv_stand_left,tfv_x,tfv_y); + if (on_bird) { + if (direction==-1) { + if (odd) grsim_put_sprite(bird_rider_walk_left,tfv_x,tfv_y); + else grsim_put_sprite(bird_rider_stand_left,tfv_x,tfv_y); + } + if (direction==1) { + if (odd) grsim_put_sprite(bird_rider_walk_right,tfv_x,tfv_y); + else grsim_put_sprite(bird_rider_stand_right,tfv_x,tfv_y); + } } - if (direction==1) { - if (odd) grsim_put_sprite(tfv_walk_right,tfv_x,tfv_y); - else grsim_put_sprite(tfv_stand_right,tfv_x,tfv_y); + else { + if (direction==-1) { + if (odd) grsim_put_sprite(tfv_walk_left,tfv_x,tfv_y); + else grsim_put_sprite(tfv_stand_left,tfv_x,tfv_y); + } + if (direction==1) { + if (odd) grsim_put_sprite(tfv_walk_right,tfv_x,tfv_y); + else grsim_put_sprite(tfv_stand_right,tfv_x,tfv_y); + } } /* Draw Below Ground Scatter */ diff --git a/tfv/NOTES b/tfv/NOTES index 7775d738..d92f4a12 100644 --- a/tfv/NOTES +++ b/tfv/NOTES @@ -1,3 +1,5 @@ +Add horizontal-flipped sprite mode to save sprite table space? + Could make VLIN faster by writing in chunks of two 6502 assembly woes: diff --git a/tfv/sprites.png b/tfv/sprites.png index 9a06693e..79be4ccf 100644 Binary files a/tfv/sprites.png and b/tfv/sprites.png differ