lemm: erase background
This commit is contained in:
parent
914cca35c5
commit
a7b6c84b93
|
@ -1,8 +1,29 @@
|
|||
|
||||
erase_lemming:
|
||||
ldy #0
|
||||
|
||||
lda lemming_out,Y
|
||||
beq done_erase_lemming
|
||||
|
||||
lda lemming_y,Y
|
||||
sta SAVED_Y1
|
||||
clc
|
||||
adc #8
|
||||
sta SAVED_Y2
|
||||
|
||||
lda lemming_x,Y
|
||||
tax
|
||||
inx
|
||||
jsr hgr_partial_restore
|
||||
|
||||
done_erase_lemming:
|
||||
rts
|
||||
|
||||
|
||||
draw_lemming:
|
||||
ldy #0
|
||||
|
||||
lda lemming_out
|
||||
lda lemming_out,Y
|
||||
beq done_draw_lemming
|
||||
|
||||
lda #<lemming_fall1_sprite
|
||||
|
@ -10,9 +31,9 @@ draw_lemming:
|
|||
lda #>lemming_fall1_sprite
|
||||
sta INH
|
||||
|
||||
ldx lemming_x
|
||||
ldx lemming_x,Y
|
||||
stx XPOS
|
||||
lda lemming_y
|
||||
lda lemming_y,Y
|
||||
sta YPOS
|
||||
|
||||
jsr hgr_draw_sprite
|
||||
|
|
|
@ -0,0 +1,45 @@
|
|||
;=======================
|
||||
; HGR Partial Restore
|
||||
;=======================
|
||||
; loads from $40 (page2)
|
||||
; save to $20 (page1)
|
||||
|
||||
; restores from X = A<=to<=X
|
||||
; Y = SAVED_Y1 to SAVED_Y2
|
||||
|
||||
hgr_partial_restore:
|
||||
sta partial_restore_x1_smc+1
|
||||
stx partial_restore_x2_smc+1
|
||||
|
||||
ldx SAVED_Y2
|
||||
|
||||
partial_restore_yloop:
|
||||
|
||||
lda hposn_low,X
|
||||
sta prx_smc2+1
|
||||
sta prx_smc1+1
|
||||
|
||||
lda hposn_high,X
|
||||
sta prx_smc2+2
|
||||
clc
|
||||
adc #$20
|
||||
sta prx_smc1+2
|
||||
|
||||
partial_restore_x2_smc:
|
||||
ldy #$27
|
||||
partial_restore_xloop:
|
||||
prx_smc1:
|
||||
lda $d000,Y
|
||||
|
||||
prx_smc2:
|
||||
sta $d000,Y
|
||||
dey
|
||||
partial_restore_x1_smc:
|
||||
cpy #$00
|
||||
bpl partial_restore_xloop
|
||||
|
||||
dex
|
||||
cpx SAVED_Y1
|
||||
bcs partial_restore_yloop ; bge
|
||||
|
||||
rts
|
|
@ -357,6 +357,8 @@ done_release_lemmings:
|
|||
sta TIMER_COUNT
|
||||
timer_not_yet:
|
||||
|
||||
jsr erase_lemming
|
||||
|
||||
jsr move_lemmings
|
||||
|
||||
jsr draw_lemming
|
||||
|
@ -439,6 +441,8 @@ load_song_chunk_good:
|
|||
; .include "print_help.s"
|
||||
.include "gr_fast_clear.s"
|
||||
|
||||
.include "hgr_partial_save.s"
|
||||
|
||||
.include "move_lemming.s"
|
||||
.include "draw_lemming.s"
|
||||
|
||||
|
|
|
@ -16,34 +16,26 @@ move_lemmings:
|
|||
do_lemming_falling:
|
||||
inc lemming_y
|
||||
|
||||
lda lemming_y
|
||||
clc
|
||||
adc #9
|
||||
tay
|
||||
|
||||
lda hposn_high,Y
|
||||
sta GBASH
|
||||
lda hposn_low,Y
|
||||
sta GBASL
|
||||
|
||||
ldy lemming_x
|
||||
lda (GBASL),Y
|
||||
and #$7f
|
||||
beq done_move_lemming
|
||||
|
||||
lda #LEMMING_WALKING
|
||||
sta lemming_status
|
||||
jsr collision_check_ground
|
||||
|
||||
jmp done_move_lemming
|
||||
|
||||
|
||||
do_lemming_walking:
|
||||
clc
|
||||
lda lemming_x
|
||||
adc lemming_direction
|
||||
sta lemming_x
|
||||
|
||||
jsr collision_check_ground
|
||||
|
||||
do_lemming_digging:
|
||||
|
||||
done_move_lemming:
|
||||
rts
|
||||
|
||||
lemming_direction:
|
||||
.byte 1
|
||||
|
||||
lemming_x:
|
||||
.byte 12
|
||||
lemming_y:
|
||||
|
@ -62,3 +54,29 @@ lemming_status:
|
|||
|
||||
lemming_job:
|
||||
.byte $00
|
||||
|
||||
|
||||
collision_check_ground:
|
||||
lda lemming_y
|
||||
clc
|
||||
adc #9
|
||||
tay
|
||||
|
||||
lda hposn_high,Y
|
||||
sta GBASH
|
||||
lda hposn_low,Y
|
||||
sta GBASL
|
||||
|
||||
ldy lemming_x
|
||||
lda (GBASL),Y
|
||||
and #$7f
|
||||
beq ground_falling
|
||||
ground_walking:
|
||||
lda #LEMMING_WALKING
|
||||
jmp done_check_ground
|
||||
ground_falling:
|
||||
lda #LEMMING_FALLING
|
||||
done_check_ground:
|
||||
sta lemming_status
|
||||
|
||||
rts
|
||||
|
|
|
@ -63,6 +63,8 @@ OVER_LEMMING = $80
|
|||
TIMER_COUNT = $81
|
||||
UPDATE_POINTER = $82
|
||||
LEMMINGS_TO_RELEASE = $83
|
||||
SAVED_Y1 = $84
|
||||
SAVED_Y2 = $85
|
||||
|
||||
APPLEII_MODEL = $8B
|
||||
|
||||
|
|
Loading…
Reference in New Issue