mirror of
https://github.com/deater/dos33fsprogs.git
synced 2024-09-10 23:54:33 +00:00
ootw: c2: more elevator code
This commit is contained in:
parent
6b2ae05aaa
commit
5af4f268d0
@ -5,8 +5,8 @@
|
|||||||
|
|
||||||
; A or <- : start moving left
|
; A or <- : start moving left
|
||||||
; D or -> : start moving right
|
; D or -> : start moving right
|
||||||
; W or up : jump
|
; W or up : jump or elevator/transporter up
|
||||||
; S or down : crouch or pickup
|
; S or down : crouch or pickup or elevator/transporter down
|
||||||
; space : action
|
; space : action
|
||||||
; escape : quit
|
; escape : quit
|
||||||
|
|
||||||
@ -205,9 +205,21 @@ check_up:
|
|||||||
bne check_down
|
bne check_down
|
||||||
up:
|
up:
|
||||||
;========================
|
;========================
|
||||||
; Jump -- Up Pressed
|
; UP -- Jump
|
||||||
;========================
|
;========================
|
||||||
|
|
||||||
|
lda ON_ELEVATOR
|
||||||
|
beq up_not_elevator
|
||||||
|
|
||||||
|
up_on_elevator:
|
||||||
|
lda #P_ELEVATING_UP
|
||||||
|
sta PHYSICIST_STATE
|
||||||
|
lda #0
|
||||||
|
sta GAIT
|
||||||
|
jmp done_keypress
|
||||||
|
|
||||||
|
up_not_elevator:
|
||||||
|
|
||||||
lda #P_JUMPING
|
lda #P_JUMPING
|
||||||
sta PHYSICIST_STATE
|
sta PHYSICIST_STATE
|
||||||
lda #0
|
lda #0
|
||||||
@ -222,9 +234,21 @@ check_down:
|
|||||||
bne check_space
|
bne check_space
|
||||||
|
|
||||||
;======================
|
;======================
|
||||||
; Crouch
|
; DOWN -- Crouch
|
||||||
;======================
|
;======================
|
||||||
down:
|
down:
|
||||||
|
|
||||||
|
lda ON_ELEVATOR
|
||||||
|
beq down_not_elevator
|
||||||
|
|
||||||
|
down_on_elevator:
|
||||||
|
lda #P_ELEVATING_DOWN
|
||||||
|
sta PHYSICIST_STATE
|
||||||
|
lda #0
|
||||||
|
sta GAIT
|
||||||
|
jmp done_keypress
|
||||||
|
|
||||||
|
down_not_elevator:
|
||||||
lda #P_CROUCHING
|
lda #P_CROUCHING
|
||||||
sta PHYSICIST_STATE
|
sta PHYSICIST_STATE
|
||||||
lda #0
|
lda #0
|
||||||
|
@ -45,6 +45,15 @@ elevator4:
|
|||||||
lda #3
|
lda #3
|
||||||
sta eel_smc+1
|
sta eel_smc+1
|
||||||
|
|
||||||
|
; set up exit
|
||||||
|
lda #7
|
||||||
|
sta going_up_smc+1
|
||||||
|
|
||||||
|
; set down exit
|
||||||
|
lda #5
|
||||||
|
sta going_down_smc+1
|
||||||
|
|
||||||
|
|
||||||
jmp elevator_setup_done
|
jmp elevator_setup_done
|
||||||
|
|
||||||
elevator5:
|
elevator5:
|
||||||
@ -53,10 +62,60 @@ elevator5:
|
|||||||
|
|
||||||
lda #(-4+128)
|
lda #(-4+128)
|
||||||
sta LEFT_LIMIT
|
sta LEFT_LIMIT
|
||||||
|
lda #(21+128)
|
||||||
|
sta RIGHT_LIMIT
|
||||||
|
|
||||||
|
; set left exit
|
||||||
|
lda #9
|
||||||
|
sta eel_smc+1
|
||||||
|
|
||||||
|
; set up exit
|
||||||
|
lda #4
|
||||||
|
sta going_up_smc+1
|
||||||
|
|
||||||
|
; set down exit
|
||||||
|
lda #6
|
||||||
|
sta going_down_smc+1
|
||||||
|
|
||||||
|
jmp elevator_setup_done
|
||||||
|
|
||||||
|
|
||||||
|
elevator6:
|
||||||
|
cmp #6
|
||||||
|
bne elevator7
|
||||||
|
|
||||||
|
lda #(-4+128)
|
||||||
|
sta LEFT_LIMIT
|
||||||
|
lda #(21+128)
|
||||||
|
sta RIGHT_LIMIT
|
||||||
|
|
||||||
|
; set left exit
|
||||||
|
lda #8
|
||||||
|
sta eel_smc+1
|
||||||
|
|
||||||
|
; set up exit
|
||||||
|
lda #5
|
||||||
|
sta going_up_smc+1
|
||||||
|
|
||||||
|
; no down exit
|
||||||
|
|
||||||
|
jmp elevator_setup_done
|
||||||
|
|
||||||
|
elevator7:
|
||||||
|
|
||||||
|
lda #(10+128)
|
||||||
|
sta LEFT_LIMIT
|
||||||
lda #(30+128)
|
lda #(30+128)
|
||||||
sta RIGHT_LIMIT
|
sta RIGHT_LIMIT
|
||||||
|
|
||||||
elevator6:
|
; set up exit
|
||||||
|
; no up exit
|
||||||
|
|
||||||
|
; set down exit
|
||||||
|
lda #4
|
||||||
|
sta going_down_smc+1
|
||||||
|
|
||||||
|
; fallthrough
|
||||||
|
|
||||||
elevator_setup_done:
|
elevator_setup_done:
|
||||||
|
|
||||||
@ -153,7 +212,66 @@ draw_elevator:
|
|||||||
|
|
||||||
elevator_frame_no_oflo:
|
elevator_frame_no_oflo:
|
||||||
|
|
||||||
; check if done this level
|
|
||||||
|
;==========================
|
||||||
|
; handle elevator
|
||||||
|
;==========================
|
||||||
|
|
||||||
|
lda PHYSICIST_X
|
||||||
|
cmp #17
|
||||||
|
bcc not_on_elevator ; blt
|
||||||
|
lda #1
|
||||||
|
bne update_elevator ; balways
|
||||||
|
|
||||||
|
not_on_elevator:
|
||||||
|
lda #0
|
||||||
|
update_elevator:
|
||||||
|
sta ON_ELEVATOR
|
||||||
|
|
||||||
|
|
||||||
|
;==========================
|
||||||
|
; handle elevating
|
||||||
|
;==========================
|
||||||
|
lda PHYSICIST_STATE
|
||||||
|
|
||||||
|
elevator_check_up:
|
||||||
|
cmp #P_ELEVATING_UP
|
||||||
|
bne elevator_check_down
|
||||||
|
|
||||||
|
going_up:
|
||||||
|
going_up_smc:
|
||||||
|
lda #7
|
||||||
|
sta WHICH_JAIL
|
||||||
|
|
||||||
|
lda #0
|
||||||
|
sta PHYSICIST_STATE
|
||||||
|
|
||||||
|
jmp done_elevator
|
||||||
|
|
||||||
|
elevator_check_down:
|
||||||
|
cmp #P_ELEVATING_DOWN
|
||||||
|
bne going_nowhere
|
||||||
|
|
||||||
|
going_down:
|
||||||
|
going_down_smc:
|
||||||
|
lda #4
|
||||||
|
sta WHICH_JAIL
|
||||||
|
|
||||||
|
lda #0
|
||||||
|
sta PHYSICIST_STATE
|
||||||
|
|
||||||
|
jmp done_elevator
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
going_nowhere:
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
;==========================
|
||||||
|
; check if done this room
|
||||||
|
;==========================
|
||||||
|
|
||||||
lda GAME_OVER
|
lda GAME_OVER
|
||||||
beq still_in_elevator
|
beq still_in_elevator
|
||||||
|
@ -70,6 +70,10 @@ pstate_table_lo:
|
|||||||
.byte <physicist_jumping ; 05
|
.byte <physicist_jumping ; 05
|
||||||
.byte <physicist_collapsing ; 06
|
.byte <physicist_collapsing ; 06
|
||||||
.byte <physicist_falling ; 07
|
.byte <physicist_falling ; 07
|
||||||
|
.byte <physicist_standing ; 08 swinging
|
||||||
|
.byte <physicist_standing ; 09 elevator up
|
||||||
|
.byte <physicist_standing ; 0A elevator down
|
||||||
|
|
||||||
pstate_table_hi:
|
pstate_table_hi:
|
||||||
.byte >physicist_standing
|
.byte >physicist_standing
|
||||||
.byte >physicist_walking
|
.byte >physicist_walking
|
||||||
@ -79,6 +83,9 @@ pstate_table_hi:
|
|||||||
.byte >physicist_jumping
|
.byte >physicist_jumping
|
||||||
.byte >physicist_collapsing
|
.byte >physicist_collapsing
|
||||||
.byte >physicist_falling
|
.byte >physicist_falling
|
||||||
|
.byte >physicist_standing ; 08 swinging
|
||||||
|
.byte >physicist_standing ; 09 elevator up
|
||||||
|
.byte >physicist_standing ; 0A elevator down
|
||||||
|
|
||||||
; Urgh, make sure this doesn't end up at $FF or you hit the
|
; Urgh, make sure this doesn't end up at $FF or you hit the
|
||||||
; NMOS 6502 bug
|
; NMOS 6502 bug
|
||||||
|
@ -156,7 +156,8 @@ PHYSICIST_STATE = $EA
|
|||||||
P_COLLAPSING = $06 ; no keypress
|
P_COLLAPSING = $06 ; no keypress
|
||||||
P_FALLING = $07 ; no keypress
|
P_FALLING = $07 ; no keypress
|
||||||
P_SWINGING = $08 ; no keypress
|
P_SWINGING = $08 ; no keypress
|
||||||
|
P_ELEVATING_UP = $09
|
||||||
|
P_ELEVATING_DOWN = $0A
|
||||||
|
|
||||||
BEFORE_SWING = $EB
|
BEFORE_SWING = $EB
|
||||||
CUTFRAME = $EC
|
CUTFRAME = $EC
|
||||||
|
Loading…
Reference in New Issue
Block a user