summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/battle_ai_script_commands.c2
-rw-r--r--src/battle_controller_link_partner.c9
-rw-r--r--src/battle_controller_opponent.c7
-rw-r--r--src/battle_controller_recorded_opponent.c1
-rw-r--r--src/battle_controllers.c14
-rw-r--r--src/battle_gfx_sfx_util.c77
-rw-r--r--src/battle_interface.c6
-rw-r--r--src/battle_main.c50
-rw-r--r--src/battle_message.c3
-rw-r--r--src/battle_script_commands.c30
-rw-r--r--src/battle_tv.c8
-rw-r--r--src/battle_util.c283
-rw-r--r--src/pokemon.c22
-rw-r--r--src/recorded_battle.c116
14 files changed, 327 insertions, 301 deletions
diff --git a/src/battle_ai_script_commands.c b/src/battle_ai_script_commands.c
index 131598985..e82d22576 100644
--- a/src/battle_ai_script_commands.c
+++ b/src/battle_ai_script_commands.c
@@ -1969,7 +1969,7 @@ static void BattleAICmd_flee(void)
static void BattleAICmd_if_random_safari_flee(void)
{
- u8 safariFleeRate = gBattleStruct->field_7B * 5; // Safari flee rate, from 0-20.
+ u8 safariFleeRate = gBattleStruct->safariEscapeFactor * 5; // Safari flee rate, from 0-20.
if ((u8)(Random() % 100) < safariFleeRate)
gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1);
diff --git a/src/battle_controller_link_partner.c b/src/battle_controller_link_partner.c
index be9609e62..a88c4a076 100644
--- a/src/battle_controller_link_partner.c
+++ b/src/battle_controller_link_partner.c
@@ -12,6 +12,7 @@
#include "util.h"
#include "main.h"
#include "constants/songs.h"
+#include "constants/trainers.h"
#include "sound.h"
#include "window.h"
#include "m4a.h"
@@ -1133,12 +1134,12 @@ static void LinkPartnerHandleDrawTrainerPic(void)
if ((gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].version & 0xFF) == VERSION_FIRE_RED
|| (gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].version & 0xFF) == VERSION_LEAF_GREEN)
{
- trainerPicId = gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].gender + BACK_PIC_RED;
+ trainerPicId = gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].gender + TRAINER_BACK_PIC_RED;
}
else if ((gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].version & 0xFF) == VERSION_RUBY
|| (gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].version & 0xFF) == VERSION_SAPPHIRE)
{
- trainerPicId = gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].gender + BACK_PIC_RS_BRENDAN;
+ trainerPicId = gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].gender + TRAINER_BACK_PIC_RUBY_SAPPHIRE_BRENDAN;
}
else
{
@@ -1545,12 +1546,12 @@ static void LinkPartnerHandleIntroTrainerBallThrow(void)
if ((gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].version & 0xFF) == VERSION_FIRE_RED
|| (gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].version & 0xFF) == VERSION_LEAF_GREEN)
{
- trainerPicId = gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].gender + BACK_PIC_RED;
+ trainerPicId = gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].gender + TRAINER_BACK_PIC_RED;
}
else if ((gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].version & 0xFF) == VERSION_RUBY
|| (gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].version & 0xFF) == VERSION_SAPPHIRE)
{
- trainerPicId = gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].gender + BACK_PIC_RS_BRENDAN;
+ trainerPicId = gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].gender + TRAINER_BACK_PIC_RUBY_SAPPHIRE_BRENDAN;
}
else
{
diff --git a/src/battle_controller_opponent.c b/src/battle_controller_opponent.c
index c37423a72..2af17d32e 100644
--- a/src/battle_controller_opponent.c
+++ b/src/battle_controller_opponent.c
@@ -16,6 +16,7 @@
#include "constants/songs.h"
#include "sound.h"
#include "constants/moves.h"
+#include "constants/trainers.h"
#include "window.h"
#include "m4a.h"
#include "palette.h"
@@ -39,7 +40,7 @@ extern const struct CompressedSpritePalette gTrainerFrontPicPaletteTable[];
extern void sub_8172EF0(u8 battlerId, struct Pokemon *mon);
extern void sub_806A068(u16, u8);
extern void sub_81A57E4(u8 battlerId, u16 stringId);
-extern u8 sub_81A4CB0(void);
+extern u8 GetFrontierBrainTrainerPicIndex(void);
extern u8 sub_81D5588(u16 trainerId);
extern u8 GetFrontierTrainerFrontSpriteId(u16 trainerId);
extern u8 GetEreaderTrainerFrontSpriteId(void);
@@ -1234,7 +1235,7 @@ static void OpponentHandleDrawTrainerPic(void)
}
else if (gTrainerBattleOpponent_A == TRAINER_FRONTIER_BRAIN)
{
- trainerPicId = sub_81A4CB0();
+ trainerPicId = GetFrontierBrainTrainerPicIndex();
}
else if (gBattleTypeFlags & BATTLE_TYPE_x4000000)
{
@@ -1318,7 +1319,7 @@ static void OpponentHandleTrainerSlide(void)
}
else if (gTrainerBattleOpponent_A == TRAINER_FRONTIER_BRAIN)
{
- trainerPicId = sub_81A4CB0();
+ trainerPicId = GetFrontierBrainTrainerPicIndex();
}
else if (gBattleTypeFlags & BATTLE_TYPE_x4000000)
{
diff --git a/src/battle_controller_recorded_opponent.c b/src/battle_controller_recorded_opponent.c
index 4b44116dd..1fd1deebf 100644
--- a/src/battle_controller_recorded_opponent.c
+++ b/src/battle_controller_recorded_opponent.c
@@ -13,6 +13,7 @@
#include "util.h"
#include "main.h"
#include "constants/songs.h"
+#include "constants/trainers.h"
#include "sound.h"
#include "window.h"
#include "m4a.h"
diff --git a/src/battle_controllers.c b/src/battle_controllers.c
index 4da941ab0..01ad750db 100644
--- a/src/battle_controllers.c
+++ b/src/battle_controllers.c
@@ -1082,14 +1082,14 @@ void BtlController_EmitMoveAnimation(u8 bufferId, u16 move, u8 turnOfMove, u16 m
void BtlController_EmitPrintString(u8 bufferId, u16 stringID)
{
s32 i;
- struct StringInfoBattle* stringInfo;
+ struct BattleMsgData* stringInfo;
sBattleBuffersTransferData[0] = CONTROLLER_PRINTSTRING;
sBattleBuffersTransferData[1] = gBattleOutcome;
sBattleBuffersTransferData[2] = stringID;
sBattleBuffersTransferData[3] = (stringID & 0xFF00) >> 8;
- stringInfo = (struct StringInfoBattle*)(&sBattleBuffersTransferData[4]);
+ stringInfo = (struct BattleMsgData*)(&sBattleBuffersTransferData[4]);
stringInfo->currentMove = gCurrentMove;
stringInfo->originallyUsedMove = gChosenMove;
stringInfo->lastItem = gLastUsedItem;
@@ -1097,7 +1097,7 @@ void BtlController_EmitPrintString(u8 bufferId, u16 stringID)
stringInfo->scrActive = gBattleScripting.battler;
stringInfo->unk1605E = gBattleStruct->field_52;
stringInfo->hpScale = gBattleStruct->hpScale;
- stringInfo->StringBank = gPotentialItemEffectBattler;
+ stringInfo->itemEffectBattler = gPotentialItemEffectBattler;
stringInfo->moveType = gBattleMoves[gCurrentMove].type;
for (i = 0; i < MAX_BATTLERS_COUNT; i++)
@@ -1108,20 +1108,20 @@ void BtlController_EmitPrintString(u8 bufferId, u16 stringID)
stringInfo->textBuffs[1][i] = gBattleTextBuff2[i];
stringInfo->textBuffs[2][i] = gBattleTextBuff3[i];
}
- PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, sizeof(struct StringInfoBattle) + 4);
+ PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, sizeof(struct BattleMsgData) + 4);
}
void BtlController_EmitPrintSelectionString(u8 bufferId, u16 stringID)
{
s32 i;
- struct StringInfoBattle *stringInfo;
+ struct BattleMsgData *stringInfo;
sBattleBuffersTransferData[0] = CONTROLLER_PRINTSTRINGPLAYERONLY;
sBattleBuffersTransferData[1] = CONTROLLER_PRINTSTRINGPLAYERONLY;
sBattleBuffersTransferData[2] = stringID;
sBattleBuffersTransferData[3] = (stringID & 0xFF00) >> 8;
- stringInfo = (struct StringInfoBattle*)(&sBattleBuffersTransferData[4]);
+ stringInfo = (struct BattleMsgData*)(&sBattleBuffersTransferData[4]);
stringInfo->currentMove = gCurrentMove;
stringInfo->originallyUsedMove = gChosenMove;
stringInfo->lastItem = gLastUsedItem;
@@ -1137,7 +1137,7 @@ void BtlController_EmitPrintSelectionString(u8 bufferId, u16 stringID)
stringInfo->textBuffs[1][i] = gBattleTextBuff2[i];
stringInfo->textBuffs[2][i] = gBattleTextBuff3[i];
}
- PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, sizeof(struct StringInfoBattle) + 4);
+ PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, sizeof(struct BattleMsgData) + 4);
}
void BtlController_EmitChooseAction(u8 bufferId, u8 arg1, u16 arg2)
diff --git a/src/battle_gfx_sfx_util.c b/src/battle_gfx_sfx_util.c
index 47af1b9dd..8f17d488e 100644
--- a/src/battle_gfx_sfx_util.c
+++ b/src/battle_gfx_sfx_util.c
@@ -70,45 +70,45 @@ static void Task_ClearBitWhenSpecialAnimDone(u8 taskId);
static void ClearSpritesBattlerHealthboxAnimData(void);
// const rom data
-static const struct CompressedSpriteSheet gUnknown_0832C0D0 =
+static const struct CompressedSpriteSheet sSpriteSheet_SinglesPlayerHealthbox =
{
gUnknown_08C1F1C8, 0x1000, TAG_HEALTHBOX_PLAYER1_TILE
};
-static const struct CompressedSpriteSheet gUnknown_0832C0D8 =
+static const struct CompressedSpriteSheet sSpriteSheet_SinglesOpponentHealthbox =
{
gUnknown_08C1F46C, 0x1000, TAG_HEALTHBOX_OPPONENT1_TILE
};
-static const struct CompressedSpriteSheet gUnknown_0832C0E0[2] =
+static const struct CompressedSpriteSheet sSpriteSheets_DoublesPlayerHealthbox[2] =
{
{gUnknown_08C1F5E8, 0x800, TAG_HEALTHBOX_PLAYER1_TILE},
{gUnknown_08C1F5E8, 0x800, TAG_HEALTHBOX_PLAYER2_TILE}
};
-static const struct CompressedSpriteSheet gUnknown_0832C0F0[2] =
+static const struct CompressedSpriteSheet sSpriteSheets_DoublesOpponentHealthbox[2] =
{
{gUnknown_08C1F76C, 0x800, TAG_HEALTHBOX_OPPONENT1_TILE},
{gUnknown_08C1F76C, 0x800, TAG_HEALTHBOX_OPPONENT2_TILE}
};
-static const struct CompressedSpriteSheet gUnknown_0832C100 =
+static const struct CompressedSpriteSheet sSpriteSheet_SafariHealthbox =
{
gUnknown_08C1F8E8, 0x1000, TAG_HEALTHBOX_SAFARI_TILE
};
-static const struct CompressedSpriteSheet gUnknown_0832C108[MAX_BATTLERS_COUNT] =
+static const struct CompressedSpriteSheet sSpriteSheets_HealthBar[MAX_BATTLERS_COUNT] =
{
- {gBlankGfxCompressed, 0x0100, 0xd704},
- {gBlankGfxCompressed, 0x0120, 0xd705},
- {gBlankGfxCompressed, 0x0100, 0xd706},
- {gBlankGfxCompressed, 0x0120, 0xd707}
+ {gBlankGfxCompressed, 0x0100, TAG_HEALTHBAR_PLAYER1_TILE},
+ {gBlankGfxCompressed, 0x0120, TAG_HEALTHBAR_OPPONENT1_TILE},
+ {gBlankGfxCompressed, 0x0100, TAG_HEALTHBAR_PLAYER2_TILE},
+ {gBlankGfxCompressed, 0x0120, TAG_HEALTHBAR_OPPONENT2_TILE}
};
-static const struct SpritePalette gUnknown_0832C128[2] =
+static const struct SpritePalette sSpritePalettes_HealthBoxHealthBar[2] =
{
{gBattleInterface_BallStatusBarPal, TAG_HEALTHBOX_PAL},
- {gBattleInterface_BallDisplayPal, 0xd704}
+ {gBattleInterface_BallDisplayPal, TAG_HEALTHBAR_PAL}
};
// code
@@ -499,7 +499,7 @@ static void Task_ClearBitWhenSpecialAnimDone(u8 taskId)
#undef tBattlerId
-// great function to include newly added moves that don't have animation yet
+// Great function to include newly added moves that don't have animation yet.
bool8 IsMoveWithoutAnimation(u16 moveId, u8 animationTurn)
{
return FALSE;
@@ -679,29 +679,30 @@ void FreeTrainerFrontPicPalette(u16 frontPicId)
FreeSpritePaletteByTag(gTrainerFrontPicPaletteTable[frontPicId].tag);
}
-void sub_805DFFC(void)
+// Unused.
+void BattleLoadAllHealthBoxesGfxAtOnce(void)
{
u8 numberOfBattlers = 0;
u8 i;
- LoadSpritePalette(&gUnknown_0832C128[0]);
- LoadSpritePalette(&gUnknown_0832C128[1]);
+ LoadSpritePalette(&sSpritePalettes_HealthBoxHealthBar[0]);
+ LoadSpritePalette(&sSpritePalettes_HealthBoxHealthBar[1]);
if (!IsDoubleBattle())
{
- LoadCompressedObjectPic(&gUnknown_0832C0D0);
- LoadCompressedObjectPic(&gUnknown_0832C0D8);
+ LoadCompressedObjectPic(&sSpriteSheet_SinglesPlayerHealthbox);
+ LoadCompressedObjectPic(&sSpriteSheet_SinglesOpponentHealthbox);
numberOfBattlers = 2;
}
else
{
- LoadCompressedObjectPic(&gUnknown_0832C0E0[0]);
- LoadCompressedObjectPic(&gUnknown_0832C0E0[1]);
- LoadCompressedObjectPic(&gUnknown_0832C0F0[0]);
- LoadCompressedObjectPic(&gUnknown_0832C0F0[1]);
+ LoadCompressedObjectPic(&sSpriteSheets_DoublesPlayerHealthbox[0]);
+ LoadCompressedObjectPic(&sSpriteSheets_DoublesPlayerHealthbox[1]);
+ LoadCompressedObjectPic(&sSpriteSheets_DoublesOpponentHealthbox[0]);
+ LoadCompressedObjectPic(&sSpriteSheets_DoublesOpponentHealthbox[1]);
numberOfBattlers = 4;
}
for (i = 0; i < numberOfBattlers; i++)
- LoadCompressedObjectPic(&gUnknown_0832C108[gBattlerPositions[i]]);
+ LoadCompressedObjectPic(&sSpriteSheets_HealthBar[gBattlerPositions[i]]);
}
bool8 BattleLoadAllHealthBoxesGfx(u8 state)
@@ -712,45 +713,45 @@ bool8 BattleLoadAllHealthBoxesGfx(u8 state)
{
if (state == 1)
{
- LoadSpritePalette(&gUnknown_0832C128[0]);
- LoadSpritePalette(&gUnknown_0832C128[1]);
+ LoadSpritePalette(&sSpritePalettes_HealthBoxHealthBar[0]);
+ LoadSpritePalette(&sSpritePalettes_HealthBoxHealthBar[1]);
}
else if (!IsDoubleBattle())
{
if (state == 2)
{
if (gBattleTypeFlags & BATTLE_TYPE_SAFARI)
- LoadCompressedObjectPic(&gUnknown_0832C100);
+ LoadCompressedObjectPic(&sSpriteSheet_SafariHealthbox);
else
- LoadCompressedObjectPic(&gUnknown_0832C0D0);
+ LoadCompressedObjectPic(&sSpriteSheet_SinglesPlayerHealthbox);
}
else if (state == 3)
- LoadCompressedObjectPic(&gUnknown_0832C0D8);
+ LoadCompressedObjectPic(&sSpriteSheet_SinglesOpponentHealthbox);
else if (state == 4)
- LoadCompressedObjectPic(&gUnknown_0832C108[gBattlerPositions[0]]);
+ LoadCompressedObjectPic(&sSpriteSheets_HealthBar[gBattlerPositions[0]]);
else if (state == 5)
- LoadCompressedObjectPic(&gUnknown_0832C108[gBattlerPositions[1]]);
+ LoadCompressedObjectPic(&sSpriteSheets_HealthBar[gBattlerPositions[1]]);
else
retVal = TRUE;
}
else
{
if (state == 2)
- LoadCompressedObjectPic(&gUnknown_0832C0E0[0]);
+ LoadCompressedObjectPic(&sSpriteSheets_DoublesPlayerHealthbox[0]);
else if (state == 3)
- LoadCompressedObjectPic(&gUnknown_0832C0E0[1]);
+ LoadCompressedObjectPic(&sSpriteSheets_DoublesPlayerHealthbox[1]);
else if (state == 4)
- LoadCompressedObjectPic(&gUnknown_0832C0F0[0]);
+ LoadCompressedObjectPic(&sSpriteSheets_DoublesOpponentHealthbox[0]);
else if (state == 5)
- LoadCompressedObjectPic(&gUnknown_0832C0F0[1]);
+ LoadCompressedObjectPic(&sSpriteSheets_DoublesOpponentHealthbox[1]);
else if (state == 6)
- LoadCompressedObjectPic(&gUnknown_0832C108[gBattlerPositions[0]]);
+ LoadCompressedObjectPic(&sSpriteSheets_HealthBar[gBattlerPositions[0]]);
else if (state == 7)
- LoadCompressedObjectPic(&gUnknown_0832C108[gBattlerPositions[1]]);
+ LoadCompressedObjectPic(&sSpriteSheets_HealthBar[gBattlerPositions[1]]);
else if (state == 8)
- LoadCompressedObjectPic(&gUnknown_0832C108[gBattlerPositions[2]]);
+ LoadCompressedObjectPic(&sSpriteSheets_HealthBar[gBattlerPositions[2]]);
else if (state == 9)
- LoadCompressedObjectPic(&gUnknown_0832C108[gBattlerPositions[3]]);
+ LoadCompressedObjectPic(&sSpriteSheets_HealthBar[gBattlerPositions[3]]);
else
retVal = TRUE;
}
diff --git a/src/battle_interface.c b/src/battle_interface.c
index 6a30ed487..a6032adc3 100644
--- a/src/battle_interface.c
+++ b/src/battle_interface.c
@@ -1350,7 +1350,7 @@ static void UpdateHpTextInHealthboxInDoubles(u8 healthboxSpriteId, s16 value, u8
}
}
-// Prints mon's nature and flee rate. Probably used to test pokeblock feeders.
+// Prints mon's nature, catch and flee rate. Probably used to test pokeblock-related features.
static void PrintSafariMonInfo(u8 healthboxSpriteId, struct Pokemon *mon)
{
u8 text[20];
@@ -1391,8 +1391,8 @@ static void PrintSafariMonInfo(u8 healthboxSpriteId, struct Pokemon *mon)
}
healthBarSpriteId = gSprites[healthboxSpriteId].hMain_HealthBarSpriteId;
- ConvertIntToDecimalStringN(text + 6, gBattleStruct->field_7C, STR_CONV_MODE_RIGHT_ALIGN, 2);
- ConvertIntToDecimalStringN(text + 9, gBattleStruct->field_7B, STR_CONV_MODE_RIGHT_ALIGN, 2);
+ ConvertIntToDecimalStringN(text + 6, gBattleStruct->safariCatchFactor, STR_CONV_MODE_RIGHT_ALIGN, 2);
+ ConvertIntToDecimalStringN(text + 9, gBattleStruct->safariEscapeFactor, STR_CONV_MODE_RIGHT_ALIGN, 2);
text[5] = CHAR_SPACE;
text[8] = CHAR_SLASH;
RenderTextFont9(gMonSpritesGfxPtr->barFontGfx, 9, text);
diff --git a/src/battle_main.c b/src/battle_main.c
index dfe99e003..34558ab38 100644
--- a/src/battle_main.c
+++ b/src/battle_main.c
@@ -85,7 +85,6 @@ extern u8 gUnknown_0203CF00[];
extern const u16 gBattleTextboxPalette[];
extern const struct BgTemplate gBattleBgTemplates[];
extern const struct WindowTemplate *const gBattleWindowTemplates[];
-extern const u8 gUnknown_0831ACE0[];
extern const u8 *const gBattleScriptsForMoveEffects[];
extern const u8 *const gBattlescriptsForBallThrow[];
extern const u8 *const gBattlescriptsForRunningByItem[];
@@ -308,6 +307,9 @@ u8 gUnknown_03005D7C[MAX_BATTLERS_COUNT];
// 10 is ×1.0 TYPE_MUL_NORMAL
// 05 is ×0.5 TYPE_MUL_NOT_EFFECTIVE
// 00 is ×0.0 TYPE_MUL_NO_EFFECT
+
+static const s8 gUnknown_0831ACE0[] ={-32, -16, -16, -32, -32, 0, 0, 0};
+
const u8 gTypeEffectiveness[336] =
{
TYPE_NORMAL, TYPE_ROCK, TYPE_MUL_NOT_EFFECTIVE,
@@ -561,9 +563,9 @@ const u8 * const gStatusConditionStringsTable[7][2] =
{gStatusConditionString_LoveJpn, gText_Love}
};
-static const u8 sUnknown_0831BCE0[][3] = {{0, 0, 0}, {3, 5, 0}, {2, 3, 0}, {1, 2, 0}, {1, 1, 0}};
-static const u8 sUnknown_0831BCEF[] = {4, 3, 2, 1};
-static const u8 sUnknown_0831BCF3[] = {4, 4, 4, 4};
+static const u8 sPkblToEscapeFactor[][3] = {{0, 0, 0}, {3, 5, 0}, {2, 3, 0}, {1, 2, 0}, {1, 1, 0}};
+static const u8 sGoNearCounterToCatchFactor[] = {4, 3, 2, 1};
+static const u8 sGoNearCounterToEscapeFactor[] = {4, 4, 4, 4};
// code
void CB2_InitBattle(void)
@@ -1805,7 +1807,7 @@ static void CB2_HandleStartMultiBattle(void)
SetMainCallback2(BattleMainCB2);
if (gBattleTypeFlags & BATTLE_TYPE_LINK)
{
- gTrainerBattleOpponent_A = TRAINER_OPPONENT_800;
+ gTrainerBattleOpponent_A = TRAINER_LINK_OPPONENT;
gBattleTypeFlags |= BATTLE_TYPE_20;
}
}
@@ -3051,10 +3053,10 @@ static void BattleStartClearSetData(void)
gLeveledUpInBattle = 0;
gAbsentBattlerFlags = 0;
gBattleStruct->runTries = 0;
- gBattleStruct->field_79 = 0;
- gBattleStruct->field_7A = 0;
- *(&gBattleStruct->field_7C) = gBaseStats[GetMonData(&gEnemyParty[0], MON_DATA_SPECIES)].catchRate * 100 / 1275;
- gBattleStruct->field_7B = 3;
+ gBattleStruct->safariGoNearCounter = 0;
+ gBattleStruct->safariPkblThrowCounter = 0;
+ *(&gBattleStruct->safariCatchFactor) = gBaseStats[GetMonData(&gEnemyParty[0], MON_DATA_SPECIES)].catchRate * 100 / 1275;
+ gBattleStruct->safariEscapeFactor = 3;
gBattleStruct->wildVictorySong = 0;
gBattleStruct->moneyMultiplier = 1;
@@ -5746,14 +5748,14 @@ static void HandleAction_ThrowPokeblock(void)
if (gBattleResults.pokeblockThrows < 0xFF)
gBattleResults.pokeblockThrows++;
- if (gBattleStruct->field_7A < 3)
- gBattleStruct->field_7A++;
- if (gBattleStruct->field_7B > 1)
+ if (gBattleStruct->safariPkblThrowCounter < 3)
+ gBattleStruct->safariPkblThrowCounter++;
+ if (gBattleStruct->safariEscapeFactor > 1)
{
- if (gBattleStruct->field_7B < sUnknown_0831BCE0[gBattleStruct->field_7A][gBattleCommunication[MULTISTRING_CHOOSER]])
- gBattleStruct->field_7B = 1;
+ if (gBattleStruct->safariEscapeFactor < sPkblToEscapeFactor[gBattleStruct->safariPkblThrowCounter][gBattleCommunication[MULTISTRING_CHOOSER]])
+ gBattleStruct->safariEscapeFactor = 1;
else
- gBattleStruct->field_7B -= sUnknown_0831BCE0[gBattleStruct->field_7A][gBattleCommunication[MULTISTRING_CHOOSER]];
+ gBattleStruct->safariEscapeFactor -= sPkblToEscapeFactor[gBattleStruct->safariPkblThrowCounter][gBattleCommunication[MULTISTRING_CHOOSER]];
}
gBattlescriptCurrInstr = gBattlescriptsForSafariActions[2];
@@ -5766,22 +5768,22 @@ static void HandleAction_GoNear(void)
gBattle_BG0_X = 0;
gBattle_BG0_Y = 0;
- gBattleStruct->field_7C += sUnknown_0831BCEF[gBattleStruct->field_79];
- if (gBattleStruct->field_7C > 20)
- gBattleStruct->field_7C = 20;
+ gBattleStruct->safariCatchFactor += sGoNearCounterToCatchFactor[gBattleStruct->safariGoNearCounter];
+ if (gBattleStruct->safariCatchFactor > 20)
+ gBattleStruct->safariCatchFactor = 20;
- gBattleStruct->field_7B +=sUnknown_0831BCF3[gBattleStruct->field_79];
- if (gBattleStruct->field_7B > 20)
- gBattleStruct->field_7B = 20;
+ gBattleStruct->safariEscapeFactor += sGoNearCounterToEscapeFactor[gBattleStruct->safariGoNearCounter];
+ if (gBattleStruct->safariEscapeFactor > 20)
+ gBattleStruct->safariEscapeFactor = 20;
- if (gBattleStruct->field_79 < 3)
+ if (gBattleStruct->safariGoNearCounter < 3)
{
- gBattleStruct->field_79++;
+ gBattleStruct->safariGoNearCounter++;
gBattleCommunication[MULTISTRING_CHOOSER] = 0;
}
else
{
- gBattleCommunication[MULTISTRING_CHOOSER] = 1;
+ gBattleCommunication[MULTISTRING_CHOOSER] = 1; // Can't get closer.
}
gBattlescriptCurrInstr = gBattlescriptsForSafariActions[1];
gCurrentActionFuncId = B_ACTION_EXEC_SCRIPT;
diff --git a/src/battle_message.c b/src/battle_message.c
index d2ac6da8c..7d442ea98 100644
--- a/src/battle_message.c
+++ b/src/battle_message.c
@@ -6,6 +6,7 @@
#include "text.h"
#include "string_util.h"
#include "constants/items.h"
+#include "constants/trainers.h"
#include "event_data.h"
#include "link.h"
#include "item.h"
@@ -2074,7 +2075,7 @@ void BufferStringBattle(u16 stringID)
}
else
{
- if (gTrainerBattleOpponent_A == TRAINER_OPPONENT_800 || gBattleTypeFlags & BATTLE_TYPE_x2000000)
+ if (gTrainerBattleOpponent_A == TRAINER_LINK_OPPONENT || gBattleTypeFlags & BATTLE_TYPE_x2000000)
{
if (gBattleTypeFlags & BATTLE_TYPE_MULTI)
stringPtr = sText_LinkTrainer2WithdrewPkmn;
diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c
index 9c48b083c..bacaf2bac 100644
--- a/src/battle_script_commands.c
+++ b/src/battle_script_commands.c
@@ -3111,7 +3111,7 @@ static void atk1E_jumpifability(void)
if (gBattlescriptCurrInstr[1] == BS_ATTACKER_SIDE)
{
- battlerId = AbilityBattleEffects(ABILITYEFFECT_CHECK_BANK_SIDE, gBattlerAttacker, ability, 0, 0);
+ battlerId = AbilityBattleEffects(ABILITYEFFECT_CHECK_BATTLER_SIDE, gBattlerAttacker, ability, 0, 0);
if (battlerId)
{
gLastUsedAbility = ability;
@@ -5033,7 +5033,7 @@ static void atk4F_jumpifcantswitch(void)
party = gPlayerParty;
i = 0;
- if (sub_806D82C(GetBattlerMultiplayerId(gActiveBattler)) == TRUE)
+ if (GetLinkTrainerFlankId(GetBattlerMultiplayerId(gActiveBattler)) == TRUE)
i = 3;
}
else
@@ -5054,7 +5054,7 @@ static void atk4F_jumpifcantswitch(void)
party = gPlayerParty;
i = 0;
- if (sub_806D82C(GetBattlerMultiplayerId(gActiveBattler)) == TRUE)
+ if (GetLinkTrainerFlankId(GetBattlerMultiplayerId(gActiveBattler)) == TRUE)
i = 3;
}
@@ -5166,7 +5166,7 @@ static void atk50_openpartyscreen(void)
{
if (gHitMarker & HITMARKER_FAINTED(gActiveBattler))
{
- if (sub_80423F4(gActiveBattler, 6, 6))
+ if (HasNoMonsToSwitch(gActiveBattler, 6, 6))
{
gAbsentBattlerFlags |= gBitTable[gActiveBattler];
gHitMarker &= ~(HITMARKER_FAINTED(gActiveBattler));
@@ -5195,7 +5195,7 @@ static void atk50_openpartyscreen(void)
if (gBitTable[0] & hitmarkerFaintBits)
{
gActiveBattler = 0;
- if (sub_80423F4(0, 6, 6))
+ if (HasNoMonsToSwitch(0, 6, 6))
{
gAbsentBattlerFlags |= gBitTable[gActiveBattler];
gHitMarker &= ~(HITMARKER_FAINTED(gActiveBattler));
@@ -5217,7 +5217,7 @@ static void atk50_openpartyscreen(void)
if (gBitTable[2] & hitmarkerFaintBits && !(gBitTable[0] & hitmarkerFaintBits))
{
gActiveBattler = 2;
- if (sub_80423F4(2, 6, 6))
+ if (HasNoMonsToSwitch(2, 6, 6))
{
gAbsentBattlerFlags |= gBitTable[gActiveBattler];
gHitMarker &= ~(HITMARKER_FAINTED(gActiveBattler));
@@ -5238,7 +5238,7 @@ static void atk50_openpartyscreen(void)
if (gBitTable[1] & hitmarkerFaintBits)
{
gActiveBattler = 1;
- if (sub_80423F4(1, 6, 6))
+ if (HasNoMonsToSwitch(1, 6, 6))
{
gAbsentBattlerFlags |= gBitTable[gActiveBattler];
gHitMarker &= ~(HITMARKER_FAINTED(gActiveBattler));
@@ -5260,7 +5260,7 @@ static void atk50_openpartyscreen(void)
if (gBitTable[3] & hitmarkerFaintBits && !(gBitTable[1] & hitmarkerFaintBits))
{
gActiveBattler = 3;
- if (sub_80423F4(3, 6, 6))
+ if (HasNoMonsToSwitch(3, 6, 6))
{
gAbsentBattlerFlags |= gBitTable[gActiveBattler];
gHitMarker &= ~(HITMARKER_FAINTED(gActiveBattler));
@@ -5323,7 +5323,7 @@ static void atk50_openpartyscreen(void)
if (gBitTable[2] & hitmarkerFaintBits && gBitTable[0] & hitmarkerFaintBits)
{
gActiveBattler = 2;
- if (sub_80423F4(2, gBattleBufferB[0][1], 6))
+ if (HasNoMonsToSwitch(2, gBattleBufferB[0][1], 6))
{
gAbsentBattlerFlags |= gBitTable[gActiveBattler];
gHitMarker &= ~(HITMARKER_FAINTED(gActiveBattler));
@@ -5339,7 +5339,7 @@ static void atk50_openpartyscreen(void)
if (gBitTable[3] & hitmarkerFaintBits && hitmarkerFaintBits & gBitTable[1])
{
gActiveBattler = 3;
- if (sub_80423F4(3, gBattleBufferB[1][1], 6))
+ if (HasNoMonsToSwitch(3, gBattleBufferB[1][1], 6))
{
gAbsentBattlerFlags |= gBitTable[gActiveBattler];
gHitMarker &= ~(HITMARKER_FAINTED(gActiveBattler));
@@ -5391,7 +5391,7 @@ static void atk50_openpartyscreen(void)
{
gBattlescriptCurrInstr += 6;
}
- else if (sub_80423F4(battlerId, 6, 6))
+ else if (HasNoMonsToSwitch(battlerId, 6, 6))
{
gActiveBattler = battlerId;
gAbsentBattlerFlags |= gBitTable[gActiveBattler];
@@ -7506,7 +7506,7 @@ static void atk8F_forcerandomswitch(void)
else if ((gBattleTypeFlags & BATTLE_TYPE_MULTI && gBattleTypeFlags & BATTLE_TYPE_LINK)
|| (gBattleTypeFlags & BATTLE_TYPE_MULTI && gBattleTypeFlags & BATTLE_TYPE_x2000000))
{
- if (sub_806D82C(GetBattlerMultiplayerId(gBattlerTarget)) == 1)
+ if (GetLinkTrainerFlankId(GetBattlerMultiplayerId(gBattlerTarget)) == 1)
{
firstMonId = 3;
lastMonId = 6;
@@ -9044,7 +9044,7 @@ static void atkBE_rapidspinfree(void)
else if (gStatuses3[gBattlerAttacker] & STATUS3_LEECHSEED)
{
gStatuses3[gBattlerAttacker] &= ~(STATUS3_LEECHSEED);
- gStatuses3[gBattlerAttacker] &= ~(STATUS3_LEECHSEED_BANK);
+ gStatuses3[gBattlerAttacker] &= ~(STATUS3_LEECHSEED_BATTLER);
BattleScriptPushCursor();
gBattlescriptCurrInstr = BattleScript_LeechSeedFree;
}
@@ -9760,7 +9760,7 @@ static void atkE1_trygetintimidatetarget(void)
{
u8 side;
- gBattleScripting.battler = gBattleStruct->intimidateBank;
+ gBattleScripting.battler = gBattleStruct->intimidateBattler;
side = GetBattlerSide(gBattleScripting.battler);
PREPARE_ABILITY_BUFFER(gBattleTextBuff1, gBattleMons[gBattleScripting.battler].ability)
@@ -10115,7 +10115,7 @@ static void atkEF_handleballthrow(void)
u8 catchRate;
if (gLastUsedItem == ITEM_SAFARI_BALL)
- catchRate = gBattleStruct->field_7C * 1275 / 100;
+ catchRate = gBattleStruct->safariCatchFactor * 1275 / 100;
else
catchRate = gBaseStats[gBattleMons[gBattlerTarget].species].catchRate;
diff --git a/src/battle_tv.c b/src/battle_tv.c
index cd0490a1b..6f9ee414e 100644
--- a/src/battle_tv.c
+++ b/src/battle_tv.c
@@ -796,8 +796,8 @@ void TryPutLinkBattleTvShowOnAir(void)
if (gBattleTypeFlags & BATTLE_TYPE_MULTI)
{
- if ((playerBestMonId < 3 && !sub_806D82C(gBattleScripting.multiplayerId))
- || (playerBestMonId >= 3 && sub_806D82C(gBattleScripting.multiplayerId)))
+ if ((playerBestMonId < 3 && !GetLinkTrainerFlankId(gBattleScripting.multiplayerId))
+ || (playerBestMonId >= 3 && GetLinkTrainerFlankId(gBattleScripting.multiplayerId)))
{
j = (opponentBestMonId < 3) ? 0 : 1;
PutBattleUpdateOnTheAir(sub_806EF84(j, gBattleScripting.multiplayerId), moveId, playerBestSpecies, opponentBestSpecies);
@@ -1078,7 +1078,7 @@ _0817E5C8:\n\
ldr r0, =gBattleScripting\n\
adds r0, 0x25\n\
ldrb r0, [r0]\n\
- bl sub_806D82C\n\
+ bl GetLinkTrainerFlankId\n\
lsls r0, 16\n\
cmp r0, 0\n\
beq _0817E630\n\
@@ -1088,7 +1088,7 @@ _0817E620:\n\
ldr r0, =gBattleScripting\n\
adds r0, 0x25\n\
ldrb r0, [r0]\n\
- bl sub_806D82C\n\
+ bl GetLinkTrainerFlankId\n\
lsls r0, 16\n\
cmp r0, 0\n\
beq _0817E670\n\
diff --git a/src/battle_util.c b/src/battle_util.c
index b9a7f546a..5d2ec62a9 100644
--- a/src/battle_util.c
+++ b/src/battle_util.c
@@ -46,7 +46,7 @@ u8 GetBattlerForBattleScript(u8 caseId)
case BS_EFFECT_BATTLER:
ret = gEffectBattler;
break;
- case BS_BANK_0:
+ case BS_BATTLER_0:
ret = 0;
break;
case BS_SCRIPTING:
@@ -292,7 +292,7 @@ void sub_803FA70(u8 battler)
}
}
-void BattleScriptPush(const u8* bsPtr)
+void BattleScriptPush(const u8 *bsPtr)
{
gBattleResources->battleScriptsStack->ptr[gBattleResources->battleScriptsStack->size++] = bsPtr;
}
@@ -453,7 +453,7 @@ bool8 AreAllMovesUnusable(void)
u8 unusable;
unusable = CheckMoveLimitations(gActiveBattler, 0, 0xFF);
- if (unusable == 0xF) // all moves are unusable
+ if (unusable == 0xF) // All moves are unusable.
{
gProtectStructs[gActiveBattler].onlyStruggle = 1;
gSelectionBattleScripts[gActiveBattler] = BattleScript_NoMovesLeft;
@@ -470,11 +470,11 @@ u8 GetImprisonedMovesCount(u8 battlerId, u16 move)
{
s32 i;
u8 imprisionedMoves = 0;
- u8 bankSide = GetBattlerSide(battlerId);
+ u8 BattlerSide = GetBattlerSide(battlerId);
for (i = 0; i < gBattlersCount; i++)
{
- if (bankSide != GetBattlerSide(i) && gStatuses3[i] & STATUS3_IMPRISONED_OTHERS)
+ if (BattlerSide != GetBattlerSide(i) && gStatuses3[i] & STATUS3_IMPRISONED_OTHERS)
{
s32 j;
for (j = 0; j < 4; j++)
@@ -504,7 +504,7 @@ u8 UpdateTurnCounters(void)
do
{
- u8 sideBank;
+ u8 side;
switch (gBattleStruct->turnCountersTracker)
{
@@ -533,13 +533,13 @@ u8 UpdateTurnCounters(void)
case 1:
while (gBattleStruct->turnSideTracker < 2)
{
- sideBank = gBattleStruct->turnSideTracker;
- gActiveBattler = gBattlerAttacker = gSideTimers[sideBank].reflectBattlerId;
- if (gSideStatuses[sideBank] & SIDE_STATUS_REFLECT)
+ side = gBattleStruct->turnSideTracker;
+ gActiveBattler = gBattlerAttacker = gSideTimers[side].reflectBattlerId;
+ if (gSideStatuses[side] & SIDE_STATUS_REFLECT)
{
- if (--gSideTimers[sideBank].reflectTimer == 0)
+ if (--gSideTimers[side].reflectTimer == 0)
{
- gSideStatuses[sideBank] &= ~SIDE_STATUS_REFLECT;
+ gSideStatuses[side] &= ~SIDE_STATUS_REFLECT;
BattleScriptExecute(BattleScript_SideStatusWoreOff);
PREPARE_MOVE_BUFFER(gBattleTextBuff1, MOVE_REFLECT);
effect++;
@@ -558,15 +558,15 @@ u8 UpdateTurnCounters(void)
case 2:
while (gBattleStruct->turnSideTracker < 2)
{
- sideBank = gBattleStruct->turnSideTracker;
- gActiveBattler = gBattlerAttacker = gSideTimers[sideBank].lightscreenBattlerId;
- if (gSideStatuses[sideBank] & SIDE_STATUS_LIGHTSCREEN)
+ side = gBattleStruct->turnSideTracker;
+ gActiveBattler = gBattlerAttacker = gSideTimers[side].lightscreenBattlerId;
+ if (gSideStatuses[side] & SIDE_STATUS_LIGHTSCREEN)
{
- if (--gSideTimers[sideBank].lightscreenTimer == 0)
+ if (--gSideTimers[side].lightscreenTimer == 0)
{
- gSideStatuses[sideBank] &= ~SIDE_STATUS_LIGHTSCREEN;
+ gSideStatuses[side] &= ~SIDE_STATUS_LIGHTSCREEN;
BattleScriptExecute(BattleScript_SideStatusWoreOff);
- gBattleCommunication[MULTISTRING_CHOOSER] = sideBank;
+ gBattleCommunication[MULTISTRING_CHOOSER] = side;
PREPARE_MOVE_BUFFER(gBattleTextBuff1, MOVE_LIGHT_SCREEN);
effect++;
}
@@ -584,14 +584,14 @@ u8 UpdateTurnCounters(void)
case 3:
while (gBattleStruct->turnSideTracker < 2)
{
- sideBank = gBattleStruct->turnSideTracker;
- gActiveBattler = gBattlerAttacker = gSideTimers[sideBank].mistBattlerId;
- if (gSideTimers[sideBank].mistTimer != 0
- && --gSideTimers[sideBank].mistTimer == 0)
+ side = gBattleStruct->turnSideTracker;
+ gActiveBattler = gBattlerAttacker = gSideTimers[side].mistBattlerId;
+ if (gSideTimers[side].mistTimer != 0
+ && --gSideTimers[side].mistTimer == 0)
{
- gSideStatuses[sideBank] &= ~SIDE_STATUS_MIST;
+ gSideStatuses[side] &= ~SIDE_STATUS_MIST;
BattleScriptExecute(BattleScript_SideStatusWoreOff);
- gBattleCommunication[MULTISTRING_CHOOSER] = sideBank;
+ gBattleCommunication[MULTISTRING_CHOOSER] = side;
PREPARE_MOVE_BUFFER(gBattleTextBuff1, MOVE_MIST);
effect++;
}
@@ -608,13 +608,13 @@ u8 UpdateTurnCounters(void)
case 4:
while (gBattleStruct->turnSideTracker < 2)
{
- sideBank = gBattleStruct->turnSideTracker;
- gActiveBattler = gBattlerAttacker = gSideTimers[sideBank].safeguardBattlerId;
- if (gSideStatuses[sideBank] & SIDE_STATUS_SAFEGUARD)
+ side = gBattleStruct->turnSideTracker;
+ gActiveBattler = gBattlerAttacker = gSideTimers[side].safeguardBattlerId;
+ if (gSideStatuses[side] & SIDE_STATUS_SAFEGUARD)
{
- if (--gSideTimers[sideBank].safeguardTimer == 0)
+ if (--gSideTimers[side].safeguardTimer == 0)
{
- gSideStatuses[sideBank] &= ~SIDE_STATUS_SAFEGUARD;
+ gSideStatuses[side] &= ~SIDE_STATUS_SAFEGUARD;
BattleScriptExecute(BattleScript_SafeguardEnds);
effect++;
}
@@ -795,10 +795,10 @@ u8 TurnBasedEffects(void)
break;
case 3: // leech seed
if ((gStatuses3[gActiveBattler] & STATUS3_LEECHSEED)
- && gBattleMons[gStatuses3[gActiveBattler] & STATUS3_LEECHSEED_BANK].hp != 0
+ && gBattleMons[gStatuses3[gActiveBattler] & STATUS3_LEECHSEED_BATTLER].hp != 0
&& gBattleMons[gActiveBattler].hp != 0)
{
- gBattlerTarget = gStatuses3[gActiveBattler] & STATUS3_LEECHSEED_BANK; //funny how the 'target' is actually the battlerId that receives HP
+ gBattlerTarget = gStatuses3[gActiveBattler] & STATUS3_LEECHSEED_BATTLER; // Notice gBattlerTarget is actually the HP receiver.
gBattleMoveDamage = gBattleMons[gActiveBattler].maxHP / 8;
if (gBattleMoveDamage == 0)
gBattleMoveDamage = 1;
@@ -848,8 +848,8 @@ u8 TurnBasedEffects(void)
case 7: // spooky nightmares
if ((gBattleMons[gActiveBattler].status2 & STATUS2_NIGHTMARE) && gBattleMons[gActiveBattler].hp != 0)
{
- // R/S does not perform this sleep check, which causes the nighmare effect to
- // persist even after the affected Pokemon has been awakened by Shed Skin
+ // R/S does not perform this sleep check, which causes the nightmare effect to
+ // persist even after the affected Pokemon has been awakened by Shed Skin.
if (gBattleMons[gActiveBattler].status1 & STATUS1_SLEEP)
{
gBattleMoveDamage = gBattleMons[gActiveBattler].maxHP / 4;
@@ -983,7 +983,7 @@ u8 TurnBasedEffects(void)
case 12: // disable
if (gDisableStructs[gActiveBattler].disableTimer1 != 0)
{
- int i;
+ s32 i;
for (i = 0; i < 4; i++)
{
if (gDisableStructs[gActiveBattler].disabledMove == gBattleMons[gActiveBattler].moves[i])
@@ -1184,7 +1184,7 @@ bool8 HandleFaintedMonActions(void)
return FALSE;
do
{
- int i;
+ s32 i;
switch (gBattleStruct->faintedActionsState)
{
case 0:
@@ -1192,7 +1192,7 @@ bool8 HandleFaintedMonActions(void)
gBattleStruct->faintedActionsState++;
for (i = 0; i < gBattlersCount; i++)
{
- if (gAbsentBattlerFlags & gBitTable[i] && !sub_80423F4(i, 6, 6))
+ if (gAbsentBattlerFlags & gBitTable[i] && !HasNoMonsToSwitch(i, 6, 6))
gAbsentBattlerFlags &= ~(gBitTable[i]);
}
// fall through
@@ -1256,7 +1256,7 @@ bool8 HandleFaintedMonActions(void)
void TryClearRageStatuses(void)
{
- int i;
+ s32 i;
for (i = 0; i < gBattlersCount; i++)
{
if ((gBattleMons[i].status2 & STATUS2_RAGE) && gChosenMoveByBattler[i] != MOVE_RAGE)
@@ -1467,7 +1467,9 @@ u8 AtkCanceller_UnableToUseMove(void)
{
gBattleScripting.battler = CountTrailingZeroBits((gBattleMons[gBattlerAttacker].status2 & STATUS2_INFATUATION) >> 0x10);
if (Random() & 1)
+ {
BattleScriptPushCursor();
+ }
else
{
BattleScriptPush(BattleScript_MoveUsedIsParalyzedCantAttack);
@@ -1485,7 +1487,9 @@ u8 AtkCanceller_UnableToUseMove(void)
{
gBattleMons[gBattlerAttacker].status2 -= 0x100;
if (gBattleMons[gBattlerAttacker].status2 & STATUS2_BIDE)
+ {
gBattlescriptCurrInstr = BattleScript_BideStoringEnergy;
+ }
else
{
// This is removed in Emerald for some reason
@@ -1500,7 +1504,9 @@ u8 AtkCanceller_UnableToUseMove(void)
gBattlescriptCurrInstr = BattleScript_BideAttack;
}
else
+ {
gBattlescriptCurrInstr = BattleScript_BideNoEnergyToAttack;
+ }
}
effect = 1;
}
@@ -1535,29 +1541,31 @@ u8 AtkCanceller_UnableToUseMove(void)
return effect;
}
-bool8 sub_80423F4(u8 battler, u8 r1, u8 r2)
+bool8 HasNoMonsToSwitch(u8 battler, u8 partyIdBattlerOn1, u8 partyIdBattlerOn2)
{
- struct Pokemon* party;
- u8 r7;
- u8 r6;
+ struct Pokemon *party;
+ u8 id1, id2;
s32 i;
+
if (!(gBattleTypeFlags & BATTLE_TYPE_DOUBLE))
return FALSE;
+
if (gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER)
{
if (GetBattlerSide(battler) == B_SIDE_PLAYER)
party = gPlayerParty;
else
party = gEnemyParty;
- r6 = ((battler & 2) / 2);
- for (i = r6 * 3; i < r6 * 3 + 3; i++)
+
+ id1 = ((battler & BIT_FLANK) / 2);
+ for (i = id1 * 3; i < id1 * 3 + 3; i++)
{
if (GetMonData(&party[i], MON_DATA_HP) != 0
- && GetMonData(&party[i], MON_DATA_SPECIES2) != 0
+ && GetMonData(&party[i], MON_DATA_SPECIES2) != SPECIES_NONE
&& GetMonData(&party[i], MON_DATA_SPECIES2) != SPECIES_EGG)
break;
}
- return (i == r6 * 3 + 3);
+ return (i == id1 * 3 + 3);
}
else if (gBattleTypeFlags & BATTLE_TYPE_MULTI)
{
@@ -1566,86 +1574,95 @@ bool8 sub_80423F4(u8 battler, u8 r1, u8 r2)
if (GetBattlerSide(battler) == B_SIDE_PLAYER)
{
party = gPlayerParty;
- r7 = GetBattlerMultiplayerId(battler);
- r6 = sub_806D82C(r7);
+ id2 = GetBattlerMultiplayerId(battler);
+ id1 = GetLinkTrainerFlankId(id2);
}
else
{
- // FIXME: Compiler insists on moving r4 into r1 before doing the eor
+ // FIXME: Compiler insists on moving r4 into r1 before doing the eor.
#ifndef NONMATCHING
- register u32 var asm("r1");
+ register u32 var asm("r1");
#else
- u32 var;
+ u32 var;
#endif // NONMATCHING
party = gEnemyParty;
- var = battler ^ 1;
- r6 = (var != 0) ? 1 : 0;
+ var = battler ^ BIT_SIDE;
+ if (var == 0)
+ id1 = 0;
+ else
+ id1 = 1;
}
}
else
{
- r7 = GetBattlerMultiplayerId(battler);
+ id2 = GetBattlerMultiplayerId(battler);
+
if (GetBattlerSide(battler) == B_SIDE_PLAYER)
party = gPlayerParty;
else
party = gEnemyParty;
- r6 = sub_806D82C(r7);
+
+ id1 = GetLinkTrainerFlankId(id2);
}
- for (i = r6 * 3; i < r6 * 3 + 3; i++)
+
+ for (i = id1 * 3; i < id1 * 3 + 3; i++)
{
if (GetMonData(&party[i], MON_DATA_HP) != 0
- && GetMonData(&party[i], MON_DATA_SPECIES2) != 0
+ && GetMonData(&party[i], MON_DATA_SPECIES2) != SPECIES_NONE
&& GetMonData(&party[i], MON_DATA_SPECIES2) != SPECIES_EGG)
break;
}
- return (i == r6 * 3 + 3);
+ return (i == id1 * 3 + 3);
}
else if ((gBattleTypeFlags & BATTLE_TYPE_TWO_OPPONENTS) && GetBattlerSide(battler) == B_SIDE_OPPONENT)
{
party = gEnemyParty;
if (battler == 1)
- r6 = 0;
+ id1 = 0;
else
- r6 = 3;
- for (i = r6; i < r6 + 3; i++)
+ id1 = 3;
+
+ for (i = id1; i < id1 + 3; i++)
{
if (GetMonData(&party[i], MON_DATA_HP) != 0
- && GetMonData(&party[i], MON_DATA_SPECIES2) != 0
+ && GetMonData(&party[i], MON_DATA_SPECIES2) != SPECIES_NONE
&& GetMonData(&party[i], MON_DATA_SPECIES2) != SPECIES_EGG)
break;
}
- return (i == r6 + 3);
+ return (i == id1 + 3);
}
else
{
if (GetBattlerSide(battler) == B_SIDE_OPPONENT)
{
- r7 = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT);
- r6 = GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT);
+ id2 = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT);
+ id1 = GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT);
party = gEnemyParty;
}
else
{
- r7 = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT);
- r6 = GetBattlerAtPosition(B_POSITION_PLAYER_RIGHT);
+ id2 = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT);
+ id1 = GetBattlerAtPosition(B_POSITION_PLAYER_RIGHT);
party = gPlayerParty;
}
- if (r1 == 6)
- r1 = gBattlerPartyIndexes[r7];
- if (r2 == 6)
- r2 = gBattlerPartyIndexes[r6];
- for (i = 0; i < 6; i++)
+
+ if (partyIdBattlerOn1 == PARTY_SIZE)
+ partyIdBattlerOn1 = gBattlerPartyIndexes[id2];
+ if (partyIdBattlerOn2 == PARTY_SIZE)
+ partyIdBattlerOn2 = gBattlerPartyIndexes[id1];
+
+ for (i = 0; i < PARTY_SIZE; i++)
{
if (GetMonData(&party[i], MON_DATA_HP) != 0
- && GetMonData(&party[i], MON_DATA_SPECIES2) != 0
+ && GetMonData(&party[i], MON_DATA_SPECIES2) != SPECIES_NONE
&& GetMonData(&party[i], MON_DATA_SPECIES2) != SPECIES_EGG
- // FIXME: Using index[array] instead of array[index] is BAD!
- && i != r1 && i != r2 && i != r7[gBattleStruct->monToSwitchIntoId] && i != r6[gBattleStruct->monToSwitchIntoId])
+ && i != partyIdBattlerOn1 && i != partyIdBattlerOn2
+ && i != *(gBattleStruct->monToSwitchIntoId + id2) && i != id1[gBattleStruct->monToSwitchIntoId])
break;
}
- return (i == 6);
+ return (i == PARTY_SIZE);
}
}
@@ -1706,6 +1723,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA
if (gBattlerAttacker >= gBattlersCount)
gBattlerAttacker = battler;
+
if (GetBattlerSide(gBattlerAttacker) == B_SIDE_PLAYER)
pokeAtk = &gPlayerParty[gBattlerPartyIndexes[gBattlerAttacker]];
else
@@ -1713,6 +1731,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA
if (gBattlerTarget >= gBattlersCount)
gBattlerTarget = battler;
+
if (GetBattlerSide(gBattlerTarget) == B_SIDE_PLAYER)
pokeDef = &gPlayerParty[gBattlerPartyIndexes[gBattlerTarget]];
else
@@ -1724,7 +1743,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA
speciesDef = GetMonData(pokeDef, MON_DATA_SPECIES);
pidDef = GetMonData(pokeDef, MON_DATA_PERSONALITY);
- if (!(gBattleTypeFlags & BATTLE_TYPE_SAFARI)) // why isn't that check done at the beginning?
+ if (!(gBattleTypeFlags & BATTLE_TYPE_SAFARI)) // Why isn't that check done at the beginning?
{
u8 moveType;
s32 i;
@@ -2271,7 +2290,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA
gLastUsedAbility = ABILITY_INTIMIDATE;
gStatuses3[i] &= ~(STATUS3_INTIMIDATE_POKES);
BattleScriptPushCursorAndCallback(BattleScript_82DB4B8);
- gBattleStruct->intimidateBank = i;
+ gBattleStruct->intimidateBattler = i;
effect++;
break;
}
@@ -2343,7 +2362,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA
gStatuses3[i] &= ~(STATUS3_INTIMIDATE_POKES);
BattleScriptPushCursor();
gBattlescriptCurrInstr = BattleScript_82DB4C1;
- gBattleStruct->intimidateBank = i;
+ gBattleStruct->intimidateBattler = i;
effect++;
break;
}
@@ -2360,7 +2379,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA
}
}
break;
- case ABILITYEFFECT_CHECK_BANK_SIDE: // 13
+ case ABILITYEFFECT_CHECK_BATTLER_SIDE: // 13
side = GetBattlerSide(battler);
for (i = 0; i < gBattlersCount; i++)
{
@@ -2410,7 +2429,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA
}
}
break;
- case ABILITYEFFECT_CHECK_FIELD_EXCEPT_BANK: // 15
+ case ABILITYEFFECT_CHECK_FIELD_EXCEPT_BATTLER: // 15
for (i = 0; i < gBattlersCount; i++)
{
if (gBattleMons[i].ability == ability && i != battler)
@@ -2431,7 +2450,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA
}
}
break;
- case ABILITYEFFECT_COUNT_BANK_SIDE: // 17
+ case ABILITYEFFECT_COUNT_BATTLER_SIDE: // 17
side = GetBattlerSide(battler);
for (i = 0; i < gBattlersCount; i++)
{
@@ -2492,20 +2511,20 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn)
int i = 0;
u8 effect = ITEM_NO_EFFECT;
u8 changedPP = 0;
- u8 bankHoldEffect, atkHoldEffect, defHoldEffect;
- u8 bankQuality, atkQuality, defQuality;
+ u8 BattlerHoldEffect, atkHoldEffect, defHoldEffect;
+ u8 BattlerQuality, atkQuality, defQuality;
u16 atkItem, defItem;
gLastUsedItem = gBattleMons[battlerId].item;
if (gLastUsedItem == ITEM_ENIGMA_BERRY)
{
- bankHoldEffect = gEnigmaBerries[battlerId].holdEffect;
- bankQuality = gEnigmaBerries[battlerId].holdEffectParam;
+ BattlerHoldEffect = gEnigmaBerries[battlerId].holdEffect;
+ BattlerQuality = gEnigmaBerries[battlerId].holdEffectParam;
}
else
{
- bankHoldEffect = ItemId_GetHoldEffect(gLastUsedItem);
- bankQuality = ItemId_GetHoldEffectParam(gLastUsedItem);
+ BattlerHoldEffect = ItemId_GetHoldEffect(gLastUsedItem);
+ BattlerQuality = ItemId_GetHoldEffectParam(gLastUsedItem);
}
atkItem = gBattleMons[gBattlerAttacker].item;
@@ -2536,7 +2555,7 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn)
switch (caseID)
{
case ITEMEFFECT_ON_SWITCH_IN:
- switch (bankHoldEffect)
+ switch (BattlerHoldEffect)
{
case HOLD_EFFECT_DOUBLE_PRIZE:
if (GetBattlerSide(battlerId) == B_SIDE_PLAYER)
@@ -2564,13 +2583,13 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn)
case 1:
if (gBattleMons[battlerId].hp)
{
- switch (bankHoldEffect)
+ switch (BattlerHoldEffect)
{
case HOLD_EFFECT_RESTORE_HP:
if (gBattleMons[battlerId].hp <= gBattleMons[battlerId].maxHP / 2 && !moveTurn)
{
- gBattleMoveDamage = bankQuality;
- if (gBattleMons[battlerId].hp + bankQuality > gBattleMons[battlerId].maxHP)
+ gBattleMoveDamage = BattlerQuality;
+ if (gBattleMons[battlerId].hp + BattlerQuality > gBattleMons[battlerId].maxHP)
gBattleMoveDamage = gBattleMons[battlerId].maxHP - gBattleMons[battlerId].hp;
gBattleMoveDamage *= -1;
BattleScriptExecute(BattleScript_ItemHealHP_RemoveItem);
@@ -2599,10 +2618,10 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn)
if (i != 4)
{
u8 maxPP = CalculatePPWithBonus(move, ppBonuses, i);
- if (changedPP + bankQuality > maxPP)
+ if (changedPP + BattlerQuality > maxPP)
changedPP = maxPP;
else
- changedPP = changedPP + bankQuality;
+ changedPP = changedPP + BattlerQuality;
PREPARE_MOVE_BUFFER(gBattleTextBuff1, move);
@@ -2641,7 +2660,7 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn)
gBattleMoveDamage *= -1;
BattleScriptExecute(BattleScript_ItemHealHP_End2);
effect = ITEM_HP_CHANGE;
- RecordItemEffectBattle(battlerId, bankHoldEffect);
+ RecordItemEffectBattle(battlerId, BattlerHoldEffect);
}
break;
// nice copy/paste there gamefreak, making a function for confuse berries was too much eh?
@@ -2650,7 +2669,7 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn)
{
PREPARE_FLAVOR_BUFFER(gBattleTextBuff1, FLAVOR_SPICY);
- gBattleMoveDamage = gBattleMons[battlerId].maxHP / bankQuality;
+ gBattleMoveDamage = gBattleMons[battlerId].maxHP / BattlerQuality;
if (gBattleMoveDamage == 0)
gBattleMoveDamage = 1;
if (gBattleMons[battlerId].hp + gBattleMoveDamage > gBattleMons[battlerId].maxHP)
@@ -2668,7 +2687,7 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn)
{
PREPARE_FLAVOR_BUFFER(gBattleTextBuff1, FLAVOR_DRY);
- gBattleMoveDamage = gBattleMons[battlerId].maxHP / bankQuality;
+ gBattleMoveDamage = gBattleMons[battlerId].maxHP / BattlerQuality;
if (gBattleMoveDamage == 0)
gBattleMoveDamage = 1;
if (gBattleMons[battlerId].hp + gBattleMoveDamage > gBattleMons[battlerId].maxHP)
@@ -2686,7 +2705,7 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn)
{
PREPARE_FLAVOR_BUFFER(gBattleTextBuff1, FLAVOR_SWEET);
- gBattleMoveDamage = gBattleMons[battlerId].maxHP / bankQuality;
+ gBattleMoveDamage = gBattleMons[battlerId].maxHP / BattlerQuality;
if (gBattleMoveDamage == 0)
gBattleMoveDamage = 1;
if (gBattleMons[battlerId].hp + gBattleMoveDamage > gBattleMons[battlerId].maxHP)
@@ -2704,7 +2723,7 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn)
{
PREPARE_FLAVOR_BUFFER(gBattleTextBuff1, FLAVOR_BITTER);
- gBattleMoveDamage = gBattleMons[battlerId].maxHP / bankQuality;
+ gBattleMoveDamage = gBattleMons[battlerId].maxHP / BattlerQuality;
if (gBattleMoveDamage == 0)
gBattleMoveDamage = 1;
if (gBattleMons[battlerId].hp + gBattleMoveDamage > gBattleMons[battlerId].maxHP)
@@ -2722,7 +2741,7 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn)
{
PREPARE_FLAVOR_BUFFER(gBattleTextBuff1, FLAVOR_SOUR);
- gBattleMoveDamage = gBattleMons[battlerId].maxHP / bankQuality;
+ gBattleMoveDamage = gBattleMons[battlerId].maxHP / BattlerQuality;
if (gBattleMoveDamage == 0)
gBattleMoveDamage = 1;
if (gBattleMons[battlerId].hp + gBattleMoveDamage > gBattleMons[battlerId].maxHP)
@@ -2737,7 +2756,7 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn)
break;
// copy/paste again, smh
case HOLD_EFFECT_ATTACK_UP:
- if (gBattleMons[battlerId].hp <= gBattleMons[battlerId].maxHP / bankQuality && !moveTurn && gBattleMons[battlerId].statStages[STAT_ATK] < 0xC)
+ if (gBattleMons[battlerId].hp <= gBattleMons[battlerId].maxHP / BattlerQuality && !moveTurn && gBattleMons[battlerId].statStages[STAT_ATK] < 0xC)
{
PREPARE_STAT_BUFFER(gBattleTextBuff1, STAT_ATK);
PREPARE_STRING_BUFFER(gBattleTextBuff2, STRINGID_STATROSE);
@@ -2751,7 +2770,7 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn)
}
break;
case HOLD_EFFECT_DEFENSE_UP:
- if (gBattleMons[battlerId].hp <= gBattleMons[battlerId].maxHP / bankQuality && !moveTurn && gBattleMons[battlerId].statStages[STAT_DEF] < 0xC)
+ if (gBattleMons[battlerId].hp <= gBattleMons[battlerId].maxHP / BattlerQuality && !moveTurn && gBattleMons[battlerId].statStages[STAT_DEF] < 0xC)
{
PREPARE_STAT_BUFFER(gBattleTextBuff1, STAT_DEF);
@@ -2764,7 +2783,7 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn)
}
break;
case HOLD_EFFECT_SPEED_UP:
- if (gBattleMons[battlerId].hp <= gBattleMons[battlerId].maxHP / bankQuality && !moveTurn && gBattleMons[battlerId].statStages[STAT_SPEED] < 0xC)
+ if (gBattleMons[battlerId].hp <= gBattleMons[battlerId].maxHP / BattlerQuality && !moveTurn && gBattleMons[battlerId].statStages[STAT_SPEED] < 0xC)
{
PREPARE_STAT_BUFFER(gBattleTextBuff1, STAT_SPEED);
@@ -2777,7 +2796,7 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn)
}
break;
case HOLD_EFFECT_SP_ATTACK_UP:
- if (gBattleMons[battlerId].hp <= gBattleMons[battlerId].maxHP / bankQuality && !moveTurn && gBattleMons[battlerId].statStages[STAT_SPATK] < 0xC)
+ if (gBattleMons[battlerId].hp <= gBattleMons[battlerId].maxHP / BattlerQuality && !moveTurn && gBattleMons[battlerId].statStages[STAT_SPATK] < 0xC)
{
PREPARE_STAT_BUFFER(gBattleTextBuff1, STAT_SPATK);
@@ -2790,7 +2809,7 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn)
}
break;
case HOLD_EFFECT_SP_DEFENSE_UP:
- if (gBattleMons[battlerId].hp <= gBattleMons[battlerId].maxHP / bankQuality && !moveTurn && gBattleMons[battlerId].statStages[STAT_SPDEF] < 0xC)
+ if (gBattleMons[battlerId].hp <= gBattleMons[battlerId].maxHP / BattlerQuality && !moveTurn && gBattleMons[battlerId].statStages[STAT_SPDEF] < 0xC)
{
PREPARE_STAT_BUFFER(gBattleTextBuff1, STAT_SPDEF);
@@ -2803,7 +2822,7 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn)
}
break;
case HOLD_EFFECT_CRITICAL_UP:
- if (gBattleMons[battlerId].hp <= gBattleMons[battlerId].maxHP / bankQuality && !moveTurn && !(gBattleMons[battlerId].status2 & STATUS2_FOCUS_ENERGY))
+ if (gBattleMons[battlerId].hp <= gBattleMons[battlerId].maxHP / BattlerQuality && !moveTurn && !(gBattleMons[battlerId].status2 & STATUS2_FOCUS_ENERGY))
{
gBattleMons[battlerId].status2 |= STATUS2_FOCUS_ENERGY;
BattleScriptExecute(BattleScript_BerryFocusEnergyEnd2);
@@ -2811,7 +2830,7 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn)
}
break;
case HOLD_EFFECT_RANDOM_STAT_UP:
- if (!moveTurn && gBattleMons[battlerId].hp <= gBattleMons[battlerId].maxHP / bankQuality)
+ if (!moveTurn && gBattleMons[battlerId].hp <= gBattleMons[battlerId].maxHP / BattlerQuality)
{
for (i = 0; i < 5; i++)
{
@@ -2977,15 +2996,15 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn)
gLastUsedItem = gBattleMons[battlerId].item;
if (gBattleMons[battlerId].item == ITEM_ENIGMA_BERRY)
{
- bankHoldEffect = gEnigmaBerries[battlerId].holdEffect;
- bankQuality = gEnigmaBerries[battlerId].holdEffectParam;
+ BattlerHoldEffect = gEnigmaBerries[battlerId].holdEffect;
+ BattlerQuality = gEnigmaBerries[battlerId].holdEffectParam;
}
else
{
- bankHoldEffect = ItemId_GetHoldEffect(gLastUsedItem);
- bankQuality = ItemId_GetHoldEffectParam(gLastUsedItem);
+ BattlerHoldEffect = ItemId_GetHoldEffect(gLastUsedItem);
+ BattlerQuality = ItemId_GetHoldEffectParam(gLastUsedItem);
}
- switch (bankHoldEffect)
+ switch (BattlerHoldEffect)
{
case HOLD_EFFECT_CURE_PAR:
if (gBattleMons[battlerId].status1 & STATUS1_PARALYSIS)
@@ -3180,7 +3199,7 @@ void HandleAction_RunBattleScript(void) // identical to RunBattleScriptCommands
u8 GetMoveTarget(u16 move, u8 setTarget)
{
- u8 targetBank = 0;
+ u8 targetBattler = 0;
u8 moveTarget;
u8 side;
@@ -3194,21 +3213,21 @@ u8 GetMoveTarget(u16 move, u8 setTarget)
case MOVE_TARGET_SELECTED:
side = GetBattlerSide(gBattlerAttacker) ^ BIT_SIDE;
if (gSideTimers[side].followmeTimer && gBattleMons[gSideTimers[side].followmeTarget].hp)
- targetBank = gSideTimers[side].followmeTarget;
+ targetBattler = gSideTimers[side].followmeTarget;
else
{
side = GetBattlerSide(gBattlerAttacker);
do
{
- targetBank = Random() % gBattlersCount;
- } while (targetBank == gBattlerAttacker || side == GetBattlerSide(targetBank) || gAbsentBattlerFlags & gBitTable[targetBank]);
+ targetBattler = Random() % gBattlersCount;
+ } while (targetBattler == gBattlerAttacker || side == GetBattlerSide(targetBattler) || gAbsentBattlerFlags & gBitTable[targetBattler]);
if (gBattleMoves[move].type == TYPE_ELECTRIC
&& AbilityBattleEffects(ABILITYEFFECT_COUNT_OTHER_SIDE, gBattlerAttacker, ABILITY_LIGHTNING_ROD, 0, 0)
- && gBattleMons[targetBank].ability != ABILITY_LIGHTNING_ROD)
+ && gBattleMons[targetBattler].ability != ABILITY_LIGHTNING_ROD)
{
- targetBank ^= BIT_FLANK;
- RecordAbilityBattle(targetBank, gBattleMons[targetBank].ability);
- gSpecialStatuses[targetBank].lightningRodRedirected = 1;
+ targetBattler ^= BIT_FLANK;
+ RecordAbilityBattle(targetBattler, gBattleMons[targetBattler].ability);
+ gSpecialStatuses[targetBattler].lightningRodRedirected = 1;
}
}
break;
@@ -3216,45 +3235,45 @@ u8 GetMoveTarget(u16 move, u8 setTarget)
case MOVE_TARGET_BOTH:
case MOVE_TARGET_FOES_AND_ALLY:
case MOVE_TARGET_OPPONENTS_FIELD:
- targetBank = GetBattlerAtPosition((GetBattlerPosition(gBattlerAttacker) & BIT_SIDE) ^ BIT_SIDE);
- if (gAbsentBattlerFlags & gBitTable[targetBank])
- targetBank ^= BIT_FLANK;
+ targetBattler = GetBattlerAtPosition((GetBattlerPosition(gBattlerAttacker) & BIT_SIDE) ^ BIT_SIDE);
+ if (gAbsentBattlerFlags & gBitTable[targetBattler])
+ targetBattler ^= BIT_FLANK;
break;
case MOVE_TARGET_RANDOM:
side = GetBattlerSide(gBattlerAttacker) ^ BIT_SIDE;
if (gSideTimers[side].followmeTimer && gBattleMons[gSideTimers[side].followmeTarget].hp)
- targetBank = gSideTimers[side].followmeTarget;
+ targetBattler = gSideTimers[side].followmeTarget;
else if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && moveTarget & MOVE_TARGET_RANDOM)
{
if (GetBattlerSide(gBattlerAttacker) == B_SIDE_PLAYER)
{
if (Random() & 1)
- targetBank = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT);
+ targetBattler = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT);
else
- targetBank = GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT);
+ targetBattler = GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT);
}
else
{
if (Random() & 1)
- targetBank = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT);
+ targetBattler = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT);
else
- targetBank = GetBattlerAtPosition(B_POSITION_PLAYER_RIGHT);
+ targetBattler = GetBattlerAtPosition(B_POSITION_PLAYER_RIGHT);
}
- if (gAbsentBattlerFlags & gBitTable[targetBank])
- targetBank ^= BIT_FLANK;
+ if (gAbsentBattlerFlags & gBitTable[targetBattler])
+ targetBattler ^= BIT_FLANK;
}
else
- targetBank = GetBattlerAtPosition((GetBattlerPosition(gBattlerAttacker) & BIT_SIDE) ^ BIT_SIDE);
+ targetBattler = GetBattlerAtPosition((GetBattlerPosition(gBattlerAttacker) & BIT_SIDE) ^ BIT_SIDE);
break;
case MOVE_TARGET_USER_OR_SELECTED:
case MOVE_TARGET_USER:
- targetBank = gBattlerAttacker;
+ targetBattler = gBattlerAttacker;
break;
}
- *(gBattleStruct->moveTarget + gBattlerAttacker) = targetBank;
+ *(gBattleStruct->moveTarget + gBattlerAttacker) = targetBattler;
- return targetBank;
+ return targetBattler;
}
static bool32 HasObedientBitSet(u8 battlerId)
diff --git a/src/pokemon.c b/src/pokemon.c
index a4d62feca..7d685062f 100644
--- a/src/pokemon.c
+++ b/src/pokemon.c
@@ -1964,11 +1964,11 @@ void CalculateMonStats(struct Pokemon *mon)
SetMonData(mon, MON_DATA_MAX_HP, &newMaxHP);
- CALC_STAT(baseAttack, attackIV, attackEV, 1, MON_DATA_ATK)
- CALC_STAT(baseDefense, defenseIV, defenseEV, 2, MON_DATA_DEF)
- CALC_STAT(baseSpeed, speedIV, speedEV, 3, MON_DATA_SPEED)
- CALC_STAT(baseSpAttack, spAttackIV, spAttackEV, 4, MON_DATA_SPATK)
- CALC_STAT(baseSpDefense, spDefenseIV, spDefenseEV, 5, MON_DATA_SPDEF)
+ CALC_STAT(baseAttack, attackIV, attackEV, STAT_ATK, MON_DATA_ATK)
+ CALC_STAT(baseDefense, defenseIV, defenseEV, STAT_DEF, MON_DATA_DEF)
+ CALC_STAT(baseSpeed, speedIV, speedEV, STAT_SPEED, MON_DATA_SPEED)
+ CALC_STAT(baseSpAttack, spAttackIV, spAttackEV, STAT_SPATK, MON_DATA_SPATK)
+ CALC_STAT(baseSpDefense, spDefenseIV, spDefenseEV, STAT_SPDEF, MON_DATA_SPDEF)
if (species == SPECIES_SHEDINJA)
{
@@ -4819,21 +4819,21 @@ bool8 sub_806D7EC(void)
return retVal;
}
-bool16 sub_806D82C(u8 id)
+u16 GetLinkTrainerFlankId(u8 linkPlayerId)
{
- bool16 retVal = FALSE;
- switch (gLinkPlayers[id].lp_field_18)
+ u16 flankId = 0;
+ switch (gLinkPlayers[linkPlayerId].lp_field_18)
{
case 0:
case 3:
- retVal = FALSE;
+ flankId = 0;
break;
case 1:
case 2:
- retVal = TRUE;
+ flankId = 1;
break;
}
- return retVal;
+ return flankId;
}
s32 GetBattlerMultiplayerId(u16 a1)
diff --git a/src/recorded_battle.c b/src/recorded_battle.c
index 3a4265895..e36716feb 100644
--- a/src/recorded_battle.c
+++ b/src/recorded_battle.c
@@ -58,8 +58,8 @@ struct RecordedBattleSave
u8 field_4FC;
u8 field_4FD;
u8 field_4FE;
- u8 battleStyle : 1;
- u8 textSpeed : 3;
+ u8 battleStyle:1;
+ u8 textSpeed:3;
u32 AI_scripts;
u8 field_504[8];
u8 field_50C;
@@ -79,19 +79,19 @@ EWRAM_DATA static u16 sUnknown_0203C79C[4] = {0};
EWRAM_DATA static u16 sUnknown_0203C7A4[4] = {0};
EWRAM_DATA static u8 sUnknown_0203C7AC = 0;
EWRAM_DATA static u8 sUnknown_0203C7AD = 0;
-EWRAM_DATA static u8 sRecordedBattle_FrontierFacility = 0;
+EWRAM_DATA static u8 sFrontierFacility = 0;
EWRAM_DATA static u8 sUnknown_0203C7AF = 0;
EWRAM_DATA static MainCallback sCallback2_AfterRecordedBattle = NULL;
EWRAM_DATA u8 gUnknown_0203C7B4 = 0;
EWRAM_DATA static u8 sUnknown_0203C7B5 = 0;
-EWRAM_DATA static u8 sRecordedBattle_BattleStyle = 0;
-EWRAM_DATA static u8 sRecordedBattle_TextSpeed = 0;
-EWRAM_DATA static u32 sRecordedBattle_BattleFlags = 0;
-EWRAM_DATA static u32 sRecordedBattle_AI_Scripts = 0;
+EWRAM_DATA static u8 sBattleStyle = 0;
+EWRAM_DATA static u8 sTextSpeed = 0;
+EWRAM_DATA static u32 sBattleFlags = 0;
+EWRAM_DATA static u32 sAI_Scripts = 0;
EWRAM_DATA static struct Pokemon sSavedPlayerParty[PARTY_SIZE] = {0};
EWRAM_DATA static struct Pokemon sSavedOpponentParty[PARTY_SIZE] = {0};
-EWRAM_DATA static u16 sRecordedBattle_PlayerMonMoves[2][4] = {0};
-EWRAM_DATA static struct PlayerInfo sRecordedBattle_Players[MAX_BATTLERS_COUNT] = {0};
+EWRAM_DATA static u16 sPlayerMonMoves[2][4] = {0};
+EWRAM_DATA static struct PlayerInfo sPlayers[MAX_BATTLERS_COUNT] = {0};
EWRAM_DATA static u8 sUnknown_0203CCD0 = 0;
EWRAM_DATA static u8 sUnknown_0203CCD1[8] = {0};
EWRAM_DATA static u8 sUnknown_0203CCD9 = 0;
@@ -126,8 +126,8 @@ void sub_8184DA4(u8 arg0)
{
sBattleRecords[i][j] |= 0xFF;
}
- sRecordedBattle_BattleFlags = gBattleTypeFlags;
- sRecordedBattle_AI_Scripts = gBattleResources->ai->aiFlags;
+ sBattleFlags = gBattleTypeFlags;
+ sAI_Scripts = gBattleResources->ai->aiFlags;
}
}
}
@@ -139,7 +139,7 @@ void sub_8184E58(void)
if (sUnknown_0203C7AC == 1)
{
gRecordedBattleRngSeed = gRngValue;
- sRecordedBattle_FrontierFacility = VarGet(VAR_FRONTIER_FACILITY);
+ sFrontierFacility = VarGet(VAR_FRONTIER_FACILITY);
sUnknown_0203C7AF = sub_81A513C();
}
else if (sUnknown_0203C7AC == 2)
@@ -157,37 +157,37 @@ void sub_8184E58(void)
for (i = 0; i < MAX_BATTLERS_COUNT; i++)
{
- sRecordedBattle_Players[i].trainerId = gLinkPlayers[i].trainerId;
- sRecordedBattle_Players[i].gender = gLinkPlayers[i].gender;
- sRecordedBattle_Players[i].battlerId = gLinkPlayers[i].lp_field_18;
- sRecordedBattle_Players[i].language = gLinkPlayers[i].language;
+ sPlayers[i].trainerId = gLinkPlayers[i].trainerId;
+ sPlayers[i].gender = gLinkPlayers[i].gender;
+ sPlayers[i].battlerId = gLinkPlayers[i].lp_field_18;
+ sPlayers[i].language = gLinkPlayers[i].language;
if (i < linkPlayersCount)
{
StringCopy(text, gLinkPlayers[i].name);
StripExtCtrlCodes(text);
- StringCopy(sRecordedBattle_Players[i].name, text);
+ StringCopy(sPlayers[i].name, text);
}
else
{
for (j = 0; j < PLAYER_NAME_LENGTH; j++)
- sRecordedBattle_Players[i].name[j] = gLinkPlayers[i].name[j];
+ sPlayers[i].name[j] = gLinkPlayers[i].name[j];
}
}
}
else
{
- sRecordedBattle_Players[0].trainerId = (gSaveBlock2Ptr->playerTrainerId[0])
+ sPlayers[0].trainerId = (gSaveBlock2Ptr->playerTrainerId[0])
| (gSaveBlock2Ptr->playerTrainerId[1] << 8)
| (gSaveBlock2Ptr->playerTrainerId[2] << 16)
| (gSaveBlock2Ptr->playerTrainerId[3] << 24);
- sRecordedBattle_Players[0].gender = gSaveBlock2Ptr->playerGender;
- sRecordedBattle_Players[0].battlerId = 0;
- sRecordedBattle_Players[0].language = gGameLanguage;
+ sPlayers[0].gender = gSaveBlock2Ptr->playerGender;
+ sPlayers[0].battlerId = 0;
+ sPlayers[0].language = gGameLanguage;
for (i = 0; i < PLAYER_NAME_LENGTH; i++)
- sRecordedBattle_Players[0].name[i] = gSaveBlock2Ptr->playerName[i];
+ sPlayers[0].name[i] = gSaveBlock2Ptr->playerName[i];
}
}
@@ -214,7 +214,7 @@ void RecordedBattle_ClearBattlerAction(u8 battlerId, u8 bytesToClear)
u8 RecordedBattle_GetBattlerAction(u8 battlerId)
{
- // trying to read past array or invalid action byte, battle is over
+ // Trying to read past array or invalid action byte, battle is over.
if (sRecordedBytesNo[battlerId] >= BATTLER_RECORD_SIZE || sBattleRecords[battlerId][sRecordedBytesNo[battlerId]] == 0xFF)
{
gSpecialVar_Result = gBattleOutcome = B_OUTCOME_PLAYER_TELEPORTED; // hah
@@ -345,37 +345,37 @@ u32 MoveRecordedBattleToSaveData(void)
{
for (j = 0; j < PLAYER_NAME_LENGTH; j++)
{
- battleSave->playersName[i][j] = sRecordedBattle_Players[i].name[j];
+ battleSave->playersName[i][j] = sPlayers[i].name[j];
}
- battleSave->playersGender[i] = sRecordedBattle_Players[i].gender;
- battleSave->playersLanguage[i] = sRecordedBattle_Players[i].language;
- battleSave->playersBattlers[i] = sRecordedBattle_Players[i].battlerId;
- battleSave->playersTrainerId[i] = sRecordedBattle_Players[i].trainerId;
+ battleSave->playersGender[i] = sPlayers[i].gender;
+ battleSave->playersLanguage[i] = sPlayers[i].language;
+ battleSave->playersBattlers[i] = sPlayers[i].battlerId;
+ battleSave->playersTrainerId[i] = sPlayers[i].trainerId;
}
battleSave->rngSeed = gRecordedBattleRngSeed;
- if (sRecordedBattle_BattleFlags & BATTLE_TYPE_LINK)
+ if (sBattleFlags & BATTLE_TYPE_LINK)
{
- battleSave->battleFlags = (sRecordedBattle_BattleFlags & ~(BATTLE_TYPE_LINK | BATTLE_TYPE_20));
+ battleSave->battleFlags = (sBattleFlags & ~(BATTLE_TYPE_LINK | BATTLE_TYPE_20));
battleSave->battleFlags |= BATTLE_TYPE_x2000000;
- if (sRecordedBattle_BattleFlags & BATTLE_TYPE_WILD)
+ if (sBattleFlags & BATTLE_TYPE_WILD)
{
battleSave->battleFlags |= BATTLE_TYPE_x80000000;
}
- else if (sRecordedBattle_BattleFlags & BATTLE_TYPE_MULTI)
+ else if (sBattleFlags & BATTLE_TYPE_MULTI)
{
- switch (sRecordedBattle_Players[0].battlerId)
+ switch (sPlayers[0].battlerId)
{
case 0:
case 2:
- if (!(sRecordedBattle_Players[gUnknown_0203C7B4].battlerId & 1))
+ if (!(sPlayers[gUnknown_0203C7B4].battlerId & 1))
battleSave->battleFlags |= BATTLE_TYPE_x80000000;
break;
case 1:
case 3:
- if ((sRecordedBattle_Players[gUnknown_0203C7B4].battlerId & 1))
+ if ((sPlayers[gUnknown_0203C7B4].battlerId & 1))
battleSave->battleFlags |= BATTLE_TYPE_x80000000;
break;
}
@@ -383,7 +383,7 @@ u32 MoveRecordedBattleToSaveData(void)
}
else
{
- battleSave->battleFlags = sRecordedBattle_BattleFlags;
+ battleSave->battleFlags = sBattleFlags;
}
battleSave->opponentA = gTrainerBattleOpponent_A;
@@ -391,11 +391,11 @@ u32 MoveRecordedBattleToSaveData(void)
battleSave->partnerId = gPartnerTrainerId;
battleSave->field_4FA = gUnknown_0203C7B4;
battleSave->field_4FC = gSaveBlock2Ptr->field_CA9_b;
- battleSave->field_4FD = sRecordedBattle_FrontierFacility;
+ battleSave->field_4FD = sFrontierFacility;
battleSave->field_4FE = sUnknown_0203C7AF;
battleSave->battleStyle = gSaveBlock2Ptr->optionsBattleStyle;
battleSave->textSpeed = gSaveBlock2Ptr->optionsTextSpeed;
- battleSave->AI_scripts = sRecordedBattle_AI_Scripts;
+ battleSave->AI_scripts = sAI_Scripts;
/* Can't match it without proper knowledge of the Saveblock 2.
if (gTrainerBattleOpponent_A >= 300 && gTrainerBattleOpponent_A <= 399)
@@ -525,7 +525,7 @@ _0818535E:\n\
lsls r3, 3\n\
adds r3, r7, r3\n\
str r3, [sp, 0x8]\n\
- ldr r5, =sRecordedBattle_Players\n\
+ ldr r5, =sPlayers\n\
mov r8, r6\n\
mov r12, r6\n\
movs r4, 0x96\n\
@@ -536,7 +536,7 @@ _0818535E:\n\
adds r4, r7, r0\n\
_081853AC:\n\
lsls r1, r6, 3\n\
- ldr r0, =sRecordedBattle_Players\n\
+ ldr r0, =sPlayers\n\
adds r0, 0x4\n\
mov r3, r8\n\
adds r2, r3, r0\n\
@@ -578,7 +578,7 @@ _081853BA:\n\
ldr r5, =gRecordedBattleRngSeed\n\
ldr r0, [r5]\n\
str r0, [r1]\n\
- ldr r0, =sRecordedBattle_BattleFlags\n\
+ ldr r0, =sBattleFlags\n\
ldr r2, [r0]\n\
movs r0, 0x2\n\
ands r0, r2\n\
@@ -608,7 +608,7 @@ _08185454:\n\
ands r2, r0\n\
cmp r2, 0\n\
beq _081854E2\n\
- ldr r2, =sRecordedBattle_Players\n\
+ ldr r2, =sPlayers\n\
ldrh r0, [r2, 0xE]\n\
cmp r0, 0x1\n\
beq _081854A8\n\
@@ -630,7 +630,7 @@ _0818547E:\n\
lsls r0, r1, 2\n\
adds r0, r1\n\
lsls r0, 2\n\
- ldr r4, =sRecordedBattle_Players\n\
+ ldr r4, =sPlayers\n\
adds r0, r4\n\
ldrh r1, [r0, 0xE]\n\
movs r0, 0x1\n\
@@ -647,7 +647,7 @@ _081854A8:\n\
lsls r0, r1, 2\n\
adds r0, r1\n\
lsls r0, 2\n\
- ldr r1, =sRecordedBattle_Players\n\
+ ldr r1, =sPlayers\n\
adds r0, r1\n\
ldrh r1, [r0, 0xE]\n\
movs r0, 0x1\n\
@@ -700,7 +700,7 @@ _081854E2:\n\
ldr r5, =0x000004fc\n\
adds r1, r7, r5\n\
strb r0, [r1]\n\
- ldr r0, =sRecordedBattle_FrontierFacility\n\
+ ldr r0, =sFrontierFacility\n\
ldrb r1, [r0]\n\
adds r2, 0x3\n\
adds r0, r7, r2\n\
@@ -735,7 +735,7 @@ _081854E2:\n\
movs r2, 0xA0\n\
lsls r2, 3\n\
adds r1, r7, r2\n\
- ldr r3, =sRecordedBattle_AI_Scripts\n\
+ ldr r3, =sAI_Scripts\n\
ldr r0, [r3]\n\
str r0, [r1]\n\
ldr r4, =0xfffffed4\n\
@@ -1354,11 +1354,11 @@ static void SetRecordedBattleVarsFromSave(struct RecordedBattleSave *src)
gPartnerTrainerId = src->partnerId;
gUnknown_0203C7B4 = src->field_4FA;
sUnknown_0203C7AD = gSaveBlock2Ptr->frontierChosenLvl;
- sRecordedBattle_FrontierFacility = src->field_4FD;
+ sFrontierFacility = src->field_4FD;
sUnknown_0203C7AF = src->field_4FE;
- sRecordedBattle_BattleStyle = src->battleStyle;
- sRecordedBattle_TextSpeed = src->textSpeed;
- sRecordedBattle_AI_Scripts = src->AI_scripts;
+ sBattleStyle = src->battleStyle;
+ sTextSpeed = src->textSpeed;
+ sAI_Scripts = src->AI_scripts;
for (i = 0; i < 8; i++)
{
@@ -1417,7 +1417,7 @@ static void CB2_RecordedBattle(void)
u8 GetRecordedBattleFrontierFacility(void)
{
- return sRecordedBattle_FrontierFacility;
+ return sFrontierFacility;
}
u8 sub_8185EAC(void)
@@ -1480,12 +1480,12 @@ u8 sub_8185FAC(void)
u8 GetBattleStyleInRecordedBattle(void)
{
- return sRecordedBattle_BattleStyle;
+ return sBattleStyle;
}
u8 GetTextSpeedInRecordedBattle(void)
{
- return sRecordedBattle_TextSpeed;
+ return sTextSpeed;
}
void RecordedBattle_CopyBattlerMoves(void)
@@ -1501,7 +1501,7 @@ void RecordedBattle_CopyBattlerMoves(void)
for (i = 0; i < 4; i++)
{
- sRecordedBattle_PlayerMonMoves[gActiveBattler / 2][i] = gBattleMons[gActiveBattler].moves[i];
+ sPlayerMonMoves[gActiveBattler / 2][i] = gBattleMons[gActiveBattler].moves[i];
}
}
@@ -1522,7 +1522,7 @@ void sub_818603C(u8 arg0)
{
for (j = 0; j < 4; j++)
{
- if (gBattleMons[battlerId].moves[j] != sRecordedBattle_PlayerMonMoves[battlerId / 2][j])
+ if (gBattleMons[battlerId].moves[j] != sPlayerMonMoves[battlerId / 2][j])
break;
}
if (j != 4) // player's mon's move has been changed
@@ -1532,7 +1532,7 @@ void sub_818603C(u8 arg0)
{
for (k = 0; k < 4; k++)
{
- if (gBattleMons[battlerId].moves[j] == sRecordedBattle_PlayerMonMoves[battlerId / 2][k])
+ if (gBattleMons[battlerId].moves[j] == sPlayerMonMoves[battlerId / 2][k])
{
RecordedBattle_SetBattlerAction(battlerId, k);
break;
@@ -1612,7 +1612,7 @@ void sub_818603C(u8 arg0)
u32 GetAiScriptsInRecordedBattle(void)
{
- return sRecordedBattle_AI_Scripts;
+ return sAI_Scripts;
}
void sub_8186444(void)