mirror of
https://github.com/rh-hideout/pokeemerald-expansion.git
synced 2026-04-25 16:28:25 -05:00
Clean up redundant item assignment after it was stolen (#9044)
This commit is contained in:
parent
cbebe2da10
commit
7dca2712ac
|
|
@ -605,7 +605,6 @@ struct BattleStruct
|
|||
void (*savedCallback)(void);
|
||||
u16 chosenItem[MAX_BATTLERS_COUNT];
|
||||
u16 choicedMove[MAX_BATTLERS_COUNT];
|
||||
u16 changedItems[MAX_BATTLERS_COUNT];
|
||||
u8 switchInBattlerCounter;
|
||||
u16 lastTakenMoveFrom[MAX_BATTLERS_COUNT][MAX_BATTLERS_COUNT]; // a 2-D array [target][attacker]
|
||||
union {
|
||||
|
|
|
|||
|
|
@ -121,7 +121,6 @@ enum MoveEndState
|
|||
MOVEEND_MIRROR_HERB,
|
||||
MOVEEND_PICKPOCKET,
|
||||
MOVEEND_THIRD_MOVE_BLOCK,
|
||||
MOVEEND_CHANGED_ITEMS,
|
||||
MOVEEND_CLEAR_BITS,
|
||||
MOVEEND_DANCER,
|
||||
MOVEEND_PURSUIT_NEXT_ACTION,
|
||||
|
|
|
|||
|
|
@ -3929,7 +3929,6 @@ static bool32 DoesAbilityBenefitFromSunOrRain(enum BattlerId battler, enum Abili
|
|||
return (weather & B_WEATHER_RAIN);
|
||||
case ABILITY_HARVEST:
|
||||
if (GetItemPocket(gAiLogicData->items[battler]) != POCKET_BERRIES
|
||||
&& GetItemPocket(gBattleStruct->changedItems[battler]) != POCKET_BERRIES
|
||||
&& GetItemPocket(GetBattlerPartyState(battler)->usedHeldItem) != POCKET_BERRIES)
|
||||
{
|
||||
return FALSE;
|
||||
|
|
|
|||
|
|
@ -3071,7 +3071,6 @@ static void BattleStartClearSetData(void)
|
|||
gPalaceSelectionBattleScripts[i] = 0;
|
||||
gBattleStruct->lastTakenMove[i] = MOVE_NONE;
|
||||
gBattleStruct->choicedMove[i] = MOVE_NONE;
|
||||
gBattleStruct->changedItems[i] = 0;
|
||||
gBattleStruct->lastTakenMoveFrom[i][0] = MOVE_NONE;
|
||||
gBattleStruct->lastTakenMoveFrom[i][1] = MOVE_NONE;
|
||||
gBattleStruct->lastTakenMoveFrom[i][2] = MOVE_NONE;
|
||||
|
|
|
|||
|
|
@ -2554,8 +2554,7 @@ static enum MoveEndResult MoveEndMoveBlock(void)
|
|||
if (!(GetConfig(CONFIG_STEAL_WILD_ITEMS) >= GEN_9
|
||||
&& !(gBattleTypeFlags & (BATTLE_TYPE_TRAINER | BATTLE_TYPE_PALACE))))
|
||||
{
|
||||
gBattleMons[gBattlerAttacker].item = ITEM_NONE; // Item assigned later on with thief (see MOVEEND_CHANGED_ITEMS)
|
||||
gBattleStruct->changedItems[gBattlerAttacker] = gLastUsedItem; // Stolen item to be assigned later
|
||||
gBattleMons[gBattlerAttacker].item = gLastUsedItem;
|
||||
}
|
||||
gEffectBattler = gBattlerTarget;
|
||||
BattleScriptCall(BattleScript_ItemSteal);
|
||||
|
|
@ -3225,21 +3224,6 @@ static enum MoveEndResult MoveEndThirdMoveBlock(void)
|
|||
return result;
|
||||
}
|
||||
|
||||
static enum MoveEndResult MoveEndChangedItems(void)
|
||||
{
|
||||
for (enum BattlerId battler = 0; battler < gBattlersCount; battler++)
|
||||
{
|
||||
if (gBattleStruct->changedItems[battler] != ITEM_NONE)
|
||||
{
|
||||
gBattleMons[battler].item = gBattleStruct->changedItems[battler];
|
||||
gBattleStruct->changedItems[battler] = ITEM_NONE;
|
||||
}
|
||||
}
|
||||
|
||||
gBattleScripting.moveendState++;
|
||||
return MOVEEND_RESULT_CONTINUE;
|
||||
}
|
||||
|
||||
static bool32 ShouldSetStompingTantrumTimer(void)
|
||||
{
|
||||
u32 numNotAffectedTargets = 0;
|
||||
|
|
@ -3459,7 +3443,6 @@ static enum MoveEndResult (*const sMoveEndHandlers[])(void) =
|
|||
[MOVEEND_MIRROR_HERB] = MoveEndMirrorHerb,
|
||||
[MOVEEND_PICKPOCKET] = MoveEndPickpocket,
|
||||
[MOVEEND_THIRD_MOVE_BLOCK] = MoveEndThirdMoveBlock,
|
||||
[MOVEEND_CHANGED_ITEMS] = MoveEndChangedItems,
|
||||
[MOVEEND_CLEAR_BITS] = MoveEndClearBits,
|
||||
[MOVEEND_DANCER] = MoveEndDancer,
|
||||
[MOVEEND_PURSUIT_NEXT_ACTION] = MoveEndPursuitNextAction,
|
||||
|
|
|
|||
|
|
@ -13105,7 +13105,6 @@ void BS_TryRecycleBerry(void)
|
|||
NATIVE_ARGS(const u8 *failInstr);
|
||||
u16 *usedHeldItem = &GetBattlerPartyState(gBattlerTarget)->usedHeldItem;
|
||||
if (gBattleMons[gBattlerTarget].item == ITEM_NONE
|
||||
&& gBattleStruct->changedItems[gBattlerTarget] == ITEM_NONE // Will not inherit an item
|
||||
&& GetItemPocket(*usedHeldItem) == POCKET_BERRIES)
|
||||
{
|
||||
gLastUsedItem = *usedHeldItem;
|
||||
|
|
|
|||
|
|
@ -3798,7 +3798,6 @@ u32 AbilityBattleEffects(enum AbilityEffect caseID, enum BattlerId battler, enum
|
|||
{
|
||||
case ABILITY_PICKUP:
|
||||
if (gBattleMons[battler].item == ITEM_NONE
|
||||
&& gBattleStruct->changedItems[battler] == ITEM_NONE // Will not inherit an item
|
||||
&& PickupHasValidTarget(battler))
|
||||
{
|
||||
gBattlerTarget = RandomUniformExcept(RNG_PICKUP, 0, gBattlersCount - 1, CantPickupItem);
|
||||
|
|
@ -3810,7 +3809,6 @@ u32 AbilityBattleEffects(enum AbilityEffect caseID, enum BattlerId battler, enum
|
|||
case ABILITY_HARVEST:
|
||||
if ((IsBattlerWeatherAffected(battler, B_WEATHER_SUN) || RandomPercentage(RNG_HARVEST, 50))
|
||||
&& gBattleMons[battler].item == ITEM_NONE
|
||||
&& gBattleStruct->changedItems[battler] == ITEM_NONE // Will not inherit an item
|
||||
&& GetItemPocket(GetBattlerPartyState(battler)->usedHeldItem) == POCKET_BERRIES)
|
||||
{
|
||||
gLastUsedItem = GetBattlerPartyState(battler)->usedHeldItem;
|
||||
|
|
@ -10275,7 +10273,6 @@ bool32 TryTriggerSymbiosis(enum BattlerId battler, u32 ally)
|
|||
bool32 TrySymbiosis(enum BattlerId battler, enum Item itemId, bool32 moveEnd)
|
||||
{
|
||||
if (!gBattleStruct->itemLost[B_SIDE_PLAYER][gBattlerPartyIndexes[battler]].stolen
|
||||
&& gBattleStruct->changedItems[battler] == ITEM_NONE
|
||||
&& GetBattlerHoldEffect(battler) != HOLD_EFFECT_EJECT_BUTTON
|
||||
&& GetBattlerHoldEffect(battler) != HOLD_EFFECT_EJECT_PACK
|
||||
&& (GetConfig(CONFIG_SYMBIOSIS_GEMS) < GEN_7 || !(gSpecialStatuses[battler].gemBoost))
|
||||
|
|
|
|||
|
|
@ -195,7 +195,6 @@ SINGLE_BATTLE_TEST("Pickpocket activates after Sticky Barb transfers")
|
|||
SINGLE_BATTLE_TEST("Pickpocket activates after Thief or Covet steals an item")
|
||||
{
|
||||
u16 move;
|
||||
KNOWN_FAILING;
|
||||
PARAMETRIZE { move = MOVE_THIEF; }
|
||||
PARAMETRIZE { move = MOVE_COVET; }
|
||||
GIVEN {
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user