mirror of
https://github.com/lscharen/iigs-game-engine.git
synced 2025-03-03 01:29:44 +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
|
; 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_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_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_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_VBUFF_4 equ VBUFF_SPRITE_START+3*VBUFF_SPRITE_STEP
|
||||||
HERO_SLOT equ 1
|
HERO_SLOT equ 1
|
||||||
|
|
||||||
@ -145,17 +147,13 @@ HERO_SLOT equ 1
|
|||||||
pea HERO_VBUFF_4
|
pea HERO_VBUFF_4
|
||||||
_GTECreateSpriteStamp
|
_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 PlayerX
|
||||||
pei PlayerY
|
pei PlayerY
|
||||||
pea HERO_SLOT ; Put the player in slot 1
|
|
||||||
_GTEAddSprite
|
_GTEAddSprite
|
||||||
|
|
||||||
pea HERO_SLOT
|
|
||||||
pea $0000
|
|
||||||
pea HERO_VBUFF_1 ; and use this stamp
|
|
||||||
_GTEUpdateSprite
|
|
||||||
|
|
||||||
EvtLoop
|
EvtLoop
|
||||||
pha
|
pha
|
||||||
_GTEReadControl
|
_GTEReadControl
|
||||||
|
25
src/Tool.s
25
src/Tool.s
@ -314,7 +314,7 @@ TSPtr equ FirstParam
|
|||||||
|
|
||||||
_TSExit #0;#4
|
_TSExit #0;#4
|
||||||
|
|
||||||
; CreateSpriteStamp(spriteId: Word, vbuffAddr: Word)
|
; CreateSpriteStamp(spriteDescriptor: Word, vbuffAddr: Word)
|
||||||
_TSCreateSpriteStamp
|
_TSCreateSpriteStamp
|
||||||
:vbuff equ FirstParam
|
:vbuff equ FirstParam
|
||||||
:spriteId equ FirstParam+2
|
:spriteId equ FirstParam+2
|
||||||
@ -328,11 +328,13 @@ _TSCreateSpriteStamp
|
|||||||
|
|
||||||
_TSExit #0;#4
|
_TSExit #0;#4
|
||||||
|
|
||||||
|
; AddSprite(spriteSlot, spriteFlags, vbuff, spriteX, spriteY)
|
||||||
_TSAddSprite
|
_TSAddSprite
|
||||||
:spriteSlot equ FirstParam+0
|
:spriteY equ FirstParam+0
|
||||||
:spriteY equ FirstParam+2
|
:spriteX equ FirstParam+2
|
||||||
:spriteX equ FirstParam+4
|
:vbuff equ FirstParam+4
|
||||||
:spriteId equ FirstParam+6
|
:spriteFlags equ FirstParam+6
|
||||||
|
:spriteSlot equ FirstParam+8
|
||||||
|
|
||||||
_TSEntry
|
_TSEntry
|
||||||
|
|
||||||
@ -348,11 +350,19 @@ _TSAddSprite
|
|||||||
lda :spriteSlot,s
|
lda :spriteSlot,s
|
||||||
tax
|
tax
|
||||||
|
|
||||||
lda :spriteId,s
|
lda :spriteFlags,s
|
||||||
jsr _AddSprite
|
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
|
_TSMoveSprite
|
||||||
:spriteY equ FirstParam+0
|
:spriteY equ FirstParam+0
|
||||||
:spriteX equ FirstParam+2
|
:spriteX equ FirstParam+2
|
||||||
@ -368,6 +378,7 @@ _TSMoveSprite
|
|||||||
|
|
||||||
_TSExit #0;#6
|
_TSExit #0;#6
|
||||||
|
|
||||||
|
; UpdateSprite(spriteSlot, spriteFlags, vbuff)
|
||||||
_TSUpdateSprite
|
_TSUpdateSprite
|
||||||
:vbuff equ FirstParam+0
|
:vbuff equ FirstParam+0
|
||||||
:spriteFlags equ FirstParam+2
|
:spriteFlags equ FirstParam+2
|
||||||
|
Loading…
x
Reference in New Issue
Block a user