summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorCameron Hall <camthesaxman@users.noreply.github.com>2018-01-07 22:16:52 -0600
committerGitHub <noreply@github.com>2018-01-07 22:16:52 -0600
commit6b38db228befa044a2cfe31ed78555e3f0bd3935 (patch)
tree4aafddc91df76b5674c47a2be3bb1b3a42a0b519 /src
parent17d5ba39acb897e07e6842cbff5b1172cc6f7951 (diff)
parentbe36c506387648a11afe51b0f4209386947feb37 (diff)
Merge pull request #515 from huderlem/battle_2
Decompile battle_2 and battle_util
Diffstat (limited to 'src')
-rw-r--r--src/battle/anim/fire_2.c4
-rw-r--r--src/battle/battle_2.c3106
-rw-r--r--src/battle/battle_4.c451
-rw-r--r--src/battle/battle_7.c10
-rw-r--r--src/battle/battle_ai.c6
-rw-r--r--src/battle/battle_anim_80A7E7C.c8
-rw-r--r--src/battle/battle_controller_linkopponent.c8
-rw-r--r--src/battle/battle_controller_linkpartner.c8
-rw-r--r--src/battle/battle_controller_opponent.c32
-rw-r--r--src/battle/battle_controller_player.c56
-rw-r--r--src/battle/battle_controller_safari.c20
-rw-r--r--src/battle/battle_controller_wally.c20
-rw-r--r--src/battle/battle_message.c16
-rw-r--r--src/battle/battle_party_menu.c14
-rw-r--r--src/battle/battle_util.c (renamed from src/battle/battle_3.c)604
-rw-r--r--src/battle/pokeball.c10
-rw-r--r--src/battle/reshow_battle_screen.c14
-rw-r--r--src/contest.c24
-rw-r--r--src/data/battle_tower/trainers.h200
-rw-r--r--src/data/battle_tower/trainers_de.h200
-rw-r--r--src/data/pokemon/trainer_class_lookups.h158
-rw-r--r--src/de_rom_8040FE0.c22
-rw-r--r--src/debug/matsuda_debug_menu.c12
-rw-r--r--src/field/battle_tower.c100
-rw-r--r--src/field/tv.c2
-rw-r--r--src/pokemon/pokemon_2.c9
-rw-r--r--src/pokemon/pokemon_data.c4
-rw-r--r--src/rom3.c3
-rw-r--r--src/rom_8077ABC.c40
-rw-r--r--src/scene/evolution_scene.c24
-rw-r--r--src/unknown_task.c8
31 files changed, 4230 insertions, 963 deletions
diff --git a/src/battle/anim/fire_2.c b/src/battle/anim/fire_2.c
index 6dc304232..4d577a765 100644
--- a/src/battle/anim/fire_2.c
+++ b/src/battle/anim/fire_2.c
@@ -23,8 +23,8 @@ void sub_80D57C4(u8 spriteId, u8 taskId, u8 a3);
void sub_80D51A8(struct Sprite *sprite)
{
if (GetBankSide(gAnimBankAttacker) == GetBankSide(gAnimBankTarget)
- && (gAnimBankAttacker == GetBankByPlayerAI(2)
- || gAnimBankAttacker == GetBankByPlayerAI(3)))
+ && (gAnimBankAttacker == GetBankByIdentity(2)
+ || gAnimBankAttacker == GetBankByIdentity(3)))
gBattleAnimArgs[2] = -gBattleAnimArgs[2];
sprite->callback = sub_8079534;
diff --git a/src/battle/battle_2.c b/src/battle/battle_2.c
index b0654950b..ae84e5585 100644
--- a/src/battle/battle_2.c
+++ b/src/battle/battle_2.c
@@ -1,12 +1,18 @@
#include "global.h"
#include "constants/abilities.h"
#include "battle.h"
+#include "battle_ai.h"
#include "battle_interface.h"
+#include "battle_message.h"
#include "battle_setup.h"
+#include "battle_util.h"
#include "data2.h"
+#include "event_data.h"
+#include "evolution_scene.h"
#include "item.h"
#include "link.h"
#include "main.h"
+#include "m4a.h"
#include "name_string_util.h"
#include "palette.h"
#include "party_menu.h"
@@ -14,6 +20,7 @@
#include "pokedex.h"
#include "pokemon.h"
#include "random.h"
+#include "roamer.h"
#include "rom3.h"
#include "rom_8077ABC.h"
#include "rom_8094928.h"
@@ -21,14 +28,18 @@
#include "sound.h"
#include "constants/species.h"
#include "sprite.h"
+#include "string_util.h"
#include "task.h"
#include "text.h"
+#include "trainer.h"
#include "trig.h"
+#include "tv.h"
#include "unknown_task.h"
#include "util.h"
+#include "constants/battle_move_effects.h"
#include "constants/items.h"
#include "constants/hold_effects.h"
-#include "constants/battle_move_effects.h"
+#include "constants/moves.h"
#include "ewram.h"
struct UnknownStruct7
@@ -56,14 +67,16 @@ struct UnknownStruct12
extern const u16 gUnknown_08D004E0[];
extern const struct MonCoords gCastformFrontSpriteCoords[];
+extern u8 gStatStageRatios[][2];
+extern u8 gActionsByTurnOrder[4];
extern struct UnknownPokemonStruct2 gUnknown_02023A00[];
extern u8 gBattleBufferB[][0x200];
extern u8 gActiveBank;
extern u32 gBattleExecBuffer;
extern u8 gNoOfAllBanks;
extern u16 gBattlePartyID[];
-extern u8 gFightStateTracker;
-extern u8 gTurnOrder[];
+extern u8 gCurrentActionFuncId;
+extern u8 gBanksByTurnOrder[];
extern struct UnknownStruct12 gUnknown_02024AD0[];
extern u8 gObjectBankIDs[];
extern u16 gCurrentMove;
@@ -77,7 +90,7 @@ extern u16 gLastUsedMove[];
extern u16 gMoveHitWith[];
extern u16 gUnknown_02024C44[];
extern u16 gUnknown_02024C4C[];
-extern u16 gLockedMove[];
+extern u16 gLockedMoves[];
extern u8 gUnknown_02024C5C[];
extern u16 gChosenMovesByBanks[];
extern u32 gHitMarker;
@@ -107,8 +120,8 @@ extern u16 gBattle_WIN0V;
extern u16 gBattle_BG2_Y;
extern u32 gUnknown_03004284;
extern u16 gBattle_BG2_X;
-extern u16 gUnknown_030042A0;
-extern u16 gUnknown_030042A4;
+extern u16 gBattle_BG0_Y;
+extern u16 gBattle_BG0_X;
extern u16 gBattle_BG1_X;
extern u16 gBattle_WIN0H;
extern MainCallback gPreBattleCallback1;
@@ -129,8 +142,52 @@ extern u16 gBattleWeather;
extern u32 gBattleMoveDamage;
extern struct BattlePokemon gBattleMons[];
extern u8 gBattleMoveFlags;
+extern u8 BattleScript_FocusPunchSetUp[];
+extern u16 gDynamicBasePower;
+extern u8 gCurrentTurnActionNumber;
+extern void (* const gUnknown_081FA640[])(void);
+extern void (* const gUnknown_081FA678[])(void);
+extern u8* gBattlescriptCurrInstr;
+extern u8 BattleScript_LinkBattleWonOrLost[];
+extern u8 BattleScript_PayDayMoneyAndPickUpItems[];
+extern u8 gUnknown_081D8E0D[];
+extern u8 BattleScript_LocalTrainerBattleWon[];
+extern u8 BattleScript_LocalBattleLost[];
+extern u8 BattleScript_GotAwaySafely[];
+extern u8 BattleScript_SmokeBallEscape[];
+extern u8 BattleScript_RanAwayUsingMonAbility[];
+extern u8 BattleScript_WildMonFled[];
+extern u8 BattleScript_ActionSwitch[];
+extern u8 BattleScript_PrintFailedToRunString[];
+extern const BattleCmdFunc gBattleScriptingCommandsTable[];
+extern u8 gCritMultiplier;
+extern u8 gCurrMovePos;
+extern u8 gUnknown_02024BE5;
+extern u16 gChosenMove;
+extern u8* gBattleScriptsForMoveEffects[];
+extern u16 gLastUsedItem;
+extern u8 * const gBattlescriptsForBallThrow[];
+extern u8 * const gBattlescriptsForRunningByItem[];
+extern u8 * const gBattlescriptsForUsingItem[];
+extern u8 * const gBattlescriptsForSafariActions[];
+extern u8 gBattleTextBuff2[];
+extern u8 gNumSafariBalls;
+extern u8 gUnknown_081FA70C[][3];
+extern u8 gUnknown_081FA71B[];
+extern u8 gUnknown_081FA71F[];
+
static void BattlePrepIntroSlide(void);
+void CheckFocusPunch_ClearVarsBeforeTurnStarts(void);
+void SetActionsAndBanksTurnOrder(void);
+static void TurnValuesCleanUp(u8);
+void SpecialStatusesClear(void);
+static void RunTurnActionsFunctions(void);
+void HandleEndTurn_FinishBattle();
+static void FreeResetData_ReturnToOvOrDoEvolutions(void);
+void TryEvolvePokemon(void);
+static void ReturnFromBattleToOverworld(void);
+static void WaitForEvoSceneToFinish(void);
void sub_800E7C4(void)
{
@@ -179,8 +236,8 @@ void InitBattle(void)
sub_80895F8(gUnknown_081F9674);
SetUpWindowConfig(&gWindowConfig_81E6C58);
ResetPaletteFade();
- gUnknown_030042A4 = 0;
- gUnknown_030042A0 = 0;
+ gBattle_BG0_X = 0;
+ gBattle_BG0_Y = 0;
gBattle_BG1_X = 0;
gBattle_BG1_Y = 0;
gBattle_BG2_X = 0;
@@ -468,7 +525,7 @@ void sub_800EC9C(void)
{
gPreBattleCallback1 = gMain.callback1;
gMain.callback1 = sub_8010824;
- SetMainCallback2(sub_800F808);
+ SetMainCallback2(BattleMainCB2);
if (gBattleTypeFlags & BATTLE_TYPE_LINK)
{
gTrainerBattleOpponent = 0x800;
@@ -826,7 +883,7 @@ void sub_800F298(void)
{
gPreBattleCallback1 = gMain.callback1;
gMain.callback1 = sub_8010824;
- SetMainCallback2(sub_800F808);
+ SetMainCallback2(BattleMainCB2);
if (gBattleTypeFlags & BATTLE_TYPE_LINK)
{
gTrainerBattleOpponent = 0x800;
@@ -837,7 +894,7 @@ void sub_800F298(void)
}
}
-void sub_800F808(void)
+void BattleMainCB2(void)
{
AnimateSprites();
BuildOamBuffer();
@@ -1001,8 +1058,8 @@ void sub_800FCD4(void)
void sub_800FCFC(void)
{
Random(); // unused return value
- REG_BG0HOFS = gUnknown_030042A4;
- REG_BG0VOFS = gUnknown_030042A0;
+ REG_BG0HOFS = gBattle_BG0_X;
+ REG_BG0VOFS = gBattle_BG0_Y;
REG_BG1HOFS = gBattle_BG1_X;
REG_BG1VOFS = gBattle_BG1_Y;
REG_BG2HOFS = gBattle_BG2_X;
@@ -1155,8 +1212,8 @@ void c2_8011A1C(void)
}
SetUpWindowConfig(&gWindowConfig_81E6C58);
ResetPaletteFade();
- gUnknown_030042A4 = 0;
- gUnknown_030042A0 = 0;
+ gBattle_BG0_X = 0;
+ gBattle_BG0_Y = 0;
gBattle_BG1_X = 0;
gBattle_BG1_Y = 0;
gBattle_BG2_X = 0;
@@ -1526,7 +1583,7 @@ void sub_8010874(void)
gUnknown_02024C44[i] = 0;
gUnknown_02024C4C[i] = 0;
gUnknown_02024C5C[i] = 0xFF;
- gLockedMove[i] = 0;
+ gLockedMoves[i] = 0;
gUnknown_02024C2C[i] = 0;
eFlashFireArr.arr[i] = 0;
}
@@ -1534,7 +1591,7 @@ void sub_8010874(void)
for (i = 0; i < 2; i++)
{
gSideAffecting[i] = 0;
- MEMSET_ALT(&gSideTimer[i], 0, 12, j, r4);
+ MEMSET_ALT(&gSideTimers[i], 0, 12, j, r4);
}
gBankAttacker = 0;
@@ -1787,7 +1844,7 @@ static void BattlePrepIntroSlide(void)
{
if (gBattleExecBuffer == 0)
{
- gActiveBank = GetBankByPlayerAI(0);
+ gActiveBank = GetBankByIdentity(0);
EmitIntroSlide(0, gBattleTerrain);
MarkBufferBankForExecution(gActiveBank);
gBattleMainFunc = sub_8011384;
@@ -1891,7 +1948,7 @@ void bc_801333C(void)
hpStatus[i].status = GetMonData(&gEnemyParty[i], MON_DATA_STATUS);
}
}
- gActiveBank = GetBankByPlayerAI(1);
+ gActiveBank = GetBankByIdentity(1);
EmitDrawPartyStatusSummary(0, hpStatus, 0x80);
MarkBufferBankForExecution(gActiveBank);
@@ -1909,7 +1966,7 @@ void bc_801333C(void)
hpStatus[i].status = GetMonData(&gPlayerParty[i], MON_DATA_STATUS);
}
}
- gActiveBank = GetBankByPlayerAI(0);
+ gActiveBank = GetBankByIdentity(0);
EmitDrawPartyStatusSummary(0, hpStatus, 0x80);
MarkBufferBankForExecution(gActiveBank);
@@ -1944,7 +2001,7 @@ void bc_battle_begin_message(void)
{
if (gBattleExecBuffer == 0)
{
- gActiveBank = GetBankByPlayerAI(1);
+ gActiveBank = GetBankByIdentity(1);
PrepareStringBattle(0, gActiveBank);
gBattleMainFunc = sub_8011800;
}
@@ -1963,7 +2020,7 @@ void sub_8011800(void)
{
if (gBattleExecBuffer == 0)
{
- PrepareStringBattle(1, GetBankByPlayerAI(1));
+ PrepareStringBattle(1, GetBankByIdentity(1));
gBattleMainFunc = sub_8011834;
}
}
@@ -2015,7 +2072,7 @@ void sub_8011970(void)
if (gBattleExecBuffer == 0)
{
if (!(gBattleTypeFlags & BATTLE_TYPE_SAFARI))
- PrepareStringBattle(1, GetBankByPlayerAI(0));
+ PrepareStringBattle(1, GetBankByIdentity(0));
gBattleMainFunc = sub_80119B4;
}
}
@@ -2075,13 +2132,13 @@ void BattleBeginFirstTurn(void)
if (ewram16058 == 0)
{
for (i = 0; i < gNoOfAllBanks; i++)
- gTurnOrder[i] = i;
+ gBanksByTurnOrder[i] = i;
for (i = 0; i < gNoOfAllBanks - 1; i++)
{
for (j = i + 1; j < gNoOfAllBanks; j++)
{
- if (GetWhoStrikesFirst(gTurnOrder[i], gTurnOrder[j], 1) != 0)
- sub_8012FBC(i, j);
+ if (GetWhoStrikesFirst(gBanksByTurnOrder[i], gBanksByTurnOrder[j], 1) != 0)
+ SwapTurnOrder(i, j);
}
}
}
@@ -2092,7 +2149,7 @@ void BattleBeginFirstTurn(void)
}
while (ewram16058 < gNoOfAllBanks)
{
- if (AbilityBattleEffects(0, gTurnOrder[ewram16058], 0, 0, 0) != 0)
+ if (AbilityBattleEffects(0, gBanksByTurnOrder[ewram16058], 0, 0, 0) != 0)
r9++;
ewram16058++;
if (r9 != 0)
@@ -2104,7 +2161,7 @@ void BattleBeginFirstTurn(void)
return;
while (ewram160F9 < gNoOfAllBanks)
{
- if (ItemBattleEffects(0, gTurnOrder[ewram160F9], 0) != 0)
+ if (ItemBattleEffects(0, gBanksByTurnOrder[ewram160F9], 0) != 0)
r9++;
ewram160F9++;
if (r9 != 0)
@@ -2123,7 +2180,7 @@ void BattleBeginFirstTurn(void)
SpecialStatusesClear();
ewram160A6 = gAbsentBankFlags;
gBattleMainFunc = sub_8012324;
- sub_80156DC();
+ ResetSentPokesToOpponentValue();
for (i = 0; i < 8; i++)
gBattleCommunication[i] = 0;
for (i = 0; i < gNoOfAllBanks; i++)
@@ -2176,10 +2233,10 @@ void BattleTurnPassed(void)
if (TurnBasedEffects() != 0)
return;
}
- if (sub_80173A4() != 0)
+ if (HandleFaintedMonActions() != 0)
return;
ewram16059 = 0;
- if (sub_80170DC() != 0)
+ if (HandleWishPerishSongOnTurnEnd() != 0)
return;
TurnValuesCleanUp(0);
gHitMarker &= ~HITMARKER_NO_ATTACKSTRING;
@@ -2195,8 +2252,8 @@ void BattleTurnPassed(void)
gBattleCommunication[i] = 0;
if (gBattleOutcome != 0)
{
- gFightStateTracker = 12;
- gBattleMainFunc = sub_80138F0;
+ gCurrentActionFuncId = 12;
+ gBattleMainFunc = RunTurnActionsFunctions;
return;
}
if (gBattleResults.battleTurnCounter < 0xFF)
@@ -2319,8 +2376,8 @@ void sub_8012324(void)
ewram16068arr(gActiveBank) = 6;
if (!(gBattleTypeFlags & 0x40)
&& (r5 & 2)
- && !(ewram160A6 & gBitTable[GetBankByPlayerAI(r5 ^ 2)])
- && gBattleCommunication[GetBankByPlayerAI(r5)] != 4)
+ && !(ewram160A6 & gBitTable[GetBankByIdentity(r5 ^ 2)])
+ && gBattleCommunication[GetBankByIdentity(r5)] != 4)
break;
//_080123F8
if (ewram160A6 & gBitTable[gActiveBank])
@@ -2352,3 +2409,2982 @@ void sub_8012324(void)
}
}
*/
+__attribute__((naked))
+void sub_8012324(void)
+{
+ asm(".syntax unified\n\
+ push {r4-r7,lr}\n\
+ mov r7, r10\n\
+ mov r6, r9\n\
+ mov r5, r8\n\
+ push {r5-r7}\n\
+ sub sp, 0x1C\n\
+ ldr r0, _08012340 @ =gBattleCommunication\n\
+ movs r1, 0\n\
+ strb r1, [r0, 0x4]\n\
+ ldr r0, _08012344 @ =gActiveBank\n\
+ strb r1, [r0]\n\
+ ldr r0, _08012348 @ =gNoOfAllBanks\n\
+ bl _08012F74\n\
+ .align 2, 0\n\
+_08012340: .4byte gBattleCommunication\n\
+_08012344: .4byte gActiveBank\n\
+_08012348: .4byte gNoOfAllBanks\n\
+_0801234C:\n\
+ ldr r4, _08012374 @ =gActiveBank\n\
+ ldrb r0, [r4]\n\
+ bl GetBankIdentity\n\
+ lsls r0, 24\n\
+ lsrs r5, r0, 24\n\
+ ldr r1, _08012378 @ =gBattleCommunication\n\
+ ldrb r0, [r4]\n\
+ adds r0, r1\n\
+ ldrb r0, [r0]\n\
+ cmp r0, 0x6\n\
+ bls _08012368\n\
+ bl _08012F66\n\
+_08012368:\n\
+ lsls r0, 2\n\
+ ldr r1, _0801237C @ =_08012380\n\
+ adds r0, r1\n\
+ ldr r0, [r0]\n\
+ mov pc, r0\n\
+ .align 2, 0\n\
+_08012374: .4byte gActiveBank\n\
+_08012378: .4byte gBattleCommunication\n\
+_0801237C: .4byte _08012380\n\
+ .align 2, 0\n\
+_08012380:\n\
+ .4byte _0801239C\n\
+ .4byte _080124C8\n\
+ .4byte _08012A28\n\
+ .4byte _08012DA8\n\
+ .4byte _08012E50\n\
+ .4byte _08012E94\n\
+ .4byte _08012F38\n\
+_0801239C:\n\
+ ldr r4, _08012434 @ =gSharedMem\n\
+ ldr r0, _08012438 @ =gActiveBank\n\
+ ldrb r0, [r0]\n\
+ ldr r1, _0801243C @ =0x00016068\n\
+ adds r0, r1\n\
+ adds r0, r4\n\
+ movs r1, 0x6\n\
+ strb r1, [r0]\n\
+ ldr r0, _08012440 @ =gBattleTypeFlags\n\
+ ldrh r1, [r0]\n\
+ movs r0, 0x40\n\
+ ands r0, r1\n\
+ cmp r0, 0\n\
+ bne _080123F8\n\
+ movs r1, 0x2\n\
+ movs r0, 0x2\n\
+ ands r0, r5\n\
+ cmp r0, 0\n\
+ beq _080123F8\n\
+ eors r5, r1\n\
+ adds r0, r5, 0\n\
+ bl GetBankByIdentity\n\
+ ldr r2, _08012444 @ =0x000160a6\n\
+ adds r1, r4, r2\n\
+ ldrb r1, [r1]\n\
+ ldr r2, _08012448 @ =gBitTable\n\
+ lsls r0, 24\n\
+ lsrs r0, 22\n\
+ adds r0, r2\n\
+ ldr r0, [r0]\n\
+ ands r1, r0\n\
+ cmp r1, 0\n\
+ bne _080123F8\n\
+ ldr r4, _0801244C @ =gBattleCommunication\n\
+ adds r0, r5, 0\n\
+ bl GetBankByIdentity\n\
+ lsls r0, 24\n\
+ lsrs r0, 24\n\
+ adds r0, r4\n\
+ ldrb r0, [r0]\n\
+ cmp r0, 0x4\n\
+ beq _080123F8\n\
+ bl _08012F66\n\
+_080123F8:\n\
+ ldr r0, _08012434 @ =gSharedMem\n\
+ ldr r3, _08012444 @ =0x000160a6\n\
+ adds r0, r3\n\
+ ldrb r3, [r0]\n\
+ ldr r1, _08012448 @ =gBitTable\n\
+ ldr r4, _08012438 @ =gActiveBank\n\
+ ldrb r2, [r4]\n\
+ lsls r0, r2, 2\n\
+ adds r0, r1\n\
+ ldr r0, [r0]\n\
+ ands r3, r0\n\
+ cmp r3, 0\n\
+ beq _08012468\n\
+ ldr r0, _08012450 @ =gActionForBanks\n\
+ adds r0, r2, r0\n\
+ movs r1, 0xD\n\
+ strb r1, [r0]\n\
+ ldr r0, _08012440 @ =gBattleTypeFlags\n\
+ ldrh r1, [r0]\n\
+ movs r0, 0x40\n\
+ ands r0, r1\n\
+ cmp r0, 0\n\
+ bne _08012454\n\
+ ldr r0, _0801244C @ =gBattleCommunication\n\
+ ldrb r1, [r4]\n\
+ adds r1, r0\n\
+ movs r0, 0x4\n\
+ strb r0, [r1]\n\
+ bl _08012F66\n\
+ .align 2, 0\n\
+_08012434: .4byte gSharedMem\n\
+_08012438: .4byte gActiveBank\n\
+_0801243C: .4byte 0x00016068\n\
+_08012440: .4byte gBattleTypeFlags\n\
+_08012444: .4byte 0x000160a6\n\
+_08012448: .4byte gBitTable\n\
+_0801244C: .4byte gBattleCommunication\n\
+_08012450: .4byte gActionForBanks\n\
+_08012454:\n\
+ ldr r0, _08012464 @ =gBattleCommunication\n\
+ ldrb r1, [r4]\n\
+ adds r1, r0\n\
+ movs r0, 0x3\n\
+ strb r0, [r1]\n\
+ bl _08012F66\n\
+ .align 2, 0\n\
+_08012464: .4byte gBattleCommunication\n\
+_08012468:\n\
+ ldr r1, _0801249C @ =gBattleMons\n\
+ movs r0, 0x58\n\
+ muls r0, r2\n\
+ adds r1, 0x50\n\
+ adds r0, r1\n\
+ ldr r1, [r0]\n\
+ movs r0, 0x80\n\
+ lsls r0, 5\n\
+ ands r0, r1\n\
+ cmp r0, 0\n\
+ bne _08012488\n\
+ movs r0, 0x80\n\
+ lsls r0, 15\n\
+ ands r1, r0\n\
+ cmp r1, 0\n\
+ beq _080124A8\n\
+_08012488:\n\
+ ldr r0, _080124A0 @ =gActionForBanks\n\
+ adds r0, r2, r0\n\
+ strb r3, [r0]\n\
+ ldr r1, _080124A4 @ =gBattleCommunication\n\
+ ldrb r0, [r4]\n\
+ adds r0, r1\n\
+ movs r1, 0x3\n\
+ strb r1, [r0]\n\
+ bl _08012F66\n\
+ .align 2, 0\n\
+_0801249C: .4byte gBattleMons\n\
+_080124A0: .4byte gActionForBanks\n\
+_080124A4: .4byte gBattleCommunication\n\
+_080124A8:\n\
+ ldr r0, _080124C0 @ =gActionForBanks\n\
+ ldrb r1, [r0]\n\
+ ldr r0, _080124C4 @ =gBattleBufferB\n\
+ ldrb r2, [r0, 0x1]\n\
+ ldrb r0, [r0, 0x2]\n\
+ lsls r0, 8\n\
+ orrs r2, r0\n\
+ movs r0, 0\n\
+ bl Emitcmd18\n\
+ bl _08012E32\n\
+ .align 2, 0\n\
+_080124C0: .4byte gActionForBanks\n\
+_080124C4: .4byte gBattleBufferB\n\
+_080124C8:\n\
+ ldr r4, _08012520 @ =gBattleExecBuffer\n\
+ ldr r1, _08012524 @ =gBitTable\n\
+ ldr r3, _08012528 @ =gActiveBank\n\
+ ldrb r5, [r3]\n\
+ lsls r0, r5, 2\n\
+ adds r0, r1\n\
+ ldr r2, [r0]\n\
+ lsls r0, r2, 4\n\
+ movs r1, 0xF0\n\
+ lsls r1, 24\n\
+ orrs r0, r1\n\
+ orrs r0, r2\n\
+ lsls r1, r2, 8\n\
+ orrs r0, r1\n\
+ lsls r2, 12\n\
+ orrs r0, r2\n\
+ ldr r1, [r4]\n\
+ ands r1, r0\n\
+ mov r8, r3\n\
+ cmp r1, 0\n\
+ beq _080124F6\n\
+ bl _08012F66\n\
+_080124F6:\n\
+ ldr r2, _0801252C @ =gActionForBanks\n\
+ adds r2, r5, r2\n\
+ ldr r1, _08012530 @ =gBattleBufferB\n\
+ lsls r0, r5, 9\n\
+ adds r1, 0x1\n\
+ adds r0, r1\n\
+ ldrb r0, [r0]\n\
+ strb r0, [r2]\n\
+ ldrb r0, [r3]\n\
+ lsls r0, 9\n\
+ adds r0, r1\n\
+ ldrb r0, [r0]\n\
+ cmp r0, 0xC\n\
+ bls _08012514\n\
+ b _08012968\n\
+_08012514:\n\
+ lsls r0, 2\n\
+ ldr r1, _08012534 @ =_08012538\n\
+ adds r0, r1\n\
+ ldr r0, [r0]\n\
+ mov pc, r0\n\
+ .align 2, 0\n\
+_08012520: .4byte gBattleExecBuffer\n\
+_08012524: .4byte gBitTable\n\
+_08012528: .4byte gActiveBank\n\
+_0801252C: .4byte gActionForBanks\n\
+_08012530: .4byte gBattleBufferB\n\
+_08012534: .4byte _08012538\n\
+ .align 2, 0\n\
+_08012538:\n\
+ .4byte _0801256C\n\
+ .4byte _080126B4\n\
+ .4byte _080126E0\n\
+ .4byte _08012968\n\
+ .4byte _08012968\n\
+ .4byte _080128B0\n\
+ .4byte _08012908\n\
+ .4byte _08012968\n\
+ .4byte _08012968\n\
+ .4byte _08012968\n\
+ .4byte _08012968\n\
+ .4byte _08012968\n\
+ .4byte _0801292C\n\
+_0801256C:\n\
+ bl AreAllMovesUnusable\n\
+ lsls r0, 24\n\
+ cmp r0, 0\n\
+ beq _080125D0\n\
+ ldr r0, _080125B4 @ =gBattleCommunication\n\
+ ldr r2, _080125B8 @ =gActiveBank\n\
+ ldrb r1, [r2]\n\
+ adds r1, r0\n\
+ movs r4, 0\n\
+ movs r0, 0x5\n\
+ strb r0, [r1]\n\
+ ldr r3, _080125BC @ =gSharedMem\n\
+ ldrb r0, [r2]\n\
+ ldr r1, _080125C0 @ =0x00016060\n\
+ adds r0, r1\n\
+ adds r0, r3\n\
+ strb r4, [r0]\n\
+ ldrb r0, [r2]\n\
+ ldr r4, _080125C4 @ =0x00016094\n\
+ adds r0, r4\n\
+ adds r0, r3\n\
+ movs r1, 0x3\n\
+ strb r1, [r0]\n\
+ ldrb r1, [r2]\n\
+ ldr r0, _080125C8 @ =0x00016010\n\
+ adds r2, r1, r0\n\
+ adds r2, r3\n\
+ ldr r0, _080125CC @ =gBattleBufferB\n\
+ lsls r1, 9\n\
+ adds r0, 0x3\n\
+ adds r1, r0\n\
+ ldrb r0, [r1]\n\
+ strb r0, [r2]\n\
+ bl _08012F90\n\
+ .align 2, 0\n\
+_080125B4: .4byte gBattleCommunication\n\
+_080125B8: .4byte gActiveBank\n\
+_080125BC: .4byte gSharedMem\n\
+_080125C0: .4byte 0x00016060\n\
+_080125C4: .4byte 0x00016094\n\
+_080125C8: .4byte 0x00016010\n\
+_080125CC: .4byte gBattleBufferB\n\
+_080125D0:\n\
+ ldr r1, _080125FC @ =gDisableStructs\n\
+ ldr r5, _08012600 @ =gActiveBank\n\
+ ldrb r4, [r5]\n\
+ lsls r0, r4, 3\n\
+ subs r0, r4\n\
+ lsls r0, 2\n\
+ adds r0, r1\n\
+ ldrh r2, [r0, 0x6]\n\
+ cmp r2, 0\n\
+ beq _0801260C\n\
+ ldr r1, _08012604 @ =gChosenMovesByBanks\n\
+ lsls r0, r4, 1\n\
+ adds r0, r1\n\
+ strh r2, [r0]\n\
+ ldr r1, _08012608 @ =gBattleCommunication\n\
+ ldrb r0, [r5]\n\
+ adds r0, r1\n\
+ movs r1, 0x3\n\
+ strb r1, [r0]\n\
+ bl _08012F90\n\
+ .align 2, 0\n\
+_080125FC: .4byte gDisableStructs\n\
+_08012600: .4byte gActiveBank\n\
+_08012604: .4byte gChosenMovesByBanks\n\
+_08012608: .4byte gBattleCommunication\n\
+_0801260C:\n\
+ add r2, sp, 0x4\n\
+ ldr r3, _080126AC @ =gBattleMons\n\
+ movs r1, 0x58\n\
+ adds r0, r4, 0\n\
+ muls r0, r1\n\
+ adds r0, r3\n\
+ ldrh r0, [r0]\n\
+ strh r0, [r2, 0x10]\n\
+ ldrb r0, [r5]\n\
+ muls r0, r1\n\
+ adds r0, r3\n\
+ adds r0, 0x21\n\
+ ldrb r0, [r0]\n\
+ strb r0, [r2, 0x12]\n\
+ ldrb r0, [r5]\n\
+ muls r0, r1\n\
+ adds r0, r3\n\
+ adds r0, 0x22\n\
+ ldrb r0, [r0]\n\
+ strb r0, [r2, 0x13]\n\
+ movs r4, 0\n\
+ mov r1, sp\n\
+ adds r1, 0xC\n\
+ str r1, [sp, 0x18]\n\
+ add r2, sp, 0x10\n\
+ mov r10, r2\n\
+ mov r8, r3\n\
+ adds r7, r5, 0\n\
+ movs r6, 0x58\n\
+ movs r3, 0xC\n\
+ add r3, r8\n\
+ mov r9, r3\n\
+ add r5, sp, 0x4\n\
+_0801264E:\n\
+ lsls r2, r4, 1\n\
+ ldrb r0, [r7]\n\
+ muls r0, r6\n\
+ adds r0, r2, r0\n\
+ add r0, r9\n\
+ ldrh r0, [r0]\n\
+ strh r0, [r5]\n\
+ ldr r0, [sp, 0x18]\n\
+ adds r3, r0, r4\n\
+ ldrb r0, [r7]\n\
+ muls r0, r6\n\
+ adds r0, r4, r0\n\
+ mov r1, r8\n\
+ adds r1, 0x24\n\
+ adds r0, r1\n\
+ ldrb r0, [r0]\n\
+ strb r0, [r3]\n\
+ ldrb r0, [r7]\n\
+ adds r1, r0, 0\n\
+ muls r1, r6\n\
+ adds r2, r1\n\
+ add r2, r9\n\
+ ldrh r0, [r2]\n\
+ add r1, r8\n\
+ adds r1, 0x3B\n\
+ ldrb r1, [r1]\n\
+ lsls r2, r4, 24\n\
+ lsrs r2, 24\n\
+ bl CalculatePPWithBonus\n\
+ mov r2, r10\n\
+ adds r1, r2, r4\n\
+ strb r0, [r1]\n\
+ adds r5, 0x2\n\
+ adds r4, 0x1\n\
+ cmp r4, 0x3\n\
+ ble _0801264E\n\
+ ldr r0, _080126B0 @ =gBattleTypeFlags\n\
+ ldrb r0, [r0]\n\
+ movs r1, 0x1\n\
+ ands r1, r0\n\
+ movs r0, 0\n\
+ movs r2, 0\n\
+ add r3, sp, 0x4\n\
+ bl Emitcmd20\n\
+ b _0801289E\n\
+ .align 2, 0\n\
+_080126AC: .4byte gBattleMons\n\
+_080126B0: .4byte gBattleTypeFlags\n\
+_080126B4:\n\
+ ldr r0, _080126D0 @ =gBattleTypeFlags\n\
+ ldrh r1, [r0]\n\
+ ldr r0, _080126D4 @ =0x00000902\n\
+ ands r0, r1\n\
+ cmp r0, 0\n\
+ bne _080126C2\n\
+ b _08012908\n\
+_080126C2:\n\
+ ldr r1, _080126D8 @ =gUnknown_02024C1C\n\
+ mov r3, r8\n\
+ ldrb r0, [r3]\n\
+ lsls r0, 2\n\
+ adds r0, r1\n\
+ ldr r1, _080126DC @ =BattleScript_ActionSelectionItemsCantBeUsed\n\
+ b _080129CC\n\
+ .align 2, 0\n\
+_080126D0: .4byte gBattleTypeFlags\n\
+_080126D4: .4byte 0x00000902\n\
+_080126D8: .4byte gUnknown_02024C1C\n\
+_080126DC: .4byte BattleScript_ActionSelectionItemsCantBeUsed\n\
+_080126E0:\n\
+ ldr r3, _08012738 @ =gSharedMem\n\
+ ldr r5, _0801273C @ =gActiveBank\n\
+ ldrb r0, [r5]\n\
+ ldr r4, _08012740 @ =0x00016064\n\
+ adds r1, r0, r4\n\
+ adds r1, r3\n\
+ ldr r2, _08012744 @ =gBattlePartyID\n\
+ lsls r0, 1\n\
+ adds r0, r2\n\
+ ldrh r0, [r0]\n\
+ strb r0, [r1]\n\
+ ldr r7, _08012748 @ =gBattleMons\n\
+ ldrb r2, [r5]\n\
+ movs r6, 0x58\n\
+ adds r0, r2, 0\n\
+ muls r0, r6\n\
+ adds r1, r7, 0\n\
+ adds r1, 0x50\n\
+ adds r0, r1\n\
+ ldr r0, [r0]\n\
+ ldr r1, _0801274C @ =0x0400e000\n\
+ ands r0, r1\n\
+ cmp r0, 0\n\
+ bne _08012722\n\
+ ldr r0, _08012750 @ =gStatuses3\n\
+ lsls r1, r2, 2\n\
+ adds r1, r0\n\
+ ldr r1, [r1]\n\
+ movs r0, 0x80\n\
+ lsls r0, 3\n\
+ ands r1, r0\n\
+ cmp r1, 0\n\
+ beq _08012758\n\
+_08012722:\n\
+ lsls r0, r2, 1\n\
+ adds r0, r2\n\
+ ldr r2, _08012754 @ =0x0001606c\n\
+ adds r1, r3, r2\n\
+ adds r0, r1\n\
+ str r0, [sp]\n\
+ movs r0, 0\n\
+ movs r1, 0x2\n\
+ movs r2, 0x6\n\
+ b _0801286C\n\
+ .align 2, 0\n\
+_08012738: .4byte gSharedMem\n\
+_0801273C: .4byte gActiveBank\n\
+_08012740: .4byte 0x00016064\n\
+_08012744: .4byte gBattlePartyID\n\
+_08012748: .4byte gBattleMons\n\
+_0801274C: .4byte 0x0400e000\n\
+_08012750: .4byte gStatuses3\n\
+_08012754: .4byte 0x0001606c\n\
+_08012758:\n\
+ str r1, [sp]\n\
+ movs r0, 0xC\n\
+ adds r1, r2, 0\n\
+ movs r2, 0x17\n\
+ movs r3, 0\n\
+ bl AbilityBattleEffects\n\
+ lsls r0, 24\n\
+ lsrs r4, r0, 24\n\
+ cmp r4, 0\n\
+ bne _080127E0\n\
+ ldrb r1, [r5]\n\
+ str r4, [sp]\n\
+ movs r0, 0xC\n\
+ movs r2, 0x47\n\
+ movs r3, 0\n\
+ bl AbilityBattleEffects\n\
+ lsls r0, 24\n\
+ lsrs r4, r0, 24\n\
+ cmp r4, 0\n\
+ beq _080127A8\n\
+ ldrb r0, [r5]\n\
+ muls r0, r6\n\
+ adds r1, r0, r7\n\
+ adds r0, r1, 0\n\
+ adds r0, 0x21\n\
+ ldrb r0, [r0]\n\
+ cmp r0, 0x2\n\
+ beq _080127A8\n\
+ adds r0, r1, 0\n\
+ adds r0, 0x22\n\
+ ldrb r0, [r0]\n\
+ cmp r0, 0x2\n\
+ beq _080127A8\n\
+ adds r0, r1, 0\n\
+ adds r0, 0x20\n\
+ ldrb r0, [r0]\n\
+ cmp r0, 0x1A\n\
+ bne _080127E0\n\
+_080127A8:\n\
+ ldr r5, _08012808 @ =gActiveBank\n\
+ ldrb r1, [r5]\n\
+ movs r0, 0\n\
+ str r0, [sp]\n\
+ movs r0, 0xF\n\
+ movs r2, 0x2A\n\
+ movs r3, 0\n\
+ bl AbilityBattleEffects\n\
+ lsls r0, 24\n\
+ lsrs r4, r0, 24\n\
+ cmp r4, 0\n\
+ beq _08012818\n\
+ ldr r2, _0801280C @ =gBattleMons\n\
+ ldrb r1, [r5]\n\
+ movs r0, 0x58\n\
+ muls r0, r1\n\
+ adds r1, r0, r2\n\
+ adds r0, r1, 0\n\
+ adds r0, 0x21\n\
+ ldrb r0, [r0]\n\
+ cmp r0, 0x8\n\
+ beq _080127E0\n\
+ adds r0, r1, 0\n\
+ adds r0, 0x22\n\
+ ldrb r0, [r0]\n\
+ cmp r0, 0x8\n\
+ bne _08012818\n\
+_080127E0:\n\
+ subs r1, r4, 0x1\n\
+ lsls r1, 4\n\
+ movs r0, 0x4\n\
+ orrs r1, r0\n\
+ lsls r1, 24\n\
+ lsrs r1, 24\n\
+ ldr r0, _08012810 @ =gLastUsedAbility\n\
+ ldrb r3, [r0]\n\
+ ldr r0, _08012808 @ =gActiveBank\n\
+ ldrb r2, [r0]\n\
+ lsls r0, r2, 1\n\
+ adds r0, r2\n\
+ ldr r2, _08012814 @ =gSharedMem + 0x1606C\n\
+ adds r0, r2\n\
+ str r0, [sp]\n\
+ movs r0, 0\n\
+ movs r2, 0x6\n\
+ bl EmitChoosePokemon\n\
+ b _0801289E\n\
+ .align 2, 0\n\
+_08012808: .4byte gActiveBank\n\
+_0801280C: .4byte gBattleMons\n\
+_08012810: .4byte gLastUsedAbility\n\
+_08012814: .4byte gSharedMem + 0x1606C\n\
+_08012818:\n\
+ ldr r0, _08012830 @ =gActiveBank\n\
+ ldrb r1, [r0]\n\
+ mov r8, r0\n\
+ cmp r1, 0x2\n\
+ bne _08012840\n\
+ ldr r0, _08012834 @ =gActionForBanks\n\
+ ldrb r0, [r0]\n\
+ cmp r0, 0x2\n\
+ bne _08012840\n\
+ ldr r3, _08012838 @ =gSharedMem\n\
+ ldr r4, _0801283C @ =0x00016068\n\
+ b _08012854\n\
+ .align 2, 0\n\
+_08012830: .4byte gActiveBank\n\
+_08012834: .4byte gActionForBanks\n\
+_08012838: .4byte gSharedMem\n\
+_0801283C: .4byte 0x00016068\n\
+_08012840:\n\
+ mov r2, r8\n\
+ ldrb r0, [r2]\n\
+ cmp r0, 0x3\n\
+ bne _08012884\n\
+ ldr r0, _08012874 @ =gActionForBanks\n\
+ ldrb r0, [r0, 0x1]\n\
+ cmp r0, 0x2\n\
+ bne _08012884\n\
+ ldr r3, _08012878 @ =gSharedMem\n\
+ ldr r4, _0801287C @ =0x00016069\n\
+_08012854:\n\
+ adds r0, r3, r4\n\
+ ldrb r2, [r0]\n\
+ mov r0, r8\n\
+ ldrb r1, [r0]\n\
+ lsls r0, r1, 1\n\
+ adds r0, r1\n\
+ ldr r1, _08012880 @ =0x0001606c\n\
+ adds r3, r1\n\
+ adds r0, r3\n\
+ str r0, [sp]\n\
+ movs r0, 0\n\
+ movs r1, 0\n\
+_0801286C:\n\
+ movs r3, 0\n\
+ bl EmitChoosePokemon\n\
+ b _0801289E\n\
+ .align 2, 0\n\
+_08012874: .4byte gActionForBanks\n\
+_08012878: .4byte gSharedMem\n\
+_0801287C: .4byte 0x00016069\n\
+_08012880: .4byte 0x0001606c\n\
+_08012884:\n\
+ ldr r0, _080128A8 @ =gActiveBank\n\
+ ldrb r1, [r0]\n\
+ lsls r0, r1, 1\n\
+ adds r0, r1\n\
+ ldr r1, _080128AC @ =gSharedMem + 0x1606C\n\
+ adds r0, r1\n\
+ str r0, [sp]\n\
+ movs r0, 0\n\
+ movs r1, 0\n\
+ movs r2, 0x6\n\
+ movs r3, 0\n\
+ bl EmitChoosePokemon\n\
+_0801289E:\n\
+ ldr r0, _080128A8 @ =gActiveBank\n\
+ ldrb r0, [r0]\n\
+ bl MarkBufferBankForExecution\n\
+ b _08012968\n\
+ .align 2, 0\n\
+_080128A8: .4byte gActiveBank\n\
+_080128AC: .4byte gSharedMem + 0x1606C\n\
+_080128B0:\n\
+ bl PlayerPartyAndPokemonStorageFull\n\
+ lsls r0, 24\n\
+ cmp r0, 0\n\
+ beq _08012968\n\
+ ldr r1, _080128EC @ =gUnknown_02024C1C\n\
+ ldr r2, _080128F0 @ =gActiveBank\n\
+ ldrb r0, [r2]\n\
+ lsls r0, 2\n\
+ adds r0, r1\n\
+ ldr r1, _080128F4 @ =BattleScript_PrintFullBox\n\
+ str r1, [r0]\n\
+ ldr r0, _080128F8 @ =gBattleCommunication\n\
+ ldrb r1, [r2]\n\
+ adds r1, r0\n\
+ movs r3, 0\n\
+ movs r0, 0x5\n\
+ strb r0, [r1]\n\
+ ldr r1, _080128FC @ =gSharedMem\n\
+ ldrb r0, [r2]\n\
+ ldr r4, _08012900 @ =0x00016060\n\
+ adds r0, r4\n\
+ adds r0, r1\n\
+ strb r3, [r0]\n\
+ ldrb r0, [r2]\n\
+ ldr r2, _08012904 @ =0x00016094\n\
+ adds r0, r2\n\
+ adds r0, r1\n\
+ strb r3, [r0]\n\
+ b _08012F90\n\
+ .align 2, 0\n\
+_080128EC: .4byte gUnknown_02024C1C\n\
+_080128F0: .4byte gActiveBank\n\
+_080128F4: .4byte BattleScript_PrintFullBox\n\
+_080128F8: .4byte gBattleCommunication\n\
+_080128FC: .4byte gSharedMem\n\
+_08012900: .4byte 0x00016060\n\
+_08012904: .4byte 0x00016094\n\
+_08012908:\n\
+ ldr r4, _08012924 @ =gActiveBank\n\
+ ldrb r0, [r4]\n\
+ lsls r1, r0, 1\n\
+ adds r1, r0\n\
+ ldr r0, _08012928 @ =gSharedMem + 0x1606C\n\
+ adds r1, r0\n\
+ movs r0, 0\n\
+ bl EmitOpenBag\n\
+ ldrb r0, [r4]\n\
+ bl MarkBufferBankForExecution\n\
+ b _08012968\n\
+ .align 2, 0\n\
+_08012924: .4byte gActiveBank\n\
+_08012928: .4byte gSharedMem + 0x1606C\n\
+_0801292C:\n\
+ ldr r4, _08012964 @ =gBattleCommunication\n\
+ mov r3, r8\n\
+ ldrb r1, [r3]\n\
+ adds r1, r4\n\
+ movs r5, 0\n\
+ movs r0, 0x6\n\
+ strb r0, [r1]\n\
+ ldrb r0, [r3]\n\
+ bl GetBankIdentity\n\
+ movs r1, 0x2\n\
+ eors r0, r1\n\
+ lsls r0, 24\n\
+ lsrs r0, 24\n\
+ bl GetBankByIdentity\n\
+ lsls r0, 24\n\
+ lsrs r0, 24\n\
+ adds r0, r4\n\
+ strb r5, [r0]\n\
+ movs r0, 0\n\
+ bl Emitcmd50\n\
+ mov r4, r8\n\
+ ldrb r0, [r4]\n\
+ bl MarkBufferBankForExecution\n\
+ b _08012F90\n\
+ .align 2, 0\n\
+_08012964: .4byte gBattleCommunication\n\
+_08012968:\n\
+ ldr r0, _08012994 @ =gBattleTypeFlags\n\
+ ldrh r1, [r0]\n\
+ movs r0, 0xA\n\
+ ands r0, r1\n\
+ cmp r0, 0x8\n\
+ bne _080129A8\n\
+ ldr r0, _08012998 @ =gBattleBufferB\n\
+ ldr r4, _0801299C @ =gActiveBank\n\
+ ldrb r1, [r4]\n\
+ lsls r1, 9\n\
+ adds r0, 0x1\n\
+ adds r1, r0\n\
+ ldrb r0, [r1]\n\
+ cmp r0, 0x3\n\
+ bne _080129A8\n\
+ ldr r0, _080129A0 @ =BattleScript_PrintCantRunFromTrainer\n\
+ bl BattleScriptExecute\n\
+ ldr r1, _080129A4 @ =gBattleCommunication\n\
+ ldrb r0, [r4]\n\
+ adds r0, r1\n\
+ b _08012BFE\n\
+ .align 2, 0\n\
+_08012994: .4byte gBattleTypeFlags\n\
+_08012998: .4byte gBattleBufferB\n\
+_0801299C: .4byte gActiveBank\n\
+_080129A0: .4byte BattleScript_PrintCantRunFromTrainer\n\
+_080129A4: .4byte gBattleCommunication\n\
+_080129A8:\n\
+ bl CanRunFromBattle\n\
+ lsls r0, 24\n\
+ cmp r0, 0\n\
+ beq _08012A14\n\
+ ldr r0, _080129F4 @ =gBattleBufferB\n\
+ ldr r3, _080129F8 @ =gActiveBank\n\
+ ldrb r2, [r3]\n\
+ lsls r1, r2, 9\n\
+ adds r0, 0x1\n\
+ adds r1, r0\n\
+ ldrb r0, [r1]\n\
+ cmp r0, 0x3\n\
+ bne _08012A14\n\
+ ldr r1, _080129FC @ =gUnknown_02024C1C\n\
+ lsls r0, r2, 2\n\
+ adds r0, r1\n\
+ ldr r1, _08012A00 @ =BattleScript_PrintCantEscapeFromBattle\n\
+_080129CC:\n\
+ str r1, [r0]\n\
+ ldr r0, _08012A04 @ =gBattleCommunication\n\
+ ldrb r1, [r3]\n\
+ adds r1, r0\n\
+ movs r2, 0\n\
+ movs r0, 0x5\n\
+ strb r0, [r1]\n\
+ ldr r1, _08012A08 @ =gSharedMem\n\
+ ldrb r0, [r3]\n\
+ ldr r4, _08012A0C @ =0x00016060\n\
+ adds r0, r4\n\
+ adds r0, r1\n\
+ strb r2, [r0]\n\
+ ldrb r0, [r3]\n\
+ ldr r3, _08012A10 @ =0x00016094\n\
+ adds r0, r3\n\
+ adds r0, r1\n\
+ strb r2, [r0]\n\
+ b _08012F90\n\
+ .align 2, 0\n\
+_080129F4: .4byte gBattleBufferB\n\
+_080129F8: .4byte gActiveBank\n\
+_080129FC: .4byte gUnknown_02024C1C\n\
+_08012A00: .4byte BattleScript_PrintCantEscapeFromBattle\n\
+_08012A04: .4byte gBattleCommunication\n\
+_08012A08: .4byte gSharedMem\n\
+_08012A0C: .4byte 0x00016060\n\
+_08012A10: .4byte 0x00016094\n\
+_08012A14:\n\
+ ldr r2, _08012A20 @ =gBattleCommunication\n\
+ ldr r0, _08012A24 @ =gActiveBank\n\
+ ldrb r1, [r0]\n\
+ adds r1, r2\n\
+ b _08012E3E\n\
+ .align 2, 0\n\
+_08012A20: .4byte gBattleCommunication\n\
+_08012A24: .4byte gActiveBank\n\
+_08012A28:\n\
+ ldr r4, _08012A6C @ =gBattleExecBuffer\n\
+ ldr r1, _08012A70 @ =gBitTable\n\
+ ldr r3, _08012A74 @ =gActiveBank\n\
+ ldrb r5, [r3]\n\
+ lsls r0, r5, 2\n\
+ adds r0, r1\n\
+ ldr r2, [r0]\n\
+ lsls r0, r2, 4\n\
+ movs r1, 0xF0\n\
+ lsls r1, 24\n\
+ orrs r0, r1\n\
+ orrs r0, r2\n\
+ lsls r1, r2, 8\n\
+ orrs r0, r1\n\
+ lsls r2, 12\n\
+ orrs r0, r2\n\
+ ldr r1, [r4]\n\
+ ands r1, r0\n\
+ mov r8, r3\n\
+ cmp r1, 0\n\
+ beq _08012A54\n\
+ b _08012F66\n\
+_08012A54:\n\
+ ldr r1, _08012A78 @ =gActionForBanks\n\
+ adds r0, r5, r1\n\
+ ldrb r0, [r0]\n\
+ adds r3, r1, 0\n\
+ cmp r0, 0x9\n\
+ bls _08012A62\n\
+ b _08012F66\n\
+_08012A62:\n\
+ lsls r0, 2\n\
+ ldr r1, _08012A7C @ =_08012A80\n\
+ adds r0, r1\n\
+ ldr r0, [r0]\n\
+ mov pc, r0\n\
+ .align 2, 0\n\
+_08012A6C: .4byte gBattleExecBuffer\n\
+_08012A70: .4byte gBitTable\n\
+_08012A74: .4byte gActiveBank\n\
+_08012A78: .4byte gActionForBanks\n\
+_08012A7C: .4byte _08012A80\n\
+ .align 2, 0\n\
+_08012A80:\n\
+ .4byte _08012AA8\n\
+ .4byte _08012BB0\n\
+ .4byte _08012BE8\n\
+ .4byte _08012CE0\n\
+ .4byte _08012D04\n\
+ .4byte _08012D18\n\
+ .4byte _08012D2C\n\
+ .4byte _08012D5C\n\
+ .4byte _08012D70\n\
+ .4byte _08012D94\n\
+_08012AA8:\n\
+ ldr r0, _08012AC8 @ =gBattleBufferB\n\
+ mov r1, r8\n\
+ ldrb r4, [r1]\n\
+ lsls r1, r4, 9\n\
+ adds r2, r0, 0x1\n\
+ adds r1, r2\n\
+ ldrb r1, [r1]\n\
+ adds r6, r0, 0\n\
+ cmp r1, 0x9\n\
+ bgt _08012ACC\n\
+ cmp r1, 0x3\n\
+ blt _08012ACC\n\
+ adds r0, r4, r3\n\
+ strb r1, [r0]\n\
+ b _08012F90\n\
+ .align 2, 0\n\
+_08012AC8: .4byte gBattleBufferB\n\
+_08012ACC:\n\
+ adds r3, r6, 0\n\
+ mov r5, r8\n\
+ ldrb r4, [r5]\n\
+ lsls r1, r4, 9\n\
+ adds r7, r3, 0x2\n\
+ adds r0, r1, r7\n\
+ ldrb r2, [r0]\n\
+ adds r3, 0x3\n\
+ mov r9, r3\n\
+ add r1, r9\n\
+ ldrb r0, [r1]\n\
+ lsls r0, 8\n\
+ orrs r2, r0\n\
+ ldr r0, _08012AF4 @ =0x0000ffff\n\
+ cmp r2, r0\n\
+ bne _08012AFC\n\
+ ldr r0, _08012AF8 @ =gBattleCommunication\n\
+ adds r0, r4, r0\n\
+ b _08012BFE\n\
+ .align 2, 0\n\
+_08012AF4: .4byte 0x0000ffff\n\
+_08012AF8: .4byte gBattleCommunication\n\
+_08012AFC:\n\
+ bl TrySetCantSelectMoveBattleScript\n\
+ lsls r0, 24\n\
+ cmp r0, 0\n\
+ beq _08012B48\n\
+ ldr r0, _08012B38 @ =gBattleCommunication\n\
+ ldrb r1, [r5]\n\
+ adds r1, r0\n\
+ movs r2, 0\n\
+ movs r0, 0x5\n\
+ strb r0, [r1]\n\
+ ldr r3, _08012B3C @ =gSharedMem\n\
+ ldrb r0, [r5]\n\
+ ldr r4, _08012B40 @ =0x00016060\n\
+ adds r0, r4\n\
+ adds r0, r3\n\
+ strb r2, [r0]\n\
+ ldrb r0, [r5]\n\
+ lsls r0, 9\n\
+ adds r1, r6, 0x1\n\
+ adds r0, r1\n\
+ strb r2, [r0]\n\
+ ldrb r0, [r5]\n\
+ ldr r1, _08012B44 @ =0x00016094\n\
+ adds r0, r1\n\
+ adds r0, r3\n\
+ movs r1, 0x1\n\
+ strb r1, [r0]\n\
+ b _08012F90\n\
+ .align 2, 0\n\
+_08012B38: .4byte gBattleCommunication\n\
+_08012B3C: .4byte gSharedMem\n\
+_08012B40: .4byte 0x00016060\n\
+_08012B44: .4byte 0x00016094\n\
+_08012B48:\n\
+ ldr r6, _08012B98 @ =gSharedMem\n\
+ mov r2, r8\n\
+ ldrb r0, [r2]\n\
+ ldr r2, _08012B9C @ =0x0001608c\n\
+ adds r1, r0, r2\n\
+ adds r1, r6\n\
+ lsls r0, 9\n\
+ adds r0, r7\n\
+ ldrb r0, [r0]\n\
+ strb r0, [r1]\n\
+ ldr r0, _08012BA0 @ =gChosenMovesByBanks\n\
+ mov r4, r8\n\
+ ldrb r3, [r4]\n\
+ lsls r5, r3, 1\n\
+ adds r5, r0\n\
+ ldr r4, _08012BA4 @ =gBattleMons\n\
+ adds r2, r3, r2\n\
+ adds r2, r6\n\
+ ldrb r0, [r2]\n\
+ lsls r0, 1\n\
+ movs r1, 0x58\n\
+ muls r1, r3\n\
+ adds r0, r1\n\
+ adds r4, 0xC\n\
+ adds r0, r4\n\
+ ldrh r0, [r0]\n\
+ strh r0, [r5]\n\
+ mov r1, r8\n\
+ ldrb r0, [r1]\n\
+ ldr r2, _08012BA8 @ =0x00016010\n\
+ adds r1, r0, r2\n\
+ adds r1, r6\n\
+ lsls r0, 9\n\
+ add r0, r9\n\
+ ldrb r0, [r0]\n\
+ strb r0, [r1]\n\
+ ldr r0, _08012BAC @ =gBattleCommunication\n\
+ mov r3, r8\n\
+ ldrb r1, [r3]\n\
+ b _08012E3C\n\
+ .align 2, 0\n\
+_08012B98: .4byte gSharedMem\n\
+_08012B9C: .4byte 0x0001608c\n\
+_08012BA0: .4byte gChosenMovesByBanks\n\
+_08012BA4: .4byte gBattleMons\n\
+_08012BA8: .4byte 0x00016010\n\
+_08012BAC: .4byte gBattleCommunication\n\
+_08012BB0:\n\
+ ldr r2, _08012BD8 @ =gBattleBufferB\n\
+ ldr r5, _08012BDC @ =gActiveBank\n\
+ ldrb r4, [r5]\n\
+ lsls r1, r4, 9\n\
+ adds r0, r2, 0x1\n\
+ adds r0, r1, r0\n\
+ ldrb r3, [r0]\n\
+ adds r2, 0x2\n\
+ adds r1, r2\n\
+ ldrb r0, [r1]\n\
+ lsls r0, 8\n\
+ orrs r3, r0\n\
+ cmp r3, 0\n\
+ bne _08012BCE\n\
+ b _08012F60\n\
+_08012BCE:\n\
+ ldr r0, _08012BE0 @ =gLastUsedItem\n\
+ strh r3, [r0]\n\
+ ldr r0, _08012BE4 @ =gBattleCommunication\n\
+ ldrb r1, [r5]\n\
+ b _08012E3C\n\
+ .align 2, 0\n\
+_08012BD8: .4byte gBattleBufferB\n\
+_08012BDC: .4byte gActiveBank\n\
+_08012BE0: .4byte gLastUsedItem\n\
+_08012BE4: .4byte gBattleCommunication\n\
+_08012BE8:\n\
+ ldr r4, _08012C04 @ =gBattleBufferB\n\
+ ldr r7, _08012C08 @ =gActiveBank\n\
+ ldrb r2, [r7]\n\
+ lsls r0, r2, 9\n\
+ adds r1, r4, 0x1\n\
+ adds r0, r1\n\
+ ldrb r1, [r0]\n\
+ cmp r1, 0x6\n\
+ bne _08012C10\n\
+ ldr r0, _08012C0C @ =gBattleCommunication\n\
+ adds r0, r2, r0\n\
+_08012BFE:\n\
+ movs r1, 0\n\
+ strb r1, [r0]\n\
+ b _08012F66\n\
+ .align 2, 0\n\
+_08012C04: .4byte gBattleBufferB\n\
+_08012C08: .4byte gActiveBank\n\
+_08012C0C: .4byte gBattleCommunication\n\
+_08012C10:\n\
+ ldr r0, _08012CC4 @ =gSharedMem\n\
+ mov r12, r0\n\
+ ldr r3, _08012CC8 @ =0x00016068\n\
+ adds r0, r2, r3\n\
+ add r0, r12\n\
+ strb r1, [r0]\n\
+ ldr r0, _08012CCC @ =gBattleTypeFlags\n\
+ ldrh r1, [r0]\n\
+ movs r0, 0x40\n\
+ ands r0, r1\n\
+ cmp r0, 0\n\
+ beq _08012CBE\n\
+ ldrb r0, [r7]\n\
+ lsls r1, r0, 1\n\
+ adds r1, r0\n\
+ ldr r5, _08012CD0 @ =0x0001606c\n\
+ adds r1, r5\n\
+ add r1, r12\n\
+ ldrb r2, [r1]\n\
+ movs r0, 0xF\n\
+ ands r0, r2\n\
+ strb r0, [r1]\n\
+ ldrb r0, [r7]\n\
+ lsls r2, r0, 1\n\
+ adds r2, r0\n\
+ adds r2, r5\n\
+ add r2, r12\n\
+ lsls r0, 9\n\
+ adds r6, r4, 0x2\n\
+ adds r0, r6\n\
+ ldrb r1, [r0]\n\
+ movs r3, 0xF0\n\
+ adds r0, r3, 0\n\
+ ands r0, r1\n\
+ ldrb r1, [r2]\n\
+ orrs r0, r1\n\
+ strb r0, [r2]\n\
+ ldrb r0, [r7]\n\
+ lsls r1, r0, 1\n\
+ adds r1, r0\n\
+ ldr r2, _08012CD4 @ =0x0001606d\n\
+ adds r1, r2\n\
+ add r1, r12\n\
+ lsls r0, 9\n\
+ adds r4, 0x3\n\
+ mov r8, r4\n\
+ add r0, r8\n\
+ ldrb r0, [r0]\n\
+ strb r0, [r1]\n\
+ ldrb r0, [r7]\n\
+ movs r4, 0x2\n\
+ eors r0, r4\n\
+ lsls r1, r0, 1\n\
+ adds r1, r0\n\
+ adds r1, r5\n\
+ add r1, r12\n\
+ ldrb r2, [r1]\n\
+ adds r0, r3, 0\n\
+ ands r0, r2\n\
+ strb r0, [r1]\n\
+ ldrb r0, [r7]\n\
+ eors r0, r4\n\
+ lsls r1, r0, 1\n\
+ adds r1, r0\n\
+ adds r1, r5\n\
+ add r1, r12\n\
+ ldrb r0, [r7]\n\
+ lsls r0, 9\n\
+ adds r0, r6\n\
+ ldrb r0, [r0]\n\
+ ands r3, r0\n\
+ lsrs r3, 4\n\
+ ldrb r0, [r1]\n\
+ orrs r3, r0\n\
+ strb r3, [r1]\n\
+ ldrb r0, [r7]\n\
+ eors r4, r0\n\
+ lsls r1, r4, 1\n\
+ adds r1, r4\n\
+ ldr r3, _08012CD8 @ =0x0001606e\n\
+ adds r1, r3\n\
+ add r1, r12\n\
+ ldrb r0, [r7]\n\
+ lsls r0, 9\n\
+ add r0, r8\n\
+ ldrb r0, [r0]\n\
+ strb r0, [r1]\n\
+_08012CBE:\n\
+ ldr r0, _08012CDC @ =gBattleCommunication\n\
+ ldrb r1, [r7]\n\
+ b _08012E3C\n\
+ .align 2, 0\n\
+_08012CC4: .4byte gSharedMem\n\
+_08012CC8: .4byte 0x00016068\n\
+_08012CCC: .4byte gBattleTypeFlags\n\
+_08012CD0: .4byte 0x0001606c\n\
+_08012CD4: .4byte 0x0001606d\n\
+_08012CD8: .4byte 0x0001606e\n\
+_08012CDC: .4byte gBattleCommunication\n\
+_08012CE0:\n\
+ ldr r2, _08012CF8 @ =gHitMarker\n\
+ ldr r0, [r2]\n\
+ movs r1, 0x80\n\
+ lsls r1, 8\n\
+ orrs r0, r1\n\
+ str r0, [r2]\n\
+ ldr r2, _08012CFC @ =gBattleCommunication\n\
+ ldr r0, _08012D00 @ =gActiveBank\n\
+ ldrb r1, [r0]\n\
+ adds r1, r2\n\
+ b _08012E3E\n\
+ .align 2, 0\n\
+_08012CF8: .4byte gHitMarker\n\
+_08012CFC: .4byte gBattleCommunication\n\
+_08012D00: .4byte gActiveBank\n\
+_08012D04:\n\
+ ldr r2, _08012D10 @ =gBattleCommunication\n\
+ ldr r0, _08012D14 @ =gActiveBank\n\
+ ldrb r1, [r0]\n\
+ adds r1, r2\n\
+ b _08012E3E\n\
+ .align 2, 0\n\
+_08012D10: .4byte gBattleCommunication\n\
+_08012D14: .4byte gActiveBank\n\
+_08012D18:\n\
+ ldr r2, _08012D24 @ =gBattleCommunication\n\
+ ldr r0, _08012D28 @ =gActiveBank\n\
+ ldrb r1, [r0]\n\
+ adds r1, r2\n\
+ b _08012E3E\n\
+ .align 2, 0\n\
+_08012D24: .4byte gBattleCommunication\n\
+_08012D28: .4byte gActiveBank\n\
+_08012D2C:\n\
+ ldr r2, _08012D50 @ =gBattleBufferB\n\
+ ldr r0, _08012D54 @ =gActiveBank\n\
+ ldrb r4, [r0]\n\
+ lsls r1, r4, 9\n\
+ adds r0, r2, 0x1\n\
+ adds r0, r1, r0\n\
+ ldrb r3, [r0]\n\
+ adds r2, 0x2\n\
+ adds r1, r2\n\
+ ldrb r0, [r1]\n\
+ lsls r0, 8\n\
+ orrs r3, r0\n\
+ cmp r3, 0\n\
+ bne _08012D4A\n\
+ b _08012F60\n\
+_08012D4A:\n\
+ ldr r1, _08012D58 @ =gBattleCommunication\n\
+ adds r1, r4, r1\n\
+ b _08012E3E\n\
+ .align 2, 0\n\
+_08012D50: .4byte gBattleBufferB\n\
+_08012D54: .4byte gActiveBank\n\
+_08012D58: .4byte gBattleCommunication\n\
+_08012D5C:\n\
+ ldr r2, _08012D68 @ =gBattleCommunication\n\
+ ldr r0, _08012D6C @ =gActiveBank\n\
+ ldrb r1, [r0]\n\
+ adds r1, r2\n\
+ b _08012E3E\n\
+ .align 2, 0\n\
+_08012D68: .4byte gBattleCommunication\n\
+_08012D6C: .4byte gActiveBank\n\
+_08012D70:\n\
+ ldr r2, _08012D88 @ =gHitMarker\n\
+ ldr r0, [r2]\n\
+ movs r1, 0x80\n\
+ lsls r1, 8\n\
+ orrs r0, r1\n\
+ str r0, [r2]\n\
+ ldr r2, _08012D8C @ =gBattleCommunication\n\
+ ldr r0, _08012D90 @ =gActiveBank\n\
+ ldrb r1, [r0]\n\
+ adds r1, r2\n\
+ b _08012E3E\n\
+ .align 2, 0\n\
+_08012D88: .4byte gHitMarker\n\
+_08012D8C: .4byte gBattleCommunication\n\
+_08012D90: .4byte gActiveBank\n\
+_08012D94:\n\
+ ldr r2, _08012DA0 @ =gBattleCommunication\n\
+ ldr r0, _08012DA4 @ =gActiveBank\n\
+ ldrb r1, [r0]\n\
+ adds r1, r2\n\
+ b _08012E3E\n\
+ .align 2, 0\n\
+_08012DA0: .4byte gBattleCommunication\n\
+_08012DA4: .4byte gActiveBank\n\
+_08012DA8:\n\
+ ldr r3, _08012E10 @ =gBattleExecBuffer\n\
+ ldr r4, _08012E14 @ =gBitTable\n\
+ ldr r0, _08012E18 @ =gActiveBank\n\
+ ldrb r0, [r0]\n\
+ lsls r0, 2\n\
+ adds r0, r4\n\
+ ldr r2, [r0]\n\
+ lsls r1, r2, 4\n\
+ movs r0, 0xF0\n\
+ lsls r0, 24\n\
+ orrs r1, r0\n\
+ orrs r1, r2\n\
+ lsls r0, r2, 8\n\
+ orrs r1, r0\n\
+ lsls r2, 12\n\
+ orrs r1, r2\n\
+ ldr r0, [r3]\n\
+ ands r0, r1\n\
+ cmp r0, 0\n\
+ beq _08012DD2\n\
+ b _08012F66\n\
+_08012DD2:\n\
+ ldr r0, _08012E1C @ =gBattleTypeFlags\n\
+ ldrh r1, [r0]\n\
+ movs r0, 0x41\n\
+ ands r0, r1\n\
+ cmp r0, 0x1\n\
+ bne _08012E06\n\
+ movs r1, 0x2\n\
+ movs r0, 0x2\n\
+ ands r0, r5\n\
+ cmp r0, 0\n\
+ bne _08012E06\n\
+ adds r0, r5, 0\n\
+ eors r0, r1\n\
+ bl GetBankByIdentity\n\
+ ldr r1, _08012E20 @ =gSharedMem\n\
+ ldr r2, _08012E24 @ =0x000160a6\n\
+ adds r1, r2\n\
+ ldrb r1, [r1]\n\
+ lsls r0, 24\n\
+ lsrs r0, 22\n\
+ adds r0, r4\n\
+ ldr r0, [r0]\n\
+ ands r1, r0\n\
+ cmp r1, 0\n\
+ beq _08012E28\n\
+_08012E06:\n\
+ movs r0, 0\n\
+ movs r1, 0\n\
+ bl EmitLinkStandbyMsg\n\
+ b _08012E30\n\
+ .align 2, 0\n\
+_08012E10: .4byte gBattleExecBuffer\n\
+_08012E14: .4byte gBitTable\n\
+_08012E18: .4byte gActiveBank\n\
+_08012E1C: .4byte gBattleTypeFlags\n\
+_08012E20: .4byte gSharedMem\n\
+_08012E24: .4byte 0x000160a6\n\
+_08012E28:\n\
+ movs r0, 0\n\
+ movs r1, 0x1\n\
+ bl EmitLinkStandbyMsg\n\
+_08012E30:\n\
+ ldr r4, _08012E48 @ =gActiveBank\n\
+_08012E32:\n\
+ ldrb r0, [r4]\n\
+ bl MarkBufferBankForExecution\n\
+ ldr r0, _08012E4C @ =gBattleCommunication\n\
+ ldrb r1, [r4]\n\
+_08012E3C:\n\
+ adds r1, r0\n\
+_08012E3E:\n\
+ ldrb r0, [r1]\n\
+ adds r0, 0x1\n\
+ strb r0, [r1]\n\
+ b _08012F66\n\
+ .align 2, 0\n\
+_08012E48: .4byte gActiveBank\n\
+_08012E4C: .4byte gBattleCommunication\n\
+_08012E50:\n\
+ ldr r3, _08012E84 @ =gBattleExecBuffer\n\
+ ldr r1, _08012E88 @ =gBitTable\n\
+ ldr r0, _08012E8C @ =gActiveBank\n\
+ ldrb r0, [r0]\n\
+ lsls r0, 2\n\
+ adds r0, r1\n\
+ ldr r2, [r0]\n\
+ lsls r1, r2, 4\n\
+ movs r0, 0xF0\n\
+ lsls r0, 24\n\
+ orrs r1, r0\n\
+ orrs r1, r2\n\
+ lsls r0, r2, 8\n\
+ orrs r1, r0\n\
+ lsls r2, 12\n\
+ orrs r1, r2\n\
+ ldr r0, [r3]\n\
+ ands r0, r1\n\
+ cmp r0, 0\n\
+ bne _08012F66\n\
+ ldr r1, _08012E90 @ =gBattleCommunication\n\
+ ldrb r0, [r1, 0x4]\n\
+ adds r0, 0x1\n\
+ strb r0, [r1, 0x4]\n\
+ b _08012F66\n\
+ .align 2, 0\n\
+_08012E84: .4byte gBattleExecBuffer\n\
+_08012E88: .4byte gBitTable\n\
+_08012E8C: .4byte gActiveBank\n\
+_08012E90: .4byte gBattleCommunication\n\
+_08012E94:\n\
+ ldr r2, _08012EB8 @ =gSharedMem\n\
+ ldr r5, _08012EBC @ =gActiveBank\n\
+ ldrb r1, [r5]\n\
+ ldr r3, _08012EC0 @ =0x00016060\n\
+ adds r0, r1, r3\n\
+ adds r0, r2\n\
+ ldrb r0, [r0]\n\
+ cmp r0, 0\n\
+ beq _08012ECC\n\
+ ldr r0, _08012EC4 @ =gBattleCommunication\n\
+ adds r0, r1, r0\n\
+ ldr r4, _08012EC8 @ =0x00016094\n\
+ adds r1, r4\n\
+ adds r1, r2\n\
+ ldrb r1, [r1]\n\
+ strb r1, [r0]\n\
+ b _08012F66\n\
+ .align 2, 0\n\
+_08012EB8: .4byte gSharedMem\n\
+_08012EBC: .4byte gActiveBank\n\
+_08012EC0: .4byte 0x00016060\n\
+_08012EC4: .4byte gBattleCommunication\n\
+_08012EC8: .4byte 0x00016094\n\
+_08012ECC:\n\
+ ldr r0, _08012F20 @ =gBankAttacker\n\
+ strb r1, [r0]\n\
+ ldr r7, _08012F24 @ =gBattlescriptCurrInstr\n\
+ ldr r6, _08012F28 @ =gUnknown_02024C1C\n\
+ ldrb r0, [r5]\n\
+ lsls r0, 2\n\
+ adds r0, r6\n\
+ ldr r4, [r0]\n\
+ str r4, [r7]\n\
+ ldr r3, _08012F2C @ =gBattleExecBuffer\n\
+ ldr r1, _08012F30 @ =gBitTable\n\
+ ldrb r0, [r5]\n\
+ lsls r0, 2\n\
+ adds r0, r1\n\
+ ldr r2, [r0]\n\
+ lsls r1, r2, 4\n\
+ movs r0, 0xF0\n\
+ lsls r0, 24\n\
+ orrs r1, r0\n\
+ orrs r1, r2\n\
+ lsls r0, r2, 8\n\
+ orrs r1, r0\n\
+ lsls r2, 12\n\
+ orrs r1, r2\n\
+ ldr r0, [r3]\n\
+ ands r0, r1\n\
+ cmp r0, 0\n\
+ bne _08012F12\n\
+ ldr r0, _08012F34 @ =gBattleScriptingCommandsTable\n\
+ ldrb r1, [r4]\n\
+ lsls r1, 2\n\
+ adds r1, r0\n\
+ ldr r0, [r1]\n\
+ bl _call_via_r0\n\
+_08012F12:\n\
+ ldrb r0, [r5]\n\
+ lsls r0, 2\n\
+ adds r0, r6\n\
+ ldr r1, [r7]\n\
+ str r1, [r0]\n\
+ b _08012F66\n\
+ .align 2, 0\n\
+_08012F20: .4byte gBankAttacker\n\
+_08012F24: .4byte gBattlescriptCurrInstr\n\
+_08012F28: .4byte gUnknown_02024C1C\n\
+_08012F2C: .4byte gBattleExecBuffer\n\
+_08012F30: .4byte gBitTable\n\
+_08012F34: .4byte gBattleScriptingCommandsTable\n\
+_08012F38:\n\
+ ldr r3, _08012FA0 @ =gBattleExecBuffer\n\
+ ldr r1, _08012FA4 @ =gBitTable\n\
+ ldr r0, _08012FA8 @ =gActiveBank\n\
+ ldrb r4, [r0]\n\
+ lsls r0, r4, 2\n\
+ adds r0, r1\n\
+ ldr r2, [r0]\n\
+ lsls r0, r2, 4\n\
+ movs r1, 0xF0\n\
+ lsls r1, 24\n\
+ orrs r0, r1\n\
+ orrs r0, r2\n\
+ lsls r1, r2, 8\n\
+ orrs r0, r1\n\
+ lsls r2, 12\n\
+ orrs r0, r2\n\
+ ldr r3, [r3]\n\
+ ands r3, r0\n\
+ cmp r3, 0\n\
+ bne _08012F66\n\
+_08012F60:\n\
+ ldr r0, _08012FAC @ =gBattleCommunication\n\
+ adds r0, r4, r0\n\
+ strb r3, [r0]\n\
+_08012F66:\n\
+ ldr r0, _08012FA8 @ =gActiveBank\n\
+ ldrb r1, [r0]\n\
+ adds r1, 0x1\n\
+ strb r1, [r0]\n\
+ ldr r0, _08012FB0 @ =gNoOfAllBanks\n\
+ lsls r1, 24\n\
+ lsrs r1, 24\n\
+_08012F74:\n\
+ adds r2, r0, 0\n\
+ ldrb r0, [r2]\n\
+ cmp r1, r0\n\
+ bcs _08012F80\n\
+ bl _0801234C\n\
+_08012F80:\n\
+ ldr r0, _08012FAC @ =gBattleCommunication\n\
+ ldrb r0, [r0, 0x4]\n\
+ ldrb r2, [r2]\n\
+ cmp r0, r2\n\
+ bne _08012F90\n\
+ ldr r1, _08012FB4 @ =gBattleMainFunc\n\
+ ldr r0, _08012FB8 @ =SetActionsAndBanksTurnOrder\n\
+ str r0, [r1]\n\
+_08012F90:\n\
+ add sp, 0x1C\n\
+ pop {r3-r5}\n\
+ mov r8, r3\n\
+ mov r9, r4\n\
+ mov r10, r5\n\
+ pop {r4-r7}\n\
+ pop {r0}\n\
+ bx r0\n\
+ .align 2, 0\n\
+_08012FA0: .4byte gBattleExecBuffer\n\
+_08012FA4: .4byte gBitTable\n\
+_08012FA8: .4byte gActiveBank\n\
+_08012FAC: .4byte gBattleCommunication\n\
+_08012FB0: .4byte gNoOfAllBanks\n\
+_08012FB4: .4byte gBattleMainFunc\n\
+_08012FB8: .4byte SetActionsAndBanksTurnOrder\n\
+ .syntax divided\n");
+}
+
+void SwapTurnOrder(u8 a, u8 b)
+{
+ int temp;
+
+ temp = gActionsByTurnOrder[a];
+ gActionsByTurnOrder[a] = gActionsByTurnOrder[b];
+ gActionsByTurnOrder[b] = temp;
+
+ temp = gBanksByTurnOrder[a];
+ gBanksByTurnOrder[a] = gBanksByTurnOrder[b];
+ gBanksByTurnOrder[b] = temp;
+}
+
+// Determines which of the two given mons will strike first in a battle.
+// Returns:
+// 0 = first mon moves first
+// 1 = second mon moves first
+// 2 = second mon moves first because it won a 50/50 roll
+u8 GetWhoStrikesFirst(u8 bank1, u8 bank2, bool8 ignoreMovePriorities)
+{
+ int bank1SpeedMultiplier, bank2SpeedMultiplier;
+ u32 bank1AdjustedSpeed, bank2AdjustedSpeed;
+ u8 heldItemEffect;
+ u8 heldItemEffectParam;
+ u16 bank1Move;
+ u16 bank2Move;
+ u8 strikesFirst = 0;
+
+ // Check for abilities that boost speed in weather.
+ if (WEATHER_HAS_EFFECT)
+ {
+ if ((gBattleMons[bank1].ability == ABILITY_SWIFT_SWIM && (gBattleWeather & WEATHER_RAIN_ANY))
+ || (gBattleMons[bank1].ability == ABILITY_CHLOROPHYLL && (gBattleWeather & WEATHER_SUN_ANY)))
+ bank1SpeedMultiplier = 2;
+ else
+ bank1SpeedMultiplier = 1;
+
+ if ((gBattleMons[bank2].ability == ABILITY_SWIFT_SWIM && (gBattleWeather & WEATHER_RAIN_ANY))
+ || (gBattleMons[bank2].ability == ABILITY_CHLOROPHYLL && (gBattleWeather & WEATHER_SUN_ANY)))
+ bank2SpeedMultiplier = 2;
+ else
+ bank2SpeedMultiplier = 1;
+ }
+ else
+ {
+ bank1SpeedMultiplier = 1;
+ bank2SpeedMultiplier = 1;
+ }
+
+ // Calculate adjusted speed for first mon.
+ bank1AdjustedSpeed = (gBattleMons[bank1].speed * bank1SpeedMultiplier)
+ * gStatStageRatios[gBattleMons[bank1].statStages[STAT_STAGE_SPEED]][0] / gStatStageRatios[gBattleMons[bank1].statStages[STAT_STAGE_SPEED]][1];
+
+ if (gBattleMons[bank1].item == ITEM_ENIGMA_BERRY)
+ {
+ heldItemEffect = gEnigmaBerries[bank1].holdEffect;
+ heldItemEffectParam = gEnigmaBerries[bank1].holdEffectParam;
+ }
+ else
+ {
+ heldItemEffect = ItemId_GetHoldEffect(gBattleMons[bank1].item);
+ heldItemEffectParam = ItemId_GetHoldEffectParam(gBattleMons[bank1].item);
+ }
+
+ // Only give badge speed boost to the player's mon.
+ if (!(gBattleTypeFlags & BATTLE_TYPE_LINK) && FlagGet(FLAG_BADGE03_GET) && GetBankSide(bank1) == 0)
+ bank1AdjustedSpeed = (bank1AdjustedSpeed * 110) / 100;
+
+ if (heldItemEffect == HOLD_EFFECT_MACHO_BRACE)
+ bank1AdjustedSpeed /= 2;
+
+ if (gBattleMons[bank1].status1 & STATUS_PARALYSIS)
+ bank1AdjustedSpeed /= 4;
+
+ if (heldItemEffect == HOLD_EFFECT_QUICK_CLAW && gRandomTurnNumber < (heldItemEffectParam * 0xFFFF) / 100)
+ bank1AdjustedSpeed = UINT_MAX;
+
+ // Calculate adjusted speed for second mon.
+ bank2AdjustedSpeed = gBattleMons[bank2].speed * bank2SpeedMultiplier
+ * gStatStageRatios[gBattleMons[bank2].statStages[STAT_STAGE_SPEED]][0] / gStatStageRatios[gBattleMons[bank2].statStages[STAT_STAGE_SPEED]][1];
+
+ if (gBattleMons[bank2].item == ITEM_ENIGMA_BERRY)
+ {
+ heldItemEffect = gEnigmaBerries[bank2].holdEffect;
+ heldItemEffectParam = gEnigmaBerries[bank2].holdEffectParam;
+ }
+ else
+ {
+ heldItemEffect = ItemId_GetHoldEffect(gBattleMons[bank2].item);
+ heldItemEffectParam = ItemId_GetHoldEffectParam(gBattleMons[bank2].item);
+ }
+
+ // Only give badge speed boost to the player's mon.
+ if (!(gBattleTypeFlags & BATTLE_TYPE_LINK) && FlagGet(FLAG_BADGE03_GET) && GetBankSide(bank2) == 0)
+ {
+ bank2AdjustedSpeed = (bank2AdjustedSpeed * 110) / 100;
+ }
+
+ if (heldItemEffect == HOLD_EFFECT_MACHO_BRACE)
+ bank2AdjustedSpeed /= 2;
+
+ if (gBattleMons[bank2].status1 & STATUS_PARALYSIS)
+ bank2AdjustedSpeed /= 4;
+
+ if (heldItemEffect == HOLD_EFFECT_QUICK_CLAW && gRandomTurnNumber < (heldItemEffectParam * 0xFFFF) / 100)
+ bank2AdjustedSpeed = UINT_MAX;
+
+ if (ignoreMovePriorities)
+ {
+ bank1Move = MOVE_NONE;
+ bank2Move = MOVE_NONE;
+ }
+ else
+ {
+ if (gActionForBanks[bank1] == 0)
+ {
+ if (gProtectStructs[bank1].onlyStruggle)
+ bank1Move = MOVE_STRUGGLE;
+ else
+ bank1Move = gBattleMons[bank1].moves[ewram1608Carr(bank1)];
+ }
+ else
+ bank1Move = MOVE_NONE;
+
+ if (gActionForBanks[bank2] == 0)
+ {
+ if (gProtectStructs[bank2].onlyStruggle)
+ bank2Move = MOVE_STRUGGLE;
+ else
+ bank2Move = gBattleMons[bank2].moves[ewram1608Carr(bank2)];
+ }
+ else
+ bank2Move = MOVE_NONE;
+ }
+
+ if (gBattleMoves[bank1Move].priority != 0 || gBattleMoves[bank2Move].priority != 0)
+ {
+ if (gBattleMoves[bank1Move].priority == gBattleMoves[bank2Move].priority)
+ {
+ if (bank1AdjustedSpeed == bank2AdjustedSpeed && (Random() & 1))
+ strikesFirst = 2;
+ else if (bank1AdjustedSpeed < bank2AdjustedSpeed)
+ strikesFirst = 1;
+ }
+ else if (gBattleMoves[bank1Move].priority < gBattleMoves[bank2Move].priority)
+ strikesFirst = 1;
+ }
+ else
+ {
+ if (bank1AdjustedSpeed == bank2AdjustedSpeed && (Random() & 1))
+ strikesFirst = 2;
+ else if (bank1AdjustedSpeed < bank2AdjustedSpeed)
+ strikesFirst = 1;
+ }
+
+ return strikesFirst;
+}
+
+void SetActionsAndBanksTurnOrder(void)
+{
+ s32 var = 0;
+ s32 i, j;
+
+ if (gBattleTypeFlags & BATTLE_TYPE_SAFARI)
+ {
+ for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++)
+ {
+ gActionsByTurnOrder[var] = gActionForBanks[gActiveBank];
+ gBanksByTurnOrder[var] = gActiveBank;
+ var++;
+ }
+ }
+ else
+ {
+ if (gBattleTypeFlags & BATTLE_TYPE_LINK)
+ {
+ for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++)
+ {
+ if (gActionForBanks[gActiveBank] == ACTION_RUN)
+ {
+ var = 5;
+ break;
+ }
+ }
+ }
+ else
+ {
+ if (gActionForBanks[0] == ACTION_RUN)
+ {
+ gActiveBank = 0;
+ var = 5;
+ }
+ }
+
+ if (var == 5)
+ {
+ gActionsByTurnOrder[0] = gActionForBanks[gActiveBank];
+ gBanksByTurnOrder[0] = gActiveBank;
+ var = 1;
+ for (i = 0; i < gNoOfAllBanks; i++)
+ {
+ if (i != gActiveBank)
+ {
+ gActionsByTurnOrder[var] = gActionForBanks[i];
+ gBanksByTurnOrder[var] = i;
+ var++;
+ }
+ }
+ gBattleMainFunc = CheckFocusPunch_ClearVarsBeforeTurnStarts;
+ eFocusPunchBank = 0;
+ return;
+ }
+ else
+ {
+ for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++)
+ {
+ if (gActionForBanks[gActiveBank] == ACTION_USE_ITEM || gActionForBanks[gActiveBank] == ACTION_SWITCH)
+ {
+ gActionsByTurnOrder[var] = gActionForBanks[gActiveBank];
+ gBanksByTurnOrder[var] = gActiveBank;
+ var++;
+ }
+ }
+ for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++)
+ {
+ if (gActionForBanks[gActiveBank] != ACTION_USE_ITEM && gActionForBanks[gActiveBank] != ACTION_SWITCH)
+ {
+ gActionsByTurnOrder[var] = gActionForBanks[gActiveBank];
+ gBanksByTurnOrder[var] = gActiveBank;
+ var++;
+ }
+ }
+ for (i = 0; i < gNoOfAllBanks - 1; i++)
+ {
+ for (j = i + 1; j < gNoOfAllBanks; j++)
+ {
+ u8 bank1 = gBanksByTurnOrder[i];
+ u8 bank2 = gBanksByTurnOrder[j];
+ if (gActionsByTurnOrder[i] != ACTION_USE_ITEM
+ && gActionsByTurnOrder[j] != ACTION_USE_ITEM
+ && gActionsByTurnOrder[i] != ACTION_SWITCH
+ && gActionsByTurnOrder[j] != ACTION_SWITCH)
+ {
+ if (GetWhoStrikesFirst(bank1, bank2, FALSE))
+ SwapTurnOrder(i, j);
+ }
+ }
+ }
+ }
+ }
+ gBattleMainFunc = CheckFocusPunch_ClearVarsBeforeTurnStarts;
+ eFocusPunchBank = 0;
+}
+
+static void TurnValuesCleanUp(bool8 var0)
+{
+ s32 i;
+ u8 *dataPtr;
+
+ for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++)
+ {
+ if (var0)
+ {
+ gProtectStructs[gActiveBank].protected = 0;
+ gProtectStructs[gActiveBank].endured = 0;
+ }
+ else
+ {
+ dataPtr = (u8*)(&gProtectStructs[gActiveBank]);
+ for (i = 0; i < sizeof(struct ProtectStruct); i++)
+ dataPtr[i] = 0;
+
+ if (gDisableStructs[gActiveBank].isFirstTurn)
+ gDisableStructs[gActiveBank].isFirstTurn--;
+
+ if (gDisableStructs[gActiveBank].rechargeCounter)
+ {
+ gDisableStructs[gActiveBank].rechargeCounter--;
+ if (gDisableStructs[gActiveBank].rechargeCounter == 0)
+ gBattleMons[gActiveBank].status2 &= ~(STATUS2_RECHARGE);
+ }
+ }
+
+ if (gDisableStructs[gActiveBank].substituteHP == 0)
+ gBattleMons[gActiveBank].status2 &= ~(STATUS2_SUBSTITUTE);
+ }
+
+ gSideTimers[0].followmeTimer = 0;
+ gSideTimers[1].followmeTimer = 0;
+}
+
+void SpecialStatusesClear(void)
+{
+ for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++)
+ {
+ s32 i;
+ u8 *dataPtr = (u8*)(&gSpecialStatuses[gActiveBank]);
+
+ for (i = 0; i < sizeof(struct SpecialStatus); i++)
+ dataPtr[i] = 0;
+ }
+}
+
+void CheckFocusPunch_ClearVarsBeforeTurnStarts(void)
+{
+ if (!(gHitMarker & HITMARKER_RUN))
+ {
+ while (eFocusPunchBank < gNoOfAllBanks)
+ {
+ gActiveBank = gBankAttacker = eFocusPunchBank;
+ eFocusPunchBank++;
+ if (gChosenMovesByBanks[gActiveBank] == MOVE_FOCUS_PUNCH
+ && !(gBattleMons[gActiveBank].status1 & STATUS_SLEEP)
+ && !(gDisableStructs[gBankAttacker].truantCounter)
+ && !(gProtectStructs[gActiveBank].onlyStruggle))
+ {
+ BattleScriptExecute(BattleScript_FocusPunchSetUp);
+ return;
+ }
+ }
+ }
+
+ TryClearRageStatuses();
+ gCurrentTurnActionNumber = 0;
+ {
+ // something stupid needed to match
+ u8 zero;
+ gCurrentActionFuncId = gActionsByTurnOrder[(zero = 0)];
+ }
+
+ gDynamicBasePower = 0;
+ BATTLE_STRUCT->dynamicMoveType = 0;
+ gBattleMainFunc = RunTurnActionsFunctions;
+ gBattleCommunication[3] = 0;
+ gBattleCommunication[4] = 0;
+ eMultihitMoveEffect = 0;
+ ewram17130 = 0;
+}
+
+static void RunTurnActionsFunctions(void)
+{
+ if (gBattleOutcome != 0)
+ gCurrentActionFuncId = 12;
+
+ BATTLE_STRUCT->unk16057 = gCurrentTurnActionNumber;
+ gUnknown_081FA640[gCurrentActionFuncId]();
+
+ if (gCurrentTurnActionNumber >= gNoOfAllBanks) // everyone did their actions, turn finished
+ {
+ gHitMarker &= ~(HITMARKER_x100000);
+ gBattleMainFunc = gUnknown_081FA678[gBattleOutcome & 0x7F];
+ }
+ else
+ {
+ if (BATTLE_STRUCT->unk16057 != gCurrentTurnActionNumber) // action turn has been done, clear hitmarker bits for another bank
+ {
+ gHitMarker &= ~(HITMARKER_NO_ATTACKSTRING);
+ gHitMarker &= ~(HITMARKER_UNABLE_TO_USE_MOVE);
+ }
+ }
+}
+
+void HandleEndTurn_BattleWon(void)
+{
+ gCurrentActionFuncId = 0;
+
+ if (gBattleTypeFlags & BATTLE_TYPE_LINK)
+ {
+ gBattleTextBuff1[0] = gBattleOutcome;
+ gBankAttacker = GetBankByIdentity(IDENTITY_PLAYER_MON1);
+ gBattlescriptCurrInstr = BattleScript_LinkBattleWonOrLost;
+ gBattleOutcome &= ~(OUTCOME_LINK_BATTLE_RUN);
+ }
+ else if (gBattleTypeFlags & (BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_EREADER_TRAINER))
+ {
+ gBattlescriptCurrInstr = gUnknown_081D8E0D;
+ }
+ else if (gBattleTypeFlags & BATTLE_TYPE_TRAINER && !(gBattleTypeFlags & BATTLE_TYPE_LINK))
+ {
+ BattleMusicStop();
+ gBattlescriptCurrInstr = BattleScript_LocalTrainerBattleWon;
+
+ switch (gTrainers[gTrainerBattleOpponent].trainerClass)
+ {
+ case TRAINER_CLASS_ELITE_FOUR:
+ case TRAINER_CLASS_CHAMPION:
+ PlayBGM(BGM_KACHI5);
+ break;
+ case TRAINER_CLASS_TEAM_AQUA:
+ case TRAINER_CLASS_TEAM_MAGMA:
+ case TRAINER_CLASS_AQUA_ADMIN:
+ case TRAINER_CLASS_AQUA_LEADER:
+ case TRAINER_CLASS_MAGMA_ADMIN:
+ case TRAINER_CLASS_MAGMA_LEADER:
+ PlayBGM(BGM_KACHI4);
+ break;
+ case TRAINER_CLASS_LEADER:
+ PlayBGM(BGM_KACHI3);
+ break;
+ default:
+ PlayBGM(BGM_KACHI1);
+ break;
+ }
+ }
+ else
+ {
+ gBattlescriptCurrInstr = BattleScript_PayDayMoneyAndPickUpItems;
+ }
+
+ gBattleMainFunc = HandleEndTurn_FinishBattle;
+}
+
+void HandleEndTurn_BattleLost(void)
+{
+ gCurrentActionFuncId = 0;
+
+ if (gBattleTypeFlags & BATTLE_TYPE_LINK)
+ {
+ gBattleTextBuff1[0] = gBattleOutcome;
+ gBankAttacker = GetBankByIdentity(IDENTITY_PLAYER_MON1);
+ gBattlescriptCurrInstr = BattleScript_LinkBattleWonOrLost;
+ gBattleOutcome &= ~(OUTCOME_LINK_BATTLE_RUN);
+ }
+ else
+ {
+ gBattlescriptCurrInstr = BattleScript_LocalBattleLost;
+ }
+
+ gBattleMainFunc = HandleEndTurn_FinishBattle;
+}
+
+void HandleEndTurn_RanFromBattle(void)
+{
+ gCurrentActionFuncId = 0;
+
+ switch (gProtectStructs[gBankAttacker].fleeFlag)
+ {
+ default:
+ gBattlescriptCurrInstr = BattleScript_GotAwaySafely;
+ break;
+ case 1:
+ gBattlescriptCurrInstr = BattleScript_SmokeBallEscape;
+ break;
+ case 2:
+ gBattlescriptCurrInstr = BattleScript_RanAwayUsingMonAbility;
+ break;
+ }
+
+ gBattleMainFunc = HandleEndTurn_FinishBattle;
+}
+
+void HandleEndTurn_MonFled(void)
+{
+ gCurrentActionFuncId = 0;
+
+ PREPARE_MON_NICK_BUFFER(gBattleTextBuff1, gBankAttacker, gBattlePartyID[gBankAttacker]);
+ gBattlescriptCurrInstr = BattleScript_WildMonFled;
+
+ gBattleMainFunc = HandleEndTurn_FinishBattle;
+}
+
+void HandleEndTurn_FinishBattle(void)
+{
+ if (gCurrentActionFuncId == 0xB || gCurrentActionFuncId == 0xC)
+ {
+ if (!(gBattleTypeFlags & (BATTLE_TYPE_LINK
+ | BATTLE_TYPE_FIRST_BATTLE
+ | BATTLE_TYPE_SAFARI
+ | BATTLE_TYPE_EREADER_TRAINER
+ | BATTLE_TYPE_WALLY_TUTORIAL
+ | BATTLE_TYPE_BATTLE_TOWER)))
+ {
+ for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++)
+ {
+ if (GetBankSide(gActiveBank) == SIDE_PLAYER)
+ {
+ if (gBattleResults.poke1Species == SPECIES_NONE)
+ {
+ gBattleResults.poke1Species = gBattleMons[gActiveBank].species;
+ StringCopy(gBattleResults.pokeString1, gBattleMons[gActiveBank].nickname);
+ }
+ else
+ {
+ gBattleResults.opponentSpecies = gBattleMons[gActiveBank].species;
+ StringCopy(gBattleResults.pokeString2, gBattleMons[gActiveBank].nickname);
+ }
+ }
+ }
+ PutPokemonTodayCaughtOnAir();
+ }
+
+ BeginFastPaletteFade(3);
+ FadeOutMapMusic(5);
+ gBattleMainFunc = FreeResetData_ReturnToOvOrDoEvolutions;
+ gCB2_AfterEvolution = BattleMainCB2;
+ }
+ else
+ {
+ if (gBattleExecBuffer == 0)
+ gBattleScriptingCommandsTable[gBattlescriptCurrInstr[0]]();
+ }
+}
+
+static void FreeResetData_ReturnToOvOrDoEvolutions(void)
+{
+ if (!gPaletteFade.active)
+ {
+ ResetSpriteData();
+ if (gLeveledUpInBattle == 0 || gBattleOutcome != BATTLE_WON)
+ {
+ gBattleMainFunc = ReturnFromBattleToOverworld;
+ return;
+ }
+ else
+ {
+ gBattleMainFunc = TryEvolvePokemon;
+ }
+ }
+}
+
+void TryEvolvePokemon(void)
+{
+ s32 i;
+
+ while (gLeveledUpInBattle != 0)
+ {
+ for (i = 0; i < 6; i++)
+ {
+ if (gLeveledUpInBattle & gBitTable[i])
+ {
+ u16 species;
+ u8 levelUpBits = gLeveledUpInBattle;
+
+ levelUpBits &= ~(gBitTable[i]);
+ gLeveledUpInBattle = levelUpBits;
+
+ species = GetEvolutionTargetSpecies(&gPlayerParty[i], 0, levelUpBits);
+ if (species != SPECIES_NONE)
+ {
+ gBattleMainFunc = WaitForEvoSceneToFinish;
+ EvolutionScene(&gPlayerParty[i], species, 0x81, i);
+ return;
+ }
+ }
+ }
+ }
+
+ gBattleMainFunc = ReturnFromBattleToOverworld;
+}
+
+static void WaitForEvoSceneToFinish(void)
+{
+ if (gMain.callback2 == BattleMainCB2)
+ gBattleMainFunc = TryEvolvePokemon;
+}
+
+static void ReturnFromBattleToOverworld(void)
+{
+ if (!(gBattleTypeFlags & BATTLE_TYPE_LINK))
+ {
+ RandomlyGivePartyPokerus(gPlayerParty);
+ PartySpreadPokerus(gPlayerParty);
+ }
+
+ if (gBattleTypeFlags & BATTLE_TYPE_LINK && gReceivedRemoteLinkPlayers != 0)
+ return;
+
+ gSpecialVar_Result = gBattleOutcome;
+ gMain.inBattle = 0;
+ gMain.callback1 = gPreBattleCallback1;
+
+ if (gBattleTypeFlags & BATTLE_TYPE_ROAMER)
+ {
+ UpdateRoamerHPStatus(&gEnemyParty[0]);
+ if (gBattleOutcome == BATTLE_WON || gBattleOutcome == BATTLE_CAUGHT)
+ SetRoamerInactive();
+ }
+
+ m4aSongNumStop(0x5A);
+ SetMainCallback2(gMain.savedCallback);
+}
+
+void RunBattleScriptCommands_PopCallbacksStack(void)
+{
+ if (gCurrentActionFuncId == 0xB || gCurrentActionFuncId == 0xC)
+ {
+ if (B_FUNCTION_STACK->size != 0)
+ B_FUNCTION_STACK->size--;
+ gBattleMainFunc = B_FUNCTION_STACK->ptr[B_FUNCTION_STACK->size];
+ }
+ else
+ {
+ if (gBattleExecBuffer == 0)
+ gBattleScriptingCommandsTable[gBattlescriptCurrInstr[0]]();
+ }
+}
+
+void RunBattleScriptCommands(void)
+{
+ if (gBattleExecBuffer == 0)
+ gBattleScriptingCommandsTable[gBattlescriptCurrInstr[0]]();
+}
+
+void HandleAction_UseMove(void)
+{
+ u8 side;
+ u8 var = 4;
+
+ gBankAttacker = gBanksByTurnOrder[gCurrentTurnActionNumber];
+
+ if (ewram160A6 & gBitTable[gBankAttacker])
+ {
+ gCurrentActionFuncId = ACTION_FINISHED;
+ return;
+ }
+
+ gCritMultiplier = 1;
+ eDmgMultiplier = 1;
+ ewram160E7 = 0;
+ gBattleMoveFlags = 0;
+ gMultiHitCounter = 0;
+ gBattleCommunication[6] = 0;
+ gCurrMovePos = gUnknown_02024BE5 = ewram1608Carr(gBankAttacker);
+
+ // choose move
+ if (gProtectStructs[gBankAttacker].onlyStruggle)
+ {
+ gProtectStructs[gBankAttacker].onlyStruggle = 0;
+ gCurrentMove = gChosenMove = MOVE_STRUGGLE;
+ gHitMarker |= HITMARKER_NO_PPDEDUCT;
+ ewram16010arr(gBankAttacker) = GetMoveTarget(MOVE_STRUGGLE, 0);
+ }
+ else if (gBattleMons[gBankAttacker].status2 & STATUS2_MULTIPLETURNS || gBattleMons[gBankAttacker].status2 & STATUS2_RECHARGE)
+ {
+ gCurrentMove = gChosenMove = gLockedMoves[gBankAttacker];
+ }
+ // encore forces you to use the same move
+ else if (gDisableStructs[gBankAttacker].encoredMove != MOVE_NONE
+ && gDisableStructs[gBankAttacker].encoredMove == gBattleMons[gBankAttacker].moves[gDisableStructs[gBankAttacker].encoredMovePos])
+ {
+ gCurrentMove = gChosenMove = gDisableStructs[gBankAttacker].encoredMove;
+ gCurrMovePos = gUnknown_02024BE5 = gDisableStructs[gBankAttacker].encoredMovePos;
+ ewram16010arr(gBankAttacker) = GetMoveTarget(gCurrentMove, 0);
+ }
+ // check if the encored move wasn't overwritten
+ else if (gDisableStructs[gBankAttacker].encoredMove != MOVE_NONE
+ && gDisableStructs[gBankAttacker].encoredMove != gBattleMons[gBankAttacker].moves[gDisableStructs[gBankAttacker].encoredMovePos])
+ {
+ gCurrMovePos = gUnknown_02024BE5 = gDisableStructs[gBankAttacker].encoredMovePos;
+ gCurrentMove = gChosenMove = gBattleMons[gBankAttacker].moves[gCurrMovePos];
+ gDisableStructs[gBankAttacker].encoredMove = MOVE_NONE;
+ gDisableStructs[gBankAttacker].encoredMovePos = 0;
+ gDisableStructs[gBankAttacker].encoreTimer1 = 0;
+ ewram16010arr(gBankAttacker) = GetMoveTarget(gCurrentMove, 0);
+ }
+ else if (gBattleMons[gBankAttacker].moves[gCurrMovePos] != gChosenMovesByBanks[gBankAttacker])
+ {
+ gCurrentMove = gChosenMove = gBattleMons[gBankAttacker].moves[gCurrMovePos];
+ ewram16010arr(gBankAttacker) = GetMoveTarget(gCurrentMove, 0);
+ }
+ else
+ {
+ gCurrentMove = gChosenMove = gBattleMons[gBankAttacker].moves[gCurrMovePos];
+ }
+
+ if (GetBankSide(gBankAttacker) == SIDE_PLAYER)
+ gBattleResults.lastUsedMove = gCurrentMove;
+ else
+ gBattleResults.opponentMove = gCurrentMove;
+
+ // choose target
+ side = GetBankSide(gBankAttacker) ^ BIT_SIDE;
+ if (gSideTimers[side].followmeTimer != 0
+ && gBattleMoves[gCurrentMove].target == MOVE_TARGET_SELECTED
+ && GetBankSide(gBankAttacker) != GetBankSide(gSideTimers[side].followmeTarget)
+ && gBattleMons[gSideTimers[side].followmeTarget].hp != 0)
+ {
+ gBankTarget = gSideTimers[side].followmeTarget;
+ }
+ else if ((gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
+ && gSideTimers[side].followmeTimer == 0
+ && (gBattleMoves[gCurrentMove].power != 0
+ || gBattleMoves[gCurrentMove].target != MOVE_TARGET_x10)
+ && gBattleMons[ewram16010arr(gBankAttacker)].ability != ABILITY_LIGHTNING_ROD
+ && gBattleMoves[gCurrentMove].type == TYPE_ELECTRIC)
+ {
+ side = GetBankSide(gBankAttacker);
+ for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++)
+ {
+ if (side != GetBankSide(gActiveBank)
+ && ewram16010arr(gBankAttacker) != gActiveBank
+ && gBattleMons[gActiveBank].ability == ABILITY_LIGHTNING_ROD
+ && BankGetTurnOrder(gActiveBank) < var)
+ {
+ var = BankGetTurnOrder(gActiveBank);
+ }
+ }
+ if (var == 4)
+ {
+ if (gBattleMoves[gChosenMove].target & MOVE_TARGET_RANDOM)
+ {
+ if (GetBankSide(gBankAttacker) == SIDE_PLAYER)
+ {
+ if (Random() & 1)
+ gBankTarget = GetBankByIdentity(IDENTITY_OPPONENT_MON1);
+ else
+ gBankTarget = GetBankByIdentity(IDENTITY_OPPONENT_MON2);
+ }
+ else
+ {
+ if (Random() & 1)
+ gBankTarget = GetBankByIdentity(IDENTITY_PLAYER_MON1);
+ else
+ gBankTarget = GetBankByIdentity(IDENTITY_PLAYER_MON2);
+ }
+ }
+ else
+ {
+ gBankTarget = ewram16010arr(gBankAttacker);
+ }
+
+ if (gAbsentBankFlags & gBitTable[gBankTarget])
+ {
+ if (GetBankSide(gBankAttacker) != GetBankSide(gBankTarget))
+ {
+ gBankTarget = GetBankByIdentity(GetBankIdentity(gBankTarget) ^ BIT_MON);
+ }
+ else
+ {
+ gBankTarget = GetBankByIdentity(GetBankIdentity(gBankAttacker) ^ BIT_SIDE);
+ if (gAbsentBankFlags & gBitTable[gBankTarget])
+ gBankTarget = GetBankByIdentity(GetBankIdentity(gBankTarget) ^ BIT_MON);
+ }
+ }
+ }
+ else
+ {
+ gActiveBank = gBanksByTurnOrder[var];
+ RecordAbilityBattle(gActiveBank, gBattleMons[gActiveBank].ability);
+ gSpecialStatuses[gActiveBank].lightningRodRedirected = 1;
+ gBankTarget = gActiveBank;
+ }
+ }
+ else if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE
+ && gBattleMoves[gChosenMove].target & MOVE_TARGET_RANDOM)
+ {
+ if (GetBankSide(gBankAttacker) == SIDE_PLAYER)
+ {
+ if (Random() & 1)
+ gBankTarget = GetBankByIdentity(IDENTITY_OPPONENT_MON1);
+ else
+ gBankTarget = GetBankByIdentity(IDENTITY_OPPONENT_MON2);
+ }
+ else
+ {
+ if (Random() & 1)
+ gBankTarget = GetBankByIdentity(IDENTITY_PLAYER_MON1);
+ else
+ gBankTarget = GetBankByIdentity(IDENTITY_PLAYER_MON2);
+ }
+
+ if (gAbsentBankFlags & gBitTable[gBankTarget]
+ && GetBankSide(gBankAttacker) != GetBankSide(gBankTarget))
+ {
+ gBankTarget = GetBankByIdentity(GetBankIdentity(gBankTarget) ^ BIT_MON);
+ }
+ }
+ else
+ {
+ gBankTarget = ewram16010arr(gBankAttacker);
+ if (gAbsentBankFlags & gBitTable[gBankTarget])
+ {
+ if (GetBankSide(gBankAttacker) != GetBankSide(gBankTarget))
+ {
+ gBankTarget = GetBankByIdentity(GetBankIdentity(gBankTarget) ^ BIT_MON);
+ }
+ else
+ {
+ gBankTarget = GetBankByIdentity(GetBankIdentity(gBankAttacker) ^ BIT_SIDE);
+ if (gAbsentBankFlags & gBitTable[gBankTarget])
+ gBankTarget = GetBankByIdentity(GetBankIdentity(gBankTarget) ^ BIT_MON);
+ }
+ }
+ }
+
+ gBattlescriptCurrInstr = gBattleScriptsForMoveEffects[gBattleMoves[gCurrentMove].effect];
+ gCurrentActionFuncId = ACTION_RUN_BATTLESCRIPT;
+}
+
+void HandleAction_Switch(void)
+{
+ gBankAttacker = gBanksByTurnOrder[gCurrentTurnActionNumber];
+ gBattle_BG0_X = 0;
+ gBattle_BG0_Y = 0;
+ gActionSelectionCursor[gBankAttacker] = 0;
+ gMoveSelectionCursor[gBankAttacker] = 0;
+
+ PREPARE_MON_NICK_BUFFER(gBattleTextBuff1, gBankAttacker, ewram16064arr(gBankAttacker))
+
+ ewram16003 = gBankAttacker;
+ gBattlescriptCurrInstr = BattleScript_ActionSwitch;
+ gCurrentActionFuncId = ACTION_RUN_BATTLESCRIPT;
+
+ if (gBattleResults.unk2 < 255)
+ gBattleResults.unk2++;
+}
+
+#ifdef NONMATCHING
+void HandleAction_UseItem(void)
+{
+ gBankAttacker = gBankTarget = gBanksByTurnOrder[gCurrentTurnActionNumber];
+ gBattle_BG0_X = 0;
+ gBattle_BG0_Y = 0;
+ gDisableStructs[gBankAttacker].furyCutterCounter = 0;
+ gLastUsedItem = gBattleBufferB[gBankAttacker][1] | (gBattleBufferB[gBankAttacker][2] << 8);
+
+ if (gLastUsedItem <= ITEM_PREMIER_BALL) // is ball
+ {
+ gBattlescriptCurrInstr = gBattlescriptsForBallThrow[gLastUsedItem];
+ }
+ else if (gLastUsedItem == ITEM_POKE_DOLL || gLastUsedItem == ITEM_FLUFFY_TAIL)
+ {
+ gBattlescriptCurrInstr = gBattlescriptsForRunningByItem[0];
+ }
+ else if (GetBankSide(gBankAttacker) == SIDE_PLAYER)
+ {
+ gBattlescriptCurrInstr = gBattlescriptsForUsingItem[0];
+ }
+ else
+ {
+ ewram16003 = gBankAttacker;
+
+ switch (ewram160D8(gBankAttacker))
+ {
+ case AI_ITEM_FULL_RESTORE:
+ case AI_ITEM_HEAL_HP:
+ break;
+ case AI_ITEM_CURE_CONDITION:
+ gBattleCommunication[MULTISTRING_CHOOSER] = 0;
+ if (ewram160DA(gBankAttacker) & 1)
+ {
+ if (ewram160DA(gBankAttacker) & 0x3E)
+ gBattleCommunication[MULTISTRING_CHOOSER] = 5;
+ }
+ else
+ {
+ while (!(ewram160DA(gBankAttacker) & 1))
+ {
+ ewram160DA(gBankAttacker) /= 2;
+ gBattleCommunication[MULTISTRING_CHOOSER]++;
+ }
+ }
+ break;
+ case AI_ITEM_X_STAT:
+ gBattleCommunication[MULTISTRING_CHOOSER] = 4;
+ if (ewram160DA(gBankAttacker) & 0x80)
+ {
+ gBattleCommunication[MULTISTRING_CHOOSER] = 5;
+ }
+ else
+ {
+ PREPARE_STAT_BUFFER(gBattleTextBuff1, STAT_ATK)
+ PREPARE_STRING_BUFFER(gBattleTextBuff2, 0xD2)
+
+ while (!(ewram160DA(gBankAttacker) & 1))
+ {
+ ewram160DA(gBankAttacker) /= 2;
+ gBattleTextBuff1[2]++;
+ }
+
+ ewram160A4 = gBattleTextBuff1[2] + 14;
+ ewram160A5 = 0;
+ }
+ break;
+ case AI_ITEM_GUARD_SPECS:
+ if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
+ gBattleCommunication[MULTISTRING_CHOOSER] = 2;
+ else
+ gBattleCommunication[MULTISTRING_CHOOSER] = 0;
+ break;
+ }
+
+ gBattlescriptCurrInstr = gBattlescriptsForUsingItem[ewram160D8(gBankAttacker)];
+ }
+ gCurrentActionFuncId = ACTION_RUN_BATTLESCRIPT;
+}
+#else
+__attribute__((naked))
+void HandleAction_UseItem(void)
+{
+ asm(".syntax unified\n\
+ push {r4-r7,lr}\n\
+ mov r7, r10\n\
+ mov r6, r9\n\
+ mov r5, r8\n\
+ push {r5-r7}\n\
+ ldr r4, _08014804 @ =gBankAttacker\n\
+ ldr r2, _08014808 @ =gBankTarget\n\
+ ldr r1, _0801480C @ =gBanksByTurnOrder\n\
+ ldr r0, _08014810 @ =gCurrentTurnActionNumber\n\
+ ldrb r0, [r0]\n\
+ adds r0, r1\n\
+ ldrb r0, [r0]\n\
+ strb r0, [r2]\n\
+ strb r0, [r4]\n\
+ ldr r0, _08014814 @ =gBattle_BG0_X\n\
+ movs r2, 0\n\
+ strh r2, [r0]\n\
+ ldr r0, _08014818 @ =gBattle_BG0_Y\n\
+ strh r2, [r0]\n\
+ ldr r3, _0801481C @ =gDisableStructs\n\
+ ldrb r1, [r4]\n\
+ lsls r0, r1, 3\n\
+ subs r0, r1\n\
+ lsls r0, 2\n\
+ adds r0, r3\n\
+ strb r2, [r0, 0x10]\n\
+ ldr r5, _08014820 @ =gLastUsedItem\n\
+ ldr r2, _08014824 @ =gBattleBufferB\n\
+ ldrb r1, [r4]\n\
+ lsls r1, 9\n\
+ adds r0, r2, 0x1\n\
+ adds r0, r1, r0\n\
+ ldrb r3, [r0]\n\
+ adds r2, 0x2\n\
+ adds r1, r2\n\
+ ldrb r0, [r1]\n\
+ lsls r0, 8\n\
+ orrs r3, r0\n\
+ strh r3, [r5]\n\
+ cmp r3, 0xC\n\
+ bhi _08014830\n\
+ ldr r2, _08014828 @ =gBattlescriptCurrInstr\n\
+ ldr r1, _0801482C @ =gBattlescriptsForBallThrow\n\
+ ldrh r0, [r5]\n\
+ lsls r0, 2\n\
+ adds r0, r1\n\
+ ldr r0, [r0]\n\
+ str r0, [r2]\n\
+ b _08014A8C\n\
+ .align 2, 0\n\
+_08014804: .4byte gBankAttacker\n\
+_08014808: .4byte gBankTarget\n\
+_0801480C: .4byte gBanksByTurnOrder\n\
+_08014810: .4byte gCurrentTurnActionNumber\n\
+_08014814: .4byte gBattle_BG0_X\n\
+_08014818: .4byte gBattle_BG0_Y\n\
+_0801481C: .4byte gDisableStructs\n\
+_08014820: .4byte gLastUsedItem\n\
+_08014824: .4byte gBattleBufferB\n\
+_08014828: .4byte gBattlescriptCurrInstr\n\
+_0801482C: .4byte gBattlescriptsForBallThrow\n\
+_08014830:\n\
+ adds r0, r3, 0\n\
+ subs r0, 0x50\n\
+ lsls r0, 16\n\
+ lsrs r0, 16\n\
+ cmp r0, 0x1\n\
+ bhi _0801484C\n\
+ ldr r0, _08014844 @ =gBattlescriptCurrInstr\n\
+ ldr r1, _08014848 @ =gBattlescriptsForRunningByItem\n\
+ b _0801485C\n\
+ .align 2, 0\n\
+_08014844: .4byte gBattlescriptCurrInstr\n\
+_08014848: .4byte gBattlescriptsForRunningByItem\n\
+_0801484C:\n\
+ ldrb r0, [r4]\n\
+ bl GetBankSide\n\
+ lsls r0, 24\n\
+ cmp r0, 0\n\
+ bne _0801486C\n\
+ ldr r0, _08014864 @ =gBattlescriptCurrInstr\n\
+ ldr r1, _08014868 @ =gBattlescriptsForUsingItem\n\
+_0801485C:\n\
+ ldr r1, [r1]\n\
+ str r1, [r0]\n\
+ b _08014A8C\n\
+ .align 2, 0\n\
+_08014864: .4byte gBattlescriptCurrInstr\n\
+_08014868: .4byte gBattlescriptsForUsingItem\n\
+_0801486C:\n\
+ ldr r2, _080148A0 @ =gSharedMem\n\
+ ldrb r0, [r4]\n\
+ ldr r3, _080148A4 @ =0x00016003\n\
+ adds r1, r2, r3\n\
+ strb r0, [r1]\n\
+ lsls r0, 24\n\
+ lsrs r0, 25\n\
+ ldr r1, _080148A8 @ =0x000160d8\n\
+ adds r0, r1\n\
+ adds r0, r2\n\
+ ldrb r0, [r0]\n\
+ subs r0, 0x1\n\
+ mov r8, r4\n\
+ ldr r3, _080148AC @ =gBattlescriptCurrInstr\n\
+ mov r9, r3\n\
+ ldr r1, _080148B0 @ =gBattlescriptsForUsingItem\n\
+ mov r10, r1\n\
+ adds r7, r2, 0\n\
+ cmp r0, 0x4\n\
+ bls _08014896\n\
+ b _08014A74\n\
+_08014896:\n\
+ lsls r0, 2\n\
+ ldr r1, _080148B4 @ =_080148B8\n\
+ adds r0, r1\n\
+ ldr r0, [r0]\n\
+ mov pc, r0\n\
+ .align 2, 0\n\
+_080148A0: .4byte gSharedMem\n\
+_080148A4: .4byte 0x00016003\n\
+_080148A8: .4byte 0x000160d8\n\
+_080148AC: .4byte gBattlescriptCurrInstr\n\
+_080148B0: .4byte gBattlescriptsForUsingItem\n\
+_080148B4: .4byte _080148B8\n\
+ .align 2, 0\n\
+_080148B8:\n\
+ .4byte _08014A74\n\
+ .4byte _08014A74\n\
+ .4byte _080148CC\n\
+ .4byte _08014958\n\
+ .4byte _08014A30\n\
+_080148CC:\n\
+ ldr r2, _08014904 @ =gBattleCommunication\n\
+ movs r0, 0\n\
+ strb r0, [r2, 0x5]\n\
+ ldr r1, _08014908 @ =gBankAttacker\n\
+ ldrb r0, [r1]\n\
+ lsrs r0, 1\n\
+ ldr r6, _0801490C @ =0x000160da\n\
+ adds r0, r6\n\
+ adds r0, r7\n\
+ ldrb r3, [r0]\n\
+ movs r0, 0x1\n\
+ ands r0, r3\n\
+ mov r8, r1\n\
+ cmp r0, 0\n\
+ beq _08014918\n\
+ movs r0, 0x3E\n\
+ ands r0, r3\n\
+ ldr r3, _08014910 @ =gBattlescriptCurrInstr\n\
+ mov r9, r3\n\
+ ldr r1, _08014914 @ =gBattlescriptsForUsingItem\n\
+ mov r10, r1\n\
+ cmp r0, 0\n\
+ bne _080148FC\n\
+ b _08014A74\n\
+_080148FC:\n\
+ movs r0, 0x5\n\
+ strb r0, [r2, 0x5]\n\
+ b _08014A74\n\
+ .align 2, 0\n\
+_08014904: .4byte gBattleCommunication\n\
+_08014908: .4byte gBankAttacker\n\
+_0801490C: .4byte 0x000160da\n\
+_08014910: .4byte gBattlescriptCurrInstr\n\
+_08014914: .4byte gBattlescriptsForUsingItem\n\
+_08014918:\n\
+ ldr r3, _08014950 @ =gBattlescriptCurrInstr\n\
+ mov r9, r3\n\
+ ldr r0, _08014954 @ =gBattlescriptsForUsingItem\n\
+ mov r10, r0\n\
+ adds r5, r7, 0\n\
+ mov r4, r8\n\
+ adds r3, r6, 0\n\
+_08014926:\n\
+ ldrb r0, [r4]\n\
+ lsrs r0, 1\n\
+ adds r0, r3\n\
+ adds r0, r5\n\
+ ldrb r1, [r0]\n\
+ lsrs r1, 1\n\
+ strb r1, [r0]\n\
+ ldrb r0, [r2, 0x5]\n\
+ adds r0, 0x1\n\
+ strb r0, [r2, 0x5]\n\
+ ldrb r0, [r4]\n\
+ lsrs r0, 1\n\
+ adds r0, r3\n\
+ adds r0, r5\n\
+ ldrb r1, [r0]\n\
+ movs r0, 0x1\n\
+ ands r0, r1\n\
+ cmp r0, 0\n\
+ beq _08014926\n\
+ b _08014A74\n\
+ .align 2, 0\n\
+_08014950: .4byte gBattlescriptCurrInstr\n\
+_08014954: .4byte gBattlescriptsForUsingItem\n\
+_08014958:\n\
+ ldr r3, _0801498C @ =gBattleCommunication\n\
+ movs r0, 0x4\n\
+ strb r0, [r3, 0x5]\n\
+ ldr r2, _08014990 @ =gBankAttacker\n\
+ ldrb r0, [r2]\n\
+ lsrs r0, 1\n\
+ ldr r1, _08014994 @ =0x000160da\n\
+ mov r12, r1\n\
+ add r0, r12\n\
+ adds r6, r0, r7\n\
+ ldrb r1, [r6]\n\
+ movs r0, 0x80\n\
+ ands r0, r1\n\
+ lsls r0, 24\n\
+ lsrs r5, r0, 24\n\
+ mov r8, r2\n\
+ cmp r5, 0\n\
+ beq _080149A0\n\
+ movs r0, 0x5\n\
+ strb r0, [r3, 0x5]\n\
+ ldr r2, _08014998 @ =gBattlescriptCurrInstr\n\
+ mov r9, r2\n\
+ ldr r3, _0801499C @ =gBattlescriptsForUsingItem\n\
+ mov r10, r3\n\
+ b _08014A74\n\
+ .align 2, 0\n\
+_0801498C: .4byte gBattleCommunication\n\
+_08014990: .4byte gBankAttacker\n\
+_08014994: .4byte 0x000160da\n\
+_08014998: .4byte gBattlescriptCurrInstr\n\
+_0801499C: .4byte gBattlescriptsForUsingItem\n\
+_080149A0:\n\
+ ldr r3, _08014A18 @ =gBattleTextBuff1\n\
+ movs r4, 0xFD\n\
+ strb r4, [r3]\n\
+ movs r0, 0x5\n\
+ strb r0, [r3, 0x1]\n\
+ movs r2, 0x1\n\
+ strb r2, [r3, 0x2]\n\
+ movs r0, 0xFF\n\
+ strb r0, [r3, 0x3]\n\
+ ldr r1, _08014A1C @ =gBattleTextBuff2\n\
+ strb r4, [r1]\n\
+ strb r5, [r1, 0x1]\n\
+ movs r0, 0xD2\n\
+ strb r0, [r1, 0x2]\n\
+ strb r5, [r1, 0x3]\n\
+ subs r0, 0xD3\n\
+ strb r0, [r1, 0x4]\n\
+ ldrb r0, [r6]\n\
+ ands r2, r0\n\
+ ldr r0, _08014A20 @ =gBattlescriptCurrInstr\n\
+ mov r9, r0\n\
+ ldr r1, _08014A24 @ =gBattlescriptsForUsingItem\n\
+ mov r10, r1\n\
+ adds r6, r3, 0\n\
+ cmp r2, 0\n\
+ bne _08014A02\n\
+ adds r3, r7, 0\n\
+ mov r5, r8\n\
+ mov r4, r12\n\
+ adds r2, r6, 0\n\
+_080149DC:\n\
+ ldrb r0, [r5]\n\
+ lsrs r0, 1\n\
+ adds r0, r4\n\
+ adds r0, r3\n\
+ ldrb r1, [r0]\n\
+ lsrs r1, 1\n\
+ strb r1, [r0]\n\
+ ldrb r0, [r2, 0x2]\n\
+ adds r0, 0x1\n\
+ strb r0, [r2, 0x2]\n\
+ ldrb r0, [r5]\n\
+ lsrs r0, 1\n\
+ adds r0, r4\n\
+ adds r0, r3\n\
+ ldrb r1, [r0]\n\
+ movs r0, 0x1\n\
+ ands r0, r1\n\
+ cmp r0, 0\n\
+ beq _080149DC\n\
+_08014A02:\n\
+ ldrb r0, [r6, 0x2]\n\
+ adds r0, 0xE\n\
+ ldr r2, _08014A28 @ =0x000160a4\n\
+ adds r1, r7, r2\n\
+ movs r2, 0\n\
+ strb r0, [r1]\n\
+ ldr r3, _08014A2C @ =0x000160a5\n\
+ adds r0, r7, r3\n\
+ strb r2, [r0]\n\
+ b _08014A74\n\
+ .align 2, 0\n\
+_08014A18: .4byte gBattleTextBuff1\n\
+_08014A1C: .4byte gBattleTextBuff2\n\
+_08014A20: .4byte gBattlescriptCurrInstr\n\
+_08014A24: .4byte gBattlescriptsForUsingItem\n\
+_08014A28: .4byte 0x000160a4\n\
+_08014A2C: .4byte 0x000160a5\n\
+_08014A30:\n\
+ ldr r0, _08014A50 @ =gBattleTypeFlags\n\
+ ldrh r0, [r0]\n\
+ movs r1, 0x1\n\
+ ands r1, r0\n\
+ cmp r1, 0\n\
+ beq _08014A64\n\
+ ldr r1, _08014A54 @ =gBattleCommunication\n\
+ movs r0, 0x2\n\
+ strb r0, [r1, 0x5]\n\
+ ldr r0, _08014A58 @ =gBankAttacker\n\
+ mov r8, r0\n\
+ ldr r1, _08014A5C @ =gBattlescriptCurrInstr\n\
+ mov r9, r1\n\
+ ldr r2, _08014A60 @ =gBattlescriptsForUsingItem\n\
+ mov r10, r2\n\
+ b _08014A74\n\
+ .align 2, 0\n\
+_08014A50: .4byte gBattleTypeFlags\n\
+_08014A54: .4byte gBattleCommunication\n\
+_08014A58: .4byte gBankAttacker\n\
+_08014A5C: .4byte gBattlescriptCurrInstr\n\
+_08014A60: .4byte gBattlescriptsForUsingItem\n\
+_08014A64:\n\
+ ldr r0, _08014AA0 @ =gBattleCommunication\n\
+ strb r1, [r0, 0x5]\n\
+ ldr r3, _08014AA4 @ =gBankAttacker\n\
+ mov r8, r3\n\
+ ldr r0, _08014AA8 @ =gBattlescriptCurrInstr\n\
+ mov r9, r0\n\
+ ldr r1, _08014AAC @ =gBattlescriptsForUsingItem\n\
+ mov r10, r1\n\
+_08014A74:\n\
+ mov r2, r8\n\
+ ldrb r0, [r2]\n\
+ lsrs r0, 1\n\
+ ldr r3, _08014AB0 @ =0x000160d8\n\
+ adds r0, r3\n\
+ adds r0, r7\n\
+ ldrb r0, [r0]\n\
+ lsls r0, 2\n\
+ add r0, r10\n\
+ ldr r0, [r0]\n\
+ mov r1, r9\n\
+ str r0, [r1]\n\
+_08014A8C:\n\
+ movs r0, 0xA\n\
+ ldr r2, _08014AB4 @ =gCurrentActionFuncId\n\
+ strb r0, [r2]\n\
+ pop {r3-r5}\n\
+ mov r8, r3\n\
+ mov r9, r4\n\
+ mov r10, r5\n\
+ pop {r4-r7}\n\
+ pop {r0}\n\
+ bx r0\n\
+ .align 2, 0\n\
+_08014AA0: .4byte gBattleCommunication\n\
+_08014AA4: .4byte gBankAttacker\n\
+_08014AA8: .4byte gBattlescriptCurrInstr\n\
+_08014AAC: .4byte gBattlescriptsForUsingItem\n\
+_08014AB0: .4byte 0x000160d8\n\
+_08014AB4: .4byte gCurrentActionFuncId\n\
+ .syntax divided\n");
+}
+#endif // NONMATCHING
+
+bool8 TryRunFromBattle(u8 bank)
+{
+ bool8 effect = FALSE;
+ u8 holdEffect;
+ u8 speedVar;
+
+ if (gBattleMons[bank].item == ITEM_ENIGMA_BERRY)
+ holdEffect = gEnigmaBerries[bank].holdEffect;
+ else
+ holdEffect = ItemId_GetHoldEffect(gBattleMons[bank].item);
+
+ gStringBank = bank;
+
+ if (holdEffect == HOLD_EFFECT_CAN_ALWAYS_RUN)
+ {
+ gLastUsedItem = gBattleMons[bank].item ;
+ gProtectStructs[bank].fleeFlag = 1;
+ effect++;
+ }
+ else if (gBattleMons[bank].ability == ABILITY_RUN_AWAY)
+ {
+ gLastUsedAbility = ABILITY_RUN_AWAY;
+ gProtectStructs[bank].fleeFlag = 2;
+ effect++;
+ }
+ else
+ {
+ if (!(gBattleTypeFlags & BATTLE_TYPE_DOUBLE))
+ {
+ if (gBattleMons[bank].speed < gBattleMons[bank ^ BIT_SIDE].speed)
+ {
+ speedVar = (gBattleMons[bank].speed * 128) / (gBattleMons[bank ^ BIT_SIDE].speed) + (ewram16078 * 30);
+ if (speedVar > (Random() & 0xFF))
+ effect++;
+ }
+ else // same speed or faster
+ {
+ effect++;
+ }
+ }
+
+ ewram16078++;
+ }
+
+ if (effect)
+ {
+ gCurrentTurnActionNumber = gNoOfAllBanks;
+ gBattleOutcome = BATTLE_RAN;
+ }
+
+ return effect;
+}
+
+void HandleAction_Run(void)
+{
+ gBankAttacker = gBanksByTurnOrder[gCurrentTurnActionNumber];
+
+ if (gBattleTypeFlags & BATTLE_TYPE_LINK)
+ {
+ gCurrentTurnActionNumber = gNoOfAllBanks;
+
+ for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++)
+ {
+ if (GetBankSide(gActiveBank) == SIDE_PLAYER)
+ {
+ if (gActionForBanks[gActiveBank] == ACTION_RUN)
+ gBattleOutcome |= BATTLE_LOST;
+ }
+ else
+ {
+ if (gActionForBanks[gActiveBank] == ACTION_RUN)
+ gBattleOutcome |= BATTLE_WON;
+ }
+ }
+
+ gBattleOutcome |= OUTCOME_LINK_BATTLE_RUN;
+ }
+ else
+ {
+ if (GetBankSide(gBankAttacker) == SIDE_PLAYER)
+ {
+ if (!TryRunFromBattle(gBankAttacker)) // failed to run away
+ {
+ gBattleMons[gBankAttacker].status2 &= ~STATUS2_DESTINY_BOND;
+ gBattleCommunication[MULTISTRING_CHOOSER] = 3;
+ gBattlescriptCurrInstr = BattleScript_PrintFailedToRunString;
+ gCurrentActionFuncId = ACTION_RUN_BATTLESCRIPT;
+ }
+ }
+ else
+ {
+ if (gBattleMons[gBankAttacker].status2 & (STATUS2_WRAPPED | STATUS2_ESCAPE_PREVENTION))
+ {
+ gBattleCommunication[MULTISTRING_CHOOSER] = 4;
+ gBattlescriptCurrInstr = BattleScript_PrintFailedToRunString;
+ gCurrentActionFuncId = ACTION_RUN_BATTLESCRIPT;
+ }
+ else
+ {
+ gCurrentTurnActionNumber = gNoOfAllBanks;
+ gBattleOutcome = BATTLE_POKE_FLED;
+ }
+ }
+ }
+}
+
+void HandleAction_WatchesCarefully(void)
+{
+ gBankAttacker = gBanksByTurnOrder[gCurrentTurnActionNumber];
+ gBattle_BG0_X = 0;
+ gBattle_BG0_Y = 0;
+ gBattlescriptCurrInstr = gBattlescriptsForSafariActions[0];
+ gCurrentActionFuncId = ACTION_RUN_BATTLESCRIPT;
+}
+
+void HandleAction_SafariZoneBallThrow(void)
+{
+ gBankAttacker = gBanksByTurnOrder[gCurrentTurnActionNumber];
+ gBattle_BG0_X = 0;
+ gBattle_BG0_Y = 0;
+ gNumSafariBalls--;
+ gLastUsedItem = ITEM_SAFARI_BALL;
+ gBattlescriptCurrInstr = gBattlescriptsForBallThrow[ITEM_SAFARI_BALL];
+ gCurrentActionFuncId = ACTION_RUN_BATTLESCRIPT;
+}
+
+void HandleAction_ThrowPokeblock(void)
+{
+ gBankAttacker = gBanksByTurnOrder[gCurrentTurnActionNumber];
+ gBattle_BG0_X = 0;
+ gBattle_BG0_Y = 0;
+ gBattleCommunication[MULTISTRING_CHOOSER] = gBattleBufferB[gBankAttacker][1] - 1;
+ gLastUsedItem = gBattleBufferB[gBankAttacker][2];
+
+ if (ewram16087 < 3)
+ ewram16087++;
+ if (ewram16088 > 1)
+ {
+ if (ewram16088 < gUnknown_081FA70C[ewram16087][gBattleCommunication[MULTISTRING_CHOOSER]])
+ ewram16088 = 1;
+ else
+ ewram16088 -= gUnknown_081FA70C[ewram16087][gBattleCommunication[MULTISTRING_CHOOSER]];
+ }
+
+ gBattlescriptCurrInstr = gBattlescriptsForSafariActions[2];
+ gCurrentActionFuncId = ACTION_RUN_BATTLESCRIPT;
+}
+
+void HandleAction_GoNear(void)
+{
+ gBankAttacker = gBanksByTurnOrder[gCurrentTurnActionNumber];
+ gBattle_BG0_X = 0;
+ gBattle_BG0_Y = 0;
+
+ ewram16089 += gUnknown_081FA71B[ewram16086];
+ if (ewram16089 > 20)
+ ewram16089 = 20;
+
+ ewram16088 += gUnknown_081FA71F[ewram16086];
+ if (ewram16088 > 20)
+ ewram16088 = 20;
+
+ if (ewram16086 < 3)
+ {
+ ewram16086++;
+ gBattleCommunication[MULTISTRING_CHOOSER] = 0;
+ }
+ else
+ {
+ gBattleCommunication[MULTISTRING_CHOOSER] = 1;
+ }
+ gBattlescriptCurrInstr = gBattlescriptsForSafariActions[1];
+ gCurrentActionFuncId = ACTION_RUN_BATTLESCRIPT;
+}
+
+void HandleAction_SafriZoneRun(void)
+{
+ gBankAttacker = gBanksByTurnOrder[gCurrentTurnActionNumber];
+ PlaySE(SE_NIGERU);
+ gCurrentTurnActionNumber = gNoOfAllBanks;
+ gBattleOutcome = BATTLE_RAN;
+}
+
+void HandleAction_Action9(void)
+{
+ gBankAttacker = gBanksByTurnOrder[gCurrentTurnActionNumber];
+ gBattle_BG0_X = 0;
+ gBattle_BG0_Y = 0;
+
+ PREPARE_MON_NICK_BUFFER(gBattleTextBuff1, gBankAttacker, gBattlePartyID[gBankAttacker])
+
+ gBattlescriptCurrInstr = gBattlescriptsForSafariActions[3];
+ gCurrentActionFuncId = ACTION_RUN_BATTLESCRIPT;
+ gActionsByTurnOrder[1] = ACTION_FINISHED;
+}
+
+void HandleAction_Action11(void)
+{
+ if (!HandleFaintedMonActions())
+ {
+ ewram16059 = 0;
+ gCurrentActionFuncId = ACTION_FINISHED;
+ }
+}
+
+void HandleAction_NothingIsFainted(void)
+{
+ gCurrentTurnActionNumber++;
+ gCurrentActionFuncId = gActionsByTurnOrder[gCurrentTurnActionNumber];
+ gHitMarker &= ~(HITMARKER_DESTINYBOND | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_ATTACKSTRING_PRINTED
+ | HITMARKER_NO_PPDEDUCT | HITMARKER_IGNORE_SAFEGUARD | HITMARKER_IGNORE_ON_AIR
+ | HITMARKER_IGNORE_UNDERGROUND | HITMARKER_IGNORE_UNDERWATER | HITMARKER_x100000
+ | HITMARKER_OBEYS | HITMARKER_x10 | HITMARKER_SYNCHRONISE_EFFECT
+ | HITMARKER_x8000000 | HITMARKER_x4000000);
+}
+
+void HandleAction_ActionFinished(void)
+{
+ gCurrentTurnActionNumber++;
+ gCurrentActionFuncId = gActionsByTurnOrder[gCurrentTurnActionNumber];
+ SpecialStatusesClear();
+ gHitMarker &= ~(HITMARKER_DESTINYBOND | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_ATTACKSTRING_PRINTED
+ | HITMARKER_NO_PPDEDUCT | HITMARKER_IGNORE_SAFEGUARD | HITMARKER_IGNORE_ON_AIR
+ | HITMARKER_IGNORE_UNDERGROUND | HITMARKER_IGNORE_UNDERWATER | HITMARKER_x100000
+ | HITMARKER_OBEYS | HITMARKER_x10 | HITMARKER_SYNCHRONISE_EFFECT
+ | HITMARKER_x8000000 | HITMARKER_x4000000);
+
+ gBattleMoveDamage = 0;
+ ewram16002 = 0;
+ ewram160A1 = 0;
+ gMoveHitWith[gBankAttacker] = 0;
+ gUnknown_02024C44[gBankAttacker] = 0;
+ eDynamicMoveType = 0;
+ gDynamicBasePower = 0;
+ ewram1600C = 0;
+ gBattleCommunication[3] = 0;
+ gBattleCommunication[4] = 0;
+ eMultihitMoveEffect = 0;
+ ewram17130 = 0;
+}
diff --git a/src/battle/battle_4.c b/src/battle/battle_4.c
index 0c147e471..5a20a8324 100644
--- a/src/battle/battle_4.c
+++ b/src/battle/battle_4.c
@@ -1,5 +1,6 @@
#include "global.h"
#include "battle.h"
+#include "battle_util.h"
#include "constants/battle_move_effects.h"
#include "constants/moves.h"
#include "constants/abilities.h"
@@ -35,8 +36,8 @@ extern u8 gActiveBank;
extern u32 gBattleExecBuffer;
extern u8 gNoOfAllBanks;
extern u16 gBattlePartyID[4];
-extern u8 gTurnOrder[4];
-extern u8 gUnknown_02024A76[4];
+extern u8 gBanksByTurnOrder[4];
+extern u8 gActionsByTurnOrder[4];
extern u16 gCurrentMove;
extern u8 gLastUsedAbility;
extern u16 gBattleWeather;
@@ -45,7 +46,7 @@ extern u8 gEffectBank;
extern u8 gAbsentBankFlags;
extern u8 gMultiHitCounter;
extern u16 gLastUsedMove[4];
-extern u16 gLockedMove[4];
+extern u16 gLockedMoves[4];
extern u16 gChosenMovesByBanks[4];
extern u16 gSideAffecting[2];
extern u16 gPauseCounterBattle;
@@ -58,7 +59,7 @@ extern u8 gBankAttacker;
extern u8 gBankTarget;
extern u8* gBattlescriptCurrInstr;
extern u8 gCurrMovePos;
-extern u8 gFightStateTracker;
+extern u8 gCurrentActionFuncId;
extern u32 gHitMarker;
extern u8 gBattleMoveFlags;
extern u8 gBattleCommunication[];
@@ -94,18 +95,17 @@ extern u8 gActionForBanks[4];
extern u16 gUnknown_02024C2C[4]; //last used moves 2, used by sketch
extern u16 gUnknown_030041B0;
extern u16 gUnknown_02024C4C[4]; //last used moves by banks, another one
-extern u8 gCurrentMoveTurn;
+extern u8 gCurrentTurnActionNumber;
extern u16 gTrappingMoves[];
//extern functions
u8 AtkCanceller_UnableToUseMove(void);
void PressurePPLose(u8 bank_atk, u8 bank_def, u16 move);
void CancelMultiTurnMoves(u8 bank);
-void b_movescr_stack_push(u8* BS_ptr);
-void b_movescr_stack_push_cursor(void);
+void BattleScriptPush(u8* BS_ptr);
+void BattleScriptPushCursor(void);
void RecordAbilityBattle(u8 bank, u8 ability);
void RecordItemBattle(u8 bank, u8 holdEffect);
-int IsPokeDisobedient(void);
static bool8 IsTwoTurnsMove(u16 move);
static void DestinyBondFlagUpdate(void);
static void b_wonderguard_and_levitate(void);
@@ -122,16 +122,15 @@ extern u8 gBattleBufferB[4][0x200];
void sub_80324F8(struct Pokemon*, u8 bank);
void AdjustFriendship(struct Pokemon*, u8 value);
bool8 IsTradedMon(struct Pokemon*);
-void b_movescr_stack_pop_cursor(void);
+void BattleScriptPop(void);
void SwitchInClearStructs(void);
u8* ConvertIntToDecimalStringN(u8*, s32, u8, u8);
u8 GetSetPokedexFlag(u16 nationalNum, u8 caseID);
u16 SpeciesToNationalPokedexNum(u16 species);
u8 sub_803FC34(u8 bank);
u16 sub_803FBFC(u8 a);
-u8 GetBankByPlayerAI(u8 ID);
+u8 GetBankByIdentity(u8 ID);
void sub_8012258(u8);
-void sub_80157C4(u8 bank); //update sent pokes in battle
//MonTryLearningNewMove teach poke a move
u16 GiveMoveToBattleMon(struct BattlePokemon *mon, u16 move);
void IncrementGameStat(u8 index);
@@ -145,24 +144,19 @@ bool32 IsHMMove2(u16 move);
void sub_802BBD4(u8 r0, u8 r1, u8 r2, u8 r3, u8 sp0);
void nullsub_6(void);
void ReshowBattleScreenAfterMenu(void);
-void sub_800F808(void);
+void BattleMainCB2(void);
void AddMoney(u32* moneySaveblock, u32 to_give);
-void sub_80156DC(void); //set sentpokes value
-bool8 sub_8014AB8(u8 bank); //can run from battle
u8 CountAliveMons(u8 caseID);
void sub_803E1B0(struct Pokemon*, u16 item, u8 partyID, u8 r3, u8 sp);
u8 CanRunFromBattle(void);
u8 GetMoveTarget(u16 move, u8 targetbyte); //get target of move
-void sub_80153D0(u8 atk); //pressure perish song pp decrement
u8 CastformDataTypeChange(u8 bank);
-void b_push_move_exec(u8* bs_ptr);
u8 Overworld_GetMapTypeOfSaveblockLocation(void);
u8 CalculatePlayerPartyCount(void);
u16 Sqrt(u32 num);
u8 sub_809070C(u16 nationalNum, u32 TiD, u32 PiD); //task prepare poke dex display
void sub_814A880(u8 a1, u8 a2);
u8 CheckMoveLimitations(u8 bank, u8 unusable_moves, u8 flags);
-void sub_801529C(u8 bank);
bool8 IsLinkDoubleBattle(void);
void sub_8094B6C(u8 bank, u8 partyID, u8 r2);
@@ -1028,7 +1022,7 @@ static void atk00_attackcanceler(void)
int i;
if (gBattleOutcome)
{
- gFightStateTracker = 0xC;
+ gCurrentActionFuncId = 0xC;
return;
}
if (gBattleMons[gBankAttacker].hp == 0 && !(gHitMarker & HITMARKER_NO_ATTACKSTRING))
@@ -1051,7 +1045,7 @@ static void atk00_attackcanceler(void)
gHitMarker &= ~(HITMARKER_x800000);
if (!(gHitMarker & HITMARKER_OBEYS) && !(gBattleMons[gBankAttacker].status2 & STATUS2_MULTIPLETURNS))
{
- u8 disobedient = IsPokeDisobedient();
+ u8 disobedient = IsMonDisobedient();
asm("":::"r0"); //It's impossible to match
asm("":::"r1");
if ((disobedient))
@@ -1068,18 +1062,18 @@ static void atk00_attackcanceler(void)
{
PressurePPLose(gBankAttacker, gBankTarget, MOVE_MAGIC_COAT);
gProtectStructs[gBankTarget].bounceMove = 0;
- b_movescr_stack_push_cursor();
+ BattleScriptPushCursor();
gBattlescriptCurrInstr = BattleScript_MagicCoatBounce;
return;
}
for (i = 0; i < gNoOfAllBanks; i++)
{
- if ((gProtectStructs[gTurnOrder[i]].stealMove) && gBattleMoves[gCurrentMove].flags & FLAG_SNATCH_AFFECTED)
+ if ((gProtectStructs[gBanksByTurnOrder[i]].stealMove) && gBattleMoves[gCurrentMove].flags & FLAG_SNATCH_AFFECTED)
{
- PressurePPLose(gBankAttacker, gTurnOrder[i], MOVE_SNATCH);
- gProtectStructs[gTurnOrder[i]].stealMove = 0;
- BATTLE_STRUCT->scriptingActive = gTurnOrder[i];
- b_movescr_stack_push_cursor();
+ PressurePPLose(gBankAttacker, gBanksByTurnOrder[i], MOVE_SNATCH);
+ gProtectStructs[gBanksByTurnOrder[i]].stealMove = 0;
+ BATTLE_STRUCT->scriptingActive = gBanksByTurnOrder[i];
+ BattleScriptPushCursor();
gBattlescriptCurrInstr = BattleScript_SnatchedMove;
return;
}
@@ -1088,7 +1082,7 @@ static void atk00_attackcanceler(void)
{
gSpecialStatuses[gBankTarget].lightningRodRedirected = 0;
gLastUsedAbility = ABILITY_LIGHTNING_ROD;
- b_movescr_stack_push_cursor();
+ BattleScriptPushCursor();
gBattlescriptCurrInstr = BattleScript_TookAttack;
RecordAbilityBattle(gBankTarget, gLastUsedAbility);
}
@@ -1326,7 +1320,7 @@ static void atk03_ppreduce(void)
&& !((gDisableStructs[gBankAttacker].unk18_b) & gBitTable[gCurrMovePos]))
{
gActiveBank = gBankAttacker;
- EmitSetAttributes(0, REQUEST_PPMOVE1_BATTLE + gCurrMovePos, 0, 1, &gBattleMons[gBankAttacker].pp[gCurrMovePos]);
+ EmitSetMonData(0, REQUEST_PPMOVE1_BATTLE + gCurrMovePos, 0, 1, &gBattleMons[gBankAttacker].pp[gCurrMovePos]);
MarkBufferBankForExecution(gBankAttacker);
}
}
@@ -1845,7 +1839,7 @@ static void atk09_attackanimation(void)
if ((gHitMarker & HITMARKER_NO_ANIMATIONS) && (gCurrentMove != MOVE_TRANSFORM && gCurrentMove != MOVE_SUBSTITUTE))
{
- b_movescr_stack_push(gBattlescriptCurrInstr + 1);
+ BattleScriptPush(gBattlescriptCurrInstr + 1);
gBattlescriptCurrInstr = BattleScript_Pausex20;
BATTLE_STRUCT->animTurn += 1;
BATTLE_STRUCT->animTargetsHit += 1;
@@ -1869,7 +1863,7 @@ static void atk09_attackanimation(void)
}
else
{
- b_movescr_stack_push(gBattlescriptCurrInstr + 1);
+ BattleScriptPush(gBattlescriptCurrInstr + 1);
gBattlescriptCurrInstr = BattleScript_Pausex20;
}
}
@@ -1948,7 +1942,7 @@ static void atk0C_datahpupdate(void)
if (gDisableStructs[gActiveBank].substituteHP == 0)
{
gBattlescriptCurrInstr += 2;
- b_movescr_stack_push_cursor();
+ BattleScriptPushCursor();
gBattlescriptCurrInstr = BattleScript_SubstituteFade;
return;
}
@@ -2024,7 +2018,7 @@ static void atk0C_datahpupdate(void)
}
}
gHitMarker &= ~(HITMARKER_x100000);
- EmitSetAttributes(0, REQUEST_HP_BATTLE, 0, 2, &gBattleMons[gActiveBank].hp);
+ EmitSetMonData(0, REQUEST_HP_BATTLE, 0, 2, &gBattleMons[gActiveBank].hp);
MarkBufferBankForExecution(gActiveBank);
}
}
@@ -2133,7 +2127,7 @@ static void atk0F_resultmessage(void)
gLastUsedItem = gBattleMons[gBankTarget].item;
gStringBank = gBankTarget;
gBattleMoveFlags &= ~(MOVESTATUS_ENDURED | MOVESTATUS_HUNGON);
- b_movescr_stack_push_cursor();
+ BattleScriptPushCursor();
gBattlescriptCurrInstr = BattleScript_HangedOnMsg;
return;
default:
@@ -2145,14 +2139,14 @@ static void atk0F_resultmessage(void)
gBattleMoveFlags &= ~(MOVESTATUS_ONEHITKO);
gBattleMoveFlags &= ~(MOVESTATUS_SUPEREFFECTIVE);
gBattleMoveFlags &= ~(MOVESTATUS_NOTVERYEFFECTIVE);
- b_movescr_stack_push_cursor();
+ BattleScriptPushCursor();
gBattlescriptCurrInstr = BattleScript_OneHitKOMsg;
return;
}
else if (gBattleMoveFlags & MOVESTATUS_ENDURED)
{
gBattleMoveFlags &= ~(MOVESTATUS_ENDURED | MOVESTATUS_HUNGON);
- b_movescr_stack_push_cursor();
+ BattleScriptPushCursor();
gBattlescriptCurrInstr = BattleScript_EnduredMsg;
return;
}
@@ -2161,7 +2155,7 @@ static void atk0F_resultmessage(void)
gLastUsedItem = gBattleMons[gBankTarget].item;
gStringBank = gBankTarget;
gBattleMoveFlags &= ~(MOVESTATUS_ENDURED | MOVESTATUS_HUNGON);
- b_movescr_stack_push_cursor();
+ BattleScriptPushCursor();
gBattlescriptCurrInstr = BattleScript_HangedOnMsg;
return;
}
@@ -2253,7 +2247,7 @@ u8 BankGetTurnOrder(u8 bank)
int i;
for (i = 0; i < gNoOfAllBanks; i++)
{
- if (gTurnOrder[i] == bank)
+ if (gBanksByTurnOrder[i] == bank)
break;
}
return i;
@@ -2322,7 +2316,7 @@ void SetMoveEffect(bool8 primary, u8 certainArg)
{
gLastUsedAbility = ABILITY_IMMUNITY;
RecordAbilityBattle(gEffectBank, ABILITY_IMMUNITY);
- b_movescr_stack_push(gBattlescriptCurrInstr + 1);
+ BattleScriptPush(gBattlescriptCurrInstr + 1);
//_0801E664:
gBattlescriptCurrInstr = BattleScript_PSNPrevention;
if (gHitMarker & HITMARKER_IGNORE_SAFEGUARD)
@@ -2337,7 +2331,7 @@ void SetMoveEffect(bool8 primary, u8 certainArg)
if ((gBattleMons[gEffectBank].type1 == TYPE_POISON || gBattleMons[gEffectBank].type2 == TYPE_POISON || gBattleMons[gEffectBank].type1 == TYPE_STEEL || gBattleMons[gEffectBank].type2 == TYPE_STEEL)
&& !(gHitMarker & HITMARKER_IGNORE_SAFEGUARD) && (primary == 1 || certain == 0x80))
{
- b_movescr_stack_push(gBattlescriptCurrInstr + 1);
+ BattleScriptPush(gBattlescriptCurrInstr + 1);
gBattlescriptCurrInstr = BattleScript_PSNPrevention;
gBattleCommunication[MULTISTRING_CHOOSER] = 2;
return;
@@ -2356,7 +2350,7 @@ void SetMoveEffect(bool8 primary, u8 certainArg)
{
gLastUsedAbility = ABILITY_WATER_VEIL;
RecordAbilityBattle(gEffectBank, ABILITY_WATER_VEIL);
- b_movescr_stack_push(gBattlescriptCurrInstr + 1);
+ BattleScriptPush(gBattlescriptCurrInstr + 1);
//_0801E664:
gBattlescriptCurrInstr = BattleScript_BRNPrevention;
if (gHitMarker & HITMARKER_IGNORE_SAFEGUARD)
@@ -2371,7 +2365,7 @@ void SetMoveEffect(bool8 primary, u8 certainArg)
if ((gBattleMons[gEffectBank].type1 == TYPE_FIRE || gBattleMons[gEffectBank].type2 == TYPE_FIRE)
&& !(gHitMarker & HITMARKER_IGNORE_SAFEGUARD) && (primary == 1 || certain == 0x80))
{
- b_movescr_stack_push(gBattlescriptCurrInstr + 1);
+ BattleScriptPush(gBattlescriptCurrInstr + 1);
gBattlescriptCurrInstr = BattleScript_BRNPrevention;
gBattleCommunication[MULTISTRING_CHOOSER] = 2;
return;
@@ -2400,7 +2394,7 @@ void SetMoveEffect(bool8 primary, u8 certainArg)
{
gLastUsedAbility = ABILITY_LIMBER;
RecordAbilityBattle(gEffectBank, ABILITY_LIMBER);
- b_movescr_stack_push(gBattlescriptCurrInstr + 1);
+ BattleScriptPush(gBattlescriptCurrInstr + 1);
//_0801E664:
gBattlescriptCurrInstr = BattleScript_PRLZPrevention;
if (gHitMarker & HITMARKER_IGNORE_SAFEGUARD)
@@ -2422,7 +2416,7 @@ void SetMoveEffect(bool8 primary, u8 certainArg)
{
gLastUsedAbility = ABILITY_IMMUNITY;
RecordAbilityBattle(gEffectBank, ABILITY_IMMUNITY);
- b_movescr_stack_push(gBattlescriptCurrInstr + 1);
+ BattleScriptPush(gBattlescriptCurrInstr + 1);
//_0801E664:
gBattlescriptCurrInstr = BattleScript_PSNPrevention;
if (gHitMarker & HITMARKER_IGNORE_SAFEGUARD)
@@ -2437,7 +2431,7 @@ void SetMoveEffect(bool8 primary, u8 certainArg)
if ((gBattleMons[gEffectBank].type1 == TYPE_POISON || gBattleMons[gEffectBank].type2 == TYPE_POISON || gBattleMons[gEffectBank].type1 == TYPE_STEEL || gBattleMons[gEffectBank].type2 == TYPE_STEEL)
&& !(gHitMarker & HITMARKER_IGNORE_SAFEGUARD) && (primary == 1 || certain == 0x80))
{
- b_movescr_stack_push(gBattlescriptCurrInstr + 1);
+ BattleScriptPush(gBattlescriptCurrInstr + 1);
gBattlescriptCurrInstr = BattleScript_PSNPrevention;
gBattleCommunication[MULTISTRING_CHOOSER] = 2;
return;
@@ -2459,14 +2453,14 @@ void SetMoveEffect(bool8 primary, u8 certainArg)
}
if (StatusChanged == 1)
{
- b_movescr_stack_push(gBattlescriptCurrInstr + 1);
+ BattleScriptPush(gBattlescriptCurrInstr + 1);
if (gStatusFlagsForMoveEffects[gBattleCommunication[MOVE_EFFECT_BYTE]] == STATUS_SLEEP)
gBattleMons[gEffectBank].status1 |= ((Random() & 3) + 2);
else
gBattleMons[gEffectBank].status1 |= gStatusFlagsForMoveEffects[gBattleCommunication[MOVE_EFFECT_BYTE]];
gBattlescriptCurrInstr = gMoveEffectBS_Ptrs[gBattleCommunication[MOVE_EFFECT_BYTE]];
gActiveBank = gEffectBank;
- EmitSetAttributes(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gEffectBank].status1);
+ EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gEffectBank].status1);
MarkBufferBankForExecution(gActiveBank);
if (gHitMarker & HITMARKER_IGNORE_SAFEGUARD)
{
@@ -2500,7 +2494,7 @@ void SetMoveEffect(bool8 primary, u8 certainArg)
if (gBattleMons[gEffectBank].status2 & STATUS2_CONFUSION)
{gBattlescriptCurrInstr++; return;}
gBattleMons[gEffectBank].status2 |= (((Random()) % 0x4)) + 2;
- b_movescr_stack_push(gBattlescriptCurrInstr + 1);
+ BattleScriptPush(gBattlescriptCurrInstr + 1);
gBattlescriptCurrInstr = gMoveEffectBS_Ptrs[gBattleCommunication[MOVE_EFFECT_BYTE]];
break;
case 8: //flinch
@@ -2518,7 +2512,7 @@ void SetMoveEffect(bool8 primary, u8 certainArg)
}
else
{
- if (BankGetTurnOrder(gEffectBank) > gCurrentMoveTurn)
+ if (BankGetTurnOrder(gEffectBank) > gCurrentTurnActionNumber)
gBattleMons[gEffectBank].status2 |= gStatusFlagsForMoveEffects[gBattleCommunication[MOVE_EFFECT_BYTE]];
gBattlescriptCurrInstr++; return;
}
@@ -2527,9 +2521,9 @@ void SetMoveEffect(bool8 primary, u8 certainArg)
if (gBattleMons[gEffectBank].status2 & STATUS2_UPROAR)
{gBattlescriptCurrInstr++; return;}
gBattleMons[gEffectBank].status2 |= STATUS2_MULTIPLETURNS;
- gLockedMove[gEffectBank] = gCurrentMove;
+ gLockedMoves[gEffectBank] = gCurrentMove;
gBattleMons[gEffectBank].status2 |= ((Random() & 3) + 2) << 4;
- b_movescr_stack_push(gBattlescriptCurrInstr + 1);
+ BattleScriptPush(gBattlescriptCurrInstr + 1);
gBattlescriptCurrInstr = gMoveEffectBS_Ptrs[gBattleCommunication[MOVE_EFFECT_BYTE]];
break;
case 11: //pay day
@@ -2540,7 +2534,7 @@ void SetMoveEffect(bool8 primary, u8 certainArg)
if (PayDay > gPaydayMoney)
gPaydayMoney = 0xFFFF;
}
- b_movescr_stack_push(gBattlescriptCurrInstr + 1);
+ BattleScriptPush(gBattlescriptCurrInstr + 1);
gBattlescriptCurrInstr = gMoveEffectBS_Ptrs[gBattleCommunication[MOVE_EFFECT_BYTE]];
break;
case 9: //tri attack
@@ -2551,7 +2545,7 @@ void SetMoveEffect(bool8 primary, u8 certainArg)
break;
case 12: //charging move
gBattleMons[gEffectBank].status2 |= STATUS2_MULTIPLETURNS;
- gLockedMove[gEffectBank] = gCurrentMove;
+ gLockedMoves[gEffectBank] = gCurrentMove;
gProtectStructs[gEffectBank].chargingTurn = 1;
gBattlescriptCurrInstr++;
break;
@@ -2562,7 +2556,7 @@ void SetMoveEffect(bool8 primary, u8 certainArg)
BATTLE_STRUCT->wrappedMove[gEffectBank*2] = (u8)gCurrentMove;
(1 + BATTLE_STRUCT->wrappedMove)[gEffectBank*2] = gCurrentMove >> 8; //don't ask.
BATTLE_STRUCT->wrappedBy[gEffectBank] = gBankAttacker;
- b_movescr_stack_push(gBattlescriptCurrInstr + 1);
+ BattleScriptPush(gBattlescriptCurrInstr + 1);
gBattlescriptCurrInstr = gMoveEffectBS_Ptrs[gBattleCommunication[MOVE_EFFECT_BYTE]];
gBattleCommunication[MULTISTRING_CHOOSER] = 0;
while (gBattleCommunication[MULTISTRING_CHOOSER] <= 4
@@ -2573,7 +2567,7 @@ void SetMoveEffect(bool8 primary, u8 certainArg)
gBattleMoveDamage = (gHP_dealt) / 4;
if (gBattleMoveDamage == 0)
gBattleMoveDamage = 1;
- b_movescr_stack_push(gBattlescriptCurrInstr + 1);
+ BattleScriptPush(gBattlescriptCurrInstr + 1);
gBattlescriptCurrInstr = gMoveEffectBS_Ptrs[gBattleCommunication[MOVE_EFFECT_BYTE]];
break;
case 15 ... 21: //stat + 1
@@ -2582,7 +2576,7 @@ void SetMoveEffect(bool8 primary, u8 certainArg)
{
BATTLE_STRUCT->animArg1 = gBattleCommunication[MOVE_EFFECT_BYTE] & 0x3F; //TODO: the arg ptr is wrong by one
BATTLE_STRUCT->animArg2 = 0;
- b_movescr_stack_push(gBattlescriptCurrInstr + 1);
+ BattleScriptPush(gBattlescriptCurrInstr + 1);
gBattlescriptCurrInstr = BattleScript_StatUp;
}
break;
@@ -2592,7 +2586,7 @@ void SetMoveEffect(bool8 primary, u8 certainArg)
{
BATTLE_STRUCT->animArg1 = gBattleCommunication[MOVE_EFFECT_BYTE] & 0x3F;
BATTLE_STRUCT->animArg2 = 0;
- b_movescr_stack_push(gBattlescriptCurrInstr + 1);
+ BattleScriptPush(gBattlescriptCurrInstr + 1);
gBattlescriptCurrInstr = BattleScript_StatDown;
}
break;
@@ -2602,7 +2596,7 @@ void SetMoveEffect(bool8 primary, u8 certainArg)
{
BATTLE_STRUCT->animArg1 = gBattleCommunication[MOVE_EFFECT_BYTE] & 0x3F;
BATTLE_STRUCT->animArg2 = 0;
- b_movescr_stack_push(gBattlescriptCurrInstr + 1);
+ BattleScriptPush(gBattlescriptCurrInstr + 1);
gBattlescriptCurrInstr = BattleScript_StatUp;
}
break;
@@ -2612,14 +2606,14 @@ void SetMoveEffect(bool8 primary, u8 certainArg)
{
BATTLE_STRUCT->animArg1 = gBattleCommunication[MOVE_EFFECT_BYTE] & 0x3F;
BATTLE_STRUCT->animArg2 = 0;
- b_movescr_stack_push(gBattlescriptCurrInstr + 1);
+ BattleScriptPush(gBattlescriptCurrInstr + 1);
gBattlescriptCurrInstr = BattleScript_StatDown;
}
break;
case 29: //recharge
gBattleMons[gEffectBank].status2 |= STATUS2_RECHARGE;
gDisableStructs[gEffectBank].rechargeCounter = 2;
- gLockedMove[gEffectBank] = gCurrentMove;
+ gLockedMoves[gEffectBank] = gCurrentMove;
gBattlescriptCurrInstr++;
break;
case 30: //rage
@@ -2635,7 +2629,7 @@ void SetMoveEffect(bool8 primary, u8 certainArg)
{gBattlescriptCurrInstr++; return;}
if (gBattleMons[gBankTarget].item && gBattleMons[gBankTarget].ability == ABILITY_STICKY_HOLD)
{
- b_movescr_stack_push_cursor();
+ BattleScriptPushCursor();
gBattlescriptCurrInstr = BattleScript_NoItemSteal;
gLastUsedAbility = gBattleMons[gBankTarget].ability;
RecordAbilityBattle(gBankTarget, gLastUsedAbility);
@@ -2653,14 +2647,14 @@ void SetMoveEffect(bool8 primary, u8 certainArg)
gBattleMons[gBankTarget].item = 0;
gActiveBank = gBankAttacker;
- EmitSetAttributes(0, REQUEST_HELDITEM_BATTLE, 0, 2, &gLastUsedItem);
+ EmitSetMonData(0, REQUEST_HELDITEM_BATTLE, 0, 2, &gLastUsedItem);
MarkBufferBankForExecution(gBankAttacker);
gActiveBank = gBankTarget;
- EmitSetAttributes(0, REQUEST_HELDITEM_BATTLE, 0, 2, &gBattleMons[gBankTarget].item);
+ EmitSetMonData(0, REQUEST_HELDITEM_BATTLE, 0, 2, &gBattleMons[gBankTarget].item);
MarkBufferBankForExecution(gBankTarget);
- b_movescr_stack_push(gBattlescriptCurrInstr + 1);
+ BattleScriptPush(gBattlescriptCurrInstr + 1);
gBattlescriptCurrInstr = BattleScript_ItemSteal;
CHOICED_MOVE(gBankTarget) = 0;
@@ -2676,11 +2670,11 @@ void SetMoveEffect(bool8 primary, u8 certainArg)
gBattlescriptCurrInstr++;
break;
case 34: //ancientpower
- b_movescr_stack_push(gBattlescriptCurrInstr + 1);
+ BattleScriptPush(gBattlescriptCurrInstr + 1);
gBattlescriptCurrInstr = BattleScript_AllStatsUp;
return;
case 35: //break free rapidspin
- b_movescr_stack_push(gBattlescriptCurrInstr + 1);
+ BattleScriptPush(gBattlescriptCurrInstr + 1);
gBattlescriptCurrInstr = BattleScript_RapidSpinAway;
return;
case 36: //paralysis removal
@@ -2688,30 +2682,30 @@ void SetMoveEffect(bool8 primary, u8 certainArg)
{
gBattleMons[gBankTarget].status1 &= ~(STATUS_PARALYSIS);
gActiveBank = gBankTarget;
- EmitSetAttributes(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gBankTarget].status1);
+ EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gBankTarget].status1);
MarkBufferBankForExecution(gActiveBank);
- b_movescr_stack_push(gBattlescriptCurrInstr + 1);
+ BattleScriptPush(gBattlescriptCurrInstr + 1);
gBattlescriptCurrInstr = BattleScript_TargetPRLZHeal;
}
else
{gBattlescriptCurrInstr++; return;}
break;
case 37: //superpower
- b_movescr_stack_push(gBattlescriptCurrInstr + 1);
+ BattleScriptPush(gBattlescriptCurrInstr + 1);
gBattlescriptCurrInstr = BattleScript_AtkDefDown;
return;
case 38: //33% recoil
gBattleMoveDamage = gHP_dealt / 3;
if (gBattleMoveDamage == 0)
gBattleMoveDamage = 1;
- b_movescr_stack_push(gBattlescriptCurrInstr + 1);
+ BattleScriptPush(gBattlescriptCurrInstr + 1);
gBattlescriptCurrInstr = gMoveEffectBS_Ptrs[gBattleCommunication[MOVE_EFFECT_BYTE]];
break;
case 53: //thrash
if (!(gBattleMons[gEffectBank].status2 & STATUS2_LOCK_CONFUSE))
{
gBattleMons[gEffectBank].status2 |= STATUS2_MULTIPLETURNS;
- gLockedMove[gEffectBank] = gCurrentMove;
+ gLockedMoves[gEffectBank] = gCurrentMove;
gBattleMons[gEffectBank].status2 |= (((Random() & 1) + 2) << 0xA);
}
else
@@ -2735,14 +2729,14 @@ void SetMoveEffect(bool8 primary, u8 certainArg)
gLastUsedItem = gBattleMons[gEffectBank].item;
gBattleMons[gEffectBank].item = 0;
gWishFutureKnock.knockedOffPokes[side] |= gBitTable[gBattlePartyID[gEffectBank]];
- b_movescr_stack_push(gBattlescriptCurrInstr + 1);
+ BattleScriptPush(gBattlescriptCurrInstr + 1);
gBattlescriptCurrInstr = BattleScript_KnockedOff;
CHOICED_MOVE(gEffectBank) = 0;
}
break;
case 59: //overheat
- b_movescr_stack_push(gBattlescriptCurrInstr + 1);
+ BattleScriptPush(gBattlescriptCurrInstr + 1);
gBattlescriptCurrInstr = BattleScript_SAtkDown2;
return;
}
@@ -3066,7 +3060,7 @@ _0801E64A:\n\
ldr r4, _0801E67C @ =gBattlescriptCurrInstr\n\
ldr r0, [r4]\n\
adds r0, 0x1\n\
- bl b_movescr_stack_push\n\
+ bl BattleScriptPush\n\
ldr r0, _0801E680 @ =BattleScript_PSNPrevention\n\
_0801E664:\n\
str r0, [r4]\n\
@@ -3189,7 +3183,7 @@ _0801E72E:\n\
ldr r4, _0801E750 @ =gBattlescriptCurrInstr\n\
ldr r0, [r4]\n\
adds r0, 0x1\n\
- bl b_movescr_stack_push\n\
+ bl BattleScriptPush\n\
ldr r0, _0801E754 @ =BattleScript_BRNPrevention\n\
b _0801E664\n\
.align 2, 0\n\
@@ -3229,7 +3223,7 @@ _0801E78E:\n\
ldr r4, _0801E7A0 @ =gBattlescriptCurrInstr\n\
ldr r0, [r4]\n\
adds r0, 0x1\n\
- bl b_movescr_stack_push\n\
+ bl BattleScriptPush\n\
ldr r0, _0801E7A4 @ =BattleScript_BRNPrevention\n\
b _0801E998\n\
.align 2, 0\n\
@@ -3380,7 +3374,7 @@ _0801E8A6:\n\
ldr r4, _0801E8C8 @ =gBattlescriptCurrInstr\n\
ldr r0, [r4]\n\
adds r0, 0x1\n\
- bl b_movescr_stack_push\n\
+ bl BattleScriptPush\n\
ldr r0, _0801E8CC @ =BattleScript_PRLZPrevention\n\
b _0801E664\n\
.align 2, 0\n\
@@ -3423,7 +3417,7 @@ _0801E8FE:\n\
ldr r4, _0801E93C @ =gBattlescriptCurrInstr\n\
ldr r0, [r4]\n\
adds r0, 0x1\n\
- bl b_movescr_stack_push\n\
+ bl BattleScriptPush\n\
ldr r0, _0801E940 @ =BattleScript_PSNPrevention\n\
str r0, [r4]\n\
ldr r2, _0801E944 @ =gHitMarker\n\
@@ -3484,7 +3478,7 @@ _0801E98C:\n\
ldr r4, _0801E9A8 @ =gBattlescriptCurrInstr\n\
ldr r0, [r4]\n\
adds r0, 0x1\n\
- bl b_movescr_stack_push\n\
+ bl BattleScriptPush\n\
ldr r0, _0801E9AC @ =BattleScript_PSNPrevention\n\
_0801E998:\n\
str r0, [r4]\n\
@@ -3557,7 +3551,7 @@ _0801EA1C:\n\
ldr r0, _0801EA5C @ =gBattlescriptCurrInstr\n\
ldr r0, [r0]\n\
adds r0, 0x1\n\
- bl b_movescr_stack_push\n\
+ bl BattleScriptPush\n\
ldr r1, _0801EA60 @ =gStatusFlagsForMoveEffects\n\
ldr r0, _0801EA64 @ =gBattleCommunication\n\
ldrb r0, [r0, 0x3]\n\
@@ -3622,7 +3616,7 @@ _0801EA84:\n\
movs r1, 0x28\n\
movs r2, 0\n\
movs r3, 0x4\n\
- bl EmitSetAttributes\n\
+ bl EmitSetMonData\n\
ldrb r0, [r4]\n\
bl MarkBufferBankForExecution\n\
ldr r2, _0801EAF0 @ =gHitMarker\n\
@@ -3815,7 +3809,7 @@ _0801EC8E:\n\
ldr r4, _0801ECC8 @ =gBattlescriptCurrInstr\n\
ldr r0, [r4]\n\
adds r0, 0x1\n\
- bl b_movescr_stack_push\n\
+ bl BattleScriptPush\n\
ldr r1, _0801ECCC @ =gMoveEffectBS_Ptrs\n\
ldr r0, _0801ECD0 @ =gBattleCommunication\n\
ldrb r0, [r0, 0x3]\n\
@@ -3861,7 +3855,7 @@ _0801ED14: .4byte BattleScript_FlinchPrevention\n\
_0801ED18:\n\
adds r0, r2, 0\n\
bl BankGetTurnOrder\n\
- ldr r1, _0801ED54 @ =gCurrentMoveTurn\n\
+ ldr r1, _0801ED54 @ =gCurrentTurnActionNumber\n\
lsls r0, 24\n\
lsrs r0, 24\n\
ldrb r1, [r1]\n\
@@ -3887,7 +3881,7 @@ _0801ED2E:\n\
str r1, [r2]\n\
bl _0801F5DC\n\
.align 2, 0\n\
-_0801ED54: .4byte gCurrentMoveTurn\n\
+_0801ED54: .4byte gCurrentTurnActionNumber\n\
_0801ED58: .4byte gStatusFlagsForMoveEffects\n\
_0801ED5C: .4byte gBattleCommunication\n\
_0801ED60:\n\
@@ -3909,7 +3903,7 @@ _0801ED7C:\n\
lsls r0, 5\n\
orrs r1, r0\n\
str r1, [r2]\n\
- ldr r1, _0801EDC8 @ =gLockedMove\n\
+ ldr r1, _0801EDC8 @ =gLockedMoves\n\
ldrb r0, [r3]\n\
lsls r0, 1\n\
adds r0, r1\n\
@@ -3932,7 +3926,7 @@ _0801ED7C:\n\
ldr r4, _0801EDD0 @ =gBattlescriptCurrInstr\n\
ldr r0, [r4]\n\
adds r0, 0x1\n\
- bl b_movescr_stack_push\n\
+ bl BattleScriptPush\n\
ldr r1, _0801EDD4 @ =gMoveEffectBS_Ptrs\n\
ldr r0, _0801EDD8 @ =gBattleCommunication\n\
ldrb r0, [r0, 0x3]\n\
@@ -3941,7 +3935,7 @@ _0801ED7C:\n\
ldr r0, [r0]\n\
bl _0801F5F8\n\
.align 2, 0\n\
-_0801EDC8: .4byte gLockedMove\n\
+_0801EDC8: .4byte gLockedMoves\n\
_0801EDCC: .4byte gCurrentMove\n\
_0801EDD0: .4byte gBattlescriptCurrInstr\n\
_0801EDD4: .4byte gMoveEffectBS_Ptrs\n\
@@ -3978,7 +3972,7 @@ _0801EE14:\n\
ldr r4, _0801EE40 @ =gBattlescriptCurrInstr\n\
ldr r0, [r4]\n\
adds r0, 0x1\n\
- bl b_movescr_stack_push\n\
+ bl BattleScriptPush\n\
ldr r1, _0801EE44 @ =gMoveEffectBS_Ptrs\n\
ldr r0, _0801EE48 @ =gBattleCommunication\n\
ldrb r0, [r0, 0x3]\n\
@@ -4035,7 +4029,7 @@ _0801EE84:\n\
lsls r1, 5\n\
orrs r0, r1\n\
str r0, [r2]\n\
- ldr r1, _0801EEC0 @ =gLockedMove\n\
+ ldr r1, _0801EEC0 @ =gLockedMoves\n\
mov r2, r8\n\
ldrb r0, [r2]\n\
lsls r0, 1\n\
@@ -4053,7 +4047,7 @@ _0801EE84:\n\
strb r0, [r1, 0x1]\n\
b _0801F5DC\n\
.align 2, 0\n\
-_0801EEC0: .4byte gLockedMove\n\
+_0801EEC0: .4byte gLockedMoves\n\
_0801EEC4: .4byte gCurrentMove\n\
_0801EEC8: .4byte gProtectStructs\n\
_0801EECC:\n\
@@ -4113,7 +4107,7 @@ _0801EEE8:\n\
ldr r4, _0801EF98 @ =gBattlescriptCurrInstr\n\
ldr r0, [r4]\n\
adds r0, 0x1\n\
- bl b_movescr_stack_push\n\
+ bl BattleScriptPush\n\
ldr r1, _0801EF9C @ =gMoveEffectBS_Ptrs\n\
ldr r2, _0801EFA0 @ =gBattleCommunication\n\
ldrb r0, [r2, 0x3]\n\
@@ -4178,7 +4172,7 @@ _0801EFC0:\n\
ldr r4, _0801EFE0 @ =gBattlescriptCurrInstr\n\
ldr r0, [r4]\n\
adds r0, 0x1\n\
- bl b_movescr_stack_push\n\
+ bl BattleScriptPush\n\
ldr r1, _0801EFE4 @ =gMoveEffectBS_Ptrs\n\
ldr r0, _0801EFE8 @ =gBattleCommunication\n\
ldrb r0, [r0, 0x3]\n\
@@ -4220,7 +4214,7 @@ _0801F008:\n\
ldr r4, _0801F038 @ =gBattlescriptCurrInstr\n\
ldr r0, [r4]\n\
adds r0, 0x1\n\
- bl b_movescr_stack_push\n\
+ bl BattleScriptPush\n\
ldr r0, _0801F03C @ =BattleScript_StatUp\n\
b _0801F5F8\n\
.align 2, 0\n\
@@ -4258,7 +4252,7 @@ _0801F05E:\n\
ldr r4, _0801F08C @ =gBattlescriptCurrInstr\n\
ldr r0, [r4]\n\
adds r0, 0x1\n\
- bl b_movescr_stack_push\n\
+ bl BattleScriptPush\n\
ldr r0, _0801F090 @ =BattleScript_StatDown\n\
b _0801F5F8\n\
.align 2, 0\n\
@@ -4295,7 +4289,7 @@ _0801F0B0:\n\
ldr r4, _0801F0E0 @ =gBattlescriptCurrInstr\n\
ldr r0, [r4]\n\
adds r0, 0x1\n\
- bl b_movescr_stack_push\n\
+ bl BattleScriptPush\n\
ldr r0, _0801F0E4 @ =BattleScript_StatUp\n\
b _0801F5F8\n\
.align 2, 0\n\
@@ -4333,7 +4327,7 @@ _0801F106:\n\
ldr r4, _0801F134 @ =gBattlescriptCurrInstr\n\
ldr r0, [r4]\n\
adds r0, 0x1\n\
- bl b_movescr_stack_push\n\
+ bl BattleScriptPush\n\
ldr r0, _0801F138 @ =BattleScript_StatDown\n\
b _0801F5F8\n\
.align 2, 0\n\
@@ -4365,7 +4359,7 @@ _0801F13C:\n\
adds r0, r2\n\
movs r1, 0x2\n\
strb r1, [r0, 0x19]\n\
- ldr r1, _0801F17C @ =gLockedMove\n\
+ ldr r1, _0801F17C @ =gLockedMoves\n\
ldrb r0, [r3]\n\
lsls r0, 1\n\
adds r0, r1\n\
@@ -4375,7 +4369,7 @@ _0801F13C:\n\
b _0801F5DC\n\
.align 2, 0\n\
_0801F178: .4byte gDisableStructs\n\
-_0801F17C: .4byte gLockedMove\n\
+_0801F17C: .4byte gLockedMoves\n\
_0801F180: .4byte gCurrentMove\n\
_0801F184:\n\
ldr r0, _0801F1A0 @ =gBankAttacker\n\
@@ -4546,7 +4540,7 @@ _0801F2B6:\n\
movs r1, 0x2\n\
movs r2, 0\n\
movs r3, 0x2\n\
- bl EmitSetAttributes\n\
+ bl EmitSetMonData\n\
mov r3, r10\n\
ldrb r0, [r3]\n\
bl MarkBufferBankForExecution\n\
@@ -4564,13 +4558,13 @@ _0801F2B6:\n\
movs r1, 0x2\n\
movs r2, 0\n\
movs r3, 0x2\n\
- bl EmitSetAttributes\n\
+ bl EmitSetMonData\n\
ldrb r0, [r7]\n\
bl MarkBufferBankForExecution\n\
ldr r4, _0801F350 @ =gBattlescriptCurrInstr\n\
ldr r0, [r4]\n\
adds r0, 0x1\n\
- bl b_movescr_stack_push\n\
+ bl BattleScriptPush\n\
ldr r0, _0801F354 @ =BattleScript_ItemSteal\n\
str r0, [r4]\n\
ldr r0, _0801F358 @ =0xfffe9f10\n\
@@ -4645,7 +4639,7 @@ _0801F3BC:\n\
ldr r4, _0801F3CC @ =gBattlescriptCurrInstr\n\
ldr r0, [r4]\n\
adds r0, 0x1\n\
- bl b_movescr_stack_push\n\
+ bl BattleScriptPush\n\
ldr r0, _0801F3D0 @ =BattleScript_AllStatsUp\n\
b _0801F5F8\n\
.align 2, 0\n\
@@ -4655,7 +4649,7 @@ _0801F3D4:\n\
ldr r4, _0801F3E4 @ =gBattlescriptCurrInstr\n\
ldr r0, [r4]\n\
adds r0, 0x1\n\
- bl b_movescr_stack_push\n\
+ bl BattleScriptPush\n\
ldr r0, _0801F3E8 @ =BattleScript_RapidSpinAway\n\
b _0801F5F8\n\
.align 2, 0\n\
@@ -4691,13 +4685,13 @@ _0801F406:\n\
movs r1, 0x28\n\
movs r2, 0\n\
movs r3, 0x4\n\
- bl EmitSetAttributes\n\
+ bl EmitSetMonData\n\
ldrb r0, [r4]\n\
bl MarkBufferBankForExecution\n\
ldr r4, _0801F444 @ =gBattlescriptCurrInstr\n\
ldr r0, [r4]\n\
adds r0, 0x1\n\
- bl b_movescr_stack_push\n\
+ bl BattleScriptPush\n\
ldr r0, _0801F448 @ =BattleScript_TargetPRLZHeal\n\
b _0801F5F8\n\
.align 2, 0\n\
@@ -4709,7 +4703,7 @@ _0801F44C:\n\
ldr r4, _0801F45C @ =gBattlescriptCurrInstr\n\
ldr r0, [r4]\n\
adds r0, 0x1\n\
- bl b_movescr_stack_push\n\
+ bl BattleScriptPush\n\
ldr r0, _0801F460 @ =BattleScript_AtkDefDown\n\
b _0801F5F8\n\
.align 2, 0\n\
@@ -4730,7 +4724,7 @@ _0801F47A:\n\
ldr r4, _0801F49C @ =gBattlescriptCurrInstr\n\
ldr r0, [r4]\n\
adds r0, 0x1\n\
- bl b_movescr_stack_push\n\
+ bl BattleScriptPush\n\
ldr r1, _0801F4A0 @ =gMoveEffectBS_Ptrs\n\
ldr r0, _0801F4A4 @ =gBattleCommunication\n\
ldrb r0, [r0, 0x3]\n\
@@ -4764,7 +4758,7 @@ _0801F4C4:\n\
lsls r0, 5\n\
orrs r1, r0\n\
str r1, [r2]\n\
- ldr r1, _0801F4F8 @ =gLockedMove\n\
+ ldr r1, _0801F4F8 @ =gLockedMoves\n\
ldrb r0, [r3]\n\
lsls r0, 1\n\
adds r0, r1\n\
@@ -4787,7 +4781,7 @@ _0801F4F2:\n\
str r0, [r2]\n\
b _0801F5FA\n\
.align 2, 0\n\
-_0801F4F8: .4byte gLockedMove\n\
+_0801F4F8: .4byte gLockedMoves\n\
_0801F4FC: .4byte gCurrentMove\n\
_0801F500:\n\
mov r5, r8\n\
@@ -4858,7 +4852,7 @@ _0801F540:\n\
ldr r4, _0801F5C8 @ =gBattlescriptCurrInstr\n\
ldr r0, [r4]\n\
adds r0, 0x1\n\
- bl b_movescr_stack_push\n\
+ bl BattleScriptPush\n\
ldr r0, _0801F5CC @ =BattleScript_KnockedOff\n\
str r0, [r4]\n\
ldr r1, _0801F5D0 @ =gSharedMem\n\
@@ -4898,7 +4892,7 @@ _0801F5EC:\n\
ldr r4, _0801F60C @ =gBattlescriptCurrInstr\n\
ldr r0, [r4]\n\
adds r0, 0x1\n\
- bl b_movescr_stack_push\n\
+ bl BattleScriptPush\n\
ldr r0, _0801F610 @ =BattleScript_SAtkDown2\n\
_0801F5F8:\n\
str r0, [r4]\n\
@@ -4978,7 +4972,7 @@ static void atk19_tryfaintmon(void)
{
r4 = T1_READ_PTR(gBattlescriptCurrInstr + 3);
- b_movescr_stack_pop_cursor();
+ BattleScriptPop();
gBattlescriptCurrInstr = r4;
gSideAffecting[GetBankSide(gActiveBank)] &= ~SIDE_STATUS_SPIKES_DAMAGED;
}
@@ -5014,7 +5008,7 @@ static void atk19_tryfaintmon(void)
ewram16100arr2(3, bank) = 0;
gHitMarker |= HITMARKER_FAINTED(gActiveBank);
- b_movescr_stack_push(gBattlescriptCurrInstr + 7);
+ BattleScriptPush(gBattlescriptCurrInstr + 7);
gBattlescriptCurrInstr = r4;
if (GetBankSide(gActiveBank) == 0)
{
@@ -5037,7 +5031,7 @@ static void atk19_tryfaintmon(void)
}
if ((gHitMarker & HITMARKER_DESTINYBOND) && gBattleMons[gBankAttacker].hp != 0)
{
- b_movescr_stack_push(gBattlescriptCurrInstr);
+ BattleScriptPush(gBattlescriptCurrInstr);
gBattleMoveDamage = gBattleMons[bank].hp;
gBattlescriptCurrInstr = BattleScript_DestinyBondTakesLife;
}
@@ -5050,10 +5044,10 @@ static void atk19_tryfaintmon(void)
u8 moveIndex = ewram1608Carr(gBankAttacker);
gBattleMons[gBankAttacker].pp[moveIndex] = 0;
- b_movescr_stack_push(gBattlescriptCurrInstr);
+ BattleScriptPush(gBattlescriptCurrInstr);
gBattlescriptCurrInstr = BattleScript_SelectingImprisionedMoveInPalace;
gActiveBank = gBankAttacker;
- EmitSetAttributes(0, moveIndex + 9, 0, 1, &gBattleMons[gActiveBank].pp[moveIndex]);
+ EmitSetMonData(0, moveIndex + 9, 0, 1, &gBattleMons[gActiveBank].pp[moveIndex]);
MarkBufferBankForExecution(gActiveBank);
gBattleTextBuff1[0] = 0xFD;
@@ -5088,7 +5082,7 @@ static void atk1B_cleareffectsonfaint(void)
{
gActiveBank = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
gBattleMons[gActiveBank].status1 = 0;
- EmitSetAttributes(0, REQUEST_STATUS_BATTLE, 0, 0x4, &gBattleMons[gActiveBank].status1);
+ EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 0x4, &gBattleMons[gActiveBank].status1);
MarkBufferBankForExecution(gActiveBank);
UndoEffectsAfterFainting();
gBattlescriptCurrInstr += 2;
@@ -5477,7 +5471,7 @@ static void atk23_getexp(void)
gBattleTextBuff2[4] = GetMonData(&gPlayerParty[BATTLE_STRUCT->expGetterID], MON_DATA_LEVEL);
gBattleTextBuff2[5] = 0xFF;
- b_movescr_stack_push_cursor();
+ BattleScriptPushCursor();
gLeveledUpInBattle |= gBitTable[BATTLE_STRUCT->expGetterID];
gBattlescriptCurrInstr = BattleScript_LevelUp;
gBattleMoveDamage = (gBattleBufferB[gActiveBank][2] | (gBattleBufferB[gActiveBank][3] << 8));
@@ -6354,7 +6348,7 @@ _080206A8:\n\
movs r0, 0x1\n\
negs r0, r0\n\
strb r0, [r4, 0x5]\n\
- bl b_movescr_stack_push_cursor\n\
+ bl BattleScriptPushCursor\n\
ldr r2, _080208D8 @ =gLeveledUpInBattle\n\
ldr r1, _080208DC @ =gBitTable\n\
ldrb r0, [r6]\n\
@@ -7283,26 +7277,26 @@ static void atk3B_healthbar_update(void)
static void atk3C_return(void)
{
- b_movescr_stack_pop_cursor();
+ BattleScriptPop();
}
static void atk3D_end(void)
{
gBattleMoveFlags = 0;
gActiveBank = 0;
- gFightStateTracker = 0xB;
+ gCurrentActionFuncId = 0xB;
}
static void atk3E_end2(void)
{
//not much difference between this and 3D. It's more apparent in Emerald
gActiveBank = 0;
- gFightStateTracker = 0xB;
+ gCurrentActionFuncId = 0xB;
}
static void atk3F_end3(void) //pops the main function stack
{
- b_movescr_stack_pop_cursor();
+ BattleScriptPop();
if (B_FUNCTION_STACK->size)
B_FUNCTION_STACK->size--;
gBattleMainFunc = B_FUNCTION_STACK->ptr[B_FUNCTION_STACK->size];
@@ -7310,7 +7304,7 @@ static void atk3F_end3(void) //pops the main function stack
static void atk41_call(void)
{
- b_movescr_stack_push(gBattlescriptCurrInstr + 5);
+ BattleScriptPush(gBattlescriptCurrInstr + 5);
gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
}
@@ -7354,7 +7348,7 @@ static void atk45_playanimation(void)
}
else if (gHitMarker & HITMARKER_NO_ANIMATIONS)
{
- b_movescr_stack_push(gBattlescriptCurrInstr + 7);
+ BattleScriptPush(gBattlescriptCurrInstr + 7);
gBattlescriptCurrInstr = BattleScript_Pausex20;
}
else if (gBattlescriptCurrInstr[2] == B_ANIM_RAIN_CONTINUES
@@ -7467,7 +7461,7 @@ static void atk48_playstatchangeanimation(void)
if (!(T2_READ_8(gBattlescriptCurrInstr + 3)))
{
u8 ability;
- if (gSideTimer[GetBankIdentity(gActiveBank) & 1].mistTimer)
+ if (gSideTimers[GetBankIdentity(gActiveBank) & 1].mistTimer)
continue;
ability = gBattleMons[gActiveBank].ability;
if (ability == ABILITY_CLEAR_BODY || ability == ABILITY_WHITE_SMOKE || (ability == ABILITY_KEEN_EYE && curr_stat == 6) || (ability == ABILITY_HYPER_CUTTER && curr_stat == 1))
@@ -7602,7 +7596,7 @@ _0802167C:\n\
lsls r0, r1, 1\n\
adds r0, r1\n\
lsls r0, 2\n\
- ldr r1, _08021704 @ =gSideTimer\n\
+ ldr r1, _08021704 @ =gSideTimers\n\
adds r0, r1\n\
ldrb r0, [r0, 0x2]\n\
ldr r3, [sp]\n\
@@ -7665,7 +7659,7 @@ _080216E4:\n\
b _08021770\n\
.align 2, 0\n\
_08021700: .4byte gActiveBank\n\
-_08021704: .4byte gSideTimer\n\
+_08021704: .4byte gSideTimers\n\
_08021708: .4byte gBattleMons\n\
_0802170C: .4byte gBattlescriptCurrInstr\n\
_08021710:\n\
@@ -7830,7 +7824,7 @@ static void atk49_moveend(void)
&& gBattleMoves[gCurrentMove].power && gBattleMons[gBankTarget].statStages[STAT_STAGE_ATK] <= 0xB)
{
gBattleMons[gBankTarget].statStages[STAT_STAGE_ATK]++;
- b_movescr_stack_push_cursor();
+ BattleScriptPushCursor();
gBattlescriptCurrInstr = BattleScript_RageIsBuilding;
effect = 1;
}
@@ -7844,9 +7838,9 @@ static void atk49_moveend(void)
{
gBattleMons[gBankTarget].status1 &= ~(STATUS_FREEZE);
gActiveBank = gBankTarget;
- EmitSetAttributes(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gBankTarget].status1);
+ EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gBankTarget].status1);
MarkBufferBankForExecution(gActiveBank);
- b_movescr_stack_push_cursor();
+ BattleScriptPushCursor();
gBattlescriptCurrInstr = BattleScript_DefrostedViaFireMove;
effect = 1;
}
@@ -7904,10 +7898,9 @@ static void atk49_moveend(void)
}
BATTLE_STRUCT->cmd49StateTracker++;
break;
- //sub_8015660 CheckIfMoveFailed
case 9: //semi-invlurneable attacker make visible
if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT) || !(gStatuses3[gBankAttacker] & (STATUS3_ON_AIR | STATUS3_UNDERGROUND | STATUS3_UNDERWATER))
- || sub_8015660(gBankAttacker))
+ || WasUnableToUseMove(gBankAttacker))
{
gActiveBank = gBankAttacker;
EmitSpriteInvisibility(0, 0);
@@ -7919,7 +7912,7 @@ static void atk49_moveend(void)
break;
case 10: //semi-invlurneable target make visible
if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT) || !(gStatuses3[gBankTarget] & (STATUS3_ON_AIR | STATUS3_UNDERGROUND | STATUS3_UNDERWATER))
- || sub_8015660(gBankTarget))
+ || WasUnableToUseMove(gBankTarget))
{
gActiveBank = gBankTarget;
EmitSpriteInvisibility(0, 0);
@@ -8019,7 +8012,7 @@ _08021874:\n\
lsls r0, 2\n\
adds r0, r2\n\
ldr r0, [r0]\n\
- bl b_movescr_stack_push\n\
+ bl BattleScriptPush\n\
ldr r1, _080218B8 @ =gBattlescriptCurrInstr\n\
ldr r0, _080218BC @ =gUnknown_081D9B2D\n\
bl _0802229C\n\
@@ -8164,7 +8157,7 @@ _080219C8:\n\
bgt _080219FE\n\
adds r0, r2, 0x1\n\
strb r0, [r1, 0x19]\n\
- bl b_movescr_stack_push_cursor\n\
+ bl BattleScriptPushCursor\n\
ldr r1, _08021A24 @ =gBattlescriptCurrInstr\n\
ldr r0, _08021A28 @ =BattleScript_RageIsBuilding\n\
str r0, [r1]\n\
@@ -8259,10 +8252,10 @@ _08021A92:\n\
movs r1, 0x28\n\
movs r2, 0\n\
movs r3, 0x4\n\
- bl EmitSetAttributes\n\
+ bl EmitSetMonData\n\
ldrb r0, [r4]\n\
bl MarkBufferBankForExecution\n\
- bl b_movescr_stack_push_cursor\n\
+ bl BattleScriptPushCursor\n\
ldr r1, _08021AE8 @ =gBattlescriptCurrInstr\n\
ldr r0, _08021AEC @ =BattleScript_DefrostedViaFireMove\n\
str r0, [r1]\n\
@@ -8572,7 +8565,7 @@ _08021D18:\n\
cmp r0, 0\n\
beq _08021D44\n\
adds r0, r2, 0\n\
- bl sub_8015660\n\
+ bl WasUnableToUseMove\n\
lsls r0, 24\n\
cmp r0, 0\n\
beq _08021D7E\n\
@@ -9154,7 +9147,7 @@ _080221C0:\n\
eors r0, r1\n\
lsls r0, 24\n\
lsrs r0, 24\n\
- bl GetBankByPlayerAI\n\
+ bl GetBankByIdentity\n\
lsls r0, 24\n\
lsrs r2, r0, 24\n\
ldr r1, _080222CC @ =gBattleMons\n\
@@ -9457,18 +9450,18 @@ static void atk4F_jumpifcantswitch(void)
{
if (GetBankSide(gActiveBank) == 1)
{
- r7 = GetBankByPlayerAI(1);
+ r7 = GetBankByIdentity(1);
if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
- to_cmp = GetBankByPlayerAI(3);
+ to_cmp = GetBankByIdentity(3);
else
to_cmp = r7;
party = gEnemyParty;
}
else
{
- r7 = GetBankByPlayerAI(0);
+ r7 = GetBankByIdentity(0);
if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
- to_cmp = GetBankByPlayerAI(2);
+ to_cmp = GetBankByIdentity(2);
else
to_cmp = r7;
party = gPlayerParty;
@@ -10528,7 +10521,7 @@ _080232C4:\n\
eors r0, r1\n\
lsls r0, 24\n\
lsrs r0, 24\n\
- bl GetBankByPlayerAI\n\
+ bl GetBankByIdentity\n\
ldr r4, _08023310 @ =gActiveBank\n\
strb r0, [r4]\n\
ldr r0, _08023314 @ =gAbsentBankFlags\n\
@@ -10632,13 +10625,13 @@ static void atk52_switchineffects(void)
gSideAffecting[GetBankSide(gActiveBank)] |= SIDE_STATUS_SPIKES_DAMAGED;
- spikesDmg = (5 - gSideTimer[GetBankSide(gActiveBank)].spikesAmount) * 2;
+ spikesDmg = (5 - gSideTimers[GetBankSide(gActiveBank)].spikesAmount) * 2;
gBattleMoveDamage = gBattleMons[gActiveBank].maxHP / (spikesDmg);
if (gBattleMoveDamage == 0)
gBattleMoveDamage = 1;
BATTLE_STRUCT->scriptingActive = gActiveBank;
- b_movescr_stack_push_cursor();
+ BattleScriptPushCursor();
if (T2_READ_8(gBattlescriptCurrInstr + 1) == 0)
gBattlescriptCurrInstr = BattleScript_SpikesOnTarget;
@@ -10660,8 +10653,8 @@ static void atk52_switchineffects(void)
for (i = 0; i < gNoOfAllBanks; i++)
{
- if (gTurnOrder[i] == gActiveBank)
- gUnknown_02024A76[i] = 0xC;
+ if (gBanksByTurnOrder[i] == gActiveBank)
+ gActionsByTurnOrder[i] = 0xC;
}
for (i = 0; i < gNoOfAllBanks; i++)
@@ -10690,9 +10683,9 @@ static void atk52_switchineffects(void)
static void atk53_trainerslidein(void)
{
if (!T2_READ_8(gBattlescriptCurrInstr + 1))
- gActiveBank = GetBankByPlayerAI(0);
+ gActiveBank = GetBankByIdentity(0);
else
- gActiveBank = GetBankByPlayerAI(1);
+ gActiveBank = GetBankByIdentity(1);
EmitTrainerSlide(0);
MarkBufferBankForExecution(gActiveBank);
@@ -10725,7 +10718,7 @@ static void atk56_playfaintcry(void)
static void atk57(void)
{
- gActiveBank = GetBankByPlayerAI(0);
+ gActiveBank = GetBankByIdentity(0);
Emitcmd55(0, gBattleOutcome);
MarkBufferBankForExecution(gActiveBank);
gBattlescriptCurrInstr += 1;
@@ -10758,12 +10751,12 @@ void atk59_handlelearnnewmove(void)
}
else
{
- gActiveBank = GetBankByPlayerAI(0);
+ gActiveBank = GetBankByIdentity(0);
if (gBattlePartyID[gActiveBank] == BATTLE_STRUCT->expGetterID && !(gBattleMons[gActiveBank].status2 & STATUS2_TRANSFORMED))
GiveMoveToBattleMon(&gBattleMons[gActiveBank], ret);
if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) //what is else if
{
- gActiveBank = GetBankByPlayerAI(2);
+ gActiveBank = GetBankByIdentity(2);
if (gBattlePartyID[gActiveBank] == BATTLE_STRUCT->expGetterID && !(gBattleMons[gActiveBank].status2 & STATUS2_TRANSFORMED))
GiveMoveToBattleMon(&gBattleMons[gActiveBank], ret);
}
@@ -10838,7 +10831,7 @@ static void atk5A_yesnoboxlearnmove(void)
}
break;
case 3:
- if (!gPaletteFade.active && gMain.callback2 == sub_800F808)
+ if (!gPaletteFade.active && gMain.callback2 == BattleMainCB2)
{
u8 move_pos = sub_809FA30();
if (move_pos == 4)
@@ -11404,7 +11397,7 @@ static void atk68_cancelallactions(void)
int i;
for (i = 0; i < gNoOfAllBanks; i++)
{
- gUnknown_02024A76[i] = 0xC;
+ gActionsByTurnOrder[i] = 0xC;
}
gBattlescriptCurrInstr++;
}
@@ -11458,7 +11451,7 @@ void atk6A_removeitem(void)
USED_HELD_ITEMS(gActiveBank) = gBattleMons[gActiveBank].item;
gBattleMons[gActiveBank].item = 0;
- EmitSetAttributes(0, REQUEST_HELDITEM_BATTLE, 0, 2, &gBattleMons[gActiveBank].item);
+ EmitSetMonData(0, REQUEST_HELDITEM_BATTLE, 0, 2, &gBattleMons[gActiveBank].item);
MarkBufferBankForExecution(gActiveBank);
gBattlescriptCurrInstr += 2;
}
@@ -11901,13 +11894,13 @@ _08024C48: .4byte gBattlescriptCurrInstr\n\
static void atk6D_resetsentmonsvalue(void)
{
- sub_80156DC();
+ ResetSentPokesToOpponentValue();
gBattlescriptCurrInstr++;
}
static void atk6E_setatktoplayer0(void)
{
- gBankAttacker = GetBankByPlayerAI(0);
+ gBankAttacker = GetBankByIdentity(0);
gBattlescriptCurrInstr++;
}
@@ -11943,7 +11936,7 @@ static void atk71_buffermovetolearn(void)
static void atk72_jumpifplayerran(void)
{
- if (sub_8014AB8(gBank1))
+ if (TryRunFromBattle(gBank1))
gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
else
gBattlescriptCurrInstr += 5;
@@ -12020,8 +12013,8 @@ static void atk76_various(void)
u8 side;
gBankAttacker = gBankTarget;
side = GetBankSide(gBankAttacker) ^ 1;
- if (gSideTimer[side].followmeTimer && gBattleMons[gSideTimer[side].followmeTarget].hp)
- gBankTarget = gSideTimer[side].followmeTarget;
+ if (gSideTimers[side].followmeTimer && gBattleMons[gSideTimers[side].followmeTarget].hp)
+ gBankTarget = gSideTimers[side].followmeTarget;
else
gBankTarget = gActiveBank;
}
@@ -12080,7 +12073,7 @@ static void atk77_setprotectlike(void) //protect and endure
if (last_move != MOVE_PROTECT && last_move != MOVE_DETECT && last_move != MOVE_ENDURE)
gDisableStructs[gBankAttacker].protectUses = 0;
- if (gCurrentMoveTurn == (gNoOfAllBanks - 1))
+ if (gCurrentTurnActionNumber == (gNoOfAllBanks - 1))
not_last_turn = 0;
if (sProtectSuccessRates[gDisableStructs[gBankAttacker].protectUses] > Random() && not_last_turn)
@@ -12149,7 +12142,7 @@ static void atk79_setatkhptozero(void)
gActiveBank = gBankAttacker;
gBattleMons[gActiveBank].hp = 0;
- EmitSetAttributes(0, REQUEST_HP_BATTLE, 0, 2, &gBattleMons[gActiveBank].hp);
+ EmitSetMonData(0, REQUEST_HP_BATTLE, 0, 2, &gBattleMons[gActiveBank].hp);
MarkBufferBankForExecution(gActiveBank);
gBattlescriptCurrInstr++;
@@ -12266,7 +12259,7 @@ static void atk7E_setreflect(void)
else
{
gSideAffecting[GetBankIdentity(gBankAttacker) & 1] |= SIDE_STATUS_REFLECT;
- gSideTimer[GetBankIdentity(gBankAttacker) & 1].reflectTimer = 5;
+ gSideTimers[GetBankIdentity(gBankAttacker) & 1].reflectTimer = 5;
if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && CountAliveMons(1) == 2)
gBattleCommunication[MULTISTRING_CHOOSER] = 2;
else
@@ -12334,7 +12327,7 @@ static void atk81_trysetrest(void)
gBattleCommunication[MULTISTRING_CHOOSER] = 0;
gBattleMons[gBankTarget].status1 = 3;
- EmitSetAttributes(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBank].status1);
+ EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBank].status1);
MarkBufferBankForExecution(gActiveBank);
gBattlescriptCurrInstr += 5;
}
@@ -12502,7 +12495,7 @@ u8 ChangeStatBuffs(s8 statchanger, u8 stat, u8 flags, u8* bs_ptr)
if ((statchanger << 0x18) < 0) //stat decrease
{
- if (gSideTimer[GetBankIdentity(gActiveBank) & 1].mistTimer && !r9 && gCurrentMove != MOVE_CURSE)
+ if (gSideTimers[GetBankIdentity(gActiveBank) & 1].mistTimer && !r9 && gCurrentMove != MOVE_CURSE)
{
if (flags == 1)
{
@@ -12510,7 +12503,7 @@ u8 ChangeStatBuffs(s8 statchanger, u8 stat, u8 flags, u8* bs_ptr)
gBattlescriptCurrInstr = bs_ptr;
else
{
- b_movescr_stack_push(bs_ptr);
+ BattleScriptPush(bs_ptr);
BATTLE_STRUCT->scriptingActive = gActiveBank;
gBattlescriptCurrInstr = BattleScript_MistProtected;
gSpecialStatuses[gActiveBank].statloweringflag = 1;
@@ -12531,7 +12524,7 @@ u8 ChangeStatBuffs(s8 statchanger, u8 stat, u8 flags, u8* bs_ptr)
gBattlescriptCurrInstr = bs_ptr;
else
{
- b_movescr_stack_push(bs_ptr);
+ BattleScriptPush(bs_ptr);
BATTLE_STRUCT->scriptingActive = gActiveBank;
gBattlescriptCurrInstr = BattleScript_AbilityNoStatLoss;
gLastUsedAbility = gBattleMons[gActiveBank].ability;
@@ -12545,7 +12538,7 @@ u8 ChangeStatBuffs(s8 statchanger, u8 stat, u8 flags, u8* bs_ptr)
{
if (flags == 1)
{
- b_movescr_stack_push(bs_ptr);
+ BattleScriptPush(bs_ptr);
BATTLE_STRUCT->scriptingActive = gActiveBank;
gBattlescriptCurrInstr = BattleScript_AbilityNoSpecificStatLoss;
gLastUsedAbility = gBattleMons[gActiveBank].ability;
@@ -12557,7 +12550,7 @@ u8 ChangeStatBuffs(s8 statchanger, u8 stat, u8 flags, u8* bs_ptr)
{
if (flags == 1)
{
- b_movescr_stack_push(bs_ptr);
+ BattleScriptPush(bs_ptr);
BATTLE_STRUCT->scriptingActive = gActiveBank;
gBattlescriptCurrInstr = BattleScript_AbilityNoSpecificStatLoss;
gLastUsedAbility = gBattleMons[gActiveBank].ability;
@@ -12728,7 +12721,7 @@ _08025E88:\n\
blt _08025EAC\n\
b _080261B0\n\
_08025EAC:\n\
- ldr r4, _08025F04 @ =gSideTimer\n\
+ ldr r4, _08025F04 @ =gSideTimers\n\
ldr r1, _08025EF8 @ =gActiveBank\n\
ldrb r0, [r1]\n\
bl GetBankIdentity\n\
@@ -12769,13 +12762,13 @@ _08025EAC:\n\
_08025EF8: .4byte gActiveBank\n\
_08025EFC: .4byte gBankTarget\n\
_08025F00: .4byte gBattleTextBuff1\n\
-_08025F04: .4byte gSideTimer\n\
+_08025F04: .4byte gSideTimers\n\
_08025F08: .4byte gCurrentMove\n\
_08025F0C: .4byte gSpecialStatuses\n\
_08025F10: .4byte gBattlescriptCurrInstr\n\
_08025F14:\n\
mov r0, r8\n\
- bl b_movescr_stack_push\n\
+ bl BattleScriptPush\n\
ldr r0, _08025F40 @ =gSharedMem\n\
ldr r6, _08025F44 @ =gActiveBank\n\
ldrb r1, [r6]\n\
@@ -12870,7 +12863,7 @@ _08025FD8: .4byte gSpecialStatuses\n\
_08025FDC: .4byte gBattlescriptCurrInstr\n\
_08025FE0:\n\
mov r0, r8\n\
- bl b_movescr_stack_push\n\
+ bl BattleScriptPush\n\
ldr r0, _08026028 @ =gSharedMem\n\
ldr r2, _0802602C @ =gActiveBank\n\
ldrb r1, [r2]\n\
@@ -12927,7 +12920,7 @@ _08026040:\n\
cmp r5, 0x1\n\
bne _08025F74\n\
mov r0, r8\n\
- bl b_movescr_stack_push\n\
+ bl BattleScriptPush\n\
ldr r0, _08026094 @ =gSharedMem\n\
ldr r3, _08026090 @ =gActiveBank\n\
ldrb r1, [r3]\n\
@@ -12975,7 +12968,7 @@ _080260A8:\n\
b _08025F74\n\
_080260CA:\n\
mov r0, r8\n\
- bl b_movescr_stack_push\n\
+ bl BattleScriptPush\n\
ldr r0, _08026100 @ =gSharedMem\n\
ldr r3, _080260FC @ =gActiveBank\n\
ldrb r1, [r3]\n\
@@ -13251,7 +13244,7 @@ static void atk8A_normalisebuffs(void) //haze
static void atk8B_setbide(void)
{
gBattleMons[gBankAttacker].status2 |= STATUS2_MULTIPLETURNS;
- gLockedMove[gBankAttacker] = gCurrentMove;
+ gLockedMoves[gBankAttacker] = gCurrentMove;
gTakenDmg[gBankAttacker] = 0;
gBattleMons[gBankAttacker].status2 |= (STATUS2_BIDE - 0x100); //2 turns
gBattlescriptCurrInstr++;
@@ -13471,7 +13464,7 @@ static void atk91_givepaydaymoney(void)
gBattleTextBuff1[4] = gPaydayMoney;
gBattleTextBuff1[5] = uBYTE1_16(gPaydayMoney);
gBattleTextBuff1[6] = 0xFF;
- b_movescr_stack_push(gBattlescriptCurrInstr + 1);
+ BattleScriptPush(gBattlescriptCurrInstr + 1);
gBattlescriptCurrInstr = BattleScript_PrintPayDayMoneyString;
}
else
@@ -13488,7 +13481,7 @@ static void atk92_setlightscreen(void)
else
{
gSideAffecting[GetBankIdentity(gBankAttacker) & 1] |= SIDE_STATUS_LIGHTSCREEN;
- gSideTimer[GetBankIdentity(gBankAttacker) & 1].lightscreenTimer = 5;
+ gSideTimers[GetBankIdentity(gBankAttacker) & 1].lightscreenTimer = 5;
if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && CountAliveMons(1) == 2)
gBattleCommunication[MULTISTRING_CHOOSER] = 4;
else
@@ -14034,7 +14027,7 @@ static void atk98_updatestatusicon(void)
}
if ((gBattleTypeFlags & BATTLE_TYPE_DOUBLE))
{
- gActiveBank = GetBankByPlayerAI(GetBankIdentity(gBankAttacker) ^ 2);
+ gActiveBank = GetBankByIdentity(GetBankIdentity(gBankAttacker) ^ 2);
if (!(gAbsentBankFlags & gBitTable[gActiveBank]))
{
EmitStatusIconUpdate(0, gBattleMons[gActiveBank].status1, gBattleMons[gActiveBank].status2);
@@ -14047,14 +14040,14 @@ static void atk98_updatestatusicon(void)
static void atk99_setmist(void)
{
- if (gSideTimer[GetBankIdentity(gBankAttacker) & 1].mistTimer)
+ if (gSideTimers[GetBankIdentity(gBankAttacker) & 1].mistTimer)
{
gBattleMoveFlags |= MOVESTATUS_FAILED;
gBattleCommunication[MULTISTRING_CHOOSER] = 1;
}
else
{
- gSideTimer[GetBankIdentity(gBankAttacker) & 1].mistTimer = 5;
+ gSideTimers[GetBankIdentity(gBankAttacker) & 1].mistTimer = 5;
gSideAffecting[GetBankIdentity(gBankAttacker) & 1] |= SIDE_STATUS_MIST;
gBattleCommunication[MULTISTRING_CHOOSER] = 0;
}
@@ -14315,8 +14308,8 @@ static void atkA1_counterdamagecalculator(void)
if (gProtectStructs[gBankAttacker].physicalDmg && atk_side != def_side && gBattleMons[gProtectStructs[gBankAttacker].physicalBank].hp)
{
gBattleMoveDamage = gProtectStructs[gBankAttacker].physicalDmg * 2;
- if (gSideTimer[def_side].followmeTimer && gBattleMons[gSideTimer[def_side].followmeTarget].hp)
- gBankTarget = gSideTimer[def_side].followmeTarget;
+ if (gSideTimers[def_side].followmeTimer && gBattleMons[gSideTimers[def_side].followmeTarget].hp)
+ gBankTarget = gSideTimers[def_side].followmeTarget;
else
gBankTarget = gProtectStructs[gBankAttacker].physicalBank;
gBattlescriptCurrInstr += 5;
@@ -14335,8 +14328,8 @@ static void atkA2_mirrorcoatdamagecalculator(void) //a copy of atkA1 with the ph
if (gProtectStructs[gBankAttacker].specialDmg && atk_side != def_side && gBattleMons[gProtectStructs[gBankAttacker].specialBank].hp)
{
gBattleMoveDamage = gProtectStructs[gBankAttacker].specialDmg * 2;
- if (gSideTimer[def_side].followmeTimer && gBattleMons[gSideTimer[def_side].followmeTarget].hp)
- gBankTarget = gSideTimer[def_side].followmeTarget;
+ if (gSideTimers[def_side].followmeTimer && gBattleMons[gSideTimers[def_side].followmeTarget].hp)
+ gBankTarget = gSideTimers[def_side].followmeTarget;
else
gBankTarget = gProtectStructs[gBankAttacker].specialBank;
gBattlescriptCurrInstr += 5;
@@ -14767,7 +14760,7 @@ static void atkA8_copymovepermanently(void)
moves_data.pp[i] = gBattleMons[gBankAttacker].pp[i];
}
moves_data.ppBonuses = gBattleMons[gBankAttacker].ppBonuses;
- EmitSetAttributes(0, REQUEST_MOVES_PP_BATTLE, 0, sizeof(struct move_pp), &moves_data);
+ EmitSetMonData(0, REQUEST_MOVES_PP_BATTLE, 0, sizeof(struct move_pp), &moves_data);
MarkBufferBankForExecution(gActiveBank);
gBattleTextBuff1[0] = 0xFD;
gBattleTextBuff1[1] = 2;
@@ -14910,7 +14903,7 @@ static void atkAD_tryspiteppreduce(void)
if (!(gDisableStructs[gActiveBank].unk18_b & gBitTable[i])
&& !(gBattleMons[gActiveBank].status2 & STATUS2_TRANSFORMED))
{
- EmitSetAttributes(0, REQUEST_PPMOVE1_BATTLE + i, 0, 1, &gBattleMons[gActiveBank].pp[i]);
+ EmitSetMonData(0, REQUEST_PPMOVE1_BATTLE + i, 0, 1, &gBattleMons[gActiveBank].pp[i]);
MarkBufferBankForExecution(gActiveBank);
}
gBattlescriptCurrInstr += 5;
@@ -14948,7 +14941,7 @@ static void atkAE_healpartystatus(void)
gBattleCommunication[MULTISTRING_CHOOSER] |= 1;
}
- gActiveBank = BATTLE_STRUCT->scriptingActive = GetBankByPlayerAI(GetBankIdentity(gBankAttacker) ^ 2);
+ gActiveBank = BATTLE_STRUCT->scriptingActive = GetBankByIdentity(GetBankIdentity(gBankAttacker) ^ 2);
if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && !(gAbsentBankFlags & gBitTable[gActiveBank]))
{
if (gBattleMons[gActiveBank].ability != ABILITY_SOUNDPROOF)
@@ -14986,14 +14979,14 @@ static void atkAE_healpartystatus(void)
to_heal = 0x3F;
gBattleMons[gBankAttacker].status1 = zero2;
- gActiveBank = GetBankByPlayerAI(GetBankIdentity(gBankAttacker) ^ 2);
+ gActiveBank = GetBankByIdentity(GetBankIdentity(gBankAttacker) ^ 2);
if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && !(gAbsentBankFlags & gBitTable[gActiveBank]))
gBattleMons[gActiveBank].status1 = 0;
}
//missing check?
gActiveBank = gBankAttacker;
- EmitSetAttributes(0, REQUEST_STATUS_BATTLE, to_heal, 4, &zero);
+ EmitSetMonData(0, REQUEST_STATUS_BATTLE, to_heal, 4, &zero);
MarkBufferBankForExecution(gActiveBank);
gBattlescriptCurrInstr++;
@@ -15018,7 +15011,7 @@ static void atkAF_cursetarget(void)
static void atkB0_trysetspikes(void)
{
u8 side = GetBankSide(gBankAttacker) ^ 1;
- if (gSideTimer[side].spikesAmount == 3)
+ if (gSideTimers[side].spikesAmount == 3)
{
gSpecialStatuses[gBankAttacker].flag20 = 1;
gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
@@ -15026,7 +15019,7 @@ static void atkB0_trysetspikes(void)
else
{
gSideAffecting[side] |= SIDE_STATUS_SPIKES;
- gSideTimer[side].spikesAmount++;
+ gSideTimers[side].spikesAmount++;
gBattlescriptCurrInstr += 5;
}
}
@@ -15053,7 +15046,7 @@ static void atkB2_trysetperishsong(void)
}
}
- sub_80153D0(gBankAttacker);
+ PressurePPLoseOnUsingPerishSong(gBankAttacker);
if (not_affected_pokes == gNoOfAllBanks)
gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
else
@@ -15075,7 +15068,7 @@ static void atkB3_rolloutdamagecalculation(void)
gDisableStructs[gBankAttacker].rolloutTimer1 = 5;
gDisableStructs[gBankAttacker].rolloutTimer2 = 5;
gBattleMons[gBankAttacker].status2 |= STATUS2_MULTIPLETURNS;
- gLockedMove[gBankAttacker] = gCurrentMove;
+ gLockedMoves[gBankAttacker] = gCurrentMove;
}
if (--gDisableStructs[gBankAttacker].rolloutTimer1 == 0)
gBattleMons[gBankAttacker].status2 &= ~(STATUS2_MULTIPLETURNS);
@@ -15167,7 +15160,7 @@ static void atkB8_setsafeguard(void)
else
{
gSideAffecting[GetBankIdentity(gBankAttacker) & 1] |= SIDE_STATUS_SAFEGUARD;
- gSideTimer[GetBankIdentity(gBankAttacker) & 1].safeguardTimer = 5;
+ gSideTimers[GetBankIdentity(gBankAttacker) & 1].safeguardTimer = 5;
gBattleCommunication[MULTISTRING_CHOOSER] = 5;
}
gBattlescriptCurrInstr++;
@@ -15234,16 +15227,16 @@ static void atkBA_jumpifnopursuitswitchdmg(void)
if (gMultiHitCounter == 1)
{
if (GetBankSide(gBankAttacker) == 0)
- gBankTarget = GetBankByPlayerAI(1);
+ gBankTarget = GetBankByIdentity(1);
else
- gBankTarget = GetBankByPlayerAI(0);
+ gBankTarget = GetBankByIdentity(0);
}
else
{
if (GetBankSide(gBankAttacker) == 0)
- gBankTarget = GetBankByPlayerAI(3);
+ gBankTarget = GetBankByIdentity(3);
else
- gBankTarget = GetBankByPlayerAI(2);
+ gBankTarget = GetBankByIdentity(2);
}
if (gActionForBanks[gBankTarget] == 0 && gBankAttacker == ewram16010arr(gBankTarget) && !(gBattleMons[gBankTarget].status1 & (STATUS_SLEEP | STATUS_FREEZE))
@@ -15252,8 +15245,8 @@ static void atkBA_jumpifnopursuitswitchdmg(void)
int i;
for (i = 0; i < gNoOfAllBanks; i++)
{
- if (gTurnOrder[i] == gBankTarget)
- gUnknown_02024A76[i] = 11;
+ if (gBanksByTurnOrder[i] == gBankTarget)
+ gActionsByTurnOrder[i] = 11;
}
gCurrentMove = MOVE_PURSUIT;
gBattlescriptCurrInstr += 5;
@@ -15321,21 +15314,21 @@ static void atkBE_rapidspinfree(void) //rapid spin
gBattleTextBuff1[2] = ewram16004arr(0, gBankAttacker);
gBattleTextBuff1[3] = ewram16004arr(1, gBankAttacker);
gBattleTextBuff1[4] = 0xFF;
- b_movescr_stack_push_cursor();
+ BattleScriptPushCursor();
gBattlescriptCurrInstr = BattleScript_WrapFree;
}
else if (gStatuses3[gBankAttacker] & STATUS3_LEECHSEED)
{
gStatuses3[gBankAttacker] &= ~(STATUS3_LEECHSEED);
gStatuses3[gBankAttacker] &= ~(STATUS3_LEECHSEED_BANK);
- b_movescr_stack_push_cursor();
+ BattleScriptPushCursor();
gBattlescriptCurrInstr = BattleScript_LeechSeedFree;
}
else if (gSideAffecting[GetBankSide(gBankAttacker)] & SIDE_STATUS_SPIKES)
{
gSideAffecting[GetBankSide(gBankAttacker)] &= ~(SIDE_STATUS_SPIKES);
- gSideTimer[GetBankSide(gBankAttacker)].spikesAmount = 0;
- b_movescr_stack_push_cursor();
+ gSideTimers[GetBankSide(gBankAttacker)].spikesAmount = 0;
+ BattleScriptPushCursor();
gBattlescriptCurrInstr = BattleScript_SpikesFree;
}
else
@@ -15935,8 +15928,8 @@ static void atkC9_jumpifattackandspecialattackcannotfall(void) //memento
static void atkCA_setforcedtarget(void) //follow me
{
- gSideTimer[GetBankSide(gBankAttacker)].followmeTimer = 1;
- gSideTimer[GetBankSide(gBankAttacker)].followmeTarget = gBankAttacker;
+ gSideTimers[GetBankSide(gBankAttacker)].followmeTimer = 1;
+ gSideTimers[GetBankSide(gBankAttacker)].followmeTarget = gBankAttacker;
gBattlescriptCurrInstr++;
}
@@ -15953,7 +15946,7 @@ static void atkCC_callterrainattack(void) //nature power
gHitMarker &= ~(HITMARKER_ATTACKSTRING_PRINTED);
gCurrentMove = sNaturePowerMoves[gBattleTerrain];
gBankTarget = GetMoveTarget(gCurrentMove, 0);
- b_movescr_stack_push(gBattleScriptsForMoveEffects[gBattleMoves[gCurrentMove].effect]);
+ BattleScriptPush(gBattleScriptsForMoveEffects[gBattleMoves[gCurrentMove].effect]);
gBattlescriptCurrInstr++;
}
@@ -15964,7 +15957,7 @@ static void atkCD_cureifburnedparalysedorpoisoned(void) //refresh
gBattleMons[gBankAttacker].status1 = 0;
gBattlescriptCurrInstr += 5;
gActiveBank = gBankAttacker;
- EmitSetAttributes(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBank].status1);
+ EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBank].status1);
MarkBufferBankForExecution(gActiveBank);
}
else
@@ -16004,7 +15997,7 @@ static void atkD0_settaunt(void)
static void atkD1_trysethelpinghand(void)
{
- gBankTarget = GetBankByPlayerAI(GetBankIdentity(gBankAttacker) ^ 2);
+ gBankTarget = GetBankByIdentity(GetBankIdentity(gBankAttacker) ^ 2);
if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && !(gAbsentBankFlags & gBitTable[gBankTarget])
&& !gProtectStructs[gBankAttacker].helpingHand && !gProtectStructs[gBankTarget].helpingHand)
{
@@ -16223,7 +16216,7 @@ _0802A36C:\n\
movs r1, 0x2\n\
movs r2, 0\n\
movs r3, 0x2\n\
- bl EmitSetAttributes\n\
+ bl EmitSetMonData\n\
ldr r2, _0802A45C @ =gBankAttacker\n\
ldrb r0, [r2]\n\
bl MarkBufferBankForExecution\n\
@@ -16241,7 +16234,7 @@ _0802A36C:\n\
movs r1, 0x2\n\
movs r2, 0\n\
movs r3, 0x2\n\
- bl EmitSetAttributes\n\
+ bl EmitSetMonData\n\
ldrb r0, [r7]\n\
bl MarkBufferBankForExecution\n\
ldr r0, _0802A464 @ =0xfffe9f10\n\
@@ -16472,7 +16465,7 @@ static void atkDB_tryimprision(void)
else
{
u8 bank;
- sub_801529C(gBankAttacker);
+ PressurePPLoseOnUsingImprision(gBankAttacker);
for (bank = 0; bank < gNoOfAllBanks; bank++)
{
if (r8 != GetBankSide(bank))
@@ -16774,7 +16767,7 @@ static void atkDF_trysetmagiccoat(void)
{
gBankTarget = gBankAttacker;
gSpecialStatuses[gBankAttacker].flag20 = 1;
- if (gCurrentMoveTurn == gNoOfAllBanks - 1) //last turn
+ if (gCurrentTurnActionNumber == gNoOfAllBanks - 1) //last turn
gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
else
{
@@ -16786,7 +16779,7 @@ static void atkDF_trysetmagiccoat(void)
static void atkE0_trysetsnatch(void)
{
gSpecialStatuses[gBankAttacker].flag20 = 1;
- if (gCurrentMoveTurn == gNoOfAllBanks - 1) //last turn
+ if (gCurrentTurnActionNumber == gNoOfAllBanks - 1) //last turn
gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
else
{
@@ -16827,7 +16820,7 @@ static void atkE2_switchoutabilities(void)
{
case ABILITY_NATURAL_CURE:
gBattleMons[gActiveBank].status1 = 0;
- EmitSetAttributes(0, REQUEST_STATUS_BATTLE, gBitTable[ewram16064arr(gActiveBank)], 4, &gBattleMons[gActiveBank].status1);
+ EmitSetMonData(0, REQUEST_STATUS_BATTLE, gBitTable[ewram16064arr(gActiveBank)], 4, &gBattleMons[gActiveBank].status1);
MarkBufferBankForExecution(gActiveBank);
break;
}
@@ -16923,7 +16916,7 @@ static void atkE7_trycastformdatachange(void)
form = CastformDataTypeChange(BATTLE_STRUCT->scriptingActive);
if (form)
{
- b_push_move_exec(BattleScript_CastformChange);
+ BattleScriptPushCursorAndCallback(BattleScript_CastformChange);
BATTLE_STRUCT->castformToChangeInto = form - 1;
}
}
@@ -16985,7 +16978,7 @@ static void atkEA_tryrecycleitem(void)
gLastUsedItem = *used_item;
*used_item = 0;
gBattleMons[gActiveBank].item = gLastUsedItem;
- EmitSetAttributes(0, REQUEST_HELDITEM_BATTLE, 0, 2, &gBattleMons[gActiveBank].item);
+ EmitSetMonData(0, REQUEST_HELDITEM_BATTLE, 0, 2, &gBattleMons[gActiveBank].item);
MarkBufferBankForExecution(gActiveBank);
gBattlescriptCurrInstr += 5;
}
@@ -17011,10 +17004,10 @@ static void atkEB_settypetoterrain(void)
static void atkEC_pursuitrelated(void)
{
- gActiveBank = GetBankByPlayerAI(GetBankIdentity(gBankAttacker) ^ 2);
+ gActiveBank = GetBankByIdentity(GetBankIdentity(gBankAttacker) ^ 2);
if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && !(gAbsentBankFlags & gBitTable[gActiveBank]) && gActionForBanks[gActiveBank] == 0 && gChosenMovesByBanks[gActiveBank] == MOVE_PURSUIT)
{
- gUnknown_02024A76[gActiveBank] = 11;
+ gActionsByTurnOrder[gActiveBank] = 11;
gCurrentMove = MOVE_PURSUIT;
gBattlescriptCurrInstr += 5;
BATTLE_STRUCT->animTurn = 1;
@@ -17039,12 +17032,12 @@ static void atkED_snatchsetbanks(void)
static void atkEE_removelightscreenreflect(void) //brick break
{
u8 side = GetBankSide(gBankAttacker) ^ 1;
- if (gSideTimer[side].reflectTimer || gSideTimer[side].lightscreenTimer)
+ if (gSideTimers[side].reflectTimer || gSideTimers[side].lightscreenTimer)
{
gSideAffecting[side] &= ~(SIDE_STATUS_REFLECT);
gSideAffecting[side] &= ~(SIDE_STATUS_LIGHTSCREEN);
- gSideTimer[side].reflectTimer = 0;
- gSideTimer[side].lightscreenTimer = 0;
+ gSideTimers[side].reflectTimer = 0;
+ gSideTimers[side].lightscreenTimer = 0;
BATTLE_STRUCT->animTurn = 1;
BATTLE_STRUCT->animTargetsHit = 1;
}
@@ -17230,7 +17223,7 @@ static void atkF2_displaydexinfo(void)
}
break;
case 2:
- if (!gPaletteFade.active && gMain.callback2 == sub_800F808 && !gTasks[gBattleCommunication[1]].isActive)
+ if (!gPaletteFade.active && gMain.callback2 == BattleMainCB2 && !gTasks[gBattleCommunication[1]].isActive)
{
LZDecompressVram(gBattleTerrainTiles_Building, (void*)(0x06008000));
LZDecompressVram(gBattleTerrainTilemap_Building, (void*)(0x0600d000));
@@ -17394,12 +17387,12 @@ static void atkF3_trygivecaughtmonnick(void)
if (!gPaletteFade.active)
{
GetMonData(&gEnemyParty[gBattlePartyID[gBankAttacker ^ 1]], MON_DATA_NICKNAME, BATTLE_STRUCT->caughtNick);
- DoNamingScreen(2, BATTLE_STRUCT->caughtNick, GetMonData(&gEnemyParty[gBattlePartyID[gBankAttacker ^ 1]], MON_DATA_SPECIES), GetMonGender(&gEnemyParty[gBattlePartyID[gBankAttacker ^ 1]]), GetMonData(&gEnemyParty[gBattlePartyID[gBankAttacker ^ 1]], MON_DATA_PERSONALITY, 0), sub_800F808);
+ DoNamingScreen(2, BATTLE_STRUCT->caughtNick, GetMonData(&gEnemyParty[gBattlePartyID[gBankAttacker ^ 1]], MON_DATA_SPECIES), GetMonGender(&gEnemyParty[gBattlePartyID[gBankAttacker ^ 1]]), GetMonData(&gEnemyParty[gBattlePartyID[gBankAttacker ^ 1]], MON_DATA_PERSONALITY, 0), BattleMainCB2);
gBattleCommunication[0]++;
}
break;
case 3:
- if (gMain.callback2 == sub_800F808 && !gPaletteFade.active )
+ if (gMain.callback2 == BattleMainCB2 && !gPaletteFade.active )
{
SetMonData(&gEnemyParty[gBattlePartyID[gBankAttacker ^ 1]], MON_DATA_NICKNAME, BATTLE_STRUCT->caughtNick);
gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
@@ -17428,11 +17421,11 @@ static void atkF5_removeattackerstatus1(void)
static void atkF6_finishaction(void)
{
- gFightStateTracker = 0xC;
+ gCurrentActionFuncId = 0xC;
}
static void atkF7_finishturn(void)
{
- gFightStateTracker = 0xC;
- gCurrentMoveTurn = gNoOfAllBanks;
+ gCurrentActionFuncId = 0xC;
+ gCurrentTurnActionNumber = gNoOfAllBanks;
}
diff --git a/src/battle/battle_7.c b/src/battle/battle_7.c
index e11971606..1c79d7ebf 100644
--- a/src/battle/battle_7.c
+++ b/src/battle/battle_7.c
@@ -795,7 +795,7 @@ void sub_80324F8(struct Pokemon *pkmn, u8 b)
void BattleMusicStop(void)
{
- u8 r4 = GetBankByPlayerAI(0);
+ u8 r4 = GetBankByIdentity(0);
ewram17800[r4].unk0_1 = 0;
if (IsDoubleBattle())
@@ -815,8 +815,8 @@ void sub_8032638(void)
{
if (gMain.inBattle)
{
- u8 r8 = GetBankByPlayerAI(0);
- u8 r9 = GetBankByPlayerAI(2);
+ u8 r8 = GetBankByIdentity(0);
+ u8 r9 = GetBankByIdentity(2);
u8 r4 = pokemon_order_func(gBattlePartyID[r8]);
u8 r5 = pokemon_order_func(gBattlePartyID[r9]);
@@ -857,12 +857,12 @@ void sub_80327CC(void)
u8 r5;
LoadCompressedObjectPic(&gUnknown_081FAF24);
- r5 = GetBankByPlayerAI(1);
+ r5 = GetBankByIdentity(1);
ewram17810[r5].unk7 = CreateSprite(&gSpriteTemplate_81FAF34, GetBankPosition(r5, 0), GetBankPosition(r5, 1) + 32, 0xC8);
gSprites[ewram17810[r5].unk7].data[0] = r5;
if (IsDoubleBattle())
{
- r5 = GetBankByPlayerAI(3);
+ r5 = GetBankByIdentity(3);
ewram17810[r5].unk7 = CreateSprite(&gSpriteTemplate_81FAF34, GetBankPosition(r5, 0), GetBankPosition(r5, 1) + 32, 0xC8);
gSprites[ewram17810[r5].unk7].data[0] = r5;
}
diff --git a/src/battle/battle_ai.c b/src/battle/battle_ai.c
index 1fa7a2ed2..977e91f5c 100644
--- a/src/battle/battle_ai.c
+++ b/src/battle/battle_ai.c
@@ -1275,7 +1275,7 @@ static void BattleAICmd_if_arg_not_equal(void)
static void BattleAICmd_if_would_go_first(void)
{
- if (GetWhoStrikesFirst(gBankAttacker, gBankTarget, 1) == gAIScriptPtr[1])
+ if (GetWhoStrikesFirst(gBankAttacker, gBankTarget, TRUE) == gAIScriptPtr[1])
gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2);
else
gAIScriptPtr += 6;
@@ -1283,7 +1283,7 @@ static void BattleAICmd_if_would_go_first(void)
static void BattleAICmd_if_would_not_go_first(void)
{
- if (GetWhoStrikesFirst(gBankAttacker, gBankTarget, 1) != gAIScriptPtr[1])
+ if (GetWhoStrikesFirst(gBankAttacker, gBankTarget, TRUE) != gAIScriptPtr[1])
gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2);
else
gAIScriptPtr += 6;
@@ -1321,7 +1321,7 @@ static void BattleAICmd_count_alive_pokemon(void)
u32 status;
var = gBattlePartyID[index];
status = GetBankIdentity(index) ^ 2;
- var2 = gBattlePartyID[GetBankByPlayerAI(status)];
+ var2 = gBattlePartyID[GetBankByIdentity(status)];
}
else
{
diff --git a/src/battle/battle_anim_80A7E7C.c b/src/battle/battle_anim_80A7E7C.c
index 3097f1a0e..c35434df0 100644
--- a/src/battle/battle_anim_80A7E7C.c
+++ b/src/battle/battle_anim_80A7E7C.c
@@ -108,17 +108,17 @@ void sub_80A7FA0(u8 taskId)
switch (gBattleAnimArgs[0])
{
case 4:
- side = GetBankByPlayerAI(0);
+ side = GetBankByIdentity(0);
break;
case 5:
- side = GetBankByPlayerAI(2);
+ side = GetBankByIdentity(2);
break;
case 6:
- side = GetBankByPlayerAI(1);
+ side = GetBankByIdentity(1);
break;
case 7:
default:
- side = GetBankByPlayerAI(3);
+ side = GetBankByIdentity(3);
break;
}
if (IsAnimBankSpriteVisible(side) == FALSE)
diff --git a/src/battle/battle_controller_linkopponent.c b/src/battle/battle_controller_linkopponent.c
index 35d8f33c8..54181bc21 100644
--- a/src/battle/battle_controller_linkopponent.c
+++ b/src/battle/battle_controller_linkopponent.c
@@ -48,8 +48,8 @@ extern u8 gUnknown_02024E68[];
extern struct SpriteTemplate gUnknown_02024E8C;
extern u8 gAnimMoveTurn;
extern struct Window gUnknown_03004210;
-extern u16 gUnknown_030042A0;
-extern u16 gUnknown_030042A4;
+extern u16 gBattle_BG0_Y;
+extern u16 gBattle_BG0_X;
extern u8 gUnknown_0300434C[];
extern u32 gBattleExecBuffer;
extern MainCallback gPreBattleCallback1;
@@ -1410,8 +1410,8 @@ void sub_8039B64(void)
void LinkOpponentHandlePrintString(void)
{
- gUnknown_030042A4 = 0;
- gUnknown_030042A0 = 0;
+ gBattle_BG0_X = 0;
+ gBattle_BG0_Y = 0;
BufferStringBattle(*(u16 *)&gBattleBufferA[gActiveBank][2]);
sub_8002EB0(&gUnknown_03004210, gDisplayedStringBattle, 144, 2, 15);
gBattleBankFunc[gActiveBank] = sub_8037C2C;
diff --git a/src/battle/battle_controller_linkpartner.c b/src/battle/battle_controller_linkpartner.c
index adc3c1c85..2c78d4a82 100644
--- a/src/battle/battle_controller_linkpartner.c
+++ b/src/battle/battle_controller_linkpartner.c
@@ -48,8 +48,8 @@ extern u8 gAnimFriendship;
extern u16 gWeatherMoveAnim;
extern u8 gAnimMoveTurn;
extern struct Window gUnknown_03004210;
-extern u16 gUnknown_030042A0;
-extern u16 gUnknown_030042A4;
+extern u16 gBattle_BG0_Y;
+extern u16 gBattle_BG0_X;
extern MainCallback gPreBattleCallback1;
extern void (*gBattleBankFunc[])(void);
extern u8 gHealthboxIDs[];
@@ -1355,8 +1355,8 @@ void sub_811FF30(void)
void LinkPartnerHandlePrintString(void)
{
- gUnknown_030042A4 = 0;
- gUnknown_030042A0 = 0;
+ gBattle_BG0_X = 0;
+ gBattle_BG0_Y = 0;
BufferStringBattle(*(u16 *)&gBattleBufferA[gActiveBank][2]);
sub_8002EB0(&gUnknown_03004210, gDisplayedStringBattle, 144, 2, 15);
gBattleBankFunc[gActiveBank] = sub_811DFA0;
diff --git a/src/battle/battle_controller_opponent.c b/src/battle/battle_controller_opponent.c
index 54bb9d7f9..ab7b6944b 100644
--- a/src/battle/battle_controller_opponent.c
+++ b/src/battle/battle_controller_opponent.c
@@ -50,8 +50,8 @@ extern u8 gAnimMoveTurn;
extern u8 gAnimScriptActive;
extern void (*gAnimScriptCallback)(void);
extern struct Window gUnknown_03004210;
-extern u16 gUnknown_030042A0;
-extern u16 gUnknown_030042A4;
+extern u16 gBattle_BG0_Y;
+extern u16 gBattle_BG0_X;
extern u8 gDisplayedStringBattle[];
extern u8 gBankTarget;
extern u8 gAbsentBankFlags;
@@ -98,7 +98,7 @@ extern void sub_80324BC();
extern void BufferStringBattle();
extern void sub_80331D0(void);
extern void sub_8036B0C(void);
-extern u8 GetBankByPlayerAI(u8);
+extern u8 GetBankByIdentity(u8);
extern u8 sub_8036CD4(void);
extern void sub_80330C8(void);
extern void sub_8043D84();
@@ -1404,8 +1404,8 @@ void sub_8035238(void)
void OpponentHandlePrintString(void)
{
- gUnknown_030042A4 = 0;
- gUnknown_030042A0 = 0;
+ gBattle_BG0_X = 0;
+ gBattle_BG0_Y = 0;
BufferStringBattle(*(u16 *)&gBattleBufferA[gActiveBank][2]);
sub_8002EB0(&gUnknown_03004210, gDisplayedStringBattle, 144, 2, 15);
gBattleBankFunc[gActiveBank] = sub_80331D0;
@@ -1451,9 +1451,9 @@ void OpponentHandlecmd20(void)
gBankTarget = gActiveBank;
if (gBattleMoves[r5->moves[r4]].target & 8)
{
- gBankTarget = GetBankByPlayerAI(0);
+ gBankTarget = GetBankByIdentity(0);
if (gAbsentBankFlags & gBitTable[gBankTarget])
- gBankTarget = GetBankByPlayerAI(2);
+ gBankTarget = GetBankByIdentity(2);
}
r4 |= gBankTarget << 8;
Emitcmd33(1, 10, r4);
@@ -1479,13 +1479,13 @@ void OpponentHandlecmd20(void)
}
else if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
{
- u16 r2 = GetBankByPlayerAI(Random() & 2) << 8;
+ u16 r2 = GetBankByIdentity(Random() & 2) << 8;
Emitcmd33(1, 10, r4 | r2);
}
else
{
- u16 r2 = GetBankByPlayerAI(0) << 8;
+ u16 r2 = GetBankByIdentity(0) << 8;
Emitcmd33(1, 10, r4 | r2);
}
@@ -1561,7 +1561,7 @@ _08035494:\n\
cmp r0, 0\n\
beq _080354CE\n\
movs r0, 0\n\
- bl GetBankByPlayerAI\n\
+ bl GetBankByIdentity\n\
ldr r5, _080354EC @ =gBankTarget\n\
strb r0, [r5]\n\
ldr r0, _080354F0 @ =gAbsentBankFlags\n\
@@ -1575,7 +1575,7 @@ _08035494:\n\
cmp r1, 0\n\
beq _080354CE\n\
movs r0, 0x2\n\
- bl GetBankByPlayerAI\n\
+ bl GetBankByIdentity\n\
strb r0, [r5]\n\
_080354CE:\n\
ldr r0, _080354EC @ =gBankTarget\n\
@@ -1640,7 +1640,7 @@ _0803553C:\n\
lsls r1, 24\n\
lsrs r1, 24\n\
adds r0, r1, 0\n\
- bl GetBankByPlayerAI\n\
+ bl GetBankByIdentity\n\
adds r2, r0, 0\n\
lsls r2, 24\n\
lsrs r2, 16\n\
@@ -1653,7 +1653,7 @@ _0803553C:\n\
_0803556C: .4byte gBattleTypeFlags\n\
_08035570:\n\
movs r0, 0\n\
- bl GetBankByPlayerAI\n\
+ bl GetBankByIdentity\n\
adds r2, r0, 0\n\
lsls r2, 24\n\
lsrs r2, 16\n\
@@ -1692,13 +1692,13 @@ void OpponentHandlecmd22(void)
{
if (!(gBattleTypeFlags & BATTLE_TYPE_DOUBLE))
{
- r5 = GetBankByPlayerAI(1);
+ r5 = GetBankByIdentity(1);
r6 = r5;
}
else
{
- r6 = GetBankByPlayerAI(1);
- r5 = GetBankByPlayerAI(3);
+ r6 = GetBankByIdentity(1);
+ r5 = GetBankByIdentity(3);
}
for (r4 = 0; r4 < 6; r4++)
{
diff --git a/src/battle/battle_controller_player.c b/src/battle/battle_controller_player.c
index 70773473d..f992e3e51 100644
--- a/src/battle/battle_controller_player.c
+++ b/src/battle/battle_controller_player.c
@@ -35,8 +35,8 @@ struct MovePpInfo
#define SUB_803037C_TILE_DATA_OFFSET 444
#endif
-extern u16 gUnknown_030042A4;
-extern u16 gUnknown_030042A0;
+extern u16 gBattle_BG0_X;
+extern u16 gBattle_BG0_Y;
extern struct Window gUnknown_03004210;
@@ -72,7 +72,7 @@ extern u16 gBattle_BG1_Y;
extern u16 gUnknown_030041B8;
extern u16 gBattle_BG2_Y;
extern u16 gBattle_BG2_X;
-extern u16 gUnknown_030042A4;
+extern u16 gBattle_BG0_X;
extern u16 gBattle_BG1_X;
extern u8 gUnknown_03004344;
extern u8 gUnknown_0300434C[];
@@ -118,7 +118,7 @@ extern void sub_8031F24(void);
extern void sub_80324BC();
extern u8 sub_8031720();
extern void bx_wait_t1(void);
-extern u8 GetBankByPlayerAI(u8);
+extern u8 GetBankByIdentity(u8);
extern void sub_802DE10(void);
extern void sub_80105EC(struct Sprite *);
extern void sub_802D274(void);
@@ -148,8 +148,8 @@ extern u8 gAbsentBankFlags;
extern u8 gUnknown_03004344;
extern u8 gNoOfAllBanks;
extern u16 gBattlePartyID[];
-extern u16 gUnknown_030042A0;
-extern u16 gUnknown_030042A4;
+extern u16 gBattle_BG0_Y;
+extern u16 gBattle_BG0_X;
extern struct Window gUnknown_03004210;
extern const u8 BattleText_SwitchWhich[];
extern u8 gUnknown_03004348;
@@ -167,7 +167,7 @@ extern const u8 BattleText_LinkStandby[];
extern void dp11b_obj_instanciate(u8, u8, s8, s8);
extern u8 GetBankIdentity(u8);
-extern u8 GetBankByPlayerAI(u8);
+extern u8 GetBankByIdentity(u8);
extern void dp11b_obj_free(u8, u8);
extern void sub_8010520(struct Sprite *);
extern void sub_8010574(struct Sprite *);
@@ -445,7 +445,7 @@ void sub_802C098(void)
{
if ((gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
&& GetBankIdentity(gActiveBank) == 2
- && !(gAbsentBankFlags & gBitTable[GetBankByPlayerAI(0)])
+ && !(gAbsentBankFlags & gBitTable[GetBankByIdentity(0)])
&& !(gBattleTypeFlags & BATTLE_TYPE_MULTI))
{
if (gBattleBufferA[gActiveBank][1] == 1)
@@ -529,7 +529,7 @@ void sub_802C2EC(void)
i--;
if (i < 0)
i = 3;
- gUnknown_03004344 = GetBankByPlayerAI(arr[i]);
+ gUnknown_03004344 = GetBankByIdentity(arr[i]);
} while(gUnknown_03004344 == gNoOfAllBanks);
i = 0;
switch (GetBankIdentity(gUnknown_03004344))
@@ -576,7 +576,7 @@ void sub_802C2EC(void)
i++;
if (i > 3)
i = 0;
- gUnknown_03004344 = GetBankByPlayerAI(arr[i]);
+ gUnknown_03004344 = GetBankByIdentity(arr[i]);
} while (gUnknown_03004344 == gNoOfAllBanks);
i = 0;
switch (GetBankIdentity(gUnknown_03004344))
@@ -636,7 +636,7 @@ void sub_802C68C(void)
if (r4 & 0x10)
gUnknown_03004344 = gActiveBank;
else
- gUnknown_03004344 = GetBankByPlayerAI((GetBankIdentity(gActiveBank) & 1) ^ 1);
+ gUnknown_03004344 = GetBankByIdentity((GetBankIdentity(gActiveBank) & 1) ^ 1);
if (gBattleBufferA[gActiveBank][1] == 0)
{
@@ -668,10 +668,10 @@ void sub_802C68C(void)
gBattleBankFunc[gActiveBank] = sub_802C2EC;
if (r4 & 0x12)
gUnknown_03004344 = gActiveBank;
- else if (gAbsentBankFlags & gBitTable[GetBankByPlayerAI(1)])
- gUnknown_03004344 = GetBankByPlayerAI(3);
+ else if (gAbsentBankFlags & gBitTable[GetBankByIdentity(1)])
+ gUnknown_03004344 = GetBankByIdentity(3);
else
- gUnknown_03004344 = GetBankByPlayerAI(1);
+ gUnknown_03004344 = GetBankByIdentity(1);
gSprites[gObjectBankIDs[gUnknown_03004344]].callback = sub_8010520;
}
}
@@ -679,8 +679,8 @@ void sub_802C68C(void)
{
DestroyMenuCursor();
PlaySE(SE_SELECT);
- gUnknown_030042A4 = 0;
- gUnknown_030042A0 = 320;
+ gBattle_BG0_X = 0;
+ gBattle_BG0_Y = 320;
Emitcmd33(1, 10, 0xFFFF);
PlayerBufferExecCompleted();
}
@@ -1495,7 +1495,7 @@ void sub_802DF30(void)
void sub_802DF88(void)
{
- if (gMain.callback2 == sub_800F808 && !gPaletteFade.active)
+ if (gMain.callback2 == BattleMainCB2 && !gPaletteFade.active)
{
if (gUnknown_0202E8F4 == 1)
Emitcmd34(1, gUnknown_0202E8F5, gUnknown_02038470);
@@ -1519,7 +1519,7 @@ void sub_802E004(void)
void sub_802E03C(void)
{
- if (gMain.callback2 == sub_800F808 && !gPaletteFade.active)
+ if (gMain.callback2 == BattleMainCB2 && !gPaletteFade.active)
{
Emitcmd35(1, gSpecialVar_ItemId);
PlayerBufferExecCompleted();
@@ -1695,8 +1695,8 @@ void b_link_standby_message(void)
{
if (gBattleTypeFlags & BATTLE_TYPE_LINK)
{
- gUnknown_030042A4 = 0;
- gUnknown_030042A0 = 0;
+ gBattle_BG0_X = 0;
+ gBattle_BG0_Y = 0;
sub_8002EB0(&gUnknown_03004210, BattleText_LinkStandby, 0x90, 2, 15);
}
}
@@ -2458,7 +2458,7 @@ void PlayerHandlecmd12(void)
{
ewram17840.unk8 = 4;
gDoingBattleAnim = 1;
- move_anim_start_t4(gActiveBank, gActiveBank, GetBankByPlayerAI(1), 3);
+ move_anim_start_t4(gActiveBank, gActiveBank, GetBankByIdentity(1), 3);
gBattleBankFunc[gActiveBank] = bx_wait_t1;
}
@@ -2468,7 +2468,7 @@ void PlayerHandleBallThrow(void)
ewram17840.unk8 = var;
gDoingBattleAnim = 1;
- move_anim_start_t4(gActiveBank, gActiveBank, GetBankByPlayerAI(1), 3);
+ move_anim_start_t4(gActiveBank, gActiveBank, GetBankByIdentity(1), 3);
gBattleBankFunc[gActiveBank] = bx_wait_t1;
}
@@ -2559,8 +2559,8 @@ void sub_8030190(void)
void PlayerHandlePrintString(void)
{
- gUnknown_030042A4 = 0;
- gUnknown_030042A0 = 0;
+ gBattle_BG0_X = 0;
+ gBattle_BG0_Y = 0;
BufferStringBattle(*(u16 *)&gBattleBufferA[gActiveBank][2]);
sub_8002EB0(&gUnknown_03004210, gDisplayedStringBattle, 0x90, 2, 15);
gBattleBankFunc[gActiveBank] = sub_802DF18;
@@ -2578,8 +2578,8 @@ void PlayerHandlecmd18(void)
{
int r4;
- gUnknown_030042A4 = 0;
- gUnknown_030042A0 = 160;
+ gBattle_BG0_X = 0;
+ gBattle_BG0_Y = 160;
FillWindowRect(&gUnknown_03004210, 10, 2, 15, 27, 18);
FillWindowRect(&gUnknown_03004210, 10, 2, 35, 16, 38);
@@ -2612,8 +2612,8 @@ void PlayerHandlecmd20(void)
void sub_80304A8(void)
{
- gUnknown_030042A4 = 0;
- gUnknown_030042A0 = 320;
+ gBattle_BG0_X = 0;
+ gBattle_BG0_Y = 320;
sub_802E1B0();
gUnknown_03004344 = 0xFF;
sub_802E3B4(gMoveSelectionCursor[gActiveBank], 0);
diff --git a/src/battle/battle_controller_safari.c b/src/battle/battle_controller_safari.c
index 6f6286945..0a629ba4d 100644
--- a/src/battle/battle_controller_safari.c
+++ b/src/battle/battle_controller_safari.c
@@ -23,8 +23,8 @@ extern u8 gActiveBank;
extern const u8 BattleText_MenuOptionsSafari[];
extern void *gBattleBankFunc[];
-extern u16 gUnknown_030042A0;
-extern u16 gUnknown_030042A4;
+extern u16 gBattle_BG0_Y;
+extern u16 gBattle_BG0_X;
extern u8 gBattleBufferA[][0x200];
extern bool8 gDoingBattleAnim;
extern u8 gObjectBankIDs[];
@@ -40,7 +40,7 @@ extern u16 gUnknown_02024DE8;
extern u8 gBattleOutcome;
extern u8 GetBankSide(u8);
-extern u8 GetBankByPlayerAI(u8);
+extern u8 GetBankByIdentity(u8);
extern u8 GetBankIdentity(u8);
extern void LoadPlayerTrainerBankSprite();
extern u8 sub_8079E90();
@@ -313,7 +313,7 @@ void sub_812B724(void)
void sub_812B758(void)
{
- if (gMain.callback2 == sub_800F808 && !gPaletteFade.active)
+ if (gMain.callback2 == BattleMainCB2 && !gPaletteFade.active)
{
Emitcmd35(1, gSpecialVar_ItemId);
SafariBufferExecCompleted();
@@ -423,7 +423,7 @@ void SafariHandlecmd12(void)
{
ewram17840.unk8 = 4;
gDoingBattleAnim = 1;
- move_anim_start_t4(gActiveBank, gActiveBank, GetBankByPlayerAI(1), 4);
+ move_anim_start_t4(gActiveBank, gActiveBank, GetBankByIdentity(1), 4);
gBattleBankFunc[gActiveBank] = bx_wait_t6;
}
@@ -433,7 +433,7 @@ void SafariHandleBallThrow(void)
ewram17840.unk8 = var;
gDoingBattleAnim = 1;
- move_anim_start_t4(gActiveBank, gActiveBank, GetBankByPlayerAI(1), 4);
+ move_anim_start_t4(gActiveBank, gActiveBank, GetBankByIdentity(1), 4);
gBattleBankFunc[gActiveBank] = bx_wait_t6;
}
@@ -450,8 +450,8 @@ void SafariHandleMoveAnimation(void)
void SafariHandlePrintString(void)
{
- gUnknown_030042A4 = 0;
- gUnknown_030042A0 = 0;
+ gBattle_BG0_X = 0;
+ gBattle_BG0_Y = 0;
BufferStringBattle(*(u16 *)&gBattleBufferA[gActiveBank][2]);
sub_8002EB0(&gUnknown_03004210, gDisplayedStringBattle, 144, 2, 15);
gBattleBankFunc[gActiveBank] = sub_812B694;
@@ -469,8 +469,8 @@ void SafariHandlecmd18(void)
{
int i;
- gUnknown_030042A4 = 0;
- gUnknown_030042A0 = 160;
+ gBattle_BG0_X = 0;
+ gBattle_BG0_Y = 160;
gUnknown_03004210.paletteNum = 0;
FillWindowRect_DefaultPalette(&gUnknown_03004210, 10, 2, 15, 27, 18);
FillWindowRect_DefaultPalette(&gUnknown_03004210, 10, 2, 35, 16, 36);
diff --git a/src/battle/battle_controller_wally.c b/src/battle/battle_controller_wally.c
index 8ace11fc1..bd2b4a45b 100644
--- a/src/battle/battle_controller_wally.c
+++ b/src/battle/battle_controller_wally.c
@@ -53,8 +53,8 @@ extern u8 gUnknown_02024E68[];
extern struct SpriteTemplate gUnknown_02024E8C;
extern u8 gAnimMoveTurn;
extern struct Window gUnknown_03004210;
-extern u16 gUnknown_030042A0;
-extern u16 gUnknown_030042A4;
+extern u16 gBattle_BG0_Y;
+extern u16 gBattle_BG0_X;
extern u8 gUnknown_0300434C[];
extern const u8 BattleText_WallyMenu[];
extern const u8 BattleText_MenuOptions[];
@@ -75,7 +75,7 @@ extern void PlayerHandlecmd1(void);
extern void LoadPlayerTrainerBankSprite();
extern u8 GetBankIdentity(u8);
extern void sub_80313A0(struct Sprite *);
-extern u8 GetBankByPlayerAI(u8);
+extern u8 GetBankByIdentity(u8);
extern u8 sub_8031720();
extern void DoMoveAnim();
extern void sub_80326EC();
@@ -363,7 +363,7 @@ void sub_81374C4(void)
void sub_81374FC(void)
{
- if (gMain.callback2 == sub_800F808
+ if (gMain.callback2 == BattleMainCB2
&& !gPaletteFade.active)
{
Emitcmd35(1, gSpecialVar_ItemId);
@@ -1149,7 +1149,7 @@ void WallyHandlecmd12(void)
{
ewram17840.unk8 = 4;
gDoingBattleAnim = TRUE;
- move_anim_start_t4(gActiveBank, gActiveBank, GetBankByPlayerAI(1), 4);
+ move_anim_start_t4(gActiveBank, gActiveBank, GetBankByIdentity(1), 4);
gBattleBankFunc[gActiveBank] = bx_wait_t5;
}
@@ -1159,7 +1159,7 @@ void WallyHandleBallThrow(void)
ewram17840.unk8 = val;
gDoingBattleAnim = TRUE;
- move_anim_start_t4(gActiveBank, gActiveBank, GetBankByPlayerAI(1), 4);
+ move_anim_start_t4(gActiveBank, gActiveBank, GetBankByIdentity(1), 4);
gBattleBankFunc[gActiveBank] = bx_wait_t5;
}
@@ -1240,8 +1240,8 @@ void WallyHandlePrintString(void)
{
u16 *ptr;
- gUnknown_030042A4 = 0;
- gUnknown_030042A0 = 0;
+ gBattle_BG0_X = 0;
+ gBattle_BG0_Y = 0;
ptr = (u16 *)&gBattleBufferA[gActiveBank][2];
if (*ptr == 2)
DestroyMenuCursor();
@@ -1262,8 +1262,8 @@ void WallyHandlecmd18(void)
{
s32 i;
- gUnknown_030042A4 = 0;
- gUnknown_030042A0 = 160;
+ gBattle_BG0_X = 0;
+ gBattle_BG0_Y = 160;
gUnknown_03004210.paletteNum = 0;
FillWindowRect_DefaultPalette(&gUnknown_03004210, 10, 2, 15, 27, 18);
FillWindowRect_DefaultPalette(&gUnknown_03004210, 10, 2, 35, 16, 36);
diff --git a/src/battle/battle_message.c b/src/battle/battle_message.c
index 4ac8c7a6f..d8efc09c5 100644
--- a/src/battle/battle_message.c
+++ b/src/battle/battle_message.c
@@ -199,7 +199,7 @@ s32 sub_803FC34(u16);
void get_trainer_name(u8* dst);
u8 get_trainer_class_name_index(void);
u8 GetMultiplayerId(void);
-u8 GetBankByPlayerAI(u8 ID);
+u8 GetBankByIdentity(u8 ID);
u8 GetBankSide(u8 bank);
u8 GetBankIdentity(u8 bank);
#ifdef GERMAN
@@ -572,22 +572,22 @@ u32 StrCpyDecodeBattle(const u8* src, u8* dst)
toCpy = gBattleTextBuff3;
break;
case 2: // first player poke name
- GetMonData(&gPlayerParty[gBattlePartyID[GetBankByPlayerAI(0)]], MON_DATA_NICKNAME, text);
+ GetMonData(&gPlayerParty[gBattlePartyID[GetBankByIdentity(0)]], MON_DATA_NICKNAME, text);
StringGetEnd10(text);
toCpy = text;
break;
case 3: // first enemy poke name
- GetMonData(&gEnemyParty[gBattlePartyID[GetBankByPlayerAI(1)]], MON_DATA_NICKNAME, text);
+ GetMonData(&gEnemyParty[gBattlePartyID[GetBankByIdentity(1)]], MON_DATA_NICKNAME, text);
StringGetEnd10(text);
toCpy = text;
break;
case 4: // second player poke name
- GetMonData(&gPlayerParty[gBattlePartyID[GetBankByPlayerAI(2)]], MON_DATA_NICKNAME, text);
+ GetMonData(&gPlayerParty[gBattlePartyID[GetBankByIdentity(2)]], MON_DATA_NICKNAME, text);
StringGetEnd10(text);
toCpy = text;
break;
case 5: // second enemy poke name
- GetMonData(&gEnemyParty[gBattlePartyID[GetBankByPlayerAI(3)]], MON_DATA_NICKNAME, text);
+ GetMonData(&gEnemyParty[gBattlePartyID[GetBankByIdentity(3)]], MON_DATA_NICKNAME, text);
StringGetEnd10(text);
toCpy = text;
break;
@@ -612,13 +612,13 @@ u32 StrCpyDecodeBattle(const u8* src, u8* dst)
toCpy = text;
break;
case 10: // attacker name with prefix, only bank 0/1
- HANDLE_NICKNAME_STRING_CASE(gBankAttacker, gBattlePartyID[GetBankByPlayerAI(GetBankIdentity(gBankAttacker) & 1)])
+ HANDLE_NICKNAME_STRING_CASE(gBankAttacker, gBattlePartyID[GetBankByIdentity(GetBankIdentity(gBankAttacker) & 1)])
break;
case 11: // attacker partner name, only bank 0/1
if (GetBankSide(gBankAttacker) == 0)
- GetMonData(&gPlayerParty[gBattlePartyID[GetBankByPlayerAI(GetBankIdentity(gBankAttacker) & 1) + 2]], MON_DATA_NICKNAME, text);
+ GetMonData(&gPlayerParty[gBattlePartyID[GetBankByIdentity(GetBankIdentity(gBankAttacker) & 1) + 2]], MON_DATA_NICKNAME, text);
else
- GetMonData(&gEnemyParty[gBattlePartyID[GetBankByPlayerAI(GetBankIdentity(gBankAttacker) & 1) + 2]], MON_DATA_NICKNAME, text);
+ GetMonData(&gEnemyParty[gBattlePartyID[GetBankByIdentity(GetBankIdentity(gBankAttacker) & 1) + 2]], MON_DATA_NICKNAME, text);
StringGetEnd10(text);
toCpy = text;
diff --git a/src/battle/battle_party_menu.c b/src/battle/battle_party_menu.c
index d4dcae0ca..7bce00d82 100644
--- a/src/battle/battle_party_menu.c
+++ b/src/battle/battle_party_menu.c
@@ -122,7 +122,7 @@ static void sub_8094998(u8 arg[3], u8 player_number)
if (!IsDoubleBattle())
{
pos = 1;
- *temp = gBattlePartyID[GetBankByPlayerAI(0)];
+ *temp = gBattlePartyID[GetBankByIdentity(0)];
for (i = 0; i <= 5; i++)
if (i != *temp)
temp[pos++] = i;
@@ -130,8 +130,8 @@ static void sub_8094998(u8 arg[3], u8 player_number)
else
{
pos = 2;
- *temp = gBattlePartyID[GetBankByPlayerAI(0)];
- temp[1] = gBattlePartyID[GetBankByPlayerAI(2)];
+ *temp = gBattlePartyID[GetBankByIdentity(0)];
+ temp[1] = gBattlePartyID[GetBankByIdentity(2)];
for (i = 0; i <= 5; i++)
if ((i != *temp) && (i != temp[1]))
temp[pos++] = i;
@@ -147,13 +147,13 @@ static void sub_8094A74(u8 arg[3], u8 player_number, u32 arg3)
u8 temp[6];
if (!GetBankSide(arg3))
{
- i = GetBankByPlayerAI(0);
- j = GetBankByPlayerAI(2);
+ i = GetBankByIdentity(0);
+ j = GetBankByIdentity(2);
}
else
{
- i = GetBankByPlayerAI(1);
- j = GetBankByPlayerAI(3);
+ i = GetBankByIdentity(1);
+ j = GetBankByIdentity(3);
}
if (IsLinkDoubleBattle() == TRUE)
{
diff --git a/src/battle/battle_3.c b/src/battle/battle_util.c
index e5a730598..9dc030a1a 100644
--- a/src/battle/battle_3.c
+++ b/src/battle/battle_util.c
@@ -1,21 +1,25 @@
#include "global.h"
-#include "constants/abilities.h"
#include "battle.h"
-#include "constants/moves.h"
-#include "item.h"
-#include "constants/items.h"
+#include "battle_util.h"
+#include "data2.h"
#include "event_data.h"
-#include "constants/hold_effects.h"
-#include "constants/species.h"
-#include "constants/weather.h"
+#include "ewram.h"
+#include "item.h"
+#include "link.h"
#include "pokemon.h"
-#include "data2.h"
#include "random.h"
+#include "rom_8077ABC.h"
+#include "string_util.h"
#include "text.h"
+#include "util.h"
+#include "constants/abilities.h"
#include "constants/battle_move_effects.h"
-#include "string_util.h"
#include "constants/flags.h"
-#include "ewram.h"
+#include "constants/hold_effects.h"
+#include "constants/items.h"
+#include "constants/moves.h"
+#include "constants/species.h"
+#include "constants/weather.h"
extern u8* gBattlescriptCurrInstr;
extern u8 gActiveBank;
@@ -33,7 +37,7 @@ extern u8 gNoOfAllBanks;
extern u32 gStatuses3[4];
extern u8 gBankAttacker;
extern u8 gBankTarget;
-extern u8 gTurnOrder[4];
+extern u8 gBanksByTurnOrder[4];
extern u16 gSideAffecting[2];
extern u16 gBattleWeather;
extern void (*gBattleMainFunc)(void);
@@ -50,7 +54,7 @@ extern u8 gTakenDmgBanks[4];
extern u8 gBattleMoveFlags;
extern u8 gLastUsedAbility;
extern u8 gBattleTextBuff2[];
-extern u8 gFightStateTracker;
+extern u8 gCurrentActionFuncId;
extern struct BattleEnigmaBerry gEnigmaBerries[4];
extern u8 gUnknown_02024BE5;
extern u8 gCurrMovePos;
@@ -58,6 +62,7 @@ extern u16 gRandomMove;
extern s32 gBattleMoveDamage;
extern u16 gDynamicBasePower;
extern u32 gBattleExecBuffer;
+extern u8 gSentPokesToOpponent[2];
extern const u16 gSoundMovesTable[];
extern const u8 gStatusConditionString_PoisonJpn[];
extern const u8 gStatusConditionString_SleepJpn[];
@@ -69,26 +74,20 @@ extern const u8 gStatusConditionString_LoveJpn[];
extern const BattleCmdFunc gBattleScriptingCommandsTable[];
u8 IsImprisoned(u8 bank, u16 move);
-u8 GetBankByPlayerAI(u8 ID);
+u8 GetBankByIdentity(u8 ID);
u8 GetBankIdentity(u8 bank);
u8 GetBankSide(u8 bank);
-void b_call_bc_move_exec(u8* BS_ptr);
-bool8 sub_8015660(u8 bank); //check if a move failed
void SetMoveEffect(bool8 primary, u8 certainArg);
bool8 UproarWakeUpCheck(u8 bank);
bool8 sub_8018018(u8 bank, u8, u8);
-void sub_8015740(u8 bank);
s32 CalculateBaseDamage(struct BattlePokemon *attacker, struct BattlePokemon *defender, u32 move, u16 a4, u16 powerOverride, u8 typeOverride, u8 bank_atk, u8 bank_def);
u8 CountTrailingZeroBits(u32 a);
u8 GetMoveTarget(u16 move, u8 useMoveTarget);
u8 sub_803FC34(u8 bank);
u16 sub_803FBFC(u8 a);
u8 weather_get_current(void);
-void b_push_move_exec(u8* BS_ptr);
void RecordAbilityBattle(u8 bank, u8 ability);
void RecordItemBattle(u8 bank, u8 holdEffect);
-void sub_8013F54(void);
-void sub_8013FBC(void);
s8 GetPokeFlavourRelation(u32 pid, u8 flavor);
extern u8 BattleScript_MoveSelectionDisabledMove[];
@@ -206,22 +205,271 @@ extern u8 gUnknown_081D99A0[]; //disobedient, hits itself
#define MULTISTRING_CHOOSER 0x5
#define MSG_DISPLAY 0x7
-void b_movescr_stack_push(u8* BS_ptr)
+u8 GetBattleBank(u8 caseId)
+{
+ u8 ret = 0;
+ switch (caseId)
+ {
+ case BS_GET_TARGET:
+ ret = gBankTarget;
+ break;
+ case BS_GET_ATTACKER:
+ ret = gBankAttacker;
+ break;
+ case BS_GET_EFFECT_BANK:
+ ret = gEffectBank;
+ break;
+ case BS_GET_BANK_0:
+ ret = 0;
+ break;
+ case BS_GET_SCRIPTING_BANK:
+ ret = ewram16003;
+ break;
+ case BS_GET_gBank1:
+ ret = gBank1;
+ break;
+ case 5:
+ ret = gBank1;
+ break;
+ }
+ return ret;
+}
+
+void PressurePPLose(u8 bankDef, u8 bankAtk, u16 move)
+{
+ s32 i;
+
+ if (gBattleMons[bankDef].ability != ABILITY_PRESSURE)
+ return;
+
+ for (i = 0; i < 4; i++)
+ {
+ if (gBattleMons[bankAtk].moves[i] == move)
+ break;
+ }
+
+ if (i == 4) // mons don't share any moves
+ return;
+
+ if (gBattleMons[bankAtk].pp[i] != 0)
+ gBattleMons[bankAtk].pp[i]--;
+
+ if (!(gBattleMons[bankAtk].status2 & STATUS2_TRANSFORMED)
+ && !(gDisableStructs[bankAtk].unk18_b & gBitTable[i]))
+ {
+ gActiveBank = bankAtk;
+ EmitSetMonData(0, REQUEST_PPMOVE1_BATTLE + i, 0, 1, &gBattleMons[gActiveBank].pp[i]);
+ MarkBufferBankForExecution(gActiveBank);
+ }
+}
+
+void PressurePPLoseOnUsingImprision(u8 bankAtk)
+{
+ s32 i, j;
+ s32 imprisionPos = 4;
+ u8 atkSide = GetBankSide(bankAtk);
+
+ for (i = 0; i < gNoOfAllBanks; i++)
+ {
+ if (atkSide != GetBankSide(i) && gBattleMons[i].ability == ABILITY_PRESSURE)
+ {
+ for (j = 0; j < 4; j++)
+ {
+ if (gBattleMons[bankAtk].moves[j] == MOVE_IMPRISON)
+ break;
+ }
+ if (j != 4)
+ {
+ imprisionPos = j;
+ if (gBattleMons[bankAtk].pp[j] != 0)
+ gBattleMons[bankAtk].pp[j]--;
+ }
+ }
+ }
+
+ if (imprisionPos != 4
+ && !(gBattleMons[bankAtk].status2 & STATUS2_TRANSFORMED)
+ && !(gDisableStructs[bankAtk].unk18_b & gBitTable[imprisionPos]))
+ {
+ gActiveBank = bankAtk;
+ EmitSetMonData(0, REQUEST_PPMOVE1_BATTLE + imprisionPos, 0, 1, &gBattleMons[gActiveBank].pp[imprisionPos]);
+ MarkBufferBankForExecution(gActiveBank);
+ }
+}
+
+void PressurePPLoseOnUsingPerishSong(u8 bankAtk)
+{
+ s32 i, j;
+ s32 perishSongPos = 4;
+
+ for (i = 0; i < gNoOfAllBanks; i++)
+ {
+ if (gBattleMons[i].ability == ABILITY_PRESSURE && i != bankAtk)
+ {
+ for (j = 0; j < 4; j++)
+ {
+ if (gBattleMons[bankAtk].moves[j] == MOVE_PERISH_SONG)
+ break;
+ }
+ if (j != 4)
+ {
+ perishSongPos = j;
+ if (gBattleMons[bankAtk].pp[j] != 0)
+ gBattleMons[bankAtk].pp[j]--;
+ }
+ }
+ }
+
+ if (perishSongPos != 4
+ && !(gBattleMons[bankAtk].status2 & STATUS2_TRANSFORMED)
+ && !(gDisableStructs[bankAtk].unk18_b & gBitTable[perishSongPos]))
+ {
+ gActiveBank = bankAtk;
+ EmitSetMonData(0, REQUEST_PPMOVE1_BATTLE + perishSongPos, 0, 1, &gBattleMons[gActiveBank].pp[perishSongPos]);
+ MarkBufferBankForExecution(gActiveBank);
+ }
+}
+
+
+void MarkAllBufferBanksForExecution(void) // unused
+{
+ s32 i;
+
+ if (gBattleTypeFlags & BATTLE_TYPE_LINK)
+ {
+ for (i = 0; i < gNoOfAllBanks; i++)
+ gBattleExecBuffer |= gBitTable[i] << 0x1C;
+ }
+ else
+ {
+ for (i = 0; i < gNoOfAllBanks; i++)
+ gBattleExecBuffer |= gBitTable[i];
+ }
+}
+
+void MarkBufferBankForExecution(u8 bank)
+{
+ if (gBattleTypeFlags & BATTLE_TYPE_LINK)
+ {
+ gBattleExecBuffer |= gBitTable[bank] << 0x1C;
+ }
+ else
+ {
+ gBattleExecBuffer |= gBitTable[bank];
+ }
+}
+
+void sub_80155A4(u8 arg0)
+{
+ s32 i;
+
+ for (i = 0; i < GetLinkPlayerCount(); i++)
+ gBattleExecBuffer |= gBitTable[arg0] << (i << 2);
+
+ gBattleExecBuffer &= ~(0x10000000 << arg0);
+}
+
+void CancelMultiTurnMoves(u8 bank)
+{
+ gBattleMons[bank].status2 &= ~(STATUS2_MULTIPLETURNS);
+ gBattleMons[bank].status2 &= ~(STATUS2_LOCK_CONFUSE);
+ gBattleMons[bank].status2 &= ~(STATUS2_UPROAR);
+ gBattleMons[bank].status2 &= ~(STATUS2_BIDE);
+
+ gStatuses3[bank] &= ~(STATUS3_SEMI_INVULNERABLE);
+
+ gDisableStructs[bank].rolloutTimer1 = 0;
+ gDisableStructs[bank].furyCutterCounter = 0;
+}
+
+bool8 WasUnableToUseMove(u8 bank)
+{
+ if (gProtectStructs[bank].prlzImmobility
+ || gProtectStructs[bank].notEffective
+ || gProtectStructs[bank].usedImprisionedMove
+ || gProtectStructs[bank].loveImmobility
+ || gProtectStructs[bank].usedDisabledMove
+ || gProtectStructs[bank].usedTauntedMove
+ || gProtectStructs[bank].flag2Unknown
+ || gProtectStructs[bank].flinchImmobility
+ || gProtectStructs[bank].confusionSelfDmg)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+void PrepareStringBattle(u16 stringId, u8 bank)
+{
+ gActiveBank = bank;
+ EmitPrintString(0, stringId);
+ MarkBufferBankForExecution(gActiveBank);
+}
+
+void ResetSentPokesToOpponentValue(void)
+{
+ s32 i;
+ u32 bits = 0;
+
+ gSentPokesToOpponent[0] = 0;
+ gSentPokesToOpponent[1] = 0;
+
+ for (i = 0; i < gNoOfAllBanks; i += 2)
+ bits |= gBitTable[gBattlePartyID[i]];
+
+ for (i = 1; i < gNoOfAllBanks; i += 2)
+ gSentPokesToOpponent[(i & BIT_MON) >> 1] = bits;
+}
+
+void sub_8015740(u8 bank)
+{
+ s32 i = 0;
+ u32 bits = 0;
+
+ if (GetBankSide(bank) == SIDE_OPPONENT)
+ {
+ u8 id = ((bank & BIT_MON) >> 1);
+ gSentPokesToOpponent[id] = 0;
+
+ for (i = 0; i < gNoOfAllBanks; i += 2)
+ {
+ if (!(gAbsentBankFlags & gBitTable[i]))
+ bits |= gBitTable[gBattlePartyID[i]];
+ }
+
+ gSentPokesToOpponent[id] = bits;
+ }
+}
+
+void sub_80157C4(u8 bank)
+{
+ if (GetBankSide(bank) == SIDE_OPPONENT)
+ {
+ sub_8015740(bank);
+ }
+ else
+ {
+ s32 i;
+ for (i = 1; i < gNoOfAllBanks; i++)
+ gSentPokesToOpponent[(i & BIT_MON) >> 1] |= gBitTable[gBattlePartyID[bank]];
+ }
+}
+
+void BattleScriptPush(u8* BS_ptr)
{
B_BATTLESCRIPTS_STACK->ptr[B_BATTLESCRIPTS_STACK->size++] = BS_ptr;
}
-void b_movescr_stack_push_cursor(void)
+void BattleScriptPushCursor(void)
{
B_BATTLESCRIPTS_STACK->ptr[B_BATTLESCRIPTS_STACK->size++] = gBattlescriptCurrInstr;
}
-void b_movescr_stack_pop_cursor(void)
+void BattleScriptPop(void)
{
gBattlescriptCurrInstr = B_BATTLESCRIPTS_STACK->ptr[--B_BATTLESCRIPTS_STACK->size];
}
-u8 sub_8015894(void) //msg can't select a move
+u8 TrySetCantSelectMoveBattleScript(void) //msg can't select a move
{
u8 limitations = 0;
u16 move = gBattleMons[gActiveBank].moves[gBattleBufferB[gActiveBank][2]];
@@ -320,9 +568,9 @@ bool8 AreAllMovesUnusable(void)
gProtectStructs[gActiveBank].onlyStruggle = 1;
gUnknown_02024C1C[gActiveBank] = BattleScript_NoMovesLeft;
if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
- gBattleBufferB[gActiveBank][3] = GetBankByPlayerAI((GetBankIdentity(gActiveBank) ^ 1) | (Random() & 2));
+ gBattleBufferB[gActiveBank][3] = GetBankByIdentity((GetBankIdentity(gActiveBank) ^ 1) | (Random() & 2));
else
- gBattleBufferB[gActiveBank][3] = GetBankByPlayerAI(GetBankIdentity(gActiveBank) ^ 1);
+ gBattleBufferB[gActiveBank][3] = GetBankByIdentity(GetBankIdentity(gActiveBank) ^ 1);
}
else
gProtectStructs[gActiveBank].onlyStruggle = 0;
@@ -372,15 +620,15 @@ u8 UpdateTurnCounters(void)
case 0:
for (i = 0; i < gNoOfAllBanks; i++)
{
- gTurnOrder[i] = i;
+ gBanksByTurnOrder[i] = i;
}
for (i = 0; i < gNoOfAllBanks - 1; i++)
{
s32 j;
for (j = i + 1; j < gNoOfAllBanks; j++)
{
- if (GetWhoStrikesFirst(gTurnOrder[i], gTurnOrder[j], 0))
- sub_8012FBC(i, j);
+ if (GetWhoStrikesFirst(gBanksByTurnOrder[i], gBanksByTurnOrder[j], 0))
+ SwapTurnOrder(i, j);
}
}
BATTLE_STRUCT->turncountersTracker++;
@@ -392,11 +640,11 @@ u8 UpdateTurnCounters(void)
if (gSideAffecting[sideBank] & SIDE_STATUS_REFLECT)
{
- if (--gSideTimer[sideBank].reflectTimer == 0)
+ if (--gSideTimers[sideBank].reflectTimer == 0)
{
gSideAffecting[sideBank] &= ~SIDE_STATUS_REFLECT;
- b_call_bc_move_exec(BattleScript_SideStatusWoreOff);
+ BattleScriptExecute(BattleScript_SideStatusWoreOff);
gBattleTextBuff1[0] = 0xFD;
gBattleTextBuff1[1] = 2;
gBattleTextBuff1[2] = MOVE_REFLECT;
@@ -421,10 +669,10 @@ u8 UpdateTurnCounters(void)
gActiveBank = gBankAttacker = sideBank = BATTLE_STRUCT->turnSideTracker;
if (gSideAffecting[sideBank] & SIDE_STATUS_LIGHTSCREEN)
{
- if (--gSideTimer[sideBank].lightscreenTimer == 0)
+ if (--gSideTimers[sideBank].lightscreenTimer == 0)
{
gSideAffecting[sideBank] &= ~SIDE_STATUS_LIGHTSCREEN;
- b_call_bc_move_exec(BattleScript_SideStatusWoreOff);
+ BattleScriptExecute(BattleScript_SideStatusWoreOff);
gBattleCommunication[MULTISTRING_CHOOSER] = sideBank;
gBattleTextBuff1[0] = 0xFD;
gBattleTextBuff1[1] = 2;
@@ -448,10 +696,10 @@ u8 UpdateTurnCounters(void)
while (BATTLE_STRUCT->turnSideTracker < 2)
{
gActiveBank = gBankAttacker = sideBank = BATTLE_STRUCT->turnSideTracker;
- if (gSideTimer[sideBank].mistTimer && --gSideTimer[sideBank].mistTimer == 0)
+ if (gSideTimers[sideBank].mistTimer && --gSideTimers[sideBank].mistTimer == 0)
{
gSideAffecting[sideBank] &= ~SIDE_STATUS_MIST;
- b_call_bc_move_exec(BattleScript_SideStatusWoreOff);
+ BattleScriptExecute(BattleScript_SideStatusWoreOff);
gBattleCommunication[MULTISTRING_CHOOSER] = sideBank;
gBattleTextBuff1[0] = 0xFD;
gBattleTextBuff1[1] = 2;
@@ -476,10 +724,10 @@ u8 UpdateTurnCounters(void)
gActiveBank = gBankAttacker = sideBank = BATTLE_STRUCT->turnSideTracker;
if (gSideAffecting[sideBank] & SIDE_STATUS_SAFEGUARD)
{
- if (--gSideTimer[sideBank].safeguardTimer == 0)
+ if (--gSideTimers[sideBank].safeguardTimer == 0)
{
gSideAffecting[sideBank] &= ~SIDE_STATUS_SAFEGUARD;
- b_call_bc_move_exec(BattleScript_SafeguardEnds);
+ BattleScriptExecute(BattleScript_SafeguardEnds);
effect++;
}
}
@@ -496,11 +744,11 @@ u8 UpdateTurnCounters(void)
case 5:
while (BATTLE_STRUCT->turnSideTracker < gNoOfAllBanks)
{
- gActiveBank = gTurnOrder[BATTLE_STRUCT->turnSideTracker];
+ gActiveBank = gBanksByTurnOrder[BATTLE_STRUCT->turnSideTracker];
if (gWishFutureKnock.wishCounter[gActiveBank] && --gWishFutureKnock.wishCounter[gActiveBank] == 0 && gBattleMons[gActiveBank].hp)
{
gBankTarget = gActiveBank;
- b_call_bc_move_exec(BattleScript_WishComesTrue);
+ BattleScriptExecute(BattleScript_WishComesTrue);
effect++;
}
BATTLE_STRUCT->turnSideTracker++;
@@ -532,7 +780,7 @@ u8 UpdateTurnCounters(void)
gBattleCommunication[MULTISTRING_CHOOSER] = 1;
else
gBattleCommunication[MULTISTRING_CHOOSER] = 0;
- b_call_bc_move_exec(BattleScript_RainContinuesOrEnds);
+ BattleScriptExecute(BattleScript_RainContinuesOrEnds);
effect++;
}
BATTLE_STRUCT->turncountersTracker++;
@@ -550,7 +798,7 @@ u8 UpdateTurnCounters(void)
BATTLE_STRUCT->animArg1 = B_ANIM_SANDSTORM_CONTINUES;
gBattleCommunication[MULTISTRING_CHOOSER] = 0;
- b_call_bc_move_exec(gBattlescriptCurrInstr);
+ BattleScriptExecute(gBattlescriptCurrInstr);
effect++;
}
BATTLE_STRUCT->turncountersTracker++;
@@ -566,7 +814,7 @@ u8 UpdateTurnCounters(void)
else
gBattlescriptCurrInstr = BattleScript_SunlightContinues;
- b_call_bc_move_exec(gBattlescriptCurrInstr);
+ BattleScriptExecute(gBattlescriptCurrInstr);
effect++;
}
BATTLE_STRUCT->turncountersTracker++;
@@ -584,7 +832,7 @@ u8 UpdateTurnCounters(void)
BATTLE_STRUCT->animArg1 = B_ANIM_HAIL_CONTINUES;
gBattleCommunication[MULTISTRING_CHOOSER] = 1;
- b_call_bc_move_exec(gBattlescriptCurrInstr);
+ BattleScriptExecute(gBattlescriptCurrInstr);
effect++;
}
BATTLE_STRUCT->turncountersTracker++;
@@ -606,7 +854,7 @@ u8 TurnBasedEffects(void)
gHitMarker |= (HITMARKER_GRUDGE | HITMARKER_x20);
while (BATTLE_STRUCT->turnEffectsBank < gNoOfAllBanks && BATTLE_STRUCT->turnEffectsTracker <= TURNBASED_MAX_CASE)
{
- gActiveBank = gBankAttacker = gTurnOrder[BATTLE_STRUCT->turnEffectsBank];
+ gActiveBank = gBankAttacker = gBanksByTurnOrder[BATTLE_STRUCT->turnEffectsBank];
if (gAbsentBankFlags & gBitTable[gActiveBank])
{
BATTLE_STRUCT->turnEffectsBank++;
@@ -624,7 +872,7 @@ u8 TurnBasedEffects(void)
if (gBattleMoveDamage == 0)
gBattleMoveDamage = 1;
gBattleMoveDamage *= -1;
- b_call_bc_move_exec(BattleScript_IngrainTurnHeal);
+ BattleScriptExecute(BattleScript_IngrainTurnHeal);
effect++;
}
BATTLE_STRUCT->turnEffectsTracker++;
@@ -653,7 +901,7 @@ u8 TurnBasedEffects(void)
gBattleMoveDamage = 1;
BATTLE_STRUCT->animArg1 = gBankTarget;
BATTLE_STRUCT->animArg2 = gBankAttacker;
- b_call_bc_move_exec(BattleScript_LeechSeedTurnDrain);
+ BattleScriptExecute(BattleScript_LeechSeedTurnDrain);
effect++;
}
BATTLE_STRUCT->turnEffectsTracker++;
@@ -664,7 +912,7 @@ u8 TurnBasedEffects(void)
gBattleMoveDamage = gBattleMons[gActiveBank].maxHP / 8;
if (gBattleMoveDamage == 0)
gBattleMoveDamage = 1;
- b_call_bc_move_exec(BattleScript_PoisonTurnDmg);
+ BattleScriptExecute(BattleScript_PoisonTurnDmg);
effect++;
}
BATTLE_STRUCT->turnEffectsTracker++;
@@ -678,7 +926,7 @@ u8 TurnBasedEffects(void)
if ((gBattleMons[gActiveBank].status1 & 0xF00) != 0xF00) //not 16 turns
gBattleMons[gActiveBank].status1 += 0x100;
gBattleMoveDamage *= (gBattleMons[gActiveBank].status1 & 0xF00) >> 8;
- b_call_bc_move_exec(BattleScript_PoisonTurnDmg);
+ BattleScriptExecute(BattleScript_PoisonTurnDmg);
effect++;
}
BATTLE_STRUCT->turnEffectsTracker++;
@@ -689,7 +937,7 @@ u8 TurnBasedEffects(void)
gBattleMoveDamage = gBattleMons[gActiveBank].maxHP / 8;
if (gBattleMoveDamage == 0)
gBattleMoveDamage = 1;
- b_call_bc_move_exec(BattleScript_BurnTurnDmg);
+ BattleScriptExecute(BattleScript_BurnTurnDmg);
effect++;
}
BATTLE_STRUCT->turnEffectsTracker++;
@@ -701,7 +949,7 @@ u8 TurnBasedEffects(void)
gBattleMoveDamage = gBattleMons[gActiveBank].maxHP / 4;
if (gBattleMoveDamage == 0)
gBattleMoveDamage = 1;
- b_call_bc_move_exec(BattleScript_NightmareTurnDmg);
+ BattleScriptExecute(BattleScript_NightmareTurnDmg);
effect++;
}
BATTLE_STRUCT->turnEffectsTracker++;
@@ -712,7 +960,7 @@ u8 TurnBasedEffects(void)
gBattleMoveDamage = gBattleMons[gActiveBank].maxHP / 4;
if (gBattleMoveDamage == 0)
gBattleMoveDamage = 1;
- b_call_bc_move_exec(BattleScript_CurseTurnDmg);
+ BattleScriptExecute(BattleScript_CurseTurnDmg);
effect++;
}
BATTLE_STRUCT->turnEffectsTracker++;
@@ -744,7 +992,7 @@ u8 TurnBasedEffects(void)
gBattleTextBuff1[4] = EOS;
gBattlescriptCurrInstr = BattleScript_WrapEnds;
}
- b_call_bc_move_exec(gBattlescriptCurrInstr);
+ BattleScriptExecute(gBattlescriptCurrInstr);
effect++;
}
BATTLE_STRUCT->turnEffectsTracker++;
@@ -760,9 +1008,9 @@ u8 TurnBasedEffects(void)
gBattleMons[gBankAttacker].status1 &= ~(STATUS_SLEEP);
gBattleMons[gBankAttacker].status2 &= ~(STATUS2_NIGHTMARE);
gBattleCommunication[MULTISTRING_CHOOSER] = 1;
- b_call_bc_move_exec(BattleScript_MonWokeUpInUproar);
+ BattleScriptExecute(BattleScript_MonWokeUpInUproar);
gActiveBank = gBankAttacker;
- EmitSetAttributes(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBank].status1);
+ EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBank].status1);
MarkBufferBankForExecution(gActiveBank);
break;
}
@@ -776,7 +1024,7 @@ u8 TurnBasedEffects(void)
{
gBankAttacker = gActiveBank;
gBattleMons[gActiveBank].status2 -= 0x10; // uproar timer goes down
- if (sub_8015660(gActiveBank))
+ if (WasUnableToUseMove(gActiveBank))
{
CancelMultiTurnMoves(gActiveBank);
gBattleCommunication[MULTISTRING_CHOOSER] = 1;
@@ -791,7 +1039,7 @@ u8 TurnBasedEffects(void)
gBattleCommunication[MULTISTRING_CHOOSER] = 1;
CancelMultiTurnMoves(gActiveBank);
}
- b_call_bc_move_exec(BattleScript_PrintUproarOverTurns);
+ BattleScriptExecute(BattleScript_PrintUproarOverTurns);
effect = 1;
}
}
@@ -802,7 +1050,7 @@ u8 TurnBasedEffects(void)
if (gBattleMons[gActiveBank].status2 & STATUS2_LOCK_CONFUSE)
{
gBattleMons[gActiveBank].status2 -= 0x400;
- if (sub_8015660(gActiveBank))
+ if (WasUnableToUseMove(gActiveBank))
CancelMultiTurnMoves(gActiveBank);
else if (!(gBattleMons[gActiveBank].status2 & STATUS2_LOCK_CONFUSE)
&& (gBattleMons[gActiveBank].status2 & STATUS2_MULTIPLETURNS))
@@ -813,7 +1061,7 @@ u8 TurnBasedEffects(void)
gBattleCommunication[MOVE_EFFECT_BYTE] = 0x47;
SetMoveEffect(1, 0);
if (gBattleMons[gActiveBank].status2 & STATUS2_CONFUSION)
- b_call_bc_move_exec(BattleScript_ThrashConfuses);
+ BattleScriptExecute(BattleScript_ThrashConfuses);
effect++;
}
}
@@ -837,7 +1085,7 @@ u8 TurnBasedEffects(void)
else if (--gDisableStructs[gActiveBank].disableTimer1 == 0) // disable ends
{
gDisableStructs[gActiveBank].disabledMove = 0;
- b_call_bc_move_exec(BattleScript_DisabledNoMore);
+ BattleScriptExecute(BattleScript_DisabledNoMore);
effect++;
}
}
@@ -856,7 +1104,7 @@ u8 TurnBasedEffects(void)
{
gDisableStructs[gActiveBank].encoredMove = 0;
gDisableStructs[gActiveBank].encoreTimer1 = 0;
- b_call_bc_move_exec(BattleScript_EncoredNoMore);
+ BattleScriptExecute(BattleScript_EncoredNoMore);
effect++;
}
}
@@ -887,10 +1135,10 @@ u8 TurnBasedEffects(void)
{
CancelMultiTurnMoves(gActiveBank);
gBattleMons[gActiveBank].status1 |= (Random() & 3) + 2;
- EmitSetAttributes(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBank].status1);
+ EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBank].status1);
MarkBufferBankForExecution(gActiveBank);
gEffectBank = gActiveBank;
- b_call_bc_move_exec(BattleScript_YawnMakesAsleep);
+ BattleScriptExecute(BattleScript_YawnMakesAsleep);
effect++;
}
}
@@ -909,7 +1157,7 @@ u8 TurnBasedEffects(void)
return 0;
}
-bool8 sub_80170DC(void) // handle future sight and perish song
+bool8 HandleWishPerishSongOnTurnEnd(void)
{
gHitMarker |= (HITMARKER_GRUDGE | HITMARKER_x20);
switch (BATTLE_STRUCT->sub80170DC_Tracker)
@@ -938,7 +1186,7 @@ bool8 sub_80170DC(void) // handle future sight and perish song
gBankAttacker = gWishFutureKnock.futureSightAttacker[gActiveBank];
gBattleMoveDamage = gWishFutureKnock.futureSightDmg[gActiveBank];
gSpecialStatuses[gBankTarget].moveturnLostHP = 0xFFFF;
- b_call_bc_move_exec(BattleScript_MonTookFutureAttack);
+ BattleScriptExecute(BattleScript_MonTookFutureAttack);
return 1;
}
}
@@ -948,7 +1196,7 @@ bool8 sub_80170DC(void) // handle future sight and perish song
case 1: // perish song
while (BATTLE_STRUCT->sub80170DC_Bank < gNoOfAllBanks)
{
- gActiveBank = gBankAttacker = gTurnOrder[BATTLE_STRUCT->sub80170DC_Bank];
+ gActiveBank = gBankAttacker = gBanksByTurnOrder[BATTLE_STRUCT->sub80170DC_Bank];
if (gAbsentBankFlags & gBitTable[gActiveBank])
BATTLE_STRUCT->sub80170DC_Bank++;
else
@@ -973,7 +1221,7 @@ bool8 sub_80170DC(void) // handle future sight and perish song
gDisableStructs[gActiveBank].perishSong1--;
gBattlescriptCurrInstr = BattleScript_PerishSongTimerGoesDown;
}
- b_call_bc_move_exec(gBattlescriptCurrInstr);
+ BattleScriptExecute(gBattlescriptCurrInstr);
return 1;
}
}
@@ -984,9 +1232,9 @@ bool8 sub_80170DC(void) // handle future sight and perish song
return 0;
}
-#define sub_80173A4_MAX_CASE 7
+#define HandleFaintedMonActions_MAX_CASE 7
-bool8 sub_80173A4(void)
+bool8 HandleFaintedMonActions(void)
{
if (gBattleTypeFlags & BATTLE_TYPE_SAFARI)
return 0;
@@ -1009,7 +1257,7 @@ bool8 sub_80173A4(void)
gBank1 = gBankTarget = BATTLE_STRUCT->unk1605A;
if (gBattleMons[BATTLE_STRUCT->unk1605A].hp == 0 && !(BATTLE_STRUCT->unk16113 & gBitTable[gBattlePartyID[BATTLE_STRUCT->unk1605A]]) && !(gAbsentBankFlags & gBitTable[BATTLE_STRUCT->unk1605A]))
{
- b_call_bc_move_exec(BattleScript_GiveExp);
+ BattleScriptExecute(BattleScript_GiveExp);
BATTLE_STRUCT->sub80173A4_Tracker = 2;
return 1;
}
@@ -1032,7 +1280,7 @@ bool8 sub_80173A4(void)
gBank1 = gBankTarget = BATTLE_STRUCT->unk1605A; //or should banks be switched?
if (gBattleMons[BATTLE_STRUCT->unk1605A].hp == 0 && !(gAbsentBankFlags & gBitTable[BATTLE_STRUCT->unk1605A]))
{
- b_call_bc_move_exec(BattleScript_HandleFaintedMon);
+ BattleScriptExecute(BattleScript_HandleFaintedMon);
BATTLE_STRUCT->sub80173A4_Tracker = 5;
return 1;
}
@@ -1053,11 +1301,11 @@ bool8 sub_80173A4(void)
case 7:
break;
}
- } while (BATTLE_STRUCT->sub80173A4_Tracker != sub_80173A4_MAX_CASE);
+ } while (BATTLE_STRUCT->sub80173A4_Tracker != HandleFaintedMonActions_MAX_CASE);
return 0;
}
-void b_clear_atk_up_if_hit_flag_unless_enraged(void)
+void TryClearRageStatuses(void)
{
int i;
for (i = 0; i < gNoOfAllBanks; i++)
@@ -1089,7 +1337,7 @@ u8 AtkCanceller_UnableToUseMove(void)
{
gBattleMons[gBankAttacker].status1 &= ~(STATUS_SLEEP);
gBattleMons[gBankAttacker].status2 &= ~(STATUS2_NIGHTMARE);
- b_movescr_stack_push_cursor();
+ BattleScriptPushCursor();
gBattleCommunication[MULTISTRING_CHOOSER] = 1;
gBattlescriptCurrInstr = BattleScript_MoveUsedWokeUp;
effect = 2;
@@ -1117,7 +1365,7 @@ u8 AtkCanceller_UnableToUseMove(void)
else
{
gBattleMons[gBankAttacker].status2 &= ~(STATUS2_NIGHTMARE);
- b_movescr_stack_push_cursor();
+ BattleScriptPushCursor();
gBattleCommunication[MULTISTRING_CHOOSER] = 0;
gBattlescriptCurrInstr = BattleScript_MoveUsedWokeUp;
effect = 2;
@@ -1145,7 +1393,7 @@ u8 AtkCanceller_UnableToUseMove(void)
else // unfreeze
{
gBattleMons[gBankAttacker].status1 &= ~(STATUS_FREEZE);
- b_movescr_stack_push_cursor();
+ BattleScriptPushCursor();
gBattlescriptCurrInstr = BattleScript_MoveUsedUnfroze;
gBattleCommunication[MULTISTRING_CHOOSER] = 0;
}
@@ -1232,7 +1480,7 @@ u8 AtkCanceller_UnableToUseMove(void)
if (Random() & 1)
{
gBattleCommunication[MULTISTRING_CHOOSER] = 0;
- b_movescr_stack_push_cursor();
+ BattleScriptPushCursor();
}
else // confusion dmg
{
@@ -1246,7 +1494,7 @@ u8 AtkCanceller_UnableToUseMove(void)
}
else // snapped out of confusion
{
- b_movescr_stack_push_cursor();
+ BattleScriptPushCursor();
gBattlescriptCurrInstr = BattleScript_MoveUsedIsConfusedNoMore;
}
effect = 1;
@@ -1269,10 +1517,10 @@ u8 AtkCanceller_UnableToUseMove(void)
{
BATTLE_STRUCT->scriptingActive = CountTrailingZeroBits((gBattleMons[gBankAttacker].status2 & STATUS2_INFATUATION) >> 0x10);
if (Random() & 1)
- b_movescr_stack_push_cursor();
+ BattleScriptPushCursor();
else
{
- b_movescr_stack_push(BattleScript_MoveUsedIsParalyzedCantAttack);
+ BattleScriptPush(BattleScript_MoveUsedIsParalyzedCantAttack);
gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE;
gProtectStructs[gBankAttacker].loveImmobility = 1;
CancelMultiTurnMoves(gBankAttacker);
@@ -1313,7 +1561,7 @@ u8 AtkCanceller_UnableToUseMove(void)
if (gBattleMoves[gCurrentMove].effect == EFFECT_THAW_HIT)
{
gBattleMons[gBankAttacker].status1 &= ~(STATUS_FREEZE);
- b_movescr_stack_push_cursor();
+ BattleScriptPushCursor();
gBattlescriptCurrInstr = BattleScript_MoveUsedUnfroze;
gBattleCommunication[MULTISTRING_CHOOSER] = 1;
}
@@ -1330,7 +1578,7 @@ u8 AtkCanceller_UnableToUseMove(void)
if (effect == 2)
{
gActiveBank = gBankAttacker;
- EmitSetAttributes(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBank].status1);
+ EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBank].status1);
MarkBufferBankForExecution(gActiveBank);
}
return effect;
@@ -1363,14 +1611,14 @@ bool8 sub_8018018(u8 bank, u8 r1, u8 r2)
{
if (GetBankSide(bank) == 1)
{
- r7 = GetBankByPlayerAI(1);
- r6 = GetBankByPlayerAI(3);
+ r7 = GetBankByIdentity(1);
+ r6 = GetBankByIdentity(3);
party = gEnemyParty;
}
else
{
- r7 = GetBankByPlayerAI(0);
- r6 = GetBankByPlayerAI(2);
+ r7 = GetBankByIdentity(0);
+ r6 = GetBankByIdentity(2);
party = gPlayerParty;
}
if (r1 == 6)
@@ -1534,7 +1782,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
if (effect)
{
gBattleCommunication[MULTISTRING_CHOOSER] = weather_get_current();
- b_push_move_exec(BattleScript_OverworldWeatherStarts);
+ BattleScriptPushCursorAndCallback(BattleScript_OverworldWeatherStarts);
}
break;
case ABILITY_DRIZZLE:
@@ -1542,7 +1790,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
if (!(gBattleWeather & WEATHER_RAIN_PERMANENT))
{
gBattleWeather = (WEATHER_RAIN_PERMANENT | WEATHER_RAIN_TEMPORARY);
- b_push_move_exec(BattleScript_DrizzleActivates);
+ BattleScriptPushCursorAndCallback(BattleScript_DrizzleActivates);
BATTLE_STRUCT->scriptingActive = bank;
effect++;
}
@@ -1552,7 +1800,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
if (!(gBattleWeather & WEATHER_SANDSTORM_PERMANENT))
{
gBattleWeather = (WEATHER_SANDSTORM_PERMANENT | WEATHER_SANDSTORM_TEMPORARY);
- b_push_move_exec(BattleScript_SandstreamActivates);
+ BattleScriptPushCursorAndCallback(BattleScript_SandstreamActivates);
BATTLE_STRUCT->scriptingActive = bank;
effect++;
}
@@ -1562,7 +1810,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
if (!(gBattleWeather & WEATHER_SUN_PERMANENT))
{
gBattleWeather = (WEATHER_SUN_PERMANENT | WEATHER_SUN_TEMPORARY);
- b_push_move_exec(BattleScript_DroughtActivates);
+ BattleScriptPushCursorAndCallback(BattleScript_DroughtActivates);
BATTLE_STRUCT->scriptingActive = bank;
effect++;
}
@@ -1580,7 +1828,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
effect = CastformDataTypeChange(bank);
if (effect != 0)
{
- b_push_move_exec(BattleScript_CastformChange);
+ BattleScriptPushCursorAndCallback(BattleScript_CastformChange);
BATTLE_STRUCT->scriptingActive = bank;
BATTLE_STRUCT->castformToChangeInto = effect - 1;
}
@@ -1603,7 +1851,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
effect = CastformDataTypeChange(target1);
if (effect != 0)
{
- b_push_move_exec(BattleScript_CastformChange);
+ BattleScriptPushCursorAndCallback(BattleScript_CastformChange);
BATTLE_STRUCT->scriptingActive = target1;
BATTLE_STRUCT->castformToChangeInto = effect - 1;
break;
@@ -1625,7 +1873,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
&& gBattleMons[bank].maxHP > gBattleMons[bank].hp)
{
gLastUsedAbility = ABILITY_RAIN_DISH; // why
- b_push_move_exec(BattleScript_RainDishActivates);
+ BattleScriptPushCursorAndCallback(BattleScript_RainDishActivates);
gBattleMoveDamage = gBattleMons[bank].maxHP / 16;
if (gBattleMoveDamage == 0)
gBattleMoveDamage = 1;
@@ -1650,8 +1898,8 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
// BUG: The nightmare status does not get cleared here. This was fixed in Emerald.
//gBattleMons[bank].status2 &= ~(STATUS2_NIGHTMARE);
BATTLE_STRUCT->scriptingActive = gActiveBank = bank;
- b_push_move_exec(BattleScript_ShedSkinActivates);
- EmitSetAttributes(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[bank].status1);
+ BattleScriptPushCursorAndCallback(BattleScript_ShedSkinActivates);
+ EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[bank].status1);
MarkBufferBankForExecution(gActiveBank);
effect++;
}
@@ -1662,7 +1910,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
gBattleMons[bank].statStages[STAT_STAGE_SPEED]++;
BATTLE_STRUCT->animArg1 = 0x11;
BATTLE_STRUCT->animArg2 = 0;
- b_push_move_exec(BattleScript_SpeedBoostActivates);
+ BattleScriptPushCursorAndCallback(BattleScript_SpeedBoostActivates);
BATTLE_STRUCT->scriptingActive = bank;
effect++;
}
@@ -1781,7 +2029,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
gBattleTextBuff1[1] = 3;
gBattleTextBuff1[2] = moveType;
gBattleTextBuff1[3] = 0xFF;
- b_movescr_stack_push_cursor();
+ BattleScriptPushCursor();
gBattlescriptCurrInstr = BattleScript_ColorChangeActivates;
effect++;
}
@@ -1797,7 +2045,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
gBattleMoveDamage = gBattleMons[gBankAttacker].maxHP / 16;
if (gBattleMoveDamage == 0)
gBattleMoveDamage = 1;
- b_movescr_stack_push_cursor();
+ BattleScriptPushCursor();
gBattlescriptCurrInstr = BattleScript_RoughSkinActivates;
effect++;
}
@@ -1818,7 +2066,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
if (gBattleCommunication[MOVE_EFFECT_BYTE] == 3)
gBattleCommunication[MOVE_EFFECT_BYTE] += 2;
gBattleCommunication[MOVE_EFFECT_BYTE] += 0x40;
- b_movescr_stack_push_cursor();
+ BattleScriptPushCursor();
gBattlescriptCurrInstr = BattleScript_ApplySecondaryEffect;
gHitMarker |= HITMARKER_IGNORE_SAFEGUARD;
effect++;
@@ -1834,7 +2082,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
&& (Random() % 3) == 0)
{
gBattleCommunication[MOVE_EFFECT_BYTE] = 0x42;
- b_movescr_stack_push_cursor();
+ BattleScriptPushCursor();
gBattlescriptCurrInstr = BattleScript_ApplySecondaryEffect;
gHitMarker |= HITMARKER_IGNORE_SAFEGUARD;
effect++;
@@ -1850,7 +2098,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
&& (Random() % 3) == 0)
{
gBattleCommunication[MOVE_EFFECT_BYTE] = 0x45;
- b_movescr_stack_push_cursor();
+ BattleScriptPushCursor();
gBattlescriptCurrInstr = BattleScript_ApplySecondaryEffect;
gHitMarker |= HITMARKER_IGNORE_SAFEGUARD;
effect++;
@@ -1866,7 +2114,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
&& (Random() % 3) == 0)
{
gBattleCommunication[MOVE_EFFECT_BYTE] = 0x43;
- b_movescr_stack_push_cursor();
+ BattleScriptPushCursor();
gBattlescriptCurrInstr = BattleScript_ApplySecondaryEffect;
gHitMarker |= HITMARKER_IGNORE_SAFEGUARD;
effect++;
@@ -1888,7 +2136,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
&& GetGenderFromSpeciesAndPersonality(speciesDef, pidDef) != 0xFF)
{
gBattleMons[gBankAttacker].status2 |= (gBitTable[gBankTarget] << 0x10);
- b_movescr_stack_push_cursor();
+ BattleScriptPushCursor();
gBattlescriptCurrInstr = BattleScript_CuteCharmActivates;
effect++;
}
@@ -1968,11 +2216,11 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
gBattleMons[bank].status2 &= ~(STATUS2_INFATUATION);
break;
}
- b_movescr_stack_push_cursor();
+ BattleScriptPushCursor();
gBattlescriptCurrInstr = BattleScript_AbilityCuredStatus;
BATTLE_STRUCT->scriptingActive = bank;
gActiveBank = bank;
- EmitSetAttributes(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBank].status1);
+ EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBank].status1);
MarkBufferBankForExecution(gActiveBank);
return effect;
}
@@ -1989,7 +2237,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
effect = CastformDataTypeChange(bank);
if (effect)
{
- b_push_move_exec(BattleScript_CastformChange);
+ BattleScriptPushCursorAndCallback(BattleScript_CastformChange);
BATTLE_STRUCT->scriptingActive = bank;
BATTLE_STRUCT->castformToChangeInto = effect - 1;
return effect;
@@ -2008,7 +2256,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
BATTLE_STRUCT->synchroniseEffect = 2;
gBattleCommunication[MOVE_EFFECT_BYTE] = BATTLE_STRUCT->synchroniseEffect + 0x40;
BATTLE_STRUCT->scriptingActive = gBankTarget;
- b_movescr_stack_push_cursor();
+ BattleScriptPushCursor();
gBattlescriptCurrInstr = BattleScript_SynchronizeActivates;
gHitMarker |= HITMARKER_IGNORE_SAFEGUARD;
effect++;
@@ -2024,7 +2272,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
BATTLE_STRUCT->synchroniseEffect = 2;
gBattleCommunication[MOVE_EFFECT_BYTE] = BATTLE_STRUCT->synchroniseEffect;
BATTLE_STRUCT->scriptingActive = gBankAttacker;
- b_movescr_stack_push_cursor();
+ BattleScriptPushCursor();
gBattlescriptCurrInstr = BattleScript_SynchronizeActivates;
gHitMarker |= HITMARKER_IGNORE_SAFEGUARD;
effect++;
@@ -2038,7 +2286,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
{
gLastUsedAbility = ABILITY_INTIMIDATE;
gStatuses3[i] &= ~(STATUS3_INTIMIDATE_POKES);
- b_push_move_exec(gUnknown_081D978C);
+ BattleScriptPushCursorAndCallback(gUnknown_081D978C);
BATTLE_STRUCT->intimidateBank = i;
effect++;
break;
@@ -2053,15 +2301,15 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
{
u8 target2;
side = (GetBankIdentity(i) ^ 1) & 1;
- target1 = GetBankByPlayerAI(side);
- target2 = GetBankByPlayerAI(side + 2);
+ target1 = GetBankByIdentity(side);
+ target2 = GetBankByIdentity(side + 2);
if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
{
if (gBattleMons[target1].ability != 0 && gBattleMons[target1].hp != 0
&& gBattleMons[target2].ability != 0 && gBattleMons[target2].hp != 0)
{
//_080199AE
- gActiveBank = GetBankByPlayerAI(((Random() & 1) * 2) | side);
+ gActiveBank = GetBankByIdentity(((Random() & 1) * 2) | side);
gBattleMons[i].ability = gBattleMons[gActiveBank].ability;
gLastUsedAbility = gBattleMons[gActiveBank].ability;
effect++;
@@ -2096,7 +2344,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
}
if (effect)
{
- b_push_move_exec(BattleScript_TraceActivates);
+ BattleScriptPushCursorAndCallback(BattleScript_TraceActivates);
gStatuses3[i] &= ~(STATUS3_TRACE);
BATTLE_STRUCT->scriptingActive = i;
@@ -2123,7 +2371,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
{
gLastUsedAbility = ABILITY_INTIMIDATE;
gStatuses3[i] &= ~(STATUS3_INTIMIDATE_POKES);
- b_movescr_stack_push_cursor();
+ BattleScriptPushCursor();
gBattlescriptCurrInstr = gUnknown_081D9795;
BATTLE_STRUCT->intimidateBank = i;
effect++;
@@ -2251,20 +2499,20 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
return effect;
}
-void b_call_bc_move_exec(u8* BS_ptr)
+void BattleScriptExecute(u8* BS_ptr)
{
gBattlescriptCurrInstr = BS_ptr;
B_FUNCTION_STACK->ptr[B_FUNCTION_STACK->size++] = gBattleMainFunc;
- gBattleMainFunc = sub_8013F54;
- gFightStateTracker = 0;
+ gBattleMainFunc = RunBattleScriptCommands_PopCallbacksStack;
+ gCurrentActionFuncId = 0;
}
-void b_push_move_exec(u8* BS_ptr)
+void BattleScriptPushCursorAndCallback(u8* BS_ptr)
{
- b_movescr_stack_push_cursor();
+ BattleScriptPushCursor();
gBattlescriptCurrInstr = BS_ptr;
B_FUNCTION_STACK->ptr[B_FUNCTION_STACK->size++] = gBattleMainFunc;
- gBattleMainFunc = sub_8013FBC;
+ gBattleMainFunc = RunBattleScriptCommands;
}
enum
@@ -2354,7 +2602,7 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn)
BATTLE_STRUCT->scriptingActive = bank;
gStringBank = bank;
gActiveBank = gBankAttacker = bank;
- b_call_bc_move_exec(BattleScript_WhiteHerbEnd2);
+ BattleScriptExecute(BattleScript_WhiteHerbEnd2);
}
break;
}
@@ -2371,7 +2619,7 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn)
if (gBattleMons[bank].hp + bankQuality > gBattleMons[bank].maxHP)
gBattleMoveDamage = gBattleMons[bank].maxHP - gBattleMons[bank].hp;
gBattleMoveDamage *= -1;
- b_call_bc_move_exec(BattleScript_ItemHealHP_RemoveItem);
+ BattleScriptExecute(BattleScript_ItemHealHP_RemoveItem);
effect = 4;
}
break;
@@ -2406,8 +2654,8 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn)
gBattleTextBuff1[2] = move;
gBattleTextBuff1[3] = move >> 8;
gBattleTextBuff1[4] = 0xFF;
- b_call_bc_move_exec(BattleScript_BerryPPHealEnd2);
- EmitSetAttributes(0, i + REQUEST_PPMOVE1_BATTLE, 0, 1, &changedPP);
+ BattleScriptExecute(BattleScript_BerryPPHealEnd2);
+ EmitSetMonData(0, i + REQUEST_PPMOVE1_BATTLE, 0, 1, &changedPP);
MarkBufferBankForExecution(gActiveBank);
effect = ITEM_PP_CHANGE;
}
@@ -2427,7 +2675,7 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn)
BATTLE_STRUCT->scriptingActive = bank;
gStringBank = bank;
gActiveBank = gBankAttacker = bank;
- b_call_bc_move_exec(BattleScript_WhiteHerbEnd2);
+ BattleScriptExecute(BattleScript_WhiteHerbEnd2);
}
break;
case HOLD_EFFECT_LEFTOVERS:
@@ -2439,7 +2687,7 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn)
if (gBattleMons[bank].hp + gBattleMoveDamage > gBattleMons[bank].maxHP)
gBattleMoveDamage = gBattleMons[bank].maxHP - gBattleMons[bank].hp;
gBattleMoveDamage *= -1;
- b_call_bc_move_exec(BattleScript_ItemHealHP_End2);
+ BattleScriptExecute(BattleScript_ItemHealHP_End2);
effect = ITEM_HP_CHANGE;
RecordItemBattle(bank, bankHoldEffect);
}
@@ -2459,9 +2707,9 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn)
gBattleMoveDamage = gBattleMons[bank].maxHP - gBattleMons[bank].hp;
gBattleMoveDamage *= -1;
if (GetPokeFlavourRelation(gBattleMons[bank].personality, FLAVOR_SPICY) < 0)
- b_call_bc_move_exec(BattleScript_BerryConfuseHealEnd2);
+ BattleScriptExecute(BattleScript_BerryConfuseHealEnd2);
else
- b_call_bc_move_exec(BattleScript_ItemHealHP_RemoveItem);
+ BattleScriptExecute(BattleScript_ItemHealHP_RemoveItem);
effect = ITEM_HP_CHANGE;
}
break;
@@ -2479,9 +2727,9 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn)
gBattleMoveDamage = gBattleMons[bank].maxHP - gBattleMons[bank].hp;
gBattleMoveDamage *= -1;
if (GetPokeFlavourRelation(gBattleMons[bank].personality, FLAVOR_DRY) < 0)
- b_call_bc_move_exec(BattleScript_BerryConfuseHealEnd2);
+ BattleScriptExecute(BattleScript_BerryConfuseHealEnd2);
else
- b_call_bc_move_exec(BattleScript_ItemHealHP_RemoveItem);
+ BattleScriptExecute(BattleScript_ItemHealHP_RemoveItem);
effect = ITEM_HP_CHANGE;
}
break;
@@ -2499,9 +2747,9 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn)
gBattleMoveDamage = gBattleMons[bank].maxHP - gBattleMons[bank].hp;
gBattleMoveDamage *= -1;
if (GetPokeFlavourRelation(gBattleMons[bank].personality, FLAVOR_SWEET) < 0)
- b_call_bc_move_exec(BattleScript_BerryConfuseHealEnd2);
+ BattleScriptExecute(BattleScript_BerryConfuseHealEnd2);
else
- b_call_bc_move_exec(BattleScript_ItemHealHP_RemoveItem);
+ BattleScriptExecute(BattleScript_ItemHealHP_RemoveItem);
effect = ITEM_HP_CHANGE;
}
break;
@@ -2519,9 +2767,9 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn)
gBattleMoveDamage = gBattleMons[bank].maxHP - gBattleMons[bank].hp;
gBattleMoveDamage *= -1;
if (GetPokeFlavourRelation(gBattleMons[bank].personality, FLAVOR_BITTER) < 0)
- b_call_bc_move_exec(BattleScript_BerryConfuseHealEnd2);
+ BattleScriptExecute(BattleScript_BerryConfuseHealEnd2);
else
- b_call_bc_move_exec(BattleScript_ItemHealHP_RemoveItem);
+ BattleScriptExecute(BattleScript_ItemHealHP_RemoveItem);
effect = ITEM_HP_CHANGE;
}
break;
@@ -2539,9 +2787,9 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn)
gBattleMoveDamage = gBattleMons[bank].maxHP - gBattleMons[bank].hp;
gBattleMoveDamage *= -1;
if (GetPokeFlavourRelation(gBattleMons[bank].personality, FLAVOR_SOUR) < 0)
- b_call_bc_move_exec(BattleScript_BerryConfuseHealEnd2);
+ BattleScriptExecute(BattleScript_BerryConfuseHealEnd2);
else
- b_call_bc_move_exec(BattleScript_ItemHealHP_RemoveItem);
+ BattleScriptExecute(BattleScript_ItemHealHP_RemoveItem);
effect = ITEM_HP_CHANGE;
}
break;
@@ -2564,7 +2812,7 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn)
BATTLE_STRUCT->statChanger = 0x10 + STAT_STAGE_ATK;
BATTLE_STRUCT->animArg1 = 0xE + STAT_STAGE_ATK;
BATTLE_STRUCT->animArg2 = 0;
- b_call_bc_move_exec(BattleScript_BerryStatRaiseEnd2);
+ BattleScriptExecute(BattleScript_BerryStatRaiseEnd2);
effect = ITEM_STATS_CHANGE;
}
break;
@@ -2580,7 +2828,7 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn)
BATTLE_STRUCT->statChanger = 0x10 + STAT_STAGE_DEF;
BATTLE_STRUCT->animArg1 = 0xE + STAT_STAGE_DEF;
BATTLE_STRUCT->animArg2 = 0;
- b_call_bc_move_exec(BattleScript_BerryStatRaiseEnd2);
+ BattleScriptExecute(BattleScript_BerryStatRaiseEnd2);
effect = ITEM_STATS_CHANGE;
}
break;
@@ -2596,7 +2844,7 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn)
BATTLE_STRUCT->statChanger = 0x10 + STAT_STAGE_SPEED;
BATTLE_STRUCT->animArg1 = 0xE + STAT_STAGE_SPEED;
BATTLE_STRUCT->animArg2 = 0;
- b_call_bc_move_exec(BattleScript_BerryStatRaiseEnd2);
+ BattleScriptExecute(BattleScript_BerryStatRaiseEnd2);
effect = ITEM_STATS_CHANGE;
}
break;
@@ -2612,7 +2860,7 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn)
BATTLE_STRUCT->statChanger = 0x10 + STAT_STAGE_SPATK;
BATTLE_STRUCT->animArg1 = 0xE + STAT_STAGE_SPATK;
BATTLE_STRUCT->animArg2 = 0;
- b_call_bc_move_exec(BattleScript_BerryStatRaiseEnd2);
+ BattleScriptExecute(BattleScript_BerryStatRaiseEnd2);
effect = ITEM_STATS_CHANGE;
}
break;
@@ -2628,7 +2876,7 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn)
BATTLE_STRUCT->statChanger = 0x10 + STAT_STAGE_SPDEF;
BATTLE_STRUCT->animArg1 = 0xE + STAT_STAGE_SPDEF;
BATTLE_STRUCT->animArg2 = 0;
- b_call_bc_move_exec(BattleScript_BerryStatRaiseEnd2);
+ BattleScriptExecute(BattleScript_BerryStatRaiseEnd2);
effect = ITEM_STATS_CHANGE;
}
break;
@@ -2636,7 +2884,7 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn)
if (gBattleMons[bank].hp <= gBattleMons[bank].maxHP / bankQuality && !moveTurn && !(gBattleMons[bank].status2 & STATUS2_FOCUS_ENERGY))
{
gBattleMons[bank].status2 |= STATUS2_FOCUS_ENERGY;
- b_call_bc_move_exec(BattleScript_BerryFocusEnergyEnd2);
+ BattleScriptExecute(BattleScript_BerryFocusEnergyEnd2);
effect = ITEM_EFFECT_OTHER;
}
break;
@@ -2673,7 +2921,7 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn)
BATTLE_STRUCT->statChanger = 0x21 + i;
BATTLE_STRUCT->animArg1 = 0x21 + i + 6;
BATTLE_STRUCT->animArg2 = 0;
- b_call_bc_move_exec(BattleScript_BerryStatRaiseEnd2);
+ BattleScriptExecute(BattleScript_BerryStatRaiseEnd2);
effect = ITEM_STATS_CHANGE;
}
}
@@ -2682,7 +2930,7 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn)
if (gBattleMons[bank].status1 & STATUS_PARALYSIS)
{
gBattleMons[bank].status1 &= ~(STATUS_PARALYSIS);
- b_call_bc_move_exec(BattleScript_BerryCurePrlzEnd2);
+ BattleScriptExecute(BattleScript_BerryCurePrlzEnd2);
effect = ITEM_STATUS_CHANGE;
}
break;
@@ -2690,7 +2938,7 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn)
if (gBattleMons[bank].status1 & STATUS_PSN_ANY)
{
gBattleMons[bank].status1 &= ~(STATUS_PSN_ANY | STATUS_TOXIC_COUNTER);
- b_call_bc_move_exec(BattleScript_BerryCurePsnEnd2);
+ BattleScriptExecute(BattleScript_BerryCurePsnEnd2);
effect = ITEM_STATUS_CHANGE;
}
break;
@@ -2698,7 +2946,7 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn)
if (gBattleMons[bank].status1 & STATUS_BURN)
{
gBattleMons[bank].status1 &= ~(STATUS_BURN);
- b_call_bc_move_exec(BattleScript_BerryCureBrnEnd2);
+ BattleScriptExecute(BattleScript_BerryCureBrnEnd2);
effect = ITEM_STATUS_CHANGE;
}
break;
@@ -2706,7 +2954,7 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn)
if (gBattleMons[bank].status1 & STATUS_FREEZE)
{
gBattleMons[bank].status1 &= ~(STATUS_FREEZE);
- b_call_bc_move_exec(BattleScript_BerryCureFrzEnd2);
+ BattleScriptExecute(BattleScript_BerryCureFrzEnd2);
effect = ITEM_STATUS_CHANGE;
}
break;
@@ -2715,7 +2963,7 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn)
{
gBattleMons[bank].status1 &= ~(STATUS_SLEEP);
gBattleMons[bank].status2 &= ~(STATUS2_NIGHTMARE);
- b_call_bc_move_exec(BattleScript_BerryCureSlpEnd2);
+ BattleScriptExecute(BattleScript_BerryCureSlpEnd2);
effect = ITEM_STATUS_CHANGE;
}
break;
@@ -2723,7 +2971,7 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn)
if (gBattleMons[bank].status2 & STATUS2_CONFUSION)
{
gBattleMons[bank].status2 &= ~(STATUS2_CONFUSION);
- b_call_bc_move_exec(BattleScript_BerryCureConfusionEnd2);
+ BattleScriptExecute(BattleScript_BerryCureConfusionEnd2);
effect = ITEM_EFFECT_OTHER;
}
break;
@@ -2768,7 +3016,7 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn)
gBattleCommunication[MULTISTRING_CHOOSER] = 1;
gBattleMons[bank].status1 = 0;
gBattleMons[bank].status2 &= ~(STATUS2_CONFUSION);
- b_call_bc_move_exec(BattleScript_BerryCureChosenStatusEnd2);
+ BattleScriptExecute(BattleScript_BerryCureChosenStatusEnd2);
effect = ITEM_STATUS_CHANGE;
}
break;
@@ -2777,7 +3025,7 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn)
{
gBattleMons[bank].status2 &= ~(STATUS2_INFATUATION);
StringCopy(gBattleTextBuff1, gStatusConditionString_LoveJpn);
- b_call_bc_move_exec(BattleScript_BerryCureChosenStatusEnd2);
+ BattleScriptExecute(BattleScript_BerryCureChosenStatusEnd2);
gBattleCommunication[MULTISTRING_CHOOSER] = 0;
effect = ITEM_EFFECT_OTHER;
}
@@ -2791,7 +3039,7 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn)
switch (effect)
{
case ITEM_STATUS_CHANGE:
- EmitSetAttributes(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[bank].status1);
+ EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[bank].status1);
MarkBufferBankForExecution(gActiveBank);
break;
case ITEM_PP_CHANGE:
@@ -2824,7 +3072,7 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn)
if (gBattleMons[bank].status1 & STATUS_PARALYSIS)
{
gBattleMons[bank].status1 &= ~(STATUS_PARALYSIS);
- b_movescr_stack_push_cursor();
+ BattleScriptPushCursor();
gBattlescriptCurrInstr = BattleScript_BerryCureParRet;
effect = ITEM_STATUS_CHANGE;
}
@@ -2833,7 +3081,7 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn)
if (gBattleMons[bank].status1 & STATUS_PSN_ANY)
{
gBattleMons[bank].status1 &= ~(STATUS_PSN_ANY | STATUS_TOXIC_COUNTER);
- b_movescr_stack_push_cursor();
+ BattleScriptPushCursor();
gBattlescriptCurrInstr = BattleScript_BerryCurePsnRet;
effect = ITEM_STATUS_CHANGE;
}
@@ -2842,7 +3090,7 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn)
if (gBattleMons[bank].status1 & STATUS_BURN)
{
gBattleMons[bank].status1 &= ~(STATUS_BURN);
- b_movescr_stack_push_cursor();
+ BattleScriptPushCursor();
gBattlescriptCurrInstr = BattleScript_BerryCureBrnRet;
effect = ITEM_STATUS_CHANGE;
}
@@ -2851,7 +3099,7 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn)
if (gBattleMons[bank].status1 & STATUS_FREEZE)
{
gBattleMons[bank].status1 &= ~(STATUS_FREEZE);
- b_movescr_stack_push_cursor();
+ BattleScriptPushCursor();
gBattlescriptCurrInstr = BattleScript_BerryCureFrzRet;
effect = ITEM_STATUS_CHANGE;
}
@@ -2861,7 +3109,7 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn)
{
gBattleMons[bank].status1 &= ~(STATUS_SLEEP);
gBattleMons[bank].status2 &= ~(STATUS2_NIGHTMARE);
- b_movescr_stack_push_cursor();
+ BattleScriptPushCursor();
gBattlescriptCurrInstr = BattleScript_BerryCureSlpRet;
effect = ITEM_STATUS_CHANGE;
}
@@ -2870,7 +3118,7 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn)
if (gBattleMons[bank].status2 & STATUS2_CONFUSION)
{
gBattleMons[bank].status2 &= ~(STATUS2_CONFUSION);
- b_movescr_stack_push_cursor();
+ BattleScriptPushCursor();
gBattlescriptCurrInstr = BattleScript_BerryCureConfusionRet;
effect = ITEM_EFFECT_OTHER;
}
@@ -2880,7 +3128,7 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn)
{
gBattleMons[bank].status2 &= ~(STATUS2_INFATUATION);
StringCopy(gBattleTextBuff1, gStatusConditionString_LoveJpn);
- b_movescr_stack_push_cursor();
+ BattleScriptPushCursor();
gBattleCommunication[MULTISTRING_CHOOSER] = 0;
gBattlescriptCurrInstr = BattleScript_BerryCureChosenStatusRet;
effect = ITEM_EFFECT_OTHER;
@@ -2916,7 +3164,7 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn)
}
gBattleMons[bank].status1 = 0;
gBattleMons[bank].status2 &= ~(STATUS2_CONFUSION);
- b_movescr_stack_push_cursor();
+ BattleScriptPushCursor();
gBattleCommunication[MULTISTRING_CHOOSER] = 0;
gBattlescriptCurrInstr = BattleScript_BerryCureChosenStatusRet;
effect = ITEM_STATUS_CHANGE;
@@ -2935,7 +3183,7 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn)
{
BATTLE_STRUCT->scriptingActive = bank;
gStringBank = bank;
- b_movescr_stack_push_cursor();
+ BattleScriptPushCursor();
gBattlescriptCurrInstr = BattleScript_WhiteHerbRet;
return effect; // unnecessary return
}
@@ -2946,7 +3194,7 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn)
BATTLE_STRUCT->scriptingActive = bank;
gStringBank = bank;
gActiveBank = bank;
- EmitSetAttributes(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBank].status1);
+ EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBank].status1);
MarkBufferBankForExecution(gActiveBank);
break;
}
@@ -2965,9 +3213,9 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn)
&& gBattleMons[gBankTarget].hp)
{
gBattleCommunication[MOVE_EFFECT_BYTE] = 8;
- b_movescr_stack_push_cursor();
+ BattleScriptPushCursor();
SetMoveEffect(0, 0);
- b_movescr_stack_pop_cursor();
+ BattleScriptPop();
}
break;
case HOLD_EFFECT_SHELL_BELL:
@@ -2985,7 +3233,7 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn)
if (gBattleMoveDamage == 0)
gBattleMoveDamage = -1;
gSpecialStatuses[gBankTarget].moveturnLostHP = 0;
- b_movescr_stack_push_cursor();
+ BattleScriptPushCursor();
gBattlescriptCurrInstr = BattleScript_ItemHealHP_Ret;
effect++;
}
@@ -3028,14 +3276,14 @@ void unref_sub_801B40C(void)
{
if (sCombinedMoves[i].move1 == gChosenMovesByBanks[bank] && sCombinedMoves[i].move2 == gChosenMovesByBanks[bank + 2])
{
- gSideTimer[GetBankIdentity(bank) & 1].field3 = (bank) | ((bank + 2) << 4);
- gSideTimer[GetBankIdentity(bank) & 1].field4 = sCombinedMoves[i].newMove;
+ gSideTimers[GetBankIdentity(bank) & 1].field3 = (bank) | ((bank + 2) << 4);
+ gSideTimers[GetBankIdentity(bank) & 1].field4 = sCombinedMoves[i].newMove;
gSideAffecting[GetBankIdentity(bank) & 1] |= SIDE_STATUS_X4;
}
if (sCombinedMoves[i].move1 == gChosenMovesByBanks[bank + 2] && sCombinedMoves[i].move2 == gChosenMovesByBanks[bank])
{
- gSideTimer[GetBankIdentity(bank) & 1].field3 = (bank + 2) | ((bank) << 4);
- gSideTimer[GetBankIdentity(bank) & 1].field4 = sCombinedMoves[i].newMove;
+ gSideTimers[GetBankIdentity(bank) & 1].field3 = (bank + 2) | ((bank) << 4);
+ gSideTimers[GetBankIdentity(bank) & 1].field4 = sCombinedMoves[i].newMove;
gSideAffecting[GetBankIdentity(bank) & 1] |= SIDE_STATUS_X4;
}
bank++;
@@ -3067,8 +3315,8 @@ u8 GetMoveTarget(u16 move, u8 useMoveTarget) //get move target
{
case 0:
side = GetBankSide(gBankAttacker) ^ 1;
- if (gSideTimer[side].followmeTimer && gBattleMons[gSideTimer[side].followmeTarget].hp)
- targetBank = gSideTimer[side].followmeTarget;
+ if (gSideTimers[side].followmeTimer && gBattleMons[gSideTimers[side].followmeTarget].hp)
+ targetBank = gSideTimers[side].followmeTarget;
else
{
side = GetBankSide(gBankAttacker);
@@ -3090,35 +3338,35 @@ u8 GetMoveTarget(u16 move, u8 useMoveTarget) //get move target
case 8:
case 32:
case 64:
- targetBank = GetBankByPlayerAI((GetBankIdentity(gBankAttacker) & 1) ^ 1);
+ targetBank = GetBankByIdentity((GetBankIdentity(gBankAttacker) & 1) ^ 1);
if (gAbsentBankFlags & gBitTable[targetBank])
targetBank ^= 2;
break;
case 4:
side = GetBankSide(gBankAttacker) ^ 1;
- if (gSideTimer[side].followmeTimer && gBattleMons[gSideTimer[side].followmeTarget].hp)
- targetBank = gSideTimer[side].followmeTarget;
+ if (gSideTimers[side].followmeTimer && gBattleMons[gSideTimers[side].followmeTarget].hp)
+ targetBank = gSideTimers[side].followmeTarget;
else if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && moveTarget & 4)
{
if (GetBankSide(gBankAttacker) == 0)
{
if (Random() & 1)
- targetBank = GetBankByPlayerAI(1);
+ targetBank = GetBankByIdentity(1);
else
- targetBank = GetBankByPlayerAI(3);
+ targetBank = GetBankByIdentity(3);
}
else
{
if (Random() & 1)
- targetBank = GetBankByPlayerAI(0);
+ targetBank = GetBankByIdentity(0);
else
- targetBank = GetBankByPlayerAI(2);
+ targetBank = GetBankByIdentity(2);
}
if (gAbsentBankFlags & gBitTable[targetBank])
targetBank ^= 2;
}
else
- targetBank = GetBankByPlayerAI((GetBankIdentity(gBankAttacker) & 1) ^ 1);
+ targetBank = GetBankByIdentity((GetBankIdentity(gBankAttacker) & 1) ^ 1);
break;
case 2:
case 16:
@@ -3129,7 +3377,7 @@ u8 GetMoveTarget(u16 move, u8 useMoveTarget) //get move target
return targetBank;
}
-u8 IsPokeDisobedient(void)
+u8 IsMonDisobedient(void)
{
u8 obedienceLevel;
s32 rnd;
diff --git a/src/battle/pokeball.c b/src/battle/pokeball.c
index bcaaebcda..6f27469ce 100644
--- a/src/battle/pokeball.c
+++ b/src/battle/pokeball.c
@@ -383,7 +383,7 @@ static void sub_8046464(u8 taskId)
gSprites[spriteId].callback = sub_8047254;
break;
default:
- gBankTarget = GetBankByPlayerAI(1);
+ gBankTarget = GetBankByIdentity(1);
sp0 = TRUE;
break;
}
@@ -722,7 +722,7 @@ static void sub_8046C78(struct Sprite *sprite)
r8 = -25;
}
species = GetMonData(pkmn, MON_DATA_SPECIES);
- if ((r5 == GetBankByPlayerAI(0) || r5 == GetBankByPlayerAI(1))
+ if ((r5 == GetBankByIdentity(0) || r5 == GetBankByIdentity(1))
&& IsDoubleBattle() && ewram17840.unk9_0)
{
if (gBattleTypeFlags & BATTLE_TYPE_MULTI)
@@ -737,7 +737,7 @@ static void sub_8046C78(struct Sprite *sprite)
}
if (!IsDoubleBattle() || !ewram17840.unk9_0)
r4_2 = 0;
- else if (r5 == GetBankByPlayerAI(0) || r5 == GetBankByPlayerAI(1))
+ else if (r5 == GetBankByIdentity(0) || r5 == GetBankByIdentity(1))
r4_2 = 1;
else
r4_2 = 2;
@@ -885,7 +885,7 @@ static void sub_80470C4(struct Sprite *sprite)
sprite->data[6] = sprite->oam.affineParam & 0xFF;
sprite->data[0] = 0;
if (IsDoubleBattle() && ewram17840.unk9_0
- && sprite->data[6] == GetBankByPlayerAI(2))
+ && sprite->data[6] == GetBankByIdentity(2))
sprite->callback = sub_8047230;
else
sprite->callback = sub_8046C78;
@@ -910,7 +910,7 @@ static void sub_8047254(struct Sprite *sprite)
{
sprite->data[0] = 0;
if (IsDoubleBattle() && ewram17840.unk9_0
- && sprite->data[6] == GetBankByPlayerAI(3))
+ && sprite->data[6] == GetBankByIdentity(3))
sprite->callback = sub_8047230;
else
sprite->callback = sub_8046C78;
diff --git a/src/battle/reshow_battle_screen.c b/src/battle/reshow_battle_screen.c
index 49b0854cc..6a6d7a137 100644
--- a/src/battle/reshow_battle_screen.c
+++ b/src/battle/reshow_battle_screen.c
@@ -13,12 +13,12 @@ extern struct SpriteTemplate gUnknown_02024E8C;
extern struct Window gUnknown_03004210;
extern u16 gBattle_BG2_Y;
extern u16 gBattle_BG2_X;
-extern u16 gUnknown_030042A4;
+extern u16 gBattle_BG0_X;
extern u16 gBattle_BG1_X;
extern u16 gUnknown_030041B0;
extern u16 gBattle_BG1_Y;
extern u16 gUnknown_030041B8;
-extern u16 gUnknown_030042A0;
+extern u16 gBattle_BG0_Y;
extern u8 gReservedSpritePaletteCount;
extern u8 gActionSelectionCursor[4];
extern u8 gBankInMenu;
@@ -81,8 +81,8 @@ static void CB2_ReshowBattleScreenAfterMenu(void)
SetUpWindowConfig(&gWindowConfig_81E6C58);
ResetPaletteFade();
InitWindowFromConfig(&gUnknown_03004210, &gWindowConfig_81E6C58);
- gUnknown_030042A4 = 0;
- gUnknown_030042A0 = 0;
+ gBattle_BG0_X = 0;
+ gBattle_BG0_Y = 0;
gBattle_BG1_X = 0;
gBattle_BG1_Y = 0;
gBattle_BG2_X = 0;
@@ -171,13 +171,13 @@ static void CB2_ReshowBattleScreenAfterMenu(void)
sub_80327CC();
- opponentBank = GetBankByPlayerAI(1);
+ opponentBank = GetBankByIdentity(1);
species = GetMonData(&gEnemyParty[gBattlePartyID[opponentBank]], MON_DATA_SPECIES);
sub_8032984(opponentBank, species);
if (IsDoubleBattle())
{
- opponentBank = GetBankByPlayerAI(3);
+ opponentBank = GetBankByIdentity(3);
species = GetMonData(&gEnemyParty[gBattlePartyID[opponentBank]], MON_DATA_SPECIES);
sub_8032984(opponentBank, species);
}
@@ -190,7 +190,7 @@ static void CB2_ReshowBattleScreenAfterMenu(void)
sub_807B06C();
BeginHardwarePaletteFade(0xFF, 0, 0x10, 0, 1);
gPaletteFade.bufferTransferDisabled = 0;
- SetMainCallback2(sub_800F808);
+ SetMainCallback2(BattleMainCB2);
break;
}
gReshowState++;
diff --git a/src/contest.c b/src/contest.c
index 365f92538..c32719648 100644
--- a/src/contest.c
+++ b/src/contest.c
@@ -60,8 +60,8 @@ extern u16 gBattle_WIN0V;
extern u16 gBattle_WIN1V;
extern u16 gBattle_BG2_Y;
extern u16 gBattle_BG2_X;
-extern u16 gUnknown_030042A0;
-extern u16 gUnknown_030042A4;
+extern u16 gBattle_BG0_Y;
+extern u16 gBattle_BG0_X;
extern u16 gBattle_BG1_X;
extern u16 gBattle_WIN0H;
extern u32 gUnknown_03005D28; // saved RNG value
@@ -324,8 +324,8 @@ void ResetContestGpuRegs(void)
REG_WINOUT = 0x3F3F;
REG_DISPCNT |= 0x7F00;
- gUnknown_030042A4 = 0;
- gUnknown_030042A0 = 0;
+ gBattle_BG0_X = 0;
+ gBattle_BG0_Y = 0;
gBattle_BG1_X = 0;
gBattle_BG1_Y = 0;
gBattle_BG2_X = 0;
@@ -620,8 +620,8 @@ void ContestMainCallback2(void)
void ContestVBlankCallback(void)
{
- REG_BG0HOFS = gUnknown_030042A4;
- REG_BG0VOFS = gUnknown_030042A0;
+ REG_BG0HOFS = gBattle_BG0_X;
+ REG_BG0VOFS = gBattle_BG0_Y;
REG_BG1HOFS = gBattle_BG1_X;
REG_BG1VOFS = gBattle_BG1_Y;
REG_BG2HOFS = gBattle_BG2_X;
@@ -640,7 +640,7 @@ void ContestVBlankCallback(void)
void sub_80ABB70(u8 taskId)
{
- gUnknown_030042A0 = 0;
+ gBattle_BG0_Y = 0;
gBattle_BG2_Y = 0;
sub_80B0D7C();
DmaCopy32Defvars(3, gPlttBufferUnfaded, shared18000.unk18204, 0x400);
@@ -684,7 +684,7 @@ void sub_80ABCDC(u8 taskId)
u8 i;
u8 sp8[32];
- gUnknown_030042A0 = 0xA0;
+ gBattle_BG0_Y = 0xA0;
gBattle_BG2_Y = 0xA0;
FillWindowRect_DefaultPalette(
&gUnknown_03004210,
@@ -772,7 +772,7 @@ void sub_80ABEA0(u8 taskId)
sub_80AF138();
StringExpandPlaceholders(gStringVar4, gDisplayedStringBattle);
sub_8003460(&gMenuWindow, gStringVar4, 776, 1, 15);
- gUnknown_030042A0 = 0;
+ gBattle_BG0_Y = 0;
gBattle_BG2_Y = 0;
gTasks[taskId].func = sub_80ABC70;
break;
@@ -846,7 +846,7 @@ void sub_80AC15C(u8 taskId)
void sub_80AC188(u8 taskId)
{
sub_80AF138();
- gUnknown_030042A0 = 0;
+ gBattle_BG0_Y = 0;
gBattle_BG2_Y = 0;
sub_80AFFE0(FALSE);
DmaCopy32Defvars(3, gPlttBufferFaded, shared18000.unk18604, 0x400);
@@ -1804,7 +1804,7 @@ void sub_80ADDA4(u8 taskId)
{
s32 i;
- gUnknown_030042A0 = 0;
+ gBattle_BG0_Y = 0;
gBattle_BG2_Y = 0;
for (i = 0; i < 4; i++)
gUnknown_02038680[i] = sContestantStatus[i].unk4;
@@ -2950,7 +2950,7 @@ bool8 sub_80AF828(s32 a, s32 b, struct UnknownContestStruct6 *c)
void sub_80AF860(void)
{
- gUnknown_030042A0 = 0;
+ gBattle_BG0_Y = 0;
gBattle_BG2_Y = 0;
sub_80AF138();
sub_8003460(&gMenuWindow, gUnknownText_LinkStandbyAndWinner, 776, 1, 15);
diff --git a/src/data/battle_tower/trainers.h b/src/data/battle_tower/trainers.h
index b5eb3da7a..ae204f8ea 100644
--- a/src/data/battle_tower/trainers.h
+++ b/src/data/battle_tower/trainers.h
@@ -1,7 +1,7 @@
const struct BattleTowerTrainer gBattleTowerTrainers[] =
{
{
- .trainerClass = TRAINER_CLASS_YOUNGSTER,
+ .trainerClass = FACILITY_CLASS_YOUNGSTER,
.name = _("ALVIN"),
.teamFlags = 0x01,
.greeting = {
@@ -16,7 +16,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_BIRD_KEEPER,
+ .trainerClass = FACILITY_CLASS_BIRD_KEEPER,
.name = _("DIRK"),
.teamFlags = 0x01,
.greeting = {
@@ -31,7 +31,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_LADY,
+ .trainerClass = FACILITY_CLASS_LADY,
.name = _("CYBIL"),
.teamFlags = 0x02,
.greeting = {
@@ -46,7 +46,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_BLACK_BELT,
+ .trainerClass = FACILITY_CLASS_BLACK_BELT,
.name = _("CHEN"),
.teamFlags = 0x05,
.greeting = {
@@ -61,7 +61,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_NINJA_BOY,
+ .trainerClass = FACILITY_CLASS_NINJA_BOY,
.name = _("YOSHI"),
.teamFlags = 0x05,
.greeting = {
@@ -76,7 +76,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_SCHOOL_KID_F,
+ .trainerClass = FACILITY_CLASS_SCHOOL_KID_F,
.name = _("TINA"),
.teamFlags = 0x0A,
.greeting = {
@@ -91,7 +91,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_BUG_MANIAC,
+ .trainerClass = FACILITY_CLASS_BUG_MANIAC,
.name = _("COREY"),
.teamFlags = 0x41,
.greeting = {
@@ -106,7 +106,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_FISHERMAN,
+ .trainerClass = FACILITY_CLASS_FISHERMAN,
.name = _("GORDON"),
.teamFlags = 0x01,
.greeting = {
@@ -121,7 +121,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_TUBER_F,
+ .trainerClass = FACILITY_CLASS_TUBER_F,
.name = _("ANN"),
.teamFlags = 0x02,
.greeting = {
@@ -136,7 +136,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_POKEFAN_F,
+ .trainerClass = FACILITY_CLASS_POKEFAN_F,
.name = _("JULIA"),
.teamFlags = 0x42,
.greeting = {
@@ -151,7 +151,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_GENTLEMAN,
+ .trainerClass = FACILITY_CLASS_GENTLEMAN,
.name = _("GREGORY"),
.teamFlags = 0x01,
.greeting = {
@@ -166,7 +166,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_CAMPER,
+ .trainerClass = FACILITY_CLASS_CAMPER,
.name = _("KEITH"),
.teamFlags = 0x01,
.greeting = {
@@ -181,7 +181,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_RUNNING_TRIATHLETE_F,
+ .trainerClass = FACILITY_CLASS_RUNNING_TRIATHLETE_F,
.name = _("KENDRA"),
.teamFlags = 0x0A,
.greeting = {
@@ -196,7 +196,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_HIKER,
+ .trainerClass = FACILITY_CLASS_HIKER,
.name = _("DEV"),
.teamFlags = 0x01,
.greeting = {
@@ -211,7 +211,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_BATTLE_GIRL,
+ .trainerClass = FACILITY_CLASS_BATTLE_GIRL,
.name = _("CASSIE"),
.teamFlags = 0x0A,
.greeting = {
@@ -226,7 +226,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_PSYCHIC_M,
+ .trainerClass = FACILITY_CLASS_PSYCHIC_M,
.name = _("JULIAN"),
.teamFlags = 0x05,
.greeting = {
@@ -241,7 +241,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_LASS,
+ .trainerClass = FACILITY_CLASS_LASS,
.name = _("JOYCE"),
.teamFlags = 0x02,
.greeting = {
@@ -256,7 +256,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_GUITARIST,
+ .trainerClass = FACILITY_CLASS_GUITARIST,
.name = _("LES"),
.teamFlags = 0x01,
.greeting = {
@@ -271,7 +271,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_RICH_BOY,
+ .trainerClass = FACILITY_CLASS_RICH_BOY,
.name = _("CLINTON"),
.teamFlags = 0x01,
.greeting = {
@@ -286,7 +286,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_BUG_CATCHER,
+ .trainerClass = FACILITY_CLASS_BUG_CATCHER,
.name = _("LEWIS"),
.teamFlags = 0x01,
.greeting = {
@@ -301,7 +301,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_PICNICKER,
+ .trainerClass = FACILITY_CLASS_PICNICKER,
.name = _("RACHAEL"),
.teamFlags = 0x02,
.greeting = {
@@ -316,7 +316,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_COLLECTOR,
+ .trainerClass = FACILITY_CLASS_COLLECTOR,
.name = _("HAROLD"),
.teamFlags = 0x09,
.greeting = {
@@ -331,7 +331,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_TUBER_M,
+ .trainerClass = FACILITY_CLASS_TUBER_M,
.name = _("KIPP"),
.teamFlags = 0x01,
.greeting = {
@@ -346,7 +346,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_KINDLER,
+ .trainerClass = FACILITY_CLASS_KINDLER,
.name = _("IRWIN"),
.teamFlags = 0x05,
.greeting = {
@@ -361,7 +361,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_PSYCHIC_F,
+ .trainerClass = FACILITY_CLASS_PSYCHIC_F,
.name = _("EILEEN"),
.teamFlags = 0x0A,
.greeting = {
@@ -376,7 +376,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_SWIMMER_F,
+ .trainerClass = FACILITY_CLASS_SWIMMER_F,
.name = _("ANNE"),
.teamFlags = 0x02,
.greeting = {
@@ -391,7 +391,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_CYCLING_TRIATHLETE_F,
+ .trainerClass = FACILITY_CLASS_CYCLING_TRIATHLETE_F,
.name = _("RUTH"),
.teamFlags = 0x06,
.greeting = {
@@ -406,7 +406,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_POKEMANIAC,
+ .trainerClass = FACILITY_CLASS_POKEMANIAC,
.name = _("JEREMY"),
.teamFlags = 0x40,
.greeting = {
@@ -421,7 +421,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_SAILOR,
+ .trainerClass = FACILITY_CLASS_SAILOR,
.name = _("TREVOR"),
.teamFlags = 0x09,
.greeting = {
@@ -436,7 +436,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_POKEMON_BREEDER_F,
+ .trainerClass = FACILITY_CLASS_POKEMON_BREEDER_F,
.name = _("COLETTE"),
.teamFlags = 0x06,
.greeting = {
@@ -451,7 +451,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_HEX_MANIAC,
+ .trainerClass = FACILITY_CLASS_HEX_MANIAC,
.name = _("PAULA"),
.teamFlags = 0x42,
.greeting = {
@@ -466,7 +466,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_RUIN_MANIAC,
+ .trainerClass = FACILITY_CLASS_RUIN_MANIAC,
.name = _("STANLY"),
.teamFlags = 0x41,
.greeting = {
@@ -481,7 +481,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_SWIMMING_TRIATHLETE_M,
+ .trainerClass = FACILITY_CLASS_SWIMMING_TRIATHLETE_M,
.name = _("TROY"),
.teamFlags = 0x09,
.greeting = {
@@ -496,7 +496,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_SCHOOL_KID_M,
+ .trainerClass = FACILITY_CLASS_SCHOOL_KID_M,
.name = _("ED"),
.teamFlags = 0x08,
.greeting = {
@@ -511,7 +511,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_POKEMON_RANGER_F,
+ .trainerClass = FACILITY_CLASS_POKEMON_RANGER_F,
.name = _("ELLEN"),
.teamFlags = 0x04,
.greeting = {
@@ -526,7 +526,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_SWIMMER_M,
+ .trainerClass = FACILITY_CLASS_SWIMMER_M,
.name = _("ARNIE"),
.teamFlags = 0x09,
.greeting = {
@@ -541,7 +541,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_RUNNING_TRIATHLETE_M,
+ .trainerClass = FACILITY_CLASS_RUNNING_TRIATHLETE_M,
.name = _("HAL"),
.teamFlags = 0x09,
.greeting = {
@@ -556,7 +556,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_BEAUTY,
+ .trainerClass = FACILITY_CLASS_BEAUTY,
.name = _("LAUREN"),
.teamFlags = 0x06,
.greeting = {
@@ -571,7 +571,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_AROMA_LADY,
+ .trainerClass = FACILITY_CLASS_AROMA_LADY,
.name = _("STACY"),
.teamFlags = 0x06,
.greeting = {
@@ -586,7 +586,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_COLLECTOR,
+ .trainerClass = FACILITY_CLASS_COLLECTOR,
.name = _("DARYL"),
.teamFlags = 0x81,
.greeting = {
@@ -601,7 +601,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_SWIMMING_TRIATHLETE_F,
+ .trainerClass = FACILITY_CLASS_SWIMMING_TRIATHLETE_F,
.name = _("KATHY"),
.teamFlags = 0x04,
.greeting = {
@@ -616,7 +616,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_POKEMON_RANGER_M,
+ .trainerClass = FACILITY_CLASS_POKEMON_RANGER_M,
.name = _("HARRIS"),
.teamFlags = 0x0C,
.greeting = {
@@ -631,7 +631,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_POKEFAN_M,
+ .trainerClass = FACILITY_CLASS_POKEFAN_M,
.name = _("GLENN"),
.teamFlags = 0x80,
.greeting = {
@@ -646,7 +646,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_CYCLING_TRIATHLETE_M,
+ .trainerClass = FACILITY_CLASS_CYCLING_TRIATHLETE_M,
.name = _("NICO"),
.teamFlags = 0x04,
.greeting = {
@@ -661,7 +661,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_POKEMON_BREEDER_M,
+ .trainerClass = FACILITY_CLASS_POKEMON_BREEDER_M,
.name = _("BAILEY"),
.teamFlags = 0x41,
.greeting = {
@@ -676,7 +676,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_PARASOL_LADY,
+ .trainerClass = FACILITY_CLASS_PARASOL_LADY,
.name = _("ABBIE"),
.teamFlags = 0x08,
.greeting = {
@@ -691,7 +691,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_CAMPER,
+ .trainerClass = FACILITY_CLASS_CAMPER,
.name = _("AL"),
.teamFlags = 0x0C,
.greeting = {
@@ -706,7 +706,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_SCHOOL_KID_F,
+ .trainerClass = FACILITY_CLASS_SCHOOL_KID_F,
.name = _("PEGGY"),
.teamFlags = 0x42,
.greeting = {
@@ -721,7 +721,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_BEAUTY,
+ .trainerClass = FACILITY_CLASS_BEAUTY,
.name = _("NAOMI"),
.teamFlags = 0x04,
.greeting = {
@@ -736,7 +736,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_NINJA_BOY,
+ .trainerClass = FACILITY_CLASS_NINJA_BOY,
.name = _("KENJI"),
.teamFlags = 0x0C,
.greeting = {
@@ -751,7 +751,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_CYCLING_TRIATHLETE_M,
+ .trainerClass = FACILITY_CLASS_CYCLING_TRIATHLETE_M,
.name = _("ROSS"),
.teamFlags = 0x01,
.greeting = {
@@ -766,7 +766,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_POKEMON_RANGER_F,
+ .trainerClass = FACILITY_CLASS_POKEMON_RANGER_F,
.name = _("EDNA"),
.teamFlags = 0x02,
.greeting = {
@@ -781,7 +781,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_RUIN_MANIAC,
+ .trainerClass = FACILITY_CLASS_RUIN_MANIAC,
.name = _("ANTON"),
.teamFlags = 0x41,
.greeting = {
@@ -796,7 +796,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_SWIMMER_M,
+ .trainerClass = FACILITY_CLASS_SWIMMER_M,
.name = _("MITCH"),
.teamFlags = 0x81,
.greeting = {
@@ -811,7 +811,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_HEX_MANIAC,
+ .trainerClass = FACILITY_CLASS_HEX_MANIAC,
.name = _("ROD"),
.teamFlags = 0x42,
.greeting = {
@@ -826,7 +826,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_RUNNING_TRIATHLETE_M,
+ .trainerClass = FACILITY_CLASS_RUNNING_TRIATHLETE_M,
.name = _("RICH"),
.teamFlags = 0x01,
.greeting = {
@@ -841,7 +841,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_POKEFAN_M,
+ .trainerClass = FACILITY_CLASS_POKEFAN_M,
.name = _("DANIEL"),
.teamFlags = 0x80,
.greeting = {
@@ -856,7 +856,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_PSYCHIC_F,
+ .trainerClass = FACILITY_CLASS_PSYCHIC_F,
.name = _("GLORIA"),
.teamFlags = 0x82,
.greeting = {
@@ -871,7 +871,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_GUITARIST,
+ .trainerClass = FACILITY_CLASS_GUITARIST,
.name = _("NELSON"),
.teamFlags = 0x01,
.greeting = {
@@ -886,7 +886,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_KINDLER,
+ .trainerClass = FACILITY_CLASS_KINDLER,
.name = _("FERRIS"),
.teamFlags = 0x41,
.greeting = {
@@ -901,7 +901,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_AROMA_LADY,
+ .trainerClass = FACILITY_CLASS_AROMA_LADY,
.name = _("AMANDA"),
.teamFlags = 0x82,
.greeting = {
@@ -916,7 +916,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_SWIMMING_TRIATHLETE_M,
+ .trainerClass = FACILITY_CLASS_SWIMMING_TRIATHLETE_M,
.name = _("MASON"),
.teamFlags = 0x10,
.greeting = {
@@ -931,7 +931,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_DRAGON_TAMER,
+ .trainerClass = FACILITY_CLASS_DRAGON_TAMER,
.name = _("NATE"),
.teamFlags = 0x10,
.greeting = {
@@ -946,7 +946,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_LASS,
+ .trainerClass = FACILITY_CLASS_LASS,
.name = _("MIRIAM"),
.teamFlags = 0x82,
.greeting = {
@@ -961,7 +961,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_POKEMANIAC,
+ .trainerClass = FACILITY_CLASS_POKEMANIAC,
.name = _("THEO"),
.teamFlags = 0x40,
.greeting = {
@@ -976,7 +976,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_SWIMMING_TRIATHLETE_F,
+ .trainerClass = FACILITY_CLASS_SWIMMING_TRIATHLETE_F,
.name = _("PAMELA"),
.teamFlags = 0x10,
.greeting = {
@@ -991,7 +991,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_POKEFAN_F,
+ .trainerClass = FACILITY_CLASS_POKEFAN_F,
.name = _("ALISSA"),
.teamFlags = 0x20,
.greeting = {
@@ -1006,7 +1006,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_GENTLEMAN,
+ .trainerClass = FACILITY_CLASS_GENTLEMAN,
.name = _("ARTHUR"),
.teamFlags = 0x20,
.greeting = {
@@ -1021,7 +1021,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_SWIMMER_F,
+ .trainerClass = FACILITY_CLASS_SWIMMER_F,
.name = _("MARCY"),
.teamFlags = 0x82,
.greeting = {
@@ -1036,7 +1036,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_COOL_TRAINER_M,
+ .trainerClass = FACILITY_CLASS_COOL_TRAINER_M,
.name = _("MILLER"),
.teamFlags = 0x10,
.greeting = {
@@ -1051,7 +1051,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_BIRD_KEEPER,
+ .trainerClass = FACILITY_CLASS_BIRD_KEEPER,
.name = _("OLIVER"),
.teamFlags = 0x11,
.greeting = {
@@ -1066,7 +1066,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_CYCLING_TRIATHLETE_F,
+ .trainerClass = FACILITY_CLASS_CYCLING_TRIATHLETE_F,
.name = _("MOLLY"),
.teamFlags = 0x12,
.greeting = {
@@ -1081,7 +1081,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_BUG_MANIAC,
+ .trainerClass = FACILITY_CLASS_BUG_MANIAC,
.name = _("JASON"),
.teamFlags = 0x40,
.greeting = {
@@ -1096,7 +1096,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_BATTLE_GIRL,
+ .trainerClass = FACILITY_CLASS_BATTLE_GIRL,
.name = _("AVA"),
.teamFlags = 0x20,
.greeting = {
@@ -1111,7 +1111,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_FISHERMAN,
+ .trainerClass = FACILITY_CLASS_FISHERMAN,
.name = _("HANK"),
.teamFlags = 0x10,
.greeting = {
@@ -1126,7 +1126,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_SAILOR,
+ .trainerClass = FACILITY_CLASS_SAILOR,
.name = _("PETER"),
.teamFlags = 0x20,
.greeting = {
@@ -1141,7 +1141,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_EXPERT_F,
+ .trainerClass = FACILITY_CLASS_EXPERT_F,
.name = _("MINDY"),
.teamFlags = 0x20,
.greeting = {
@@ -1156,7 +1156,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_BUG_MANIAC,
+ .trainerClass = FACILITY_CLASS_BUG_MANIAC,
.name = _("DWIGHT"),
.teamFlags = 0x11,
.greeting = {
@@ -1171,7 +1171,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_POKEMON_BREEDER_F,
+ .trainerClass = FACILITY_CLASS_POKEMON_BREEDER_F,
.name = _("REENA"),
.teamFlags = 0x12,
.greeting = {
@@ -1186,7 +1186,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_PARASOL_LADY,
+ .trainerClass = FACILITY_CLASS_PARASOL_LADY,
.name = _("MEGAN"),
.teamFlags = 0x10,
.greeting = {
@@ -1201,7 +1201,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_RUNNING_TRIATHLETE_F,
+ .trainerClass = FACILITY_CLASS_RUNNING_TRIATHLETE_F,
.name = _("SIERRA"),
.teamFlags = 0x04,
.greeting = {
@@ -1216,7 +1216,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_POKEMON_RANGER_M,
+ .trainerClass = FACILITY_CLASS_POKEMON_RANGER_M,
.name = _("ARNOLD"),
.teamFlags = 0x08,
.greeting = {
@@ -1231,7 +1231,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_BLACK_BELT,
+ .trainerClass = FACILITY_CLASS_BLACK_BELT,
.name = _("XIN"),
.teamFlags = 0x04,
.greeting = {
@@ -1246,7 +1246,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_COOL_TRAINER_F,
+ .trainerClass = FACILITY_CLASS_COOL_TRAINER_F,
.name = _("KELLY"),
.teamFlags = 0x02,
.greeting = {
@@ -1261,7 +1261,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_COLLECTOR,
+ .trainerClass = FACILITY_CLASS_COLLECTOR,
.name = _("VANCE"),
.teamFlags = 0x80,
.greeting = {
@@ -1276,7 +1276,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_SWIMMING_TRIATHLETE_M,
+ .trainerClass = FACILITY_CLASS_SWIMMING_TRIATHLETE_M,
.name = _("TOBY"),
.teamFlags = 0x01,
.greeting = {
@@ -1291,7 +1291,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_GENTLEMAN,
+ .trainerClass = FACILITY_CLASS_GENTLEMAN,
.name = _("NORTON"),
.teamFlags = 0x20,
.greeting = {
@@ -1306,7 +1306,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_BATTLE_GIRL,
+ .trainerClass = FACILITY_CLASS_BATTLE_GIRL,
.name = _("ZOE"),
.teamFlags = 0x02,
.greeting = {
@@ -1321,7 +1321,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_BEAUTY,
+ .trainerClass = FACILITY_CLASS_BEAUTY,
.name = _("EMMA"),
.teamFlags = 0x20,
.greeting = {
@@ -1336,7 +1336,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_HIKER,
+ .trainerClass = FACILITY_CLASS_HIKER,
.name = _("VINCE"),
.teamFlags = 0x04,
.greeting = {
@@ -1351,7 +1351,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_EXPERT_M,
+ .trainerClass = FACILITY_CLASS_EXPERT_M,
.name = _("MARV"),
.teamFlags = 0x10,
.greeting = {
@@ -1366,7 +1366,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_POKEMON_BREEDER_M,
+ .trainerClass = FACILITY_CLASS_POKEMON_BREEDER_M,
.name = _("TODD"),
.teamFlags = 0x40,
.greeting = {
@@ -1381,7 +1381,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_GUITARIST,
+ .trainerClass = FACILITY_CLASS_GUITARIST,
.name = _("GAVIN"),
.teamFlags = 0x01,
.greeting = {
@@ -1396,7 +1396,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_PSYCHIC_M,
+ .trainerClass = FACILITY_CLASS_PSYCHIC_M,
.name = _("QUINN"),
.teamFlags = 0x08,
.greeting = {
@@ -1411,7 +1411,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_COOL_TRAINER_F,
+ .trainerClass = FACILITY_CLASS_COOL_TRAINER_F,
.name = _("JENN"),
.teamFlags = 0x02,
.greeting = {
@@ -1426,7 +1426,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_EXPERT_M,
+ .trainerClass = FACILITY_CLASS_EXPERT_M,
.name = _("JOEL"),
.teamFlags = 0x10,
.greeting = {
@@ -1441,7 +1441,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_DRAGON_TAMER,
+ .trainerClass = FACILITY_CLASS_DRAGON_TAMER,
.name = _("KYLE"),
.teamFlags = 0x0C,
.greeting = {
@@ -1456,7 +1456,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_COOL_TRAINER_M,
+ .trainerClass = FACILITY_CLASS_COOL_TRAINER_M,
.name = _("BRET"),
.teamFlags = 0x01,
.greeting = {
@@ -1471,7 +1471,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_EXPERT_F,
+ .trainerClass = FACILITY_CLASS_EXPERT_F,
.name = _("CARRIE"),
.teamFlags = 0x10,
.greeting = {
@@ -1486,7 +1486,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_LADY,
+ .trainerClass = FACILITY_CLASS_LADY,
.name = _("GILLIAN"),
.teamFlags = 0x02,
.greeting = {
diff --git a/src/data/battle_tower/trainers_de.h b/src/data/battle_tower/trainers_de.h
index 86182da9d..db226c6a6 100644
--- a/src/data/battle_tower/trainers_de.h
+++ b/src/data/battle_tower/trainers_de.h
@@ -1,7 +1,7 @@
const struct BattleTowerTrainer gBattleTowerTrainers[] =
{
{
- .trainerClass = TRAINER_CLASS_YOUNGSTER,
+ .trainerClass = FACILITY_CLASS_YOUNGSTER,
.name = _("ALWIN"),
.teamFlags = 0x01,
.greeting = {
@@ -16,7 +16,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_BIRD_KEEPER,
+ .trainerClass = FACILITY_CLASS_BIRD_KEEPER,
.name = _("DIRK"),
.teamFlags = 0x01,
.greeting = {
@@ -31,7 +31,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_LADY,
+ .trainerClass = FACILITY_CLASS_LADY,
.name = _("SIBILLE"),
.teamFlags = 0x02,
.greeting = {
@@ -46,7 +46,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_BLACK_BELT,
+ .trainerClass = FACILITY_CLASS_BLACK_BELT,
.name = _("OLAF"),
.teamFlags = 0x05,
.greeting = {
@@ -61,7 +61,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_NINJA_BOY,
+ .trainerClass = FACILITY_CLASS_NINJA_BOY,
.name = _("JOST"),
.teamFlags = 0x05,
.greeting = {
@@ -76,7 +76,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_SCHOOL_KID_F,
+ .trainerClass = FACILITY_CLASS_SCHOOL_KID_F,
.name = _("TINA"),
.teamFlags = 0x0A,
.greeting = {
@@ -91,7 +91,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_BUG_MANIAC,
+ .trainerClass = FACILITY_CLASS_BUG_MANIAC,
.name = _("HAJO"),
.teamFlags = 0x41,
.greeting = {
@@ -106,7 +106,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_FISHERMAN,
+ .trainerClass = FACILITY_CLASS_FISHERMAN,
.name = _("GEORG"),
.teamFlags = 0x01,
.greeting = {
@@ -121,7 +121,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_TUBER_F,
+ .trainerClass = FACILITY_CLASS_TUBER_F,
.name = _("ANNE"),
.teamFlags = 0x02,
.greeting = {
@@ -136,7 +136,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_POKEFAN_F,
+ .trainerClass = FACILITY_CLASS_POKEFAN_F,
.name = _("JULIA"),
.teamFlags = 0x42,
.greeting = {
@@ -151,7 +151,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_GENTLEMAN,
+ .trainerClass = FACILITY_CLASS_GENTLEMAN,
.name = _("JOHANN"),
.teamFlags = 0x01,
.greeting = {
@@ -166,7 +166,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_CAMPER,
+ .trainerClass = FACILITY_CLASS_CAMPER,
.name = _("KARL"),
.teamFlags = 0x01,
.greeting = {
@@ -181,7 +181,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_RUNNING_TRIATHLETE_F,
+ .trainerClass = FACILITY_CLASS_RUNNING_TRIATHLETE_F,
.name = _("KENDRA"),
.teamFlags = 0x0A,
.greeting = {
@@ -196,7 +196,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_HIKER,
+ .trainerClass = FACILITY_CLASS_HIKER,
.name = _("DAVID"),
.teamFlags = 0x01,
.greeting = {
@@ -211,7 +211,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_BATTLE_GIRL,
+ .trainerClass = FACILITY_CLASS_BATTLE_GIRL,
.name = _("KEA"),
.teamFlags = 0x0A,
.greeting = {
@@ -226,7 +226,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_PSYCHIC_M,
+ .trainerClass = FACILITY_CLASS_PSYCHIC_M,
.name = _("JULIAN"),
.teamFlags = 0x05,
.greeting = {
@@ -241,7 +241,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_LASS,
+ .trainerClass = FACILITY_CLASS_LASS,
.name = _("JOSI"),
.teamFlags = 0x02,
.greeting = {
@@ -256,7 +256,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_GUITARIST,
+ .trainerClass = FACILITY_CLASS_GUITARIST,
.name = _("LEIF"),
.teamFlags = 0x01,
.greeting = {
@@ -271,7 +271,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_RICH_BOY,
+ .trainerClass = FACILITY_CLASS_RICH_BOY,
.name = _("INGO"),
.teamFlags = 0x01,
.greeting = {
@@ -286,7 +286,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_BUG_CATCHER,
+ .trainerClass = FACILITY_CLASS_BUG_CATCHER,
.name = _("LUDWIG"),
.teamFlags = 0x01,
.greeting = {
@@ -301,7 +301,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_PICNICKER,
+ .trainerClass = FACILITY_CLASS_PICNICKER,
.name = _("RAJA"),
.teamFlags = 0x02,
.greeting = {
@@ -316,7 +316,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_COLLECTOR,
+ .trainerClass = FACILITY_CLASS_COLLECTOR,
.name = _("HARALD"),
.teamFlags = 0x09,
.greeting = {
@@ -331,7 +331,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_TUBER_M,
+ .trainerClass = FACILITY_CLASS_TUBER_M,
.name = _("KIM"),
.teamFlags = 0x01,
.greeting = {
@@ -346,7 +346,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_KINDLER,
+ .trainerClass = FACILITY_CLASS_KINDLER,
.name = _("ERWIN"),
.teamFlags = 0x05,
.greeting = {
@@ -361,7 +361,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_PSYCHIC_F,
+ .trainerClass = FACILITY_CLASS_PSYCHIC_F,
.name = _("EIKA"),
.teamFlags = 0x0A,
.greeting = {
@@ -376,7 +376,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_SWIMMER_F,
+ .trainerClass = FACILITY_CLASS_SWIMMER_F,
.name = _("ANNINA"),
.teamFlags = 0x02,
.greeting = {
@@ -391,7 +391,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_CYCLING_TRIATHLETE_F,
+ .trainerClass = FACILITY_CLASS_CYCLING_TRIATHLETE_F,
.name = _("RUTH"),
.teamFlags = 0x06,
.greeting = {
@@ -406,7 +406,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_POKEMANIAC,
+ .trainerClass = FACILITY_CLASS_POKEMANIAC,
.name = _("JENS"),
.teamFlags = 0x40,
.greeting = {
@@ -421,7 +421,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_SAILOR,
+ .trainerClass = FACILITY_CLASS_SAILOR,
.name = _("TITUS"),
.teamFlags = 0x09,
.greeting = {
@@ -436,7 +436,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_POKEMON_BREEDER_F,
+ .trainerClass = FACILITY_CLASS_POKEMON_BREEDER_F,
.name = _("NICOLA"),
.teamFlags = 0x06,
.greeting = {
@@ -451,7 +451,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_HEX_MANIAC,
+ .trainerClass = FACILITY_CLASS_HEX_MANIAC,
.name = _("PAULA"),
.teamFlags = 0x42,
.greeting = {
@@ -466,7 +466,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_RUIN_MANIAC,
+ .trainerClass = FACILITY_CLASS_RUIN_MANIAC,
.name = _("SÖREN"),
.teamFlags = 0x41,
.greeting = {
@@ -481,7 +481,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_SWIMMING_TRIATHLETE_M,
+ .trainerClass = FACILITY_CLASS_SWIMMING_TRIATHLETE_M,
.name = _("RAINER"),
.teamFlags = 0x09,
.greeting = {
@@ -496,7 +496,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_SCHOOL_KID_M,
+ .trainerClass = FACILITY_CLASS_SCHOOL_KID_M,
.name = _("FABIAN"),
.teamFlags = 0x08,
.greeting = {
@@ -511,7 +511,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_POKEMON_RANGER_F,
+ .trainerClass = FACILITY_CLASS_POKEMON_RANGER_F,
.name = _("ELLEN"),
.teamFlags = 0x04,
.greeting = {
@@ -526,7 +526,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_SWIMMER_M,
+ .trainerClass = FACILITY_CLASS_SWIMMER_M,
.name = _("ARNIE"),
.teamFlags = 0x09,
.greeting = {
@@ -541,7 +541,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_RUNNING_TRIATHLETE_M,
+ .trainerClass = FACILITY_CLASS_RUNNING_TRIATHLETE_M,
.name = _("HARDI"),
.teamFlags = 0x09,
.greeting = {
@@ -556,7 +556,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_BEAUTY,
+ .trainerClass = FACILITY_CLASS_BEAUTY,
.name = _("LINA"),
.teamFlags = 0x06,
.greeting = {
@@ -571,7 +571,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_AROMA_LADY,
+ .trainerClass = FACILITY_CLASS_AROMA_LADY,
.name = _("SELINA"),
.teamFlags = 0x06,
.greeting = {
@@ -586,7 +586,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_COLLECTOR,
+ .trainerClass = FACILITY_CLASS_COLLECTOR,
.name = _("DANTE"),
.teamFlags = 0x81,
.greeting = {
@@ -601,7 +601,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_SWIMMING_TRIATHLETE_F,
+ .trainerClass = FACILITY_CLASS_SWIMMING_TRIATHLETE_F,
.name = _("KATJA"),
.teamFlags = 0x04,
.greeting = {
@@ -616,7 +616,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_POKEMON_RANGER_M,
+ .trainerClass = FACILITY_CLASS_POKEMON_RANGER_M,
.name = _("HORST"),
.teamFlags = 0x0C,
.greeting = {
@@ -631,7 +631,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_POKEFAN_M,
+ .trainerClass = FACILITY_CLASS_POKEFAN_M,
.name = _("GERRIT"),
.teamFlags = 0x80,
.greeting = {
@@ -646,7 +646,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_CYCLING_TRIATHLETE_M,
+ .trainerClass = FACILITY_CLASS_CYCLING_TRIATHLETE_M,
.name = _("NIKO"),
.teamFlags = 0x04,
.greeting = {
@@ -661,7 +661,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_POKEMON_BREEDER_M,
+ .trainerClass = FACILITY_CLASS_POKEMON_BREEDER_M,
.name = _("BALDO"),
.teamFlags = 0x41,
.greeting = {
@@ -676,7 +676,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_PARASOL_LADY,
+ .trainerClass = FACILITY_CLASS_PARASOL_LADY,
.name = _("ALMA"),
.teamFlags = 0x08,
.greeting = {
@@ -691,7 +691,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_CAMPER,
+ .trainerClass = FACILITY_CLASS_CAMPER,
.name = _("ADAM"),
.teamFlags = 0x0C,
.greeting = {
@@ -706,7 +706,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_SCHOOL_KID_F,
+ .trainerClass = FACILITY_CLASS_SCHOOL_KID_F,
.name = _("GRETE"),
.teamFlags = 0x42,
.greeting = {
@@ -721,7 +721,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_BEAUTY,
+ .trainerClass = FACILITY_CLASS_BEAUTY,
.name = _("NAOMI"),
.teamFlags = 0x04,
.greeting = {
@@ -736,7 +736,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_NINJA_BOY,
+ .trainerClass = FACILITY_CLASS_NINJA_BOY,
.name = _("KENO"),
.teamFlags = 0x0C,
.greeting = {
@@ -751,7 +751,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_CYCLING_TRIATHLETE_M,
+ .trainerClass = FACILITY_CLASS_CYCLING_TRIATHLETE_M,
.name = _("REMUS"),
.teamFlags = 0x01,
.greeting = {
@@ -766,7 +766,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_POKEMON_RANGER_F,
+ .trainerClass = FACILITY_CLASS_POKEMON_RANGER_F,
.name = _("EDITH"),
.teamFlags = 0x02,
.greeting = {
@@ -781,7 +781,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_RUIN_MANIAC,
+ .trainerClass = FACILITY_CLASS_RUIN_MANIAC,
.name = _("ANTON"),
.teamFlags = 0x41,
.greeting = {
@@ -796,7 +796,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_SWIMMER_M,
+ .trainerClass = FACILITY_CLASS_SWIMMER_M,
.name = _("MALTE"),
.teamFlags = 0x81,
.greeting = {
@@ -811,7 +811,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_HEX_MANIAC,
+ .trainerClass = FACILITY_CLASS_HEX_MANIAC,
.name = _("RAOUL"),
.teamFlags = 0x42,
.greeting = {
@@ -826,7 +826,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_RUNNING_TRIATHLETE_M,
+ .trainerClass = FACILITY_CLASS_RUNNING_TRIATHLETE_M,
.name = _("RICK"),
.teamFlags = 0x01,
.greeting = {
@@ -841,7 +841,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_POKEFAN_M,
+ .trainerClass = FACILITY_CLASS_POKEFAN_M,
.name = _("DENNIS"),
.teamFlags = 0x80,
.greeting = {
@@ -856,7 +856,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_PSYCHIC_F,
+ .trainerClass = FACILITY_CLASS_PSYCHIC_F,
.name = _("GLORIA"),
.teamFlags = 0x82,
.greeting = {
@@ -871,7 +871,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_GUITARIST,
+ .trainerClass = FACILITY_CLASS_GUITARIST,
.name = _("NINO"),
.teamFlags = 0x01,
.greeting = {
@@ -886,7 +886,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_KINDLER,
+ .trainerClass = FACILITY_CLASS_KINDLER,
.name = _("FIETE"),
.teamFlags = 0x41,
.greeting = {
@@ -901,7 +901,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_AROMA_LADY,
+ .trainerClass = FACILITY_CLASS_AROMA_LADY,
.name = _("AMANDA"),
.teamFlags = 0x82,
.greeting = {
@@ -916,7 +916,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_SWIMMING_TRIATHLETE_M,
+ .trainerClass = FACILITY_CLASS_SWIMMING_TRIATHLETE_M,
.name = _("MAREK"),
.teamFlags = 0x10,
.greeting = {
@@ -931,7 +931,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_DRAGON_TAMER,
+ .trainerClass = FACILITY_CLASS_DRAGON_TAMER,
.name = _("NATHAN"),
.teamFlags = 0x10,
.greeting = {
@@ -946,7 +946,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_LASS,
+ .trainerClass = FACILITY_CLASS_LASS,
.name = _("MIRIAM"),
.teamFlags = 0x82,
.greeting = {
@@ -961,7 +961,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_POKEMANIAC,
+ .trainerClass = FACILITY_CLASS_POKEMANIAC,
.name = _("THEO"),
.teamFlags = 0x40,
.greeting = {
@@ -976,7 +976,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_SWIMMING_TRIATHLETE_F,
+ .trainerClass = FACILITY_CLASS_SWIMMING_TRIATHLETE_F,
.name = _("PIA"),
.teamFlags = 0x10,
.greeting = {
@@ -991,7 +991,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_POKEFAN_F,
+ .trainerClass = FACILITY_CLASS_POKEFAN_F,
.name = _("ALISSA"),
.teamFlags = 0x20,
.greeting = {
@@ -1006,7 +1006,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_GENTLEMAN,
+ .trainerClass = FACILITY_CLASS_GENTLEMAN,
.name = _("ARTUR"),
.teamFlags = 0x20,
.greeting = {
@@ -1021,7 +1021,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_SWIMMER_F,
+ .trainerClass = FACILITY_CLASS_SWIMMER_F,
.name = _("MAJA"),
.teamFlags = 0x82,
.greeting = {
@@ -1036,7 +1036,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_COOL_TRAINER_M,
+ .trainerClass = FACILITY_CLASS_COOL_TRAINER_M,
.name = _("MARIUS"),
.teamFlags = 0x10,
.greeting = {
@@ -1051,7 +1051,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_BIRD_KEEPER,
+ .trainerClass = FACILITY_CLASS_BIRD_KEEPER,
.name = _("OLIVER"),
.teamFlags = 0x11,
.greeting = {
@@ -1066,7 +1066,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_CYCLING_TRIATHLETE_F,
+ .trainerClass = FACILITY_CLASS_CYCLING_TRIATHLETE_F,
.name = _("MOLLY"),
.teamFlags = 0x12,
.greeting = {
@@ -1081,7 +1081,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_BUG_MANIAC,
+ .trainerClass = FACILITY_CLASS_BUG_MANIAC,
.name = _("JÖRG"),
.teamFlags = 0x40,
.greeting = {
@@ -1096,7 +1096,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_BATTLE_GIRL,
+ .trainerClass = FACILITY_CLASS_BATTLE_GIRL,
.name = _("ANKE"),
.teamFlags = 0x20,
.greeting = {
@@ -1111,7 +1111,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_FISHERMAN,
+ .trainerClass = FACILITY_CLASS_FISHERMAN,
.name = _("HANS"),
.teamFlags = 0x10,
.greeting = {
@@ -1126,7 +1126,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_SAILOR,
+ .trainerClass = FACILITY_CLASS_SAILOR,
.name = _("PETER"),
.teamFlags = 0x20,
.greeting = {
@@ -1141,7 +1141,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_EXPERT_F,
+ .trainerClass = FACILITY_CLASS_EXPERT_F,
.name = _("MARA"),
.teamFlags = 0x20,
.greeting = {
@@ -1156,7 +1156,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_BUG_MANIAC,
+ .trainerClass = FACILITY_CLASS_BUG_MANIAC,
.name = _("DARIUS"),
.teamFlags = 0x11,
.greeting = {
@@ -1171,7 +1171,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_POKEMON_BREEDER_F,
+ .trainerClass = FACILITY_CLASS_POKEMON_BREEDER_F,
.name = _("REGINA"),
.teamFlags = 0x12,
.greeting = {
@@ -1186,7 +1186,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_PARASOL_LADY,
+ .trainerClass = FACILITY_CLASS_PARASOL_LADY,
.name = _("MAIKE"),
.teamFlags = 0x10,
.greeting = {
@@ -1201,7 +1201,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_RUNNING_TRIATHLETE_F,
+ .trainerClass = FACILITY_CLASS_RUNNING_TRIATHLETE_F,
.name = _("SANDRA"),
.teamFlags = 0x04,
.greeting = {
@@ -1216,7 +1216,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_POKEMON_RANGER_M,
+ .trainerClass = FACILITY_CLASS_POKEMON_RANGER_M,
.name = _("ARNOLD"),
.teamFlags = 0x08,
.greeting = {
@@ -1231,7 +1231,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_BLACK_BELT,
+ .trainerClass = FACILITY_CLASS_BLACK_BELT,
.name = _("XENO"),
.teamFlags = 0x04,
.greeting = {
@@ -1246,7 +1246,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_COOL_TRAINER_F,
+ .trainerClass = FACILITY_CLASS_COOL_TRAINER_F,
.name = _("KARLA"),
.teamFlags = 0x02,
.greeting = {
@@ -1261,7 +1261,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_COLLECTOR,
+ .trainerClass = FACILITY_CLASS_COLLECTOR,
.name = _("VOLKER"),
.teamFlags = 0x80,
.greeting = {
@@ -1276,7 +1276,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_SWIMMING_TRIATHLETE_M,
+ .trainerClass = FACILITY_CLASS_SWIMMING_TRIATHLETE_M,
.name = _("TOBIAS"),
.teamFlags = 0x01,
.greeting = {
@@ -1291,7 +1291,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_GENTLEMAN,
+ .trainerClass = FACILITY_CLASS_GENTLEMAN,
.name = _("NORBERT"),
.teamFlags = 0x20,
.greeting = {
@@ -1306,7 +1306,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_BATTLE_GIRL,
+ .trainerClass = FACILITY_CLASS_BATTLE_GIRL,
.name = _("ZITA"),
.teamFlags = 0x02,
.greeting = {
@@ -1321,7 +1321,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_BEAUTY,
+ .trainerClass = FACILITY_CLASS_BEAUTY,
.name = _("ELKE"),
.teamFlags = 0x20,
.greeting = {
@@ -1336,7 +1336,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_HIKER,
+ .trainerClass = FACILITY_CLASS_HIKER,
.name = _("VITUS"),
.teamFlags = 0x04,
.greeting = {
@@ -1351,7 +1351,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_EXPERT_M,
+ .trainerClass = FACILITY_CLASS_EXPERT_M,
.name = _("MALTE"),
.teamFlags = 0x10,
.greeting = {
@@ -1366,7 +1366,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_POKEMON_BREEDER_M,
+ .trainerClass = FACILITY_CLASS_POKEMON_BREEDER_M,
.name = _("TIM"),
.teamFlags = 0x40,
.greeting = {
@@ -1381,7 +1381,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_GUITARIST,
+ .trainerClass = FACILITY_CLASS_GUITARIST,
.name = _("GAVIN"),
.teamFlags = 0x01,
.greeting = {
@@ -1396,7 +1396,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_PSYCHIC_M,
+ .trainerClass = FACILITY_CLASS_PSYCHIC_M,
.name = _("RALF"),
.teamFlags = 0x08,
.greeting = {
@@ -1411,7 +1411,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_COOL_TRAINER_F,
+ .trainerClass = FACILITY_CLASS_COOL_TRAINER_F,
.name = _("JENNY"),
.teamFlags = 0x02,
.greeting = {
@@ -1426,7 +1426,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_EXPERT_M,
+ .trainerClass = FACILITY_CLASS_EXPERT_M,
.name = _("JOEL"),
.teamFlags = 0x10,
.greeting = {
@@ -1441,7 +1441,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_DRAGON_TAMER,
+ .trainerClass = FACILITY_CLASS_DRAGON_TAMER,
.name = _("KOLJA"),
.teamFlags = 0x0C,
.greeting = {
@@ -1456,7 +1456,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_COOL_TRAINER_M,
+ .trainerClass = FACILITY_CLASS_COOL_TRAINER_M,
.name = _("BILL"),
.teamFlags = 0x01,
.greeting = {
@@ -1471,7 +1471,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_EXPERT_F,
+ .trainerClass = FACILITY_CLASS_EXPERT_F,
.name = _("CALLA"),
.teamFlags = 0x10,
.greeting = {
@@ -1486,7 +1486,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_LADY,
+ .trainerClass = FACILITY_CLASS_LADY,
.name = _("GESA"),
.teamFlags = 0x02,
.greeting = {
diff --git a/src/data/pokemon/trainer_class_lookups.h b/src/data/pokemon/trainer_class_lookups.h
index c86e795c4..9cffca632 100644
--- a/src/data/pokemon/trainer_class_lookups.h
+++ b/src/data/pokemon/trainer_class_lookups.h
@@ -1,7 +1,3 @@
-//
-
-//
-
#ifndef POKERUBY_TRAINER_CLASS_LOOKUPS_H
#define POKERUBY_TRAINER_CLASS_LOOKUPS_H
@@ -86,83 +82,83 @@ const u8 gTrainerClassToPicIndex[] = {
};
const u8 gTrainerClassToNameIndex[] = {
- TRAINER_CLASS_NAME_AQUA_LEADER, // AQUA_LEADER
- TRAINER_CLASS_NAME_TEAM_AQUA, // TEAM_AQUA_M
- TRAINER_CLASS_NAME_TEAM_AQUA, // TEAM_AQUA_F
- TRAINER_CLASS_NAME_AROMA_LADY, // AROMA_LADY
- TRAINER_CLASS_NAME_RUIN_MANIAC, // RUIN_MANIAC
- TRAINER_CLASS_NAME_INTERVIEWER, // INTERVIEWER
- TRAINER_CLASS_NAME_TUBER_F, // TUBER_F
- TRAINER_CLASS_NAME_TUBER_M, // TUBER_M
- TRAINER_CLASS_NAME_COOL_TRAINER, // COOL_TRAINER_M
- TRAINER_CLASS_NAME_COOL_TRAINER, // COOL_TRAINER_F
- TRAINER_CLASS_NAME_HEX_MANIAC, // HEX_MANIAC
- TRAINER_CLASS_NAME_LADY, // LADY
- TRAINER_CLASS_NAME_BEAUTY, // BEAUTY
- TRAINER_CLASS_NAME_RICH_BOY, // RICH_BOY
- TRAINER_CLASS_NAME_POKEMANIAC, // POKEMANIAC
- TRAINER_CLASS_NAME_SWIMMER_M, // SWIMMER_M
- TRAINER_CLASS_NAME_BLACK_BELT, // BLACK_BELT
- TRAINER_CLASS_NAME_GUITARIST, // GUITARIST
- TRAINER_CLASS_NAME_KINDLER, // KINDLER
- TRAINER_CLASS_NAME_CAMPER, // CAMPER
- TRAINER_CLASS_NAME_BUG_MANIAC, // BUG_MANIAC
- TRAINER_CLASS_NAME_PSYCHIC, // PSYCHIC_M
- TRAINER_CLASS_NAME_PSYCHIC, // PSYCHIC_F
- TRAINER_CLASS_NAME_GENTLEMAN, // GENTLEMAN
- TRAINER_CLASS_NAME_ELITE_FOUR, // ELITE_FOUR_M
- TRAINER_CLASS_NAME_ELITE_FOUR, // ELITE_FOUR_F
- TRAINER_CLASS_NAME_LEADER, // LEADER_F
- TRAINER_CLASS_NAME_LEADER, // LEADER_M
- TRAINER_CLASS_NAME_LEADER, // LEADER_MF
- TRAINER_CLASS_NAME_SCHOOL_KID, // SCHOOL_KID_M
- TRAINER_CLASS_NAME_SCHOOL_KID, // SCHOOL_KID_F
- TRAINER_CLASS_NAME_SR_AND_JR, // SR_AND_JR
- TRAINER_CLASS_NAME_POKEFAN, // POKEFAN_M
- TRAINER_CLASS_NAME_POKEFAN, // POKEFAN_F
- TRAINER_CLASS_NAME_EXPERT, // EXPERT_M
- TRAINER_CLASS_NAME_EXPERT, // EXPERT_F
- TRAINER_CLASS_NAME_YOUNGSTER, // YOUNGSTER
- TRAINER_CLASS_NAME_CHAMPION, // CHAMPION
- TRAINER_CLASS_NAME_FISHERMAN, // FISHERMAN
- TRAINER_CLASS_NAME_TRIATHLETE, // CYCLING_TRIATHLETE_M
- TRAINER_CLASS_NAME_TRIATHLETE, // CYCLING_TRIATHLETE_F
- TRAINER_CLASS_NAME_TRIATHLETE, // RUNNING_TRIATHLETE_M
- TRAINER_CLASS_NAME_TRIATHLETE, // RUNNING_TRIATHLETE_F
- TRAINER_CLASS_NAME_TRIATHLETE, // SWIMMING_TRIATHLETE_M
- TRAINER_CLASS_NAME_TRIATHLETE, // SWIMMING_TRIATHLETE_F
- TRAINER_CLASS_NAME_DRAGON_TAMER, // DRAGON_TAMER
- TRAINER_CLASS_NAME_BIRD_KEEPER, // BIRD_KEEPER
- TRAINER_CLASS_NAME_NINJA_BOY, // NINJA_BOY
- TRAINER_CLASS_NAME_BATTLE_GIRL, // BATTLE_GIRL
- TRAINER_CLASS_NAME_PARASOL_LADY, // PARASOL_LADY
- TRAINER_CLASS_NAME_SWIMMER_F, // SWIMMER_F
- TRAINER_CLASS_NAME_PICNICKER, // PICNICKER
- TRAINER_CLASS_NAME_TWINS, // TWINS
- TRAINER_CLASS_NAME_SAILOR, // SAILOR
- TRAINER_CLASS_NAME_BOARDER, // BOARDER_1
- TRAINER_CLASS_NAME_BOARDER, // BOARDER_2
- TRAINER_CLASS_NAME_COLLECTOR, // COLLECTOR
- TRAINER_CLASS_NAME_POKEMON_TRAINER_3, // WALLY
- TRAINER_CLASS_NAME_POKEMON_TRAINER_3, // BRENDAN_1
- TRAINER_CLASS_NAME_POKEMON_TRAINER_3, // BRENDAN_2
- TRAINER_CLASS_NAME_POKEMON_TRAINER_3, // BRENDAN_3
- TRAINER_CLASS_NAME_POKEMON_TRAINER_3, // MAY_1
- TRAINER_CLASS_NAME_POKEMON_TRAINER_3, // MAY_2
- TRAINER_CLASS_NAME_POKEMON_TRAINER_3, // MAY_3
- TRAINER_CLASS_NAME_POKEMON_BREEDER, // POKEMON_BREEDER_M
- TRAINER_CLASS_NAME_POKEMON_BREEDER, // POKEMON_BREEDER_F
- TRAINER_CLASS_NAME_POKEMON_RANGER, // POKEMON_RANGER_M
- TRAINER_CLASS_NAME_POKEMON_RANGER, // POKEMON_RANGER_F
- TRAINER_CLASS_NAME_MAGMA_LEADER, // MAGMA_LEADER
- TRAINER_CLASS_NAME_TEAM_MAGMA, // TEAM_MAGMA_M
- TRAINER_CLASS_NAME_TEAM_MAGMA, // TEAM_MAGMA_F
- TRAINER_CLASS_NAME_LASS, // LASS
- TRAINER_CLASS_NAME_BUG_CATCHER, // BUG_CATCHER
- TRAINER_CLASS_NAME_HIKER, // HIKER
- TRAINER_CLASS_NAME_YOUNG_COUPLE, // YOUNG_COUPLE
- TRAINER_CLASS_NAME_OLD_COUPLE, // OLD_COUPLE
- TRAINER_CLASS_NAME_SIS_AND_BRO // SIS_AND_BRO
+ TRAINER_CLASS_AQUA_LEADER, // AQUA_LEADER
+ TRAINER_CLASS_TEAM_AQUA, // TEAM_AQUA_M
+ TRAINER_CLASS_TEAM_AQUA, // TEAM_AQUA_F
+ TRAINER_CLASS_AROMA_LADY, // AROMA_LADY
+ TRAINER_CLASS_RUIN_MANIAC, // RUIN_MANIAC
+ TRAINER_CLASS_INTERVIEWER, // INTERVIEWER
+ TRAINER_CLASS_TUBER_F, // TUBER_F
+ TRAINER_CLASS_TUBER_M, // TUBER_M
+ TRAINER_CLASS_COOL_TRAINER, // COOL_TRAINER_M
+ TRAINER_CLASS_COOL_TRAINER, // COOL_TRAINER_F
+ TRAINER_CLASS_HEX_MANIAC, // HEX_MANIAC
+ TRAINER_CLASS_LADY, // LADY
+ TRAINER_CLASS_BEAUTY, // BEAUTY
+ TRAINER_CLASS_RICH_BOY, // RICH_BOY
+ TRAINER_CLASS_POKEMANIAC, // POKEMANIAC
+ TRAINER_CLASS_SWIMMER_M, // SWIMMER_M
+ TRAINER_CLASS_BLACK_BELT, // BLACK_BELT
+ TRAINER_CLASS_GUITARIST, // GUITARIST
+ TRAINER_CLASS_KINDLER, // KINDLER
+ TRAINER_CLASS_CAMPER, // CAMPER
+ TRAINER_CLASS_BUG_MANIAC, // BUG_MANIAC
+ TRAINER_CLASS_PSYCHIC, // PSYCHIC_M
+ TRAINER_CLASS_PSYCHIC, // PSYCHIC_F
+ TRAINER_CLASS_GENTLEMAN, // GENTLEMAN
+ TRAINER_CLASS_ELITE_FOUR, // ELITE_FOUR_M
+ TRAINER_CLASS_ELITE_FOUR, // ELITE_FOUR_F
+ TRAINER_CLASS_LEADER, // LEADER_F
+ TRAINER_CLASS_LEADER, // LEADER_M
+ TRAINER_CLASS_LEADER, // LEADER_MF
+ TRAINER_CLASS_SCHOOL_KID, // SCHOOL_KID_M
+ TRAINER_CLASS_SCHOOL_KID, // SCHOOL_KID_F
+ TRAINER_CLASS_SR_AND_JR, // SR_AND_JR
+ TRAINER_CLASS_POKEFAN, // POKEFAN_M
+ TRAINER_CLASS_POKEFAN, // POKEFAN_F
+ TRAINER_CLASS_EXPERT, // EXPERT_M
+ TRAINER_CLASS_EXPERT, // EXPERT_F
+ TRAINER_CLASS_YOUNGSTER, // YOUNGSTER
+ TRAINER_CLASS_CHAMPION, // CHAMPION
+ TRAINER_CLASS_FISHERMAN, // FISHERMAN
+ TRAINER_CLASS_TRIATHLETE, // CYCLING_TRIATHLETE_M
+ TRAINER_CLASS_TRIATHLETE, // CYCLING_TRIATHLETE_F
+ TRAINER_CLASS_TRIATHLETE, // RUNNING_TRIATHLETE_M
+ TRAINER_CLASS_TRIATHLETE, // RUNNING_TRIATHLETE_F
+ TRAINER_CLASS_TRIATHLETE, // SWIMMING_TRIATHLETE_M
+ TRAINER_CLASS_TRIATHLETE, // SWIMMING_TRIATHLETE_F
+ TRAINER_CLASS_DRAGON_TAMER, // DRAGON_TAMER
+ TRAINER_CLASS_BIRD_KEEPER, // BIRD_KEEPER
+ TRAINER_CLASS_NINJA_BOY, // NINJA_BOY
+ TRAINER_CLASS_BATTLE_GIRL, // BATTLE_GIRL
+ TRAINER_CLASS_PARASOL_LADY, // PARASOL_LADY
+ TRAINER_CLASS_SWIMMER_F, // SWIMMER_F
+ TRAINER_CLASS_PICNICKER, // PICNICKER
+ TRAINER_CLASS_TWINS, // TWINS
+ TRAINER_CLASS_SAILOR, // SAILOR
+ TRAINER_CLASS_BOARDER, // BOARDER_1
+ TRAINER_CLASS_BOARDER, // BOARDER_2
+ TRAINER_CLASS_COLLECTOR, // COLLECTOR
+ TRAINER_CLASS_POKEMON_TRAINER_3, // WALLY
+ TRAINER_CLASS_POKEMON_TRAINER_3, // BRENDAN_1
+ TRAINER_CLASS_POKEMON_TRAINER_3, // BRENDAN_2
+ TRAINER_CLASS_POKEMON_TRAINER_3, // BRENDAN_3
+ TRAINER_CLASS_POKEMON_TRAINER_3, // MAY_1
+ TRAINER_CLASS_POKEMON_TRAINER_3, // MAY_2
+ TRAINER_CLASS_POKEMON_TRAINER_3, // MAY_3
+ TRAINER_CLASS_POKEMON_BREEDER, // POKEMON_BREEDER_M
+ TRAINER_CLASS_POKEMON_BREEDER, // POKEMON_BREEDER_F
+ TRAINER_CLASS_POKEMON_RANGER, // POKEMON_RANGER_M
+ TRAINER_CLASS_POKEMON_RANGER, // POKEMON_RANGER_F
+ TRAINER_CLASS_MAGMA_LEADER, // MAGMA_LEADER
+ TRAINER_CLASS_TEAM_MAGMA, // TEAM_MAGMA_M
+ TRAINER_CLASS_TEAM_MAGMA, // TEAM_MAGMA_F
+ TRAINER_CLASS_LASS, // LASS
+ TRAINER_CLASS_BUG_CATCHER, // BUG_CATCHER
+ TRAINER_CLASS_HIKER, // HIKER
+ TRAINER_CLASS_YOUNG_COUPLE, // YOUNG_COUPLE
+ TRAINER_CLASS_OLD_COUPLE, // OLD_COUPLE
+ TRAINER_CLASS_SIS_AND_BRO // SIS_AND_BRO
};
#endif //POKERUBY_TRAINER_CLASS_LOOKUPS_H
diff --git a/src/de_rom_8040FE0.c b/src/de_rom_8040FE0.c
index ad1cbf473..c93ef74cd 100644
--- a/src/de_rom_8040FE0.c
+++ b/src/de_rom_8040FE0.c
@@ -13,7 +13,7 @@ u8 *de_sub_8040FE0(u8 gender)
{
if (gender)
gender++;
- gender = TRAINER_CLASS_NAME_SCHOOL_KID;
+ gender = TRAINER_CLASS_SCHOOL_KID;
return gTrainerClassNames[gender];
}
@@ -21,7 +21,7 @@ u8 *de_sub_8040FF4(u8 gender)
{
if (gender)
gender++;
- gender = TRAINER_CLASS_NAME_POKEMON_TRAINER_3;
+ gender = TRAINER_CLASS_POKEMON_TRAINER_3;
return gTrainerClassNames[gender];
}
@@ -29,7 +29,7 @@ u8 *de_sub_804100C(u8 gender)
{
if (gender)
gender++;
- gender = TRAINER_CLASS_NAME_LEADER;
+ gender = TRAINER_CLASS_LEADER;
return gTrainerClassNames[gender];
}
@@ -50,34 +50,34 @@ u8 *de_sub_8041024(s32 arg0, u32 arg1)
case 0x400:
nameIndex = GetSecretBaseTrainerNameIndex();
gender = eSecretBaseRecord.gender;
- if (nameIndex == TRAINER_CLASS_NAME_SCHOOL_KID)
+ if (nameIndex == TRAINER_CLASS_SCHOOL_KID)
return de_sub_8040FE0(gender);
return gTrainerClassNames[nameIndex];
case 0x100:
trainerClass = de_sub_81364AC();
nameIndex = get_trainer_class_name_index();
- if (trainerClass == TRAINER_CLASS_SCHOOL_KID_F)
+ if (trainerClass == FACILITY_CLASS_SCHOOL_KID_F)
return de_sub_8040FE0(FEMALE);
- if (trainerClass == TRAINER_CLASS_MAY_1 || trainerClass == TRAINER_CLASS_MAY_2 || trainerClass == TRAINER_CLASS_MAY_3)
+ if (trainerClass == FACILITY_CLASS_MAY_1 || trainerClass == FACILITY_CLASS_MAY_2 || trainerClass == FACILITY_CLASS_MAY_3)
return de_sub_8040FF4(FEMALE);
return gTrainerClassNames[nameIndex];
case 0x800:
trainerClass = de_sub_81364F8();
nameIndex = GetEReaderTrainerClassNameIndex();
- if (trainerClass == TRAINER_CLASS_SCHOOL_KID_F)
+ if (trainerClass == FACILITY_CLASS_SCHOOL_KID_F)
return de_sub_8040FE0(FEMALE);
- if (trainerClass == TRAINER_CLASS_MAY_1 || trainerClass == TRAINER_CLASS_MAY_2 || trainerClass == TRAINER_CLASS_MAY_3)
+ if (trainerClass == FACILITY_CLASS_MAY_1 || trainerClass == FACILITY_CLASS_MAY_2 || trainerClass == FACILITY_CLASS_MAY_3)
return de_sub_8040FF4(FEMALE);
return gTrainerClassNames[nameIndex];
default:
trainer = &gTrainers[arg1];
trainerClass = trainer->trainerClass;
local2 = sub_803FC58(arg1);
- if (trainerClass == TRAINER_CLASS_LEADER_F)
+ if (trainerClass == FACILITY_CLASS_LEADER_F)
return de_sub_8040FE0(local2);
- if (trainerClass == TRAINER_CLASS_BIRD_KEEPER && local2 == FEMALE)
+ if (trainerClass == FACILITY_CLASS_BIRD_KEEPER && local2 == FEMALE)
return de_sub_8040FF4(FEMALE);
- if (trainerClass == TRAINER_CLASS_ELITE_FOUR_F)
+ if (trainerClass == FACILITY_CLASS_ELITE_FOUR_F)
{
if (gTrainers[arg1].doubleBattle == TRUE)
return de_sub_804100C(FEMALE);
diff --git a/src/debug/matsuda_debug_menu.c b/src/debug/matsuda_debug_menu.c
index bb80de6fe..49fe6864b 100644
--- a/src/debug/matsuda_debug_menu.c
+++ b/src/debug/matsuda_debug_menu.c
@@ -29,8 +29,8 @@ extern u8 gContestPlayerMonIndex;
extern u16 gSpecialVar_ContestCategory;
extern u16 gSpecialVar_ContestRank;
-extern u16 gUnknown_030042A4;
-extern u16 gUnknown_030042A0;
+extern u16 gBattle_BG0_X;
+extern u16 gBattle_BG0_Y;
extern u16 gBattle_BG1_X;
extern u16 gBattle_BG1_Y;
extern u16 gBattle_BG2_X;
@@ -457,8 +457,8 @@ static void sub_80A9F50(void)
REG_BLDY = 0;
REG_BG0HOFS = 0;
REG_BG0VOFS = 0;
- gUnknown_030042A4 = 0;
- gUnknown_030042A0 = 0;
+ gBattle_BG0_X = 0;
+ gBattle_BG0_Y = 0;
gBattle_BG1_X = 0;
gBattle_BG1_Y = 0;
gBattle_BG2_X = 0;
@@ -505,8 +505,8 @@ static void sub_80AA064(void)
static void sub_80AA090(void)
{
- REG_BG0HOFS = gUnknown_030042A4;
- REG_BG0VOFS = gUnknown_030042A0;
+ REG_BG0HOFS = gBattle_BG0_X;
+ REG_BG0VOFS = gBattle_BG0_Y;
REG_BG1HOFS = gBattle_BG1_X;
REG_BG1VOFS = gBattle_BG1_Y;
REG_BG2HOFS = gBattle_BG2_X;
diff --git a/src/field/battle_tower.c b/src/field/battle_tower.c
index 88115d28a..11c05e478 100644
--- a/src/field/battle_tower.c
+++ b/src/field/battle_tower.c
@@ -103,59 +103,59 @@ static const u16 sBattleTowerHeldItems[] = {
#include "../data/battle_tower/level_100_mons.h"
static const u8 sMaleTrainerClasses[] = {
- TRAINER_CLASS_RUIN_MANIAC,
- TRAINER_CLASS_TUBER_M,
- TRAINER_CLASS_COOL_TRAINER_M,
- TRAINER_CLASS_RICH_BOY,
- TRAINER_CLASS_POKEMANIAC,
- TRAINER_CLASS_SWIMMER_M,
- TRAINER_CLASS_BLACK_BELT,
- TRAINER_CLASS_GUITARIST,
- TRAINER_CLASS_KINDLER,
- TRAINER_CLASS_CAMPER,
- TRAINER_CLASS_BUG_MANIAC,
- TRAINER_CLASS_PSYCHIC_M,
- TRAINER_CLASS_GENTLEMAN,
- TRAINER_CLASS_SCHOOL_KID_M,
- TRAINER_CLASS_POKEFAN_M,
- TRAINER_CLASS_EXPERT_M,
- TRAINER_CLASS_YOUNGSTER,
- TRAINER_CLASS_FISHERMAN,
- TRAINER_CLASS_CYCLING_TRIATHLETE_M,
- TRAINER_CLASS_RUNNING_TRIATHLETE_M,
- TRAINER_CLASS_SWIMMING_TRIATHLETE_M,
- TRAINER_CLASS_DRAGON_TAMER,
- TRAINER_CLASS_BIRD_KEEPER,
- TRAINER_CLASS_NINJA_BOY,
- TRAINER_CLASS_SAILOR,
- TRAINER_CLASS_COLLECTOR,
- TRAINER_CLASS_POKEMON_BREEDER_M,
- TRAINER_CLASS_POKEMON_RANGER_M,
- TRAINER_CLASS_BUG_CATCHER,
- TRAINER_CLASS_HIKER,
+ FACILITY_CLASS_RUIN_MANIAC,
+ FACILITY_CLASS_TUBER_M,
+ FACILITY_CLASS_COOL_TRAINER_M,
+ FACILITY_CLASS_RICH_BOY,
+ FACILITY_CLASS_POKEMANIAC,
+ FACILITY_CLASS_SWIMMER_M,
+ FACILITY_CLASS_BLACK_BELT,
+ FACILITY_CLASS_GUITARIST,
+ FACILITY_CLASS_KINDLER,
+ FACILITY_CLASS_CAMPER,
+ FACILITY_CLASS_BUG_MANIAC,
+ FACILITY_CLASS_PSYCHIC_M,
+ FACILITY_CLASS_GENTLEMAN,
+ FACILITY_CLASS_SCHOOL_KID_M,
+ FACILITY_CLASS_POKEFAN_M,
+ FACILITY_CLASS_EXPERT_M,
+ FACILITY_CLASS_YOUNGSTER,
+ FACILITY_CLASS_FISHERMAN,
+ FACILITY_CLASS_CYCLING_TRIATHLETE_M,
+ FACILITY_CLASS_RUNNING_TRIATHLETE_M,
+ FACILITY_CLASS_SWIMMING_TRIATHLETE_M,
+ FACILITY_CLASS_DRAGON_TAMER,
+ FACILITY_CLASS_BIRD_KEEPER,
+ FACILITY_CLASS_NINJA_BOY,
+ FACILITY_CLASS_SAILOR,
+ FACILITY_CLASS_COLLECTOR,
+ FACILITY_CLASS_POKEMON_BREEDER_M,
+ FACILITY_CLASS_POKEMON_RANGER_M,
+ FACILITY_CLASS_BUG_CATCHER,
+ FACILITY_CLASS_HIKER,
};
static const u8 sFemaleTrainerClasses[] = {
- TRAINER_CLASS_AROMA_LADY,
- TRAINER_CLASS_TUBER_F,
- TRAINER_CLASS_COOL_TRAINER_F,
- TRAINER_CLASS_HEX_MANIAC,
- TRAINER_CLASS_LADY,
- TRAINER_CLASS_BEAUTY,
- TRAINER_CLASS_PSYCHIC_F,
- TRAINER_CLASS_SCHOOL_KID_F,
- TRAINER_CLASS_POKEFAN_F,
- TRAINER_CLASS_EXPERT_F,
- TRAINER_CLASS_CYCLING_TRIATHLETE_F,
- TRAINER_CLASS_RUNNING_TRIATHLETE_F,
- TRAINER_CLASS_SWIMMING_TRIATHLETE_F,
- TRAINER_CLASS_BATTLE_GIRL,
- TRAINER_CLASS_PARASOL_LADY,
- TRAINER_CLASS_SWIMMER_F,
- TRAINER_CLASS_PICNICKER,
- TRAINER_CLASS_POKEMON_BREEDER_F,
- TRAINER_CLASS_POKEMON_RANGER_F,
- TRAINER_CLASS_LASS,
+ FACILITY_CLASS_AROMA_LADY,
+ FACILITY_CLASS_TUBER_F,
+ FACILITY_CLASS_COOL_TRAINER_F,
+ FACILITY_CLASS_HEX_MANIAC,
+ FACILITY_CLASS_LADY,
+ FACILITY_CLASS_BEAUTY,
+ FACILITY_CLASS_PSYCHIC_F,
+ FACILITY_CLASS_SCHOOL_KID_F,
+ FACILITY_CLASS_POKEFAN_F,
+ FACILITY_CLASS_EXPERT_F,
+ FACILITY_CLASS_CYCLING_TRIATHLETE_F,
+ FACILITY_CLASS_RUNNING_TRIATHLETE_F,
+ FACILITY_CLASS_SWIMMING_TRIATHLETE_F,
+ FACILITY_CLASS_BATTLE_GIRL,
+ FACILITY_CLASS_PARASOL_LADY,
+ FACILITY_CLASS_SWIMMER_F,
+ FACILITY_CLASS_PICNICKER,
+ FACILITY_CLASS_POKEMON_BREEDER_F,
+ FACILITY_CLASS_POKEMON_RANGER_F,
+ FACILITY_CLASS_LASS,
};
static const u8 sMaleTrainerGfxIds[] = {
diff --git a/src/field/tv.c b/src/field/tv.c
index d7a75a709..e88e3c72b 100644
--- a/src/field/tv.c
+++ b/src/field/tv.c
@@ -811,7 +811,7 @@ u8 sub_80BDEAC(u8 *a0)
return lang;
}
-void sub_80BDEC8(void)
+void PutPokemonTodayCaughtOnAir(void)
{
u8 i;
u16 total;
diff --git a/src/pokemon/pokemon_2.c b/src/pokemon/pokemon_2.c
index 37bc2e0ad..eb56974cd 100644
--- a/src/pokemon/pokemon_2.c
+++ b/src/pokemon/pokemon_2.c
@@ -1,5 +1,6 @@
#include "global.h"
#include "battle.h"
+#include "battle_util.h"
#include "data2.h"
#include "event_data.h"
#include "main.h"
@@ -84,7 +85,7 @@ u8 sub_803C434(u8 a1)
status ^= 1;
if (!(gBattleTypeFlags & BATTLE_TYPE_DOUBLE))
- return GetBankByPlayerAI(status);
+ return GetBankByIdentity(status);
if (CountAliveMons(0) > 1)
{
u8 val;
@@ -93,14 +94,14 @@ u8 sub_803C434(u8 a1)
val = status ^ 2;
else
val = status;
- return GetBankByPlayerAI(val);
+ return GetBankByIdentity(val);
}
else
{
if ((gAbsentBankFlags & gBitTable[status]))
- return GetBankByPlayerAI(status ^ 2);
+ return GetBankByIdentity(status ^ 2);
else
- return GetBankByPlayerAI(status);
+ return GetBankByIdentity(status);
}
}
diff --git a/src/pokemon/pokemon_data.c b/src/pokemon/pokemon_data.c
index 82e452158..031f2ea24 100644
--- a/src/pokemon/pokemon_data.c
+++ b/src/pokemon/pokemon_data.c
@@ -84,9 +84,9 @@ const struct SpriteTemplate gSpriteTemplate_8208288[] = {
const u8 gSecretBaseTrainerClasses[][5] = {
// male
- {TRAINER_CLASS_YOUNGSTER, TRAINER_CLASS_BUG_CATCHER, TRAINER_CLASS_RICH_BOY, TRAINER_CLASS_CAMPER, TRAINER_CLASS_COOL_TRAINER_M},
+ {FACILITY_CLASS_YOUNGSTER, FACILITY_CLASS_BUG_CATCHER, FACILITY_CLASS_RICH_BOY, FACILITY_CLASS_CAMPER, FACILITY_CLASS_COOL_TRAINER_M},
// female
- {TRAINER_CLASS_LASS, TRAINER_CLASS_SCHOOL_KID_F, TRAINER_CLASS_LADY, TRAINER_CLASS_PICNICKER, TRAINER_CLASS_COOL_TRAINER_F}
+ {FACILITY_CLASS_LASS, FACILITY_CLASS_SCHOOL_KID_F, FACILITY_CLASS_LADY, FACILITY_CLASS_PICNICKER, FACILITY_CLASS_COOL_TRAINER_F}
};
const u8 gUnknown_082082F2[] = {
diff --git a/src/rom3.c b/src/rom3.c
index cdc66989c..11239a681 100644
--- a/src/rom3.c
+++ b/src/rom3.c
@@ -5,6 +5,7 @@
#include "battle_anim.h"
#include "battle_anim_81258BC.h"
#include "battle_anim_8137220.h"
+#include "battle_util.h"
#include "cable_club.h"
#include "constants/items.h"
#include "link.h"
@@ -582,7 +583,7 @@ void Emitcmd1(u8 a, u8 b, u8 c)
PrepareBufferDataTransfer(a, gBattleBuffersTransferData, 4);
}
-void EmitSetAttributes(u8 a, u8 b, u8 c, u8 d, void *e)
+void EmitSetMonData(u8 a, u8 b, u8 c, u8 d, void *e)
{
int i;
diff --git a/src/rom_8077ABC.c b/src/rom_8077ABC.c
index 001cd85f6..2691da859 100644
--- a/src/rom_8077ABC.c
+++ b/src/rom_8077ABC.c
@@ -823,7 +823,7 @@ u8 GetBankIdentity(u8 slot)
return gBanksBySide[slot];
}
-u8 GetBankByPlayerAI(u8 slot)
+u8 GetBankByIdentity(u8 slot)
{
u8 i;
@@ -1329,35 +1329,27 @@ u32 sub_80792C0(u8 a1, u8 a2, u8 a3, u8 a4)
var |= 1 << 18;
return var;
}
- }
- else
- {
- if (a1)
- {
- if (IsAnimBankSpriteVisible(GetBankByPlayerAI(0)))
- var |= 1 << (GetBankByPlayerAI(0) + 16);
+ } else {
+ if (a1) {
+ if (IsAnimBankSpriteVisible(GetBankByIdentity(0))) {
+ var |= 1 << (GetBankByIdentity(0) + 16);
+ }
}
- if (a2)
- {
- if (IsAnimBankSpriteVisible(GetBankByPlayerAI(2)))
- {
- shift = GetBankByPlayerAI(2) + 16;
+ if (a2) {
+ if (IsAnimBankSpriteVisible(GetBankByIdentity(2))) {
+ shift = GetBankByIdentity(2) + 16;
var |= 1 << shift;
}
}
- if (a3)
- {
- if (IsAnimBankSpriteVisible(GetBankByPlayerAI(1)))
- {
- shift = GetBankByPlayerAI(1) + 16;
+ if (a3) {
+ if (IsAnimBankSpriteVisible(GetBankByIdentity(1))) {
+ shift = GetBankByIdentity(1) + 16;
var |= 1 << shift;
}
}
- if (a4)
- {
- if (IsAnimBankSpriteVisible(GetBankByPlayerAI(3)))
- {
- shift = GetBankByPlayerAI(3) + 16;
+ if (a4) {
+ if (IsAnimBankSpriteVisible(GetBankByIdentity(3))) {
+ shift = GetBankByIdentity(3) + 16;
var |= 1 << shift;
}
}
@@ -1372,7 +1364,7 @@ u8 sub_80793A8(u8 a1)
u8 unref_sub_80793B0(u8 a1)
{
- return GetBankByPlayerAI(a1);
+ return GetBankByIdentity(a1);
}
void sub_80793C4(struct Sprite *sprite)
diff --git a/src/scene/evolution_scene.c b/src/scene/evolution_scene.c
index f307f5979..4ee601360 100644
--- a/src/scene/evolution_scene.c
+++ b/src/scene/evolution_scene.c
@@ -65,8 +65,8 @@ void nullsub_6(void);
bool32 IsHMMove2(u16 move);
extern struct Window gUnknown_03004210;
-extern u16 gUnknown_030042A4;
-extern u16 gUnknown_030042A0;
+extern u16 gBattle_BG0_X;
+extern u16 gBattle_BG0_Y;
extern u16 gBattle_BG1_X;
extern u16 gBattle_BG1_Y;
extern u16 gBattle_BG2_X;
@@ -200,8 +200,8 @@ void EvolutionScene(struct Pokemon* mon, u16 speciesToEvolve, bool8 canStopEvo,
SetUpWindowConfig(&gWindowConfig_81E6C58);
ResetPaletteFade();
- gUnknown_030042A4 = 0;
- gUnknown_030042A0 = 0;
+ gBattle_BG0_X = 0;
+ gBattle_BG0_Y = 0;
gBattle_BG1_X = 0;
gBattle_BG1_Y = 0;
gBattle_BG2_X = 0;
@@ -308,8 +308,8 @@ static void CB2_EvolutionSceneLoadGraphics(void)
REG_WINOUT = 0;
SetUpWindowConfig(&gWindowConfig_81E6C58);
ResetPaletteFade();
- gUnknown_030042A4 = 0;
- gUnknown_030042A0 = 0;
+ gBattle_BG0_X = 0;
+ gBattle_BG0_Y = 0;
gBattle_BG1_X = 0;
gBattle_BG1_Y = 0;
gBattle_BG2_X = 0;
@@ -362,8 +362,8 @@ static void CB2_TradeEvolutionSceneLoadGraphics(void)
ResetSpriteData();
FreeAllSpritePalettes();
gReservedSpritePaletteCount = 4;
- gUnknown_030042A4 = 0;
- gUnknown_030042A0 = 0;
+ gBattle_BG0_X = 0;
+ gBattle_BG0_Y = 0;
gBattle_BG1_X = 0;
gBattle_BG1_Y = 0;
gBattle_BG2_X = 0;
@@ -3923,8 +3923,8 @@ static void EvoDummyFunc(void)
static void VBlankCB_EvolutionScene(void)
{
REG_BG0CNT = BGCNT_SCREENBASE(24) | BGCNT_16COLOR | BGCNT_TXT256x256 | BGCNT_AFF512x512 | BGCNT_PRIORITY(3); // 0x9803
- REG_BG0HOFS = gUnknown_030042A4;
- REG_BG0VOFS = gUnknown_030042A0;
+ REG_BG0HOFS = gBattle_BG0_X;
+ REG_BG0VOFS = gBattle_BG0_Y;
REG_BG1HOFS = gBattle_BG1_X;
REG_BG1VOFS = gBattle_BG1_Y;
REG_BG2HOFS = gBattle_BG2_X;
@@ -3939,8 +3939,8 @@ static void VBlankCB_EvolutionScene(void)
static void VBlankCB_TradeEvolutionScene(void)
{
- REG_BG0HOFS = gUnknown_030042A4;
- REG_BG0VOFS = gUnknown_030042A0;
+ REG_BG0HOFS = gBattle_BG0_X;
+ REG_BG0VOFS = gBattle_BG0_Y;
REG_BG1HOFS = gBattle_BG1_X;
REG_BG1VOFS = gBattle_BG1_Y;
REG_BG2HOFS = gBattle_BG2_X;
diff --git a/src/unknown_task.c b/src/unknown_task.c
index 62245502a..2c71bfb08 100644
--- a/src/unknown_task.c
+++ b/src/unknown_task.c
@@ -12,8 +12,8 @@ extern u16 gBattle_BG1_Y;
extern u16 gUnknown_030041B8;
extern u16 gBattle_BG2_Y;
extern u16 gBattle_BG2_X;
-extern u16 gUnknown_030042A0;
-extern u16 gUnknown_030042A4;
+extern u16 gBattle_BG0_Y;
+extern u16 gBattle_BG0_X;
extern u16 gBattle_BG1_X;
extern u8 gUnknown_0202FFA4;
@@ -120,10 +120,10 @@ static void task00_for_dp12(u8 taskId)
switch (gTasks[taskId].data[6])
{
case 0x0:
- value = gUnknown_030042A4;
+ value = gBattle_BG0_X;
break;
case 0x2:
- value = gUnknown_030042A0;
+ value = gBattle_BG0_Y;
break;
case 0x4:
value = gBattle_BG1_X;