mirror of
https://github.com/lscharen/iigs-game-engine.git
synced 2024-11-16 01:12:14 +00:00
Add external entry point to the erase function
This commit is contained in:
parent
7ec1b8bc29
commit
0a7d9e15c7
21
src/Sprite.s
21
src/Sprite.s
@ -46,9 +46,16 @@ _RenderSprites
|
|||||||
; from.
|
; from.
|
||||||
:render
|
:render
|
||||||
stx tmp0 ; stash the X register
|
stx tmp0 ; stash the X register
|
||||||
; jsr _EraseSprite ; erase from the old position
|
|
||||||
ldx tmp0
|
txy
|
||||||
|
ldx _Sprites+OLD_VBUFF_ADDR,y
|
||||||
|
jsr _EraseTileSprite ; erase from the old position
|
||||||
|
|
||||||
|
ldx _Sprites+VBUFF_ADDR,y
|
||||||
|
lda _Sprites+TILE_DATA_OFFSET,y
|
||||||
|
tay
|
||||||
jsr _DrawTileSprite ; draw the sprite into the sprite plane
|
jsr _DrawTileSprite ; draw the sprite into the sprite plane
|
||||||
|
ldx tmp0
|
||||||
|
|
||||||
ldy #0 ; flags to mark if the sprite is aligned to the code field grid or not
|
ldy #0 ; flags to mark if the sprite is aligned to the code field grid or not
|
||||||
|
|
||||||
@ -334,14 +341,14 @@ _DrawTileSprite
|
|||||||
; Erase is easy -- set an 8x8 area of the data region to all $0000 and the corresponding mask
|
; Erase is easy -- set an 8x8 area of the data region to all $0000 and the corresponding mask
|
||||||
; resgion to all $FFFF
|
; resgion to all $FFFF
|
||||||
;
|
;
|
||||||
; A = sprite ID
|
; X = address is sprite plane -- erases an 8x8 region
|
||||||
SPRITE_PLANE_SPAN equ 256
|
SPRITE_PLANE_SPAN equ 256
|
||||||
|
|
||||||
_EraseSprite
|
EraseTileSprite ENT
|
||||||
asl
|
jsr _EraseTileSprite
|
||||||
tay
|
rtl
|
||||||
ldx _Sprites+OLD_VBUFF_ADDR,y
|
|
||||||
|
|
||||||
|
_EraseTileSprite
|
||||||
phb ; Save the bank to switch to the sprite plane
|
phb ; Save the bank to switch to the sprite plane
|
||||||
|
|
||||||
pea #^spritedata
|
pea #^spritedata
|
||||||
|
Loading…
Reference in New Issue
Block a user