diff --git a/ootw/ootw_c4_city.s b/ootw/ootw_c4_city.s index fb2cf9f1..f7c7e85b 100644 --- a/ootw/ootw_c4_city.s +++ b/ootw/ootw_c4_city.s @@ -250,20 +250,41 @@ city_loop: ; draw split screen if falling into pit ;====================================== + ; only fall in room3 lda WHICH_ROOM cmp #3 bne nothing_fancy - lda PHYSICIST_STATE - cmp #P_FALLING_SIDEWAYS - beq scroll_bg - cmp #P_FALLING_DOWN - bne nothing_fancy - ;====================== ; falling -scroll_bg: + ; only fall if falling sideways/down + lda PHYSICIST_STATE + cmp #P_FALLING_SIDEWAYS + beq falling_sideways + cmp #P_FALLING_DOWN + beq falling_down + + jmp nothing_fancy + +falling_sideways: + ; if falling sideways, and Y>=22, then crouch + lda PHYSICIST_Y + cmp #30 + bcc scroll_check ; blt + + lda #P_CROUCHING + sta PHYSICIST_STATE + + lda #4 + sta WHICH_ROOM + sta GAME_OVER + + jmp scroll_check + +falling_down: +check_done_falling_down: + ; if falling down, and Y>=32, then impale lda PHYSICIST_Y cmp #32 bcc scroll_check ; blt @@ -280,6 +301,7 @@ scroll_bg: lda #P_IMPALED sta PHYSICIST_STATE + scroll_check: lda BG_SCROLL ; if done scrolling, re-enable falling cmp #48 @@ -310,12 +332,6 @@ not_far_enough: inc BG_SCROLL inc BG_SCROLL -; ldy BG_SCROLL -; cpy #44 -; bne no_scroll_progress - -; lda #P_IMPALED -; sta PHYSICIST_STATE no_scroll_progress: @@ -416,18 +432,33 @@ c4_no_bg_action: jsr check_screen_limit + ;=================== ;=================== ; extra room limits ;=================== + ;=================== + ; only fall in room#3 lda WHICH_ROOM cmp #3 bne regular_room + ; don't fall if impaled or already falling + lda PHYSICIST_STATE + cmp #P_IMPALED + beq regular_room + cmp #P_FALLING_DOWN + beq regular_room + cmp #P_FALLING_SIDEWAYS + beq regular_room + + + ; only start falling if y>=18 lda PHYSICIST_Y cmp #18 - bne regular_room ; blt + bcc regular_room ; blt + ; only start falling if x>=8 lda PHYSICIST_X cmp #8 bcc regular_room ; blt @@ -456,13 +487,51 @@ regular_room: ;======================== - ; draw foreground action + ; draw foreground cover lda WHICH_ROOM cmp #2 - bne c4_no_fg_action + beq c4_room2_cover -;c2_draw_cart: + cmp #4 + beq c4_room4_cover + + jmp c4_no_fg_cover +c4_room2_cover: + + lda #0 + sta XPOS + lda #18 + sta YPOS + + lda #causeway_door_cover + sta INH + + jsr put_sprite + + + jmp c4_no_fg_cover +c4_room4_cover: + + lda #30 + sta XPOS + lda #8 + sta YPOS + + lda #pit_door_cover + sta INH + + jsr put_sprite + +c4_no_fg_cover: + + + +;c2_draw_doorway: ; ; lda CART_X ; sta XPOS @@ -535,7 +604,7 @@ city_frame_no_oflo: bne regular_exit_check lda PHYSICIST_X - cmp #35 + cmp #32 bcc regular_exit_check ; blt lda #5 @@ -715,3 +784,26 @@ recharge_bg4: +; 0x18 +causeway_door_cover: + .byte 8,8 + .byte $00,$00,$00,$00,$00,$00,$22,$AA + .byte $00,$00,$00,$00,$00,$00,$22,$AA + .byte $00,$00,$00,$00,$00,$00,$22,$AA + .byte $00,$00,$00,$00,$00,$00,$02,$2A + .byte $00,$00,$00,$00,$00,$00,$00,$22 + .byte $00,$00,$00,$00,$00,$00,$00,$22 + .byte $00,$00,$00,$00,$00,$00,$00,$22 + .byte $00,$00,$00,$00,$00,$00,$00,$22 + +; 30x8 +pit_door_cover: + .byte 8,8 + .byte $02,$22,$00,$00,$00,$00,$00,$00 + .byte $00,$00,$00,$00,$00,$00,$00,$00 + .byte $20,$00,$00,$00,$00,$00,$00,$00 + .byte $22,$02,$00,$00,$00,$00,$00,$00 + .byte $22,$00,$00,$00,$00,$00,$00,$00 + .byte $00,$00,$00,$00,$00,$00,$00,$00 + .byte $00,$00,$00,$00,$00,$00,$00,$00 + .byte $00,$00,$00,$00,$00,$00,$00,$00 diff --git a/ootw/ootw_graphics/l4city/causeway1.png b/ootw/ootw_graphics/l4city/causeway1.png index 7b8eb2b8..bb38908b 100644 Binary files a/ootw/ootw_graphics/l4city/causeway1.png and b/ootw/ootw_graphics/l4city/causeway1.png differ diff --git a/ootw/ootw_graphics/l4city/ootw_c4_city.inc b/ootw/ootw_graphics/l4city/ootw_c4_city.inc index 3e057292..fc0b3ab0 100644 --- a/ootw/ootw_graphics/l4city/ootw_c4_city.inc +++ b/ootw/ootw_graphics/l4city/ootw_c4_city.inc @@ -76,45 +76,45 @@ causeway1_rle: .byte $28 ; ysize=48 .byte $22, $77, $A4,$66, $02,$02, $77, $A5,$66, $22 .byte $A9,$00, $22,$22, $70, $A3,$00, $22, $00, $22 .byte $27, $A5,$66, $00, $22, $77, $A4,$66, $06 - .byte $22, $77, $A5,$66, $22, $A9,$00, $22,$22, $77 - .byte $A3,$00, $22, $00, $22,$22, $56, $A4,$66, $00 - .byte $27, $77, $A4,$22, $00, $22, $77, $A3,$66 - .byte $56, $66, $22, $A6,$00, $22, $00,$00, $22,$22 - .byte $77, $A3,$00, $22, $00, $22,$22, $55, $66 - .byte $56, $66,$66, $00, $22, $77, $A3,$22, $02 - .byte $00, $22, $77, $A3,$66, $55, $66, $22 - .byte $A6,$00, $22, $00,$00, $22,$22, $77, $A3,$00, $22 - .byte $00, $22,$22, $A3,$55, $56, $55, $00, $22 - .byte $77, $22,$22, $02, $00,$00, $22, $77, $66 - .byte $56, $66, $55,$55, $22, $A6,$00, $22, $00,$00 - .byte $22,$22, $77, $A3,$00, $22, $00, $22,$22, $25 - .byte $22, $25, $05,$05, $00, $22, $77, $02 - .byte $A4,$00, $22, $77, $A4,$25, $05, $22, $A6,$00 - .byte $02, $20, $00,$00, $22, $77, $A3,$00, $22 - .byte $00, $A0,$02,$A2, $72,$72, $02, $A3,$00, $22, $77 - .byte $A5,$00, $22, $77, $A3,$22, $02, $00, $22 - .byte $A7,$00, $22, $00,$00, $22, $A0,$01,$A7, $A0,$02,$A0, $A3,$2A - .byte $22, $02, $22, $02, $A4,$00, $22, $77 - .byte $A5,$00, $22, $77, $22, $02, $A3,$00, $22 - .byte $A7,$00, $22, $00,$00, $2A,$2A, $02, $22, $02 - .byte $22, $00, $22, $00, $22, $A5,$00, $22 - .byte $27, $A5,$00, $22, $27, $A5,$00, $22, $A7,$00 - .byte $22, $00,$00, $22, $00,$00, $22, $00, $22 - .byte $00, $22, $00, $22, $A5,$00, $22,$22, $A5,$00 - .byte $22,$22, $A5,$00, $22, $A7,$00, $22, $80, $88 - .byte $78, $57, $58, $78, $88, $58,$58, $88 - .byte $58, $A3,$88, $A5,$85, $A5,$50, $52,$52, $A5,$50, $52 - .byte $A7,$00, $02, $08,$08, $07, $A8,$08, $A3,$05, $A3,$08 - .byte $05, $A4,$08, $A5,$88, $A5,$85, $A0,$34,$00, $20,$20, $A7,$00 - .byte $20, $A5,$00, $20, $22, $72, $50, $A5,$00 - .byte $50, $55, $AD,$00, $20, $22,$22, $A3,$00, $20 - .byte $22,$22, $52,$52, $50, $A3,$00, $50, $55, $25 - .byte $77, $55, $A4,$00, $A4,$55, $AC,$00, $A3,$52, $50 - .byte $00,$00, $52, $A5,$55, $00,$00, $50, $A5,$55, $A3,$00 - .byte $50, $A4,$55, $50, $AB,$00, $75, $A3,$55, $00,$00 - .byte $A6,$55, $00,$00, $55,$55, $A4,$25, $A3,$00, $A6,$55, $AA,$00 - .byte $77,$77, $25,$25, $22, $00,$00, $55, $A5,$22, $00,$00 - .byte $A6,$22, $A3,$00, $22,$22, $A4,$25 + .byte $22, $77, $A5,$66, $22, $A7,$00, $20, $00 + .byte $22,$22, $77, $A3,$00, $22, $00, $22,$22, $56 + .byte $A4,$66, $00, $27, $77, $A4,$22, $00, $22 + .byte $77, $A3,$66, $56, $66, $22, $A6,$00, $22 + .byte $00,$00, $22,$22, $77, $A3,$00, $22, $00, $22,$22 + .byte $55, $66, $56, $66,$66, $00, $22, $77 + .byte $A3,$22, $02, $00, $22, $77, $A3,$66, $55 + .byte $66, $22, $A6,$00, $22, $00,$00, $22,$22, $77 + .byte $A3,$00, $22, $00, $22,$22, $A3,$55, $56, $55 + .byte $00, $22, $77, $22,$22, $02, $00,$00, $22 + .byte $77, $66, $56, $66, $55,$55, $22, $A6,$00 + .byte $22, $00,$00, $22,$22, $77, $A3,$00, $22, $00 + .byte $22,$22, $25, $22, $25, $05,$05, $00, $22 + .byte $77, $02, $A4,$00, $22, $77, $A4,$25, $05 + .byte $22, $A6,$00, $02, $20, $00,$00, $22, $77 + .byte $A3,$00, $22, $00, $A0,$02,$A2, $72,$72, $02, $A3,$00 + .byte $22, $77, $A5,$00, $22, $77, $A3,$22, $02 + .byte $00, $22, $A7,$00, $22, $00,$00, $22, $A0,$01,$A7 + .byte $A0,$02,$A0, $A3,$2A, $22, $02, $22, $02, $A4,$00 + .byte $22, $77, $A5,$00, $22, $77, $22, $02 + .byte $A3,$00, $22, $A7,$00, $22, $00,$00, $2A,$2A, $02 + .byte $22, $02, $22, $00, $22, $00, $22 + .byte $A5,$00, $22, $27, $A5,$00, $22, $27, $A5,$00 + .byte $22, $A7,$00, $22, $00,$00, $22, $00,$00, $22 + .byte $00, $22, $00, $22, $00, $22, $A5,$00 + .byte $22,$22, $A5,$00, $22,$22, $A5,$00, $22, $A7,$00, $22 + .byte $80, $88, $78, $57, $58, $78, $88 + .byte $58,$58, $88, $58, $A3,$88, $A5,$85, $A5,$50, $52,$52 + .byte $A5,$50, $52, $A7,$00, $02, $08,$08, $07, $A8,$08 + .byte $A3,$05, $A3,$08, $05, $A4,$08, $A5,$88, $A5,$85, $A0,$34,$00 + .byte $20,$20, $A7,$00, $20, $A5,$00, $20, $22, $72 + .byte $50, $A5,$00, $50, $55, $AD,$00, $20, $22,$22 + .byte $A3,$00, $20, $22,$22, $52,$52, $50, $A3,$00, $50 + .byte $55, $25, $77, $55, $A4,$00, $A4,$55, $AC,$00 + .byte $A3,$52, $50, $00,$00, $52, $A5,$55, $00,$00, $50 + .byte $A5,$55, $A3,$00, $50, $A4,$55, $50, $AB,$00, $75 + .byte $A3,$55, $00,$00, $A6,$55, $00,$00, $55,$55, $A4,$25, $A3,$00 + .byte $A6,$55, $AA,$00, $77,$77, $25,$25, $22, $00,$00, $55 + .byte $A5,$22, $00,$00, $A6,$22, $A3,$00, $22,$22, $A4,$25 .byte $A1 causeway2_rle: .byte $28 ; ysize=48 .byte $26, $AD,$66, $06, $26, $56, $AA,$66, $00 diff --git a/ootw/zp.inc b/ootw/zp.inc index 2e40e2f6..743418a4 100644 --- a/ootw/zp.inc +++ b/ootw/zp.inc @@ -119,6 +119,8 @@ LZ4_DONE = $96 ; we try not to conflict with anything DOS, MONITOR or BASIC related +GUN_CHARGE = $DC ; 2+ + MONSTER_AI = $DD ; C1 underwater BG_BEAST = $DE ; C1