mirror of
https://github.com/deater/dos33fsprogs.git
synced 2024-06-13 18:29:34 +00:00
lemm: initial climbing support
This commit is contained in:
parent
4f29bada10
commit
47f8c98f15
|
@ -349,14 +349,30 @@ cant_stop:
|
||||||
; make builder
|
; make builder
|
||||||
;========================
|
;========================
|
||||||
make_builder:
|
make_builder:
|
||||||
; only do it if walking
|
|
||||||
|
; if walking, shrugging, bashing
|
||||||
|
|
||||||
lda lemming_status,Y
|
lda lemming_status,Y
|
||||||
cmp #LEMMING_WALKING
|
cmp #LEMMING_WALKING
|
||||||
bne done_make_builder
|
beq really_make_builder
|
||||||
|
cmp #LEMMING_SHRUGGING
|
||||||
|
beq really_make_builder
|
||||||
|
cmp #LEMMING_BASHING
|
||||||
|
beq really_make_builder
|
||||||
|
|
||||||
|
|
||||||
|
jmp done_make_builder
|
||||||
|
|
||||||
|
really_make_builder:
|
||||||
lda #LEMMING_BUILDING
|
lda #LEMMING_BUILDING
|
||||||
sta lemming_status,Y
|
sta lemming_status,Y
|
||||||
|
|
||||||
|
; build count=0
|
||||||
|
lda lemming_attribute,Y
|
||||||
|
and #$f0
|
||||||
|
sta lemming_attribute,Y
|
||||||
|
|
||||||
|
|
||||||
; FIXME: decrement count
|
; FIXME: decrement count
|
||||||
done_make_builder:
|
done_make_builder:
|
||||||
jmp done_keypress
|
jmp done_keypress
|
||||||
|
|
|
@ -205,8 +205,21 @@ walking_yes_wall:
|
||||||
|
|
||||||
jsr check_at_exit_xiny
|
jsr check_at_exit_xiny
|
||||||
|
|
||||||
; reverse direction
|
; check if climber, if so climb
|
||||||
ldy CURRENT_LEMMING
|
ldy CURRENT_LEMMING
|
||||||
|
|
||||||
|
lda lemming_attribute,Y
|
||||||
|
and #LEMMING_CLIMBER
|
||||||
|
beq not_climber
|
||||||
|
|
||||||
|
lda #LEMMING_CLIMBING
|
||||||
|
sta lemming_status,Y
|
||||||
|
jmp walking_done
|
||||||
|
|
||||||
|
not_climber:
|
||||||
|
|
||||||
|
; reverse direction
|
||||||
|
|
||||||
lda lemming_direction,Y
|
lda lemming_direction,Y
|
||||||
eor #$ff
|
eor #$ff
|
||||||
clc
|
clc
|
||||||
|
@ -406,11 +419,65 @@ do_lemming_building:
|
||||||
adc lemming_direction,X
|
adc lemming_direction,X
|
||||||
sta lemming_x,X
|
sta lemming_x,X
|
||||||
|
|
||||||
|
inc lemming_attribute,X
|
||||||
|
lda lemming_attribute,X
|
||||||
|
cmp #12
|
||||||
|
bne done_building
|
||||||
|
|
||||||
|
; hit the end!
|
||||||
|
|
||||||
|
lda #LEMMING_SHRUGGING
|
||||||
|
sta lemming_status,X
|
||||||
|
|
||||||
no_building_this_frame:
|
no_building_this_frame:
|
||||||
done_building:
|
done_building:
|
||||||
jmp done_move_lemming
|
jmp done_move_lemming
|
||||||
|
|
||||||
|
;========================
|
||||||
|
; stopping
|
||||||
|
;========================
|
||||||
|
do_lemming_stopping:
|
||||||
|
; we do want to see if something knocks the ground out from
|
||||||
|
; under us
|
||||||
|
|
||||||
|
jsr collision_check_ground
|
||||||
|
jmp done_move_lemming
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
;========================
|
||||||
|
; shrugging
|
||||||
|
;========================
|
||||||
|
do_lemming_shrugging:
|
||||||
|
lda lemming_frame,Y
|
||||||
|
cmp #8
|
||||||
|
bne not_done_shrugging
|
||||||
|
|
||||||
|
lda #LEMMING_WALKING ; done shrug, start walking again
|
||||||
|
sta lemming_status,Y
|
||||||
|
|
||||||
|
not_done_shrugging:
|
||||||
|
jmp done_move_lemming
|
||||||
|
|
||||||
|
|
||||||
|
;========================
|
||||||
|
; climbing
|
||||||
|
;========================
|
||||||
|
do_lemming_climbing:
|
||||||
|
lda lemming_frame,Y
|
||||||
|
and #3
|
||||||
|
bne not_done_climbing
|
||||||
|
|
||||||
|
; climb
|
||||||
|
tya
|
||||||
|
tax
|
||||||
|
dec lemming_y,X
|
||||||
|
|
||||||
|
; FIXME: if hit roof, fall
|
||||||
|
; FIXME: if hit top, switch to pullup
|
||||||
|
|
||||||
|
not_done_climbing:
|
||||||
|
jmp done_move_lemming
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -421,9 +488,6 @@ done_building:
|
||||||
; placeholders
|
; placeholders
|
||||||
do_lemming_exploding: ; nothing special
|
do_lemming_exploding: ; nothing special
|
||||||
do_lemming_pullup:
|
do_lemming_pullup:
|
||||||
do_lemming_shrugging:
|
|
||||||
do_lemming_stopping: ; nothing special
|
|
||||||
do_lemming_climbing:
|
|
||||||
do_lemming_splatting: ; nothing special
|
do_lemming_splatting: ; nothing special
|
||||||
do_lemming_particles: ; work done in draw
|
do_lemming_particles: ; work done in draw
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user