summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2018-01-07 23:53:43 -0500
committerPikalaxALT <pikalaxalt@gmail.com>2018-01-07 23:53:43 -0500
commit79c64d2b7137f12cccf290ea7f495727ad6b4cca (patch)
treeb2022ddfbc867bab3802465afbbdc7c3843460a9 /src
parentfd42bcc78ce229d13afc26af4c6d2dd0187b871d (diff)
parent6b38db228befa044a2cfe31ed78555e3f0bd3935 (diff)
Merge branch 'master' into pokemon_storage_system
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.c19
-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/contest_link_80C857C.c39
-rw-r--r--src/battle/pokeball.c10
-rw-r--r--src/battle/reshow_battle_screen.c14
-rw-r--r--src/contest.c233
-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.c96
-rw-r--r--src/debug/matsuda_debug_menu.c12
-rw-r--r--src/easy_chat_1.c26
-rw-r--r--src/engine/cable_car_util.c47
-rw-r--r--src/field/battle_tower.c283
-rw-r--r--src/field/field_weather.c1
-rw-r--r--src/field/party_menu.c128
-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/pokenav_after.c16
-rw-r--r--src/pokenav_before.c6403
-rw-r--r--src/rom3.c3
-rw-r--r--src/rom_8077ABC.c1608
-rw-r--r--src/scene/cable_car.c979
-rw-r--r--src/scene/evolution_scene.c24
-rw-r--r--src/unknown_task.c8
39 files changed, 9561 insertions, 5314 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 7ca9ac3c4..1c79d7ebf 100644
--- a/src/battle/battle_7.c
+++ b/src/battle/battle_7.c
@@ -3,6 +3,7 @@
#include "battle_anim.h"
#include "battle_interface.h"
#include "blend_palette.h"
+#include "contest.h"
#include "data2.h"
#include "decompress.h"
#include "main.h"
@@ -629,9 +630,9 @@ void sub_8031FC4(u8 a, u8 b, bool8 c)
if (IsContest())
{
r10 = 0;
- species = ewram19348.unk2;
- personalityValue = ewram19348.unk8;
- otId = ewram19348.unkC;
+ species = shared19348.unk2;
+ personalityValue = shared19348.unk8;
+ otId = shared19348.unkC;
HandleLoadSpecialPokePic(
&gMonBackPicTable[species],
gMonBackPicCoords[species].coords,
@@ -639,7 +640,7 @@ void sub_8031FC4(u8 a, u8 b, bool8 c)
eVoidSharedArr2,
gUnknown_081FAF4C[0],
species,
- ewram19348.unk10);
+ shared19348.unk10);
}
else
{
@@ -794,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())
@@ -814,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]);
@@ -856,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/contest_link_80C857C.c b/src/battle/contest_link_80C857C.c
index 0ae98af09..616a72d27 100644
--- a/src/battle/contest_link_80C857C.c
+++ b/src/battle/contest_link_80C857C.c
@@ -3,52 +3,33 @@
#if GERMAN
-void de_sub_80C9274(bool32 arg0) {
- if (deUnkValue2 != 1)
- {
- return;
- }
-
- if (arg0)
- {
- deUnkValue2 = 3;
- }
- else
+void de_sub_80C9274(bool32 arg0)
+{
+ if (deUnkValue2 == 1)
{
- deUnkValue2 = 2;
+ if (arg0)
+ deUnkValue2 = 3;
+ else
+ deUnkValue2 = 2;
}
}
-void de_sub_80C9294(bool32 arg0) {
+void de_sub_80C9294(bool32 arg0)
+{
if (deUnkValue2 == 1)
{
if (arg0)
- {
deUnkValue2 = 3;
- }
else
- {
deUnkValue2 = 2;
- }
-
- return;
}
-
-
- if (deUnkValue2 == 2)
+ else if (deUnkValue2 == 2)
{
SendBlock(0, sBlockRequestLookupTable[deUnkValue1].address, sBlockRequestLookupTable[deUnkValue1].size);
-
if (arg0)
- {
deUnkValue2 = 0;
- }
else
- {
deUnkValue2 = 1;
- }
-
- return;
}
}
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 f5aab709d..c32719648 100644
--- a/src/contest.c
+++ b/src/contest.c
@@ -39,171 +39,6 @@ extern void sub_80C8C80(u8);
extern void sub_81288F4();
extern u8 sub_8128944(void);
-struct Shared18000
-{
- /*0x18000*/ u8 unk18000;
- /*0x18001*/ u8 filler18001[3];
- /*0x18004*/ u16 unk18004[16][16];
- /*0x18204*/ u16 unk18204[0x200];
- /*0x18604*/ u16 unk18604[0x200];
- /*0x18A04*/ u8 unk18A04[0x800];
-};
-
-struct Contest
-{
- /*0x19204*/ u8 playerMoveChoice;
- /*0x19205*/ u8 turnNumber;
- /*0x19206*/ u8 unk19206[4]; // seems to only be used by an unref function
- /*0x1920A*/ u16 unk1920A_0:1; // Task active flags?
- u16 unk1920A_1:1;
- u16 unk1920A_2:1;
- u16 unk1920A_3:1;
- u16 unk1920A_4:1;
- u16 unk1920A_5:1;
- u16 unk1920A_6:1;
- u16 unk1920A_7:1;
- /*0x1920B*/ u16 unk1920B_0:1;
- u16 unk1920B_1:1;
- u16 unk1920B_2:1;
- /*0x1920C*/ u8 mainTaskId;
- /*0x1920D*/ u8 unk1920D[4];
- /*0x19211*/ u8 unk19211;
- /*0x19212*/ u8 unk19212;
- /*0x19213*/ u8 filler19213;
- /*0x19214*/ u8 unk19214;
- /*0x19215*/ u8 unk19215;
- /*0x19216*/ u8 unk19216; // sprite ID
- /*0x19217*/ s8 applauseLevel;
- /*0x19218*/ u8 unk19218[4];
- /*0x1921C*/ u32 unk1921C; // saved RNG value?
- u16 unk19220[5][4]; // move history?
- u8 unk19248[5][4]; // excitement history
- u8 applauseMeterSpriteId; // sprite ID
- /*0x1925D*/ u8 unk1925D;
- /*0x1925E*/ u8 unk1925E;
-};
-
-struct ContestantStatus
-{
- s16 appeal1; // move appeal?
- s16 appeal2; // final appeal after end of turn, maybe?
- s16 unk4;
- u16 currMove;
- u16 prevMove;
- u8 moveCategory;
- u8 unkB_0:2;
- u8 unkB_2:2;
- u8 moveRepeatCount:3;
- u8 unkB_7:1; // used a one-time move?
- u8 unkC_0:1;
- u8 unkC_1:2;
- s8 unkD;
- u8 unkE;
- u8 unkF;
- u8 unk10_0:1;
- u8 unk10_1:1;
- u8 unk10_2:1;
- u8 unk10_3:1;
- u8 unk10_4:2;
- u8 unk10_6:2;
- u8 unk11_0:2;
- u8 unk11_2:1;
- u8 unk11_3:1;
- u8 unk11_4:1;
- u8 unk11_5:1;
- u8 unk12;
- u8 unk13; // status action?
- u8 unk14;
- u8 disappointedRepeat:1;
- u8 unk15_1:1;
- u8 unk15_2:1;
- u8 unk15_3:1;
- u8 unk15_4:1;
- u8 unk15_5:1;
- u8 unk15_6:1;
- u8 unk16;
- u8 unk17;
- u8 unk18;
- u8 unk19; // turn position
- u8 attentionLevel; // How much the Pokemon "stood out"
- u8 unk1B;
-};
-
-struct UnknownContestStruct3
-{
- u8 unk0;
- u8 unk1;
- //u8 unk2_0:1;
- //u8 unk2_1:1;
- u8 unk2; // maybe a bitfield
- u8 filler3;
-};
-
-// possibly the same as UnknownContestStruct3?
-struct UnknownContestStruct4
-{
- u8 unk0; // sprite ID
- u8 unk1; // sprite ID
- u8 unk2_0:1;
- u8 unk2_1:1;
- u8 unk2_2:1;
- u8 filler3;
-};
-
-struct UnknownContestStruct5
-{
- s8 bits_0; // current move excitement?
- u8 bits_8:1;
- u8 bits_9:3;
- u8 bits_C:4;
- s8 unk2;
- u8 filler3;
-};
-
-struct UnknownContestStruct7
-{
- u8 unk0[4];
- u16 unk4;
- u16 unk6;
- u8 filler8[0xD-8];
- u8 unkD[4];
- u8 unk11;
- u8 filler12[2];
-};
-
-struct UnknownContestStruct8
-{
- u16 unk0;
- u16 unk2;
- u8 unk4_0:1;
- u8 unk5;
- u8 filler6[2];
- u32 unk8;
- u32 unkC;
- u32 unk10;
-};
-
-struct UnknownContestStruct6
-{
- s32 unk0;
- s32 unk4;
- s32 unk8;
- s32 unkC;
-};
-
-#define shared15800 (gSharedMem + 0x15800)
-#define shared15DE0 (*(struct ContestWinner *)(gSharedMem + 0x15DE0))
-#define shared16800 (gSharedMem + 0x16800)
-#define shared18000 (*(struct Shared18000 *)(gSharedMem + 0x18000))
-#define shared18004 ((u16 *)(gSharedMem + 0x18004))
-#define sContest (*(struct Contest *)(gSharedMem + 0x19204))
-#define sContestantStatus ((struct ContestantStatus *)(gSharedMem + 0x19260))
-#define shared192D0_ (*(struct UnknownContestStruct7 *)(gSharedMem + 0x192D0))
-#define shared192E4 (gSharedMem + 0x192E4)
-#define shared19328 (*(struct UnknownContestStruct5 *)(gSharedMem + 0x19328))
-#define shared19338 ((struct UnknownContestStruct4 *)(gSharedMem + 0x19338))
-#define shared19348_ (*(struct UnknownContestStruct8 *)(gSharedMem + 0x19348))
-
extern struct MusicPlayerInfo gMPlay_SE1;
extern u16 gSpecialVar_ContestCategory;
extern u16 gSpecialVar_ContestRank;
@@ -225,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
@@ -489,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;
@@ -555,7 +390,7 @@ void ClearContestVars(void)
sContestantStatus[i].unk14 = 0xFF;
}
- memset(&shared192D0_, 0, sizeof(shared192D0_));
+ memset(&shared192D0, 0, sizeof(shared192D0));
memset(shared192E4, 0, 0x44 * sizeof(*shared192E4));
memset(&shared19328, 0, sizeof(shared19328));
memset(shared19338, 0, 4 * sizeof(*shared19338));
@@ -785,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;
@@ -805,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);
@@ -849,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,
@@ -937,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;
@@ -1011,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);
@@ -1063,7 +898,7 @@ void sub_80AC2CC(u8 taskId)
{
case 0:
sub_80B0D7C();
- for (i = 0; sContest.unk19214 != shared192D0_.unk0[i]; i++)
+ for (i = 0; sContest.unk19214 != shared192D0.unk0[i]; i++)
;
sContest.unk19215 = i;
r7 = sContest.unk19215;
@@ -1106,7 +941,7 @@ void sub_80AC2CC(u8 taskId)
case 3:
for (i = 0; i < 4; i++)
gBattleMonForms[i] = 0;
- memset(&shared19348_, 0, sizeof(shared19348_));
+ memset(&shared19348, 0, sizeof(shared19348));
sub_80B28F0(sContest.unk19215);
spriteId = sub_80AE9FC(
gContestMons[sContest.unk19215].species,
@@ -1969,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;
@@ -3115,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);
@@ -4528,13 +4363,13 @@ void sub_80B114C(u8 contestant)
}
sContestantStatus[contestant].appeal1 = gContestEffects[effect].appeal;
sContestantStatus[contestant].appeal2 = gContestEffects[effect].appeal;
- shared192D0_.unk4 = gContestEffects[effect].jam;
- shared192D0_.unk6 = gContestEffects[effect].jam;
- shared192D0_.unk11 = contestant;
+ shared192D0.unk4 = gContestEffects[effect].jam;
+ shared192D0.unk6 = gContestEffects[effect].jam;
+ shared192D0.unk11 = contestant;
for (i = 0; i < 4; i++)
{
sContestantStatus[i].unkE = 0;
- shared192D0_.unkD[i] = 0;
+ shared192D0.unkD[i] = 0;
}
if (sContestantStatus[contestant].unk15_4 && AreMovesContestCombo(sContestantStatus[contestant].prevMove, sContestantStatus[contestant].currMove) == 0)
sContestantStatus[contestant].unk15_4 = 0;
@@ -4637,13 +4472,13 @@ void sub_80B146C(u8 a, u8 b)
{
StringCopy(gStringVar1, gContestMons[a].nickname);
StringCopy(gStringVar2, gMoveNames[sContestantStatus[a].currMove]);
- if (gContestMoves[sContestantStatus[shared192D0_.unk11].currMove].contestCategory == CONTEST_CATEGORY_COOL)
+ if (gContestMoves[sContestantStatus[shared192D0.unk11].currMove].contestCategory == CONTEST_CATEGORY_COOL)
StringCopy(gStringVar3, gText_Contest_Shyness);
- else if (gContestMoves[sContestantStatus[shared192D0_.unk11].currMove].contestCategory == CONTEST_CATEGORY_BEAUTY)
+ else if (gContestMoves[sContestantStatus[shared192D0.unk11].currMove].contestCategory == CONTEST_CATEGORY_BEAUTY)
StringCopy(gStringVar3, gText_Contest_Anxiety);
- else if (gContestMoves[sContestantStatus[shared192D0_.unk11].currMove].contestCategory == CONTEST_CATEGORY_CUTE)
+ else if (gContestMoves[sContestantStatus[shared192D0.unk11].currMove].contestCategory == CONTEST_CATEGORY_CUTE)
StringCopy(gStringVar3, gText_Contest_Laziness);
- else if (gContestMoves[sContestantStatus[shared192D0_.unk11].currMove].contestCategory == CONTEST_CATEGORY_SMART)
+ else if (gContestMoves[sContestantStatus[shared192D0.unk11].currMove].contestCategory == CONTEST_CATEGORY_SMART)
StringCopy(gStringVar3, gText_Contest_Hesitancy);
else
StringCopy(gStringVar3, gText_Contest_Fear);
@@ -4708,7 +4543,7 @@ void sub_80B159C(void)
for (i = 0; i < 4; i++)
{
- shared192D0_.unk0[i] = sp0[i];
+ shared192D0.unk0[i] = sp0[i];
sContestantStatus[i].unk19 = 0xFF;
sContestantStatus[i].unk10_6 = 0;
gUnknown_02038696[i] = sp0[i];
@@ -5083,7 +4918,7 @@ void sub_80B20C4(void)
for (i = 0; i < 4; i++)
{
- if (shared192D0_.unkD[i] != 0 && !Contest_IsMonsTurnDisabled(i))
+ if (shared192D0.unkD[i] != 0 && !Contest_IsMonsTurnDisabled(i))
{
u8 r4 = gUnknown_02038696[i] * 5 + 2;
u16 r0 = sub_80AEFE8(i, 3);
@@ -5339,7 +5174,7 @@ void sub_80B2790(u8 a)
u16 species = SanitizeSpecies(gContestMons[a].species);
u8 r5_2;
- memset(&shared19348_, 0, sizeof(shared19348_));
+ memset(&shared19348, 0, sizeof(shared19348));
ClearBattleAnimationVars();
for (i = 0; i < 4; i++)
gBattleMonForms[i] = 0;
@@ -5354,9 +5189,9 @@ void sub_80B2790(u8 a)
case MOVE_TRANSFORM:
case MOVE_ROLE_PLAY:
r5_2 = sContestantStatus[a].unk1B;
- shared19348_.unk2 = SanitizeSpecies(gContestMons[r5_2].species);
- shared19348_.unk10 = gContestMons[r5_2].personality;
- shared19348_.unk4_0 = 1;
+ shared19348.unk2 = SanitizeSpecies(gContestMons[r5_2].species);
+ shared19348.unk10 = gContestMons[r5_2].personality;
+ shared19348.unk4_0 = 1;
break;
case MOVE_RETURN:
gAnimFriendship = 0xFF;
@@ -5384,17 +5219,17 @@ void sub_80B2790(u8 a)
void sub_80B28CC(int unused)
{
- memset(&shared19348_, 0, sizeof(shared19348_));
+ memset(&shared19348, 0, sizeof(shared19348));
if (sContest.unk1925E != 0)
sContest.unk1925E--;
}
void sub_80B28F0(u8 a)
{
- shared19348_.unk5 = a;
- shared19348_.unk0 = SanitizeSpecies(gContestMons[a].species);
- shared19348_.unk8 = gContestMons[a].personality;
- shared19348_.unkC = gContestMons[a].otId;
+ shared19348.unk5 = a;
+ shared19348.unk0 = SanitizeSpecies(gContestMons[a].species);
+ shared19348.unk8 = gContestMons[a].personality;
+ shared19348.unkC = gContestMons[a].otId;
}
void sub_80B292C(void)
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 53ad4a806..c93ef74cd 100644
--- a/src/de_rom_8040FE0.c
+++ b/src/de_rom_8040FE0.c
@@ -2,55 +2,34 @@
#include "battle.h"
#include "battle_tower.h"
#include "ewram.h"
+#include "trainer.h"
#if GERMAN
-enum {
- TRAINER_CLASS_NAME_LEADER = 25,
- TRAINER_CLASS_NAME_SCHOOL_KID = 26,
- TRAINER_CLASS_NAME_EXPERT = 30,
- TRAINER_CLASS_NAME_POKEMON_TRAINER_3 = 46,
-};
-
-enum {
- TRAINER_CLASS_LEADER_F = 26,
- TRAINER_CLASS_ELITE_FOUR_F = 25,
- TRAINER_CLASS_SCHOOL_KID_F = 30,
- TRAINER_CLASS_BIRD_KEEPER = 46,
- TRAINER_CLASS_MAY_1 = 61,
- TRAINER_CLASS_MAY_2 = 62,
- TRAINER_CLASS_MAY_3 = 63,
-};
-
extern u8 gTrainerClassNames[][13];
extern struct Trainer gTrainers[];
-u8 *de_sub_8040FE0(u8 gender) {
+u8 *de_sub_8040FE0(u8 gender)
+{
if (gender)
- {
gender++;
-
- }
-
- gender = TRAINER_CLASS_NAME_SCHOOL_KID;
+ gender = TRAINER_CLASS_SCHOOL_KID;
return gTrainerClassNames[gender];
}
-u8 *de_sub_8040FF4(u8 gender) {
- if (gender) {
+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];
}
-u8 *de_sub_804100C(u8 gender) {
- if (gender) {
+u8 *de_sub_804100C(u8 gender)
+{
+ if (gender)
gender++;
- }
-
- gender = TRAINER_CLASS_NAME_LEADER;
+ gender = TRAINER_CLASS_LEADER;
return gTrainerClassNames[gender];
}
@@ -60,7 +39,8 @@ u8 de_sub_81364AC(void);
u8 get_trainer_class_name_index(void);
u8 de_sub_81364F8(void);
-u8 *de_sub_8041024(s32 arg0, u32 arg1) {
+u8 *de_sub_8041024(s32 arg0, u32 arg1)
+{
u8 nameIndex, trainerClass, gender;
struct Trainer *trainer;
u8 local2;
@@ -70,69 +50,40 @@ 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);
- }
else
- {
return de_sub_804100C(MALE);
- }
}
-
-
return gTrainerClassNames[trainerClass];
}
}
@@ -264,7 +215,8 @@ _08041108: .4byte gTrainerClassNames\n\
}
#endif
-u32 de_sub_804110C(u32 arg0, u32 arg1) {
+u32 de_sub_804110C(u32 arg0, u32 arg1)
+{
return arg1;
}
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/easy_chat_1.c b/src/easy_chat_1.c
index a1a67152e..e5b6cf7c3 100644
--- a/src/easy_chat_1.c
+++ b/src/easy_chat_1.c
@@ -91,19 +91,19 @@ const struct EasyChatPrompt gUnknown_083DB6F4[] =
const u8 gUnknown_083DB7C0[][2] =
{
- { 0, 6},
- { 1, 7},
- { 1, 8},
- { 1, 9},
- { 2, 10},
- {16, 13},
- { 4, 12},
- { 3, 13},
- { 3, 13},
- { 5, 14},
- { 3, 13},
- { 3, 13},
- { 3, 13},
+ { 0, 6},
+ { 1, 7},
+ { 1, 8},
+ { 1, 9},
+ { 2, 10},
+ {16, 13},
+ { 4, 12},
+ { 3, 13},
+ { 3, 13},
+ { 5, 14},
+ { 3, 13},
+ { 3, 13},
+ { 3, 13},
{15, 13},
};
diff --git a/src/engine/cable_car_util.c b/src/engine/cable_car_util.c
new file mode 100644
index 000000000..02bfbc195
--- /dev/null
+++ b/src/engine/cable_car_util.c
@@ -0,0 +1,47 @@
+#include "global.h"
+#include "cable_car_util.h"
+
+// static types
+
+// static declarations
+
+// rodata
+
+// text
+
+void CableCarUtil_FillWrapped(void *dest, u16 value, u8 left, u8 top, u8 width, u8 height)
+{
+ u8 i;
+ u8 j;
+ u8 x;
+ u8 y;
+
+ for (i = 0, y = top; i < height; i++)
+ {
+ for (x = left, j = 0; j < width; j++)
+ {
+ *(u16 *)&((u8 *)dest)[y * 64 + x * 2] = value;
+ x = (x + 1) % 32;
+ }
+ y = (y + 1) % 32;
+ }
+}
+
+void CableCarUtil_CopyWrapped(void *dest, const u16 *src, u8 left, u8 top, u8 width, u8 height)
+{
+ u8 i;
+ u8 j;
+ u8 x;
+ u8 y;
+ const u16 *_src;
+
+ for (i = 0, _src = src, y = top; i < height; i++)
+ {
+ for (x = left, j = 0; j < width; j++)
+ {
+ *(u16 *)&((u8 *)dest)[y * 64 + x * 2] = *_src++;
+ x = (x + 1) % 32;
+ }
+ y = (y + 1) % 32;
+ }
+}
diff --git a/src/field/battle_tower.c b/src/field/battle_tower.c
index caebc6a7b..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[] = {
@@ -255,7 +255,7 @@ static void ResetBattleTowerStreak(u8 levelType);
static void ValidateBattleTowerRecordChecksums(void);
static void PrintEReaderTrainerFarewellMessage(void);
extern void SetBattleTowerTrainerGfxId(u8);
-extern void sub_8135A3C(void);
+static void SaveCurrentWinStreak(void);
static void sub_8135CFC(void);
static void CheckMonBattleTowerBanlist(u16, u16, u16, u8, u8, u16 *, u16 *, u8 *);
static void ClearEReaderTrainer(struct BattleTowerEReaderTrainer *);
@@ -1538,7 +1538,7 @@ void CheckPartyBattleTowerBanlist(void)
StringAppend(gStringVar1, BattleText_Format8);
return;
}
-
+
if (1 & counter)
StringAppend(gStringVar1, BattleText_Format6);
else
@@ -1699,7 +1699,7 @@ void SetBattleTowerProperty(void)
}
gSaveBlock2.battleTower.curChallengeBattleNum[battleTowerLevelType]++;
- sub_8135A3C();
+ SaveCurrentWinStreak();
gSpecialVar_Result = gSaveBlock2.battleTower.curChallengeBattleNum[battleTowerLevelType];
gStringVar1[0] = gSaveBlock2.battleTower.curChallengeBattleNum[battleTowerLevelType] + 0xA1;
@@ -1711,7 +1711,7 @@ void SetBattleTowerProperty(void)
gSaveBlock2.battleTower.curStreakChallengesNum[battleTowerLevelType]++;
}
- sub_8135A3C();
+ SaveCurrentWinStreak();
gSpecialVar_Result = gSaveBlock2.battleTower.curStreakChallengesNum[battleTowerLevelType];
break;
case 8:
@@ -1801,118 +1801,35 @@ void SetBattleTowerParty(void)
ReducePlayerPartyToThree();
}
-#ifdef NONMATCHING
-void sub_8135A3C(void)
+static void SaveCurrentWinStreak(void)
{
- u8 battleTowerLevelType = gSaveBlock2.battleTower.battleTowerLevelType;
- u16 winStreak = GetCurrentBattleTowerWinStreak(battleTowerLevelType);
+ u8 levelType = gSaveBlock2.battleTower.battleTowerLevelType;
+ u16 streak = GetCurrentBattleTowerWinStreak(levelType);
- if (gSaveBlock2.battleTower.recordWinStreaks[battleTowerLevelType] < winStreak)
- {
- gSaveBlock2.battleTower.recordWinStreaks[battleTowerLevelType] = winStreak;
- }
+ if (gSaveBlock2.battleTower.recordWinStreaks[levelType] < streak)
+ gSaveBlock2.battleTower.recordWinStreaks[levelType] = streak;
if (gSaveBlock2.battleTower.recordWinStreaks[0] > gSaveBlock2.battleTower.recordWinStreaks[1])
{
- u16 streak = gSaveBlock2.battleTower.recordWinStreaks[0];
+ streak = gSaveBlock2.battleTower.recordWinStreaks[0];
SetGameStat(GAME_STAT_BATTLE_TOWER_BEST_STREAK, streak);
+
if (streak > 9999)
- {
gSaveBlock2.battleTower.bestBattleTowerWinStreak = 9999;
- }
else
- {
gSaveBlock2.battleTower.bestBattleTowerWinStreak = streak;
- }
}
else
{
- u16 streak = gSaveBlock2.battleTower.recordWinStreaks[1];
+ streak = gSaveBlock2.battleTower.recordWinStreaks[1];
SetGameStat(GAME_STAT_BATTLE_TOWER_BEST_STREAK, streak);
+
if (streak > 9999)
- {
gSaveBlock2.battleTower.bestBattleTowerWinStreak = 9999;
- }
else
- {
gSaveBlock2.battleTower.bestBattleTowerWinStreak = streak;
- }
}
}
-#else
-__attribute__((naked))
-void sub_8135A3C(void)
-{
- asm(".syntax unified\n\
- push {r4-r6,lr}\n\
- ldr r6, _08135A84 @ =gSaveBlock2\n\
- ldr r1, _08135A88 @ =0x00000554\n\
- adds r0, r6, r1\n\
- ldrb r4, [r0]\n\
- lsls r4, 31\n\
- lsrs r4, 31\n\
- adds r0, r4, 0\n\
- bl GetCurrentBattleTowerWinStreak\n\
- lsls r0, 16\n\
- lsrs r5, r0, 16\n\
- lsls r4, 1\n\
- movs r3, 0xAC\n\
- lsls r3, 3\n\
- adds r2, r6, r3\n\
- adds r4, r2\n\
- ldrh r0, [r4]\n\
- cmp r0, r5\n\
- bcs _08135A66\n\
- strh r5, [r4]\n\
-_08135A66:\n\
- ldr r0, _08135A8C @ =0x00000562\n\
- adds r1, r6, r0\n\
- ldrh r0, [r2]\n\
- ldrh r3, [r1]\n\
- cmp r0, r3\n\
- bls _08135A94\n\
- adds r5, r0, 0\n\
- movs r0, 0x20\n\
- adds r1, r5, 0\n\
- bl SetGameStat\n\
- ldr r1, _08135A90 @ =0x0000270f\n\
- cmp r5, r1\n\
- bhi _08135AA4\n\
- b _08135AB4\n\
- .align 2, 0\n\
-_08135A84: .4byte gSaveBlock2\n\
-_08135A88: .4byte 0x00000554\n\
-_08135A8C: .4byte 0x00000562\n\
-_08135A90: .4byte 0x0000270f\n\
-_08135A94:\n\
- ldrh r5, [r1]\n\
- movs r0, 0x20\n\
- adds r1, r5, 0\n\
- bl SetGameStat\n\
- ldr r1, _08135AAC @ =0x0000270f\n\
- cmp r5, r1\n\
- bls _08135AB4\n\
-_08135AA4:\n\
- ldr r2, _08135AB0 @ =0x00000572\n\
- adds r0, r6, r2\n\
- strh r1, [r0]\n\
- b _08135ABA\n\
- .align 2, 0\n\
-_08135AAC: .4byte 0x0000270f\n\
-_08135AB0: .4byte 0x00000572\n\
-_08135AB4:\n\
- ldr r3, _08135AC0 @ =0x00000572\n\
- adds r0, r6, r3\n\
- strh r5, [r0]\n\
-_08135ABA:\n\
- pop {r4-r6}\n\
- pop {r0}\n\
- bx r0\n\
- .align 2, 0\n\
-_08135AC0: .4byte 0x00000572\n\
- .syntax divided\n");
-}
-#endif // NONMATCHING
void sub_8135AC4(void)
{
@@ -1951,7 +1868,7 @@ void sub_8135AC4(void)
}
SetBattleTowerRecordChecksum(&gSaveBlock2.battleTower.playerRecord);
- sub_8135A3C();
+ SaveCurrentWinStreak();
}
void SaveBattleTowerProgress(void)
@@ -2068,79 +1985,15 @@ u16 GetCurrentBattleTowerWinStreak(u8 battleTowerLevelType)
return winStreak;
}
-#ifdef NONMATCHING
void DetermineBattleTowerPrize(void)
{
- u16 prizeItem;
- struct SaveBlock2 *saveBlock = &gSaveBlock2;
- u8 battleTowerLevelType = saveBlock->battleTower.battleTowerLevelType;
+ u8 levelType = gSaveBlock2.battleTower.battleTowerLevelType;
- if (saveBlock->battleTower.curStreakChallengesNum[battleTowerLevelType] - 1 > 5)
- {
- prizeItem = sLongStreakPrizes[Random() % ARRAY_COUNT(sLongStreakPrizes)];
- }
+ if (gSaveBlock2.battleTower.curStreakChallengesNum[levelType] - 1 > 5)
+ gSaveBlock2.battleTower.prizeItem = sLongStreakPrizes[Random() % ARRAY_COUNT(sLongStreakPrizes)];
else
- {
- prizeItem = sShortStreakPrizes[Random() % ARRAY_COUNT(sShortStreakPrizes)];
- }
-
- saveBlock->battleTower.prizeItem = prizeItem;
-}
-#else
-__attribute__((naked))
-void DetermineBattleTowerPrize(void)
-{
- asm(".syntax unified\n\
- push {r4,r5,lr}\n\
- ldr r5, _08135DB0 @ =gSaveBlock2\n\
- ldr r1, _08135DB4 @ =0x00000554\n\
- adds r0, r5, r1\n\
- ldrb r0, [r0]\n\
- lsls r0, 31\n\
- lsrs r0, 31\n\
- lsls r0, 1\n\
- ldr r2, _08135DB8 @ =0x0000055c\n\
- adds r1, r5, r2\n\
- adds r0, r1\n\
- ldrh r0, [r0]\n\
- subs r0, 0x1\n\
- cmp r0, 0x5\n\
- ble _08135DC0\n\
- bl Random\n\
- ldr r4, _08135DBC @ =sLongStreakPrizes\n\
- lsls r0, 16\n\
- lsrs r0, 16\n\
- movs r1, 0x9\n\
- b _08135DCC\n\
- .align 2, 0\n\
-_08135DB0: .4byte gSaveBlock2\n\
-_08135DB4: .4byte 0x00000554\n\
-_08135DB8: .4byte 0x0000055c\n\
-_08135DBC: .4byte sLongStreakPrizes\n\
-_08135DC0:\n\
- bl Random\n\
- ldr r4, _08135DE8 @ =sShortStreakPrizes\n\
- lsls r0, 16\n\
- lsrs r0, 16\n\
- movs r1, 0x6\n\
-_08135DCC:\n\
- bl __umodsi3\n\
- lsls r0, 16\n\
- lsrs r0, 15\n\
- adds r0, r4\n\
- ldrh r1, [r0]\n\
- movs r2, 0xAD\n\
- lsls r2, 3\n\
- adds r0, r5, r2\n\
- strh r1, [r0]\n\
- pop {r4,r5}\n\
- pop {r0}\n\
- bx r0\n\
- .align 2, 0\n\
-_08135DE8: .4byte sShortStreakPrizes\n\
- .syntax divided\n");
+ gSaveBlock2.battleTower.prizeItem = sShortStreakPrizes[Random() % ARRAY_COUNT(sShortStreakPrizes)];
}
-#endif // NONMATCHING
void GiveBattleTowerPrize(void)
{
diff --git a/src/field/field_weather.c b/src/field/field_weather.c
index 4a819bddf..c954242a1 100644
--- a/src/field/field_weather.c
+++ b/src/field/field_weather.c
@@ -46,6 +46,7 @@ const u8 DroughtPaletteData_2[] = INCBIN_U8("graphics/weather/drought2.bin.lz");
const u8 DroughtPaletteData_3[] = INCBIN_U8("graphics/weather/drought3.bin.lz");
const u8 DroughtPaletteData_4[] = INCBIN_U8("graphics/weather/drought4.bin.lz");
const u8 DroughtPaletteData_5[] = INCBIN_U8("graphics/weather/drought5.bin.lz");
+
extern u8 (*gUnknown_0202FC48)[32];
extern u8 gUnknown_0202F9E8[32];
diff --git a/src/field/party_menu.c b/src/field/party_menu.c
index 9c1150515..790aede60 100644
--- a/src/field/party_menu.c
+++ b/src/field/party_menu.c
@@ -490,9 +490,6 @@ extern const u8 gStatusPal_Icons[];
#define WINDOW_RIGHT (29)
#endif
-
-#ifdef NONMATCHING
-// Main handler for the party menu.
void CB2_PartyMenuMain(void)
{
const struct PartyMonTextSettingsStruct *textSettings;
@@ -506,62 +503,17 @@ void CB2_PartyMenuMain(void)
{
// Draw mon name, level, and hp sprites
DrawPartyMenuMonText(
- textSettings[i].xOffset * 8,
- textSettings[i].yOffset * 8,
- textSettings[i].oamSettings,
+ textSettings->xOffset * 8,
+ textSettings->yOffset * 8,
+ textSettings->oamSettings,
0,
(i << 5) | 0x200);
+ textSettings++;
}
RunTasks();
UpdatePaletteFade();
}
-#else
-__attribute__((naked))
-void CB2_PartyMenuMain(void)
-{
- asm(".syntax unified\n\
- push {r4-r6,lr}\n\
- sub sp, 0x4\n\
- bl AnimateSprites\n\
- bl BuildOamBuffer\n\
- ldr r0, _0806AF2C @ =gPartyMenuType\n\
- ldrb r1, [r0]\n\
- lsls r0, r1, 1\n\
- adds r0, r1\n\
- lsls r0, 4\n\
- ldr r1, _0806AF30 @ =PartyMonTextSettings\n\
- adds r5, r0, r1\n\
- movs r6, 0\n\
-_0806AEF8:\n\
- ldrb r0, [r5]\n\
- lsls r0, 3\n\
- ldrb r1, [r5, 0x1]\n\
- lsls r1, 3\n\
- ldr r2, [r5, 0x4]\n\
- lsls r3, r6, 5\n\
- movs r4, 0x80\n\
- lsls r4, 2\n\
- orrs r3, r4\n\
- str r3, [sp]\n\
- movs r3, 0\n\
- bl DrawPartyMenuMonText\n\
- adds r5, 0x8\n\
- adds r6, 0x1\n\
- cmp r6, 0x5\n\
- ble _0806AEF8\n\
- bl RunTasks\n\
- bl UpdatePaletteFade\n\
- add sp, 0x4\n\
- pop {r4-r6}\n\
- pop {r0}\n\
- bx r0\n\
- .align 2, 0\n\
-_0806AF2C: .4byte gPartyMenuType\n\
-_0806AF30: .4byte PartyMonTextSettings\n\
- .syntax divided\n");
-}
-#endif // NONMATCHING
void VBlankCB_PartyMenu(void)
{
@@ -1226,8 +1178,6 @@ void sub_806BBEC(u8 a)
}
}
-#ifdef NONMATCHING
-// The original THUMB is preserving r8 for seemingly no reason. Unsure how to match.
void sub_806BC3C(u8 monIndex, u8 b)
{
u16 *vramPtr = gUnknown_08376918[IsDoubleBattle()][monIndex];
@@ -1240,74 +1190,10 @@ void sub_806BC3C(u8 monIndex, u8 b)
vramPtr[i] = gUnknown_08E9A300[offset] + 0x10C;
vramPtr[i + 0x20] = gUnknown_08E9A300[offset + 0x20] + 0x10C;
}
+
+ // Some dead code was likely optimized out, but the compiler still think r8 was used.
+ asm("":::"r8");
}
-#else
-__attribute__((naked))
-void sub_806BC3C(u8 monIndex, u8 b)
-{
- asm(".syntax unified\n\
- push {r4-r7,lr}\n\
- mov r7, r8\n\
- push {r7}\n\
- adds r4, r0, 0\n\
- adds r5, r1, 0\n\
- lsls r4, 24\n\
- lsrs r4, 24\n\
- lsls r5, 24\n\
- lsrs r5, 24\n\
- ldr r6, _0806BCB0 @ =gUnknown_08376918\n\
- bl IsDoubleBattle\n\
- lsls r4, 2\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- lsls r1, r0, 1\n\
- adds r1, r0\n\
- lsls r1, 3\n\
- adds r4, r1\n\
- adds r4, r6\n\
- ldr r7, [r4]\n\
- movs r6, 0\n\
- adds r0, r5, 0\n\
- movs r1, 0x7\n\
- bl __udivsi3\n\
- lsls r0, 24\n\
- lsrs r4, r0, 19\n\
- ldr r5, _0806BCB4 @ =gUnknown_08E9A300\n\
- movs r0, 0x86\n\
- lsls r0, 1\n\
- adds r3, r0, 0\n\
-_0806BC7C:\n\
- adds r1, r6, r4\n\
- lsls r2, r6, 1\n\
- adds r2, r7\n\
- lsls r0, r1, 1\n\
- adds r0, r5\n\
- ldrh r0, [r0]\n\
- adds r0, r3, r0\n\
- strh r0, [r2]\n\
- adds r2, 0x40\n\
- adds r1, 0x20\n\
- lsls r1, 1\n\
- adds r1, r5\n\
- ldrh r1, [r1]\n\
- adds r0, r3, r1\n\
- strh r0, [r2]\n\
- adds r0, r6, 0x1\n\
- lsls r0, 24\n\
- lsrs r6, r0, 24\n\
- cmp r6, 0x6\n\
- bls _0806BC7C\n\
- pop {r3}\n\
- mov r8, r3\n\
- pop {r4-r7}\n\
- pop {r0}\n\
- bx r0\n\
- .align 2, 0\n\
-_0806BCB0: .4byte gUnknown_08376918\n\
-_0806BCB4: .4byte gUnknown_08E9A300\n\
- .syntax divided\n");
-}
-#endif // NONMATCHING
void unref_sub_806BCB8(u8 a)
{
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/pokenav_after.c b/src/pokenav_after.c
index 84ed7b14b..330305ea3 100644
--- a/src/pokenav_after.c
+++ b/src/pokenav_after.c
@@ -6,16 +6,10 @@
#include "de_rom_8040FE0.h"
#include "string_util.h"
-void sub_80F700C(u8 *arg0, u16 arg1) {
- struct Trainer *trainer;
- u8 *ptr;
-
-#if ENGLISH
- trainer = (struct Trainer *) &gTrainers[gUnknown_083DFEC4->unkCEE8[arg1].unk0];
-#elif GERMAN
- const u16 trainerIndex = gUnknown_083DFEC4->unkCEE8[arg1].unk0;
- trainer = (struct Trainer *) &gTrainers[trainerIndex];
-#endif
+void sub_80F700C(u8 *arg0, u16 arg1)
+{
+ const struct Trainer *trainer = &gTrainers[gUnknown_083DFEC4->unkCEE8[arg1].unk0];
+ u8 *ptr = arg0;
ptr = arg0;
if (arg1 < gUnknown_083DFEC4->unkD158)
@@ -23,7 +17,7 @@ void sub_80F700C(u8 *arg0, u16 arg1) {
#if ENGLISH
ptr = StringCopy(ptr, gTrainerClassNames[trainer->trainerClass]);
#elif GERMAN
- ptr = StringCopy(ptr, de_sub_8041024(0, trainerIndex));
+ ptr = StringCopy(ptr, de_sub_8041024(0, gUnknown_083DFEC4->unkCEE8[arg1].unk0));
#endif
ptr[0] = 0xFC;
diff --git a/src/pokenav_before.c b/src/pokenav_before.c
index 53f17b211..8a67390ad 100644
--- a/src/pokenav_before.c
+++ b/src/pokenav_before.c
@@ -22,69 +22,70 @@
extern u8 ewram[];
-struct UnknownPokenav0 {
- /* 0x0000 */ u8 var0[0x0300];
- /* 0x0300 */ void (*var300)(void);
- /* 0x0304 */ u16 var304;
- /* 0x0306 */ u16 var306;
- /* 0x0308 */ u32 var308;
- /* 0x030C */ u8 fill030C[0x6a9f];
- /* 0x6dab */ u8 var6dab;
- /* 0x6dac */ u8 var6dac;
- /* 0x6dad */ u8 var6dad;
- /* 0x6dae */ u8 var6dae;
- /* 0x6daf */ u8 fill6daf[0x3];
- /* 0x6db2 */ u8 var6db2[5];
- /* 0x6db7 */ u8 fill6db7[0x25];
- /* 0x6ddc */ s8 var6ddc;
- /* 0x6ddd */ u8 fill6ddd[0x13];
- /* 0x6df0 */ s8 var6df0;
- /* 0x6df1 */ u8 fill6df1[0xB];
- /* 0x6dfc */ u8 var6dfc;
- /* 0x6dfd */ u8 fill6dfd[0x17];
- /* 0x6e14 */ u8 var6e14;
- /* 0x6e15 */ u8 var6e15;
- /* 0x6e16 */ u8 var6e16;
- /* 0x6e17 */ u8 var6e17;
- /* 0x6e18 */ u8 fill6e18[0x78];
- /* 0x6e90 */ u8 var6e90;
- /* 0x6e91 */ u8 fill6e91[0x4];
- /* 0x6e95 */ u8 var6e95;
- /* 0x6e96 */ u8 var6e96[0x814];
- /* 0x76AA */ u8 var76aa;
- /* 0x76AB */ u8 fill76AB[0x10BD];
- /* 0x8768 */ u32 var8768;
- /* 0x876C */ u8 fill876C[0x2];
- /* 0x876E */ u8 var876E;
- /* 0x876F */ u8 fill876F[0x5];
- /* 0x8774 */ s16 var8774;
- /* 0x8776 */ u8 fill8776[0x55];
- /* 0x87CB */ u8 var87CB;
- /* 0x87CC */ u8 fill87CC[0xC];
- /* 0x87D8 */ u8 var87D8;
- /* 0x87D9 */ u8 fill87D9[0x1];
- /* 0x87DA */ s16 var87DA;
- /* 0x87DC */ s16 var87DC;
- /* 0x87DE */ u8 fill87DE[0x4a];
- /* 0x8828 */ u8 playerPartyCount;
- /* 0x8829 */ u8 fill8829[0x07bf];
- /* 0x8FE8 */ s8 var8fe8;
- /* 0x8FE9 */ u8 fill8FE9[0x16];
- /* 0x8FFF */ u8 var8fff[5];
- /* 0x9004 */ u8 fill9004[0x340];
- /* 0x9344 */ u8 var9344;
- /* 0x9345 */ u8 fill9345[0x3b8b];
- /* 0xced0 */ u32 varCED0;
- /* 0xced4 */ u8 fillCED4[0x284];
- /* 0xD158 */ u16 varD158;
- /* 0xD15A */ u8 fillD15A[0x8];
- /* 0xD162 */ u8 varD162;
+struct UnknownPokenav0
+{
+ /* 0x0000 */ u8 var0[0x0300];
+ /* 0x0300 */ void (*var300)(void);
+ /* 0x0304 */ u16 var304;
+ /* 0x0306 */ u16 var306;
+ /* 0x0308 */ u32 var308;
+ /* 0x030C */ u8 fill030C[0x6a9f];
+ /* 0x6dab */ u8 var6dab;
+ /* 0x6dac */ u8 var6dac;
+ /* 0x6dad */ u8 var6dad;
+ /* 0x6dae */ u8 var6dae;
+ /* 0x6daf */ u8 fill6daf[0x3];
+ /* 0x6db2 */ u8 var6db2[5];
+ /* 0x6db7 */ u8 fill6db7[0x25];
+ /* 0x6ddc */ s8 var6ddc;
+ /* 0x6ddd */ u8 fill6ddd[0x13];
+ /* 0x6df0 */ s8 var6df0;
+ /* 0x6df1 */ u8 fill6df1[0xB];
+ /* 0x6dfc */ u8 var6dfc;
+ /* 0x6dfd */ u8 fill6dfd[0x17];
+ /* 0x6e14 */ u8 var6e14;
+ /* 0x6e15 */ u8 var6e15;
+ /* 0x6e16 */ u8 var6e16;
+ /* 0x6e17 */ u8 var6e17;
+ /* 0x6e18 */ u8 fill6e18[0x78];
+ /* 0x6e90 */ u8 var6e90;
+ /* 0x6e91 */ u8 fill6e91[0x4];
+ /* 0x6e95 */ u8 var6e95;
+ /* 0x6e96 */ u8 var6e96[0x814];
+ /* 0x76AA */ u8 var76aa;
+ /* 0x76AB */ u8 fill76AB[0x10BD];
+ /* 0x8768 */ u32 var8768;
+ /* 0x876C */ u8 fill876C[0x2];
+ /* 0x876E */ u8 var876E;
+ /* 0x876F */ u8 fill876F[0x5];
+ /* 0x8774 */ s16 var8774;
+ /* 0x8776 */ u8 fill8776[0x55];
+ /* 0x87CB */ u8 var87CB;
+ /* 0x87CC */ u8 fill87CC[0xC];
+ /* 0x87D8 */ u8 var87D8;
+ /* 0x87D9 */ u8 fill87D9[0x1];
+ /* 0x87DA */ s16 var87DA;
+ /* 0x87DC */ s16 var87DC;
+ /* 0x87DE */ u8 fill87DE[0x4a];
+ /* 0x8828 */ u8 playerPartyCount;
+ /* 0x8829 */ u8 fill8829[0x07bf];
+ /* 0x8FE8 */ s8 var8fe8;
+ /* 0x8FE9 */ u8 fill8FE9[0x16];
+ /* 0x8FFF */ u8 var8fff[5];
+ /* 0x9004 */ u8 fill9004[0x340];
+ /* 0x9344 */ u8 var9344;
+ /* 0x9345 */ u8 fill9345[0x3b8b];
+ /* 0xced0 */ u32 varCED0;
+ /* 0xced4 */ u8 fillCED4[0x284];
+ /* 0xD158 */ u16 varD158;
+ /* 0xD15A */ u8 fillD15A[0x8];
+ /* 0xD162 */ u8 varD162;
};
struct UnknownPokenav0_1 {
- u8 fill6dad[0x6dad];
- s8 var6dad;
- s8 var6dae;
+ u8 fill6dad[0x6dad];
+ s8 var6dad;
+ s8 var6dae;
};
IWRAM_DATA void (*gUnknown_03000744)(void);
@@ -294,1140 +295,1283 @@ extern void sub_80F5BF0();
extern void sub_80F6F64();
extern void sub_80F19FC();
-void sub_80EBA5C() {
- switch (gMain.state) {
- default:
- gMain.state = 0;
- case 0:
- ewram0_10.var6dac = is_c1_link_related_active();
- if (!ewram0_10.var6dac) {
- ewram0_10.var6dab = 0;
- gMain.state++;
- SetMainCallback2(&sub_80EBBE8);
- break;
- }
- break;
- case 1:
- SetVBlankCallback(NULL);
- break;
- case 2:
- ResetPaletteFade();
- break;
- case 3:
- ResetSpriteData();
- break;
- case 4:
- FreeAllSpritePalettes();
- break;
- case 5:
- ResetTasks();
- break;
- case 6:
- remove_some_task();
- break;
- case 7:
- sub_80F1A90();
- gMain.state++;
- case 8:
- if (sub_80F1AC4()) return;
- break;
- case 9:
- sub_80F2688();
- gMain.state++;
-
- case 10:
- if (sub_80F26BC()) return;
- break;
- case 11:
- sub_80F36F0();
- gMain.state++;
- case 12:
- if (sub_80F3724()) return;
- break;
- case 13:
- sub_80EBC10();
- sub_80EBDBC(&sub_80EBDD8);
- break;
- case 14:
- ewram0_10.var6dab = 1;
- PlaySE(SE_PN_ON);
- SetMainCallback2(&sub_80EBD90);
- SetVBlankCallback(&sub_80EBD18);
- sub_80F1A74();
- break;
- }
-
- gMain.state++;
+extern u16 gKeyRepeatStartDelay;
+
+
+void sub_80EBA5C()
+{
+ switch (gMain.state)
+ {
+ default:
+ gMain.state = 0;
+ case 0:
+ ewram0_10.var6dac = is_c1_link_related_active();
+ if (!ewram0_10.var6dac)
+ {
+ ewram0_10.var6dab = 0;
+ gMain.state++;
+ SetMainCallback2(&sub_80EBBE8);
+ }
+ break;
+ case 1:
+ SetVBlankCallback(NULL);
+ break;
+ case 2:
+ ResetPaletteFade();
+ break;
+ case 3:
+ ResetSpriteData();
+ break;
+ case 4:
+ FreeAllSpritePalettes();
+ break;
+ case 5:
+ ResetTasks();
+ break;
+ case 6:
+ remove_some_task();
+ break;
+ case 7:
+ sub_80F1A90();
+ gMain.state++;
+ case 8:
+ if (sub_80F1AC4())
+ return;
+ break;
+ case 9:
+ sub_80F2688();
+ gMain.state++;
+ // fall through
+ case 10:
+ if (sub_80F26BC())
+ return;
+ break;
+ case 11:
+ sub_80F36F0();
+ gMain.state++;
+ case 12:
+ if (sub_80F3724())
+ return;
+ break;
+ case 13:
+ sub_80EBC10();
+ sub_80EBDBC(&sub_80EBDD8);
+ break;
+ case 14:
+ ewram0_10.var6dab = 1;
+ PlaySE(SE_PN_ON);
+ SetMainCallback2(&sub_80EBD90);
+ SetVBlankCallback(&sub_80EBD18);
+ sub_80F1A74();
+ break;
+ }
+
+ gMain.state++;
}
-void sub_80EBBE8() {
- u8 var1;
- if (!ewram0_10.var6dab) {
- var1 = ewram0_10.var6dab;
- do {
- sub_80EBA5C();
- var1 = ewram0_10.var6dab;
- } while (!var1);
- }
+void sub_80EBBE8()
+{
+ while (!ewram0_10.var6dab)
+ sub_80EBA5C();
}
-void sub_80EBC10() {
- u16 i;
- u16 *var1;
-
- gKeyRepeatStartDelay = 20;
- ewram0_10.playerPartyCount = CalculatePlayerPartyCount();
- ewram0_10.var6ddc = 0;
- ewram0_10.var9344 = 0;
- ewram0_10.var8768 = 0;
- ewram0_10.varCED0 = 0;
-
- for (i = 0; i < 5; ++i) {
- ewram0_10.var8fff[i] = 0;
- var1 = (u16 *)ewram0_10.var0;
- var1[i*2 + 0x4820] = 0x9B;
- var1[i*2 + 0x4821] = 0x5B;
- }
-
- ewram0_10.var6e95 = 0;
- sub_80EBCA8();
+void sub_80EBC10()
+{
+ u16 i;
+ u16 *var1;
+
+ gKeyRepeatStartDelay = 0x14;
+ ewram0_10.playerPartyCount = CalculatePlayerPartyCount();
+ ewram0_10.var6ddc = 0;
+ ewram0_10.var9344 = 0;
+ ewram0_10.var8768 = 0;
+ ewram0_10.varCED0 = 0;
+
+ for (i = 0; i < 5; ++i)
+ {
+ ewram0_10.var8fff[i] = 0;
+ var1 = (u16 *)ewram0_10.var0;
+ var1[i*2 + 0x4820] = 0x9B;
+ var1[i*2 + 0x4821] = 0x5B;
+ }
+
+ ewram0_10.var6e95 = 0;
+ sub_80EBCA8();
}
-void sub_80EBCA8() {
- ewram0_10.var6db2[0] = 1;
- ewram0_10.var6db2[1] = 2;
- ewram0_10.var6db2[2] = 3;
+void sub_80EBCA8()
+{
+ ewram0_10.var6db2[0] = 1;
+ ewram0_10.var6db2[1] = 2;
+ ewram0_10.var6db2[2] = 3;
- if (FlagGet(FLAG_SYS_RIBBON_GET)) {
- ewram0_10.var6db2[3] = 4;
- }
- else {
- ewram0_10.var6db2[3] = 0;
- }
+ if (FlagGet(FLAG_SYS_RIBBON_GET))
+ ewram0_10.var6db2[3] = 4;
+ else
+ ewram0_10.var6db2[3] = 0;
- ewram0_10.var6db2[4] = 5;
+ ewram0_10.var6db2[4] = 5;
}
-void sub_80EBD18() {
- LoadOam();
- ProcessSpriteCopyRequests();
- TransferPlttBuffer();
- sub_80F1FF0();
+void sub_80EBD18()
+{
+ LoadOam();
+ ProcessSpriteCopyRequests();
+ TransferPlttBuffer();
+ sub_80F1FF0();
}
-void sub_80EBD30() {
- LoadOam();
- ProcessSpriteCopyRequests();
- TransferPlttBuffer();
- UpdateRegionMapVideoRegs();
- sub_80EFE7C();
+void sub_80EBD30()
+{
+ LoadOam();
+ ProcessSpriteCopyRequests();
+ TransferPlttBuffer();
+ UpdateRegionMapVideoRegs();
+ sub_80EFE7C();
}
-void sub_80EBD4C() {
- LoadOam();
- ProcessSpriteCopyRequests();
- TransferPlttBuffer();
- sub_80F5BF0();
- sub_8089668();
+void sub_80EBD4C()
+{
+ LoadOam();
+ ProcessSpriteCopyRequests();
+ TransferPlttBuffer();
+ sub_80F5BF0();
+ sub_8089668();
}
-void sub_80EBD68() {
- LoadOam();
- ProcessSpriteCopyRequests();
- TransferPlttBuffer();
- sub_80F6F64();
+void sub_80EBD68()
+{
+ LoadOam();
+ ProcessSpriteCopyRequests();
+ TransferPlttBuffer();
+ sub_80F6F64();
}
-void sub_80EBD80() {
- LoadOam();
- ProcessSpriteCopyRequests();
+void sub_80EBD80()
+{
+ LoadOam();
+ ProcessSpriteCopyRequests();
}
-void sub_80EBD90() {
- ewram0_10.var300();
- AnimateSprites();
- BuildOamBuffer();
- RunTasks();
- UpdatePaletteFade();
- sub_80F19FC();
+void sub_80EBD90()
+{
+ ewram0_10.var300();
+ AnimateSprites();
+ BuildOamBuffer();
+ RunTasks();
+ UpdatePaletteFade();
+ sub_80F19FC();
}
-void sub_80EBDBC(void (*func)(void)) {
- ewram0_10.var300 = func;
- ewram0_10.var304 = 0;
+void sub_80EBDBC(void (*func)(void))
+{
+ ewram0_10.var300 = func;
+ ewram0_10.var304 = 0;
}
-void sub_80EBDD8() {
- switch (ewram0_10.var304) {
- case 0:
- SetVBlankCallback(NULL);
- REG_DISPCNT = 0;
- ewram0_10.var6dad = ewram0_10.var6ddc;
- ewram0_10.var6dae = 5;
- ewram0_10.var304++;
- break;
- case 1:
- sub_80F3FF0();
- ewram0_10.var304++;
- case 2:
- if (sub_80F4024()) return;
- ewram0_10.var304++;
- break;
- case 3:
- sub_80F2598();
- ewram0_10.var304++;
- break;
- case 4:
- sub_80EEE20();
- ewram0_10.var304++;
- case 5:
- if (sub_80EEE54()) return;
- sub_80EEE08();
- ewram0_10.var304++;
- return;
- case 6:
- sub_80EF248(0);
- ewram0_10.var304++;
- case 7:
- if (sub_80EF284(0)) return;
- ewram0_10.var304++;
- break;
- case 8:
- sub_80F1B8C(0);
- ewram0_10.var304++;
- case 9:
- if (sub_80F1BC8(0)) return;
- ewram0_10.var304++;
- break;
- case 10:
- SetVBlankCallback(&sub_80EBD18);
- ewram0_10.var304++;
- break;
- case 11:
- BeginNormalPaletteFade(-1, 0, 0x10, 0, 0);
- ewram0_10.var304++;
- return;
- case 12:
- sub_80EED2C(0);
- ewram0_10.var304++;
- return;
- case 13:
- if (gPaletteFade.active) return;
- ewram0_10.var304++;
- return;
- case 14:
- sub_80F2C80(0);
- ewram0_10.var304++;
- case 15:
- if (sub_80F2CBC(0)) return;
- ewram0_10.var304++;
- break;
- case 16:
- sub_80F1DF0();
- ewram0_10.var304++;
- return;
- case 17:
- if (!sub_80F1E50()) {
- sub_80EF428(0, 0);
- sub_80EBDBC(&sub_80EC268);
+void sub_80EBDD8()
+{
+ switch (ewram0_10.var304)
+ {
+ case 0:
+ SetVBlankCallback(NULL);
+ REG_DISPCNT = 0;
+ ewram0_10.var6dad = ewram0_10.var6ddc;
+ ewram0_10.var6dae = 5;
+ ewram0_10.var304++;
+ break;
+ case 1:
+ sub_80F3FF0();
+ ewram0_10.var304++;
+ // fall through
+ case 2:
+ if (!sub_80F4024())
+ ewram0_10.var304++;
+ break;
+ case 3:
+ sub_80F2598();
+ ewram0_10.var304++;
+ break;
+ case 4:
+ sub_80EEE20();
+ ewram0_10.var304++;
+ // fall through
+ case 5:
+ if (!sub_80EEE54())
+ {
+ sub_80EEE08();
+ ewram0_10.var304++;
}
- return;
-
- }
-
+ break;
+ case 6:
+ sub_80EF248(0);
+ ewram0_10.var304++;
+ // fall through
+ case 7:
+ if (!sub_80EF284(0))
+ ewram0_10.var304++;
+ break;
+ case 8:
+ sub_80F1B8C(0);
+ ewram0_10.var304++;
+ // fall through
+ case 9:
+ if (!sub_80F1BC8(0))
+ ewram0_10.var304++;
+ break;
+ case 10:
+ SetVBlankCallback(&sub_80EBD18);
+ ewram0_10.var304++;
+ break;
+ case 11:
+ BeginNormalPaletteFade(-1, 0, 0x10, 0, 0);
+ ewram0_10.var304++;
+ break;
+ case 12:
+ sub_80EED2C(0);
+ ewram0_10.var304++;
+ break;
+ case 13:
+ if (!gPaletteFade.active)
+ ewram0_10.var304++;
+ break;
+ case 14:
+ sub_80F2C80(0);
+ ewram0_10.var304++;
+ // fall through
+ case 15:
+ if (!sub_80F2CBC(0))
+ ewram0_10.var304++;
+ break;
+ case 16:
+ sub_80F1DF0();
+ ewram0_10.var304++;
+ break;
+ case 17:
+ if (!sub_80F1E50())
+ {
+ sub_80EF428(0, 0);
+ sub_80EBDBC(&sub_80EC268);
+ }
+ break;
+ }
}
-void sub_80EC00C() {
- switch (ewram0_10.var304) {
- case 0:
- if (!sub_80EEF78()) {
- SetVBlankCallback(&sub_80EBD80);
- sub_80EED1C();
- ewram0_10.var6dad = ewram0_10.var6ddc;
- ewram0_10.var6dae = 5;
- sub_80EEE08();
+void sub_80EC00C()
+{
+ switch (ewram0_10.var304)
+ {
+ case 0:
+ if (!sub_80EEF78())
+ {
+ SetVBlankCallback(&sub_80EBD80);
+ sub_80EED1C();
+ ewram0_10.var6dad = ewram0_10.var6ddc;
+ ewram0_10.var6dae = 5;
+ sub_80EEE08();
+ ewram0_10.var304++;
+ }
+ break;
+ case 1:
+ sub_80EF248(0);
+ ewram0_10.var304++;
+ // fall through
+ case 2:
+ if (!sub_80EF284(0))
+ ewram0_10.var304++;
+ break;
+ case 3:
+ sub_80F1B8C(0);
+ ewram0_10.var304++;
+ // fall through
+ case 4:
+ if (!sub_80F1BC8(0))
+ ewram0_10.var304++;
+ break;
+ case 5:
+ if (!sub_8055870())
ewram0_10.var304++;
+ break;
+ case 6:
+ BeginNormalPaletteFade(ewram0_10.var308, -1, 0x10, 0, 0);
+ SetVBlankCallback(&sub_80EBD18);
+ ewram0_10.var304++;
+ break;
+ case 7:
+ sub_80EED2C(0);
+ ewram0_10.var304++;
+ break;
+ case 8:
+ if (!gPaletteFade.active)
+ ewram0_10.var304++;
+ break;
+ case 9:
+ sub_80F2598();
+ ewram0_10.var304++;
+ break;
+ case 10:
+ sub_80F2C80(0);
+ ewram0_10.var304++;
+ // fall through
+ case 11:
+ if (!sub_80F2CBC(0))
+ ewram0_10.var304++;
+ break;
+ case 12:
+ sub_80F1DF0();
+ ewram0_10.var304++;
+ break;
+ case 13:
+ if (!sub_80F1E50())
+ {
+ sub_80EF428(0, ewram0_10.var6dad);
+ sub_80EBDBC(&sub_80EC268);
}
break;
- case 1:
- sub_80EF248(0);
- ewram0_10.var304++;
- case 2:
- if (sub_80EF284(0)) return;
- ewram0_10.var304++;
- break;
- case 3:
- sub_80F1B8C(0);
- ewram0_10.var304++;
- case 4:
- if (sub_80F1BC8(0)) return;
- ewram0_10.var304++;
- break;
- case 5:
- if (sub_8055870()) return;
- ewram0_10.var304++;
- break;
- case 6:
- BeginNormalPaletteFade(ewram0_10.var308, -1, 0x10, 0, 0);
- SetVBlankCallback(&sub_80EBD18);
- ewram0_10.var304++;
- break;
- case 7:
- sub_80EED2C(0);
- ewram0_10.var304++;
- break;
- case 8:
- if (gPaletteFade.active) return;
- ewram0_10.var304++;
- return;
- case 9:
- sub_80F2598();
- ewram0_10.var304++;
- break;
- case 10:
- sub_80F2C80(0);
- ewram0_10.var304++;
- case 11:
- if (sub_80F2CBC(0)) return;
- ewram0_10.var304++;
- return;
- case 12:
- sub_80F1DF0();
- ewram0_10.var304++;
- return;
- case 13:
- if (sub_80F1E50()) return;
- sub_80EF428(0, ewram0_10.var6dad);
- sub_80EBDBC(&sub_80EC268);
- }
+ }
}
-void sub_80EC210() {
- switch (ewram0_10.var304) {
- case 0:
- sub_80F2D04(1);
- sub_80EE9C0(0, ewram0_10.var6ddc, 0);
- ewram0_10.var304++;
+void sub_80EC210()
+{
+ switch (ewram0_10.var304)
+ {
+ case 0:
+ sub_80F2D04(1);
+ sub_80EE9C0(0, ewram0_10.var6ddc, 0);
+ ewram0_10.var304++;
+ break;
+ case 1:
+ if (!sub_80EEA0C())
+ sub_80EBDBC(&sub_80EC268);
break;
- case 1:
- if (sub_80EEA0C()) return;
- sub_80EBDBC(&sub_80EC268);
- }
+ }
}
-void sub_80EC268() {
- u8 var1;
- switch (ewram0_10.var304) {
- case 0:
- if (sub_80EEC10() != 0) {
- PlaySE(0x5);
- sub_80EF428(0, ewram0_10.var6dad);
- sub_80EED9C();
- break;
- }
- else {
- if (gMain.newKeys & A_BUTTON) {
- ewram0_10.var6ddc = ewram0_10.var6dad;
- switch (ewram0_10.var6db2[ewram0_10.var6ddc] - 1) {
- case 0:
- PlaySE(5);
- sub_80EBDBC(&sub_80EC4A0);
- break;
- case 1:
- PlaySE(5);
- sub_80EBDBC(&sub_80EC81C);
- break;
- case 4:
- ewram0_10.var304 = 1;
- break;
- case 3:
- ewram0_10.var304 = 2;
- break;
- case 2:
- ewram0_10.var304 = 6;
- break;
- }
+void sub_80EC268()
+{
+ u8 var1;
+
+ switch (ewram0_10.var304)
+ {
+ case 0:
+ if (sub_80EEC10() != 0)
+ {
+ PlaySE(SE_SELECT);
+ sub_80EF428(0, ewram0_10.var6dad);
+ sub_80EED9C();
+ }
+ else
+ {
+ if (gMain.newKeys & A_BUTTON)
+ {
+ ewram0_10.var6ddc = ewram0_10.var6dad;
+ switch (ewram0_10.var6db2[ewram0_10.var6ddc] - 1)
+ {
+ case 0:
+ PlaySE(SE_SELECT);
+ sub_80EBDBC(&sub_80EC4A0);
+ break;
+ case 1:
+ PlaySE(SE_SELECT);
+ sub_80EBDBC(&sub_80EC81C);
+ break;
+ case 4:
+ ewram0_10.var304 = 1;
+ break;
+ case 3:
+ ewram0_10.var304 = 2;
+ break;
+ case 2:
+ ewram0_10.var304 = 6;
+ break;
+ }
+ }
+ else if (gMain.newKeys & B_BUTTON)
+ {
+ ewram0_10.var304 = 1;
+ }
+ }
+ break;
+ case 1:
+ sub_80F208C();
+ sub_80EBDBC(&sub_80EE96C);
+ break;
+ case 2:
+ sub_80F6208();
+ ewram0_10.var304++;
+ // fall through
+ case 3:
+ if (!sub_80F6250())
+ ewram0_10.var304++;
+ break;
+ case 4:
+ if (!sub_8055870())
+ {
+ if (ewram0_10.var8fe8 != 0)
+ {
+ PlaySE(SE_SELECT);
+ sub_80EBDBC(&sub_80EDB88);
}
- else if (gMain.newKeys & B_BUTTON) {
- ewram0_10.var304 = 1;
+ else
+ {
+ PlaySE(0x20);
+ sub_80EF428(0, 5);
+ ewram0_10.var304 = 0xFF;
}
- break;
}
- case 1:
- sub_80F208C();
- sub_80EBDBC(&sub_80EE96C);
break;
- case 2:
- sub_80F6208();
- ewram0_10.var304++;
- case 3:
- if (sub_80F6250()) return;
- ewram0_10.var304++;
- break;
- case 4:
- if (sub_8055870()) return;
- if (ewram0_10.var8fe8 != 0) {
- PlaySE(0x5);
- sub_80EBDBC(&sub_80EDB88);
- break;
- }
- else {
- PlaySE(0x20);
- sub_80EF428(0, 5);
- ewram0_10.var304 = 0xFF;
- break;
- }
- case 6:
- sub_80F6C20();
- if (ewram0_10.varD158 != 0) {
- PlaySE(0x5);
- sub_80EBDBC(&sub_80EE3D8);
- break;
- }
- else {
- PlaySE(0x20);
- sub_80EF428(0, 6);
- ewram0_10.var304 = 0xFF;
- break;
- }
- case 0xFF:
- if ((var1 = sub_80EEC10()) != 0) {
- PlaySE(0x5);
- sub_80EF428(0, ewram0_10.var6dad);
- ewram0_10.var304 = 0;
- sub_80EED9C();
- }
- else {
- if (!(gMain.newKeys & (A_BUTTON | B_BUTTON))) return;
+ case 6:
+ sub_80F6C20();
+ if (ewram0_10.varD158 != 0)
+ {
+ PlaySE(SE_SELECT);
+ sub_80EBDBC(&sub_80EE3D8);
+ }
+ else
+ {
+ PlaySE(0x20);
+ sub_80EF428(0, 6);
+ ewram0_10.var304 = 0xFF;
+ }
+ break;
+ case 0xFF:
+ if ((var1 = sub_80EEC10()) != 0)
+ {
+ PlaySE(SE_SELECT);
+ sub_80EF428(0, ewram0_10.var6dad);
+ ewram0_10.var304 = 0;
+ sub_80EED9C();
+ }
+ else if (gMain.newKeys & (A_BUTTON | B_BUTTON))
+ {
sub_80EF428(0, ewram0_10.var6dad);
ewram0_10.var304 = var1;
- break;
}
- }
+ break;
+ }
}
-void sub_80EC4A0() {
- u32 var1;
- u32 var2;
- switch (ewram0_10.var304) {
- case 0:
- sub_80F1E84();
- sub_80F2D04(0);
- ewram0_10.var304++;
- break;
- case 1:
- if (!sub_80F1F10()) {
- if (gSaveBlock2.regionMapZoom) {
- var1 = 0x7;
- }
- else var1 = 0x8;
- sub_80EEFBC(var1);
+void sub_80EC4A0()
+{
+ u32 var1;
+
+ switch (ewram0_10.var304)
+ {
+ case 0:
+ sub_80F1E84();
+ sub_80F2D04(0);
+ ewram0_10.var304++;
+ break;
+ case 1:
+ if (!sub_80F1F10())
+ {
+ if (gSaveBlock2.regionMapZoom)
+ var1 = 0x7;
+ else
+ var1 = 0x8;
+ sub_80EEFBC(var1);
+ ewram0_10.var304++;
+ }
+ break;
+ case 2:
+ if (!sub_80EEF34())
+ {
+ BeginNormalPaletteFade(ewram0_10.var308, -1, 0x0, 0x10, 0);
+ ewram0_10.var304++;
+ }
+ break;
+ case 3:
+ if (!gPaletteFade.active)
+ {
+ SetVBlankCallback(NULL);
+ sub_80EED0C();
ewram0_10.var304++;
}
- break;
- case 2:
- if (!(var2 = sub_80EEF34())) {
- BeginNormalPaletteFade(ewram0_10.var308, -1, 0x0, 0x10, var2);
+ break;
+ case 4:
+ sub_80F2620();
+ ewram0_10.var304++;
+ break;
+ case 5:
+ sub_80EF814();
+ ewram0_10.var304++;
+ break;
+ case 6:
+ sub_80EF840();
+ ewram0_10.var304++;
+ // fall through
+ case 7:
+ if (!sub_80EF874())
ewram0_10.var304++;
- }
- break;
- case 3:
- if (gPaletteFade.active) return;
- SetVBlankCallback(NULL);
- sub_80EED0C();
- ewram0_10.var304++;
- break;
- case 4:
- sub_80F2620();
- ewram0_10.var304++;
- break;
- case 5:
- sub_80EF814();
- ewram0_10.var304++;
- break;
- case 6:
- sub_80EF840();
- ewram0_10.var304++;
- case 7:
- if (sub_80EF874()) return;
- ewram0_10.var304++;
- break;
- case 8:
- sub_80F2C80(0x4);
- ewram0_10.var304++;
- case 9:
- if (sub_80F2CBC(0x4)) return;
- ewram0_10.var304++;
- break;
- case 0xA:
- sub_80F2DD8();
- SetVBlankCallback(&sub_80EBD30);
- ewram0_10.var304++;
- break;
- case 0xB:
- if (sub_8055870()) return;
- ewram0_10.var304++;
- break;
- case 0xC:
- BeginNormalPaletteFade(ewram0_10.var308, -1, 0x10, 0, 0);
- ewram0_10.var304++;
- break;
- case 0xD:
- sub_80EED2C(0x1);
- ewram0_10.var304++;
+ break;
+ case 8:
+ sub_80F2C80(0x4);
+ ewram0_10.var304++;
+ // fall through
+ case 9:
+ if (!sub_80F2CBC(0x4))
+ ewram0_10.var304++;
+ break;
+ case 0xA:
+ sub_80F2DD8();
+ SetVBlankCallback(&sub_80EBD30);
+ ewram0_10.var304++;
+ break;
+ case 0xB:
+ if (!sub_8055870())
+ ewram0_10.var304++;
+ break;
+ case 0xC:
+ BeginNormalPaletteFade(ewram0_10.var308, -1, 0x10, 0, 0);
+ ewram0_10.var304++;
+ break;
+ case 0xD:
+ sub_80EED2C(0x1);
+ ewram0_10.var304++;
+ break;
+ case 0xE:
+ if (!gPaletteFade.active)
+ sub_80EBDBC(&sub_80EC67C);
break;
- case 0xE:
- if (gPaletteFade.active) return;
- sub_80EBDBC(&sub_80EC67C);
- }
+ }
}
-void sub_80EC67C() {
- u32 var1;
- u32 var2;
- switch (ewram0_10.var304) {
- case 0:
- switch (sub_80FAB60()) {
- case 1:
- sub_80EED9C();
- break;
- case 3:
- sub_80EF9F8();
- break;
- case 4:
- PlaySE(0x5);
- ewram0_10.var304 = 1;
- break;
- case 5:
- PlaySE(0x5);
- ewram0_10.var304 = 4;
- break;
- }
- break;
- case 1:
- if (!ewram0_10.var6e90) {
+void sub_80EC67C()
+{
+ switch (ewram0_10.var304)
+ {
+ case 0:
+ switch (sub_80FAB60())
+ {
+ case 1:
+ sub_80EED9C();
+ break;
+ case 3:
+ sub_80EF9F8();
+ break;
+ case 4:
+ PlaySE(SE_SELECT);
+ ewram0_10.var304 = 1;
+ break;
+ case 5:
+ PlaySE(SE_SELECT);
+ ewram0_10.var304 = 4;
+ break;
+ }
+ break;
+ case 1:
+ if (!ewram0_10.var6e90)
+ {
+ sub_80FAEC4();
+ ewram0_10.var304++;
+ }
+ else if (!sub_80EFBDC(1))
+ {
sub_80FAEC4();
ewram0_10.var304++;
- break;
}
- if (sub_80EFBDC(1)) return;
- sub_80FAEC4();
- ewram0_10.var304++;
- break;
- case 2:
- if ((var2 = sub_80FAFC0())) return;
- if (!ewram0_10.var6e90) {
+ break;
+ case 2:
+ if (!sub_80FAFC0())
+ {
+ if (!ewram0_10.var6e90)
+ {
+ sub_80EFBB0();
+ ewram0_10.var304 = 0;
+ }
+ else
+ {
+ ewram0_10.var304++;
+ }
+ }
+ break;
+ case 3:
+ if (!sub_80EFBDC(0))
+ {
sub_80EFBB0();
- ewram0_10.var304 = var2;
- break;
+ ewram0_10.var304 = 0;
+ }
+ break;
+ case 4:
+ BeginNormalPaletteFade(ewram0_10.var308, -1, 0, 0x10, 0);
+ ewram0_10.var304++;
+ break;
+ case 5:
+ if (!gPaletteFade.active)
+ {
+ sub_80F2DF4();
+ sub_80F2D04(0x4);
+ gSaveBlock2.regionMapZoom = (ewram0_10.var6e90 == 1) ? 1 : 0;
+ sub_80EBDBC(&sub_80EC00C);
}
- ewram0_10.var304++;
- break;
- case 3:
- if ((var1 = sub_80EFBDC(0))) return;
- sub_80EFBB0();
- ewram0_10.var304 = var1;
- break;
- case 4:
- BeginNormalPaletteFade(ewram0_10.var308, -1, 0, 0x10, 0);
- ewram0_10.var304++;
break;
- case 5:
- if (gPaletteFade.active) return;
- sub_80F2DF4();
- sub_80F2D04(0x4);
- gSaveBlock2.regionMapZoom = (ewram0_10.var6e90 == 1) ? 1 : 0;
- sub_80EBDBC(&sub_80EC00C);
- }
+ }
}
-void sub_80EC81C() {
- switch (ewram0_10.var304) {
- case 0:
- sub_80F2D04(0);
- sub_80EE9C0(1, 0, 1);
- ewram0_10.var304++;
+void sub_80EC81C()
+{
+ switch (ewram0_10.var304)
+ {
+ case 0:
+ sub_80F2D04(0);
+ sub_80EE9C0(1, 0, 1);
+ ewram0_10.var304++;
+ break;
+ case 1:
+ if (!sub_80EEA0C())
+ sub_80EBDBC(&sub_80EC86C);
break;
- case 1:
- if (sub_80EEA0C()) return;
- sub_80EBDBC(&sub_80EC86C);
- }
+ }
}
-void sub_80EC86C() {
- switch (ewram0_10.var304) {
- case 0:
- if (sub_80EEC90()) {
- PlaySE(0x5);
- sub_80EF428(1, ewram0_10.var6dad);
- sub_80EED9C();
- break;
- }
- if (gMain.newKeys & A_BUTTON) {
- PlaySE(0x5);
- ewram0_10.var6df0 = ewram0_10.var6dad;
- switch (ewram0_10.var6df0) {
- case 0:
- sub_80EBDBC(&sub_80ED620);
- break;
- case 1:
- sub_80EBDBC(&sub_80EC960);
- break;
- case 2:
- sub_80EBDBC(&sub_80EC210);
- break;
- }
- break;
- }
- else if (gMain.newKeys & B_BUTTON) {
- PlaySE(0x5);
- ewram0_10.var6df0 = 0x2;
- ewram0_10.var6dad = 0x2;
- ewram0_10.var304++;
- break;
- }
+void sub_80EC86C()
+{
+ switch (ewram0_10.var304)
+ {
+ case 0:
+ if (sub_80EEC90())
+ {
+ PlaySE(SE_SELECT);
+ sub_80EF428(1, ewram0_10.var6dad);
+ sub_80EED9C();
+ }
+ else if (gMain.newKeys & A_BUTTON)
+ {
+ PlaySE(SE_SELECT);
+ ewram0_10.var6df0 = ewram0_10.var6dad;
+ switch (ewram0_10.var6df0)
+ {
+ case 0:
+ sub_80EBDBC(&sub_80ED620);
+ break;
+ case 1:
+ sub_80EBDBC(&sub_80EC960);
+ break;
+ case 2:
+ sub_80EBDBC(&sub_80EC210);
+ break;
+ }
+ }
+ else if (gMain.newKeys & B_BUTTON)
+ {
+ PlaySE(SE_SELECT);
+ ewram0_10.var6df0 = 0x2;
+ ewram0_10.var6dad = 0x2;
+ ewram0_10.var304++;
+ }
+ break;
+ case 1:
+ if (!sub_80F1E6C())
+ sub_80EBDBC(&sub_80EC210);
break;
- case 1:
- if (sub_80F1E6C()) return;
- sub_80EBDBC(&sub_80EC210);
- }
+ }
}
-void sub_80EC960() {
- switch (ewram0_10.var304) {
- case 0:
- sub_80EE9C0(2, 0, 5);
- ewram0_10.var304++;
+void sub_80EC960()
+{
+ switch (ewram0_10.var304)
+ {
+ case 0:
+ sub_80EE9C0(2, 0, 5);
+ ewram0_10.var304++;
+ break;
+ case 1:
+ if (!sub_80EEA0C())
+ sub_80EBDBC(&sub_80ECC08);
break;
- case 1:
- if (sub_80EEA0C()) return;
- sub_80EBDBC(&sub_80ECC08);
- }
+ }
}
-void sub_80EC9A8() {
- switch (ewram0_10.var304) {
- case 0:
- sub_80F2D04(5);
- sub_80EE9C0(1, ewram0_10.var6df0, 0xC);
- ewram0_10.var304++;
+void sub_80EC9A8()
+{
+ switch (ewram0_10.var304)
+ {
+ case 0:
+ sub_80F2D04(5);
+ sub_80EE9C0(1, ewram0_10.var6df0, 0xC);
+ ewram0_10.var304++;
+ break;
+ case 1:
+ if (!sub_80EEA0C())
+ {
+ sub_80EBDBC(&sub_80EC86C);
+ sub_80EF428(1, ewram0_10.var6dad);
+ }
break;
- case 1:
- if (sub_80EEA0C()) return;
- sub_80EBDBC(&sub_80EC86C);
- sub_80EF428(1, ewram0_10.var6dad);
- }
+ }
}
-void sub_80ECA10() {
- switch (ewram0_10.var304) {
- case 0:
- if (sub_80EEF78()) return;
- SetVBlankCallback(&sub_80EBD80);
- sub_80EED1C();
- ewram0_10.var6dad = ewram0_10.var6df0;
- ewram0_10.var6dae = 0x3;
- sub_80EEE08();
- ewram0_10.var304++;
- break;
- case 1:
- sub_80EF248(0x1);
- ewram0_10.var304++;
- case 2:
- if (sub_80EF284(0x1)) return;
- ewram0_10.var304++;
- break;
- case 3:
- sub_80F1B8C(0x1);
- ewram0_10.var304++;
- case 4:
- if (sub_80F1BC8(0x1)) return;
- ewram0_10.var304++;
- break;
- case 5:
- if (sub_8055870()) return;
- ewram0_10.var304++;
- break;
- case 6:
- BeginNormalPaletteFade(ewram0_10.var308, -1, 0x10, 0, 0);
- SetVBlankCallback(&sub_80EBD18);
- ewram0_10.var304++;
- break;
- case 7:
- sub_80EED2C(0);
- ewram0_10.var304++;
- break;
- case 8:
- sub_80F2598();
- ewram0_10.var304++;
- break;
- case 9:
- if (gPaletteFade.active) return;
- ewram0_10.var304++;
- break;
- case 0xA:
- sub_80F2C80(0x1);
- ewram0_10.var304++;
-
- case 0xB:
- if (sub_80F2CBC(0x1)) return;
- ewram0_10.var304++;
- break;
- case 0xC:
- sub_80F1DF0();
- ewram0_10.var304++;
+void sub_80ECA10()
+{
+ switch (ewram0_10.var304)
+ {
+ case 0:
+ if (!sub_80EEF78())
+ {
+ SetVBlankCallback(&sub_80EBD80);
+ sub_80EED1C();
+ ewram0_10.var6dad = ewram0_10.var6df0;
+ ewram0_10.var6dae = 0x3;
+ sub_80EEE08();
+ ewram0_10.var304++;
+ }
+ break;
+ case 1:
+ sub_80EF248(0x1);
+ ewram0_10.var304++;
+ case 2:
+ if (!sub_80EF284(0x1))
+ ewram0_10.var304++;
+ break;
+ case 3:
+ sub_80F1B8C(0x1);
+ ewram0_10.var304++;
+ case 4:
+ if (!sub_80F1BC8(0x1))
+ ewram0_10.var304++;
+ break;
+ case 5:
+ if (sub_8055870()) return;
+ ewram0_10.var304++;
+ break;
+ case 6:
+ BeginNormalPaletteFade(ewram0_10.var308, -1, 0x10, 0, 0);
+ SetVBlankCallback(&sub_80EBD18);
+ ewram0_10.var304++;
+ break;
+ case 7:
+ sub_80EED2C(0);
+ ewram0_10.var304++;
+ break;
+ case 8:
+ sub_80F2598();
+ ewram0_10.var304++;
+ break;
+ case 9:
+ if (!gPaletteFade.active)
+ ewram0_10.var304++;
+ break;
+ case 0xA:
+ sub_80F2C80(0x1);
+ ewram0_10.var304++;
+ // fall through
+ case 0xB:
+ if (!sub_80F2CBC(0x1))
+ ewram0_10.var304++;
+ break;
+ case 0xC:
+ sub_80F1DF0();
+ ewram0_10.var304++;
+ break;
+ case 0xD:
+ if (!sub_80F1E50())
+ {
+ sub_80EF428(1, ewram0_10.var6dad);
+ sub_80EBDBC(&sub_80EC86C);
+ }
break;
- case 0xD:
- if (sub_80F1E50()) return;
- sub_80EF428(1, ewram0_10.var6dad);
- sub_80EBDBC(&sub_80EC86C);
- }
+ }
}
-void sub_80ECC08() {
- switch (ewram0_10.var304) {
- case 0:
- if (sub_80EEC90()) {
- PlaySE(0x5);
- sub_80EF428(2, ewram0_10.var6dad);
- sub_80EED9C();
- break;
- }
+void sub_80ECC08()
+{
+ switch (ewram0_10.var304)
+ {
+ case 0:
+ if (sub_80EEC90())
+ {
+ PlaySE(SE_SELECT);
+ sub_80EF428(2, ewram0_10.var6dad);
+ sub_80EED9C();
+ }
+ else if (gMain.newKeys & A_BUTTON)
+ {
+ PlaySE(SE_SELECT);
+ switch ((s8)ewram0_10.var6dad)
+ {
+ case 0:
+ ewram0_10.var87D8 = 22;
+ break;
+ case 1:
+ ewram0_10.var87D8 = 23;
+ break;
+ case 2:
+ ewram0_10.var87D8 = 24;
+ break;
+ case 3:
+ ewram0_10.var87D8 = 33;
+ break;
+ case 4:
+ ewram0_10.var87D8 = 47;
+ break;
+ case 5:
+ sub_80EBDBC(&sub_80EC9A8);
+ return;
+ }
- if (gMain.newKeys & A_BUTTON) {
- PlaySE(0x5);
- switch ((s8)ewram0_10.var6dad) {
- case 0:
- ewram0_10.var87D8 = 22;
- break;
- case 1:
- ewram0_10.var87D8 = 23;
- break;
- case 2:
- ewram0_10.var87D8 = 24;
- break;
- case 3:
- ewram0_10.var87D8 = 33;
- break;
- case 4:
- ewram0_10.var87D8 = 47;
- break;
- case 5:
- sub_80EBDBC(&sub_80EC9A8);
- return;
- }
+ ewram0_10.var6dfc = ewram0_10.var6dad;
+ ewram0_10.var76aa = 1;
+ sub_80EBDBC(&sub_80ED01C);
+ }
+ else if (gMain.newKeys & B_BUTTON)
+ {
+ PlaySE(SE_SELECT);
+ ewram0_10.var6dad = 0x5;
+ ewram0_10.var304++;
+ }
+ break;
+ case 1:
+ if (!sub_80F1E6C())
+ sub_80EBDBC(&sub_80EC9A8);
+ break;
+ }
+}
- ewram0_10.var6dfc = ewram0_10.var6dad;
- ewram0_10.var76aa = 1;
- sub_80EBDBC(&sub_80ED01C);
+void sub_80ECD80()
+{
+ switch (ewram0_10.var304)
+ {
+ case 0:
+ BeginNormalPaletteFade(ewram0_10.var308, -1, 0, 0x10, 0);
+ ewram0_10.var304++;
+ break;
+ case 1:
+ if (!gPaletteFade.active)
+ ewram0_10.var304++;
+ break;
+ case 2:
+ if (!sub_80EEF78())
+ {
+ SetVBlankCallback(&sub_80EBD80);
+ ewram0_10.var304++;
}
- else if (gMain.newKeys & B_BUTTON) {
- PlaySE(0x5);
- ewram0_10.var6dad = 0x5;
+ break;
+ case 3:
+ sub_80EED1C();
+ sub_80F3130();
+ ewram0_10.var304++;
+ break;
+ case 4:
+ sub_80F2D6C(0x1);
+ ewram0_10.var304++;
+ break;
+ case 5:
+ sub_80F2D6C(0x5);
+ ewram0_10.var304++;
+ break;
+ case 6:
+ ewram0_10.var6dad = ewram0_10.var6dfc;
+ ewram0_10.var6dae = 0x6;
+ sub_80EEE08();
+ ewram0_10.var304++;
+ break;
+ case 7:
+ sub_80EF248(0x2);
+ ewram0_10.var304++;
+ // fall through
+ case 8:
+ if (!sub_80EF284(0x2))
+ ewram0_10.var304++;
+ break;
+ case 9:
+ sub_80F1B8C(0x2);
+ ewram0_10.var304++;
+ // fall through
+ case 10:
+ if (!sub_80F1BC8(0x2))
+ ewram0_10.var304++;
+ break;
+ case 11:
+ if (!sub_8055870())
+ ewram0_10.var304++;
+ break;
+ case 12:
+ BeginNormalPaletteFade(ewram0_10.var308, -1, 0x10, 0, 0);
+ SetVBlankCallback(&sub_80EBD18);
+ ewram0_10.var304++;
+ break;
+ case 13:
+ sub_80EED2C(0);
+ ewram0_10.var304++;
+ break;
+ case 14:
+ sub_80F2598();
+ ewram0_10.var304++;
+ break;
+ case 15:
+ if (!gPaletteFade.active)
+ ewram0_10.var304++;
+ break;
+ case 16:
+ sub_80F2C80(0x1);
+ ewram0_10.var304++;
+ // fall through
+ case 17:
+ if (!sub_80F2CBC(0x1))
+ {
+ ewram0_10.var306 = 0;
ewram0_10.var304++;
}
+ break;
+ case 18:
+ sub_80F2C80(0x5);
+ ewram0_10.var304++;
+ // fall through
+ case 19:
+ if (!sub_80F2CBC(0x5))
+ {
+ sub_80F1DF0();
+ ewram0_10.var304++;
+ }
+ break;
+ case 20:
+ if (!sub_80F1E50())
+ {
+ sub_80EF428(2, ewram0_10.var6dad);
+ sub_80EBDBC(&sub_80ECC08);
+ }
break;
- case 1:
- if (sub_80F1E6C()) return;;
- sub_80EBDBC(&sub_80EC9A8);
- break;
- }
-}
-
-void sub_80ECD80() {
- u16 var1;
- switch (ewram0_10.var304) {
- case 0:
- BeginNormalPaletteFade(ewram0_10.var308, -1, 0, 0x10, 0);
- ewram0_10.var304++;
- break;
- case 1:
- if (gPaletteFade.active) return;
- ewram0_10.var304++;
- break;
- case 2:
- if (sub_80EEF78()) return;
- SetVBlankCallback(&sub_80EBD80);
- ewram0_10.var304++;
- break;
- case 3:
- sub_80EED1C();
- sub_80F3130();
- ewram0_10.var304++;
- break;
- case 4:
- sub_80F2D6C(0x1);
- ewram0_10.var304++;
- break;
- case 5:
- sub_80F2D6C(0x5);
- ewram0_10.var304++;
- break;
- case 6:
- ewram0_10.var6dad = ewram0_10.var6dfc;
- ewram0_10.var6dae = 0x6;
- sub_80EEE08();
- ewram0_10.var304++;
- break;
- case 7:
- sub_80EF248(0x2);
- ewram0_10.var304++;
- case 8:
- if (sub_80EF284(0x2)) return;
- ewram0_10.var304++;
- break;
- case 9:
- sub_80F1B8C(0x2);
- ewram0_10.var304++;
- case 10:
- if (sub_80F1BC8(0x2)) return;
- ewram0_10.var304++;
- break;
- case 11:
- if (sub_8055870()) return;
- ewram0_10.var304++;
- break;
- case 12:
- BeginNormalPaletteFade(ewram0_10.var308, -1, 0x10, 0, 0);
- SetVBlankCallback(&sub_80EBD18);
- ewram0_10.var304++;
- break;
- case 13:
- sub_80EED2C(0);
- ewram0_10.var304++;
- break;
- case 14:
- sub_80F2598();
- ewram0_10.var304++;
- break;
- case 15:
- if (gPaletteFade.active) return;
- ewram0_10.var304++;
- break;
- case 16:
- sub_80F2C80(0x1);
- ewram0_10.var304++;
- case 17:
- if ((var1 = sub_80F2CBC(0x1))) return;
- ewram0_10.var306 = var1;
- ewram0_10.var304++;
- break;
- case 18:
- sub_80F2C80(0x5);
- ewram0_10.var304++;
- case 19:
- if (sub_80F2CBC(0x5)) return;
- sub_80F1DF0();
- ewram0_10.var304++;
- break;
- case 20:
- if (sub_80F1E50()) return;
- sub_80EF428(2, ewram0_10.var6dad);
- sub_80EBDBC(&sub_80ECC08);
- }
+ }
}
-void sub_80ED01C() {
- u16 var1;
- u16 var3;
- switch (ewram0_10.var304) {
- case 0:
- sub_80F1E84();
- sub_80F2D04(0x1);
- sub_80F2D04(0x5);
- ewram0_10.var304++;
- break;
- case 1:
- if (sub_80F1F10()) return;
- sub_80EEFBC(0);
- ewram0_10.var304++;
- break;
- case 2:
- if ((var1 = sub_80EEF34())) return;
- BeginNormalPaletteFade(ewram0_10.var308, -1, 0x0, 0x10, var1);
- ewram0_10.var304++;
- break;
- case 3:
- if (gPaletteFade.active) return;
- SetVBlankCallback(NULL);
- sub_80EED0C();
- sub_80EF814();
- ewram0_10.var304++;
- break;
- case 4:
- sub_80F2620();
- ewram0_10.var304++;
- break;
- case 5:
- sub_80F4D44();
- ewram0_10.var304++;
- case 6:
- if (!sub_80F4D88()) {
- ewram0_10.var304 += 2;
- break;
+void sub_80ED01C()
+{
+ switch (ewram0_10.var304)
+ {
+ case 0:
+ sub_80F1E84();
+ sub_80F2D04(0x1);
+ sub_80F2D04(0x5);
+ ewram0_10.var304++;
+ break;
+ case 1:
+ if (!sub_80F1F10())
+ {
+ sub_80EEFBC(0);
+ ewram0_10.var304++;
}
- ewram0_10.var304++;
- break;
- case 7:
- if (sub_8055870()) return;
- ewram0_10.var304--;
- break;
- case 8:
- if (sub_8055870()) return;
- ewram0_10.var304++;
- break;
- case 9:
- sub_80F0264(0);
- ewram0_10.var304++;
- case 10:
- if (sub_80F02A0()) return;
- ewram0_10.var304++;
- break;
- case 11:
- sub_80F3008(0);
- ewram0_10.var304++;
- break;
- case 12:
- if (sub_8055870()) return;
- ewram0_10.var304++;
- break;
- case 13:
- BeginNormalPaletteFade(ewram0_10.var308, -1, 0x10, 0, 0);
- SetVBlankCallback(&sub_80EBD18);
- ewram0_10.var304++;
- break;
- case 14:
- sub_80EED2C(0x4);
- ewram0_10.var304++;
- break;
- case 15:
- if (gPaletteFade.active) return;
- ewram0_10.var306 = (u8)(gPaletteFade.active << 24);
- ewram0_10.var304++;
- break;
- case 16:
- sub_80F2C80(0x1);
- ewram0_10.var304++;
- case 17:
- if ((var3 = sub_80F2CBC(0x1))) return;
- ewram0_10.var306 = var3;
- ewram0_10.var304++;
- break;
- case 18:
- sub_80F2C80(ewram0_10.var6dfc + 7);
- ewram0_10.var304++;
- case 19:
- if (sub_80F2CBC(ewram0_10.var6dfc + 7)) return;
- sub_80EBDBC(&sub_80ED31C);
- break;
- }
+ break;
+ case 2:
+ if (!sub_80EEF34())
+ {
+ BeginNormalPaletteFade(ewram0_10.var308, -1, 0x0, 0x10, 0);
+ ewram0_10.var304++;
+ }
+ break;
+ case 3:
+ if (!gPaletteFade.active)
+ {
+ SetVBlankCallback(NULL);
+ sub_80EED0C();
+ sub_80EF814();
+ ewram0_10.var304++;
+ }
+ break;
+ case 4:
+ sub_80F2620();
+ ewram0_10.var304++;
+ break;
+ case 5:
+ sub_80F4D44();
+ ewram0_10.var304++;
+ // fall through
+ case 6:
+ if (!sub_80F4D88())
+ ewram0_10.var304 += 2;
+ else
+ ewram0_10.var304 += 1;
+ break;
+ case 7:
+ if (!sub_8055870())
+ ewram0_10.var304--;
+ break;
+ case 8:
+ if (!sub_8055870())
+ ewram0_10.var304++;
+ break;
+ case 9:
+ sub_80F0264(0);
+ ewram0_10.var304++;
+ // fall through
+ case 10:
+ if (!sub_80F02A0())
+ ewram0_10.var304++;
+ break;
+ case 11:
+ sub_80F3008(0);
+ ewram0_10.var304++;
+ break;
+ case 12:
+ if (!sub_8055870())
+ ewram0_10.var304++;
+ break;
+ case 13:
+ BeginNormalPaletteFade(ewram0_10.var308, -1, 0x10, 0, 0);
+ SetVBlankCallback(&sub_80EBD18);
+ ewram0_10.var304++;
+ break;
+ case 14:
+ sub_80EED2C(0x4);
+ ewram0_10.var304++;
+ break;
+ case 15:
+ if (!gPaletteFade.active)
+ {
+ ewram0_10.var306 = 0;
+ ewram0_10.var304++;
+ }
+ break;
+ case 16:
+ sub_80F2C80(0x1);
+ ewram0_10.var304++;
+ // fall through
+ case 17:
+ if (!sub_80F2CBC(0x1))
+ {
+ ewram0_10.var306 = 0;
+ ewram0_10.var304++;
+ }
+ break;
+ case 18:
+ sub_80F2C80(ewram0_10.var6dfc + 7);
+ ewram0_10.var304++;
+ // fall through
+ case 19:
+ if (!sub_80F2CBC(ewram0_10.var6dfc + 7))
+ sub_80EBDBC(&sub_80ED31C);
+ break;
+ }
}
-void sub_80ED31C() {
- switch (ewram0_10.var304) {
- case 0:
- switch (sub_80F5DD4()) {
- case 1:
- PlaySE(0x5);
+void sub_80ED31C()
+{
+ switch (ewram0_10.var304)
+ {
+ case 0:
+ switch (sub_80F5DD4())
+ {
+ case 1:
+ PlaySE(SE_SELECT);
+ ShowMapNamePopUpWindow();
+ break;
+ case 2:
+ PlaySE(SE_SELECT);
+ ewram0_10.var304++;
+ break;
+ default:
+ if (gMain.newKeys & A_BUTTON)
+ {
+ PlaySE(SE_SELECT);
+ sub_80EBDBC(&sub_80ED4D8);
+ }
+ else if (gMain.newKeys & B_BUTTON)
+ {
+ PlaySE(SE_SELECT);
+ sub_80EBDBC(&sub_80ECD80);
+ }
+ break;
+ }
+ break;
+ case 1:
+ if (!sub_80F0718())
+ {
ShowMapNamePopUpWindow();
- break;
- case 2:
- PlaySE(0x5);
+ sub_80F3264();
ewram0_10.var304++;
- break;
- default:
- if (gMain.newKeys & A_BUTTON) {
- PlaySE(0x5);
- sub_80EBDBC(&sub_80ED4D8);
- }
- else if (gMain.newKeys & B_BUTTON) {
- PlaySE(0x5);
- sub_80EBDBC(&sub_80ECD80);
- }
- break;
}
- break;
- case 1:
- if (sub_80F0718()) return;
- ShowMapNamePopUpWindow();
- sub_80F3264();
- ewram0_10.var304++;
- break;
- case 2:
- if (sub_8055870()) return;
- ewram0_10.var304 = 0;
- break;
- }
+ break;
+ case 2:
+ if (!sub_8055870())
+ ewram0_10.var304 = 0;
+ break;
+ }
}
-void sub_80ED3D0() {
- switch (ewram0_10.var304) {
- case 0:
- SetVBlankCallback(NULL);
- ewram0_10.var304++;
- break;
- case 1:
- sub_80EED0C();
- sub_80F6134();
- ewram0_10.var304++;
- break;
- case 2:
- sub_80EEFBC(0);
- ewram0_10.var304++;
- break;
- case 3:
- sub_80F0264(0);
- ewram0_10.var304++;
- case 4:
- if (sub_80F02A0()) return;
- ewram0_10.var304++;
- break;
- case 5:
- if (sub_8055870()) return;
- ewram0_10.var304++;
- break;
- case 6:
- sub_80F3008(0);
- BeginNormalPaletteFade(ewram0_10.var308, -1, 0x10, 0, 0);
- SetVBlankCallback(&sub_80EBD18);
- ewram0_10.var304++;
- break;
- case 7:
- sub_80EED2C(0x4);
- ewram0_10.var304++;
+void sub_80ED3D0()
+{
+ switch (ewram0_10.var304)
+ {
+ case 0:
+ SetVBlankCallback(NULL);
+ ewram0_10.var304++;
+ break;
+ case 1:
+ sub_80EED0C();
+ sub_80F6134();
+ ewram0_10.var304++;
+ break;
+ case 2:
+ sub_80EEFBC(0);
+ ewram0_10.var304++;
+ break;
+ case 3:
+ sub_80F0264(0);
+ ewram0_10.var304++;
+ // fall through
+ case 4:
+ if (!sub_80F02A0())
+ ewram0_10.var304++;
+ break;
+ case 5:
+ if (!sub_8055870())
+ ewram0_10.var304++;
+ break;
+ case 6:
+ sub_80F3008(0);
+ BeginNormalPaletteFade(ewram0_10.var308, -1, 0x10, 0, 0);
+ SetVBlankCallback(&sub_80EBD18);
+ ewram0_10.var304++;
+ break;
+ case 7:
+ sub_80EED2C(0x4);
+ ewram0_10.var304++;
+ break;
+ case 8:
+ if (!gPaletteFade.active)
+ sub_80EBDBC(&sub_80ED31C);
break;
- case 8:
- if (gPaletteFade.active) return;
- sub_80EBDBC(&sub_80ED31C);
- }
+ }
}
-void sub_80ED4D8() {
- switch (ewram0_10.var304) {
- case 0:
- BeginNormalPaletteFade(ewram0_10.var308, -1, 0, 0x10, 0);
- ewram0_10.var304++;
- break;
- case 1:
- if (gPaletteFade.active) return;
- SetVBlankCallback(NULL);
- sub_80EED0C();
- sub_80F3130();
- ewram0_10.var304++;
- break;
- case 2:
- if (sub_8055870()) return;
- ewram0_10.var304++;
- break;
- case 3:
- sub_80F4CF0();
- ewram0_10.var304++;
- break;
- case 4:
- sub_80EFF34();
- ewram0_10.var304++;
- case 5:
- if (sub_80EFF68()) return;
- ewram0_10.var304++;
- break;
- case 6:
- sub_80F35B4();
- sub_80EEFBC(0x2);
- BeginNormalPaletteFade(ewram0_10.var308, -1, 0x10, 0, 0);
- SetVBlankCallback(sub_80EBD4C);
- ewram0_10.var304++;
- break;
- case 7:
- sub_80EED2C(0x2);
- ewram0_10.var304++;
- break;
- case 8:
- if (gPaletteFade.active) return;
- sub_80EBDBC(&sub_80ED858);
- break;
- }
+void sub_80ED4D8()
+{
+ switch (ewram0_10.var304)
+ {
+ case 0:
+ BeginNormalPaletteFade(ewram0_10.var308, -1, 0, 0x10, 0);
+ ewram0_10.var304++;
+ break;
+ case 1:
+ if (!gPaletteFade.active)
+ {
+ SetVBlankCallback(NULL);
+ sub_80EED0C();
+ sub_80F3130();
+ ewram0_10.var304++;
+ }
+ break;
+ case 2:
+ if (!sub_8055870())
+ ewram0_10.var304++;
+ break;
+ case 3:
+ sub_80F4CF0();
+ ewram0_10.var304++;
+ break;
+ case 4:
+ sub_80EFF34();
+ ewram0_10.var304++;
+ // fall through
+ case 5:
+ if (!sub_80EFF68())
+ ewram0_10.var304++;
+ break;
+ case 6:
+ sub_80F35B4();
+ sub_80EEFBC(0x2);
+ BeginNormalPaletteFade(ewram0_10.var308, -1, 0x10, 0, 0);
+ SetVBlankCallback(sub_80EBD4C);
+ ewram0_10.var304++;
+ break;
+ case 7:
+ sub_80EED2C(0x2);
+ ewram0_10.var304++;
+ break;
+ case 8:
+ if (!gPaletteFade.active)
+ sub_80EBDBC(&sub_80ED858);
+ break;
+ }
}
-void sub_80ED620() {
- u8 var1;
- switch (ewram0_10.var304) {
- case 0:
- sub_80F1E84();
- sub_80F2D04(0x1);
- ewram0_10.var304++;
- break;
- case 1:
- if (sub_80F1F10()) return;
- sub_80EEFBC(0x1);
- ewram0_10.var304++;
- break;
- case 2:
- if (!(var1 = sub_80EEF34())) {
- BeginNormalPaletteFade(ewram0_10.var308, -1, 0x0, 0x10, var1);
+void sub_80ED620()
+{
+ switch (ewram0_10.var304)
+ {
+ case 0:
+ sub_80F1E84();
+ sub_80F2D04(0x1);
+ ewram0_10.var304++;
+ break;
+ case 1:
+ if (!sub_80F1F10())
+ {
+ sub_80EEFBC(0x1);
ewram0_10.var304++;
}
- break;
- case 3:
- if (gPaletteFade.active) return;
- SetVBlankCallback(NULL);
- sub_80EED0C();
- sub_80EF814();
- ewram0_10.var76aa = (u8)(gPaletteFade.active << 24);
- ewram0_10.var304++;
- break;
- case 4:
- sub_80F2620();
- ewram0_10.var304++;
- break;
- case 5:
- ewram0_10.varD162 = 0x2;
- sub_80F4BD0();
- ewram0_10.var304++;
- break;
- case 6:
- sub_80EFF34();
- ewram0_10.var304++;
- case 7:
- if (sub_80EFF68()) return;
- ewram0_10.var304++;
- break;
- case 8:
- if (sub_8055870()) return;
- ewram0_10.var304++;
- break;
- case 9:
- if (sub_8055870()) return;
- ewram0_10.var304++;
- break;
- case 10:
- sub_80F33A8();
- BeginNormalPaletteFade(ewram0_10.var308, -1, 0x10, 0, 0);
- SetVBlankCallback(&sub_80EBD4C);
- ewram0_10.var304++;
- break;
- case 11:
- sub_80EED2C(0x2);
- ewram0_10.var304++;
- break;
- case 12:
- if (gPaletteFade.active) return;
- ewram0_10.var304++;
- break;
- case 13:
- sub_80F2C80(0x1);
- ewram0_10.var304++;
- case 14:
- if (sub_80F2CBC(0x1)) return;
- ewram0_10.var304++;
- break;
- case 15:
- sub_80F2C80(0x6);
- ewram0_10.var304++;
- case 16:
- if (sub_80F2CBC(0x6)) return;
- sub_80EBDBC(&sub_80ED858);
- break;
- }
+ break;
+ case 2:
+ if (!sub_80EEF34())
+ {
+ BeginNormalPaletteFade(ewram0_10.var308, -1, 0x0, 0x10, 0);
+ ewram0_10.var304++;
+ }
+ break;
+ case 3:
+ if (!gPaletteFade.active)
+ {
+ SetVBlankCallback(NULL);
+ sub_80EED0C();
+ sub_80EF814();
+ ewram0_10.var76aa = 0;
+ ewram0_10.var304++;
+ }
+ break;
+ case 4:
+ sub_80F2620();
+ ewram0_10.var304++;
+ break;
+ case 5:
+ ewram0_10.varD162 = 0x2;
+ sub_80F4BD0();
+ ewram0_10.var304++;
+ break;
+ case 6:
+ sub_80EFF34();
+ ewram0_10.var304++;
+ // fall through
+ case 7:
+ if (!sub_80EFF68())
+ ewram0_10.var304++;
+ break;
+ case 8:
+ if (!sub_8055870())
+ ewram0_10.var304++;
+ break;
+ case 9:
+ if (!sub_8055870())
+ ewram0_10.var304++;
+ break;
+ case 10:
+ sub_80F33A8();
+ BeginNormalPaletteFade(ewram0_10.var308, -1, 0x10, 0, 0);
+ SetVBlankCallback(&sub_80EBD4C);
+ ewram0_10.var304++;
+ break;
+ case 11:
+ sub_80EED2C(0x2);
+ ewram0_10.var304++;
+ break;
+ case 12:
+ if (!gPaletteFade.active)
+ ewram0_10.var304++;
+ break;
+ case 13:
+ sub_80F2C80(0x1);
+ ewram0_10.var304++;
+ case 14:
+ if (!sub_80F2CBC(0x1))
+ ewram0_10.var304++;
+ break;
+ case 15:
+ sub_80F2C80(0x6);
+ ewram0_10.var304++;
+ // fall through
+ case 16:
+ if (!sub_80F2CBC(0x6))
+ sub_80EBDBC(&sub_80ED858);
+ break;
+ }
}
#if 0
@@ -1445,1834 +1589,1869 @@ void sub_80F357C();
void sub_80F4FDC();
void sub_80ED858() {
- u8 var1;
- switch (ewram0_10.var304) {
- case 0:
- sub_80F4F78();
- sub_80F5B38();
- ewram0_10.var304 = 0x1;
- break;
- case 1:
- if (sub_80F5B50()) return;
- ewram0_10.var304 = 0x2;
- break;
- case 2:
- sub_80F0174(0x1);
- ewram0_10.var304 = 0x3;
- break;
- case 3:
- if (sub_80F4FB4()) return;
- sub_80F3C94();
- sub_80F3D00();
- ewram0_10.var304 = 0x4;
- break;
- case 4:
- if ( (gMain.heldKeys & 0x40) && (ewram0_10.var87CB) && (!(ewram0_10.var76aa) || (ewram0_10.var87DC)) ) {
- PlaySE(0x5);
- sub_80F5060(0x1);
- move_anim_execute();
- ewram0_10.var304 = 0x5;
- }
- else if ( (gMain.heldKeys & 0x80) && (ewram0_10.var87CB) && (!(ewram0_10.var76aa) || (ewram0_10.var76aa >= ewram0_10.var87DC)) ) {
- PlaySE(0x5);
- sub_80F5060(0);
- move_anim_execute();
- ewram0_10.var304 = 0x5;
- }
- if (gMain.newKeys & B_BUTTON) {
- PlaySE(0x5);
- sub_80F4FDC();
- move_anim_execute();
- ewram0_10.var304 = 0x9;
- }
- else if (gMain.newKeys & A_BUTTON) {
- if (ewram0_10.var76aa) {
- if (ewram0_10.var6dac) {
- PlaySE(0x5);
- ewram0_10.var304 = 0x7;
- }
- }
- else if ((ewram0_10.var87DC == ewram0_10.var87DA - 1)) {
- PlaySE(0x5);
- ewram0_10.var304 = 0x9;
- }
- }
+ u8 var1;
+ switch (ewram0_10.var304) {
+ case 0:
+ sub_80F4F78();
+ sub_80F5B38();
+ ewram0_10.var304 = 0x1;
+ break;
+ case 1:
+ if (sub_80F5B50()) return;
+ ewram0_10.var304 = 0x2;
+ break;
+ case 2:
+ sub_80F0174(0x1);
+ ewram0_10.var304 = 0x3;
+ break;
+ case 3:
+ if (sub_80F4FB4()) return;
+ sub_80F3C94();
+ sub_80F3D00();
+ ewram0_10.var304 = 0x4;
+ break;
+ case 4:
+ if ( (gMain.heldKeys & 0x40) && (ewram0_10.var87CB) && (!(ewram0_10.var76aa) || (ewram0_10.var87DC)) ) {
+ PlaySE(SE_SELECT);
+ sub_80F5060(0x1);
+ move_anim_execute();
+ ewram0_10.var304 = 0x5;
+ }
+ else if ( (gMain.heldKeys & 0x80) && (ewram0_10.var87CB) && (!(ewram0_10.var76aa) || (ewram0_10.var76aa >= ewram0_10.var87DC)) ) {
+ PlaySE(SE_SELECT);
+ sub_80F5060(0);
+ move_anim_execute();
+ ewram0_10.var304 = 0x5;
+ }
+ if (gMain.newKeys & B_BUTTON) {
+ PlaySE(SE_SELECT);
+ sub_80F4FDC();
+ move_anim_execute();
+ ewram0_10.var304 = 0x9;
+ }
+ else if (gMain.newKeys & A_BUTTON) {
+ if (ewram0_10.var76aa) {
+ if (ewram0_10.var6dac) {
+ PlaySE(SE_SELECT);
+ ewram0_10.var304 = 0x7;
+ }
+ }
+ else if ((ewram0_10.var87DC == ewram0_10.var87DA - 1)) {
+ PlaySE(SE_SELECT);
+ ewram0_10.var304 = 0x9;
+ }
+ }
/*
- if (gMain.heldKeys & 0x40) {
- if (ewram0_10.var87CB) {
- if (ewram0_10.var76aa) {
- if (!ewram0_10.var87DC) goto label1;
- }
- PlaySE(0x5);
- sub_80F5060(0x1);
- move_anim_execute();
- ewram0_10.var304 = 0x5;
+ if (gMain.heldKeys & 0x40) {
+ if (ewram0_10.var87CB) {
+ if (ewram0_10.var76aa) {
+ if (!ewram0_10.var87DC) goto label1;
+ }
+ PlaySE(SE_SELECT);
+ sub_80F5060(0x1);
+ move_anim_execute();
+ ewram0_10.var304 = 0x5;
- }
- else goto label1;
- }
- else goto label1;
- break;
+ }
+ else goto label1;
+ }
+ else goto label1;
+ break;
label1:
- if (gMain.heldKeys & 0x80) {
- if (ewram0_10.var87CB) {
- if (ewram0_10.var76aa) {
- if (!(ewram0_10.var76aa < ewram0_10.var87DC)) goto label2;
- }
- PlaySE(0x5);
- sub_80F5060(0x1);
- move_anim_execute();
- ewram0_10.var304 = 0x5;
- }
- else goto label2;
- }
- else goto label2;
- break;
+ if (gMain.heldKeys & 0x80) {
+ if (ewram0_10.var87CB) {
+ if (ewram0_10.var76aa) {
+ if (!(ewram0_10.var76aa < ewram0_10.var87DC)) goto label2;
+ }
+ PlaySE(SE_SELECT);
+ sub_80F5060(0x1);
+ move_anim_execute();
+ ewram0_10.var304 = 0x5;
+ }
+ else goto label2;
+ }
+ else goto label2;
+ break;
label2:
- if (gMain.newKeys & B_BUTTON) {
- PlaySE(0x5);
- sub_80F4FDC();
- move_anim_execute();
- ewram0_10.var304 = 0x9;
- }
- else if (gMain.newKeys & A_BUTTON) {
- if (!ewram0_10.var76aa) {
- if ((ewram0_10.var87DC == ewram0_10.var87DA - 1)) {
- PlaySE(0x5);
- ewram0_10.var304 = 0x9;
- }
- }
- else {
- PlaySE(0x5);
- ewram0_10.var304 = 0x9;
- }
- }
+ if (gMain.newKeys & B_BUTTON) {
+ PlaySE(SE_SELECT);
+ sub_80F4FDC();
+ move_anim_execute();
+ ewram0_10.var304 = 0x9;
+ }
+ else if (gMain.newKeys & A_BUTTON) {
+ if (!ewram0_10.var76aa) {
+ if ((ewram0_10.var87DC == ewram0_10.var87DA - 1)) {
+ PlaySE(SE_SELECT);
+ ewram0_10.var304 = 0x9;
+ }
+ }
+ else {
+ PlaySE(SE_SELECT);
+ ewram0_10.var304 = 0x9;
+ }
+ }
*/
- break;
+ break;
- case 5:
- if (gpu_sync_bg_show()) return;
- sub_80F3D00();
- ewram0_10.var304 = 0x6;
- break;
- case 6:
- if (sub_8055870()) return;
- ewram0_10.var304 = 0x4;
- break;
- case 7:
- sub_80EEFBC(0x3);
- sub_80F3668();
- ewram0_10.var304 = 0x8;
- break;
- case 8:
- if (sub_80F7500()) return;
- sub_80EEFBC(0x2);
- sub_80F3698();
- ewram0_10.var304 = 0x4;
- break;
- case 9:
- if (!(var1 = sub_80F5038())) {
- sub_80F0174(0);
- sub_80F2F48();
- BeginNormalPaletteFade(ewram0_10.var308, -1, 0x0, 0x10, var1);
- ewram0_10.var304 = 0xB;
- }
- break;
- case 0xA:
- if (gPaletteFade.active) return;
- sub_80F3CE8();
- sub_80F5BDC();
- if (!ewram0_10.var76aa) {
- sub_80F357C();
- sub_80F2D6C(0x1);
- sub_80F2D6C(0x6);
- sub_80EBDBC(&sub_80ECA10);
- }
- else {
- sub_80F3614();
- sub_80EBDBC(&sub_80ED3D0);
- }
- break;
- }
+ case 5:
+ if (gpu_sync_bg_show()) return;
+ sub_80F3D00();
+ ewram0_10.var304 = 0x6;
+ break;
+ case 6:
+ if (sub_8055870()) return;
+ ewram0_10.var304 = 0x4;
+ break;
+ case 7:
+ sub_80EEFBC(0x3);
+ sub_80F3668();
+ ewram0_10.var304 = 0x8;
+ break;
+ case 8:
+ if (sub_80F7500()) return;
+ sub_80EEFBC(0x2);
+ sub_80F3698();
+ ewram0_10.var304 = 0x4;
+ break;
+ case 9:
+ if (!(var1 = sub_80F5038())) {
+ sub_80F0174(0);
+ sub_80F2F48();
+ BeginNormalPaletteFade(ewram0_10.var308, -1, 0x0, 0x10, var1);
+ ewram0_10.var304 = 0xB;
+ }
+ break;
+ case 0xA:
+ if (gPaletteFade.active) return;
+ sub_80F3CE8();
+ sub_80F5BDC();
+ if (!ewram0_10.var76aa) {
+ sub_80F357C();
+ sub_80F2D6C(0x1);
+ sub_80F2D6C(0x6);
+ sub_80EBDBC(&sub_80ECA10);
+ }
+ else {
+ sub_80F3614();
+ sub_80EBDBC(&sub_80ED3D0);
+ }
+ break;
+ }
}
#else
__attribute__((naked))
void sub_80ED858() {
- asm_unified("push {r4,r5,lr}\n\
- sub sp, 0x4\n\
- ldr r1, _080ED878 @ =gSharedMem\n\
- movs r2, 0xC1\n\
- lsls r2, 2\n\
- adds r0, r1, r2\n\
- ldrh r0, [r0]\n\
- adds r5, r1, 0\n\
- cmp r0, 0xB\n\
- bls _080ED86E\n\
- b _080EDB7A\n\
+ asm_unified("push {r4,r5,lr}\n\
+ sub sp, 0x4\n\
+ ldr r1, _080ED878 @ =gSharedMem\n\
+ movs r2, 0xC1\n\
+ lsls r2, 2\n\
+ adds r0, r1, r2\n\
+ ldrh r0, [r0]\n\
+ adds r5, r1, 0\n\
+ cmp r0, 0xB\n\
+ bls _080ED86E\n\
+ b _080EDB7A\n\
_080ED86E:\n\
- lsls r0, 2\n\
- ldr r1, _080ED87C @ =_080ED880\n\
- adds r0, r1\n\
- ldr r0, [r0]\n\
- mov pc, r0\n\
- .align 2, 0\n\
+ lsls r0, 2\n\
+ ldr r1, _080ED87C @ =_080ED880\n\
+ adds r0, r1\n\
+ ldr r0, [r0]\n\
+ mov pc, r0\n\
+ .align 2, 0\n\
_080ED878: .4byte gSharedMem\n\
_080ED87C: .4byte _080ED880\n\
- .align 2, 0\n\
+ .align 2, 0\n\
_080ED880:\n\
- .4byte _080ED8B0\n\
- .4byte _080ED8CC\n\
- .4byte _080ED8EC\n\
- .4byte _080ED904\n\
- .4byte _080ED91A\n\
- .4byte _080EDA68\n\
- .4byte _080EDA8C\n\
- .4byte _080EDAA4\n\
- .4byte _080EDAC0\n\
- .4byte _080EDAE8\n\
- .4byte _080EDB7A\n\
- .4byte _080EDB28\n\
+ .4byte _080ED8B0\n\
+ .4byte _080ED8CC\n\
+ .4byte _080ED8EC\n\
+ .4byte _080ED904\n\
+ .4byte _080ED91A\n\
+ .4byte _080EDA68\n\
+ .4byte _080EDA8C\n\
+ .4byte _080EDAA4\n\
+ .4byte _080EDAC0\n\
+ .4byte _080EDAE8\n\
+ .4byte _080EDB7A\n\
+ .4byte _080EDB28\n\
_080ED8B0:\n\
- bl sub_80F4F78\n\
- bl sub_80F5B38\n\
- ldr r0, _080ED8C8 @ =gSharedMem\n\
- movs r4, 0xC1\n\
- lsls r4, 2\n\
- adds r0, r4\n\
- movs r1, 0x1\n\
- strh r1, [r0]\n\
- b _080EDB7A\n\
- .align 2, 0\n\
+ bl sub_80F4F78\n\
+ bl sub_80F5B38\n\
+ ldr r0, _080ED8C8 @ =gSharedMem\n\
+ movs r4, 0xC1\n\
+ lsls r4, 2\n\
+ adds r0, r4\n\
+ movs r1, 0x1\n\
+ strh r1, [r0]\n\
+ b _080EDB7A\n\
+ .align 2, 0\n\
_080ED8C8: .4byte gSharedMem\n\
_080ED8CC:\n\
- bl sub_80F5B50\n\
- lsls r0, 24\n\
- cmp r0, 0\n\
- beq _080ED8D8\n\
- b _080EDB7A\n\
+ bl sub_80F5B50\n\
+ lsls r0, 24\n\
+ cmp r0, 0\n\
+ beq _080ED8D8\n\
+ b _080EDB7A\n\
_080ED8D8:\n\
- ldr r0, _080ED8E8 @ =gSharedMem\n\
- movs r1, 0xC1\n\
- lsls r1, 2\n\
- adds r0, r1\n\
- movs r1, 0x2\n\
- strh r1, [r0]\n\
- b _080EDB7A\n\
- .align 2, 0\n\
+ ldr r0, _080ED8E8 @ =gSharedMem\n\
+ movs r1, 0xC1\n\
+ lsls r1, 2\n\
+ adds r0, r1\n\
+ movs r1, 0x2\n\
+ strh r1, [r0]\n\
+ b _080EDB7A\n\
+ .align 2, 0\n\
_080ED8E8: .4byte gSharedMem\n\
_080ED8EC:\n\
- movs r0, 0x1\n\
- bl sub_80F0174\n\
- ldr r0, _080ED900 @ =gSharedMem\n\
- movs r2, 0xC1\n\
- lsls r2, 2\n\
- adds r0, r2\n\
- movs r1, 0x3\n\
- strh r1, [r0]\n\
- b _080EDB7A\n\
- .align 2, 0\n\
+ movs r0, 0x1\n\
+ bl sub_80F0174\n\
+ ldr r0, _080ED900 @ =gSharedMem\n\
+ movs r2, 0xC1\n\
+ lsls r2, 2\n\
+ adds r0, r2\n\
+ movs r1, 0x3\n\
+ strh r1, [r0]\n\
+ b _080EDB7A\n\
+ .align 2, 0\n\
_080ED900: .4byte gSharedMem\n\
_080ED904:\n\
- bl sub_80F4FB4\n\
- lsls r0, 24\n\
- cmp r0, 0\n\
- beq _080ED910\n\
- b _080EDB7A\n\
+ bl sub_80F4FB4\n\
+ lsls r0, 24\n\
+ cmp r0, 0\n\
+ beq _080ED910\n\
+ b _080EDB7A\n\
_080ED910:\n\
- bl sub_80F3C94\n\
- bl sub_80F3D00\n\
- b _080EDAD4\n\
+ bl sub_80F3C94\n\
+ bl sub_80F3D00\n\
+ b _080EDAD4\n\
_080ED91A:\n\
- ldr r2, _080ED960 @ =gMain\n\
- ldrh r1, [r2, 0x2C]\n\
- movs r0, 0x40\n\
- ands r0, r1\n\
- adds r3, r2, 0\n\
- cmp r0, 0\n\
- beq _080ED970\n\
- ldr r1, _080ED964 @ =0x000087cb\n\
- adds r0, r5, r1\n\
- ldrb r0, [r0]\n\
- cmp r0, 0\n\
- beq _080ED970\n\
- ldr r2, _080ED968 @ =0x000076aa\n\
- adds r0, r5, r2\n\
- ldrb r0, [r0]\n\
- cmp r0, 0\n\
- beq _080ED948\n\
- ldr r4, _080ED96C @ =0x000087dc\n\
- adds r0, r5, r4\n\
- movs r1, 0\n\
- ldrsh r0, [r0, r1]\n\
- cmp r0, 0\n\
- beq _080ED970\n\
+ ldr r2, _080ED960 @ =gMain\n\
+ ldrh r1, [r2, 0x2C]\n\
+ movs r0, 0x40\n\
+ ands r0, r1\n\
+ adds r3, r2, 0\n\
+ cmp r0, 0\n\
+ beq _080ED970\n\
+ ldr r1, _080ED964 @ =0x000087cb\n\
+ adds r0, r5, r1\n\
+ ldrb r0, [r0]\n\
+ cmp r0, 0\n\
+ beq _080ED970\n\
+ ldr r2, _080ED968 @ =0x000076aa\n\
+ adds r0, r5, r2\n\
+ ldrb r0, [r0]\n\
+ cmp r0, 0\n\
+ beq _080ED948\n\
+ ldr r4, _080ED96C @ =0x000087dc\n\
+ adds r0, r5, r4\n\
+ movs r1, 0\n\
+ ldrsh r0, [r0, r1]\n\
+ cmp r0, 0\n\
+ beq _080ED970\n\
_080ED948:\n\
- movs r0, 0x5\n\
- bl PlaySE\n\
- movs r0, 0x1\n\
- bl sub_80F5060\n\
- bl move_anim_execute\n\
- movs r2, 0xC1\n\
- lsls r2, 2\n\
- adds r1, r5, r2\n\
- b _080ED9B8\n\
- .align 2, 0\n\
+ movs r0, 0x5\n\
+ bl PlaySE\n\
+ movs r0, 0x1\n\
+ bl sub_80F5060\n\
+ bl move_anim_execute\n\
+ movs r2, 0xC1\n\
+ lsls r2, 2\n\
+ adds r1, r5, r2\n\
+ b _080ED9B8\n\
+ .align 2, 0\n\
_080ED960: .4byte gMain\n\
_080ED964: .4byte 0x000087cb\n\
_080ED968: .4byte 0x000076aa\n\
_080ED96C: .4byte 0x000087dc\n\
_080ED970:\n\
- ldrh r1, [r3, 0x2C]\n\
- movs r0, 0x80\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- beq _080ED9CC\n\
- ldr r4, _080ED9C0 @ =0x000087cb\n\
- adds r0, r5, r4\n\
- ldrb r0, [r0]\n\
- cmp r0, 0\n\
- beq _080ED9CC\n\
- ldr r1, _080ED9C4 @ =0x000076aa\n\
- adds r0, r5, r1\n\
- ldrb r0, [r0]\n\
- cmp r0, 0\n\
- beq _080ED9A2\n\
- ldr r2, _080ED9C8 @ =0x000087dc\n\
- adds r0, r5, r2\n\
- subs r4, 0x57\n\
- adds r1, r5, r4\n\
- movs r4, 0\n\
- ldrsh r2, [r0, r4]\n\
- movs r4, 0\n\
- ldrsh r0, [r1, r4]\n\
- cmp r2, r0\n\
- bge _080ED9CC\n\
+ ldrh r1, [r3, 0x2C]\n\
+ movs r0, 0x80\n\
+ ands r0, r1\n\
+ cmp r0, 0\n\
+ beq _080ED9CC\n\
+ ldr r4, _080ED9C0 @ =0x000087cb\n\
+ adds r0, r5, r4\n\
+ ldrb r0, [r0]\n\
+ cmp r0, 0\n\
+ beq _080ED9CC\n\
+ ldr r1, _080ED9C4 @ =0x000076aa\n\
+ adds r0, r5, r1\n\
+ ldrb r0, [r0]\n\
+ cmp r0, 0\n\
+ beq _080ED9A2\n\
+ ldr r2, _080ED9C8 @ =0x000087dc\n\
+ adds r0, r5, r2\n\
+ subs r4, 0x57\n\
+ adds r1, r5, r4\n\
+ movs r4, 0\n\
+ ldrsh r2, [r0, r4]\n\
+ movs r4, 0\n\
+ ldrsh r0, [r1, r4]\n\
+ cmp r2, r0\n\
+ bge _080ED9CC\n\
_080ED9A2:\n\
- movs r0, 0x5\n\
- bl PlaySE\n\
- movs r0, 0\n\
- bl sub_80F5060\n\
- bl move_anim_execute\n\
- movs r0, 0xC1\n\
- lsls r0, 2\n\
- adds r1, r5, r0\n\
+ movs r0, 0x5\n\
+ bl PlaySE\n\
+ movs r0, 0\n\
+ bl sub_80F5060\n\
+ bl move_anim_execute\n\
+ movs r0, 0xC1\n\
+ lsls r0, 2\n\
+ adds r1, r5, r0\n\
_080ED9B8:\n\
- movs r0, 0x5\n\
- strh r0, [r1]\n\
- b _080EDB7A\n\
- .align 2, 0\n\
+ movs r0, 0x5\n\
+ strh r0, [r1]\n\
+ b _080EDB7A\n\
+ .align 2, 0\n\
_080ED9C0: .4byte 0x000087cb\n\
_080ED9C4: .4byte 0x000076aa\n\
_080ED9C8: .4byte 0x000087dc\n\
_080ED9CC:\n\
- ldrh r2, [r3, 0x2E]\n\
- movs r0, 0x2\n\
- ands r0, r2\n\
- cmp r0, 0\n\
- beq _080ED9F8\n\
- movs r0, 0x5\n\
- bl PlaySE\n\
- bl sub_80F4FDC\n\
- bl move_anim_execute\n\
- ldr r0, _080ED9F4 @ =gSharedMem\n\
- movs r1, 0xC1\n\
- lsls r1, 2\n\
- adds r0, r1\n\
- movs r1, 0x9\n\
- strh r1, [r0]\n\
- b _080EDB7A\n\
- .align 2, 0\n\
+ ldrh r2, [r3, 0x2E]\n\
+ movs r0, 0x2\n\
+ ands r0, r2\n\
+ cmp r0, 0\n\
+ beq _080ED9F8\n\
+ movs r0, 0x5\n\
+ bl PlaySE\n\
+ bl sub_80F4FDC\n\
+ bl move_anim_execute\n\
+ ldr r0, _080ED9F4 @ =gSharedMem\n\
+ movs r1, 0xC1\n\
+ lsls r1, 2\n\
+ adds r0, r1\n\
+ movs r1, 0x9\n\
+ strh r1, [r0]\n\
+ b _080EDB7A\n\
+ .align 2, 0\n\
_080ED9F4: .4byte gSharedMem\n\
_080ED9F8:\n\
- movs r0, 0x1\n\
- ands r0, r2\n\
- cmp r0, 0\n\
- bne _080EDA02\n\
- b _080EDB7A\n\
+ movs r0, 0x1\n\
+ ands r0, r2\n\
+ cmp r0, 0\n\
+ bne _080EDA02\n\
+ b _080EDB7A\n\
_080EDA02:\n\
- adds r4, r5, 0\n\
- ldr r2, _080EDA38 @ =0x000076aa\n\
- adds r0, r4, r2\n\
- ldrb r0, [r0]\n\
- cmp r0, 0\n\
- bne _080EDA44\n\
- ldr r1, _080EDA3C @ =0x000087dc\n\
- adds r0, r4, r1\n\
- movs r2, 0\n\
- ldrsh r1, [r0, r2]\n\
- ldr r2, _080EDA40 @ =0x000087da\n\
- adds r0, r4, r2\n\
- movs r2, 0\n\
- ldrsh r0, [r0, r2]\n\
- subs r0, 0x1\n\
- cmp r1, r0\n\
- beq _080EDA26\n\
- b _080EDB7A\n\
+ adds r4, r5, 0\n\
+ ldr r2, _080EDA38 @ =0x000076aa\n\
+ adds r0, r4, r2\n\
+ ldrb r0, [r0]\n\
+ cmp r0, 0\n\
+ bne _080EDA44\n\
+ ldr r1, _080EDA3C @ =0x000087dc\n\
+ adds r0, r4, r1\n\
+ movs r2, 0\n\
+ ldrsh r1, [r0, r2]\n\
+ ldr r2, _080EDA40 @ =0x000087da\n\
+ adds r0, r4, r2\n\
+ movs r2, 0\n\
+ ldrsh r0, [r0, r2]\n\
+ subs r0, 0x1\n\
+ cmp r1, r0\n\
+ beq _080EDA26\n\
+ b _080EDB7A\n\
_080EDA26:\n\
- movs r0, 0x5\n\
- bl PlaySE\n\
- movs r0, 0xC1\n\
- lsls r0, 2\n\
- adds r1, r4, r0\n\
- movs r0, 0x9\n\
- strh r0, [r1]\n\
- b _080EDB7A\n\
- .align 2, 0\n\
+ movs r0, 0x5\n\
+ bl PlaySE\n\
+ movs r0, 0xC1\n\
+ lsls r0, 2\n\
+ adds r1, r4, r0\n\
+ movs r0, 0x9\n\
+ strh r0, [r1]\n\
+ b _080EDB7A\n\
+ .align 2, 0\n\
_080EDA38: .4byte 0x000076aa\n\
_080EDA3C: .4byte 0x000087dc\n\
_080EDA40: .4byte 0x000087da\n\
_080EDA44:\n\
- ldr r1, _080EDA64 @ =0x00006dac\n\
- adds r0, r5, r1\n\
- ldrb r0, [r0]\n\
- cmp r0, 0\n\
- beq _080EDA50\n\
- b _080EDB7A\n\
+ ldr r1, _080EDA64 @ =0x00006dac\n\
+ adds r0, r5, r1\n\
+ ldrb r0, [r0]\n\
+ cmp r0, 0\n\
+ beq _080EDA50\n\
+ b _080EDB7A\n\
_080EDA50:\n\
- movs r0, 0x5\n\
- bl PlaySE\n\
- movs r2, 0xC1\n\
- lsls r2, 2\n\
- adds r1, r5, r2\n\
- movs r0, 0x7\n\
- strh r0, [r1]\n\
- b _080EDB7A\n\
- .align 2, 0\n\
+ movs r0, 0x5\n\
+ bl PlaySE\n\
+ movs r2, 0xC1\n\
+ lsls r2, 2\n\
+ adds r1, r5, r2\n\
+ movs r0, 0x7\n\
+ strh r0, [r1]\n\
+ b _080EDB7A\n\
+ .align 2, 0\n\
_080EDA64: .4byte 0x00006dac\n\
_080EDA68:\n\
- bl gpu_sync_bg_show\n\
- lsls r0, 24\n\
- cmp r0, 0\n\
- beq _080EDA74\n\
- b _080EDB7A\n\
+ bl gpu_sync_bg_show\n\
+ lsls r0, 24\n\
+ cmp r0, 0\n\
+ beq _080EDA74\n\
+ b _080EDB7A\n\
_080EDA74:\n\
- bl sub_80F3D00\n\
- ldr r0, _080EDA88 @ =gSharedMem\n\
- movs r4, 0xC1\n\
- lsls r4, 2\n\
- adds r0, r4\n\
- movs r1, 0x6\n\
- strh r1, [r0]\n\
- b _080EDB7A\n\
- .align 2, 0\n\
+ bl sub_80F3D00\n\
+ ldr r0, _080EDA88 @ =gSharedMem\n\
+ movs r4, 0xC1\n\
+ lsls r4, 2\n\
+ adds r0, r4\n\
+ movs r1, 0x6\n\
+ strh r1, [r0]\n\
+ b _080EDB7A\n\
+ .align 2, 0\n\
_080EDA88: .4byte gSharedMem\n\
_080EDA8C:\n\
- bl sub_8055870\n\
- cmp r0, 0\n\
- bne _080EDB7A\n\
- ldr r0, _080EDAA0 @ =gSharedMem\n\
- movs r1, 0xC1\n\
- lsls r1, 2\n\
- adds r0, r1\n\
- b _080EDADC\n\
- .align 2, 0\n\
+ bl sub_8055870\n\
+ cmp r0, 0\n\
+ bne _080EDB7A\n\
+ ldr r0, _080EDAA0 @ =gSharedMem\n\
+ movs r1, 0xC1\n\
+ lsls r1, 2\n\
+ adds r0, r1\n\
+ b _080EDADC\n\
+ .align 2, 0\n\
_080EDAA0: .4byte gSharedMem\n\
_080EDAA4:\n\
- movs r0, 0x3\n\
- bl sub_80EEFBC\n\
- bl sub_80F3668\n\
- ldr r0, _080EDABC @ =gSharedMem\n\
- movs r2, 0xC1\n\
- lsls r2, 2\n\
- adds r0, r2\n\
- movs r1, 0x8\n\
- strh r1, [r0]\n\
- b _080EDB7A\n\
- .align 2, 0\n\
+ movs r0, 0x3\n\
+ bl sub_80EEFBC\n\
+ bl sub_80F3668\n\
+ ldr r0, _080EDABC @ =gSharedMem\n\
+ movs r2, 0xC1\n\
+ lsls r2, 2\n\
+ adds r0, r2\n\
+ movs r1, 0x8\n\
+ strh r1, [r0]\n\
+ b _080EDB7A\n\
+ .align 2, 0\n\
_080EDABC: .4byte gSharedMem\n\
_080EDAC0:\n\
- bl sub_80F7500\n\
- lsls r0, 24\n\
- cmp r0, 0\n\
- bne _080EDB7A\n\
- movs r0, 0x2\n\
- bl sub_80EEFBC\n\
- bl sub_80F3698\n\
+ bl sub_80F7500\n\
+ lsls r0, 24\n\
+ cmp r0, 0\n\
+ bne _080EDB7A\n\
+ movs r0, 0x2\n\
+ bl sub_80EEFBC\n\
+ bl sub_80F3698\n\
_080EDAD4:\n\
- ldr r0, _080EDAE4 @ =gSharedMem\n\
- movs r4, 0xC1\n\
- lsls r4, 2\n\
- adds r0, r4\n\
+ ldr r0, _080EDAE4 @ =gSharedMem\n\
+ movs r4, 0xC1\n\
+ lsls r4, 2\n\
+ adds r0, r4\n\
_080EDADC:\n\
- movs r1, 0x4\n\
- strh r1, [r0]\n\
- b _080EDB7A\n\
- .align 2, 0\n\
+ movs r1, 0x4\n\
+ strh r1, [r0]\n\
+ b _080EDB7A\n\
+ .align 2, 0\n\
_080EDAE4: .4byte gSharedMem\n\
_080EDAE8:\n\
- bl sub_80F5038\n\
- lsls r0, 24\n\
- lsrs r4, r0, 24\n\
- cmp r4, 0\n\
- bne _080EDB7A\n\
- movs r0, 0\n\
- bl sub_80F0174\n\
- bl sub_80F2F48\n\
- ldr r5, _080EDB24 @ =gSharedMem\n\
- movs r1, 0xC2\n\
- lsls r1, 2\n\
- adds r0, r5, r1\n\
- ldr r0, [r0]\n\
- movs r1, 0x1\n\
- negs r1, r1\n\
- str r4, [sp]\n\
- movs r2, 0\n\
- movs r3, 0x10\n\
- bl BeginNormalPaletteFade\n\
- movs r2, 0xC1\n\
- lsls r2, 2\n\
- adds r1, r5, r2\n\
- movs r0, 0xB\n\
- strh r0, [r1]\n\
- b _080EDB7A\n\
- .align 2, 0\n\
+ bl sub_80F5038\n\
+ lsls r0, 24\n\
+ lsrs r4, r0, 24\n\
+ cmp r4, 0\n\
+ bne _080EDB7A\n\
+ movs r0, 0\n\
+ bl sub_80F0174\n\
+ bl sub_80F2F48\n\
+ ldr r5, _080EDB24 @ =gSharedMem\n\
+ movs r1, 0xC2\n\
+ lsls r1, 2\n\
+ adds r0, r5, r1\n\
+ ldr r0, [r0]\n\
+ movs r1, 0x1\n\
+ negs r1, r1\n\
+ str r4, [sp]\n\
+ movs r2, 0\n\
+ movs r3, 0x10\n\
+ bl BeginNormalPaletteFade\n\
+ movs r2, 0xC1\n\
+ lsls r2, 2\n\
+ adds r1, r5, r2\n\
+ movs r0, 0xB\n\
+ strh r0, [r1]\n\
+ b _080EDB7A\n\
+ .align 2, 0\n\
_080EDB24: .4byte gSharedMem\n\
_080EDB28:\n\
- ldr r0, _080EDB60 @ =gPaletteFade\n\
- ldrb r1, [r0, 0x7]\n\
- movs r0, 0x80\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- bne _080EDB7A\n\
- bl sub_80F3CE8\n\
- bl sub_80F5BDC\n\
- ldr r0, _080EDB64 @ =gSharedMem\n\
- ldr r4, _080EDB68 @ =0x000076aa\n\
- adds r0, r4\n\
- ldrb r0, [r0]\n\
- cmp r0, 0\n\
- bne _080EDB70\n\
- bl sub_80F357C\n\
- movs r0, 0x1\n\
- bl sub_80F2D6C\n\
- movs r0, 0x6\n\
- bl sub_80F2D6C\n\
- ldr r0, _080EDB6C @ =sub_80ECA10\n\
- bl sub_80EBDBC\n\
- b _080EDB7A\n\
- .align 2, 0\n\
+ ldr r0, _080EDB60 @ =gPaletteFade\n\
+ ldrb r1, [r0, 0x7]\n\
+ movs r0, 0x80\n\
+ ands r0, r1\n\
+ cmp r0, 0\n\
+ bne _080EDB7A\n\
+ bl sub_80F3CE8\n\
+ bl sub_80F5BDC\n\
+ ldr r0, _080EDB64 @ =gSharedMem\n\
+ ldr r4, _080EDB68 @ =0x000076aa\n\
+ adds r0, r4\n\
+ ldrb r0, [r0]\n\
+ cmp r0, 0\n\
+ bne _080EDB70\n\
+ bl sub_80F357C\n\
+ movs r0, 0x1\n\
+ bl sub_80F2D6C\n\
+ movs r0, 0x6\n\
+ bl sub_80F2D6C\n\
+ ldr r0, _080EDB6C @ =sub_80ECA10\n\
+ bl sub_80EBDBC\n\
+ b _080EDB7A\n\
+ .align 2, 0\n\
_080EDB60: .4byte gPaletteFade\n\
_080EDB64: .4byte gSharedMem\n\
_080EDB68: .4byte 0x000076aa\n\
_080EDB6C: .4byte sub_80ECA10\n\
_080EDB70:\n\
- bl sub_80F3614\n\
- ldr r0, _080EDB84 @ =sub_80ED3D0\n\
- bl sub_80EBDBC\n\
+ bl sub_80F3614\n\
+ ldr r0, _080EDB84 @ =sub_80ED3D0\n\
+ bl sub_80EBDBC\n\
_080EDB7A:\n\
- add sp, 0x4\n\
- pop {r4,r5}\n\
- pop {r0}\n\
- bx r0\n\
- .align 2, 0\n\
+ add sp, 0x4\n\
+ pop {r4,r5}\n\
+ pop {r0}\n\
+ bx r0\n\
+ .align 2, 0\n\
_080EDB84: .4byte sub_80ED3D0\n");
}
#endif
-void sub_80EDB88() {
- u8 var1;
- switch (ewram0_10.var304) {
- case 0:
- sub_80F1E84();
- sub_80F2D04(0);
- ewram0_10.var304++;
- break;
- case 1:
- if (sub_80F1F10()) return;
- sub_80EEFBC(0x4);
- ewram0_10.var304++;
- break;
- case 2:
- if (!(var1 = sub_80EEF34())) {
- BeginNormalPaletteFade(ewram0_10.var308, -1, 0x0, 0x10, var1);
+void sub_80EDB88()
+{
+ switch (ewram0_10.var304)
+ {
+ case 0:
+ sub_80F1E84();
+ sub_80F2D04(0);
+ ewram0_10.var304++;
+ break;
+ case 1:
+ if (!sub_80F1F10())
+ {
+ sub_80EEFBC(0x4);
ewram0_10.var304++;
}
- break;
- case 3:
- if (gPaletteFade.active) return;
- SetVBlankCallback(0);
- sub_80EED0C();
- sub_80EF814();
- ewram0_10.var304++;
- break;
- case 4:
- sub_80F2620();
- ewram0_10.var304++;
- break;
- case 5:
- sub_80F638C();
- ewram0_10.var304++;
- case 6:
- if (!sub_80F63D0()) {
- ewram0_10.var304 += 0x2;
- break;
+ break;
+ case 2:
+ if (!sub_80EEF34())
+ {
+ BeginNormalPaletteFade(ewram0_10.var308, -1, 0x0, 0x10, 0);
+ ewram0_10.var304++;
+ }
+ break;
+ case 3:
+ if (!gPaletteFade.active)
+ {
+ SetVBlankCallback(NULL);
+ sub_80EED0C();
+ sub_80EF814();
+ ewram0_10.var304++;
}
- ewram0_10.var304++;
- break;
- case 7:
- if (sub_8055870()) return;
- ewram0_10.var304--;
- break;
- case 8:
- if (sub_8055870()) return;
- ewram0_10.var304++;
- break;
- case 9:
- sub_80F0264(0x1);
- ewram0_10.var304++;
- case 10:
- if (sub_80F02A0()) return;
- ewram0_10.var304++;
- break;
- case 11:
- sub_80F2C80(0x2);
- ewram0_10.var304++;
- case 12:
- if (sub_80F2CBC(0x2)) return;
- ewram0_10.var304++;
- break;
- case 13:
- sub_80F3008(0x1);
- ewram0_10.var304++;
- break;
- case 14:
- if (sub_8055870()) return;
- ewram0_10.var304++;
- break;
- case 15:
- BeginNormalPaletteFade(ewram0_10.var308, -1, 0x10, 0, 0);
- SetVBlankCallback(&sub_80EBD18);
- ewram0_10.var304++;
- break;
- case 16:
- sub_80EED2C(0x4);
- ewram0_10.var304++;
- break;
- case 17:
- if (gPaletteFade.active) return;
- sub_80EBDBC(&sub_80EDDBC);
- break;
- }
+ break;
+ case 4:
+ sub_80F2620();
+ ewram0_10.var304++;
+ break;
+ case 5:
+ sub_80F638C();
+ ewram0_10.var304++;
+ case 6:
+ if (!sub_80F63D0())
+ ewram0_10.var304 += 2;
+ else
+ ewram0_10.var304 += 1;
+ break;
+ case 7:
+ if (!sub_8055870())
+ ewram0_10.var304--;
+ break;
+ case 8:
+ if (!sub_8055870())
+ ewram0_10.var304++;
+ break;
+ case 9:
+ sub_80F0264(0x1);
+ ewram0_10.var304++;
+ case 10:
+ if (!sub_80F02A0())
+ ewram0_10.var304++;
+ break;
+ case 11:
+ sub_80F2C80(0x2);
+ ewram0_10.var304++;
+ case 12:
+ if (!sub_80F2CBC(0x2))
+ ewram0_10.var304++;
+ break;
+ case 13:
+ sub_80F3008(0x1);
+ ewram0_10.var304++;
+ break;
+ case 14:
+ if (!sub_8055870())
+ ewram0_10.var304++;
+ break;
+ case 15:
+ BeginNormalPaletteFade(ewram0_10.var308, -1, 0x10, 0, 0);
+ SetVBlankCallback(&sub_80EBD18);
+ ewram0_10.var304++;
+ break;
+ case 16:
+ sub_80EED2C(0x4);
+ ewram0_10.var304++;
+ break;
+ case 17:
+ if (!gPaletteFade.active)
+ sub_80EBDBC(&sub_80EDDBC);
+ break;
+ }
}
-void sub_80EDDBC() {
- switch (ewram0_10.var304) {
- case 0:
- switch (sub_80F5DD4()) {
- case 1:
- PlaySE(0x5);
+void sub_80EDDBC()
+{
+ switch (ewram0_10.var304)
+ {
+ case 0:
+ switch (sub_80F5DD4())
+ {
+ case 1:
+ PlaySE(SE_SELECT);
+ ShowMapNamePopUpWindow();
+ break;
+ case 2:
+ PlaySE(SE_SELECT);
+ ewram0_10.var304++;
+ break;
+ default:
+ if (gMain.newKeys & A_BUTTON)
+ {
+ PlaySE(SE_SELECT);
+ sub_80EBDBC(&sub_80EDEE4);
+ }
+ else if (gMain.newKeys & B_BUTTON)
+ {
+ PlaySE(SE_SELECT);
+ sub_80EBDBC(&sub_80EDE70);
+ }
+ break;
+ }
+ break;
+ case 1:
+ if (!sub_80F0718())
+ {
ShowMapNamePopUpWindow();
- break;
- case 2:
- PlaySE(0x5);
+ sub_80F3264();
ewram0_10.var304++;
- break;
- default:
- if (gMain.newKeys & A_BUTTON) {
- PlaySE(0x5);
- sub_80EBDBC(&sub_80EDEE4);
- }
- else if (gMain.newKeys & B_BUTTON) {
- PlaySE(0x5);
- sub_80EBDBC(&sub_80EDE70);
- }
- break;
}
- break;
- case 1:
- if (sub_80F0718()) return;
- ShowMapNamePopUpWindow();
- sub_80F3264();
- ewram0_10.var304++;
- break;
- case 2:
- if (sub_8055870()) return;
- ewram0_10.var304 = 0;
- break;
+ break;
+ case 2:
+ if (!sub_8055870())
+ ewram0_10.var304 = 0;
+ break;
- }
+ }
}
-void sub_80EDE70() {
- switch (ewram0_10.var304) {
- case 0:
- BeginNormalPaletteFade(ewram0_10.var308, -1, 0, 0x10, 0);
- ewram0_10.var304++;
- break;
- case 1:
- if (gPaletteFade.active) return;
- sub_80F3130();
- sub_80F2D6C(0x2);
- ewram0_10.var304++;
- break;
- case 2:
- sub_80EBDBC(&sub_80EC00C);
- break;
- }
+void sub_80EDE70()
+{
+ switch (ewram0_10.var304)
+ {
+ case 0:
+ BeginNormalPaletteFade(ewram0_10.var308, -1, 0, 0x10, 0);
+ ewram0_10.var304++;
+ break;
+ case 1:
+ if (!gPaletteFade.active)
+ {
+ sub_80F3130();
+ sub_80F2D6C(0x2);
+ ewram0_10.var304++;
+ }
+ break;
+ case 2:
+ sub_80EBDBC(&sub_80EC00C);
+ break;
+ }
}
-void sub_80EDEE4() {
- switch (ewram0_10.var304) {
- case 0:
- BeginNormalPaletteFade(ewram0_10.var308, -1, 0, 0x10, 0);
- ewram0_10.var304++;
- break;
- case 1:
- if (gPaletteFade.active) return;
- SetVBlankCallback(NULL);
- sub_80EED0C();
- sub_80F3130();
- ewram0_10.var304++;
- break;
- case 2:
- sub_80F66E0();
- sub_80EEE08();
- ewram0_10.var304++;
- break;
- case 3:
- if (sub_80F1080()) return;
- ewram0_10.var304++;
- break;
- case 4:
- sub_80EEFBC(0x5);
- sub_80F38B8();
- ewram0_10.var304++;
- case 5:
- if (sub_80F38EC()) return;
- ewram0_10.var304++;
- break;
- case 6:
- if (sub_8055870()) return;
- ewram0_10.var304++;
- break;
- case 7:
- BeginNormalPaletteFade(ewram0_10.var308, -1, 0x10, 0, 0);
- SetVBlankCallback(&sub_80EBD18);
- ewram0_10.var304++;
- break;
- case 8:
- sub_80EED2C(0x3);
- ewram0_10.var304++;
- break;
- case 9:
- if (gPaletteFade.active) return;
- ewram0_10.var304++;
- break;
- case 10:
- if (sub_80F170C()) return;
- sub_80EBDBC(&sub_80EE06C);
- break;
- }
+void sub_80EDEE4()
+{
+ switch (ewram0_10.var304)
+ {
+ case 0:
+ BeginNormalPaletteFade(ewram0_10.var308, -1, 0, 0x10, 0);
+ ewram0_10.var304++;
+ break;
+ case 1:
+ if (!gPaletteFade.active)
+ {
+ SetVBlankCallback(NULL);
+ sub_80EED0C();
+ sub_80F3130();
+ ewram0_10.var304++;
+ }
+ break;
+ case 2:
+ sub_80F66E0();
+ sub_80EEE08();
+ ewram0_10.var304++;
+ break;
+ case 3:
+ if (!sub_80F1080())
+ ewram0_10.var304++;
+ break;
+ case 4:
+ sub_80EEFBC(0x5);
+ sub_80F38B8();
+ ewram0_10.var304++;
+ case 5:
+ if (!sub_80F38EC())
+ ewram0_10.var304++;
+ break;
+ case 6:
+ if (!sub_8055870())
+ ewram0_10.var304++;
+ break;
+ case 7:
+ BeginNormalPaletteFade(ewram0_10.var308, -1, 0x10, 0, 0);
+ SetVBlankCallback(&sub_80EBD18);
+ ewram0_10.var304++;
+ break;
+ case 8:
+ sub_80EED2C(0x3);
+ ewram0_10.var304++;
+ break;
+ case 9:
+ if (!gPaletteFade.active)
+ ewram0_10.var304++;
+ break;
+ case 10:
+ if (!sub_80F170C())
+ sub_80EBDBC(&sub_80EE06C);
+ break;
+ }
}
-void sub_80EE06C() {
- u32 var1;
- u16 var2;
- switch (ewram0_10.var304) {
- case 0:
- sub_80F15A8();
- ewram0_10.var304++;
- break;
- case 1:
- if (gMain.newAndRepeatedKeys & 0x40) {
- if (ewram0_10.var87DC) {
- PlaySE(0x5);
- sub_80F6A4C(-1);
- ewram0_10.var304++;
- }
- else goto label1;
- }
- else goto label1;
- break;
-label1:
- if (gMain.newAndRepeatedKeys & 0x80) {
- if (ewram0_10.var87DC < ewram0_10.var8774) {
- PlaySE(0x5);
- sub_80F6A4C(1);
- ewram0_10.var304++;
- }
- else goto label2;
+void sub_80EE06C()
+{
+ switch (ewram0_10.var304)
+ {
+ case 0:
+ sub_80F15A8();
+ ewram0_10.var304++;
+ break;
+ case 1:
+ if ((gMain.newAndRepeatedKeys & 0x40) && (ewram0_10.var87DC))
+ {
+ PlaySE(SE_SELECT);
+ sub_80F6A4C(-1);
+ ewram0_10.var304++;
+ }
+ else if ((gMain.newAndRepeatedKeys & 0x80) && ewram0_10.var87DC < ewram0_10.var8774)
+ {
+ PlaySE(SE_SELECT);
+ sub_80F6A4C(1);
+ ewram0_10.var304++;
+ }
+ else if (gMain.newKeys & A_BUTTON)
+ {
+ PlaySE(SE_SELECT);
+ sub_80EEFBC(0xB);
+ ewram0_10.var304 = 0x4;
+ }
+ else if (gMain.newKeys & B_BUTTON)
+ {
+ PlaySE(SE_SELECT);
+ sub_80EBDBC(&sub_80EE294);
+ }
+ break;
+ case 2:
+ if (!sub_80F6AF0())
+ ewram0_10.var304++;
+ break;
+ case 3:
+ if (!sub_8055870())
+ ewram0_10.var304 = 0;
+ break;
+ case 4:
+ sub_80F3B00();
+ ewram0_10.var304++;
+ break;
+ case 5:
+ if (!sub_80F3B58())
+ {
+ sub_80F1494();
+ ewram0_10.var304++;
+ sub_80EED9C();
}
- else goto label2;
- break;
-label2:
- if (gMain.newKeys & A_BUTTON) {
- PlaySE(0x5);
- sub_80EEFBC(0xB);
+ break;
+ case 6:
+ switch (sub_80F68E8())
+ {
+ case 1:
+ PlaySE(SE_SELECT);
+ sub_80F3B94();
+ ewram0_10.var304 = 0x7;
+ break;
+ default:
+ case 0:
+ if (gMain.newKeys & B_BUTTON)
+ {
+ PlaySE(SE_SELECT);
+ sub_80F3B94();
+ ewram0_10.var304 = 0x8;
+ }
+ break;
+ }
+ break;
+ case 7:
+ if (!sub_80F3BD4())
ewram0_10.var304 = 0x4;
+ break;
+ case 8:
+ if (!sub_80F3BD4())
+ {
+ sub_80EEFBC(0x5);
+ ewram0_10.var304 = 0;
}
- else if (gMain.newKeys & B_BUTTON) {
- PlaySE(0x5);
- sub_80EBDBC(&sub_80EE294);
- }
- break;
- case 2:
- if (sub_80F6AF0()) return;
- ewram0_10.var304++;
- break;
- case 3:
- var1 = sub_8055870();
- if (var1) return;
- ewram0_10.var304 = var1;
- break;
- case 4:
- sub_80F3B00();
- ewram0_10.var304++;
- break;
- case 5:
- if (sub_80F3B58()) return;
- sub_80F1494();
- ewram0_10.var304++;
- sub_80EED9C();
- break;
- case 6:
- switch (sub_80F68E8()) {
- case 1:
- PlaySE(0x5);
- sub_80F3B94();
- ewram0_10.var304 = 0x7;
- break;
- default:
- case 0:
- if (gMain.newKeys & B_BUTTON) {
- PlaySE(0x5);
- sub_80F3B94();
- ewram0_10.var304 = 0x8;
- }
- break;
- }
- break;
- case 7:
- if (sub_80F3BD4()) return;
- ewram0_10.var304 = 0x4;
- break;
- case 8:
- var2 = sub_80F3BD4();
- if (var2) return;
- sub_80EEFBC(0x5);
- ewram0_10.var304 = var2;
- break;
- }
+ break;
+ }
}
-void sub_80EE294() {
- switch (ewram0_10.var304) {
- case 0:
- BeginNormalPaletteFade(ewram0_10.var308, -1, 0, 0x10, 0);
- ewram0_10.var304++;
- break;
- case 1:
- if (gPaletteFade.active) return;
- SetVBlankCallback(NULL);
- sub_80EED0C();
- sub_80F3C2C();
- sub_80EEE08();
- ewram0_10.var304++;
- break;
- case 2:
- sub_80F6134();
- sub_80F0264(0x1);
- ewram0_10.var304++;
- case 3:
- if (sub_80F02A0()) return;
- ewram0_10.var304++;
- break;
- case 4:
- sub_80EEFBC(0x4);
- sub_80F3008(0x1);
- SetVBlankCallback(&sub_80EBD18);
- ewram0_10.var304++;
- break;
- case 5:
- if (sub_8055870()) return;
- ewram0_10.var304++;
- break;
- case 6:
- BeginNormalPaletteFade(ewram0_10.var308, -1, 0x10, 0, 0);
- ewram0_10.var304++;
- break;
- case 7:
- sub_80EED2C(0x4);
- ewram0_10.var304++;
- break;
- case 8:
- if (gPaletteFade.active) return;
- sub_80EBDBC(&sub_80EDDBC);
- break;
- }
+void sub_80EE294()
+{
+ switch (ewram0_10.var304)
+ {
+ case 0:
+ BeginNormalPaletteFade(ewram0_10.var308, -1, 0, 0x10, 0);
+ ewram0_10.var304++;
+ break;
+ case 1:
+ if (!gPaletteFade.active)
+ {
+ SetVBlankCallback(NULL);
+ sub_80EED0C();
+ sub_80F3C2C();
+ sub_80EEE08();
+ ewram0_10.var304++;
+ }
+ break;
+ case 2:
+ sub_80F6134();
+ sub_80F0264(0x1);
+ ewram0_10.var304++;
+ case 3:
+ if (!sub_80F02A0())
+ ewram0_10.var304++;
+ break;
+ case 4:
+ sub_80EEFBC(0x4);
+ sub_80F3008(0x1);
+ SetVBlankCallback(&sub_80EBD18);
+ ewram0_10.var304++;
+ break;
+ case 5:
+ if (!sub_8055870())
+ ewram0_10.var304++;
+ break;
+ case 6:
+ BeginNormalPaletteFade(ewram0_10.var308, -1, 0x10, 0, 0);
+ ewram0_10.var304++;
+ break;
+ case 7:
+ sub_80EED2C(0x4);
+ ewram0_10.var304++;
+ break;
+ case 8:
+ if (!gPaletteFade.active)
+ sub_80EBDBC(&sub_80EDDBC);
+ break;
+ }
}
-void sub_80EE3D8() {
- u8 var1;
- switch (ewram0_10.var304) {
- case 0:
- sub_80F1E84();
- sub_80F2D04(0);
- ewram0_10.var304++;
- break;
- case 1:
- if (sub_80F1F10()) return;
- sub_80EEFBC(0x9);
- ewram0_10.var304++;
- break;
- case 2:
- if (!(var1 = sub_80EEF34())) {
- BeginNormalPaletteFade(ewram0_10.var308, -1, 0x0, 0x10, var1);
+void sub_80EE3D8()
+{
+ switch (ewram0_10.var304)
+ {
+ case 0:
+ sub_80F1E84();
+ sub_80F2D04(0);
+ ewram0_10.var304++;
+ break;
+ case 1:
+ if (!sub_80F1F10())
+ {
+ sub_80EEFBC(0x9);
ewram0_10.var304++;
}
- break;
- case 3:
- if (gPaletteFade.active) return;
- SetVBlankCallback(NULL);
- sub_80EED0C();
- sub_80EF814();
- sub_80EEE08();
- ewram0_10.var304++;
- break;
- case 4:
- sub_80F2620();
- ewram0_10.var304++;
- break;
- case 5:
- sub_80F0264(0x2);
- ewram0_10.var304++;
- case 6:
- if (sub_80F02A0()) return;
- ewram0_10.var304++;
- break;
- case 7:
- sub_80F2C80(0x3);
- ewram0_10.var304++;
- case 8:
- if (sub_80F2CBC(0x3)) return;
- ewram0_10.var304++;
- break;
- case 9:
- sub_80F3008(0x2);
- ewram0_10.var304++;
- break;
- case 10:
- if (sub_8055870()) return;
- ewram0_10.var304++;
- break;
- case 11:
- sub_80F6F10();
- BeginNormalPaletteFade(ewram0_10.var308, -1, 0x10, 0, 0);
- SetVBlankCallback(&sub_80EBD68);
- ewram0_10.var304++;
- break;
- case 12:
- sub_80EED2C(0x5);
- ewram0_10.var304++;
- break;
- case 13:
- if (gPaletteFade.active) return;
- sub_80EBDBC(&sub_80EE58C);
- break;
- }
+ break;
+ case 2:
+ if (!sub_80EEF34())
+ {
+ BeginNormalPaletteFade(ewram0_10.var308, -1, 0x0, 0x10, 0);
+ ewram0_10.var304++;
+ }
+ break;
+ case 3:
+ if (!gPaletteFade.active)
+ {
+ SetVBlankCallback(NULL);
+ sub_80EED0C();
+ sub_80EF814();
+ sub_80EEE08();
+ ewram0_10.var304++;
+ }
+ break;
+ case 4:
+ sub_80F2620();
+ ewram0_10.var304++;
+ break;
+ case 5:
+ sub_80F0264(0x2);
+ ewram0_10.var304++;
+ case 6:
+ if (!sub_80F02A0())
+ ewram0_10.var304++;
+ break;
+ case 7:
+ sub_80F2C80(0x3);
+ ewram0_10.var304++;
+ case 8:
+ if (!sub_80F2CBC(0x3))
+ ewram0_10.var304++;
+ break;
+ case 9:
+ sub_80F3008(0x2);
+ ewram0_10.var304++;
+ break;
+ case 10:
+ if (!sub_8055870())
+ ewram0_10.var304++;
+ break;
+ case 11:
+ sub_80F6F10();
+ BeginNormalPaletteFade(ewram0_10.var308, -1, 0x10, 0, 0);
+ SetVBlankCallback(&sub_80EBD68);
+ ewram0_10.var304++;
+ break;
+ case 12:
+ sub_80EED2C(0x5);
+ ewram0_10.var304++;
+ break;
+ case 13:
+ if (!gPaletteFade.active)
+ sub_80EBDBC(&sub_80EE58C);
+ break;
+ }
}
-void sub_80EE58C() {
- switch (ewram0_10.var304) {
- case 0:
- switch (sub_80F5DD4()) {
- case 1:
- PlaySE(0x5);
+void sub_80EE58C()
+{
+ switch (ewram0_10.var304)
+ {
+ case 0:
+ switch (sub_80F5DD4())
+ {
+ case 1:
+ PlaySE(SE_SELECT);
+ sub_80F0FFC(ewram0_10.var876E);
+ break;
+ case 2:
+ PlaySE(SE_SELECT);
+ ewram0_10.var304++;
+ break;
+ default:
+ if (gMain.newKeys & A_BUTTON)
+ {
+ PlaySE(SE_SELECT);
+ sub_80EBDBC(&sub_80EE658);
+ }
+ else if (gMain.newKeys & B_BUTTON)
+ {
+ PlaySE(SE_SELECT);
+ sub_80EBDBC(&sub_80EE8F4);
+ }
+ break;
+ }
+ break;
+ case 1:
+ if (!sub_80F0718())
+ {
sub_80F0FFC(ewram0_10.var876E);
- break;
- case 2:
- PlaySE(0x5);
+ sub_80F3264();
ewram0_10.var304++;
- break;
- default:
- if (gMain.newKeys & A_BUTTON) {
- PlaySE(0x5);
- sub_80EBDBC(&sub_80EE658);
- }
- else if (gMain.newKeys & B_BUTTON) {
- PlaySE(0x5);
- sub_80EBDBC(&sub_80EE8F4);
- }
- break;
}
- break;
- case 1:
- if (sub_80F0718()) return;
- sub_80F0FFC(ewram0_10.var876E);
- sub_80F3264();
- ewram0_10.var304++;
- break;
- case 2:
- if (sub_8055870()) return;
- ewram0_10.var304 = 0;
- break;
- }
+ break;
+ case 2:
+ if (!sub_8055870())
+ ewram0_10.var304 = 0;
+ break;
+ }
}
-void sub_80EE658() {
- switch (ewram0_10.var304) {
- case 0:
- sub_80F3294(0x1);
- sub_80EEFBC(0xA);
- sub_80F0B24();
- ewram0_10.var304++;
- break;
- case 1:
- if (sub_80F0B44()) return;
- ewram0_10.var304++;
- break;
- case 2:
- sub_80F0F64();
- ewram0_10.var304++;
- break;
- case 3:
- if (sub_80F0FEC()) return;
- sub_80F6FB8(0x1);
- ewram0_10.var304++;
- break;
- case 4:
- sub_80F6DB8();
- ewram0_10.var304++;
- break;
- case 5:
- sub_80F700C((u8 *)(gSharedMem + 0x8788), *(u16 *)(gSharedMem + 0x8788 - 0x1A));
- sub_80F42C4((u8 *)(gSharedMem + 0x8788));
- ewram0_10.var304++;
- break;
- case 6:
- sub_80F0CD8();
- ewram0_10.var304++;
- case 7:
- if (sub_80F6E9C()) return;
- if (sub_80F0D5C()) return;
- ewram0_10.var304++;
- break;
- case 8:
- if (gMain.heldKeys & 0x40) {
- if (ewram0_10.var87DC) {
- PlaySE(0x5);
- sub_80F708C(-1);
- ewram0_10.var304 = 0x10;
- }
- else goto label1;
- }
- else goto label1;
- break;
-label1:
- if (gMain.heldKeys & 0x80) {
- if (ewram0_10.var87DC < ewram0_10.var8774) {
- PlaySE(0x5);
- sub_80F708C(1);
- ewram0_10.var304 = 0x10;
- }
- else goto label2;
+void sub_80EE658()
+{
+ switch (ewram0_10.var304)
+ {
+ case 0:
+ sub_80F3294(0x1);
+ sub_80EEFBC(0xA);
+ sub_80F0B24();
+ ewram0_10.var304++;
+ break;
+ case 1:
+ if (!sub_80F0B44())
+ ewram0_10.var304++;
+ break;
+ case 2:
+ sub_80F0F64();
+ ewram0_10.var304++;
+ break;
+ case 3:
+ if (!sub_80F0FEC())
+ {
+ sub_80F6FB8(0x1);
+ ewram0_10.var304++;
}
- else goto label2;
- break;
-label2:
- if (gMain.newKeys & B_BUTTON) {
- PlaySE(0x5);
- sub_80F4394();
- sub_80F0EC0();
+ break;
+ case 4:
+ sub_80F6DB8();
+ ewram0_10.var304++;
+ break;
+ case 5:
+ sub_80F700C((u8 *)(gSharedMem + 0x8788), *(u16 *)(gSharedMem + 0x8788 - 0x1A));
+ sub_80F42C4((u8 *)(gSharedMem + 0x8788));
+ ewram0_10.var304++;
+ break;
+ case 6:
+ sub_80F0CD8();
+ ewram0_10.var304++;
+ case 7:
+ if (!sub_80F6E9C() && !sub_80F0D5C())
+ ewram0_10.var304++;
+ break;
+ case 8:
+ if ((gMain.heldKeys & 0x40) && ewram0_10.var87DC)
+ {
+ PlaySE(SE_SELECT);
+ sub_80F708C(-1);
+ ewram0_10.var304 = 0x10;
+ }
+ else if ((gMain.heldKeys & 0x80) && ewram0_10.var87DC < ewram0_10.var8774)
+ {
+ PlaySE(SE_SELECT);
+ sub_80F708C(1);
+ ewram0_10.var304 = 0x10;
+ }
+ else if (gMain.newKeys & B_BUTTON)
+ {
+ PlaySE(SE_SELECT);
+ sub_80F4394();
+ sub_80F0EC0();
+ ewram0_10.var304++;
+ }
+ break;
+ case 9:
+ if (!sub_80F6ED4() && !sub_80F0EF4())
+ {
+ sub_80F6FB8(0);
+ sub_80F2FB0();
ewram0_10.var304++;
}
- break;
- case 9:
- if (sub_80F6ED4()) return;
- if (sub_80F0EF4()) return;
- sub_80F6FB8(0);
- sub_80F2FB0();
- ewram0_10.var304++;
- break;
- case 10:
- sub_80F6134();
- ewram0_10.var304++;
- break;
- case 11:
- sub_80F0FA0();
- ewram0_10.var304++;
- break;
- case 12:
- if (sub_80F0FEC()) return;
- ewram0_10.var304++;
- break;
- case 13:
- sub_80F0C28();
- ewram0_10.var304++;
- break;
- case 14:
- if (sub_80F0C48()) return;
- ewram0_10.var304++;
- break;
- case 15:
- sub_80EEFBC(0x9);
- sub_80F3294(0);
- sub_80EBDBC(&sub_80EE58C);
- sub_80EED9C();
- break;
- case 16:
- if (sub_80F70FC()) return;
- ewram0_10.var304++;
- break;
- case 17:
- if (sub_8055870()) return;
- ewram0_10.var304 = 0x8;
- break;
- }
+ break;
+ case 10:
+ sub_80F6134();
+ ewram0_10.var304++;
+ break;
+ case 11:
+ sub_80F0FA0();
+ ewram0_10.var304++;
+ break;
+ case 12:
+ if (!sub_80F0FEC())
+ ewram0_10.var304++;
+ break;
+ case 13:
+ sub_80F0C28();
+ ewram0_10.var304++;
+ break;
+ case 14:
+ if (!sub_80F0C48())
+ ewram0_10.var304++;
+ break;
+ case 15:
+ sub_80EEFBC(0x9);
+ sub_80F3294(0);
+ sub_80EBDBC(&sub_80EE58C);
+ sub_80EED9C();
+ break;
+ case 16:
+ if (!sub_80F70FC())
+ ewram0_10.var304++;
+ break;
+ case 17:
+ if (!sub_8055870())
+ ewram0_10.var304 = 0x8;
+ break;
+ }
}
-void sub_80EE8F4() {
- switch (ewram0_10.var304) {
- case 0:
- BeginNormalPaletteFade(ewram0_10.var308, -1, 0, 0x10, 0);
- ewram0_10.var304++;
- break;
- case 1:
- if (gPaletteFade.active) return;
- sub_80F3130();
- sub_80F2D6C(0x2);
- sub_80F6FFC();
- ewram0_10.var304++;
- break;
- case 2:
- sub_80EBDBC(&sub_80EC00C);
- break;
- }
+void sub_80EE8F4()
+{
+ switch (ewram0_10.var304)
+ {
+ case 0:
+ BeginNormalPaletteFade(ewram0_10.var308, -1, 0, 0x10, 0);
+ ewram0_10.var304++;
+ break;
+ case 1:
+ if (!gPaletteFade.active)
+ {
+ sub_80F3130();
+ sub_80F2D6C(0x2);
+ sub_80F6FFC();
+ ewram0_10.var304++;
+ }
+ break;
+ case 2:
+ sub_80EBDBC(&sub_80EC00C);
+ break;
+ }
}
-void sub_80EE96C() {
- u16 var1 = ewram0_10.var304;
- if (!var1) {
- PlaySE(0x6F);
- BeginNormalPaletteFade(-1, 0, 0, 0x10, var1);
- ewram0_10.var304++;
- }
- else {
- if (gPaletteFade.active) return;
- sub_80F5BDC();
- sub_805469C();
- }
+void sub_80EE96C()
+{
+ if (!ewram0_10.var304)
+ {
+ PlaySE(0x6F);
+ BeginNormalPaletteFade(-1, 0, 0, 0x10, 0);
+ ewram0_10.var304++;
+ }
+ else
+ {
+ if (!gPaletteFade.active)
+ {
+ sub_80F5BDC();
+ sub_805469C();
+ }
+ }
}
-void sub_80EE9C0(u8 param1, u8 param2, u8 param3) {
- sub_80F1E84();
- ewram0_10.var6e14 = param1;
- ewram0_10.var6e15 = param2;
- ewram0_10.var6e16 = 0;
- ewram0_10.var6e17 = param3;
+void sub_80EE9C0(u8 param1, u8 param2, u8 param3)
+{
+ sub_80F1E84();
+ ewram0_10.var6e14 = param1;
+ ewram0_10.var6e15 = param2;
+ ewram0_10.var6e16 = 0;
+ ewram0_10.var6e17 = param3;
}
#if 0
bool8 sub_80EEA0C() {
- switch (ewram0_10.var6e16) {
- case 0:
- if (sub_80F1F10()) return 1;
- if (ewram0_10.var6e17 != 0xC) {
- ewram0_10.var6e16 = 0x1;
- return 1;
- }
- else {
- ewram0_10.var6e16 = 0x3;
- return 1;
- }
- case 1:
- sub_80F2C80(ewram0_10.var6e17);
- ewram0_10.var6e16++;
- case 2:
- if (sub_80F2CBC(ewram0_10.var6e17)) return 1;
- ewram0_10.var6e16++;
- case 3:
-
- }
+ switch (ewram0_10.var6e16) {
+ case 0:
+ if (sub_80F1F10()) return 1;
+ if (ewram0_10.var6e17 != 0xC) {
+ ewram0_10.var6e16 = 0x1;
+ return 1;
+ }
+ else {
+ ewram0_10.var6e16 = 0x3;
+ return 1;
+ }
+ case 1:
+ sub_80F2C80(ewram0_10.var6e17);
+ ewram0_10.var6e16++;
+ case 2:
+ if (sub_80F2CBC(ewram0_10.var6e17)) return 1;
+ ewram0_10.var6e16++;
+ case 3:
+
+ }
}
#else
__attribute__((naked))
bool8 sub_80EEA0C() {
- asm_unified(
- "push {r4,lr}\n\
- ldr r1, _080EEA28 @ =gSharedMem\n\
- ldr r2, _080EEA2C @ =0x00006e16\n\
- adds r0, r1, r2\n\
- ldrb r0, [r0]\n\
- adds r3, r1, 0\n\
- cmp r0, 0x8\n\
- bls _080EEA1E\n\
- b _080EEBFA\n\
+ asm_unified(
+ "push {r4,lr}\n\
+ ldr r1, _080EEA28 @ =gSharedMem\n\
+ ldr r2, _080EEA2C @ =0x00006e16\n\
+ adds r0, r1, r2\n\
+ ldrb r0, [r0]\n\
+ adds r3, r1, 0\n\
+ cmp r0, 0x8\n\
+ bls _080EEA1E\n\
+ b _080EEBFA\n\
_080EEA1E:\n\
- lsls r0, 2\n\
- ldr r1, _080EEA30 @ =_080EEA34\n\
- adds r0, r1\n\
- ldr r0, [r0]\n\
- mov pc, r0\n\
- .align 2, 0\n\
+ lsls r0, 2\n\
+ ldr r1, _080EEA30 @ =_080EEA34\n\
+ adds r0, r1\n\
+ ldr r0, [r0]\n\
+ mov pc, r0\n\
+ .align 2, 0\n\
_080EEA28: .4byte gSharedMem\n\
_080EEA2C: .4byte 0x00006e16\n\
_080EEA30: .4byte _080EEA34\n\
- .align 2, 0\n\
+ .align 2, 0\n\
_080EEA34:\n\
- .4byte _080EEA58\n\
- .4byte _080EEA98\n\
- .4byte _080EEAAE\n\
- .4byte _080EEAD4\n\
- .4byte _080EEB3E\n\
- .4byte _080EEB68\n\
- .4byte _080EEB88\n\
- .4byte _080EEBAC\n\
- .4byte _080EEBE4\n\
+ .4byte _080EEA58\n\
+ .4byte _080EEA98\n\
+ .4byte _080EEAAE\n\
+ .4byte _080EEAD4\n\
+ .4byte _080EEB3E\n\
+ .4byte _080EEB68\n\
+ .4byte _080EEB88\n\
+ .4byte _080EEBAC\n\
+ .4byte _080EEBE4\n\
_080EEA58:\n\
- bl sub_80F1F10\n\
- lsls r0, 24\n\
- cmp r0, 0\n\
- beq _080EEA64\n\
- b _080EEC08\n\
+ bl sub_80F1F10\n\
+ lsls r0, 24\n\
+ cmp r0, 0\n\
+ beq _080EEA64\n\
+ b _080EEC08\n\
_080EEA64:\n\
- ldr r1, _080EEA7C @ =gSharedMem\n\
- ldr r4, _080EEA80 @ =0x00006e17\n\
- adds r0, r1, r4\n\
- ldrb r0, [r0]\n\
- cmp r0, 0xC\n\
- beq _080EEA88\n\
- ldr r0, _080EEA84 @ =0x00006e16\n\
- adds r1, r0\n\
- movs r0, 0x1\n\
- strb r0, [r1]\n\
- b _080EEC08\n\
- .align 2, 0\n\
+ ldr r1, _080EEA7C @ =gSharedMem\n\
+ ldr r4, _080EEA80 @ =0x00006e17\n\
+ adds r0, r1, r4\n\
+ ldrb r0, [r0]\n\
+ cmp r0, 0xC\n\
+ beq _080EEA88\n\
+ ldr r0, _080EEA84 @ =0x00006e16\n\
+ adds r1, r0\n\
+ movs r0, 0x1\n\
+ strb r0, [r1]\n\
+ b _080EEC08\n\
+ .align 2, 0\n\
_080EEA7C: .4byte gSharedMem\n\
_080EEA80: .4byte 0x00006e17\n\
_080EEA84: .4byte 0x00006e16\n\
_080EEA88:\n\
- ldr r2, _080EEA94 @ =0x00006e16\n\
- adds r1, r2\n\
- movs r0, 0x3\n\
- strb r0, [r1]\n\
- b _080EEC08\n\
- .align 2, 0\n\
+ ldr r2, _080EEA94 @ =0x00006e16\n\
+ adds r1, r2\n\
+ movs r0, 0x3\n\
+ strb r0, [r1]\n\
+ b _080EEC08\n\
+ .align 2, 0\n\
_080EEA94: .4byte 0x00006e16\n\
_080EEA98:\n\
- ldr r4, _080EEAC8 @ =gSharedMem\n\
- ldr r1, _080EEACC @ =0x00006e17\n\
- adds r0, r4, r1\n\
- ldrb r0, [r0]\n\
- bl sub_80F2C80\n\
- ldr r2, _080EEAD0 @ =0x00006e16\n\
- adds r4, r2\n\
- ldrb r0, [r4]\n\
- adds r0, 0x1\n\
- strb r0, [r4]\n\
+ ldr r4, _080EEAC8 @ =gSharedMem\n\
+ ldr r1, _080EEACC @ =0x00006e17\n\
+ adds r0, r4, r1\n\
+ ldrb r0, [r0]\n\
+ bl sub_80F2C80\n\
+ ldr r2, _080EEAD0 @ =0x00006e16\n\
+ adds r4, r2\n\
+ ldrb r0, [r4]\n\
+ adds r0, 0x1\n\
+ strb r0, [r4]\n\
_080EEAAE:\n\
- ldr r4, _080EEAC8 @ =gSharedMem\n\
- ldr r1, _080EEACC @ =0x00006e17\n\
- adds r0, r4, r1\n\
- ldrb r0, [r0]\n\
- bl sub_80F2CBC\n\
- lsls r0, 24\n\
- cmp r0, 0\n\
- beq _080EEAC2\n\
- b _080EEC08\n\
+ ldr r4, _080EEAC8 @ =gSharedMem\n\
+ ldr r1, _080EEACC @ =0x00006e17\n\
+ adds r0, r4, r1\n\
+ ldrb r0, [r0]\n\
+ bl sub_80F2CBC\n\
+ lsls r0, 24\n\
+ cmp r0, 0\n\
+ beq _080EEAC2\n\
+ b _080EEC08\n\
_080EEAC2:\n\
- ldr r2, _080EEAD0 @ =0x00006e16\n\
- adds r1, r4, r2\n\
- b _080EEB76\n\
- .align 2, 0\n\
+ ldr r2, _080EEAD0 @ =0x00006e16\n\
+ adds r1, r4, r2\n\
+ b _080EEB76\n\
+ .align 2, 0\n\
_080EEAC8: .4byte gSharedMem\n\
_080EEACC: .4byte 0x00006e17\n\
_080EEAD0: .4byte 0x00006e16\n\
_080EEAD4:\n\
- adds r2, r3, 0\n\
- ldr r4, _080EEAF8 @ =0x00006e15\n\
- adds r0, r2, r4\n\
- ldrb r1, [r0]\n\
- subs r4, 0x68\n\
- adds r0, r2, r4\n\
- strb r1, [r0]\n\
- ldr r1, _080EEAFC @ =0x00006e14\n\
- adds r0, r2, r1\n\
- ldrb r0, [r0]\n\
- cmp r0, 0x1\n\
- beq _080EEB14\n\
- cmp r0, 0x1\n\
- bgt _080EEB00\n\
- cmp r0, 0\n\
- beq _080EEB06\n\
- b _080EEB28\n\
- .align 2, 0\n\
+ adds r2, r3, 0\n\
+ ldr r4, _080EEAF8 @ =0x00006e15\n\
+ adds r0, r2, r4\n\
+ ldrb r1, [r0]\n\
+ subs r4, 0x68\n\
+ adds r0, r2, r4\n\
+ strb r1, [r0]\n\
+ ldr r1, _080EEAFC @ =0x00006e14\n\
+ adds r0, r2, r1\n\
+ ldrb r0, [r0]\n\
+ cmp r0, 0x1\n\
+ beq _080EEB14\n\
+ cmp r0, 0x1\n\
+ bgt _080EEB00\n\
+ cmp r0, 0\n\
+ beq _080EEB06\n\
+ b _080EEB28\n\
+ .align 2, 0\n\
_080EEAF8: .4byte 0x00006e15\n\
_080EEAFC: .4byte 0x00006e14\n\
_080EEB00:\n\
- cmp r0, 0x2\n\
- beq _080EEB20\n\
- b _080EEB28\n\
+ cmp r0, 0x2\n\
+ beq _080EEB20\n\
+ b _080EEB28\n\
_080EEB06:\n\
- ldr r4, _080EEB10 @ =0x00006dae\n\
- adds r1, r2, r4\n\
- movs r0, 0x5\n\
- b _080EEB26\n\
- .align 2, 0\n\
+ ldr r4, _080EEB10 @ =0x00006dae\n\
+ adds r1, r2, r4\n\
+ movs r0, 0x5\n\
+ b _080EEB26\n\
+ .align 2, 0\n\
_080EEB10: .4byte 0x00006dae\n\
_080EEB14:\n\
- ldr r0, _080EEB1C @ =0x00006dae\n\
- adds r1, r2, r0\n\
- movs r0, 0x3\n\
- b _080EEB26\n\
- .align 2, 0\n\
+ ldr r0, _080EEB1C @ =0x00006dae\n\
+ adds r1, r2, r0\n\
+ movs r0, 0x3\n\
+ b _080EEB26\n\
+ .align 2, 0\n\
_080EEB1C: .4byte 0x00006dae\n\
_080EEB20:\n\
- ldr r2, _080EEB58 @ =0x00006dae\n\
- adds r1, r3, r2\n\
- movs r0, 0x6\n\
+ ldr r2, _080EEB58 @ =0x00006dae\n\
+ adds r1, r3, r2\n\
+ movs r0, 0x6\n\
_080EEB26:\n\
- strb r0, [r1]\n\
+ strb r0, [r1]\n\
_080EEB28:\n\
- ldr r4, _080EEB5C @ =gSharedMem\n\
- ldr r1, _080EEB60 @ =0x00006e14\n\
- adds r0, r4, r1\n\
- ldrb r0, [r0]\n\
- bl sub_80F1B8C\n\
- ldr r2, _080EEB64 @ =0x00006e16\n\
- adds r4, r2\n\
- ldrb r0, [r4]\n\
- adds r0, 0x1\n\
- strb r0, [r4]\n\
+ ldr r4, _080EEB5C @ =gSharedMem\n\
+ ldr r1, _080EEB60 @ =0x00006e14\n\
+ adds r0, r4, r1\n\
+ ldrb r0, [r0]\n\
+ bl sub_80F1B8C\n\
+ ldr r2, _080EEB64 @ =0x00006e16\n\
+ adds r4, r2\n\
+ ldrb r0, [r4]\n\
+ adds r0, 0x1\n\
+ strb r0, [r4]\n\
_080EEB3E:\n\
- ldr r4, _080EEB5C @ =gSharedMem\n\
- ldr r1, _080EEB60 @ =0x00006e14\n\
- adds r0, r4, r1\n\
- ldrb r0, [r0]\n\
- bl sub_80F1BC8\n\
- lsls r0, 24\n\
- cmp r0, 0\n\
- bne _080EEC08\n\
- ldr r2, _080EEB64 @ =0x00006e16\n\
- adds r1, r4, r2\n\
- b _080EEB76\n\
- .align 2, 0\n\
+ ldr r4, _080EEB5C @ =gSharedMem\n\
+ ldr r1, _080EEB60 @ =0x00006e14\n\
+ adds r0, r4, r1\n\
+ ldrb r0, [r0]\n\
+ bl sub_80F1BC8\n\
+ lsls r0, 24\n\
+ cmp r0, 0\n\
+ bne _080EEC08\n\
+ ldr r2, _080EEB64 @ =0x00006e16\n\
+ adds r1, r4, r2\n\
+ b _080EEB76\n\
+ .align 2, 0\n\
_080EEB58: .4byte 0x00006dae\n\
_080EEB5C: .4byte gSharedMem\n\
_080EEB60: .4byte 0x00006e14\n\
_080EEB64: .4byte 0x00006e16\n\
_080EEB68:\n\
- bl sub_8055870\n\
- cmp r0, 0\n\
- bne _080EEC08\n\
- ldr r1, _080EEB80 @ =gSharedMem\n\
- ldr r4, _080EEB84 @ =0x00006e16\n\
- adds r1, r4\n\
+ bl sub_8055870\n\
+ cmp r0, 0\n\
+ bne _080EEC08\n\
+ ldr r1, _080EEB80 @ =gSharedMem\n\
+ ldr r4, _080EEB84 @ =0x00006e16\n\
+ adds r1, r4\n\
_080EEB76:\n\
- ldrb r0, [r1]\n\
- adds r0, 0x1\n\
- strb r0, [r1]\n\
- b _080EEC08\n\
- .align 2, 0\n\
+ ldrb r0, [r1]\n\
+ adds r0, 0x1\n\
+ strb r0, [r1]\n\
+ b _080EEC08\n\
+ .align 2, 0\n\
_080EEB80: .4byte gSharedMem\n\
_080EEB84: .4byte 0x00006e16\n\
_080EEB88:\n\
- bl sub_80F1DF0\n\
- ldr r4, _080EEBA0 @ =gSharedMem\n\
- ldr r1, _080EEBA4 @ =0x00006e14\n\
- adds r0, r4, r1\n\
- ldrb r0, [r0]\n\
- bl sub_80EF490\n\
- ldr r2, _080EEBA8 @ =0x00006e16\n\
- adds r4, r2\n\
- b _080EEBCC\n\
- .align 2, 0\n\
+ bl sub_80F1DF0\n\
+ ldr r4, _080EEBA0 @ =gSharedMem\n\
+ ldr r1, _080EEBA4 @ =0x00006e14\n\
+ adds r0, r4, r1\n\
+ ldrb r0, [r0]\n\
+ bl sub_80EF490\n\
+ ldr r2, _080EEBA8 @ =0x00006e16\n\
+ adds r4, r2\n\
+ b _080EEBCC\n\
+ .align 2, 0\n\
_080EEBA0: .4byte gSharedMem\n\
_080EEBA4: .4byte 0x00006e14\n\
_080EEBA8: .4byte 0x00006e16\n\
_080EEBAC:\n\
- bl sub_80F1E50\n\
- lsls r0, 24\n\
- cmp r0, 0\n\
- bne _080EEC08\n\
- ldr r4, _080EEBD4 @ =gSharedMem\n\
- ldr r1, _080EEBD8 @ =0x00006e14\n\
- adds r0, r4, r1\n\
- ldrb r0, [r0]\n\
- ldr r2, _080EEBDC @ =0x00006dad\n\
- adds r1, r4, r2\n\
- ldrb r1, [r1]\n\
- bl sub_80EF428\n\
- ldr r0, _080EEBE0 @ =0x00006e16\n\
- adds r4, r0\n\
+ bl sub_80F1E50\n\
+ lsls r0, 24\n\
+ cmp r0, 0\n\
+ bne _080EEC08\n\
+ ldr r4, _080EEBD4 @ =gSharedMem\n\
+ ldr r1, _080EEBD8 @ =0x00006e14\n\
+ adds r0, r4, r1\n\
+ ldrb r0, [r0]\n\
+ ldr r2, _080EEBDC @ =0x00006dad\n\
+ adds r1, r4, r2\n\
+ ldrb r1, [r1]\n\
+ bl sub_80EF428\n\
+ ldr r0, _080EEBE0 @ =0x00006e16\n\
+ adds r4, r0\n\
_080EEBCC:\n\
- ldrb r0, [r4]\n\
- adds r0, 0x1\n\
- strb r0, [r4]\n\
- b _080EEC08\n\
- .align 2, 0\n\
+ ldrb r0, [r4]\n\
+ adds r0, 0x1\n\
+ strb r0, [r4]\n\
+ b _080EEC08\n\
+ .align 2, 0\n\
_080EEBD4: .4byte gSharedMem\n\
_080EEBD8: .4byte 0x00006e14\n\
_080EEBDC: .4byte 0x00006dad\n\
_080EEBE0: .4byte 0x00006e16\n\
_080EEBE4:\n\
- bl sub_80EF4F8\n\
- lsls r0, 24\n\
- cmp r0, 0\n\
- bne _080EEC08\n\
- ldr r1, _080EEC00 @ =gSharedMem\n\
- ldr r2, _080EEC04 @ =0x00006e16\n\
- adds r1, r2\n\
- ldrb r0, [r1]\n\
- adds r0, 0x1\n\
- strb r0, [r1]\n\
+ bl sub_80EF4F8\n\
+ lsls r0, 24\n\
+ cmp r0, 0\n\
+ bne _080EEC08\n\
+ ldr r1, _080EEC00 @ =gSharedMem\n\
+ ldr r2, _080EEC04 @ =0x00006e16\n\
+ adds r1, r2\n\
+ ldrb r0, [r1]\n\
+ adds r0, 0x1\n\
+ strb r0, [r1]\n\
_080EEBFA:\n\
- movs r0, 0\n\
- b _080EEC0A\n\
- .align 2, 0\n\
+ movs r0, 0\n\
+ b _080EEC0A\n\
+ .align 2, 0\n\
_080EEC00: .4byte gSharedMem\n\
_080EEC04: .4byte 0x00006e16\n\
_080EEC08:\n\
- movs r0, 0x1\n\
+ movs r0, 0x1\n\
_080EEC0A:\n\
- pop {r4}\n\
- pop {r1}\n\
- bx r1\n"
+ pop {r4}\n\
+ pop {r1}\n\
+ bx r1\n"
- );
+ );
}
#endif
// var6dad and var6dae must be s8 in this func
-bool8 sub_80EEC10() {
- if (gMain.newKeys & 0x40) {
- do {
- if (--ewram0_11.var6dad < 0) {
- ewram0_11.var6dad = ewram0_11.var6dae - 1;
- }
-
- } while (!ewram0_10.var6db2[ewram0_11.var6dad]);
- return 1;
- }
- if (gMain.newKeys & 0x80) {
- do {
- if (++ewram0_11.var6dad >= ewram0_11.var6dae) {
- ewram0_11.var6dad = 0;
- }
- } while (!ewram0_10.var6db2[ewram0_11.var6dad]);
- return 1;
- }
- return 0;
+bool8 sub_80EEC10()
+{
+ if (gMain.newKeys & 0x40)
+ {
+ do
+ {
+ if (--ewram0_11.var6dad < 0)
+ ewram0_11.var6dad = ewram0_11.var6dae - 1;
+ } while (!ewram0_10.var6db2[ewram0_11.var6dad]);
+ return TRUE;
+ }
+ if (gMain.newKeys & 0x80)
+ {
+ do
+ {
+ if (++ewram0_11.var6dad >= ewram0_11.var6dae)
+ ewram0_11.var6dad = 0;
+ } while (!ewram0_10.var6db2[ewram0_11.var6dad]);
+ return TRUE;
+ }
+ return FALSE;
}
-bool8 sub_80EEC90() {
- if (gMain.newKeys & 0x40) {
- if (--ewram0_11.var6dad < 0) {
- ewram0_11.var6dad = ewram0_11.var6dae - 1;
- }
- return 1;
- }
- if (gMain.newKeys & 0x80) {
- if (++ewram0_11.var6dad >= ewram0_11.var6dae) {
- ewram0_11.var6dad = 0;
- }
- return 1;
- }
- return 0;
+bool8 sub_80EEC90()
+{
+ if (gMain.newKeys & 0x40)
+ {
+ if (--ewram0_11.var6dad < 0)
+ ewram0_11.var6dad = ewram0_11.var6dae - 1;
+ return TRUE;
+ }
+ if (gMain.newKeys & 0x80)
+ {
+ if (++ewram0_11.var6dad >= ewram0_11.var6dae)
+ ewram0_11.var6dad = 0;
+ return TRUE;
+ }
+ return FALSE;
}
-void sub_80EED0C() {
- REG_DISPCNT = 512;
+void sub_80EED0C()
+{
+ REG_DISPCNT = 512;
}
-void sub_80EED1C() {
- REG_DISPCNT = 0x92 << 5;
+void sub_80EED1C()
+{
+ REG_DISPCNT = 0x92 << 5;
}
-void sub_80EED2C(u8 param1) {
- switch (param1) {
- case 0:
- REG_DISPCNT = 0xFA << 5;
- break;
- case 1:
- REG_DISPCNT = 0x1741;
- break;
- case 3:
- case 4:
- REG_DISPCNT = 0xFA << 5;
- break;
- case 2:
- REG_DISPCNT = 0x7b40;
- break;
- case 5:
- REG_DISPCNT = 0xFD << 6;
- break;
- }
+void sub_80EED2C(u8 param1)
+{
+ switch (param1) {
+ case 0:
+ REG_DISPCNT = 0xFA << 5;
+ break;
+ case 1:
+ REG_DISPCNT = 0x1741;
+ break;
+ case 3:
+ case 4:
+ REG_DISPCNT = 0xFA << 5;
+ break;
+ case 2:
+ REG_DISPCNT = 0x7b40;
+ break;
+ case 5:
+ REG_DISPCNT = 0xFD << 6;
+ break;
+ }
}
-void sub_80EED9C(void) {
- gUnknown_03000744 = ewram0_10.var300;
- ewram0_10.var300 = &sub_80EEDC4;
- ewram0_10.var300();
+void sub_80EED9C(void)
+{
+ gUnknown_03000744 = ewram0_10.var300;
+ ewram0_10.var300 = &sub_80EEDC4;
+ ewram0_10.var300();
}
-void sub_80EEDC4(void) {
- if (sub_8055870() != 0x1) {
- ewram0_10.var300 = gUnknown_03000744;
- }
+void sub_80EEDC4(void)
+{
+ if (sub_8055870() != 0x1)
+ ewram0_10.var300 = gUnknown_03000744;
}
-void sub_80EEDE8(void) {
- REG_BG0HOFS = 0;
- REG_BG0VOFS = 0;
- REG_BG2VOFS = 0;
- REG_BG2HOFS = 0;
- REG_BG3HOFS = 0;
- REG_BG3VOFS = 0;
+void sub_80EEDE8(void)
+{
+ REG_BG0HOFS = 0;
+ REG_BG0VOFS = 0;
+ REG_BG2VOFS = 0;
+ REG_BG2HOFS = 0;
+ REG_BG3HOFS = 0;
+ REG_BG3VOFS = 0;
}
-void sub_80EEE08(void) {
- gUnknown_083DFEC4->unkD160 = 0;
+void sub_80EEE08(void)
+{
+ gUnknown_083DFEC4->unkD160 = 0;
}
-void sub_80EEE20(void) {
- gUnknown_083DFEC4->unkD160 = 0;
- if (!gUnknown_083DFEC4->unk6DAC) {
- while (sub_80EEE54());
- }
+void sub_80EEE20(void)
+{
+ gUnknown_083DFEC4->unkD160 = 0;
+ if (!gUnknown_083DFEC4->unk6DAC)
+ {
+ while (sub_80EEE54())
+ ;
+ }
}
-bool8 sub_80EEE54(void) {
- switch (gUnknown_083DFEC4->unkD160) {
- case 0:
- LZ77UnCompVram(gPokenavHoennMapMisc_Gfx, (void *)VRAM + 0xC000);
- break;
- case 1:
- LZ77UnCompVram(gUnknown_08E99FB0, (void *)VRAM + 0xD800);
- break;
- case 2:
- LoadPalette(gPokenavHoennMap1_Pal, 0x10, 0x20);
- break;
- case 3:
- sub_80EF58C(0);
- sub_80EF58C(1);
- sub_80EF58C(2);
- break;
- case 4:
- gUnknown_083DFEC4->unk030C.unk030C.unk0 = 0;
- REG_BG1HOFS = 0;
- REG_BG1VOFS = 0;
- REG_BG1CNT = 0x1B0C;
- gUnknown_083DFEC4->unkD160++;
- default:
- return 0;
- }
- gUnknown_083DFEC4->unkD160++;
- return 1;
+bool8 sub_80EEE54(void)
+{
+ switch (gUnknown_083DFEC4->unkD160)
+ {
+ case 0:
+ LZ77UnCompVram(gPokenavHoennMapMisc_Gfx, (void *)VRAM + 0xC000);
+ break;
+ case 1:
+ LZ77UnCompVram(gUnknown_08E99FB0, (void *)VRAM + 0xD800);
+ break;
+ case 2:
+ LoadPalette(gPokenavHoennMap1_Pal, 0x10, 0x20);
+ break;
+ case 3:
+ sub_80EF58C(0);
+ sub_80EF58C(1);
+ sub_80EF58C(2);
+ break;
+ case 4:
+ gUnknown_083DFEC4->unk030C.unk030C.unk0 = 0;
+ REG_BG1HOFS = 0;
+ REG_BG1VOFS = 0;
+ REG_BG1CNT = 0x1B0C;
+ gUnknown_083DFEC4->unkD160++;
+ default:
+ return FALSE;
+ }
+ gUnknown_083DFEC4->unkD160++;
+ return TRUE;
}
-bool8 sub_80EEF34(void) {
- bool8 retVal = TRUE;
+bool8 sub_80EEF34(void)
+{
+ bool8 retVal = TRUE;
- if (gUnknown_083DFEC4->unk030C.unk030C.unk0 == 32)
- {
- return FALSE;
- }
+ if (gUnknown_083DFEC4->unk030C.unk030C.unk0 == 32)
+ return FALSE;
- gUnknown_083DFEC4->unk030C.unk030C.unk0 += 2;
- if (gUnknown_083DFEC4->unk030C.unk030C.unk0 > 31)
- {
- gUnknown_083DFEC4->unk030C.unk030C.unk0 = 32;
- retVal = FALSE;
- }
+ gUnknown_083DFEC4->unk030C.unk030C.unk0 += 2;
+ if (gUnknown_083DFEC4->unk030C.unk030C.unk0 > 31)
+ {
+ gUnknown_083DFEC4->unk030C.unk030C.unk0 = 32;
+ retVal = FALSE;
+ }
- REG_BG1VOFS = gUnknown_083DFEC4->unk030C.unk030C.unk0;
- return retVal;
+ REG_BG1VOFS = gUnknown_083DFEC4->unk030C.unk030C.unk0;
+ return retVal;
}
bool8 sub_80EEF78(void)
{
- bool8 retVal = TRUE;
-
- if (gUnknown_083DFEC4->unk030C.unk030C.unk0 == 0)
- {
- return FALSE;
- }
-
- gUnknown_083DFEC4->unk030C.unk030C.unk0 -= 2;
- if (gUnknown_083DFEC4->unk030C.unk030C.unk0 <= 0)
- {
- gUnknown_083DFEC4->unk030C.unk030C.unk0 = 0;
- retVal = FALSE;
- }
-
- REG_BG1VOFS = gUnknown_083DFEC4->unk030C.unk030C.unk0;
- return retVal;
+ bool8 retVal = TRUE;
+
+ if (gUnknown_083DFEC4->unk030C.unk030C.unk0 == 0)
+ return FALSE;
+
+ gUnknown_083DFEC4->unk030C.unk030C.unk0 -= 2;
+ if (gUnknown_083DFEC4->unk030C.unk030C.unk0 <= 0)
+ {
+ gUnknown_083DFEC4->unk030C.unk030C.unk0 = 0;
+ retVal = FALSE;
+ }
+
+ REG_BG1VOFS = gUnknown_083DFEC4->unk030C.unk030C.unk0;
+ return retVal;
}
void sub_80EEFBC(u8 a)
{
- u8 var1;
+ u8 var1;
- sub_809D104((void *)VRAM + 0xD800, 0, 22, gUnknown_08E9A100, 0, 0, 17, 2);
+ sub_809D104((void *)VRAM + 0xD800, 0, 22, gUnknown_08E9A100, 0, 0, 17, 2);
- switch (a)
- {
- case 0:
- sub_809D104((void *)VRAM + 0xD800, 0, 22, gUnknown_08E9A100, 17, 0, 10, 2);
- sub_809D104((void *)VRAM + 0xD800, 10, 22, gUnknown_08E9A100, 0, 6, 7, 2);
- break;
- case 11:
- sub_809D104((void *)VRAM + 0xD800, 8, 22, gUnknown_08E9A100, 0, 6, 7, 2);
- break;
- case 2:
- var1 = gUnknown_083DFEC4->unk6DAC;
- if (!var1)
- {
- sub_809D104((void *)VRAM + 0xD800, 0, 22, gUnknown_08E9A100, 10, 2, 10, 2);
- sub_809D104((void *)VRAM + 0xD800, 10, 22, gUnknown_08E9A100, var1, 6, 7, 2);
- }
- else
- {
- sub_809D104((void *)VRAM + 0xD800, 10, 22, gUnknown_08E9A100, 0, 6, 7, 2);
- }
- break;
- case 3:
- sub_809D104((void *)VRAM + 0xD800, 0, 22, gUnknown_08E9A100, 0, 4, 10, 2);
- sub_809D104((void *)VRAM + 0xD800, 10, 22, gUnknown_08E9A100, 0, 6, 7, 2);
- break;
- case 4:
- sub_809D104((void *)VRAM + 0xD800, 0, 22, gUnknown_08E9A100, 20, 2, 10, 2);
- sub_809D104((void *)VRAM + 0xD800, 10, 22, gUnknown_08E9A100, 0, 6, 7, 2);
- break;
- case 7:
- sub_809D104((void *)VRAM + 0xD800, 0, 22, gUnknown_08E9A100, 10, 4, 10, 2);
- sub_809D104((void *)VRAM + 0xD800, 7, 22, gUnknown_08E9A100, 0, 6, 7, 2);
- break;
- case 8:
- sub_809D104((void *)VRAM + 0xD800, 0, 22, gUnknown_08E9A100, 20, 4, 10, 2);
- sub_809D104((void *)VRAM + 0xD800, 7, 22, gUnknown_08E9A100, 0, 6, 7, 2);
- break;
- case 5:
- case 9:
- sub_809D104((void *)VRAM + 0xD800, 0, 22, gUnknown_08E9A100, 0, 2, 10, 2);
- sub_809D104((void *)VRAM + 0xD800, 8, 22, gUnknown_08E9A100, 0, 6, 7, 2);
- break;
- case 10:
- sub_809D104((void *)VRAM + 0xD800, 8, 22, gUnknown_08E9A100, 0, 6, 7, 2);
- break;
- }
+ switch (a)
+ {
+ case 0:
+ sub_809D104((void *)VRAM + 0xD800, 0, 22, gUnknown_08E9A100, 17, 0, 10, 2);
+ sub_809D104((void *)VRAM + 0xD800, 10, 22, gUnknown_08E9A100, 0, 6, 7, 2);
+ break;
+ case 11:
+ sub_809D104((void *)VRAM + 0xD800, 8, 22, gUnknown_08E9A100, 0, 6, 7, 2);
+ break;
+ case 2:
+ var1 = gUnknown_083DFEC4->unk6DAC;
+ if (!var1)
+ {
+ sub_809D104((void *)VRAM + 0xD800, 0, 22, gUnknown_08E9A100, 10, 2, 10, 2);
+ sub_809D104((void *)VRAM + 0xD800, 10, 22, gUnknown_08E9A100, var1, 6, 7, 2);
+ }
+ else
+ {
+ sub_809D104((void *)VRAM + 0xD800, 10, 22, gUnknown_08E9A100, 0, 6, 7, 2);
+ }
+ break;
+ case 3:
+ sub_809D104((void *)VRAM + 0xD800, 0, 22, gUnknown_08E9A100, 0, 4, 10, 2);
+ sub_809D104((void *)VRAM + 0xD800, 10, 22, gUnknown_08E9A100, 0, 6, 7, 2);
+ break;
+ case 4:
+ sub_809D104((void *)VRAM + 0xD800, 0, 22, gUnknown_08E9A100, 20, 2, 10, 2);
+ sub_809D104((void *)VRAM + 0xD800, 10, 22, gUnknown_08E9A100, 0, 6, 7, 2);
+ break;
+ case 7:
+ sub_809D104((void *)VRAM + 0xD800, 0, 22, gUnknown_08E9A100, 10, 4, 10, 2);
+ sub_809D104((void *)VRAM + 0xD800, 7, 22, gUnknown_08E9A100, 0, 6, 7, 2);
+ break;
+ case 8:
+ sub_809D104((void *)VRAM + 0xD800, 0, 22, gUnknown_08E9A100, 20, 4, 10, 2);
+ sub_809D104((void *)VRAM + 0xD800, 7, 22, gUnknown_08E9A100, 0, 6, 7, 2);
+ break;
+ case 5:
+ case 9:
+ sub_809D104((void *)VRAM + 0xD800, 0, 22, gUnknown_08E9A100, 0, 2, 10, 2);
+ sub_809D104((void *)VRAM + 0xD800, 8, 22, gUnknown_08E9A100, 0, 6, 7, 2);
+ break;
+ case 10:
+ sub_809D104((void *)VRAM + 0xD800, 8, 22, gUnknown_08E9A100, 0, 6, 7, 2);
+ break;
+ }
}
void sub_80EF248(u8 a)
{
- gUnknown_083DFEC4->unkD160 = 0;
+ gUnknown_083DFEC4->unkD160 = 0;
- if (!gUnknown_083DFEC4->unk6DAC)
- {
- while (sub_80EF284(a));
- }
+ if (!gUnknown_083DFEC4->unk6DAC)
+ {
+ while (sub_80EF284(a))
+ ;
+ }
}
bool8 sub_80EF284(u8 a)
{
- switch (gUnknown_083DFEC4->unkD160)
- {
- case 0:
- sub_80EEDE8();
- break;
- case 1:
- SetUpWindowConfig(&gWindowConfig_81E7224);
- break;
- case 2:
- MultistepInitMenuWindowBegin(&gWindowConfig_81E7224);
- break;
- case 3:
- if (!MultistepInitMenuWindowContinue())
- {
- return TRUE;
- }
- break;
- case 4:
- DmaCopy16Defvars(3, gUnknown_083DFEEC, (void *)VRAM + 0x5000, 0xA0);
- break;
- case 5:
- LZ77UnCompVram(gUnknown_083DFF8C, (void *)VRAM + 0xF800);
- break;
- case 6:
- DmaCopy16Defvars(3, gUnknown_083E005C, (void *)VRAM + 0x8000, 0x20);
- break;
- case 7:
- LZ77UnCompVram(gUnknown_083E007C, (void *)VRAM + 0xE000);
- break;
- case 8:
- LZ77UnCompVram(gPokenavOutlineTilemap, (void *)VRAM + 0xE800);
- break;
- case 9:
- LZ77UnCompVram(gPokenavOutlineTiles, (void *)VRAM + 0x8020);
- break;
- case 10:
- sub_80EF54C(a);
- LoadPalette(gUnknown_083DFECC, 0xF0, 0x20);
- LoadPalette(gPokenavOutlinePalette, 0x40, 0x20);
- sub_80EF7D4();
- break;
- case 11:
- REG_BG0CNT = 0x1F01;
- REG_BG2CNT = 0x1D0A;
- REG_BG3CNT = 0x1C0B;
- REG_BLDCNT = 0;
-
- gUnknown_083DFEC4->unkD160++;
- return FALSE;
- default:
- return FALSE;
- }
-
- gUnknown_083DFEC4->unkD160++;
- return TRUE;
+ switch (gUnknown_083DFEC4->unkD160)
+ {
+ case 0:
+ sub_80EEDE8();
+ break;
+ case 1:
+ SetUpWindowConfig(&gWindowConfig_81E7224);
+ break;
+ case 2:
+ MultistepInitMenuWindowBegin(&gWindowConfig_81E7224);
+ break;
+ case 3:
+ if (!MultistepInitMenuWindowContinue())
+ return TRUE;
+ break;
+ case 4:
+ DmaCopy16Defvars(3, gUnknown_083DFEEC, (void *)VRAM + 0x5000, 0xA0);
+ break;
+ case 5:
+ LZ77UnCompVram(gUnknown_083DFF8C, (void *)VRAM + 0xF800);
+ break;
+ case 6:
+ DmaCopy16Defvars(3, gUnknown_083E005C, (void *)VRAM + 0x8000, 0x20);
+ break;
+ case 7:
+ LZ77UnCompVram(gUnknown_083E007C, (void *)VRAM + 0xE000);
+ break;
+ case 8:
+ LZ77UnCompVram(gPokenavOutlineTilemap, (void *)VRAM + 0xE800);
+ break;
+ case 9:
+ LZ77UnCompVram(gPokenavOutlineTiles, (void *)VRAM + 0x8020);
+ break;
+ case 10:
+ sub_80EF54C(a);
+ LoadPalette(gUnknown_083DFECC, 0xF0, 0x20);
+ LoadPalette(gPokenavOutlinePalette, 0x40, 0x20);
+ sub_80EF7D4();
+ break;
+ case 11:
+ REG_BG0CNT = 0x1F01;
+ REG_BG2CNT = 0x1D0A;
+ REG_BG3CNT = 0x1C0B;
+ REG_BLDCNT = 0;
+
+ gUnknown_083DFEC4->unkD160++;
+ return FALSE;
+ default:
+ return FALSE;
+ }
+
+ gUnknown_083DFEC4->unkD160++;
+ return TRUE;
}
void sub_80EF428(u8 a, u8 b)
{
- u8 *tileBuffer;
- const u8 *pcText = 0;
+ u8 *tileBuffer;
+ const u8 *pcText = 0;
- switch (a)
- {
- case 0:
- pcText = gUnknown_083E31B0[b];
- break;
- case 1:
- pcText = gUnknown_083E31CC[b];
- break;
- case 2:
- pcText = gUnknown_083E31D8[b];
- break;
- }
+ switch (a)
+ {
+ case 0:
+ pcText = gUnknown_083E31B0[b];
+ break;
+ case 1:
+ pcText = gUnknown_083E31CC[b];
+ break;
+ case 2:
+ pcText = gUnknown_083E31D8[b];
+ break;
+ }
- tileBuffer = gUnknown_083DFEC8;
- sub_8072C74(&tileBuffer[0x800], pcText, 0xC0, 2);
- MenuPrint(&tileBuffer[0x800], 3, 17);
+ tileBuffer = gUnknown_083DFEC8;
+ sub_8072C74(&tileBuffer[0x800], pcText, 0xC0, 2);
+ MenuPrint(&tileBuffer[0x800], 3, 17);
}
void sub_80EF490(u8 a)
{
- u16 var1, var2;
-
- if (a == 2)
- {
- a = 1;
- }
-
- gUnknown_083DFEC4->unkCE4E = a * 30;
- var1 = gUnknown_083DFEC4->unkCE4C;
- var2 = a * 30;
- if (var1 < var2)
- {
- gUnknown_083DFEC4->unkCE50 = 2;
- }
- else if (var1 > var2)
- {
- gUnknown_083DFEC4->unkCE50 = -2;
- }
- else
- {
- gUnknown_083DFEC4->unkCE50 = 0;
- }
+ u16 var1, var2;
+
+ if (a == 2)
+ a = 1;
+
+ gUnknown_083DFEC4->unkCE4E = a * 30;
+ var1 = gUnknown_083DFEC4->unkCE4C;
+ var2 = a * 30;
+ if (var1 < var2)
+ gUnknown_083DFEC4->unkCE50 = 2;
+ else if (var1 > var2)
+ gUnknown_083DFEC4->unkCE50 = -2;
+ else
+ gUnknown_083DFEC4->unkCE50 = 0;
}
bool8 sub_80EF4F8(void)
{
- u16 *palettes;
+ u16 *palettes;
- if (gUnknown_083DFEC4->unkCE4C == gUnknown_083DFEC4->unkCE4E)
- {
- return FALSE;
- }
- else
- {
- gUnknown_083DFEC4->unkCE4C = gUnknown_083DFEC4->unkCE50 + gUnknown_083DFEC4->unkCE4C;
+ if (gUnknown_083DFEC4->unkCE4C == gUnknown_083DFEC4->unkCE4E)
+ {
+ return FALSE;
+ }
+ else
+ {
+ gUnknown_083DFEC4->unkCE4C = gUnknown_083DFEC4->unkCE50 + gUnknown_083DFEC4->unkCE4C;
- palettes = gUnknown_083DFEC4->palettesCE52;
- LoadPalette(&palettes[gUnknown_083DFEC4->unkCE4C], 0x31, 4);
- return TRUE;
- }
+ palettes = gUnknown_083DFEC4->palettesCE52;
+ LoadPalette(&palettes[gUnknown_083DFEC4->unkCE4C], 0x31, 4);
+ return TRUE;
+ }
}
void sub_80EF54C(u8 a)
{
- if (a == 2)
- {
- a = 1;
- }
+ if (a == 2)
+ a = 1;
- gUnknown_083DFEC4->unkCE4C = a * 30;
- LoadPalette(&gUnknown_083DFEC4->palettesCE52[gUnknown_083DFEC4->unkCE4C], 0x31, 4);
+ gUnknown_083DFEC4->unkCE4C = a * 30;
+ LoadPalette(&gUnknown_083DFEC4->palettesCE52[gUnknown_083DFEC4->unkCE4C], 0x31, 4);
}
void sub_80EF58C(u8 a)
{
- u16 i;
- u16 * palettes;
- const u16 *var1;
-
- switch (a)
- {
- case 0:
- for (i = 0; i < 62; i++)
- {
- gUnknown_083DFEC4->palettesCE52[i] = 0;
- }
- break;
- case 1:
- palettes = gUnknown_083DFEC4->palettesCE52;
- var1 = gUnknown_083E003C;
- sub_80EF624(&var1[1], &var1[3], 16, 2, palettes);
- break;
- case 2:
- palettes = gUnknown_083DFEC4->palettesCE8E;
- var1 = gUnknown_083E003C;
- sub_80EF624(&var1[3], &var1[7], 16, 2, palettes);
- break;
- }
+ u16 i;
+ u16 * palettes;
+ const u16 *var1;
+
+ switch (a)
+ {
+ case 0:
+ for (i = 0; i < 62; i++)
+ gUnknown_083DFEC4->palettesCE52[i] = 0;
+ break;
+ case 1:
+ palettes = gUnknown_083DFEC4->palettesCE52;
+ var1 = gUnknown_083E003C;
+ sub_80EF624(&var1[1], &var1[3], 16, 2, palettes);
+ break;
+ case 2:
+ palettes = gUnknown_083DFEC4->palettesCE8E;
+ var1 = gUnknown_083E003C;
+ sub_80EF624(&var1[3], &var1[7], 16, 2, palettes);
+ break;
+ }
}
#ifdef NONMATCHING
void sub_80EF624(const u16 *a, const u16 *b, u8 c, u8 d, u16 *palettes)
{
- u16 red1, green1, blue1;
- u16 red2, green2, blue2;
- s32 redDiv, greenDiv, blueDiv;
- u16 *palettes2;
- u16 i, j;
-
- i = 0;
- while (i < d)
- {
- red1 = (*a & 0x1F) << 8;
- green1 = ((*a >> 5) & 0x1F) << 8;
- blue1 = ((*a >> 10) & 0x1F) << 8;
-
- red2 = (*b & 0x1F) << 8;
- green2 = ((*b >> 5) & 0x1F) << 8;
- blue2 = ((*b >> 10) & 0x1F) << 8;
-
- redDiv = (red2 - red1) / c;
- greenDiv = (green2 - green1) / c;
- blueDiv = (blue2 - blue1) / c;
-
- palettes2 = palettes;
- for (j = 0; j < c - 1; j++)
- {
- *palettes2 = (((blue1 << 8) >> 16) << 10) | (((green1 << 8) >> 16) << 5) | ((red1 << 8) >> 16);
- palettes2 += d;
- red1 += redDiv;
- green1 += greenDiv;
- blue1 += blueDiv;
- }
+ u16 red1, green1, blue1;
+ u16 red2, green2, blue2;
+ s32 redDiv, greenDiv, blueDiv;
+ u16 *palettes2;
+ u16 i, j;
+
+ i = 0;
+ while (i < d)
+ {
+ red1 = (*a & 0x1F) << 8;
+ green1 = ((*a >> 5) & 0x1F) << 8;
+ blue1 = ((*a >> 10) & 0x1F) << 8;
+
+ red2 = (*b & 0x1F) << 8;
+ green2 = ((*b >> 5) & 0x1F) << 8;
+ blue2 = ((*b >> 10) & 0x1F) << 8;
+
+ redDiv = (red2 - red1) / c;
+ greenDiv = (green2 - green1) / c;
+ blueDiv = (blue2 - blue1) / c;
+
+ palettes2 = palettes;
+ for (j = 0; j < c - 1; j++)
+ {
+ *palettes2 = (((blue1 << 8) >> 16) << 10) | (((green1 << 8) >> 16) << 5) | ((red1 << 8) >> 16);
+ palettes2 += d;
+ red1 += redDiv;
+ green1 += greenDiv;
+ blue1 += blueDiv;
+ }
- *palettes2 = (red2 >> 8) | (blue2 << 2) | (green2 >> 3);
- palettes++;
+ *palettes2 = (red2 >> 8) | (blue2 << 2) | (green2 >> 3);
+ palettes++;
- a++;
- b++;
- i++;
- }
+ a++;
+ b++;
+ i++;
+ }
}
#else
__attribute__((naked))
@@ -3427,151 +3606,142 @@ _080EF72E:\n\
void sub_80EF740(void)
{
- gUnknown_083DFEC4->unk6DA0 = (gUnknown_083DFEC4->unk6DA0 + 1) & 1;
- if (gUnknown_083DFEC4->unk6DA0)
- {
- gUnknown_083DFEC4->unk6DA2++;
- }
+ gUnknown_083DFEC4->unk6DA0 = (gUnknown_083DFEC4->unk6DA0 + 1) & 1;
+ if (gUnknown_083DFEC4->unk6DA0)
+ gUnknown_083DFEC4->unk6DA2++;
- REG_BG3HOFS = gUnknown_083DFEC4->unk6DA2;
+ REG_BG3HOFS = gUnknown_083DFEC4->unk6DA2;
}
void sub_80EF780(u8 taskId)
{
- if (gTasks[taskId].data[0] == 0 || (gUnknown_083DFEC4->unk6DA2 & 0x7) != 0)
- {
- sub_80EF740();
- }
- else
- {
- u16 value = gUnknown_083DFEC4->unk6DA2 & 0x7;
- gUnknown_083DFEC4->unk6DA2 = value;
- gUnknown_083DFEC4->unk6DA0 = value;
- REG_BG3HOFS = value;
- }
+ if (gTasks[taskId].data[0] == 0 || (gUnknown_083DFEC4->unk6DA2 & 0x7) != 0)
+ {
+ sub_80EF740();
+ }
+ else
+ {
+ u16 value = gUnknown_083DFEC4->unk6DA2 & 0x7;
+ gUnknown_083DFEC4->unk6DA2 = value;
+ gUnknown_083DFEC4->unk6DA0 = value;
+ REG_BG3HOFS = value;
+ }
}
void sub_80EF7D4(void)
{
- gUnknown_083DFEC4->unk6DA2 = 0;
- gUnknown_083DFEC4->unk6DA0 = 0;
- gUnknown_083DFEC4->taskId6DA4 = CreateTask(sub_80EF780, 80);
+ gUnknown_083DFEC4->unk6DA2 = 0;
+ gUnknown_083DFEC4->unk6DA0 = 0;
+ gUnknown_083DFEC4->taskId6DA4 = CreateTask(sub_80EF780, 80);
}
void sub_80EF814(void)
{
- if (FuncIsActiveTask(sub_80EF780))
- {
- DestroyTask(gUnknown_083DFEC4->taskId6DA4);
- }
+ if (FuncIsActiveTask(sub_80EF780))
+ DestroyTask(gUnknown_083DFEC4->taskId6DA4);
}
void sub_80EF840(void)
{
- gUnknown_083DFEC4->unkD160 = 0;
+ gUnknown_083DFEC4->unkD160 = 0;
- if (gUnknown_083DFEC4->unk6DAC == 0)
- {
- while (sub_80EF874() != 0);
- }
+ if (gUnknown_083DFEC4->unk6DAC == 0)
+ {
+ while (sub_80EF874() != 0)
+ ;
+ }
}
bool8 sub_80EF874(void)
{
- switch (gUnknown_083DFEC4->unkD160)
- {
- case 0:
- sub_80EEDE8();
- break;
- case 1:
- SetUpWindowConfig(&gWindowConfig_81E7224);
- break;
- case 2:
- MultistepInitMenuWindowBegin(&gWindowConfig_81E7224);
- break;
- case 3:
- if (!MultistepInitMenuWindowContinue())
- {
- return TRUE;
- }
- break;
- case 4:
- MenuZeroFillScreen();
- break;
- case 5:
- sub_80FA904(&gUnknown_083DFEC4->regionMap, gSaveBlock2.regionMapZoom ? TRUE : FALSE);
- break;
- case 6:
- if (sub_80FA940())
- {
- return TRUE;
- }
- break;
- case 7:
- LZ77UnCompVram(gPokenavHoennMapSquares_Gfx, (void *)VRAM + 0x5000);
- break;
- case 8:
- LoadPalette(gPokenavHoennMapSquares_Pal, 0x30, 0x20);
- sub_80EFC3C();
- break;
- case 9:
- if (sub_80EFC64())
- {
- return TRUE;
- }
- break;
- case 10:
- MenuDrawTextWindow(13, 3, 29, 17);
- sub_80EF9F8();
- break;
- case 11:
- if (!gUnknown_083DFEC4->regionMap.zoomed)
- {
- gUnknown_083DFEC4->unk7698 = 160;
- REG_BG0VOFS = 160;
- }
- else
- {
- gUnknown_083DFEC4->unk7698 = 256;
- REG_BG0VOFS = 0;
- }
+ switch (gUnknown_083DFEC4->unkD160)
+ {
+ case 0:
+ sub_80EEDE8();
+ break;
+ case 1:
+ SetUpWindowConfig(&gWindowConfig_81E7224);
+ break;
+ case 2:
+ MultistepInitMenuWindowBegin(&gWindowConfig_81E7224);
+ break;
+ case 3:
+ if (!MultistepInitMenuWindowContinue())
+ return TRUE;
+ break;
+ case 4:
+ MenuZeroFillScreen();
+ break;
+ case 5:
+ sub_80FA904(&gUnknown_083DFEC4->regionMap, gSaveBlock2.regionMapZoom ? TRUE : FALSE);
+ break;
+ case 6:
+ if (sub_80FA940())
+ return TRUE;
+ break;
+ case 7:
+ LZ77UnCompVram(gPokenavHoennMapSquares_Gfx, (void *)VRAM + 0x5000);
+ break;
+ case 8:
+ LoadPalette(gPokenavHoennMapSquares_Pal, 0x30, 0x20);
+ sub_80EFC3C();
+ break;
+ case 9:
+ if (sub_80EFC64())
+ return TRUE;
+ break;
+ case 10:
+ MenuDrawTextWindow(13, 3, 29, 17);
+ sub_80EF9F8();
+ break;
+ case 11:
+ if (!gUnknown_083DFEC4->regionMap.zoomed)
+ {
+ gUnknown_083DFEC4->unk7698 = 160;
+ REG_BG0VOFS = 160;
+ }
+ else
+ {
+ gUnknown_083DFEC4->unk7698 = 256;
+ REG_BG0VOFS = 0;
+ }
- REG_BG0CNT = REG_BG0CNT;
- REG_BG0CNT |= 1;
- REG_BLDCNT = 0;
- break;
- default:
- return FALSE;
- }
+ REG_BG0CNT = REG_BG0CNT;
+ REG_BG0CNT |= 1;
+ REG_BLDCNT = 0;
+ break;
+ default:
+ return FALSE;
+ }
- gUnknown_083DFEC4->unkD160++;
- return TRUE;
+ gUnknown_083DFEC4->unkD160++;
+ return TRUE;
}
asm(".include \"constants/gba_constants.inc\"\n");
void sub_80EF9F8(void)
{
- bool8 someBool = FALSE;
+ bool8 someBool = FALSE;
u16 top = 4;
- u16 mapSectionId;
- u8 b;
+ u16 mapSectionId;
+ u8 b;
- switch (gUnknown_083DFEC4->regionMap.unk16)
- {
+ switch (gUnknown_083DFEC4->regionMap.unk16)
+ {
case 0:
break;
- case 1:
- case 4:
- sub_8072A18(gUnknown_083DFEC4->regionMap.mapSectionName, 0x70, top * 8, 0x78, 1);
- top += 2;
- if (gLinkOpen == TRUE)
- {
- sub_80F1A80();
+ case 1:
+ case 4:
+ sub_8072A18(gUnknown_083DFEC4->regionMap.mapSectionName, 0x70, top * 8, 0x78, 1);
+ top += 2;
+ if (gLinkOpen == TRUE)
+ {
+ sub_80F1A80();
someBool = TRUE;
- }
- else
- {
+ }
+ else
+ {
u16 i;
for (i = 0; i < 4; i++)
@@ -3586,99 +3756,95 @@ void sub_80EF9F8(void)
sub_8072A18(secName, 0x70, top * 8, 0x78, 1);
top += 2;
}
- }
- break;
- case 2:
- sub_8072A18(gUnknown_083DFEC4->regionMap.mapSectionName, 0x70, top * 8, 0x78, 1);
- top += 2;
- mapSectionId = gUnknown_083DFEC4->regionMap.mapSectionId;
+ }
+ break;
+ case 2:
+ sub_8072A18(gUnknown_083DFEC4->regionMap.mapSectionName, 0x70, top * 8, 0x78, 1);
+ top += 2;
+ mapSectionId = gUnknown_083DFEC4->regionMap.mapSectionId;
b = gUnknown_083DFEC4->regionMap.everGrandeCityArea;
if (gUnknown_083DFEC4->unkCDCC[mapSectionId][b] != NULL)
- {
- MenuFillWindowRectWithBlankTile(14, top, 15, 15);
- MenuFillWindowRectWithBlankTile(26, top, 28, 15);
- sub_8095C8C((void *)(VRAM + 0xF800), 16, 6, gUnknown_083DFEC4->unkCDCC[mapSectionId][b], 0, 0, 10, 10, 10);
- top += 11;
- }
- break;
- case 3:
- sub_8072A18(gUnknown_083DFEC4->regionMap.mapSectionName, 0x70, top * 8, 0x78, 1);
- top += 2;
- break;
- }
+ {
+ MenuFillWindowRectWithBlankTile(14, top, 15, 15);
+ MenuFillWindowRectWithBlankTile(26, top, 28, 15);
+ sub_8095C8C((void *)(VRAM + 0xF800), 16, 6, gUnknown_083DFEC4->unkCDCC[mapSectionId][b], 0, 0, 10, 10, 10);
+ top += 11;
+ }
+ break;
+ case 3:
+ sub_8072A18(gUnknown_083DFEC4->regionMap.mapSectionName, 0x70, top * 8, 0x78, 1);
+ top += 2;
+ break;
+ }
// Epic fail by the compiler at optimizing this.
if (!someBool && top < 16)
MenuFillWindowRectWithBlankTile(14, top, 28, 15);
- if (gUnknown_083DFEC4->regionMap.unk16 == 2)
- sub_80EFD74();
- else
- sub_80EFDA0();
+ if (gUnknown_083DFEC4->regionMap.unk16 == 2)
+ sub_80EFD74();
+ else
+ sub_80EFDA0();
}
void sub_80EFBB0(void)
{
- if (!gUnknown_083DFEC4->regionMap.zoomed)
- {
- sub_80EEFBC(8);
- }
- else
- {
- sub_80EEFBC(7);
- }
+ if (!gUnknown_083DFEC4->regionMap.zoomed)
+ sub_80EEFBC(8);
+ else
+ sub_80EEFBC(7);
}
bool8 sub_80EFBDC(bool8 a)
{
- bool8 retVal = TRUE;
- u16 var1 = gUnknown_083DFEC4->unk7698;
+ bool8 retVal = TRUE;
+ u16 var1 = gUnknown_083DFEC4->unk7698;
- if (a)
- {
- if (var1 > 168)
- {
- var1 = var1 - 8;
- }
- else
- {
- var1 = 160;
- retVal = FALSE;
- }
- }
- else
- {
- if (var1 < 248)
- {
- var1 = var1 + 8;
- }
- else
- {
- var1 = 256;
- retVal = FALSE;
- }
- }
+ if (a)
+ {
+ if (var1 > 168)
+ {
+ var1 = var1 - 8;
+ }
+ else
+ {
+ var1 = 160;
+ retVal = FALSE;
+ }
+ }
+ else
+ {
+ if (var1 < 248)
+ {
+ var1 = var1 + 8;
+ }
+ else
+ {
+ var1 = 256;
+ retVal = FALSE;
+ }
+ }
- gUnknown_083DFEC4->unk7698 = var1;
- REG_BG0VOFS = var1 & 0xFF;
+ gUnknown_083DFEC4->unk7698 = var1;
+ REG_BG0VOFS = var1 & 0xFF;
- return retVal;
+ return retVal;
}
void sub_80EFC3C(void)
{
- gUnknown_083DFEC4->unkBC9A = 0;
- gUnknown_083DFEC4->unkBC9B = 0;
- sub_80EFD3C();
+ gUnknown_083DFEC4->unkBC9A = 0;
+ gUnknown_083DFEC4->unkBC9B = 0;
+ sub_80EFD3C();
}
bool8 sub_80EFC64(void)
{
- u16 i;
- u8 var1;
- u16 var2;
+ u16 i;
+ u8 var1;
+ u16 var2;
- if (gUnknown_083DFEC4->unkBC9A >= 16)
+ if (gUnknown_083DFEC4->unkBC9A >= 16)
return FALSE;
var1 = gUnknown_083DFEC4->unkBC9A;
@@ -3706,345 +3872,330 @@ bool8 sub_80EFC64(void)
void sub_80EFD3C(void)
{
- gUnknown_083DFEC4->unk769E = 0;
- gUnknown_083DFEC4->unk769C = 47;
- gUnknown_083DFEC4->unk769D = 0;
- gUnknown_083DFEC4->unk769A = 0;
+ gUnknown_083DFEC4->unk769E = 0;
+ gUnknown_083DFEC4->unk769C = 47;
+ gUnknown_083DFEC4->unk769D = 0;
+ gUnknown_083DFEC4->unk769A = 0;
}
void sub_80EFD74(void)
{
- gUnknown_083DFEC4->unk769E = 1;
-
- if (gUnknown_083DFEC4->unk769D == 1)
- {
- gUnknown_083DFEC4->unk769D = 2;
- }
+ gUnknown_083DFEC4->unk769E = 1;
+ if (gUnknown_083DFEC4->unk769D == 1)
+ gUnknown_083DFEC4->unk769D = 2;
}
void sub_80EFDA0(void)
{
- sub_8095C8C((void *)VRAM + 0xF800, 14, 16, gUnknown_08E9AC2C, 0, 0, 15, 1, 15);
- gUnknown_083DFEC4->unk769E = 0;
+ sub_8095C8C((void *)VRAM + 0xF800, 14, 16, gUnknown_08E9AC2C, 0, 0, 15, 1, 15);
+ gUnknown_083DFEC4->unk769E = 0;
}
void sub_80EFDE4(u8 param0)
{
- u16 var1 = 60 - gUnknown_083DFEC4->unk769C;
+ u16 var1 = 60 - gUnknown_083DFEC4->unk769C;
- if (var1 > 15)
- {
- var1 = 15;
- }
+ if (var1 > 15)
+ var1 = 15;
- if (gUnknown_083DFEC4->unk769E != 0)
- {
- sub_8095C8C((void *)VRAM + 0xF800, 14, 16, gUnknown_08E9ABB4, gUnknown_083DFEC4->unk769C, 0, var1, 1, 60);
+ if (gUnknown_083DFEC4->unk769E != 0)
+ {
+ sub_8095C8C((void *)VRAM + 0xF800, 14, 16, gUnknown_08E9ABB4, gUnknown_083DFEC4->unk769C, 0, var1, 1, 60);
- if (var1 < 15)
- {
- u16 var2 = var1 + 14;
+ if (var1 < 15)
+ {
+ u16 var2 = var1 + 14;
- sub_8095C8C((void *)VRAM + 0xF800, var2, 16, gUnknown_08E9ABB4, 0, 0, (u16)(15 - var1), 1, 60);
- }
- }
+ sub_8095C8C((void *)VRAM + 0xF800, var2, 16, gUnknown_08E9ABB4, 0, 0, (u16)(15 - var1), 1, 60);
+ }
+ }
}
void sub_80EFE7C(void)
{
- u16 var1;
- u8 var2 = gUnknown_083DFEC4->unk769D;
+ u16 var1;
+ u8 var2 = gUnknown_083DFEC4->unk769D;
- switch (var2)
- {
- case 0:
- var1 = ++gUnknown_083DFEC4->unk769C;
+ switch (var2)
+ {
+ case 0:
+ var1 = ++gUnknown_083DFEC4->unk769C;
- if (var1 > 59)
- {
- gUnknown_083DFEC4->unk769C = var2;
- }
+ if (var1 > 59)
+ gUnknown_083DFEC4->unk769C = var2;
- sub_80EFDE4(gUnknown_083DFEC4->unk769E);
+ sub_80EFDE4(gUnknown_083DFEC4->unk769E);
- switch (gUnknown_083DFEC4->unk769C)
- {
- case 0:
- case 15:
- case 30:
- case 45:
- gUnknown_083DFEC4->unk769D = 1;
- gUnknown_083DFEC4->unk769A = 0;
- break;
- }
- break;
- case 1:
- var1 = ++gUnknown_083DFEC4->unk769A;
- if (var1 > 120)
- {
- gUnknown_083DFEC4->unk769A = 0;
- gUnknown_083DFEC4->unk769D = 0;
- }
- break;
- case 2:
- sub_80EFDE4(1);
- gUnknown_083DFEC4->unk769D = 1;
- break;
- }
+ switch (gUnknown_083DFEC4->unk769C)
+ {
+ case 0:
+ case 15:
+ case 30:
+ case 45:
+ gUnknown_083DFEC4->unk769D = 1;
+ gUnknown_083DFEC4->unk769A = 0;
+ break;
+ }
+ break;
+ case 1:
+ var1 = ++gUnknown_083DFEC4->unk769A;
+ if (var1 > 120)
+ {
+ gUnknown_083DFEC4->unk769A = 0;
+ gUnknown_083DFEC4->unk769D = 0;
+ }
+ break;
+ case 2:
+ sub_80EFDE4(1);
+ gUnknown_083DFEC4->unk769D = 1;
+ break;
+ }
}
void sub_80EFF34(void)
{
- gUnknown_083DFEC4->unkD160 = 0;
+ gUnknown_083DFEC4->unkD160 = 0;
- if (gUnknown_083DFEC4->unk6DAC == 0)
- {
- while (sub_80EFF68());
- }
+ if (gUnknown_083DFEC4->unk6DAC == 0)
+ {
+ while (sub_80EFF68())
+ ;
+ }
}
bool8 sub_80EFF68(void)
{
- switch (gUnknown_083DFEC4->unkD160)
- {
- case 0:
- sub_80EEDE8();
- gUnknown_083DFEC4->unkD162[0] = 11;
- break;
- case 1:
- SetUpWindowConfig(&gWindowConfig_81E7080);
- break;
- case 2:
- MultistepInitMenuWindowBegin(&gWindowConfig_81E7080);
- break;
- case 3:
- if (!MultistepInitMenuWindowContinue())
- {
- return TRUE;
- }
- break;
- case 4:
- MenuZeroFillScreen();
- break;
- case 5:
- sub_80F1614();
- break;
- case 6:
- if (sub_80F162C(0))
- {
- return TRUE;
- }
- break;
- case 7:
- LZ77UnCompVram(gPokenavConditionView_Gfx, (void *)VRAM + 0x5000);
- break;
- case 8:
- LZ77UnCompVram(gUnknown_08E9AC4C, (void *)VRAM + 0xF000);
- LoadPalette(gPokenavConditionMenu2_Pal, 0x20, 0x20);
- break;
- case 9:
- if (gUnknown_083DFEC4->unk76AA == 1)
- {
- sub_8095C8C((void *)VRAM + 0xF000, 0, 5, gUnknown_083E01AC, 0, 0, 9, 4, 9);
- }
- break;
- case 10:
- LZ77UnCompVram(gUnknown_08E9FEB4, (void *)VRAM + 0xB800);
- break;
- case 11:
- LoadPalette(gUnknown_083E0254, 0x30, 0x20);
- LoadPalette(gUnknownPalette_81E6692, 0xB0, 0x20);
- LoadPalette(&gPokenavConditionMenu2_Pal[2], 0xB1, 0x2);
- LoadPalette(&gPokenavConditionMenu2_Pal[16], 0xB5, 0x2);
- LoadPalette(&gPokenavConditionMenu2_Pal[30], 0xBF, 0x2);
- sub_80F01A4();
- break;
- case 12:
- sub_80F01E0((u16)gUnknown_083DFEC4->unk8fe9);
- break;
- case 13:
- REG_BG3CNT = 0x1E03;
- REG_BG2CNT = 0x1702;
- REG_BLDCNT = 0x844;
- REG_BLDALPHA = 0x40B;
- break;
- default:
- return FALSE;
- }
+ switch (gUnknown_083DFEC4->unkD160)
+ {
+ case 0:
+ sub_80EEDE8();
+ gUnknown_083DFEC4->unkD162[0] = 11;
+ break;
+ case 1:
+ SetUpWindowConfig(&gWindowConfig_81E7080);
+ break;
+ case 2:
+ MultistepInitMenuWindowBegin(&gWindowConfig_81E7080);
+ break;
+ case 3:
+ if (!MultistepInitMenuWindowContinue())
+ return TRUE;
+ break;
+ case 4:
+ MenuZeroFillScreen();
+ break;
+ case 5:
+ sub_80F1614();
+ break;
+ case 6:
+ if (sub_80F162C(0))
+ return TRUE;
+ break;
+ case 7:
+ LZ77UnCompVram(gPokenavConditionView_Gfx, (void *)VRAM + 0x5000);
+ break;
+ case 8:
+ LZ77UnCompVram(gUnknown_08E9AC4C, (void *)VRAM + 0xF000);
+ LoadPalette(gPokenavConditionMenu2_Pal, 0x20, 0x20);
+ break;
+ case 9:
+ if (gUnknown_083DFEC4->unk76AA == 1)
+ sub_8095C8C((void *)VRAM + 0xF000, 0, 5, gUnknown_083E01AC, 0, 0, 9, 4, 9);
+ break;
+ case 10:
+ LZ77UnCompVram(gUnknown_08E9FEB4, (void *)VRAM + 0xB800);
+ break;
+ case 11:
+ LoadPalette(gUnknown_083E0254, 0x30, 0x20);
+ LoadPalette(gUnknownPalette_81E6692, 0xB0, 0x20);
+ LoadPalette(&gPokenavConditionMenu2_Pal[2], 0xB1, 0x2);
+ LoadPalette(&gPokenavConditionMenu2_Pal[16], 0xB5, 0x2);
+ LoadPalette(&gPokenavConditionMenu2_Pal[30], 0xBF, 0x2);
+ sub_80F01A4();
+ break;
+ case 12:
+ sub_80F01E0((u16)gUnknown_083DFEC4->unk8fe9);
+ break;
+ case 13:
+ REG_BG3CNT = 0x1E03;
+ REG_BG2CNT = 0x1702;
+ REG_BLDCNT = 0x844;
+ REG_BLDALPHA = 0x40B;
+ break;
+ default:
+ return FALSE;
+ }
- gUnknown_083DFEC4->unkD160++;
- return TRUE;
+ gUnknown_083DFEC4->unkD160++;
+ return TRUE;
}
-void sub_80F0174(bool8 a)
+void sub_80F0174(bool8 bg2on)
{
- if (a)
- {
- REG_DISPCNT |= DISPCNT_BG2_ON;
- }
- else
- {
- REG_DISPCNT &= ~DISPCNT_BG2_ON;
- }
+ if (bg2on)
+ REG_DISPCNT |= DISPCNT_BG2_ON;
+ else
+ REG_DISPCNT &= ~DISPCNT_BG2_ON;
}
void sub_80F01A4(void)
{
- REG_WIN0H = WIN_RANGE(0, 240);
- REG_WIN1H = WIN_RANGE(0, 155);
- REG_WIN0V = WIN_RANGE(56, 121);
- REG_WIN1V = WIN_RANGE(56, 121);
- REG_WININ = 0x3F3F;
- REG_WINOUT = 0x001B;
+ REG_WIN0H = WIN_RANGE(0, 240);
+ REG_WIN1H = WIN_RANGE(0, 155);
+ REG_WIN0V = WIN_RANGE(56, 121);
+ REG_WIN1V = WIN_RANGE(56, 121);
+ REG_WININ = 0x3F3F;
+ REG_WINOUT = 0x001B;
}
void sub_80F01E0(u16 a)
{
- MenuPrint(gUnknown_083DFEC4->unk8829[a], 13, 1);
-
- if (gUnknown_083DFEC4->unk76AA == 1)
- {
- MenuPrint(gUnknown_083DFEC4->unk88E9[a], 13, 3);
- sub_80F443C(gUnknown_083DFEC4->unk8788, gUnknown_083DFEC4->unk893c[gUnknown_083DFEC4->unk87DC].unk2);
- MenuPrint(gUnknown_083DFEC4->unk8788, 1, 6);
- }
+ MenuPrint(gUnknown_083DFEC4->unk8829[a], 13, 1);
+
+ if (gUnknown_083DFEC4->unk76AA == 1)
+ {
+ MenuPrint(gUnknown_083DFEC4->unk88E9[a], 13, 3);
+ sub_80F443C(gUnknown_083DFEC4->unk8788, gUnknown_083DFEC4->unk893c[gUnknown_083DFEC4->unk87DC].unk2);
+ MenuPrint(gUnknown_083DFEC4->unk8788, 1, 6);
+ }
}
void sub_80F0264(u8 a)
{
- gUnknown_083DFEC4->unk306 = 0;
- gUnknown_083DFEC4->unk87CA = a;
+ gUnknown_083DFEC4->unk306 = 0;
+ gUnknown_083DFEC4->unk87CA = a;
- if (gUnknown_083DFEC4->unk6DAC == 0)
- {
- while (sub_80F02A0());
- }
+ if (gUnknown_083DFEC4->unk6DAC == 0)
+ {
+ while (sub_80F02A0())
+ ;
+ }
}
#ifdef NONMATCHING // small nonmatching part is in the third else clause in case 7.
bool8 sub_80F02A0(void)
{
- const u16 *pointer;
+ const u16 *pointer;
- switch (gUnknown_083DFEC4->unk306)
- {
- case 0:
- sub_80EEDE8();
+ switch (gUnknown_083DFEC4->unk306)
+ {
+ case 0:
+ sub_80EEDE8();
- gUnknown_083DFEC4->unk87C8 = gUnknown_083DFEC4->unk87CA == 1;
- gUnknown_083DFEC4->unkD162[0] = 11;
- break;
- case 1:
- SetUpWindowConfig(&gWindowConfig_81E70D4);
- break;
- case 2:
- MultistepInitMenuWindowBegin(&gWindowConfig_81E70D4);
- break;
- case 3:
- if (!MultistepInitMenuWindowContinue())
- {
- return TRUE;
- }
- break;
- case 4:
- MenuZeroFillScreen();
- break;
- case 5:
- LZ77UnCompVram(gUnknown_08E9FC64, (void *)VRAM + 0xE800);
- break;
- case 6:
- LZ77UnCompVram(gPokenavConditionSearch2_Gfx, (void *)VRAM + 0x8000);
- break;
- case 7:
- LoadPalette(gUnknown_083E02B4, 0xB0, 0x20);
- LoadPalette(gUnknown_083E02B4, 0xF0, 0x20);
- LoadPalette(gUnknown_083E0334, 0x40, 0x20);
+ gUnknown_083DFEC4->unk87C8 = gUnknown_083DFEC4->unk87CA == 1;
+ gUnknown_083DFEC4->unkD162[0] = 11;
+ break;
+ case 1:
+ SetUpWindowConfig(&gWindowConfig_81E70D4);
+ break;
+ case 2:
+ MultistepInitMenuWindowBegin(&gWindowConfig_81E70D4);
+ break;
+ case 3:
+ if (!MultistepInitMenuWindowContinue())
+ {
+ return TRUE;
+ }
+ break;
+ case 4:
+ MenuZeroFillScreen();
+ break;
+ case 5:
+ LZ77UnCompVram(gUnknown_08E9FC64, (void *)VRAM + 0xE800);
+ break;
+ case 6:
+ LZ77UnCompVram(gPokenavConditionSearch2_Gfx, (void *)VRAM + 0x8000);
+ break;
+ case 7:
+ LoadPalette(gUnknown_083E02B4, 0xB0, 0x20);
+ LoadPalette(gUnknown_083E02B4, 0xF0, 0x20);
+ LoadPalette(gUnknown_083E0334, 0x40, 0x20);
- if (gUnknown_083DFEC4->unk87CA == 0)
- {
- LoadPalette(gPokenavConditionSearch2_Pal, 0x30, 0x20);
- gPlttBufferUnfaded[0] = gPokenavConditionSearch2_Pal[5];
- LoadPalette(gUnknownPalette_81E6692, 0xB0, 0x20);
- LoadPalette(&gUnknown_083E02B4[1], 0xB1, 0x2);
- LoadPalette(&gUnknown_083E02B4[8], 0xB5, 0x2);
- LoadPalette(&gPokenavConditionSearch2_Pal[5], 0xBF, 0x2);
- }
- else if (gUnknown_083DFEC4->unk87CA == 1)
- {
- LoadPalette(gUnknown_083E0274, 0x30, 0x20);
- gPlttBufferUnfaded[0] = gUnknown_083E0274[5];
- LoadPalette(gUnknownPalette_81E6692, 0xB0, 0x20);
- LoadPalette(&gUnknown_083E02B4[1], 0xB1, 0x2);
- LoadPalette(&gUnknown_083E02B4[8], 0xB5, 0x2);
- LoadPalette(&gUnknown_083E0274[5], 0xBF, 0x2);
- }
- else
- {
- LoadPalette(gUnknown_08E9F9E8, 0x30, 0x20);
- pointer = &gUnknown_08E9F9E8[5];
- gPlttBufferUnfaded[0] = gUnknown_08E9F9E8[5];
- LoadPalette(gUnknown_083E0314, 0x50, 0x20);
- LoadPalette(&gUnknown_083E02B4[1], 0xB1, 0x2);
- LoadPalette(&gUnknown_083E02B4[8], 0xB5, 0x2);
- LoadPalette(pointer, 0xBF, 0x2);
- LoadPalette(pointer, 0x5F, 0x2);
- }
- break;
- case 8:
- if (gUnknown_083DFEC4->unk87CA != 2)
- {
- sub_8095C8C((void *)VRAM + 0xE800, 0, 5, gUnknown_08E9FD1C, 0, 0, 9, 4, 9);
- }
- else
- {
- sub_8095C8C((void *)VRAM + 0xE800, 0, 4, gUnknown_08E9FE54, 0, 0, 12, 10, 12);
- sub_8095C8C((void *)VRAM + 0xE800, 0, 8, gUnknown_08E9FD64, 0, 0, 12, 10, 12);
- }
- break;
- case 9:
- LZ77UnCompVram(gUnknown_083E0354, (void *)VRAM + 0x5000);
- break;
- case 10:
- DmaClear16(3, (void *)VRAM + 0xF800, 0x800);
- break;
- case 11:
- sub_80F0900();
- break;
- case 12:
- if (sub_80F0944())
- {
- return TRUE;
- }
- break;
- case 13:
- if (gUnknown_083DFEC4->unk87CA != 2)
- {
- ShowMapNamePopUpWindow();
- }
- else
- {
- sub_80F081C(0);
- sub_80F0FFC(gUnknown_083DFEC4->unk876E);
- }
- break;
- case 14:
- REG_BG2CNT = 0x1D0A;
- REG_BG3CNT = 0x1E03;
- REG_BG0CNT = 0x1F01;
- REG_BG3VOFS = 0xF8;
-
- gUnknown_083DFEC4->unk8776 = 0xF8;
- gUnknown_083DFEC4->unk8778 = 0;
-
- REG_BLDCNT = 0;
- gUnknown_083DFEC4->unkD160++;
- return FALSE;
- default:
- return FALSE;
- }
-
- gUnknown_083DFEC4->unk306++;
- return TRUE;
+ if (gUnknown_083DFEC4->unk87CA == 0)
+ {
+ LoadPalette(gPokenavConditionSearch2_Pal, 0x30, 0x20);
+ gPlttBufferUnfaded[0] = gPokenavConditionSearch2_Pal[5];
+ LoadPalette(gUnknownPalette_81E6692, 0xB0, 0x20);
+ LoadPalette(&gUnknown_083E02B4[1], 0xB1, 0x2);
+ LoadPalette(&gUnknown_083E02B4[8], 0xB5, 0x2);
+ LoadPalette(&gPokenavConditionSearch2_Pal[5], 0xBF, 0x2);
+ }
+ else if (gUnknown_083DFEC4->unk87CA == 1)
+ {
+ LoadPalette(gUnknown_083E0274, 0x30, 0x20);
+ gPlttBufferUnfaded[0] = gUnknown_083E0274[5];
+ LoadPalette(gUnknownPalette_81E6692, 0xB0, 0x20);
+ LoadPalette(&gUnknown_083E02B4[1], 0xB1, 0x2);
+ LoadPalette(&gUnknown_083E02B4[8], 0xB5, 0x2);
+ LoadPalette(&gUnknown_083E0274[5], 0xBF, 0x2);
+ }
+ else
+ {
+ LoadPalette(gUnknown_08E9F9E8, 0x30, 0x20);
+ pointer = &gUnknown_08E9F9E8[5];
+ gPlttBufferUnfaded[0] = gUnknown_08E9F9E8[5];
+ LoadPalette(gUnknown_083E0314, 0x50, 0x20);
+ LoadPalette(&gUnknown_083E02B4[1], 0xB1, 0x2);
+ LoadPalette(&gUnknown_083E02B4[8], 0xB5, 0x2);
+ LoadPalette(pointer, 0xBF, 0x2);
+ LoadPalette(pointer, 0x5F, 0x2);
+ }
+ break;
+ case 8:
+ if (gUnknown_083DFEC4->unk87CA != 2)
+ {
+ sub_8095C8C((void *)VRAM + 0xE800, 0, 5, gUnknown_08E9FD1C, 0, 0, 9, 4, 9);
+ }
+ else
+ {
+ sub_8095C8C((void *)VRAM + 0xE800, 0, 4, gUnknown_08E9FE54, 0, 0, 12, 10, 12);
+ sub_8095C8C((void *)VRAM + 0xE800, 0, 8, gUnknown_08E9FD64, 0, 0, 12, 10, 12);
+ }
+ break;
+ case 9:
+ LZ77UnCompVram(gUnknown_083E0354, (void *)VRAM + 0x5000);
+ break;
+ case 10:
+ DmaClear16(3, (void *)VRAM + 0xF800, 0x800);
+ break;
+ case 11:
+ sub_80F0900();
+ break;
+ case 12:
+ if (sub_80F0944())
+ {
+ return TRUE;
+ }
+ break;
+ case 13:
+ if (gUnknown_083DFEC4->unk87CA != 2)
+ {
+ ShowMapNamePopUpWindow();
+ }
+ else
+ {
+ sub_80F081C(0);
+ sub_80F0FFC(gUnknown_083DFEC4->unk876E);
+ }
+ break;
+ case 14:
+ REG_BG2CNT = 0x1D0A;
+ REG_BG3CNT = 0x1E03;
+ REG_BG0CNT = 0x1F01;
+ REG_BG3VOFS = 0xF8;
+
+ gUnknown_083DFEC4->unk8776 = 0xF8;
+ gUnknown_083DFEC4->unk8778 = 0;
+
+ REG_BLDCNT = 0;
+ gUnknown_083DFEC4->unkD160++;
+ return FALSE;
+ default:
+ return FALSE;
+ }
+
+ gUnknown_083DFEC4->unk306++;
+ return TRUE;
}
#else
__attribute__((naked))
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 9cf28a111..2691da859 100644
--- a/src/rom_8077ABC.c
+++ b/src/rom_8077ABC.c
@@ -1,13 +1,14 @@
#include "global.h"
+#include "constants/species.h"
#include "rom_8077ABC.h"
#include "battle.h"
#include "battle_anim.h"
#include "blend_palette.h"
+#include "contest.h"
#include "data2.h"
#include "decompress.h"
#include "palette.h"
#include "pokemon_icon.h"
-#include "constants/species.h"
#include "sprite.h"
#include "task.h"
#include "trig.h"
@@ -31,52 +32,28 @@
#define gTransformPersonalities gTransformedPersonalities
#define gBattleMonSprites gObjectBankIDs
-
-struct Struct_unk_2019348 {
- u16 field_0;
- u16 field_2;
- u8 field_4;
- u32 field_8;
- u32 field_c;
- u32 field_10;
-};
-
-struct TransformStatus {
+struct TransformStatus
+{
u16 unknown;
u16 species;
};
-struct Struct_gUnknown_0837F578 {
+struct Struct_gUnknown_0837F578
+{
u8 field_0;
u8 field_1;
};
-struct Struct_2017810 {
+struct Struct_2017810
+{
u8 filler_0[6];
u8 field_6;
u8 filler_7[5];
};
-struct Color {
- u16 r:5;
- u16 g:5;
- u16 b:5;
-};
-
-struct BGCnt {
- u16 priority:2;
- u16 charBase:2;
- u16 unused:2;
- u16 mosaic:1;
- u16 colorMode:1;
- u16 screenBase:5;
- u16 overflow:1;
- u16 size:2;
-};
-
-#define BG1CNT (*(volatile struct BGCnt*)REG_ADDR_BG1CNT)
-#define BG2CNT (*(volatile struct BGCnt*)REG_ADDR_BG2CNT)
-#define BG3CNT (*(volatile struct BGCnt*)REG_ADDR_BG3CNT)
+#define BG1CNT (*(vBgCnt *)REG_ADDR_BG1CNT)
+#define BG2CNT (*(vBgCnt *)REG_ADDR_BG2CNT)
+#define BG3CNT (*(vBgCnt *)REG_ADDR_BG3CNT)
extern struct OamData gOamData_837DF9C[];
extern const union AnimCmd *const gDummySpriteAnimTable[];
@@ -102,7 +79,8 @@ extern u8 UpdateMonIconFrame(struct Sprite *sprite);
EWRAM_DATA union AffineAnimCmd *gUnknown_0202F7D4 = NULL;
EWRAM_DATA u32 filler_0202F7D8[3] = {0};
-const struct Struct_gUnknown_0837F578 gUnknown_0837F578[][4] = {
+const struct Struct_gUnknown_0837F578 gUnknown_0837F578[][4] =
+{
{
{ 72, 80 },
{ 176, 40 },
@@ -120,14 +98,16 @@ const struct Struct_gUnknown_0837F578 gUnknown_0837F578[][4] = {
// One entry for each of the four Castform forms.
// Coords are probably front pic coords or back pic coords, but this data does not seem to be
// used during battle, party summary, or pokedex screens.
-const struct MonCoords gCastformFrontSpriteCoords[] = {
+const struct MonCoords gCastformFrontSpriteCoords[] =
+{
{ 0x44, 17 }, // NORMAL
{ 0x66, 9 }, // SUN
{ 0x46, 9 }, // RAIN
{ 0x86, 8 }, // HAIL
};
-const u8 gCastformElevations[] = {
+const u8 gCastformElevations[] =
+{
13, // NORMAL
14, // SUN
13, // RAIN
@@ -135,14 +115,16 @@ const u8 gCastformElevations[] = {
};
// Y position of the backsprite for each of the four Castform forms.
-const u8 gCastformBackSpriteYCoords[] = {
+const u8 gCastformBackSpriteYCoords[] =
+{
0, // NORMAL
0, // SUN
0, // RAIN
0, // HAIL
};
-const struct SpriteTemplate gSpriteTemplate_837F5B0[] = {
+const struct SpriteTemplate gSpriteTemplate_837F5B0[] =
+{
{
.tileTag = 55125,
.paletteTag = 55125,
@@ -151,7 +133,8 @@ const struct SpriteTemplate gSpriteTemplate_837F5B0[] = {
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = SpriteCallbackDummy,
- }, {
+ },
+ {
.tileTag = 55126,
.paletteTag = 55126,
.oam = gOamData_837DF9C,
@@ -162,23 +145,26 @@ const struct SpriteTemplate gSpriteTemplate_837F5B0[] = {
}
};
-const struct SpriteSheet gUnknown_0837F5E0[] = {
+const struct SpriteSheet gUnknown_0837F5E0[] =
+{
{ gMiscBlank_Gfx, 0x800, 55125, },
{ gMiscBlank_Gfx, 0x800, 55126, },
};
-u8 GetBankPosition(u8 slot, u8 a2) {
+u8 GetBankPosition(u8 slot, u8 a2)
+{
u8 var;
u16 species;
struct TransformStatus *transform;
- if (IsContest()) {
- if (a2 == 3 && slot == 3) {
+ if (IsContest())
+ {
+ if (a2 == 3 && slot == 3)
a2 = 1;
- }
}
- switch (a2) {
+ switch (a2)
+ {
case 0:
case 2:
var = gUnknown_0837F578[IS_DOUBLE_BATTLE()][GetBankIdentity(slot)].field_0;
@@ -189,339 +175,402 @@ u8 GetBankPosition(u8 slot, u8 a2) {
case 3:
case 4:
default:
- if (IsContest()) {
- if (ewram19348.unk4 & 1) {
- species = ewram19348.unk2;
- } else {
- species = ewram19348.unk0;
- }
- } else {
- if (GetBankSide(slot)) {
+ if (IsContest())
+ {
+ if (shared19348.unk4_0)
+ species = shared19348.unk2;
+ else
+ species = shared19348.unk0;
+ }
+ else
+ {
+ if (GetBankSide(slot))
+ {
transform = &eTransformStatuses[slot];
- if (!transform->species) {
+ if (!transform->species)
species = GetMonData(&gEnemyParty[gBattleMonPartyPositions[slot]], MON_DATA_SPECIES);
- } else {
+ else
species = transform->species;
- }
- } else {
+ }
+ else
+ {
transform = &eTransformStatuses[slot];
- if (!transform->species) {
+ if (!transform->species)
species = GetMonData(&gPlayerParty[gBattleMonPartyPositions[slot]], MON_DATA_SPECIES);
- } else {
+ else
species = transform->species;
- }
}
}
- if (a2 == 3) {
+ if (a2 == 3)
var = sub_8077E44(slot, species, 1);
- } else {
+ else
var = sub_8077E44(slot, species, 0);
- }
break;
}
return var;
}
-u8 sub_8077BFC(u8 slot, u16 species) {
+u8 sub_8077BFC(u8 slot, u16 species)
+{
u16 letter;
u32 personality;
struct TransformStatus *transform;
u8 ret;
u16 var;
- if (!GetBankSide(slot) || IsContest()) {
- if (species == SPECIES_UNOWN) {
- if (IsContest()) {
- if (ewram19348.unk4 & 1) {
- personality = ewram19348.unk10;
- } else {
- personality = ewram19348.unk8;
- }
- } else {
+ if (GetBankSide(slot) == 0 || IsContest())
+ {
+ if (species == SPECIES_UNOWN)
+ {
+ if (IsContest())
+ {
+ if (shared19348.unk4_0)
+ personality = shared19348.unk10;
+ else
+ personality = shared19348.unk8;
+ }
+ else
+ {
transform = &eTransformStatuses[slot];
- if (!transform->species) {
+ if (!transform->species)
personality = GetMonData(&gPlayerParty[gBattleMonPartyPositions[slot]], MON_DATA_PERSONALITY);
- } else {
+ else
personality = gTransformPersonalities[slot];
- }
}
letter = GET_UNOWN_LETTER(personality);
- if (!letter) {
+ if (!letter)
var = species;
- } else {
+ else
var = letter + SPECIES_UNOWN_B - 1;
- }
ret = gMonBackPicCoords[var].y_offset;
- } else if (species == SPECIES_CASTFORM) {
+ }
+ else if (species == SPECIES_CASTFORM)
+ {
ret = gCastformBackSpriteYCoords[gBattleMonForms[slot]];
- } else if (species > NUM_SPECIES) {
+ }
+ else if (species > NUM_SPECIES)
+ {
ret = gMonBackPicCoords[0].y_offset;
- } else {
+ }
+ else
+ {
ret = gMonBackPicCoords[species].y_offset;
}
- } else {
- if (species == SPECIES_UNOWN) {
+ }
+ else
+ {
+ if (species == SPECIES_UNOWN)
+ {
transform = &eTransformStatuses[slot];
- if (!transform->species) {
+ if (!transform->species)
personality = GetMonData(&gEnemyParty[gBattleMonPartyPositions[slot]], MON_DATA_PERSONALITY);
- } else {
+ else
personality = gTransformPersonalities[slot];
- }
letter = GET_UNOWN_LETTER(personality);
- if (!letter) {
+ if (!letter)
var = species;
- } else {
+ else
var = letter + SPECIES_UNOWN_B - 1;
- }
ret = gMonFrontPicCoords[var].y_offset;
- } else if (species == SPECIES_CASTFORM) {
+ }
+ else if (species == SPECIES_CASTFORM)
+ {
ret = gCastformFrontSpriteCoords[gBattleMonForms[slot]].y_offset;
- } else if (species > NUM_SPECIES) {
+ }
+ else if (species > NUM_SPECIES)
+ {
ret = gMonFrontPicCoords[0].y_offset;
- } else {
+ }
+ else
+ {
ret = gMonFrontPicCoords[species].y_offset;
}
}
return ret;
}
-u8 sub_8077DD8(u8 slot, u16 species) {
+u8 sub_8077DD8(u8 slot, u16 species)
+{
u8 ret = 0;
- if (GetBankSide(slot) == 1) {
- if (!IsContest()) {
- if (species == SPECIES_CASTFORM) {
+ if (GetBankSide(slot) == 1)
+ {
+ if (!IsContest())
+ {
+ if (species == SPECIES_CASTFORM)
ret = gCastformElevations[gBattleMonForms[slot]];
- } else if (species > NUM_SPECIES) {
+ else if (species > NUM_SPECIES)
ret = gEnemyMonElevation[0];
- } else {
+ else
ret = gEnemyMonElevation[species];
- }
}
}
return ret;
}
-u8 sub_8077E44(u8 slot, u16 species, u8 a3) {
+u8 sub_8077E44(u8 slot, u16 species, u8 a3)
+{
u16 offset;
u8 y;
- if (GetBankSide(slot) == 0 || IsContest()) {
+
+ if (GetBankSide(slot) == 0 || IsContest())
+ {
offset = sub_8077BFC(slot, species);
- } else {
+ }
+ else
+ {
offset = sub_8077BFC(slot, species);
offset -= sub_8077DD8(slot, species);
}
y = offset + gUnknown_0837F578[IS_DOUBLE_BATTLE()][GetBankIdentity(slot)].field_1;
- if (a3) {
- if (GetBankSide(slot) == 0) {
+ if (a3)
+ {
+ if (GetBankSide(slot) == 0)
y += 8;
- }
- if (y > 104) y = 104;
+ if (y > 104)
+ y = 104;
}
return y;
}
-u8 sub_8077EE4(u8 slot, u8 a2) {
+u8 sub_8077EE4(u8 slot, u8 a2)
+{
u16 species;
struct TransformStatus *transform;
- if (a2 == 3 || a2 == 4) {
- if (IsContest()) {
- if (ewram19348.unk4 & 1) {
- species = ewram19348.unk2;
- } else {
- species = ewram19348.unk0;
- }
- } else {
+ if (a2 == 3 || a2 == 4)
+ {
+ if (IsContest())
+ {
+ if (shared19348.unk4_0)
+ species = shared19348.unk2;
+ else
+ species = shared19348.unk0;
+ }
+ else
+ {
transform = &eTransformStatuses[slot];
- if (!transform->species) {
+ if (!transform->species)
species = gAnimSpeciesByBanks[slot];
- } else {
+ else
species = transform->species;
- }
}
- if (a2 == 3) {
+ if (a2 == 3)
return sub_8077E44(slot, species, 1);
- } else {
+ else
return sub_8077E44(slot, species, 0);
- }
- } else {
+ }
+ else
+ {
return GetBankPosition(slot, a2);
}
}
-u8 sub_8077F68(u8 slot) {
+u8 sub_8077F68(u8 slot)
+{
return GetBankPosition(slot, 4);
}
-u8 sub_8077F7C(u8 slot) {
+u8 sub_8077F7C(u8 slot)
+{
u16 var;
- if (GetBankSide(slot)) {
+ if (GetBankSide(slot) != 0)
var = GetBankPosition(slot, 1) + 16;
- } else {
+ else
var = GetBankPosition(slot, 1) + 17;
- }
return var;
}
-u8 sub_8077FC0(u8 slot) {
+u8 sub_8077FC0(u8 slot)
+{
u16 var;
u8 r6;
struct TransformStatus *transform;
+
r6 = GetBankPosition(slot, 1);
- if (!IsContest()) {
- if (GetBankSide(slot)) {
+ if (!IsContest())
+ {
+ if (GetBankSide(slot) != 0)
+ {
transform = &eTransformStatuses[slot];
if (!transform->species) {
var = GetMonData(&gEnemyParty[gBattleMonPartyPositions[slot]], MON_DATA_SPECIES);
} else {
var = transform->species;
}
- } else {
+ }
+ else
+ {
transform = &eTransformStatuses[slot];
- if (!transform->species) {
+ if (!transform->species)
var = GetMonData(&gPlayerParty[gBattleMonPartyPositions[slot]], MON_DATA_SPECIES);
- } else {
+ else
var = transform->species;
- }
}
- if (GetBankSide(slot)) {
+ if (GetBankSide(slot) != 0)
r6 -= sub_8077DD8(slot, var);
- }
}
return r6;
}
-u8 GetAnimBankSpriteId(u8 whichBank) {
+u8 GetAnimBankSpriteId(u8 whichBank)
+{
u8 *sprites;
- if (whichBank == ANIM_BANK_ATTACKER) {
- if (IsBankSpritePresent(gAnimBankAttacker)) {
+
+ if (whichBank == ANIM_BANK_ATTACKER)
+ {
+ if (IsBankSpritePresent(gAnimBankAttacker))
+ {
sprites = gBattleMonSprites;
return sprites[gAnimBankAttacker];
- } else {
+ }
+ else
+ {
return 0xff;
}
- } else if (whichBank == ANIM_BANK_TARGET) {
- if (IsBankSpritePresent(gAnimBankTarget)) {
+ }
+ else if (whichBank == ANIM_BANK_TARGET)
+ {
+ if (IsBankSpritePresent(gAnimBankTarget))
+ {
sprites = gBattleMonSprites;
return sprites[gAnimBankTarget];
- } else {
+ }
+ else
+ {
return 0xff;
}
- } else if (whichBank == ANIM_BANK_ATK_PARTNER) {
- if (!IsAnimBankSpriteVisible(gAnimBankAttacker ^ 2)) {
+ }
+ else if (whichBank == ANIM_BANK_ATK_PARTNER)
+ {
+ if (!IsAnimBankSpriteVisible(gAnimBankAttacker ^ 2))
return 0xff;
- } else {
+ else
return gBattleMonSprites[gAnimBankAttacker ^ 2];
- }
- } else {
- if (IsAnimBankSpriteVisible(gAnimBankTarget ^ 2)) {
+ }
+ else
+ {
+ if (IsAnimBankSpriteVisible(gAnimBankTarget ^ 2))
return gBattleMonSprites[gAnimBankTarget ^ 2];
- } else {
+ else
return 0xff;
- }
}
}
-void StoreSpriteCallbackInData(struct Sprite *sprite, void (*callback)(struct Sprite*)) {
+void StoreSpriteCallbackInData(struct Sprite *sprite, void (*callback)(struct Sprite*))
+{
sprite->data[6] = (u32)(callback) & 0xffff;
sprite->data[7] = (u32)(callback) >> 16;
}
-void SetCallbackToStoredInData(struct Sprite *sprite) {
+void SetCallbackToStoredInData(struct Sprite *sprite)
+{
u32 callback = (u16)sprite->data[6] | (sprite->data[7] << 16);
sprite->callback = (void (*)(struct Sprite *))callback;
}
-void sub_8078114(struct Sprite *sprite) {
- if (sprite->data[3]) {
+void sub_8078114(struct Sprite *sprite)
+{
+ if (sprite->data[3])
+ {
sprite->pos2.x = Sin(sprite->data[0], sprite->data[1]);
sprite->pos2.y = Cos(sprite->data[0], sprite->data[1]);
sprite->data[0] += sprite->data[2];
- if (sprite->data[0] >= 0x100) {
+ if (sprite->data[0] >= 0x100)
sprite->data[0] -= 0x100;
- } else if (sprite->data[0] < 0) {
+ else if (sprite->data[0] < 0)
sprite->data[0] += 0x100;
- }
sprite->data[3]--;
- } else {
+ }
+ else
+ {
SetCallbackToStoredInData(sprite);
}
}
-void sub_8078174(struct Sprite *sprite) {
- if (sprite->data[3]) {
+void sub_8078174(struct Sprite *sprite)
+{
+ if (sprite->data[3])
+ {
sprite->pos2.x = Sin(sprite->data[0], (sprite->data[5] >> 8) + sprite->data[1]);
sprite->pos2.y = Cos(sprite->data[0], (sprite->data[5] >> 8) + sprite->data[1]);
sprite->data[0] += sprite->data[2];
sprite->data[5] += sprite->data[4];
- if (sprite->data[0] >= 0x100) {
+ if (sprite->data[0] >= 0x100)
sprite->data[0] -= 0x100;
- } else if (sprite->data[0] < 0) {
+ else if (sprite->data[0] < 0)
sprite->data[0] += 0x100;
- }
sprite->data[3]--;
- } else {
+ }
+ else
+ {
SetCallbackToStoredInData(sprite);
}
}
-void unref_sub_80781F0(struct Sprite *sprite) {
- if (sprite->data[3]) {
+void unref_sub_80781F0(struct Sprite *sprite)
+{
+ if (sprite->data[3])
+ {
sprite->pos2.x = Sin(sprite->data[0], sprite->data[1]);
sprite->pos2.y = Cos(sprite->data[4], sprite->data[1]);
sprite->data[0] += sprite->data[2];
sprite->data[4] += sprite->data[5];
- if (sprite->data[0] >= 0x100) {
+ if (sprite->data[0] >= 0x100)
sprite->data[0] -= 0x100;
- } else if (sprite->data[0] < 0) {
+ else if (sprite->data[0] < 0)
sprite->data[0] += 0x100;
- }
- if (sprite->data[4] >= 0x100) {
+ if (sprite->data[4] >= 0x100)
sprite->data[4] -= 0x100;
- } else if (sprite->data[4] < 0) {
+ else if (sprite->data[4] < 0)
sprite->data[4] += 0x100;
- }
sprite->data[3]--;
- } else {
+ }
+ else
+ {
SetCallbackToStoredInData(sprite);
}
}
-void sub_8078278(struct Sprite *sprite) {
- if (sprite->data[3]) {
+void sub_8078278(struct Sprite *sprite)
+{
+ if (sprite->data[3])
+ {
sprite->pos2.x = Sin(sprite->data[0], sprite->data[1]);
sprite->pos2.y = Cos(sprite->data[0], sprite->data[4]);
sprite->data[0] += sprite->data[2];
- if (sprite->data[0] >= 0x100) {
+ if (sprite->data[0] >= 0x100)
sprite->data[0] -= 0x100;
- } else if (sprite->data[0] < 0) {
+ else if (sprite->data[0] < 0)
sprite->data[0] += 0x100;
- }
sprite->data[3]--;
- } else {
+ }
+ else
+ {
SetCallbackToStoredInData(sprite);
}
}
-void sub_80782D8(struct Sprite *sprite) {
- if (sprite->data[0] > 0) {
+void sub_80782D8(struct Sprite *sprite)
+{
+ if (sprite->data[0] > 0)
sprite->data[0]--;
- } else {
+ else
SetCallbackToStoredInData(sprite);
- }
}
-void sub_80782F8(struct Sprite *sprite) {
+void sub_80782F8(struct Sprite *sprite)
+{
sub_8078314(sprite);
sprite->callback = sub_8078364;
sprite->callback(sprite);
}
-void sub_8078314(struct Sprite *sprite) {
+void sub_8078314(struct Sprite *sprite)
+{
s16 old;
int v1;
- if (sprite->data[1] > sprite->data[2]) {
+
+ if (sprite->data[1] > sprite->data[2])
sprite->data[0] = -sprite->data[0];
- }
v1 = sprite->data[2] - sprite->data[1];
old = sprite->data[0];
sprite->data[0] = abs(v1 / sprite->data[0]);
@@ -529,42 +578,55 @@ void sub_8078314(struct Sprite *sprite) {
sprite->data[1] = old;
}
-void sub_8078364(struct Sprite *sprite) {
- if (sprite->data[0] > 0) {
+void sub_8078364(struct Sprite *sprite)
+{
+ if (sprite->data[0] > 0)
+ {
sprite->data[0]--;
sprite->pos2.x += sprite->data[1];
sprite->pos2.y += sprite->data[2];
- } else {
+ }
+ else
+ {
SetCallbackToStoredInData(sprite);
}
}
-void sub_8078394(struct Sprite *sprite) {
- if (sprite->data[0] > 0) {
+void sub_8078394(struct Sprite *sprite)
+{
+ if (sprite->data[0] > 0)
+ {
sprite->data[0]--;
sprite->data[3] += sprite->data[1];
sprite->data[4] += sprite->data[2];
sprite->pos2.x = sprite->data[3] >> 8;
sprite->pos2.y = sprite->data[4] >> 8;
- } else {
+ }
+ else
+ {
SetCallbackToStoredInData(sprite);
}
}
-void sub_80783D0(struct Sprite *sprite) {
- if (sprite->data[0] > 0) {
+void sub_80783D0(struct Sprite *sprite)
+{
+ if (sprite->data[0] > 0)
+ {
sprite->data[0]--;
sprite->data[3] += sprite->data[1];
sprite->data[4] += sprite->data[2];
sprite->pos2.x = sprite->data[3] >> 8;
sprite->pos2.y = sprite->data[4] >> 8;
- } else {
+ }
+ else
+ {
SetCallbackToStoredInData(sprite);
}
UpdateMonIconFrame(sprite);
}
-void unref_sub_8078414(struct Sprite *sprite) {
+void unref_sub_8078414(struct Sprite *sprite)
+{
sprite->data[1] = sprite->pos1.x + sprite->pos2.x;
sprite->data[3] = sprite->pos1.y + sprite->pos2.y;
sprite->data[2] = GetBankPosition(gAnimBankTarget, 2);
@@ -572,51 +634,65 @@ void unref_sub_8078414(struct Sprite *sprite) {
sprite->callback = sub_80782F8;
}
-void sub_8078458(struct Sprite *sprite) {
- if (sprite->data[0] > 0) {
+void sub_8078458(struct Sprite *sprite)
+{
+ if (sprite->data[0] > 0)
+ {
sprite->data[0]--;
gSprites[sprite->data[3]].pos2.x += sprite->data[1];
gSprites[sprite->data[3]].pos2.y += sprite->data[2];
- } else {
+ }
+ else
+ {
SetCallbackToStoredInData(sprite);
}
}
-void sub_80784A8(struct Sprite *sprite) {
- if (sprite->data[0] > 0) {
+void sub_80784A8(struct Sprite *sprite)
+{
+ if (sprite->data[0] > 0)
+ {
sprite->data[0]--;
sprite->data[3] += sprite->data[1];
sprite->data[4] += sprite->data[2];
gSprites[sprite->data[5]].pos2.x = sprite->data[3] >> 8;
gSprites[sprite->data[5]].pos2.y = sprite->data[4] >> 8;
- } else {
+ }
+ else
+ {
SetCallbackToStoredInData(sprite);
}
}
-void sub_8078504(struct Sprite *sprite) {
- if (sprite->data[0] > 0) {
+void sub_8078504(struct Sprite *sprite)
+{
+ if (sprite->data[0] > 0)
+ {
sprite->data[0]--;
sprite->pos2.x = sprite->data[2] >> 8;
sprite->data[2] += sprite->data[1];
sprite->pos2.y = sprite->data[4] >> 8;
sprite->data[4] += sprite->data[3];
- if (sprite->data[0] % sprite->data[5] == 0) {
- if (sprite->data[5]) {
+ if (sprite->data[0] % sprite->data[5] == 0)
+ {
+ if (sprite->data[5])
sprite->invisible ^= 1;
- }
}
- } else {
+ }
+ else
+ {
SetCallbackToStoredInData(sprite);
}
}
-void move_anim_8074EE0(struct Sprite *sprite) {
+void move_anim_8074EE0(struct Sprite *sprite)
+{
FreeSpriteOamMatrix(sprite);
DestroyAnimSprite(sprite);
}
-void unref_sub_8078588(struct Sprite *sprite) {
+void unref_sub_8078588(struct Sprite *sprite)
+{
sprite->data[1] = sprite->pos1.x + sprite->pos2.x;
sprite->data[3] = sprite->pos1.y + sprite->pos2.y;
sprite->data[2] = GetBankPosition(gAnimBankAttacker, 2);
@@ -624,57 +700,68 @@ void unref_sub_8078588(struct Sprite *sprite) {
sprite->callback = sub_80782F8;
}
-void unref_sub_80785CC(struct Sprite *sprite) {
+void unref_sub_80785CC(struct Sprite *sprite)
+{
ResetPaletteStructByUid(sprite->data[5]);
move_anim_8074EE0(sprite);
}
-void sub_80785E4(struct Sprite *sprite) {
- if (sprite->affineAnimEnded) {
+void sub_80785E4(struct Sprite *sprite)
+{
+ if (sprite->affineAnimEnded)
SetCallbackToStoredInData(sprite);
- }
}
-void sub_8078600(struct Sprite *sprite) {
- if (sprite->animEnded) {
+void sub_8078600(struct Sprite *sprite)
+{
+ if (sprite->animEnded)
SetCallbackToStoredInData(sprite);
- }
}
-void sub_807861C(struct Sprite *sprite) {
+void sub_807861C(struct Sprite *sprite)
+{
REG_BLDCNT = 0;
REG_BLDALPHA = 0;
DestroyAnimSprite(sprite);
}
-void sub_8078634(u8 task) {
+void sub_8078634(u8 task)
+{
REG_BLDCNT = 0;
REG_BLDALPHA = 0;
DestroyAnimVisualTask(task);
}
-void sub_8078650(struct Sprite *sprite) {
+void sub_8078650(struct Sprite *sprite)
+{
sprite->pos1.x = GetBankPosition(gAnimBankAttacker, 2);
sprite->pos1.y = GetBankPosition(gAnimBankAttacker, 3);
}
-void sub_807867C(struct Sprite *sprite, s16 a2) {
+void sub_807867C(struct Sprite *sprite, s16 a2)
+{
u16 v1 = GetBankPosition(gAnimBankAttacker, 0);
u16 v2 = GetBankPosition(gAnimBankTarget, 0);
- if (v1 > v2) {
+
+ if (v1 > v2)
+ {
sprite->pos1.x -= a2;
- } else if (v1 < v2) {
+ }
+ else if (v1 < v2)
+ {
sprite->pos1.x += a2;
- } else {
- if (GetBankSide(gAnimBankAttacker)) {
+ }
+ else
+ {
+ if (GetBankSide(gAnimBankAttacker) != 0)
sprite->pos1.x -= a2;
- } else {
+ else
sprite->pos1.x += a2;
- }
}
}
-void sub_80786EC(struct Sprite *sprite) {
+void sub_80786EC(struct Sprite *sprite)
+{
sprite->data[1] = sprite->pos1.x;
sprite->data[3] = sprite->pos1.y;
obj_translate_based_on_private_1_2_3_4(sprite);
@@ -682,24 +769,27 @@ void sub_80786EC(struct Sprite *sprite) {
sprite->data[7] = 0;
}
-bool8 sub_8078718(struct Sprite *sprite) {
- if (sub_8078B5C(sprite)) {
+bool8 sub_8078718(struct Sprite *sprite)
+{
+ if (sub_8078B5C(sprite))
return TRUE;
- }
sprite->data[7] += sprite->data[6];
sprite->pos2.y += Sin((u8)(sprite->data[7] >> 8), sprite->data[5]);
return FALSE;
}
-void oamt_add_pos2_onto_pos1(struct Sprite *sprite) {
+void oamt_add_pos2_onto_pos1(struct Sprite *sprite)
+{
sprite->pos1.x += sprite->pos2.x;
sprite->pos1.y += sprite->pos2.y;
sprite->pos2.x = 0;
sprite->pos2.y = 0;
}
-void sub_8078764(struct Sprite *sprite, u8 a2) {
- if (!a2) {
+void sub_8078764(struct Sprite *sprite, u8 a2)
+{
+ if (!a2)
+ {
sprite->pos1.x = sub_8077EE4(gAnimBankTarget, 0);
sprite->pos1.y = sub_8077EE4(gAnimBankTarget, 1);
}
@@ -707,11 +797,15 @@ void sub_8078764(struct Sprite *sprite, u8 a2) {
sprite->pos1.y += gBattleAnimArgs[1];
}
-void sub_80787B0(struct Sprite *sprite, u8 a2) {
- if (!a2) {
+void sub_80787B0(struct Sprite *sprite, u8 a2)
+{
+ if (!a2)
+ {
sprite->pos1.x = sub_8077EE4(gAnimBankAttacker, 0);
sprite->pos1.y = sub_8077EE4(gAnimBankAttacker, 1);
- } else {
+ }
+ else
+ {
sprite->pos1.x = sub_8077EE4(gAnimBankAttacker, 2);
sprite->pos1.y = sub_8077EE4(gAnimBankAttacker, 3);
}
@@ -719,103 +813,127 @@ void sub_80787B0(struct Sprite *sprite, u8 a2) {
sprite->pos1.y += gBattleAnimArgs[1];
}
-u8 GetBankSide(u8 slot) {
+u8 GetBankSide(u8 slot)
+{
return gBanksBySide[slot] & 1;
}
-u8 GetBankIdentity(u8 slot) {
+u8 GetBankIdentity(u8 slot)
+{
return gBanksBySide[slot];
}
-u8 GetBankByPlayerAI(u8 slot) {
+u8 GetBankByIdentity(u8 slot)
+{
u8 i;
- for (i = 0; i < gNoOfAllBanks; i++) {
- if (gBanksBySide[i] == slot) {
+
+ for (i = 0; i < gNoOfAllBanks; i++)
+ {
+ if (gBanksBySide[i] == slot)
break;
- }
}
return i;
}
-bool8 IsBankSpritePresent(u8 slot) {
- if (IsContest()) {
- if (gAnimBankAttacker == slot) {
+bool8 IsBankSpritePresent(u8 slot)
+{
+ if (IsContest())
+ {
+ if (gAnimBankAttacker == slot)
return TRUE;
- }
- if (gAnimBankTarget == slot) {
+ if (gAnimBankTarget == slot)
return TRUE;
- }
return FALSE;
- } else {
- if (gBanksBySide[slot] == 0xff) {
+ }
+ else
+ {
+ if (gBanksBySide[slot] == 0xff)
return FALSE;
- }
- if (GetBankSide(slot)) {
- if (GetMonData(&gEnemyParty[gBattleMonPartyPositions[slot]], MON_DATA_HP) != 0) {
+ if (GetBankSide(slot))
+ {
+ if (GetMonData(&gEnemyParty[gBattleMonPartyPositions[slot]], MON_DATA_HP) != 0)
return TRUE;
- }
- } else {
- if (GetMonData(&gPlayerParty[gBattleMonPartyPositions[slot]], MON_DATA_HP) != 0) {
+ }
+ else
+ {
+ if (GetMonData(&gPlayerParty[gBattleMonPartyPositions[slot]], MON_DATA_HP) != 0)
return TRUE;
- }
}
return FALSE;
}
}
-bool8 IsDoubleBattle() {
+bool8 IsDoubleBattle()
+{
return IS_DOUBLE_BATTLE();
}
-void sub_8078914(struct Struct_sub_8078914 *unk) {
- if (IsContest()) {
- unk->field_0 = (u8 *)0x6008000;
- unk->field_4 = (u8 *)0x600f000;
+void sub_8078914(struct Struct_sub_8078914 *unk)
+{
+ if (IsContest())
+ {
+ unk->field_0 = (u8 *)(VRAM + 0x8000);
+ unk->field_4 = (u8 *)(VRAM + 0xf000);
unk->field_8 = 0xe;
- } else {
- unk->field_0 = (u8 *)0x6004000;
- unk->field_4 = (u8 *)0x600e000;
+ }
+ else
+ {
+ unk->field_0 = (u8 *)(VRAM + 0x4000);
+ unk->field_4 = (u8 *)(VRAM + 0xe000);
unk->field_8 = 0x8;
}
}
-void sub_8078954(struct Struct_sub_8078914 *unk) {
- if (IsContest()) {
- unk->field_0 = (u8 *)0x6008000;
- unk->field_4 = (u8 *)0x600f000;
+void sub_8078954(struct Struct_sub_8078914 *unk)
+{
+ if (IsContest())
+ {
+ unk->field_0 = (u8 *)(VRAM + 0x8000);
+ unk->field_4 = (u8 *)(VRAM + 0xf000);
unk->field_8 = 0xe;
- } else if (GetBankIdentity_permutated(gAnimBankAttacker) == 1) {
- unk->field_0 = (u8 *)0x6004000;
- unk->field_4 = (u8 *)0x600e000;
+ }
+ else if (GetBankIdentity_permutated(gAnimBankAttacker) == 1)
+ {
+ unk->field_0 = (u8 *)(VRAM + 0x4000);
+ unk->field_4 = (u8 *)(VRAM + 0xe000);
unk->field_8 = 0x8;
- } else {
- unk->field_0 = (u8 *)0x6006000;
- unk->field_4 = (u8 *)0x600f000;
+ }
+ else
+ {
+ unk->field_0 = (u8 *)(VRAM + 0x6000);
+ unk->field_4 = (u8 *)(VRAM + 0xf000);
unk->field_8 = 0x9;
}
}
-u8 sub_80789BC() {
- if (IsContest()) {
+u8 sub_80789BC()
+{
+ if (IsContest())
return 1;
- }
return 2;
}
-void sub_80789D4(bool8 a1) {
- if (!a1) {
- BG3CNT.size = 0;
- BG3CNT.overflow = 1;
- } else if (IsContest()) {
- BG3CNT.size = 0;
- BG3CNT.overflow = 1;
- } else {
- BG3CNT.size = 1;
- BG3CNT.overflow = 0;
+void sub_80789D4(bool8 a1)
+{
+ if (!a1)
+ {
+ BG3CNT.screenSize = 0;
+ BG3CNT.areaOverflowMode = 1;
+ }
+ else if (IsContest())
+ {
+ BG3CNT.screenSize = 0;
+ BG3CNT.areaOverflowMode = 1;
+ }
+ else
+ {
+ BG3CNT.screenSize = 1;
+ BG3CNT.areaOverflowMode = 0;
}
}
-void sub_8078A34(struct Sprite *sprite) {
+void sub_8078A34(struct Sprite *sprite)
+{
sprite->data[1] = sprite->pos1.x;
sprite->data[3] = sprite->pos1.y;
sub_8078A5C(sprite);
@@ -823,7 +941,8 @@ void sub_8078A34(struct Sprite *sprite) {
sprite->callback(sprite);
}
-void sub_8078A5C(struct Sprite *sprite) {
+void sub_8078A5C(struct Sprite *sprite)
+{
s16 x = (sprite->data[2] - sprite->data[1]) << 8;
s16 y = (sprite->data[4] - sprite->data[3]) << 8;
sprite->data[1] = x / sprite->data[0];
@@ -832,32 +951,36 @@ void sub_8078A5C(struct Sprite *sprite) {
sprite->data[3] = 0;
}
-void obj_translate_based_on_private_1_2_3_4(struct Sprite *sprite) {
+void obj_translate_based_on_private_1_2_3_4(struct Sprite *sprite)
+{
int x = sprite->data[2] - sprite->data[1];
int y = sprite->data[4] - sprite->data[3];
bool8 r8 = x < 0;
bool8 r9 = y < 0;
u16 x2 = abs(x) << 8;
u16 y2 = abs(y) << 8;
+
x2 = x2 / sprite->data[0];
y2 = y2 / sprite->data[0];
- if (r8) {
+
+ if (r8)
x2 |= 1;
- } else {
+ else
x2 &= ~1;
- }
- if (r9) {
+
+ if (r9)
y2 |= 1;
- } else {
+ else
y2 &= ~1;
- }
+
sprite->data[1] = x2;
sprite->data[2] = y2;
sprite->data[4] = 0;
sprite->data[3] = 0;
}
-void sub_8078B34(struct Sprite *sprite) {
+void sub_8078B34(struct Sprite *sprite)
+{
sprite->data[1] = sprite->pos1.x;
sprite->data[3] = sprite->pos1.y;
obj_translate_based_on_private_1_2_3_4(sprite);
@@ -865,46 +988,51 @@ void sub_8078B34(struct Sprite *sprite) {
sprite->callback(sprite);
}
-bool8 sub_8078B5C(struct Sprite *sprite) {
+bool8 sub_8078B5C(struct Sprite *sprite)
+{
u16 v1, v2, x, y;
- if (!sprite->data[0]) {
+
+ if (!sprite->data[0])
return TRUE;
- }
+
v1 = sprite->data[1];
v2 = sprite->data[2];
x = sprite->data[3];
y = sprite->data[4];
x += v1;
y += v2;
- if (v1 & 1) {
+
+ if (v1 & 1)
sprite->pos2.x = -(x >> 8);
- } else {
+ else
sprite->pos2.x = x >> 8;
- }
- if (v2 & 1) {
+
+ if (v2 & 1)
sprite->pos2.y = -(y >> 8);
- } else {
+ else
sprite->pos2.y = y >> 8;
- }
+
sprite->data[3] = x;
sprite->data[4] = y;
sprite->data[0]--;
return FALSE;
}
-void sub_8078BB8(struct Sprite *sprite) {
- if (sub_8078B5C(sprite)) {
+void sub_8078BB8(struct Sprite *sprite)
+{
+ if (sub_8078B5C(sprite))
SetCallbackToStoredInData(sprite);
- }
}
-void sub_8078BD4(struct Sprite *sprite) {
+void sub_8078BD4(struct Sprite *sprite)
+{
int v1 = abs(sprite->data[2] - sprite->data[1]) << 8;
sprite->data[0] = v1 / sprite->data[0];
obj_translate_based_on_private_1_2_3_4(sprite);
}
-void sub_8078C00(struct Sprite *sprite) {
+void sub_8078C00(struct Sprite *sprite)
+{
sprite->data[1] = sprite->pos1.x;
sprite->data[3] = sprite->pos1.y;
sub_8078BD4(sprite);
@@ -912,32 +1040,36 @@ void sub_8078C00(struct Sprite *sprite) {
sprite->callback(sprite);
}
-void sub_8078C28(struct Sprite *sprite) {
+void sub_8078C28(struct Sprite *sprite)
+{
int x = sprite->data[2] - sprite->data[1];
int y = sprite->data[4] - sprite->data[3];
bool8 x_sign = x < 0;
bool8 y_sign = y < 0;
u16 x2 = abs(x) << 4;
u16 y2 = abs(y) << 4;
+
x2 /= sprite->data[0];
y2 /= sprite->data[0];
- if (x_sign) {
+
+ if (x_sign)
x2 |= 1;
- } else {
+ else
x2 &= ~1;
- }
- if (y_sign) {
+
+ if (y_sign)
y2 |= 1;
- } else {
+ else
y2 &= ~1;
- }
+
sprite->data[1] = x2;
sprite->data[2] = y2;
sprite->data[4] = 0;
sprite->data[3] = 0;
}
-void sub_8078CC0(struct Sprite *sprite) {
+void sub_8078CC0(struct Sprite *sprite)
+{
sprite->data[1] = sprite->pos1.x;
sprite->data[3] = sprite->pos1.y;
sub_8078C28(sprite);
@@ -945,46 +1077,51 @@ void sub_8078CC0(struct Sprite *sprite) {
sprite->callback(sprite);
}
-bool8 sub_8078CE8(struct Sprite *sprite) {
+bool8 sub_8078CE8(struct Sprite *sprite)
+{
u16 v1, v2, x, y;
- if (!sprite->data[0]) {
+
+ if (!sprite->data[0])
return TRUE;
- }
+
v1 = sprite->data[1];
v2 = sprite->data[2];
x = sprite->data[3];
y = sprite->data[4];
x += v1;
y += v2;
- if (v1 & 1) {
+
+ if (v1 & 1)
sprite->pos2.x = -(x >> 4);
- } else {
+ else
sprite->pos2.x = x >> 4;
- }
- if (v2 & 1) {
+
+ if (v2 & 1)
sprite->pos2.y = -(y >> 4);
- } else {
+ else
sprite->pos2.y = y >> 4;
- }
+
sprite->data[3] = x;
sprite->data[4] = y;
sprite->data[0]--;
return FALSE;
}
-void sub_8078D44(struct Sprite *sprite) {
- if (sub_8078CE8(sprite)) {
+void sub_8078D44(struct Sprite *sprite)
+{
+ if (sub_8078CE8(sprite))
SetCallbackToStoredInData(sprite);
- }
}
-void sub_8078D60(struct Sprite *sprite) {
+void sub_8078D60(struct Sprite *sprite)
+{
int v1 = abs(sprite->data[2] - sprite->data[1]) << 4;
sprite->data[0] = v1 / sprite->data[0];
sub_8078C28(sprite);
}
-void sub_8078D8C(struct Sprite *sprite) {
+void sub_8078D8C(struct Sprite *sprite)
+{
sprite->data[1] = sprite->pos1.x;
sprite->data[3] = sprite->pos1.y;
sub_8078D60(sprite);
@@ -992,16 +1129,17 @@ void sub_8078D8C(struct Sprite *sprite) {
sprite->callback(sprite);
}
-void obj_id_set_rotscale(u8 sprite, s16 xScale, s16 yScale, u16 rotation) {
+void obj_id_set_rotscale(u8 sprite, s16 xScale, s16 yScale, u16 rotation)
+{
int i;
struct ObjAffineSrcData src;
struct OamMatrix matrix;
+
src.xScale = xScale;
src.yScale = yScale;
src.rotation = rotation;
- if (sub_8078E38()) {
+ if (sub_8078E38())
src.xScale = -src.xScale;
- }
i = gSprites[sprite].oam.matrixNum;
ObjAffineSet(&src, &matrix, 1, 2);
gOamMatrices[i].a = matrix.a;
@@ -1010,31 +1148,33 @@ void obj_id_set_rotscale(u8 sprite, s16 xScale, s16 yScale, u16 rotation) {
gOamMatrices[i].d = matrix.d;
}
-bool8 sub_8078E38() {
- if (IsContest()) {
- if (gSprites[GetAnimBankSpriteId(0)].data[2] == 0xc9 /* XXX SPECIES_UNOWN? */) {
+bool8 sub_8078E38()
+{
+ if (IsContest())
+ {
+ if (gSprites[GetAnimBankSpriteId(0)].data[2] == 0xc9 /* XXX SPECIES_UNOWN? */)
return FALSE;
- }
return TRUE;
}
return FALSE;
}
-void sub_8078E70(u8 sprite, u8 a2) {
+void sub_8078E70(u8 sprite, u8 a2)
+{
u8 r7 = gSprites[sprite].data[0];
- if (IsContest() || IsAnimBankSpriteVisible(r7)) {
+
+ if (IsContest() || IsAnimBankSpriteVisible(r7))
gSprites[sprite].invisible = FALSE;
- }
gSprites[sprite].oam.objMode = a2;
gSprites[sprite].affineAnimPaused = TRUE;
- if (!IsContest() && !gSprites[sprite].oam.affineMode) {
+ if (!IsContest() && !gSprites[sprite].oam.affineMode)
gSprites[sprite].oam.matrixNum = ewram17810[r7].unk6;
- }
gSprites[sprite].oam.affineMode = 3;
CalcCenterToCornerVec(&gSprites[sprite], gSprites[sprite].oam.shape, gSprites[sprite].oam.size, gSprites[sprite].oam.affineMode);
}
-void sub_8078F40(u8 sprite) {
+void sub_8078F40(u8 sprite)
+{
obj_id_set_rotscale(sprite, 0x100, 0x100, 0);
gSprites[sprite].oam.affineMode = 1;
gSprites[sprite].oam.objMode = 0;
@@ -1042,31 +1182,33 @@ void sub_8078F40(u8 sprite) {
CalcCenterToCornerVec(&gSprites[sprite], gSprites[sprite].oam.shape, gSprites[sprite].oam.size, gSprites[sprite].oam.affineMode);
}
-void sub_8078F9C(u8 sprite) {
+void sub_8078F9C(u8 sprite)
+{
u16 matrix = gSprites[sprite].oam.matrixNum;
s16 c = gOamMatrices[matrix].c;
- if (c < 0) {
+
+ if (c < 0)
c = -c;
- }
gSprites[sprite].pos2.y = c >> 3;
}
// related to obj_id_set_rotscale
-void sub_8078FDC(struct Sprite *sprite, bool8 a2, s16 xScale, s16 yScale, u16 rotation) {
+void sub_8078FDC(struct Sprite *sprite, bool8 a2, s16 xScale, s16 yScale, u16 rotation)
+{
int i;
struct ObjAffineSrcData src;
struct OamMatrix matrix;
- if (sprite->oam.affineMode & 1) {
+
+ if (sprite->oam.affineMode & 1)
+ {
sprite->affineAnimPaused = TRUE;
- if (a2) {
+ if (a2)
CalcCenterToCornerVec(sprite, sprite->oam.shape, sprite->oam.size, sprite->oam.affineMode);
- }
src.xScale = xScale;
src.yScale = yScale;
src.rotation = rotation;
- if (sub_8078E38()) {
+ if (sub_8078E38())
src.xScale = -src.xScale;
- }
i = sprite->oam.matrixNum;
ObjAffineSet(&src, &matrix, 1, 2);
gOamMatrices[i].a = matrix.a;
@@ -1076,56 +1218,67 @@ void sub_8078FDC(struct Sprite *sprite, bool8 a2, s16 xScale, s16 yScale, u16 ro
}
}
-void sub_8079098(struct Sprite *sprite) {
+void sub_8079098(struct Sprite *sprite)
+{
sub_8078FDC(sprite, TRUE, 0x100, 0x100, 0);
sprite->affineAnimPaused = FALSE;
CalcCenterToCornerVec(sprite, sprite->oam.shape, sprite->oam.size, sprite->oam.affineMode);
}
-static u16 ArcTan2_(s16 a, s16 b) {
+static u16 ArcTan2_(s16 a, s16 b)
+{
return ArcTan2(a, b);
}
-u16 sub_80790F0(s16 a, s16 b) {
+u16 sub_80790F0(s16 a, s16 b)
+{
u16 var = ArcTan2_(a, b);
return -var;
}
-void sub_8079108(u16 a1, bool8 a2) {
+void sub_8079108(u16 a1, bool8 a2)
+{
int i;
- struct Color *c;
- struct Color *c2;
+ struct PlttData *c;
+ struct PlttData *c2;
u16 average;
a1 *= 0x10;
- if (!a2) {
- for (i = 0; i < 0x10; i++) {
- c = (struct Color *)&gPlttBufferUnfaded[a1 + i];
+ if (!a2)
+ {
+ for (i = 0; i < 0x10; i++)
+ {
+ c = (struct PlttData *)&gPlttBufferUnfaded[a1 + i];
average = c->r + c->g + c->b;
average /= 3;
- c2 = (struct Color *)&gPlttBufferFaded[a1 + i];
+ c2 = (struct PlttData *)&gPlttBufferFaded[a1 + i];
c2->r = average;
c2->g = average;
c2->b = average;
}
- } else {
+ }
+ else
+ {
CpuCopy32(&gPlttBufferUnfaded[a1], &gPlttBufferFaded[a1], 0x20);
}
}
-u32 sub_80791A8(u8 a1, u8 a2, u8 a3, u8 a4, u8 a5, u8 a6, u8 a7) {
+u32 sub_80791A8(u8 a1, u8 a2, u8 a3, u8 a4, u8 a5, u8 a6, u8 a7)
+{
u32 var = 0;
u32 shift;
- if (a1) {
- if (!IsContest()) {
+
+ if (a1)
+ {
+ if (!IsContest())
var = 0xe;
- } else {
+ else
var = 1 << sub_80789BC();
- }
}
- if (a2) {
+ if (a2)
+ {
shift = gAnimBankAttacker + 16;
var |= 1 << shift;
}
@@ -1133,62 +1286,70 @@ u32 sub_80791A8(u8 a1, u8 a2, u8 a3, u8 a4, u8 a5, u8 a6, u8 a7) {
shift = gAnimBankTarget + 16;
var |= 1 << shift;
}
- if (a4) {
- if (IsAnimBankSpriteVisible(gAnimBankAttacker ^ 2)) {
+ if (a4)
+ {
+ if (IsAnimBankSpriteVisible(gAnimBankAttacker ^ 2))
+ {
shift = (gAnimBankAttacker ^ 2) + 16;
var |= 1 << shift;
}
}
- if (a5) {
- if (IsAnimBankSpriteVisible(gAnimBankTarget ^ 2)) {
+ if (a5)
+ {
+ if (IsAnimBankSpriteVisible(gAnimBankTarget ^ 2))
+ {
shift = (gAnimBankTarget ^ 2) + 16;
var |= 1 << shift;
}
}
- if (a6) {
- if (!IsContest()) {
+ if (a6)
+ {
+ if (!IsContest())
var |= 0x100;
- } else {
+ else
var |= 0x4000;
- }
}
- if (a7) {
- if (!IsContest()) {
+ if (a7)
+ {
+ if (!IsContest())
var |= 0x200;
- }
}
return var;
}
-u32 sub_80792C0(u8 a1, u8 a2, u8 a3, u8 a4) {
+u32 sub_80792C0(u8 a1, u8 a2, u8 a3, u8 a4)
+{
u32 var = 0;
u32 shift;
- if (IsContest()) {
- if (a1) {
+
+ if (IsContest())
+ {
+ if (a1)
+ {
var |= 1 << 18;
return var;
}
} else {
if (a1) {
- if (IsAnimBankSpriteVisible(GetBankByPlayerAI(0))) {
- var |= 1 << (GetBankByPlayerAI(0) + 16);
+ if (IsAnimBankSpriteVisible(GetBankByIdentity(0))) {
+ var |= 1 << (GetBankByIdentity(0) + 16);
}
}
if (a2) {
- if (IsAnimBankSpriteVisible(GetBankByPlayerAI(2))) {
- shift = GetBankByPlayerAI(2) + 16;
+ if (IsAnimBankSpriteVisible(GetBankByIdentity(2))) {
+ shift = GetBankByIdentity(2) + 16;
var |= 1 << shift;
}
}
if (a3) {
- if (IsAnimBankSpriteVisible(GetBankByPlayerAI(1))) {
- shift = GetBankByPlayerAI(1) + 16;
+ if (IsAnimBankSpriteVisible(GetBankByIdentity(1))) {
+ shift = GetBankByIdentity(1) + 16;
var |= 1 << shift;
}
}
if (a4) {
- if (IsAnimBankSpriteVisible(GetBankByPlayerAI(3))) {
- shift = GetBankByPlayerAI(3) + 16;
+ if (IsAnimBankSpriteVisible(GetBankByIdentity(3))) {
+ shift = GetBankByIdentity(3) + 16;
var |= 1 << shift;
}
}
@@ -1196,51 +1357,57 @@ u32 sub_80792C0(u8 a1, u8 a2, u8 a3, u8 a4) {
return var;
}
-u8 sub_80793A8(u8 a1) {
+u8 sub_80793A8(u8 a1)
+{
return a1;
}
-u8 unref_sub_80793B0(u8 a1) {
- return GetBankByPlayerAI(a1);
+u8 unref_sub_80793B0(u8 a1)
+{
+ return GetBankByIdentity(a1);
}
-void sub_80793C4(struct Sprite *sprite) {
+void sub_80793C4(struct Sprite *sprite)
+{
bool8 var;
- if (!sprite->data[0]) {
- if (!gBattleAnimArgs[3]) {
+
+ if (!sprite->data[0])
+ {
+ if (!gBattleAnimArgs[3])
var = TRUE;
- } else {
+ else
var = FALSE;
- }
- if (!gBattleAnimArgs[2]) {
+ if (!gBattleAnimArgs[2])
sub_80787B0(sprite, var);
- } else {
+ else
sub_8078764(sprite, var);
- }
sprite->data[0]++;
- } else if (sprite->animEnded || sprite->affineAnimEnded) {
+ }
+ else if (sprite->animEnded || sprite->affineAnimEnded)
+ {
move_anim_8074EE0(sprite);
}
}
-void sub_807941C(struct Sprite *sprite) {
+void sub_807941C(struct Sprite *sprite)
+{
bool8 v1;
u8 v2;
- if (!(gBattleAnimArgs[5] & 0xff00)) {
+
+ if (!(gBattleAnimArgs[5] & 0xff00))
v1 = TRUE;
- } else {
+ else
v1 = FALSE;
- }
- if (!(gBattleAnimArgs[5] & 0xff)) {
+
+ if (!(gBattleAnimArgs[5] & 0xff))
v2 = 3;
- } else {
+ else
v2 = 1;
- }
+
sub_80787B0(sprite, v1);
- if (GetBankSide(gAnimBankAttacker)) {
+ if (GetBankSide(gAnimBankAttacker))
gBattleAnimArgs[2] = -gBattleAnimArgs[2];
- }
sprite->data[0] = gBattleAnimArgs[4];
sprite->data[2] = GetBankPosition(gAnimBankTarget, 2) + gBattleAnimArgs[2];
sprite->data[4] = GetBankPosition(gAnimBankTarget, v2) + gBattleAnimArgs[3];
@@ -1248,11 +1415,11 @@ void sub_807941C(struct Sprite *sprite) {
StoreSpriteCallbackInData(sprite, DestroyAnimSprite);
}
-void sub_80794A8(struct Sprite *sprite) {
+void sub_80794A8(struct Sprite *sprite)
+{
sub_80787B0(sprite, 1);
- if (GetBankSide(gAnimBankAttacker)) {
+ if (GetBankSide(gAnimBankAttacker))
gBattleAnimArgs[2] = -gBattleAnimArgs[2];
- }
sprite->data[0] = gBattleAnimArgs[4];
sprite->data[2] = GetBankPosition(gAnimBankTarget, 2) + gBattleAnimArgs[2];
sprite->data[4] = GetBankPosition(gAnimBankTarget, 3) + gBattleAnimArgs[3];
@@ -1261,31 +1428,38 @@ void sub_80794A8(struct Sprite *sprite) {
sprite->callback = sub_8079518;
}
-void sub_8079518(struct Sprite *sprite) {
- if (sub_8078718(sprite)) {
+void sub_8079518(struct Sprite *sprite)
+{
+ if (sub_8078718(sprite))
DestroyAnimSprite(sprite);
- }
}
-void sub_8079534(struct Sprite *sprite) {
+void sub_8079534(struct Sprite *sprite)
+{
u8 r4, slot, r7;
- if (!gBattleAnimArgs[6]) {
+
+ if (!gBattleAnimArgs[6])
+ {
r4 = 1;
r7 = 3;
- } else {
+ }
+ else
+ {
r4 = 0;
r7 = 1;
}
- if (!gBattleAnimArgs[5]) {
+ if (!gBattleAnimArgs[5])
+ {
sub_80787B0(sprite, r4);
slot = gAnimBankAttacker;
- } else {
+ }
+ else
+ {
sub_8078764(sprite, r4);
slot = gAnimBankTarget;
}
- if (GetBankSide(gAnimBankAttacker)) {
+ if (GetBankSide(gAnimBankAttacker))
gBattleAnimArgs[2] = -gBattleAnimArgs[2];
- }
sub_8078764(sprite, r4);
sprite->data[0] = gBattleAnimArgs[4];
sprite->data[2] = GetBankPosition(slot, 2) + gBattleAnimArgs[2];
@@ -1294,43 +1468,47 @@ void sub_8079534(struct Sprite *sprite) {
StoreSpriteCallbackInData(sprite, DestroyAnimSprite);
}
-s16 duplicate_obj_of_side_rel2move_in_transparent_mode(u8 a1) {
+s16 duplicate_obj_of_side_rel2move_in_transparent_mode(u8 a1)
+{
u16 i;
u8 sprite = GetAnimBankSpriteId(a1);
- if (sprite != 0xff) {
- for (i = 0; i < 0x40; i++) {
- if (gSprites[i].inUse) {
- continue;
+
+ if (sprite != 0xff)
+ {
+ for (i = 0; i < 0x40; i++)
+ {
+ if (!gSprites[i].inUse)
+ {
+ gSprites[i] = gSprites[sprite];
+ gSprites[i].oam.objMode = 1;
+ gSprites[i].invisible = FALSE;
+ return i;
}
- gSprites[i] = gSprites[sprite];
- gSprites[i].oam.objMode = 1;
- gSprites[i].invisible = FALSE;
- return i;
}
}
return -1;
}
-void obj_delete_but_dont_free_vram(struct Sprite *sprite) {
+void obj_delete_but_dont_free_vram(struct Sprite *sprite)
+{
sprite->usingSheet = TRUE;
DestroySprite(sprite);
}
-void sub_8079670(u8 task) {
+void sub_8079670(u8 task)
+{
s16 v1 = 0;
s16 v2 = 0;
- if (gBattleAnimArgs[2] > gBattleAnimArgs[0]) {
+
+ if (gBattleAnimArgs[2] > gBattleAnimArgs[0])
v2 = 1;
- }
- if (gBattleAnimArgs[2] < gBattleAnimArgs[0]) {
+ if (gBattleAnimArgs[2] < gBattleAnimArgs[0])
v2 = -1;
- }
- if (gBattleAnimArgs[3] > gBattleAnimArgs[1]) {
+ if (gBattleAnimArgs[3] > gBattleAnimArgs[1])
v1 = 1;
- }
- if (gBattleAnimArgs[3] < gBattleAnimArgs[1]) {
+ if (gBattleAnimArgs[3] < gBattleAnimArgs[1])
v1 = -1;
- }
+
gTasks[task].data[0] = 0;
gTasks[task].data[1] = gBattleAnimArgs[4];
gTasks[task].data[2] = 0;
@@ -1344,30 +1522,38 @@ void sub_8079670(u8 task) {
gTasks[task].func = sub_80796F8;
}
-void sub_80796F8(u8 taskId) {
+void sub_80796F8(u8 taskId)
+{
struct Task *task = &gTasks[taskId];
- if (++task->data[0] > task->data[1]) {
+
+ if (++task->data[0] > task->data[1])
+ {
task->data[0] = 0;
- if (++task->data[2] & 1) {
- if (task->data[3] != task->data[7]) {
+ if (++task->data[2] & 1)
+ {
+ if (task->data[3] != task->data[7])
task->data[3] += task->data[5];
- }
- } else {
- if (task->data[4] != task->data[8]) {
+ }
+ else
+ {
+ if (task->data[4] != task->data[8])
task->data[4] += task->data[6];
- }
}
REG_BLDALPHA = (task->data[4] << 8) | task->data[3];
- if (task->data[3] == task->data[7] && task->data[4] == task->data[8]) {
+ if (task->data[3] == task->data[7] && task->data[4] == task->data[8])
+ {
DestroyAnimVisualTask(taskId);
return;
}
}
}
-void sub_8079790(u8 task) {
+void sub_8079790(u8 task)
+{
u8 sprite = GetAnimBankSpriteId(gBattleAnimArgs[0]);
- if (sprite == 0xff) {
+
+ if (sprite == 0xff)
+ {
DestroyAnimVisualTask(task);
return;
}
@@ -1375,7 +1561,8 @@ void sub_8079790(u8 task) {
sub_80797EC(&gTasks[task]);
}
-void sub_80797EC(struct Task *task) {
+void sub_80797EC(struct Task *task)
+{
task->data[1] = gBattleAnimArgs[1];
task->data[2] = 0;
task->data[3] = gBattleAnimArgs[2];
@@ -1386,24 +1573,33 @@ void sub_80797EC(struct Task *task) {
task->func = sub_8079814;
}
-void sub_8079814(u8 taskId) {
+void sub_8079814(u8 taskId)
+{
struct Task *task = &gTasks[taskId];
- if (++task->data[4] >= task->data[5]) {
+
+ if (++task->data[4] >= task->data[5])
+ {
task->data[4] = 0;
- if (!task->data[6]) {
+ if (!task->data[6])
+ {
task->data[2]++;
BlendPalette(task->data[0], 0xf, task->data[2], task->data[1]);
- if (task->data[2] == task->data[3]) {
+ if (task->data[2] == task->data[3])
task->data[6] = 1;
- }
- } else {
+ }
+ else
+ {
task->data[2]--;
BlendPalette(task->data[0], 0xf, task->data[2], task->data[1]);
- if (!task->data[2]) {
- if (--task->data[7]) {
+ if (!task->data[2])
+ {
+ if (--task->data[7])
+ {
task->data[4] = 0;
task->data[6] = 0;
- } else {
+ }
+ else
+ {
DestroyAnimVisualTask(taskId);
return;
}
@@ -1412,9 +1608,12 @@ void sub_8079814(u8 taskId) {
}
}
-void sub_80798AC(u8 task) {
+void sub_80798AC(u8 task)
+{
u8 palette = IndexOfSpritePaletteTag(gBattleAnimArgs[0]);
- if (palette == 0xff) {
+
+ if (palette == 0xff)
+ {
DestroyAnimVisualTask(task);
return;
}
@@ -1422,7 +1621,8 @@ void sub_80798AC(u8 task) {
sub_80797EC(&gTasks[task]);
}
-void sub_80798F4(struct Task *task, u8 a2, const void *a3) {
+void sub_80798F4(struct Task *task, u8 a2, const void *a3)
+{
task->data[7] = 0;
task->data[8] = 0;
task->data[9] = 0;
@@ -1434,11 +1634,14 @@ void sub_80798F4(struct Task *task, u8 a2, const void *a3) {
sub_8078E70(a2, 0);
}
-bool8 sub_807992C(struct Task *task) {
+bool8 sub_807992C(struct Task *task)
+{
gUnknown_0202F7D4 = sub_8079BFC(task->data[13], task->data[14]) + (task->data[7] << 3);
- switch (gUnknown_0202F7D4->type) {
+ switch (gUnknown_0202F7D4->type)
+ {
default:
- if (!gUnknown_0202F7D4->frame.duration) {
+ if (!gUnknown_0202F7D4->frame.duration)
+ {
task->data[10] = gUnknown_0202F7D4->frame.xScale;
task->data[11] = gUnknown_0202F7D4->frame.yScale;
task->data[12] = gUnknown_0202F7D4->frame.rotation;
@@ -1450,44 +1653,49 @@ bool8 sub_807992C(struct Task *task) {
task->data[12] += gUnknown_0202F7D4->frame.rotation;
obj_id_set_rotscale(task->data[15], task->data[10], task->data[11], task->data[12]);
sub_8079A64(task->data[15]);
- if (++task->data[8] >= gUnknown_0202F7D4->frame.duration) {
+ if (++task->data[8] >= gUnknown_0202F7D4->frame.duration)
+ {
task->data[8] = 0;
task->data[7]++;
}
break;
-
case AFFINEANIMCMDTYPE_JUMP:
task->data[7] = gUnknown_0202F7D4->jump.target;
break;
-
case AFFINEANIMCMDTYPE_LOOP:
- if (gUnknown_0202F7D4->loop.count) {
- if (task->data[9]) {
- if (!--task->data[9]) {
+ if (gUnknown_0202F7D4->loop.count)
+ {
+ if (task->data[9])
+ {
+ if (!--task->data[9])
+ {
task->data[7]++;
break;
}
- } else {
+ }
+ else
+ {
task->data[9] = gUnknown_0202F7D4->loop.count;
}
- if (!task->data[7]) {
+ if (!task->data[7])
+ {
break;
}
- for (;;) {
+ for (;;)
+ {
task->data[7]--;
gUnknown_0202F7D4--;
- if (gUnknown_0202F7D4->type == AFFINEANIMCMDTYPE_LOOP) {
+ if (gUnknown_0202F7D4->type == AFFINEANIMCMDTYPE_LOOP)
+ {
task->data[7]++;
return TRUE;
}
- if (!task->data[7]) {
+ if (!task->data[7])
return TRUE;
- }
}
}
task->data[7]++;
break;
-
case 0x7fff:
gSprites[task->data[15]].pos2.y = 0;
sub_8078F40(task->data[15]);
@@ -1497,52 +1705,62 @@ bool8 sub_807992C(struct Task *task) {
return TRUE;
}
-void sub_8079A64(u8 sprite) {
+void sub_8079A64(u8 sprite)
+{
int var = 0x40 - sub_8079B10(sprite) * 2;
u16 matrix = gSprites[sprite].oam.matrixNum;
int var2 = (var << 8) / gOamMatrices[matrix].d;
- if (var2 > 0x80) {
+
+ if (var2 > 0x80)
var2 = 0x80;
- }
gSprites[sprite].pos2.y = (var - var2) / 2;
}
-void sub_8079AB8(u8 sprite, u8 sprite2) {
+void sub_8079AB8(u8 sprite, u8 sprite2)
+{
int var = 0x40 - sub_8079B10(sprite2) * 2;
u16 matrix = gSprites[sprite].oam.matrixNum;
int var2 = (var << 8) / gOamMatrices[matrix].d;
- if (var2 > 0x80) {
+
+ if (var2 > 0x80)
var2 = 0x80;
- }
gSprites[sprite].pos2.y = (var - var2) / 2;
}
-u16 sub_8079B10(u8 sprite) {
+u16 sub_8079B10(u8 sprite)
+{
struct TransformStatus *transform;
u8 slot = gSprites[sprite].data[0];
u16 species;
u16 i;
- for (i = 0; i < (sizeof(gBattleMonSprites) / sizeof(u8)); i++) {
- if (gBattleMonSprites[i] == sprite) {
- if (IsContest()) {
- species = ewram19348.unk0;
+
+ for (i = 0; i < (sizeof(gBattleMonSprites) / sizeof(u8)); i++)
+ {
+ if (gBattleMonSprites[i] == sprite)
+ {
+ if (IsContest())
+ {
+ species = shared19348.unk0;
return gMonBackPicCoords[species].y_offset;
- } else {
- if (!GetBankSide(i)) {
+ }
+ else
+ {
+ if (!GetBankSide(i))
+ {
transform = &eTransformStatuses[slot];
- if (!transform->species) {
+ if (!transform->species)
species = GetMonData(&gPlayerParty[gBattleMonPartyPositions[i]], MON_DATA_SPECIES);
- } else {
+ else
species = transform->species;
- }
return gMonBackPicCoords[species].y_offset;
- } else {
+ }
+ else
+ {
transform = &eTransformStatuses[slot];
- if (!transform->species) {
+ if (!transform->species)
species = GetMonData(&gEnemyParty[gBattleMonPartyPositions[i]], MON_DATA_SPECIES);
- } else {
+ else
species = transform->species;
- }
return gMonFrontPicCoords[species].y_offset;
}
}
@@ -1551,19 +1769,22 @@ u16 sub_8079B10(u8 sprite) {
return 0x40;
}
-void sub_8079BF4(s16 *bottom, s16 *top, const void *ptr) {
+void sub_8079BF4(s16 *bottom, s16 *top, const void *ptr)
+{
*bottom = ((intptr_t) ptr) & 0xffff;
*top = (((intptr_t) ptr) >> 16) & 0xffff;
}
-void *sub_8079BFC(s16 bottom, s16 top) {
+void *sub_8079BFC(s16 bottom, s16 top)
+{
return (void *)((u16)bottom | ((u16)top << 16));
}
// possible new file
-void sub_8079C08(struct Task *task, u8 a2, s16 a3, s16 a4, s16 a5, s16 a6, u16 a7) {
+void sub_8079C08(struct Task *task, u8 a2, s16 a3, s16 a4, s16 a5, s16 a6, u16 a7)
+{
task->data[8] = a7;
task->data[15] = a2; // spriteId
task->data[9] = a3;
@@ -1574,124 +1795,133 @@ void sub_8079C08(struct Task *task, u8 a2, s16 a3, s16 a4, s16 a5, s16 a6, u16 a
task->data[12] = (a6 - a4) / a7;
}
-u8 sub_8079C74(struct Task *task) {
- if (!task->data[8]) {
+u8 sub_8079C74(struct Task *task)
+{
+ if (!task->data[8])
return 0;
- }
- if (--task->data[8]) {
+
+ if (--task->data[8] != 0)
+ {
task->data[9] += task->data[11];
task->data[10] += task->data[12];
- } else {
+ }
+ else
+ {
task->data[9] = task->data[13];
task->data[10] = task->data[14];
}
obj_id_set_rotscale(task->data[15], task->data[9], task->data[10], 0);
- if (task->data[8]) {
+ if (task->data[8])
sub_8079A64(task->data[15]);
- } else {
+ else
gSprites[task->data[15]].pos2.y = 0;
- }
return task->data[8];
}
-void sub_8079CEC(u8 task) {
+void sub_8079CEC(u8 task)
+{
u16 v1;
- if (gAnimFriendship <= 30) {
+
+ if (gAnimFriendship <= 30)
v1 = 0;
- } else if (gAnimFriendship <= 100) {
+ else if (gAnimFriendship <= 100)
v1 = 1;
- } else if (gAnimFriendship <= 200) {
+ else if (gAnimFriendship <= 200)
v1 = 2;
- } else {
+ else
v1 = 3;
- }
gBattleAnimArgs[7] = v1;
DestroyAnimVisualTask(task);
}
-void unref_sub_8079D20(u8 priority) {
- if (IsAnimBankSpriteVisible(gAnimBankTarget)) {
+void unref_sub_8079D20(u8 priority)
+{
+ if (IsAnimBankSpriteVisible(gAnimBankTarget))
gSprites[gBattleMonSprites[gAnimBankTarget]].oam.priority = priority;
- }
- if (IsAnimBankSpriteVisible(gAnimBankAttacker)) {
+ if (IsAnimBankSpriteVisible(gAnimBankAttacker))
gSprites[gBattleMonSprites[gAnimBankAttacker]].oam.priority = priority;
- }
- if (IsAnimBankSpriteVisible(gAnimBankTarget ^ 2)) {
+ if (IsAnimBankSpriteVisible(gAnimBankTarget ^ 2))
gSprites[gBattleMonSprites[gAnimBankTarget ^ 2]].oam.priority = priority;
- }
- if (IsAnimBankSpriteVisible(gAnimBankAttacker ^ 2)) {
+ if (IsAnimBankSpriteVisible(gAnimBankAttacker ^ 2))
gSprites[gBattleMonSprites[gAnimBankAttacker ^ 2]].oam.priority = priority;
- }
}
-void sub_8079E24() {
+void sub_8079E24()
+{
int i;
- for (i = 0; i < gNoOfAllBanks; i++) {
- if (IsAnimBankSpriteVisible(i)) {
+
+ for (i = 0; i < gNoOfAllBanks; i++)
+ {
+ if (IsAnimBankSpriteVisible(i))
+ {
gSprites[gBattleMonSprites[i]].subpriority = sub_8079E90(i);
gSprites[gBattleMonSprites[i]].oam.priority = 2;
}
}
}
-u8 sub_8079E90(u8 slot) {
+u8 sub_8079E90(u8 slot)
+{
u8 status;
u8 ret;
- if (IsContest()) {
- if (slot == 2) {
+
+ if (IsContest())
+ {
+ if (slot == 2)
return 30;
- } else {
+ else
return 40;
- }
- } else {
+ }
+ else
+ {
status = GetBankIdentity(slot);
- if (status == 0) {
+ if (status == 0)
ret = 30;
- } else if (status == 2) {
+ else if (status == 2)
ret = 20;
- } else if (status == 1) {
+ else if (status == 1)
ret = 40;
- } else {
+ else
ret = 50;
- }
}
return ret;
}
-u8 sub_8079ED4(u8 slot) {
+u8 sub_8079ED4(u8 slot)
+{
u8 status = GetBankIdentity(slot);
- if (IsContest()) {
+
+ if (IsContest())
return 2;
- }
- if (status == 0 || status == 3) {
+ if (status == 0 || status == 3)
return BG2CNT.priority;
- } else {
+ else
return BG1CNT.priority;
- }
}
-u8 GetBankIdentity_permutated(u8 slot) {
+u8 GetBankIdentity_permutated(u8 slot)
+{
u8 status;
- if (!IsContest()) {
+
+ if (!IsContest())
+ {
status = GetBankIdentity(slot);
- if (status == 0 || status == 3) {
+ if (status == 0 || status == 3)
return 2;
- } else {
+ else
return 1;
- }
}
return 1;
}
-u8 sub_8079F44(u16 species, u8 isBackpic, u8 a3, s16 a4, s16 a5, u8 a6, u32 a7, u32 a8) {
- void *src;
- void *dest;
- int size;
-
+u8 sub_8079F44(u16 species, u8 isBackpic, u8 a3, s16 a4, s16 a5, u8 a6, u32 a7, u32 a8)
+{
u8 sprite;
u16 sheet = LoadSpriteSheet(&gUnknown_0837F5E0[a3]);
u16 palette = AllocSpritePalette(gSpriteTemplate_837F5B0[a3].paletteTag);
- if (!isBackpic) {
+
+ if (!isBackpic)
+ {
LoadCompressedPalette(GetMonSpritePalFromOtIdPersonality(species, a8, a7), (palette * 0x10) + 0x100, 0x20);
LoadSpecialPokePic(
&gMonFrontPicTable[species],
@@ -1703,9 +1933,10 @@ u8 sub_8079F44(u16 species, u8 isBackpic, u8 a3, s16 a4, s16 a5, u8 a6, u32 a7,
a7,
1
);
- } else {
- LoadCompressedPalette(
- GetMonSpritePalFromOtIdPersonality(species, a8, a7), (palette * 0x10) + 0x100, 0x20);
+ }
+ else
+ {
+ LoadCompressedPalette(GetMonSpritePalFromOtIdPersonality(species, a8, a7), (palette * 0x10) + 0x100, 0x20);
LoadSpecialPokePic(
&gMonBackPicTable[species],
gMonBackPicCoords[species].coords,
@@ -1718,28 +1949,28 @@ u8 sub_8079F44(u16 species, u8 isBackpic, u8 a3, s16 a4, s16 a5, u8 a6, u32 a7,
);
}
- src = (void *)0x2000000;
- dest = (void *)(0x6010000 + (sheet * 0x20));
- size = 0x800;
- DmaCopy32(3, src, dest, size);
+ DmaCopy32Defvars(3, (void *)0x2000000, (void *)(VRAM + 0x10000 + (sheet * 0x20)), 0x800);
- if (!isBackpic) {
+ if (!isBackpic)
sprite = CreateSprite(&gSpriteTemplate_837F5B0[a3], a4, a5 + gMonFrontPicCoords[species].y_offset, a6);
- } else {
+ else
sprite = CreateSprite(&gSpriteTemplate_837F5B0[a3], a4, a5 + gMonBackPicCoords[species].y_offset, a6);
- }
- if (IsContest()) {
+
+ if (IsContest())
+ {
gSprites[sprite].affineAnims = gSpriteAffineAnimTable_81E7C18;
StartSpriteAffineAnim(&gSprites[sprite], 0);
}
return sprite;
}
-void sub_807A0F4(struct Sprite *sprite) {
+void sub_807A0F4(struct Sprite *sprite)
+{
DestroySpriteAndFreeResources(sprite);
}
-int sub_807A100(u8 slot, u8 a2) {
+int sub_807A100(u8 slot, u8 a2)
+{
u16 species;
u32 personality;
u16 letter;
@@ -1747,80 +1978,113 @@ int sub_807A100(u8 slot, u8 a2) {
int ret;
const struct MonCoords *coords;
struct TransformStatus *transform;
- if (IsContest()) {
- if (ewram19348.unk4 & 1) {
- species = ewram19348.unk2;
- personality = ewram19348.unk10;
- } else {
- species = ewram19348.unk0;
- personality = ewram19348.unk8;
+
+ if (IsContest())
+ {
+ if (shared19348.unk4_0)
+ {
+ species = shared19348.unk2;
+ personality = shared19348.unk10;
}
- if (species == SPECIES_UNOWN) {
+ else
+ {
+ species = shared19348.unk0;
+ personality = shared19348.unk8;
+ }
+ if (species == SPECIES_UNOWN)
+ {
letter = GET_UNOWN_LETTER(personality);
- if (!letter) {
+ if (!letter)
var = SPECIES_UNOWN;
- } else {
+ else
var = letter + SPECIES_UNOWN_B - 1;
- }
coords = &gMonBackPicCoords[var];
- } else if (species == SPECIES_CASTFORM) {
+ }
+ else if (species == SPECIES_CASTFORM)
+ {
coords = &gCastformFrontSpriteCoords[gBattleMonForms[slot]];
- } else if (species <= SPECIES_EGG) {
+ }
+ else if (species <= SPECIES_EGG)
+ {
coords = &gMonBackPicCoords[species];
- } else {
+ }
+ else
+ {
coords = &gMonBackPicCoords[0];
}
- } else {
- if (!GetBankSide(slot)) {
+ }
+ else
+ {
+ if (!GetBankSide(slot))
+ {
transform = &eTransformStatuses[slot];
- if (!transform->species) {
+ if (!transform->species)
+ {
species = GetMonData(&gPlayerParty[gBattleMonPartyPositions[slot]], MON_DATA_SPECIES);
personality = GetMonData(&gPlayerParty[gBattleMonPartyPositions[slot]], MON_DATA_PERSONALITY);
- } else {
+ }
+ else
+ {
species = transform->species;
personality = gTransformPersonalities[slot];
}
- if (species == SPECIES_UNOWN) {
+ if (species == SPECIES_UNOWN)
+ {
letter = GET_UNOWN_LETTER(personality);
- if (!letter) {
+ if (!letter)
var = SPECIES_UNOWN;
- } else {
+ else
var = letter + SPECIES_UNOWN_B - 1;
- }
coords = &gMonBackPicCoords[var];
- } else if (species > SPECIES_EGG) {
+ }
+ else if (species > SPECIES_EGG)
+ {
coords = &gMonBackPicCoords[0];
- } else {
+ }
+ else
+ {
coords = &gMonBackPicCoords[species];
}
- } else {
+ }
+ else
+ {
transform = &eTransformStatuses[slot];
- if (!transform->species) {
+ if (!transform->species)
+ {
species = GetMonData(&gEnemyParty[gBattleMonPartyPositions[slot]], MON_DATA_SPECIES);
personality = GetMonData(&gEnemyParty[gBattleMonPartyPositions[slot]], MON_DATA_PERSONALITY);
- } else {
+ }
+ else
+ {
species = transform->species;
personality = gTransformPersonalities[slot];
}
- if (species == SPECIES_UNOWN) {
+ if (species == SPECIES_UNOWN)
+ {
letter = GET_UNOWN_LETTER(personality);
- if (!letter) {
+ if (!letter)
var = SPECIES_UNOWN;
- } else {
+ else
var = letter + SPECIES_UNOWN_B - 1;
- }
coords = &gMonFrontPicCoords[var];
- } else if (species == SPECIES_CASTFORM) {
+ }
+ else if (species == SPECIES_CASTFORM)
+ {
coords = &gCastformFrontSpriteCoords[gBattleMonForms[slot]];
- } else if (species > SPECIES_EGG) {
+ }
+ else if (species > SPECIES_EGG)
+ {
coords = &gMonFrontPicCoords[0];
- } else {
+ }
+ else
+ {
coords = &gMonFrontPicCoords[species];
}
}
}
- switch (a2) {
+ switch (a2)
+ {
case 0:
return (coords->coords & 0xf) * 8;
case 1:
@@ -1841,23 +2105,31 @@ int sub_807A100(u8 slot, u8 a2) {
}
}
-void sub_807A3FC(u8 slot, u8 a2, s16 *a3, s16 *a4) {
+void sub_807A3FC(u8 slot, u8 a2, s16 *a3, s16 *a4)
+{
u8 v1, v2;
s16 v3, v4;
s16 v5, v6;
- if (!a2) {
+
+ if (!a2)
+ {
v1 = 0;
v2 = 1;
- } else {
+ }
+ else
+ {
v1 = 2;
v2 = 3;
}
v3 = GetBankPosition(slot, v1);
v4 = GetBankPosition(slot, v2);
- if (IsDoubleBattle() && !IsContest()) {
+ if (IsDoubleBattle() && !IsContest())
+ {
v5 = GetBankPosition(slot ^ 2, v1);
v6 = GetBankPosition(slot ^ 2, v2);
- } else {
+ }
+ else
+ {
v5 = v3;
v6 = v4;
}
@@ -1865,7 +2137,8 @@ void sub_807A3FC(u8 slot, u8 a2, s16 *a3, s16 *a4) {
*a4 = (v4 + v6) / 2;
}
-u8 sub_807A4A0(int a1, u8 sprite, int a3) {
+u8 sub_807A4A0(int a1, u8 sprite, int a3)
+{
u8 new_sprite = CreateInvisibleSpriteWithCallback(SpriteCallbackDummy);
gSprites[new_sprite] = gSprites[sprite];
gSprites[new_sprite].usingSheet = TRUE;
@@ -1876,13 +2149,17 @@ u8 sub_807A4A0(int a1, u8 sprite, int a3) {
return new_sprite;
}
-void sub_807A544(struct Sprite *sprite) {
+void sub_807A544(struct Sprite *sprite)
+{
sub_8078650(sprite);
- if (GetBankSide(gAnimBankAttacker)) {
+ if (GetBankSide(gAnimBankAttacker))
+ {
sprite->pos1.x -= gBattleAnimArgs[0];
gBattleAnimArgs[3] = -gBattleAnimArgs[3];
sprite->hFlip = TRUE;
- } else {
+ }
+ else
+ {
sprite->pos1.x += gBattleAnimArgs[0];
}
sprite->pos1.y += gBattleAnimArgs[1];
@@ -1894,11 +2171,15 @@ void sub_807A544(struct Sprite *sprite) {
sprite->callback = sub_8078504;
}
-void sub_807A5C4(struct Sprite *sprite) {
- if (GetBankSide(gAnimBankAttacker)) {
+void sub_807A5C4(struct Sprite *sprite)
+{
+ if (GetBankSide(gAnimBankAttacker))
+ {
sprite->pos1.x -= gBattleAnimArgs[0];
gBattleAnimArgs[3] *= -1;
- } else {
+ }
+ else
+ {
sprite->pos1.x += gBattleAnimArgs[0];
}
sprite->pos1.y += gBattleAnimArgs[1];
@@ -1911,19 +2192,20 @@ void sub_807A5C4(struct Sprite *sprite) {
sprite->callback = sub_8078504;
}
-void sub_807A63C(struct Sprite *sprite) {
+void sub_807A63C(struct Sprite *sprite)
+{
sub_8078650(sprite);
- if (GetBankSide(gAnimBankAttacker)) {
+ if (GetBankSide(gAnimBankAttacker))
sprite->pos1.x -= gBattleAnimArgs[0];
- } else {
+ else
sprite->pos1.x += gBattleAnimArgs[0];
- }
sprite->pos1.y += gBattleAnimArgs[1];
sprite->callback = sub_8078600;
StoreSpriteCallbackInData(sprite, DestroyAnimSprite);
}
-void sub_807A69C(u8 taskId) {
+void sub_807A69C(u8 taskId)
+{
u16 src;
u16 dest;
struct Task *task = &gTasks[taskId];
@@ -1938,23 +2220,25 @@ void sub_807A69C(u8 taskId) {
dest = (task->data[4] + 0x10) * 0x10;
src = (gSprites[task->data[0]].oam.paletteNum + 0x10) * 0x10;
task->data[6] = sub_8079E90(gAnimBankAttacker);
- if (task->data[6] == 20 || task->data[6] == 40) {
+ if (task->data[6] == 20 || task->data[6] == 40)
task->data[6] = 2;
- } else {
+ else
task->data[6] = 3;
- }
CpuCopy32(&gPlttBufferUnfaded[src], &gPlttBufferFaded[dest], 0x20);
BlendPalette(dest, 0x10, gBattleAnimArgs[1], gBattleAnimArgs[0]);
task->func = sub_807A784;
}
-void sub_807A784(u8 taskId) {
+void sub_807A784(u8 taskId)
+{
struct Task *task = &gTasks[taskId];
- switch (task->data[2]) {
+ switch (task->data[2])
+ {
case 0:
sub_807A850(task, taskId);
gSprites[task->data[0]].pos2.x += task->data[1];
- if (++task->data[3] == 5) {
+ if (++task->data[3] == 5)
+ {
task->data[3]--;
task->data[2]++;
}
@@ -1962,13 +2246,15 @@ void sub_807A784(u8 taskId) {
case 1:
sub_807A850(task, taskId);
gSprites[task->data[0]].pos2.x -= task->data[1];
- if (--task->data[3] == 0) {
+ if (--task->data[3] == 0)
+ {
gSprites[task->data[0]].pos2.x = 0;
task->data[2]++;
}
break;
case 2:
- if (!task->data[5]) {
+ if (!task->data[5])
+ {
FreeSpritePaletteByTag(10097);
DestroyAnimVisualTask(taskId);
}
@@ -1976,9 +2262,11 @@ void sub_807A784(u8 taskId) {
}
}
-void sub_807A850(struct Task *task, u8 taskId) {
+void sub_807A850(struct Task *task, u8 taskId)
+{
s16 sprite = duplicate_obj_of_side_rel2move_in_transparent_mode(0);
- if (sprite >= 0) {
+ if (sprite >= 0)
+ {
gSprites[sprite].oam.priority = task->data[6];
gSprites[sprite].oam.paletteNum = task->data[4];
gSprites[sprite].data[0] = 8;
@@ -1990,8 +2278,10 @@ void sub_807A850(struct Task *task, u8 taskId) {
}
}
-void sub_807A8D4(struct Sprite *sprite) {
- if (--sprite->data[0] == 0) {
+void sub_807A8D4(struct Sprite *sprite)
+{
+ if (--sprite->data[0] == 0)
+ {
gTasks[sprite->data[1]].data[5]--;
obj_delete_but_dont_free_vram(sprite);
}
@@ -2000,38 +2290,40 @@ void sub_807A8D4(struct Sprite *sprite) {
void sub_807A908(struct Sprite *sprite) {
sprite->pos1.x = GetBankPosition(gAnimBankAttacker, 2);
sprite->pos1.y = GetBankPosition(gAnimBankAttacker, 3);
- if (!GetBankSide(gAnimBankAttacker)) {
+ if (!GetBankSide(gAnimBankAttacker))
sprite->data[0] = 5;
- } else {
+ else
sprite->data[0] = -10;
- }
sprite->data[1] = -40;
sprite->callback = sub_807A960;
}
-void sub_807A960(struct Sprite *sprite) {
+void sub_807A960(struct Sprite *sprite)
+{
sprite->data[2] += sprite->data[0];
sprite->data[3] += sprite->data[1];
sprite->pos2.x = sprite->data[2] / 10;
sprite->pos2.y = sprite->data[3] / 10;
- if (sprite->data[1] < -20) {
+ if (sprite->data[1] < -20)
sprite->data[1]++;
- }
- if ((sprite->pos1.y + sprite->pos2.y) < -32) {
+ if (sprite->pos1.y + sprite->pos2.y < -32)
DestroyAnimSprite(sprite);
- }
}
-void sub_807A9BC(struct Sprite *sprite) {
+void sub_807A9BC(struct Sprite *sprite)
+{
int x;
sprite->data[0] = gBattleAnimArgs[2];
sprite->data[2] = sprite->pos1.x + gBattleAnimArgs[4];
sprite->data[4] = sprite->pos1.y + gBattleAnimArgs[5];
- if (!GetBankSide(gAnimBankTarget)) {
+ if (!GetBankSide(gAnimBankTarget))
+ {
x = (u16)gBattleAnimArgs[4] + 30;
sprite->pos1.x += x;
sprite->pos1.y = gBattleAnimArgs[5] - 20;
- } else {
+ }
+ else
+ {
x = (u16)gBattleAnimArgs[4] - 30;
sprite->pos1.x += x;
sprite->pos1.y = gBattleAnimArgs[5] - 80;
diff --git a/src/scene/cable_car.c b/src/scene/cable_car.c
new file mode 100644
index 000000000..52a0aeebf
--- /dev/null
+++ b/src/scene/cable_car.c
@@ -0,0 +1,979 @@
+
+// Includes
+#include "global.h"
+#include "ewram.h"
+#include "overworld.h"
+#include "palette.h"
+#include "random.h"
+#include "main.h"
+#include "script.h"
+#include "task.h"
+#include "sound.h"
+#include "graphics.h"
+#include "constants/songs.h"
+#include "decompress.h"
+#include "field_weather.h"
+#include "field_map_obj.h"
+#include "unknown_task.h"
+#include "event_data.h"
+#include "cable_car_util.h"
+#include "constants/map_objects.h"
+
+// Static type declarations
+
+// Credits to Made (dolphin emoji)
+#define S16TOPOSFLOAT(val) \
+({ \
+ s16 v = (val); \
+ float f = (float)v; \
+ if(v < 0) f += 65536.0f; \
+ f; \
+})
+
+struct CableCarEwramStruct1 {
+ u8 unk_0000;
+ u8 unk_0001;
+ u8 unk_0002;
+ u8 unk_0003;
+ u16 unk_0004;
+ u16 unk_0006;
+ u8 unk_0008;
+ u8 unk_0009;
+ u8 filler_000a[2];
+ u8 unk_000c;
+ u8 unk_000d;
+ u8 filler_0000e[6];
+ u8 unk_0014;
+ u8 unk_0015;
+ u8 unk_0016;
+ u8 unk_0017;
+ u8 unk_0018;
+ u8 unk_0019;
+ u8 unk_001a;
+ u8 unk_001b;
+ u8 unk_001c;
+ u8 unk_001d;
+ u8 unk_001e;
+ u8 unk_001f;
+ u8 unk_0020;
+ u16 unk_0022[9][12];
+ u8 filler_00fa[2];
+ u16 unk_00fc[0x20][0x20];
+ u16 unk_08fc[0x20][0x20];
+}; // size 0x10FC
+
+struct CableCarEwramStruct2 {
+ /* 0x000 */ u16 mtChimneyTilemap[0xb4];
+ /* 0x168 */ u16 treeTilemap[0x1e0];
+ /* 0x528 */ u16 mountainTilemap[0x258];
+ /* 0x9d8 */ u16 pylonStemTilemap[0x628]; // size not actually known
+};
+
+// Static RAM declarations
+
+EWRAM_DATA struct CableCarEwramStruct1 *sCableCarPtr = NULL;
+EWRAM_DATA u8 gUnknown_02039278 = 0;
+EWRAM_DATA u8 gUnknown_02039279 = 0;
+EWRAM_DATA u8 gUnknown_0203927A = 0;
+EWRAM_DATA u8 gUnknown_0203927B = 0;
+EWRAM_DATA u8 gUnknown_0203927C = 0;
+EWRAM_DATA u8 gUnknown_0203927D = 0;
+EWRAM_DATA u32 filler_02039280 = 0;
+
+// Static ROM declarations
+
+static void CableCarMainCallback_Setup(void);
+static void CableCarMainCallback_Run(void);
+static void sub_8123878(u8 taskId);
+static void sub_81239E4(u8 taskId);
+static void sub_8123AF8(u8 taskId);
+static void CableCarVblankCallback(void);
+static void nullsub_76(struct Sprite *sprite);
+static void sub_8123CB8(struct Sprite *sprite);
+static void sub_8123EB8(struct Sprite *sprite);
+static void sub_8123F44(struct Sprite *sprite);
+static void sub_8123FBC(u8);
+static void LoadSprites(void);
+static void sub_812453C(void);
+static void sub_8124598(void);
+static void sub_81245F4(void);
+static void sub_812476C(void);
+static void sub_81248AC(u8);
+
+// .rodata
+
+static const u8 gCableCarMtChimneyTilemap[] = INCBIN_U8("graphics/misc/cable_car_mt_chimney_map.bin.lz");
+
+static const u8 gCableCarTreeTilemap[] = INCBIN_U8("graphics/misc/cable_car_tree_map.bin.lz");
+
+static const u8 gCableCarMountainTilemap[] = INCBIN_U8("graphics/misc/cable_car_mountain_map.bin.lz");
+
+static const u16 gCableCarPylonHookTilemapEntries[] = {
+ 0x3000,
+ 0x3001,
+ 0x3002,
+ 0x3003,
+ 0x3004,
+ 0x3005,
+ 0x3006,
+ 0x3007,
+ 0x3008,
+ 0x3009
+};
+
+static const u8 gCableCarPylonStemTilemap[] = INCBIN_U8("graphics/misc/cable_car_pylon_stem_map.bin.lz");
+
+static const struct CompressedSpriteSheet gUnknown_08401CF8[] = {
+ { gCableCar_Gfx, 0x800, 1 },
+ { gCableCarDoor_Gfx, 0x40, 2 },
+ { gCableCarCord_Gfx, 0x80, 3 },
+ { }
+};
+static const struct SpritePalette gUnknown_08401D18[] = {
+ { gCableCar_Pal, 1 },
+ { }
+};
+
+static const struct OamData gOamData_8401D28 = {
+ .affineMode = ST_OAM_AFFINE_DOUBLE,
+ .size = 3,
+ .priority = 2
+};
+
+static const struct OamData gOamData_8401D30 = {
+ .affineMode = ST_OAM_AFFINE_DOUBLE,
+ .shape = ST_OAM_H_RECTANGLE,
+ .priority = 2
+};
+
+static const struct OamData gOamData_8401D38 = {
+ .affineMode = ST_OAM_AFFINE_DOUBLE,
+ .size = 1,
+ .priority = 2
+};
+
+static const struct SpriteTemplate gSpriteTemplate_8401D40[] = {
+ {
+ 1,
+ 1,
+ &gOamData_8401D28,
+ gDummySpriteAnimTable,
+ NULL,
+ gDummySpriteAffineAnimTable,
+ sub_8123CB8
+ }, {
+ 2,
+ 1,
+ &gOamData_8401D30,
+ gDummySpriteAnimTable,
+ NULL,
+ gDummySpriteAffineAnimTable,
+ sub_8123CB8
+ }, {
+ 3,
+ 1,
+ &gOamData_8401D38,
+ gDummySpriteAnimTable,
+ NULL,
+ gDummySpriteAffineAnimTable,
+ nullsub_76
+ }
+};
+
+// .text
+
+static void CableCarTask1(u8 taskId)
+{
+ if (!gPaletteFade.active)
+ {
+ SetMainCallback2(CableCarMainCallback_Setup);
+ DestroyTask(taskId);
+ }
+}
+
+void CableCar(void)
+{
+ ScriptContext2_Enable();
+ CreateTask(CableCarTask1, 1);
+ BeginNormalPaletteFade(-1, 0, 0, 16, 0);
+}
+
+static void CableCarMainCallback_Setup(void)
+{
+ u8 i;
+ u16 imebak;
+
+ switch (gMain.state)
+ {
+ case 0:
+ default:
+ SetVBlankCallback(NULL);
+ remove_some_task();
+ DmaFill16Large(3, 0, VRAM, VRAM_SIZE, 0x1000);
+ DmaFill32Defvars(3, 0, OAM, OAM_SIZE);
+ DmaFill16Defvars(3, 0, PLTT, PLTT_SIZE);
+ sCableCarPtr = eCableCar1;
+ DmaFill16Large(3, 0, eCableCar1, 0x10FC, 0x1000);
+ gMain.state++;
+ break;
+ case 1:
+ ResetSpriteData();
+ ResetTasks();
+ FreeAllSpritePalettes();
+ ResetPaletteFade();
+ StartWeather();
+ for (i = 0; i < 20; i++)
+ {
+ gWeatherPtr->sprites.s2.ashSprites[i] = NULL;
+ }
+ InitMapMusic();
+ ResetMapMusic();
+ gSpriteCoordOffsetX = gSpriteCoordOffsetY = 0;
+ gMain.state++;
+ break;
+ case 2:
+ for (i = 0; i < 3; i++)
+ {
+ LoadCompressedObjectPic(&gUnknown_08401CF8[i]);
+ }
+ LoadSpritePalettes(gUnknown_08401D18);
+ LZDecompressWram(gCableCarMtChimneyTilemap, eCableCar2->mtChimneyTilemap);
+ LZDecompressWram(gCableCarTreeTilemap, eCableCar2->treeTilemap);
+ LZDecompressWram(gCableCarMountainTilemap, eCableCar2->mountainTilemap);
+ LZDecompressWram(gCableCarPylonStemTilemap, eCableCar2->pylonStemTilemap);
+ LoadPalette(gCableCarBG_Pal, 0, 0x80);
+ LZ77UnCompVram(gCableCarBG_Gfx, (u16 *)BG_VRAM);
+ gMain.state++;
+ break;
+ case 3:
+ LoadSprites();
+ RunTasks();
+ gMain.state++;
+ break;
+ case 4:
+ if (sCableCarPtr->unk_0002 == 7)
+ {
+ gMain.state++;
+ }
+ else if (gWeatherPtr->sprites.s2.ashSprites[0] != NULL)
+ {
+ for (i = 0; i < 20; i++)
+ {
+ if (gWeatherPtr->sprites.s2.ashSprites[i] != NULL)
+ {
+ gWeatherPtr->sprites.s2.ashSprites[i]->oam.priority = 0;
+ }
+ }
+ gMain.state++;
+ }
+ break;
+ case 5:
+ CableCarUtil_CopyWrapped((void *)BG_SCREEN_ADDR(29), eCableCar2->treeTilemap, 0, 17, 32, 15);
+ CableCarUtil_CopyWrapped((void *)BG_SCREEN_ADDR(30), eCableCar2->mountainTilemap, 0, 0, 30, 20);
+ CableCarUtil_CopyWrapped(sCableCarPtr->unk_08fc, gCableCarPylonHookTilemapEntries, 0, 0, 5, 2);
+ CableCarUtil_CopyWrapped(sCableCarPtr->unk_08fc, eCableCar2->pylonStemTilemap, 0, 2, 2, 20);
+ gMain.state++;
+ break;
+ case 6:
+ sub_81248AC(gSpecialVar_0x8004);
+ CableCarUtil_CopyWrapped(sCableCarPtr->unk_00fc, eCableCar2->mtChimneyTilemap + 0x48, 0, 14, 12, 3);
+ CableCarUtil_CopyWrapped(sCableCarPtr->unk_00fc, eCableCar2->mtChimneyTilemap + 0x6C, 12, 17, 12, 3);
+ CableCarUtil_CopyWrapped(sCableCarPtr->unk_00fc, eCableCar2->mtChimneyTilemap + 0x90, 24, 20, 12, 3);
+ CableCarUtil_CopyWrapped(sCableCarPtr->unk_00fc, eCableCar2->mtChimneyTilemap + 0x00, 0, 17, 12, 3);
+ CableCarUtil_CopyWrapped(sCableCarPtr->unk_00fc, eCableCar2->mtChimneyTilemap + 0x24, 0, 20, 12, 3);
+ CableCarUtil_CopyWrapped(sCableCarPtr->unk_00fc, eCableCar2->mtChimneyTilemap + 0x00, 12, 20, 12, 3);
+ CableCarUtil_CopyWrapped(sCableCarPtr->unk_00fc, eCableCar2->mtChimneyTilemap + 0x24, 12, 23, 12, 3);
+ CableCarUtil_CopyWrapped(sCableCarPtr->unk_00fc, eCableCar2->mtChimneyTilemap + 0x00, 24, 23, 12, 3);
+ gMain.state++;
+ break;
+ case 7:
+ BeginNormalPaletteFade(-1, 3, 16, 0, 0);
+ FadeInNewBGM(BGM_ROPEWAY, 1);
+ sub_8123FBC(1);
+ gMain.state++;
+ break;
+ case 8:
+ imebak = REG_IME;
+ REG_IME = 0;
+ REG_IE |= INTR_FLAG_VBLANK;
+ REG_IME = imebak;
+ SetVBlankCallback(CableCarVblankCallback);
+ SetMainCallback2(CableCarMainCallback_Run);
+ CreateTask(sub_8123878, 0);
+ if (gSpecialVar_0x8004 == 0)
+ {
+ sCableCarPtr->unk_0000 = CreateTask(sub_81239E4, 1);
+ }
+ else
+ {
+ sCableCarPtr->unk_0000 = CreateTask(sub_8123AF8, 1);
+ }
+ break;
+ }
+}
+
+static void CableCarMainCallback_Run(void)
+{
+ RunTasks();
+ AnimateSprites();
+ BuildOamBuffer();
+ UpdatePaletteFade();
+ MapMusicMain();
+}
+
+static void sub_8123740(void)
+{
+ u8 i;
+
+ i = 0;
+ sub_8123FBC(0);
+ gSpriteCoordOffsetX = 0;
+ sub_807C9B4(0);
+ for (; i < 20; i++)
+ {
+ gWeatherPtr->sprites.s2.ashSprites[i] = NULL;
+ }
+ ResetTasks();
+ ResetSpriteData();
+ ResetPaletteFade();
+ DmaFill32Large(3, 0, gSharedMem, 0x20000, 0x1000);
+ sCableCarPtr = NULL;
+ DmaFill16Large(3, 0, VRAM, VRAM_SIZE, 0x1000);
+ DmaFill32Defvars(3, 0, OAM, OAM_SIZE);
+ DmaFill16Defvars(3, 0, PLTT, PLTT_SIZE);
+ warp_in();
+ gFieldCallback = NULL;
+ SetMainCallback2(CB2_LoadMap);
+}
+
+static void sub_8123878(u8 taskId)
+{
+ u8 i;
+
+ i = 0;
+ sCableCarPtr->unk_0006++;
+ switch (sCableCarPtr->unk_0001)
+ {
+ case 0:
+ if (sCableCarPtr->unk_0006 == sCableCarPtr->unk_0004)
+ {
+ DoWeatherEffect(sCableCarPtr->unk_0002);
+ sCableCarPtr->unk_0001 = 1;
+ }
+ break;
+ case 1:
+ switch (sCableCarPtr->unk_0002)
+ {
+ case 7:
+ if (gWeatherPtr->sprites.s2.ashSprites[0] != NULL && gWeatherPtr->sprites.s2.ashSprites[0]->oam.priority != 0)
+ {
+ for (; i < 20; i++)
+ {
+ if (gWeatherPtr->sprites.s2.ashSprites[i] != NULL)
+ {
+ gWeatherPtr->sprites.s2.ashSprites[i]->oam.priority = 0;
+ }
+ }
+ sCableCarPtr->unk_0001 = 2;
+ }
+ break;
+ case 2:
+ if (gWeatherPtr->currWeather == 2)
+ {
+ sCableCarPtr->unk_0001 = 2;
+ }
+ else if (sCableCarPtr->unk_0006 >= sCableCarPtr->unk_0004 + 8)
+ {
+ for (; i < 20; i++)
+ {
+ if (gWeatherPtr->sprites.s2.ashSprites[i] != NULL)
+ {
+ gWeatherPtr->sprites.s2.ashSprites[i]->invisible ^= TRUE;
+ }
+ }
+ }
+ break;
+ }
+ break;
+ case 2:
+ if (sCableCarPtr->unk_0006 == 570)
+ {
+ sCableCarPtr->unk_0001 = 3;
+ BeginNormalPaletteFade(-1, 3, 0, 16, 0);
+ FadeOutBGM(4);
+ }
+ break;
+ case 3:
+ if (!gPaletteFade.active)
+ {
+ sCableCarPtr->unk_0001 = 255;
+ }
+ break;
+ case 255:
+ SetVBlankCallback(NULL);
+ DestroyTask(taskId);
+ DestroyTask(sCableCarPtr->unk_0000);
+ SetMainCallback2(sub_8123740);
+ break;
+ }
+}
+
+static void sub_81239E4(u8 taskId)
+{
+ if (sCableCarPtr->unk_0001 != 255)
+ {
+ sCableCarPtr->unk_0014--;
+ if ((sCableCarPtr->unk_0006 % 2) == 0)
+ {
+ sCableCarPtr->unk_0015--;
+ }
+ if ((sCableCarPtr->unk_0006 % 8) == 0)
+ {
+ sCableCarPtr->unk_000c--;
+ sCableCarPtr->unk_000d--;
+ }
+ switch (sCableCarPtr->unk_0014)
+ {
+ case 175:
+ CableCarUtil_FillWrapped(sCableCarPtr->unk_08fc, 0, 0, 22, 2, 10);
+ break;
+ case 40:
+ CableCarUtil_FillWrapped(sCableCarPtr->unk_08fc, 0, 3, 0, 2, 2);
+ break;
+ case 32:
+ CableCarUtil_FillWrapped(sCableCarPtr->unk_08fc, 0, 2, 0, 1, 2);
+ break;
+ case 16:
+ CableCarUtil_CopyWrapped(sCableCarPtr->unk_08fc, gCableCarPylonHookTilemapEntries, 0, 0, 5, 2);
+ CableCarUtil_CopyWrapped(sCableCarPtr->unk_08fc, eCableCar2->pylonStemTilemap, 0, 2, 2, 30);
+ sCableCarPtr->unk_0015 = 64;
+ break;
+ }
+ }
+ sub_812453C();
+ gSpriteCoordOffsetX = (gSpriteCoordOffsetX + 1) % 128;
+}
+
+static void sub_8123AF8(u8 taskId)
+{
+ if (sCableCarPtr->unk_0001 != 255)
+ {
+ sCableCarPtr->unk_0014++;
+ if ((sCableCarPtr->unk_0006 % 2) == 0)
+ {
+ sCableCarPtr->unk_0015++;
+ }
+ if ((sCableCarPtr->unk_0006 % 8) == 0)
+ {
+ sCableCarPtr->unk_000c++;
+ sCableCarPtr->unk_000d++;
+ }
+ switch (sCableCarPtr->unk_0014)
+ {
+ case 176:
+ CableCarUtil_CopyWrapped(sCableCarPtr->unk_08fc, eCableCar2->pylonStemTilemap, 0, 2, 2, 30);
+ break;
+ case 16:
+ CableCarUtil_FillWrapped(sCableCarPtr->unk_08fc, 0, 2, 0, 3, 2);
+ CableCarUtil_FillWrapped(sCableCarPtr->unk_08fc, 0, 0, 22, 2, 10);
+ sCableCarPtr->unk_0015 = 192;
+ break;
+ case 32:
+ sCableCarPtr->unk_08fc[0][2] = (gCableCarPylonHookTilemapEntries + 2)[0];
+ sCableCarPtr->unk_08fc[0][3] = (gCableCarPylonHookTilemapEntries + 2)[1];
+ sCableCarPtr->unk_08fc[1][2] = (gCableCarPylonHookTilemapEntries + 2)[5];
+ sCableCarPtr->unk_08fc[1][3] = (gCableCarPylonHookTilemapEntries + 2)[6];
+ break;
+ case 40:
+ sCableCarPtr->unk_08fc[0][4] = (gCableCarPylonHookTilemapEntries + 4)[0];
+ sCableCarPtr->unk_08fc[1][4] = (gCableCarPylonHookTilemapEntries + 4)[5];
+ break;
+ }
+ }
+ sub_8124598();
+ if (sCableCarPtr->unk_0006 < sCableCarPtr->unk_0004) {
+ gSpriteCoordOffsetX = (gSpriteCoordOffsetX + 247) % 248;
+ }
+ else
+ {
+ gWeatherPtr->unknown_6FC = (gWeatherPtr->unknown_6FC + 247) % 248;
+ }
+}
+
+static void CableCarVblankCallback(void)
+{
+ DmaCopy16(3, sCableCarPtr->unk_00fc, BG_SCREEN_ADDR(28), 0x800);
+ DmaCopy16(3, sCableCarPtr->unk_08fc, BG_SCREEN_ADDR(31), 0x800);
+ REG_BG3HOFS = sCableCarPtr->unk_0014;
+ REG_BG3VOFS = sCableCarPtr->unk_0015;
+ REG_BG1HOFS = sCableCarPtr->unk_000c;
+ REG_BG1VOFS = sCableCarPtr->unk_000d;
+ REG_BG0HOFS = sCableCarPtr->unk_0008;
+ REG_BG0VOFS = sCableCarPtr->unk_0009;
+ LoadOam();
+ ProcessSpriteCopyRequests();
+ TransferPlttBuffer();
+}
+
+static void nullsub_76(struct Sprite *sprite)
+{
+
+}
+
+static void sub_8123CB8(struct Sprite *sprite)
+{
+ if (sCableCarPtr->unk_0001 != 255)
+ {
+ if (gSpecialVar_0x8004 == 0)
+ {
+ sprite->pos1.x = sprite->data[0] - (u8)(0.14f * S16TOPOSFLOAT(sCableCarPtr->unk_0006));
+ sprite->pos1.y = sprite->data[1] - (u8)(0.067f * S16TOPOSFLOAT(sCableCarPtr->unk_0006));
+ }
+ else
+ {
+ sprite->pos1.x = sprite->data[0] + (u8)(0.14f * S16TOPOSFLOAT(sCableCarPtr->unk_0006));
+ sprite->pos1.y = sprite->data[1] + (u8)(0.067f * S16TOPOSFLOAT(sCableCarPtr->unk_0006));
+ }
+ }
+}
+
+static void sub_8123D98(struct Sprite *sprite)
+{
+ if (sCableCarPtr->unk_0001 != 255)
+ {
+ if (gSpecialVar_0x8004 == 0)
+ {
+ sprite->pos1.x = sprite->data[0] - (u8)(0.14f * S16TOPOSFLOAT(sCableCarPtr->unk_0006));
+ sprite->pos1.y = sprite->data[1] - (u8)(0.067f * S16TOPOSFLOAT(sCableCarPtr->unk_0006));
+ }
+ else
+ {
+ sprite->pos1.x = sprite->data[0] + (u8)(0.14f * S16TOPOSFLOAT(sCableCarPtr->unk_0006));
+ sprite->pos1.y = sprite->data[1] + (u8)(0.067f * S16TOPOSFLOAT(sCableCarPtr->unk_0006));
+ }
+ switch (sprite->data[2])
+ {
+ case 0:
+ sprite->pos2.y = 17;
+ if (sprite->data[3] ++ > 9)
+ {
+ sprite->data[3] = 0;
+ sprite->data[2] ++;
+ }
+ break;
+ default:
+ sprite->pos2.y = 16;
+ if (sprite->data[3] ++ > 9)
+ {
+ sprite->data[3] = 0;
+ sprite->data[2] = 0;
+ }
+ break;
+ }
+ }
+}
+
+static void sub_8123EB8(struct Sprite *sprite)
+{
+ if (sprite->data[0] == 0)
+ {
+ sprite->pos1.x += 2 * sprite->centerToCornerVecX;
+ sprite->pos1.y += 16 + sprite->centerToCornerVecY;
+ }
+ if (++sprite->data[0] >= sprite->data[2])
+ {
+ switch (sprite->data[1])
+ {
+ case 0:
+ sprite->pos1.x++;
+ if ((sprite->data[0] % 4) == 0)
+ {
+ sprite->pos1.y++;
+ }
+ break;
+ case 1:
+ if ((sprite->data[0] % 2) != 0)
+ {
+ sprite->pos1.x++;
+ if ((sprite->pos1.x % 4) == 0)
+ {
+ sprite->pos1.y++;
+ }
+ }
+ break;
+ }
+ if (sprite->pos1.y > 0xa0)
+ {
+ DestroySprite(sprite);
+ }
+ }
+}
+
+static void sub_8123F44(struct Sprite *sprite)
+{
+ if (sprite->data[0] == 0)
+ {
+ sprite->pos1.y += 16 + sprite->centerToCornerVecY;
+ }
+ if (++sprite->data[0] >= sprite->data[2])
+ {
+ switch (sprite->data[1])
+ {
+ case 0:
+ sprite->pos1.x--;
+ if ((sprite->data[0] % 4) == 0)
+ {
+ sprite->pos1.y--;
+ }
+ break;
+ case 1:
+ if ((sprite->data[0] % 2) != 0)
+ {
+ sprite->pos1.x--;
+ if ((sprite->pos1.x % 4) == 0)
+ {
+ sprite->pos1.y--;
+ }
+ }
+ break;
+ }
+ if (sprite->pos1.y < 0x50)
+ {
+ DestroySprite(sprite);
+ }
+ }
+}
+
+static void sub_8123FBC(bool8 which)
+{
+ switch (which)
+ {
+ case FALSE:
+ default:
+ REG_WININ = 0;
+ REG_WINOUT = 0;
+ REG_WIN0H = 0;
+ REG_WIN1H = 0;
+ REG_WIN0V = 0;
+ REG_WIN1V = 0;
+ REG_DISPCNT = 0;
+ REG_BG3CNT = 0;
+ REG_BG2CNT = 0;
+ REG_BG1CNT = 0;
+ REG_BG0CNT = 0;
+ REG_BG3HOFS = 0;
+ REG_BG3VOFS = 0;
+ REG_BG2HOFS = 0;
+ REG_BG2VOFS = 0;
+ REG_BG1HOFS = 0;
+ REG_BG1VOFS = 0;
+ REG_BG0HOFS = 0;
+ REG_BG0VOFS = 0;
+ REG_BLDCNT = 0;
+ break;
+ case TRUE:
+ REG_WININ = 0;
+ REG_WINOUT = 0;
+ REG_WIN0H = 0;
+ REG_WIN1H = 0;
+ REG_WIN0V = 0;
+ REG_WIN1V = 0;
+ if (gSpecialVar_0x8004 == 0)
+ {
+ sCableCarPtr->unk_0014 = 0xb0;
+ sCableCarPtr->unk_0015 = 0x10;
+ sCableCarPtr->unk_000c = 0x00;
+ sCableCarPtr->unk_000d = 0x50;
+ sCableCarPtr->unk_0009 = 0;
+ sCableCarPtr->unk_0009 = 0;
+ }
+ else
+ {
+ sCableCarPtr->unk_0014 = 0x60;
+ sCableCarPtr->unk_0015 = 0xe8;
+ sCableCarPtr->unk_000c = 0x00;
+ sCableCarPtr->unk_000d = 0x04;
+ sCableCarPtr->unk_0009 = 0;
+ sCableCarPtr->unk_0009 = 0;
+ }
+ REG_BG3HOFS = sCableCarPtr->unk_0014;
+ REG_BG3VOFS = sCableCarPtr->unk_0015;
+ REG_BG2HOFS = 0;
+ REG_BG2VOFS = 0;
+ REG_BG1HOFS = sCableCarPtr->unk_000c;
+ REG_BG1VOFS = sCableCarPtr->unk_000d;
+ REG_BG0HOFS = sCableCarPtr->unk_0008;
+ REG_BG0VOFS = sCableCarPtr->unk_0009;
+ REG_BG0CNT = BGCNT_PRIORITY(1) | BGCNT_SCREENBASE(28) | BGCNT_WRAP;
+ REG_BG1CNT = BGCNT_PRIORITY(2) | BGCNT_SCREENBASE(29) | BGCNT_WRAP;
+ REG_BG2CNT = BGCNT_PRIORITY(3) | BGCNT_SCREENBASE(30) | BGCNT_WRAP;
+ REG_BG3CNT = BGCNT_PRIORITY(0) | BGCNT_SCREENBASE(31) | BGCNT_WRAP;
+ REG_DISPCNT = DISPCNT_OBJ_1D_MAP | DISPCNT_BG_ALL_ON | DISPCNT_OBJ_ON;
+ REG_BLDCNT = 0x3f00;
+ break;
+ }
+}
+
+static void LoadSprites(void)
+{
+ u8 spriteId;
+ u8 i;
+
+ u8 playerGraphicsIds[2] = {
+ MAP_OBJ_GFX_RIVAL_BRENDAN_NORMAL,
+ MAP_OBJ_GFX_RIVAL_MAY_NORMAL
+ };
+ u16 rval = Random();
+ u8 hikerGraphicsIds[4] = {
+ MAP_OBJ_GFX_HIKER,
+ MAP_OBJ_GFX_CAMPER,
+ MAP_OBJ_GFX_PICNICKER,
+ MAP_OBJ_GFX_POOCHYENA
+ };
+ s16 hikerCoords[2][2] = {
+ { 0, 80 },
+ { 240, 146 }
+ };
+ u8 hikerMovementDelayTable[4] = {
+ 0,
+ 60,
+ 120,
+ 170
+ };
+ void (*callbacks[2])(struct Sprite *) = {
+ sub_8123EB8,
+ sub_8123F44
+ };
+
+ switch (gSpecialVar_0x8004)
+ {
+ case 0:
+ default:
+ spriteId = AddPseudoFieldObject(playerGraphicsIds[gSaveBlock2.playerGender], sub_8123D98, 0xc8, 0x49, 0x66);
+ if (spriteId != MAX_SPRITES)
+ {
+ gSprites[spriteId].oam.priority = 2;
+ gSprites[spriteId].pos2.x = 0x08;
+ gSprites[spriteId].pos2.y = 0x10;
+ gSprites[spriteId].data[0] = 0xc8;
+ gSprites[spriteId].data[1] = 0x49;
+ }
+ spriteId = CreateSprite(&gSpriteTemplate_8401D40[0], 0xb0, 0x2b, 0x67);
+ gSprites[spriteId].pos2.x = gSprites[spriteId].pos2.y = 0x20;
+ gSprites[spriteId].data[0] = 0xb0;
+ gSprites[spriteId].data[1] = 0x2b;
+ spriteId = CreateSprite(&gSpriteTemplate_8401D40[1], 0xc8, 0x63, 0x65);
+ gSprites[spriteId].pos2.x = 8;
+ gSprites[spriteId].pos2.y = 4;
+ gSprites[spriteId].data[0] = 0xc8;
+ gSprites[spriteId].data[1] = 0x63;
+ sCableCarPtr->unk_0002 = 7;
+ sCableCarPtr->unk_0004 = 0x15e;
+ sub_807C9B4(2);
+ break;
+ case 1:
+ CableCarUtil_CopyWrapped(sCableCarPtr->unk_00fc, eCableCar2->mtChimneyTilemap + 0x24, 0x18, 0x1a, 0x0c, 0x03);
+ spriteId = AddPseudoFieldObject(playerGraphicsIds[gSaveBlock2.playerGender], sub_8123D98, 0x80, 0x27, 0x66);
+ if (spriteId != MAX_SPRITES)
+ {
+ gSprites[spriteId].oam.priority = 2;
+ gSprites[spriteId].pos2.x = 0x08;
+ gSprites[spriteId].pos2.y = 0x10;
+ gSprites[spriteId].data[0] = 0x80;
+ gSprites[spriteId].data[1] = 0x27;
+ }
+ spriteId = CreateSprite(&gSpriteTemplate_8401D40[0], 0x68, 0x09, 0x67);
+ gSprites[spriteId].pos2.x = gSprites[spriteId].pos2.y = 0x20;
+ gSprites[spriteId].data[0] = 0x68;
+ gSprites[spriteId].data[1] = 0x09;
+ spriteId = CreateSprite(&gSpriteTemplate_8401D40[1], 0x80, 0x41, 0x65);
+ gSprites[spriteId].pos2.x = 8;
+ gSprites[spriteId].pos2.y = 4;
+ gSprites[spriteId].data[0] = 0x80;
+ gSprites[spriteId].data[1] = 0x41;
+ sCableCarPtr->unk_0002 = 2;
+ sCableCarPtr->unk_0004 = 0x109;
+ sub_807C9B4(7);
+ break;
+ }
+ for (i = 0; i < 9; i++)
+ {
+ spriteId = CreateSprite(&gSpriteTemplate_8401D40[2], 16 * i + 0x60, 8 * i - 8, 0x68);
+ gSprites[spriteId].pos2.x = 8;
+ gSprites[spriteId].pos2.y = 8;
+ }
+ if ((rval % 64) == 0)
+ {
+ spriteId = AddPseudoFieldObject(hikerGraphicsIds[rval % 3], callbacks[gSpecialVar_0x8004], hikerCoords[gSpecialVar_0x8004][0], hikerCoords[gSpecialVar_0x8004][1], 0x6a);
+ if (spriteId != MAX_SPRITES)
+ {
+ gSprites[spriteId].oam.priority = 2;
+ gSprites[spriteId].pos2.x = -gSprites[spriteId].centerToCornerVecX;
+ gSprites[spriteId].pos2.y = -gSprites[spriteId].centerToCornerVecY;
+ if (gSpecialVar_0x8004 == 0)
+ {
+ if (rval % 2)
+ {
+ StartSpriteAnim(&gSprites[spriteId], 6);
+ gSprites[spriteId].data[1] = 1;
+ gSprites[spriteId].pos1.y += 2;
+ }
+ else
+ {
+ StartSpriteAnim(&gSprites[spriteId], 7);
+ gSprites[spriteId].data[1] = 0;
+ }
+ }
+ else
+ {
+ if (rval % 2)
+ {
+ StartSpriteAnim(&gSprites[spriteId], 7);
+ gSprites[spriteId].data[1] = 1;
+ gSprites[spriteId].pos1.y += 2;
+ }
+ else
+ {
+ StartSpriteAnim(&gSprites[spriteId], 6);
+ gSprites[spriteId].data[1] = 0;
+ }
+ }
+ gSprites[spriteId].data[2] = hikerMovementDelayTable[rval % 4];
+ }
+ }
+}
+
+static void sub_812446C(void)
+{
+ u8 i;
+ u8 j;
+ u8 k;
+ u8 offset;
+
+ for (i = 0, k = 0, offset = 0x24 * (sCableCarPtr->unk_001b + 2); i < 3; i++)
+ {
+ for (j = 0; j < 12; j++)
+ {
+ sCableCarPtr->unk_0022[i][j] = *(eCableCar2->mtChimneyTilemap + (offset++));
+ sCableCarPtr->unk_0022[i + 3][j] = eCableCar2->mtChimneyTilemap[k];
+ sCableCarPtr->unk_0022[i + 6][j] = (eCableCar2->mtChimneyTilemap + 0x24)[k];
+ k++;
+ }
+ }
+ sCableCarPtr->unk_001b = (sCableCarPtr->unk_001b + 1) % 3;
+}
+
+static void sub_812453C(void)
+{
+ sCableCarPtr->unk_001c = (sCableCarPtr->unk_001c + 1) % 0x60;
+ sCableCarPtr->unk_0008 = sCableCarPtr->unk_001f - sCableCarPtr->unk_001d;
+ sCableCarPtr->unk_0009 = sCableCarPtr->unk_0020 - sCableCarPtr->unk_001e;
+ sCableCarPtr->unk_001d++;
+ if ((sCableCarPtr->unk_001d % 4) == 0)
+ {
+ sCableCarPtr->unk_001e++;
+ }
+ if (sCableCarPtr->unk_001d > 16)
+ {
+ sub_81245F4();
+ }
+}
+
+static void sub_8124598(void)
+{
+ sCableCarPtr->unk_001c = (sCableCarPtr->unk_001c + 1) % 0x60;
+ sCableCarPtr->unk_0008 = sCableCarPtr->unk_001f + sCableCarPtr->unk_001d;
+ sCableCarPtr->unk_0009 = sCableCarPtr->unk_0020 + sCableCarPtr->unk_001e;
+ sCableCarPtr->unk_001d++;
+ if ((sCableCarPtr->unk_001d % 4) == 0)
+ {
+ sCableCarPtr->unk_001e++;
+ }
+ if (sCableCarPtr->unk_001d > 16)
+ {
+ sub_812476C();
+ }
+}
+
+static void sub_81245F4(void)
+{
+ u8 i = 0;
+
+ sCableCarPtr->unk_001d = sCableCarPtr->unk_001e = 0;
+ sCableCarPtr->unk_001f = sCableCarPtr->unk_0008;
+ sCableCarPtr->unk_0020 = sCableCarPtr->unk_0009;
+ sCableCarPtr->unk_0019 = (sCableCarPtr->unk_0019 + 30) % 32;
+ sCableCarPtr->unk_0018 -= 2;
+ gUnknown_0203927A = (sCableCarPtr->unk_001a + 23) % 32;
+ for (i = 0; i < 9; i++)
+ {
+ gUnknown_02039278 = sCableCarPtr->unk_0019;
+ gUnknown_02039279 = (gUnknown_0203927A + i) % 32;
+ sCableCarPtr->unk_00fc[gUnknown_02039279][gUnknown_02039278] = sCableCarPtr->unk_0022[i][sCableCarPtr->unk_0018];
+ gUnknown_02039278 = (gUnknown_02039278 + 1) % 32;
+ sCableCarPtr->unk_00fc[gUnknown_02039279][gUnknown_02039278] = sCableCarPtr->unk_0022[i][sCableCarPtr->unk_0018 + 1];
+ }
+ gUnknown_02039278 = (sCableCarPtr->unk_0019 + 30) % 32;
+ CableCarUtil_FillWrapped(sCableCarPtr->unk_00fc, 0, gUnknown_02039278, 0, 2, 32);
+ if (sCableCarPtr->unk_0018 == 0)
+ {
+ sCableCarPtr->unk_001a = (sCableCarPtr->unk_001a + 29) % 32;
+ sCableCarPtr->unk_0018 = 12;
+ sub_812446C();
+ gUnknown_02039278 = (sCableCarPtr->unk_001a + 1) % 32;
+ CableCarUtil_FillWrapped(sCableCarPtr->unk_00fc, 0, 0, gUnknown_02039278, 32, 9);
+ }
+}
+
+static void sub_812476C(void)
+{
+ u8 i = 0;
+
+ sCableCarPtr->unk_001d = sCableCarPtr->unk_001e = 0;
+ sCableCarPtr->unk_001f = sCableCarPtr->unk_0008;
+ sCableCarPtr->unk_0020 = sCableCarPtr->unk_0009;
+ sCableCarPtr->unk_0019 = (sCableCarPtr->unk_0019 + 2) % 32;
+ sCableCarPtr->unk_0018 += 2;
+ gUnknown_0203927D = sCableCarPtr->unk_001a;
+ for (i = 0; i < 9; i++)
+ {
+ gUnknown_0203927B = sCableCarPtr->unk_0019;
+ gUnknown_0203927C = (gUnknown_0203927D + i) % 32;
+ sCableCarPtr->unk_00fc[gUnknown_0203927C][gUnknown_0203927B] = sCableCarPtr->unk_0022[i][sCableCarPtr->unk_0018];
+ gUnknown_0203927B = (gUnknown_0203927B + 1) % 32;
+ sCableCarPtr->unk_00fc[gUnknown_0203927C][gUnknown_0203927B] = sCableCarPtr->unk_0022[i][sCableCarPtr->unk_0018 + 1];
+ }
+ gUnknown_0203927C = (sCableCarPtr->unk_001a + 23) % 32;
+ CableCarUtil_FillWrapped(sCableCarPtr->unk_00fc, 0, sCableCarPtr->unk_0019, gUnknown_0203927C, 2, 9);
+ if (sCableCarPtr->unk_0018 == 10)
+ {
+ sCableCarPtr->unk_001a = (sCableCarPtr->unk_001a + 3) % 32;
+ sCableCarPtr->unk_0018 = 0xfe;
+ sub_812446C();
+ }
+}
+
+static void sub_81248AC(u8 a0)
+{
+ switch (a0)
+ {
+ case 0:
+ default:
+ sCableCarPtr->unk_001b = 2;
+ sCableCarPtr->unk_0019 = 0;
+ sCableCarPtr->unk_001a = 20;
+ sCableCarPtr->unk_0018 = 12;
+ sub_812446C();
+ sub_81245F4();
+ break;
+ case 1:
+ sCableCarPtr->unk_001b = 2;
+ sCableCarPtr->unk_0019 = 28;
+ sCableCarPtr->unk_001a = 20;
+ sCableCarPtr->unk_0018 = 4;
+ sub_812446C();
+ sub_812476C();
+ break;
+ }
+ sCableCarPtr->unk_001c = 0;
+}
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;