mirror of
https://github.com/lscharen/iigs-game-engine.git
synced 2025-03-02 10:29:01 +00:00
Add additional parameter to AddSprite to avoid needing to call UpdateSprite immediately
This commit is contained in:
parent
2e578148d9
commit
d332783c85
@ -119,13 +119,15 @@ SpriteCount equ 50
|
||||
|
||||
; Create the sprites
|
||||
|
||||
HERO_FRAME_1 equ {SPRITE_16X16+145}
|
||||
HERO_SIZE equ {SPRITE_16X16}
|
||||
HERO_FLAGS equ HERO_SIZE ; no extra H/V bits for now
|
||||
HERO_FRAME_1 equ HERO_SIZE+145
|
||||
HERO_VBUFF_1 equ VBUFF_SPRITE_START+0*VBUFF_SPRITE_STEP
|
||||
HERO_FRAME_2 equ {SPRITE_16X16+147}
|
||||
HERO_FRAME_2 equ HERO_SIZE+147
|
||||
HERO_VBUFF_2 equ VBUFF_SPRITE_START+1*VBUFF_SPRITE_STEP
|
||||
HERO_FRAME_3 equ {SPRITE_16X16+149}
|
||||
HERO_FRAME_3 equ HERO_SIZE+149
|
||||
HERO_VBUFF_3 equ VBUFF_SPRITE_START+2*VBUFF_SPRITE_STEP
|
||||
HERO_FRAME_4 equ {SPRITE_16X16+151}
|
||||
HERO_FRAME_4 equ HERO_SIZE+151
|
||||
HERO_VBUFF_4 equ VBUFF_SPRITE_START+3*VBUFF_SPRITE_STEP
|
||||
HERO_SLOT equ 1
|
||||
|
||||
@ -145,17 +147,13 @@ HERO_SLOT equ 1
|
||||
pea HERO_VBUFF_4
|
||||
_GTECreateSpriteStamp
|
||||
|
||||
pea HERO_FRAME_1
|
||||
pea HERO_SLOT ; Put the player in slot 1
|
||||
pea HERO_FLAGS
|
||||
pea HERO_VBUFF_1 ; and use this stamp
|
||||
pei PlayerX
|
||||
pei PlayerY
|
||||
pea HERO_SLOT ; Put the player in slot 1
|
||||
_GTEAddSprite
|
||||
|
||||
pea HERO_SLOT
|
||||
pea $0000
|
||||
pea HERO_VBUFF_1 ; and use this stamp
|
||||
_GTEUpdateSprite
|
||||
|
||||
EvtLoop
|
||||
pha
|
||||
_GTEReadControl
|
||||
|
25
src/Tool.s
25
src/Tool.s
@ -314,7 +314,7 @@ TSPtr equ FirstParam
|
||||
|
||||
_TSExit #0;#4
|
||||
|
||||
; CreateSpriteStamp(spriteId: Word, vbuffAddr: Word)
|
||||
; CreateSpriteStamp(spriteDescriptor: Word, vbuffAddr: Word)
|
||||
_TSCreateSpriteStamp
|
||||
:vbuff equ FirstParam
|
||||
:spriteId equ FirstParam+2
|
||||
@ -328,11 +328,13 @@ _TSCreateSpriteStamp
|
||||
|
||||
_TSExit #0;#4
|
||||
|
||||
; AddSprite(spriteSlot, spriteFlags, vbuff, spriteX, spriteY)
|
||||
_TSAddSprite
|
||||
:spriteSlot equ FirstParam+0
|
||||
:spriteY equ FirstParam+2
|
||||
:spriteX equ FirstParam+4
|
||||
:spriteId equ FirstParam+6
|
||||
:spriteY equ FirstParam+0
|
||||
:spriteX equ FirstParam+2
|
||||
:vbuff equ FirstParam+4
|
||||
:spriteFlags equ FirstParam+6
|
||||
:spriteSlot equ FirstParam+8
|
||||
|
||||
_TSEntry
|
||||
|
||||
@ -348,11 +350,19 @@ _TSAddSprite
|
||||
lda :spriteSlot,s
|
||||
tax
|
||||
|
||||
lda :spriteId,s
|
||||
lda :spriteFlags,s
|
||||
jsr _AddSprite
|
||||
|
||||
_TSExit #0;#8
|
||||
lda :spriteFlags,s
|
||||
tax
|
||||
lda :vbuff,s
|
||||
tay
|
||||
lda :spriteSlot,s
|
||||
jsr _UpdateSprite
|
||||
|
||||
_TSExit #0;#10
|
||||
|
||||
; MoveSprite(spriteSlot, x, y)
|
||||
_TSMoveSprite
|
||||
:spriteY equ FirstParam+0
|
||||
:spriteX equ FirstParam+2
|
||||
@ -368,6 +378,7 @@ _TSMoveSprite
|
||||
|
||||
_TSExit #0;#6
|
||||
|
||||
; UpdateSprite(spriteSlot, spriteFlags, vbuff)
|
||||
_TSUpdateSprite
|
||||
:vbuff equ FirstParam+0
|
||||
:spriteFlags equ FirstParam+2
|
||||
|
Loading…
x
Reference in New Issue
Block a user