diff --git a/games/lemm/Makefile b/games/lemm/Makefile index 2aaea662..f8fb3152 100644 --- a/games/lemm/Makefile +++ b/games/lemm/Makefile @@ -230,7 +230,7 @@ LEVEL6: level6.o level6.o: level6.s zp.inc hardware.inc qload.inc lemm.inc \ release_lemming.s \ - graphics/graphics_level6.inc + graphics/graphics_level6.inc graphics/l6_animation.inc ca65 -o level6.o level6.s -l level6.lst diff --git a/games/lemm/graphics/Makefile b/games/lemm/graphics/Makefile index abc2a9f5..185e00ff 100644 --- a/games/lemm/graphics/Makefile +++ b/games/lemm/graphics/Makefile @@ -16,7 +16,8 @@ all: graphics_test.inc \ graphics_level8.inc \ graphics_level9.inc \ graphics_level10.inc \ - sprites.inc + sprites.inc \ + l6_animation.inc @@ -92,6 +93,18 @@ graphics_level10.inc: \ echo "level10_preview_lzsa: .incbin \"level10_preview.lzsa\"" >> graphics_level10.inc +### + +l6_animation.inc: level_animations.png + $(HGR_SPRITE) -s -l flame0_sprite level_animations.png 42 3 62 11 > l6_animation.inc + $(HGR_SPRITE) -s -l flame1_sprite level_animations.png 28 14 62 23 >> l6_animation.inc + $(HGR_SPRITE) -s -l flame2_sprite level_animations.png 21 25 62 38 >> l6_animation.inc + $(HGR_SPRITE) -s -l flame3_sprite level_animations.png 21 42 62 52 >> l6_animation.inc + $(HGR_SPRITE) -s -l flame4_sprite level_animations.png 14 56 41 63 >> l6_animation.inc + $(HGR_SPRITE) -s -l flame5_sprite level_animations.png 14 68 34 77 >> l6_animation.inc + $(HGR_SPRITE) -s -l flame6_sprite level_animations.png 0 85 27 93 >> l6_animation.inc + $(HGR_SPRITE) -s -l flame7_sprite level_animations.png 28 86 34 87 >> l6_animation.inc + ### diff --git a/games/lemm/graphics/level_animations.png b/games/lemm/graphics/level_animations.png new file mode 100644 index 00000000..5884a3f1 Binary files /dev/null and b/games/lemm/graphics/level_animations.png differ diff --git a/games/lemm/level6.s b/games/lemm/level6.s index d5c17ca6..24d9a026 100644 --- a/games/lemm/level6.s +++ b/games/lemm/level6.s @@ -228,9 +228,21 @@ l6_door_is_open: jsr draw_flames + ;===================== + ; draw level animation + ;===================== + + jsr flame_thrower + + ;==================== + ; update timer + ;==================== + jsr update_timer + ;==================== ; main drawing loop + ;==================== jsr erase_lemming @@ -304,3 +316,76 @@ level6_intro_text: .byte 13,18,"TIME 5 MINUTES",0 .byte 15,20,"RATING FUN",0 .byte 8,23,"PRESS RETURN TO CONTINUE",0 + + +.include "graphics/l6_animation.inc" + + ;====================== + ; flame thrower + ;====================== +flame_thrower: + + ; erase old + + ; X a->x, savey1->savey2 + + lda #21 + sta SAVED_Y1 + lda #36 + sta SAVED_Y2 + + lda #11 + ldx #19 + + jsr hgr_partial_restore + + ; draw new + + lda FRAMEL + and #$7 + tay + + lda flame_sprites_l,Y + sta INL + lda flame_sprites_h,Y + sta INH + + lda flame_sprites_x,Y + sta XPOS + + lda flame_sprites_y,Y + sta YPOS + + jsr hgr_draw_sprite + + rts + +flame_sprites_l: + .byte flame0_sprite,>flame1_sprite + .byte >flame2_sprite,>flame3_sprite + .byte >flame4_sprite,>flame5_sprite + .byte >flame6_sprite,>flame7_sprite + +flame_sprites_x: +; .byte 15,13 +; .byte 12,12 +; .byte 11,11 +; .byte 11,11 + .byte 16,14 + .byte 13,13 + .byte 12,12 + .byte 10,12 + +flame_sprites_y: + .byte 27,26 + .byte 24,25 + .byte 26,23 + .byte 21,21 + +