summaryrefslogtreecommitdiff
path: root/src/battle_ai_switch_items.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/battle_ai_switch_items.c')
-rw-r--r--src/battle_ai_switch_items.c43
1 files changed, 22 insertions, 21 deletions
diff --git a/src/battle_ai_switch_items.c b/src/battle_ai_switch_items.c
index 1663c2561..04122b17d 100644
--- a/src/battle_ai_switch_items.c
+++ b/src/battle_ai_switch_items.c
@@ -62,7 +62,7 @@ static bool8 ShouldSwitchIfWonderGuard(void)
}
// Get party information.
- if (gBattleTypeFlags & (BATTLE_TYPE_TWO_OPPONENTS | BATTLE_TYPE_x800000))
+ if (gBattleTypeFlags & (BATTLE_TYPE_TWO_OPPONENTS | BATTLE_TYPE_TOWER_LINK_MULTI))
{
if ((gActiveBattler & BIT_FLANK) == B_FLANK_LEFT)
firstId = 0, lastId = 3;
@@ -158,7 +158,7 @@ static bool8 FindMonThatAbsorbsOpponentsMove(void)
if (gBattleMons[gActiveBattler].ability == absorbingTypeAbility)
return FALSE;
- if (gBattleTypeFlags & (BATTLE_TYPE_TWO_OPPONENTS | BATTLE_TYPE_x800000))
+ if (gBattleTypeFlags & (BATTLE_TYPE_TWO_OPPONENTS | BATTLE_TYPE_TOWER_LINK_MULTI))
{
if ((gActiveBattler & BIT_FLANK) == B_FLANK_LEFT)
firstId = 0, lastId = 3;
@@ -353,7 +353,7 @@ static bool8 FindMonWithFlagsAndSuperEffective(u8 flags, u8 moduloPercent)
battlerIn2 = gActiveBattler;
}
- if (gBattleTypeFlags & (BATTLE_TYPE_TWO_OPPONENTS | BATTLE_TYPE_x800000))
+ if (gBattleTypeFlags & (BATTLE_TYPE_TWO_OPPONENTS | BATTLE_TYPE_TOWER_LINK_MULTI))
{
if ((gActiveBattler & BIT_FLANK) == 0)
firstId = 0, lastId = 3;
@@ -464,7 +464,7 @@ static bool8 ShouldSwitch(void)
battlerIn2 = *activeBattlerPtr;
}
- if (gBattleTypeFlags & (BATTLE_TYPE_TWO_OPPONENTS | BATTLE_TYPE_x800000))
+ if (gBattleTypeFlags & (BATTLE_TYPE_TWO_OPPONENTS | BATTLE_TYPE_TOWER_LINK_MULTI))
{
if ((gActiveBattler & BIT_FLANK) == B_FLANK_LEFT)
firstId = 0, lastId = 3;
@@ -555,7 +555,7 @@ void AI_TrySwitchOrUseItem(void)
battlerIn2 = GetBattlerAtPosition(battlerIdentity ^ BIT_FLANK);
}
- if (gBattleTypeFlags & (BATTLE_TYPE_TWO_OPPONENTS | BATTLE_TYPE_x800000))
+ if (gBattleTypeFlags & (BATTLE_TYPE_TWO_OPPONENTS | BATTLE_TYPE_TOWER_LINK_MULTI))
{
if ((gActiveBattler & BIT_FLANK) == B_FLANK_LEFT)
firstId = 0, lastId = 3;
@@ -661,7 +661,7 @@ u8 GetMostSuitableMonToSwitchInto(void)
battlerIn2 = gActiveBattler;
}
- if (gBattleTypeFlags & (BATTLE_TYPE_TWO_OPPONENTS | BATTLE_TYPE_x800000))
+ if (gBattleTypeFlags & (BATTLE_TYPE_TWO_OPPONENTS | BATTLE_TYPE_TOWER_LINK_MULTI))
{
if ((gActiveBattler & BIT_FLANK) == B_FLANK_LEFT)
firstId = 0, lastId = 3;
@@ -789,7 +789,7 @@ static u8 GetAI_ItemType(u8 itemId, const u8 *itemEffect) // NOTE: should take u
else if (itemEffect[0] & (ITEM0_DIRE_HIT | ITEM0_X_ATTACK) || itemEffect[1] != 0 || itemEffect[2] != 0)
return AI_ITEM_X_STAT;
else if (itemEffect[3] & ITEM3_GUARD_SPEC)
- return AI_ITEM_GUARD_SPECS;
+ return AI_ITEM_GUARD_SPEC;
else
return AI_ITEM_NOT_RECOGNIZABLE;
}
@@ -863,32 +863,33 @@ static bool8 ShouldUseItem(void)
*(gBattleStruct->AI_itemFlags + gActiveBattler / 2) = 0;
if (itemEffects[3] & ITEM3_SLEEP && gBattleMons[gActiveBattler].status1 & STATUS1_SLEEP)
{
- *(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= 0x20;
+ *(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= (1 << AI_HEAL_SLEEP);
shouldUse = TRUE;
}
- if (itemEffects[3] & ITEM3_POISON && (gBattleMons[gActiveBattler].status1 & STATUS1_POISON || gBattleMons[gActiveBattler].status1 & STATUS1_TOXIC_POISON))
+ if (itemEffects[3] & ITEM3_POISON && (gBattleMons[gActiveBattler].status1 & STATUS1_POISON
+ || gBattleMons[gActiveBattler].status1 & STATUS1_TOXIC_POISON))
{
- *(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= 0x10;
+ *(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= (1 << AI_HEAL_POISON);
shouldUse = TRUE;
}
if (itemEffects[3] & ITEM3_BURN && gBattleMons[gActiveBattler].status1 & STATUS1_BURN)
{
- *(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= 0x8;
+ *(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= (1 << AI_HEAL_BURN);
shouldUse = TRUE;
}
if (itemEffects[3] & ITEM3_FREEZE && gBattleMons[gActiveBattler].status1 & STATUS1_FREEZE)
{
- *(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= 0x4;
+ *(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= (1 << AI_HEAL_FREEZE);
shouldUse = TRUE;
}
if (itemEffects[3] & ITEM3_PARALYSIS && gBattleMons[gActiveBattler].status1 & STATUS1_PARALYSIS)
{
- *(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= 0x2;
+ *(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= (1 << AI_HEAL_PARALYSIS);
shouldUse = TRUE;
}
if (itemEffects[3] & ITEM3_CONFUSION && gBattleMons[gActiveBattler].status2 & STATUS2_CONFUSION)
{
- *(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= 0x1;
+ *(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= (1 << AI_HEAL_CONFUSION);
shouldUse = TRUE;
}
break;
@@ -897,20 +898,20 @@ static bool8 ShouldUseItem(void)
if (gDisableStructs[gActiveBattler].isFirstTurn == 0)
break;
if (itemEffects[0] & ITEM0_X_ATTACK)
- *(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= 0x1;
+ *(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= (1 << AI_X_ATTACK);
if (itemEffects[1] & ITEM1_X_DEFEND)
- *(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= 0x2;
+ *(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= (1 << AI_X_DEFEND);
if (itemEffects[1] & ITEM1_X_SPEED)
- *(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= 0x4;
+ *(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= (1 << AI_X_SPEED);
if (itemEffects[2] & ITEM2_X_SPATK)
- *(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= 0x8;
+ *(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= (1 << AI_X_SPATK);
if (itemEffects[2] & ITEM2_X_ACCURACY)
- *(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= 0x20;
+ *(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= (1 << AI_X_ACCURACY);
if (itemEffects[0] & ITEM0_DIRE_HIT)
- *(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= 0x80;
+ *(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= (1 << AI_DIRE_HIT);
shouldUse = TRUE;
break;
- case AI_ITEM_GUARD_SPECS:
+ case AI_ITEM_GUARD_SPEC:
battlerSide = GetBattlerSide(gActiveBattler);
if (gDisableStructs[gActiveBattler].isFirstTurn != 0 && gSideTimers[battlerSide].mistTimer == 0)
shouldUse = TRUE;