ootw: c4: add some doorways to hide behind

This commit is contained in:
Vince Weaver 2019-08-09 16:00:28 -04:00
parent bf05fade0f
commit db20da5738
4 changed files with 151 additions and 57 deletions

View File

@ -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 INL
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 INL
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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 469 B

After

Width:  |  Height:  |  Size: 8.6 KiB

View File

@ -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

View File

@ -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