Label remaining battle types

This commit is contained in:
GriffinR 2021-01-13 15:17:32 -05:00
parent 29e59c8eef
commit b9e1b050e1
22 changed files with 156 additions and 153 deletions

View File

@ -2860,7 +2860,7 @@ BattleScript_FaintedMonTryChooseAnother::
switchhandleorder BS_FAINTED, 0x2 switchhandleorder BS_FAINTED, 0x2
jumpifnotbattletype BATTLE_TYPE_TRAINER, BattleScript_FaintedMonChooseAnother jumpifnotbattletype BATTLE_TYPE_TRAINER, BattleScript_FaintedMonChooseAnother
jumpifbattletype BATTLE_TYPE_LINK, BattleScript_FaintedMonChooseAnother jumpifbattletype BATTLE_TYPE_LINK, BattleScript_FaintedMonChooseAnother
jumpifbattletype BATTLE_TYPE_x2000000, BattleScript_FaintedMonChooseAnother jumpifbattletype BATTLE_TYPE_RECORDED_LINK, BattleScript_FaintedMonChooseAnother
jumpifbattletype BATTLE_TYPE_FRONTIER, BattleScript_FaintedMonChooseAnother jumpifbattletype BATTLE_TYPE_FRONTIER, BattleScript_FaintedMonChooseAnother
jumpifbattletype BATTLE_TYPE_DOUBLE, BattleScript_FaintedMonChooseAnother jumpifbattletype BATTLE_TYPE_DOUBLE, BattleScript_FaintedMonChooseAnother
jumpifword CMP_COMMON_BITS, gHitMarker, HITMARKER_x400000, BattleScript_FaintedMonChooseAnother jumpifword CMP_COMMON_BITS, gHitMarker, HITMARKER_x400000, BattleScript_FaintedMonChooseAnother
@ -2978,7 +2978,7 @@ BattleScript_LocalBattleLostPrintTrainersWinText::
trainerslidein BS_ATTACKER trainerslidein BS_ATTACKER
waitstate waitstate
printstring STRINGID_TRAINER1WINTEXT printstring STRINGID_TRAINER1WINTEXT
jumpifbattletype BATTLE_TYPE_x800000, BattleScript_LocalBattleLostDoTrainer2WinText jumpifbattletype BATTLE_TYPE_TOWER_LINK_MULTI, BattleScript_LocalBattleLostDoTrainer2WinText
jumpifnotbattletype BATTLE_TYPE_TWO_OPPONENTS, BattleScript_LocalBattleLostEnd_ jumpifnotbattletype BATTLE_TYPE_TWO_OPPONENTS, BattleScript_LocalBattleLostEnd_
BattleScript_LocalBattleLostDoTrainer2WinText:: BattleScript_LocalBattleLostDoTrainer2WinText::
trainerslideout B_POSITION_OPPONENT_LEFT trainerslideout B_POSITION_OPPONENT_LEFT

View File

@ -44,38 +44,38 @@
#define BIT_FLANK 2 #define BIT_FLANK 2
// Battle Type Flags // Battle Type Flags
#define BATTLE_TYPE_DOUBLE (1 << 0) #define BATTLE_TYPE_DOUBLE (1 << 0)
#define BATTLE_TYPE_LINK (1 << 1) #define BATTLE_TYPE_LINK (1 << 1)
#define BATTLE_TYPE_IS_MASTER (1 << 2) // In not-link battles, it's always set. #define BATTLE_TYPE_IS_MASTER (1 << 2) // In not-link battles, it's always set.
#define BATTLE_TYPE_TRAINER (1 << 3) #define BATTLE_TYPE_TRAINER (1 << 3)
#define BATTLE_TYPE_FIRST_BATTLE (1 << 4) #define BATTLE_TYPE_FIRST_BATTLE (1 << 4)
#define BATTLE_TYPE_20 (1 << 5) #define BATTLE_TYPE_LINK_IN_BATTLE (1 << 5) // Set on battle entry, cleared on exit. Checked rarely
#define BATTLE_TYPE_MULTI (1 << 6) #define BATTLE_TYPE_MULTI (1 << 6)
#define BATTLE_TYPE_SAFARI (1 << 7) #define BATTLE_TYPE_SAFARI (1 << 7)
#define BATTLE_TYPE_BATTLE_TOWER (1 << 8) #define BATTLE_TYPE_BATTLE_TOWER (1 << 8)
#define BATTLE_TYPE_WALLY_TUTORIAL (1 << 9) #define BATTLE_TYPE_WALLY_TUTORIAL (1 << 9)
#define BATTLE_TYPE_ROAMER (1 << 10) #define BATTLE_TYPE_ROAMER (1 << 10)
#define BATTLE_TYPE_EREADER_TRAINER (1 << 11) #define BATTLE_TYPE_EREADER_TRAINER (1 << 11)
#define BATTLE_TYPE_KYOGRE_GROUDON (1 << 12) #define BATTLE_TYPE_KYOGRE_GROUDON (1 << 12)
#define BATTLE_TYPE_LEGENDARY (1 << 13) #define BATTLE_TYPE_LEGENDARY (1 << 13)
#define BATTLE_TYPE_REGI (1 << 14) #define BATTLE_TYPE_REGI (1 << 14)
#define BATTLE_TYPE_TWO_OPPONENTS (1 << 15) #define BATTLE_TYPE_TWO_OPPONENTS (1 << 15)
#define BATTLE_TYPE_DOME (1 << 16) #define BATTLE_TYPE_DOME (1 << 16)
#define BATTLE_TYPE_PALACE (1 << 17) #define BATTLE_TYPE_PALACE (1 << 17)
#define BATTLE_TYPE_ARENA (1 << 18) #define BATTLE_TYPE_ARENA (1 << 18)
#define BATTLE_TYPE_FACTORY (1 << 19) #define BATTLE_TYPE_FACTORY (1 << 19)
#define BATTLE_TYPE_PIKE (1 << 20) #define BATTLE_TYPE_PIKE (1 << 20)
#define BATTLE_TYPE_PYRAMID (1 << 21) #define BATTLE_TYPE_PYRAMID (1 << 21)
#define BATTLE_TYPE_INGAME_PARTNER (1 << 22) #define BATTLE_TYPE_INGAME_PARTNER (1 << 22)
#define BATTLE_TYPE_x800000 (1 << 23) #define BATTLE_TYPE_TOWER_LINK_MULTI (1 << 23)
#define BATTLE_TYPE_RECORDED (1 << 24) #define BATTLE_TYPE_RECORDED (1 << 24)
#define BATTLE_TYPE_x2000000 (1 << 25) #define BATTLE_TYPE_RECORDED_LINK (1 << 25)
#define BATTLE_TYPE_TRAINER_HILL (1 << 26) #define BATTLE_TYPE_TRAINER_HILL (1 << 26)
#define BATTLE_TYPE_SECRET_BASE (1 << 27) #define BATTLE_TYPE_SECRET_BASE (1 << 27)
#define BATTLE_TYPE_GROUDON (1 << 28) #define BATTLE_TYPE_GROUDON (1 << 28)
#define BATTLE_TYPE_KYOGRE (1 << 29) #define BATTLE_TYPE_KYOGRE (1 << 29)
#define BATTLE_TYPE_RAYQUAZA (1 << 30) #define BATTLE_TYPE_RAYQUAZA (1 << 30)
#define BATTLE_TYPE_x80000000 (1 << 31) #define BATTLE_TYPE_RECORDED_IS_MASTER (1 << 31)
#define BATTLE_TYPE_FRONTIER (BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_DOME | BATTLE_TYPE_PALACE | BATTLE_TYPE_ARENA | BATTLE_TYPE_FACTORY | BATTLE_TYPE_PIKE | BATTLE_TYPE_PYRAMID) #define BATTLE_TYPE_FRONTIER (BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_DOME | BATTLE_TYPE_PALACE | BATTLE_TYPE_ARENA | BATTLE_TYPE_FACTORY | BATTLE_TYPE_PIKE | BATTLE_TYPE_PYRAMID)
#define BATTLE_TYPE_FRONTIER_NO_PYRAMID (BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_DOME | BATTLE_TYPE_PALACE | BATTLE_TYPE_ARENA | BATTLE_TYPE_FACTORY | BATTLE_TYPE_PIKE) #define BATTLE_TYPE_FRONTIER_NO_PYRAMID (BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_DOME | BATTLE_TYPE_PALACE | BATTLE_TYPE_ARENA | BATTLE_TYPE_FACTORY | BATTLE_TYPE_PIKE)

View File

@ -3,7 +3,7 @@
extern u32 gRecordedBattleRngSeed; extern u32 gRecordedBattleRngSeed;
extern u32 gBattlePalaceMoveSelectionRngValue; extern u32 gBattlePalaceMoveSelectionRngValue;
extern u8 gUnknown_0203C7B4; extern u8 gRecordedBattleMultiplayerId;
void sub_8184DA4(u8 arg0); void sub_8184DA4(u8 arg0);
void sub_8184E58(void); void sub_8184E58(void);

View File

