summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/battle/anim/fight.c4
-rw-r--r--src/battle/anim/flying.c4
-rw-r--r--src/battle/anim/ice.c18
-rw-r--r--src/battle/anim/sonic.c4
-rw-r--r--src/battle_ai_script_commands.c8
-rw-r--r--src/battle_ai_switch_items.c2
-rw-r--r--src/battle_controller_link_opponent.c2
-rw-r--r--src/battle_controller_link_partner.c2
-rw-r--r--src/battle_controller_opponent.c2
-rw-r--r--src/battle_controller_player.c8
-rw-r--r--src/battle_controller_safari.c2
-rw-r--r--src/battle_controller_wally.c3
-rw-r--r--src/battle_controllers.c332
-rw-r--r--src/battle_gfx_sfx_util.c18
-rw-r--r--src/battle_interface.c4
-rw-r--r--src/battle_main.c74
-rw-r--r--src/battle_script_commands.c801
-rw-r--r--src/battle_util.c52
-rw-r--r--src/calculate_base_damage.c6
-rw-r--r--src/contest.c10
-rw-r--r--src/main.c2
-rw-r--r--src/pokemon_item_effect.c4
-rw-r--r--src/rom_8077ABC.c10
-rw-r--r--src/tv.c2
24 files changed, 695 insertions, 679 deletions
diff --git a/src/battle/anim/fight.c b/src/battle/anim/fight.c
index 8d045c42d..450844453 100644
--- a/src/battle/anim/fight.c
+++ b/src/battle/anim/fight.c
@@ -12,7 +12,7 @@ extern u8 gBattlerAttacker;
extern u8 gBattleAnimAttacker;
extern u8 gBattleAnimTarget;
extern u8 gBattlerSpriteIds[];
-extern u8 gBanksBySide[];
+extern u8 gBattlerPositions[];
extern u16 gBattle_BG1_X;
extern u16 gBattle_BG1_Y;
extern u16 gBattle_BG2_X;
@@ -516,7 +516,7 @@ void sub_80D90F4(struct Sprite *sprite)
if (Random() & 1)
y *= -1;
- if ((gBanksBySide[bank] & 1) == 0)
+ if ((gBattlerPositions[bank] & 1) == 0)
y += 0xFFF0;
sprite->pos1.x += x;
diff --git a/src/battle/anim/flying.c b/src/battle/anim/flying.c
index 1f36c933a..407c9a08f 100644
--- a/src/battle/anim/flying.c
+++ b/src/battle/anim/flying.c
@@ -12,7 +12,7 @@ extern u8 gBattleAnimAttacker;
extern u8 gBattleAnimTarget;
extern u8 gAnimVisualTaskCount;
extern struct OamMatrix gOamMatrices[];
-extern u8 gBanksBySide[];
+extern u8 gBattlerPositions[];
extern const struct SpriteTemplate gBattleAnimSpriteTemplate_83DB538;
void sub_80785E4(struct Sprite *sprite);
@@ -1899,7 +1899,7 @@ void sub_80DAD84(struct Sprite * sprite)
if (gMain.inBattle)
{
- if (gBanksBySide[gBattleAnimTarget] & 1)
+ if (gBattlerPositions[gBattleAnimTarget] & 1)
{
sprite->data[7] = GetBattlerSpriteCoord(gBattleAnimTarget, 1) + gBattleAnimArgs[3];
}
diff --git a/src/battle/anim/ice.c b/src/battle/anim/ice.c
index 4002ceec1..e41057d72 100644
--- a/src/battle/anim/ice.c
+++ b/src/battle/anim/ice.c
@@ -14,7 +14,7 @@ extern s16 gBattleAnimArgs[];
extern u8 gBattleAnimAttacker;
extern u8 gBattleAnimTarget;
extern u8 gAnimVisualTaskCount;
-extern u8 gBanksBySide[];
+extern u8 gBattlerPositions[];
extern u8 gBattlerSpriteIds[];
extern u16 gBattle_BG1_X;
@@ -1419,12 +1419,12 @@ static void InitPoisonGasCloudAnim(struct Sprite *sprite)
if (GetBattlerSpriteCoord(gBattleAnimAttacker, 2) < GetBattlerSpriteCoord(gBattleAnimTarget, 2))
sprite->data[7] = 0x8000;
- if (!(gBanksBySide[gBattleAnimTarget] & 1))
+ if (!(gBattlerPositions[gBattleAnimTarget] & 1))
{
gBattleAnimArgs[1] = -gBattleAnimArgs[1];
gBattleAnimArgs[3] = -gBattleAnimArgs[3];
- if ((sprite->data[7] & 0x8000) && !(gBanksBySide[gBattleAnimAttacker] & 1))
+ if ((sprite->data[7] & 0x8000) && !(gBattlerPositions[gBattleAnimAttacker] & 1))
sprite->subpriority = gSprites[GetAnimBattlerSpriteId(1)].subpriority + 1;
sprite->data[6] = 1;
@@ -1490,7 +1490,7 @@ static void sub_80D8874(struct Sprite *sprite)
sprite->data[3] = sprite->pos1.y;
sprite->data[4] = sprite->pos1.y + 29;
sprite->data[7]++;
- if (gMain.inBattle && gBanksBySide[gBattleAnimTarget] & 1)
+ if (gMain.inBattle && gBattlerPositions[gBattleAnimTarget] & 1)
sprite->data[5] = 204;
else
sprite->data[5] = value2;
@@ -1535,7 +1535,7 @@ static void sub_80D8874(struct Sprite *sprite)
sprite->data[1] = sprite->pos1.x += sprite->pos2.x;
sprite->data[3] = sprite->pos1.y += sprite->pos2.y;
sprite->data[4] = sprite->pos1.y + 4;
- if (gMain.inBattle && gBanksBySide[gBattleAnimTarget] & 1)
+ if (gMain.inBattle && gBattlerPositions[gBattleAnimTarget] & 1)
sprite->data[2] = 0x100;
else
sprite->data[2] = -0x10;
@@ -1646,7 +1646,7 @@ NAKED static void sub_80D8874(struct Sprite *sprite)
"\tands r0, r1\n"
"\tcmp r0, 0\n"
"\tbeq _080D8938\n"
- "\tldr r1, _080D8934 @ =gBanksBySide\n"
+ "\tldr r1, _080D8934 @ =gBattlerPositions\n"
"\tldrb r0, [r6]\n"
"\tadds r0, r1\n"
"\tldrb r1, [r0]\n"
@@ -1661,7 +1661,7 @@ NAKED static void sub_80D8874(struct Sprite *sprite)
"_080D8928: .4byte gBattleAnimTarget\n"
"_080D892C: .4byte gMain\n"
"_080D8930: .4byte 0x0000043d\n"
- "_080D8934: .4byte gBanksBySide\n"
+ "_080D8934: .4byte gBattlerPositions\n"
"_080D8938:\n"
"\tstrh r5, [r4, 0x38]\n"
"_080D893A:\n"
@@ -1806,7 +1806,7 @@ NAKED static void sub_80D8874(struct Sprite *sprite)
"\tands r0, r1\n"
"\tcmp r0, 0\n"
"\tbeq _080D8A78\n"
- "\tldr r1, _080D8A70 @ =gBanksBySide\n"
+ "\tldr r1, _080D8A70 @ =gBattlerPositions\n"
"\tldr r0, _080D8A74 @ =gBattleAnimTarget\n"
"\tldrb r0, [r0]\n"
"\tadds r0, r1\n"
@@ -1821,7 +1821,7 @@ NAKED static void sub_80D8874(struct Sprite *sprite)
"\t.align 2, 0\n"
"_080D8A68: .4byte gMain\n"
"_080D8A6C: .4byte 0x0000043d\n"
- "_080D8A70: .4byte gBanksBySide\n"
+ "_080D8A70: .4byte gBattlerPositions\n"
"_080D8A74: .4byte gBattleAnimTarget\n"
"_080D8A78:\n"
"\tldr r0, _080D8A90 @ =0x0000fff0\n"
diff --git a/src/battle/anim/sonic.c b/src/battle/anim/sonic.c
index 9cdda992f..cef255eda 100644
--- a/src/battle/anim/sonic.c
+++ b/src/battle/anim/sonic.c
@@ -9,7 +9,7 @@
extern s16 gBattleAnimArgs[];
extern u8 gBattleAnimAttacker;
extern u8 gBattleAnimTarget;
-extern u8 gBanksBySide[];
+extern u8 gBattlerPositions[];
extern u16 gBattleTypeFlags;
extern void sub_80D4CA4(struct Sprite *sprite);
@@ -296,7 +296,7 @@ void sub_80CFB04(u8 taskId)
}
else
{
- if ((gBanksBySide[gBattleAnimTarget] & 1) == 0)
+ if ((gBattlerPositions[gBattleAnimTarget] & 1) == 0)
{
gTasks[taskId].data[4] = 1;
gBattleAnimArgs[0] = -gBattleAnimArgs[0];
diff --git a/src/battle_ai_script_commands.c b/src/battle_ai_script_commands.c
index 0c8b8fb1b..ca72e254c 100644
--- a/src/battle_ai_script_commands.c
+++ b/src/battle_ai_script_commands.c
@@ -28,7 +28,7 @@ extern u8 gMoveResultFlags;
extern u16 gDynamicBasePower;
extern u16 gLastUsedMove[MAX_BATTLERS_COUNT];
extern u32 gStatuses3[MAX_BATTLERS_COUNT];
-extern u16 gSideAffecting[2];
+extern u16 gSideStatuses[2];
extern struct BattlePokemon gBattleMons[MAX_BATTLERS_COUNT];
extern u8 gCritMultiplier;
extern u16 gTrainerBattleOpponent;
@@ -468,7 +468,7 @@ void RecordAbilityBattle(u8 a, u8 b)
AI_BATTLE_HISTORY->abilities[GetBattlerPosition(a) & 1] = b;
}
-void RecordItemBattle(u8 a, u8 b)
+void RecordItemEffectBattle(u8 a, u8 b)
{
if (GetBattlerSide(a) == 0)
AI_BATTLE_HISTORY->itemEffects[GetBattlerPosition(a) & 1] = b;
@@ -697,7 +697,7 @@ static void BattleAICmd_if_status4(void)
arg1 = GetBattlerPosition(index) & 1;
arg2 = T1_READ_32(gAIScriptPtr + 2);
- if ((gSideAffecting[arg1] & arg2) != 0)
+ if ((gSideStatuses[arg1] & arg2) != 0)
gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 6);
else
gAIScriptPtr += 10;
@@ -716,7 +716,7 @@ static void BattleAICmd_if_not_status4(void)
arg1 = GetBattlerPosition(index) & 1;
arg2 = T1_READ_32(gAIScriptPtr + 2);
- if ((gSideAffecting[arg1] & arg2) == 0)
+ if ((gSideStatuses[arg1] & arg2) == 0)
gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 6);
else
gAIScriptPtr += 10;
diff --git a/src/battle_ai_switch_items.c b/src/battle_ai_switch_items.c
index e3126cb23..b4b2841e0 100644
--- a/src/battle_ai_switch_items.c
+++ b/src/battle_ai_switch_items.c
@@ -1,13 +1,13 @@
#include "global.h"
#include "battle.h"
#include "battle_ai_switch_items.h"
+#include "battle_controllers.h"
#include "battle_script_commands.h"
#include "data2.h"
#include "ewram.h"
#include "pokemon.h"
#include "random.h"
#include "rom_8077ABC.h"
-#include "rom3.h"
#include "util.h"
#include "constants/abilities.h"
#include "constants/items.h"
diff --git a/src/battle_controller_link_opponent.c b/src/battle_controller_link_opponent.c
index d99b4fe27..a1d07eb50 100644
--- a/src/battle_controller_link_opponent.c
+++ b/src/battle_controller_link_opponent.c
@@ -2,6 +2,7 @@
#include "battle.h"
#include "battle_anim.h"
#include "battle_anim_special.h"
+#include "battle_controllers.h"
#include "battle_interface.h"
#include "data2.h"
#include "link.h"
@@ -9,7 +10,6 @@
#include "main.h"
#include "palette.h"
#include "rom_8077ABC.h"
-#include "rom3.h"
#include "constants/songs.h"
#include "sound.h"
#include "sprite.h"
diff --git a/src/battle_controller_link_partner.c b/src/battle_controller_link_partner.c
index a5b24815f..3ea5bd624 100644
--- a/src/battle_controller_link_partner.c
+++ b/src/battle_controller_link_partner.c
@@ -2,6 +2,7 @@
#include "battle.h"
#include "battle_anim.h"
#include "battle_anim_special.h"
+#include "battle_controllers.h"
#include "battle_interface.h"
#include "data2.h"
#include "battle_811DA74.h"
@@ -12,7 +13,6 @@
#include "palette.h"
#include "pokeball.h"
#include "pokemon.h"
-#include "rom3.h"
#include "rom_8077ABC.h"
#include "sound.h"
#include "constants/songs.h"
diff --git a/src/battle_controller_opponent.c b/src/battle_controller_opponent.c
index 2cc42ca2a..9e0398b7b 100644
--- a/src/battle_controller_opponent.c
+++ b/src/battle_controller_opponent.c
@@ -2,6 +2,7 @@
#include "battle.h"
#include "battle_ai_switch_items.h"
#include "battle_anim.h"
+#include "battle_controllers.h"
#include "battle_interface.h"
#include "data2.h"
#include "battle_811DA74.h"
@@ -13,7 +14,6 @@
#include "palette.h"
#include "pokeball.h"
#include "pokemon.h"
-#include "rom3.h"
#include "rom_8077ABC.h"
#include "sound.h"
#include "constants/songs.h"
diff --git a/src/battle_controller_player.c b/src/battle_controller_player.c
index 7de3ada41..361eb8ef8 100644
--- a/src/battle_controller_player.c
+++ b/src/battle_controller_player.c
@@ -3,6 +3,7 @@
#include "battle.h"
#include "battle_anim.h"
#include "battle_anim_special.h"
+#include "battle_controllers.h"
#include "battle_interface.h"
#include "battle_message.h"
#include "item.h"
@@ -14,7 +15,6 @@
#include "constants/moves.h"
#include "palette.h"
#include "pokemon.h"
-#include "rom3.h"
#include "constants/songs.h"
#include "sound.h"
#include "string_util.h"
@@ -819,10 +819,10 @@ void sub_802CA60(void)
r9->unkC[gMoveSelectionCursor[gActiveBattler]] = r9->unkC[gUnknown_03004344];
r9->unkC[gUnknown_03004344] = i;
- if (gDisableStructs[gActiveBattler].unk18_b & gBitTable[gMoveSelectionCursor[gActiveBattler]])
+ if (gDisableStructs[gActiveBattler].mimickedMoves & gBitTable[gMoveSelectionCursor[gActiveBattler]])
{
- gDisableStructs[gActiveBattler].unk18_b &= ~gBitTable[gMoveSelectionCursor[gActiveBattler]];
- gDisableStructs[gActiveBattler].unk18_b |= gBitTable[gUnknown_03004344];
+ gDisableStructs[gActiveBattler].mimickedMoves &= ~gBitTable[gMoveSelectionCursor[gActiveBattler]];
+ gDisableStructs[gActiveBattler].mimickedMoves |= gBitTable[gUnknown_03004344];
}
sub_802E1B0();
diff --git a/src/battle_controller_safari.c b/src/battle_controller_safari.c
index 28418531f..5cf06796f 100644
--- a/src/battle_controller_safari.c
+++ b/src/battle_controller_safari.c
@@ -1,6 +1,7 @@
#include "global.h"
#include "battle_anim_81258BC.h"
#include "battle.h"
+#include "battle_controllers.h"
#include "battle_interface.h"
#include "battle_message.h"
#include "data2.h"
@@ -8,7 +9,6 @@
#include "main.h"
#include "menu_cursor.h"
#include "palette.h"
-#include "rom3.h"
#include "constants/songs.h"
#include "sound.h"
#include "text.h"
diff --git a/src/battle_controller_wally.c b/src/battle_controller_wally.c
index a16fe26cc..ac71aabaf 100644
--- a/src/battle_controller_wally.c
+++ b/src/battle_controller_wally.c
@@ -2,6 +2,7 @@
#include "battle.h"
#include "battle_anim.h"
#include "battle_anim_special.h"
+#include "battle_controllers.h"
#include "battle_interface.h"
#include "battle_message.h"
#include "data2.h"
@@ -10,7 +11,6 @@
#include "menu_cursor.h"
#include "palette.h"
#include "pokemon.h"
-#include "rom3.h"
#include "constants/songs.h"
#include "sound.h"
#include "sprite.h"
@@ -58,7 +58,6 @@ extern u8 gUnknown_0300434C[];
extern const u8 BattleText_WallyMenu[];
extern const u8 BattleText_MenuOptions[];
-// TODO: include rom3.h when my other PR gets merged
extern void BtlController_EmitTwoReturnValues(u8, u8, u16);
extern void BtlController_EmitOneReturnValue(u8, u16);
diff --git a/src/battle_controllers.c b/src/battle_controllers.c
index a1990b3ba..02cb59cc4 100644
--- a/src/battle_controllers.c
+++ b/src/battle_controllers.c
@@ -11,7 +11,6 @@
#include "constants/items.h"
#include "link.h"
#include "pokemon.h"
-#include "rom3.h"
#include "rom_8094928.h"
#include "constants/species.h"
#include "task.h"
@@ -19,6 +18,7 @@
#include "battle_message.h"
#include "data2.h"
#include "ewram.h"
+#include "constants/abilities.h"
extern u16 gBattleTypeFlags;
extern u16 gBattleWeather;
@@ -35,7 +35,7 @@ extern u8 gActiveBattler;
extern u32 gBattleControllerExecFlags;
extern u8 gBattlersCount;
extern u16 gBattlerPartyIndexes[];
-extern u8 gBanksBySide[];
+extern u8 gBattlerPositions[];
extern u16 gCurrentMove;
extern u16 gChosenMove;
extern u16 gLastUsedItem;
@@ -58,7 +58,14 @@ extern void (*gBattlerControllerFuncs[])(void);
u8 gBattleBuffersTransferData[0x170];
-void sub_800B858(void)
+// this file's funcionts
+static void CreateTasksForSendRecvLinkBuffers(void);
+static void InitSinglePlayerBtlControllers(void);
+static void SetBattlePartyIds(void);
+static void Task_HandleSendLinkBuffersData(u8 taskId);
+static void Task_HandleCopyReceivedLinkBuffersData(u8 taskId);
+
+void HandleLinkBattleSetup(void)
{
if (gBattleTypeFlags & BATTLE_TYPE_LINK)
{
@@ -77,14 +84,16 @@ void SetUpBattleVarsAndBirchPoochyena(void)
s32 i;
gBattleMainFunc = nullsub_41;
- for (i = 0; i < 4; i++)
+
+ for (i = 0; i < MAX_BATTLERS_COUNT; i++)
{
gBattlerControllerFuncs[i] = nullsub_91;
- gBanksBySide[i] = 0xFF;
+ gBattlerPositions[i] = 0xFF;
gActionSelectionCursor[i] = 0;
gMoveSelectionCursor[i] = 0;
}
- sub_800B858();
+
+ HandleLinkBattleSetup();
gBattleControllerExecFlags = 0;
ClearBattleAnimationVars();
ClearBattleMonForms();
@@ -115,10 +124,12 @@ void sub_800B950(void)
s32 i;
if (gBattleTypeFlags & BATTLE_TYPE_LINK)
- sub_800BA78();
+ InitLinkBtlControllers();
else
- sub_800B9A8();
- sub_800BD54();
+ InitSinglePlayerBtlControllers();
+
+ SetBattlePartyIds();
+
if (!(gBattleTypeFlags & BATTLE_TYPE_MULTI))
{
for (i = 0; i < gBattlersCount; i++)
@@ -126,7 +137,7 @@ void sub_800B950(void)
}
}
-void sub_800B9A8(void)
+static void InitSinglePlayerBtlControllers(void)
{
if (!(gBattleTypeFlags & BATTLE_TYPE_DOUBLE))
{
@@ -137,27 +148,27 @@ void sub_800B9A8(void)
gBattlerControllerFuncs[0] = SetBankFuncToWallyBufferRunCommand;
else
gBattlerControllerFuncs[0] = SetBankFuncToPlayerBufferRunCommand;
- gBanksBySide[0] = 0;
+ gBattlerPositions[0] = 0;
gBattlerControllerFuncs[1] = SetBankFuncToOpponentBufferRunCommand;
- gBanksBySide[1] = 1;
+ gBattlerPositions[1] = 1;
gBattlersCount = 2;
}
else
{
gBattleMainFunc = sub_8010800;
gBattlerControllerFuncs[0] = SetBankFuncToPlayerBufferRunCommand;
- gBanksBySide[0] = 0;
+ gBattlerPositions[0] = 0;
gBattlerControllerFuncs[1] = SetBankFuncToOpponentBufferRunCommand;
- gBanksBySide[1] = 1;
+ gBattlerPositions[1] = 1;
gBattlerControllerFuncs[2] = SetBankFuncToPlayerBufferRunCommand;
- gBanksBySide[2] = 2;
+ gBattlerPositions[2] = 2;
gBattlerControllerFuncs[3] = SetBankFuncToOpponentBufferRunCommand;
- gBanksBySide[3] = 3;
+ gBattlerPositions[3] = 3;
gBattlersCount = 4;
}
}
-void sub_800BA78(void)
+void InitLinkBtlControllers(void)
{
u8 multiplayerId;
int i;
@@ -168,17 +179,17 @@ void sub_800BA78(void)
{
gBattleMainFunc = sub_8010800;
gBattlerControllerFuncs[0] = SetBankFuncToPlayerBufferRunCommand;
- gBanksBySide[0] = 0;
+ gBattlerPositions[0] = 0;
gBattlerControllerFuncs[1] = SetBankFuncToLinkOpponentBufferRunCommand;
- gBanksBySide[1] = 1;
+ gBattlerPositions[1] = 1;
gBattlersCount = 2;
}
else
{
gBattlerControllerFuncs[1] = SetBankFuncToPlayerBufferRunCommand;
- gBanksBySide[1] = 0;
+ gBattlerPositions[1] = 0;
gBattlerControllerFuncs[0] = SetBankFuncToLinkOpponentBufferRunCommand;
- gBanksBySide[0] = 1;
+ gBattlerPositions[0] = 1;
gBattlersCount = 2;
}
return;
@@ -189,25 +200,25 @@ void sub_800BA78(void)
{
gBattleMainFunc = sub_8010800;
gBattlerControllerFuncs[0] = SetBankFuncToPlayerBufferRunCommand;
- gBanksBySide[0] = 0;
+ gBattlerPositions[0] = 0;
gBattlerControllerFuncs[1] = SetBankFuncToLinkOpponentBufferRunCommand;
- gBanksBySide[1] = 1;
+ gBattlerPositions[1] = 1;
gBattlerControllerFuncs[2] = SetBankFuncToPlayerBufferRunCommand;
- gBanksBySide[2] = 2;
+ gBattlerPositions[2] = 2;
gBattlerControllerFuncs[3] = SetBankFuncToLinkOpponentBufferRunCommand;
- gBanksBySide[3] = 3;
+ gBattlerPositions[3] = 3;
gBattlersCount = 4;
}
else
{
gBattlerControllerFuncs[1] = SetBankFuncToPlayerBufferRunCommand;
- gBanksBySide[1] = 0;
+ gBattlerPositions[1] = 0;
gBattlerControllerFuncs[0] = SetBankFuncToLinkOpponentBufferRunCommand;
- gBanksBySide[0] = 1;
+ gBattlerPositions[0] = 1;
gBattlerControllerFuncs[3] = SetBankFuncToPlayerBufferRunCommand;
- gBanksBySide[3] = 2;
+ gBattlerPositions[3] = 2;
gBattlerControllerFuncs[2] = SetBankFuncToLinkOpponentBufferRunCommand;
- gBanksBySide[2] = 3;
+ gBattlerPositions[2] = 3;
gBattlersCount = 4;
}
@@ -237,12 +248,12 @@ void sub_800BA78(void)
{
case 0:
case 3:
- gBanksBySide[gLinkPlayers[i].id] = 0;
+ gBattlerPositions[gLinkPlayers[i].id] = 0;
gBattlerPartyIndexes[gLinkPlayers[i].id] = 0;
break;
case 1:
case 2:
- gBanksBySide[gLinkPlayers[i].id] = 2;
+ gBattlerPositions[gLinkPlayers[i].id] = 2;
gBattlerPartyIndexes[gLinkPlayers[i].id] = 3;
break;
}
@@ -257,12 +268,12 @@ void sub_800BA78(void)
{
case 0:
case 3:
- gBanksBySide[gLinkPlayers[i].id] = 0;
+ gBattlerPositions[gLinkPlayers[i].id] = 0;
gBattlerPartyIndexes[gLinkPlayers[i].id] = 0;
break;
case 1:
case 2:
- gBanksBySide[gLinkPlayers[i].id] = 2;
+ gBattlerPositions[gLinkPlayers[i].id] = 2;
gBattlerPartyIndexes[gLinkPlayers[i].id] = 3;
break;
}
@@ -274,12 +285,12 @@ void sub_800BA78(void)
{
case 0:
case 3:
- gBanksBySide[gLinkPlayers[i].id] = 1;
+ gBattlerPositions[gLinkPlayers[i].id] = 1;
gBattlerPartyIndexes[gLinkPlayers[i].id] = 0;
break;
case 1:
case 2:
- gBanksBySide[gLinkPlayers[i].id] = 3;
+ gBattlerPositions[gLinkPlayers[i].id] = 3;
gBattlerPartyIndexes[gLinkPlayers[i].id] = 3;
break;
}
@@ -289,23 +300,22 @@ void sub_800BA78(void)
gBattlersCount = 4;
}
-void sub_800BD54(void)
+static void SetBattlePartyIds(void)
{
- int i;
- int j;
+ s32 i, j;
if (!(gBattleTypeFlags & BATTLE_TYPE_MULTI))
{
for (i = 0; i < gBattlersCount; i++)
{
- for (j = 0; j < 6; j++)
+ for (j = 0; j < PARTY_SIZE; j++)
{
if (i < 2)
{
- if (!(gBanksBySide[i] & 1))
+ if (GET_BATTLER_SIDE2(i) == B_SIDE_PLAYER)
{
if (GetMonData(&gPlayerParty[j], MON_DATA_HP) != 0
- && GetMonData(&gPlayerParty[j], MON_DATA_SPECIES2) != 0
+ && GetMonData(&gPlayerParty[j], MON_DATA_SPECIES2) != SPECIES_NONE
&& GetMonData(&gPlayerParty[j], MON_DATA_SPECIES2) != SPECIES_EGG
&& GetMonData(&gPlayerParty[j], MON_DATA_IS_EGG) == 0)
{
@@ -316,7 +326,7 @@ void sub_800BD54(void)
else
{
if (GetMonData(&gEnemyParty[j], MON_DATA_HP) != 0
- && GetMonData(&gEnemyParty[j], MON_DATA_SPECIES2) != 0
+ && GetMonData(&gEnemyParty[j], MON_DATA_SPECIES2) != SPECIES_NONE
&& GetMonData(&gEnemyParty[j], MON_DATA_SPECIES2) != SPECIES_EGG
&& GetMonData(&gEnemyParty[j], MON_DATA_IS_EGG) == 0)
{
@@ -327,10 +337,10 @@ void sub_800BD54(void)
}
else
{
- if (!(gBanksBySide[i] & 1))
+ if (GET_BATTLER_SIDE2(i) == B_SIDE_PLAYER)
{
if (GetMonData(&gPlayerParty[j], MON_DATA_HP) != 0
- && GetMonData(&gPlayerParty[j], MON_DATA_SPECIES) != 0 //Probably a typo by Game Freak. The rest use SPECIES2
+ && GetMonData(&gPlayerParty[j], MON_DATA_SPECIES) != SPECIES_NONE // Probably a typo by Game Freak. The rest use SPECIES2
&& GetMonData(&gPlayerParty[j], MON_DATA_SPECIES2) != SPECIES_EGG
&& GetMonData(&gPlayerParty[j], MON_DATA_IS_EGG) == 0
&& gBattlerPartyIndexes[i - 2] != j)
@@ -342,7 +352,7 @@ void sub_800BD54(void)
else
{
if (GetMonData(&gEnemyParty[j], MON_DATA_HP) != 0
- && GetMonData(&gEnemyParty[j], MON_DATA_SPECIES2) != 0
+ && GetMonData(&gEnemyParty[j], MON_DATA_SPECIES2) != SPECIES_NONE
&& GetMonData(&gEnemyParty[j], MON_DATA_SPECIES2) != SPECIES_EGG
&& GetMonData(&gEnemyParty[j], MON_DATA_IS_EGG) == 0
&& gBattlerPartyIndexes[i - 2] != j)
@@ -357,17 +367,17 @@ void sub_800BD54(void)
}
}
-void PrepareBufferDataTransfer(u8 a, u8 *data, u16 size)
+static void PrepareBufferDataTransfer(u8 bufferId, u8 *data, u16 size)
{
- int i;
+ s32 i;
if (gBattleTypeFlags & BATTLE_TYPE_LINK)
{
- PrepareBufferDataTransferLink(a, size, data);
+ PrepareBufferDataTransferLink(bufferId, size, data);
}
else
{
- switch (a)
+ switch (bufferId)
{
case 0:
for (i = 0; i < size; i++)
@@ -387,7 +397,7 @@ void PrepareBufferDataTransfer(u8 a, u8 *data, u16 size)
}
}
-void CreateTasksForSendRecvLinkBuffers(void)
+static void CreateTasksForSendRecvLinkBuffers(void)
{
sLinkSendTaskId = CreateTask(Task_HandleSendLinkBuffersData, 0);
gTasks[sLinkSendTaskId].data[11] = 0;
@@ -539,10 +549,10 @@ void sub_800C35C(void)
}
}
-void Task_HandleCopyReceivedLinkBuffersData(u8 taskId)
+static void Task_HandleCopyReceivedLinkBuffersData(u8 taskId)
{
- u16 r7;
- u8 r4;
+ u16 blockSize;
+ u8 battlerId;
u8 r2;
if (gTasks[taskId].data[15] != gTasks[taskId].data[14])
@@ -553,15 +563,15 @@ void Task_HandleCopyReceivedLinkBuffersData(u8 taskId)
gTasks[taskId].data[12] = 0;
gTasks[taskId].data[15] = 0;
}
- r4 = ewram15000arr(1, gTasks[taskId].data[15]);
- r7 = ewram15000arr(4, gTasks[taskId].data[15]) | (ewram15000arr(5, gTasks[taskId].data[15]) << 8);
+ battlerId = ewram15000arr(1, gTasks[taskId].data[15]);
+ blockSize = ewram15000arr(4, gTasks[taskId].data[15]) | (ewram15000arr(5, gTasks[taskId].data[15]) << 8);
switch (ewram15000arr(0, gTasks[taskId].data[15]))
{
case 0:
- if (gBattleControllerExecFlags & gBitTable[r4])
+ if (gBattleControllerExecFlags & gBitTable[battlerId])
return;
- memcpy(gBattleBufferA[r4], &ewram15000arr(8, gTasks[taskId].data[15]), r7);
- sub_80155A4(r4);
+ memcpy(gBattleBufferA[battlerId], &ewram15000arr(8, gTasks[taskId].data[15]), blockSize);
+ sub_80155A4(battlerId);
if (!(gBattleTypeFlags & BATTLE_TYPE_WILD))
{
gBattlerAttacker = ewram15000arr(2, gTasks[taskId].data[15]);
@@ -571,172 +581,172 @@ void Task_HandleCopyReceivedLinkBuffersData(u8 taskId)
}
break;
case 1:
- memcpy(gBattleBufferB[r4], &ewram15000arr(8, gTasks[taskId].data[15]), r7);
+ memcpy(gBattleBufferB[battlerId], &ewram15000arr(8, gTasks[taskId].data[15]), blockSize);
break;
case 2:
r2 = ewram15000arr(8, gTasks[taskId].data[15]);
- gBattleControllerExecFlags &= ~(gBitTable[r4] << (r2 * 4));
+ gBattleControllerExecFlags &= ~(gBitTable[battlerId] << (r2 * 4));
break;
}
- gTasks[taskId].data[15] = gTasks[taskId].data[15] + r7 + 8;
+ gTasks[taskId].data[15] = gTasks[taskId].data[15] + blockSize + 8;
}
}
-void BtlController_EmitGetMonData(u8 bufferId, u8 b, u8 c)
+void BtlController_EmitGetMonData(u8 bufferId, u8 requestId, u8 monToCheck)
{
- gBattleBuffersTransferData[0] = 0;
- gBattleBuffersTransferData[1] = b;
- gBattleBuffersTransferData[2] = c;
+ gBattleBuffersTransferData[0] = CONTROLLER_GETMONDATA;
+ gBattleBuffersTransferData[1] = requestId;
+ gBattleBuffersTransferData[2] = monToCheck;
gBattleBuffersTransferData[3] = 0;
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
}
-void BtlController_EmitGetRawMonData(u8 bufferId, u8 b, u8 c)
+void BtlController_EmitGetRawMonData(u8 bufferId, u8 monId, u8 bytes)
{
- gBattleBuffersTransferData[0] = 1;
- gBattleBuffersTransferData[1] = b;
- gBattleBuffersTransferData[2] = c;
+ gBattleBuffersTransferData[0] = CONTROLLER_GETRAWMONDATA;
+ gBattleBuffersTransferData[1] = monId;
+ gBattleBuffersTransferData[2] = bytes;
gBattleBuffersTransferData[3] = 0;
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
}
-void BtlController_EmitSetMonData(u8 bufferId, u8 b, u8 c, u8 d, void *e)
+void BtlController_EmitSetMonData(u8 bufferId, u8 requestId, u8 monToCheck, u8 bytes, void *data)
{
- int i;
+ s32 i;
- gBattleBuffersTransferData[0] = 2;
- gBattleBuffersTransferData[1] = b;
- gBattleBuffersTransferData[2] = c;
- for (i = 0; i < d; i++)
- gBattleBuffersTransferData[3 + i] = *(u8*)(e++);
- PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, d + 3);
+ gBattleBuffersTransferData[0] = CONTROLLER_SETMONDATA;
+ gBattleBuffersTransferData[1] = requestId;
+ gBattleBuffersTransferData[2] = monToCheck;
+ for (i = 0; i < bytes; i++)
+ gBattleBuffersTransferData[3 + i] = *(u8*)(data++);
+ PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 3 + bytes);
}
-void BtlController_EmitSetRawMonData(u8 bufferId, u8 b, u8 c, u8 *d)
+void BtlController_EmitSetRawMonData(u8 bufferId, u8 monId, u8 bytes, void *data)
{
- int i;
+ s32 i;
- gBattleBuffersTransferData[0] = 3;
- gBattleBuffersTransferData[1] = b;
- gBattleBuffersTransferData[2] = c;
- for (i = 0; i < c; i++)
- gBattleBuffersTransferData[3 + i] = *(d++);
- PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, c + 3);
+ gBattleBuffersTransferData[0] = CONTROLLER_SETRAWMONDATA;
+ gBattleBuffersTransferData[1] = monId;
+ gBattleBuffersTransferData[2] = bytes;
+ for (i = 0; i < bytes; i++)
+ gBattleBuffersTransferData[3 + i] = *(u8*)(data++);
+ PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, bytes + 3);
}
void BtlController_EmitLoadMonSprite(u8 bufferId)
{
- gBattleBuffersTransferData[0] = 4;
- gBattleBuffersTransferData[1] = 4;
- gBattleBuffersTransferData[2] = 4;
- gBattleBuffersTransferData[3] = 4;
+ gBattleBuffersTransferData[0] = CONTROLLER_LOADMONSPRITE;
+ gBattleBuffersTransferData[1] = CONTROLLER_LOADMONSPRITE;
+ gBattleBuffersTransferData[2] = CONTROLLER_LOADMONSPRITE;
+ gBattleBuffersTransferData[3] = CONTROLLER_LOADMONSPRITE;
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
}
-void BtlController_EmitSwitchInAnim(u8 bufferId, u8 b, u8 c)
+void BtlController_EmitSwitchInAnim(u8 bufferId, u8 partyId, bool8 dontClearSubstituteBit)
{
- gBattleBuffersTransferData[0] = 5;
- gBattleBuffersTransferData[1] = b;
- gBattleBuffersTransferData[2] = c;
+ gBattleBuffersTransferData[0] = CONTROLLER_SWITCHINANIM;
+ gBattleBuffersTransferData[1] = partyId;
+ gBattleBuffersTransferData[2] = dontClearSubstituteBit;
gBattleBuffersTransferData[3] = 5;
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
}
-void BtlController_EmitReturnMonToBall(u8 bufferId, u8 b)
+void BtlController_EmitReturnMonToBall(u8 bufferId, u8 arg1)
{
- gBattleBuffersTransferData[0] = 6;
- gBattleBuffersTransferData[1] = b;
+ gBattleBuffersTransferData[0] = CONTROLLER_RETURNMONTOBALL;
+ gBattleBuffersTransferData[1] = arg1;
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 2);
}
-void BtlController_EmitDrawTrainerPic(u8 a)
+void BtlController_EmitDrawTrainerPic(u8 bufferId)
{
- gBattleBuffersTransferData[0] = 7;
- gBattleBuffersTransferData[1] = 7;
- gBattleBuffersTransferData[2] = 7;
- gBattleBuffersTransferData[3] = 7;
- PrepareBufferDataTransfer(a, gBattleBuffersTransferData, 4);
+ gBattleBuffersTransferData[0] = CONTROLLER_DRAWTRAINERPIC;
+ gBattleBuffersTransferData[1] = CONTROLLER_DRAWTRAINERPIC;
+ gBattleBuffersTransferData[2] = CONTROLLER_DRAWTRAINERPIC;
+ gBattleBuffersTransferData[3] = CONTROLLER_DRAWTRAINERPIC;
+ PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
}
-void BtlController_EmitTrainerSlide(u8 a)
+void BtlController_EmitTrainerSlide(u8 bufferId)
{
- gBattleBuffersTransferData[0] = 8;
- gBattleBuffersTransferData[1] = 8;
- gBattleBuffersTransferData[2] = 8;
- gBattleBuffersTransferData[3] = 8;
- PrepareBufferDataTransfer(a, gBattleBuffersTransferData, 4);
+ gBattleBuffersTransferData[0] = CONTROLLER_TRAINERSLIDE;
+ gBattleBuffersTransferData[1] = CONTROLLER_TRAINERSLIDE;
+ gBattleBuffersTransferData[2] = CONTROLLER_TRAINERSLIDE;
+ gBattleBuffersTransferData[3] = CONTROLLER_TRAINERSLIDE;
+ PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
}
-void BtlController_EmitTrainerSlideBack(u8 a)
+void BtlController_EmitTrainerSlideBack(u8 bufferId)
{
- gBattleBuffersTransferData[0] = 9;
- gBattleBuffersTransferData[1] = 9;
- gBattleBuffersTransferData[2] = 9;
- gBattleBuffersTransferData[3] = 9;
- PrepareBufferDataTransfer(a, gBattleBuffersTransferData, 4);
+ gBattleBuffersTransferData[0] = CONTROLLER_TRAINERSLIDEBACK;
+ gBattleBuffersTransferData[1] = CONTROLLER_TRAINERSLIDEBACK;
+ gBattleBuffersTransferData[2] = CONTROLLER_TRAINERSLIDEBACK;
+ gBattleBuffersTransferData[3] = CONTROLLER_TRAINERSLIDEBACK;
+ PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
}
-void BtlController_EmitFaintAnimation(u8 a)
+void BtlController_EmitFaintAnimation(u8 bufferId)
{
- gBattleBuffersTransferData[0] = 10;
- gBattleBuffersTransferData[1] = 10;
- gBattleBuffersTransferData[2] = 10;
- gBattleBuffersTransferData[3] = 10;
- PrepareBufferDataTransfer(a, gBattleBuffersTransferData, 4);
+ gBattleBuffersTransferData[0] = CONTROLLER_FAINTANIMATION;
+ gBattleBuffersTransferData[1] = CONTROLLER_FAINTANIMATION;
+ gBattleBuffersTransferData[2] = CONTROLLER_FAINTANIMATION;
+ gBattleBuffersTransferData[3] = CONTROLLER_FAINTANIMATION;
+ PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
}
-void BtlController_EmitPaletteFade(u8 a)
+void BtlController_EmitPaletteFade(u8 bufferId)
{
- gBattleBuffersTransferData[0] = 11;
- gBattleBuffersTransferData[1] = 11;
- gBattleBuffersTransferData[2] = 11;
- gBattleBuffersTransferData[3] = 11;
- PrepareBufferDataTransfer(a, gBattleBuffersTransferData, 4);
+ gBattleBuffersTransferData[0] = CONTROLLER_PALETTEFADE;
+ gBattleBuffersTransferData[1] = CONTROLLER_PALETTEFADE;
+ gBattleBuffersTransferData[2] = CONTROLLER_PALETTEFADE;
+ gBattleBuffersTransferData[3] = CONTROLLER_PALETTEFADE;
+ PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
}
-void BtlController_EmitSuccessBallThrowAnim(u8 a)
+void BtlController_EmitSuccessBallThrowAnim(u8 bufferId)
{
- gBattleBuffersTransferData[0] = 12;
- gBattleBuffersTransferData[1] = 12;
- gBattleBuffersTransferData[2] = 12;
- gBattleBuffersTransferData[3] = 12;
- PrepareBufferDataTransfer(a, gBattleBuffersTransferData, 4);
+ gBattleBuffersTransferData[0] = CONTROLLER_SUCCESSBALLTHROWANIM;
+ gBattleBuffersTransferData[1] = CONTROLLER_SUCCESSBALLTHROWANIM;
+ gBattleBuffersTransferData[2] = CONTROLLER_SUCCESSBALLTHROWANIM;
+ gBattleBuffersTransferData[3] = CONTROLLER_SUCCESSBALLTHROWANIM;
+ PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
}
-void BtlController_EmitBallThrowAnim(u8 a, u8 b)
+void BtlController_EmitBallThrowAnim(u8 bufferId, u8 caseId)
{
- gBattleBuffersTransferData[0] = 13;
- gBattleBuffersTransferData[1] = b;
- PrepareBufferDataTransfer(a, gBattleBuffersTransferData, 2);
+ gBattleBuffersTransferData[0] = CONTROLLER_BALLTHROWANIM;
+ gBattleBuffersTransferData[1] = caseId;
+ PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 2);
}
-void BtlController_EmitPause(u8 a, u8 b, u8 *c)
+void BtlController_EmitPause(u8 bufferId, u8 toWait, void *data)
{
- int i;
-
- gBattleBuffersTransferData[0] = 14;
- gBattleBuffersTransferData[1] = b;
- for (i = 0; i < b * 3; i++)
- gBattleBuffersTransferData[2 + i] = *(c++);
- PrepareBufferDataTransfer(a, gBattleBuffersTransferData, b * 3 + 2);
-}
+ s32 i;
-void BtlController_EmitMoveAnimation(u8 a, u16 b, u8 c, u16 d, s32 e, u8 f, struct DisableStruct *g)
-{
- gBattleBuffersTransferData[0] = 15;
- gBattleBuffersTransferData[1] = b;
- gBattleBuffersTransferData[2] = (b & 0xFF00) >> 8;
- gBattleBuffersTransferData[3] = c;
- gBattleBuffersTransferData[4] = d;
- gBattleBuffersTransferData[5] = (d & 0xFF00) >> 8;
- gBattleBuffersTransferData[6] = e;
- gBattleBuffersTransferData[7] = (e & 0x0000FF00) >> 8;
- gBattleBuffersTransferData[8] = (e & 0x00FF0000) >> 16;
- gBattleBuffersTransferData[9] = (e & 0xFF000000) >> 24;
- gBattleBuffersTransferData[10] = f;
+ gBattleBuffersTransferData[0] = CONTROLLER_PAUSE;
+ gBattleBuffersTransferData[1] = toWait;
+ for (i = 0; i < toWait * 3; i++)
+ gBattleBuffersTransferData[2 + i] = *(u8*)(data++);
+ PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, toWait * 3 + 2);
+}
+
+void BtlController_EmitMoveAnimation(u8 bufferId, u16 move, u8 turnOfMove, u16 movePower, s32 dmg, u8 friendship, struct DisableStruct *disableStructPtr)
+{
+ gBattleBuffersTransferData[0] = CONTROLLER_MOVEANIMATION;
+ gBattleBuffersTransferData[1] = move;
+ gBattleBuffersTransferData[2] = (move & 0xFF00) >> 8;
+ gBattleBuffersTransferData[3] = turnOfMove;
+ gBattleBuffersTransferData[4] = movePower;
+ gBattleBuffersTransferData[5] = (movePower & 0xFF00) >> 8;
+ gBattleBuffersTransferData[6] = dmg;
+ gBattleBuffersTransferData[7] = (dmg & 0x0000FF00) >> 8;
+ gBattleBuffersTransferData[8] = (dmg & 0x00FF0000) >> 16;
+ gBattleBuffersTransferData[9] = (dmg & 0xFF000000) >> 24;
+ gBattleBuffersTransferData[10] = friendship;
gBattleBuffersTransferData[11] = gMultiHitCounter;
- if (AbilityBattleEffects(14, 0, 13, 0, 0) == 0 && AbilityBattleEffects(14, 0, 0x4D, 0, 0) == 0)
+ if (WEATHER_HAS_EFFECT2)
{
gBattleBuffersTransferData[12] = gBattleWeather;
gBattleBuffersTransferData[13] = (gBattleWeather & 0xFF00) >> 8;
@@ -748,8 +758,8 @@ void BtlController_EmitMoveAnimation(u8 a, u16 b, u8 c, u16 d, s32 e, u8 f, stru
}
gBattleBuffersTransferData[14] = 0;
gBattleBuffersTransferData[15] = 0;
- memcpy(&gBattleBuffersTransferData[16], g, sizeof(*g));
- PrepareBufferDataTransfer(a, gBattleBuffersTransferData, 0x2C);
+ memcpy(&gBattleBuffersTransferData[16], disableStructPtr, sizeof(struct DisableStruct));
+ PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 16 + sizeof(struct DisableStruct));
}
void BtlController_EmitPrintString(u8 a, u16 stringID)
diff --git a/src/battle_gfx_sfx_util.c b/src/battle_gfx_sfx_util.c
index 45f2c30c0..ee4b4b100 100644
--- a/src/battle_gfx_sfx_util.c
+++ b/src/battle_gfx_sfx_util.c
@@ -27,7 +27,7 @@ extern u8 gBattleBufferA[][0x200];
extern u8 gActiveBattler;
extern u8 gBattlersCount;
extern u16 gBattlerPartyIndexes[];
-extern u8 gBanksBySide[];
+extern u8 gBattlerPositions[];
extern u8 gBattlerSpriteIds[];
extern u16 gUnknown_02024DE8;
extern u8 gDoingBattleAnim;
@@ -466,7 +466,7 @@ void unref_sub_8031BA0(void)
count = 4;
}
for (i = 0; i < count; i++)
- LoadCompressedObjectPic(&gUnknown_0820A4B4[gBanksBySide[i]]);
+ LoadCompressedObjectPic(&gUnknown_0820A4B4[gBattlerPositions[i]]);
}
bool8 sub_8031C30(u8 a)
@@ -492,9 +492,9 @@ bool8 sub_8031C30(u8 a)
else if (a == 3)
LoadCompressedObjectPic(&gUnknown_0820A484);
else if (a == 4)
- LoadCompressedObjectPic(&gUnknown_0820A4B4[gBanksBySide[0]]);
+ LoadCompressedObjectPic(&gUnknown_0820A4B4[gBattlerPositions[0]]);
else if (a == 5)
- LoadCompressedObjectPic(&gUnknown_0820A4B4[gBanksBySide[1]]);
+ LoadCompressedObjectPic(&gUnknown_0820A4B4[gBattlerPositions[1]]);
else
retVal = TRUE;
}
@@ -509,13 +509,13 @@ bool8 sub_8031C30(u8 a)
else if (a == 5)
LoadCompressedObjectPic(&gUnknown_0820A49C[1]);
else if (a == 6)
- LoadCompressedObjectPic(&gUnknown_0820A4B4[gBanksBySide[0]]);
+ LoadCompressedObjectPic(&gUnknown_0820A4B4[gBattlerPositions[0]]);
else if (a == 7)
- LoadCompressedObjectPic(&gUnknown_0820A4B4[gBanksBySide[1]]);
+ LoadCompressedObjectPic(&gUnknown_0820A4B4[gBattlerPositions[1]]);
else if (a == 8)
- LoadCompressedObjectPic(&gUnknown_0820A4B4[gBanksBySide[2]]);
+ LoadCompressedObjectPic(&gUnknown_0820A4B4[gBattlerPositions[2]]);
else if (a == 9)
- LoadCompressedObjectPic(&gUnknown_0820A4B4[gBanksBySide[3]]);
+ LoadCompressedObjectPic(&gUnknown_0820A4B4[gBattlerPositions[3]]);
else
retVal = TRUE;
}
@@ -566,7 +566,7 @@ u8 battle_load_something(u8 *pState, u8 *b)
break;
case 4:
sub_8043F44(*b);
- if (gBanksBySide[*b] <= 1)
+ if (gBattlerPositions[*b] <= 1)
nullsub_11(gHealthboxSpriteIds[*b], 0);
else
nullsub_11(gHealthboxSpriteIds[*b], 1);
diff --git a/src/battle_interface.c b/src/battle_interface.c
index 851c91dfd..50c3601ea 100644
--- a/src/battle_interface.c
+++ b/src/battle_interface.c
@@ -425,7 +425,7 @@ u8 *const gUnknown_0820A904[10] =
extern u8 gDisplayedStringBattle[];
extern u8 gBattlersCount;
extern u16 gBattlerPartyIndexes[];
-extern u8 gBanksBySide[];
+extern u8 gBattlerPositions[];
extern u8 gHealthboxSpriteIds[];
extern u16 gBattleTypeFlags;
@@ -836,7 +836,7 @@ u8 battle_make_oam_normal_battle(u8 a)
}
//_08043B50
- spriteId3 = CreateSpriteAtEnd(&gSpriteTemplates_820A56C[gBanksBySide[a]], 140, 60, 0);
+ spriteId3 = CreateSpriteAtEnd(&gSpriteTemplates_820A56C[gBattlerPositions[a]], 140, 60, 0);
sprite = &gSprites[spriteId3];
SetSubspriteTables(sprite, &gSubspriteTables_820A684[GetBattlerSide(a)]);
sprite->subspriteMode = 2;
diff --git a/src/battle_main.c b/src/battle_main.c
index b38468386..46519307a 100644
--- a/src/battle_main.c
+++ b/src/battle_main.c
@@ -9,6 +9,7 @@
#include "gba/flash_internal.h"
#include "battle.h"
#include "battle_ai_script_commands.h"
+#include "battle_controllers.h"
#include "battle_interface.h"
#include "battle_message.h"
#include "battle_setup.h"
@@ -32,7 +33,6 @@
#include "pokemon.h"
#include "random.h"
#include "roamer.h"
-#include "rom3.h"
#include "rom_8077ABC.h"
#include "rom_8094928.h"
#include "safari_zone.h"
@@ -83,7 +83,7 @@ extern u32 gBattleControllerExecFlags;
extern u8 gBattlersCount;
extern u16 gBattlerPartyIndexes[];
extern u8 gCurrentActionFuncId;
-extern u8 gBanksByTurnOrder[];
+extern u8 gBattlerByTurnOrder[];
extern u8 gBattlerSpriteIds[];
extern u16 gCurrentMove; // This is mis-named. It is a species, not a move ID.
extern u8 gLastUsedAbility;
@@ -100,7 +100,7 @@ extern u16 gLockedMoves[];
extern u16 gChosenMovesByBanks[];
extern u32 gHitMarker;
extern u8 gUnknown_02024C70[];
-extern u16 gSideAffecting[];
+extern u16 gSideStatuses[];
extern u32 gStatuses3[];
//extern u8 gDisableStructs[][0x1C];
extern u16 gPauseCounterBattle;
@@ -208,7 +208,7 @@ void CB2_InitBattle(void)
{
if (gBattleTypeFlags & BATTLE_TYPE_MULTI)
{
- sub_800B858();
+ HandleLinkBattleSetup();
SetMainCallback2(sub_800F104);
gBattleCommunication[0] = 0;
}
@@ -3341,7 +3341,7 @@ void sub_8010874(void)
for (i = 0; i < 2; i++)
{
- gSideAffecting[i] = 0;
+ gSideStatuses[i] = 0;
MEMSET_ALT(&gSideTimers[i], 0, 12, j, r4);
}
@@ -3399,7 +3399,7 @@ void sub_8010874(void)
gBattleResults.unk2 = 0;
gBattleResults.unk3 = 0;
gBattleResults.unk4 = 0;
- gBattleResults.unk5_0 = 0;
+ gBattleResults.playerMonWasDamaged = 0;
gBattleResults.unk5_1 = 0;
gBattleResults.lastOpponentSpecies = 0;
gBattleResults.lastUsedMove = 0;
@@ -3433,10 +3433,10 @@ void SwitchInClearSetData(void)
{
if ((gBattleMons[i].status2 & STATUS2_ESCAPE_PREVENTION) && gDisableStructs[i].bankPreventingEscape == gActiveBattler)
gBattleMons[i].status2 &= ~STATUS2_ESCAPE_PREVENTION;
- if ((gStatuses3[i] & STATUS3_ALWAYS_HITS) && gDisableStructs[i].bankWithSureHit == gActiveBattler)
+ if ((gStatuses3[i] & STATUS3_ALWAYS_HITS) && gDisableStructs[i].battlerWithSureHit == gActiveBattler)
{
gStatuses3[i] &= ~STATUS3_ALWAYS_HITS;
- gDisableStructs[i].bankWithSureHit = 0;
+ gDisableStructs[i].battlerWithSureHit = 0;
}
}
}
@@ -3449,7 +3449,7 @@ void SwitchInClearSetData(void)
{
if (GetBattlerSide(gActiveBattler) != GetBattlerSide(i)
&& (gStatuses3[i] & STATUS3_ALWAYS_HITS) != 0
- && (gDisableStructs[i].bankWithSureHit == gActiveBattler))
+ && (gDisableStructs[i].battlerWithSureHit == gActiveBattler))
{
gStatuses3[i] &= ~STATUS3_ALWAYS_HITS;
gStatuses3[i] |= 0x10;
@@ -3478,7 +3478,7 @@ void SwitchInClearSetData(void)
if (gBattleMoves[gCurrentMove].effect == EFFECT_BATON_PASS)
{
gDisableStructs[gActiveBattler].substituteHP = sp0.substituteHP;
- gDisableStructs[gActiveBattler].bankWithSureHit = sp0.bankWithSureHit;
+ gDisableStructs[gActiveBattler].battlerWithSureHit = sp0.battlerWithSureHit;
gDisableStructs[gActiveBattler].perishSongTimer1 = sp0.perishSongTimer1;
gDisableStructs[gActiveBattler].perishSongTimer2 = sp0.perishSongTimer2;
}
@@ -3885,12 +3885,12 @@ void BattleBeginFirstTurn(void)
if (ewram16058 == 0)
{
for (i = 0; i < gBattlersCount; i++)
- gBanksByTurnOrder[i] = i;
+ gBattlerByTurnOrder[i] = i;
for (i = 0; i < gBattlersCount - 1; i++)
{
for (j = i + 1; j < gBattlersCount; j++)
{
- if (GetWhoStrikesFirst(gBanksByTurnOrder[i], gBanksByTurnOrder[j], 1) != 0)
+ if (GetWhoStrikesFirst(gBattlerByTurnOrder[i], gBattlerByTurnOrder[j], 1) != 0)
SwapTurnOrder(i, j);
}
}
@@ -3902,7 +3902,7 @@ void BattleBeginFirstTurn(void)
}
while (ewram16058 < gBattlersCount)
{
- if (AbilityBattleEffects(0, gBanksByTurnOrder[ewram16058], 0, 0, 0) != 0)
+ if (AbilityBattleEffects(0, gBattlerByTurnOrder[ewram16058], 0, 0, 0) != 0)
r9++;
ewram16058++;
if (r9 != 0)
@@ -3914,7 +3914,7 @@ void BattleBeginFirstTurn(void)
return;
while (ewram160F9 < gBattlersCount)
{
- if (ItemBattleEffects(0, gBanksByTurnOrder[ewram160F9], 0) != 0)
+ if (ItemBattleEffects(0, gBattlerByTurnOrder[ewram160F9], 0) != 0)
r9++;
ewram160F9++;
if (r9 != 0)
@@ -4482,9 +4482,9 @@ void SwapTurnOrder(u8 a, u8 b)
gActionsByTurnOrder[a] = gActionsByTurnOrder[b];
gActionsByTurnOrder[b] = temp;
- temp = gBanksByTurnOrder[a];
- gBanksByTurnOrder[a] = gBanksByTurnOrder[b];
- gBanksByTurnOrder[b] = temp;
+ temp = gBattlerByTurnOrder[a];
+ gBattlerByTurnOrder[a] = gBattlerByTurnOrder[b];
+ gBattlerByTurnOrder[b] = temp;
}
// Determines which of the two given mons will strike first in a battle.
@@ -4642,7 +4642,7 @@ void SetActionsAndBanksTurnOrder(void)
for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++)
{
gActionsByTurnOrder[var] = gActionForBanks[gActiveBattler];
- gBanksByTurnOrder[var] = gActiveBattler;
+ gBattlerByTurnOrder[var] = gActiveBattler;
var++;
}
}
@@ -4671,14 +4671,14 @@ void SetActionsAndBanksTurnOrder(void)
if (var == 5)
{
gActionsByTurnOrder[0] = gActionForBanks[gActiveBattler];
- gBanksByTurnOrder[0] = gActiveBattler;
+ gBattlerByTurnOrder[0] = gActiveBattler;
var = 1;
for (i = 0; i < gBattlersCount; i++)
{
if (i != gActiveBattler)
{
gActionsByTurnOrder[var] = gActionForBanks[i];
- gBanksByTurnOrder[var] = i;
+ gBattlerByTurnOrder[var] = i;
var++;
}
}
@@ -4693,7 +4693,7 @@ void SetActionsAndBanksTurnOrder(void)
if (gActionForBanks[gActiveBattler] == B_ACTION_USE_ITEM || gActionForBanks[gActiveBattler] == B_ACTION_SWITCH)
{
gActionsByTurnOrder[var] = gActionForBanks[gActiveBattler];
- gBanksByTurnOrder[var] = gActiveBattler;
+ gBattlerByTurnOrder[var] = gActiveBattler;
var++;
}
}
@@ -4702,7 +4702,7 @@ void SetActionsAndBanksTurnOrder(void)
if (gActionForBanks[gActiveBattler] != B_ACTION_USE_ITEM && gActionForBanks[gActiveBattler] != B_ACTION_SWITCH)
{
gActionsByTurnOrder[var] = gActionForBanks[gActiveBattler];
- gBanksByTurnOrder[var] = gActiveBattler;
+ gBattlerByTurnOrder[var] = gActiveBattler;
var++;
}
}
@@ -4710,8 +4710,8 @@ void SetActionsAndBanksTurnOrder(void)
{
for (j = i + 1; j < gBattlersCount; j++)
{
- u8 bank1 = gBanksByTurnOrder[i];
- u8 bank2 = gBanksByTurnOrder[j];
+ u8 bank1 = gBattlerByTurnOrder[i];
+ u8 bank2 = gBattlerByTurnOrder[j];
if (gActionsByTurnOrder[i] != B_ACTION_USE_ITEM
&& gActionsByTurnOrder[j] != B_ACTION_USE_ITEM
&& gActionsByTurnOrder[i] != B_ACTION_SWITCH
@@ -5083,7 +5083,7 @@ void HandleAction_UseMove(void)
u8 side;
u8 var = 4;
- gBattlerAttacker = gBanksByTurnOrder[gCurrentTurnActionNumber];
+ gBattlerAttacker = gBattlerByTurnOrder[gCurrentTurnActionNumber];
if (ewram160A6 & gBitTable[gBattlerAttacker])
{
@@ -5167,9 +5167,9 @@ void HandleAction_UseMove(void)
if (side != GetBattlerSide(gActiveBattler)
&& ewram16010arr(gBattlerAttacker) != gActiveBattler
&& gBattleMons[gActiveBattler].ability == ABILITY_LIGHTNING_ROD
- && BankGetTurnOrder(gActiveBattler) < var)
+ && GetBattlerTurnOrderNum(gActiveBattler) < var)
{
- var = BankGetTurnOrder(gActiveBattler);
+ var = GetBattlerTurnOrderNum(gActiveBattler);
}
}
if (var == 4)
@@ -5212,7 +5212,7 @@ void HandleAction_UseMove(void)
}
else
{
- gActiveBattler = gBanksByTurnOrder[var];
+ gActiveBattler = gBattlerByTurnOrder[var];
RecordAbilityBattle(gActiveBattler, gBattleMons[gActiveBattler].ability);
gSpecialStatuses[gActiveBattler].lightningRodRedirected = 1;
gBattlerTarget = gActiveBattler;
@@ -5266,7 +5266,7 @@ void HandleAction_UseMove(void)
void HandleAction_Switch(void)
{
- gBattlerAttacker = gBanksByTurnOrder[gCurrentTurnActionNumber];
+ gBattlerAttacker = gBattlerByTurnOrder[gCurrentTurnActionNumber];
gBattle_BG0_X = 0;
gBattle_BG0_Y = 0;
gActionSelectionCursor[gBattlerAttacker] = 0;
@@ -5284,7 +5284,7 @@ void HandleAction_Switch(void)
void HandleAction_UseItem(void)
{
- gBattlerAttacker = gBattlerTarget = gBanksByTurnOrder[gCurrentTurnActionNumber];
+ gBattlerAttacker = gBattlerTarget = gBattlerByTurnOrder[gCurrentTurnActionNumber];
gBattle_BG0_X = 0;
gBattle_BG0_Y = 0;
gDisableStructs[gBattlerAttacker].furyCutterCounter = 0;
@@ -5415,7 +5415,7 @@ bool8 TryRunFromBattle(u8 bank)
void HandleAction_Run(void)
{
- gBattlerAttacker = gBanksByTurnOrder[gCurrentTurnActionNumber];
+ gBattlerAttacker = gBattlerByTurnOrder[gCurrentTurnActionNumber];
if (gBattleTypeFlags & BATTLE_TYPE_LINK)
{
@@ -5468,7 +5468,7 @@ void HandleAction_Run(void)
void HandleAction_WatchesCarefully(void)
{
- gBattlerAttacker = gBanksByTurnOrder[gCurrentTurnActionNumber];
+ gBattlerAttacker = gBattlerByTurnOrder[gCurrentTurnActionNumber];
gBattle_BG0_X = 0;
gBattle_BG0_Y = 0;
gBattlescriptCurrInstr = gBattlescriptsForSafariActions[0];
@@ -5477,7 +5477,7 @@ void HandleAction_WatchesCarefully(void)
void HandleAction_SafariZoneBallThrow(void)
{
- gBattlerAttacker = gBanksByTurnOrder[gCurrentTurnActionNumber];
+ gBattlerAttacker = gBattlerByTurnOrder[gCurrentTurnActionNumber];
gBattle_BG0_X = 0;
gBattle_BG0_Y = 0;
gNumSafariBalls--;
@@ -5488,7 +5488,7 @@ void HandleAction_SafariZoneBallThrow(void)
void HandleAction_ThrowPokeblock(void)
{
- gBattlerAttacker = gBanksByTurnOrder[gCurrentTurnActionNumber];
+ gBattlerAttacker = gBattlerByTurnOrder[gCurrentTurnActionNumber];
gBattle_BG0_X = 0;
gBattle_BG0_Y = 0;
gBattleCommunication[MULTISTRING_CHOOSER] = gBattleBufferB[gBattlerAttacker][1] - 1;
@@ -5510,7 +5510,7 @@ void HandleAction_ThrowPokeblock(void)
void HandleAction_GoNear(void)
{
- gBattlerAttacker = gBanksByTurnOrder[gCurrentTurnActionNumber];
+ gBattlerAttacker = gBattlerByTurnOrder[gCurrentTurnActionNumber];
gBattle_BG0_X = 0;
gBattle_BG0_Y = 0;
@@ -5537,7 +5537,7 @@ void HandleAction_GoNear(void)
void HandleAction_SafriZoneRun(void)
{
- gBattlerAttacker = gBanksByTurnOrder[gCurrentTurnActionNumber];
+ gBattlerAttacker = gBattlerByTurnOrder[gCurrentTurnActionNumber];
PlaySE(SE_NIGERU);
gCurrentTurnActionNumber = gBattlersCount;
gBattleOutcome = B_OUTCOME_RAN;
@@ -5545,7 +5545,7 @@ void HandleAction_SafriZoneRun(void)
void HandleAction_Action9(void)
{
- gBattlerAttacker = gBanksByTurnOrder[gCurrentTurnActionNumber];
+ gBattlerAttacker = gBattlerByTurnOrder[gCurrentTurnActionNumber];
gBattle_BG0_X = 0;
gBattle_BG0_Y = 0;
diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c
index ac913dbba..996760ad4 100644
--- a/src/battle_script_commands.c
+++ b/src/battle_script_commands.c
@@ -12,7 +12,6 @@
#include "data2.h"
#include "constants/hold_effects.h"
#include "random.h"
-#include "rom3.h"
#include "battle_controllers.h"
#include "constants/species.h"
#include "pokemon.h"
@@ -45,7 +44,7 @@ extern u8 gActiveBattler;
extern u32 gBattleControllerExecFlags;
extern u8 gBattlersCount;
extern u16 gBattlerPartyIndexes[MAX_BATTLERS_COUNT];
-extern u8 gBanksByTurnOrder[MAX_BATTLERS_COUNT];
+extern u8 gBattlerByTurnOrder[MAX_BATTLERS_COUNT];
extern u8 gActionsByTurnOrder[MAX_BATTLERS_COUNT];
extern u16 gCurrentMove;
extern u8 gLastUsedAbility;
@@ -57,7 +56,7 @@ extern u8 gMultiHitCounter;
extern u16 gLastUsedMove[4];
extern u16 gLockedMoves[4];
extern u16 gChosenMovesByBanks[4];
-extern u16 gSideAffecting[2];
+extern u16 gSideStatuses[2];
extern u16 gPauseCounterBattle;
extern u16 gPaydayMoney;
extern u16 gRandomTurnNumber;
@@ -81,7 +80,7 @@ extern u16 gLastUsedItem;
extern u16 gBattleMovePower;
extern s32 gHpDealt;
extern s32 gTakenDmg[MAX_BATTLERS_COUNT];
-extern u8 gTakenDmgBanks[MAX_BATTLERS_COUNT];
+extern u8 gTakenDmgByBattler[MAX_BATTLERS_COUNT];
extern const u16 gMissStringIds[];
extern u8 gSentPokesToOpponent[2];
extern u8 gBank1;
@@ -125,13 +124,13 @@ void CancelMultiTurnMoves(u8 bank);
void BattleScriptPush(const u8* BS_ptr);
void BattleScriptPushCursor(void);
void RecordAbilityBattle(u8 bank, u8 ability);
-void RecordItemBattle(u8 bank, u8 holdEffect);
+void RecordItemEffectBattle(u8 bank, u8 holdEffect);
static bool8 IsTwoTurnsMove(u16 move);
static void TrySetDestinyBondToHappen(void);
static void CheckWonderGuardAndLevitate(void);
u8 GetBattlerPosition(u8 bank);
u8 GetBattlerSide(u8 bank);
-u8 GetBattleBank(u8 bankValue);
+u8 GetBattlerForBattleScript(u8 bankValue);
s32 CalculateBaseDamage(struct BattlePokemon *attacker, struct BattlePokemon *defender, u32 move, u16 a4, u16 powerOverride, u8 typeOverride, u8 bank_atk, u8 bank_def);
static u8 AttacksThisTurn(u8 bank, u16 move); //Note: returns 1 if it's a charging turn, otherwise 2
void UndoEffectsAfterFainting(void);
@@ -232,7 +231,7 @@ extern u8 BattleScript_PrintPayDayMoneyString[]; //bs payday money give
extern u8 BattleScript_FaintAttacker[];
extern u8 BattleScript_FaintTarget[];
extern u8 BattleScript_DestinyBondTakesLife[];
-extern u8 BattleScript_SelectingImprisionedMoveInPalace[];
+extern u8 BattleScript_GrudgeTakesPp[];
// read via orr
#define BSScriptRead32(ptr) ((ptr)[0] | (ptr)[1] << 8 | (ptr)[2] << 16 | (ptr)[3] << 24)
@@ -244,7 +243,7 @@ extern u8 BattleScript_SelectingImprisionedMoveInPalace[];
#define BS2ScriptRead16(ptr) ((ptr)[0] + ((ptr)[1] << 8))
#define BS2ScriptReadPtr(ptr) ((void *)BS2ScriptRead32(ptr))
-#define TARGET_PROTECT_AFFECTED ((gProtectStructs[gBattlerTarget].protected && gBattleMoves[gCurrentMove].flags & F_AFFECTED_BY_PROTECT))
+#define DEFENDER_IS_PROTECTED ((gProtectStructs[gBattlerTarget].protected && gBattleMoves[gCurrentMove].flags & F_AFFECTED_BY_PROTECT))
//array entries for battle communication
#define MOVE_EFFECT_BYTE 0x3
@@ -253,9 +252,9 @@ extern u8 BattleScript_SelectingImprisionedMoveInPalace[];
#define TARGET_SELECTED 0x0
#define TARGET_DEPENDS 0x1
-#define TARGET_BOTH 0x8
-#define TARGET_FOES_AND_ALLY 0x20
-#define TARGET_OPPONENTS_FIELD 0x40
+#define MOVE_TARGET_BOTH 0x8
+#define MOVE_TARGET_FOES_AND_ALLY 0x20
+#define MOVE_TARGET_OPPONENTS_FIELD 0x40
#define TYPE_FORESIGHT 0xFE
#define TYPE_ENDTABLE 0xFF
@@ -382,11 +381,11 @@ static void atk5A_yesnoboxlearnmove(void);
static void atk5B_yesnoboxstoplearningmove(void);
static void atk5C_hitanimation(void);
static void atk5D_getmoneyreward(void);
-static void atk5E_8025A70(void);
-static void atk5F_8025B24(void);
+static void atk5E(void);
+static void atk5F_swapattackerwithtarget(void);
static void atk60_incrementgamestat(void);
static void atk61_drawpartystatussummary(void);
-static void atk62_08025C6C(void);
+static void atk62_hidepartystatussummary(void);
static void atk63_jumptorandomattack(void);
static void atk64_statusanimation(void);
static void atk65_status2animation(void);
@@ -508,10 +507,10 @@ static void atkD7_setyawn(void);
static void atkD8_setdamagetohealthdifference(void);
static void atkD9_scaledamagebyhealthratio(void);
static void atkDA_tryswapabilities(void);
-static void atkDB_tryimprision(void);
+static void atkDB_tryimprison(void);
static void atkDC_trysetgrudge(void);
static void atkDD_weightdamagecalculation(void);
-static void atkDE_asistattackselect(void);
+static void atkDE_assistattackselect(void);
static void atkDF_trysetmagiccoat(void);
static void atkE0_trysetsnatch(void);
static void atkE1_trygetintimidatetarget(void);
@@ -526,7 +525,7 @@ static void atkE9_setweatherballtype(void);
static void atkEA_tryrecycleitem(void);
static void atkEB_settypetoterrain(void);
static void atkEC_pursuitrelated(void);
-static void atkED_snatchsetbanks(void);
+static void atkEF_snatchsetbattlers(void);
static void atkEE_removelightscreenreflect(void);
void atkEF_handleballthrow(void);
static void atkF0_givecaughtmon(void);
@@ -634,11 +633,11 @@ void (* const gBattleScriptingCommandsTable[])(void) =
atk5B_yesnoboxstoplearningmove,
atk5C_hitanimation,
atk5D_getmoneyreward,
- atk5E_8025A70,
- atk5F_8025B24,
+ atk5E,
+ atk5F_swapattackerwithtarget,
atk60_incrementgamestat,
atk61_drawpartystatussummary,
- atk62_08025C6C,
+ atk62_hidepartystatussummary,
atk63_jumptorandomattack,
atk64_statusanimation,
atk65_status2animation,
@@ -759,10 +758,10 @@ void (* const gBattleScriptingCommandsTable[])(void) =
atkD8_setdamagetohealthdifference,
atkD9_scaledamagebyhealthratio,
atkDA_tryswapabilities,
- atkDB_tryimprision,
+ atkDB_tryimprison,
atkDC_trysetgrudge,
atkDD_weightdamagecalculation,
- atkDE_asistattackselect,
+ atkDE_assistattackselect,
atkDF_trysetmagiccoat,
atkE0_trysetsnatch,
atkE1_trygetintimidatetarget,
@@ -777,7 +776,7 @@ void (* const gBattleScriptingCommandsTable[])(void) =
atkEA_tryrecycleitem,
atkEB_settypetoterrain,
atkEC_pursuitrelated,
- atkED_snatchsetbanks,
+ atkEF_snatchsetbattlers,
atkEE_removelightscreenreflect,
atkEF_handleballthrow,
atkF0_givecaughtmon,
@@ -939,26 +938,26 @@ static const u16 sProtectSuccessRates[] = {0xFFFF, 0x7FFF, 0x3FFF, 0x1FFF};
static const u16 sMovesForbiddenToCopy[] =
{
- MOVE_METRONOME,
- MOVE_STRUGGLE,
- MOVE_SKETCH,
- MOVE_MIMIC,
- MIMIC_FORBIDDEN_END,
- MOVE_COUNTER,
- MOVE_MIRROR_COAT,
- MOVE_PROTECT,
- MOVE_DETECT,
- MOVE_ENDURE,
- MOVE_DESTINY_BOND,
- MOVE_SLEEP_TALK,
- MOVE_THIEF,
- MOVE_FOLLOW_ME,
- MOVE_SNATCH,
- MOVE_HELPING_HAND,
- MOVE_COVET,
- MOVE_TRICK,
- MOVE_FOCUS_PUNCH,
- METRONOME_FORBIDDEN_END
+ MOVE_METRONOME,
+ MOVE_STRUGGLE,
+ MOVE_SKETCH,
+ MOVE_MIMIC,
+ MIMIC_FORBIDDEN_END,
+ MOVE_COUNTER,
+ MOVE_MIRROR_COAT,
+ MOVE_PROTECT,
+ MOVE_DETECT,
+ MOVE_ENDURE,
+ MOVE_DESTINY_BOND,
+ MOVE_SLEEP_TALK,
+ MOVE_THIEF,
+ MOVE_FOLLOW_ME,
+ MOVE_SNATCH,
+ MOVE_HELPING_HAND,
+ MOVE_COVET,
+ MOVE_TRICK,
+ MOVE_FOCUS_PUNCH,
+ METRONOME_FORBIDDEN_END
};
static const u8 sFlailHpScaleToPowerTable[] = //reversal+flail HP thresholds to power
@@ -1049,7 +1048,7 @@ static void atk00_attackcanceler(void)
return;
if (AbilityBattleEffects(ABILITYEFFECT_MOVES_BLOCK, gBattlerTarget, 0, 0, 0))
return;
- if (!gBattleMons[gBattlerAttacker].pp[gCurrMovePos] && gCurrentMove != MOVE_STRUGGLE && !(gHitMarker & 0x800200)
+ if (!gBattleMons[gBattlerAttacker].pp[gCurrMovePos] && gCurrentMove != MOVE_STRUGGLE && !(gHitMarker & (HITMARKER_x800000 | HITMARKER_NO_ATTACKSTRING))
&& !(gBattleMons[gBattlerAttacker].status2 & STATUS2_MULTIPLETURNS))
{
gBattlescriptCurrInstr = BattleScript_NoPPForMove;
@@ -1088,11 +1087,11 @@ static void atk00_attackcanceler(void)
for (i = 0; i < gBattlersCount; i++)
{
- if ((gProtectStructs[gBanksByTurnOrder[i]].stealMove) && gBattleMoves[gCurrentMove].flags & F_AFFECTED_BY_SNATCH)
+ if ((gProtectStructs[gBattlerByTurnOrder[i]].stealMove) && gBattleMoves[gCurrentMove].flags & F_AFFECTED_BY_SNATCH)
{
- PressurePPLose(gBattlerAttacker, gBanksByTurnOrder[i], MOVE_SNATCH);
- gProtectStructs[gBanksByTurnOrder[i]].stealMove = 0;
- gBattleStruct->scriptingActive = gBanksByTurnOrder[i];
+ PressurePPLose(gBattlerAttacker, gBattlerByTurnOrder[i], MOVE_SNATCH);
+ gProtectStructs[gBattlerByTurnOrder[i]].stealMove = 0;
+ gBattleStruct->scriptingActive = gBattlerByTurnOrder[i];
BattleScriptPushCursor();
gBattlescriptCurrInstr = BattleScript_SnatchedMove;
return;
@@ -1107,8 +1106,8 @@ static void atk00_attackcanceler(void)
gBattlescriptCurrInstr = BattleScript_TookAttack;
RecordAbilityBattle(gBattlerTarget, gLastUsedAbility);
}
- else if (TARGET_PROTECT_AFFECTED
- && (gCurrentMove != MOVE_CURSE || (gBattleMons[gBattlerAttacker].type1 == TYPE_GHOST || gBattleMons[gBattlerAttacker].type2 == TYPE_GHOST))
+ else if (DEFENDER_IS_PROTECTED
+ && (gCurrentMove != MOVE_CURSE || IS_BATTLER_OF_TYPE(gBattlerAttacker, TYPE_GHOST))
&& ((!IsTwoTurnsMove(gCurrentMove) || (gBattleMons[gBattlerAttacker].status2 & STATUS2_MULTIPLETURNS))))
{
CancelMultiTurnMoves(gBattlerAttacker);
@@ -1144,7 +1143,7 @@ static void JumpIfMoveFailed(u8 adder, u16 move)
static void atk40_jumpifaffectedbyprotect(void)
{
- if (TARGET_PROTECT_AFFECTED)
+ if (DEFENDER_IS_PROTECTED)
{
gMoveResultFlags |= MOVE_RESULT_MISSED;
JumpIfMoveFailed(5, 0);
@@ -1159,7 +1158,7 @@ static void atk40_jumpifaffectedbyprotect(void)
static bool8 JumpIfMoveAffectedByProtect(u16 move)
{
bool8 affected = FALSE;
- if (TARGET_PROTECT_AFFECTED)
+ if (DEFENDER_IS_PROTECTED)
{
gMoveResultFlags |= MOVE_RESULT_MISSED;
JumpIfMoveFailed(7, move);
@@ -1171,7 +1170,7 @@ static bool8 JumpIfMoveAffectedByProtect(u16 move)
static bool8 AccuracyCalcHelper(u16 move)
{
- if (gStatuses3[gBattlerTarget] & STATUS3_ALWAYS_HITS && gDisableStructs[gBattlerTarget].bankWithSureHit == gBattlerAttacker)
+ if (gStatuses3[gBattlerTarget] & STATUS3_ALWAYS_HITS && gDisableStructs[gBattlerTarget].battlerWithSureHit == gBattlerAttacker)
{
JumpIfMoveFailed(7, move);
return TRUE;
@@ -1220,7 +1219,7 @@ static void atk01_accuracycheck(void)
if (move == 0xFFFE || move == 0xFFFF)
{
- if (gStatuses3[gBattlerTarget] & STATUS3_ALWAYS_HITS && move == 0xFFFF && gDisableStructs[gBattlerTarget].bankWithSureHit == gBattlerAttacker)
+ if (gStatuses3[gBattlerTarget] & STATUS3_ALWAYS_HITS && move == 0xFFFF && gDisableStructs[gBattlerTarget].battlerWithSureHit == gBattlerAttacker)
gBattlescriptCurrInstr += 7;
else if (gStatuses3[gBattlerTarget] & (STATUS3_ON_AIR | STATUS3_UNDERGROUND | STATUS3_UNDERWATER))
gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
@@ -1329,11 +1328,11 @@ static void atk03_ppreduce(void)
{
switch (gBattleMoves[gCurrentMove].target)
{
- case TARGET_FOES_AND_ALLY:
+ case MOVE_TARGET_FOES_AND_ALLY:
ppToDeduct += AbilityBattleEffects(ABILITYEFFECT_COUNT_ON_FIELD, gBattlerAttacker, ABILITY_PRESSURE, 0, 0);
break;
- case TARGET_BOTH:
- case TARGET_OPPONENTS_FIELD:
+ case MOVE_TARGET_BOTH:
+ case MOVE_TARGET_OPPONENTS_FIELD:
ppToDeduct += AbilityBattleEffects(ABILITYEFFECT_COUNT_OTHER_SIZE, gBattlerAttacker, ABILITY_PRESSURE, 0, 0);
break;
default:
@@ -1353,7 +1352,7 @@ static void atk03_ppreduce(void)
gBattleMons[gBattlerAttacker].pp[gCurrMovePos] = 0;
if (!(gBattleMons[gBattlerAttacker].status2 & STATUS2_TRANSFORMED)
- && !((gDisableStructs[gBattlerAttacker].unk18_b) & gBitTable[gCurrMovePos]))
+ && !((gDisableStructs[gBattlerAttacker].mimickedMoves) & gBitTable[gCurrMovePos]))
{
gActiveBattler = gBattlerAttacker;
BtlController_EmitSetMonData(0, REQUEST_PPMOVE1_BATTLE + gCurrMovePos, 0, 1, &gBattleMons[gBattlerAttacker].pp[gCurrMovePos]);
@@ -1388,8 +1387,8 @@ static void atk04_critcalc(void)
+ 2 * (holdEffect == HOLD_EFFECT_LUCKY_PUNCH && gBattleMons[gBattlerAttacker].species == SPECIES_CHANSEY)
+ 2 * (holdEffect == HOLD_EFFECT_STICK && gBattleMons[gBattlerAttacker].species == SPECIES_FARFETCHD);
- if (critChance > 4)
- critChance = 4;
+ if (critChance >= ARRAY_COUNT(sCriticalHitChance))
+ critChance = ARRAY_COUNT(sCriticalHitChance) - 1;
if ((gBattleMons[gBattlerTarget].ability != ABILITY_BATTLE_ARMOR && gBattleMons[gBattlerTarget].ability != ABILITY_SHELL_ARMOR)
&& !(gStatuses3[gBattlerAttacker] & STATUS3_CANT_SCORE_A_CRIT)
@@ -1404,9 +1403,9 @@ static void atk04_critcalc(void)
static void atk05_damagecalc(void)
{
- u16 side_hword = gSideAffecting[GetBattlerPosition(gBattlerTarget) & 1];
+ u16 sideStatus = gSideStatuses[GET_BATTLER_SIDE(gBattlerTarget)];
gBattleMoveDamage = CalculateBaseDamage(&gBattleMons[gBattlerAttacker], &gBattleMons[gBattlerTarget], gCurrentMove,
- side_hword, gDynamicBasePower,
+ sideStatus, gDynamicBasePower,
gBattleStruct->dynamicMoveType, gBattlerAttacker, gBattlerTarget);
gBattleMoveDamage = gBattleMoveDamage * gCritMultiplier * gBattleStruct->dmgMultiplier;
@@ -1418,18 +1417,18 @@ static void atk05_damagecalc(void)
gBattlescriptCurrInstr++;
}
-void AI_CalcDmg(u8 BankAtk, u8 BankDef)
+void AI_CalcDmg(u8 attacker, u8 defender)
{
- u16 side_hword = gSideAffecting[GetBattlerPosition(BankDef) & 1];
- gBattleMoveDamage = CalculateBaseDamage(&gBattleMons[BankAtk], &gBattleMons[BankDef], gCurrentMove,
- side_hword, gDynamicBasePower,
- gBattleStruct->dynamicMoveType, BankAtk, BankDef);
+ u16 sideStatus = gSideStatuses[GET_BATTLER_SIDE(defender)];
+ gBattleMoveDamage = CalculateBaseDamage(&gBattleMons[attacker], &gBattleMons[defender], gCurrentMove,
+ sideStatus, gDynamicBasePower,
+ gBattleStruct->dynamicMoveType, attacker, defender);
gDynamicBasePower = 0;
gBattleMoveDamage = gBattleMoveDamage * gCritMultiplier * gBattleStruct->dmgMultiplier;
- if (gStatuses3[BankAtk] & STATUS3_CHARGED_UP && gBattleMoves[gCurrentMove].type == TYPE_ELECTRIC)
+ if (gStatuses3[attacker] & STATUS3_CHARGED_UP && gBattleMoves[gCurrentMove].type == TYPE_ELECTRIC)
gBattleMoveDamage *= 2;
- if (gProtectStructs[BankAtk].helpingHand)
+ if (gProtectStructs[attacker].helpingHand)
gBattleMoveDamage = gBattleMoveDamage * 15 / 10;
}
@@ -1441,12 +1440,12 @@ static void ModulateDmgByType(u8 multiplier)
switch (multiplier)
{
- case 0: //no effect
+ case TYPE_MUL_NO_EFFECT:
gMoveResultFlags |= MOVE_RESULT_DOESNT_AFFECT_FOE;
gMoveResultFlags &= ~MOVE_RESULT_NOT_VERY_EFFECTIVE;
gMoveResultFlags &= ~MOVE_RESULT_SUPER_EFFECTIVE;
break;
- case 5: //not very effecting
+ case TYPE_MUL_NOT_EFFECTIVE:
if (gBattleMoves[gCurrentMove].power && !(gMoveResultFlags & MOVE_RESULT_NO_EFFECT))
{
if (gMoveResultFlags & MOVE_RESULT_SUPER_EFFECTIVE)
@@ -1455,7 +1454,7 @@ static void ModulateDmgByType(u8 multiplier)
gMoveResultFlags |= MOVE_RESULT_NOT_VERY_EFFECTIVE;
}
break;
- case 20: //super effective
+ case TYPE_MUL_SUPER_EFFECTIVE:
if (gBattleMoves[gCurrentMove].power && !(gMoveResultFlags & MOVE_RESULT_NO_EFFECT))
{
if (gMoveResultFlags & MOVE_RESULT_NOT_VERY_EFFECTIVE)
@@ -1470,28 +1469,28 @@ static void ModulateDmgByType(u8 multiplier)
static void atk06_typecalc(void)
{
int i = 0;
- u8 move_type;
+ u8 moveType;
if (gCurrentMove != MOVE_STRUGGLE)
{
if (gBattleStruct->dynamicMoveType)
- move_type = gBattleStruct->dynamicMoveType & 0x3F;
+ moveType = gBattleStruct->dynamicMoveType & 0x3F;
else
- move_type = gBattleMoves[gCurrentMove].type;
+ moveType = gBattleMoves[gCurrentMove].type;
//check stab
- if (gBattleMons[gBattlerAttacker].type1 == move_type || gBattleMons[gBattlerAttacker].type2 == move_type)
+ if (gBattleMons[gBattlerAttacker].type1 == moveType || gBattleMons[gBattlerAttacker].type2 == moveType)
{
gBattleMoveDamage = gBattleMoveDamage * 15;
gBattleMoveDamage = gBattleMoveDamage / 10;
}
- if (gBattleMons[gBattlerTarget].ability == ABILITY_LEVITATE && move_type == TYPE_GROUND)
+ if (gBattleMons[gBattlerTarget].ability == ABILITY_LEVITATE && moveType == TYPE_GROUND)
{
gLastUsedAbility = gBattleMons[gBattlerTarget].ability;
gMoveResultFlags |= (MOVE_RESULT_MISSED | MOVE_RESULT_DOESNT_AFFECT_FOE);
gLastLandedMoves[gBattlerTarget] = 0;
gLastHitByType[gBattlerTarget] = 0;
- gBattleCommunication[6] = move_type;
+ gBattleCommunication[6] = moveType;
RecordAbilityBattle(gBattlerTarget, gLastUsedAbility);
}
else
@@ -1506,7 +1505,7 @@ static void atk06_typecalc(void)
continue;
}
- else if (gTypeEffectiveness[i] == move_type)
+ else if (gTypeEffectiveness[i] == moveType)
{
//check type1
if (gTypeEffectiveness[i + 1] == gBattleMons[gBattlerTarget].type1)
@@ -1539,24 +1538,21 @@ static void atk06_typecalc(void)
static void CheckWonderGuardAndLevitate(void)
{
u8 flags = 0;
- int i = 0;
- u8 move_type;
+ s32 i = 0;
+ u8 moveType;
if (gCurrentMove == MOVE_STRUGGLE || !gBattleMoves[gCurrentMove].power)
return;
- if (gBattleStruct->dynamicMoveType)
- move_type = gBattleStruct->dynamicMoveType & 0x3F;
- else
- move_type = gBattleMoves[gCurrentMove].type;
+ GET_MOVE_TYPE(gCurrentMove, moveType);
- if (gBattleMons[gBattlerTarget].ability == ABILITY_LEVITATE && move_type == TYPE_GROUND)
+ if (gBattleMons[gBattlerTarget].ability == ABILITY_LEVITATE && moveType == TYPE_GROUND)
{
- RecordAbilitySetField6(ABILITY_LEVITATE, move_type);
+ RecordAbilitySetField6(ABILITY_LEVITATE, moveType);
return;
}
- while (gTypeEffectiveness[i]!= TYPE_ENDTABLE)
+ while (gTypeEffectiveness[i] != TYPE_ENDTABLE)
{
if (gTypeEffectiveness[i] == TYPE_FORESIGHT)
{
@@ -1566,9 +1562,9 @@ static void CheckWonderGuardAndLevitate(void)
continue;
}
- if (gTypeEffectiveness[i] == move_type)
+ if (gTypeEffectiveness[i] == moveType)
{
- //check no effect
+ // check no effect
if (gTypeEffectiveness[i + 1] == gBattleMons[gBattlerTarget].type1 && gTypeEffectiveness[i + 2] == 0)
{
gMoveResultFlags |= MOVE_RESULT_DOESNT_AFFECT_FOE;
@@ -1582,7 +1578,7 @@ static void CheckWonderGuardAndLevitate(void)
gProtectStructs[gBattlerAttacker].targetNotAffected = 1;
}
- //check super effective
+ // check super effective
if (gTypeEffectiveness[i + 1] == gBattleMons[gBattlerTarget].type1 && gTypeEffectiveness[i + 2] == 20)
flags |= 1;
if (gTypeEffectiveness[i + 1] == gBattleMons[gBattlerTarget].type2
@@ -1590,7 +1586,7 @@ static void CheckWonderGuardAndLevitate(void)
&& gTypeEffectiveness[i + 2] == 20)
flags |= 1;
- //check not very effective
+ // check not very effective
if (gTypeEffectiveness[i + 1] == gBattleMons[gBattlerTarget].type1 && gTypeEffectiveness[i + 2] == 5)
flags |= 2;
if (gTypeEffectiveness[i + 1] == gBattleMons[gBattlerTarget].type2
@@ -1610,7 +1606,7 @@ static void CheckWonderGuardAndLevitate(void)
}
}
-static void ModulateDmgByType2(u8 multiplier, u16 move, u8* flags) //a literal copy of the ModulateDmgbyType1 with different args...
+static void ModulateDmgByType2(u8 multiplier, u16 move, u8* flags) // same as ModulateDmgByType except different arguments
{
gBattleMoveDamage = gBattleMoveDamage * multiplier / 10;
if (gBattleMoveDamage == 0 && multiplier != 0)
@@ -1618,12 +1614,12 @@ static void ModulateDmgByType2(u8 multiplier, u16 move, u8* flags) //a literal c
switch (multiplier)
{
- case 0: //no effect
+ case TYPE_MUL_NO_EFFECT:
*flags |= MOVE_RESULT_DOESNT_AFFECT_FOE;
*flags &= ~MOVE_RESULT_NOT_VERY_EFFECTIVE;
*flags &= ~MOVE_RESULT_SUPER_EFFECTIVE;
break;
- case 5: //not very effecting
+ case TYPE_MUL_NOT_EFFECTIVE:
if (gBattleMoves[move].power && !(*flags & MOVE_RESULT_NO_EFFECT))
{
if (*flags & MOVE_RESULT_SUPER_EFFECTIVE)
@@ -1632,7 +1628,7 @@ static void ModulateDmgByType2(u8 multiplier, u16 move, u8* flags) //a literal c
*flags |= MOVE_RESULT_NOT_VERY_EFFECTIVE;
}
break;
- case 20: //super effective
+ case TYPE_MUL_SUPER_EFFECTIVE:
if (gBattleMoves[move].power && !(*flags & MOVE_RESULT_NO_EFFECT))
{
if (*flags & MOVE_RESULT_NOT_VERY_EFFECTIVE)
@@ -1644,25 +1640,25 @@ static void ModulateDmgByType2(u8 multiplier, u16 move, u8* flags) //a literal c
}
}
-u8 TypeCalc(u16 move, u8 bank_atk, u8 bank_def)
+u8 TypeCalc(u16 move, u8 attacker, u8 defender)
{
- int i = 0;
+ s32 i = 0;
u8 flags = 0;
- u8 move_type;
+ u8 moveType;
if (move == MOVE_STRUGGLE)
return 0;
- move_type = gBattleMoves[move].type;
+ moveType = gBattleMoves[move].type;
- //check stab
- if (gBattleMons[bank_atk].type1 == move_type || gBattleMons[bank_atk].type2 == move_type)
+ // check stab
+ if (IS_BATTLER_OF_TYPE(attacker, moveType))
{
gBattleMoveDamage = gBattleMoveDamage * 15;
gBattleMoveDamage = gBattleMoveDamage / 10;
}
- if (gBattleMons[bank_def].ability == ABILITY_LEVITATE && move_type == TYPE_GROUND)
+ if (gBattleMons[defender].ability == ABILITY_LEVITATE && moveType == TYPE_GROUND)
{
flags |= (MOVE_RESULT_MISSED | MOVE_RESULT_DOESNT_AFFECT_FOE);
}
@@ -1672,28 +1668,28 @@ u8 TypeCalc(u16 move, u8 bank_atk, u8 bank_def)
{
if (gTypeEffectiveness[i] == TYPE_FORESIGHT)
{
- if (gBattleMons[bank_def].status2 & STATUS2_FORESIGHT)
+ if (gBattleMons[defender].status2 & STATUS2_FORESIGHT)
break;
i += 3;
continue;
}
- else if (gTypeEffectiveness[i] == move_type)
+ else if (gTypeEffectiveness[i] == moveType)
{
- //check type1
- if (gTypeEffectiveness[i + 1] == gBattleMons[bank_def].type1)
+ // check type1
+ if (gTypeEffectiveness[i + 1] == gBattleMons[defender].type1)
ModulateDmgByType2(gTypeEffectiveness[i + 2], move, &flags);
- //check type2
- if (gTypeEffectiveness[i + 1] == gBattleMons[bank_def].type2 &&
- gBattleMons[gBattlerTarget /* what the christ */].type1 != gBattleMons[bank_def].type2)
+ // check type2
+ if (gTypeEffectiveness[i + 1] == gBattleMons[defender].type2 &&
+ gBattleMons[gBattlerTarget /* what the christ */].type1 != gBattleMons[defender].type2)
ModulateDmgByType2(gTypeEffectiveness[i + 2], move, &flags);
}
i += 3;
}
}
- if (gBattleMons[bank_def].ability == ABILITY_WONDER_GUARD && !(flags & MOVE_RESULT_MISSED) &&
- AttacksThisTurn(bank_atk, move) == 2 &&
+ if (gBattleMons[defender].ability == ABILITY_WONDER_GUARD && !(flags & MOVE_RESULT_MISSED) &&
+ AttacksThisTurn(attacker, move) == 2 &&
(!(flags & MOVE_RESULT_SUPER_EFFECTIVE) || ((flags & (MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE)) == (MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE))) &&
gBattleMoves[move].power)
{
@@ -1702,41 +1698,43 @@ u8 TypeCalc(u16 move, u8 bank_atk, u8 bank_def)
return flags;
}
-u8 AI_TypeCalc(u16 move, u16 species, u8 ability)
+u8 AI_TypeCalc(u16 move, u16 targetSpecies, u8 targetAbility)
{
int i = 0;
u8 flags = 0;
- u8 type1 = gBaseStats[species].type1, type2 = gBaseStats[species].type2, move_type;
+ u8 type1 = gBaseStats[targetSpecies].type1, type2 = gBaseStats[targetSpecies].type2, moveType;
if (move == MOVE_STRUGGLE)
return 0;
- move_type = gBattleMoves[move].type;
+ moveType = gBattleMoves[move].type;
- if (ability == ABILITY_LEVITATE && move_type == TYPE_GROUND)
+ if (targetAbility == ABILITY_LEVITATE && moveType == TYPE_GROUND)
+ {
flags = MOVE_RESULT_MISSED | MOVE_RESULT_DOESNT_AFFECT_FOE;
+ }
else
{
- while (gTypeEffectiveness[i]!= TYPE_ENDTABLE)
+ while (TYPE_EFFECT_ATK_TYPE(i) != TYPE_ENDTABLE)
{
- if (gTypeEffectiveness[i] == TYPE_FORESIGHT)
+ if (TYPE_EFFECT_ATK_TYPE(i) == TYPE_FORESIGHT)
{
i += 3;
continue;
}
- if (gTypeEffectiveness[i] == move_type)
+ if (TYPE_EFFECT_ATK_TYPE(i) == moveType)
{
- //check type1
- if (gTypeEffectiveness[i + 1] == type1)
- ModulateDmgByType2(gTypeEffectiveness[i + 2], move, &flags);
- //check type2
- if (gTypeEffectiveness[i + 1] == type2 && gBattleMons[gBattlerTarget].type1 != type2) //gf you morons, you should check if (type1 != type2)...
- ModulateDmgByType2(gTypeEffectiveness[i + 2], move, &flags);
+ // check type1
+ if (TYPE_EFFECT_DEF_TYPE(i) == type1)
+ ModulateDmgByType2(TYPE_EFFECT_MULTIPLIER(i), move, &flags);
+ // check type2
+ if (TYPE_EFFECT_DEF_TYPE(i) == type2 && gBattleMons[gBattlerTarget].type1 != type2) //gf you morons, you should check if (type1 != type2)...
+ ModulateDmgByType2(TYPE_EFFECT_MULTIPLIER(i), move, &flags);
}
i += 3;
}
}
- if (ability == ABILITY_WONDER_GUARD
+ if (targetAbility == ABILITY_WONDER_GUARD
&& (!(flags & MOVE_RESULT_SUPER_EFFECTIVE) || ((flags & (MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE)) == (MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE)))
&& gBattleMoves[move].power)
flags |= MOVE_RESULT_DOESNT_AFFECT_FOE;
@@ -1765,23 +1763,26 @@ void Unused_ApplyRandomDmgMultiplier(void)
static void atk07_adjustnormaldamage(void)
{
- u8 hold_effect, quality;
+ u8 holdEffect, param;
+
ApplyRandomDmgMultiplier();
+
if (gBattleMons[gBattlerTarget].item == ITEM_ENIGMA_BERRY)
{
- hold_effect = gEnigmaBerries[gBattlerTarget].holdEffect, quality = gEnigmaBerries[gBattlerTarget].holdEffectParam;
+ holdEffect = gEnigmaBerries[gBattlerTarget].holdEffect;
+ param = gEnigmaBerries[gBattlerTarget].holdEffectParam;
}
else
{
- hold_effect = ItemId_GetHoldEffect(gBattleMons[gBattlerTarget].item);
- quality = ItemId_GetHoldEffectParam(gBattleMons[gBattlerTarget].item);
+ holdEffect = ItemId_GetHoldEffect(gBattleMons[gBattlerTarget].item);
+ param = ItemId_GetHoldEffectParam(gBattleMons[gBattlerTarget].item);
}
gPotentialItemEffectBattler = gBattlerTarget;
- if (hold_effect == HOLD_EFFECT_FOCUS_BAND && (Random() % 100) < quality)
+ if (holdEffect == HOLD_EFFECT_FOCUS_BAND && (Random() % 100) < param)
{
- RecordItemBattle(gBattlerTarget, hold_effect);
+ RecordItemEffectBattle(gBattlerTarget, holdEffect);
gSpecialStatuses[gBattlerTarget].focusBanded = 1;
}
if (gBattleMons[gBattlerTarget].status2 & STATUS2_SUBSTITUTE)
@@ -1798,9 +1799,8 @@ static void atk07_adjustnormaldamage(void)
if (gProtectStructs[gBattlerTarget].endured)
{
gMoveResultFlags |= MOVE_RESULT_FOE_ENDURED;
- goto END;
}
- if (gSpecialStatuses[gBattlerTarget].focusBanded)
+ else if (gSpecialStatuses[gBattlerTarget].focusBanded)
{
gMoveResultFlags |= MOVE_RESULT_FOE_HUNG_ON;
gLastUsedItem = gBattleMons[gBattlerTarget].item;
@@ -1810,33 +1810,34 @@ static void atk07_adjustnormaldamage(void)
gBattlescriptCurrInstr++;
}
-static void atk08_adjustnormaldamage2(void) //literally the same as 0x7 except it doesn't check for false swipe move effect...
+static void atk08_adjustnormaldamage2(void) // The same as 0x7 except it doesn't check for false swipe move effect.
{
- u8 hold_effect, quality;
+ u8 holdEffect, param;
+
ApplyRandomDmgMultiplier();
+
if (gBattleMons[gBattlerTarget].item == ITEM_ENIGMA_BERRY)
{
- hold_effect = gEnigmaBerries[gBattlerTarget].holdEffect, quality = gEnigmaBerries[gBattlerTarget].holdEffectParam;
+ holdEffect = gEnigmaBerries[gBattlerTarget].holdEffect;
+ param = gEnigmaBerries[gBattlerTarget].holdEffectParam;
}
else
{
- hold_effect = ItemId_GetHoldEffect(gBattleMons[gBattlerTarget].item);
- quality = ItemId_GetHoldEffectParam(gBattleMons[gBattlerTarget].item);
+ holdEffect = ItemId_GetHoldEffect(gBattleMons[gBattlerTarget].item);
+ param = ItemId_GetHoldEffectParam(gBattleMons[gBattlerTarget].item);
}
gPotentialItemEffectBattler = gBattlerTarget;
- if (hold_effect == HOLD_EFFECT_FOCUS_BAND && (Random() % 100) < quality)
+ if (holdEffect == HOLD_EFFECT_FOCUS_BAND && (Random() % 100) < param)
{
- RecordItemBattle(gBattlerTarget, hold_effect);
+ RecordItemEffectBattle(gBattlerTarget, holdEffect);
gSpecialStatuses[gBattlerTarget].focusBanded = 1;
}
if (gBattleMons[gBattlerTarget].status2 & STATUS2_SUBSTITUTE)
goto END;
- if (!gProtectStructs[gBattlerTarget].endured
- && !gSpecialStatuses[gBattlerTarget].focusBanded)
+ if (!gProtectStructs[gBattlerTarget].endured && !gSpecialStatuses[gBattlerTarget].focusBanded)
goto END;
-
if (gBattleMons[gBattlerTarget].hp > gBattleMoveDamage)
goto END;
@@ -1845,9 +1846,8 @@ static void atk08_adjustnormaldamage2(void) //literally the same as 0x7 except i
if (gProtectStructs[gBattlerTarget].endured)
{
gMoveResultFlags |= MOVE_RESULT_FOE_ENDURED;
- goto END;
}
- if (gSpecialStatuses[gBattlerTarget].focusBanded)
+ else if (gSpecialStatuses[gBattlerTarget].focusBanded)
{
gMoveResultFlags |= MOVE_RESULT_FOE_HUNG_ON;
gLastUsedItem = gBattleMons[gBattlerTarget].item;
@@ -1866,12 +1866,12 @@ static void atk09_attackanimation(void)
{
BattleScriptPush(gBattlescriptCurrInstr + 1);
gBattlescriptCurrInstr = BattleScript_Pausex20;
- gBattleStruct->animTurn += 1;
- gBattleStruct->animTargetsHit += 1;
+ gBattleStruct->animTurn++;
+ gBattleStruct->animTargetsHit++;
}
else
{
- if ((gBattleMoves[gCurrentMove].target & TARGET_BOTH || gBattleMoves[gCurrentMove].target & TARGET_FOES_AND_ALLY || gBattleMoves[gCurrentMove].target & TARGET_DEPENDS) && gBattleStruct->animTargetsHit)
+ if ((gBattleMoves[gCurrentMove].target & MOVE_TARGET_BOTH || gBattleMoves[gCurrentMove].target & MOVE_TARGET_FOES_AND_ALLY || gBattleMoves[gCurrentMove].target & TARGET_DEPENDS) && gBattleStruct->animTargetsHit)
{
gBattlescriptCurrInstr++;
return;
@@ -1907,7 +1907,7 @@ static void atk0B_healthbarupdate(void)
if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT))
{
- gActiveBattler = GetBattleBank(gBattlescriptCurrInstr[1]);
+ gActiveBattler = GetBattlerForBattleScript(gBattlescriptCurrInstr[1]);
if (gBattleMons[gActiveBattler].status2 & STATUS2_SUBSTITUTE && gDisableStructs[gActiveBattler].substituteHP && !(gHitMarker & HITMARKER_IGNORE_SUBSTITUTE))
{
@@ -1934,7 +1934,7 @@ static void atk0B_healthbarupdate(void)
MarkBattlerForControllerExec(gActiveBattler);
if (GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER && gBattleMoveDamage > 0)
- gBattleResults.unk5_0 = 1;
+ gBattleResults.playerMonWasDamaged = TRUE;
}
}
@@ -1957,7 +1957,7 @@ static void atk0C_datahpupdate(void)
if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT))
{
- gActiveBattler = GetBattleBank(gBattlescriptCurrInstr[1]);
+ gActiveBattler = GetBattlerForBattleScript(gBattlescriptCurrInstr[1]);
if (gBattleMons[gActiveBattler].status2 & STATUS2_SUBSTITUTE && gDisableStructs[gActiveBattler].substituteHP && !(gHitMarker & HITMARKER_IGNORE_SUBSTITUTE))
{
if (gDisableStructs[gActiveBattler].substituteHP >= gBattleMoveDamage)
@@ -2002,10 +2002,10 @@ static void atk0C_datahpupdate(void)
else
{
gTakenDmg[gActiveBattler] += gBattleMoveDamage;
- if (gBattlescriptCurrInstr[1] == BS_GET_TARGET)
- gTakenDmgBanks[gActiveBattler] = gBattlerAttacker;
+ if (gBattlescriptCurrInstr[1] == BS_TARGET)
+ gTakenDmgByBattler[gActiveBattler] = gBattlerAttacker;
else
- gTakenDmgBanks[gActiveBattler] = gBattlerTarget;
+ gTakenDmgByBattler[gActiveBattler] = gBattlerTarget;
}
if (gBattleMons[gActiveBattler].hp > gBattleMoveDamage)
@@ -2022,11 +2022,11 @@ static void atk0C_datahpupdate(void)
if (!gSpecialStatuses[gActiveBattler].dmg && !(gHitMarker & HITMARKER_x100000))
gSpecialStatuses[gActiveBattler].dmg = gHpDealt;
- if (TYPE_IS_PHYSICAL(moveType) && !(gHitMarker & HITMARKER_x100000) && gCurrentMove != MOVE_PAIN_SPLIT)
+ if (IS_TYPE_PHYSICAL(moveType) && !(gHitMarker & HITMARKER_x100000) && gCurrentMove != MOVE_PAIN_SPLIT)
{
gProtectStructs[gActiveBattler].physicalDmg = gHpDealt;
gSpecialStatuses[gActiveBattler].physicalDmg = gHpDealt;
- if (gBattlescriptCurrInstr[1] == BS_GET_TARGET)
+ if (gBattlescriptCurrInstr[1] == BS_TARGET)
{
gProtectStructs[gActiveBattler].physicalBattlerId = gBattlerAttacker;
gSpecialStatuses[gActiveBattler].physicalBattlerId = gBattlerAttacker;
@@ -2037,11 +2037,11 @@ static void atk0C_datahpupdate(void)
gSpecialStatuses[gActiveBattler].physicalBattlerId = gBattlerTarget;
}
}
- else if (!TYPE_IS_PHYSICAL(moveType) && !(gHitMarker & HITMARKER_x100000))
+ else if (!IS_TYPE_PHYSICAL(moveType) && !(gHitMarker & HITMARKER_x100000))
{
gProtectStructs[gActiveBattler].specialDmg = gHpDealt;
gSpecialStatuses[gActiveBattler].specialDmg = gHpDealt;
- if (gBattlescriptCurrInstr[1] == BS_GET_TARGET)
+ if (gBattlescriptCurrInstr[1] == BS_TARGET)
{
gProtectStructs[gActiveBattler].specialBattlerId = gBattlerAttacker;
gSpecialStatuses[gActiveBattler].specialBattlerId = gBattlerAttacker;
@@ -2060,7 +2060,7 @@ static void atk0C_datahpupdate(void)
}
else
{
- gActiveBattler = GetBattleBank(gBattlescriptCurrInstr[1]);
+ gActiveBattler = GetBattlerForBattleScript(gBattlescriptCurrInstr[1]);
if (gSpecialStatuses[gActiveBattler].dmg == 0)
gSpecialStatuses[gActiveBattler].dmg = 0xFFFF;
}
@@ -2088,19 +2088,19 @@ static void atk0E_effectivenesssound(void)
gActiveBattler = gBattlerTarget;
if (!(gMoveResultFlags & MOVE_RESULT_MISSED))
{
- u8 flag = ~MOVE_RESULT_MISSED;
- switch (gMoveResultFlags & flag)
+ switch (gMoveResultFlags & (u8)(~(MOVE_RESULT_MISSED)))
{
case MOVE_RESULT_SUPER_EFFECTIVE:
- BtlController_EmitPlaySE(0, 14);
+ BtlController_EmitPlaySE(0, SE_KOUKA_H);
MarkBattlerForControllerExec(gActiveBattler);
break;
case MOVE_RESULT_NOT_VERY_EFFECTIVE:
- BtlController_EmitPlaySE(0, 12);
+ BtlController_EmitPlaySE(0, SE_KOUKA_L);
MarkBattlerForControllerExec(gActiveBattler);
break;
case MOVE_RESULT_DOESNT_AFFECT_FOE:
case MOVE_RESULT_FAILED:
+ // no sound
break;
case MOVE_RESULT_FOE_ENDURED:
case MOVE_RESULT_ONE_HIT_KO:
@@ -2108,17 +2108,17 @@ static void atk0E_effectivenesssound(void)
default:
if (gMoveResultFlags & MOVE_RESULT_SUPER_EFFECTIVE)
{
- BtlController_EmitPlaySE(0, 14);
+ BtlController_EmitPlaySE(0, SE_KOUKA_H);
MarkBattlerForControllerExec(gActiveBattler);
}
else if (gMoveResultFlags & MOVE_RESULT_NOT_VERY_EFFECTIVE)
{
- BtlController_EmitPlaySE(0, 12);
+ BtlController_EmitPlaySE(0, SE_KOUKA_L);
MarkBattlerForControllerExec(gActiveBattler);
}
else if (!(gMoveResultFlags & (MOVE_RESULT_DOESNT_AFFECT_FOE | MOVE_RESULT_FAILED)))
{
- BtlController_EmitPlaySE(0, 13);
+ BtlController_EmitPlaySE(0, SE_KOUKA_M);
MarkBattlerForControllerExec(gActiveBattler);
}
break;
@@ -2230,8 +2230,10 @@ static void atk10_printstring(void)
static void atk11_printselectionstring(void)
{
gActiveBattler = gBattlerAttacker;
+
BtlController_EmitPrintSelectionString(0, T2_READ_16(gBattlescriptCurrInstr + 1));
MarkBattlerForControllerExec(gActiveBattler);
+
gBattlescriptCurrInstr += 3;
gBattleCommunication[MSG_DISPLAY] = 1;
}
@@ -2246,8 +2248,8 @@ static void atk12_waitmessage(void)
}
else
{
- u16 to_wait = T2_READ_16(gBattlescriptCurrInstr + 1);
- if (++gPauseCounterBattle >= to_wait)
+ u16 toWait = T2_READ_16(gBattlescriptCurrInstr + 1);
+ if (++gPauseCounterBattle >= toWait)
{
gPauseCounterBattle = 0;
gBattlescriptCurrInstr += 3;
@@ -2283,12 +2285,12 @@ static void atk14_printselectionstringfromtable(void)
}
}
-u8 BankGetTurnOrder(u8 bank)
+u8 GetBattlerTurnOrderNum(u8 battlerId)
{
int i;
for (i = 0; i < gBattlersCount; i++)
{
- if (gBanksByTurnOrder[i] == bank)
+ if (gBattlerByTurnOrder[i] == battlerId)
break;
}
return i;
@@ -2321,7 +2323,7 @@ void SetMoveEffect(bool8 primary, u8 certainArg)
!primary && gBattleCommunication[MOVE_EFFECT_BYTE] <= 9)
{gBattlescriptCurrInstr++; return;}
- if (gSideAffecting[GetBattlerPosition(gEffectBattler) & 1] & SIDE_STATUS_SAFEGUARD && !(gHitMarker & HITMARKER_IGNORE_SAFEGUARD) &&
+ if (gSideStatuses[GetBattlerPosition(gEffectBattler) & 1] & SIDE_STATUS_SAFEGUARD && !(gHitMarker & HITMARKER_IGNORE_SAFEGUARD) &&
!primary && gBattleCommunication[MOVE_EFFECT_BYTE] <= 7)
{gBattlescriptCurrInstr++; return;}
@@ -2553,7 +2555,7 @@ void SetMoveEffect(bool8 primary, u8 certainArg)
}
else
{
- if (BankGetTurnOrder(gEffectBattler) > gCurrentTurnActionNumber)
+ if (GetBattlerTurnOrderNum(gEffectBattler) > gCurrentTurnActionNumber)
gBattleMons[gEffectBattler].status2 |= sStatusFlagsForMoveEffects[gBattleCommunication[MOVE_EFFECT_BYTE]];
gBattlescriptCurrInstr++; return;
}
@@ -2867,7 +2869,7 @@ _0801E48A:\n\
mov r1, r8\n\
ldrb r0, [r1]\n\
bl GetBattlerPosition\n\
- ldr r2, _0801E554 @ =gSideAffecting\n\
+ ldr r2, _0801E554 @ =gSideStatuses\n\
movs r1, 0x1\n\
ands r1, r0\n\
lsls r1, 1\n\
@@ -2961,7 +2963,7 @@ _0801E544: .4byte gBattlerAttacker\n\
_0801E548: .4byte 0x00016003\n\
_0801E54C: .4byte gBattleMons\n\
_0801E550: .4byte gHitMarker\n\
-_0801E554: .4byte gSideAffecting\n\
+_0801E554: .4byte gSideStatuses\n\
_0801E558: .4byte gBattleCommunication\n\
_0801E55C: .4byte sStatusFlagsForMoveEffects\n\
_0801E560:\n\
@@ -3895,7 +3897,7 @@ _0801ED10: .4byte gBattlescriptCurrInstr\n\
_0801ED14: .4byte BattleScript_FlinchPrevention\n\
_0801ED18:\n\
adds r0, r2, 0\n\
- bl BankGetTurnOrder\n\
+ bl GetBattlerTurnOrderNum\n\
ldr r1, _0801ED54 @ =gCurrentTurnActionNumber\n\
lsls r0, 24\n\
lsrs r0, 24\n\
@@ -4955,27 +4957,31 @@ _0801F610: .4byte BattleScript_SAtkDown2\n\
static void atk15_seteffectwithchance(void)
{
- u32 PercentChance;
+ u32 percentChance;
if (gBattleMons[gBattlerAttacker].ability == ABILITY_SERENE_GRACE)
- PercentChance = gBattleMoves[gCurrentMove].secondaryEffectChance * 2;
+ percentChance = gBattleMoves[gCurrentMove].secondaryEffectChance * 2;
else
- PercentChance = gBattleMoves[gCurrentMove].secondaryEffectChance;
+ percentChance = gBattleMoves[gCurrentMove].secondaryEffectChance;
if (DEBUG && (gUnknown_02023A14_50 & 4)
- && !(gBattleCommunication[MOVE_EFFECT_BYTE] & 0x80) && !(gMoveResultFlags & MOVE_RESULT_NO_EFFECT))
+ && !(gBattleCommunication[MOVE_EFFECT_BYTE] & MOVE_EFFECT_CERTAIN)
+ && !(gMoveResultFlags & MOVE_RESULT_NO_EFFECT))
{
SetMoveEffect(0, 0);
}
- else if ((gBattleCommunication[MOVE_EFFECT_BYTE] & 0x80) && !(gMoveResultFlags & MOVE_RESULT_NO_EFFECT))
+ else if ((gBattleCommunication[MOVE_EFFECT_BYTE] & MOVE_EFFECT_CERTAIN)
+ && !(gMoveResultFlags & MOVE_RESULT_NO_EFFECT))
{
- gBattleCommunication[MOVE_EFFECT_BYTE] &= 0x7F;
- SetMoveEffect(0, 0x80);
+ gBattleCommunication[MOVE_EFFECT_BYTE] &= ~(MOVE_EFFECT_CERTAIN);
+ SetMoveEffect(0, MOVE_EFFECT_CERTAIN);
}
- else if (Random() % 100 <= PercentChance && gBattleCommunication[MOVE_EFFECT_BYTE] != 0 && !(gMoveResultFlags & MOVE_RESULT_NO_EFFECT))
+ else if (Random() % 100 <= percentChance // Random() % 100 < percentChance in Emerald
+ && gBattleCommunication[MOVE_EFFECT_BYTE]
+ && !(gMoveResultFlags & MOVE_RESULT_NO_EFFECT))
{
- if (PercentChance >= 100)
- SetMoveEffect(0, 0x80);
+ if (percentChance >= 100)
+ SetMoveEffect(0, MOVE_EFFECT_CERTAIN);
else
SetMoveEffect(0, 0);
}
@@ -5000,8 +5006,9 @@ static void atk17_seteffectsecondary(void)
static void atk18_clearstatusfromeffect(void)
{
- gActiveBattler = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
- if (gBattleCommunication[MOVE_EFFECT_BYTE] <= 6)
+ gActiveBattler = GetBattlerForBattleScript(gBattlescriptCurrInstr[1]);
+
+ if (gBattleCommunication[MOVE_EFFECT_BYTE] <= MOVE_EFFECT_TOXIC)
gBattleMons[gActiveBattler].status1 &= (~sStatusFlagsForMoveEffects[gBattleCommunication[MOVE_EFFECT_BYTE]]);
else
gBattleMons[gActiveBattler].status2 &= (~sStatusFlagsForMoveEffects[gBattleCommunication[MOVE_EFFECT_BYTE]]);
@@ -5013,18 +5020,18 @@ static void atk18_clearstatusfromeffect(void)
static void atk19_tryfaintmon(void)
{
- u8 *r4;
+ const u8 *BS_ptr;
if (gBattlescriptCurrInstr[2] != 0)
{
- gActiveBattler = GetBattleBank(gBattlescriptCurrInstr[1]);
+ gActiveBattler = GetBattlerForBattleScript(gBattlescriptCurrInstr[1]);
if (gHitMarker & HITMARKER_FAINTED(gActiveBattler))
{
- r4 = T1_READ_PTR(gBattlescriptCurrInstr + 3);
+ BS_ptr = T1_READ_PTR(gBattlescriptCurrInstr + 3);
BattleScriptPop();
- gBattlescriptCurrInstr = r4;
- gSideAffecting[GetBattlerSide(gActiveBattler)] &= ~SIDE_STATUS_SPIKES_DAMAGED;
+ gBattlescriptCurrInstr = BS_ptr;
+ gSideStatuses[GetBattlerSide(gActiveBattler)] &= ~(SIDE_STATUS_SPIKES_DAMAGED);
}
else
{
@@ -5033,41 +5040,41 @@ static void atk19_tryfaintmon(void)
}
else
{
- u8 bank;
+ u8 battlerId;
if (gBattlescriptCurrInstr[1] == 1)
{
gActiveBattler = gBattlerAttacker;
- bank = gBattlerTarget;
- r4 = BattleScript_FaintAttacker;
+ battlerId = gBattlerTarget;
+ BS_ptr = BattleScript_FaintAttacker;
}
else
{
gActiveBattler = gBattlerTarget;
- bank = gBattlerAttacker;
- r4 = BattleScript_FaintTarget;
+ battlerId = gBattlerAttacker;
+ BS_ptr = BattleScript_FaintTarget;
}
if (!(gAbsentBattlerFlags & gBitTable[gActiveBattler])
&& gBattleMons[gActiveBattler].hp == 0)
{
- ewram160ACarr2(0, bank) = 0;
- ewram160ACarr2(1, bank) = 0;
- ewram16100arr2(0, bank) = 0;
- ewram16100arr2(1, bank) = 0;
- ewram16100arr2(2, bank) = 0;
- ewram16100arr2(3, bank) = 0;
+ ewram160ACarr2(0, battlerId) = 0;
+ ewram160ACarr2(1, battlerId) = 0;
+ ewram16100arr2(0, battlerId) = 0;
+ ewram16100arr2(1, battlerId) = 0;
+ ewram16100arr2(2, battlerId) = 0;
+ ewram16100arr2(3, battlerId) = 0;
gHitMarker |= HITMARKER_FAINTED(gActiveBattler);
BattleScriptPush(gBattlescriptCurrInstr + 7);
- gBattlescriptCurrInstr = r4;
- if (GetBattlerSide(gActiveBattler) == 0)
+ gBattlescriptCurrInstr = BS_ptr;
+ if (GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER)
{
gHitMarker |= HITMARKER_x400000;
if (gBattleResults.playerFaintCounter < 0xFF)
gBattleResults.playerFaintCounter++;
- if (gBattleMons[bank].level > gBattleMons[gActiveBattler].level)
+ if (gBattleMons[battlerId].level > gBattleMons[gActiveBattler].level)
{
- if (gBattleMons[bank].level - gBattleMons[gActiveBattler].level > 29)
+ if (gBattleMons[battlerId].level - gBattleMons[gActiveBattler].level > 29)
AdjustFriendship(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], FRIENDSHIP_EVENT_FAINT_LARGE);
else
AdjustFriendship(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], FRIENDSHIP_EVENT_FAINT_SMALL);
@@ -5082,7 +5089,7 @@ static void atk19_tryfaintmon(void)
if ((gHitMarker & HITMARKER_DESTINYBOND) && gBattleMons[gBattlerAttacker].hp != 0)
{
BattleScriptPush(gBattlescriptCurrInstr);
- gBattleMoveDamage = gBattleMons[bank].hp;
+ gBattleMoveDamage = gBattleMons[battlerId].hp;
gBattlescriptCurrInstr = BattleScript_DestinyBondTakesLife;
}
if ((gStatuses3[gBattlerTarget] & STATUS3_GRUDGE)
@@ -5095,7 +5102,7 @@ static void atk19_tryfaintmon(void)
gBattleMons[gBattlerAttacker].pp[moveIndex] = 0;
BattleScriptPush(gBattlescriptCurrInstr);
- gBattlescriptCurrInstr = BattleScript_SelectingImprisionedMoveInPalace;
+ gBattlescriptCurrInstr = BattleScript_GrudgeTakesPp;
gActiveBattler = gBattlerAttacker;
BtlController_EmitSetMonData(0, moveIndex + 9, 0, 1, &gBattleMons[gActiveBattler].pp[moveIndex]);
MarkBattlerForControllerExec(gActiveBattler);
@@ -5118,7 +5125,7 @@ static void atk1A_dofaintanimation(void)
{
if (gBattleControllerExecFlags == 0)
{
- gActiveBattler = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
+ gActiveBattler = GetBattlerForBattleScript(gBattlescriptCurrInstr[1]);
BtlController_EmitFaintAnimation(0);
MarkBattlerForControllerExec(gActiveBattler);
gBattlescriptCurrInstr += 2;
@@ -5130,7 +5137,7 @@ static void atk1B_cleareffectsonfaint(void)
//Clears things like attraction or trapping to other banks
if (gBattleControllerExecFlags == 0)
{
- gActiveBattler = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
+ gActiveBattler = GetBattlerForBattleScript(T2_READ_8(gBattlescriptCurrInstr + 1));
gBattleMons[gActiveBattler].status1 = 0;
BtlController_EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 0x4, &gBattleMons[gActiveBattler].status1);
MarkBattlerForControllerExec(gActiveBattler);
@@ -5141,7 +5148,7 @@ static void atk1B_cleareffectsonfaint(void)
static void atk1C_jumpifstatus(void)
{
- u8 bank = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
+ u8 bank = GetBattlerForBattleScript(T2_READ_8(gBattlescriptCurrInstr + 1));
u32 flags = T2_READ_32(gBattlescriptCurrInstr + 2);
void* jump_loc = T2_READ_PTR(gBattlescriptCurrInstr + 6);
if (gBattleMons[bank].status1 & flags && gBattleMons[bank].hp)
@@ -5152,10 +5159,10 @@ static void atk1C_jumpifstatus(void)
static void atk1D_jumpifstatus2(void)
{
- u8 bank = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
+ u8 battlerId = GetBattlerForBattleScript(T2_READ_8(gBattlescriptCurrInstr + 1));
u32 flags = T2_READ_32(gBattlescriptCurrInstr + 2);
void* jump_loc = T2_READ_PTR(gBattlescriptCurrInstr + 6);
- if (gBattleMons[bank].status2 & flags && gBattleMons[bank].hp)
+ if (gBattleMons[battlerId].status2 & flags && gBattleMons[battlerId].hp)
gBattlescriptCurrInstr = jump_loc;
else
gBattlescriptCurrInstr += 10;
@@ -5163,44 +5170,44 @@ static void atk1D_jumpifstatus2(void)
static void atk1E_jumpifability(void)
{
- u8 bank;
- u8 ability = T2_READ_8(gBattlescriptCurrInstr + 2);
- void* jump_loc = T2_READ_PTR(gBattlescriptCurrInstr + 3);
+ u8 battlerId;
+ u8 ability = gBattlescriptCurrInstr[2];
+ void* jumpPtr = T2_READ_PTR(gBattlescriptCurrInstr + 3);
if (T2_READ_8(gBattlescriptCurrInstr + 1) == 8)
{
- bank = AbilityBattleEffects(ABILITYEFFECT_CHECK_BANK_SIDE, gBattlerAttacker, ability, 0, 0);
- if (bank)
+ battlerId = AbilityBattleEffects(ABILITYEFFECT_CHECK_BANK_SIDE, gBattlerAttacker, ability, 0, 0);
+ if (battlerId)
{
gLastUsedAbility = ability;
- gBattlescriptCurrInstr = jump_loc;
- RecordAbilityBattle(bank -1, gLastUsedAbility);
- ewram160F8 = bank - 1;
+ gBattlescriptCurrInstr = jumpPtr;
+ RecordAbilityBattle(battlerId -1, gLastUsedAbility);
+ ewram160F8 = battlerId - 1;
}
else
gBattlescriptCurrInstr += 7;
}
else if (T2_READ_8(gBattlescriptCurrInstr + 1) == 9)
{
- bank = AbilityBattleEffects(ABILITYEFFECT_CHECK_OTHER_SIDE, gBattlerAttacker, ability, 0, 0);
- if (bank)
+ battlerId = AbilityBattleEffects(ABILITYEFFECT_CHECK_OTHER_SIDE, gBattlerAttacker, ability, 0, 0);
+ if (battlerId)
{
gLastUsedAbility = ability;
- gBattlescriptCurrInstr = jump_loc;
- RecordAbilityBattle(bank - 1, gLastUsedAbility);
- ewram160F8 = bank - 1;
+ gBattlescriptCurrInstr = jumpPtr;
+ RecordAbilityBattle(battlerId - 1, gLastUsedAbility);
+ ewram160F8 = battlerId - 1;
}
else
gBattlescriptCurrInstr += 7;
}
else
{
- bank = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
- if (gBattleMons[bank].ability == ability)
+ battlerId = GetBattlerForBattleScript(T2_READ_8(gBattlescriptCurrInstr + 1));
+ if (gBattleMons[battlerId].ability == ability)
{
gLastUsedAbility = ability;
- gBattlescriptCurrInstr = jump_loc;
- RecordAbilityBattle(bank, gLastUsedAbility);
- ewram160F8 = bank;
+ gBattlescriptCurrInstr = jumpPtr;
+ RecordAbilityBattle(battlerId, gLastUsedAbility);
+ ewram160F8 = battlerId;
}
else
gBattlescriptCurrInstr += 7;
@@ -5220,7 +5227,7 @@ static void atk1F_jumpifsideaffecting(void)
flags = T2_READ_16(gBattlescriptCurrInstr + 2);
jump_loc = T2_READ_PTR(gBattlescriptCurrInstr + 4);
- if (gSideAffecting[side] & flags)
+ if (gSideStatuses[side] & flags)
gBattlescriptCurrInstr = jump_loc;
else
gBattlescriptCurrInstr += 8;
@@ -5229,8 +5236,8 @@ static void atk1F_jumpifsideaffecting(void)
static void atk20_jumpifstat(void)
{
u8 ret = 0;
- u8 bank = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
- u8 value = gBattleMons[bank].statStages[T2_READ_8(gBattlescriptCurrInstr + 3)];
+ u8 battlerId = GetBattlerForBattleScript(T2_READ_8(gBattlescriptCurrInstr + 1));
+ u8 value = gBattleMons[battlerId].statStages[T2_READ_8(gBattlescriptCurrInstr + 3)];
switch (T2_READ_8(gBattlescriptCurrInstr + 2))
{
case CMP_EQUAL:
@@ -5269,7 +5276,7 @@ static void atk21_jumpifstatus3condition(void)
u32 flags;
void* jump_loc;
- gActiveBattler = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
+ gActiveBattler = GetBattlerForBattleScript(T2_READ_8(gBattlescriptCurrInstr + 1));
flags = T2_READ_32(gBattlescriptCurrInstr + 2);
jump_loc = T2_READ_PTR(gBattlescriptCurrInstr + 7);
if (T2_READ_8(gBattlescriptCurrInstr + 6))
@@ -5288,13 +5295,13 @@ static void atk21_jumpifstatus3condition(void)
}
}
-static void atk22_jumpiftype(void) //u8 bank, u8 type, *ptr
+static void atk22_jumpiftype(void) //u8 battlerId, u8 type, *ptr
{
- u8 bank = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
+ u8 battlerId = GetBattlerForBattleScript(T2_READ_8(gBattlescriptCurrInstr + 1));
u8 type = T2_READ_8(gBattlescriptCurrInstr + 2);
void* jump_loc = T2_READ_PTR(gBattlescriptCurrInstr + 3);
- if (gBattleMons[bank].type1 == type || gBattleMons[bank].type2 == type)
+ if (gBattleMons[battlerId].type1 == type || gBattleMons[battlerId].type2 == type)
gBattlescriptCurrInstr = jump_loc;
else
gBattlescriptCurrInstr += 7;
@@ -5310,7 +5317,7 @@ static void atk23_getexp(void)
s32 viaExpShare = 0;
u16* exp = &gBattleStruct->exp;
- gBank1 = GetBattleBank(gBattlescriptCurrInstr[1]);
+ gBank1 = GetBattlerForBattleScript(gBattlescriptCurrInstr[1]);
sentIn = gSentPokesToOpponent[(gBank1 & 2) >> 1];
switch (gBattleStruct->getexpStateTracker)
@@ -5374,14 +5381,14 @@ static void atk23_getexp(void)
}
gBattleStruct->getexpStateTracker++;
- gBattleStruct->expGetterID = 0;
+ gBattleStruct->expGetterMonId = 0;
gBattleStruct->sentInPokes = sentIn;
}
// fall through
case 2: // set exp value to the poke in expgetter_id and print message
if (gBattleControllerExecFlags == 0)
{
- item = GetMonData(&gPlayerParty[gBattleStruct->expGetterID], MON_DATA_HELD_ITEM);
+ item = GetMonData(&gPlayerParty[gBattleStruct->expGetterMonId], MON_DATA_HELD_ITEM);
if (item == ITEM_ENIGMA_BERRY)
holdEffect = gSaveBlock1.enigmaBerry.holdEffect;
@@ -5394,7 +5401,7 @@ static void atk23_getexp(void)
gBattleStruct->getexpStateTracker = 5;
gBattleMoveDamage = 0; // used for exp
}
- else if (GetMonData(&gPlayerParty[gBattleStruct->expGetterID], MON_DATA_LEVEL) == 100)
+ else if (GetMonData(&gPlayerParty[gBattleStruct->expGetterMonId], MON_DATA_LEVEL) == 100)
{
gBattleStruct->sentInPokes >>= 1;
gBattleStruct->getexpStateTracker = 5;
@@ -5406,11 +5413,11 @@ static void atk23_getexp(void)
if (!(gBattleTypeFlags & BATTLE_TYPE_TRAINER) && gBattleMons[0].hp && !gBattleStruct->wildVictorySong)
{
BattleStopLowHpSound();
- PlayBGM(0x161);
+ PlayBGM(MUS_KACHI2);
gBattleStruct->wildVictorySong++;
}
- if (GetMonData(&gPlayerParty[gBattleStruct->expGetterID], MON_DATA_HP))
+ if (GetMonData(&gPlayerParty[gBattleStruct->expGetterMonId], MON_DATA_HP))
{
if (gBattleStruct->sentInPokes & 1)
gBattleMoveDamage = *exp;
@@ -5424,7 +5431,7 @@ static void atk23_getexp(void)
if (gBattleTypeFlags & BATTLE_TYPE_TRAINER)
gBattleMoveDamage = (gBattleMoveDamage * 150) / 100;
- if (IsTradedMon(&gPlayerParty[gBattleStruct->expGetterID]))
+ if (IsTradedMon(&gPlayerParty[gBattleStruct->expGetterMonId]))
{
gBattleMoveDamage = (gBattleMoveDamage * 150) / 100;
i = 0x14A;
@@ -5437,28 +5444,28 @@ static void atk23_getexp(void)
// get exp getter bank
if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
{
- if (!(gBattlerPartyIndexes[2] != gBattleStruct->expGetterID) && !(gAbsentBattlerFlags & gBitTable[2]))
- gBattleStruct->expGetterBank = 2;
+ if (!(gBattlerPartyIndexes[2] != gBattleStruct->expGetterMonId) && !(gAbsentBattlerFlags & gBitTable[2]))
+ gBattleStruct->expGetterBattlerId = 2;
else
{
if (!(gAbsentBattlerFlags & gBitTable[0]))
- gBattleStruct->expGetterBank = 0;
+ gBattleStruct->expGetterBattlerId = 0;
else
- gBattleStruct->expGetterBank = 2;
+ gBattleStruct->expGetterBattlerId = 2;
}
}
else
- gBattleStruct->expGetterBank = 0;
+ gBattleStruct->expGetterBattlerId = 0;
- PREPARE_MON_NICK_WITH_PREFIX_BUFFER(gBattleTextBuff1, gBattleStruct->expGetterBank, gBattleStruct->expGetterID)
+ PREPARE_MON_NICK_WITH_PREFIX_BUFFER(gBattleTextBuff1, gBattleStruct->expGetterBattlerId, gBattleStruct->expGetterMonId)
// buffer 'gained' or 'gained a boosted'
PREPARE_STRING_BUFFER(gBattleTextBuff2, i)
PREPARE_WORD_NUMBER_BUFFER(gBattleTextBuff3, 5, gBattleMoveDamage)
- PrepareStringBattle(STRINGID_PKMNGAINEDEXP, gBattleStruct->expGetterBank);
- MonGainEVs(&gPlayerParty[gBattleStruct->expGetterID], gBattleMons[gBank1].species);
+ PrepareStringBattle(STRINGID_PKMNGAINEDEXP, gBattleStruct->expGetterBattlerId);
+ MonGainEVs(&gPlayerParty[gBattleStruct->expGetterMonId], gBattleMons[gBank1].species);
}
gBattleStruct->sentInPokes >>= 1;
gBattleStruct->getexpStateTracker++;
@@ -5468,19 +5475,19 @@ static void atk23_getexp(void)
case 3: // Set stats and give exp
if (gBattleControllerExecFlags == 0)
{
- gBattleBufferB[gBattleStruct->expGetterBank][0] = 0;
- if (GetMonData(&gPlayerParty[gBattleStruct->expGetterID], MON_DATA_HP) && GetMonData(&gPlayerParty[gBattleStruct->expGetterID], MON_DATA_LEVEL) != 100)
+ gBattleBufferB[gBattleStruct->expGetterBattlerId][0] = 0;
+ if (GetMonData(&gPlayerParty[gBattleStruct->expGetterMonId], MON_DATA_HP) && GetMonData(&gPlayerParty[gBattleStruct->expGetterMonId], MON_DATA_LEVEL) != 100)
{
- gBattleResources_statsBeforeLvlUp->hp = GetMonData(&gPlayerParty[gBattleStruct->expGetterID], MON_DATA_MAX_HP);
- gBattleResources_statsBeforeLvlUp->atk = GetMonData(&gPlayerParty[gBattleStruct->expGetterID], MON_DATA_ATK);
- gBattleResources_statsBeforeLvlUp->def = GetMonData(&gPlayerParty[gBattleStruct->expGetterID], MON_DATA_DEF);
- gBattleResources_statsBeforeLvlUp->spd = GetMonData(&gPlayerParty[gBattleStruct->expGetterID], MON_DATA_SPEED);
- gBattleResources_statsBeforeLvlUp->spAtk = GetMonData(&gPlayerParty[gBattleStruct->expGetterID], MON_DATA_SPATK);
- gBattleResources_statsBeforeLvlUp->spDef = GetMonData(&gPlayerParty[gBattleStruct->expGetterID], MON_DATA_SPDEF);
+ gBattleResources_statsBeforeLvlUp->hp = GetMonData(&gPlayerParty[gBattleStruct->expGetterMonId], MON_DATA_MAX_HP);
+ gBattleResources_statsBeforeLvlUp->atk = GetMonData(&gPlayerParty[gBattleStruct->expGetterMonId], MON_DATA_ATK);
+ gBattleResources_statsBeforeLvlUp->def = GetMonData(&gPlayerParty[gBattleStruct->expGetterMonId], MON_DATA_DEF);
+ gBattleResources_statsBeforeLvlUp->spd = GetMonData(&gPlayerParty[gBattleStruct->expGetterMonId], MON_DATA_SPEED);
+ gBattleResources_statsBeforeLvlUp->spAtk = GetMonData(&gPlayerParty[gBattleStruct->expGetterMonId], MON_DATA_SPATK);
+ gBattleResources_statsBeforeLvlUp->spDef = GetMonData(&gPlayerParty[gBattleStruct->expGetterMonId], MON_DATA_SPDEF);
- gActiveBattler = gBattleStruct->expGetterBank;
+ gActiveBattler = gBattleStruct->expGetterBattlerId;
- BtlController_EmitExpUpdate(0, gBattleStruct->expGetterID, gBattleMoveDamage);
+ BtlController_EmitExpUpdate(0, gBattleStruct->expGetterMonId, gBattleMoveDamage);
MarkBattlerForControllerExec(gActiveBattler);
}
gBattleStruct->getexpStateTracker++;
@@ -5489,49 +5496,49 @@ static void atk23_getexp(void)
case 4: // lvl up if necessary
if (gBattleControllerExecFlags == 0)
{
- gActiveBattler = gBattleStruct->expGetterBank;
+ gActiveBattler = gBattleStruct->expGetterBattlerId;
if (gBattleBufferB[gActiveBattler][0] == CONTROLLER_TWORETURNVALUES
&& gBattleBufferB[gActiveBattler][1] == RET_VALUE_LEVELLED_UP)
{
- if (gBattleTypeFlags & BATTLE_TYPE_TRAINER && gBattlerPartyIndexes[gActiveBattler] == gBattleStruct->expGetterID)
+ if (gBattleTypeFlags & BATTLE_TYPE_TRAINER && gBattlerPartyIndexes[gActiveBattler] == gBattleStruct->expGetterMonId)
HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler);
- PREPARE_MON_NICK_WITH_PREFIX_BUFFER(gBattleTextBuff1, gActiveBattler, gBattleStruct->expGetterID)
+ PREPARE_MON_NICK_WITH_PREFIX_BUFFER(gBattleTextBuff1, gActiveBattler, gBattleStruct->expGetterMonId)
- PREPARE_BYTE_NUMBER_BUFFER(gBattleTextBuff2, 3, GetMonData(&gPlayerParty[gBattleStruct->expGetterID], MON_DATA_LEVEL))
+ PREPARE_BYTE_NUMBER_BUFFER(gBattleTextBuff2, 3, GetMonData(&gPlayerParty[gBattleStruct->expGetterMonId], MON_DATA_LEVEL))
BattleScriptPushCursor();
- gLeveledUpInBattle |= gBitTable[gBattleStruct->expGetterID];
+ gLeveledUpInBattle |= gBitTable[gBattleStruct->expGetterMonId];
gBattlescriptCurrInstr = BattleScript_LevelUp;
gBattleMoveDamage = (gBattleBufferB[gActiveBattler][2] | (gBattleBufferB[gActiveBattler][3] << 8));
- AdjustFriendship(&gPlayerParty[gBattleStruct->expGetterID], FRIENDSHIP_EVENT_GROW_LEVEL);
+ AdjustFriendship(&gPlayerParty[gBattleStruct->expGetterMonId], FRIENDSHIP_EVENT_GROW_LEVEL);
// update battle mon structure after level up
- if (gBattlerPartyIndexes[0] == gBattleStruct->expGetterID && gBattleMons[0].hp)
+ if (gBattlerPartyIndexes[0] == gBattleStruct->expGetterMonId && gBattleMons[0].hp)
{
- gBattleMons[0].level = GetMonData(&gPlayerParty[gBattleStruct->expGetterID], MON_DATA_LEVEL);
- gBattleMons[0].hp = GetMonData(&gPlayerParty[gBattleStruct->expGetterID], MON_DATA_HP);
- gBattleMons[0].maxHP = GetMonData(&gPlayerParty[gBattleStruct->expGetterID], MON_DATA_MAX_HP);
- gBattleMons[0].attack = GetMonData(&gPlayerParty[gBattleStruct->expGetterID], MON_DATA_ATK);
- gBattleMons[0].defense = GetMonData(&gPlayerParty[gBattleStruct->expGetterID], MON_DATA_DEF);
+ gBattleMons[0].level = GetMonData(&gPlayerParty[gBattleStruct->expGetterMonId], MON_DATA_LEVEL);
+ gBattleMons[0].hp = GetMonData(&gPlayerParty[gBattleStruct->expGetterMonId], MON_DATA_HP);
+ gBattleMons[0].maxHP = GetMonData(&gPlayerParty[gBattleStruct->expGetterMonId], MON_DATA_MAX_HP);
+ gBattleMons[0].attack = GetMonData(&gPlayerParty[gBattleStruct->expGetterMonId], MON_DATA_ATK);
+ gBattleMons[0].defense = GetMonData(&gPlayerParty[gBattleStruct->expGetterMonId], MON_DATA_DEF);
// Why is this duplicated?
- gBattleMons[0].speed = GetMonData(&gPlayerParty[gBattleStruct->expGetterID], MON_DATA_SPEED);
- gBattleMons[0].speed = GetMonData(&gPlayerParty[gBattleStruct->expGetterID], MON_DATA_SPEED);
- gBattleMons[0].spAttack = GetMonData(&gPlayerParty[gBattleStruct->expGetterID], MON_DATA_SPATK);
- gBattleMons[0].spDefense = GetMonData(&gPlayerParty[gBattleStruct->expGetterID], MON_DATA_SPDEF);
+ gBattleMons[0].speed = GetMonData(&gPlayerParty[gBattleStruct->expGetterMonId], MON_DATA_SPEED);
+ gBattleMons[0].speed = GetMonData(&gPlayerParty[gBattleStruct->expGetterMonId], MON_DATA_SPEED);
+ gBattleMons[0].spAttack = GetMonData(&gPlayerParty[gBattleStruct->expGetterMonId], MON_DATA_SPATK);
+ gBattleMons[0].spDefense = GetMonData(&gPlayerParty[gBattleStruct->expGetterMonId], MON_DATA_SPDEF);
}
// What is else if?
- if (gBattlerPartyIndexes[2] == gBattleStruct->expGetterID && gBattleMons[2].hp && (gBattleTypeFlags & BATTLE_TYPE_DOUBLE))
+ if (gBattlerPartyIndexes[2] == gBattleStruct->expGetterMonId && gBattleMons[2].hp && (gBattleTypeFlags & BATTLE_TYPE_DOUBLE))
{
- gBattleMons[2].level = GetMonData(&gPlayerParty[gBattleStruct->expGetterID], MON_DATA_LEVEL);
- gBattleMons[2].hp = GetMonData(&gPlayerParty[gBattleStruct->expGetterID], MON_DATA_HP);
- gBattleMons[2].maxHP = GetMonData(&gPlayerParty[gBattleStruct->expGetterID], MON_DATA_MAX_HP);
- gBattleMons[2].attack = GetMonData(&gPlayerParty[gBattleStruct->expGetterID], MON_DATA_ATK);
- gBattleMons[2].defense = GetMonData(&gPlayerParty[gBattleStruct->expGetterID], MON_DATA_DEF);
+ gBattleMons[2].level = GetMonData(&gPlayerParty[gBattleStruct->expGetterMonId], MON_DATA_LEVEL);
+ gBattleMons[2].hp = GetMonData(&gPlayerParty[gBattleStruct->expGetterMonId], MON_DATA_HP);
+ gBattleMons[2].maxHP = GetMonData(&gPlayerParty[gBattleStruct->expGetterMonId], MON_DATA_MAX_HP);
+ gBattleMons[2].attack = GetMonData(&gPlayerParty[gBattleStruct->expGetterMonId], MON_DATA_ATK);
+ gBattleMons[2].defense = GetMonData(&gPlayerParty[gBattleStruct->expGetterMonId], MON_DATA_DEF);
// Duplicated again, but this time there's no Sp Defense
- gBattleMons[2].speed = GetMonData(&gPlayerParty[gBattleStruct->expGetterID], MON_DATA_SPEED);
- gBattleMons[2].speed = GetMonData(&gPlayerParty[gBattleStruct->expGetterID], MON_DATA_SPEED);
- gBattleMons[2].spAttack = GetMonData(&gPlayerParty[gBattleStruct->expGetterID], MON_DATA_SPATK);
+ gBattleMons[2].speed = GetMonData(&gPlayerParty[gBattleStruct->expGetterMonId], MON_DATA_SPEED);
+ gBattleMons[2].speed = GetMonData(&gPlayerParty[gBattleStruct->expGetterMonId], MON_DATA_SPEED);
+ gBattleMons[2].spAttack = GetMonData(&gPlayerParty[gBattleStruct->expGetterMonId], MON_DATA_SPATK);
}
}
else
@@ -5546,8 +5553,8 @@ static void atk23_getexp(void)
gBattleStruct->getexpStateTracker = 3;
else
{
- gBattleStruct->expGetterID++;
- if (gBattleStruct->expGetterID <= 5)
+ gBattleStruct->expGetterMonId++;
+ if (gBattleStruct->expGetterMonId <= 5)
gBattleStruct->getexpStateTracker = 2; // loop again
else
gBattleStruct->getexpStateTracker = 6; // we're done
@@ -6209,7 +6216,7 @@ static void atk41_call(void)
static void atk42_jumpiftype2(void) //u8 bank, u8 type, *ptr
{
- u8 bank = GetBattleBank(T1_READ_8(gBattlescriptCurrInstr + 1));
+ u8 bank = GetBattlerForBattleScript(T1_READ_8(gBattlescriptCurrInstr + 1));
if (T1_READ_8(gBattlescriptCurrInstr + 2) == gBattleMons[bank].type1 || T1_READ_8(gBattlescriptCurrInstr + 2) == gBattleMons[bank].type2)
gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 3);
@@ -6234,7 +6241,7 @@ static void atk45_playanimation(void)
{
const u16* argumentPtr;
- gActiveBattler = GetBattleBank(gBattlescriptCurrInstr[1]);
+ gActiveBattler = GetBattlerForBattleScript(gBattlescriptCurrInstr[1]);
argumentPtr = BS2ScriptReadPtr(gBattlescriptCurrInstr + 3);
if (gBattlescriptCurrInstr[2] == B_ANIM_STATS_CHANGE
@@ -6276,7 +6283,7 @@ static void atk46_playanimation2(void) // animation Id is stored in the first po
const u16* argumentPtr;
const u8* animationIdPtr;
- gActiveBattler = GetBattleBank(gBattlescriptCurrInstr[1]);
+ gActiveBattler = GetBattlerForBattleScript(gBattlescriptCurrInstr[1]);
animationIdPtr = BS2ScriptReadPtr(gBattlescriptCurrInstr + 2);
argumentPtr = BS2ScriptReadPtr(gBattlescriptCurrInstr + 6);
@@ -6345,7 +6352,7 @@ static void atk48_playstatchangeanimation(void)
u32 stats_to_check;
u8 arg3;
- gActiveBattler = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
+ gActiveBattler = GetBattlerForBattleScript(T2_READ_8(gBattlescriptCurrInstr + 1));
stats_to_check = T2_READ_8(gBattlescriptCurrInstr + 2);
arg3 = T2_READ_8(gBattlescriptCurrInstr + 3);
if (arg3 & 1)
@@ -6437,7 +6444,7 @@ push {r4-r7,lr}\n\
ldr r0, [r5]\n\
ldrb r0, [r0, 0x1]\n\
str r3, [sp]\n\
- bl GetBattleBank\n\
+ bl GetBattlerForBattleScript\n\
ldr r2, _08021674 @ =gActiveBattler\n\
strb r0, [r2]\n\
ldr r0, [r5]\n\
@@ -6991,14 +6998,14 @@ static void atk4A_typecalc2(void)
{
u8 flags = 0;
int i = 0;
- u8 move_type = gBattleMoves[gCurrentMove].type;
+ u8 moveType = gBattleMoves[gCurrentMove].type;
- if (gBattleMons[gBattlerTarget].ability == ABILITY_LEVITATE && move_type == TYPE_GROUND)
+ if (gBattleMons[gBattlerTarget].ability == ABILITY_LEVITATE && moveType == TYPE_GROUND)
{
gLastUsedAbility = gBattleMons[gBattlerTarget].ability;
gMoveResultFlags |= (MOVE_RESULT_MISSED | MOVE_RESULT_DOESNT_AFFECT_FOE);
gLastLandedMoves[gBattlerTarget] = 0;
- gBattleCommunication[6] = move_type;
+ gBattleCommunication[6] = moveType;
RecordAbilityBattle(gBattlerTarget, gLastUsedAbility);
}
else
@@ -7011,7 +7018,7 @@ static void atk4A_typecalc2(void)
else {i += 3; continue;}
}
- if (gTypeEffectiveness[i] == move_type)
+ if (gTypeEffectiveness[i] == moveType)
{
//check type1
if (gTypeEffectiveness[i + 1] == gBattleMons[gBattlerTarget].type1)
@@ -7078,7 +7085,7 @@ static void atk4C_getswitchedmondata(void)
if (gBattleControllerExecFlags)
return;
- gActiveBattler = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
+ gActiveBattler = GetBattlerForBattleScript(T2_READ_8(gBattlescriptCurrInstr + 1));
gBattlerPartyIndexes[gActiveBattler] = ewram16068arr(gActiveBattler);
@@ -7096,7 +7103,7 @@ static void atk4D_switchindataupdate(void)
if (gBattleControllerExecFlags)
return;
- gActiveBattler = GetBattleBank(gBattlescriptCurrInstr[1]);
+ gActiveBattler = GetBattlerForBattleScript(gBattlescriptCurrInstr[1]);
oldData = gBattleMons[gActiveBattler];
monData = (u8*)(&gBattleMons[gActiveBattler]);
@@ -7139,7 +7146,7 @@ static void atk4E_switchinanim(void)
if (gBattleControllerExecFlags)
return;
- gActiveBattler = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
+ gActiveBattler = GetBattlerForBattleScript(T2_READ_8(gBattlescriptCurrInstr + 1));
if (GetBattlerSide(gActiveBattler) == 1 && !(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_BATTLE_TOWER)))
{
GetSetPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gActiveBattler].species), 2);
@@ -7156,7 +7163,7 @@ static void atk4F_jumpifcantswitch(void)
register struct Pokemon *party;
u8 r7;
//0x80 byte is used as a way of telling the function whether to not check status2/status3
- gActiveBattler = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1) & 0x7F);
+ gActiveBattler = GetBattlerForBattleScript(T2_READ_8(gBattlescriptCurrInstr + 1) & 0x7F);
if (!(T2_READ_8(gBattlescriptCurrInstr + 1) & 0x80)
&& ((gBattleMons[gActiveBattler].status2 & (STATUS2_WRAPPED | STATUS2_ESCAPE_PREVENTION))
|| (gStatuses3[gActiveBattler] & STATUS3_ROOTED)))
@@ -8108,7 +8115,7 @@ _08023170:\n\
_0802317C:\n\
movs r0, 0x7F\n\
ands r0, r2\n\
- bl GetBattleBank\n\
+ bl GetBattlerForBattleScript\n\
lsls r0, 24\n\
lsrs r7, r0, 24\n\
ldr r1, _080231A4 @ =gSpecialStatuses\n\
@@ -8304,7 +8311,7 @@ static void atk51_switchhandleorder(void)
if (gBattleControllerExecFlags)
return;
- gActiveBattler = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
+ gActiveBattler = GetBattlerForBattleScript(T2_READ_8(gBattlescriptCurrInstr + 1));
switch (T2_READ_8(gBattlescriptCurrInstr + 2))
{
case 0:
@@ -8353,17 +8360,17 @@ static void atk52_switchineffects(void)
{
int i;
- gActiveBattler = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
+ gActiveBattler = GetBattlerForBattleScript(T2_READ_8(gBattlescriptCurrInstr + 1));
sub_80157C4(gActiveBattler);
gHitMarker &= ~(HITMARKER_FAINTED(gActiveBattler));
gSpecialStatuses[gActiveBattler].flag40 = 0;
- if (!(gSideAffecting[GetBattlerSide(gActiveBattler)] & SIDE_STATUS_SPIKES_DAMAGED) && (gSideAffecting[GetBattlerSide(gActiveBattler)] & SIDE_STATUS_SPIKES)
+ if (!(gSideStatuses[GetBattlerSide(gActiveBattler)] & SIDE_STATUS_SPIKES_DAMAGED) && (gSideStatuses[GetBattlerSide(gActiveBattler)] & SIDE_STATUS_SPIKES)
&& gBattleMons[gActiveBattler].type1 != TYPE_FLYING && gBattleMons[gActiveBattler].type2 != TYPE_FLYING && gBattleMons[gActiveBattler].ability != ABILITY_LEVITATE)
{
u8 spikesDmg;
- gSideAffecting[GetBattlerSide(gActiveBattler)] |= SIDE_STATUS_SPIKES_DAMAGED;
+ gSideStatuses[GetBattlerSide(gActiveBattler)] |= SIDE_STATUS_SPIKES_DAMAGED;
spikesDmg = (5 - gSideTimers[GetBattlerSide(gActiveBattler)].spikesAmount) * 2;
gBattleMoveDamage = gBattleMons[gActiveBattler].maxHP / (spikesDmg);
@@ -8389,11 +8396,11 @@ static void atk52_switchineffects(void)
if (AbilityBattleEffects(0, gActiveBattler, 0, 0, 0) == 0 && ItemBattleEffects(0, gActiveBattler, 0) == 0)
{
- gSideAffecting[GetBattlerSide(gActiveBattler)] &= ~(SIDE_STATUS_SPIKES_DAMAGED);
+ gSideStatuses[GetBattlerSide(gActiveBattler)] &= ~(SIDE_STATUS_SPIKES_DAMAGED);
for (i = 0; i < gBattlersCount; i++)
{
- if (gBanksByTurnOrder[i] == gActiveBattler)
+ if (gBattlerByTurnOrder[i] == gActiveBattler)
gActionsByTurnOrder[i] = 0xC;
}
@@ -8450,7 +8457,7 @@ static void atk55_fanfare(void)
static void atk56_playfaintcry(void)
{
- gActiveBattler = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
+ gActiveBattler = GetBattlerForBattleScript(T2_READ_8(gBattlescriptCurrInstr + 1));
BtlController_EmitFaintingCry(0);
MarkBattlerForControllerExec(gActiveBattler);
gBattlescriptCurrInstr += 2;
@@ -8466,7 +8473,7 @@ static void atk57(void)
static void atk58_returntoball(void)
{
- gActiveBattler = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
+ gActiveBattler = GetBattlerForBattleScript(T2_READ_8(gBattlescriptCurrInstr + 1));
BtlController_EmitReturnMonToBall(0, 1);
MarkBattlerForControllerExec(gActiveBattler);
gBattlescriptCurrInstr += 2;
@@ -8477,9 +8484,9 @@ void atk59_handlelearnnewmove(void)
u8* loc1 = T1_READ_PTR(gBattlescriptCurrInstr + 1);
u8* loc2 = T1_READ_PTR(gBattlescriptCurrInstr + 5);
- u16 ret = MonTryLearningNewMove(&gPlayerParty[gBattleStruct->expGetterID], T2_READ_8(gBattlescriptCurrInstr + 9));
+ u16 ret = MonTryLearningNewMove(&gPlayerParty[gBattleStruct->expGetterMonId], T2_READ_8(gBattlescriptCurrInstr + 9));
while (ret == 0xFFFE)
- ret = MonTryLearningNewMove(&gPlayerParty[gBattleStruct->expGetterID], 0);
+ ret = MonTryLearningNewMove(&gPlayerParty[gBattleStruct->expGetterMonId], 0);
if (ret == 0)
{
@@ -8492,12 +8499,12 @@ void atk59_handlelearnnewmove(void)
else
{
gActiveBattler = GetBattlerAtPosition(0);
- if (gBattlerPartyIndexes[gActiveBattler] == gBattleStruct->expGetterID && !(gBattleMons[gActiveBattler].status2 & STATUS2_TRANSFORMED))
+ if (gBattlerPartyIndexes[gActiveBattler] == gBattleStruct->expGetterMonId && !(gBattleMons[gActiveBattler].status2 & STATUS2_TRANSFORMED))
GiveMoveToBattleMon(&gBattleMons[gActiveBattler], ret);
if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) //what is else if
{
gActiveBattler = GetBattlerAtPosition(2);
- if (gBattlerPartyIndexes[gActiveBattler] == gBattleStruct->expGetterID && !(gBattleMons[gActiveBattler].status2 & STATUS2_TRANSFORMED))
+ if (gBattlerPartyIndexes[gActiveBattler] == gBattleStruct->expGetterMonId && !(gBattleMons[gActiveBattler].status2 & STATUS2_TRANSFORMED))
GiveMoveToBattleMon(&gBattleMons[gActiveBattler], ret);
}
gBattlescriptCurrInstr = loc1;
@@ -8566,7 +8573,7 @@ static void atk5A_yesnoboxlearnmove(void)
case 2:
if (!gPaletteFade.active)
{
- ShowSelectMovePokemonSummaryScreen(gPlayerParty, gBattleStruct->expGetterID, gPlayerPartyCount - 1, ReshowBattleScreenAfterMenu, gMoveToLearn);
+ ShowSelectMovePokemonSummaryScreen(gPlayerParty, gBattleStruct->expGetterMonId, gPlayerPartyCount - 1, ReshowBattleScreenAfterMenu, gMoveToLearn);
gBattleStruct->atk5A_StateTracker++;
}
break;
@@ -8580,7 +8587,7 @@ static void atk5A_yesnoboxlearnmove(void)
}
else
{
- u16 move = GetMonData(&gPlayerParty[gBattleStruct->expGetterID], MON_DATA_MOVE1 + move_pos);
+ u16 move = GetMonData(&gPlayerParty[gBattleStruct->expGetterMonId], MON_DATA_MOVE1 + move_pos);
if (IsHMMove2(move))
{
PrepareStringBattle(0x13F, gActiveBattler);
@@ -8600,16 +8607,16 @@ static void atk5A_yesnoboxlearnmove(void)
ptr += 4;
}
ptr[0] = 0xFF;
- RemoveMonPPBonus(&gPlayerParty[gBattleStruct->expGetterID], move_pos);
- SetMonMoveSlot(&gPlayerParty[gBattleStruct->expGetterID], gMoveToLearn, move_pos);
- if (gBattlerPartyIndexes[0] == gBattleStruct->expGetterID && !(gBattleMons[0].status2 & STATUS2_TRANSFORMED)
- && !(gDisableStructs[0].unk18_b & gBitTable[move_pos]))
+ RemoveMonPPBonus(&gPlayerParty[gBattleStruct->expGetterMonId], move_pos);
+ SetMonMoveSlot(&gPlayerParty[gBattleStruct->expGetterMonId], gMoveToLearn, move_pos);
+ if (gBattlerPartyIndexes[0] == gBattleStruct->expGetterMonId && !(gBattleMons[0].status2 & STATUS2_TRANSFORMED)
+ && !(gDisableStructs[0].mimickedMoves & gBitTable[move_pos]))
{
RemoveBattleMonPPBonus(&gBattleMons[0], move_pos);
SetBattleMonMoveSlot(&gBattleMons[0], gMoveToLearn, move_pos);
}
- if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && gBattlerPartyIndexes[2] == gBattleStruct->expGetterID && !(gBattleMons[2].status2 & STATUS2_TRANSFORMED)
- && !(gDisableStructs[2].unk18_b & gBitTable[move_pos]))
+ if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && gBattlerPartyIndexes[2] == gBattleStruct->expGetterMonId && !(gBattleMons[2].status2 & STATUS2_TRANSFORMED)
+ && !(gDisableStructs[2].mimickedMoves & gBitTable[move_pos]))
{
RemoveBattleMonPPBonus(&gBattleMons[2], move_pos);
SetBattleMonMoveSlot(&gBattleMons[2], gMoveToLearn, move_pos);
@@ -8676,7 +8683,7 @@ static void atk5B_yesnoboxstoplearningmove(void)
static void atk5C_hitanimation(void)
{
- gActiveBattler = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
+ gActiveBattler = GetBattlerForBattleScript(T2_READ_8(gBattlescriptCurrInstr + 1));
if (gMoveResultFlags & MOVE_RESULT_NO_EFFECT)
gBattlescriptCurrInstr += 2;
else if (!(gHitMarker & HITMARKER_IGNORE_SUBSTITUTE) || !(gBattleMons[gActiveBattler].status2 & STATUS2_SUBSTITUTE) || gDisableStructs[gActiveBattler].substituteHP == 0)
@@ -9017,9 +9024,9 @@ static void atk5D_getmoneyreward(void)
}
*/
-static void atk5E_8025A70(void)
+static void atk5E(void)
{
- gActiveBattler = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
+ gActiveBattler = GetBattlerForBattleScript(T2_READ_8(gBattlescriptCurrInstr + 1));
switch (gBattleCommunication[0])
{
case 0:
@@ -9043,7 +9050,7 @@ static void atk5E_8025A70(void)
}
}
-static void atk5F_8025B24(void)
+static void atk5F_swapattackerwithtarget(void)
{
gActiveBattler = gBattlerAttacker;
gBattlerAttacker = gBattlerTarget;
@@ -9073,7 +9080,7 @@ static void atk61_drawpartystatussummary(void)
if (gBattleControllerExecFlags)
return;
- gActiveBattler = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
+ gActiveBattler = GetBattlerForBattleScript(T2_READ_8(gBattlescriptCurrInstr + 1));
if (GetBattlerSide(gActiveBattler) == 0)
party = gPlayerParty;
else
@@ -9097,9 +9104,9 @@ static void atk61_drawpartystatussummary(void)
gBattlescriptCurrInstr += 2;
}
-static void atk62_08025C6C(void)
+static void atk62_hidepartystatussummary(void)
{
- gActiveBattler = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
+ gActiveBattler = GetBattlerForBattleScript(T2_READ_8(gBattlescriptCurrInstr + 1));
BtlController_EmitHidePartyStatusSummary(0);
MarkBattlerForControllerExec(gActiveBattler);
gBattlescriptCurrInstr += 2;
@@ -9118,7 +9125,7 @@ static void atk64_statusanimation(void)
{
if (gBattleControllerExecFlags == 0)
{
- gActiveBattler = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
+ gActiveBattler = GetBattlerForBattleScript(T2_READ_8(gBattlescriptCurrInstr + 1));
if (!(gStatuses3[gActiveBattler] & STATUS3_SEMI_INVULNERABLE) && gDisableStructs[gActiveBattler].substituteHP == 0 && !(gHitMarker & HITMARKER_NO_ANIMATIONS))
{
BtlController_EmitStatusAnimation(0, 0, gBattleMons[gActiveBattler].status1);
@@ -9133,7 +9140,7 @@ static void atk65_status2animation(void)
if (gBattleControllerExecFlags == 0)
{
u32 possible_to_anim;
- gActiveBattler = GetBattleBank(T1_READ_8(gBattlescriptCurrInstr + 1));
+ gActiveBattler = GetBattlerForBattleScript(T1_READ_8(gBattlescriptCurrInstr + 1));
possible_to_anim = T1_READ_32(gBattlescriptCurrInstr + 2);
if (!(gStatuses3[gActiveBattler] & STATUS3_SEMI_INVULNERABLE) && gDisableStructs[gActiveBattler].substituteHP == 0 && !(gHitMarker & HITMARKER_NO_ANIMATIONS))
{
@@ -9149,7 +9156,7 @@ static void atk66_chosenstatusanimation(void)
if (gBattleControllerExecFlags == 0)
{
u32 status;
- gActiveBattler = GetBattleBank(T1_READ_8(gBattlescriptCurrInstr + 1));
+ gActiveBattler = GetBattlerForBattleScript(T1_READ_8(gBattlescriptCurrInstr + 1));
status = T1_READ_32(gBattlescriptCurrInstr + 3);
if (!(gStatuses3[gActiveBattler] & STATUS3_SEMI_INVULNERABLE) && gDisableStructs[gActiveBattler].substituteHP == 0 && !(gHitMarker & HITMARKER_NO_ANIMATIONS))
{
@@ -9214,20 +9221,20 @@ static void atk68_cancelallactions(void)
static void atk69_adjustsetdamage(void) //literally a copy of atk07 except theres no rand dmg modifier...
{
- u8 hold_effect, quality;
+ u8 holdEffect, param;
if (gBattleMons[gBattlerTarget].item == ITEM_ENIGMA_BERRY)
- hold_effect = gEnigmaBerries[gBattlerTarget].holdEffect, quality = gEnigmaBerries[gBattlerTarget].holdEffectParam;
+ holdEffect = gEnigmaBerries[gBattlerTarget].holdEffect, param = gEnigmaBerries[gBattlerTarget].holdEffectParam;
else
{
- hold_effect = ItemId_GetHoldEffect(gBattleMons[gBattlerTarget].item);
- quality = ItemId_GetHoldEffectParam(gBattleMons[gBattlerTarget].item);
+ holdEffect = ItemId_GetHoldEffect(gBattleMons[gBattlerTarget].item);
+ param = ItemId_GetHoldEffectParam(gBattleMons[gBattlerTarget].item);
}
gPotentialItemEffectBattler = gBattlerTarget;
- if (hold_effect == HOLD_EFFECT_FOCUS_BAND && (Random() % 100) < quality)
+ if (holdEffect == HOLD_EFFECT_FOCUS_BAND && (Random() % 100) < param)
{
- RecordItemBattle(gBattlerTarget, hold_effect);
+ RecordItemEffectBattle(gBattlerTarget, holdEffect);
gSpecialStatuses[gBattlerTarget].focusBanded = 1;
}
if (gBattleMons[gBattlerTarget].status2 & STATUS2_SUBSTITUTE)
@@ -9257,7 +9264,7 @@ static void atk69_adjustsetdamage(void) //literally a copy of atk07 except there
void atk6A_removeitem(void)
{
- gActiveBattler = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
+ gActiveBattler = GetBattlerForBattleScript(T2_READ_8(gBattlescriptCurrInstr + 1));
USED_HELD_ITEMS(gActiveBattler) = gBattleMons[gActiveBattler].item;
gBattleMons[gActiveBattler].item = 0;
@@ -9716,7 +9723,7 @@ static void atk6E_setatktoplayer0(void)
static void atk6F_makevisible(void)
{
- gActiveBattler = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
+ gActiveBattler = GetBattlerForBattleScript(T2_READ_8(gBattlescriptCurrInstr + 1));
BtlController_EmitSpriteInvisibility(0, 0);
MarkBattlerForControllerExec(gActiveBattler);
gBattlescriptCurrInstr += 2;
@@ -9724,7 +9731,7 @@ static void atk6F_makevisible(void)
static void atk70_recordlastability(void)
{
- gActiveBattler = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
+ gActiveBattler = GetBattlerForBattleScript(T2_READ_8(gBattlescriptCurrInstr + 1));
RecordAbilityBattle(gActiveBattler, gLastUsedAbility);
gBattlescriptCurrInstr += 1; //buggy, should be += 2, one byte for command, one byte for argument...
}
@@ -9758,7 +9765,7 @@ static void atk73_hpthresholds(void)
s32 result;
if (!(gBattleTypeFlags & BATTLE_TYPE_DOUBLE))
{
- gActiveBattler = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
+ gActiveBattler = GetBattlerForBattleScript(T2_READ_8(gBattlescriptCurrInstr + 1));
opposing_bank = gActiveBattler ^ 1;
result = gBattleMons[opposing_bank].hp * 100 / gBattleMons[opposing_bank].maxHP;
@@ -9785,7 +9792,7 @@ static void atk74_hpthresholds2(void)
s32 result;
if (!(gBattleTypeFlags & BATTLE_TYPE_DOUBLE))
{
- gActiveBattler = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
+ gActiveBattler = GetBattlerForBattleScript(T2_READ_8(gBattlescriptCurrInstr + 1));
opposing_bank = gActiveBattler ^ 1;
hp_switchout = ewram160BCarr(GetBattlerSide(opposing_bank)); //gBattleStruct->HP_OnSwitchout[GetBattlerSide(opposing_bank)];
result = (hp_switchout - gBattleMons[opposing_bank].hp) * 100 / hp_switchout;
@@ -9812,7 +9819,7 @@ static void atk75_useitemonopponent(void)
static void atk76_various(void)
{
- gActiveBattler = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
+ gActiveBattler = GetBattlerForBattleScript(T2_READ_8(gBattlescriptCurrInstr + 1));
switch (T2_READ_8(gBattlescriptCurrInstr + 2))
{
case 0:
@@ -9849,9 +9856,9 @@ static void atk76_various(void)
{
int i;
u16* choiced_move;
- if (gBattlerPartyIndexes[0] == gBattleStruct->expGetterID)
+ if (gBattlerPartyIndexes[0] == gBattleStruct->expGetterMonId)
goto ACTIVE_0;
- if (gBattlerPartyIndexes[2] != gBattleStruct->expGetterID)
+ if (gBattlerPartyIndexes[2] != gBattleStruct->expGetterMonId)
break;
if (gBattlerPartyIndexes[0] == gBattlerPartyIndexes[2])
{
@@ -10061,14 +10068,14 @@ static void atk7D_setrain(void)
static void atk7E_setreflect(void)
{
- if (gSideAffecting[GetBattlerPosition(gBattlerAttacker) & 1] & SIDE_STATUS_REFLECT)
+ if (gSideStatuses[GetBattlerPosition(gBattlerAttacker) & 1] & SIDE_STATUS_REFLECT)
{
gMoveResultFlags |= MOVE_RESULT_MISSED;
gBattleCommunication[MULTISTRING_CHOOSER] = 0;
}
else
{
- gSideAffecting[GetBattlerPosition(gBattlerAttacker) & 1] |= SIDE_STATUS_REFLECT;
+ gSideStatuses[GetBattlerPosition(gBattlerAttacker) & 1] |= SIDE_STATUS_REFLECT;
gSideTimers[GetBattlerPosition(gBattlerAttacker) & 1].reflectTimer = 5;
if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && CountAliveMons(1) == 2)
gBattleCommunication[MULTISTRING_CHOOSER] = 2;
@@ -10231,7 +10238,7 @@ static void atk86_stockpiletobasedamage(void)
if (gBattleCommunication[6] != 1)
{
gBattleMoveDamage = CalculateBaseDamage(&gBattleMons[gBattlerAttacker], &gBattleMons[gBattlerTarget], gCurrentMove,
- gSideAffecting[GetBattlerPosition(gBattlerTarget) & 1], 0,
+ gSideStatuses[GetBattlerPosition(gBattlerTarget) & 1], 0,
0, gBattlerAttacker, gBattlerTarget)
* gDisableStructs[gBattlerAttacker].stockpileCounter;
gBattleStruct->animTurn = gDisableStructs[gBattlerAttacker].stockpileCounter;
@@ -10626,7 +10633,7 @@ static void atk90_tryconversiontypechange(void)
//randomly changes user's type to one of its moves' type
u8 valid_moves = 0;
u8 checked_move;
- u8 move_type;
+ u8 moveType;
while (valid_moves < 4)
{
if (gBattleMons[gBattlerAttacker].moves[valid_moves] == 0)
@@ -10636,15 +10643,15 @@ static void atk90_tryconversiontypechange(void)
for (checked_move = 0; checked_move < valid_moves; checked_move++)
{
- move_type = gBattleMoves[gBattleMons[gBattlerAttacker].moves[checked_move]].type;
- if (move_type == TYPE_MYSTERY)
+ moveType = gBattleMoves[gBattleMons[gBattlerAttacker].moves[checked_move]].type;
+ if (moveType == TYPE_MYSTERY)
{
if (gBattleMons[gBattlerAttacker].type1 == TYPE_GHOST || gBattleMons[gBattlerAttacker].type2 == TYPE_GHOST)
- move_type = TYPE_GHOST;
+ moveType = TYPE_GHOST;
else
- move_type = TYPE_NORMAL;
+ moveType = TYPE_NORMAL;
}
- if (move_type != gBattleMons[gBattlerAttacker].type1 && move_type != gBattleMons[gBattlerAttacker].type2)
+ if (moveType != gBattleMons[gBattlerAttacker].type1 && moveType != gBattleMons[gBattlerAttacker].type2)
break;
}
@@ -10659,22 +10666,22 @@ static void atk90_tryconversiontypechange(void)
while ((checked_move = Random() & 3) >= valid_moves);
- move_type = gBattleMoves[gBattleMons[gBattlerAttacker].moves[checked_move]].type;
- if (move_type == TYPE_MYSTERY)
+ moveType = gBattleMoves[gBattleMons[gBattlerAttacker].moves[checked_move]].type;
+ if (moveType == TYPE_MYSTERY)
{
if (gBattleMons[gBattlerAttacker].type1 == TYPE_GHOST || gBattleMons[gBattlerAttacker].type2 == TYPE_GHOST)
- move_type = TYPE_GHOST;
+ moveType = TYPE_GHOST;
else
- move_type = TYPE_NORMAL;
+ moveType = TYPE_NORMAL;
}
- } while (move_type == gBattleMons[gBattlerAttacker].type1 || move_type == gBattleMons[gBattlerAttacker].type2);
+ } while (moveType == gBattleMons[gBattlerAttacker].type1 || moveType == gBattleMons[gBattlerAttacker].type2);
- gBattleMons[gBattlerAttacker].type1 = move_type;
- gBattleMons[gBattlerAttacker].type2 = move_type;
+ gBattleMons[gBattlerAttacker].type1 = moveType;
+ gBattleMons[gBattlerAttacker].type2 = moveType;
gBattleTextBuff1[0] = 0xFD;
gBattleTextBuff1[1] = 3;
- gBattleTextBuff1[2] = move_type;
+ gBattleTextBuff1[2] = moveType;
gBattleTextBuff1[3] = 0xFF;
gBattlescriptCurrInstr += 5;
@@ -10702,14 +10709,14 @@ static void atk91_givepaydaymoney(void)
static void atk92_setlightscreen(void)
{
- if (gSideAffecting[GetBattlerPosition(gBattlerAttacker) & 1] & SIDE_STATUS_LIGHTSCREEN)
+ if (gSideStatuses[GetBattlerPosition(gBattlerAttacker) & 1] & SIDE_STATUS_LIGHTSCREEN)
{
gMoveResultFlags |= MOVE_RESULT_MISSED;
gBattleCommunication[MULTISTRING_CHOOSER] = 0;
}
else
{
- gSideAffecting[GetBattlerPosition(gBattlerAttacker) & 1] |= SIDE_STATUS_LIGHTSCREEN;
+ gSideStatuses[GetBattlerPosition(gBattlerAttacker) & 1] |= SIDE_STATUS_LIGHTSCREEN;
gSideTimers[GetBattlerPosition(gBattlerAttacker) & 1].lightscreenTimer = 5;
if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && CountAliveMons(1) == 2)
gBattleCommunication[MULTISTRING_CHOOSER] = 4;
@@ -10723,18 +10730,18 @@ static void atk92_setlightscreen(void)
static void atk93_tryKO(void)
{
if (gBattleMons[gBattlerTarget].item == ITEM_ENIGMA_BERRY)
- hold_effect = gEnigmaBerries[gBattlerTarget].holdEffect, quality = gEnigmaBerries[gBattlerTarget].holdEffectParam;
+ holdEffect = gEnigmaBerries[gBattlerTarget].holdEffect, param = gEnigmaBerries[gBattlerTarget].holdEffectParam;
else
{
- hold_effect = ItemId_GetHoldEffect(gBattleMons[gBattlerTarget].item);
- quality = ItemId_GetHoldEffectParam(gBattleMons[gBattlerTarget].item);
+ holdEffect = ItemId_GetHoldEffect(gBattleMons[gBattlerTarget].item);
+ param = ItemId_GetHoldEffectParam(gBattleMons[gBattlerTarget].item);
}
gPotentialItemEffectBattler = gBattlerTarget;
- if (hold_effect == HOLD_EFFECT_FOCUS_BAND && (Random() % 100) < quality)
+ if (holdEffect == HOLD_EFFECT_FOCUS_BAND && (Random() % 100) < param)
{
- RecordItemBattle(gBattlerTarget, hold_effect);
+ RecordItemEffectBattle(gBattlerTarget, holdEffect);
gSpecialStatuses[gBattlerTarget].focusBanded = 1;
}
@@ -10757,7 +10764,7 @@ static void atk93_tryKO(void)
}
else
{
- if (gDisableStructs[gBattlerTarget].bankWithSureHit != gBattlerAttacker || gBattleMons[gBattlerAttacker].level < gBattleMons[gBattlerTarget].level)
+ if (gDisableStructs[gBattlerTarget].battlerWithSureHit != gBattlerAttacker || gBattleMons[gBattlerAttacker].level < gBattleMons[gBattlerTarget].level)
{
}
@@ -10834,7 +10841,7 @@ _08026BCE:\n\
bcs _08026C0C\n\
ldrb r0, [r5]\n\
movs r1, 0x27\n\
- bl RecordItemBattle\n\
+ bl RecordItemEffectBattle\n\
ldr r2, _08026C54 @ =gSpecialStatuses\n\
ldrb r1, [r5]\n\
lsls r0, r1, 2\n\
@@ -11241,7 +11248,7 @@ static void atk98_updatestatusicon(void)
if (T2_READ_8(gBattlescriptCurrInstr + 1) != 4)
{
- gActiveBattler = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
+ gActiveBattler = GetBattlerForBattleScript(T2_READ_8(gBattlescriptCurrInstr + 1));
BtlController_EmitStatusIconUpdate(0, gBattleMons[gActiveBattler].status1, gBattleMons[gActiveBattler].status2);
MarkBattlerForControllerExec(gActiveBattler);
gBattlescriptCurrInstr += 2;
@@ -11277,7 +11284,7 @@ static void atk99_setmist(void)
else
{
gSideTimers[GetBattlerPosition(gBattlerAttacker) & 1].mistTimer = 5;
- gSideAffecting[GetBattlerPosition(gBattlerAttacker) & 1] |= SIDE_STATUS_MIST;
+ gSideStatuses[GetBattlerPosition(gBattlerAttacker) & 1] |= SIDE_STATUS_MIST;
gBattleCommunication[MULTISTRING_CHOOSER] = 0;
}
gBattlescriptCurrInstr++;
@@ -11315,7 +11322,7 @@ static void atk9B_transformdataexecution(void)
gDisableStructs[gBattlerAttacker].disabledMove = 0;
gDisableStructs[gBattlerAttacker].disableTimer1 = 0;
gDisableStructs[gBattlerAttacker].transformedMonPersonality = gBattleMons[gBattlerTarget].personality;
- gDisableStructs[gBattlerAttacker].unk18_b = 0;
+ gDisableStructs[gBattlerAttacker].mimickedMoves = 0;
gBattleTextBuff1[0] = 0xFD;
gBattleTextBuff1[1] = 6;
@@ -11405,7 +11412,7 @@ static void atk9D_mimicattackcopy(void)
gBattleTextBuff1[3] = uBYTE1_16(gLastUsedMove[gBattlerTarget]);
gBattleTextBuff1[4] = 0xFF;
- gDisableStructs[gBattlerAttacker].unk18_b |= gBitTable[gCurrMovePos];
+ gDisableStructs[gBattlerAttacker].mimickedMoves |= gBitTable[gCurrMovePos];
gBattlescriptCurrInstr += 5;
}
else
@@ -12139,7 +12146,7 @@ static void atkA7_setalwayshitflag(void)
{
gStatuses3[gBattlerTarget] &= ~(STATUS3_ALWAYS_HITS);
gStatuses3[gBattlerTarget] |= 0x10;
- gDisableStructs[gBattlerTarget].bankWithSureHit = gBattlerAttacker;
+ gDisableStructs[gBattlerTarget].battlerWithSureHit = gBattlerAttacker;
gBattlescriptCurrInstr++;
}
@@ -12317,7 +12324,7 @@ static void atkAD_tryspiteppreduce(void)
gBattleMons[gBattlerTarget].pp[i] -= lost_pp;
gActiveBattler = gBattlerTarget;
- if (!(gDisableStructs[gActiveBattler].unk18_b & gBitTable[i])
+ if (!(gDisableStructs[gActiveBattler].mimickedMoves & gBitTable[i])
&& !(gBattleMons[gActiveBattler].status2 & STATUS2_TRANSFORMED))
{
BtlController_EmitSetMonData(0, REQUEST_PPMOVE1_BATTLE + i, 0, 1, &gBattleMons[gActiveBattler].pp[i]);
@@ -12435,7 +12442,7 @@ static void atkB0_trysetspikes(void)
}
else
{
- gSideAffecting[side] |= SIDE_STATUS_SPIKES;
+ gSideStatuses[side] |= SIDE_STATUS_SPIKES;
gSideTimers[side].spikesAmount++;
gBattlescriptCurrInstr += 5;
}
@@ -12569,14 +12576,14 @@ static void atkB7_presentdamagecalculation(void)
static void atkB8_setsafeguard(void)
{
- if (gSideAffecting[GetBattlerPosition(gBattlerAttacker) & 1] & SIDE_STATUS_SAFEGUARD)
+ if (gSideStatuses[GetBattlerPosition(gBattlerAttacker) & 1] & SIDE_STATUS_SAFEGUARD)
{
gMoveResultFlags |= MOVE_RESULT_MISSED;
gBattleCommunication[MULTISTRING_CHOOSER] = 0;
}
else
{
- gSideAffecting[GetBattlerPosition(gBattlerAttacker) & 1] |= SIDE_STATUS_SAFEGUARD;
+ gSideStatuses[GetBattlerPosition(gBattlerAttacker) & 1] |= SIDE_STATUS_SAFEGUARD;
gSideTimers[GetBattlerPosition(gBattlerAttacker) & 1].safeguardTimer = 5;
gBattleCommunication[MULTISTRING_CHOOSER] = 5;
}
@@ -12662,7 +12669,7 @@ static void atkBA_jumpifnopursuitswitchdmg(void)
int i;
for (i = 0; i < gBattlersCount; i++)
{
- if (gBanksByTurnOrder[i] == gBattlerTarget)
+ if (gBattlerByTurnOrder[i] == gBattlerTarget)
gActionsByTurnOrder[i] = 11;
}
gCurrentMove = MOVE_PURSUIT;
@@ -12741,9 +12748,9 @@ static void atkBE_rapidspinfree(void) //rapid spin
BattleScriptPushCursor();
gBattlescriptCurrInstr = BattleScript_LeechSeedFree;
}
- else if (gSideAffecting[GetBattlerSide(gBattlerAttacker)] & SIDE_STATUS_SPIKES)
+ else if (gSideStatuses[GetBattlerSide(gBattlerAttacker)] & SIDE_STATUS_SPIKES)
{
- gSideAffecting[GetBattlerSide(gBattlerAttacker)] &= ~(SIDE_STATUS_SPIKES);
+ gSideStatuses[GetBattlerSide(gBattlerAttacker)] &= ~(SIDE_STATUS_SPIKES);
gSideTimers[GetBattlerSide(gBattlerAttacker)].spikesAmount = 0;
BattleScriptPushCursor();
gBattlescriptCurrInstr = BattleScript_SpikesFree;
@@ -12830,7 +12837,7 @@ static void atkC3_trysetfutureattack(void)
gWishFutureKnock.futureSightAttacker[gBattlerTarget] = gBattlerAttacker;
gWishFutureKnock.futureSightCounter[gBattlerTarget] = 3;
gWishFutureKnock.futureSightDmg[gBattlerTarget] = CalculateBaseDamage(&gBattleMons[gBattlerAttacker], &gBattleMons[gBattlerTarget], gCurrentMove,
- gSideAffecting[GetBattlerPosition(gBattlerTarget) & 1], 0,
+ gSideStatuses[GetBattlerPosition(gBattlerTarget) & 1], 0,
0, gBattlerAttacker, gBattlerTarget);
if (gProtectStructs[gBattlerAttacker].helpingHand)
@@ -13749,7 +13756,7 @@ static void atkDA_tryswapabilities(void)
}
}
-static void atkDB_tryimprision(void)
+static void atkDB_tryimprison(void)
{
u8 r8 = 0;
if ((gStatuses3[gBattlerAttacker] & STATUS3_IMPRISONED_OTHERS))
@@ -13816,7 +13823,7 @@ static void atkDD_weightdamagecalculation(void)
}
#ifdef NONMATCHING
-static void atkDE_asistattackselect(void)
+static void atkDE_assistattackselect(void)
{
u32 chooseable_moves_no = 0;
struct Pokemon* party;
@@ -13871,7 +13878,7 @@ static void atkDE_asistattackselect(void)
#else
NAKED
-static void atkDE_asistattackselect(void)
+static void atkDE_assistattackselect(void)
{
asm(".syntax unified\n\
push {r4-r7,lr}\n\
@@ -14109,7 +14116,7 @@ static void atkE1_trygetintimidatetarget(void)
static void atkE2_switchoutabilities(void)
{
- gActiveBattler = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
+ gActiveBattler = GetBattlerForBattleScript(T2_READ_8(gBattlescriptCurrInstr + 1));
switch (gBattleMons[gActiveBattler].ability)
{
case ABILITY_NATURAL_CURE:
@@ -14123,7 +14130,7 @@ static void atkE2_switchoutabilities(void)
static void atkE3_jumpifhasnohp(void)
{
- gActiveBattler = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
+ gActiveBattler = GetBattlerForBattleScript(T2_READ_8(gBattlescriptCurrInstr + 1));
if (gBattleMons[gActiveBattler].hp == 0)
gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 2);
else
@@ -14312,7 +14319,7 @@ static void atkEC_pursuitrelated(void)
gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
}
-static void atkED_snatchsetbanks(void)
+static void atkEF_snatchsetbattlers(void)
{
gEffectBattler = gBattlerAttacker;
if (gBattlerAttacker == gBattlerTarget)
@@ -14328,8 +14335,8 @@ static void atkEE_removelightscreenreflect(void) //brick break
u8 side = GetBattlerSide(gBattlerAttacker) ^ 1;
if (gSideTimers[side].reflectTimer || gSideTimers[side].lightscreenTimer)
{
- gSideAffecting[side] &= ~(SIDE_STATUS_REFLECT);
- gSideAffecting[side] &= ~(SIDE_STATUS_LIGHTSCREEN);
+ gSideStatuses[side] &= ~(SIDE_STATUS_REFLECT);
+ gSideStatuses[side] &= ~(SIDE_STATUS_LIGHTSCREEN);
gSideTimers[side].reflectTimer = 0;
gSideTimers[side].lightscreenTimer = 0;
gBattleStruct->animTurn = 1;
diff --git a/src/battle_util.c b/src/battle_util.c
index 97ae63574..bda5c2e9a 100644
--- a/src/battle_util.c
+++ b/src/battle_util.c
@@ -41,8 +41,8 @@ extern u8 gBattlersCount;
extern u32 gStatuses3[4];
extern u8 gBattlerAttacker;
extern u8 gBattlerTarget;
-extern u8 gBanksByTurnOrder[4];
-extern u16 gSideAffecting[2];
+extern u8 gBattlerByTurnOrder[4];
+extern u16 gSideStatuses[2];
extern u16 gBattleWeather;
extern void (*gBattleMainFunc)(void);
extern u8 gAbsentBattlerFlags;
@@ -54,7 +54,7 @@ extern s32 gBattleMoveDamage;
extern u16 gBattlerPartyIndexes[4];
extern u16 gChosenMovesByBanks[4];
extern s32 gTakenDmg[4];
-extern u8 gTakenDmgBanks[4];
+extern u8 gTakenDmgByBattler[4];
extern u8 gMoveResultFlags;
extern u8 gLastUsedAbility;
extern u8 gBattleTextBuff2[];
@@ -90,7 +90,7 @@ u8 GetMoveTarget(u16 move, u8 useMoveTarget);
u8 sub_803FC34(u8 bank);
u16 sub_803FBFC(u8 a);
void RecordAbilityBattle(u8 bank, u8 ability);
-void RecordItemBattle(u8 bank, u8 holdEffect);
+void RecordItemEffectBattle(u8 bank, u8 holdEffect);
s8 GetPokeFlavourRelation(u32 pid, u8 flavor);
extern u8 BattleScript_MoveSelectionDisabledMove[];
@@ -208,12 +208,12 @@ extern u8 gUnknown_081D99A0[]; //disobedient, hits itself
#define MULTISTRING_CHOOSER 0x5
#define MSG_DISPLAY 0x7
-u8 GetBattleBank(u8 caseId)
+u8 GetBattlerForBattleScript(u8 caseId)
{
u8 ret = 0;
switch (caseId)
{
- case BS_GET_TARGET:
+ case BS_TARGET:
ret = gBattlerTarget;
break;
case BS_GET_ATTACKER:
@@ -258,7 +258,7 @@ void PressurePPLose(u8 bankDef, u8 bankAtk, u16 move)
gBattleMons[bankAtk].pp[i]--;
if (!(gBattleMons[bankAtk].status2 & STATUS2_TRANSFORMED)
- && !(gDisableStructs[bankAtk].unk18_b & gBitTable[i]))
+ && !(gDisableStructs[bankAtk].mimickedMoves & gBitTable[i]))
{
gActiveBattler = bankAtk;
BtlController_EmitSetMonData(0, REQUEST_PPMOVE1_BATTLE + i, 0, 1, &gBattleMons[gActiveBattler].pp[i]);
@@ -292,7 +292,7 @@ void PressurePPLoseOnUsingImprision(u8 bankAtk)
if (imprisionPos != 4
&& !(gBattleMons[bankAtk].status2 & STATUS2_TRANSFORMED)
- && !(gDisableStructs[bankAtk].unk18_b & gBitTable[imprisionPos]))
+ && !(gDisableStructs[bankAtk].mimickedMoves & gBitTable[imprisionPos]))
{
gActiveBattler = bankAtk;
BtlController_EmitSetMonData(0, REQUEST_PPMOVE1_BATTLE + imprisionPos, 0, 1, &gBattleMons[gActiveBattler].pp[imprisionPos]);
@@ -325,7 +325,7 @@ void PressurePPLoseOnUsingPerishSong(u8 bankAtk)
if (perishSongPos != 4
&& !(gBattleMons[bankAtk].status2 & STATUS2_TRANSFORMED)
- && !(gDisableStructs[bankAtk].unk18_b & gBitTable[perishSongPos]))
+ && !(gDisableStructs[bankAtk].mimickedMoves & gBitTable[perishSongPos]))
{
gActiveBattler = bankAtk;
BtlController_EmitSetMonData(0, REQUEST_PPMOVE1_BATTLE + perishSongPos, 0, 1, &gBattleMons[gActiveBattler].pp[perishSongPos]);
@@ -623,14 +623,14 @@ u8 UpdateTurnCounters(void)
case 0:
for (i = 0; i < gBattlersCount; i++)
{
- gBanksByTurnOrder[i] = i;
+ gBattlerByTurnOrder[i] = i;
}
for (i = 0; i < gBattlersCount - 1; i++)
{
s32 j;
for (j = i + 1; j < gBattlersCount; j++)
{
- if (GetWhoStrikesFirst(gBanksByTurnOrder[i], gBanksByTurnOrder[j], 0))
+ if (GetWhoStrikesFirst(gBattlerByTurnOrder[i], gBattlerByTurnOrder[j], 0))
SwapTurnOrder(i, j);
}
}
@@ -641,12 +641,12 @@ u8 UpdateTurnCounters(void)
{
gActiveBattler = gBattlerAttacker = sideBank = gBattleStruct->turnSideTracker;
- if (gSideAffecting[sideBank] & SIDE_STATUS_REFLECT)
+ if (gSideStatuses[sideBank] & SIDE_STATUS_REFLECT)
{
if (--gSideTimers[sideBank].reflectTimer == 0)
{
- gSideAffecting[sideBank] &= ~SIDE_STATUS_REFLECT;
+ gSideStatuses[sideBank] &= ~SIDE_STATUS_REFLECT;
BattleScriptExecute(BattleScript_SideStatusWoreOff);
gBattleTextBuff1[0] = 0xFD;
gBattleTextBuff1[1] = 2;
@@ -670,11 +670,11 @@ u8 UpdateTurnCounters(void)
while (gBattleStruct->turnSideTracker < 2)
{
gActiveBattler = gBattlerAttacker = sideBank = gBattleStruct->turnSideTracker;
- if (gSideAffecting[sideBank] & SIDE_STATUS_LIGHTSCREEN)
+ if (gSideStatuses[sideBank] & SIDE_STATUS_LIGHTSCREEN)
{
if (--gSideTimers[sideBank].lightscreenTimer == 0)
{
- gSideAffecting[sideBank] &= ~SIDE_STATUS_LIGHTSCREEN;
+ gSideStatuses[sideBank] &= ~SIDE_STATUS_LIGHTSCREEN;
BattleScriptExecute(BattleScript_SideStatusWoreOff);
gBattleCommunication[MULTISTRING_CHOOSER] = sideBank;
gBattleTextBuff1[0] = 0xFD;
@@ -701,7 +701,7 @@ u8 UpdateTurnCounters(void)
gActiveBattler = gBattlerAttacker = sideBank = gBattleStruct->turnSideTracker;
if (gSideTimers[sideBank].mistTimer && --gSideTimers[sideBank].mistTimer == 0)
{
- gSideAffecting[sideBank] &= ~SIDE_STATUS_MIST;
+ gSideStatuses[sideBank] &= ~SIDE_STATUS_MIST;
BattleScriptExecute(BattleScript_SideStatusWoreOff);
gBattleCommunication[MULTISTRING_CHOOSER] = sideBank;
gBattleTextBuff1[0] = 0xFD;
@@ -725,11 +725,11 @@ u8 UpdateTurnCounters(void)
while (gBattleStruct->turnSideTracker < 2)
{
gActiveBattler = gBattlerAttacker = sideBank = gBattleStruct->turnSideTracker;
- if (gSideAffecting[sideBank] & SIDE_STATUS_SAFEGUARD)
+ if (gSideStatuses[sideBank] & SIDE_STATUS_SAFEGUARD)
{
if (--gSideTimers[sideBank].safeguardTimer == 0)
{
- gSideAffecting[sideBank] &= ~SIDE_STATUS_SAFEGUARD;
+ gSideStatuses[sideBank] &= ~SIDE_STATUS_SAFEGUARD;
BattleScriptExecute(BattleScript_SafeguardEnds);
effect++;
}
@@ -747,7 +747,7 @@ u8 UpdateTurnCounters(void)
case 5:
while (gBattleStruct->turnSideTracker < gBattlersCount)
{
- gActiveBattler = gBanksByTurnOrder[gBattleStruct->turnSideTracker];
+ gActiveBattler = gBattlerByTurnOrder[gBattleStruct->turnSideTracker];
if (gWishFutureKnock.wishCounter[gActiveBattler] && --gWishFutureKnock.wishCounter[gActiveBattler] == 0 && gBattleMons[gActiveBattler].hp)
{
gBattlerTarget = gActiveBattler;
@@ -857,7 +857,7 @@ u8 TurnBasedEffects(void)
gHitMarker |= (HITMARKER_GRUDGE | HITMARKER_x20);
while (gBattleStruct->turnEffectsBank < gBattlersCount && gBattleStruct->turnEffectsTracker <= TURNBASED_MAX_CASE)
{
- gActiveBattler = gBattlerAttacker = gBanksByTurnOrder[gBattleStruct->turnEffectsBank];
+ gActiveBattler = gBattlerAttacker = gBattlerByTurnOrder[gBattleStruct->turnEffectsBank];
if (gAbsentBattlerFlags & gBitTable[gActiveBattler])
{
gBattleStruct->turnEffectsBank++;
@@ -1199,7 +1199,7 @@ bool8 HandleWishPerishSongOnTurnEnd(void)
case 1: // perish song
while (gBattleStruct->sub80170DC_Bank < gBattlersCount)
{
- gActiveBattler = gBattlerAttacker = gBanksByTurnOrder[gBattleStruct->sub80170DC_Bank];
+ gActiveBattler = gBattlerAttacker = gBattlerByTurnOrder[gBattleStruct->sub80170DC_Bank];
if (gAbsentBattlerFlags & gBitTable[gActiveBattler])
gBattleStruct->sub80170DC_Bank++;
else
@@ -1546,7 +1546,7 @@ u8 AtkCanceller_UnableToUseMove(void)
{
gCurrentMove = MOVE_BIDE;
*bideDmg = gTakenDmg[gBattlerAttacker] * 2;
- gBattlerTarget = gTakenDmgBanks[gBattlerAttacker];
+ gBattlerTarget = gTakenDmgByBattler[gBattlerAttacker];
if (gAbsentBattlerFlags & gBitTable[gBattlerTarget])
gBattlerTarget = GetMoveTarget(MOVE_BIDE, 1);
gBattlescriptCurrInstr = BattleScript_BideAttack;
@@ -2752,7 +2752,7 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn)
gBattleMoveDamage *= -1;
BattleScriptExecute(BattleScript_ItemHealHP_End2);
effect = ITEM_HP_CHANGE;
- RecordItemBattle(bank, bankHoldEffect);
+ RecordItemEffectBattle(bank, bankHoldEffect);
}
break;
// nice copy/paste there gamefreak, making a function for confuse berries was too much eh?
@@ -3106,7 +3106,7 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn)
MarkBattlerForControllerExec(gActiveBattler);
break;
case ITEM_PP_CHANGE:
- if (!(gBattleMons[bank].status2 & STATUS2_TRANSFORMED) && !(gDisableStructs[bank].unk18_b & gBitTable[i]))
+ if (!(gBattleMons[bank].status2 & STATUS2_TRANSFORMED) && !(gDisableStructs[bank].mimickedMoves & gBitTable[i]))
gBattleMons[bank].pp[i] = changedPP;
break;
}
@@ -3341,13 +3341,13 @@ void unref_sub_801B40C(void)
{
gSideTimers[GetBattlerPosition(bank) & 1].field3 = (bank) | ((bank + 2) << 4);
gSideTimers[GetBattlerPosition(bank) & 1].field4 = sCombinedMoves[i].newMove;
- gSideAffecting[GetBattlerPosition(bank) & 1] |= SIDE_STATUS_X4;
+ gSideStatuses[GetBattlerPosition(bank) & 1] |= SIDE_STATUS_X4;
}
if (sCombinedMoves[i].move1 == gChosenMovesByBanks[bank + 2] && sCombinedMoves[i].move2 == gChosenMovesByBanks[bank])
{
gSideTimers[GetBattlerPosition(bank) & 1].field3 = (bank + 2) | ((bank) << 4);
gSideTimers[GetBattlerPosition(bank) & 1].field4 = sCombinedMoves[i].newMove;
- gSideAffecting[GetBattlerPosition(bank) & 1] |= SIDE_STATUS_X4;
+ gSideStatuses[GetBattlerPosition(bank) & 1] |= SIDE_STATUS_X4;
}
bank++;
}
diff --git a/src/calculate_base_damage.c b/src/calculate_base_damage.c
index 4c2f74f65..760887834 100644
--- a/src/calculate_base_damage.c
+++ b/src/calculate_base_damage.c
@@ -153,7 +153,7 @@ s32 CalculateBaseDamage(struct BattlePokemon *attacker, struct BattlePokemon *de
if (attackerHoldEffect == gHoldEffectToType[i][0]
&& type == gHoldEffectToType[i][1])
{
- if (TYPE_IS_PHYSICAL(type))
+ if (IS_TYPE_PHYSICAL(type))
attack = (attack * (attackerHoldEffectParam + 100)) / 100;
else
spAttack = (spAttack * (attackerHoldEffectParam + 100)) / 100;
@@ -204,7 +204,7 @@ s32 CalculateBaseDamage(struct BattlePokemon *attacker, struct BattlePokemon *de
if (gBattleMoves[gCurrentMove].effect == EFFECT_EXPLOSION)
defense /= 2;
- if (TYPE_IS_PHYSICAL(type)) // type < TYPE_MYSTERY
+ if (IS_TYPE_PHYSICAL(type)) // type < TYPE_MYSTERY
{
if (gCritMultiplier == 2)
{
@@ -254,7 +254,7 @@ s32 CalculateBaseDamage(struct BattlePokemon *attacker, struct BattlePokemon *de
if (type == TYPE_MYSTERY)
damage = 0; // is ??? type. does 0 damage.
- if (TYPE_IS_SPECIAL(type)) // type > TYPE_MYSTERY
+ if (IS_TYPE_SPECIAL(type)) // type > TYPE_MYSTERY
{
if (gCritMultiplier == 2)
{
diff --git a/src/contest.c b/src/contest.c
index b66a0ed93..f80de85ba 100644
--- a/src/contest.c
+++ b/src/contest.c
@@ -46,7 +46,7 @@ extern u8 gDisplayedStringBattle[];
extern u16 gBattleTypeFlags;
extern u8 gBattlerAttacker;
extern u8 gBattlerTarget;
-extern u8 gBanksBySide[];
+extern u8 gBattlerPositions[];
extern u8 gBattlerSpriteIds[];
extern struct Window gUnknown_03004210;
extern u32 gContestRngValue;
@@ -528,10 +528,10 @@ u8 sub_80AB70C(u8 *a)
CreateApplauseMeterSprite();
sub_80B0324();
sub_80B0518();
- gBanksBySide[0] = 0;
- gBanksBySide[1] = 1;
- gBanksBySide[2] = 3;
- gBanksBySide[3] = 2;
+ gBattlerPositions[0] = 0;
+ gBattlerPositions[1] = 1;
+ gBattlerPositions[2] = 3;
+ gBattlerPositions[3] = 2;
gBattleTypeFlags = 0;
gBattlerAttacker = 2;
gBattlerTarget = 3;
diff --git a/src/main.c b/src/main.c
index d7ef91df0..4b34ebd6e 100644
--- a/src/main.c
+++ b/src/main.c
@@ -2,13 +2,13 @@
#include "gba/flash_internal.h"
#include "gba/m4a_internal.h"
#include "main.h"
+#include "battle_controllers.h"
#include "intro.h"
#include "link.h"
#include "load_save.h"
#include "m4a.h"
#include "play_time.h"
#include "random.h"
-#include "rom3.h"
#include "overworld.h"
#include "rtc.h"
#include "siirtc.h"
diff --git a/src/pokemon_item_effect.c b/src/pokemon_item_effect.c
index 2542e42c3..d59e8d77c 100644
--- a/src/pokemon_item_effect.c
+++ b/src/pokemon_item_effect.c
@@ -367,7 +367,7 @@ bool8 PokemonUseItemEffects(struct Pokemon *pkmn, u16 item, u8 partyIndex, u8 mo
SetMonData(pkmn, MON_DATA_PP1 + r5, &data);
if (gMain.inBattle
&& sp34 != 4 && !(gBattleMons[sp34].status2 & 0x200000)
- && !(gDisableStructs[sp34].unk18_b & gBitTable[r5]))
+ && !(gDisableStructs[sp34].mimickedMoves & gBitTable[r5]))
gBattleMons[sp34].pp[r5] = data;
retVal = FALSE;
}
@@ -392,7 +392,7 @@ bool8 PokemonUseItemEffects(struct Pokemon *pkmn, u16 item, u8 partyIndex, u8 mo
SetMonData(pkmn, MON_DATA_PP1 + moveIndex, &data);
if (gMain.inBattle
&& sp34 != 4 && !(gBattleMons[sp34].status2 & 0x200000)
- && !(gDisableStructs[sp34].unk18_b & gBitTable[moveIndex]))
+ && !(gDisableStructs[sp34].mimickedMoves & gBitTable[moveIndex]))
gBattleMons[sp34].pp[moveIndex] = data;
retVal = FALSE;
}
diff --git a/src/rom_8077ABC.c b/src/rom_8077ABC.c
index e7c49144e..036209fbf 100644
--- a/src/rom_8077ABC.c
+++ b/src/rom_8077ABC.c
@@ -62,7 +62,7 @@ extern u8 gBattleMonSprites[NUM_BATTLE_SLOTS];
extern u8 gBattleAnimAttacker;
extern u8 gBattleAnimTarget;
extern s16 gBattleAnimArgs[8];
-extern u8 gBanksBySide[NUM_BATTLE_SLOTS];
+extern u8 gBattlerPositions[NUM_BATTLE_SLOTS];
extern u8 gBattlersCount; // gNumBattleMons?
extern struct OamMatrix gOamMatrices[];
extern struct Struct_2017810 unk_2017810[];
@@ -815,12 +815,12 @@ void InitAnimSpritePos(struct Sprite *sprite, u8 a2)
u8 GetBattlerSide(u8 slot)
{
- return gBanksBySide[slot] & 1;
+ return gBattlerPositions[slot] & 1;
}
u8 GetBattlerPosition(u8 slot)
{
- return gBanksBySide[slot];
+ return gBattlerPositions[slot];
}
u8 GetBattlerAtPosition(u8 slot)
@@ -829,7 +829,7 @@ u8 GetBattlerAtPosition(u8 slot)
for (i = 0; i < gBattlersCount; i++)
{
- if (gBanksBySide[i] == slot)
+ if (gBattlerPositions[i] == slot)
break;
}
return i;
@@ -847,7 +847,7 @@ bool8 IsBankSpritePresent(u8 slot)
}
else
{
- if (gBanksBySide[slot] == 0xff)
+ if (gBattlerPositions[slot] == 0xff)
return FALSE;
if (GetBattlerSide(slot) != B_SIDE_PLAYER)
{
diff --git a/src/tv.c b/src/tv.c
index fa5b0f4d4..0c87d53b1 100644
--- a/src/tv.c
+++ b/src/tv.c
@@ -634,7 +634,7 @@ void GabbyAndTyBeforeInterview(void)
gSaveBlock1.gabbyAndTyData.lastMove = gBattleResults.lastUsedMove;
if (gSaveBlock1.gabbyAndTyData.battleNum != 0xff)
gSaveBlock1.gabbyAndTyData.battleNum ++;
- gSaveBlock1.gabbyAndTyData.valA_0 = gBattleResults.unk5_0;
+ gSaveBlock1.gabbyAndTyData.valA_0 = gBattleResults.playerMonWasDamaged;
if (gBattleResults.playerFaintCounter)
gSaveBlock1.gabbyAndTyData.valA_1 = 1;