mirror of
https://gitlab.com/xCrystal/pokecrystal-board.git
synced 2024-11-16 11:27:33 -08:00
Create function to update only secondary sprites to optimize die roll animation (#11)
This commit is contained in:
parent
49a3f6b8c8
commit
8967898bc9
@ -202,7 +202,7 @@ DIE_MAX_NUMBER EQU 6
|
|||||||
add DIE_MAX_NUMBER
|
add DIE_MAX_NUMBER
|
||||||
add $1
|
add $1
|
||||||
ld [wDieRoll], a
|
ld [wDieRoll], a
|
||||||
farcall _UpdateSprites
|
farcall _UpdateSecondarySprites
|
||||||
call GetJoypad
|
call GetJoypad
|
||||||
ldh a, [hJoyPressed]
|
ldh a, [hJoyPressed]
|
||||||
bit B_BUTTON_F, a
|
bit B_BUTTON_F, a
|
||||||
@ -221,6 +221,7 @@ DIE_MAX_NUMBER EQU 6
|
|||||||
ret
|
ret
|
||||||
|
|
||||||
.confirm_roll
|
.confirm_roll
|
||||||
|
call UpdateSprites
|
||||||
ld a, TRUE
|
ld a, TRUE
|
||||||
ld [wScriptVar], a
|
ld [wScriptVar], a
|
||||||
ret
|
ret
|
||||||
@ -270,8 +271,8 @@ BoardMenu_BreakDieAnimation:
|
|||||||
ld a, $8 * SPRITEOAMSTRUCT_LENGTH ; with SPRITE_ANIM_OBJ_BOARD_MENU_APPEAR_DIE_NUMBER
|
ld a, $8 * SPRITEOAMSTRUCT_LENGTH ; with SPRITE_ANIM_OBJ_BOARD_MENU_APPEAR_DIE_NUMBER
|
||||||
jr nz, .go
|
jr nz, .go
|
||||||
ld a, $4 * SPRITEOAMSTRUCT_LENGTH ; w/o SPRITE_ANIM_OBJ_BOARD_MENU_APPEAR_DIE_NUMBER
|
ld a, $4 * SPRITEOAMSTRUCT_LENGTH ; w/o SPRITE_ANIM_OBJ_BOARD_MENU_APPEAR_DIE_NUMBER
|
||||||
ldh [hUsedSpriteIndex], a
|
|
||||||
.go
|
.go
|
||||||
|
ldh [hUsedSpriteIndex], a
|
||||||
farcall _UpdateSpritesAfterOffset
|
farcall _UpdateSpritesAfterOffset
|
||||||
|
|
||||||
ld de, SFX_STRENGTH
|
ld de, SFX_STRENGTH
|
||||||
|
@ -3078,6 +3078,35 @@ InitSprites:
|
|||||||
dw wObject11Struct
|
dw wObject11Struct
|
||||||
dw wObject12Struct
|
dw wObject12Struct
|
||||||
|
|
||||||
|
_UpdateSecondarySprites:
|
||||||
|
; this is a shorter _UpdateSprites for when only secondary sprites have changed since the last sprites update,
|
||||||
|
; but NOT expanded, which would require to displace primary (NPC) sprites in OAM.
|
||||||
|
; if it is detected that the size of secondary sprites has increased in the end,
|
||||||
|
; fall back to calling _UpdateSprites to avoid corruption.
|
||||||
|
ld a, [wVramState]
|
||||||
|
bit 0, a
|
||||||
|
ret z
|
||||||
|
ld a, [hUsedSpriteIndex]
|
||||||
|
push af
|
||||||
|
|
||||||
|
xor a
|
||||||
|
ldh [hUsedSpriteIndex], a
|
||||||
|
.go
|
||||||
|
ldh a, [hOAMUpdate]
|
||||||
|
push af
|
||||||
|
ld a, 1
|
||||||
|
ldh [hOAMUpdate], a
|
||||||
|
call InitSecondarySprites
|
||||||
|
pop af
|
||||||
|
ldh [hOAMUpdate], a
|
||||||
|
|
||||||
|
ldh a, [hUsedSpriteIndex]
|
||||||
|
ld c, a
|
||||||
|
pop af
|
||||||
|
cp c
|
||||||
|
ret nc
|
||||||
|
jp _UpdateSprites
|
||||||
|
|
||||||
InitSecondarySprites:
|
InitSecondarySprites:
|
||||||
ld a, [wDisplaySecondarySprites]
|
ld a, [wDisplaySecondarySprites]
|
||||||
bit SECONDARYSPRITES_BOARD_MENU_F, a
|
bit SECONDARYSPRITES_BOARD_MENU_F, a
|
||||||
|
@ -109,5 +109,5 @@ Level1_Map1_MapEvents:
|
|||||||
object_event 4, 2, SPRITE_CONSOLE, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, Level1_Map1_GameConsoleScript, -1
|
object_event 4, 2, SPRITE_CONSOLE, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, Level1_Map1_GameConsoleScript, -1
|
||||||
object_event 4, 4, SPRITE_DOLL_1, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, Level1_Map1_Doll1Script, -1
|
object_event 4, 4, SPRITE_DOLL_1, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, Level1_Map1_Doll1Script, -1
|
||||||
object_event 5, 4, SPRITE_DOLL_2, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, Level1_Map1_Doll2Script, -1
|
object_event 5, 4, SPRITE_DOLL_2, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, Level1_Map1_Doll2Script, -1
|
||||||
; object_event 0, 1, SPRITE_BIG_DOLL, SPRITEMOVEDATA_BIGDOLL, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, Level1_Map1_BigDollScript, -1
|
object_event 0, 1, SPRITE_BIG_DOLL, SPRITEMOVEDATA_BIGDOLL, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, Level1_Map1_BigDollScript, -1
|
||||||
; object_event 6, 6, SPRITE_YOUNGSTER, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_BLUE, OBJECTTYPE_TRAINER, 1, Level1_Map1_TrainerYoungsterMikey, -1
|
object_event 6, 6, SPRITE_YOUNGSTER, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_BLUE, OBJECTTYPE_TRAINER, 1, Level1_Map1_TrainerYoungsterMikey, -1
|
||||||
|
Loading…
Reference in New Issue
Block a user