@ -293,7 +293,7 @@ void BattleAI_HandleItemUseBeforeAISetup(u8 defaultScoreMoves)
if ((gBattleTypeFlags & BATTLE_TYPE_TRAINER) if ((gBattleTypeFlags & BATTLE_TYPE_TRAINER)
&& !(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_SAFARI | BATTLE_TYPE_BATTLE_TOWER && !(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_SAFARI | BATTLE_TYPE_BATTLE_TOWER
| BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_SECRET_BASE | BATTLE_TYPE_FRONTIER | BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_SECRET_BASE | BATTLE_TYPE_FRONTIER
| BATTLE_TYPE_INGAME_PARTNER | BATTLE_TYPE_x2000000) | BATTLE_TYPE_INGAME_PARTNER | BATTLE_TYPE_RECORDED_LINK)
) )
) )
{ {

View File

@ -62,7 +62,7 @@ static bool8 ShouldSwitchIfWonderGuard(void)
} }
// Get party information. // 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) if ((gActiveBattler & BIT_FLANK) == B_FLANK_LEFT)
firstId = 0, lastId = 3; firstId = 0, lastId = 3;
@ -158,7 +158,7 @@ static bool8 FindMonThatAbsorbsOpponentsMove(void)
if (gBattleMons[gActiveBattler].ability == absorbingTypeAbility) if (gBattleMons[gActiveBattler].ability == absorbingTypeAbility)
return FALSE; 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) if ((gActiveBattler & BIT_FLANK) == B_FLANK_LEFT)
firstId = 0, lastId = 3; firstId = 0, lastId = 3;
@ -353,7 +353,7 @@ static bool8 FindMonWithFlagsAndSuperEffective(u8 flags, u8 moduloPercent)
battlerIn2 = gActiveBattler; 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) if ((gActiveBattler & BIT_FLANK) == 0)
firstId = 0, lastId = 3; firstId = 0, lastId = 3;
@ -464,7 +464,7 @@ static bool8 ShouldSwitch(void)
battlerIn2 = *activeBattlerPtr; 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) if ((gActiveBattler & BIT_FLANK) == B_FLANK_LEFT)
firstId = 0, lastId = 3; firstId = 0, lastId = 3;
@ -555,7 +555,7 @@ void AI_TrySwitchOrUseItem(void)
battlerIn2 = GetBattlerAtPosition(battlerIdentity ^ BIT_FLANK); 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) if ((gActiveBattler & BIT_FLANK) == B_FLANK_LEFT)
firstId = 0, lastId = 3; firstId = 0, lastId = 3;
@ -661,7 +661,7 @@ u8 GetMostSuitableMonToSwitchInto(void)
battlerIn2 = gActiveBattler; 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) if ((gActiveBattler & BIT_FLANK) == B_FLANK_LEFT)
firstId = 0, lastId = 3; firstId = 0, lastId = 3;

View File

@ -759,7 +759,7 @@ void LoadBattleMenuWindowGfx(void)
void DrawMainBattleBackground(void) void DrawMainBattleBackground(void)
{ {
if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_FRONTIER | BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_x2000000)) if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_FRONTIER | BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_RECORDED_LINK))
{ {
LZDecompressVram(gBattleTerrainTiles_Building, (void*)(BG_CHAR_ADDR(2))); LZDecompressVram(gBattleTerrainTiles_Building, (void*)(BG_CHAR_ADDR(2)));
LZDecompressVram(gBattleTerrainTilemap_Building, (void*)(BG_SCREEN_ADDR(26))); LZDecompressVram(gBattleTerrainTilemap_Building, (void*)(BG_SCREEN_ADDR(26)));
@ -1140,7 +1140,7 @@ void DrawBattleEntryBackground(void)
gBattle_BG2_Y = 0xFF5C; gBattle_BG2_Y = 0xFF5C;
LoadCompressedSpriteSheetUsingHeap(&sVsLettersSpriteSheet); LoadCompressedSpriteSheetUsingHeap(&sVsLettersSpriteSheet);
} }
else if (gBattleTypeFlags & (BATTLE_TYPE_FRONTIER | BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000 | BATTLE_TYPE_EREADER_TRAINER)) else if (gBattleTypeFlags & (BATTLE_TYPE_FRONTIER | BATTLE_TYPE_LINK | BATTLE_TYPE_RECORDED_LINK | BATTLE_TYPE_EREADER_TRAINER))
{ {
if (!(gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER) || gPartnerTrainerId == TRAINER_STEVEN_PARTNER) if (!(gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER) || gPartnerTrainerId == TRAINER_STEVEN_PARTNER)
{ {
@ -1221,7 +1221,7 @@ bool8 LoadChosenBattleElement(u8 caseId)
LoadCompressedPalette(gBattleTextboxPalette, 0, 0x40); LoadCompressedPalette(gBattleTextboxPalette, 0, 0x40);
break; break;
case 3: case 3:
if (gBattleTypeFlags & (BATTLE_TYPE_FRONTIER | BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000 | BATTLE_TYPE_EREADER_TRAINER)) if (gBattleTypeFlags & (BATTLE_TYPE_FRONTIER | BATTLE_TYPE_LINK | BATTLE_TYPE_RECORDED_LINK | BATTLE_TYPE_EREADER_TRAINER))
{ {
LZDecompressVram(gBattleTerrainTiles_Building, (void*)(BG_CHAR_ADDR(2))); LZDecompressVram(gBattleTerrainTiles_Building, (void*)(BG_CHAR_ADDR(2)));
} }
@ -1280,7 +1280,7 @@ bool8 LoadChosenBattleElement(u8 caseId)
} }
break; break;
case 4: case 4:
if (gBattleTypeFlags & (BATTLE_TYPE_FRONTIER | BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000 | BATTLE_TYPE_EREADER_TRAINER)) if (gBattleTypeFlags & (BATTLE_TYPE_FRONTIER | BATTLE_TYPE_LINK | BATTLE_TYPE_RECORDED_LINK | BATTLE_TYPE_EREADER_TRAINER))
{ {
LZDecompressVram(gBattleTerrainTilemap_Building, (void*)(BG_SCREEN_ADDR(26))); LZDecompressVram(gBattleTerrainTilemap_Building, (void*)(BG_SCREEN_ADDR(26)));
} }
@ -1342,7 +1342,7 @@ bool8 LoadChosenBattleElement(u8 caseId)
} }
break; break;
case 5: case 5:
if (gBattleTypeFlags & (BATTLE_TYPE_FRONTIER | BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000 | BATTLE_TYPE_EREADER_TRAINER)) if (gBattleTypeFlags & (BATTLE_TYPE_FRONTIER | BATTLE_TYPE_LINK | BATTLE_TYPE_RECORDED_LINK | BATTLE_TYPE_EREADER_TRAINER))
{ {
LoadCompressedPalette(gBattleTerrainPalette_Frontier, 0x20, 0x60); LoadCompressedPalette(gBattleTerrainPalette_Frontier, 0x20, 0x60);
} }

View File

@ -1260,7 +1260,7 @@ static void OpponentHandleDrawTrainerPic(void)
} }
else if (gBattleTypeFlags & BATTLE_TYPE_FRONTIER) else if (gBattleTypeFlags & BATTLE_TYPE_FRONTIER)
{ {
if (gBattleTypeFlags & (BATTLE_TYPE_TWO_OPPONENTS | BATTLE_TYPE_x800000)) if (gBattleTypeFlags & (BATTLE_TYPE_TWO_OPPONENTS | BATTLE_TYPE_TOWER_LINK_MULTI))
{ {
if (gActiveBattler == 1) if (gActiveBattler == 1)
trainerPicId = GetFrontierTrainerFrontSpriteId(gTrainerBattleOpponent_A); trainerPicId = GetFrontierTrainerFrontSpriteId(gTrainerBattleOpponent_A);
@ -1344,7 +1344,7 @@ static void OpponentHandleTrainerSlide(void)
} }
else if (gBattleTypeFlags & BATTLE_TYPE_FRONTIER) else if (gBattleTypeFlags & BATTLE_TYPE_FRONTIER)
{ {
if (gBattleTypeFlags & (BATTLE_TYPE_TWO_OPPONENTS | BATTLE_TYPE_x800000)) if (gBattleTypeFlags & (BATTLE_TYPE_TWO_OPPONENTS | BATTLE_TYPE_TOWER_LINK_MULTI))
{ {
if (gActiveBattler == 1) if (gActiveBattler == 1)
trainerPicId = GetFrontierTrainerFrontSpriteId(gTrainerBattleOpponent_A); trainerPicId = GetFrontierTrainerFrontSpriteId(gTrainerBattleOpponent_A);
@ -1632,7 +1632,7 @@ static void OpponentHandleChoosePokemon(void)
battler2 = GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT); battler2 = GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT);
} }
if (gBattleTypeFlags & (BATTLE_TYPE_TWO_OPPONENTS | BATTLE_TYPE_x800000)) if (gBattleTypeFlags & (BATTLE_TYPE_TWO_OPPONENTS | BATTLE_TYPE_TOWER_LINK_MULTI))
{ {
if (gActiveBattler == 1) if (gActiveBattler == 1)
firstId = 0, lastId = 3; firstId = 0, lastId = 3;

View File

@ -1236,7 +1236,7 @@ static void RecordedOpponentHandleDrawTrainerPic(void)
} }
else else
{ {
trainerPicId = PlayerGenderToFrontTrainerPicId(gLinkPlayers[gUnknown_0203C7B4 ^ BIT_SIDE].gender); trainerPicId = PlayerGenderToFrontTrainerPicId(gLinkPlayers[gRecordedBattleMultiplayerId ^ BIT_SIDE].gender);
} }
} }

View File

