label some battle struct fields
This commit is contained in:
@@ -1,8 +0,0 @@
|
|||||||
.include "asm/macros.inc"
|
|
||||||
.include "constants/constants.inc"
|
|
||||||
|
|
||||||
.syntax unified
|
|
||||||
|
|
||||||
.text
|
|
||||||
|
|
||||||
.align 2, 0 @ Don't pad with nop.
|
|
||||||
+2
-2
@@ -623,7 +623,7 @@ struct BattleStruct
|
|||||||
u8 sentInPokes;
|
u8 sentInPokes;
|
||||||
bool8 selectionScriptFinished[BATTLE_BANKS_COUNT];
|
bool8 selectionScriptFinished[BATTLE_BANKS_COUNT];
|
||||||
u8 field_58[4];
|
u8 field_58[4];
|
||||||
u8 field_5C[4];
|
u8 monToSwitchIntoId[BATTLE_BANKS_COUNT];
|
||||||
u8 field_60[4][3];
|
u8 field_60[4][3];
|
||||||
u8 runTries;
|
u8 runTries;
|
||||||
u8 caughtMonNick[11];
|
u8 caughtMonNick[11];
|
||||||
@@ -695,7 +695,7 @@ struct BattleStruct
|
|||||||
u8 field_1A4[96];
|
u8 field_1A4[96];
|
||||||
u8 field_204[104];
|
u8 field_204[104];
|
||||||
u8 field_26C[40];
|
u8 field_26C[40];
|
||||||
u8 field_294[4];
|
u8 AI_monToSwitchIntoId[BATTLE_BANKS_COUNT];
|
||||||
u8 field_298[8];
|
u8 field_298[8];
|
||||||
u8 field_2A0;
|
u8 field_2A0;
|
||||||
u8 field_2A1;
|
u8 field_2A1;
|
||||||
|
|||||||
+11
-11
@@ -2853,9 +2853,9 @@ static void BattleStartClearSetData(void)
|
|||||||
*(i + 3 * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 0) = 0;
|
*(i + 3 * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 0) = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (i = 0; i < 4; i++)
|
for (i = 0; i < BATTLE_BANKS_COUNT; i++)
|
||||||
{
|
{
|
||||||
*(gBattleStruct->field_294 + i) = 6;
|
*(gBattleStruct->AI_monToSwitchIntoId + i) = 6;
|
||||||
}
|
}
|
||||||
|
|
||||||
gBattleStruct->field_DF = 0;
|
gBattleStruct->field_DF = 0;
|
||||||
@@ -3682,7 +3682,7 @@ static void TryDoEventsBeforeFirstTurn(void)
|
|||||||
}
|
}
|
||||||
for (i = 0; i < BATTLE_BANKS_COUNT; i++)
|
for (i = 0; i < BATTLE_BANKS_COUNT; i++)
|
||||||
{
|
{
|
||||||
*(gBattleStruct->field_5C + i) = 6;
|
*(gBattleStruct->monToSwitchIntoId + i) = 6;
|
||||||
gActionForBanks[i] = ACTION_INIT_VALUE;
|
gActionForBanks[i] = ACTION_INIT_VALUE;
|
||||||
gChosenMovesByBanks[i] = MOVE_NONE;
|
gChosenMovesByBanks[i] = MOVE_NONE;
|
||||||
}
|
}
|
||||||
@@ -3793,7 +3793,7 @@ void BattleTurnPassed(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
for (i = 0; i < 4; i++)
|
for (i = 0; i < 4; i++)
|
||||||
*(gBattleStruct->field_5C + i) = 6;
|
*(gBattleStruct->monToSwitchIntoId + i) = 6;
|
||||||
|
|
||||||
*(&gBattleStruct->field_91) = gAbsentBankFlags;
|
*(&gBattleStruct->field_91) = gAbsentBankFlags;
|
||||||
BattleHandleAddTextPrinter(gText_EmptyString3, 0);
|
BattleHandleAddTextPrinter(gText_EmptyString3, 0);
|
||||||
@@ -3884,7 +3884,7 @@ void sub_803BDA0(u8 bank)
|
|||||||
gUnknown_0203CF00[i] = *(bank * 3 + i + (u8*)(gBattleStruct->field_60));
|
gUnknown_0203CF00[i] = *(bank * 3 + i + (u8*)(gBattleStruct->field_60));
|
||||||
|
|
||||||
r4 = pokemon_order_func(gBattlePartyID[bank]);
|
r4 = pokemon_order_func(gBattlePartyID[bank]);
|
||||||
r1 = pokemon_order_func(*(gBattleStruct->field_5C + bank));
|
r1 = pokemon_order_func(*(gBattleStruct->monToSwitchIntoId + bank));
|
||||||
sub_81B8FB0(r4, r1);
|
sub_81B8FB0(r4, r1);
|
||||||
|
|
||||||
if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
|
if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
|
||||||
@@ -3932,7 +3932,7 @@ static void HandleTurnActionSelectionState(void)
|
|||||||
gBattleCommunication[gActiveBank] = STATE_BEFORE_ACTION_CHOSEN;
|
gBattleCommunication[gActiveBank] = STATE_BEFORE_ACTION_CHOSEN;
|
||||||
break;
|
break;
|
||||||
case STATE_BEFORE_ACTION_CHOSEN: // choose an action
|
case STATE_BEFORE_ACTION_CHOSEN: // choose an action
|
||||||
*(gBattleStruct->field_5C + gActiveBank) = 6;
|
*(gBattleStruct->monToSwitchIntoId + gActiveBank) = 6;
|
||||||
if (gBattleTypeFlags & BATTLE_TYPE_MULTI
|
if (gBattleTypeFlags & BATTLE_TYPE_MULTI
|
||||||
|| !(identity & BIT_MON)
|
|| !(identity & BIT_MON)
|
||||||
|| gBattleStruct->field_91 & gBitTable[GetBankByIdentity(identity ^ BIT_MON)]
|
|| gBattleStruct->field_91 & gBitTable[GetBankByIdentity(identity ^ BIT_MON)]
|
||||||
@@ -4050,9 +4050,9 @@ static void HandleTurnActionSelectionState(void)
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (gActiveBank == 2 && gActionForBanks[0] == ACTION_SWITCH)
|
if (gActiveBank == 2 && gActionForBanks[0] == ACTION_SWITCH)
|
||||||
EmitChoosePokemon(0, 0, *(gBattleStruct->field_5C + 0), ABILITY_NONE, gBattleStruct->field_60[gActiveBank]);
|
EmitChoosePokemon(0, 0, *(gBattleStruct->monToSwitchIntoId + 0), ABILITY_NONE, gBattleStruct->field_60[gActiveBank]);
|
||||||
else if (gActiveBank == 3 && gActionForBanks[1] == ACTION_SWITCH)
|
else if (gActiveBank == 3 && gActionForBanks[1] == ACTION_SWITCH)
|
||||||
EmitChoosePokemon(0, 0, *(gBattleStruct->field_5C + 1), ABILITY_NONE, gBattleStruct->field_60[gActiveBank]);
|
EmitChoosePokemon(0, 0, *(gBattleStruct->monToSwitchIntoId + 1), ABILITY_NONE, gBattleStruct->field_60[gActiveBank]);
|
||||||
else
|
else
|
||||||
EmitChoosePokemon(0, 0, 6, ABILITY_NONE, gBattleStruct->field_60[gActiveBank]);
|
EmitChoosePokemon(0, 0, 6, ABILITY_NONE, gBattleStruct->field_60[gActiveBank]);
|
||||||
}
|
}
|
||||||
@@ -4339,7 +4339,7 @@ static void HandleTurnActionSelectionState(void)
|
|||||||
for (i = 0; i < gNoOfAllBanks; i++)
|
for (i = 0; i < gNoOfAllBanks; i++)
|
||||||
{
|
{
|
||||||
if (gActionForBanks[i] == ACTION_SWITCH)
|
if (gActionForBanks[i] == ACTION_SWITCH)
|
||||||
sub_80571DC(i, *(gBattleStruct->field_5C + i));
|
sub_80571DC(i, *(gBattleStruct->monToSwitchIntoId + i));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -4363,7 +4363,7 @@ static bool8 sub_803CDB8(void)
|
|||||||
|
|
||||||
static void sub_803CDF8(void)
|
static void sub_803CDF8(void)
|
||||||
{
|
{
|
||||||
*(gBattleStruct->field_5C + gActiveBank) = gBattleBufferB[gActiveBank][1];
|
*(gBattleStruct->monToSwitchIntoId + gActiveBank) = gBattleBufferB[gActiveBank][1];
|
||||||
RecordedBattle_SetBankAction(gActiveBank, gBattleBufferB[gActiveBank][1]);
|
RecordedBattle_SetBankAction(gActiveBank, gBattleBufferB[gActiveBank][1]);
|
||||||
|
|
||||||
if (gBattleTypeFlags & BATTLE_TYPE_LINK && gBattleTypeFlags & BATTLE_TYPE_MULTI)
|
if (gBattleTypeFlags & BATTLE_TYPE_LINK && gBattleTypeFlags & BATTLE_TYPE_MULTI)
|
||||||
@@ -5618,7 +5618,7 @@ static void HandleAction_NothingIsFainted(void)
|
|||||||
|
|
||||||
static void HandleAction_ActionFinished(void)
|
static void HandleAction_ActionFinished(void)
|
||||||
{
|
{
|
||||||
*(gBattleStruct->field_5C + gBanksByTurnOrder[gCurrentTurnActionNumber]) = 6;
|
*(gBattleStruct->monToSwitchIntoId + gBanksByTurnOrder[gCurrentTurnActionNumber]) = 6;
|
||||||
gCurrentTurnActionNumber++;
|
gCurrentTurnActionNumber++;
|
||||||
gCurrentActionFuncId = gActionsByTurnOrder[gCurrentTurnActionNumber];
|
gCurrentActionFuncId = gActionsByTurnOrder[gCurrentTurnActionNumber];
|
||||||
SpecialStatusesClear();
|
SpecialStatusesClear();
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ static bool8 ShouldSwitchIfPerishSong(void)
|
|||||||
if (gStatuses3[gActiveBank] & STATUS3_PERISH_SONG
|
if (gStatuses3[gActiveBank] & STATUS3_PERISH_SONG
|
||||||
&& gDisableStructs[gActiveBank].perishSong1 == 0)
|
&& gDisableStructs[gActiveBank].perishSong1 == 0)
|
||||||
{
|
{
|
||||||
*(gBattleStruct->field_294 + gActiveBank) = 6;
|
*(gBattleStruct->AI_monToSwitchIntoId + gActiveBank) = 6;
|
||||||
EmitTwoReturnValues(1, ACTION_SWITCH, 0);
|
EmitTwoReturnValues(1, ACTION_SWITCH, 0);
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
@@ -120,7 +120,7 @@ static bool8 ShouldSwitchIfWonderGuard(void)
|
|||||||
if (moveFlags & MOVESTATUS_SUPEREFFECTIVE && Random() % 3 < 2)
|
if (moveFlags & MOVESTATUS_SUPEREFFECTIVE && Random() % 3 < 2)
|
||||||
{
|
{
|
||||||
// we found a mon
|
// we found a mon
|
||||||
*(gBattleStruct->field_294 + gActiveBank) = i;
|
*(gBattleStruct->AI_monToSwitchIntoId + gActiveBank) = i;
|
||||||
EmitTwoReturnValues(1, ACTION_SWITCH, 0);
|
EmitTwoReturnValues(1, ACTION_SWITCH, 0);
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
@@ -206,9 +206,9 @@ static bool8 FindMonThatAbsorbsOpponentsMove(void)
|
|||||||
continue;
|
continue;
|
||||||
if (i == gBattlePartyID[bankIn2])
|
if (i == gBattlePartyID[bankIn2])
|
||||||
continue;
|
continue;
|
||||||
if (i == *(gBattleStruct->field_5C + bankIn1))
|
if (i == *(gBattleStruct->monToSwitchIntoId + bankIn1))
|
||||||
continue;
|
continue;
|
||||||
if (i == *(gBattleStruct->field_5C + bankIn2))
|
if (i == *(gBattleStruct->monToSwitchIntoId + bankIn2))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
species = GetMonData(&party[i], MON_DATA_SPECIES);
|
species = GetMonData(&party[i], MON_DATA_SPECIES);
|
||||||
@@ -220,7 +220,7 @@ static bool8 FindMonThatAbsorbsOpponentsMove(void)
|
|||||||
if (absorbingTypeAbility == monAbility && Random() & 1)
|
if (absorbingTypeAbility == monAbility && Random() & 1)
|
||||||
{
|
{
|
||||||
// we found a mon
|
// we found a mon
|
||||||
*(gBattleStruct->field_294 + gActiveBank) = i;
|
*(gBattleStruct->AI_monToSwitchIntoId + gActiveBank) = i;
|
||||||
EmitTwoReturnValues(1, ACTION_SWITCH, 0);
|
EmitTwoReturnValues(1, ACTION_SWITCH, 0);
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
@@ -240,13 +240,13 @@ static bool8 ShouldSwitchIfNaturalCure(void)
|
|||||||
|
|
||||||
if ((gUnknown_02024250[gActiveBank] == 0 || gUnknown_02024250[gActiveBank] == 0xFFFF) && Random() & 1)
|
if ((gUnknown_02024250[gActiveBank] == 0 || gUnknown_02024250[gActiveBank] == 0xFFFF) && Random() & 1)
|
||||||
{
|
{
|
||||||
*(gBattleStruct->field_294 + gActiveBank) = 6;
|
*(gBattleStruct->AI_monToSwitchIntoId + gActiveBank) = 6;
|
||||||
EmitTwoReturnValues(1, ACTION_SWITCH, 0);
|
EmitTwoReturnValues(1, ACTION_SWITCH, 0);
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
else if (gBattleMoves[gUnknown_02024250[gActiveBank]].power == 0 && Random() & 1)
|
else if (gBattleMoves[gUnknown_02024250[gActiveBank]].power == 0 && Random() & 1)
|
||||||
{
|
{
|
||||||
*(gBattleStruct->field_294 + gActiveBank) = 6;
|
*(gBattleStruct->AI_monToSwitchIntoId + gActiveBank) = 6;
|
||||||
EmitTwoReturnValues(1, ACTION_SWITCH, 0);
|
EmitTwoReturnValues(1, ACTION_SWITCH, 0);
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
@@ -257,7 +257,7 @@ static bool8 ShouldSwitchIfNaturalCure(void)
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
if (Random() & 1)
|
if (Random() & 1)
|
||||||
{
|
{
|
||||||
*(gBattleStruct->field_294 + gActiveBank) = 6;
|
*(gBattleStruct->AI_monToSwitchIntoId + gActiveBank) = 6;
|
||||||
EmitTwoReturnValues(1, ACTION_SWITCH, 0);
|
EmitTwoReturnValues(1, ACTION_SWITCH, 0);
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
@@ -400,9 +400,9 @@ static bool8 FindMonWithFlagsAndSuperEffective(u8 flags, u8 moduloPercent)
|
|||||||
continue;
|
continue;
|
||||||
if (i == gBattlePartyID[bankIn2])
|
if (i == gBattlePartyID[bankIn2])
|
||||||
continue;
|
continue;
|
||||||
if (i == *(gBattleStruct->field_5C + bankIn1))
|
if (i == *(gBattleStruct->monToSwitchIntoId + bankIn1))
|
||||||
continue;
|
continue;
|
||||||
if (i == *(gBattleStruct->field_5C + bankIn2))
|
if (i == *(gBattleStruct->monToSwitchIntoId + bankIn2))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
species = GetMonData(&party[i], MON_DATA_SPECIES);
|
species = GetMonData(&party[i], MON_DATA_SPECIES);
|
||||||
@@ -425,7 +425,7 @@ static bool8 FindMonWithFlagsAndSuperEffective(u8 flags, u8 moduloPercent)
|
|||||||
moveFlags = AI_TypeCalc(move, gBattleMons[bankIn1].species, gBattleMons[bankIn1].ability);
|
moveFlags = AI_TypeCalc(move, gBattleMons[bankIn1].species, gBattleMons[bankIn1].ability);
|
||||||
if (moveFlags & MOVESTATUS_SUPEREFFECTIVE && Random() % moduloPercent == 0)
|
if (moveFlags & MOVESTATUS_SUPEREFFECTIVE && Random() % moduloPercent == 0)
|
||||||
{
|
{
|
||||||
*(gBattleStruct->field_294 + gActiveBank) = i;
|
*(gBattleStruct->AI_monToSwitchIntoId + gActiveBank) = i;
|
||||||
EmitTwoReturnValues(1, ACTION_SWITCH, 0);
|
EmitTwoReturnValues(1, ACTION_SWITCH, 0);
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
@@ -508,9 +508,9 @@ static bool8 ShouldSwitch(void)
|
|||||||
continue;
|
continue;
|
||||||
if (i == gBattlePartyID[bankIn2])
|
if (i == gBattlePartyID[bankIn2])
|
||||||
continue;
|
continue;
|
||||||
if (i == *(gBattleStruct->field_5C + bankIn1))
|
if (i == *(gBattleStruct->monToSwitchIntoId + bankIn1))
|
||||||
continue;
|
continue;
|
||||||
if (i == *(gBattleStruct->field_5C + bankIn2))
|
if (i == *(gBattleStruct->monToSwitchIntoId + bankIn2))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
availableToSwitch++;
|
availableToSwitch++;
|
||||||
@@ -554,7 +554,7 @@ void AI_TrySwitchOrUseItem(void)
|
|||||||
{
|
{
|
||||||
if (ShouldSwitch())
|
if (ShouldSwitch())
|
||||||
{
|
{
|
||||||
if (*(gBattleStruct->field_294 + gActiveBank) == 6)
|
if (*(gBattleStruct->AI_monToSwitchIntoId + gActiveBank) == 6)
|
||||||
{
|
{
|
||||||
s32 monToSwitchId = GetMostSuitableMonToSwitchInto();
|
s32 monToSwitchId = GetMostSuitableMonToSwitchInto();
|
||||||
if (monToSwitchId == 6)
|
if (monToSwitchId == 6)
|
||||||
@@ -590,19 +590,19 @@ void AI_TrySwitchOrUseItem(void)
|
|||||||
continue;
|
continue;
|
||||||
if (monToSwitchId == gBattlePartyID[bankIn2])
|
if (monToSwitchId == gBattlePartyID[bankIn2])
|
||||||
continue;
|
continue;
|
||||||
if (monToSwitchId == *(gBattleStruct->field_5C + bankIn1))
|
if (monToSwitchId == *(gBattleStruct->monToSwitchIntoId + bankIn1))
|
||||||
continue;
|
continue;
|
||||||
if (monToSwitchId == *(gBattleStruct->field_5C + bankIn2))
|
if (monToSwitchId == *(gBattleStruct->monToSwitchIntoId + bankIn2))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
*(gBattleStruct->field_294 + gActiveBank) = monToSwitchId;
|
*(gBattleStruct->AI_monToSwitchIntoId + gActiveBank) = monToSwitchId;
|
||||||
}
|
}
|
||||||
|
|
||||||
*(gBattleStruct->field_5C + gActiveBank) = *(gBattleStruct->field_294 + gActiveBank);
|
*(gBattleStruct->monToSwitchIntoId + gActiveBank) = *(gBattleStruct->AI_monToSwitchIntoId + gActiveBank);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else if (ShouldUseItem())
|
else if (ShouldUseItem())
|
||||||
@@ -614,28 +614,25 @@ void AI_TrySwitchOrUseItem(void)
|
|||||||
EmitTwoReturnValues(1, ACTION_USE_MOVE, (gActiveBank ^ BIT_SIDE) << 8);
|
EmitTwoReturnValues(1, ACTION_USE_MOVE, (gActiveBank ^ BIT_SIDE) << 8);
|
||||||
}
|
}
|
||||||
|
|
||||||
#define TYPE_FORESIGHT 0xFE
|
|
||||||
#define TYPE_ENDTABLE 0xFF
|
|
||||||
|
|
||||||
static void ModulateByTypeEffectiveness(u8 atkType, u8 defType1, u8 defType2, u8 *var)
|
static void ModulateByTypeEffectiveness(u8 atkType, u8 defType1, u8 defType2, u8 *var)
|
||||||
{
|
{
|
||||||
s32 i = 0;
|
s32 i = 0;
|
||||||
|
|
||||||
while (gTypeEffectiveness[i] != TYPE_ENDTABLE)
|
while (TYPE_EFFECT_ATK_TYPE(i) != TYPE_ENDTABLE)
|
||||||
{
|
{
|
||||||
if (gTypeEffectiveness[i] == TYPE_FORESIGHT)
|
if (TYPE_EFFECT_ATK_TYPE(i) == TYPE_FORESIGHT)
|
||||||
{
|
{
|
||||||
i += 3;
|
i += 3;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
else if (gTypeEffectiveness[i] == atkType)
|
else if (TYPE_EFFECT_ATK_TYPE(i) == atkType)
|
||||||
{
|
{
|
||||||
// check type1
|
// check type1
|
||||||
if (gTypeEffectiveness[i + 1] == defType1)
|
if (TYPE_EFFECT_DEF_TYPE(i) == defType1)
|
||||||
*var = (*var * gTypeEffectiveness[i + 2]) / 10;
|
*var = (*var * TYPE_EFFECT_MULTIPLIER(i)) / 10;
|
||||||
// check type2
|
// check type2
|
||||||
if (gTypeEffectiveness[i + 1] == defType2 && defType1 != defType2)
|
if (TYPE_EFFECT_DEF_TYPE(i) == defType2 && defType1 != defType2)
|
||||||
*var = (*var * gTypeEffectiveness[i + 2]) / 10;
|
*var = (*var * TYPE_EFFECT_MULTIPLIER(i)) / 10;
|
||||||
}
|
}
|
||||||
i += 3;
|
i += 3;
|
||||||
}
|
}
|
||||||
@@ -654,8 +651,8 @@ u8 GetMostSuitableMonToSwitchInto(void)
|
|||||||
u8 invalidMons;
|
u8 invalidMons;
|
||||||
u16 move;
|
u16 move;
|
||||||
|
|
||||||
if (*(gBattleStruct->field_5C + gActiveBank) != 6)
|
if (*(gBattleStruct->monToSwitchIntoId + gActiveBank) != 6)
|
||||||
return *(gBattleStruct->field_5C + gActiveBank);
|
return *(gBattleStruct->monToSwitchIntoId + gActiveBank);
|
||||||
if (gBattleTypeFlags & BATTLE_TYPE_ARENA)
|
if (gBattleTypeFlags & BATTLE_TYPE_ARENA)
|
||||||
return gBattlePartyID[gActiveBank] + 1;
|
return gBattlePartyID[gActiveBank] + 1;
|
||||||
|
|
||||||
@@ -711,8 +708,8 @@ u8 GetMostSuitableMonToSwitchInto(void)
|
|||||||
&& !(gBitTable[i] & invalidMons)
|
&& !(gBitTable[i] & invalidMons)
|
||||||
&& gBattlePartyID[bankIn1] != i
|
&& gBattlePartyID[bankIn1] != i
|
||||||
&& gBattlePartyID[bankIn2] != i
|
&& gBattlePartyID[bankIn2] != i
|
||||||
&& i != *(gBattleStruct->field_5C + bankIn1)
|
&& i != *(gBattleStruct->monToSwitchIntoId + bankIn1)
|
||||||
&& i != *(gBattleStruct->field_5C + bankIn2))
|
&& i != *(gBattleStruct->monToSwitchIntoId + bankIn2))
|
||||||
{
|
{
|
||||||
u8 type1 = gBaseStats[species].type1;
|
u8 type1 = gBaseStats[species].type1;
|
||||||
u8 type2 = gBaseStats[species].type2;
|
u8 type2 = gBaseStats[species].type2;
|
||||||
@@ -771,9 +768,9 @@ u8 GetMostSuitableMonToSwitchInto(void)
|
|||||||
continue;
|
continue;
|
||||||
if (gBattlePartyID[bankIn2] == i)
|
if (gBattlePartyID[bankIn2] == i)
|
||||||
continue;
|
continue;
|
||||||
if (i == *(gBattleStruct->field_5C + bankIn1))
|
if (i == *(gBattleStruct->monToSwitchIntoId + bankIn1))
|
||||||
continue;
|
continue;
|
||||||
if (i == *(gBattleStruct->field_5C + bankIn2))
|
if (i == *(gBattleStruct->monToSwitchIntoId + bankIn2))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
for (j = 0; j < 4; j++)
|
for (j = 0; j < 4; j++)
|
||||||
|
|||||||
@@ -1168,7 +1168,7 @@ static void OpponentHandleLoadMonSprite(void)
|
|||||||
|
|
||||||
static void OpponentHandleSwitchInAnim(void)
|
static void OpponentHandleSwitchInAnim(void)
|
||||||
{
|
{
|
||||||
*(gBattleStruct->field_5C + gActiveBank) = 6;
|
*(gBattleStruct->monToSwitchIntoId + gActiveBank) = 6;
|
||||||
gBattlePartyID[gActiveBank] = gBattleBufferA[gActiveBank][1];
|
gBattlePartyID[gActiveBank] = gBattleBufferA[gActiveBank][1];
|
||||||
sub_80613DC(gActiveBank, gBattleBufferA[gActiveBank][2]);
|
sub_80613DC(gActiveBank, gBattleBufferA[gActiveBank][2]);
|
||||||
gBattleBankFunc[gActiveBank] = sub_805FDF0;
|
gBattleBankFunc[gActiveBank] = sub_805FDF0;
|
||||||
@@ -1627,7 +1627,7 @@ static void OpponentHandleChoosePokemon(void)
|
|||||||
{
|
{
|
||||||
s32 chosenMonId;
|
s32 chosenMonId;
|
||||||
|
|
||||||
if (*(gBattleStruct->field_294 + gActiveBank) == 6)
|
if (*(gBattleStruct->AI_monToSwitchIntoId + gActiveBank) == 6)
|
||||||
{
|
{
|
||||||
chosenMonId = GetMostSuitableMonToSwitchInto();
|
chosenMonId = GetMostSuitableMonToSwitchInto();
|
||||||
|
|
||||||
@@ -1670,12 +1670,12 @@ static void OpponentHandleChoosePokemon(void)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
chosenMonId = *(gBattleStruct->field_294 + gActiveBank);
|
chosenMonId = *(gBattleStruct->AI_monToSwitchIntoId + gActiveBank);
|
||||||
*(gBattleStruct->field_294 + gActiveBank) = 6;
|
*(gBattleStruct->AI_monToSwitchIntoId + gActiveBank) = 6;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
*(gBattleStruct->field_5C + gActiveBank) = chosenMonId;
|
*(gBattleStruct->monToSwitchIntoId + gActiveBank) = chosenMonId;
|
||||||
EmitChosenMonReturnValue(1, chosenMonId, NULL);
|
EmitChosenMonReturnValue(1, chosenMonId, NULL);
|
||||||
OpponentBufferExecCompleted();
|
OpponentBufferExecCompleted();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1581,7 +1581,7 @@ static void PlayerPartnerHandleChoosePokemon(void)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
*(gBattleStruct->field_5C + gActiveBank) = chosenMonId;
|
*(gBattleStruct->monToSwitchIntoId + gActiveBank) = chosenMonId;
|
||||||
EmitChosenMonReturnValue(1, chosenMonId, NULL);
|
EmitChosenMonReturnValue(1, chosenMonId, NULL);
|
||||||
PlayerPartnerBufferExecCompleted();
|
PlayerPartnerBufferExecCompleted();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1474,8 +1474,8 @@ static void RecordedOpponentHandleChooseItem(void)
|
|||||||
|
|
||||||
static void RecordedOpponentHandleChoosePokemon(void)
|
static void RecordedOpponentHandleChoosePokemon(void)
|
||||||
{
|
{
|
||||||
*(gBattleStruct->field_5C + gActiveBank) = RecordedBattle_ReadBankAction(gActiveBank);
|
*(gBattleStruct->monToSwitchIntoId + gActiveBank) = RecordedBattle_ReadBankAction(gActiveBank);
|
||||||
EmitChosenMonReturnValue(1, *(gBattleStruct->field_5C + gActiveBank), NULL);
|
EmitChosenMonReturnValue(1, *(gBattleStruct->monToSwitchIntoId + gActiveBank), NULL);
|
||||||
RecordedOpponentBufferExecCompleted();
|
RecordedOpponentBufferExecCompleted();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1492,8 +1492,8 @@ static void RecordedPlayerHandleChooseItem(void)
|
|||||||
|
|
||||||
static void RecordedPlayerHandleChoosePokemon(void)
|
static void RecordedPlayerHandleChoosePokemon(void)
|
||||||
{
|
{
|
||||||
*(gBattleStruct->field_5C + gActiveBank) = RecordedBattle_ReadBankAction(gActiveBank);
|
*(gBattleStruct->monToSwitchIntoId + gActiveBank) = RecordedBattle_ReadBankAction(gActiveBank);
|
||||||
EmitChosenMonReturnValue(1, *(gBattleStruct->field_5C + gActiveBank), NULL);
|
EmitChosenMonReturnValue(1, *(gBattleStruct->monToSwitchIntoId + gActiveBank), NULL);
|
||||||
RecordedPlayerBufferExecCompleted();
|
RecordedPlayerBufferExecCompleted();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -5330,7 +5330,7 @@ static void atk4C_get_switched_mon_data(void)
|
|||||||
|
|
||||||
gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]);
|
gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]);
|
||||||
|
|
||||||
gBattlePartyID[gActiveBank] = *(gBattleStruct->field_5C + gActiveBank);
|
gBattlePartyID[gActiveBank] = *(gBattleStruct->monToSwitchIntoId + gActiveBank);
|
||||||
|
|
||||||
EmitGetMonData(0, REQUEST_ALL_BATTLE, gBitTable[gBattlePartyID[gActiveBank]]);
|
EmitGetMonData(0, REQUEST_ALL_BATTLE, gBitTable[gBattlePartyID[gActiveBank]]);
|
||||||
MarkBufferBankForExecution(gActiveBank);
|
MarkBufferBankForExecution(gActiveBank);
|
||||||
@@ -5574,7 +5574,7 @@ static void atk4F_jump_if_cannot_switch(void)
|
|||||||
static void sub_804CF10(u8 arg0)
|
static void sub_804CF10(u8 arg0)
|
||||||
{
|
{
|
||||||
*(gBattleStruct->field_58 + gActiveBank) = gBattlePartyID[gActiveBank];
|
*(gBattleStruct->field_58 + gActiveBank) = gBattlePartyID[gActiveBank];
|
||||||
*(gBattleStruct->field_5C + gActiveBank) = 6;
|
*(gBattleStruct->monToSwitchIntoId + gActiveBank) = 6;
|
||||||
gBattleStruct->field_93 &= ~(gBitTable[gActiveBank]);
|
gBattleStruct->field_93 &= ~(gBitTable[gActiveBank]);
|
||||||
|
|
||||||
EmitChoosePokemon(0, 1, arg0, 0, gBattleStruct->field_60[gActiveBank]);
|
EmitChoosePokemon(0, 1, arg0, 0, gBattleStruct->field_60[gActiveBank]);
|
||||||
@@ -5638,7 +5638,7 @@ static void atk50_openpartyscreen(void)
|
|||||||
}
|
}
|
||||||
else if (!gSpecialStatuses[gActiveBank].flag40)
|
else if (!gSpecialStatuses[gActiveBank].flag40)
|
||||||
{
|
{
|
||||||
sub_804CF10(gBattleStruct->field_5C[2]);
|
sub_804CF10(gBattleStruct->monToSwitchIntoId[2]);
|
||||||
gSpecialStatuses[gActiveBank].flag40 = 1;
|
gSpecialStatuses[gActiveBank].flag40 = 1;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -5660,7 +5660,7 @@ static void atk50_openpartyscreen(void)
|
|||||||
}
|
}
|
||||||
else if (!gSpecialStatuses[gActiveBank].flag40)
|
else if (!gSpecialStatuses[gActiveBank].flag40)
|
||||||
{
|
{
|
||||||
sub_804CF10(gBattleStruct->field_5C[0]);
|
sub_804CF10(gBattleStruct->monToSwitchIntoId[0]);
|
||||||
gSpecialStatuses[gActiveBank].flag40 = 1;
|
gSpecialStatuses[gActiveBank].flag40 = 1;
|
||||||
}
|
}
|
||||||
else if (!(flags & 1))
|
else if (!(flags & 1))
|
||||||
@@ -5681,7 +5681,7 @@ static void atk50_openpartyscreen(void)
|
|||||||
}
|
}
|
||||||
else if (!gSpecialStatuses[gActiveBank].flag40)
|
else if (!gSpecialStatuses[gActiveBank].flag40)
|
||||||
{
|
{
|
||||||
sub_804CF10(gBattleStruct->field_5C[3]);
|
sub_804CF10(gBattleStruct->monToSwitchIntoId[3]);
|
||||||
gSpecialStatuses[gActiveBank].flag40 = 1;
|
gSpecialStatuses[gActiveBank].flag40 = 1;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -5703,7 +5703,7 @@ static void atk50_openpartyscreen(void)
|
|||||||
}
|
}
|
||||||
else if (!gSpecialStatuses[gActiveBank].flag40)
|
else if (!gSpecialStatuses[gActiveBank].flag40)
|
||||||
{
|
{
|
||||||
sub_804CF10(gBattleStruct->field_5C[1]);
|
sub_804CF10(gBattleStruct->monToSwitchIntoId[1]);
|
||||||
gSpecialStatuses[gActiveBank].flag40 = 1;
|
gSpecialStatuses[gActiveBank].flag40 = 1;
|
||||||
}
|
}
|
||||||
else if (!(flags & 2))
|
else if (!(flags & 2))
|
||||||
@@ -5766,7 +5766,7 @@ static void atk50_openpartyscreen(void)
|
|||||||
}
|
}
|
||||||
else if (!gSpecialStatuses[gActiveBank].flag40)
|
else if (!gSpecialStatuses[gActiveBank].flag40)
|
||||||
{
|
{
|
||||||
sub_804CF10(gBattleStruct->field_5C[0]);
|
sub_804CF10(gBattleStruct->monToSwitchIntoId[0]);
|
||||||
gSpecialStatuses[gActiveBank].flag40 = 1;
|
gSpecialStatuses[gActiveBank].flag40 = 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -5782,7 +5782,7 @@ static void atk50_openpartyscreen(void)
|
|||||||
}
|
}
|
||||||
else if (!gSpecialStatuses[gActiveBank].flag40)
|
else if (!gSpecialStatuses[gActiveBank].flag40)
|
||||||
{
|
{
|
||||||
sub_804CF10(gBattleStruct->field_5C[1]);
|
sub_804CF10(gBattleStruct->monToSwitchIntoId[1]);
|
||||||
gSpecialStatuses[gActiveBank].flag40 = 1;
|
gSpecialStatuses[gActiveBank].flag40 = 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -5836,10 +5836,10 @@ static void atk50_openpartyscreen(void)
|
|||||||
{
|
{
|
||||||
gActiveBank = bank;
|
gActiveBank = bank;
|
||||||
*(gBattleStruct->field_58 + gActiveBank) = gBattlePartyID[gActiveBank];
|
*(gBattleStruct->field_58 + gActiveBank) = gBattlePartyID[gActiveBank];
|
||||||
*(gBattleStruct->field_5C + gActiveBank) = 6;
|
*(gBattleStruct->monToSwitchIntoId + gActiveBank) = 6;
|
||||||
gBattleStruct->field_93 &= ~(gBitTable[gActiveBank]);
|
gBattleStruct->field_93 &= ~(gBitTable[gActiveBank]);
|
||||||
|
|
||||||
EmitChoosePokemon(0, hitmarkerFaintBits, *(gBattleStruct->field_5C + (gActiveBank ^ 2)), 0, gBattleStruct->field_60[gActiveBank]);
|
EmitChoosePokemon(0, hitmarkerFaintBits, *(gBattleStruct->monToSwitchIntoId + (gActiveBank ^ 2)), 0, gBattleStruct->field_60[gActiveBank]);
|
||||||
MarkBufferBankForExecution(gActiveBank);
|
MarkBufferBankForExecution(gActiveBank);
|
||||||
|
|
||||||
gBattlescriptCurrInstr += 6;
|
gBattlescriptCurrInstr += 6;
|
||||||
@@ -5886,7 +5886,7 @@ static void atk51_switch_handle_order(void)
|
|||||||
{
|
{
|
||||||
if (gBattleBufferB[i][0] == 0x22)
|
if (gBattleBufferB[i][0] == 0x22)
|
||||||
{
|
{
|
||||||
*(gBattleStruct->field_5C + i) = gBattleBufferB[i][1];
|
*(gBattleStruct->monToSwitchIntoId + i) = gBattleBufferB[i][1];
|
||||||
if (!(gBattleStruct->field_93 & gBitTable[i]))
|
if (!(gBattleStruct->field_93 & gBitTable[i]))
|
||||||
{
|
{
|
||||||
RecordedBattle_SetBankAction(i, gBattleBufferB[i][1]);
|
RecordedBattle_SetBankAction(i, gBattleBufferB[i][1]);
|
||||||
@@ -5908,7 +5908,7 @@ static void atk51_switch_handle_order(void)
|
|||||||
// fall through
|
// fall through
|
||||||
case 3:
|
case 3:
|
||||||
gBattleCommunication[0] = gBattleBufferB[gActiveBank][1];
|
gBattleCommunication[0] = gBattleBufferB[gActiveBank][1];
|
||||||
*(gBattleStruct->field_5C + gActiveBank) = gBattleBufferB[gActiveBank][1];
|
*(gBattleStruct->monToSwitchIntoId + gActiveBank) = gBattleBufferB[gActiveBank][1];
|
||||||
|
|
||||||
if (gBattleTypeFlags & BATTLE_TYPE_LINK && gBattleTypeFlags & BATTLE_TYPE_MULTI)
|
if (gBattleTypeFlags & BATTLE_TYPE_LINK && gBattleTypeFlags & BATTLE_TYPE_MULTI)
|
||||||
{
|
{
|
||||||
@@ -5922,7 +5922,7 @@ static void atk51_switch_handle_order(void)
|
|||||||
}
|
}
|
||||||
else if (gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER)
|
else if (gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER)
|
||||||
{
|
{
|
||||||
sub_80571DC(gActiveBank, *(gBattleStruct->field_5C + gActiveBank));
|
sub_80571DC(gActiveBank, *(gBattleStruct->monToSwitchIntoId + gActiveBank));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -8029,7 +8029,7 @@ static void atk8F_forcerandomswitch(void)
|
|||||||
|| GetMonData(&party[i], MON_DATA_IS_EGG) == TRUE
|
|| GetMonData(&party[i], MON_DATA_IS_EGG) == TRUE
|
||||||
|| GetMonData(&party[i], MON_DATA_HP) == 0);
|
|| GetMonData(&party[i], MON_DATA_HP) == 0);
|
||||||
}
|
}
|
||||||
*(gBattleStruct->field_5C + gBankTarget) = i;
|
*(gBattleStruct->monToSwitchIntoId + gBankTarget) = i;
|
||||||
|
|
||||||
if (!sub_81B1250())
|
if (!sub_81B1250())
|
||||||
sub_803BDA0(gBankTarget);
|
sub_803BDA0(gBankTarget);
|
||||||
|
|||||||
+1
-1
@@ -1805,7 +1805,7 @@ bool8 sub_80423F4(u8 bank, u8 r1, u8 r2)
|
|||||||
&& GetMonData(&party[i], MON_DATA_SPECIES2) != 0
|
&& GetMonData(&party[i], MON_DATA_SPECIES2) != 0
|
||||||
&& GetMonData(&party[i], MON_DATA_SPECIES2) != SPECIES_EGG
|
&& GetMonData(&party[i], MON_DATA_SPECIES2) != SPECIES_EGG
|
||||||
// FIXME: Using index[array] instead of array[index] is BAD!
|
// FIXME: Using index[array] instead of array[index] is BAD!
|
||||||
&& i != r1 && i != r2 && i != r7[gBattleStruct->field_5C] && i != r6[gBattleStruct->field_5C])
|
&& i != r1 && i != r2 && i != r7[gBattleStruct->monToSwitchIntoId] && i != r6[gBattleStruct->monToSwitchIntoId])
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
return (i == 6);
|
return (i == 6);
|
||||||
|
|||||||
Reference in New Issue
Block a user