Fix wrong gimmick spite showing when inputting too fast (#8066)

This commit is contained in:
FosterProgramming 2025-10-28 17:02:35 +01:00 committed by GitHub
parent 6faf35dde9
commit b82a5a4c1c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 10 additions and 0 deletions

View File

@ -35,6 +35,7 @@ void SetGimmickAsActivated(u32 battler, enum Gimmick gimmick);
void ChangeGimmickTriggerSprite(u32 spriteId, u32 animId);
void CreateGimmickTriggerSprite(u32 battler);
bool32 IsGimmickTriggerSpriteActive(void);
bool32 IsGimmickTriggerSpriteMatchingBattler(u32 battler);
void HideGimmickTriggerSprite(void);
void DestroyGimmickTriggerSprite(void);

View File

@ -2090,6 +2090,8 @@ void PlayerHandleChooseMove(u32 battler)
if (!IsGimmickTriggerSpriteActive())
gBattleStruct->gimmick.triggerSpriteId = 0xFF;
else if (!IsGimmickTriggerSpriteMatchingBattler(battler))
DestroyGimmickTriggerSprite();
if (!(gBattleStruct->gimmick.usableGimmick[battler] == GIMMICK_Z_MOVE && !gBattleStruct->zmove.viable))
CreateGimmickTriggerSprite(battler);

View File

@ -178,6 +178,13 @@ bool32 IsGimmickTriggerSpriteActive(void)
return FALSE;
}
bool32 IsGimmickTriggerSpriteMatchingBattler(u32 battler)
{
if (battler == gSprites[gBattleStruct->gimmick.triggerSpriteId].tBattler)
return TRUE;
return FALSE;
}
void HideGimmickTriggerSprite(void)
{
if (gBattleStruct->gimmick.triggerSpriteId != 0xFF)