@ -1187,12 +1187,12 @@ static void RecordedPlayerHandleDrawTrainerPic(void)
s16 xPos, yPos; s16 xPos, yPos;
u32 trainerPicId; u32 trainerPicId;
if (gBattleTypeFlags & BATTLE_TYPE_x2000000) if (gBattleTypeFlags & BATTLE_TYPE_RECORDED_LINK)
{ {
if (gBattleTypeFlags & BATTLE_TYPE_MULTI) if (gBattleTypeFlags & BATTLE_TYPE_MULTI)
trainerPicId = GetActiveBattlerLinkPlayerGender(); trainerPicId = GetActiveBattlerLinkPlayerGender();
else else
trainerPicId = gLinkPlayers[gUnknown_0203C7B4].gender; trainerPicId = gLinkPlayers[gRecordedBattleMultiplayerId].gender;
} }
else else
{ {
@ -1666,7 +1666,7 @@ static void RecordedPlayerHandleIntroTrainerBallThrow(void)
StartSpriteAnim(&gSprites[gBattlerSpriteIds[gActiveBattler]], 1); StartSpriteAnim(&gSprites[gBattlerSpriteIds[gActiveBattler]], 1);
paletteNum = AllocSpritePalette(0xD6F9); paletteNum = AllocSpritePalette(0xD6F9);
if (gBattleTypeFlags & BATTLE_TYPE_x2000000) if (gBattleTypeFlags & BATTLE_TYPE_RECORDED_LINK)
trainerPicId = gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].gender; trainerPicId = gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].gender;
else else
trainerPicId = gSaveBlock2Ptr->playerGender; trainerPicId = gSaveBlock2Ptr->playerGender;

View File

