mirror of
https://github.com/deater/dos33fsprogs.git
synced 2024-12-31 14:30:17 +00:00
ootw: finally implement run-jump
This commit is contained in:
parent
66074887ad
commit
ee98df5689
@ -16,7 +16,13 @@
|
|||||||
; if stand right, stand left
|
; if stand right, stand left
|
||||||
; if stand left, walk left
|
; if stand left, walk left
|
||||||
; if walk left, run left
|
; if walk left, run left
|
||||||
|
; if up: if crouching, stand up
|
||||||
|
; if standing, jump
|
||||||
|
; if walking, jump
|
||||||
|
; if running, run-jump
|
||||||
|
; if down: if standing, crouch
|
||||||
|
; if walking, crouch
|
||||||
|
; if if running, slide-crouch
|
||||||
|
|
||||||
|
|
||||||
handle_keypress:
|
handle_keypress:
|
||||||
@ -240,11 +246,17 @@ up_not_elevator:
|
|||||||
beq stand_up
|
beq stand_up
|
||||||
cmp #P_CROUCH_SHOOTING
|
cmp #P_CROUCH_SHOOTING
|
||||||
beq stand_up_shoot
|
beq stand_up_shoot
|
||||||
|
cmp #P_RUNNING
|
||||||
|
beq run_jump
|
||||||
|
|
||||||
up_jump:
|
up_jump:
|
||||||
lda #P_JUMPING
|
lda #P_JUMPING
|
||||||
jmp change_state_clear_gait
|
jmp change_state_clear_gait
|
||||||
|
|
||||||
|
run_jump:
|
||||||
|
lda #P_JUMPING|STATE_RUNNING
|
||||||
|
jmp change_state_clear_gait
|
||||||
|
|
||||||
stand_up:
|
stand_up:
|
||||||
lda #P_STANDING
|
lda #P_STANDING
|
||||||
jmp change_state_clear_gait
|
jmp change_state_clear_gait
|
||||||
@ -287,11 +299,14 @@ down_not_elevator:
|
|||||||
cmp #P_SHOOTING
|
cmp #P_SHOOTING
|
||||||
bne start_crouch
|
bne start_crouch
|
||||||
|
|
||||||
lda #P_CROUCH_SHOOTING
|
start_crouch_shoot:
|
||||||
|
and #STATE_RUNNING
|
||||||
|
ora #P_CROUCH_SHOOTING
|
||||||
jmp change_state_clear_gait
|
jmp change_state_clear_gait
|
||||||
|
|
||||||
start_crouch:
|
start_crouch:
|
||||||
lda #P_CROUCHING
|
and #STATE_RUNNING
|
||||||
|
ora #P_CROUCHING
|
||||||
jmp change_state_clear_gait
|
jmp change_state_clear_gait
|
||||||
|
|
||||||
|
|
||||||
|
@ -240,11 +240,24 @@ physicist_jumping:
|
|||||||
cmp #32
|
cmp #32
|
||||||
bcc still_jumping ; blt
|
bcc still_jumping ; blt
|
||||||
|
|
||||||
|
; done juming
|
||||||
|
lda #STATE_RUNNING
|
||||||
|
bit PHYSICIST_STATE
|
||||||
|
beq jump_to_stand
|
||||||
|
|
||||||
|
jump_to_run:
|
||||||
|
lda #0
|
||||||
|
sta GAIT
|
||||||
|
lda #P_RUNNING
|
||||||
|
sta PHYSICIST_STATE
|
||||||
|
jmp physicist_running
|
||||||
|
|
||||||
|
jump_to_stand:
|
||||||
lda #0
|
lda #0
|
||||||
sta GAIT
|
sta GAIT
|
||||||
lda #P_STANDING
|
lda #P_STANDING
|
||||||
sta PHYSICIST_STATE
|
sta PHYSICIST_STATE
|
||||||
jmp physicist_walking
|
jmp physicist_standing
|
||||||
|
|
||||||
still_jumping:
|
still_jumping:
|
||||||
|
|
||||||
@ -261,10 +274,25 @@ still_jumping:
|
|||||||
|
|
||||||
inc GAIT
|
inc GAIT
|
||||||
|
|
||||||
|
lda #STATE_RUNNING
|
||||||
|
bit PHYSICIST_STATE
|
||||||
|
beq jump_change_x_regular
|
||||||
|
|
||||||
|
jump_change_x_running:
|
||||||
|
lda GAIT
|
||||||
|
; 1/4 not enough, 1/2 too much
|
||||||
|
; 3/8?
|
||||||
|
and #$7
|
||||||
|
cmp #5
|
||||||
|
bcc jump_no_move
|
||||||
|
jmp jump_change_x
|
||||||
|
|
||||||
|
; only change X every 8th frame
|
||||||
|
jump_change_x_regular:
|
||||||
lda GAIT
|
lda GAIT
|
||||||
and #$7
|
and #$7
|
||||||
bne jump_no_move
|
bne jump_no_move
|
||||||
|
jump_change_x:
|
||||||
lda DIRECTION
|
lda DIRECTION
|
||||||
beq jump_left
|
beq jump_left
|
||||||
|
|
||||||
|
@ -209,11 +209,12 @@ DUDE_X = $E9 ; C2 jail
|
|||||||
|
|
||||||
STATE_NO_KEYPRESS = $80
|
STATE_NO_KEYPRESS = $80
|
||||||
STATE_CROUCHING = $40
|
STATE_CROUCHING = $40
|
||||||
|
STATE_RUNNING = $20
|
||||||
|
|
||||||
PHYSICIST_STATE = $EA
|
PHYSICIST_STATE = $EA
|
||||||
P_STANDING = $00
|
P_STANDING = $00
|
||||||
P_WALKING = $01
|
P_WALKING = $01
|
||||||
P_RUNNING = $02
|
P_RUNNING = $02 | STATE_RUNNING
|
||||||
P_CROUCHING = $03 | STATE_CROUCHING
|
P_CROUCHING = $03 | STATE_CROUCHING
|
||||||
P_KICKING = $04
|
P_KICKING = $04
|
||||||
P_JUMPING = $05 | STATE_NO_KEYPRESS
|
P_JUMPING = $05 | STATE_NO_KEYPRESS
|
||||||
|
Loading…
Reference in New Issue
Block a user