mirror of
https://github.com/deater/dos33fsprogs.git
synced 2025-01-01 05:31:52 +00:00
lemm: can select any lemming
This commit is contained in:
parent
a4fe2f7a4f
commit
3e18390ec6
@ -5,8 +5,8 @@
|
||||
|
||||
draw_pointer:
|
||||
|
||||
lda #0
|
||||
sta OVER_LEMMING
|
||||
lda #$FF
|
||||
sta OVER_LEMMING ; first assume not over lemming
|
||||
|
||||
; for now assume the only 14x14 sprites are the pointers
|
||||
|
||||
@ -17,14 +17,20 @@ draw_pointer:
|
||||
|
||||
; see if over lemming
|
||||
|
||||
ldy #0
|
||||
see_if_over_loop:
|
||||
|
||||
lda lemming_out,Y
|
||||
beq no_lemming_try_again
|
||||
|
||||
; see if CURSOR_X==LEMMING_X
|
||||
lda CURSOR_X
|
||||
cmp lemming_x
|
||||
cmp lemming_x,Y
|
||||
beq check_pointer_y
|
||||
clc
|
||||
adc #1
|
||||
cmp lemming_x
|
||||
bne just_crosshair
|
||||
cmp lemming_x,Y
|
||||
bne no_lemming_try_again
|
||||
|
||||
check_pointer_y:
|
||||
; see if CURSOR_Y+7 > lemming_y && CURSOR_Y+7 < lemming_y+9
|
||||
@ -32,19 +38,30 @@ check_pointer_y:
|
||||
lda CURSOR_Y
|
||||
clc
|
||||
adc #7
|
||||
cmp lemming_y
|
||||
bcc just_crosshair
|
||||
cmp lemming_y,Y
|
||||
bcc no_lemming_try_again
|
||||
|
||||
lda CURSOR_Y ; if cursor_y+7 > lemming_y+9
|
||||
sec
|
||||
sbc #2
|
||||
cmp lemming_y
|
||||
bcs just_crosshair
|
||||
cmp lemming_y,Y
|
||||
bcs no_lemming_try_again
|
||||
|
||||
yes_over_lemming:
|
||||
sty OVER_LEMMING
|
||||
jmp yes_yes_lemming
|
||||
|
||||
no_lemming_try_again:
|
||||
iny
|
||||
cpy #MAX_LEMMINGS
|
||||
bne see_if_over_loop
|
||||
|
||||
|
||||
yes_yes_lemming:
|
||||
lda OVER_LEMMING
|
||||
bmi just_crosshair
|
||||
|
||||
just_select:
|
||||
lda #$80
|
||||
sta OVER_LEMMING
|
||||
|
||||
lda #<select_sprite_l
|
||||
sta INL
|
||||
|
@ -215,7 +215,9 @@ return_pressed:
|
||||
; next check if over lemming
|
||||
return_check_lemming:
|
||||
lda OVER_LEMMING
|
||||
bpl not_over_lemming
|
||||
bmi not_over_lemming
|
||||
|
||||
tay
|
||||
|
||||
; check if digging selected
|
||||
|
||||
@ -228,7 +230,7 @@ return_check_lemming:
|
||||
jsr click_speaker
|
||||
|
||||
lda #LEMMING_DIGGING
|
||||
sta lemming_status
|
||||
sta lemming_status,Y
|
||||
|
||||
jmp done_keypress
|
||||
|
||||
@ -297,24 +299,56 @@ job_button:
|
||||
jsr update_menu
|
||||
jmp done_menu
|
||||
|
||||
|
||||
;============================
|
||||
;============================
|
||||
; plus/minus button
|
||||
;============================
|
||||
;============================
|
||||
plus_minus_buttons:
|
||||
; TODO
|
||||
jmp done_menu
|
||||
|
||||
;============================
|
||||
;============================
|
||||
; nuke
|
||||
;============================
|
||||
;============================
|
||||
; TODO: offset them a bit so it's not simultaneous
|
||||
; FIXME: also stop more from coming out the door
|
||||
|
||||
nuke_button:
|
||||
lda #1
|
||||
sta lemming_exploding
|
||||
ldy #0
|
||||
nuke_loop:
|
||||
sta lemming_exploding,Y
|
||||
iny
|
||||
cpy #MAX_LEMMINGS
|
||||
bne nuke_loop
|
||||
|
||||
jmp done_menu
|
||||
|
||||
;============================
|
||||
;============================
|
||||
; map grid
|
||||
;============================
|
||||
;============================
|
||||
|
||||
map_grid_button:
|
||||
; TODO
|
||||
jmp done_menu
|
||||
|
||||
;============================
|
||||
;============================
|
||||
; pause
|
||||
;============================
|
||||
;============================
|
||||
; FIXME: should stop clock too
|
||||
pause_button:
|
||||
|
||||
bit KEYRESET
|
||||
jsr wait_until_keypress
|
||||
|
||||
|
||||
done_menu:
|
||||
|
||||
rts
|
||||
|
@ -143,7 +143,7 @@ do_level1:
|
||||
; Setup cursor
|
||||
;=======================
|
||||
|
||||
lda #0
|
||||
lda #$FF
|
||||
sta OVER_LEMMING
|
||||
lda #10
|
||||
sta CURSOR_X
|
||||
|
@ -144,7 +144,7 @@ do_level2:
|
||||
; Setup cursor
|
||||
;=======================
|
||||
|
||||
lda #0
|
||||
lda #$FF
|
||||
sta OVER_LEMMING
|
||||
lda #10
|
||||
sta CURSOR_X
|
||||
|
@ -145,7 +145,7 @@ do_level3:
|
||||
; Setup cursor
|
||||
;=======================
|
||||
|
||||
lda #0
|
||||
lda #$FF
|
||||
sta OVER_LEMMING
|
||||
lda #10
|
||||
sta CURSOR_X
|
||||
|
@ -145,7 +145,7 @@ do_level4:
|
||||
; Setup cursor
|
||||
;=======================
|
||||
|
||||
lda #0
|
||||
lda #$FF
|
||||
sta OVER_LEMMING
|
||||
lda #10
|
||||
sta CURSOR_X
|
||||
|
@ -126,7 +126,7 @@ do_level5:
|
||||
; Setup cursor
|
||||
;=======================
|
||||
|
||||
lda #0
|
||||
lda #$FF
|
||||
sta OVER_LEMMING
|
||||
lda #10
|
||||
sta CURSOR_X
|
||||
|
@ -212,12 +212,7 @@ remove_lemming:
|
||||
|
||||
bcc didnt_exit
|
||||
|
||||
sed ; decrement BCD value
|
||||
lda LEMMINGS_OUT
|
||||
sec
|
||||
sbc #1
|
||||
sta LEMMINGS_OUT
|
||||
|
||||
sed
|
||||
lda PERCENT_RESCUED_L
|
||||
clc
|
||||
adc PERCENT_ADD
|
||||
@ -226,12 +221,19 @@ remove_lemming:
|
||||
|
||||
inc PERCENT_RESCUED_H
|
||||
|
||||
no_percent_oflo:
|
||||
|
||||
cld
|
||||
|
||||
no_percent_oflo:
|
||||
|
||||
didnt_exit:
|
||||
|
||||
sed ; decrement BCD value
|
||||
lda LEMMINGS_OUT
|
||||
sec
|
||||
sbc #1
|
||||
sta LEMMINGS_OUT
|
||||
cld
|
||||
|
||||
jsr click_speaker
|
||||
|
||||
lda #0
|
||||
@ -281,7 +283,7 @@ ground_walking:
|
||||
ldy CURRENT_LEMMING
|
||||
|
||||
lda lemming_fall_distance,Y
|
||||
cmp #16
|
||||
cmp #32
|
||||
bcs lemming_goes_splat
|
||||
|
||||
lda #0
|
||||
|
Loading…
Reference in New Issue
Block a user