From e3560cd29bdb126d831df6afa29d90dc98bd9cff Mon Sep 17 00:00:00 2001 From: Vince Weaver Date: Thu, 30 Jul 2020 00:07:01 -0400 Subject: [PATCH] mist: selena: hook up water button a pain as it's shared room with the blue page --- mist/default_save.s | 2 +- mist/leveldata_cabin.inc | 2 +- mist/leveldata_selena.inc | 4 +- mist/selena.s | 21 +++- mist/selena_sound_puzzle.s | 197 ++++++++++++++++++++++++++++++++++++- 5 files changed, 216 insertions(+), 10 deletions(-) diff --git a/mist/default_save.s b/mist/default_save.s index 339eb42e..a69ece6e 100644 --- a/mist/default_save.s +++ b/mist/default_save.s @@ -41,7 +41,7 @@ ; Selena .byte LOAD_SELENA ; WHICH_LOAD = $80 .byte DIRECTION_N ; DIRECTION = $81 -.byte SELENA_ANTENNA_STEPS ; LOCATION = $82 +.byte SELENA_WALKWAY1 ; LOCATION = $82 .endif diff --git a/mist/leveldata_cabin.inc b/mist/leveldata_cabin.inc index 65c20898..bd12b5bd 100644 --- a/mist/leveldata_cabin.inc +++ b/mist/leveldata_cabin.inc @@ -181,7 +181,7 @@ location8: .word $0000 ; west bg .byte BG_SOUTH .byte DIRECTION_S ; special exit - .byte 7,12 ; special x + .byte 6,12 ; special x .byte 8,18 ; special y .word press_elevator_button-1 diff --git a/mist/leveldata_selena.inc b/mist/leveldata_selena.inc index fde307b0..49ae9ebb 100644 --- a/mist/leveldata_selena.inc +++ b/mist/leveldata_selena.inc @@ -268,8 +268,8 @@ location13: .word water_note_e_lzsa ; east bg .word water_note_w_lzsa ; west bg .byte BG_SOUTH|BG_EAST|BG_WEST - .byte DIRECTION_S ; special exit - .byte 20,27 ; special x + .byte DIRECTION_S|DIRECTION_W ; special exit + .byte 19,27 ; special x .byte 24,34 ; special y .word selena_take_blue_page-1 ; special function diff --git a/mist/selena.s b/mist/selena.s index d19e5f4a..43d1b2ee 100644 --- a/mist/selena.s +++ b/mist/selena.s @@ -105,7 +105,7 @@ game_loop: beq mist_book_animation cmp #SELENA_WATER - beq fg_draw_blue_page + beq fg_draw_blue_page ; and water note cmp #SELENA_CRYSTAL_CLOSE beq fg_draw_red_page @@ -116,6 +116,7 @@ game_loop: cmp #SELENA_TUNNEL_MAIN_CLOSE beq fg_draw_tunnel_note + jmp nothing_special mist_book_animation: @@ -189,6 +190,10 @@ fg_draw_antenna_panel: jsr draw_antenna_panel jmp nothing_special +fg_draw_water_note: + jsr draw_water_background + jmp nothing_special + fg_draw_tunnel_note: jsr draw_tunnel_background jmp nothing_special @@ -271,6 +276,15 @@ selena_take_red_page: jmp take_red_page selena_take_blue_page: + lda DIRECTION + and #$f + cmp #DIRECTION_W + bne actually_take_blue_page + + jmp water_button_pressed + +actually_take_blue_page: + lda #SELENA_PAGE jmp take_blue_page @@ -299,7 +313,12 @@ draw_blue_page: lda DIRECTION cmp #DIRECTION_S + beq do_draw_blue_page + cmp #DIRECTION_W bne no_draw_page + jmp draw_water_background + +do_draw_blue_page: lda BLUE_PAGES_TAKEN and #SELENA_PAGE diff --git a/mist/selena_sound_puzzle.s b/mist/selena_sound_puzzle.s index 1ddf5d2d..be2af838 100644 --- a/mist/selena_sound_puzzle.s +++ b/mist/selena_sound_puzzle.s @@ -554,10 +554,46 @@ antenna_display11_sprite: .byte $55,$86,$86,$86,$86,$86,$86,$86,$66 .byte $88,$88,$88,$88,$88,$88,$88,$88,$88 + ;=========================== + ; draw water background #1 + ;=========================== +draw_water_background: - ;========================= - ; draw tunnel background - ;========================= + lda DIRECTION + and #$f + cmp #DIRECTION_W + bne done_draw_water_background + + bit TEXTGR ; we do this because we aren't a standalone + ; location + + lda #sound1_water + sta OUTH + jsr move_and_print + + lda SELENA_BUTTON_STATUS + and #SELENA_BUTTON1 + beq done_draw_water_background + + lda #17 + sta XPOS + lda #10 + sta YPOS + lda #water_bg_sprite + sta INH + jsr put_sprite_crop + +done_draw_water_background: + rts + + + ;=========================== + ; draw tunnel background #5 + ;=========================== draw_tunnel_background: lda #