From 3d6aab63d0b803b58edf2e1212cf4ce2e76388d2 Mon Sep 17 00:00:00 2001 From: Vince Weaver Date: Wed, 9 Mar 2022 01:05:00 -0500 Subject: [PATCH] lemm: open door --- games/lemm/Makefile | 1 + games/lemm/draw_door.s | 39 ++++++++++++++++++++++++++++++++ games/lemm/draw_flames.s | 2 +- games/lemm/graphics/Makefile | 6 +++++ games/lemm/graphics/sprites.png | Bin 10057 -> 10057 bytes games/lemm/lemm.s | 24 +++++++++++++++----- games/lemm/zp.inc | 1 + 7 files changed, 66 insertions(+), 7 deletions(-) create mode 100644 games/lemm/draw_door.s diff --git a/games/lemm/Makefile b/games/lemm/Makefile index 91c05ebf..13884be7 100644 --- a/games/lemm/Makefile +++ b/games/lemm/Makefile @@ -40,6 +40,7 @@ LEMM: lemm.o lemm.o: lemm.s zp.inc hardware.inc \ graphics/graphics_test.inc \ intro_level1.s update_time.s hgr_sprite.s draw_flames.s \ + draw_door.s \ interrupt_handler.s ca65 -o lemm.o lemm.s -l lemm.lst diff --git a/games/lemm/draw_door.s b/games/lemm/draw_door.s new file mode 100644 index 00000000..fd36fe63 --- /dev/null +++ b/games/lemm/draw_door.s @@ -0,0 +1,39 @@ + + +draw_door: + + lda FRAMEL + lsr + and #$3 + tay + + lda door_l,Y + sta INL + lda door_h,Y + sta INH + + ldx #9 ; 63 + stx CURSOR_X + lda #36 + sta CURSOR_Y + + jsr hgr_draw_sprite + + lda FRAMEL + cmp #7 + bne not_door_done + + inc DOOR_OPEN + cli ; start music + +not_door_done: + + rts + + +door_l: +.byte door1_sprite,>door2_sprite,>door3_sprite,>door4_sprite + diff --git a/games/lemm/draw_flames.s b/games/lemm/draw_flames.s index c3136b16..eb063699 100644 --- a/games/lemm/draw_flames.s +++ b/games/lemm/draw_flames.s @@ -1,5 +1,5 @@ - ; updates the time left + draw_flames: ; draw left_flame diff --git a/games/lemm/graphics/Makefile b/games/lemm/graphics/Makefile index 33a4a25f..05b07e44 100644 --- a/games/lemm/graphics/Makefile +++ b/games/lemm/graphics/Makefile @@ -45,6 +45,12 @@ sprites.inc: sprites.png $(HGR_SPRITE) -s -l rflame2_sprite sprites.png 21 36 27 41 >> sprites.inc $(HGR_SPRITE) -s -l rflame3_sprite sprites.png 21 43 27 48 >> sprites.inc $(HGR_SPRITE) -s -l rflame4_sprite sprites.png 21 50 27 55 >> sprites.inc + $(HGR_SPRITE) -s -l door1_sprite sprites.png 7 57 55 69 >> sprites.inc + $(HGR_SPRITE) -s -l door2_sprite sprites.png 7 76 55 91 >> sprites.inc + $(HGR_SPRITE) -s -l door3_sprite sprites.png 7 98 55 114 >> sprites.inc + $(HGR_SPRITE) -s -l door4_sprite sprites.png 7 118 55 137 >> sprites.inc + + diff --git a/games/lemm/graphics/sprites.png b/games/lemm/graphics/sprites.png index ab7ea4cc3acdd797fe44ba08e8e4203f25551259..cf009818bb08129bc2454ed2f72698fe8e285b13 100644 GIT binary patch delta 5405 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 HizL1R-8@cb delta 5405 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 HizL1RBUMPA diff --git a/games/lemm/lemm.s b/games/lemm/lemm.s index 74bc3c72..83d0e164 100644 --- a/games/lemm/lemm.s +++ b/games/lemm/lemm.s @@ -238,12 +238,7 @@ zurg: jsr decompress_lzsa2_fast - ;======================= - ; init vars - ;======================= - lda #0 - sta LEVEL_OVER ;======================= ; Play "Let's Go" @@ -254,7 +249,16 @@ zurg: ; start music ;======================= - cli +; cli + + ;======================= + ; init vars + ;======================= + + lda #0 + sta LEVEL_OVER + sta DOOR_OPEN + sta FRAMEL ; set up time @@ -271,6 +275,13 @@ zurg: ;=================== main_loop: + lda DOOR_OPEN + bne door_is_open + + jsr draw_door + +door_is_open: + jsr draw_flames jsr update_time @@ -344,6 +355,7 @@ load_song_chunk_good: .include "update_time.s" .include "intro_level1.s" .include "draw_flames.s" + .include "draw_door.s" ; pt3 player diff --git a/games/lemm/zp.inc b/games/lemm/zp.inc index 85734fe3..eb515d49 100644 --- a/games/lemm/zp.inc +++ b/games/lemm/zp.inc @@ -55,6 +55,7 @@ CURSOR_Y = $78 DISP_PAGE = $79 DRAW_PAGE = $7A LEVEL_OVER = $7B +DOOR_OPEN = $7C APPLEII_MODEL = $8B