From f0f0140b4a29332b425c13bda12aac411d10502b Mon Sep 17 00:00:00 2001 From: Vince Weaver Date: Mon, 10 Aug 2020 14:03:57 -0400 Subject: [PATCH] mist: stoney: can now unlock hatch to get above lighthouse --- mist/common_sprites.inc | 2 +- mist/graphics_stoney/Makefile | 2 + mist/graphics_stoney/lighthouse_door_e.png | Bin 862 -> 6913 bytes .../lighthouse_inside_locked_e.png | Bin 0 -> 11147 bytes mist/leveldata_stoney.inc | 2 +- mist/stoney.s | 2 + mist/stoney_puzzles.s | 164 +++++++++++++++++- 7 files changed, 169 insertions(+), 3 deletions(-) create mode 100644 mist/graphics_stoney/lighthouse_inside_locked_e.png diff --git a/mist/common_sprites.inc b/mist/common_sprites.inc index 1f1a2380..146ec3e6 100644 --- a/mist/common_sprites.inc +++ b/mist/common_sprites.inc @@ -58,7 +58,7 @@ finger_match_lit_sprite: finger_key_sprite: .byte 6,4 - .byte $aa,$aa,$aa,$aa,$aa,$ba + .byte $aa,$aa,$aa,$aa,$aa,$bd .byte $dd,$dd,$dd,$dd,$db,$bb .byte $aa,$ad,$aa,$ab,$bd,$bb .byte $aa,$aa,$aa,$aa,$ab,$ab diff --git a/mist/graphics_stoney/Makefile b/mist/graphics_stoney/Makefile index a0f2e780..c2d6b917 100644 --- a/mist/graphics_stoney/Makefile +++ b/mist/graphics_stoney/Makefile @@ -15,6 +15,7 @@ stoney_graphics.inc: \ lighthouse_path_e.lzsa lighthouse_path_w.lzsa \ lighthouse_door_e.lzsa lighthouse_door_w.lzsa \ lighthouse_inside_e.lzsa lighthouse_inside_w.lzsa \ + lighthouse_inside_locked_e.lzsa \ lighthouse_inside_n.lzsa \ lighthouse_inside_nowater_n.lzsa lighthouse_inside_notrunk_n.lzsa \ lighthouse_inside_lidup_n.lzsa \ @@ -67,6 +68,7 @@ stoney_graphics.inc: \ echo "lighthouse_door_e_lzsa: .incbin \"lighthouse_door_e.lzsa\"" >> stoney_graphics.inc echo "lighthouse_door_w_lzsa: .incbin \"lighthouse_door_w.lzsa\"" >> stoney_graphics.inc echo "lighthouse_inside_e_lzsa: .incbin \"lighthouse_inside_e.lzsa\"" >> stoney_graphics.inc + echo "lighthouse_inside_locked_e_lzsa: .incbin \"lighthouse_inside_locked_e.lzsa\"" >> stoney_graphics.inc echo "lighthouse_inside_w_lzsa: .incbin \"lighthouse_inside_w.lzsa\"" >> stoney_graphics.inc echo "lighthouse_inside_n_lzsa: .incbin \"lighthouse_inside_n.lzsa\"" >> stoney_graphics.inc echo "lighthouse_inside_nowater_n_lzsa: .incbin \"lighthouse_inside_nowater_n.lzsa\"" >> stoney_graphics.inc diff --git a/mist/graphics_stoney/lighthouse_door_e.png b/mist/graphics_stoney/lighthouse_door_e.png index 8fd621aa160d1f050d2670359cc27da3b13239c3..213ed31979fe261fb9d5c6c96a3ae1afb73764a4 100644 GIT binary patch delta 6798 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 diff --git a/mist/graphics_stoney/lighthouse_inside_locked_e.png b/mist/graphics_stoney/lighthouse_inside_locked_e.png new file mode 100644 index 0000000000000000000000000000000000000000..1e0c7cad3cd0b8cbca2027b4062e89534f34d9af GIT binary patch literal 11147 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 + sta INH + jsr put_sprite_crop + + +dont_draw_key: + lda ANIMATE_FRAME ; since 0 is the static image, we can just treat @@ -1767,3 +1812,120 @@ trunk_key_sprite: .byte $00,$A0,$A0,$00,$A0 + + ;============================ + ; update hatch state + ;============================ +update_hatch_state: + ; default is locked and can't go to top + + lda TRUNK_STATE + and #TRUNK_HATCH_OPEN + beq close_hatch + +open_hatch: + ldy #LOCATION_EAST_EXIT + lda #STONEY_LIGHTHOUSE_UPSTAIRS + sta location5,Y ; STONEY_LIGHTHOUSE_INSIDE + + ldy #LOCATION_EAST_BG + lda #lighthouse_inside_e_lzsa + sta location5+1,Y ; STONEY_LIGHTHOUSE_INSIDE + + rts + +close_hatch: + ldy #LOCATION_EAST_EXIT + lda #$ff + sta location5,Y ; STONEY_LIGHTHOUSE_INSIDE + + ldy #LOCATION_EAST_BG + lda #lighthouse_inside_locked_e_lzsa + sta location5+1,Y ; STONEY_LIGHTHOUSE_INSIDE + + rts + + + ;======================== + ; update inside lighthouse action + ;======================== + ; change action behavior if holding key +update_inside_lighthouse_action: + + lda HOLDING_ITEM + cmp #HOLDING_KEY + bne normal_action + +holding_action: + ldy #LOCATION_SPECIAL_EXIT + lda #DIRECTION_E + sta location5,Y ; STONEY_LIGHTHOUSE_INSIDE + ldy #LOCATION_SPECIAL_X1 + lda #12 + sta location5,Y + lda #19 + sta location5+1,Y + lda #8 + sta location5+2,Y + lda #20 + sta location5+3,Y + + ldy #LOCATION_SPECIAL_FUNC + lda #<(unlock_hatch-1) + sta location5,Y + lda #>(unlock_hatch-1) + sta location5+1,Y + + rts + +normal_action: + ldy #LOCATION_SPECIAL_EXIT + lda #DIRECTION_N + sta location5,Y ; STONEY_LIGHTHOUSE_INSIDE + ldy #LOCATION_SPECIAL_X1 + lda #10 + sta location5,Y + lda #35 + sta location5+1,Y + lda #20 + sta location5+2,Y + lda #44 + sta location5+3,Y + + ldy #LOCATION_SPECIAL_FUNC + lda #<(handle_inside_lighthouse-1) + sta location5,Y + lda #>(handle_inside_lighthouse-1) + sta location5+1,Y + + rts + + + + ;======================== + ; unlock the hatch + ;======================== + ; FIXME: show animation? + ; drop key? + ; in actual game you still have to manually open hatch + ; after the lock falls off +unlock_hatch: + + ; drop key + lda #0 + sta HOLDING_ITEM + + jsr update_inside_lighthouse_action + + ; unlock the hatch + lda TRUNK_STATE + ora #TRUNK_HATCH_OPEN + sta TRUNK_STATE + + jsr update_hatch_state + jmp change_direction +