diff --git a/src/battle_main.c b/src/battle_main.c index 32b93e61d9..fe914eb19d 100644 --- a/src/battle_main.c +++ b/src/battle_main.c @@ -3321,10 +3321,8 @@ void FaintClearSetData(enum BattlerId battler) for (enum Stat i = 0; i < NUM_BATTLE_STATS; i++) gBattleMons[battler].statStages[i] = DEFAULT_STAT_STAGE; - bool32 keepGastroAcid = gBattleMons[battler].volatiles.gastroAcid; bool32 keepTransformed = gBattleMons[battler].volatiles.transformed; memset(&gBattleMons[battler].volatiles, 0, sizeof(struct Volatiles)); - gBattleMons[battler].volatiles.gastroAcid = keepGastroAcid; // Edge case: Keep Gastro Acid if pokemon's ability can have effect after fainting, for example Innards Out. gBattleMons[battler].volatiles.transformed = keepTransformed; // Edge case: Keep Transformed status to prevent triggering FORM_CHANGE_FAINT on transformed mons. for (enum BattlerId i = 0; i < gBattlersCount; i++) diff --git a/src/battle_util.c b/src/battle_util.c index 8f0736af06..ad1ad7152a 100644 --- a/src/battle_util.c +++ b/src/battle_util.c @@ -5695,6 +5695,9 @@ enum HoldEffect GetBattlerHoldEffectInternal(enum BattlerId battler, enum Abilit enum HoldEffect GetBattlerHoldEffectIgnoreNegation(enum BattlerId battler) { + if (gBattleStruct->battlerState[battler].notOnField) + return HOLD_EFFECT_NONE; + gPotentialItemEffectBattler = battler; if (gBattleMons[battler].item == ITEM_ENIGMA_BERRY_E_READER) return gEnigmaBerries[battler].holdEffect;