mirror of
https://github.com/deater/dos33fsprogs.git
synced 2024-06-12 11:29:37 +00:00
lemm: jump table for assigning jobs
This commit is contained in:
parent
37b11038c9
commit
6e1acc7e87
|
@ -224,46 +224,31 @@ return_check_lemming:
|
||||||
jsr click_speaker
|
jsr click_speaker
|
||||||
|
|
||||||
lda BUTTON_LOCATION
|
lda BUTTON_LOCATION
|
||||||
cmp #1
|
tax
|
||||||
beq make_climber
|
|
||||||
cmp #2
|
|
||||||
beq make_floater
|
|
||||||
cmp #3
|
|
||||||
beq make_exploding
|
|
||||||
cmp #4
|
|
||||||
beq make_stopper
|
|
||||||
cmp #5
|
|
||||||
beq make_builder
|
|
||||||
cmp #6
|
|
||||||
beq make_basher
|
|
||||||
cmp #7
|
|
||||||
beq make_miner
|
|
||||||
cmp #8
|
|
||||||
beq make_digger
|
|
||||||
bne done_keypress
|
|
||||||
|
|
||||||
make_climber:
|
lda button_jump_h,X
|
||||||
jsr make_climber_routine
|
pha
|
||||||
jmp done_keypress
|
lda button_jump_l,X
|
||||||
make_floater:
|
pha
|
||||||
jsr make_floater_routine
|
rts ; jump to it
|
||||||
jmp done_keypress
|
|
||||||
make_exploding:
|
|
||||||
jsr make_exploding_routine
|
|
||||||
jmp done_keypress
|
|
||||||
make_stopper:
|
|
||||||
jsr make_stopper_routine
|
|
||||||
jmp done_keypress
|
|
||||||
make_builder:
|
|
||||||
jmp done_keypress
|
|
||||||
make_basher:
|
|
||||||
jmp done_keypress
|
|
||||||
make_miner:
|
|
||||||
jmp done_keypress
|
|
||||||
make_digger:
|
|
||||||
jsr make_digger_routine
|
|
||||||
jmp done_keypress
|
|
||||||
|
|
||||||
|
; cmp #1
|
||||||
|
; beq make_climber
|
||||||
|
; cmp #2
|
||||||
|
; beq make_floater
|
||||||
|
; cmp #3
|
||||||
|
; beq make_exploding
|
||||||
|
; cmp #4
|
||||||
|
; beq make_stopper
|
||||||
|
; cmp #5
|
||||||
|
; beq make_builder
|
||||||
|
; cmp #6
|
||||||
|
; beq make_basher
|
||||||
|
; cmp #7
|
||||||
|
; beq make_miner
|
||||||
|
; cmp #8
|
||||||
|
; beq make_digger
|
||||||
|
; bne done_keypress
|
||||||
|
|
||||||
|
|
||||||
not_over_lemming:
|
not_over_lemming:
|
||||||
|
@ -278,56 +263,63 @@ no_keypress:
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
;========================
|
button_jump_l:
|
||||||
; make digger
|
.byte $0
|
||||||
;========================
|
.byte <(make_climber-1)
|
||||||
make_digger_routine:
|
.byte <(make_floater-1)
|
||||||
|
.byte <(make_exploding-1)
|
||||||
|
.byte <(make_stopper-1)
|
||||||
|
.byte <(make_builder-1)
|
||||||
|
.byte <(make_basher-1)
|
||||||
|
.byte <(make_miner-1)
|
||||||
|
.byte <(make_digger-1)
|
||||||
|
|
||||||
; only do it if walking
|
button_jump_h:
|
||||||
lda lemming_status,Y
|
.byte $0
|
||||||
cmp #LEMMING_WALKING
|
.byte >(make_climber-1)
|
||||||
bne done_make_digger
|
.byte >(make_floater-1)
|
||||||
|
.byte >(make_exploding-1)
|
||||||
|
.byte >(make_stopper-1)
|
||||||
|
.byte >(make_builder-1)
|
||||||
|
.byte >(make_basher-1)
|
||||||
|
.byte >(make_miner-1)
|
||||||
|
.byte >(make_digger-1)
|
||||||
|
|
||||||
lda #LEMMING_DIGGING
|
|
||||||
sta lemming_status,Y
|
|
||||||
|
|
||||||
; FIXME: decrement digger_count
|
|
||||||
done_make_digger:
|
|
||||||
rts
|
|
||||||
|
|
||||||
;========================
|
|
||||||
; make exploding
|
|
||||||
;========================
|
|
||||||
make_exploding_routine:
|
|
||||||
|
|
||||||
lda #1
|
|
||||||
sta lemming_exploding,Y
|
|
||||||
rts
|
|
||||||
|
|
||||||
;========================
|
;========================
|
||||||
; make climber
|
; make climber
|
||||||
;========================
|
;========================
|
||||||
make_climber_routine:
|
make_climber:
|
||||||
|
|
||||||
lda #LEMMING_CLIMBER
|
lda #LEMMING_CLIMBER
|
||||||
ora lemming_attribute,Y
|
ora lemming_attribute,Y
|
||||||
sta lemming_attribute,Y
|
sta lemming_attribute,Y
|
||||||
rts
|
jmp done_keypress
|
||||||
|
|
||||||
;========================
|
;========================
|
||||||
; make floater
|
; make floater
|
||||||
;========================
|
;========================
|
||||||
make_floater_routine:
|
make_floater:
|
||||||
|
|
||||||
lda #LEMMING_FLOATER
|
lda #LEMMING_FLOATER
|
||||||
ora lemming_attribute,Y
|
ora lemming_attribute,Y
|
||||||
sta lemming_attribute,Y
|
sta lemming_attribute,Y
|
||||||
rts
|
jmp done_keypress
|
||||||
|
|
||||||
|
|
||||||
|
;========================
|
||||||
|
; make exploding
|
||||||
|
;========================
|
||||||
|
make_exploding:
|
||||||
|
lda #1
|
||||||
|
sta lemming_exploding,Y
|
||||||
|
jmp done_keypress
|
||||||
|
|
||||||
|
|
||||||
;========================
|
;========================
|
||||||
; make stopper
|
; make stopper
|
||||||
;========================
|
;========================
|
||||||
make_stopper_routine:
|
make_stopper:
|
||||||
lda lemming_status,Y
|
lda lemming_status,Y
|
||||||
cmp #LEMMING_FLOATER ; can't stop if floating
|
cmp #LEMMING_FLOATER ; can't stop if floating
|
||||||
beq cant_stop
|
beq cant_stop
|
||||||
|
@ -361,7 +353,84 @@ make_stopper_routine:
|
||||||
jsr hgr_vlin_page_toggle
|
jsr hgr_vlin_page_toggle
|
||||||
|
|
||||||
cant_stop:
|
cant_stop:
|
||||||
rts
|
jmp done_keypress
|
||||||
|
|
||||||
|
|
||||||
|
;========================
|
||||||
|
; make builder
|
||||||
|
;========================
|
||||||
|
make_builder:
|
||||||
|
; only do it if walking
|
||||||
|
lda lemming_status,Y
|
||||||
|
cmp #LEMMING_WALKING
|
||||||
|
bne done_make_builder
|
||||||
|
|
||||||
|
lda #LEMMING_BUILDING
|
||||||
|
sta lemming_status,Y
|
||||||
|
|
||||||
|
; FIXME: decrement count
|
||||||
|
done_make_builder:
|
||||||
|
jmp done_keypress
|
||||||
|
|
||||||
|
|
||||||
|
;========================
|
||||||
|
; make basher
|
||||||
|
;========================
|
||||||
|
make_basher:
|
||||||
|
; only do it if walking
|
||||||
|
lda lemming_status,Y
|
||||||
|
cmp #LEMMING_WALKING
|
||||||
|
bne done_make_basher
|
||||||
|
|
||||||
|
lda #LEMMING_BASHING
|
||||||
|
sta lemming_status,Y
|
||||||
|
|
||||||
|
; FIXME: decrement count
|
||||||
|
done_make_basher:
|
||||||
|
jmp done_keypress
|
||||||
|
|
||||||
|
|
||||||
|
;========================
|
||||||
|
; make miner
|
||||||
|
;========================
|
||||||
|
make_miner:
|
||||||
|
; only do it if walking
|
||||||
|
lda lemming_status,Y
|
||||||
|
cmp #LEMMING_WALKING
|
||||||
|
bne done_make_miner
|
||||||
|
|
||||||
|
lda #LEMMING_MINING
|
||||||
|
sta lemming_status,Y
|
||||||
|
|
||||||
|
; FIXME: decrement count
|
||||||
|
done_make_miner:
|
||||||
|
jmp done_keypress
|
||||||
|
|
||||||
|
|
||||||
|
;========================
|
||||||
|
; make digger
|
||||||
|
;========================
|
||||||
|
make_digger:
|
||||||
|
; only do it if walking
|
||||||
|
lda lemming_status,Y
|
||||||
|
cmp #LEMMING_WALKING
|
||||||
|
bne done_make_digger
|
||||||
|
|
||||||
|
lda #LEMMING_DIGGING
|
||||||
|
sta lemming_status,Y
|
||||||
|
|
||||||
|
; FIXME: decrement digger_count
|
||||||
|
done_make_digger:
|
||||||
|
jmp done_keypress
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user