mirror of
https://github.com/Ninjdai1/pokeemerald.git
synced 2025-03-20 12:38:33 +01:00
Usage of BATTLE_OPPOSITE
This commit is contained in:
parent
15d611ba65
commit
1f0a952546
@ -351,14 +351,14 @@ void BattleAI_SetupAIData(u8 defaultScoreMoves)
|
|||||||
// Decide a random target battlerId in doubles.
|
// Decide a random target battlerId in doubles.
|
||||||
if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
|
if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
|
||||||
{
|
{
|
||||||
gBattlerTarget = (Random() & BIT_FLANK) + (GetBattlerSide(gActiveBattler) ^ BIT_SIDE);
|
gBattlerTarget = (Random() & BIT_FLANK) + (BATTLE_OPPOSITE(GetBattlerSide(gActiveBattler)));
|
||||||
if (gAbsentBattlerFlags & gBitTable[gBattlerTarget])
|
if (gAbsentBattlerFlags & gBitTable[gBattlerTarget])
|
||||||
gBattlerTarget ^= BIT_FLANK;
|
gBattlerTarget ^= BIT_FLANK;
|
||||||
}
|
}
|
||||||
// There's only one choice in single battles.
|
// There's only one choice in single battles.
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
gBattlerTarget = sBattler_AI ^ BIT_SIDE;
|
gBattlerTarget = BATTLE_OPPOSITE(sBattler_AI);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Choose proper trainer ai scripts.
|
// Choose proper trainer ai scripts.
|
||||||
|
@ -601,7 +601,7 @@ void AI_TrySwitchOrUseItem(void)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
BtlController_EmitTwoReturnValues(BUFFER_B, B_ACTION_USE_MOVE, (gActiveBattler ^ BIT_SIDE) << 8);
|
BtlController_EmitTwoReturnValues(BUFFER_B, B_ACTION_USE_MOVE, BATTLE_OPPOSITE(gActiveBattler) << 8);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void ModulateByTypeEffectiveness(u8 atkType, u8 defType1, u8 defType2, u8 *var)
|
static void ModulateByTypeEffectiveness(u8 atkType, u8 defType1, u8 defType2, u8 *var)
|
||||||
@ -665,7 +665,7 @@ u8 GetMostSuitableMonToSwitchInto(void)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
opposingBattler = GetBattlerAtPosition(GetBattlerPosition(gActiveBattler) ^ BIT_SIDE);
|
opposingBattler = GetBattlerAtPosition(BATTLE_OPPOSITE(GetBattlerPosition(gActiveBattler)));
|
||||||
battlerIn1 = gActiveBattler;
|
battlerIn1 = gActiveBattler;
|
||||||
battlerIn2 = gActiveBattler;
|
battlerIn2 = gActiveBattler;
|
||||||
}
|
}
|
||||||
|
@ -498,7 +498,7 @@ static void HandleInputChooseMove(void)
|
|||||||
if (moveTarget & MOVE_TARGET_USER)
|
if (moveTarget & MOVE_TARGET_USER)
|
||||||
gMultiUsePlayerCursor = gActiveBattler;
|
gMultiUsePlayerCursor = gActiveBattler;
|
||||||
else
|
else
|
||||||
gMultiUsePlayerCursor = GetBattlerAtPosition((GetBattlerPosition(gActiveBattler) & BIT_SIDE) ^ BIT_SIDE);
|
gMultiUsePlayerCursor = GetBattlerAtPosition(BATTLE_OPPOSITE(GetBattlerPosition(gActiveBattler) & BIT_SIDE));
|
||||||
|
|
||||||
if (!gBattleBufferA[gActiveBattler][1]) // not a double battle
|
if (!gBattleBufferA[gActiveBattler][1]) // not a double battle
|
||||||
{
|
{
|
||||||
|
@ -254,7 +254,7 @@ u16 ChooseMoveAndTargetInBattlePalace(void)
|
|||||||
else if (moveTarget == MOVE_TARGET_SELECTED)
|
else if (moveTarget == MOVE_TARGET_SELECTED)
|
||||||
chosenMoveId |= GetBattlePalaceTarget();
|
chosenMoveId |= GetBattlePalaceTarget();
|
||||||
else
|
else
|
||||||
chosenMoveId |= (GetBattlerAtPosition((GetBattlerPosition(gActiveBattler) & BIT_SIDE) ^ BIT_SIDE) << 8);
|
chosenMoveId |= (GetBattlerAtPosition(BATTLE_OPPOSITE(GetBattlerPosition(gActiveBattler) & BIT_SIDE)) << 8);
|
||||||
|
|
||||||
return chosenMoveId;
|
return chosenMoveId;
|
||||||
}
|
}
|
||||||
@ -310,7 +310,7 @@ static u16 GetBattlePalaceTarget(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (gBattleMons[opposing1].hp == gBattleMons[opposing2].hp)
|
if (gBattleMons[opposing1].hp == gBattleMons[opposing2].hp)
|
||||||
return (((gActiveBattler & BIT_SIDE) ^ BIT_SIDE) + (Random() & 2)) << 8;
|
return (BATTLE_OPPOSITE(gActiveBattler & BIT_SIDE) + (Random() & 2)) << 8;
|
||||||
|
|
||||||
switch (gBattlePalaceNatureToMoveTarget[GetNatureFromPersonality(gBattleMons[gActiveBattler].personality)])
|
switch (gBattlePalaceNatureToMoveTarget[GetNatureFromPersonality(gBattleMons[gActiveBattler].personality)])
|
||||||
{
|
{
|
||||||
@ -325,11 +325,11 @@ static u16 GetBattlePalaceTarget(void)
|
|||||||
else
|
else
|
||||||
return opposing2 << 8;
|
return opposing2 << 8;
|
||||||
case PALACE_TARGET_RANDOM:
|
case PALACE_TARGET_RANDOM:
|
||||||
return (((gActiveBattler & BIT_SIDE) ^ BIT_SIDE) + (Random() & 2)) << 8;
|
return (BATTLE_OPPOSITE(gActiveBattler & BIT_SIDE) + (Random() & 2)) << 8;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return (gActiveBattler ^ BIT_SIDE) << 8;
|
return BATTLE_OPPOSITE(gActiveBattler) << 8;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Wait for the pokemon to finish appearing out from the pokeball on send out
|
// Wait for the pokemon to finish appearing out from the pokeball on send out
|
||||||
|
@ -5108,7 +5108,7 @@ static void Cmd_openpartyscreen(void)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
gActiveBattler = GetBattlerAtPosition(GetBattlerPosition(battlerId) ^ BIT_SIDE);
|
gActiveBattler = GetBattlerAtPosition(BATTLE_OPPOSITE(GetBattlerPosition(battlerId)));
|
||||||
if (gAbsentBattlerFlags & gBitTable[gActiveBattler])
|
if (gAbsentBattlerFlags & gBitTable[gActiveBattler])
|
||||||
gActiveBattler ^= BIT_FLANK;
|
gActiveBattler ^= BIT_FLANK;
|
||||||
|
|
||||||
@ -6233,7 +6233,7 @@ static void Cmd_hpthresholds(void)
|
|||||||
if (!(gBattleTypeFlags & BATTLE_TYPE_DOUBLE))
|
if (!(gBattleTypeFlags & BATTLE_TYPE_DOUBLE))
|
||||||
{
|
{
|
||||||
gActiveBattler = GetBattlerForBattleScript(gBattlescriptCurrInstr[1]);
|
gActiveBattler = GetBattlerForBattleScript(gBattlescriptCurrInstr[1]);
|
||||||
opposingBattler = gActiveBattler ^ BIT_SIDE;
|
opposingBattler = BATTLE_OPPOSITE(gActiveBattler);
|
||||||
|
|
||||||
result = gBattleMons[opposingBattler].hp * 100 / gBattleMons[opposingBattler].maxHP;
|
result = gBattleMons[opposingBattler].hp * 100 / gBattleMons[opposingBattler].maxHP;
|
||||||
if (result == 0)
|
if (result == 0)
|
||||||
@ -6261,7 +6261,7 @@ static void Cmd_hpthresholds2(void)
|
|||||||
if (!(gBattleTypeFlags & BATTLE_TYPE_DOUBLE))
|
if (!(gBattleTypeFlags & BATTLE_TYPE_DOUBLE))
|
||||||
{
|
{
|
||||||
gActiveBattler = GetBattlerForBattleScript(gBattlescriptCurrInstr[1]);
|
gActiveBattler = GetBattlerForBattleScript(gBattlescriptCurrInstr[1]);
|
||||||
opposingBattler = gActiveBattler ^ BIT_SIDE;
|
opposingBattler = BATTLE_OPPOSITE(gActiveBattler);
|
||||||
hpSwitchout = *(gBattleStruct->hpOnSwitchout + GetBattlerSide(opposingBattler));
|
hpSwitchout = *(gBattleStruct->hpOnSwitchout + GetBattlerSide(opposingBattler));
|
||||||
result = (hpSwitchout - gBattleMons[opposingBattler].hp) * 100 / hpSwitchout;
|
result = (hpSwitchout - gBattleMons[opposingBattler].hp) * 100 / hpSwitchout;
|
||||||
|
|
||||||
@ -6299,7 +6299,7 @@ static void Cmd_various(void)
|
|||||||
break;
|
break;
|
||||||
case VARIOUS_SET_MAGIC_COAT_TARGET:
|
case VARIOUS_SET_MAGIC_COAT_TARGET:
|
||||||
gBattlerAttacker = gBattlerTarget;
|
gBattlerAttacker = gBattlerTarget;
|
||||||
side = GetBattlerSide(gBattlerAttacker) ^ BIT_SIDE;
|
side = BATTLE_OPPOSITE(GetBattlerSide(gBattlerAttacker));
|
||||||
if (gSideTimers[side].followmeTimer != 0 && gBattleMons[gSideTimers[side].followmeTarget].hp != 0)
|
if (gSideTimers[side].followmeTimer != 0 && gBattleMons[gSideTimers[side].followmeTarget].hp != 0)
|
||||||
gBattlerTarget = gSideTimers[side].followmeTarget;
|
gBattlerTarget = gSideTimers[side].followmeTarget;
|
||||||
else
|
else
|
||||||
@ -8399,7 +8399,7 @@ static void Cmd_cursetarget(void)
|
|||||||
|
|
||||||
static void Cmd_trysetspikes(void)
|
static void Cmd_trysetspikes(void)
|
||||||
{
|
{
|
||||||
u8 targetSide = GetBattlerSide(gBattlerAttacker) ^ BIT_SIDE;
|
u8 targetSide = BATTLE_OPPOSITE(GetBattlerSide(gBattlerAttacker));
|
||||||
|
|
||||||
if (gSideTimers[targetSide].spikesAmount == 3)
|
if (gSideTimers[targetSide].spikesAmount == 3)
|
||||||
{
|
{
|
||||||
@ -9781,7 +9781,7 @@ static void Cmd_snatchsetbattlers(void)
|
|||||||
// Brick Break
|
// Brick Break
|
||||||
static void Cmd_removelightscreenreflect(void)
|
static void Cmd_removelightscreenreflect(void)
|
||||||
{
|
{
|
||||||
u8 opposingSide = GetBattlerSide(gBattlerAttacker) ^ BIT_SIDE;
|
u8 opposingSide = BATTLE_OPPOSITE(GetBattlerSide(gBattlerAttacker));
|
||||||
|
|
||||||
if (gSideTimers[opposingSide].reflectTimer || gSideTimers[opposingSide].lightscreenTimer)
|
if (gSideTimers[opposingSide].reflectTimer || gSideTimers[opposingSide].lightscreenTimer)
|
||||||
{
|
{
|
||||||
@ -9809,7 +9809,7 @@ static void Cmd_handleballthrow(void)
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
gActiveBattler = gBattlerAttacker;
|
gActiveBattler = gBattlerAttacker;
|
||||||
gBattlerTarget = gBattlerAttacker ^ BIT_SIDE;
|
gBattlerTarget = BATTLE_OPPOSITE(gBattlerAttacker);
|
||||||
|
|
||||||
if (gBattleTypeFlags & BATTLE_TYPE_TRAINER)
|
if (gBattleTypeFlags & BATTLE_TYPE_TRAINER)
|
||||||
{
|
{
|
||||||
@ -9951,18 +9951,18 @@ static void Cmd_handleballthrow(void)
|
|||||||
|
|
||||||
static void Cmd_givecaughtmon(void)
|
static void Cmd_givecaughtmon(void)
|
||||||
{
|
{
|
||||||
if (GiveMonToPlayer(&gEnemyParty[gBattlerPartyIndexes[gBattlerAttacker ^ BIT_SIDE]]) != MON_GIVEN_TO_PARTY)
|
if (GiveMonToPlayer(&gEnemyParty[gBattlerPartyIndexes[BATTLE_OPPOSITE(gBattlerAttacker)]]) != MON_GIVEN_TO_PARTY)
|
||||||
{
|
{
|
||||||
if (!ShouldShowBoxWasFullMessage())
|
if (!ShouldShowBoxWasFullMessage())
|
||||||
{
|
{
|
||||||
gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_SENT_SOMEONES_PC;
|
gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_SENT_SOMEONES_PC;
|
||||||
StringCopy(gStringVar1, GetBoxNamePtr(VarGet(VAR_PC_BOX_TO_SEND_MON)));
|
StringCopy(gStringVar1, GetBoxNamePtr(VarGet(VAR_PC_BOX_TO_SEND_MON)));
|
||||||
GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattlerAttacker ^ BIT_SIDE]], MON_DATA_NICKNAME, gStringVar2);
|
GetMonData(&gEnemyParty[gBattlerPartyIndexes[BATTLE_OPPOSITE(gBattlerAttacker)]], MON_DATA_NICKNAME, gStringVar2);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
StringCopy(gStringVar1, GetBoxNamePtr(VarGet(VAR_PC_BOX_TO_SEND_MON))); // box the mon was sent to
|
StringCopy(gStringVar1, GetBoxNamePtr(VarGet(VAR_PC_BOX_TO_SEND_MON))); // box the mon was sent to
|
||||||
GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattlerAttacker ^ BIT_SIDE]], MON_DATA_NICKNAME, gStringVar2);
|
GetMonData(&gEnemyParty[gBattlerPartyIndexes[BATTLE_OPPOSITE(gBattlerAttacker)]], MON_DATA_NICKNAME, gStringVar2);
|
||||||
StringCopy(gStringVar3, GetBoxNamePtr(GetPCBoxToSendMon())); //box the mon was going to be sent to
|
StringCopy(gStringVar3, GetBoxNamePtr(GetPCBoxToSendMon())); //box the mon was going to be sent to
|
||||||
gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_SOMEONES_BOX_FULL;
|
gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_SOMEONES_BOX_FULL;
|
||||||
}
|
}
|
||||||
@ -9972,9 +9972,9 @@ static void Cmd_givecaughtmon(void)
|
|||||||
gBattleCommunication[MULTISTRING_CHOOSER]++;
|
gBattleCommunication[MULTISTRING_CHOOSER]++;
|
||||||
}
|
}
|
||||||
|
|
||||||
gBattleResults.caughtMonSpecies = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattlerAttacker ^ BIT_SIDE]], MON_DATA_SPECIES, NULL);
|
gBattleResults.caughtMonSpecies = GetMonData(&gEnemyParty[gBattlerPartyIndexes[BATTLE_OPPOSITE(gBattlerAttacker)]], MON_DATA_SPECIES, NULL);
|
||||||
GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattlerAttacker ^ BIT_SIDE]], MON_DATA_NICKNAME, gBattleResults.caughtMonNick);
|
GetMonData(&gEnemyParty[gBattlerPartyIndexes[BATTLE_OPPOSITE(gBattlerAttacker)]], MON_DATA_NICKNAME, gBattleResults.caughtMonNick);
|
||||||
gBattleResults.caughtMonBall = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattlerAttacker ^ BIT_SIDE]], MON_DATA_POKEBALL, NULL);
|
gBattleResults.caughtMonBall = GetMonData(&gEnemyParty[gBattlerPartyIndexes[BATTLE_OPPOSITE(gBattlerAttacker)]], MON_DATA_POKEBALL, NULL);
|
||||||
|
|
||||||
gBattlescriptCurrInstr++;
|
gBattlescriptCurrInstr++;
|
||||||
}
|
}
|
||||||
@ -10162,13 +10162,13 @@ static void Cmd_trygivecaughtmonnick(void)
|
|||||||
case 2:
|
case 2:
|
||||||
if (!gPaletteFade.active)
|
if (!gPaletteFade.active)
|
||||||
{
|
{
|
||||||
GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattlerAttacker ^ BIT_SIDE]], MON_DATA_NICKNAME, gBattleStruct->caughtMonNick);
|
GetMonData(&gEnemyParty[gBattlerPartyIndexes[BATTLE_OPPOSITE(gBattlerAttacker)]], MON_DATA_NICKNAME, gBattleStruct->caughtMonNick);
|
||||||
FreeAllWindowBuffers();
|
FreeAllWindowBuffers();
|
||||||
|
|
||||||
DoNamingScreen(NAMING_SCREEN_CAUGHT_MON, gBattleStruct->caughtMonNick,
|
DoNamingScreen(NAMING_SCREEN_CAUGHT_MON, gBattleStruct->caughtMonNick,
|
||||||
GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattlerAttacker ^ BIT_SIDE]], MON_DATA_SPECIES),
|
GetMonData(&gEnemyParty[gBattlerPartyIndexes[BATTLE_OPPOSITE(gBattlerAttacker)]], MON_DATA_SPECIES),
|
||||||
GetMonGender(&gEnemyParty[gBattlerPartyIndexes[gBattlerAttacker ^ BIT_SIDE]]),
|
GetMonGender(&gEnemyParty[gBattlerPartyIndexes[BATTLE_OPPOSITE(gBattlerAttacker)]]),
|
||||||
GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattlerAttacker ^ BIT_SIDE]], MON_DATA_PERSONALITY, NULL),
|
GetMonData(&gEnemyParty[gBattlerPartyIndexes[BATTLE_OPPOSITE(gBattlerAttacker)]], MON_DATA_PERSONALITY, NULL),
|
||||||
BattleMainCB2);
|
BattleMainCB2);
|
||||||
|
|
||||||
gBattleCommunication[MULTIUSE_STATE]++;
|
gBattleCommunication[MULTIUSE_STATE]++;
|
||||||
@ -10177,7 +10177,7 @@ static void Cmd_trygivecaughtmonnick(void)
|
|||||||
case 3:
|
case 3:
|
||||||
if (gMain.callback2 == BattleMainCB2 && !gPaletteFade.active)
|
if (gMain.callback2 == BattleMainCB2 && !gPaletteFade.active)
|
||||||
{
|
{
|
||||||
SetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattlerAttacker ^ BIT_SIDE]], MON_DATA_NICKNAME, gBattleStruct->caughtMonNick);
|
SetMonData(&gEnemyParty[gBattlerPartyIndexes[BATTLE_OPPOSITE(gBattlerAttacker)]], MON_DATA_NICKNAME, gBattleStruct->caughtMonNick);
|
||||||
gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
|
gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -146,7 +146,7 @@ void HandleAction_UseMove(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// choose target
|
// choose target
|
||||||
side = GetBattlerSide(gBattlerAttacker) ^ BIT_SIDE;
|
side = BATTLE_OPPOSITE(GetBattlerSide(gBattlerAttacker));
|
||||||
if (gSideTimers[side].followmeTimer != 0
|
if (gSideTimers[side].followmeTimer != 0
|
||||||
&& gBattleMoves[gCurrentMove].target == MOVE_TARGET_SELECTED
|
&& gBattleMoves[gCurrentMove].target == MOVE_TARGET_SELECTED
|
||||||
&& GetBattlerSide(gBattlerAttacker) != GetBattlerSide(gSideTimers[side].followmeTarget)
|
&& GetBattlerSide(gBattlerAttacker) != GetBattlerSide(gSideTimers[side].followmeTarget)
|
||||||
@ -204,7 +204,7 @@ void HandleAction_UseMove(void)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
gBattlerTarget = GetBattlerAtPosition(GetBattlerPosition(gBattlerAttacker) ^ BIT_SIDE);
|
gBattlerTarget = GetBattlerAtPosition(BATTLE_OPPOSITE(GetBattlerPosition(gBattlerAttacker)));
|
||||||
if (gAbsentBattlerFlags & gBitTable[gBattlerTarget])
|
if (gAbsentBattlerFlags & gBitTable[gBattlerTarget])
|
||||||
gBattlerTarget = GetBattlerAtPosition(BATTLE_PARTNER(GetBattlerPosition(gBattlerTarget)));
|
gBattlerTarget = GetBattlerAtPosition(BATTLE_PARTNER(GetBattlerPosition(gBattlerTarget)));
|
||||||
}
|
}
|
||||||
@ -253,7 +253,7 @@ void HandleAction_UseMove(void)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
gBattlerTarget = GetBattlerAtPosition(GetBattlerPosition(gBattlerAttacker) ^ BIT_SIDE);
|
gBattlerTarget = GetBattlerAtPosition(BATTLE_OPPOSITE(GetBattlerPosition(gBattlerAttacker)));
|
||||||
if (gAbsentBattlerFlags & gBitTable[gBattlerTarget])
|
if (gAbsentBattlerFlags & gBitTable[gBattlerTarget])
|
||||||
gBattlerTarget = GetBattlerAtPosition(BATTLE_PARTNER(GetBattlerPosition(gBattlerTarget)));
|
gBattlerTarget = GetBattlerAtPosition(BATTLE_PARTNER(GetBattlerPosition(gBattlerTarget)));
|
||||||
}
|
}
|
||||||
@ -3001,7 +3001,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA
|
|||||||
if (gBattleMons[i].ability == ABILITY_TRACE && (gStatuses3[i] & STATUS3_TRACE))
|
if (gBattleMons[i].ability == ABILITY_TRACE && (gStatuses3[i] & STATUS3_TRACE))
|
||||||
{
|
{
|
||||||
u8 target2;
|
u8 target2;
|
||||||
side = (GetBattlerPosition(i) ^ BIT_SIDE) & BIT_SIDE; // side of the opposing pokemon
|
side = (BATTLE_OPPOSITE(GetBattlerPosition(i))) & BIT_SIDE; // side of the opposing pokemon
|
||||||
target1 = GetBattlerAtPosition(side);
|
target1 = GetBattlerAtPosition(side);
|
||||||
target2 = GetBattlerAtPosition(side + BIT_FLANK);
|
target2 = GetBattlerAtPosition(side + BIT_FLANK);
|
||||||
if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
|
if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
|
||||||
@ -3820,7 +3820,7 @@ u8 GetMoveTarget(u16 move, u8 setTarget)
|
|||||||
switch (moveTarget)
|
switch (moveTarget)
|
||||||
{
|
{
|
||||||
case MOVE_TARGET_SELECTED:
|
case MOVE_TARGET_SELECTED:
|
||||||
side = GetBattlerSide(gBattlerAttacker) ^ BIT_SIDE;
|
side = BATTLE_OPPOSITE(GetBattlerSide(gBattlerAttacker));
|
||||||
if (gSideTimers[side].followmeTimer && gBattleMons[gSideTimers[side].followmeTarget].hp)
|
if (gSideTimers[side].followmeTimer && gBattleMons[gSideTimers[side].followmeTarget].hp)
|
||||||
targetBattler = gSideTimers[side].followmeTarget;
|
targetBattler = gSideTimers[side].followmeTarget;
|
||||||
else
|
else
|
||||||
@ -3844,12 +3844,12 @@ u8 GetMoveTarget(u16 move, u8 setTarget)
|
|||||||
case MOVE_TARGET_BOTH:
|
case MOVE_TARGET_BOTH:
|
||||||
case MOVE_TARGET_FOES_AND_ALLY:
|
case MOVE_TARGET_FOES_AND_ALLY:
|
||||||
case MOVE_TARGET_OPPONENTS_FIELD:
|
case MOVE_TARGET_OPPONENTS_FIELD:
|
||||||
targetBattler = GetBattlerAtPosition((GetBattlerPosition(gBattlerAttacker) & BIT_SIDE) ^ BIT_SIDE);
|
targetBattler = GetBattlerAtPosition(BATTLE_OPPOSITE(GetBattlerPosition(gBattlerAttacker) & BIT_SIDE));
|
||||||
if (gAbsentBattlerFlags & gBitTable[targetBattler])
|
if (gAbsentBattlerFlags & gBitTable[targetBattler])
|
||||||
targetBattler ^= BIT_FLANK;
|
targetBattler ^= BIT_FLANK;
|
||||||
break;
|
break;
|
||||||
case MOVE_TARGET_RANDOM:
|
case MOVE_TARGET_RANDOM:
|
||||||
side = GetBattlerSide(gBattlerAttacker) ^ BIT_SIDE;
|
side = BATTLE_OPPOSITE(GetBattlerSide(gBattlerAttacker));
|
||||||
if (gSideTimers[side].followmeTimer && gBattleMons[gSideTimers[side].followmeTarget].hp)
|
if (gSideTimers[side].followmeTimer && gBattleMons[gSideTimers[side].followmeTarget].hp)
|
||||||
targetBattler = gSideTimers[side].followmeTarget;
|
targetBattler = gSideTimers[side].followmeTarget;
|
||||||
else if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && moveTarget & MOVE_TARGET_RANDOM)
|
else if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && moveTarget & MOVE_TARGET_RANDOM)
|
||||||
@ -3872,7 +3872,7 @@ u8 GetMoveTarget(u16 move, u8 setTarget)
|
|||||||
targetBattler ^= BIT_FLANK;
|
targetBattler ^= BIT_FLANK;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
targetBattler = GetBattlerAtPosition((GetBattlerPosition(gBattlerAttacker) & BIT_SIDE) ^ BIT_SIDE);
|
targetBattler = GetBattlerAtPosition(BATTLE_OPPOSITE(GetBattlerPosition(gBattlerAttacker) & BIT_SIDE));
|
||||||
break;
|
break;
|
||||||
case MOVE_TARGET_USER_OR_SELECTED:
|
case MOVE_TARGET_USER_OR_SELECTED:
|
||||||
case MOVE_TARGET_USER:
|
case MOVE_TARGET_USER:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user