@ -174,9 +174,9 @@ static void InitSinglePlayerBtlControllers(void)
if (gBattleTypeFlags & BATTLE_TYPE_RECORDED) if (gBattleTypeFlags & BATTLE_TYPE_RECORDED)
{ {
if (gBattleTypeFlags & BATTLE_TYPE_x2000000) if (gBattleTypeFlags & BATTLE_TYPE_RECORDED_LINK)
{ {
if (gBattleTypeFlags & BATTLE_TYPE_x80000000) if (gBattleTypeFlags & BATTLE_TYPE_RECORDED_IS_MASTER)
{ {
gBattleMainFunc = BeginBattleIntro; gBattleMainFunc = BeginBattleIntro;
@ -259,9 +259,9 @@ static void InitSinglePlayerBtlControllers(void)
} }
else if (gBattleTypeFlags & BATTLE_TYPE_MULTI) else if (gBattleTypeFlags & BATTLE_TYPE_MULTI)
{ {
u8 var; // multiplayer Id in a recorded battle? u8 multiplayerId;
for (var = gUnknown_0203C7B4, i = 0; i < MAX_BATTLERS_COUNT; i++) for (multiplayerId = gRecordedBattleMultiplayerId, i = 0; i < MAX_BATTLERS_COUNT; i++)
{ {
switch (gLinkPlayers[i].id) switch (gLinkPlayers[i].id)
{ {
@ -275,7 +275,7 @@ static void InitSinglePlayerBtlControllers(void)
break; break;
} }
if (i == var) if (i == multiplayerId)
{ {
gBattlerControllerFuncs[gLinkPlayers[i].id] = SetControllerToRecordedPlayer; gBattlerControllerFuncs[gLinkPlayers[i].id] = SetControllerToRecordedPlayer;
switch (gLinkPlayers[i].id) switch (gLinkPlayers[i].id)
@ -292,8 +292,8 @@ static void InitSinglePlayerBtlControllers(void)
break; break;
} }
} }
else if ((!(gLinkPlayers[i].id & 1) && !(gLinkPlayers[var].id & 1)) else if ((!(gLinkPlayers[i].id & 1) && !(gLinkPlayers[multiplayerId].id & 1))
|| ((gLinkPlayers[i].id & 1) && (gLinkPlayers[var].id & 1))) || ((gLinkPlayers[i].id & 1) && (gLinkPlayers[multiplayerId].id & 1)))
{ {
gBattlerControllerFuncs[gLinkPlayers[i].id] = SetControllerToRecordedPlayer; gBattlerControllerFuncs[gLinkPlayers[i].id] = SetControllerToRecordedPlayer;
switch (gLinkPlayers[i].id) switch (gLinkPlayers[i].id)
@ -337,7 +337,7 @@ static void InitSinglePlayerBtlControllers(void)
gBattlerControllerFuncs[2] = SetControllerToRecordedPlayer; gBattlerControllerFuncs[2] = SetControllerToRecordedPlayer;
gBattlerPositions[2] = B_POSITION_PLAYER_RIGHT; gBattlerPositions[2] = B_POSITION_PLAYER_RIGHT;
if (gBattleTypeFlags & BATTLE_TYPE_x2000000) if (gBattleTypeFlags & BATTLE_TYPE_RECORDED_LINK)
{ {
gBattlerControllerFuncs[1] = SetControllerToRecordedOpponent; gBattlerControllerFuncs[1] = SetControllerToRecordedOpponent;
gBattlerPositions[1] = B_POSITION_OPPONENT_LEFT; gBattlerPositions[1] = B_POSITION_OPPONENT_LEFT;
@ -362,7 +362,7 @@ static void InitSinglePlayerBtlControllers(void)
gBattlerControllerFuncs[3] = SetControllerToRecordedPlayer; gBattlerControllerFuncs[3] = SetControllerToRecordedPlayer;
gBattlerPositions[3] = B_POSITION_PLAYER_RIGHT; gBattlerPositions[3] = B_POSITION_PLAYER_RIGHT;
if (gBattleTypeFlags & BATTLE_TYPE_x2000000) if (gBattleTypeFlags & BATTLE_TYPE_RECORDED_LINK)
{ {
gBattlerControllerFuncs[0] = SetControllerToRecordedOpponent; gBattlerControllerFuncs[0] = SetControllerToRecordedOpponent;
gBattlerPositions[0] = B_POSITION_OPPONENT_LEFT; gBattlerPositions[0] = B_POSITION_OPPONENT_LEFT;
@ -825,7 +825,7 @@ void sub_8033648(void)
s32 j; s32 j;
u8 *recvBuffer; u8 *recvBuffer;
if (gReceivedRemoteLinkPlayers != 0 && (gBattleTypeFlags & BATTLE_TYPE_20)) if (gReceivedRemoteLinkPlayers != 0 && (gBattleTypeFlags & BATTLE_TYPE_LINK_IN_BATTLE))
{ {
DestroyTask_RfuIdle(); DestroyTask_RfuIdle();
for (i = 0; i < GetLinkPlayerCount(); i++) for (i = 0; i < GetLinkPlayerCount(); i++)

View File

@ -357,7 +357,7 @@ static void BattleIntroSlide3(u8 taskId)
SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(8, 8)); SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(8, 8));
SetGpuReg(REG_OFFSET_BLDY, 0); SetGpuReg(REG_OFFSET_BLDY, 0);
gTasks[taskId].data[4] = BLDALPHA_BLEND(8, 8); gTasks[taskId].data[4] = BLDALPHA_BLEND(8, 8);
if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000)) if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_RECORDED_LINK))
{ {
gTasks[taskId].data[2] = 16; gTasks[taskId].data[2] = 16;
gTasks[taskId].data[0]++; gTasks[taskId].data[0]++;

View File

@ -1109,7 +1109,7 @@ static void CB2_HandleStartBattle(void)
SetMainCallback2(BattleMainCB2); SetMainCallback2(BattleMainCB2);
if (gBattleTypeFlags & BATTLE_TYPE_LINK) if (gBattleTypeFlags & BATTLE_TYPE_LINK)
{ {
gBattleTypeFlags |= BATTLE_TYPE_20; gBattleTypeFlags |= BATTLE_TYPE_LINK_IN_BATTLE;
} }
} }
break; break;
@ -1363,7 +1363,7 @@ static void CB2_HandleStartMultiPartnerBattle(void)
SetMainCallback2(BattleMainCB2); SetMainCallback2(BattleMainCB2);
if (gBattleTypeFlags & BATTLE_TYPE_LINK) if (gBattleTypeFlags & BATTLE_TYPE_LINK)
{ {
gBattleTypeFlags |= BATTLE_TYPE_20; gBattleTypeFlags |= BATTLE_TYPE_LINK_IN_BATTLE;
} }
} }
break; break;
@ -1816,7 +1816,7 @@ static void CB2_HandleStartMultiBattle(void)
if (gBattleTypeFlags & BATTLE_TYPE_LINK) if (gBattleTypeFlags & BATTLE_TYPE_LINK)
{ {
gTrainerBattleOpponent_A = TRAINER_LINK_OPPONENT; gTrainerBattleOpponent_A = TRAINER_LINK_OPPONENT;
gBattleTypeFlags |= BATTLE_TYPE_20; gBattleTypeFlags |= BATTLE_TYPE_LINK_IN_BATTLE;
} }
} }
break; break;
@ -2180,7 +2180,7 @@ void sub_8038D64(void)
SetHBlankCallback(NULL); SetHBlankCallback(NULL);
SetVBlankCallback(NULL); SetVBlankCallback(NULL);
gBattleTypeFlags &= ~(BATTLE_TYPE_20); gBattleTypeFlags &= ~(BATTLE_TYPE_LINK_IN_BATTLE);
if (gBattleTypeFlags & BATTLE_TYPE_FRONTIER) if (gBattleTypeFlags & BATTLE_TYPE_FRONTIER)
{ {
@ -2803,7 +2803,7 @@ void SpriteCb_OpponentMonFromBall(struct Sprite *sprite)
{ {
if (sprite->affineAnimEnded) if (sprite->affineAnimEnded)
{ {
if (!(gHitMarker & HITMARKER_NO_ANIMATIONS) || gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000)) if (!(gHitMarker & HITMARKER_NO_ANIMATIONS) || gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_RECORDED_LINK))
{ {
if (HasTwoFramesAnimation(sprite->sSpeciesId)) if (HasTwoFramesAnimation(sprite->sSpeciesId))
StartSpriteAnim(sprite, 1); StartSpriteAnim(sprite, 1);
@ -3041,7 +3041,7 @@ static void BattleStartClearSetData(void)
if (!(gBattleTypeFlags & BATTLE_TYPE_LINK) && gSaveBlock2Ptr->optionsBattleSceneOff == TRUE) if (!(gBattleTypeFlags & BATTLE_TYPE_LINK) && gSaveBlock2Ptr->optionsBattleSceneOff == TRUE)
gHitMarker |= HITMARKER_NO_ANIMATIONS; gHitMarker |= HITMARKER_NO_ANIMATIONS;
} }
else if (!(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000)) && GetBattleSceneInRecordedBattle()) else if (!(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_RECORDED_LINK)) && GetBattleSceneInRecordedBattle())
gHitMarker |= HITMARKER_NO_ANIMATIONS; gHitMarker |= HITMARKER_NO_ANIMATIONS;
gBattleScripting.battleStyle = gSaveBlock2Ptr->optionsBattleStyle; gBattleScripting.battleStyle = gSaveBlock2Ptr->optionsBattleStyle;
@ -3396,7 +3396,7 @@ static void BattleIntroDrawTrainersOrMonsSprites(void)
&& !(gBattleTypeFlags & (BATTLE_TYPE_EREADER_TRAINER && !(gBattleTypeFlags & (BATTLE_TYPE_EREADER_TRAINER
| BATTLE_TYPE_FRONTIER | BATTLE_TYPE_FRONTIER
| BATTLE_TYPE_LINK | BATTLE_TYPE_LINK
| BATTLE_TYPE_x2000000 | BATTLE_TYPE_RECORDED_LINK
| BATTLE_TYPE_TRAINER_HILL))) | BATTLE_TYPE_TRAINER_HILL)))
{ {
HandleSetPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gActiveBattler].species), FLAG_SET_SEEN, gBattleMons[gActiveBattler].personality); HandleSetPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gActiveBattler].species), FLAG_SET_SEEN, gBattleMons[gActiveBattler].personality);
@ -3409,7 +3409,7 @@ static void BattleIntroDrawTrainersOrMonsSprites(void)
if (!(gBattleTypeFlags & (BATTLE_TYPE_EREADER_TRAINER if (!(gBattleTypeFlags & (BATTLE_TYPE_EREADER_TRAINER
| BATTLE_TYPE_FRONTIER | BATTLE_TYPE_FRONTIER
| BATTLE_TYPE_LINK | BATTLE_TYPE_LINK
| BATTLE_TYPE_x2000000 | BATTLE_TYPE_RECORDED_LINK
| BATTLE_TYPE_TRAINER_HILL))) | BATTLE_TYPE_TRAINER_HILL)))
{ {
HandleSetPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gActiveBattler].species), FLAG_SET_SEEN, gBattleMons[gActiveBattler].personality); HandleSetPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gActiveBattler].species), FLAG_SET_SEEN, gBattleMons[gActiveBattler].personality);
@ -3544,9 +3544,9 @@ static void BattleIntroPrintOpponentSendsOut(void)
if (!(gBattleTypeFlags & BATTLE_TYPE_RECORDED)) if (!(gBattleTypeFlags & BATTLE_TYPE_RECORDED))
position = B_POSITION_OPPONENT_LEFT; position = B_POSITION_OPPONENT_LEFT;
else if (gBattleTypeFlags & BATTLE_TYPE_x2000000) else if (gBattleTypeFlags & BATTLE_TYPE_RECORDED_LINK)
{ {
if (gBattleTypeFlags & BATTLE_TYPE_x80000000) if (gBattleTypeFlags & BATTLE_TYPE_RECORDED_IS_MASTER)
position = B_POSITION_OPPONENT_LEFT; position = B_POSITION_OPPONENT_LEFT;
else else
position = B_POSITION_PLAYER_LEFT; position = B_POSITION_PLAYER_LEFT;
@ -3564,9 +3564,9 @@ static void BattleIntroOpponent2SendsOutMonAnimation(void)
if (!(gBattleTypeFlags & BATTLE_TYPE_RECORDED)) if (!(gBattleTypeFlags & BATTLE_TYPE_RECORDED))
position = B_POSITION_OPPONENT_RIGHT; position = B_POSITION_OPPONENT_RIGHT;
else if (gBattleTypeFlags & BATTLE_TYPE_x2000000) else if (gBattleTypeFlags & BATTLE_TYPE_RECORDED_LINK)
{ {
if (gBattleTypeFlags & BATTLE_TYPE_x80000000) if (gBattleTypeFlags & BATTLE_TYPE_RECORDED_IS_MASTER)
position = B_POSITION_OPPONENT_RIGHT; position = B_POSITION_OPPONENT_RIGHT;
else else
position = B_POSITION_PLAYER_RIGHT; position = B_POSITION_PLAYER_RIGHT;
@ -3592,9 +3592,9 @@ static void BattleIntroOpponent1SendsOutMonAnimation(void)
if (gBattleTypeFlags & BATTLE_TYPE_RECORDED) if (gBattleTypeFlags & BATTLE_TYPE_RECORDED)
{ {
if (gBattleTypeFlags & BATTLE_TYPE_x2000000) if (gBattleTypeFlags & BATTLE_TYPE_RECORDED_LINK)
{ {
if (gBattleTypeFlags & BATTLE_TYPE_x80000000) if (gBattleTypeFlags & BATTLE_TYPE_RECORDED_IS_MASTER)
position = B_POSITION_OPPONENT_LEFT; position = B_POSITION_OPPONENT_LEFT;
else else
position = B_POSITION_PLAYER_LEFT; position = B_POSITION_PLAYER_LEFT;
@ -3635,7 +3635,7 @@ static void BattleIntroRecordMonsToDex(void)
&& !(gBattleTypeFlags & (BATTLE_TYPE_EREADER_TRAINER && !(gBattleTypeFlags & (BATTLE_TYPE_EREADER_TRAINER
| BATTLE_TYPE_FRONTIER | BATTLE_TYPE_FRONTIER
| BATTLE_TYPE_LINK | BATTLE_TYPE_LINK
| BATTLE_TYPE_x2000000 | BATTLE_TYPE_RECORDED_LINK
| BATTLE_TYPE_TRAINER_HILL))) | BATTLE_TYPE_TRAINER_HILL)))
{ {
HandleSetPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gActiveBattler].species), FLAG_SET_SEEN, gBattleMons[gActiveBattler].personality); HandleSetPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gActiveBattler].species), FLAG_SET_SEEN, gBattleMons[gActiveBattler].personality);
@ -3659,9 +3659,9 @@ static void BattleIntroPrintPlayerSendsOut(void)
if (!(gBattleTypeFlags & BATTLE_TYPE_RECORDED)) if (!(gBattleTypeFlags & BATTLE_TYPE_RECORDED))
position = B_POSITION_PLAYER_LEFT; position = B_POSITION_PLAYER_LEFT;
else if (gBattleTypeFlags & BATTLE_TYPE_x2000000) else if (gBattleTypeFlags & BATTLE_TYPE_RECORDED_LINK)
{ {
if (gBattleTypeFlags & BATTLE_TYPE_x80000000) if (gBattleTypeFlags & BATTLE_TYPE_RECORDED_IS_MASTER)
position = B_POSITION_PLAYER_LEFT; position = B_POSITION_PLAYER_LEFT;
else else
position = B_POSITION_OPPONENT_LEFT; position = B_POSITION_OPPONENT_LEFT;
@ -3682,9 +3682,9 @@ static void BattleIntroPlayer2SendsOutMonAnimation(void)
if (!(gBattleTypeFlags & BATTLE_TYPE_RECORDED)) if (!(gBattleTypeFlags & BATTLE_TYPE_RECORDED))
position = B_POSITION_PLAYER_RIGHT; position = B_POSITION_PLAYER_RIGHT;
else if (gBattleTypeFlags & BATTLE_TYPE_x2000000) else if (gBattleTypeFlags & BATTLE_TYPE_RECORDED_LINK)
{ {
if (gBattleTypeFlags & BATTLE_TYPE_x80000000) if (gBattleTypeFlags & BATTLE_TYPE_RECORDED_IS_MASTER)
position = B_POSITION_PLAYER_RIGHT; position = B_POSITION_PLAYER_RIGHT;
else else
position = B_POSITION_OPPONENT_RIGHT; position = B_POSITION_OPPONENT_RIGHT;
@ -3714,9 +3714,9 @@ static void BattleIntroPlayer1SendsOutMonAnimation(void)
if (!(gBattleTypeFlags & BATTLE_TYPE_RECORDED)) if (!(gBattleTypeFlags & BATTLE_TYPE_RECORDED))
position = B_POSITION_PLAYER_LEFT; position = B_POSITION_PLAYER_LEFT;
else if (gBattleTypeFlags & BATTLE_TYPE_x2000000) else if (gBattleTypeFlags & BATTLE_TYPE_RECORDED_LINK)
{ {
if (gBattleTypeFlags & BATTLE_TYPE_x80000000) if (gBattleTypeFlags & BATTLE_TYPE_RECORDED_IS_MASTER)
position = B_POSITION_PLAYER_LEFT; position = B_POSITION_PLAYER_LEFT;
else else
position = B_POSITION_OPPONENT_LEFT; position = B_POSITION_OPPONENT_LEFT;
@ -4155,7 +4155,7 @@ static void HandleTurnActionSelectionState(void)
if (gBattleTypeFlags & (BATTLE_TYPE_LINK if (gBattleTypeFlags & (BATTLE_TYPE_LINK
| BATTLE_TYPE_FRONTIER_NO_PYRAMID | BATTLE_TYPE_FRONTIER_NO_PYRAMID
| BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_EREADER_TRAINER
| BATTLE_TYPE_x2000000)) | BATTLE_TYPE_RECORDED_LINK))
{ {
RecordedBattle_ClearBattlerAction(gActiveBattler, 1); RecordedBattle_ClearBattlerAction(gActiveBattler, 1);
gSelectionBattleScripts[gActiveBattler] = BattleScript_ActionSelectionItemsCantBeUsed; gSelectionBattleScripts[gActiveBattler] = BattleScript_ActionSelectionItemsCantBeUsed;
@ -4263,7 +4263,7 @@ static void HandleTurnActionSelectionState(void)
return; return;
} }
else if (gBattleTypeFlags & BATTLE_TYPE_TRAINER else if (gBattleTypeFlags & BATTLE_TYPE_TRAINER
&& !(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000)) && !(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_RECORDED_LINK))
&& gBattleBufferB[gActiveBattler][1] == B_ACTION_RUN) && gBattleBufferB[gActiveBattler][1] == B_ACTION_RUN)
{ {
BattleScriptExecute(BattleScript_PrintCantRunFromTrainer); BattleScriptExecute(BattleScript_PrintCantRunFromTrainer);
@ -4574,7 +4574,7 @@ u8 GetWhoStrikesFirst(u8 battler1, u8 battler2, bool8 ignoreChosenMoves)
} }
// badge boost // badge boost
if (!(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000 | BATTLE_TYPE_FRONTIER)) if (!(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_RECORDED_LINK | BATTLE_TYPE_FRONTIER))
&& FlagGet(FLAG_BADGE03_GET) && FlagGet(FLAG_BADGE03_GET)
&& GetBattlerSide(battler1) == B_SIDE_PLAYER) && GetBattlerSide(battler1) == B_SIDE_PLAYER)
{ {
@ -4608,7 +4608,7 @@ u8 GetWhoStrikesFirst(u8 battler1, u8 battler2, bool8 ignoreChosenMoves)
} }
// badge boost // badge boost
if (!(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000 | BATTLE_TYPE_FRONTIER)) if (!(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_RECORDED_LINK | BATTLE_TYPE_FRONTIER))
&& FlagGet(FLAG_BADGE03_GET) && FlagGet(FLAG_BADGE03_GET)
&& GetBattlerSide(battler2) == B_SIDE_PLAYER) && GetBattlerSide(battler2) == B_SIDE_PLAYER)
{ {
@ -4892,7 +4892,7 @@ static void HandleEndTurn_BattleWon(void)
{ {
gCurrentActionFuncId = 0; gCurrentActionFuncId = 0;
if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000)) if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_RECORDED_LINK))
{ {
gSpecialVar_Result = gBattleOutcome; gSpecialVar_Result = gBattleOutcome;
gBattleTextBuff1[0] = gBattleOutcome; gBattleTextBuff1[0] = gBattleOutcome;
@ -4950,7 +4950,7 @@ static void HandleEndTurn_BattleLost(void)
{ {
gCurrentActionFuncId = 0; gCurrentActionFuncId = 0;
if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000)) if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_RECORDED_LINK))
{ {
if (gBattleTypeFlags & BATTLE_TYPE_FRONTIER) if (gBattleTypeFlags & BATTLE_TYPE_FRONTIER)
{ {
@ -5031,7 +5031,7 @@ static void HandleEndTurn_FinishBattle(void)
if (gCurrentActionFuncId == B_ACTION_TRY_FINISH || gCurrentActionFuncId == B_ACTION_FINISHED) if (gCurrentActionFuncId == B_ACTION_TRY_FINISH || gCurrentActionFuncId == B_ACTION_FINISHED)
{ {
if (!(gBattleTypeFlags & (BATTLE_TYPE_LINK if (!(gBattleTypeFlags & (BATTLE_TYPE_LINK
| BATTLE_TYPE_x2000000 | BATTLE_TYPE_RECORDED_LINK
| BATTLE_TYPE_FIRST_BATTLE | BATTLE_TYPE_FIRST_BATTLE
| BATTLE_TYPE_SAFARI | BATTLE_TYPE_SAFARI
| BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_EREADER_TRAINER
@ -5058,7 +5058,7 @@ static void HandleEndTurn_FinishBattle(void)
} }
if (!(gBattleTypeFlags & (BATTLE_TYPE_LINK if (!(gBattleTypeFlags & (BATTLE_TYPE_LINK
| BATTLE_TYPE_x2000000 | BATTLE_TYPE_RECORDED_LINK
| BATTLE_TYPE_TRAINER | BATTLE_TYPE_TRAINER
| BATTLE_TYPE_FIRST_BATTLE | BATTLE_TYPE_FIRST_BATTLE
| BATTLE_TYPE_SAFARI | BATTLE_TYPE_SAFARI

View File

@ -2009,9 +2009,9 @@ void BufferStringBattle(u16 stringID)
case STRINGID_INTROMSG: // first battle msg case STRINGID_INTROMSG: // first battle msg
if (gBattleTypeFlags & BATTLE_TYPE_TRAINER) if (gBattleTypeFlags & BATTLE_TYPE_TRAINER)
{ {
if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000)) if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_RECORDED_LINK))
{ {
if (gBattleTypeFlags & BATTLE_TYPE_x800000) if (gBattleTypeFlags & BATTLE_TYPE_TOWER_LINK_MULTI)
{ {
stringPtr = sText_TwoTrainersWantToBattle; stringPtr = sText_TwoTrainersWantToBattle;
} }
@ -2079,18 +2079,18 @@ void BufferStringBattle(u16 stringID)
{ {
if (gBattleTypeFlags & BATTLE_TYPE_TWO_OPPONENTS) if (gBattleTypeFlags & BATTLE_TYPE_TWO_OPPONENTS)
stringPtr = sText_TwoTrainersSentPkmn; stringPtr = sText_TwoTrainersSentPkmn;
else if (gBattleTypeFlags & BATTLE_TYPE_x800000) else if (gBattleTypeFlags & BATTLE_TYPE_TOWER_LINK_MULTI)
stringPtr = sText_TwoTrainersSentPkmn; stringPtr = sText_TwoTrainersSentPkmn;
else if (gBattleTypeFlags & BATTLE_TYPE_MULTI) else if (gBattleTypeFlags & BATTLE_TYPE_MULTI)
stringPtr = sText_TwoLinkTrainersSentOutPkmn; stringPtr = sText_TwoLinkTrainersSentOutPkmn;
else if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000)) else if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_RECORDED_LINK))
stringPtr = sText_LinkTrainerSentOutTwoPkmn; stringPtr = sText_LinkTrainerSentOutTwoPkmn;
else else
stringPtr = sText_Trainer1SentOutTwoPkmn; stringPtr = sText_Trainer1SentOutTwoPkmn;
} }
else else
{ {
if (!(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000))) if (!(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_RECORDED_LINK)))
stringPtr = sText_Trainer1SentOutPkmn; stringPtr = sText_Trainer1SentOutPkmn;
else if (gTrainerBattleOpponent_A == TRAINER_UNION_ROOM) else if (gTrainerBattleOpponent_A == TRAINER_UNION_ROOM)
stringPtr = sText_Trainer1SentOutPkmn; stringPtr = sText_Trainer1SentOutPkmn;
@ -2113,7 +2113,7 @@ void BufferStringBattle(u16 stringID)
} }
else else
{ {
if (gTrainerBattleOpponent_A == TRAINER_LINK_OPPONENT || gBattleTypeFlags & BATTLE_TYPE_x2000000) if (gTrainerBattleOpponent_A == TRAINER_LINK_OPPONENT || gBattleTypeFlags & BATTLE_TYPE_RECORDED_LINK)
{ {
if (gBattleTypeFlags & BATTLE_TYPE_MULTI) if (gBattleTypeFlags & BATTLE_TYPE_MULTI)
stringPtr = sText_LinkTrainer2WithdrewPkmn; stringPtr = sText_LinkTrainer2WithdrewPkmn;
@ -2140,9 +2140,9 @@ void BufferStringBattle(u16 stringID)
} }
else else
{ {
if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000)) if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_RECORDED_LINK))
{ {
if (gBattleTypeFlags & BATTLE_TYPE_x800000) if (gBattleTypeFlags & BATTLE_TYPE_TOWER_LINK_MULTI)
{ {
if (gBattleScripting.battler == 1) if (gBattleScripting.battler == 1)
stringPtr = sText_Trainer1SentOutPkmn2; stringPtr = sText_Trainer1SentOutPkmn2;
@ -2210,7 +2210,7 @@ void BufferStringBattle(u16 stringID)
switch (gBattleTextBuff1[0]) switch (gBattleTextBuff1[0])
{ {
case B_OUTCOME_WON: case B_OUTCOME_WON:
if (gBattleTypeFlags & BATTLE_TYPE_x800000) if (gBattleTypeFlags & BATTLE_TYPE_TOWER_LINK_MULTI)
stringPtr = sText_TwoInGameTrainersDefeated; stringPtr = sText_TwoInGameTrainersDefeated;
else else
stringPtr = sText_TwoLinkTrainersDefeated; stringPtr = sText_TwoLinkTrainersDefeated;
@ -2336,8 +2336,8 @@ u32 BattleStringExpandPlaceholders(const u8 *src, u8 *dst)
u8 multiplayerId; u8 multiplayerId;
s32 i; s32 i;
if (gBattleTypeFlags & BATTLE_TYPE_x2000000) if (gBattleTypeFlags & BATTLE_TYPE_RECORDED_LINK)
multiplayerId = gUnknown_0203C7B4; multiplayerId = gRecordedBattleMultiplayerId;
else else
multiplayerId = GetMultiplayerId(); multiplayerId = GetMultiplayerId();
@ -2477,7 +2477,7 @@ u32 BattleStringExpandPlaceholders(const u8 *src, u8 *dst)
toCpy = gMoveNames[gBattleMsgDataPtr->originallyUsedMove]; toCpy = gMoveNames[gBattleMsgDataPtr->originallyUsedMove];
break; break;
case B_TXT_LAST_ITEM: // last used item case B_TXT_LAST_ITEM: // last used item
if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000)) if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_RECORDED_LINK))
{ {
if (gLastUsedItem == ITEM_ENIGMA_BERRY) if (gLastUsedItem == ITEM_ENIGMA_BERRY)
{ {
@ -2858,7 +2858,7 @@ static void ExpandBattleTextBuffPlaceholders(const u8 *src, u8 *dst)
break; break;
case B_BUFF_ITEM: // item name case B_BUFF_ITEM: // item name
hword = T1_READ_16(&src[srcID + 1]); hword = T1_READ_16(&src[srcID + 1]);
if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000)) if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_RECORDED_LINK))
{ {
if (hword == ITEM_ENIGMA_BERRY) if (hword == ITEM_ENIGMA_BERRY)
{ {
@ -3018,7 +3018,7 @@ void BattlePutTextOnWindow(const u8 *text, u8 windowId)
if (windowId == 0 || windowId == 0x16) if (windowId == 0 || windowId == 0x16)
{ {
if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000)) if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_RECORDED_LINK))
speed = 1; speed = 1;
else if (gBattleTypeFlags & BATTLE_TYPE_RECORDED) else if (gBattleTypeFlags & BATTLE_TYPE_RECORDED)
speed = sRecordedBattleTextSpeeds[GetTextSpeedInRecordedBattle()]; speed = sRecordedBattleTextSpeeds[GetTextSpeedInRecordedBattle()];

View File

@ -2713,7 +2713,7 @@ void SetMoveEffect(bool8 primary, u8 certain)
(BATTLE_TYPE_EREADER_TRAINER (BATTLE_TYPE_EREADER_TRAINER
| BATTLE_TYPE_FRONTIER | BATTLE_TYPE_FRONTIER
| BATTLE_TYPE_LINK | BATTLE_TYPE_LINK
| BATTLE_TYPE_x2000000 | BATTLE_TYPE_RECORDED_LINK
| BATTLE_TYPE_SECRET_BASE))) | BATTLE_TYPE_SECRET_BASE)))
{ {
gBattlescriptCurrInstr++; gBattlescriptCurrInstr++;
@ -2722,7 +2722,7 @@ void SetMoveEffect(bool8 primary, u8 certain)
(BATTLE_TYPE_EREADER_TRAINER (BATTLE_TYPE_EREADER_TRAINER
| BATTLE_TYPE_FRONTIER | BATTLE_TYPE_FRONTIER
| BATTLE_TYPE_LINK | BATTLE_TYPE_LINK
| BATTLE_TYPE_x2000000 | BATTLE_TYPE_RECORDED_LINK
| BATTLE_TYPE_SECRET_BASE)) | BATTLE_TYPE_SECRET_BASE))
&& (gWishFutureKnock.knockedOffMons[side] & gBitTable[gBattlerPartyIndexes[gBattlerAttacker]])) && (gWishFutureKnock.knockedOffMons[side] & gBitTable[gBattlerPartyIndexes[gBattlerAttacker]]))
{ {
@ -3228,7 +3228,7 @@ static void Cmd_getexp(void)
case 0: // check if should receive exp at all case 0: // check if should receive exp at all
if (GetBattlerSide(gBattlerFainted) != B_SIDE_OPPONENT || (gBattleTypeFlags & if (GetBattlerSide(gBattlerFainted) != B_SIDE_OPPONENT || (gBattleTypeFlags &
(BATTLE_TYPE_LINK (BATTLE_TYPE_LINK
| BATTLE_TYPE_x2000000 | BATTLE_TYPE_RECORDED_LINK
| BATTLE_TYPE_TRAINER_HILL | BATTLE_TYPE_TRAINER_HILL
| BATTLE_TYPE_FRONTIER | BATTLE_TYPE_FRONTIER
| BATTLE_TYPE_SAFARI | BATTLE_TYPE_SAFARI
@ -3533,7 +3533,7 @@ static void Cmd_unknown_24(void)
if (HP_count == 0) if (HP_count == 0)
gBattleOutcome |= B_OUTCOME_WON; gBattleOutcome |= B_OUTCOME_WON;
if (gBattleOutcome == 0 && (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000))) if (gBattleOutcome == 0 && (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_RECORDED_LINK)))
{ {
s32 foundPlayer = 0; s32 foundPlayer = 0;
s32 foundOpponent; s32 foundOpponent;
@ -4634,7 +4634,7 @@ static void Cmd_switchinanim(void)
if (GetBattlerSide(gActiveBattler) == B_SIDE_OPPONENT if (GetBattlerSide(gActiveBattler) == B_SIDE_OPPONENT
&& !(gBattleTypeFlags & (BATTLE_TYPE_LINK && !(gBattleTypeFlags & (BATTLE_TYPE_LINK
| BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_EREADER_TRAINER
| BATTLE_TYPE_x2000000 | BATTLE_TYPE_RECORDED_LINK
| BATTLE_TYPE_TRAINER_HILL | BATTLE_TYPE_TRAINER_HILL
| BATTLE_TYPE_FRONTIER))) | BATTLE_TYPE_FRONTIER)))
HandleSetPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gActiveBattler].species), FLAG_SET_SEEN, gBattleMons[gActiveBattler].personality); HandleSetPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gActiveBattler].species), FLAG_SET_SEEN, gBattleMons[gActiveBattler].personality);
@ -4691,7 +4691,7 @@ static void Cmd_jumpifcantswitch(void)
} }
else if (gBattleTypeFlags & BATTLE_TYPE_MULTI) else if (gBattleTypeFlags & BATTLE_TYPE_MULTI)
{ {
if (gBattleTypeFlags & BATTLE_TYPE_x800000) if (gBattleTypeFlags & BATTLE_TYPE_TOWER_LINK_MULTI)
{ {
if (GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER) if (GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER)
{ {
@ -7137,7 +7137,7 @@ static void Cmd_forcerandomswitch(void)
party = gEnemyParty; party = gEnemyParty;
if ((gBattleTypeFlags & BATTLE_TYPE_BATTLE_TOWER && gBattleTypeFlags & BATTLE_TYPE_LINK) if ((gBattleTypeFlags & BATTLE_TYPE_BATTLE_TOWER && gBattleTypeFlags & BATTLE_TYPE_LINK)
|| (gBattleTypeFlags & BATTLE_TYPE_BATTLE_TOWER && gBattleTypeFlags & BATTLE_TYPE_x2000000) || (gBattleTypeFlags & BATTLE_TYPE_BATTLE_TOWER && gBattleTypeFlags & BATTLE_TYPE_RECORDED_LINK)
|| (gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER)) || (gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER))
{ {
if ((gBattlerTarget & BIT_FLANK) != 0) if ((gBattlerTarget & BIT_FLANK) != 0)
@ -7156,7 +7156,7 @@ static void Cmd_forcerandomswitch(void)
battler1PartyId = gBattlerPartyIndexes[gBattlerTarget ^ BIT_FLANK]; battler1PartyId = gBattlerPartyIndexes[gBattlerTarget ^ BIT_FLANK];
} }
else if ((gBattleTypeFlags & BATTLE_TYPE_MULTI && gBattleTypeFlags & BATTLE_TYPE_LINK) else if ((gBattleTypeFlags & BATTLE_TYPE_MULTI && gBattleTypeFlags & BATTLE_TYPE_LINK)
|| (gBattleTypeFlags & BATTLE_TYPE_MULTI && gBattleTypeFlags & BATTLE_TYPE_x2000000)) || (gBattleTypeFlags & BATTLE_TYPE_MULTI && gBattleTypeFlags & BATTLE_TYPE_RECORDED_LINK))
{ {
if (GetLinkTrainerFlankId(GetBattlerMultiplayerId(gBattlerTarget)) == 1) if (GetLinkTrainerFlankId(GetBattlerMultiplayerId(gBattlerTarget)) == 1)
{ {
@ -7256,8 +7256,8 @@ static void Cmd_forcerandomswitch(void)
if ((gBattleTypeFlags & BATTLE_TYPE_LINK && gBattleTypeFlags & BATTLE_TYPE_BATTLE_TOWER) if ((gBattleTypeFlags & BATTLE_TYPE_LINK && gBattleTypeFlags & BATTLE_TYPE_BATTLE_TOWER)
|| (gBattleTypeFlags & BATTLE_TYPE_LINK && gBattleTypeFlags & BATTLE_TYPE_MULTI) || (gBattleTypeFlags & BATTLE_TYPE_LINK && gBattleTypeFlags & BATTLE_TYPE_MULTI)
|| (gBattleTypeFlags & BATTLE_TYPE_x2000000 && gBattleTypeFlags & BATTLE_TYPE_BATTLE_TOWER) || (gBattleTypeFlags & BATTLE_TYPE_RECORDED_LINK && gBattleTypeFlags & BATTLE_TYPE_BATTLE_TOWER)
|| (gBattleTypeFlags & BATTLE_TYPE_x2000000 && gBattleTypeFlags & BATTLE_TYPE_MULTI)) || (gBattleTypeFlags & BATTLE_TYPE_RECORDED_LINK && gBattleTypeFlags & BATTLE_TYPE_MULTI))
{ {
SwitchPartyOrderLinkMulti(gBattlerTarget, i, 0); SwitchPartyOrderLinkMulti(gBattlerTarget, i, 0);
SwitchPartyOrderLinkMulti(gBattlerTarget ^ BIT_FLANK, i, 1); SwitchPartyOrderLinkMulti(gBattlerTarget ^ BIT_FLANK, i, 1);
@ -7337,7 +7337,7 @@ static void Cmd_tryconversiontypechange(void) // randomly changes user's type to
static void Cmd_givepaydaymoney(void) static void Cmd_givepaydaymoney(void)
{ {
if (!(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000)) && gPaydayMoney != 0) if (!(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_RECORDED_LINK)) && gPaydayMoney != 0)
{ {
u32 bonusMoney = gPaydayMoney * gBattleStruct->moneyMultiplier; u32 bonusMoney = gPaydayMoney * gBattleStruct->moneyMultiplier;
AddMoney(&gSaveBlock1Ptr->money, bonusMoney); AddMoney(&gSaveBlock1Ptr->money, bonusMoney);
@ -9044,7 +9044,7 @@ static void Cmd_tryswapitems(void) // trick
| BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_EREADER_TRAINER
| BATTLE_TYPE_FRONTIER | BATTLE_TYPE_FRONTIER
| BATTLE_TYPE_SECRET_BASE | BATTLE_TYPE_SECRET_BASE
| BATTLE_TYPE_x2000000)))) | BATTLE_TYPE_RECORDED_LINK))))
{ {
gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
} }
@ -9058,7 +9058,7 @@ static void Cmd_tryswapitems(void) // trick
| BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_EREADER_TRAINER
| BATTLE_TYPE_FRONTIER | BATTLE_TYPE_FRONTIER
| BATTLE_TYPE_SECRET_BASE | BATTLE_TYPE_SECRET_BASE
| BATTLE_TYPE_x2000000)) | BATTLE_TYPE_RECORDED_LINK))
&& (gWishFutureKnock.knockedOffMons[sideAttacker] & gBitTable[gBattlerPartyIndexes[gBattlerAttacker]] && (gWishFutureKnock.knockedOffMons[sideAttacker] & gBitTable[gBattlerPartyIndexes[gBattlerAttacker]]
|| gWishFutureKnock.knockedOffMons[sideTarget] & gBitTable[gBattlerPartyIndexes[gBattlerTarget]])) || gWishFutureKnock.knockedOffMons[sideTarget] & gBitTable[gBattlerPartyIndexes[gBattlerTarget]]))
{ {

View File

@ -2024,7 +2024,7 @@ void DoSpecialTrainerBattle(void)
gBattleTypeFlags |= BATTLE_TYPE_DOUBLE | BATTLE_TYPE_INGAME_PARTNER | BATTLE_TYPE_MULTI | BATTLE_TYPE_TWO_OPPONENTS; gBattleTypeFlags |= BATTLE_TYPE_DOUBLE | BATTLE_TYPE_INGAME_PARTNER | BATTLE_TYPE_MULTI | BATTLE_TYPE_TWO_OPPONENTS;
break; break;
case FRONTIER_MODE_LINK_MULTIS: case FRONTIER_MODE_LINK_MULTIS:
gBattleTypeFlags |= BATTLE_TYPE_DOUBLE | BATTLE_TYPE_LINK | BATTLE_TYPE_MULTI | BATTLE_TYPE_x800000; gBattleTypeFlags |= BATTLE_TYPE_DOUBLE | BATTLE_TYPE_LINK | BATTLE_TYPE_MULTI | BATTLE_TYPE_TOWER_LINK_MULTI;
FillFrontierTrainersParties(FRONTIER_MULTI_PARTY_SIZE); FillFrontierTrainersParties(FRONTIER_MULTI_PARTY_SIZE);
break; break;
} }
@ -3521,7 +3521,7 @@ bool32 ValidateBattleTowerRecord(u8 recordId) // unused
void TrySetLinkBattleTowerEnemyPartyLevel(void) void TrySetLinkBattleTowerEnemyPartyLevel(void)
{ {
if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000)) if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_RECORDED_LINK))
{ {
s32 i; s32 i;
u8 enemyLevel = SetFacilityPtrsGetLevel(); u8 enemyLevel = SetFacilityPtrsGetLevel();

View File

@ -1065,7 +1065,7 @@ static void TrySetBattleSeminarShow(void)
u16 powerOverride; u16 powerOverride;
u16 currMoveSaved; u16 currMoveSaved;
if (gBattleTypeFlags & (BATTLE_TYPE_DOUBLE | BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000)) if (gBattleTypeFlags & (BATTLE_TYPE_DOUBLE | BATTLE_TYPE_LINK | BATTLE_TYPE_RECORDED_LINK))
return; return;
else if (GetBattlerSide(gBattlerAttacker) == B_SIDE_OPPONENT) else if (GetBattlerSide(gBattlerAttacker) == B_SIDE_OPPONENT)
return; return;

View File

@ -452,7 +452,7 @@ void HandleAction_Run(void)
{ {
gBattlerAttacker = gBattlerByTurnOrder[gCurrentTurnActionNumber]; gBattlerAttacker = gBattlerByTurnOrder[gCurrentTurnActionNumber];
if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000)) if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_RECORDED_LINK))
{ {
gCurrentTurnActionNumber = gBattlersCount; gCurrentTurnActionNumber = gBattlersCount;
@ -2245,7 +2245,7 @@ bool8 HasNoMonsToSwitch(u8 battler, u8 partyIdBattlerOn1, u8 partyIdBattlerOn2)
} }
else if (gBattleTypeFlags & BATTLE_TYPE_MULTI) else if (gBattleTypeFlags & BATTLE_TYPE_MULTI)
{ {
if (gBattleTypeFlags & BATTLE_TYPE_x800000) if (gBattleTypeFlags & BATTLE_TYPE_TOWER_LINK_MULTI)
{ {
if (GetBattlerSide(battler) == B_SIDE_PLAYER) if (GetBattlerSide(battler) == B_SIDE_PLAYER)
{ {
@ -3966,7 +3966,7 @@ u8 IsMonDisobedient(void)
s32 calc; s32 calc;
u8 obedienceLevel = 0; u8 obedienceLevel = 0;
if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000)) if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_RECORDED_LINK))
return 0; return 0;
if (GetBattlerSide(gBattlerAttacker) == B_SIDE_OPPONENT) if (GetBattlerSide(gBattlerAttacker) == B_SIDE_OPPONENT)
return 0; return 0;

View File

@ -993,7 +993,7 @@ static void CB2_ReturnFromUnionRoomBattle(void)
void CB2_ReturnFromCableClubBattle(void) void CB2_ReturnFromCableClubBattle(void)
{ {
gBattleTypeFlags &= ~BATTLE_TYPE_20; gBattleTypeFlags &= ~BATTLE_TYPE_LINK_IN_BATTLE;
Overworld_ResetMapMusic(); Overworld_ResetMapMusic();
LoadPlayerParty(); LoadPlayerParty();
SavePlayerBag(); SavePlayerBag();

View File

@ -1489,7 +1489,7 @@ static void LinkCB_WaitCloseLink(void)
if (count == linkPlayerCount) if (count == linkPlayerCount)
{ {
// All ready, close link // All ready, close link
gBattleTypeFlags &= ~BATTLE_TYPE_20; gBattleTypeFlags &= ~BATTLE_TYPE_LINK_IN_BATTLE;
gLinkVSyncDisabled = TRUE; gLinkVSyncDisabled = TRUE;
CloseLink(); CloseLink();
gLinkCallback = NULL; gLinkCallback = NULL;
@ -1551,7 +1551,7 @@ static void LinkCB_WaitCloseLinkWithJP(void)
if (count == linkPlayerCount) if (count == linkPlayerCount)
{ {
// All ready, close link // All ready, close link
gBattleTypeFlags &= ~BATTLE_TYPE_20; gBattleTypeFlags &= ~BATTLE_TYPE_LINK_IN_BATTLE;
gLinkVSyncDisabled = TRUE; gLinkVSyncDisabled = TRUE;
CloseLink(); CloseLink();
gLinkCallback = NULL; gLinkCallback = NULL;

View File

@ -1380,7 +1380,7 @@ static void WaitAllReadyToCloseLink(void)
if (count == playerCount) if (count == playerCount)
{ {
// All ready, close link // All ready, close link
gBattleTypeFlags &= ~BATTLE_TYPE_20; gBattleTypeFlags &= ~BATTLE_TYPE_LINK_IN_BATTLE;
if (Rfu.parentChild == MODE_CHILD) if (Rfu.parentChild == MODE_CHILD)
{ {
Rfu.errorState = 3; Rfu.errorState = 3;

View File

@ -2685,7 +2685,7 @@ static u16 GetDeoxysStat(struct Pokemon *mon, s32 statId)
u16 statValue = 0; u16 statValue = 0;
u8 nature; u8 nature;
if (gBattleTypeFlags & BATTLE_TYPE_20 || GetMonData(mon, MON_DATA_SPECIES, NULL) != SPECIES_DEOXYS) if (gBattleTypeFlags & BATTLE_TYPE_LINK_IN_BATTLE || GetMonData(mon, MON_DATA_SPECIES, NULL) != SPECIES_DEOXYS)
return 0; return 0;
ivVal = GetMonData(mon, MON_DATA_HP_IV + statId, NULL); ivVal = GetMonData(mon, MON_DATA_HP_IV + statId, NULL);
@ -2729,8 +2729,8 @@ u16 GetUnionRoomTrainerPic(void)
u8 linkId; u8 linkId;
u32 arrId; u32 arrId;
if (gBattleTypeFlags & BATTLE_TYPE_x2000000) if (gBattleTypeFlags & BATTLE_TYPE_RECORDED_LINK)
linkId = gUnknown_0203C7B4 ^ 1; linkId = gRecordedBattleMultiplayerId ^ 1;
else else
linkId = GetMultiplayerId() ^ 1; linkId = GetMultiplayerId() ^ 1;
@ -2744,8 +2744,8 @@ u16 GetUnionRoomTrainerClass(void)
u8 linkId; u8 linkId;
u32 arrId; u32 arrId;
if (gBattleTypeFlags & BATTLE_TYPE_x2000000) if (gBattleTypeFlags & BATTLE_TYPE_RECORDED_LINK)
linkId = gUnknown_0203C7B4 ^ 1; linkId = gRecordedBattleMultiplayerId ^ 1;
else else
linkId = GetMultiplayerId() ^ 1; linkId = GetMultiplayerId() ^ 1;
@ -3367,7 +3367,7 @@ u8 CountAliveMonsInBattle(u8 caseId)
static bool8 ShouldGetStatBadgeBoost(u16 badgeFlag, u8 battlerId) static bool8 ShouldGetStatBadgeBoost(u16 badgeFlag, u8 battlerId)
{ {
if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_x2000000 | BATTLE_TYPE_FRONTIER)) if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_RECORDED_LINK | BATTLE_TYPE_FRONTIER))
return FALSE; return FALSE;
else if (GetBattlerSide(battlerId) != B_SIDE_PLAYER) else if (GetBattlerSide(battlerId) != B_SIDE_PLAYER)
return FALSE; return FALSE;
@ -6267,7 +6267,7 @@ u16 GetBattleBGM(void)
return MUS_VS_KYOGRE_GROUDON; return MUS_VS_KYOGRE_GROUDON;
else if (gBattleTypeFlags & BATTLE_TYPE_REGI) else if (gBattleTypeFlags & BATTLE_TYPE_REGI)
return MUS_VS_REGI; return MUS_VS_REGI;
else if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000)) else if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_RECORDED_LINK))
return MUS_VS_TRAINER; return MUS_VS_TRAINER;
else if (gBattleTypeFlags & BATTLE_TYPE_TRAINER) else if (gBattleTypeFlags & BATTLE_TYPE_TRAINER)
{ {
@ -6627,7 +6627,7 @@ static void Task_PokemonSummaryAnimateAfterDelay(u8 taskId)
void BattleAnimateFrontSprite(struct Sprite* sprite, u16 species, bool8 noCry, u8 arg3) void BattleAnimateFrontSprite(struct Sprite* sprite, u16 species, bool8 noCry, u8 arg3)
{ {
if (gHitMarker & HITMARKER_NO_ANIMATIONS && !(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000))) if (gHitMarker & HITMARKER_NO_ANIMATIONS && !(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_RECORDED_LINK)))
DoMonFrontSpriteAnimation(sprite, species, noCry, arg3 | 0x80); DoMonFrontSpriteAnimation(sprite, species, noCry, arg3 | 0x80);
else else
DoMonFrontSpriteAnimation(sprite, species, noCry, arg3); DoMonFrontSpriteAnimation(sprite, species, noCry, arg3);
@ -6705,7 +6705,7 @@ void StopPokemonAnimationDelayTask(void)
void BattleAnimateBackSprite(struct Sprite* sprite, u16 species) void BattleAnimateBackSprite(struct Sprite* sprite, u16 species)
{ {
if (gHitMarker & HITMARKER_NO_ANIMATIONS && !(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000))) if (gHitMarker & HITMARKER_NO_ANIMATIONS && !(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_RECORDED_LINK)))
{ {
sprite->callback = SpriteCallbackDummy; sprite->callback = SpriteCallbackDummy;
} }

View File

@ -55,7 +55,7 @@ struct RecordedBattleSave
u16 opponentA; u16 opponentA;
u16 opponentB; u16 opponentB;
u16 partnerId; u16 partnerId;
u16 field_4FA; u16 multiplayerId;
u8 lvlMode; u8 lvlMode;
u8 frontierFacility; u8 frontierFacility;
u8 frontierBrainSymbol; u8 frontierBrainSymbol;
@ -83,7 +83,7 @@ EWRAM_DATA static u8 sLvlMode = 0;
EWRAM_DATA static u8 sFrontierFacility = 0; EWRAM_DATA static u8 sFrontierFacility = 0;
EWRAM_DATA static u8 sFrontierBrainSymbol = 0; EWRAM_DATA static u8 sFrontierBrainSymbol = 0;
EWRAM_DATA static MainCallback sCallback2_AfterRecordedBattle = NULL; EWRAM_DATA static MainCallback sCallback2_AfterRecordedBattle = NULL;
EWRAM_DATA u8 gUnknown_0203C7B4 = 0; EWRAM_DATA u8 gRecordedBattleMultiplayerId = 0;
EWRAM_DATA static u8 sUnknown_0203C7B5 = 0; EWRAM_DATA static u8 sUnknown_0203C7B5 = 0;
EWRAM_DATA static u8 sBattleScene = 0; EWRAM_DATA static u8 sBattleScene = 0;
EWRAM_DATA static u8 sTextSpeed = 0; EWRAM_DATA static u8 sTextSpeed = 0;
@ -154,7 +154,7 @@ void sub_8184E58(void)
u8 linkPlayersCount; u8 linkPlayersCount;
u8 text[30]; u8 text[30];
gUnknown_0203C7B4 = GetMultiplayerId(); gRecordedBattleMultiplayerId = GetMultiplayerId();
linkPlayersCount = GetLinkPlayerCount(); linkPlayersCount = GetLinkPlayerCount();
for (i = 0; i < MAX_BATTLERS_COUNT; i++) for (i = 0; i < MAX_BATTLERS_COUNT; i++)
@ -362,11 +362,14 @@ bool32 MoveRecordedBattleToSaveData(void)
if (sBattleFlags & BATTLE_TYPE_LINK) if (sBattleFlags & BATTLE_TYPE_LINK)
{ {
battleSave->battleFlags = (sBattleFlags & ~(BATTLE_TYPE_LINK | BATTLE_TYPE_20)) | BATTLE_TYPE_x2000000; battleSave->battleFlags = (sBattleFlags & ~(BATTLE_TYPE_LINK | BATTLE_TYPE_LINK_IN_BATTLE)) | BATTLE_TYPE_RECORDED_LINK;
// BATTLE_TYPE_RECORDED_IS_MASTER set indicates battle will play
// out from player's perspective (i.e. player with back to camera)
// Otherwise player will appear on "opponent" side
if (sBattleFlags & BATTLE_TYPE_IS_MASTER) if (sBattleFlags & BATTLE_TYPE_IS_MASTER)
{ {
battleSave->battleFlags |= BATTLE_TYPE_x80000000; battleSave->battleFlags |= BATTLE_TYPE_RECORDED_IS_MASTER;
} }
else if (sBattleFlags & BATTLE_TYPE_MULTI) else if (sBattleFlags & BATTLE_TYPE_MULTI)
{ {
@ -374,13 +377,13 @@ bool32 MoveRecordedBattleToSaveData(void)
{ {
case 0: case 0:
case 2: case 2:
if (!(sPlayers[gUnknown_0203C7B4].battlerId & 1)) if (!(sPlayers[gRecordedBattleMultiplayerId].battlerId & 1))
battleSave->battleFlags |= BATTLE_TYPE_x80000000; battleSave->battleFlags |= BATTLE_TYPE_RECORDED_IS_MASTER;
break; break;
case 1: case 1:
case 3: case 3:
if ((sPlayers[gUnknown_0203C7B4].battlerId & 1)) if ((sPlayers[gRecordedBattleMultiplayerId].battlerId & 1))
battleSave->battleFlags |= BATTLE_TYPE_x80000000; battleSave->battleFlags |= BATTLE_TYPE_RECORDED_IS_MASTER;
break; break;
} }
} }
@ -393,7 +396,7 @@ bool32 MoveRecordedBattleToSaveData(void)
battleSave->opponentA = gTrainerBattleOpponent_A; battleSave->opponentA = gTrainerBattleOpponent_A;
battleSave->opponentB = gTrainerBattleOpponent_B; battleSave->opponentB = gTrainerBattleOpponent_B;
battleSave->partnerId = gPartnerTrainerId; battleSave->partnerId = gPartnerTrainerId;
battleSave->field_4FA = gUnknown_0203C7B4; battleSave->multiplayerId = gRecordedBattleMultiplayerId;
battleSave->lvlMode = gSaveBlock2Ptr->frontier.lvlMode; battleSave->lvlMode = gSaveBlock2Ptr->frontier.lvlMode;
battleSave->frontierFacility = sFrontierFacility; battleSave->frontierFacility = sFrontierFacility;
battleSave->frontierBrainSymbol = sFrontierBrainSymbol; battleSave->frontierBrainSymbol = sFrontierBrainSymbol;
@ -573,7 +576,7 @@ static void SetVariablesForRecordedBattle(struct RecordedBattleSave *src)
gTrainerBattleOpponent_A = src->opponentA; gTrainerBattleOpponent_A = src->opponentA;
gTrainerBattleOpponent_B = src->opponentB; gTrainerBattleOpponent_B = src->opponentB;
gPartnerTrainerId = src->partnerId; gPartnerTrainerId = src->partnerId;
gUnknown_0203C7B4 = src->field_4FA; gRecordedBattleMultiplayerId = src->multiplayerId;
sLvlMode = gSaveBlock2Ptr->frontier.lvlMode; sLvlMode = gSaveBlock2Ptr->frontier.lvlMode;
sFrontierFacility = src->frontierFacility; sFrontierFacility = src->frontierFacility;
sFrontierBrainSymbol = src->frontierBrainSymbol; sFrontierBrainSymbol = src->frontierBrainSymbol;
@ -715,7 +718,7 @@ void RecordedBattle_CopyBattlerMoves(void)
if (GetBattlerSide(gActiveBattler) == B_SIDE_OPPONENT) if (GetBattlerSide(gActiveBattler) == B_SIDE_OPPONENT)
return; return;
if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000)) if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_RECORDED_LINK))
return; return;
if (sUnknown_0203C7AC == 2) if (sUnknown_0203C7AC == 2)
return; return;
@ -732,7 +735,7 @@ void sub_818603C(u8 arg0)
{ {
s32 battlerId, j, k; s32 battlerId, j, k;
if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000)) if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_RECORDED_LINK))
return; return;
for (battlerId = 0; battlerId < gBattlersCount; battlerId++) for (battlerId = 0; battlerId < gBattlersCount; battlerId++)