dos33fsprogs/games/lemm/release_lemming.s

73 lines
1.1 KiB
ArmAsm
Raw Normal View History

;=======================
; Clear Lemmings Out
;=======================
clear_lemmings_out:
lda #0
ldy #0
clear_lemmings_loop:
sta lemming_out,Y
iny
2022-03-22 03:00:30 +00:00
cpy #MAX_LEMMINGS
bne clear_lemmings_loop
rts
;=======================
2022-03-22 03:00:30 +00:00
; Release Lemmings
;=======================
release_lemming:
2022-03-22 03:00:30 +00:00
; don't release if we've released them all
lda LEMMINGS_TO_RELEASE
beq done_release_lemmings
; don't release if door is still opening
lda DOOR_OPEN
beq done_release_lemmings
; only release every X frames
lda FRAMEL
2022-03-24 01:49:58 +00:00
release_lemming_speed:
2022-03-22 03:00:30 +00:00
and #$f
bne done_release_lemmings
ldy NEXT_LEMMING_TO_RELEASE
lda #1
sta lemming_out,Y
lda #0
sta lemming_exploding,Y
2022-03-23 01:10:57 +00:00
sta lemming_fall_distance,Y
2022-03-25 00:27:20 +00:00
sta lemming_attribute,Y
lda INIT_X
sta lemming_x,Y
lda INIT_Y
sta lemming_y,Y
lda #LEMMING_RIGHT
sta lemming_direction,Y
lda #LEMMING_FALLING
sta lemming_status,Y
2022-03-22 03:00:30 +00:00
sed
lda LEMMINGS_OUT ; BCD
clc
adc #1
sta LEMMINGS_OUT
cld
jsr update_lemmings_out
2022-03-22 03:00:30 +00:00
inc NEXT_LEMMING_TO_RELEASE
dec LEMMINGS_TO_RELEASE
2022-03-22 03:00:30 +00:00
done_release_lemmings:
rts