summaryrefslogtreecommitdiff
path: root/src/battle
diff options
context:
space:
mode:
Diffstat (limited to 'src/battle')
-rw-r--r--src/battle/battle_2.c3264
-rw-r--r--src/battle/battle_4.c166
-rw-r--r--src/battle/battle_controller_opponent.c550
-rw-r--r--src/battle/battle_controller_player.c891
-rw-r--r--src/battle/battle_controller_safari.c6
-rw-r--r--src/battle/battle_records.c80
6 files changed, 1367 insertions, 3590 deletions
diff --git a/src/battle/battle_2.c b/src/battle/battle_2.c
index e37c33d0f..2bbae20dc 100644
--- a/src/battle/battle_2.c
+++ b/src/battle/battle_2.c
@@ -18,6 +18,7 @@
#include "event_data.h"
#include "evolution_scene.h"
#include "item.h"
+#include "item_menu.h"
#include "link.h"
#include "main.h"
#include "m4a.h"
@@ -26,6 +27,7 @@
#include "palette.h"
#include "party_menu.h"
#include "pokeball.h"
+#include "pokeblock.h"
#include "pokedex.h"
#include "pokemon.h"
#include "random.h"
@@ -33,6 +35,7 @@
#include "rom3.h"
#include "rom_8077ABC.h"
#include "rom_8094928.h"
+#include "safari_zone.h"
#include "sound.h"
#include "sprite.h"
#include "string_util.h"
@@ -1356,7 +1359,6 @@ void c2_081284E0(void)
}
}
-// A LOT of debug code!
#if DEBUG
extern u8 gUnknown_Debug_2023B62[];
@@ -1379,6 +1381,7 @@ void debug_nullsub_3(void);
void debug_sub_80125A0(void);
void debug_sub_80125E4(void);
void debug_sub_8012628(void);
+void debug_sub_8012658(void);
void debug_sub_8012688(void);
void debug_sub_8012878(void);
void debug_sub_8012D10(u8);
@@ -1386,7 +1389,6 @@ u32 debug_sub_8013294(u8, void *, u32);
void debug_sub_80132C8(u8, void *, u32);
extern s16 gUnknown_Debug_2023A76[][0x23];
-extern s16 gUnknown_Debug_2023A76_[][7][5];
extern s16 gUnknown_Debug_2023B02[][6][4];
extern u8 gUnknown_Debug_03004360;
extern struct Window gUnknown_Debug_03004370;
@@ -1498,31 +1500,6 @@ void debug_sub_8010A7C(u8 a, u8 b)
gBattleTextBuff1[i] = EOS;
}
-// gUnknown_Debug_2023A76_ seems like a 3D array, but this function refuses to match when I do that.
-#ifdef NONMATCHING
-void debug_sub_8010AAC(u8 a)
-{
- switch (gBaseStats[gUnknown_Debug_2023A76_[gUnknown_Debug_03004360][gUnknown_Debug_030043A4][0]].genderRatio)
- {
- case 0:
- gUnknown_Debug_2023A76_[gUnknown_Debug_03004360][gUnknown_Debug_030043A4][4] = 2;
- break;
- case 0xFE:
- gUnknown_Debug_2023A76_[gUnknown_Debug_03004360][gUnknown_Debug_030043A4][4] = 3;
- break;
- case 0xFF:
- gUnknown_Debug_2023A76_[gUnknown_Debug_03004360][gUnknown_Debug_030043A4][4] = 4;
- break;
- default:
- gUnknown_Debug_2023A76_[gUnknown_Debug_03004360][gUnknown_Debug_030043A4][4] &= 1;
- if (a != 0)
- gUnknown_Debug_2023A76_[gUnknown_Debug_03004360][gUnknown_Debug_030043A4][4] ^= 1;
- else
- gUnknown_Debug_2023A76_[gUnknown_Debug_03004360][gUnknown_Debug_030043A4][4] = 0;
- break;
- }
-}
-#else
void debug_sub_8010AAC(u8 a)
{
switch (gBaseStats[gUnknown_Debug_2023A76[gUnknown_Debug_03004360][gUnknown_Debug_030043A4 * 5]].genderRatio)
@@ -1545,19 +1522,19 @@ void debug_sub_8010AAC(u8 a)
break;
}
}
-#endif
+// gUnknown_Debug_2023A76 2D array
void debug_sub_8010B80(u8 a)
{
s8 r12 = 0;
- s8 r7 = gUnknown_Debug_2023A76_[gUnknown_Debug_03004360][gUnknown_Debug_030043A4][gUnknown_Debug_030043A0];
-
+ s8 r7 = gUnknown_Debug_2023A76[gUnknown_Debug_03004360][gUnknown_Debug_030043A0 + gUnknown_Debug_030043A4 * 5];
+
while (r7 >= 10)
{
r7 -= 10;
r12++;
}
-
+
if (a & 2)
{
if (a & 1)
@@ -1580,18 +1557,326 @@ void debug_sub_8010B80(u8 a)
if (r7 > 9)
r7 = 1;
}
- gUnknown_Debug_2023A76_[gUnknown_Debug_03004360 ^ 1][gUnknown_Debug_030043A4][gUnknown_Debug_030043A0]
- = gUnknown_Debug_2023A76_[gUnknown_Debug_03004360][gUnknown_Debug_030043A4][gUnknown_Debug_030043A0]
+ gUnknown_Debug_2023A76[gUnknown_Debug_03004360 ^ 1][gUnknown_Debug_030043A0 + gUnknown_Debug_030043A4 * 5]
+ = gUnknown_Debug_2023A76[gUnknown_Debug_03004360][gUnknown_Debug_030043A0 + gUnknown_Debug_030043A4 * 5]
= r12 * 10 + r7;
}
+// For some unexplainable reason, code in various functions will cause SetActionsAndBanksTurnOrder,
+// a completely separate and unrelated function, to use different registers. I have
+// absolutely no clue as to why this phenomenon occurs. For example,
+// I have to make debug_sub_8010CAC access gUnknown_Debug_2023A76 as a 3D array.
+// If I use a 2D array, SetActionsAndBanksTurnOrder will no longer match.
+#ifdef NONMATCHING
+void debug_sub_8010CAC(void)
+{
+ s32 r5;
+
+ if (gMain.heldKeysRaw == (L_BUTTON | SELECT_BUTTON))
+ DoSoftReset();
+ if (gMain.newKeysRaw == SELECT_BUTTON)
+ {
+ if (gUnknown_Debug_030043A4 < 6)
+ {
+ gUnknown_Debug_030043A8 = 0;
+ debug_sub_8012628();
+ SetMainCallback2(debug_sub_8011498);
+ }
+ if (gUnknown_Debug_030043A0 == 0 && gUnknown_Debug_030043A4 == 6)
+ {
+ gMain.savedCallback = debug_sub_80108B8;
+ CreateMon(
+ &gPlayerParty[0],
+ gUnknown_Debug_2023A76[0][0 * 5 + 0],
+ gUnknown_Debug_2023A76[0][0 * 5 + 1],
+ 32,
+ 0, 0, 0, 0);
+ for (r5 = 0; r5 < 4; r5++)
+ {
+ SetMonData(&gPlayerParty[0], MON_DATA_MOVE1 + r5, &gUnknown_Debug_2023B02[0][0][r5]);
+ SetMonData(&gPlayerParty[0], MON_DATA_PP1 + r5, &gBattleMoves[gUnknown_Debug_2023B02[0][0][r5]].pp);
+ }
+ switch (gUnknown_Debug_2023A76[0][6 * 5 + 0])
+ {
+ case 1:
+ gCB2_AfterEvolution = debug_sub_80108B8;
+ EvolutionScene(&gPlayerParty[0], gUnknown_Debug_2023A76[0][1 * 5 + 0], 1, 0);
+ break;
+ case 2:
+ debug_sub_8012688();
+ break;
+ }
+ }
+ if (gUnknown_Debug_030043A0 == 1 && gUnknown_Debug_030043A4 == 6)
+ {
+ // This is really weird
+ r5 = (gSaveBlock2.optionsBattleSceneOff | (gSaveBlock2.optionsSound << 1));
+ r5++;
+ if (r5 == 4)
+ r5 = 0;
+ gSaveBlock2.optionsBattleSceneOff = (r5 & 1);
+ gSaveBlock2.optionsSound = (r5 & 2) >> 1;
+ SetPokemonCryStereo(gSaveBlock2.optionsSound);
+ debug_nullsub_3();
+ }
+ }
+ if (gMain.newKeysRaw == START_BUTTON)
+ debug_sub_801174C();
+ if (gMain.newKeysRaw == DPAD_UP)
+ {
+ debug_sub_80125E4();
+ if (gUnknown_Debug_030043A4 != 0)
+ gUnknown_Debug_030043A4--;
+ else
+ gUnknown_Debug_030043A4 = 6;
+ debug_sub_8011E74();
+ debug_sub_80123D8(gUnknown_Debug_030043A4 * 5);
+ debug_sub_80125A0();
+ }
+ if (gMain.newKeysRaw == DPAD_DOWN)
+ {
+ debug_sub_80125E4();
+ if (gUnknown_Debug_030043A4 == 6)
+ gUnknown_Debug_030043A4 = 0;
+ else
+ gUnknown_Debug_030043A4++;
+ debug_sub_8011E74();
+ debug_sub_80123D8(gUnknown_Debug_030043A4 * 5);
+ debug_sub_80125A0();
+ }
+ if (gMain.newKeysRaw == DPAD_LEFT)
+ {
+ debug_sub_80125E4();
+ if (gUnknown_Debug_030043A0 != 0)
+ {
+ gUnknown_Debug_030043A0--;
+ }
+ else
+ {
+ if (gUnknown_Debug_03004360 != 0)
+ {
+ gUnknown_Debug_03004360 = 0;
+ gUnknown_Debug_030043A0 = 4;
+ gBattle_BG1_X = 0;
+ debug_sub_8011E5C();
+ debug_sub_8011E74();
+ debug_sub_80123D8(gUnknown_Debug_030043A4 * 5);
+ }
+ }
+ debug_sub_80125A0();
+ }
+ if (gMain.newKeysRaw == DPAD_RIGHT)
+ {
+ debug_sub_80125E4();
+ if (gUnknown_Debug_030043A0 != 4)
+ {
+ gUnknown_Debug_030043A0++;
+ }
+ else
+ {
+ if (gUnknown_Debug_03004360 == 0)
+ {
+ gUnknown_Debug_03004360 = 1;
+ gUnknown_Debug_030043A0 = 0;
+ gBattle_BG1_X = 0x100;
+ debug_sub_8011E5C();
+ debug_sub_8011E74();
+ debug_sub_80123D8(gUnknown_Debug_030043A4 * 5);
+ }
+ }
+ debug_sub_80125A0();
+ }
+ if (gMain.newAndRepeatedKeys & B_BUTTON)
+ {
+ switch (gUnknown_Debug_030043A0 + gUnknown_Debug_030043A4 * 5)
+ {
+ case 31:
+ debug_sub_8010818();
+ debug_sub_8011E5C();
+ debug_sub_8011E74();
+ debug_sub_8012540();
+ debug_nullsub_3();
+ debug_sub_80123D8(gUnknown_Debug_030043A4 * 5);
+ break;
+ case 32:
+ debug_sub_80132C8(31, gUnknown_Debug_2023A76, 0xEC);
+ debug_sub_8011E5C();
+ debug_sub_8011E74();
+ debug_sub_8012540();
+ debug_nullsub_3();
+ debug_sub_80123D8(gUnknown_Debug_030043A4 * 5);
+ break;
+ case 33:
+ debug_sub_8013294(31, gUnknown_Debug_2023A76, 0xEC);
+ break;
+ case 34:
+ if (gUnknown_Debug_2023A76[0][6 * 5 + 4] != 0)
+ {
+ gUnknown_Debug_2023A76[0][6 * 5 + 4]--;
+ gUnknown_Debug_2023A76[1][6 * 5 + 4]--;
+ }
+ else
+ {
+ gUnknown_Debug_2023A76[0][6 * 5 + 4] = 8;
+ gUnknown_Debug_2023A76[1][6 * 5 + 4] = 8;
+ }
+ debug_sub_8012540();
+ break;
+ case 30:
+ debug_sub_8010B80(0);
+ debug_sub_8011EA0(gUnknown_Debug_030043A0 + gUnknown_Debug_030043A4 * 5);
+ break;
+ default:
+ if (gUnknown_Debug_030043A0 == 4 && gUnknown_Debug_030043A4 < 6)
+ {
+ debug_sub_8010AAC(1);
+ }
+ else
+ {
+ gUnknown_Debug_2023A76[gUnknown_Debug_03004360][gUnknown_Debug_030043A0 + gUnknown_Debug_030043A4 * 5]--;
+ if (gUnknown_Debug_2023A76[gUnknown_Debug_03004360][gUnknown_Debug_030043A0 + gUnknown_Debug_030043A4 * 5] < gUnknown_Debug_821F424[gUnknown_Debug_030043A4 * 5 + gUnknown_Debug_030043A0][4])
+ gUnknown_Debug_2023A76[gUnknown_Debug_03004360][gUnknown_Debug_030043A0 + gUnknown_Debug_030043A4 * 5] = gUnknown_Debug_821F424[gUnknown_Debug_030043A4 * 5 + gUnknown_Debug_030043A0][3];
+ }
+ if (gUnknown_Debug_030043A0 == 0)
+ {
+ debug_sub_8010AAC(0);
+ debug_sub_8011EA0(gUnknown_Debug_030043A4 * 5 + 4);
+ }
+ debug_sub_8011EA0(gUnknown_Debug_030043A4 * 5 + gUnknown_Debug_030043A0);
+ debug_sub_80123D8(gUnknown_Debug_030043A4 * 5);
+ break;
+ }
+ }
+ if (gMain.newAndRepeatedKeys & A_BUTTON)
+ {
+ switch (gUnknown_Debug_030043A0 + gUnknown_Debug_030043A4 * 5)
+ {
+ case 31:
+ debug_sub_8010818();
+ debug_sub_8011E5C();
+ debug_sub_8011E74();
+ debug_sub_8012540();
+ debug_nullsub_3();
+ debug_sub_80123D8(gUnknown_Debug_030043A4 * 5);
+ break;
+ case 32:
+ debug_sub_80132C8(31, gUnknown_Debug_2023A76, 0xEC);
+ debug_sub_8011E5C();
+ debug_sub_8011E74();
+ debug_sub_8012540();
+ debug_nullsub_3();
+ debug_sub_80123D8(gUnknown_Debug_030043A4 * 5);
+ break;
+ case 33:
+ debug_sub_8013294(31, gUnknown_Debug_2023A76, 0xEC);
+ break;
+ case 34:
+ if (gUnknown_Debug_2023A76[0][6 * 5 + 4] < 8)
+ {
+ gUnknown_Debug_2023A76[0][6 * 5 + 4]++;
+ gUnknown_Debug_2023A76[1][6 * 5 + 4]++;
+ }
+ else
+ {
+ gUnknown_Debug_2023A76[0][6 * 5 + 4] = 0;
+ gUnknown_Debug_2023A76[1][6 * 5 + 4] = 0;
+ }
+ debug_sub_8012540();
+ break;
+ case 30:
+ debug_sub_8010B80(1);
+ debug_sub_8011EA0(gUnknown_Debug_030043A0 + gUnknown_Debug_030043A4 * 5);
+ break;
+ default:
+ if (gUnknown_Debug_030043A0 == 4 && gUnknown_Debug_030043A4 < 6)
+ {
+ debug_sub_8010AAC(1);
+ }
+ else
+ {
+ gUnknown_Debug_2023A76[gUnknown_Debug_03004360][gUnknown_Debug_030043A0 + gUnknown_Debug_030043A4 * 5]++;
+ if (gUnknown_Debug_2023A76[gUnknown_Debug_03004360][gUnknown_Debug_030043A4 * 5 + gUnknown_Debug_030043A0] > gUnknown_Debug_821F424[gUnknown_Debug_030043A4 * 5 + gUnknown_Debug_030043A0][3])
+ gUnknown_Debug_2023A76[gUnknown_Debug_03004360][gUnknown_Debug_030043A4 * 5 + gUnknown_Debug_030043A0] = gUnknown_Debug_821F424[gUnknown_Debug_030043A4 * 5 + gUnknown_Debug_030043A0][4];
+ }
+ if (gUnknown_Debug_030043A0 == 0)
+ {
+ debug_sub_8010AAC(0);
+ debug_sub_8011EA0(gUnknown_Debug_030043A4 * 5 + 4);
+ }
+ debug_sub_8011EA0(gUnknown_Debug_030043A0 + gUnknown_Debug_030043A4 * 5);
+ debug_sub_80123D8(gUnknown_Debug_030043A4 * 5);
+ break;
+ }
+ }
+ if (gMain.newAndRepeatedKeys & L_BUTTON)
+ {
+ if (gUnknown_Debug_030043A0 == 4 && gUnknown_Debug_030043A4 < 6)
+ {
+ debug_sub_8010AAC(1);
+ }
+ else
+ {
+ if (gUnknown_Debug_030043A4 * 5 + gUnknown_Debug_030043A0 == 30)
+ {
+ debug_sub_8010B80(2);
+ }
+ else
+ {
+ gUnknown_Debug_2023A76[gUnknown_Debug_03004360][gUnknown_Debug_030043A4 * 5 + gUnknown_Debug_030043A0] -= 10;
+ while (gUnknown_Debug_2023A76[gUnknown_Debug_03004360][gUnknown_Debug_030043A4 * 5 + gUnknown_Debug_030043A0] < gUnknown_Debug_821F424[gUnknown_Debug_030043A4 * 5 + gUnknown_Debug_030043A0][4])
+ gUnknown_Debug_2023A76[gUnknown_Debug_03004360][gUnknown_Debug_030043A4 * 5 + gUnknown_Debug_030043A0] += gUnknown_Debug_821F424[gUnknown_Debug_030043A4 * 5 + gUnknown_Debug_030043A0][3];
+ }
+ }
+ if (gUnknown_Debug_030043A0 == 0)
+ {
+ debug_sub_8010AAC(0);
+ debug_sub_8011EA0(gUnknown_Debug_030043A4 * 5 + 4);
+ }
+ debug_sub_8011EA0(gUnknown_Debug_030043A4 * 5 + gUnknown_Debug_030043A0);
+ debug_sub_80123D8(gUnknown_Debug_030043A4 * 5);
+ }
+ if (gMain.newAndRepeatedKeys & R_BUTTON)
+ {
+ if (gUnknown_Debug_030043A0 == 4 && gUnknown_Debug_030043A4 < 6)
+ {
+ debug_sub_8010AAC(1);
+ }
+ else
+ {
+ if (gUnknown_Debug_030043A4 * 5 + gUnknown_Debug_030043A0 == 30)
+ {
+ debug_sub_8010B80(3);
+ }
+ else
+ {
+ gUnknown_Debug_2023A76[gUnknown_Debug_03004360][gUnknown_Debug_030043A4 * 5 + gUnknown_Debug_030043A0] += 10;
+ while (gUnknown_Debug_2023A76[gUnknown_Debug_03004360][gUnknown_Debug_030043A4 * 5 + gUnknown_Debug_030043A0] > gUnknown_Debug_821F424[gUnknown_Debug_030043A4 * 5 + gUnknown_Debug_030043A0][3])
+ gUnknown_Debug_2023A76[gUnknown_Debug_03004360][gUnknown_Debug_030043A4 * 5 + gUnknown_Debug_030043A0] -= gUnknown_Debug_821F424[gUnknown_Debug_030043A4 * 5 + gUnknown_Debug_030043A0][3];
+ }
+ }
+ if (gUnknown_Debug_030043A0 == 0)
+ {
+ debug_sub_8010AAC(0);
+ debug_sub_8011EA0(gUnknown_Debug_030043A4 * 5 + 4);
+ }
+ debug_sub_8011EA0(gUnknown_Debug_030043A4 * 5 + gUnknown_Debug_030043A0);
+ debug_sub_80123D8(gUnknown_Debug_030043A4 * 5);
+ }
+ AnimateSprites();
+ BuildOamBuffer();
+}
+#else
+
+// 3D array
+extern s16 gUnknown_Debug_2023A76_[][7][5];
+
void debug_sub_8010CAC(void)
{
s32 r5;
- if (gMain.heldKeysRaw == 0x204)
+ if (gMain.heldKeysRaw == (L_BUTTON | SELECT_BUTTON))
DoSoftReset();
- if (gMain.newKeysRaw == 4)
+ if (gMain.newKeysRaw == SELECT_BUTTON)
{
if (gUnknown_Debug_030043A4 < 6)
{
@@ -1599,7 +1884,6 @@ void debug_sub_8010CAC(void)
debug_sub_8012628();
SetMainCallback2(debug_sub_8011498);
}
- //_546
if (gUnknown_Debug_030043A0 == 0 && gUnknown_Debug_030043A4 == 6)
{
gMain.savedCallback = debug_sub_80108B8;
@@ -1616,16 +1900,15 @@ void debug_sub_8010CAC(void)
}
switch (gUnknown_Debug_2023A76_[0][6][0])
{
- case 1: //_550
+ case 1:
gCB2_AfterEvolution = debug_sub_80108B8;
EvolutionScene(&gPlayerParty[0], gUnknown_Debug_2023A76_[0][1][0], 1, 0);
break;
- case 2: //_551
+ case 2:
debug_sub_8012688();
break;
}
}
- //_555
if (gUnknown_Debug_030043A0 == 1 && gUnknown_Debug_030043A4 == 6)
{
// This is really weird
@@ -1639,10 +1922,9 @@ void debug_sub_8010CAC(void)
debug_nullsub_3();
}
}
- //_559
- if (gMain.newKeysRaw == 8)
+ if (gMain.newKeysRaw == START_BUTTON)
debug_sub_801174C();
- if (gMain.newKeysRaw == 0x40)
+ if (gMain.newKeysRaw == DPAD_UP)
{
debug_sub_80125E4();
if (gUnknown_Debug_030043A4 != 0)
@@ -1653,8 +1935,7 @@ void debug_sub_8010CAC(void)
debug_sub_80123D8(gUnknown_Debug_030043A4 * 5);
debug_sub_80125A0();
}
- //_562
- if (gMain.newKeysRaw == 0x80)
+ if (gMain.newKeysRaw == DPAD_DOWN)
{
debug_sub_80125E4();
if (gUnknown_Debug_030043A4 == 6)
@@ -1665,8 +1946,7 @@ void debug_sub_8010CAC(void)
debug_sub_80123D8(gUnknown_Debug_030043A4 * 5);
debug_sub_80125A0();
}
- //_567
- if (gMain.newKeysRaw == 0x20)
+ if (gMain.newKeysRaw == DPAD_LEFT)
{
debug_sub_80125E4();
if (gUnknown_Debug_030043A0 != 0)
@@ -1685,11 +1965,9 @@ void debug_sub_8010CAC(void)
debug_sub_80123D8(gUnknown_Debug_030043A4 * 5);
}
}
- //_577
debug_sub_80125A0();
}
- //_572
- if (gMain.newKeysRaw == 0x10)
+ if (gMain.newKeysRaw == DPAD_RIGHT)
{
debug_sub_80125E4();
if (gUnknown_Debug_030043A0 != 4)
@@ -1710,7 +1988,6 @@ void debug_sub_8010CAC(void)
}
debug_sub_80125A0();
}
- //_578
if (gMain.newAndRepeatedKeys & B_BUTTON)
{
switch (gUnknown_Debug_030043A0 + gUnknown_Debug_030043A4 * 5)
@@ -1762,7 +2039,6 @@ void debug_sub_8010CAC(void)
if (gUnknown_Debug_2023A76[gUnknown_Debug_03004360][gUnknown_Debug_030043A4 * 5 + gUnknown_Debug_030043A0] < gUnknown_Debug_821F424[gUnknown_Debug_030043A4 * 5 + gUnknown_Debug_030043A0][4])
gUnknown_Debug_2023A76[gUnknown_Debug_03004360][gUnknown_Debug_030043A4 * 5 + gUnknown_Debug_030043A0] = gUnknown_Debug_821F424[gUnknown_Debug_030043A4 * 5 + gUnknown_Debug_030043A0][3];
}
- //_613
if (gUnknown_Debug_030043A0 == 0)
{
debug_sub_8010AAC(0);
@@ -1773,7 +2049,6 @@ void debug_sub_8010CAC(void)
break;
}
}
- //_607
if (gMain.newAndRepeatedKeys & A_BUTTON)
{
switch (gUnknown_Debug_030043A0 + gUnknown_Debug_030043A4 * 5)
@@ -1825,33 +2100,28 @@ void debug_sub_8010CAC(void)
if (gUnknown_Debug_2023A76[gUnknown_Debug_03004360][gUnknown_Debug_030043A4 * 5 + gUnknown_Debug_030043A0] > gUnknown_Debug_821F424[gUnknown_Debug_030043A4 * 5 + gUnknown_Debug_030043A0][3])
gUnknown_Debug_2023A76[gUnknown_Debug_03004360][gUnknown_Debug_030043A4 * 5 + gUnknown_Debug_030043A0] = gUnknown_Debug_821F424[gUnknown_Debug_030043A4 * 5 + gUnknown_Debug_030043A0][4];
}
- //_644
if (gUnknown_Debug_030043A0 == 0)
{
debug_sub_8010AAC(0);
debug_sub_8011EA0(gUnknown_Debug_030043A4 * 5 + 4);
}
- //_645
debug_sub_8011EA0(gUnknown_Debug_030043A0 + gUnknown_Debug_030043A4 * 5);
debug_sub_80123D8(gUnknown_Debug_030043A4 * 5);
break;
}
}
- //_638
- if (gMain.newAndRepeatedKeys & 0x200)
+ if (gMain.newAndRepeatedKeys & L_BUTTON)
{
if (gUnknown_Debug_030043A0 == 4 && gUnknown_Debug_030043A4 < 6)
{
debug_sub_8010AAC(1);
}
- //_648
else
{
if (gUnknown_Debug_030043A4 * 5 + gUnknown_Debug_030043A0 == 30)
{
debug_sub_8010B80(2);
}
- //_652
else
{
gUnknown_Debug_2023A76[gUnknown_Debug_03004360][gUnknown_Debug_030043A4 * 5 + gUnknown_Debug_030043A0] -= 10;
@@ -1859,31 +2129,26 @@ void debug_sub_8010CAC(void)
gUnknown_Debug_2023A76[gUnknown_Debug_03004360][gUnknown_Debug_030043A4 * 5 + gUnknown_Debug_030043A0] += gUnknown_Debug_821F424[gUnknown_Debug_030043A4 * 5 + gUnknown_Debug_030043A0][3];
}
}
- //_653
if (gUnknown_Debug_030043A0 == 0)
{
debug_sub_8010AAC(0);
debug_sub_8011EA0(gUnknown_Debug_030043A4 * 5 + 4);
}
- //_658
debug_sub_8011EA0(gUnknown_Debug_030043A4 * 5 + gUnknown_Debug_030043A0);
debug_sub_80123D8(gUnknown_Debug_030043A4 * 5);
}
- //_646
- if (gMain.newAndRepeatedKeys & 0x100)
+ if (gMain.newAndRepeatedKeys & R_BUTTON)
{
if (gUnknown_Debug_030043A0 == 4 && gUnknown_Debug_030043A4 < 6)
{
debug_sub_8010AAC(1);
}
- //_661
else
{
if (gUnknown_Debug_030043A4 * 5 + gUnknown_Debug_030043A0 == 30)
{
debug_sub_8010B80(3);
}
- //_665
else
{
gUnknown_Debug_2023A76[gUnknown_Debug_03004360][gUnknown_Debug_030043A4 * 5 + gUnknown_Debug_030043A0] += 10;
@@ -1891,1107 +2156,295 @@ void debug_sub_8010CAC(void)
gUnknown_Debug_2023A76[gUnknown_Debug_03004360][gUnknown_Debug_030043A4 * 5 + gUnknown_Debug_030043A0] -= gUnknown_Debug_821F424[gUnknown_Debug_030043A4 * 5 + gUnknown_Debug_030043A0][3];
}
}
- //_666
if (gUnknown_Debug_030043A0 == 0)
{
debug_sub_8010AAC(0);
debug_sub_8011EA0(gUnknown_Debug_030043A4 * 5 + 4);
}
- //_671
debug_sub_8011EA0(gUnknown_Debug_030043A4 * 5 + gUnknown_Debug_030043A0);
debug_sub_80123D8(gUnknown_Debug_030043A4 * 5);
}
- //_659
AnimateSprites();
BuildOamBuffer();
}
+#endif
-__attribute__((naked))
-void debug_sub_8011498()
-{
- asm(
- " push {r4, r5, r6, r7, lr}\n"
- " mov r7, sl\n"
- " mov r6, r9\n"
- " mov r5, r8\n"
- " push {r5, r6, r7}\n"
- " ldr r2, ._687 @ gUnknown_Debug_030043A0\n"
- " ldr r0, ._687 + 4 @ gUnknown_Debug_030043A4\n"
- " ldrb r1, [r0]\n"
- " lsl r0, r1, #0x2\n"
- " add r0, r0, r1\n"
- " ldrb r2, [r2]\n"
- " add r0, r0, r2\n"
- " lsl r0, r0, #0x18\n"
- " lsr r0, r0, #0x18\n"
- " mov r9, r0\n"
- " ldr r4, ._687 + 8 @ gMain\n"
- " ldrh r1, [r4, #0x28]\n"
- " mov r0, #0x81\n"
- " lsl r0, r0, #0x2\n"
- " cmp r1, r0\n"
- " bne ._674 @cond_branch\n"
- " bl DoSoftReset\n"
- "._674:\n"
- " ldrh r0, [r4, #0x2a]\n"
- " cmp r0, #0x4\n"
- " bne ._675 @cond_branch\n"
- " bl debug_sub_8012658\n"
- " ldr r0, ._687 + 12 @ debug_sub_8010CAC\n"
- " bl SetMainCallback2\n"
- "._675:\n"
- " ldrh r0, [r4, #0x2a]\n"
- " cmp r0, #0x8\n"
- " bne ._676 @cond_branch\n"
- " bl debug_sub_801174C\n"
- "._676:\n"
- " ldrh r0, [r4, #0x2a]\n"
- " cmp r0, #0x40\n"
- " beq ._677 @cond_branch\n"
- " cmp r0, #0x80\n"
- " bne ._678 @cond_branch\n"
- "._677:\n"
- " bl debug_sub_8012658\n"
- " ldr r0, ._687 + 16 @ gUnknown_Debug_030043A8\n"
- " ldrb r1, [r0]\n"
- " mov r2, #0x2\n"
- " eor r1, r1, r2\n"
- " strb r1, [r0]\n"
- " bl debug_sub_8012628\n"
- "._678:\n"
- " ldr r0, ._687 + 8 @ gMain\n"
- " ldrh r0, [r0, #0x2a]\n"
- " cmp r0, #0x20\n"
- " beq ._679 @cond_branch\n"
- " cmp r0, #0x10\n"
- " bne ._680 @cond_branch\n"
- "._679:\n"
- " bl debug_sub_8012658\n"
- " ldr r0, ._687 + 16 @ gUnknown_Debug_030043A8\n"
- " ldrb r1, [r0]\n"
- " mov r2, #0x1\n"
- " eor r1, r1, r2\n"
- " strb r1, [r0]\n"
- " bl debug_sub_8012628\n"
- "._680:\n"
- " ldr r0, ._687 + 8 @ gMain\n"
- " ldrh r1, [r0, #0x30]\n"
- " mov r0, #0x2\n"
- " and r0, r0, r1\n"
- " cmp r0, #0\n"
- " beq ._681 @cond_branch\n"
- " ldr r0, ._687 + 20 @ gUnknown_Debug_2023B02\n"
- " mov r8, r0\n"
- " ldr r6, ._687 + 16 @ gUnknown_Debug_030043A8\n"
- " ldrb r4, [r6]\n"
- " lsl r4, r4, #0x1\n"
- " mov r0, r9\n"
- " mov r1, #0x5\n"
- " bl __udivsi3\n"
- " lsl r0, r0, #0x18\n"
- " lsr r0, r0, #0x15\n"
- " add r4, r4, r0\n"
- " ldr r5, ._687 + 24 @ gUnknown_Debug_03004360\n"
- " ldrb r2, [r5]\n"
- " lsl r1, r2, #0x1\n"
- " add r1, r1, r2\n"
- " lsl r1, r1, #0x4\n"
- " add r4, r4, r1\n"
- " add r4, r4, r8\n"
- " ldrh r1, [r4]\n"
- " sub r1, r1, #0x1\n"
- " strh r1, [r4]\n"
- " ldrb r3, [r6]\n"
- " lsl r1, r3, #0x1\n"
- " add r1, r1, r0\n"
- " ldrb r2, [r5]\n"
- " lsl r0, r2, #0x1\n"
- " add r0, r0, r2\n"
- " lsl r0, r0, #0x4\n"
- " add r1, r1, r0\n"
- " mov r0, r8\n"
- " add r4, r1, r0\n"
- " mov r0, #0x0\n"
- " ldsh r1, [r4, r0]\n"
- " ldr r5, ._687 + 28 @ gUnknown_Debug_821F564\n"
- " lsl r0, r3, #0x2\n"
- " add r0, r0, r3\n"
- " lsl r2, r0, #0x1\n"
- " add r0, r5, #0\n"
- " add r0, r0, #0x8\n"
- " add r0, r2, r0\n"
- " ldrh r0, [r0]\n"
- " cmp r1, r0\n"
- " bge ._682 @cond_branch\n"
- " add r0, r5, #6\n"
- " add r0, r2, r0\n"
- " ldrh r0, [r0]\n"
- " strh r0, [r4]\n"
- "._682:\n"
- " bl debug_sub_8012294\n"
- "._681:\n"
- " ldr r0, ._687 + 8 @ gMain\n"
- " ldrh r1, [r0, #0x30]\n"
- " mov r0, #0x1\n"
- " and r0, r0, r1\n"
- " cmp r0, #0\n"
- " beq ._683 @cond_branch\n"
- " ldr r1, ._687 + 20 @ gUnknown_Debug_2023B02\n"
- " mov r8, r1\n"
- " ldr r6, ._687 + 16 @ gUnknown_Debug_030043A8\n"
- " ldrb r4, [r6]\n"
- " lsl r4, r4, #0x1\n"
- " mov r0, r9\n"
- " mov r1, #0x5\n"
- " bl __udivsi3\n"
- " lsl r0, r0, #0x18\n"
- " lsr r0, r0, #0x15\n"
- " add r4, r4, r0\n"
- " ldr r5, ._687 + 24 @ gUnknown_Debug_03004360\n"
- " ldrb r2, [r5]\n"
- " lsl r1, r2, #0x1\n"
- " add r1, r1, r2\n"
- " lsl r1, r1, #0x4\n"
- " add r4, r4, r1\n"
- " add r4, r4, r8\n"
- " ldrh r1, [r4]\n"
- " add r1, r1, #0x1\n"
- " strh r1, [r4]\n"
- " ldrb r3, [r6]\n"
- " lsl r1, r3, #0x1\n"
- " add r1, r1, r0\n"
- " ldrb r2, [r5]\n"
- " lsl r0, r2, #0x1\n"
- " add r0, r0, r2\n"
- " lsl r0, r0, #0x4\n"
- " add r1, r1, r0\n"
- " mov r0, r8\n"
- " add r4, r1, r0\n"
- " mov r0, #0x0\n"
- " ldsh r1, [r4, r0]\n"
- " ldr r5, ._687 + 28 @ gUnknown_Debug_821F564\n"
- " lsl r0, r3, #0x2\n"
- " add r0, r0, r3\n"
- " lsl r2, r0, #0x1\n"
- " add r0, r5, #6\n"
- " add r0, r2, r0\n"
- " ldrh r0, [r0]\n"
- " cmp r1, r0\n"
- " ble ._684 @cond_branch\n"
- " add r0, r5, #0\n"
- " add r0, r0, #0x8\n"
- " add r0, r2, r0\n"
- " ldrh r0, [r0]\n"
- " strh r0, [r4]\n"
- "._684:\n"
- " bl debug_sub_8012294\n"
- "._683:\n"
- " ldr r0, ._687 + 8 @ gMain\n"
- " ldrh r1, [r0, #0x30]\n"
- " mov r0, #0x80\n"
- " lsl r0, r0, #0x2\n"
- " and r0, r0, r1\n"
- " cmp r0, #0\n"
- " beq ._685 @cond_branch\n"
- " ldr r6, ._687 + 20 @ gUnknown_Debug_2023B02\n"
- " ldr r5, ._687 + 16 @ gUnknown_Debug_030043A8\n"
- " ldrb r4, [r5]\n"
- " lsl r4, r4, #0x1\n"
- " mov r0, r9\n"
- " mov r1, #0x5\n"
- " bl __udivsi3\n"
- " lsl r0, r0, #0x18\n"
- " lsr r0, r0, #0x15\n"
- " add r4, r4, r0\n"
- " ldr r2, ._687 + 24 @ gUnknown_Debug_03004360\n"
- " ldrb r1, [r2]\n"
- " lsl r0, r1, #0x1\n"
- " add r0, r0, r1\n"
- " lsl r0, r0, #0x4\n"
- " add r4, r4, r0\n"
- " add r4, r4, r6\n"
- " ldrh r0, [r4]\n"
- " sub r0, r0, #0xa\n"
- " strh r0, [r4]\n"
- " mov sl, r5\n"
- " mov r8, r6\n"
- " add r7, r2, #0\n"
- " ldr r6, ._687 + 28 @ gUnknown_Debug_821F564\n"
- " b ._686\n"
- "._688:\n"
- " .align 2, 0\n"
- "._687:\n"
- " .word gUnknown_Debug_030043A0\n"
- " .word gUnknown_Debug_030043A4\n"
- " .word gMain\n"
- " .word debug_sub_8010CAC+1\n"
- " .word gUnknown_Debug_030043A8\n"
- " .word gUnknown_Debug_2023B02\n"
- " .word gUnknown_Debug_03004360\n"
- " .word gUnknown_Debug_821F564\n"
- "._689:\n"
- " add r0, r6, #6\n"
- " add r0, r2, r0\n"
- " ldrh r0, [r0]\n"
- " ldrh r1, [r4]\n"
- " add r0, r0, r1\n"
- " strh r0, [r4]\n"
- "._686:\n"
- " mov r0, sl\n"
- " ldrb r5, [r0]\n"
- " lsl r4, r5, #0x1\n"
- " mov r0, r9\n"
- " mov r1, #0x5\n"
- " bl __udivsi3\n"
- " lsl r0, r0, #0x18\n"
- " lsr r0, r0, #0x15\n"
- " add r4, r4, r0\n"
- " ldrb r1, [r7]\n"
- " lsl r0, r1, #0x1\n"
- " add r0, r0, r1\n"
- " lsl r0, r0, #0x4\n"
- " add r4, r4, r0\n"
- " add r4, r4, r8\n"
- " mov r0, #0x0\n"
- " ldsh r1, [r4, r0]\n"
- " lsl r0, r5, #0x2\n"
- " add r0, r0, r5\n"
- " lsl r2, r0, #0x1\n"
- " add r0, r6, #0\n"
- " add r0, r0, #0x8\n"
- " add r0, r2, r0\n"
- " ldrh r0, [r0]\n"
- " cmp r1, r0\n"
- " blt ._689 @cond_branch\n"
- " bl debug_sub_8012294\n"
- "._685:\n"
- " ldr r0, ._692 @ gMain\n"
- " ldrh r1, [r0, #0x30]\n"
- " mov r0, #0x80\n"
- " lsl r0, r0, #0x1\n"
- " and r0, r0, r1\n"
- " cmp r0, #0\n"
- " beq ._690 @cond_branch\n"
- " ldr r6, ._692 + 4 @ gUnknown_Debug_2023B02\n"
- " ldr r5, ._692 + 8 @ gUnknown_Debug_030043A8\n"
- " ldrb r4, [r5]\n"
- " lsl r4, r4, #0x1\n"
- " mov r0, r9\n"
- " mov r1, #0x5\n"
- " bl __udivsi3\n"
- " lsl r0, r0, #0x18\n"
- " lsr r0, r0, #0x15\n"
- " add r4, r4, r0\n"
- " ldr r2, ._692 + 12 @ gUnknown_Debug_03004360\n"
- " ldrb r1, [r2]\n"
- " lsl r0, r1, #0x1\n"
- " add r0, r0, r1\n"
- " lsl r0, r0, #0x4\n"
- " add r4, r4, r0\n"
- " add r4, r4, r6\n"
- " ldrh r0, [r4]\n"
- " add r0, r0, #0xa\n"
- " strh r0, [r4]\n"
- " mov sl, r5\n"
- " mov r8, r6\n"
- " add r7, r2, #0\n"
- " ldr r6, ._692 + 16 @ gUnknown_Debug_821F564\n"
- " b ._691\n"
- "._693:\n"
- " .align 2, 0\n"
- "._692:\n"
- " .word gMain\n"
- " .word gUnknown_Debug_2023B02\n"
- " .word gUnknown_Debug_030043A8\n"
- " .word gUnknown_Debug_03004360\n"
- " .word gUnknown_Debug_821F564\n"
- "._694:\n"
- " ldrh r0, [r4]\n"
- " sub r0, r0, r1\n"
- " strh r0, [r4]\n"
- "._691:\n"
- " mov r1, sl\n"
- " ldrb r5, [r1]\n"
- " lsl r4, r5, #0x1\n"
- " mov r0, r9\n"
- " mov r1, #0x5\n"
- " bl __udivsi3\n"
- " lsl r0, r0, #0x18\n"
- " lsr r0, r0, #0x15\n"
- " add r4, r4, r0\n"
- " ldrb r1, [r7]\n"
- " lsl r0, r1, #0x1\n"
- " add r0, r0, r1\n"
- " lsl r0, r0, #0x4\n"
- " add r4, r4, r0\n"
- " add r4, r4, r8\n"
- " mov r0, #0x0\n"
- " ldsh r2, [r4, r0]\n"
- " lsl r0, r5, #0x2\n"
- " add r0, r0, r5\n"
- " lsl r0, r0, #0x1\n"
- " add r1, r6, #6\n"
- " add r0, r0, r1\n"
- " ldrh r1, [r0]\n"
- " cmp r2, r1\n"
- " bgt ._694 @cond_branch\n"
- " bl debug_sub_8012294\n"
- "._690:\n"
- " bl AnimateSprites\n"
- " bl BuildOamBuffer\n"
- " pop {r3, r4, r5}\n"
- " mov r8, r3\n"
- " mov r9, r4\n"
- " mov sl, r5\n"
- " pop {r4, r5, r6, r7}\n"
- " pop {r0}\n"
- " bx r0\n"
- "\n"
- );
+extern u16 gUnknown_Debug_821F564[][5];
+
+void debug_sub_8011498(void)
+{
+ u8 r9 = gUnknown_Debug_030043A0 + gUnknown_Debug_030043A4 * 5;
+
+ if (gMain.heldKeysRaw == (L_BUTTON | SELECT_BUTTON))
+ DoSoftReset();
+ if (gMain.newKeysRaw == SELECT_BUTTON)
+ {
+ debug_sub_8012658();
+ SetMainCallback2(debug_sub_8010CAC);
+ }
+ if (gMain.newKeysRaw == START_BUTTON)
+ debug_sub_801174C();
+ if (gMain.newKeysRaw == DPAD_UP || gMain.newKeysRaw == DPAD_DOWN)
+ {
+ debug_sub_8012658();
+ gUnknown_Debug_030043A8 ^= 2;
+ debug_sub_8012628();
+ }
+ if (gMain.newKeysRaw == DPAD_LEFT || gMain.newKeysRaw == DPAD_RIGHT)
+ {
+ debug_sub_8012658();
+ gUnknown_Debug_030043A8 ^= 1;
+ debug_sub_8012628();
+ }
+ if (gMain.newAndRepeatedKeys & B_BUTTON)
+ {
+ gUnknown_Debug_2023B02[gUnknown_Debug_03004360][r9 / 5][gUnknown_Debug_030043A8]--;
+ if (gUnknown_Debug_2023B02[gUnknown_Debug_03004360][r9 / 5][gUnknown_Debug_030043A8] < gUnknown_Debug_821F564[gUnknown_Debug_030043A8][4])
+ gUnknown_Debug_2023B02[gUnknown_Debug_03004360][r9 / 5][gUnknown_Debug_030043A8] = gUnknown_Debug_821F564[gUnknown_Debug_030043A8][3];
+ debug_sub_8012294();
+ }
+ if (gMain.newAndRepeatedKeys & A_BUTTON)
+ {
+ gUnknown_Debug_2023B02[gUnknown_Debug_03004360][r9 / 5][gUnknown_Debug_030043A8]++;
+ if (gUnknown_Debug_2023B02[gUnknown_Debug_03004360][r9 / 5][gUnknown_Debug_030043A8] > gUnknown_Debug_821F564[gUnknown_Debug_030043A8][3])
+ gUnknown_Debug_2023B02[gUnknown_Debug_03004360][r9 / 5][gUnknown_Debug_030043A8] = gUnknown_Debug_821F564[gUnknown_Debug_030043A8][4];
+ debug_sub_8012294();
+ }
+ if (gMain.newAndRepeatedKeys & L_BUTTON)
+ {
+ gUnknown_Debug_2023B02[gUnknown_Debug_03004360][r9 / 5][gUnknown_Debug_030043A8] -= 10;
+ while (gUnknown_Debug_2023B02[gUnknown_Debug_03004360][r9 / 5][gUnknown_Debug_030043A8] < gUnknown_Debug_821F564[gUnknown_Debug_030043A8][4])
+ gUnknown_Debug_2023B02[gUnknown_Debug_03004360][r9 / 5][gUnknown_Debug_030043A8] += gUnknown_Debug_821F564[gUnknown_Debug_030043A8][3];
+ debug_sub_8012294();
+ }
+ if (gMain.newAndRepeatedKeys & R_BUTTON)
+ {
+ gUnknown_Debug_2023B02[gUnknown_Debug_03004360][r9 / 5][gUnknown_Debug_030043A8] += 10;
+ while (gUnknown_Debug_2023B02[gUnknown_Debug_03004360][r9 / 5][gUnknown_Debug_030043A8] > gUnknown_Debug_821F564[gUnknown_Debug_030043A8][3])
+ gUnknown_Debug_2023B02[gUnknown_Debug_03004360][r9 / 5][gUnknown_Debug_030043A8] -= gUnknown_Debug_821F564[gUnknown_Debug_030043A8][3];
+ debug_sub_8012294();
+ }
+ AnimateSprites();
+ BuildOamBuffer();
}
-__attribute__((naked))
-void debug_sub_801174C()
-{
- asm(
- " push {r4, r5, r6, r7, lr}\n"
- " mov r7, sl\n"
- " mov r6, r9\n"
- " mov r5, r8\n"
- " push {r5, r6, r7}\n"
- " add sp, sp, #0xffffffe8\n"
- " mov r0, #0x0\n"
- " mov r9, r0\n"
- " ldr r1, ._704 @ gUnknown_020297ED\n"
- " mov r0, #0x1\n"
- " strb r0, [r1]\n"
- " bl Random\n"
- " add r4, r0, #0\n"
- " lsl r4, r4, #0x10\n"
- " lsr r4, r4, #0x10\n"
- " mov r0, #0x3\n"
- " and r4, r4, r0\n"
- " lsl r4, r4, #0x18\n"
- " lsr r6, r4, #0x18\n"
- " ldr r5, ._704 + 4 @ gSaveBlock2\n"
- " lsl r1, r6, #0x1\n"
- " add r1, r1, r6\n"
- " lsl r1, r1, #0x1\n"
- " ldr r0, ._704 + 8 @ str_821F631\n"
- " add r1, r1, r0\n"
- " add r0, r5, #0\n"
- " bl StringCopy\n"
- " lsr r4, r4, #0x19\n"
- " strb r4, [r5, #0x8]\n"
- " bl ZeroPlayerPartyMons\n"
- " bl ZeroEnemyPartyMons\n"
- " ldr r0, ._704 + 12 @ gUnknown_Debug_2023A76\n"
- " mov r1, #0x3c\n"
- " ldsh r7, [r0, r1]\n"
- " mov r2, r9\n"
- " str r2, [sp, #0xc]\n"
- " cmp r7, #0x9\n"
- " ble ._695 @cond_branch\n"
- " mov r0, #0x0\n"
- "._696:\n"
- " sub r7, r7, #0xa\n"
- " add r0, r0, #0x1\n"
- " cmp r7, #0x9\n"
- " bgt ._696 @cond_branch\n"
- " str r0, [sp, #0xc]\n"
- "._695:\n"
- " ldr r2, ._704 + 16 @ gBattleTypeFlags\n"
- " ldr r1, ._704 + 20 @ gUnknown_Debug_821F598\n"
- " sub r0, r7, #1\n"
- " lsl r0, r0, #0x1\n"
- " add r0, r0, r1\n"
- " ldrh r3, [r0]\n"
- " strh r3, [r2]\n"
- " ldr r1, ._704 + 24 @ gUnknown_02023A14_50\n"
- " mov r0, #0x8\n"
- " strb r0, [r1]\n"
- " ldr r1, ._704 + 28 @ gBattleTerrain\n"
- " add r0, sp, #0xc\n"
- " ldrb r0, [r0]\n"
- " strb r0, [r1]\n"
- " mov r0, #0x80\n"
- " and r0, r0, r3\n"
- " cmp r0, #0\n"
- " beq ._697 @cond_branch\n"
- " bl EnterSafariMode\n"
- "._697:\n"
- " ldr r5, ._704 + 12 @ gUnknown_Debug_2023A76\n"
- " ldrh r0, [r5, #0x3c]\n"
- " sub r0, r0, #0x2\n"
- " lsl r0, r0, #0x10\n"
- " lsr r0, r0, #0x10\n"
- " cmp r0, #0x2\n"
- " bhi ._698 @cond_branch\n"
- " ldr r4, ._704 + 32 @ gTrainerBattleOpponent\n"
- " bl Random\n"
- " mov r1, #0x7\n"
- " and r1, r1, r0\n"
- " add r1, r1, #0x1\n"
- " strh r1, [r4]\n"
- "._698:\n"
- " ldr r1, ._704 + 36 @ gPlayerPartyCount\n"
- " mov r0, #0x0\n"
- " strb r0, [r1]\n"
- " mov r7, #0x0\n"
- "._745:\n"
- " lsl r0, r7, #0x1\n"
- " ldr r3, ._704 + 12 @ gUnknown_Debug_2023A76\n"
- " add r1, r0, r3\n"
- " mov r2, #0x0\n"
- " ldsh r1, [r1, r2]\n"
- " add r2, r3, #0\n"
- " mov r8, r0\n"
- " add r3, r7, #5\n"
- " mov sl, r3\n"
- " cmp r1, #0\n"
- " beq ._699 @cond_branch\n"
- " add r0, r7, #4\n"
- " lsl r0, r0, #0x1\n"
- " add r1, r2, #0\n"
- " add r0, r0, r1\n"
- " mov r3, #0x0\n"
- " ldsh r0, [r0, r3]\n"
- " cmp r0, #0x1\n"
- " beq ._707 @cond_branch\n"
- " cmp r0, #0x1\n"
- " bgt ._701 @cond_branch\n"
- " cmp r0, #0\n"
- " beq ._706 @cond_branch\n"
- " b ._708\n"
- "._705:\n"
- " .align 2, 0\n"
- "._704:\n"
- " .word gUnknown_020297ED\n"
- " .word gSaveBlock2\n"
- " .word str_821F631\n"
- " .word gUnknown_Debug_2023A76\n"
- " .word gBattleTypeFlags\n"
- " .word gUnknown_Debug_821F598\n"
- " .word gUnknown_02023A14_50\n"
- " .word gBattleTerrain\n"
- " .word gTrainerBattleOpponent\n"
- " .word gPlayerPartyCount\n"
- "._701:\n"
- " cmp r0, #0x2\n"
- " beq ._706 @cond_branch\n"
- " cmp r0, #0x3\n"
- " beq ._707 @cond_branch\n"
- " b ._708\n"
- "._706:\n"
- " mov r6, #0x0\n"
- " b ._710\n"
- "._707:\n"
- " mov r6, #0xfe\n"
- " b ._710\n"
- "._708:\n"
- " mov r6, #0xff\n"
- "._710:\n"
- " mov r1, r8\n"
- " add r0, r1, r2\n"
- " mov r3, #0x0\n"
- " ldsh r0, [r0, r3]\n"
- " add r1, r7, #5\n"
- " mov sl, r1\n"
- " cmp r0, #0xc9\n"
- " bne ._712 @cond_branch\n"
- " cmp r1, #0x1d\n"
- " bgt ._712 @cond_branch\n"
- " add r0, r7, #7\n"
- " lsl r0, r0, #0x1\n"
- " add r0, r0, r2\n"
- " ldrb r0, [r0]\n"
- " mov r9, r0\n"
- " b ._713\n"
- "._712:\n"
- " mov r2, #0x0\n"
- " mov r9, r2\n"
- "._713:\n"
- " add r0, r7, #0\n"
- " mov r1, #0x5\n"
- " bl __divsi3\n"
- " mov r3, #0x64\n"
- " mul r0, r0, r3\n"
- " ldr r1, ._719 @ gEnemyParty\n"
- " add r0, r0, r1\n"
- " ldr r1, ._719 + 4 @ gUnknown_Debug_2023A76\n"
- " add r1, r1, r8\n"
- " ldrh r1, [r1]\n"
- " add r2, r7, #1\n"
- " lsl r2, r2, #0x1\n"
- " ldr r3, ._719 + 4 @ gUnknown_Debug_2023A76\n"
- " add r2, r2, r3\n"
- " ldrb r2, [r2]\n"
- " str r6, [sp]\n"
- " mov r3, #0x0\n"
- " str r3, [sp, #0x4]\n"
- " mov r3, r9\n"
- " str r3, [sp, #0x8]\n"
- " mov r3, #0x0\n"
- " bl CreateMonWithGenderNatureLetter\n"
- "._699:\n"
- " add r0, r7, #0\n"
- " mov r1, #0x5\n"
- " bl __divsi3\n"
- " mov r2, #0x64\n"
- " add r1, r0, #0\n"
- " mul r1, r1, r2\n"
- " ldr r0, ._719 @ gEnemyParty\n"
- " add r5, r1, r0\n"
- " ldr r4, ._719 + 8 @ gUnknown_Debug_2023A7A\n"
- " mov r3, r8\n"
- " add r6, r3, r4\n"
- " add r0, r5, #0\n"
- " mov r1, #0xc\n"
- " add r2, r6, #0\n"
- " bl SetMonData\n"
- " sub r4, r4, #0x4\n"
- " add r1, r7, #2\n"
- " lsl r0, r1, #0x1\n"
- " add r0, r0, r4\n"
- " ldrh r0, [r0]\n"
- " sub r0, r0, #0x1\n"
- " lsl r0, r0, #0x10\n"
- " lsr r0, r0, #0x10\n"
- " str r1, [sp, #0x10]\n"
- " cmp r0, #0xb\n"
- " bhi ._714 @cond_branch\n"
- " add r0, r5, #0\n"
- " mov r1, #0x26\n"
- " add r2, r6, #0\n"
- " bl SetMonData\n"
- "._714:\n"
- " add r1, r7, #3\n"
- " lsl r0, r1, #0x1\n"
- " add r0, r0, r4\n"
- " mov r3, #0x0\n"
- " ldsh r2, [r0, r3]\n"
- " str r1, [sp, #0x14]\n"
- " cmp r2, #0\n"
- " beq ._716 @cond_branch\n"
- " cmp r2, #0x3\n"
- " beq ._716 @cond_branch\n"
- " cmp r2, #0x2\n"
- " bgt ._717 @cond_branch\n"
- " mov r1, #0x0\n"
- " ldsh r0, [r0, r1]\n"
- " sub r0, r0, #0x1\n"
- " b ._718\n"
- "._720:\n"
- " .align 2, 0\n"
- "._719:\n"
- " .word gEnemyParty\n"
- " .word gUnknown_Debug_2023A76\n"
- " .word gUnknown_Debug_2023A7A\n"
- "._717:\n"
- " mov r2, #0x0\n"
- " ldsh r0, [r0, r2]\n"
- " sub r0, r0, #0x4\n"
- "._718:\n"
- " str r0, [sp, #0xc]\n"
- " add r0, r7, #0\n"
- " mov r1, #0x5\n"
- " bl __divsi3\n"
- " mov r3, #0x64\n"
- " mul r0, r0, r3\n"
- " ldr r1, ._726 @ gEnemyParty\n"
- " add r0, r0, r1\n"
- " mov r1, #0x2e\n"
- " add r2, sp, #0xc\n"
- " bl SetMonData\n"
- "._716:\n"
- " ldr r1, ._726 + 4 @ gUnknown_Debug_2023A76\n"
- " add r1, r1, #0x46\n"
- " mov r2, r8\n"
- " add r0, r2, r1\n"
- " mov r3, #0x0\n"
- " ldsh r0, [r0, r3]\n"
- " ldr r2, ._726 + 4 @ gUnknown_Debug_2023A76\n"
- " cmp r0, #0\n"
- " beq ._721 @cond_branch\n"
- " add r0, r7, #4\n"
- " lsl r0, r0, #0x1\n"
- " add r0, r0, r1\n"
- " mov r1, #0x0\n"
- " ldsh r0, [r0, r1]\n"
- " cmp r0, #0x1\n"
- " beq ._729 @cond_branch\n"
- " cmp r0, #0x1\n"
- " bgt ._723 @cond_branch\n"
- " cmp r0, #0\n"
- " beq ._728 @cond_branch\n"
- " b ._730\n"
- "._727:\n"
- " .align 2, 0\n"
- "._726:\n"
- " .word gEnemyParty\n"
- " .word gUnknown_Debug_2023A76\n"
- "._723:\n"
- " cmp r0, #0x2\n"
- " beq ._728 @cond_branch\n"
- " cmp r0, #0x3\n"
- " beq ._729 @cond_branch\n"
- " b ._730\n"
- "._728:\n"
- " mov r6, #0x0\n"
- " b ._732\n"
- "._729:\n"
- " mov r6, #0xfe\n"
- " b ._732\n"
- "._730:\n"
- " mov r6, #0xff\n"
- "._732:\n"
- " add r1, r2, #0\n"
- " add r1, r1, #0x46\n"
- " mov r2, r8\n"
- " add r0, r2, r1\n"
- " mov r3, #0x0\n"
- " ldsh r0, [r0, r3]\n"
- " cmp r0, #0xc9\n"
- " bne ._734 @cond_branch\n"
- " mov r0, sl\n"
- " cmp r0, #0x1d\n"
- " bgt ._734 @cond_branch\n"
- " add r0, r7, #7\n"
- " lsl r0, r0, #0x1\n"
- " add r0, r0, r1\n"
- " ldrb r0, [r0]\n"
- " mov r9, r0\n"
- " b ._735\n"
- "._734:\n"
- " mov r1, #0x0\n"
- " mov r9, r1\n"
- "._735:\n"
- " add r0, r7, #0\n"
- " mov r1, #0x5\n"
- " bl __divsi3\n"
- " mov r2, #0x64\n"
- " mul r0, r0, r2\n"
- " ldr r1, ._741 @ gPlayerParty\n"
- " add r0, r0, r1\n"
- " ldr r1, ._741 + 4 @ gUnknown_Debug_2023ABC\n"
- " add r1, r1, r8\n"
- " ldrh r1, [r1]\n"
- " add r2, r7, #1\n"
- " lsl r2, r2, #0x1\n"
- " ldr r3, ._741 + 4 @ gUnknown_Debug_2023ABC\n"
- " add r2, r2, r3\n"
- " ldrb r2, [r2]\n"
- " str r6, [sp]\n"
- " mov r3, #0x0\n"
- " str r3, [sp, #0x4]\n"
- " mov r3, r9\n"
- " str r3, [sp, #0x8]\n"
- " mov r3, #0x0\n"
- " bl CreateMonWithGenderNatureLetter\n"
- " ldr r1, ._741 + 8 @ gPlayerPartyCount\n"
- " ldrb r0, [r1]\n"
- " add r0, r0, #0x1\n"
- " strb r0, [r1]\n"
- "._721:\n"
- " add r0, r7, #0\n"
- " mov r1, #0x5\n"
- " bl __divsi3\n"
- " mov r2, #0x64\n"
- " add r1, r0, #0\n"
- " mul r1, r1, r2\n"
- " ldr r0, ._741 @ gPlayerParty\n"
- " add r4, r1, r0\n"
- " ldr r0, ._741 + 12 @ gUnknown_Debug_2023AC0\n"
- " mov r3, r8\n"
- " add r5, r3, r0\n"
- " add r0, r4, #0\n"
- " mov r1, #0xc\n"
- " add r2, r5, #0\n"
- " bl SetMonData\n"
- " ldr r1, [sp, #0x10]\n"
- " lsl r0, r1, #0x1\n"
- " ldr r2, ._741 + 16 @ gUnknown_Debug_2023A76\n"
- " add r0, r0, r2\n"
- " ldrh r0, [r0]\n"
- " sub r0, r0, #0x1\n"
- " lsl r0, r0, #0x10\n"
- " lsr r0, r0, #0x10\n"
- " cmp r0, #0xb\n"
- " bhi ._736 @cond_branch\n"
- " add r0, r4, #0\n"
- " mov r1, #0x26\n"
- " add r2, r5, #0\n"
- " bl SetMonData\n"
- "._736:\n"
- " ldr r3, [sp, #0x14]\n"
- " lsl r0, r3, #0x1\n"
- " ldr r1, ._741 + 4 @ gUnknown_Debug_2023ABC\n"
- " add r0, r0, r1\n"
- " mov r2, #0x0\n"
- " ldsh r1, [r0, r2]\n"
- " cmp r1, #0\n"
- " beq ._738 @cond_branch\n"
- " cmp r1, #0x3\n"
- " beq ._738 @cond_branch\n"
- " cmp r1, #0x2\n"
- " bgt ._739 @cond_branch\n"
- " add r0, r1, #0\n"
- " sub r0, r0, #0x1\n"
- " b ._740\n"
- "._742:\n"
- " .align 2, 0\n"
- "._741:\n"
- " .word gPlayerParty\n"
- " .word gUnknown_Debug_2023ABC\n"
- " .word gPlayerPartyCount\n"
- " .word gUnknown_Debug_2023AC0\n"
- " .word gUnknown_Debug_2023A76\n"
- "._739:\n"
- " mov r1, #0x0\n"
- " ldsh r0, [r0, r1]\n"
- " sub r0, r0, #0x4\n"
- "._740:\n"
- " str r0, [sp, #0xc]\n"
- " add r0, r7, #0\n"
- " mov r1, #0x5\n"
- " bl __divsi3\n"
- " mov r2, #0x64\n"
- " mul r0, r0, r2\n"
- " ldr r1, ._750 @ gPlayerParty\n"
- " add r0, r0, r1\n"
- " mov r1, #0x2e\n"
- " add r2, sp, #0xc\n"
- " bl SetMonData\n"
- "._738:\n"
- " ldr r3, [sp, #0x14]\n"
- " lsl r0, r3, #0x1\n"
- " ldr r1, ._750 + 4 @ gUnknown_Debug_2023ABC\n"
- " add r0, r0, r1\n"
- " mov r2, #0x0\n"
- " ldsh r0, [r0, r2]\n"
- " cmp r0, #0x2\n"
- " ble ._743 @cond_branch\n"
- " add r0, r7, #0\n"
- " mov r1, #0x5\n"
- " bl __divsi3\n"
- " mov r3, #0x64\n"
- " mul r0, r0, r3\n"
- " ldr r1, ._750 @ gPlayerParty\n"
- " add r0, r0, r1\n"
- " mov r1, #0x7\n"
- " ldr r2, ._750 + 8 @ Str_821F649\n"
- " bl SetMonData\n"
- " ldr r2, ._750 + 12 @ gUnknown_02023A14_50\n"
- " ldrb r0, [r2]\n"
- " mov r1, #0x40\n"
- " orr r0, r0, r1\n"
- " strb r0, [r2]\n"
- "._743:\n"
- " mov r7, sl\n"
- " cmp r7, #0x1d\n"
- " bgt ._744 @cond_branch\n"
- " b ._745\n"
- "._744:\n"
- " mov r0, #0x0\n"
- " str r0, [sp, #0xc]\n"
- " mov r0, #0x64\n"
- " mov r8, r0\n"
- " ldr r1, ._750 + 16 @ gUnknown_Debug_2023B02\n"
- " mov r9, r1\n"
- " ldr r2, ._750 @ gPlayerParty\n"
- " mov sl, r2\n"
- "._747:\n"
- " mov r7, #0x0\n"
- "._746:\n"
- " ldr r2, [sp, #0xc]\n"
- " mov r0, r8\n"
- " mul r0, r0, r2\n"
- " ldr r3, ._750 + 20 @ gEnemyParty\n"
- " add r0, r0, r3\n"
- " add r5, r7, #0\n"
- " add r5, r5, #0xd\n"
- " lsl r2, r2, #0x3\n"
- " lsl r4, r7, #0x1\n"
- " mov r3, r9\n"
- " add r1, r4, r3\n"
- " add r2, r2, r1\n"
- " add r1, r5, #0\n"
- " bl SetMonData\n"
- " ldr r1, [sp, #0xc]\n"
- " mov r0, r8\n"
- " mul r0, r0, r1\n"
- " ldr r2, ._750 + 20 @ gEnemyParty\n"
- " add r0, r0, r2\n"
- " add r6, r7, #0\n"
- " add r6, r6, #0x11\n"
- " lsl r1, r1, #0x3\n"
- " add r1, r4, r1\n"
- " add r1, r1, r9\n"
- " mov r3, #0x0\n"
- " ldsh r1, [r1, r3]\n"
- " lsl r2, r1, #0x1\n"
- " add r2, r2, r1\n"
- " lsl r2, r2, #0x2\n"
- " ldr r1, ._750 + 24 @ gBattleMoves\n"
- " add r2, r2, r1\n"
- " add r1, r6, #0\n"
- " bl SetMonData\n"
- " ldr r2, [sp, #0xc]\n"
- " mov r0, r8\n"
- " mul r0, r0, r2\n"
- " add r0, r0, sl\n"
- " lsl r2, r2, #0x3\n"
- " ldr r3, ._750 + 28 @ gUnknown_Debug_2023B32\n"
- " add r1, r4, r3\n"
- " add r2, r2, r1\n"
- " add r1, r5, #0\n"
- " bl SetMonData\n"
- " ldr r1, [sp, #0xc]\n"
- " mov r0, r8\n"
- " mul r0, r0, r1\n"
- " add r0, r0, sl\n"
- " lsl r1, r1, #0x3\n"
- " add r4, r4, r1\n"
- " ldr r1, ._750 + 28 @ gUnknown_Debug_2023B32\n"
- " add r4, r4, r1\n"
- " mov r2, #0x0\n"
- " ldsh r1, [r4, r2]\n"
- " lsl r2, r1, #0x1\n"
- " add r2, r2, r1\n"
- " lsl r2, r2, #0x2\n"
- " ldr r3, ._750 + 24 @ gBattleMoves\n"
- " add r2, r2, r3\n"
- " add r1, r6, #0\n"
- " bl SetMonData\n"
- " add r7, r7, #0x1\n"
- " cmp r7, #0x3\n"
- " ble ._746 @cond_branch\n"
- " ldr r0, [sp, #0xc]\n"
- " add r0, r0, #0x1\n"
- " str r0, [sp, #0xc]\n"
- " cmp r0, #0x5\n"
- " ble ._747 @cond_branch\n"
- " ldr r3, ._750 + 32 @ gUnknown_Debug_2023A76\n"
- " add r4, r3, #0\n"
- " add r4, r4, #0x44\n"
- " ldrh r1, [r4]\n"
- " mov r2, #0x0\n"
- " ldsh r0, [r4, r2]\n"
- " cmp r0, #0x8\n"
- " bne ._748 @cond_branch\n"
- " ldr r0, ._750 + 12 @ gUnknown_02023A14_50\n"
- " ldrb r1, [r0]\n"
- " mov r2, #0x80\n"
- " b ._753\n"
- "._751:\n"
- " .align 2, 0\n"
- "._750:\n"
- " .word gPlayerParty\n"
- " .word gUnknown_Debug_2023ABC\n"
- " .word Str_821F649\n"
- " .word gUnknown_02023A14_50\n"
- " .word gUnknown_Debug_2023B02\n"
- " .word gEnemyParty\n"
- " .word gBattleMoves+0x4\n"
- " .word gUnknown_Debug_2023B32\n"
- " .word gUnknown_Debug_2023A76\n"
- "._748:\n"
- " cmp r0, #0x7\n"
- " bne ._752 @cond_branch\n"
- " ldr r0, ._754 @ gUnknown_02023A14_50\n"
- " ldrb r1, [r0]\n"
- " mov r2, #0x20\n"
- " b ._753\n"
- "._755:\n"
- " .align 2, 0\n"
- "._754:\n"
- " .word gUnknown_02023A14_50\n"
- "._752:\n"
- " cmp r0, #0x6\n"
- " bne ._756 @cond_branch\n"
- " ldr r2, ._759 @ gUnknown_02023A14_50\n"
- " ldrb r0, [r2]\n"
- " mov r1, #0x10\n"
- " orr r0, r0, r1\n"
- " strb r0, [r2]\n"
- " ldrh r1, [r3, #0x4]\n"
- " mov r2, #0x4\n"
- " ldsh r0, [r3, r2]\n"
- " cmp r0, #0x5\n"
- " ble ._757 @cond_branch\n"
- " ldr r0, ._759 + 4 @ gSharedMem\n"
- " sub r1, r1, #0x2\n"
- " ldr r3, ._759 + 8 @ 0x160a3\n"
- " add r0, r0, r3\n"
- " b ._761\n"
- "._760:\n"
- " .align 2, 0\n"
- "._759:\n"
- " .word gUnknown_02023A14_50\n"
- " .word gSharedMem\n"
- " .word 0x160a3\n"
- "._757:\n"
- " ldr r0, ._762 @ gSharedMem\n"
- " ldr r2, ._762 + 4 @ 0x160a3\n"
- " add r0, r0, r2\n"
- " b ._761\n"
- "._763:\n"
- " .align 2, 0\n"
- "._762:\n"
- " .word gSharedMem\n"
- " .word 0x160a3\n"
- "._756:\n"
- " cmp r0, #0x5\n"
- " bne ._764 @cond_branch\n"
- " ldr r0, ._766 @ gUnknown_02023A14_50\n"
- " ldrb r1, [r0]\n"
- " mov r2, #0x21\n"
- "._753:\n"
- " orr r1, r1, r2\n"
- "._761:\n"
- " strb r1, [r0]\n"
- " bl sub_80408BC\n"
- " b ._770\n"
- "._767:\n"
- " .align 2, 0\n"
- "._766:\n"
- " .word gUnknown_02023A14_50\n"
- "._764:\n"
- " mov r0, #0x1\n"
- " and r0, r0, r1\n"
- " cmp r0, #0\n"
- " bne ._768 @cond_branch\n"
- " bl sub_80408BC\n"
- "._768:\n"
- " ldrh r3, [r4]\n"
- " mov r0, #0x2\n"
- " and r0, r0, r3\n"
- " cmp r0, #0\n"
- " beq ._769 @cond_branch\n"
- " ldr r0, ._772 @ gUnknown_02023A14_50\n"
- " ldrb r1, [r0]\n"
- " mov r2, #0x4\n"
- " orr r1, r1, r2\n"
- " strb r1, [r0]\n"
- "._769:\n"
- " mov r0, #0x4\n"
- " and r0, r0, r3\n"
- " cmp r0, #0\n"
- " beq ._770 @cond_branch\n"
- " ldr r0, ._772 @ gUnknown_02023A14_50\n"
- " ldrb r1, [r0]\n"
- " mov r2, #0x6\n"
- " orr r1, r1, r2\n"
- " strb r1, [r0]\n"
- "._770:\n"
- " ldr r0, ._772 + 4 @ gMain\n"
- " ldr r1, ._772 + 8 @ debug_sub_80108B8\n"
- " str r1, [r0, #0x8]\n"
- " ldr r0, ._772 + 12 @ unref_sub_800D684\n"
- " bl SetMainCallback2\n"
- " bl ClearBag\n"
- " mov r0, #0x1\n"
- " mov r1, #0xa\n"
- " bl AddBagItem\n"
- " mov r0, #0x2\n"
- " mov r1, #0xa\n"
- " bl AddBagItem\n"
- " mov r0, #0x3\n"
- " mov r1, #0xa\n"
- " bl AddBagItem\n"
- " mov r0, #0x4\n"
- " mov r1, #0xa\n"
- " bl AddBagItem\n"
- " mov r0, #0x5\n"
- " mov r1, #0xa\n"
- " bl AddBagItem\n"
- " mov r0, #0x6\n"
- " mov r1, #0xa\n"
- " bl AddBagItem\n"
- " mov r0, #0x7\n"
- " mov r1, #0xa\n"
- " bl AddBagItem\n"
- " mov r0, #0x8\n"
- " mov r1, #0xa\n"
- " bl AddBagItem\n"
- " mov r0, #0x9\n"
- " mov r1, #0xa\n"
- " bl AddBagItem\n"
- " mov r0, #0xa\n"
- " mov r1, #0xa\n"
- " bl AddBagItem\n"
- " mov r0, #0xb\n"
- " mov r1, #0xa\n"
- " bl AddBagItem\n"
- " mov r0, #0xc\n"
- " mov r1, #0xa\n"
- " bl AddBagItem\n"
- " mov r0, #0x13\n"
- " mov r1, #0x63\n"
- " bl AddBagItem\n"
- " mov r0, #0x14\n"
- " mov r1, #0x63\n"
- " bl AddBagItem\n"
- " mov r0, #0x19\n"
- " mov r1, #0x63\n"
- " bl AddBagItem\n"
- " mov r0, #0x22\n"
- " mov r1, #0x63\n"
- " bl AddBagItem\n"
- " mov r0, #0x23\n"
- " mov r1, #0x63\n"
- " bl AddBagItem\n"
- " mov r0, #0x25\n"
- " mov r1, #0x63\n"
- " bl AddBagItem\n"
- " mov r0, #0x49\n"
- " mov r1, #0x63\n"
- " bl AddBagItem\n"
- " mov r0, #0x4a\n"
- " mov r1, #0x63\n"
- " bl AddBagItem\n"
- " mov r0, #0x4b\n"
- " mov r1, #0x63\n"
- " bl AddBagItem\n"
- " mov r0, #0x4c\n"
- " mov r1, #0x63\n"
- " bl AddBagItem\n"
- " mov r0, #0x4d\n"
- " mov r1, #0x63\n"
- " bl AddBagItem\n"
- " mov r0, #0x4e\n"
- " mov r1, #0x63\n"
- " bl AddBagItem\n"
- " mov r0, #0x50\n"
- " mov r1, #0x63\n"
- " bl AddBagItem\n"
- " ldr r4, ._772 + 16 @ gUnknown_Debug_821F5AC\n"
- " mov r7, #0xe\n"
- "._771:\n"
- " add r0, r4, #0\n"
- " bl sub_810CA34\n"
- " add r4, r4, #0x8\n"
- " sub r7, r7, #0x1\n"
- " cmp r7, #0\n"
- " bge ._771 @cond_branch\n"
- " add sp, sp, #0x18\n"
- " pop {r3, r4, r5}\n"
- " mov r8, r3\n"
- " mov r9, r4\n"
- " mov sl, r5\n"
- " pop {r4, r5, r6, r7}\n"
- " pop {r0}\n"
- " bx r0\n"
- "._773:\n"
- " .align 2, 0\n"
- "._772:\n"
- " .word gUnknown_02023A14_50\n"
- " .word gMain\n"
- " .word debug_sub_80108B8+1\n"
- " .word unref_sub_800D684+1\n"
- " .word gUnknown_Debug_821F5AC\n"
- "\n"
- );
+extern const u16 gUnknown_Debug_821F598[];
+extern const u8 str_821F631[][6];
+extern const u8 Str_821F649[];
+extern const struct Pokeblock gUnknown_Debug_821F5AC[];
+
+extern u8 gUnknown_020297ED;
+
+extern void unref_sub_800D684(void);
+
+void debug_sub_801174C(void)
+{
+ u8 r9 = 0;
+ u8 r6;
+ s32 i;
+ s32 spC;
+ u16 sp10;
+
+ gUnknown_020297ED = 1;
+ r6 = Random() % 4;
+ StringCopy(gSaveBlock2.playerName, str_821F631[r6]);
+ gSaveBlock2.playerGender = r6 >> 1;
+ ZeroPlayerPartyMons();
+ ZeroEnemyPartyMons();
+ i = gUnknown_Debug_2023A76[0][30];
+ spC = 0;
+ if (i >= 10)
+ {
+ spC = 0;
+ while (i >= 10)
+ {
+ i -= 10;
+ spC++;
+ }
+ }
+ gBattleTypeFlags = gUnknown_Debug_821F598[i - 1];
+ gUnknown_02023A14_50 = 8;
+ gBattleTerrain = spC;
+ if (gBattleTypeFlags & BATTLE_TYPE_SAFARI)
+ EnterSafariMode();
+ if (gUnknown_Debug_2023A76[0][30] >= 2 && gUnknown_Debug_2023A76[0][30] <= 4)
+ gTrainerBattleOpponent = (Random() & 7) + 1;
+
+ gPlayerPartyCount = 0;
+ for (i = 0; i < 30; i += 5)
+ {
+ if (gUnknown_Debug_2023A76[0][i] != 0)
+ {
+ switch (gUnknown_Debug_2023A76[0][i + 4])
+ {
+ case 0:
+ case 2:
+ r6 = 0;
+ break;
+ case 1:
+ case 3:
+ r6 = 0xFE;
+ break;
+ default:
+ r6 = 0xFF;
+ break;
+ }
+ if (gUnknown_Debug_2023A76[0][i] == 0xC9 && i + 5 < 30)
+ r9 = gUnknown_Debug_2023A76[0][i + 7];
+ else
+ r9 = 0;
+ CreateMonWithGenderNatureLetter(
+ &gEnemyParty[i / 5],
+ gUnknown_Debug_2023A76[0][i],
+ gUnknown_Debug_2023A76[0][i + 1],
+ 0,
+ r6,
+ 0,
+ r9);
+ }
+ SetMonData(&gEnemyParty[i / 5], MON_DATA_HELD_ITEM, &gUnknown_Debug_2023A76[0][i + 2]);
+ sp10 = gUnknown_Debug_2023A76[0][i + 2] - 1;
+ if (sp10 <= 11)
+ SetMonData(&gEnemyParty[i / 5], MON_DATA_POKEBALL, &gUnknown_Debug_2023A76[0][i + 2]);
+ if (gUnknown_Debug_2023A76[0][i + 3] != 0 && gUnknown_Debug_2023A76[0][i + 3] != 3)
+ {
+ if (gUnknown_Debug_2023A76[0][i + 3] <= 2)
+ spC = gUnknown_Debug_2023A76[0][i + 3] - 1;
+ else
+ spC = gUnknown_Debug_2023A76[0][i + 3] - 4;
+ SetMonData(&gEnemyParty[i / 5], MON_DATA_ALT_ABILITY, &spC);
+ }
+
+ if (gUnknown_Debug_2023A76[1][i] != 0)
+ {
+ switch (gUnknown_Debug_2023A76[1][i + 4])
+ {
+ case 0:
+ case 2:
+ r6 = 0;
+ break;
+ case 1:
+ case 3:
+ r6 = 0xFE;
+ break;
+ default:
+ r6 = 0xFF;
+ break;
+ }
+ if (gUnknown_Debug_2023A76[1][i] == 0xC9 && i + 5 < 30)
+ r9 = gUnknown_Debug_2023A76[1][i + 7];
+ else
+ r9 = 0;
+ CreateMonWithGenderNatureLetter(
+ &gPlayerParty[i / 5],
+ gUnknown_Debug_2023A76[1][i],
+ gUnknown_Debug_2023A76[1][i + 1],
+ 0,
+ r6,
+ 0,
+ r9);
+ gPlayerPartyCount++;
+ }
+ SetMonData(&gPlayerParty[i / 5], MON_DATA_HELD_ITEM, &gUnknown_Debug_2023A76[1][i + 2]);
+ sp10 = gUnknown_Debug_2023A76[0][i + 2] - 1;
+ if (sp10 <= 11)
+ SetMonData(&gPlayerParty[i / 5], MON_DATA_POKEBALL, &gUnknown_Debug_2023A76[1][i + 2]);
+ if (gUnknown_Debug_2023A76[1][i + 3] != 0 && gUnknown_Debug_2023A76[1][i + 3] != 3)
+ {
+ if (gUnknown_Debug_2023A76[1][i + 3] <= 2)
+ spC = gUnknown_Debug_2023A76[1][i + 3] - 1;
+ else
+ spC = gUnknown_Debug_2023A76[1][i + 3] - 4;
+ SetMonData(&gPlayerParty[i / 5], MON_DATA_ALT_ABILITY, &spC);
+ }
+ if (gUnknown_Debug_2023A76[1][i + 3] > 2)
+ {
+ SetMonData(&gPlayerParty[i / 5], MON_DATA_OT_NAME, Str_821F649);
+ gUnknown_02023A14_50 |= 0x40;
+ }
+ }
+
+ for (spC = 0; spC < 6; spC++)
+ {
+ for (i = 0; i < 4; i++)
+ {
+ SetMonData(&gEnemyParty[spC], MON_DATA_MOVE1 + i, &gUnknown_Debug_2023B02[0][spC][i]);
+ SetMonData(&gEnemyParty[spC], MON_DATA_PP1 + i, &gBattleMoves[gUnknown_Debug_2023B02[0][spC][i]].pp);
+ SetMonData(&gPlayerParty[spC], MON_DATA_MOVE1 + i, &gUnknown_Debug_2023B02[1][spC][i]);
+ SetMonData(&gPlayerParty[spC], MON_DATA_PP1 + i, &gBattleMoves[gUnknown_Debug_2023B02[1][spC][i]].pp);
+ }
+ }
+
+ if (gUnknown_Debug_2023A76[0][0x22] == 8)
+ {
+ gUnknown_02023A14_50 |= 0x80;
+ sub_80408BC();
+ }
+ else if (gUnknown_Debug_2023A76[0][0x22] == 7)
+ {
+ gUnknown_02023A14_50 |= 0x20;
+ sub_80408BC();
+ }
+ else if (gUnknown_Debug_2023A76[0][0x22] == 6)
+ {
+ gUnknown_02023A14_50 |= 0x10;
+ if (gUnknown_Debug_2023A76[0][2] > 5)
+ gSharedMem[0x160A3] = gUnknown_Debug_2023A76[0][2] - 2;
+ else
+ gSharedMem[0x160A3] = gUnknown_Debug_2023A76[0][2];
+ sub_80408BC();
+ }
+ else if (gUnknown_Debug_2023A76[0][0x22] == 5)
+ {
+ gUnknown_02023A14_50 |= 0x21;
+ sub_80408BC();
+ }
+ else
+ {
+ if (!(gUnknown_Debug_2023A76[0][0x22] & 1))
+ sub_80408BC();
+ if (gUnknown_Debug_2023A76[0][0x22] & 2)
+ gUnknown_02023A14_50 |= 4;
+ if (gUnknown_Debug_2023A76[0][0x22] & 4)
+ gUnknown_02023A14_50 |= 6;
+ }
+
+ gMain.savedCallback = debug_sub_80108B8;
+ SetMainCallback2(unref_sub_800D684);
+
+ ClearBag();
+
+ AddBagItem(ITEM_MASTER_BALL, 10);
+ AddBagItem(ITEM_ULTRA_BALL, 10);
+ AddBagItem(ITEM_GREAT_BALL, 10);
+ AddBagItem(ITEM_POKE_BALL, 10);
+ AddBagItem(ITEM_SAFARI_BALL, 10);
+ AddBagItem(ITEM_NET_BALL, 10);
+ AddBagItem(ITEM_DIVE_BALL, 10);
+ AddBagItem(ITEM_NEST_BALL, 10);
+ AddBagItem(ITEM_REPEAT_BALL, 10);
+ AddBagItem(ITEM_TIMER_BALL, 10);
+ AddBagItem(ITEM_LUXURY_BALL, 10);
+ AddBagItem(ITEM_PREMIER_BALL, 10);
+
+ AddBagItem(ITEM_FULL_RESTORE, 99);
+ AddBagItem(ITEM_MAX_POTION, 99);
+ AddBagItem(ITEM_MAX_REVIVE, 99);
+ AddBagItem(ITEM_ETHER, 99);
+ AddBagItem(ITEM_MAX_ETHER, 99);
+ AddBagItem(ITEM_MAX_ELIXIR, 99);
+
+ AddBagItem(ITEM_GUARD_SPEC, 99);
+ AddBagItem(ITEM_DIRE_HIT, 99);
+ AddBagItem(ITEM_X_ATTACK, 99);
+ AddBagItem(ITEM_X_DEFEND, 99);
+ AddBagItem(ITEM_X_SPEED, 99);
+ AddBagItem(ITEM_X_ACCURACY, 99);
+ // hmm... no X Special? Why do we need Poke Doll?
+ AddBagItem(ITEM_POKE_DOLL, 99);
+
+ for (i = 0; i < 15; i++)
+ sub_810CA34(&gUnknown_Debug_821F5AC[i]);
}
void debug_sub_8011D40(void)
@@ -3055,918 +2508,289 @@ void debug_sub_8011E74(void)
gUnknown_Debug_030043A8 = r5;
}
-__attribute__((naked))
+extern const u8 Str_821F624[];
+
void debug_sub_8011EA0(u8 a)
{
- asm(
- " push {r4, r5, r6, r7, lr}\n"
- " mov r7, sl\n"
- " mov r6, r9\n"
- " mov r5, r8\n"
- " push {r5, r6, r7}\n"
- " add sp, sp, #0xfffffff4\n"
- " lsl r0, r0, #0x18\n"
- " lsr r7, r0, #0x18\n"
- " cmp r7, #0x22\n"
- " bls ._782 @cond_branch\n"
- " b ._815\n"
- "._782:\n"
- " lsl r0, r7, #0x2\n"
- " ldr r1, ._785 @ \n"
- " add r1, r0, r1\n"
- " ldr r1, [r1]\n"
- " str r0, [sp, #0x8]\n"
- " mov pc, r1\n"
- "._786:\n"
- " .align 2, 0\n"
- "._785:\n"
- " .word ._784\n"
- "._784:\n"
- " .word ._812\n"
- " .word ._817\n"
- " .word ._814\n"
- " .word ._815\n"
- " .word ._816\n"
- " .word ._812\n"
- " .word ._817\n"
- " .word ._814\n"
- " .word ._815\n"
- " .word ._816\n"
- " .word ._812\n"
- " .word ._817\n"
- " .word ._814\n"
- " .word ._815\n"
- " .word ._816\n"
- " .word ._812\n"
- " .word ._817\n"
- " .word ._814\n"
- " .word ._815\n"
- " .word ._816\n"
- " .word ._812\n"
- " .word ._817\n"
- " .word ._814\n"
- " .word ._815\n"
- " .word ._816\n"
- " .word ._812\n"
- " .word ._817\n"
- " .word ._814\n"
- " .word ._815\n"
- " .word ._816\n"
- " .word ._817\n"
- " .word ._848\n"
- " .word ._848\n"
- " .word ._848\n"
- " .word ._848\n"
- "._812:\n"
- " mov r0, #0x0\n"
- " mov r1, #0x14\n"
- " bl debug_sub_8010A7C\n"
- " ldr r6, ._823 @ gBattleTextBuff1\n"
- " ldr r2, ._823 + 4 @ gUnknown_Debug_821F424\n"
- " ldr r0, [sp, #0x8]\n"
- " add r1, r0, r7\n"
- " lsl r1, r1, #0x1\n"
- " add r0, r1, r2\n"
- " ldrh r0, [r0]\n"
- " str r0, [sp, #0x4]\n"
- " add r0, r2, #2\n"
- " add r0, r1, r0\n"
- " ldrb r0, [r0]\n"
- " mov r8, r0\n"
- " add r2, r2, #0x4\n"
- " add r1, r1, r2\n"
- " ldrb r1, [r1]\n"
- " mov r9, r1\n"
- " str r1, [sp]\n"
- " ldr r0, ._823 + 8 @ gUnknown_Debug_03004370\n"
- " add r1, r6, #0\n"
- " ldr r2, [sp, #0x4]\n"
- " mov r3, r8\n"
- " bl Text_InitWindow\n"
- " ldr r0, ._823 + 8 @ gUnknown_Debug_03004370\n"
- " bl Text_PrintWindow8002F44\n"
- " ldr r1, ._823 + 12 @ gUnknown_Debug_2023A76\n"
- " mov sl, r1\n"
- " lsl r4, r7, #0x1\n"
- " ldr r5, ._823 + 16 @ gUnknown_Debug_03004360\n"
- " ldrb r0, [r5]\n"
- " mov r7, #0x46\n"
- " mul r0, r0, r7\n"
- " add r0, r4, r0\n"
- " add r0, r0, sl\n"
- " mov r2, #0x0\n"
- " ldsh r1, [r0, r2]\n"
- " add r0, r6, #0\n"
- " mov r2, #0x2\n"
- " mov r3, #0x3\n"
- " bl ConvertIntToDecimalStringN\n"
- " mov r2, #0xd3\n"
- " lsl r2, r2, #0x1\n"
- " ldrb r3, [r5]\n"
- " lsl r3, r3, #0x5\n"
- " add r3, r3, #0x19\n"
- " lsl r3, r3, #0x18\n"
- " lsr r3, r3, #0x18\n"
- " mov r0, #0x0\n"
- " str r0, [sp]\n"
- " ldr r0, ._823 + 8 @ gUnknown_Debug_03004370\n"
- " add r1, r6, #0\n"
- " bl Text_InitWindow\n"
- " ldr r0, ._823 + 8 @ gUnknown_Debug_03004370\n"
- " bl Text_PrintWindow8002F44\n"
- " mov r0, #0xff\n"
- " strb r0, [r6]\n"
- " ldrb r0, [r5]\n"
- " mul r0, r0, r7\n"
- " add r4, r4, r0\n"
- " add r4, r4, sl\n"
- " mov r0, #0x0\n"
- " ldsh r1, [r4, r0]\n"
- " mov r0, #0xb\n"
- " mul r1, r1, r0\n"
- " ldr r0, ._823 + 20 @ gSpeciesNames\n"
- " add r1, r1, r0\n"
- " add r0, r6, #0\n"
- " bl StringAppend\n"
- " mov r1, r9\n"
- " str r1, [sp]\n"
- " ldr r0, ._823 + 8 @ gUnknown_Debug_03004370\n"
- " add r1, r6, #0\n"
- " ldr r2, [sp, #0x4]\n"
- " mov r3, r8\n"
- " bl Text_InitWindow\n"
- " ldr r0, ._823 + 8 @ gUnknown_Debug_03004370\n"
- " bl Text_PrintWindow8002F44\n"
- " b ._848\n"
- "._824:\n"
- " .align 2, 0\n"
- "._823:\n"
- " .word gBattleTextBuff1\n"
- " .word gUnknown_Debug_821F424\n"
- " .word gUnknown_Debug_03004370\n"
- " .word gUnknown_Debug_2023A76\n"
- " .word gUnknown_Debug_03004360\n"
- " .word gSpeciesNames\n"
- "._817:\n"
- " ldr r6, ._826 @ gBattleTextBuff1\n"
- " ldr r3, ._826 + 4 @ gUnknown_Debug_2023A76\n"
- " lsl r1, r7, #0x1\n"
- " ldr r0, ._826 + 8 @ gUnknown_Debug_03004360\n"
- " ldrb r2, [r0]\n"
- " mov r0, #0x46\n"
- " mul r0, r0, r2\n"
- " add r1, r1, r0\n"
- " add r1, r1, r3\n"
- " mov r2, #0x0\n"
- " ldsh r1, [r1, r2]\n"
- " add r0, r6, #0\n"
- " mov r2, #0x2\n"
- " mov r3, #0x3\n"
- " bl ConvertIntToDecimalStringN\n"
- " b ._825\n"
- "._827:\n"
- " .align 2, 0\n"
- "._826:\n"
- " .word gBattleTextBuff1\n"
- " .word gUnknown_Debug_2023A76\n"
- " .word gUnknown_Debug_03004360\n"
- "._814:\n"
- " mov r0, #0x0\n"
- " mov r1, #0x18\n"
- " bl debug_sub_8010A7C\n"
- " ldr r6, ._830 @ gUnknown_Debug_03004370\n"
- " ldr r1, ._830 + 4 @ gBattleTextBuff1\n"
- " mov sl, r1\n"
- " ldr r4, ._830 + 8 @ gUnknown_Debug_821F424\n"
- " ldr r2, [sp, #0x8]\n"
- " add r1, r2, r7\n"
- " lsl r1, r1, #0x1\n"
- " add r0, r1, r4\n"
- " ldrh r2, [r0]\n"
- " add r0, r4, #2\n"
- " add r0, r1, r0\n"
- " ldrb r3, [r0]\n"
- " add r4, r4, #0x4\n"
- " add r1, r1, r4\n"
- " ldrb r0, [r1]\n"
- " str r0, [sp]\n"
- " add r0, r6, #0\n"
- " mov r1, sl\n"
- " bl Text_InitWindow\n"
- " add r0, r6, #0\n"
- " bl Text_PrintWindow8002F44\n"
- " lsl r4, r7, #0x1\n"
- " ldr r5, ._830 + 12 @ gUnknown_Debug_03004360\n"
- " ldrb r0, [r5]\n"
- " mov r1, #0x46\n"
- " mul r0, r0, r1\n"
- " add r0, r4, r0\n"
- " ldr r2, ._830 + 16 @ gUnknown_Debug_2023A76\n"
- " add r0, r0, r2\n"
- " mov r2, #0x0\n"
- " ldsh r1, [r0, r2]\n"
- " mov r0, sl\n"
- " mov r2, #0x2\n"
- " mov r3, #0x3\n"
- " bl ConvertIntToDecimalStringN\n"
- " mov r2, #0xd3\n"
- " lsl r2, r2, #0x1\n"
- " ldrb r3, [r5]\n"
- " lsl r3, r3, #0x5\n"
- " add r3, r3, #0x19\n"
- " lsl r3, r3, #0x18\n"
- " lsr r3, r3, #0x18\n"
- " mov r0, #0x0\n"
- " str r0, [sp]\n"
- " add r0, r6, #0\n"
- " mov r1, sl\n"
- " bl Text_InitWindow\n"
- " add r0, r6, #0\n"
- " bl Text_PrintWindow8002F44\n"
- " mov r0, #0xff\n"
- " mov r1, sl\n"
- " strb r0, [r1]\n"
- " ldrb r0, [r5]\n"
- " mov r2, #0x46\n"
- " mul r0, r0, r2\n"
- " add r4, r4, r0\n"
- " ldr r0, ._830 + 16 @ gUnknown_Debug_2023A76\n"
- " add r4, r4, r0\n"
- " mov r1, #0x0\n"
- " ldsh r0, [r4, r1]\n"
- " cmp r0, #0\n"
- " beq ._828 @cond_branch\n"
- " ldrh r0, [r4]\n"
- " bl ItemId_GetItem\n"
- " add r1, r0, #0\n"
- " mov r0, sl\n"
- " bl StringAppend\n"
- " b ._829\n"
- "._831:\n"
- " .align 2, 0\n"
- "._830:\n"
- " .word gUnknown_Debug_03004370\n"
- " .word gBattleTextBuff1\n"
- " .word gUnknown_Debug_821F424\n"
- " .word gUnknown_Debug_03004360\n"
- " .word gUnknown_Debug_2023A76\n"
- "._828:\n"
- " ldr r1, ._833 @ Str_821F624\n"
- " mov r0, sl\n"
- " bl StringAppend\n"
- "._829:\n"
- " ldr r6, ._833 + 4 @ gUnknown_Debug_03004370\n"
- " ldr r1, ._833 + 8 @ gBattleTextBuff1\n"
- " ldr r5, ._833 + 12 @ gUnknown_Debug_821F424\n"
- " ldr r2, [sp, #0x8]\n"
- " add r4, r2, r7\n"
- " lsl r4, r4, #0x1\n"
- " add r0, r4, r5\n"
- " ldrh r2, [r0]\n"
- " add r0, r5, #2\n"
- " add r0, r4, r0\n"
- " ldrb r3, [r0]\n"
- " add r5, r5, #0x4\n"
- " add r4, r4, r5\n"
- " ldrb r0, [r4]\n"
- " str r0, [sp]\n"
- " add r0, r6, #0\n"
- " bl Text_InitWindow\n"
- " add r0, r6, #0\n"
- " bl Text_PrintWindow8002F44\n"
- " b ._848\n"
- "._834:\n"
- " .align 2, 0\n"
- "._833:\n"
- " .word Str_821F624\n"
- " .word gUnknown_Debug_03004370\n"
- " .word gBattleTextBuff1\n"
- " .word gUnknown_Debug_821F424\n"
- "._816:\n"
- " mov r0, #0x0\n"
- " mov r1, #0x4\n"
- " bl debug_sub_8010A7C\n"
- " ldr r5, ._839 @ gUnknown_Debug_03004370\n"
- " ldr r6, ._839 + 4 @ gBattleTextBuff1\n"
- " ldr r4, ._839 + 8 @ gUnknown_Debug_821F424\n"
- " ldr r0, [sp, #0x8]\n"
- " add r1, r0, r7\n"
- " lsl r1, r1, #0x1\n"
- " add r0, r1, r4\n"
- " ldrh r2, [r0]\n"
- " add r0, r4, #2\n"
- " add r0, r1, r0\n"
- " ldrb r3, [r0]\n"
- " add r4, r4, #0x4\n"
- " add r1, r1, r4\n"
- " ldrb r0, [r1]\n"
- " str r0, [sp]\n"
- " add r0, r5, #0\n"
- " add r1, r6, #0\n"
- " bl Text_InitWindow\n"
- " add r0, r5, #0\n"
- " bl Text_PrintWindow8002F44\n"
- " mov r4, #0x0\n"
- " ldr r3, ._839 + 12 @ gUnknown_Debug_2023A76\n"
- " lsl r1, r7, #0x1\n"
- " ldr r0, ._839 + 16 @ gUnknown_Debug_03004360\n"
- " ldrb r2, [r0]\n"
- " mov r0, #0x46\n"
- " mul r0, r0, r2\n"
- " add r1, r1, r0\n"
- " add r1, r1, r3\n"
- " mov r2, #0x0\n"
- " ldsh r0, [r1, r2]\n"
- " cmp r0, #0x1\n"
- " beq ._835 @cond_branch\n"
- " cmp r0, #0x1\n"
- " bgt ._836 @cond_branch\n"
- " cmp r0, #0\n"
- " beq ._837 @cond_branch\n"
- " b ._843\n"
- "._840:\n"
- " .align 2, 0\n"
- "._839:\n"
- " .word gUnknown_Debug_03004370\n"
- " .word gBattleTextBuff1\n"
- " .word gUnknown_Debug_821F424\n"
- " .word gUnknown_Debug_2023A76\n"
- " .word gUnknown_Debug_03004360\n"
- "._836:\n"
- " cmp r0, #0x2\n"
- " beq ._841 @cond_branch\n"
- " cmp r0, #0x3\n"
- " beq ._842 @cond_branch\n"
- " b ._843\n"
- "._837:\n"
- " mov r0, #0xb5\n"
- " b ._844\n"
- "._835:\n"
- " mov r0, #0xb6\n"
- "._844:\n"
- " strb r0, [r6]\n"
- " mov r4, #0x1\n"
- " b ._847\n"
- "._841:\n"
- " mov r0, #0xb5\n"
- " b ._846\n"
- "._842:\n"
- " mov r0, #0xb6\n"
- "._846:\n"
- " strb r0, [r6]\n"
- " strb r0, [r6, #0x1]\n"
- " mov r4, #0x2\n"
- " b ._847\n"
- "._843:\n"
- " ldr r2, ._849 @ gBattleTextBuff1\n"
- " add r1, r4, r2\n"
- " mov r0, #0xac\n"
- " strb r0, [r1]\n"
- " add r4, r4, #0x1\n"
- " add r6, r2, #0\n"
- "._847:\n"
- " add r1, r4, r6\n"
- " mov r0, #0xff\n"
- " strb r0, [r1]\n"
- "._825:\n"
- " ldr r5, ._849 + 4 @ gUnknown_Debug_03004370\n"
- " ldr r4, ._849 + 8 @ gUnknown_Debug_821F424\n"
- " ldr r0, [sp, #0x8]\n"
- " add r1, r0, r7\n"
- " lsl r1, r1, #0x1\n"
- " add r0, r1, r4\n"
- " ldrh r2, [r0]\n"
- " add r0, r4, #2\n"
- " add r0, r1, r0\n"
- " ldrb r3, [r0]\n"
- " add r4, r4, #0x4\n"
- " add r1, r1, r4\n"
- " ldrb r0, [r1]\n"
- " str r0, [sp]\n"
- " add r0, r5, #0\n"
- " add r1, r6, #0\n"
- " bl Text_InitWindow\n"
- " add r0, r5, #0\n"
- " bl Text_PrintWindow8002F44\n"
- " b ._848\n"
- "._850:\n"
- " .align 2, 0\n"
- "._849:\n"
- " .word gBattleTextBuff1\n"
- " .word gUnknown_Debug_03004370\n"
- " .word gUnknown_Debug_821F424\n"
- "._815:\n"
- " ldr r6, ._851 @ gBattleTextBuff1\n"
- " ldr r3, ._851 + 4 @ gUnknown_Debug_2023A76\n"
- " lsl r1, r7, #0x1\n"
- " ldr r0, ._851 + 8 @ gUnknown_Debug_03004360\n"
- " ldrb r2, [r0]\n"
- " mov r0, #0x46\n"
- " mul r0, r0, r2\n"
- " add r1, r1, r0\n"
- " add r1, r1, r3\n"
- " mov r2, #0x0\n"
- " ldsh r1, [r1, r2]\n"
- " add r0, r6, #0\n"
- " mov r2, #0x2\n"
- " mov r3, #0x1\n"
- " bl ConvertIntToDecimalStringN\n"
- " ldr r5, ._851 + 12 @ gUnknown_Debug_03004370\n"
- " ldr r4, ._851 + 16 @ gUnknown_Debug_821F424\n"
- " lsl r1, r7, #0x2\n"
- " add r1, r1, r7\n"
- " lsl r1, r1, #0x1\n"
- " add r0, r1, r4\n"
- " ldrh r2, [r0]\n"
- " add r0, r4, #2\n"
- " add r0, r1, r0\n"
- " ldrb r3, [r0]\n"
- " add r4, r4, #0x4\n"
- " add r1, r1, r4\n"
- " ldrb r0, [r1]\n"
- " str r0, [sp]\n"
- " add r0, r5, #0\n"
- " add r1, r6, #0\n"
- " bl Text_InitWindow\n"
- " add r0, r5, #0\n"
- " bl Text_PrintWindow8002F44\n"
- "._848:\n"
- " add sp, sp, #0xc\n"
- " pop {r3, r4, r5}\n"
- " mov r8, r3\n"
- " mov r9, r4\n"
- " mov sl, r5\n"
- " pop {r4, r5, r6, r7}\n"
- " pop {r0}\n"
- " bx r0\n"
- "._852:\n"
- " .align 2, 0\n"
- "._851:\n"
- " .word gBattleTextBuff1\n"
- " .word gUnknown_Debug_2023A76\n"
- " .word gUnknown_Debug_03004360\n"
- " .word gUnknown_Debug_03004370\n"
- " .word gUnknown_Debug_821F424\n"
- "\n"
- );
+ u32 length;
+
+ switch (a)
+ {
+ case 0:
+ case 5:
+ case 10:
+ case 15:
+ case 20:
+ case 25:
+ debug_sub_8010A7C(0, 20);
+ Text_InitWindow(
+ &gUnknown_Debug_03004370,
+ gBattleTextBuff1,
+ gUnknown_Debug_821F424[a][0],
+ gUnknown_Debug_821F424[a][1],
+ gUnknown_Debug_821F424[a][2]);
+ Text_PrintWindow8002F44(&gUnknown_Debug_03004370);
+ ConvertIntToDecimalStringN(gBattleTextBuff1, gUnknown_Debug_2023A76[gUnknown_Debug_03004360][a], 2, 3);
+ Text_InitWindow(
+ &gUnknown_Debug_03004370,
+ gBattleTextBuff1,
+ 422,
+ gUnknown_Debug_03004360 * 32 + 25,
+ 0);
+ Text_PrintWindow8002F44(&gUnknown_Debug_03004370);
+ gBattleTextBuff1[0] = EOS;
+ StringAppend(gBattleTextBuff1, gSpeciesNames[gUnknown_Debug_2023A76[gUnknown_Debug_03004360][a]]);
+ Text_InitWindow(
+ &gUnknown_Debug_03004370,
+ gBattleTextBuff1,
+ gUnknown_Debug_821F424[a][0],
+ gUnknown_Debug_821F424[a][1],
+ gUnknown_Debug_821F424[a][2]);
+ Text_PrintWindow8002F44(&gUnknown_Debug_03004370);
+ break;
+ case 1:
+ case 6:
+ case 11:
+ case 16:
+ case 21:
+ case 26:
+ case 30:
+ ConvertIntToDecimalStringN(gBattleTextBuff1, gUnknown_Debug_2023A76[gUnknown_Debug_03004360][a], 2, 3);
+ Text_InitWindow(
+ &gUnknown_Debug_03004370,
+ gBattleTextBuff1,
+ gUnknown_Debug_821F424[a][0],
+ gUnknown_Debug_821F424[a][1],
+ gUnknown_Debug_821F424[a][2]);
+ Text_PrintWindow8002F44(&gUnknown_Debug_03004370);
+ break;
+ case 2:
+ case 7:
+ case 12:
+ case 17:
+ case 22:
+ case 27:
+ debug_sub_8010A7C(0, 24);
+ Text_InitWindow(
+ &gUnknown_Debug_03004370,
+ gBattleTextBuff1,
+ gUnknown_Debug_821F424[a][0],
+ gUnknown_Debug_821F424[a][1],
+ gUnknown_Debug_821F424[a][2]);
+ Text_PrintWindow8002F44(&gUnknown_Debug_03004370);
+ ConvertIntToDecimalStringN(gBattleTextBuff1, gUnknown_Debug_2023A76[gUnknown_Debug_03004360][a], 2, 3);
+ Text_InitWindow(
+ &gUnknown_Debug_03004370,
+ gBattleTextBuff1,
+ 422,
+ gUnknown_Debug_03004360 * 32 + 25,
+ 0);
+ Text_PrintWindow8002F44(&gUnknown_Debug_03004370);
+ gBattleTextBuff1[0] = EOS;
+ if (gUnknown_Debug_2023A76[gUnknown_Debug_03004360][a] != 0)
+ StringAppend(gBattleTextBuff1, ItemId_GetName(gUnknown_Debug_2023A76[gUnknown_Debug_03004360][a]));
+ else
+ StringAppend(gBattleTextBuff1, Str_821F624);
+ Text_InitWindow(
+ &gUnknown_Debug_03004370,
+ gBattleTextBuff1,
+ gUnknown_Debug_821F424[a][0],
+ gUnknown_Debug_821F424[a][1],
+ gUnknown_Debug_821F424[a][2]);
+ Text_PrintWindow8002F44(&gUnknown_Debug_03004370);
+ break;
+ case 4:
+ case 9:
+ case 14:
+ case 19:
+ case 24:
+ case 29:
+ debug_sub_8010A7C(0, 4);
+ Text_InitWindow(
+ &gUnknown_Debug_03004370,
+ gBattleTextBuff1,
+ gUnknown_Debug_821F424[a][0],
+ gUnknown_Debug_821F424[a][1],
+ gUnknown_Debug_821F424[a][2]);
+ Text_PrintWindow8002F44(&gUnknown_Debug_03004370);
+ length = 0;
+ switch (gUnknown_Debug_2023A76[gUnknown_Debug_03004360][a])
+ {
+ case 0:
+ gBattleTextBuff1[0] = CHAR_MALE;
+ length = 1;
+ break;
+ case 1:
+ gBattleTextBuff1[0] = CHAR_FEMALE;
+ length = 1;
+ break;
+ case 2:
+ gBattleTextBuff1[0] = CHAR_MALE;
+ gBattleTextBuff1[1] = CHAR_MALE;
+ length = 2;
+ break;
+ case 3:
+ gBattleTextBuff1[0] = CHAR_FEMALE;
+ gBattleTextBuff1[1] = CHAR_FEMALE;
+ length = 2;
+ break;
+ default:
+ gBattleTextBuff1[length] = CHAR_QUESTION_MARK;
+ length++;
+ break;
+ }
+ gBattleTextBuff1[length] = EOS;
+ Text_InitWindow(
+ &gUnknown_Debug_03004370,
+ gBattleTextBuff1,
+ gUnknown_Debug_821F424[a][0],
+ gUnknown_Debug_821F424[a][1],
+ gUnknown_Debug_821F424[a][2]);
+ Text_PrintWindow8002F44(&gUnknown_Debug_03004370);
+ break;
+ case 3:
+ case 8:
+ case 13:
+ case 18:
+ case 23:
+ case 28:
+ default:
+ ConvertIntToDecimalStringN(gBattleTextBuff1, gUnknown_Debug_2023A76[gUnknown_Debug_03004360][a], 2, 1);
+ Text_InitWindow(
+ &gUnknown_Debug_03004370,
+ gBattleTextBuff1,
+ gUnknown_Debug_821F424[a][0],
+ gUnknown_Debug_821F424[a][1],
+ gUnknown_Debug_821F424[a][2]);
+ Text_PrintWindow8002F44(&gUnknown_Debug_03004370);
+ break;
+ case 31:
+ case 32:
+ case 33:
+ case 34:
+ break;
+ }
}
-__attribute__((naked))
-void debug_sub_8012294()
-{
- asm(
- " push {r4, r5, r6, r7, lr}\n"
- " mov r7, sl\n"
- " mov r6, r9\n"
- " mov r5, r8\n"
- " push {r5, r6, r7}\n"
- " add sp, sp, #0xfffffffc\n"
- " ldr r2, ._854 @ gUnknown_Debug_030043A0\n"
- " ldr r0, ._854 + 4 @ gUnknown_Debug_030043A4\n"
- " ldrb r1, [r0]\n"
- " lsl r0, r1, #0x2\n"
- " add r0, r0, r1\n"
- " ldrb r2, [r2]\n"
- " add r0, r0, r2\n"
- " lsl r0, r0, #0x18\n"
- " lsr r5, r0, #0x18\n"
- " cmp r5, #0x1d\n"
- " bhi ._853 @cond_branch\n"
- " mov r0, #0x0\n"
- " mov r1, #0x18\n"
- " bl debug_sub_8010A7C\n"
- " ldr r0, ._854 + 8 @ gUnknown_Debug_03004370\n"
- " mov sl, r0\n"
- " ldr r1, ._854 + 12 @ gBattleTextBuff1\n"
- " mov r9, r1\n"
- " ldr r2, ._854 + 16 @ gUnknown_Debug_821F564\n"
- " mov r8, r2\n"
- " ldr r7, ._854 + 20 @ gUnknown_Debug_030043A8\n"
- " ldrb r1, [r7]\n"
- " lsl r0, r1, #0x2\n"
- " add r0, r0, r1\n"
- " lsl r0, r0, #0x1\n"
- " add r1, r0, r2\n"
- " ldrh r2, [r1]\n"
- " ldr r3, ._854 + 24 @ gUnknown_Debug_821F566\n"
- " add r1, r0, r3\n"
- " ldrb r3, [r1]\n"
- " ldr r1, ._854 + 28 @ gUnknown_Debug_821F568\n"
- " add r0, r0, r1\n"
- " ldrb r0, [r0]\n"
- " str r0, [sp]\n"
- " mov r0, sl\n"
- " mov r1, r9\n"
- " bl Text_InitWindow\n"
- " mov r0, sl\n"
- " bl Text_PrintWindow8002F44\n"
- " ldrb r4, [r7]\n"
- " lsl r4, r4, #0x1\n"
- " add r0, r5, #0\n"
- " mov r1, #0x5\n"
- " bl __udivsi3\n"
- " add r5, r0, #0\n"
- " lsl r5, r5, #0x18\n"
- " lsr r5, r5, #0x15\n"
- " add r4, r4, r5\n"
- " ldr r6, ._854 + 32 @ gUnknown_Debug_03004360\n"
- " ldrb r1, [r6]\n"
- " lsl r0, r1, #0x1\n"
- " add r0, r0, r1\n"
- " lsl r0, r0, #0x4\n"
- " add r4, r4, r0\n"
- " ldr r2, ._854 + 36 @ gUnknown_Debug_2023B02\n"
- " add r4, r4, r2\n"
- " mov r3, #0x0\n"
- " ldsh r1, [r4, r3]\n"
- " mov r0, r9\n"
- " mov r2, #0x2\n"
- " mov r3, #0x3\n"
- " bl ConvertIntToDecimalStringN\n"
- " mov r2, #0xd3\n"
- " lsl r2, r2, #0x1\n"
- " ldrb r3, [r6]\n"
- " lsl r3, r3, #0x5\n"
- " add r3, r3, #0x19\n"
- " lsl r3, r3, #0x18\n"
- " lsr r3, r3, #0x18\n"
- " mov r0, #0x0\n"
- " str r0, [sp]\n"
- " mov r0, sl\n"
- " mov r1, r9\n"
- " bl Text_InitWindow\n"
- " mov r0, sl\n"
- " bl Text_PrintWindow8002F44\n"
- " mov r0, #0xff\n"
- " mov r1, r9\n"
- " strb r0, [r1]\n"
- " ldrb r1, [r7]\n"
- " lsl r1, r1, #0x1\n"
- " add r1, r1, r5\n"
- " ldrb r2, [r6]\n"
- " lsl r0, r2, #0x1\n"
- " add r0, r0, r2\n"
- " lsl r0, r0, #0x4\n"
- " add r1, r1, r0\n"
- " ldr r2, ._854 + 36 @ gUnknown_Debug_2023B02\n"
- " add r1, r1, r2\n"
- " mov r3, #0x0\n"
- " ldsh r1, [r1, r3]\n"
- " mov r0, #0xd\n"
- " mul r1, r1, r0\n"
- " ldr r0, ._854 + 40 @ gMoveNames\n"
- " add r1, r1, r0\n"
- " mov r0, r9\n"
- " bl StringAppend\n"
- " ldrb r1, [r7]\n"
- " lsl r0, r1, #0x2\n"
- " add r0, r0, r1\n"
- " lsl r0, r0, #0x1\n"
- " add r8, r8, r0\n"
- " mov r1, r8\n"
- " ldrh r2, [r1]\n"
- " ldr r3, ._854 + 24 @ gUnknown_Debug_821F566\n"
- " add r1, r0, r3\n"
- " ldrb r3, [r1]\n"
- " ldr r1, ._854 + 28 @ gUnknown_Debug_821F568\n"
- " add r0, r0, r1\n"
- " ldrb r0, [r0]\n"
- " str r0, [sp]\n"
- " mov r0, sl\n"
- " mov r1, r9\n"
- " bl Text_InitWindow\n"
- " mov r0, sl\n"
- " bl Text_PrintWindow8002F44\n"
- "._853:\n"
- " add sp, sp, #0x4\n"
- " pop {r3, r4, r5}\n"
- " mov r8, r3\n"
- " mov r9, r4\n"
- " mov sl, r5\n"
- " pop {r4, r5, r6, r7}\n"
- " pop {r0}\n"
- " bx r0\n"
- "._855:\n"
- " .align 2, 0\n"
- "._854:\n"
- " .word gUnknown_Debug_030043A0\n"
- " .word gUnknown_Debug_030043A4\n"
- " .word gUnknown_Debug_03004370\n"
- " .word gBattleTextBuff1\n"
- " .word gUnknown_Debug_821F564\n"
- " .word gUnknown_Debug_030043A8\n"
- " .word gUnknown_Debug_821F566\n"
- " .word gUnknown_Debug_821F568\n"
- " .word gUnknown_Debug_03004360\n"
- " .word gUnknown_Debug_2023B02\n"
- " .word gMoveNames\n"
- "\n"
- );
+void debug_sub_8012294(void)
+{
+ u8 r5 = gUnknown_Debug_030043A0 + gUnknown_Debug_030043A4 * 5;
+
+ if (r5 < 30)
+ {
+ debug_sub_8010A7C(0, 24);
+ Text_InitWindow(
+ &gUnknown_Debug_03004370,
+ gBattleTextBuff1,
+ gUnknown_Debug_821F564[gUnknown_Debug_030043A8][0],
+ gUnknown_Debug_821F564[gUnknown_Debug_030043A8][1],
+ gUnknown_Debug_821F564[gUnknown_Debug_030043A8][2]);
+ Text_PrintWindow8002F44(&gUnknown_Debug_03004370);
+ ConvertIntToDecimalStringN(gBattleTextBuff1, gUnknown_Debug_2023B02[gUnknown_Debug_03004360][r5 / 5][gUnknown_Debug_030043A8], 2, 3);
+ Text_InitWindow(
+ &gUnknown_Debug_03004370,
+ gBattleTextBuff1,
+ 422,
+ gUnknown_Debug_03004360 * 32 + 25,
+ 0);
+ Text_PrintWindow8002F44(&gUnknown_Debug_03004370);
+ gBattleTextBuff1[0] = EOS;
+ StringAppend(gBattleTextBuff1, gMoveNames[gUnknown_Debug_2023B02[gUnknown_Debug_03004360][r5 / 5][gUnknown_Debug_030043A8]]);
+ Text_InitWindow(
+ &gUnknown_Debug_03004370,
+ gBattleTextBuff1,
+ gUnknown_Debug_821F564[gUnknown_Debug_030043A8][0],
+ gUnknown_Debug_821F564[gUnknown_Debug_030043A8][1],
+ gUnknown_Debug_821F564[gUnknown_Debug_030043A8][2]);
+ Text_PrintWindow8002F44(&gUnknown_Debug_03004370);
+ }
}
-__attribute__((naked))
+extern const u16 gUnknown_Debug_821F58C[];
+
void debug_sub_80123D8(u8 a)
{
- asm(
- " push {r4, r5, r6, r7, lr}\n"
- " mov r7, sl\n"
- " mov r6, r9\n"
- " mov r5, r8\n"
- " push {r5, r6, r7}\n"
- " add sp, sp, #0xfffffffc\n"
- " lsl r0, r0, #0x18\n"
- " lsr r5, r0, #0x18\n"
- " cmp r5, #0x1d\n"
- " bhi ._856 @cond_branch\n"
- " mov r0, #0x0\n"
- " mov r1, #0x12\n"
- " bl debug_sub_8010A7C\n"
- " ldr r4, ._858 @ gUnknown_Debug_03004370\n"
- " ldr r0, ._858 + 4 @ gBattleTextBuff1\n"
- " mov r8, r0\n"
- " ldr r6, ._858 + 8 @ gUnknown_Debug_821F58C\n"
- " ldrh r1, [r6]\n"
- " mov sl, r1\n"
- " ldrb r7, [r6, #0x2]\n"
- " ldrb r2, [r6, #0x4]\n"
- " mov r9, r2\n"
- " str r2, [sp]\n"
- " add r0, r4, #0\n"
- " mov r1, r8\n"
- " mov r2, sl\n"
- " add r3, r7, #0\n"
- " bl Text_InitWindow\n"
- " add r0, r4, #0\n"
- " bl Text_PrintWindow8002F44\n"
- " lsl r5, r5, #0x1\n"
- " ldr r1, ._858 + 12 @ gUnknown_Debug_03004360\n"
- " ldrb r0, [r1]\n"
- " mov r2, #0x46\n"
- " mul r0, r0, r2\n"
- " add r0, r5, r0\n"
- " ldr r1, ._858 + 16 @ gUnknown_Debug_2023A76\n"
- " add r0, r0, r1\n"
- " mov r2, #0x0\n"
- " ldsh r1, [r0, r2]\n"
- " lsl r0, r1, #0x3\n"
- " sub r0, r0, r1\n"
- " lsl r0, r0, #0x2\n"
- " ldr r1, ._858 + 20 @ gBaseStats\n"
- " add r0, r0, r1\n"
- " ldrb r0, [r0, #0x16]\n"
- " mov r2, #0xd\n"
- " add r1, r0, #0\n"
- " mul r1, r1, r2\n"
- " ldr r0, ._858 + 24 @ gAbilityNames\n"
- " add r1, r1, r0\n"
- " mov r0, r8\n"
- " bl StringCopy\n"
- " mov r1, r9\n"
- " str r1, [sp]\n"
- " add r0, r4, #0\n"
- " mov r1, r8\n"
- " mov r2, sl\n"
- " add r3, r7, #0\n"
- " bl Text_InitWindow\n"
- " add r0, r4, #0\n"
- " bl Text_PrintWindow8002F44\n"
- " mov r0, #0x0\n"
- " mov r1, #0x12\n"
- " bl debug_sub_8010A7C\n"
- " ldrh r2, [r6, #0x6]\n"
- " mov r9, r2\n"
- " ldrb r0, [r6, #0x8]\n"
- " mov sl, r0\n"
- " ldrb r6, [r6, #0xa]\n"
- " str r6, [sp]\n"
- " add r0, r4, #0\n"
- " mov r1, r8\n"
- " mov r3, sl\n"
- " bl Text_InitWindow\n"
- " add r0, r4, #0\n"
- " bl Text_PrintWindow8002F44\n"
- " ldr r1, ._858 + 12 @ gUnknown_Debug_03004360\n"
- " ldrb r0, [r1]\n"
- " mov r2, #0x46\n"
- " mul r0, r0, r2\n"
- " add r5, r5, r0\n"
- " ldr r0, ._858 + 16 @ gUnknown_Debug_2023A76\n"
- " add r5, r5, r0\n"
- " mov r2, #0x0\n"
- " ldsh r1, [r5, r2]\n"
- " lsl r0, r1, #0x3\n"
- " sub r0, r0, r1\n"
- " lsl r0, r0, #0x2\n"
- " ldr r1, ._858 + 20 @ gBaseStats\n"
- " add r0, r0, r1\n"
- " ldrb r0, [r0, #0x17]\n"
- " mov r2, #0xd\n"
- " add r1, r0, #0\n"
- " mul r1, r1, r2\n"
- " ldr r0, ._858 + 24 @ gAbilityNames\n"
- " add r1, r1, r0\n"
- " mov r0, r8\n"
- " bl StringCopy\n"
- " str r6, [sp]\n"
- " add r0, r4, #0\n"
- " mov r1, r8\n"
- " mov r2, r9\n"
- " mov r3, sl\n"
- " bl Text_InitWindow\n"
- " add r0, r4, #0\n"
- " bl Text_PrintWindow8002F44\n"
- " b ._857\n"
- "._859:\n"
- " .align 2, 0\n"
- "._858:\n"
- " .word gUnknown_Debug_03004370\n"
- " .word gBattleTextBuff1\n"
- " .word gUnknown_Debug_821F58C\n"
- " .word gUnknown_Debug_03004360\n"
- " .word gUnknown_Debug_2023A76\n"
- " .word gBaseStats\n"
- " .word gAbilityNames\n"
- "._856:\n"
- " ldr r6, ._860 @ gBattleTextBuff1\n"
- " ldr r1, ._860 + 4 @ gAbilityNames\n"
- " add r0, r6, #0\n"
- " bl StringCopy\n"
- " ldr r5, ._860 + 8 @ gUnknown_Debug_03004370\n"
- " ldr r4, ._860 + 12 @ gUnknown_Debug_821F58C\n"
- " ldrh r2, [r4]\n"
- " ldrb r3, [r4, #0x2]\n"
- " ldrb r0, [r4, #0x4]\n"
- " str r0, [sp]\n"
- " add r0, r5, #0\n"
- " add r1, r6, #0\n"
- " bl Text_InitWindow\n"
- " add r0, r5, #0\n"
- " bl Text_PrintWindow8002F44\n"
- " ldrh r2, [r4, #0x6]\n"
- " ldrb r3, [r4, #0x8]\n"
- " ldrb r0, [r4, #0xa]\n"
- " str r0, [sp]\n"
- " add r0, r5, #0\n"
- " add r1, r6, #0\n"
- " bl Text_InitWindow\n"
- " add r0, r5, #0\n"
- " bl Text_PrintWindow8002F44\n"
- "._857:\n"
- " add sp, sp, #0x4\n"
- " pop {r3, r4, r5}\n"
- " mov r8, r3\n"
- " mov r9, r4\n"
- " mov sl, r5\n"
- " pop {r4, r5, r6, r7}\n"
- " pop {r0}\n"
- " bx r0\n"
- "._861:\n"
- " .align 2, 0\n"
- "._860:\n"
- " .word gBattleTextBuff1\n"
- " .word gAbilityNames\n"
- " .word gUnknown_Debug_03004370\n"
- " .word gUnknown_Debug_821F58C\n"
- "\n"
- );
+ if (a < 30)
+ {
+ debug_sub_8010A7C(0, 18);
+ Text_InitWindow(
+ &gUnknown_Debug_03004370,
+ gBattleTextBuff1,
+ gUnknown_Debug_821F58C[0],
+ gUnknown_Debug_821F58C[1],
+ gUnknown_Debug_821F58C[2]);
+ Text_PrintWindow8002F44(&gUnknown_Debug_03004370);
+ StringCopy(gBattleTextBuff1, gAbilityNames[gBaseStats[gUnknown_Debug_2023A76[gUnknown_Debug_03004360][a]].ability1]);
+ Text_InitWindow(
+ &gUnknown_Debug_03004370,
+ gBattleTextBuff1,
+ gUnknown_Debug_821F58C[0],
+ gUnknown_Debug_821F58C[1],
+ gUnknown_Debug_821F58C[2]);
+ Text_PrintWindow8002F44(&gUnknown_Debug_03004370);
+ debug_sub_8010A7C(0, 18);
+ Text_InitWindow(
+ &gUnknown_Debug_03004370,
+ gBattleTextBuff1,
+ gUnknown_Debug_821F58C[3],
+ gUnknown_Debug_821F58C[4],
+ gUnknown_Debug_821F58C[5]);
+ Text_PrintWindow8002F44(&gUnknown_Debug_03004370);
+ StringCopy(gBattleTextBuff1, gAbilityNames[gBaseStats[gUnknown_Debug_2023A76[gUnknown_Debug_03004360][a]].ability2]);
+ Text_InitWindow(
+ &gUnknown_Debug_03004370,
+ gBattleTextBuff1,
+ gUnknown_Debug_821F58C[3],
+ gUnknown_Debug_821F58C[4],
+ gUnknown_Debug_821F58C[5]);
+ Text_PrintWindow8002F44(&gUnknown_Debug_03004370);
+ }
+ else
+ {
+ StringCopy(gBattleTextBuff1, gAbilityNames[0]);
+ Text_InitWindow(
+ &gUnknown_Debug_03004370,
+ gBattleTextBuff1,
+ gUnknown_Debug_821F58C[0],
+ gUnknown_Debug_821F58C[1],
+ gUnknown_Debug_821F58C[2]);
+ Text_PrintWindow8002F44(&gUnknown_Debug_03004370);
+ Text_InitWindow(
+ &gUnknown_Debug_03004370,
+ gBattleTextBuff1,
+ gUnknown_Debug_821F58C[3],
+ gUnknown_Debug_821F58C[4],
+ gUnknown_Debug_821F58C[5]);
+ Text_PrintWindow8002F44(&gUnknown_Debug_03004370);
+ }
}
-__attribute__((naked))
-void debug_sub_8012540()
-{
- asm(
- " push {r4, r5, r6, lr}\n"
- " add sp, sp, #0xfffffffc\n"
- " ldr r5, ._862 @ gBattleTextBuff1\n"
- " ldr r0, ._862 + 4 @ gUnknown_Debug_2023A76\n"
- " add r0, r0, #0x44\n"
- " mov r2, #0x0\n"
- " ldsh r1, [r0, r2]\n"
- " add r0, r5, #0\n"
- " mov r2, #0x0\n"
- " mov r3, #0x1\n"
- " bl ConvertIntToDecimalStringN\n"
- " ldr r4, ._862 + 8 @ gUnknown_Debug_03004370\n"
- " ldr r1, ._862 + 12 @ gUnknown_Debug_821F424\n"
- " mov r3, #0x9b\n"
- " lsl r3, r3, #0x1\n"
- " add r0, r1, r3\n"
- " ldrh r2, [r0]\n"
- " mov r6, #0x9c\n"
- " lsl r6, r6, #0x1\n"
- " add r0, r1, r6\n"
- " ldrb r3, [r0]\n"
- " add r6, r6, #0x2\n"
- " add r0, r1, r6\n"
- " ldrb r0, [r0]\n"
- " str r0, [sp]\n"
- " add r0, r4, #0\n"
- " add r1, r5, #0\n"
- " bl Text_InitWindow\n"
- " add r0, r4, #0\n"
- " bl Text_PrintWindow8002F44\n"
- " add sp, sp, #0x4\n"
- " pop {r4, r5, r6}\n"
- " pop {r0}\n"
- " bx r0\n"
- "._863:\n"
- " .align 2, 0\n"
- "._862:\n"
- " .word gBattleTextBuff1\n"
- " .word gUnknown_Debug_2023A76\n"
- " .word gUnknown_Debug_03004370\n"
- " .word gUnknown_Debug_821F424\n"
- "\n"
- );
+void debug_sub_8012540(void)
+{
+ ConvertIntToDecimalStringN(gBattleTextBuff1, gUnknown_Debug_2023A76[0][0x22], 0, 1);
+ Text_InitWindow(
+ &gUnknown_Debug_03004370,
+ gBattleTextBuff1,
+ gUnknown_Debug_821F424[31][0],
+ gUnknown_Debug_821F424[31][1],
+ gUnknown_Debug_821F424[31][2]);
+ Text_PrintWindow8002F44(&gUnknown_Debug_03004370);
}
-__attribute__((naked))
-void debug_nullsub_3()
+void debug_nullsub_3(void)
{
- asm(
- " bx lr\n"
- "\n"
- );
}
-__attribute__((naked))
-void debug_sub_80125A0()
-{
- asm(
- " push {r4, lr}\n"
- " ldr r4, ._864 @ gSharedMem\n"
- " ldr r3, ._864 + 4 @ gUnknown_Debug_821F680\n"
- " ldr r2, ._864 + 8 @ gUnknown_Debug_030043A0\n"
- " ldr r0, ._864 + 12 @ gUnknown_Debug_030043A4\n"
- " ldrb r1, [r0]\n"
- " lsl r0, r1, #0x2\n"
- " add r0, r0, r1\n"
- " ldrb r2, [r2]\n"
- " add r0, r0, r2\n"
- " lsl r0, r0, #0x2\n"
- " ldr r1, ._864 + 16 @ gUnknown_Debug_03004360\n"
- " ldrb r2, [r1]\n"
- " mov r1, #0x8c\n"
- " mul r1, r1, r2\n"
- " add r0, r0, r1\n"
- " add r0, r0, r3\n"
- " ldr r0, [r0]\n"
- " add r0, r0, r4\n"
- " mov r1, #0x6d\n"
- " strb r1, [r0]\n"
- " pop {r4}\n"
- " pop {r0}\n"
- " bx r0\n"
- "._865:\n"
- " .align 2, 0\n"
- "._864:\n"
- " .word gSharedMem\n"
- " .word gUnknown_Debug_821F680\n"
- " .word gUnknown_Debug_030043A0\n"
- " .word gUnknown_Debug_030043A4\n"
- " .word gUnknown_Debug_03004360\n"
- "\n"
- );
+extern const u32 gUnknown_Debug_821F680[][0x23];
+
+void debug_sub_80125A0(void)
+{
+ gSharedMem[gUnknown_Debug_821F680[gUnknown_Debug_03004360][gUnknown_Debug_030043A0 + gUnknown_Debug_030043A4 * 5]] = 0x6D;
}
-__attribute__((naked))
-void debug_sub_80125E4()
-{
- asm(
- " push {r4, lr}\n"
- " ldr r4, ._866 @ gSharedMem\n"
- " ldr r3, ._866 + 4 @ gUnknown_Debug_821F680\n"
- " ldr r2, ._866 + 8 @ gUnknown_Debug_030043A0\n"
- " ldr r0, ._866 + 12 @ gUnknown_Debug_030043A4\n"
- " ldrb r1, [r0]\n"
- " lsl r0, r1, #0x2\n"
- " add r0, r0, r1\n"
- " ldrb r2, [r2]\n"
- " add r0, r0, r2\n"
- " lsl r0, r0, #0x2\n"
- " ldr r1, ._866 + 16 @ gUnknown_Debug_03004360\n"
- " ldrb r2, [r1]\n"
- " mov r1, #0x8c\n"
- " mul r1, r1, r2\n"
- " add r0, r0, r1\n"
- " add r0, r0, r3\n"
- " ldr r0, [r0]\n"
- " add r0, r0, r4\n"
- " mov r1, #0x81\n"
- " strb r1, [r0]\n"
- " pop {r4}\n"
- " pop {r0}\n"
- " bx r0\n"
- "._867:\n"
- " .align 2, 0\n"
- "._866:\n"
- " .word gSharedMem\n"
- " .word gUnknown_Debug_821F680\n"
- " .word gUnknown_Debug_030043A0\n"
- " .word gUnknown_Debug_030043A4\n"
- " .word gUnknown_Debug_03004360\n"
- "\n"
- );
+void debug_sub_80125E4(void)
+{
+ gSharedMem[gUnknown_Debug_821F680[gUnknown_Debug_03004360][gUnknown_Debug_030043A0 + gUnknown_Debug_030043A4 * 5]] = 0x81;
}
void debug_sub_8012628(void)
@@ -3984,7 +2808,7 @@ void debug_sub_8012688(void)
s32 i;
u8 spriteId;
u8 taskId;
-
+
for (i = 0; i < 411; i++)
gUnknown_Debug_2023B62[i] = 0;
SetHBlankCallback(NULL);
@@ -7288,351 +6112,6 @@ u8 GetWhoStrikesFirst(u8 bank1, u8 bank2, bool8 ignoreMovePriorities)
return strikesFirst;
}
-// The debug version should be identical, but has a strange register swap, and
-// seems to be affected by other functions, which is bizarre.
-#if DEBUG
-__attribute__((naked))
-void SetActionsAndBanksTurnOrder(void)
-{
- asm("\
- push {r4, r5, r6, r7, lr}\n\
- mov r7, sl\n\
- mov r6, r9\n\
- mov r5, r8\n\
- push {r5, r6, r7}\n\
- mov r3, #0x0\n\
- ldr r0, ._L1550\n\
- ldrh r1, [r0]\n\
- mov r0, #0x80\n\
- and r0, r0, r1\n\
- cmp r0, #0\n\
- beq ._L1499 @cond_branch\n\
- ldr r0, ._L1550+0x4\n\
- strb r3, [r0]\n\
- ldr r4, ._L1550+0x8\n\
- mov r8, r0\n\
- ldrb r0, [r4]\n\
- cmp r3, r0\n\
- bcc ._LCB12758\n\
- b ._L1505 @long jump\n\
-._LCB12758:\n\
- ldr r7, ._L1550+0xc\n\
- ldr r6, ._L1550+0x10\n\
- mov r2, r8\n\
- ldr r5, ._L1550+0x14\n\
-._L1503:\n\
- add r1, r3, r7\n\
- ldrb r0, [r2]\n\
- add r0, r0, r6\n\
- ldrb r0, [r0]\n\
- strb r0, [r1]\n\
- add r1, r3, r5\n\
- ldrb r0, [r2]\n\
- strb r0, [r1]\n\
- add r3, r3, #0x1\n\
- ldrb r0, [r2]\n\
- add r0, r0, #0x1\n\
- strb r0, [r2]\n\
- lsl r0, r0, #0x18\n\
- lsr r0, r0, #0x18\n\
- ldrb r1, [r4]\n\
- cmp r0, r1\n\
- bcc ._L1503 @cond_branch\n\
- b ._L1505\n\
-._L1551:\n\
- .align 2, 0\n\
-._L1550:\n\
- .word gBattleTypeFlags\n\
- .word gActiveBank\n\
- .word gNoOfAllBanks\n\
- .word gActionsByTurnOrder\n\
- .word gActionForBanks\n\
- .word gBanksByTurnOrder\n\
-._L1499:\n\
- mov r0, #0x2\n\
- and r0, r0, r1\n\
- cmp r0, #0\n\
- beq ._L1506 @cond_branch\n\
- ldr r0, ._L1552\n\
- strb r3, [r0]\n\
- ldr r1, ._L1552+0x4\n\
- mov r8, r0\n\
- add r2, r1, #0\n\
- ldrb r2, [r2]\n\
- cmp r3, r2\n\
- bcs ._L1513 @cond_branch\n\
- ldr r0, ._L1552+0x8\n\
- ldrb r1, [r0]\n\
- add r4, r0, #0\n\
- cmp r1, #0x3\n\
- beq ._L1548 @cond_branch\n\
-._L1509:\n\
- mov r7, r8\n\
- ldrb r0, [r7]\n\
- add r0, r0, #0x1\n\
- strb r0, [r7]\n\
- lsl r0, r0, #0x18\n\
- lsr r0, r0, #0x18\n\
- ldr r1, ._L1552+0x4\n\
- ldrb r1, [r1]\n\
- cmp r0, r1\n\
- bcs ._L1513 @cond_branch\n\
- ldrb r0, [r7]\n\
- add r0, r0, r4\n\
- ldrb r0, [r0]\n\
- cmp r0, #0x3\n\
- bne ._L1509 @cond_branch\n\
- b ._L1548\n\
-._L1553:\n\
- .align 2, 0\n\
-._L1552:\n\
- .word gActiveBank\n\
- .word gNoOfAllBanks\n\
- .word gActionForBanks\n\
-._L1506:\n\
- ldr r0, ._L1554\n\
- ldrb r0, [r0]\n\
- ldr r2, ._L1554+0x4\n\
- mov r8, r2\n\
- cmp r0, #0x3\n\
- bne ._L1513 @cond_branch\n\
- strb r3, [r2]\n\
-._L1548:\n\
- mov r3, #0x5\n\
-._L1513:\n\
- cmp r3, #0x5\n\
- bne ._L1515 @cond_branch\n\
- ldr r6, ._L1554+0x8\n\
- ldr r1, ._L1554\n\
- mov r3, r8\n\
- ldrb r0, [r3]\n\
- add r0, r0, r1\n\
- ldrb r0, [r0]\n\
- strb r0, [r6]\n\
- ldr r2, ._L1554+0xc\n\
- ldrb r0, [r3]\n\
- strb r0, [r2]\n\
- mov r3, #0x1\n\
- mov r5, #0x0\n\
- add r4, r1, #0\n\
- ldr r7, ._L1554+0x10\n\
- mov r9, r7\n\
- ldr r0, ._L1554+0x14\n\
- mov ip, r0\n\
- ldr r1, ._L1554+0x18\n\
- mov sl, r1\n\
- ldr r7, ._L1554+0x1c\n\
- ldrb r7, [r7]\n\
- cmp r5, r7\n\
- bge ._L1517 @cond_branch\n\
- add r7, r6, #0\n\
- add r6, r4, #0\n\
- add r4, r2, #0\n\
- ldr r2, ._L1554+0x1c\n\
-._L1519:\n\
- mov r0, r8\n\
- ldrb r0, [r0]\n\
- cmp r5, r0\n\
- beq ._L1518 @cond_branch\n\
- add r1, r3, r7\n\
- add r0, r5, r6\n\
- ldrb r0, [r0]\n\
- strb r0, [r1]\n\
- add r0, r3, r4\n\
- strb r5, [r0]\n\
- add r3, r3, #0x1\n\
-._L1518:\n\
- add r5, r5, #0x1\n\
- ldrb r1, [r2]\n\
- cmp r5, r1\n\
- blt ._L1519 @cond_branch\n\
-._L1517:\n\
- mov r2, ip\n\
- mov r3, r9\n\
- str r2, [r3]\n\
- ldr r1, ._L1554+0x20\n\
- add r1, r1, sl\n\
- mov r0, #0x0\n\
- strb r0, [r1]\n\
- b ._L1498\n\
-._L1555:\n\
- .align 2, 0\n\
-._L1554:\n\
- .word gActionForBanks\n\
- .word gActiveBank\n\
- .word gActionsByTurnOrder\n\
- .word gBanksByTurnOrder\n\
- .word gBattleMainFunc\n\
- .word CheckFocusPunch_ClearVarsBeforeTurnStarts\n\
- .word gSharedMem\n\
- .word gNoOfAllBanks\n\
- .word 0x1601d\n\
-._L1515:\n\
- mov r0, #0x0\n\
- mov r7, r8\n\
- strb r0, [r7]\n\
- ldr r1, ._L1556\n\
- ldrb r0, [r1]\n\
- cmp r0, #0\n\
- beq ._L1524 @cond_branch\n\
- ldr r6, ._L1556+0x4\n\
- mov r2, r8\n\
- ldr r5, ._L1556+0x8\n\
- ldr r4, ._L1556+0xc\n\
-._L1526:\n\
- ldrb r0, [r2]\n\
- add r0, r0, r6\n\
- ldrb r1, [r0]\n\
- sub r0, r1, #0x1\n\
- lsl r0, r0, #0x18\n\
- lsr r0, r0, #0x18\n\
- cmp r0, #0x1\n\
- bhi ._L1525 @cond_branch\n\
- add r0, r3, r5\n\
- strb r1, [r0]\n\
- add r1, r3, r4\n\
- mov r7, r8\n\
- ldrb r0, [r7]\n\
- strb r0, [r1]\n\
- add r3, r3, #0x1\n\
-._L1525:\n\
- ldrb r0, [r2]\n\
- add r0, r0, #0x1\n\
- strb r0, [r2]\n\
- lsl r0, r0, #0x18\n\
- lsr r0, r0, #0x18\n\
- ldr r1, ._L1556\n\
- ldrb r1, [r1]\n\
- cmp r0, r1\n\
- bcc ._L1526 @cond_branch\n\
-._L1524:\n\
- mov r0, #0x0\n\
- mov r2, r8\n\
- strb r0, [r2]\n\
- ldr r7, ._L1556\n\
- ldrb r0, [r7]\n\
- cmp r0, #0\n\
- beq ._L1530 @cond_branch\n\
- ldr r6, ._L1556+0x4\n\
- ldr r5, ._L1556+0x8\n\
- ldr r4, ._L1556+0xc\n\
-._L1532:\n\
- ldrb r0, [r2]\n\
- add r0, r0, r6\n\
- ldrb r1, [r0]\n\
- sub r0, r1, #0x1\n\
- lsl r0, r0, #0x18\n\
- lsr r0, r0, #0x18\n\
- cmp r0, #0x1\n\
- bls ._L1531 @cond_branch\n\
- add r0, r3, r5\n\
- strb r1, [r0]\n\
- add r1, r3, r4\n\
- mov r7, r8\n\
- ldrb r0, [r7]\n\
- strb r0, [r1]\n\
- add r3, r3, #0x1\n\
-._L1531:\n\
- ldrb r0, [r2]\n\
- add r0, r0, #0x1\n\
- strb r0, [r2]\n\
- lsl r0, r0, #0x18\n\
- lsr r0, r0, #0x18\n\
- ldr r1, ._L1556\n\
- ldrb r1, [r1]\n\
- cmp r0, r1\n\
- bcc ._L1532 @cond_branch\n\
-._L1530:\n\
- mov r5, #0x0\n\
- b ._L1549\n\
-._L1557:\n\
- .align 2, 0\n\
-._L1556:\n\
- .word gNoOfAllBanks\n\
- .word gActionForBanks\n\
- .word gActionsByTurnOrder\n\
- .word gBanksByTurnOrder\n\
-._L1538:\n\
- add r4, r5, #0x1\n\
- add r7, r4, #0\n\
- ldrb r1, [r1]\n\
- cmp r7, r1\n\
- bge ._L1537 @cond_branch\n\
- ldr r6, ._L1558\n\
- lsl r2, r5, #0x18\n\
- mov r8, r2\n\
-._L1542:\n\
- ldr r0, ._L1558+0x4\n\
- add r1, r5, r0\n\
- ldrb r3, [r1]\n\
- add r0, r4, r0\n\
- ldrb r1, [r0]\n\
- add r0, r5, r6\n\
- ldrb r2, [r0]\n\
- cmp r2, #0x1\n\
- beq ._L1541 @cond_branch\n\
- add r0, r4, r6\n\
- ldrb r0, [r0]\n\
- cmp r0, #0x1\n\
- beq ._L1541 @cond_branch\n\
- cmp r2, #0x2\n\
- beq ._L1541 @cond_branch\n\
- cmp r0, #0x2\n\
- beq ._L1541 @cond_branch\n\
- add r0, r3, #0\n\
- mov r2, #0x0\n\
- bl GetWhoStrikesFirst\n\
- lsl r0, r0, #0x18\n\
- cmp r0, #0\n\
- beq ._L1541 @cond_branch\n\
- lsl r1, r4, #0x18\n\
- lsr r1, r1, #0x18\n\
- mov r3, r8\n\
- lsr r0, r3, #0x18\n\
- bl SwapTurnOrder\n\
-._L1541:\n\
- add r4, r4, #0x1\n\
- ldr r0, ._L1558+0x8\n\
- ldrb r0, [r0]\n\
- cmp r4, r0\n\
- blt ._L1542 @cond_branch\n\
-._L1537:\n\
- add r5, r7, #0\n\
-._L1549:\n\
- ldr r1, ._L1558+0x8\n\
- ldrb r0, [r1]\n\
- sub r0, r0, #0x1\n\
- cmp r5, r0\n\
- blt ._L1538 @cond_branch\n\
-._L1505:\n\
- ldr r1, ._L1558+0xc\n\
- ldr r0, ._L1558+0x10\n\
- str r0, [r1]\n\
- ldr r0, ._L1558+0x14\n\
- ldr r7, ._L1558+0x18\n\
- add r0, r0, r7\n\
- mov r1, #0x0\n\
- strb r1, [r0]\n\
-._L1498:\n\
- pop {r3, r4, r5}\n\
- mov r8, r3\n\
- mov r9, r4\n\
- mov sl, r5\n\
- pop {r4, r5, r6, r7}\n\
- pop {r0}\n\
- bx r0\n\
-._L1559:\n\
- .align 2, 0\n\
-._L1558:\n\
- .word gActionsByTurnOrder\n\
- .word gBanksByTurnOrder\n\
- .word gNoOfAllBanks\n\
- .word gBattleMainFunc\n\
- .word CheckFocusPunch_ClearVarsBeforeTurnStarts\n\
- .word gSharedMem\n\
- .word 0x1601d");
-}
-#else
void SetActionsAndBanksTurnOrder(void)
{
s32 var = 0;
@@ -7729,7 +6208,6 @@ void SetActionsAndBanksTurnOrder(void)
gBattleMainFunc = CheckFocusPunch_ClearVarsBeforeTurnStarts;
eFocusPunchBank = 0;
}
-#endif
static void TurnValuesCleanUp(bool8 var0)
{
diff --git a/src/battle/battle_4.c b/src/battle/battle_4.c
index 8b81139fb..f10cd2506 100644
--- a/src/battle/battle_4.c
+++ b/src/battle/battle_4.c
@@ -95,6 +95,7 @@ enum
};
//extern needed variables
+extern u8 gUnknown_02023A14_50;
extern u8 gCritMultiplier;
extern s32 gBattleMoveDamage;
extern u32 gStatuses3[BATTLE_BANKS_COUNT];
@@ -5018,169 +5019,26 @@ _0801F610: .4byte BattleScript_SAtkDown2\n\
}
#endif // NONMATCHING
-#if DEBUG
-__attribute__((naked))
-static void atk15_seteffectwithchance(void)
-{
- asm("\
- push {r4, lr}\n\
- ldr r2, ._1037 @ gBattleMons\n\
- ldr r0, ._1037 + 4 @ gBankAttacker\n\
- ldrb r1, [r0]\n\
- mov r0, #0x58\n\
- mul r0, r0, r1\n\
- add r0, r0, r2\n\
- add r0, r0, #0x20\n\
- ldrb r0, [r0]\n\
- cmp r0, #0x20\n\
- bne ._1035 @cond_branch\n\
- ldr r2, ._1037 + 8 @ gBattleMoves\n\
- ldr r0, ._1037 + 12 @ gCurrentMove\n\
- ldrh r1, [r0]\n\
- lsl r0, r1, #0x1\n\
- add r0, r0, r1\n\
- lsl r0, r0, #0x2\n\
- add r0, r0, r2\n\
- ldrb r0, [r0, #0x5]\n\
- lsl r4, r0, #0x1\n\
- b ._1036\n\
-._1038:\n\
- .align 2, 0\n\
-._1037:\n\
- .word gBattleMons\n\
- .word gBankAttacker\n\
- .word gBattleMoves\n\
- .word gCurrentMove\n\
-._1035:\n\
- ldr r2, ._1045 @ gBattleMoves\n\
- ldr r0, ._1045 + 4 @ gCurrentMove\n\
- ldrh r1, [r0]\n\
- lsl r0, r1, #0x1\n\
- add r0, r0, r1\n\
- lsl r0, r0, #0x2\n\
- add r0, r0, r2\n\
- ldrb r4, [r0, #0x5]\n\
-._1036:\n\
- ldr r0, ._1045 + 8 @ gUnknown_02023A14_50\n\
- ldrb r1, [r0]\n\
- mov r0, #0x4\n\
- and r0, r0, r1\n\
- ldr r2, ._1045 + 12 @ gBattleCommunication\n\
- cmp r0, #0\n\
- beq ._1039 @cond_branch\n\
- ldrb r1, [r2, #0x3]\n\
- mov r0, #0x80\n\
- and r0, r0, r1\n\
- cmp r0, #0\n\
- bne ._1040 @cond_branch\n\
- ldr r0, ._1045 + 16 @ gBattleMoveFlags\n\
- ldrb r1, [r0]\n\
- mov r0, #0x29\n\
- and r0, r0, r1\n\
- cmp r0, #0\n\
- beq ._1050 @cond_branch\n\
-._1039:\n\
- ldrb r1, [r2, #0x3]\n\
- mov r0, #0x80\n\
- and r0, r0, r1\n\
- cmp r0, #0\n\
- beq ._1043 @cond_branch\n\
-._1040:\n\
- ldr r0, ._1045 + 16 @ gBattleMoveFlags\n\
- ldrb r1, [r0]\n\
- mov r0, #0x29\n\
- and r0, r0, r1\n\
- cmp r0, #0\n\
- bne ._1043 @cond_branch\n\
- ldr r2, ._1045 + 12 @ gBattleCommunication\n\
- ldrb r1, [r2, #0x3]\n\
- mov r0, #0x7f\n\
- and r0, r0, r1\n\
- strb r0, [r2, #0x3]\n\
- b ._1044\n\
-._1046:\n\
- .align 2, 0\n\
-._1045:\n\
- .word gBattleMoves\n\
- .word gCurrentMove\n\
- .word gUnknown_02023A14_50\n\
- .word gBattleCommunication\n\
- .word gBattleMoveFlags\n\
-._1043:\n\
- bl Random\n\
- lsl r0, r0, #0x10\n\
- lsr r0, r0, #0x10\n\
- mov r1, #0x64\n\
- bl __umodsi3\n\
- lsl r0, r0, #0x10\n\
- lsr r0, r0, #0x10\n\
- cmp r0, r4\n\
- bhi ._1049 @cond_branch\n\
- ldr r0, ._1052 @ gBattleCommunication\n\
- ldrb r0, [r0, #0x3]\n\
- cmp r0, #0\n\
- beq ._1049 @cond_branch\n\
- ldr r0, ._1052 + 4 @ gBattleMoveFlags\n\
- ldrb r1, [r0]\n\
- mov r0, #0x29\n\
- and r0, r0, r1\n\
- cmp r0, #0\n\
- bne ._1049 @cond_branch\n\
- cmp r4, #0x63\n\
- bls ._1050 @cond_branch\n\
-._1044:\n\
- mov r0, #0x0\n\
- mov r1, #0x80\n\
- bl SetMoveEffect\n\
- b ._1054\n\
-._1053:\n\
- .align 2, 0\n\
-._1052:\n\
- .word gBattleCommunication\n\
- .word gBattleMoveFlags\n\
-._1050:\n\
- mov r0, #0x0\n\
- mov r1, #0x0\n\
- bl SetMoveEffect\n\
- b ._1054\n\
-._1049:\n\
- ldr r1, ._1055 @ gBattlescriptCurrInstr\n\
- ldr r0, [r1]\n\
- add r0, r0, #0x1\n\
- str r0, [r1]\n\
-._1054:\n\
- ldr r0, ._1055 + 4 @ gBattleCommunication\n\
- mov r1, #0x0\n\
- strb r1, [r0, #0x3]\n\
- ldr r0, ._1055 + 8 @ \n\
- ldr r2, ._1055 + 12 @ \n\
- add r0, r0, r2\n\
- strb r1, [r0]\n\
- pop {r4}\n\
- pop {r0}\n\
- bx r0\n\
-._1056:\n\
- .align 2, 0\n\
-._1055:\n\
- .word gBattlescriptCurrInstr\n\
- .word gBattleCommunication\n\
- .word +0x2000000\n\
- .word 0x16112");
-}
-#else
static void atk15_seteffectwithchance(void)
{
u32 PercentChance;
+
if (gBattleMons[gBankAttacker].ability == ABILITY_SERENE_GRACE)
PercentChance = gBattleMoves[gCurrentMove].secondaryEffectChance * 2;
else
PercentChance = gBattleMoves[gCurrentMove].secondaryEffectChance;
- if (gBattleCommunication[MOVE_EFFECT_BYTE] & 0x80 && !(gBattleMoveFlags & MOVESTATUS_NOEFFECT))
+
+ if (DEBUG && (gUnknown_02023A14_50 & 4)
+ && !(gBattleCommunication[MOVE_EFFECT_BYTE] & 0x80) && !(gBattleMoveFlags & MOVESTATUS_NOEFFECT))
+ {
+ SetMoveEffect(0, 0);
+ }
+ else if ((gBattleCommunication[MOVE_EFFECT_BYTE] & 0x80) && !(gBattleMoveFlags & MOVESTATUS_NOEFFECT))
{
gBattleCommunication[MOVE_EFFECT_BYTE] &= 0x7F;
SetMoveEffect(0, 0x80);
}
- else if (Random() % 100 <= PercentChance && gBattleCommunication[MOVE_EFFECT_BYTE] && !(gBattleMoveFlags & MOVESTATUS_NOEFFECT))
+ else if (Random() % 100 <= PercentChance && gBattleCommunication[MOVE_EFFECT_BYTE] != 0 && !(gBattleMoveFlags & MOVESTATUS_NOEFFECT))
{
if (PercentChance >= 100)
SetMoveEffect(0, 0x80);
@@ -5188,11 +5046,13 @@ static void atk15_seteffectwithchance(void)
SetMoveEffect(0, 0);
}
else
+ {
gBattlescriptCurrInstr++;
+ }
+
gBattleCommunication[MOVE_EFFECT_BYTE] = 0;
gBattleStruct->unk16112 = 0;
}
-#endif
static void atk16_seteffectprimary(void)
{
diff --git a/src/battle/battle_controller_opponent.c b/src/battle/battle_controller_opponent.c
index 8e8743dbc..e986eb38d 100644
--- a/src/battle/battle_controller_opponent.c
+++ b/src/battle/battle_controller_opponent.c
@@ -1217,19 +1217,19 @@ void OpponentHandleTrainerThrow(void)
#if DEBUG
if (gUnknown_02023A14_50 & 0x10)
{
- trainerPicIndex = gSharedMem[0x160A3];
+ trainerPicIndex = gSharedMem[0x160A3];
}
else
#endif
{
- if (gTrainerBattleOpponent == 0x400)
- trainerPicIndex = GetSecretBaseTrainerPicIndex();
- else if (gBattleTypeFlags & BATTLE_TYPE_BATTLE_TOWER)
- trainerPicIndex = get_trainer_class_pic_index();
- else if (gBattleTypeFlags & BATTLE_TYPE_EREADER_TRAINER)
- trainerPicIndex = GetEReaderTrainerPicIndex();
- else
- trainerPicIndex = gTrainers[gTrainerBattleOpponent].trainerPic;
+ if (gTrainerBattleOpponent == 0x400)
+ trainerPicIndex = GetSecretBaseTrainerPicIndex();
+ else if (gBattleTypeFlags & BATTLE_TYPE_BATTLE_TOWER)
+ trainerPicIndex = get_trainer_class_pic_index();
+ else if (gBattleTypeFlags & BATTLE_TYPE_EREADER_TRAINER)
+ trainerPicIndex = GetEReaderTrainerPicIndex();
+ else
+ trainerPicIndex = gTrainers[gTrainerBattleOpponent].trainerPic;
}
sub_8031A6C(trainerPicIndex, gActiveBank);
@@ -1442,308 +1442,308 @@ __attribute__((naked))
void OpponentHandlecmd20(void)
{
asm("\
- push {r4, r5, r6, r7, lr}\n\
- mov r7, sl\n\
- mov r6, r9\n\
- mov r5, r8\n\
- push {r5, r6, r7}\n\
- ldr r6, ._549 @ gActiveBank\n\
- ldrb r0, [r6]\n\
- lsl r0, r0, #0x9\n\
- ldr r1, ._549 + 4 @ gBattleBufferA\n\
- add r5, r0, r1\n\
- ldr r2, ._549 + 8 @ gUnknown_02023A14_50\n\
- ldrb r1, [r2]\n\
- mov r0, #0x4\n\
- and r0, r0, r1\n\
- mov sl, r6\n\
- cmp r0, #0\n\
- beq ._546 @cond_branch\n\
- ldr r0, ._549 + 12 @ gBattleMoves\n\
- mov r9, r0\n\
- ldr r1, ._549 + 16 @ \n\
- mov ip, r1\n\
- add r7, r6, #0\n\
- mov r0, #0x2\n\
- mov r8, r0\n\
- ldr r6, ._549 + 20 @ \n\
+ push {r4, r5, r6, r7, lr}\n\
+ mov r7, sl\n\
+ mov r6, r9\n\
+ mov r5, r8\n\
+ push {r5, r6, r7}\n\
+ ldr r6, ._549 @ gActiveBank\n\
+ ldrb r0, [r6]\n\
+ lsl r0, r0, #0x9\n\
+ ldr r1, ._549 + 4 @ gBattleBufferA\n\
+ add r5, r0, r1\n\
+ ldr r2, ._549 + 8 @ gUnknown_02023A14_50\n\
+ ldrb r1, [r2]\n\
+ mov r0, #0x4\n\
+ and r0, r0, r1\n\
+ mov sl, r6\n\
+ cmp r0, #0\n\
+ beq ._546 @cond_branch\n\
+ ldr r0, ._549 + 12 @ gBattleMoves\n\
+ mov r9, r0\n\
+ ldr r1, ._549 + 16 @ \n\
+ mov ip, r1\n\
+ add r7, r6, #0\n\
+ mov r0, #0x2\n\
+ mov r8, r0\n\
+ ldr r6, ._549 + 20 @ \n\
._552:\n\
- ldrb r1, [r7]\n\
- mov r0, r8\n\
- and r0, r0, r1\n\
- lsl r0, r0, #0x18\n\
- lsr r0, r0, #0x19\n\
- add r0, r0, r6\n\
- mov r1, ip\n\
- add r3, r0, r1\n\
- ldrb r1, [r3]\n\
- lsl r0, r1, #0x1\n\
- add r0, r5, r0\n\
- ldrh r2, [r0]\n\
- add r4, r1, #0\n\
- cmp r2, #0\n\
- beq ._547 @cond_branch\n\
- add r0, r4, #1\n\
- strb r0, [r3]\n\
- b ._548\n\
+ ldrb r1, [r7]\n\
+ mov r0, r8\n\
+ and r0, r0, r1\n\
+ lsl r0, r0, #0x18\n\
+ lsr r0, r0, #0x19\n\
+ add r0, r0, r6\n\
+ mov r1, ip\n\
+ add r3, r0, r1\n\
+ ldrb r1, [r3]\n\
+ lsl r0, r1, #0x1\n\
+ add r0, r5, r0\n\
+ ldrh r2, [r0]\n\
+ add r4, r1, #0\n\
+ cmp r2, #0\n\
+ beq ._547 @cond_branch\n\
+ add r0, r4, #1\n\
+ strb r0, [r3]\n\
+ b ._548\n\
._550:\n\
- .align 2, 0\n\
+ .align 2, 0\n\
._549:\n\
- .word gActiveBank\n\
- .word gBattleBufferA+4\n\
- .word gUnknown_02023A14_50\n\
- .word gBattleMoves\n\
- .word +0x2000000\n\
- .word 0x1609e\n\
+ .word gActiveBank\n\
+ .word gBattleBufferA+4\n\
+ .word gUnknown_02023A14_50\n\
+ .word gBattleMoves\n\
+ .word +0x2000000\n\
+ .word 0x1609e\n\
._547:\n\
- strb r2, [r3]\n\
+ strb r2, [r3]\n\
._548:\n\
- ldrb r0, [r7]\n\
- mov r1, r8\n\
- and r1, r1, r0\n\
- lsl r1, r1, #0x18\n\
- lsr r1, r1, #0x19\n\
- add r1, r1, r6\n\
- add r1, r1, ip\n\
- ldrb r0, [r1]\n\
- cmp r0, #0x3\n\
- bls ._551 @cond_branch\n\
- mov r0, #0x0\n\
- strb r0, [r1]\n\
+ ldrb r0, [r7]\n\
+ mov r1, r8\n\
+ and r1, r1, r0\n\
+ lsl r1, r1, #0x18\n\
+ lsr r1, r1, #0x19\n\
+ add r1, r1, r6\n\
+ add r1, r1, ip\n\
+ ldrb r0, [r1]\n\
+ cmp r0, #0x3\n\
+ bls ._551 @cond_branch\n\
+ mov r0, #0x0\n\
+ strb r0, [r1]\n\
._551:\n\
- cmp r2, #0\n\
- beq ._552 @cond_branch\n\
- lsl r0, r2, #0x1\n\
- add r0, r0, r2\n\
- lsl r0, r0, #0x2\n\
- add r0, r0, r9\n\
- ldrb r3, [r0, #0x6]\n\
- mov r0, #0x12\n\
- and r0, r0, r3\n\
- cmp r0, #0\n\
- beq ._553 @cond_branch\n\
- mov r1, sl\n\
- ldrb r0, [r1]\n\
- b ._561\n\
+ cmp r2, #0\n\
+ beq ._552 @cond_branch\n\
+ lsl r0, r2, #0x1\n\
+ add r0, r0, r2\n\
+ lsl r0, r0, #0x2\n\
+ add r0, r0, r9\n\
+ ldrb r3, [r0, #0x6]\n\
+ mov r0, #0x12\n\
+ and r0, r0, r3\n\
+ cmp r0, #0\n\
+ beq ._553 @cond_branch\n\
+ mov r1, sl\n\
+ ldrb r0, [r1]\n\
+ b ._561\n\
._553:\n\
- ldr r0, ._559 @ gBattleTypeFlags\n\
- ldrh r1, [r0]\n\
- mov r0, #0x1\n\
- and r0, r0, r1\n\
- cmp r0, #0\n\
- beq ._557 @cond_branch\n\
- ldr r0, ._559 + 4 @ gUnknown_02023A14_50\n\
- ldrb r1, [r0]\n\
- mov r5, #0x2\n\
- add r0, r5, #0\n\
- and r0, r0, r1\n\
- cmp r0, #0\n\
- beq ._556 @cond_branch\n\
- cmp r3, #0\n\
- bne ._557 @cond_branch\n\
- mov r1, sl\n\
- ldrb r0, [r1]\n\
- bl GetBankIdentity\n\
- mov r1, #0x2\n\
- eor r0, r0, r1\n\
- lsl r0, r0, #0x18\n\
- lsr r0, r0, #0x18\n\
- b ._558\n\
+ ldr r0, ._559 @ gBattleTypeFlags\n\
+ ldrh r1, [r0]\n\
+ mov r0, #0x1\n\
+ and r0, r0, r1\n\
+ cmp r0, #0\n\
+ beq ._557 @cond_branch\n\
+ ldr r0, ._559 + 4 @ gUnknown_02023A14_50\n\
+ ldrb r1, [r0]\n\
+ mov r5, #0x2\n\
+ add r0, r5, #0\n\
+ and r0, r0, r1\n\
+ cmp r0, #0\n\
+ beq ._556 @cond_branch\n\
+ cmp r3, #0\n\
+ bne ._557 @cond_branch\n\
+ mov r1, sl\n\
+ ldrb r0, [r1]\n\
+ bl GetBankIdentity\n\
+ mov r1, #0x2\n\
+ eor r0, r0, r1\n\
+ lsl r0, r0, #0x18\n\
+ lsr r0, r0, #0x18\n\
+ b ._558\n\
._560:\n\
- .align 2, 0\n\
+ .align 2, 0\n\
._559:\n\
- .word gBattleTypeFlags\n\
- .word gUnknown_02023A14_50\n\
+ .word gBattleTypeFlags\n\
+ .word gUnknown_02023A14_50\n\
._556:\n\
- bl Random\n\
- add r1, r5, #0\n\
- and r1, r1, r0\n\
- lsl r1, r1, #0x10\n\
- lsr r0, r1, #0x10\n\
- b ._561\n\
+ bl Random\n\
+ add r1, r5, #0\n\
+ and r1, r1, r0\n\
+ lsl r1, r1, #0x10\n\
+ lsr r0, r1, #0x10\n\
+ b ._561\n\
._557:\n\
- mov r0, #0x0\n\
+ mov r0, #0x0\n\
._558:\n\
- bl GetBankByIdentity\n\
- lsl r0, r0, #0x18\n\
- lsr r0, r0, #0x18\n\
+ bl GetBankByIdentity\n\
+ lsl r0, r0, #0x18\n\
+ lsr r0, r0, #0x18\n\
._561:\n\
- lsl r2, r0, #0x8\n\
- orr r2, r2, r4\n\
- mov r0, #0x1\n\
- mov r1, #0xa\n\
+ lsl r2, r0, #0x8\n\
+ orr r2, r2, r4\n\
+ mov r0, #0x1\n\
+ mov r1, #0xa\n\
._569:\n\
- bl Emitcmd33\n\
+ bl Emitcmd33\n\
._573:\n\
- bl OpponentBufferExecCompleted\n\
- b ._562\n\
+ bl OpponentBufferExecCompleted\n\
+ b ._562\n\
._546:\n\
- ldr r0, ._567 @ gBattleTypeFlags\n\
- ldrh r1, [r0]\n\
- mov r0, #0x93\n\
- lsl r0, r0, #0x3\n\
- and r0, r0, r1\n\
- cmp r0, #0\n\
- beq ._563 @cond_branch\n\
- bl BattleAI_SetupAIData\n\
- bl BattleAI_GetAIActionToUse\n\
- lsl r0, r0, #0x18\n\
- lsr r4, r0, #0x18\n\
- cmp r4, #0x4\n\
- beq ._564 @cond_branch\n\
- cmp r4, #0x5\n\
- bne ._565 @cond_branch\n\
- mov r0, #0x1\n\
- mov r1, #0x4\n\
- b ._566\n\
+ ldr r0, ._567 @ gBattleTypeFlags\n\
+ ldrh r1, [r0]\n\
+ mov r0, #0x93\n\
+ lsl r0, r0, #0x3\n\
+ and r0, r0, r1\n\
+ cmp r0, #0\n\
+ beq ._563 @cond_branch\n\
+ bl BattleAI_SetupAIData\n\
+ bl BattleAI_GetAIActionToUse\n\
+ lsl r0, r0, #0x18\n\
+ lsr r4, r0, #0x18\n\
+ cmp r4, #0x4\n\
+ beq ._564 @cond_branch\n\
+ cmp r4, #0x5\n\
+ bne ._565 @cond_branch\n\
+ mov r0, #0x1\n\
+ mov r1, #0x4\n\
+ b ._566\n\
._568:\n\
- .align 2, 0\n\
+ .align 2, 0\n\
._567:\n\
- .word gBattleTypeFlags\n\
+ .word gBattleTypeFlags\n\
._564:\n\
- mov r0, #0x1\n\
- mov r1, #0x3\n\
+ mov r0, #0x1\n\
+ mov r1, #0x3\n\
._566:\n\
- mov r2, #0x0\n\
- b ._569\n\
+ mov r2, #0x0\n\
+ b ._569\n\
._565:\n\
- ldr r3, ._574 @ gBattleMoves\n\
- lsl r0, r4, #0x1\n\
- add r2, r5, r0\n\
- ldrh r1, [r2]\n\
- lsl r0, r1, #0x1\n\
- add r0, r0, r1\n\
- lsl r0, r0, #0x2\n\
- add r0, r0, r3\n\
- ldrb r1, [r0, #0x6]\n\
- mov r0, #0x12\n\
- and r0, r0, r1\n\
- cmp r0, #0\n\
- beq ._570 @cond_branch\n\
- ldr r1, ._574 + 4 @ gBankTarget\n\
- ldrb r0, [r6]\n\
- strb r0, [r1]\n\
+ ldr r3, ._574 @ gBattleMoves\n\
+ lsl r0, r4, #0x1\n\
+ add r2, r5, r0\n\
+ ldrh r1, [r2]\n\
+ lsl r0, r1, #0x1\n\
+ add r0, r0, r1\n\
+ lsl r0, r0, #0x2\n\
+ add r0, r0, r3\n\
+ ldrb r1, [r0, #0x6]\n\
+ mov r0, #0x12\n\
+ and r0, r0, r1\n\
+ cmp r0, #0\n\
+ beq ._570 @cond_branch\n\
+ ldr r1, ._574 + 4 @ gBankTarget\n\
+ ldrb r0, [r6]\n\
+ strb r0, [r1]\n\
._570:\n\
- ldrh r1, [r2]\n\
- lsl r0, r1, #0x1\n\
- add r0, r0, r1\n\
- lsl r0, r0, #0x2\n\
- add r0, r0, r3\n\
- ldrb r1, [r0, #0x6]\n\
- mov r0, #0x8\n\
- and r0, r0, r1\n\
- cmp r0, #0\n\
- beq ._572 @cond_branch\n\
- mov r0, #0x0\n\
- bl GetBankByIdentity\n\
- ldr r5, ._574 + 4 @ gBankTarget\n\
- strb r0, [r5]\n\
- ldr r0, ._574 + 8 @ gAbsentBankFlags\n\
- ldrb r1, [r0]\n\
- ldr r2, ._574 + 12 @ gBitTable\n\
- ldrb r0, [r5]\n\
- lsl r0, r0, #0x2\n\
- add r0, r0, r2\n\
- ldr r0, [r0]\n\
- and r1, r1, r0\n\
- cmp r1, #0\n\
- beq ._572 @cond_branch\n\
- mov r0, #0x2\n\
- bl GetBankByIdentity\n\
- strb r0, [r5]\n\
+ ldrh r1, [r2]\n\
+ lsl r0, r1, #0x1\n\
+ add r0, r0, r1\n\
+ lsl r0, r0, #0x2\n\
+ add r0, r0, r3\n\
+ ldrb r1, [r0, #0x6]\n\
+ mov r0, #0x8\n\
+ and r0, r0, r1\n\
+ cmp r0, #0\n\
+ beq ._572 @cond_branch\n\
+ mov r0, #0x0\n\
+ bl GetBankByIdentity\n\
+ ldr r5, ._574 + 4 @ gBankTarget\n\
+ strb r0, [r5]\n\
+ ldr r0, ._574 + 8 @ gAbsentBankFlags\n\
+ ldrb r1, [r0]\n\
+ ldr r2, ._574 + 12 @ gBitTable\n\
+ ldrb r0, [r5]\n\
+ lsl r0, r0, #0x2\n\
+ add r0, r0, r2\n\
+ ldr r0, [r0]\n\
+ and r1, r1, r0\n\
+ cmp r1, #0\n\
+ beq ._572 @cond_branch\n\
+ mov r0, #0x2\n\
+ bl GetBankByIdentity\n\
+ strb r0, [r5]\n\
._572:\n\
- ldr r0, ._574 + 4 @ gBankTarget\n\
- ldrb r2, [r0]\n\
- lsl r2, r2, #0x8\n\
- orr r2, r2, r4\n\
- mov r0, #0x1\n\
- mov r1, #0xa\n\
- bl Emitcmd33\n\
- b ._573\n\
+ ldr r0, ._574 + 4 @ gBankTarget\n\
+ ldrb r2, [r0]\n\
+ lsl r2, r2, #0x8\n\
+ orr r2, r2, r4\n\
+ mov r0, #0x1\n\
+ mov r1, #0xa\n\
+ bl Emitcmd33\n\
+ b ._573\n\
._575:\n\
- .align 2, 0\n\
+ .align 2, 0\n\
._574:\n\
- .word gBattleMoves\n\
- .word gBankTarget\n\
- .word gAbsentBankFlags\n\
- .word gBitTable\n\
+ .word gBattleMoves\n\
+ .word gBankTarget\n\
+ .word gAbsentBankFlags\n\
+ .word gBitTable\n\
._563:\n\
- mov r6, #0x3\n\
+ mov r6, #0x3\n\
._576:\n\
- bl Random\n\
- add r4, r0, #0\n\
- and r4, r4, r6\n\
- lsl r0, r4, #0x1\n\
- add r0, r5, r0\n\
- ldrh r2, [r0]\n\
- cmp r2, #0\n\
- beq ._576 @cond_branch\n\
- ldr r1, ._579 @ gBattleMoves\n\
- lsl r0, r2, #0x1\n\
- add r0, r0, r2\n\
- lsl r0, r0, #0x2\n\
- add r0, r0, r1\n\
- ldrb r1, [r0, #0x6]\n\
- mov r0, #0x12\n\
- and r0, r0, r1\n\
- cmp r0, #0\n\
- beq ._577 @cond_branch\n\
- ldr r0, ._579 + 4 @ gActiveBank\n\
- ldrb r2, [r0]\n\
- lsl r2, r2, #0x8\n\
- b ._578\n\
+ bl Random\n\
+ add r4, r0, #0\n\
+ and r4, r4, r6\n\
+ lsl r0, r4, #0x1\n\
+ add r0, r5, r0\n\
+ ldrh r2, [r0]\n\
+ cmp r2, #0\n\
+ beq ._576 @cond_branch\n\
+ ldr r1, ._579 @ gBattleMoves\n\
+ lsl r0, r2, #0x1\n\
+ add r0, r0, r2\n\
+ lsl r0, r0, #0x2\n\
+ add r0, r0, r1\n\
+ ldrb r1, [r0, #0x6]\n\
+ mov r0, #0x12\n\
+ and r0, r0, r1\n\
+ cmp r0, #0\n\
+ beq ._577 @cond_branch\n\
+ ldr r0, ._579 + 4 @ gActiveBank\n\
+ ldrb r2, [r0]\n\
+ lsl r2, r2, #0x8\n\
+ b ._578\n\
._580:\n\
- .align 2, 0\n\
+ .align 2, 0\n\
._579:\n\
- .word gBattleMoves\n\
- .word gActiveBank\n\
+ .word gBattleMoves\n\
+ .word gActiveBank\n\
._577:\n\
- ldr r0, ._583 @ gBattleTypeFlags\n\
- ldrh r1, [r0]\n\
- mov r0, #0x1\n\
- and r0, r0, r1\n\
- cmp r0, #0\n\
- beq ._581 @cond_branch\n\
- bl Random\n\
- mov r1, #0x2\n\
- and r1, r1, r0\n\
- lsl r1, r1, #0x18\n\
- lsr r1, r1, #0x18\n\
- add r0, r1, #0\n\
- bl GetBankByIdentity\n\
- add r2, r0, #0\n\
- lsl r2, r2, #0x18\n\
- lsr r2, r2, #0x10\n\
+ ldr r0, ._583 @ gBattleTypeFlags\n\
+ ldrh r1, [r0]\n\
+ mov r0, #0x1\n\
+ and r0, r0, r1\n\
+ cmp r0, #0\n\
+ beq ._581 @cond_branch\n\
+ bl Random\n\
+ mov r1, #0x2\n\
+ and r1, r1, r0\n\
+ lsl r1, r1, #0x18\n\
+ lsr r1, r1, #0x18\n\
+ add r0, r1, #0\n\
+ bl GetBankByIdentity\n\
+ add r2, r0, #0\n\
+ lsl r2, r2, #0x18\n\
+ lsr r2, r2, #0x10\n\
._578:\n\
- orr r2, r2, r4\n\
- mov r0, #0x1\n\
- mov r1, #0xa\n\
- bl Emitcmd33\n\
- b ._582\n\
+ orr r2, r2, r4\n\
+ mov r0, #0x1\n\
+ mov r1, #0xa\n\
+ bl Emitcmd33\n\
+ b ._582\n\
._584:\n\
- .align 2, 0\n\
+ .align 2, 0\n\
._583:\n\
- .word gBattleTypeFlags\n\
+ .word gBattleTypeFlags\n\
._581:\n\
- mov r0, #0x0\n\
- bl GetBankByIdentity\n\
- add r2, r0, #0\n\
- lsl r2, r2, #0x18\n\
- lsr r2, r2, #0x10\n\
- orr r2, r2, r4\n\
- mov r0, #0x1\n\
- mov r1, #0xa\n\
- bl Emitcmd33\n\
+ mov r0, #0x0\n\
+ bl GetBankByIdentity\n\
+ add r2, r0, #0\n\
+ lsl r2, r2, #0x18\n\
+ lsr r2, r2, #0x10\n\
+ orr r2, r2, r4\n\
+ mov r0, #0x1\n\
+ mov r1, #0xa\n\
+ bl Emitcmd33\n\
._582:\n\
- bl OpponentBufferExecCompleted\n\
+ bl OpponentBufferExecCompleted\n\
._562:\n\
- pop {r3, r4, r5}\n\
- mov r8, r3\n\
- mov r9, r4\n\
- mov sl, r5\n\
- pop {r4, r5, r6, r7}\n\
- pop {r0}\n\
- bx r0");
+ pop {r3, r4, r5}\n\
+ mov r8, r3\n\
+ mov r9, r4\n\
+ mov sl, r5\n\
+ pop {r4, r5, r6, r7}\n\
+ pop {r0}\n\
+ bx r0");
}
#else
#ifdef NONMATCHING
diff --git a/src/battle/battle_controller_player.c b/src/battle/battle_controller_player.c
index e28c058a3..3e259a21b 100644
--- a/src/battle/battle_controller_player.c
+++ b/src/battle/battle_controller_player.c
@@ -42,6 +42,8 @@ extern struct Window gUnknown_03004210;
extern void (*gBattleBankFunc[])(void);
+extern u8 gBankAttacker;
+extern u8 gBankTarget;
extern u32 gOamMatrixAllocBitmap;
extern u8 gUnknown_020297ED;
extern u8 gActiveBank;
@@ -115,7 +117,6 @@ extern void sub_802D18C(void);
extern void sub_802DF18(void);
extern void BufferStringBattle();
extern void sub_80326EC();
-extern void DoMoveAnim();
extern void sub_8031F24(void);
extern void sub_80324BC();
extern u8 sub_8031720();
@@ -760,38 +761,38 @@ void sub_802C68C(void)
#if DEBUG
else if (gUnknown_020297ED == 1 && (gMain.newKeys & START_BUTTON))
{
- const u8 *moveName;
- s32 i;
-
- Text_FillWindowRect(&gUnknown_03004210, 0x1016, 1, 0x37, 16, 0x3A);
- moveName = gMoveNames[GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_MOVE1)];
- Text_InitWindowAndPrintText(&gUnknown_03004210, moveName, 0x100, 2, 0x37);
- ConvertIntToDecimalStringN(
- gDisplayedStringBattle,
- GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_MOVE1),
- 2, 3);
- Text_InitWindowAndPrintText(&gUnknown_03004210, gDisplayedStringBattle, 0x110, 10, 0x37);
- Text_InitWindowAndPrintText(&gUnknown_03004210, gString_TurnJP, 0x116, 1, 0x39);
- ConvertIntToDecimalStringN(gDisplayedStringBattle, gAnimMoveTurn, 2, 3);
- Text_InitWindowAndPrintText(&gUnknown_03004210, gDisplayedStringBattle, 0x11C, 4, 0x39);
- for (i = 0; i < 64; i++)
- {
- if (gSprites[i].inUse)
- count++;
- }
- ConvertIntToDecimalStringN(gDisplayedStringBattle, count, 2, 2);
- Text_InitWindowAndPrintText(&gUnknown_03004210, gDisplayedStringBattle, 0x122, 8, 0x39);
- count = GetTaskCount();
- ConvertIntToDecimalStringN(gDisplayedStringBattle, count, 2, 2);
- Text_InitWindowAndPrintText(&gUnknown_03004210, gDisplayedStringBattle, 0x126, 11, 0x39);
- for (i = 0, count = 0; i < 32; i++)
- {
- if (gOamMatrixAllocBitmap & (1 << i))
- count++;
- }
- ConvertIntToDecimalStringN(gDisplayedStringBattle, count, 2, 2);
- Text_InitWindowAndPrintText(&gUnknown_03004210, gDisplayedStringBattle, 0x12A, 14, 0x39);
- gBattleBankFunc[gActiveBank] = debug_sub_8030C24;
+ const u8 *moveName;
+ s32 i;
+
+ Text_FillWindowRect(&gUnknown_03004210, 0x1016, 1, 0x37, 16, 0x3A);
+ moveName = gMoveNames[GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_MOVE1)];
+ Text_InitWindowAndPrintText(&gUnknown_03004210, moveName, 0x100, 2, 0x37);
+ ConvertIntToDecimalStringN(
+ gDisplayedStringBattle,
+ GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_MOVE1),
+ 2, 3);
+ Text_InitWindowAndPrintText(&gUnknown_03004210, gDisplayedStringBattle, 0x110, 10, 0x37);
+ Text_InitWindowAndPrintText(&gUnknown_03004210, gString_TurnJP, 0x116, 1, 0x39);
+ ConvertIntToDecimalStringN(gDisplayedStringBattle, gAnimMoveTurn, 2, 3);
+ Text_InitWindowAndPrintText(&gUnknown_03004210, gDisplayedStringBattle, 0x11C, 4, 0x39);
+ for (i = 0; i < 64; i++)
+ {
+ if (gSprites[i].inUse)
+ count++;
+ }
+ ConvertIntToDecimalStringN(gDisplayedStringBattle, count, 2, 2);
+ Text_InitWindowAndPrintText(&gUnknown_03004210, gDisplayedStringBattle, 0x122, 8, 0x39);
+ count = GetTaskCount();
+ ConvertIntToDecimalStringN(gDisplayedStringBattle, count, 2, 2);
+ Text_InitWindowAndPrintText(&gUnknown_03004210, gDisplayedStringBattle, 0x126, 11, 0x39);
+ for (i = 0, count = 0; i < 32; i++)
+ {
+ if (gOamMatrixAllocBitmap & (1 << i))
+ count++;
+ }
+ ConvertIntToDecimalStringN(gDisplayedStringBattle, count, 2, 2);
+ Text_InitWindowAndPrintText(&gUnknown_03004210, gDisplayedStringBattle, 0x12A, 14, 0x39);
+ gBattleBankFunc[gActiveBank] = debug_sub_8030C24;
}
#endif
}
@@ -1001,685 +1002,163 @@ void sub_802D18C(void)
}
#if DEBUG
-__attribute__((naked))
+
+void debug_sub_803107C(void);
+
void debug_sub_8030C24(void)
{
- asm("\
- push {r4, r5, r6, lr}\n\
- add sp, sp, #0xfffffff4\n\
- ldr r1, ._293 @ gBattlePartyID\n\
- ldr r4, ._293 + 4 @ gActiveBank\n\
- ldrb r0, [r4]\n\
- lsl r0, r0, #0x1\n\
- add r0, r0, r1\n\
- ldrh r1, [r0]\n\
- mov r0, #0x64\n\
- mul r0, r0, r1\n\
- ldr r1, ._293 + 8 @ gPlayerParty\n\
- add r0, r0, r1\n\
- mov r1, #0xd\n\
- bl GetMonData\n\
- add r1, sp, #0x8\n\
- strh r0, [r1]\n\
- ldr r5, ._293 + 12 @ gMain\n\
- ldrh r1, [r5, #0x30]\n\
- cmp r1, #0x20\n\
- bne ._286 @cond_branch\n\
- b ._287\n\
-._286:\n\
- cmp r1, #0x20\n\
- bgt ._288 @cond_branch\n\
- cmp r1, #0x8\n\
- beq ._289 @cond_branch\n\
- cmp r1, #0x8\n\
- bgt ._290 @cond_branch\n\
- cmp r1, #0x4\n\
- beq ._291 @cond_branch\n\
- b ._348\n\
-._294:\n\
- .align 2, 0\n\
-._293:\n\
- .word gBattlePartyID\n\
- .word gActiveBank\n\
- .word gPlayerParty\n\
- .word gMain\n\
-._290:\n\
- cmp r1, #0x10\n\
- bne ._295 @cond_branch\n\
- b ._296\n\
-._295:\n\
- b ._348\n\
-._288:\n\
- cmp r1, #0x80\n\
- bne ._298 @cond_branch\n\
- b ._302\n\
-._298:\n\
- cmp r1, #0x80\n\
- bgt ._300 @cond_branch\n\
- cmp r1, #0x40\n\
- bne ._301 @cond_branch\n\
- b ._302\n\
-._301:\n\
- b ._348\n\
-._300:\n\
- mov r0, #0x80\n\
- lsl r0, r0, #0x1\n\
- cmp r1, r0\n\
- bne ._304 @cond_branch\n\
- b ._305\n\
-._304:\n\
- mov r0, #0x80\n\
- lsl r0, r0, #0x2\n\
- cmp r1, r0\n\
- bne ._306 @cond_branch\n\
- b ._307\n\
-._306:\n\
- b ._348\n\
-._289:\n\
- ldrb r0, [r4]\n\
- mov r1, #0x1\n\
- bl dp11b_obj_free\n\
- ldrb r0, [r4]\n\
- mov r1, #0x0\n\
- bl dp11b_obj_free\n\
- ldr r0, ._312 @ gBankAttacker\n\
- ldrb r2, [r4]\n\
- strb r2, [r0]\n\
- ldrh r1, [r5, #0x28]\n\
- mov r0, #0x2\n\
- and r0, r0, r1\n\
- cmp r0, #0\n\
- beq ._310 @cond_branch\n\
- ldr r0, ._312 + 4 @ gBattleTypeFlags\n\
- ldrh r1, [r0]\n\
- mov r0, #0x1\n\
- and r0, r0, r1\n\
- cmp r0, #0\n\
- beq ._310 @cond_branch\n\
- ldr r0, ._312 + 8 @ gBankTarget\n\
- mov r1, #0x2\n\
- eor r1, r1, r2\n\
- strb r1, [r0]\n\
- b ._311\n\
-._313:\n\
- .align 2, 0\n\
-._312:\n\
- .word gBankAttacker\n\
- .word gBattleTypeFlags\n\
- .word gBankTarget\n\
-._310:\n\
- ldr r0, ._317 @ gMain\n\
- ldrh r1, [r0, #0x28]\n\
- mov r2, #0x1\n\
- add r0, r2, #0\n\
- and r0, r0, r1\n\
- cmp r0, #0\n\
- beq ._315 @cond_branch\n\
- ldr r0, ._317 + 4 @ gBattleTypeFlags\n\
- ldrh r1, [r0]\n\
- add r0, r2, #0\n\
- and r0, r0, r1\n\
- cmp r0, #0\n\
- beq ._315 @cond_branch\n\
- mov r0, #0x3\n\
- b ._316\n\
-._318:\n\
- .align 2, 0\n\
-._317:\n\
- .word gMain\n\
- .word gBattleTypeFlags\n\
-._315:\n\
- mov r0, #0x1\n\
-._316:\n\
- bl GetBankByIdentity\n\
- ldr r1, ._320 @ gBankTarget\n\
- strb r0, [r1]\n\
-._311:\n\
- mov r0, #0x0\n\
- bl sub_80326EC\n\
- add r0, sp, #0x8\n\
- ldrh r0, [r0]\n\
- bl DoMoveAnim\n\
- ldr r1, ._320 + 4 @ gBattleBankFunc\n\
- ldr r0, ._320 + 8 @ gActiveBank\n\
- ldrb r0, [r0]\n\
- b ._332\n\
-._321:\n\
- .align 2, 0\n\
-._320:\n\
- .word gBankTarget\n\
- .word gBattleBankFunc\n\
- .word gActiveBank\n\
-._291:\n\
- ldrb r0, [r4]\n\
- mov r1, #0x1\n\
- bl dp11b_obj_free\n\
- ldrb r0, [r4]\n\
- mov r1, #0x0\n\
- bl dp11b_obj_free\n\
- ldr r0, ._325 @ gBankTarget\n\
- ldrb r2, [r4]\n\
- strb r2, [r0]\n\
- ldrh r1, [r5, #0x28]\n\
- mov r0, #0x2\n\
- and r0, r0, r1\n\
- cmp r0, #0\n\
- beq ._323 @cond_branch\n\
- ldr r0, ._325 + 4 @ gBattleTypeFlags\n\
- ldrh r1, [r0]\n\
- mov r0, #0x1\n\
- and r0, r0, r1\n\
- cmp r0, #0\n\
- beq ._323 @cond_branch\n\
- ldr r0, ._325 + 8 @ gBankAttacker\n\
- mov r1, #0x2\n\
- eor r1, r1, r2\n\
- strb r1, [r0]\n\
- b ._324\n\
-._326:\n\
- .align 2, 0\n\
-._325:\n\
- .word gBankTarget\n\
- .word gBattleTypeFlags\n\
- .word gBankAttacker\n\
-._323:\n\
- ldr r0, ._330 @ gMain\n\
- ldrh r1, [r0, #0x28]\n\
- mov r2, #0x1\n\
- add r0, r2, #0\n\
- and r0, r0, r1\n\
- cmp r0, #0\n\
- beq ._328 @cond_branch\n\
- ldr r0, ._330 + 4 @ gBattleTypeFlags\n\
- ldrh r1, [r0]\n\
- add r0, r2, #0\n\
- and r0, r0, r1\n\
- cmp r0, #0\n\
- beq ._328 @cond_branch\n\
- mov r0, #0x3\n\
- b ._329\n\
-._331:\n\
- .align 2, 0\n\
-._330:\n\
- .word gMain\n\
- .word gBattleTypeFlags\n\
-._328:\n\
- mov r0, #0x1\n\
-._329:\n\
- bl GetBankByIdentity\n\
- ldr r1, ._333 @ gBankAttacker\n\
- strb r0, [r1]\n\
-._324:\n\
- mov r0, #0x0\n\
- bl sub_80326EC\n\
- add r0, sp, #0x8\n\
- ldrh r0, [r0]\n\
- bl DoMoveAnim\n\
- ldr r1, ._333 + 4 @ gBattleBankFunc\n\
- ldr r0, ._333 + 8 @ gActiveBank\n\
- ldrb r0, [r0]\n\
- b ._332\n\
-._334:\n\
- .align 2, 0\n\
-._333:\n\
- .word gBankAttacker\n\
- .word gBattleBankFunc\n\
- .word gActiveBank\n\
-._305:\n\
- ldrh r1, [r5, #0x28]\n\
- mov r0, #0x2\n\
- and r0, r0, r1\n\
- cmp r0, #0\n\
- beq ._336 @cond_branch\n\
- ldr r0, ._338 @ gBattleTypeFlags\n\
- ldrh r1, [r0]\n\
- mov r0, #0x1\n\
- and r0, r0, r1\n\
- cmp r0, #0\n\
- beq ._336 @cond_branch\n\
- ldrb r0, [r4]\n\
- mov r1, #0x1\n\
- bl dp11b_obj_free\n\
- ldrb r0, [r4]\n\
- mov r1, #0x0\n\
- bl dp11b_obj_free\n\
- mov r0, #0x3\n\
- bl GetBankByIdentity\n\
- ldr r1, ._338 + 4 @ gBankAttacker\n\
- strb r0, [r1]\n\
- mov r0, #0x1\n\
- b ._337\n\
-._339:\n\
- .align 2, 0\n\
-._338:\n\
- .word gBattleTypeFlags\n\
- .word gBankAttacker\n\
-._336:\n\
- add r0, sp, #0x8\n\
- mov r1, #0x0\n\
- ldsh r0, [r0, r1]\n\
- add r0, r0, #0x9\n\
- add r1, sp, #0x8\n\
- strh r0, [r1]\n\
-._296:\n\
- add r0, sp, #0x8\n\
- mov r2, #0x0\n\
- ldsh r0, [r0, r2]\n\
- add r0, r0, #0x1\n\
- lsl r2, r0, #0x10\n\
- add r1, sp, #0x8\n\
- strh r0, [r1]\n\
- mov r0, #0xb1\n\
- lsl r0, r0, #0x11\n\
- cmp r2, r0\n\
- ble ._347 @cond_branch\n\
- mov r1, #0x1\n\
- add r0, sp, #0x8\n\
- strh r1, [r0]\n\
- b ._347\n\
-._307:\n\
- ldrh r1, [r5, #0x28]\n\
- mov r0, #0x2\n\
- and r0, r0, r1\n\
- cmp r0, #0\n\
- beq ._343 @cond_branch\n\
- ldr r0, ._345 @ gBattleTypeFlags\n\
- ldrh r1, [r0]\n\
- mov r0, #0x1\n\
- and r0, r0, r1\n\
- cmp r0, #0\n\
- beq ._343 @cond_branch\n\
- ldrb r0, [r4]\n\
- mov r1, #0x1\n\
- bl dp11b_obj_free\n\
- ldrb r0, [r4]\n\
- mov r1, #0x0\n\
- bl dp11b_obj_free\n\
- mov r0, #0x1\n\
- bl GetBankByIdentity\n\
- ldr r1, ._345 + 4 @ gBankAttacker\n\
- strb r0, [r1]\n\
- mov r0, #0x3\n\
-._337:\n\
- bl GetBankByIdentity\n\
- ldr r1, ._345 + 8 @ gBankTarget\n\
- strb r0, [r1]\n\
- mov r0, #0x0\n\
- bl sub_80326EC\n\
- add r0, sp, #0x8\n\
- ldrh r0, [r0]\n\
- bl DoMoveAnim\n\
- ldr r1, ._345 + 12 @ gBattleBankFunc\n\
- ldrb r0, [r4]\n\
-._332:\n\
- lsl r0, r0, #0x2\n\
- add r0, r0, r1\n\
- ldr r1, ._345 + 16 @ debug_sub_803107C\n\
- str r1, [r0]\n\
- b ._348\n\
-._346:\n\
- .align 2, 0\n\
-._345:\n\
- .word gBattleTypeFlags\n\
- .word gBankAttacker\n\
- .word gBankTarget\n\
- .word gBattleBankFunc\n\
- .word debug_sub_803107C+1\n\
-._343:\n\
- add r1, sp, #0x8\n\
- add r0, r1, #0\n\
- ldrh r0, [r0]\n\
- sub r0, r0, #0x9\n\
- strh r0, [r1]\n\
-._287:\n\
- add r1, sp, #0x8\n\
- add r0, r1, #0\n\
- ldrh r0, [r0]\n\
- sub r0, r0, #0x1\n\
- strh r0, [r1]\n\
- lsl r0, r0, #0x10\n\
- cmp r0, #0\n\
- bgt ._347 @cond_branch\n\
- mov r2, #0xb1\n\
- lsl r2, r2, #0x1\n\
- add r0, r2, #0\n\
- strh r0, [r1]\n\
-._347:\n\
- ldr r1, ._349 @ gBattlePartyID\n\
- ldr r4, ._349 + 4 @ gActiveBank\n\
- ldrb r0, [r4]\n\
- lsl r0, r0, #0x1\n\
- add r0, r0, r1\n\
- ldrh r1, [r0]\n\
- mov r0, #0x64\n\
- mul r0, r0, r1\n\
- ldr r1, ._349 + 8 @ gPlayerParty\n\
- add r0, r0, r1\n\
- mov r1, #0xd\n\
- add r2, sp, #0x8\n\
- bl SetMonData\n\
- ldr r2, ._349 + 12 @ gBattleMons\n\
- ldrb r1, [r4]\n\
- mov r0, #0x58\n\
- mul r0, r0, r1\n\
- add r0, r0, r2\n\
- add r1, sp, #0x8\n\
- ldrh r1, [r1]\n\
- strh r1, [r0, #0xc]\n\
- ldr r5, ._349 + 16 @ gUnknown_03004210\n\
- ldr r1, ._349 + 20 @ 0x1016\n\
- mov r0, #0x10\n\
- str r0, [sp]\n\
- mov r0, #0x38\n\
- str r0, [sp, #0x4]\n\
- add r0, r5, #0\n\
- mov r2, #0x1\n\
- mov r3, #0x37\n\
- bl Text_FillWindowRect\n\
- add r0, sp, #0x8\n\
- mov r2, #0x0\n\
- ldsh r1, [r0, r2]\n\
- mov r0, #0xd\n\
- mul r1, r1, r0\n\
- ldr r0, ._349 + 24 @ gMoveNames\n\
- add r1, r1, r0\n\
- mov r2, #0x80\n\
- lsl r2, r2, #0x1\n\
- mov r6, #0x37\n\
- str r6, [sp]\n\
- add r0, r5, #0\n\
- mov r3, #0x2\n\
- bl Text_InitWindowAndPrintText\n\
- ldr r4, ._349 + 28 @ gDisplayedStringBattle\n\
- add r0, sp, #0x8\n\
- mov r2, #0x0\n\
- ldsh r1, [r0, r2]\n\
- add r0, r4, #0\n\
- mov r2, #0x2\n\
- mov r3, #0x3\n\
- bl ConvertIntToDecimalStringN\n\
- mov r2, #0x88\n\
- lsl r2, r2, #0x1\n\
- str r6, [sp]\n\
- add r0, r5, #0\n\
- add r1, r4, #0\n\
- mov r3, #0xa\n\
- bl Text_InitWindowAndPrintText\n\
- b ._348\n\
-._350:\n\
- .align 2, 0\n\
-._349:\n\
- .word gBattlePartyID\n\
- .word gActiveBank\n\
- .word gPlayerParty\n\
- .word gBattleMons\n\
- .word gUnknown_03004210\n\
- .word 0x1016\n\
- .word gMoveNames\n\
- .word gDisplayedStringBattle\n\
-._302:\n\
- ldr r0, ._353 @ gMain\n\
- ldrh r0, [r0, #0x30]\n\
- cmp r0, #0x40\n\
- bne ._351 @cond_branch\n\
- ldr r1, ._353 + 4 @ gAnimMoveTurn\n\
- ldrb r0, [r1]\n\
- sub r0, r0, #0x1\n\
- b ._352\n\
-._354:\n\
- .align 2, 0\n\
-._353:\n\
- .word gMain\n\
- .word gAnimMoveTurn\n\
-._351:\n\
- ldr r1, ._359 @ gAnimMoveTurn\n\
- ldrb r0, [r1]\n\
- add r0, r0, #0x1\n\
-._352:\n\
- strb r0, [r1]\n\
- ldr r4, ._359 + 4 @ gDisplayedStringBattle\n\
- ldrb r1, [r1]\n\
- add r0, r4, #0\n\
- mov r2, #0x2\n\
- mov r3, #0x3\n\
- bl ConvertIntToDecimalStringN\n\
- ldr r0, ._359 + 8 @ gUnknown_03004210\n\
- mov r2, #0x8e\n\
- lsl r2, r2, #0x1\n\
- mov r1, #0x39\n\
- str r1, [sp]\n\
- add r1, r4, #0\n\
- mov r3, #0x4\n\
- bl Text_InitWindowAndPrintText\n\
-._348:\n\
- ldr r0, ._359 + 12 @ gMain\n\
- ldrh r2, [r0, #0x28]\n\
- mov r1, #0xc0\n\
- lsl r1, r1, #0x2\n\
- add r0, r1, #0\n\
- and r0, r0, r2\n\
- cmp r0, r1\n\
- bne ._355 @cond_branch\n\
- mov r4, #0x0\n\
- ldr r5, ._359 + 4 @ gDisplayedStringBattle\n\
- ldr r6, ._359 + 8 @ gUnknown_03004210\n\
-._361:\n\
- add r0, r5, #0\n\
- ldr r1, ._359 + 16 @ BattleText_Format\n\
- bl StringCopy\n\
- ldr r1, ._359 + 20 @ gBattlePartyID\n\
- ldr r0, ._359 + 24 @ gActiveBank\n\
- ldrb r0, [r0]\n\
- lsl r0, r0, #0x1\n\
- add r0, r0, r1\n\
- ldrh r1, [r0]\n\
- mov r0, #0x64\n\
- mul r0, r0, r1\n\
- ldr r1, ._359 + 28 @ gPlayerParty\n\
- add r0, r0, r1\n\
- add r1, r4, #0\n\
- add r1, r1, #0xd\n\
- bl GetMonData\n\
- mov r1, #0xd\n\
- mul r1, r1, r0\n\
- ldr r0, ._359 + 32 @ gMoveNames\n\
- add r1, r1, r0\n\
- add r0, r5, #0\n\
- bl StringAppend\n\
- lsl r0, r4, #0x14\n\
- mov r1, #0x80\n\
- lsl r1, r1, #0x11\n\
- add r0, r0, r1\n\
- lsr r2, r0, #0x10\n\
- mov r0, #0x1\n\
- and r0, r0, r4\n\
- mov r3, #0x2\n\
- cmp r0, #0\n\
- beq ._356 @cond_branch\n\
- mov r3, #0xa\n\
-._356:\n\
- cmp r4, #0x1\n\
- bhi ._357 @cond_branch\n\
- mov r0, #0x37\n\
- b ._358\n\
-._360:\n\
- .align 2, 0\n\
-._359:\n\
- .word gAnimMoveTurn\n\
- .word gDisplayedStringBattle\n\
- .word gUnknown_03004210\n\
- .word gMain\n\
- .word BattleText_Format\n\
- .word gBattlePartyID\n\
- .word gActiveBank\n\
- .word gPlayerParty\n\
- .word gMoveNames\n\
-._357:\n\
- mov r0, #0x39\n\
-._358:\n\
- str r0, [sp]\n\
- add r0, r6, #0\n\
- add r1, r5, #0\n\
- bl Text_InitWindow\n\
- ldr r0, ._362 @ gUnknown_03004210\n\
- bl Text_PrintWindow8002F44\n\
- add r0, r4, #1\n\
- lsl r0, r0, #0x18\n\
- lsr r4, r0, #0x18\n\
- cmp r4, #0x3\n\
- bls ._361 @cond_branch\n\
- ldr r1, ._362 + 4 @ gBattleBankFunc\n\
- ldr r0, ._362 + 8 @ gActiveBank\n\
- ldrb r0, [r0]\n\
- lsl r0, r0, #0x2\n\
- add r0, r0, r1\n\
- ldr r1, ._362 + 12 @ sub_802C68C\n\
- str r1, [r0]\n\
-._355:\n\
- add sp, sp, #0xc\n\
- pop {r4, r5, r6}\n\
- pop {r0}\n\
- bx r0\n\
-._363:\n\
- .align 2, 0\n\
-._362:\n\
- .word gUnknown_03004210\n\
- .word gBattleBankFunc\n\
- .word gActiveBank\n\
- .word sub_802C68C+1");
+ s16 move = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_MOVE1);
+
+ switch (gMain.newAndRepeatedKeys)
+ {
+ case START_BUTTON:
+ dp11b_obj_free(gActiveBank, 1);
+ dp11b_obj_free(gActiveBank, 0);
+ gBankAttacker = gActiveBank;
+ if ((gMain.heldKeysRaw & B_BUTTON) && (gBattleTypeFlags & BATTLE_TYPE_DOUBLE))
+ gBankTarget = gBankAttacker ^ 2;
+ else if ((gMain.heldKeysRaw & A_BUTTON) && (gBattleTypeFlags & BATTLE_TYPE_DOUBLE))
+ gBankTarget = GetBankByIdentity(3);
+ else
+ gBankTarget = GetBankByIdentity(1);
+ sub_80326EC(0);
+ DoMoveAnim(move);
+ gBattleBankFunc[gActiveBank] = debug_sub_803107C;
+ break;
+ case SELECT_BUTTON:
+ dp11b_obj_free(gActiveBank, 1);
+ dp11b_obj_free(gActiveBank, 0);
+ gBankTarget = gActiveBank;
+ if ((gMain.heldKeysRaw & B_BUTTON) && (gBattleTypeFlags & BATTLE_TYPE_DOUBLE))
+ gBankAttacker = gBankTarget ^ 2;
+ else if ((gMain.heldKeysRaw & A_BUTTON) && (gBattleTypeFlags & BATTLE_TYPE_DOUBLE))
+ gBankAttacker = GetBankByIdentity(3);
+ else
+ gBankAttacker = GetBankByIdentity(1);
+ sub_80326EC(0);
+ DoMoveAnim(move);
+ gBattleBankFunc[gActiveBank] = debug_sub_803107C;
+ break;
+ case R_BUTTON:
+ if ((gMain.heldKeysRaw & B_BUTTON) && (gBattleTypeFlags & BATTLE_TYPE_DOUBLE))
+ {
+ dp11b_obj_free(gActiveBank, 1);
+ dp11b_obj_free(gActiveBank, 0);
+ gBankAttacker = GetBankByIdentity(3);
+ gBankTarget = GetBankByIdentity(1);
+ sub_80326EC(0);
+ DoMoveAnim(move);
+ gBattleBankFunc[gActiveBank] = debug_sub_803107C;
+ }
+ else
+ {
+ move += 9;
+ case DPAD_RIGHT:
+ if (++move > 354)
+ move = 1;
+ SetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_MOVE1, &move);
+ gBattleMons[gActiveBank].moves[0] = move;
+ Text_FillWindowRect(&gUnknown_03004210, 0x1016, 1, 0x37, 16, 0x38);
+ Text_InitWindowAndPrintText(&gUnknown_03004210, gMoveNames[move], 0x100, 2, 0x37);
+ ConvertIntToDecimalStringN(gDisplayedStringBattle, move, 2, 3);
+ Text_InitWindowAndPrintText(&gUnknown_03004210, gDisplayedStringBattle, 272, 10, 0x37);
+ }
+ break;
+ case L_BUTTON:
+ if ((gMain.heldKeysRaw & B_BUTTON) && (gBattleTypeFlags & BATTLE_TYPE_DOUBLE))
+ {
+ dp11b_obj_free(gActiveBank, 1);
+ dp11b_obj_free(gActiveBank, 0);
+ gBankAttacker = GetBankByIdentity(1);
+ gBankTarget = GetBankByIdentity(3);
+ sub_80326EC(0);
+ DoMoveAnim(move);
+ gBattleBankFunc[gActiveBank] = debug_sub_803107C;
+ }
+ else
+ {
+ move -= 9;
+ case DPAD_LEFT:
+ if (--move <= 0)
+ move = 354;
+ SetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_MOVE1, &move);
+ gBattleMons[gActiveBank].moves[0] = move;
+ Text_FillWindowRect(&gUnknown_03004210, 0x1016, 1, 0x37, 16, 0x38);
+ Text_InitWindowAndPrintText(&gUnknown_03004210, gMoveNames[move], 0x100, 2, 0x37);
+ ConvertIntToDecimalStringN(gDisplayedStringBattle, move, 2, 3);
+ Text_InitWindowAndPrintText(&gUnknown_03004210, gDisplayedStringBattle, 272, 10, 0x37);
+ }
+ break;
+ case DPAD_UP:
+ case DPAD_DOWN:
+ if (gMain.newAndRepeatedKeys == DPAD_UP)
+ gAnimMoveTurn--;
+ else
+ gAnimMoveTurn++;
+ ConvertIntToDecimalStringN(gDisplayedStringBattle, gAnimMoveTurn, 2, 3);
+ Text_InitWindowAndPrintText(&gUnknown_03004210, gDisplayedStringBattle, 284, 4, 0x39);
+ break;
+ }
+
+ if ((gMain.heldKeysRaw & (L_BUTTON | R_BUTTON)) == (L_BUTTON | R_BUTTON))
+ {
+ u8 i;
+ u32 move;
+
+ for (i = 0; i < 4; i++)
+ {
+ StringCopy(gDisplayedStringBattle, BattleText_Format);
+ move = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_MOVE1 + i);
+ StringAppend(gDisplayedStringBattle, gMoveNames[move]);
+ Text_InitWindow(
+ &gUnknown_03004210,
+ gDisplayedStringBattle,
+ 0x100 + i * 16,
+ (i & 1) ? 10 : 2,
+ (i < 2) ? 0x37 : 0x39);
+ Text_PrintWindow8002F44(&gUnknown_03004210);
+ }
+ gBattleBankFunc[gActiveBank] = sub_802C68C;
+ }
}
-__attribute__((naked))
void debug_sub_803107C(void)
{
- asm("\
- push {r4, r5, r6, r7, lr}\n\
- add sp, sp, #0xfffffffc\n\
- mov r7, #0x0\n\
- ldr r0, ._369 @ gAnimScriptCallback\n\
- ldr r0, [r0]\n\
- bl _call_via_r0\n\
- ldr r0, ._369 + 4 @ gAnimScriptActive\n\
- ldrb r0, [r0]\n\
- cmp r0, #0\n\
- bne ._364 @cond_branch\n\
- mov r0, #0x1\n\
- bl sub_80326EC\n\
- ldr r4, ._369 + 8 @ gActiveBank\n\
- ldrb r0, [r4]\n\
- mov r1, #0x1\n\
- mov r2, #0x7\n\
- mov r3, #0x1\n\
- bl dp11b_obj_instanciate\n\
- ldrb r0, [r4]\n\
- mov r1, #0x0\n\
- mov r2, #0x7\n\
- mov r3, #0x1\n\
- bl dp11b_obj_instanciate\n\
- ldr r0, ._369 + 12 @ gSprites\n\
- add r2, r0, #0\n\
- add r2, r2, #0x3e\n\
- mov r1, #0x3f\n\
-._366:\n\
- ldrb r0, [r2]\n\
- lsl r0, r0, #0x1f\n\
- cmp r0, #0\n\
- beq ._365 @cond_branch\n\
- add r0, r7, #1\n\
- lsl r0, r0, #0x18\n\
- lsr r7, r0, #0x18\n\
-._365:\n\
- add r2, r2, #0x44\n\
- sub r1, r1, #0x1\n\
- cmp r1, #0\n\
- bge ._366 @cond_branch\n\
- ldr r4, ._369 + 16 @ gDisplayedStringBattle\n\
- add r0, r4, #0\n\
- add r1, r7, #0\n\
- mov r2, #0x2\n\
- mov r3, #0x2\n\
- bl ConvertIntToDecimalStringN\n\
- ldr r6, ._369 + 20 @ gUnknown_03004210\n\
- mov r2, #0x91\n\
- lsl r2, r2, #0x1\n\
- mov r5, #0x39\n\
- str r5, [sp]\n\
- add r0, r6, #0\n\
- add r1, r4, #0\n\
- mov r3, #0x8\n\
- bl Text_InitWindowAndPrintText\n\
- bl GetTaskCount\n\
- lsl r0, r0, #0x18\n\
- lsr r7, r0, #0x18\n\
- add r0, r4, #0\n\
- add r1, r7, #0\n\
- mov r2, #0x2\n\
- mov r3, #0x2\n\
- bl ConvertIntToDecimalStringN\n\
- mov r2, #0x93\n\
- lsl r2, r2, #0x1\n\
- str r5, [sp]\n\
- add r0, r6, #0\n\
- add r1, r4, #0\n\
- mov r3, #0xb\n\
- bl Text_InitWindowAndPrintText\n\
- mov r1, #0x0\n\
- mov r7, #0x0\n\
- ldr r0, ._369 + 24 @ gOamMatrixAllocBitmap\n\
- mov r3, #0x1\n\
- ldr r2, [r0]\n\
-._368:\n\
- add r0, r3, #0\n\
- LSL r0, r1\n\
- and r0, r0, r2\n\
- cmp r0, #0\n\
- beq ._367 @cond_branch\n\
- add r0, r7, #1\n\
- lsl r0, r0, #0x18\n\
- lsr r7, r0, #0x18\n\
-._367:\n\
- add r1, r1, #0x1\n\
- cmp r1, #0x1f\n\
- ble ._368 @cond_branch\n\
- ldr r4, ._369 + 16 @ gDisplayedStringBattle\n\
- add r0, r4, #0\n\
- add r1, r7, #0\n\
- mov r2, #0x2\n\
- mov r3, #0x2\n\
- bl ConvertIntToDecimalStringN\n\
- ldr r0, ._369 + 20 @ gUnknown_03004210\n\
- mov r2, #0x95\n\
- lsl r2, r2, #0x1\n\
- mov r1, #0x39\n\
- str r1, [sp]\n\
- add r1, r4, #0\n\
- mov r3, #0xe\n\
- bl Text_InitWindowAndPrintText\n\
- ldr r1, ._369 + 28 @ gBattleBankFunc\n\
- ldr r0, ._369 + 8 @ gActiveBank\n\
- ldrb r0, [r0]\n\
- lsl r0, r0, #0x2\n\
- add r0, r0, r1\n\
- ldr r1, ._369 + 32 @ debug_sub_8030C24\n\
- str r1, [r0]\n\
-._364:\n\
- add sp, sp, #0x4\n\
- pop {r4, r5, r6, r7}\n\
- pop {r0}\n\
- bx r0\n\
-._370:\n\
- .align 2, 0\n\
-._369:\n\
- .word gAnimScriptCallback\n\
- .word gAnimScriptActive\n\
- .word gActiveBank\n\
- .word gSprites\n\
- .word gDisplayedStringBattle\n\
- .word gUnknown_03004210\n\
- .word gOamMatrixAllocBitmap\n\
- .word gBattleBankFunc\n\
- .word debug_sub_8030C24+1");
+ u8 count = 0;
+
+ gAnimScriptCallback();
+ if (!gAnimScriptActive)
+ {
+ s32 i;
+
+ sub_80326EC(1);
+ dp11b_obj_instanciate(gActiveBank, 1, 7, 1);
+ dp11b_obj_instanciate(gActiveBank, 0, 7, 1);
+
+ for (i = 0, count = 0; i < MAX_SPRITES; i++)
+ {
+ if (gSprites[i].inUse)
+ count++;
+ }
+ ConvertIntToDecimalStringN(gDisplayedStringBattle, count, 2, 2);
+ Text_InitWindowAndPrintText(&gUnknown_03004210, gDisplayedStringBattle, 290, 8, 0x39);
+
+ count = GetTaskCount();
+ ConvertIntToDecimalStringN(gDisplayedStringBattle, count, 2, 2);
+ Text_InitWindowAndPrintText(&gUnknown_03004210, gDisplayedStringBattle, 294, 11, 0x39);
+
+ for (i = 0, count = 0; i < 32; i++)
+ {
+ if (gOamMatrixAllocBitmap & (1 << i))
+ count++;
+ }
+ ConvertIntToDecimalStringN(gDisplayedStringBattle, count, 2, 2);
+ Text_InitWindowAndPrintText(&gUnknown_03004210, gDisplayedStringBattle, 298, 14, 0x39);
+
+ gBattleBankFunc[gActiveBank] = debug_sub_8030C24;
+ }
}
+
#endif
void sub_802D204(void)
@@ -3012,7 +2491,7 @@ void PlayerHandlecmd3(void)
u8 i;
u8 *dst;
- MEMSET_ALT(&gPlayerParty[gBattlePartyID[gActiveBank]] + gBattleBufferA[gActiveBank][1], gBattleBufferA[gActiveBank][3 + i],
+ MEMSET_ALT(&gPlayerParty[gBattlePartyID[gActiveBank]] + gBattleBufferA[gActiveBank][1], gBattleBufferA[gActiveBank][3 + i],
gBattleBufferA[gActiveBank][2], i, dst);
PlayerBufferExecCompleted();
}
diff --git a/src/battle/battle_controller_safari.c b/src/battle/battle_controller_safari.c
index e9425e7e7..03cf8759d 100644
--- a/src/battle/battle_controller_safari.c
+++ b/src/battle/battle_controller_safari.c
@@ -276,12 +276,12 @@ void bx_battle_menu_t6_2(void)
#if DEBUG
else if (gMain.newKeys & R_BUTTON)
{
- if (!ewram17810[gActiveBank].unk0_5)
- move_anim_start_t3(gActiveBank, gActiveBank, gActiveBank, 4, 0);
+ if (!ewram17810[gActiveBank].unk0_5)
+ move_anim_start_t3(gActiveBank, gActiveBank, gActiveBank, 4, 0);
}
else if (gMain.newKeys & START_BUTTON)
{
- sub_804454C();
+ sub_804454C();
}
#endif
}
diff --git a/src/battle/battle_records.c b/src/battle/battle_records.c
index 1532a0b2f..8b9cf9ea0 100644
--- a/src/battle/battle_records.c
+++ b/src/battle/battle_records.c
@@ -29,11 +29,11 @@ const struct DebugStruct1 gUnknown_Debug_4245CC[] =
{ 7, _("ナンバー7") },
};
-const u8 gUnknown_Debug_8424620[][4] =
+const struct {u8 unk0; u8 unk1;} gUnknown_Debug_8424620[] =
{
- { 1, 1, 0, 0 },
- { 2, 1, 0, 0 },
- { 3, 1, 0, 0 },
+ { 1, 1 },
+ { 2, 1 },
+ { 3, 1 },
};
#endif
@@ -64,7 +64,7 @@ static int GetLinkBattleRecordTotalBattles(struct LinkBattleRecord *record)
return record->wins + record->losses + record->draws;
}
-static int FindLinkBattleRecord(struct LinkBattleRecord *records, u8 *name, u16 trainerId)
+static int FindLinkBattleRecord(struct LinkBattleRecord *records, const u8 *name, u16 trainerId)
{
int i;
@@ -145,7 +145,7 @@ static void UpdateLinkBattleGameStats(int battleOutcome)
IncrementGameStat(stat);
}
-static void UpdateLinkBattleRecords_(struct LinkBattleRecord *records, u8 *name, u16 trainerId, int battleOutcome, u8 language)
+static void UpdateLinkBattleRecords_(struct LinkBattleRecord *records, const u8 *name, u16 trainerId, int battleOutcome, u8 language)
{
int index;
UpdateLinkBattleGameStats(battleOutcome);
@@ -224,62 +224,22 @@ void UpdateLinkBattleRecords(int id)
}
#if DEBUG
-__attribute__((naked))
void debug_sub_81257E0(void)
{
- asm("\
- push {r4, r5, r6, r7, lr}\n\
- mov r7, r8\n\
- push {r7}\n\
- add sp, sp, #0xfffffffc\n\
- bl InitLinkBattleRecords\n\
- mov r5, #0x0\n\
- ldr r6, ._62 @ gUnknown_Debug_4245CC\n\
- sub r0, r6, #2\n\
- mov r8, r0\n\
- ldr r7, ._62 + 4 @ gLinkPlayers\n\
-._61:\n\
- ldr r0, ._62 + 8 @ gUnknown_Debug_8424620\n\
- lsl r3, r5, #0x2\n\
- add r3, r3, r0\n\
- ldrb r4, [r3]\n\
- sub r4, r4, #0x1\n\
- lsl r0, r4, #0x1\n\
- add r0, r0, r4\n\
- lsl r0, r0, #0x2\n\
- add r1, r0, r6\n\
- add r0, r0, r8\n\
- ldrh r2, [r0]\n\
- ldrb r3, [r3, #0x1]\n\
- ldr r0, ._62 + 12 @ gLinkPlayerMapObjects\n\
- lsl r4, r4, #0x2\n\
- add r4, r4, r0\n\
- ldrb r4, [r4, #0x1]\n\
- lsl r0, r4, #0x3\n\
- sub r0, r0, r4\n\
- lsl r0, r0, #0x2\n\
- add r0, r0, r7\n\
- ldrb r0, [r0, #0x1a]\n\
- str r0, [sp]\n\
- ldr r0, ._62 + 16 @ gSaveBlock1\n\
- bl UpdateLinkBattleRecords_\n\
- add r5, r5, #0x1\n\
- cmp r5, #0x2\n\
- bls ._61 @cond_branch\n\
- add sp, sp, #0x4\n\
- pop {r3}\n\
- mov r8, r3\n\
- pop {r4, r5, r6, r7}\n\
- pop {r0}\n\
- bx r0\n\
-._63:\n\
- .align 2, 0\n\
-._62:\n\
- .word gUnknown_Debug_4245CC+2\n\
- .word gLinkPlayers\n\
- .word gUnknown_Debug_8424620\n\
- .word gLinkPlayerMapObjects\n\
- .word gSaveBlock1+0x30b8");
+ u32 i;
+
+ InitLinkBattleRecords();
+ for (i = 0; i < 3; i++)
+ {
+ u32 id = gUnknown_Debug_8424620[i].unk0 - 1;
+
+ UpdateLinkBattleRecords_(
+ gSaveBlock1.linkBattleRecords,
+ gUnknown_Debug_4245CC[id].var1,
+ gUnknown_Debug_4245CC[id].var0,
+ gUnknown_Debug_8424620[i].unk1,
+ gLinkPlayers[gLinkPlayerMapObjects[id].linkPlayerId].language);
+ }
}
#endif