From b9bd74e5a8c5674e5f7c37240b297dc0e13183d8 Mon Sep 17 00:00:00 2001 From: Vince Weaver Date: Fri, 7 Feb 2020 16:01:43 -0500 Subject: [PATCH] ootw: c15: guard shooting --- ootw/TODO | 6 + ootw/ootw_c15.s | 163 +++++++++++------- ootw/ootw_graphics/l15final/bath_33.png | Bin 5917 -> 6027 bytes ootw/ootw_graphics/l15final/ootw_c15_bath.inc | 49 +++--- .../ootw_graphics/l15final/ootw_c15_final.inc | 12 +- ootw/ootw_graphics/l15final/walkway1.png | Bin 981 -> 9249 bytes 6 files changed, 133 insertions(+), 97 deletions(-) diff --git a/ootw/TODO b/ootw/TODO index bc62b006..73055841 100644 --- a/ootw/TODO +++ b/ootw/TODO @@ -131,6 +131,12 @@ BEHAVIOR DIFFERENCES: + Level/Checkpoint #5 * Allow falling into first pit ++ Level/Checkpoint #15 + * Bath: shooting guard isn't quite so regular, every other shot is + a double one? + * Bath: one guard repeatedly re-arrives but that seems to be a bug + in the original + * Bath: guards shooting eventually wear away the column FUTURE WORK: ============ diff --git a/ootw/ootw_c15.s b/ootw/ootw_c15.s index 52cfaf64..246a57fa 100644 --- a/ootw/ootw_c15.s +++ b/ootw/ootw_c15.s @@ -393,12 +393,12 @@ room_loop: ;================================== ; draw background action - lda WHICH_CAVE +; lda WHICH_ROOM bg_room0: ; cmp #0 -; bne c4_no_bg_action +; bne c15_no_bg_action ; lda FRAMEL ; and #$c @@ -418,7 +418,7 @@ bg_room0: ; jsr put_sprite -c5_no_bg_action: +c15_no_bg_action: ;=============================== ; check keyboard @@ -439,38 +439,9 @@ c5_no_bg_action: jsr check_screen_limit ;=============================== - ; adjust floor + ; adjust floor if necessary ;=============================== - -; lda PHYSICIST_STATE -; cmp #P_FALLING_DOWN -; beq check_floor0_done - -; lda WHICH_CAVE -; cmp #0 -; bne check_floor1 - -; lda #14 -; sta PHYSICIST_Y - -; lda PHYSICIST_X -; cmp #19 -; bcc check_floor0_done - -; lda #12 -; sta PHYSICIST_Y - -; lda PHYSICIST_X -; cmp #28 -; bcc check_floor0_done - -; lda #10 -; sta PHYSICIST_Y - -check_floor0_done: - -check_floor1: - + ; no sloped floors in c15 ;===================================== ; draw physicist @@ -489,42 +460,66 @@ check_floor1: ; draw foreground action ;===================================== -; lda WHICH_CAVE -; cmp #0 -; bne c5_no_fg_action + lda WHICH_ROOM + cmp #0 + bne c15_no_fg_action -c5_draw_rocks: -; lda #1 -; sta XPOS -; lda #26 -; sta YPOS -; lda #small_rock -; sta INH -; jsr put_sprite + ; Room 0 draw guard +c15_draw_fg_guard: -; lda #10 -; sta XPOS -; lda #18 -; sta YPOS -; lda #medium_rock -; sta INH -; jsr put_sprite + ; real game it's not quite so regular, double shot eventually -; lda #31 -; sta XPOS -; lda #14 -; sta YPOS -; lda #large_rock -; sta INH -; jsr put_sprite + ; every so often, shoots + ; for frames 0 and 1 every 32 ($1F) -c5_no_fg_action: + lda FRAMEL + and #$1f + cmp #3 + bcs fg_guard_noshoot ; bgt + +fg_guard_shoot: + lda #$ff + bne fg_guard_draw + +fg_guard_noshoot: + lda #$00 + +fg_guard_draw: + sta XPOS + lda #22 + sta YPOS + lda #guard_sprite + sta INH + jsr put_sprite_crop + + + ; draw laser + + lda FRAMEL + and #$1f + cmp #3 + bcs fg_guard_no_laser ; bge + + lda #9 + sta XPOS + lda #20 + sta YPOS + lda #guard_laser + sta INH + jsr put_sprite + +fg_guard_no_laser: + + jmp c15_no_fg_action + + ; Room 5 friend slowly working to left +c15_draw_friend_cliff: + +c15_no_fg_action: ;==================== ; activate fg objects @@ -543,7 +538,7 @@ c5_no_fg_action: ;================ ; move fg objects ;================ -c4_move_fg_objects: +c15_move_fg_objects: ; lda CART_OUT ; cmp #1 @@ -777,3 +772,37 @@ bath_arrival_sequence: .byte 0 +;======================= +; guard sprite +guard_sprite: + .byte 10,13 + .byte $7A,$7A,$7A,$7A,$AA,$AA,$AA,$AA,$AA,$AA + .byte $77,$77,$77,$77,$77,$AA,$AA,$AA,$AA,$AA + .byte $77,$77,$77,$77,$77,$AA,$AA,$AA,$0A,$00 + .byte $00,$00,$00,$77,$A7,$AA,$AA,$7A,$70,$AA + .byte $00,$00,$00,$00,$AA,$7A,$77,$77,$77,$7A + .byte $00,$00,$00,$70,$77,$77,$77,$77,$77,$77 + .byte $00,$00,$70,$77,$77,$77,$77,$77,$AA,$AA + .byte $00,$00,$07,$77,$77,$77,$A7,$AA,$AA,$AA + .byte $00,$00,$00,$07,$A7,$A7,$AA,$AA,$AA,$AA + .byte $00,$00,$00,$00,$AA,$AA,$AA,$AA,$AA,$AA + .byte $00,$00,$00,$00,$AA,$AA,$AA,$AA,$AA,$AA + .byte $00,$00,$00,$00,$AA,$AA,$AA,$AA,$AA,$AA + .byte $00,$00,$00,$00,$AA,$AA,$AA,$AA,$AA,$AA + +;======================= +; guard laser +guard_laser: +; .byte 15,4 +; .byte $AA,$AA,$AA,$AA,$AA,$AA,$AA,$AA,$AA,$AA,$AA,$AA,$1A,$1A,$A1 +; .byte $AA,$AA,$AA,$AA,$AA,$AA,$AA,$AA,$1A,$1A,$A1,$A1,$AA,$AA,$AA +; .byte $AA,$AA,$AA,$AA,$1A,$1A,$11,$A1,$A1,$AA,$AA,$AA,$AA,$AA,$AA +; .byte $1A,$1A,$11,$A1,$A1,$AA,$AA,$AA,$AA,$AA,$AA,$AA,$AA,$AA,$AA + + .byte 15,3 + .byte $AA,$AA,$AA,$AA,$AA,$AA,$AA,$AA,$AA,$AA,$AA,$AA,$1A,$1A,$1A + .byte $AA,$AA,$AA,$AA,$AA,$AA,$1A,$1A,$1A,$11,$A1,$A1,$A1,$AA,$AA + .byte $1A,$1A,$1A,$11,$A1,$A1,$A1,$AA,$AA,$AA,$AA,$AA,$AA,$AA,$AA + + + diff --git a/ootw/ootw_graphics/l15final/bath_33.png b/ootw/ootw_graphics/l15final/bath_33.png index 433c1079f6a5dd875a7c491090ff2b420abf990d..574acc94821ac53a36764b017d37cb95a4d07826 100644 GIT binary patch delta 5876 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

9q{ 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 z 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