mirror of
https://github.com/deater/dos33fsprogs.git
synced 2024-12-27 17:29:49 +00:00
ootw: c1: more beast fine-tuning
runs slightly faster than physicist now also enters rooms closer if left room closer
This commit is contained in:
parent
f102c687bf
commit
84d470c71b
@ -11,7 +11,6 @@ Before release:
|
|||||||
when calculating room calcs, take Y position into account
|
when calculating room calcs, take Y position into account
|
||||||
|
|
||||||
L1 -- fix beast ending
|
L1 -- fix beast ending
|
||||||
L1 -- have beast death scene
|
|
||||||
L1 -- have beast collapse
|
L1 -- have beast collapse
|
||||||
L1 -- fix slugs
|
L1 -- fix slugs
|
||||||
|
|
||||||
@ -56,8 +55,10 @@ door behavior:
|
|||||||
- beast on hill and 2nd screen -- complex, only appears if
|
- beast on hill and 2nd screen -- complex, only appears if
|
||||||
you happen to leave same time beast does? then movement
|
you happen to leave same time beast does? then movement
|
||||||
depends on xposition?
|
depends on xposition?
|
||||||
- earthquake can happen while on rope?
|
- earthquake should happen while on rope
|
||||||
- sometimes falling rocks can follow you to next screen
|
- sometimes falling rocks can follow you to next screen
|
||||||
|
- beast can/should trip and fall if it gets close in the pool
|
||||||
|
room while running?
|
||||||
|
|
||||||
+ L2
|
+ L2
|
||||||
- gun movement: gun is held by head when running
|
- gun movement: gun is held by head when running
|
||||||
|
@ -73,7 +73,9 @@ ootw:
|
|||||||
; Enter the game
|
; Enter the game
|
||||||
;=======================
|
;=======================
|
||||||
|
|
||||||
jsr ootw_pool
|
; jsr ootw_pool
|
||||||
|
|
||||||
|
jsr ootw_mesa
|
||||||
|
|
||||||
|
|
||||||
;===========================
|
;===========================
|
||||||
|
@ -1,24 +1,32 @@
|
|||||||
|
|
||||||
|
; FIXME, if beast close on screen #2, have it fall?
|
||||||
|
|
||||||
;=======================================
|
;=======================================
|
||||||
;=======================================
|
;=======================================
|
||||||
; Setup Beast Running -- for each room
|
; Setup Beast Running -- for each room
|
||||||
;=======================================
|
;=======================================
|
||||||
;=======================================
|
;=======================================
|
||||||
|
|
||||||
; FIXME: distance for count should be related
|
|
||||||
; to X distance behind on previous screen
|
|
||||||
|
|
||||||
setup_beast:
|
setup_beast:
|
||||||
|
; only move beast if out
|
||||||
|
|
||||||
lda BEAST_OUT
|
lda BEAST_OUT
|
||||||
beq setup_no_beast
|
beq setup_no_beast
|
||||||
|
|
||||||
|
; have the beast wait standing offscreen a bit??
|
||||||
|
; what were you thinking, 6-months-ago Vince?
|
||||||
|
|
||||||
lda #30
|
lda #30
|
||||||
sta BEAST_COUNT
|
sta BEAST_COUNT
|
||||||
lda #B_STANDING
|
lda #B_STANDING
|
||||||
sta BEAST_STATE
|
sta BEAST_STATE
|
||||||
|
|
||||||
|
; set Y position
|
||||||
lda #26
|
lda #26
|
||||||
sta BEAST_Y
|
sta BEAST_Y
|
||||||
|
|
||||||
|
|
||||||
|
; what we do is based on direction
|
||||||
lda BEAST_DIRECTION
|
lda BEAST_DIRECTION
|
||||||
beq setup_beast_left
|
beq setup_beast_left
|
||||||
|
|
||||||
@ -42,14 +50,30 @@ beast_right_rope:
|
|||||||
lda #240
|
lda #240
|
||||||
jmp beast_right_set_x
|
jmp beast_right_set_x
|
||||||
|
|
||||||
|
; adjust for distance
|
||||||
beast_right_set_normal:
|
beast_right_set_normal:
|
||||||
lda #246 ; -8 = 248
|
sec
|
||||||
|
lda #40
|
||||||
|
sbc BEAST_X
|
||||||
|
lsr
|
||||||
|
lsr
|
||||||
|
adc #240 ;
|
||||||
beast_right_set_x:
|
beast_right_set_x:
|
||||||
sta BEAST_X
|
sta BEAST_X
|
||||||
jmp setup_no_beast
|
jmp setup_no_beast
|
||||||
|
|
||||||
|
;==============================
|
||||||
|
; running left
|
||||||
setup_beast_left:
|
setup_beast_left:
|
||||||
lda #41
|
|
||||||
|
; adjust for how far was on last screen
|
||||||
|
; /4
|
||||||
|
lda BEAST_X
|
||||||
|
lsr
|
||||||
|
lsr
|
||||||
|
|
||||||
|
clc
|
||||||
|
adc #40
|
||||||
sta BEAST_X
|
sta BEAST_X
|
||||||
|
|
||||||
setup_no_beast:
|
setup_no_beast:
|
||||||
@ -62,6 +86,7 @@ setup_no_beast:
|
|||||||
;=======================================
|
;=======================================
|
||||||
; stop if catch physicist
|
; stop if catch physicist
|
||||||
; also stop if swinging
|
; also stop if swinging
|
||||||
|
; run just every slightly faster than physicist
|
||||||
|
|
||||||
move_beast:
|
move_beast:
|
||||||
lda BEAST_STATE
|
lda BEAST_STATE
|
||||||
@ -119,10 +144,13 @@ beast_no_stop:
|
|||||||
inc BEAST_GAIT ; cycle through animation
|
inc BEAST_GAIT ; cycle through animation
|
||||||
|
|
||||||
lda BEAST_GAIT
|
lda BEAST_GAIT
|
||||||
and #$3
|
and #$7
|
||||||
cmp #$2 ; only run roughly 1/4 of time
|
cmp #5
|
||||||
|
beq b_run
|
||||||
|
and #$3 ; only run roughly 3/8 of time
|
||||||
bne b_no_move_run
|
bne b_no_move_run
|
||||||
|
|
||||||
|
b_run:
|
||||||
lda BEAST_DIRECTION
|
lda BEAST_DIRECTION
|
||||||
beq b_run_left
|
beq b_run_left
|
||||||
|
|
||||||
|
@ -1,6 +1,118 @@
|
|||||||
;=========================
|
;=========================
|
||||||
|
;=========================
|
||||||
; Beast
|
; Beast
|
||||||
|
;=========================
|
||||||
|
;=========================
|
||||||
|
|
||||||
|
; FIXME: add tripping+falling sprites
|
||||||
|
; FIXME: add background beast for first cavern room
|
||||||
|
; FIXME: better running sprites
|
||||||
|
|
||||||
|
|
||||||
|
;=============================
|
||||||
|
; big beast sprites
|
||||||
|
;=============================
|
||||||
|
|
||||||
|
beast_standing:
|
||||||
|
.byte $9,$6
|
||||||
|
.byte $aa,$0a,$00,$00,$0a,$aa,$aa,$aa,$aa
|
||||||
|
.byte $aa,$00,$00,$00,$00,$00,$00,$aa,$aa
|
||||||
|
.byte $00,$00,$00,$00,$00,$00,$00,$00,$aa
|
||||||
|
.byte $00,$00,$00,$00,$00,$00,$00,$00,$aa
|
||||||
|
.byte $aa,$aa,$00,$a0,$aa,$a0,$00,$00,$aa
|
||||||
|
.byte $aa,$aa,$00,$aa,$aa,$aa,$00,$aa,$00
|
||||||
|
|
||||||
|
|
||||||
|
beast_run_progression:
|
||||||
|
.word beast_running1
|
||||||
|
.word beast_running2
|
||||||
|
.word beast_running3
|
||||||
|
.word beast_running4
|
||||||
|
.word beast_running5
|
||||||
|
.word beast_running6
|
||||||
|
.word beast_running7
|
||||||
|
.word beast_running8
|
||||||
|
.word beast_standing
|
||||||
|
|
||||||
|
|
||||||
|
beast_running1: ; piskel2
|
||||||
|
.byte $9,$6
|
||||||
|
.byte $aa,$0a,$00,$00,$0a,$aa,$aa,$aa,$aa
|
||||||
|
.byte $0a,$00,$00,$00,$00,$0a,$0a,$aa,$aa
|
||||||
|
.byte $00,$00,$00,$00,$00,$00,$00,$00,$aa
|
||||||
|
.byte $a0,$a0,$00,$00,$00,$00,$00,$00,$aa
|
||||||
|
.byte $aa,$0a,$00,$aa,$aa,$a0,$00,$00,$00
|
||||||
|
.byte $a0,$a0,$aa,$aa,$aa,$aa,$a0,$0a,$00
|
||||||
|
|
||||||
|
beast_running2: ; piskel3
|
||||||
|
.byte $9,$6
|
||||||
|
.byte $aa,$0a,$00,$00,$0a,$aa,$aa,$aa,$aa
|
||||||
|
.byte $00,$00,$00,$00,$00,$00,$0a,$aa,$aa
|
||||||
|
.byte $00,$00,$00,$00,$00,$00,$00,$00,$aa
|
||||||
|
.byte $aa,$aa,$00,$00,$00,$00,$00,$00,$aa
|
||||||
|
.byte $a0,$a0,$a0,$aa,$aa,$a0,$00,$00,$0a
|
||||||
|
.byte $aa,$aa,$aa,$aa,$aa,$aa,$aa,$00,$00
|
||||||
|
|
||||||
|
beast_running3: ; piskel4
|
||||||
|
.byte $9,$6
|
||||||
|
.byte $aa,$aa,$0a,$0a,$0a,$aa,$aa,$aa,$aa
|
||||||
|
.byte $0a,$00,$00,$00,$00,$00,$0a,$aa,$aa
|
||||||
|
.byte $00,$00,$00,$00,$00,$00,$00,$00,$aa
|
||||||
|
.byte $a0,$00,$00,$00,$00,$00,$00,$00,$aa
|
||||||
|
.byte $aa,$0a,$00,$aa,$aa,$a0,$a0,$00,$00
|
||||||
|
.byte $a0,$a0,$aa,$aa,$aa,$aa,$aa,$aa,$aa
|
||||||
|
|
||||||
|
beast_running4: ; piskel5
|
||||||
|
.byte $9,$6
|
||||||
|
.byte $aa,$aa,$0a,$0a,$0a,$aa,$aa,$aa,$aa
|
||||||
|
.byte $aa,$00,$00,$00,$00,$00,$00,$aa,$aa
|
||||||
|
.byte $00,$00,$00,$00,$00,$00,$00,$00,$aa
|
||||||
|
.byte $00,$00,$00,$00,$00,$00,$00,$00,$aa
|
||||||
|
.byte $aa,$0a,$00,$aa,$aa,$a0,$a0,$00,$0a
|
||||||
|
.byte $aa,$00,$aa,$aa,$aa,$aa,$aa,$a0,$a0
|
||||||
|
|
||||||
|
beast_running5: ; piskel6
|
||||||
|
.byte $9,$6
|
||||||
|
.byte $aa,$aa,$0a,$0a,$aa,$aa,$aa,$aa,$aa
|
||||||
|
.byte $0a,$00,$00,$00,$00,$0a,$0a,$aa,$aa
|
||||||
|
.byte $00,$00,$00,$00,$00,$00,$00,$00,$aa
|
||||||
|
.byte $00,$00,$00,$00,$00,$00,$00,$00,$aa
|
||||||
|
.byte $aa,$aa,$00,$aa,$aa,$a0,$00,$00,$aa
|
||||||
|
.byte $aa,$aa,$00,$aa,$aa,$aa,$00,$a0,$00
|
||||||
|
|
||||||
|
beast_running6: ; piskel7
|
||||||
|
.byte $9,$6
|
||||||
|
.byte $aa,$aa,$0a,$0a,$aa,$aa,$aa,$aa,$aa
|
||||||
|
.byte $0a,$00,$00,$00,$00,$0a,$0a,$aa,$aa
|
||||||
|
.byte $00,$00,$00,$00,$00,$00,$00,$00,$aa
|
||||||
|
.byte $a0,$00,$00,$00,$00,$00,$00,$00,$aa
|
||||||
|
.byte $aa,$aa,$00,$0a,$aa,$00,$00,$00,$aa
|
||||||
|
.byte $aa,$aa,$aa,$00,$aa,$00,$a0,$aa,$aa
|
||||||
|
|
||||||
|
beast_running7: ; piskel8
|
||||||
|
.byte $9,$6
|
||||||
|
.byte $aa,$aa,$0a,$0a,$aa,$aa,$aa,$aa,$aa
|
||||||
|
.byte $0a,$00,$00,$00,$00,$0a,$0a,$aa,$aa
|
||||||
|
.byte $00,$00,$00,$00,$00,$00,$00,$00,$aa
|
||||||
|
.byte $00,$00,$00,$00,$00,$00,$00,$00,$aa
|
||||||
|
.byte $aa,$a0,$a0,$00,$aa,$00,$00,$a0,$aa
|
||||||
|
.byte $aa,$aa,$aa,$00,$00,$00,$aa,$aa,$aa
|
||||||
|
|
||||||
|
beast_running8: ; piskel9
|
||||||
|
.byte $9,$6
|
||||||
|
.byte $aa,$aa,$0a,$0a,$aa,$aa,$aa,$aa,$aa
|
||||||
|
.byte $0a,$00,$00,$00,$00,$0a,$0a,$aa,$aa
|
||||||
|
.byte $00,$00,$00,$00,$00,$00,$00,$00,$aa
|
||||||
|
.byte $00,$00,$00,$00,$00,$00,$00,$00,$aa
|
||||||
|
.byte $aa,$a0,$00,$aa,$aa,$aa,$00,$a0,$aa
|
||||||
|
.byte $aa,$aa,$00,$a0,$aa,$aa,$00,$aa,$aa
|
||||||
|
|
||||||
|
|
||||||
|
;========================
|
||||||
|
;========================
|
||||||
|
; Beast in background
|
||||||
|
;========================
|
||||||
|
;========================
|
||||||
|
|
||||||
beast_incoming:
|
beast_incoming:
|
||||||
.word beast_bg2 ; 2
|
.word beast_bg2 ; 2
|
||||||
@ -110,99 +222,3 @@ beast_bg13: ; going left
|
|||||||
.byte $AA,$A0,$AA,$A0,$A0
|
.byte $AA,$A0,$AA,$A0,$A0
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
beast_standing:
|
|
||||||
.byte $9,$6
|
|
||||||
.byte $aa,$0a,$00,$00,$0a,$aa,$aa,$aa,$aa
|
|
||||||
.byte $aa,$00,$00,$00,$00,$00,$00,$aa,$aa
|
|
||||||
.byte $00,$00,$00,$00,$00,$00,$00,$00,$aa
|
|
||||||
.byte $00,$00,$00,$00,$00,$00,$00,$00,$aa
|
|
||||||
.byte $aa,$aa,$00,$a0,$aa,$a0,$00,$00,$aa
|
|
||||||
.byte $aa,$aa,$00,$aa,$aa,$aa,$00,$aa,$00
|
|
||||||
|
|
||||||
|
|
||||||
beast_run_progression:
|
|
||||||
.word beast_running1
|
|
||||||
.word beast_running2
|
|
||||||
.word beast_running3
|
|
||||||
.word beast_running4
|
|
||||||
.word beast_running5
|
|
||||||
.word beast_running6
|
|
||||||
.word beast_running7
|
|
||||||
.word beast_running8
|
|
||||||
.word beast_standing
|
|
||||||
|
|
||||||
|
|
||||||
beast_running1: ; piskel2
|
|
||||||
.byte $9,$6
|
|
||||||
.byte $aa,$0a,$00,$00,$0a,$aa,$aa,$aa,$aa
|
|
||||||
.byte $0a,$00,$00,$00,$00,$0a,$0a,$aa,$aa
|
|
||||||
.byte $00,$00,$00,$00,$00,$00,$00,$00,$aa
|
|
||||||
.byte $a0,$a0,$00,$00,$00,$00,$00,$00,$aa
|
|
||||||
.byte $aa,$0a,$00,$aa,$aa,$a0,$00,$00,$00
|
|
||||||
.byte $a0,$a0,$aa,$aa,$aa,$aa,$a0,$0a,$00
|
|
||||||
|
|
||||||
beast_running2: ; piskel3
|
|
||||||
.byte $9,$6
|
|
||||||
.byte $aa,$0a,$00,$00,$0a,$aa,$aa,$aa,$aa
|
|
||||||
.byte $00,$00,$00,$00,$00,$00,$0a,$aa,$aa
|
|
||||||
.byte $00,$00,$00,$00,$00,$00,$00,$00,$aa
|
|
||||||
.byte $aa,$aa,$00,$00,$00,$00,$00,$00,$aa
|
|
||||||
.byte $a0,$a0,$a0,$aa,$aa,$a0,$00,$00,$0a
|
|
||||||
.byte $aa,$aa,$aa,$aa,$aa,$aa,$aa,$00,$00
|
|
||||||
|
|
||||||
beast_running3: ; piskel4
|
|
||||||
.byte $9,$6
|
|
||||||
.byte $aa,$aa,$0a,$0a,$0a,$aa,$aa,$aa,$aa
|
|
||||||
.byte $0a,$00,$00,$00,$00,$00,$0a,$aa,$aa
|
|
||||||
.byte $00,$00,$00,$00,$00,$00,$00,$00,$aa
|
|
||||||
.byte $a0,$00,$00,$00,$00,$00,$00,$00,$aa
|
|
||||||
.byte $aa,$0a,$00,$aa,$aa,$a0,$a0,$00,$00
|
|
||||||
.byte $a0,$a0,$aa,$aa,$aa,$aa,$aa,$aa,$aa
|
|
||||||
|
|
||||||
beast_running4: ; piskel5
|
|
||||||
.byte $9,$6
|
|
||||||
.byte $aa,$aa,$0a,$0a,$0a,$aa,$aa,$aa,$aa
|
|
||||||
.byte $aa,$00,$00,$00,$00,$00,$00,$aa,$aa
|
|
||||||
.byte $00,$00,$00,$00,$00,$00,$00,$00,$aa
|
|
||||||
.byte $00,$00,$00,$00,$00,$00,$00,$00,$aa
|
|
||||||
.byte $aa,$0a,$00,$aa,$aa,$a0,$a0,$00,$0a
|
|
||||||
.byte $aa,$00,$aa,$aa,$aa,$aa,$aa,$a0,$a0
|
|
||||||
|
|
||||||
beast_running5: ; piskel6
|
|
||||||
.byte $9,$6
|
|
||||||
.byte $aa,$aa,$0a,$0a,$aa,$aa,$aa,$aa,$aa
|
|
||||||
.byte $0a,$00,$00,$00,$00,$0a,$0a,$aa,$aa
|
|
||||||
.byte $00,$00,$00,$00,$00,$00,$00,$00,$aa
|
|
||||||
.byte $00,$00,$00,$00,$00,$00,$00,$00,$aa
|
|
||||||
.byte $aa,$aa,$00,$aa,$aa,$a0,$00,$00,$aa
|
|
||||||
.byte $aa,$aa,$00,$aa,$aa,$aa,$00,$a0,$00
|
|
||||||
|
|
||||||
beast_running6: ; piskel7
|
|
||||||
.byte $9,$6
|
|
||||||
.byte $aa,$aa,$0a,$0a,$aa,$aa,$aa,$aa,$aa
|
|
||||||
.byte $0a,$00,$00,$00,$00,$0a,$0a,$aa,$aa
|
|
||||||
.byte $00,$00,$00,$00,$00,$00,$00,$00,$aa
|
|
||||||
.byte $a0,$00,$00,$00,$00,$00,$00,$00,$aa
|
|
||||||
.byte $aa,$aa,$00,$0a,$aa,$00,$00,$00,$aa
|
|
||||||
.byte $aa,$aa,$aa,$00,$aa,$00,$a0,$aa,$aa
|
|
||||||
|
|
||||||
beast_running7: ; piskel8
|
|
||||||
.byte $9,$6
|
|
||||||
.byte $aa,$aa,$0a,$0a,$aa,$aa,$aa,$aa,$aa
|
|
||||||
.byte $0a,$00,$00,$00,$00,$0a,$0a,$aa,$aa
|
|
||||||
.byte $00,$00,$00,$00,$00,$00,$00,$00,$aa
|
|
||||||
.byte $00,$00,$00,$00,$00,$00,$00,$00,$aa
|
|
||||||
.byte $aa,$a0,$a0,$00,$aa,$00,$00,$a0,$aa
|
|
||||||
.byte $aa,$aa,$aa,$00,$00,$00,$aa,$aa,$aa
|
|
||||||
|
|
||||||
beast_running8: ; piskel9
|
|
||||||
.byte $9,$6
|
|
||||||
.byte $aa,$aa,$0a,$0a,$aa,$aa,$aa,$aa,$aa
|
|
||||||
.byte $0a,$00,$00,$00,$00,$0a,$0a,$aa,$aa
|
|
||||||
.byte $00,$00,$00,$00,$00,$00,$00,$00,$aa
|
|
||||||
.byte $00,$00,$00,$00,$00,$00,$00,$00,$aa
|
|
||||||
.byte $aa,$a0,$00,$aa,$aa,$aa,$00,$a0,$aa
|
|
||||||
.byte $aa,$aa,$00,$a0,$aa,$aa,$00,$aa,$aa
|
|
||||||
|
Loading…
Reference in New Issue
Block a user