summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--data/btl_attrs.s37
-rw-r--r--include/battle.h118
-rw-r--r--include/ewram.h69
-rw-r--r--include/global.h29
-rw-r--r--include/party_menu.h16
-rw-r--r--include/pokemon.h14
-rw-r--r--src/battle/anim/battle_intro.c18
-rw-r--r--src/battle/anim/normal.c6
-rw-r--r--src/battle_ai_switch_items.c2
-rwxr-xr-xsrc/battle_anim_special.c2
-rw-r--r--src/battle_bg.c20
-rw-r--r--src/battle_controller_link_opponent.c18
-rw-r--r--src/battle_controller_link_partner.c18
-rw-r--r--src/battle_controller_opponent.c18
-rw-r--r--src/battle_controller_player.c25
-rw-r--r--src/battle_controller_safari.c4
-rw-r--r--src/battle_controller_wally.c10
-rw-r--r--src/battle_gfx_sfx_util.c62
-rw-r--r--src/battle_interface.c12
-rw-r--r--src/battle_main.c358
-rw-r--r--src/battle_message.c6
-rw-r--r--src/battle_script_commands.c40
-rw-r--r--src/battle_util.c6
-rw-r--r--src/calculate_base_damage.c2
-rw-r--r--src/choose_party.c2
-rw-r--r--src/contest_link_80C2020.c4
-rw-r--r--src/contest_painting.c10
-rw-r--r--src/debug/tomomichi_debug_menu.c24
-rw-r--r--src/party_menu.c2
-rw-r--r--src/pokemon_2.c21
-rw-r--r--src/reshow_battle_screen.c8
-rw-r--r--src/script_pokemon_util_80C4BF0.c4
-rw-r--r--src/secret_base.c128
-rw-r--r--sym_ewram.txt8
34 files changed, 544 insertions, 577 deletions
diff --git a/data/btl_attrs.s b/data/btl_attrs.s
index 54328e7c7..e7868555b 100644
--- a/data/btl_attrs.s
+++ b/data/btl_attrs.s
@@ -98,11 +98,40 @@ gUnknown_Debug_821F58C::
gUnknown_Debug_821F598::
.byte 0x00, 0x00, 0x09, 0x00, 0x08, 0x00, 0x09, 0x00, 0x0a, 0x00, 0x0b, 0x00, 0x4b, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x00
+ .align 2, 0
+ @ struct Pokeblock
gUnknown_Debug_821F5AC::
- .byte 0x01, 0x14, 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x02, 0x00, 0x14, 0x00, 0x00, 0x00, 0x14, 0x00, 0x03, 0x00, 0x00, 0x14, 0x00, 0x00, 0x14, 0x00, 0x04, 0x00, 0x00, 0x00, 0x14, 0x00, 0x14, 0x00
- .byte 0x05, 0x00, 0x00, 0x00, 0x00, 0x14, 0x14, 0x00, 0x06, 0x14, 0x00, 0x14, 0x00, 0x00, 0x14, 0x00, 0x07, 0x00, 0x14, 0x00, 0x14, 0x00, 0x14, 0x00, 0x08, 0x00, 0x00, 0x14, 0x00, 0x14, 0x14, 0x00
- .byte 0x09, 0x14, 0x00, 0x00, 0x14, 0x00, 0x14, 0x00, 0x0a, 0x00, 0x14, 0x00, 0x00, 0x14, 0x14, 0x00, 0x0b, 0x00, 0x02, 0x00, 0x02, 0x02, 0x00, 0x00, 0x0c, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00
- .byte 0x0d, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x0e, 0x14, 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ @ color, spicy, dry, sweet, bitter, sour, feel
+ .byte 0x01, 0x14, 0x00, 0x00, 0x00, 0x00, 0x14
+ .align 2, 0
+ .byte 0x02, 0x00, 0x14, 0x00, 0x00, 0x00, 0x14
+ .align 2, 0
+ .byte 0x03, 0x00, 0x00, 0x14, 0x00, 0x00, 0x14
+ .align 2, 0
+ .byte 0x04, 0x00, 0x00, 0x00, 0x14, 0x00, 0x14
+ .align 2, 0
+ .byte 0x05, 0x00, 0x00, 0x00, 0x00, 0x14, 0x14
+ .align 2, 0
+ .byte 0x06, 0x14, 0x00, 0x14, 0x00, 0x00, 0x14
+ .align 2, 0
+ .byte 0x07, 0x00, 0x14, 0x00, 0x14, 0x00, 0x14
+ .align 2, 0
+ .byte 0x08, 0x00, 0x00, 0x14, 0x00, 0x14, 0x14
+ .align 2, 0
+ .byte 0x09, 0x14, 0x00, 0x00, 0x14, 0x00, 0x14
+ .align 2, 0
+ .byte 0x0a, 0x00, 0x14, 0x00, 0x00, 0x14, 0x14
+ .align 2, 0
+ .byte 0x0b, 0x00, 0x02, 0x00, 0x02, 0x02, 0x00
+ .align 2, 0
+ .byte 0x0c, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00
+ .align 2, 0
+ .byte 0x0d, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01
+ .align 2, 0
+ .byte 0x0e, 0x14, 0x00, 0x00, 0x00, 0x00, 0x14
+ .align 2, 0
+ .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ .align 2, 0
.ifdef ENGLISH
Str_821F624:: @ 0x821F624
diff --git a/include/battle.h b/include/battle.h
index afebbc781..8911218eb 100644
--- a/include/battle.h
+++ b/include/battle.h
@@ -4,6 +4,7 @@
#include "sprite.h"
#include "constants/battle.h"
#include "battle_setup.h"
+#include "main.h"
#define GET_BATTLER_POSITION(battler) (gBattlerPositions[battler])
#define GET_BATTLER_SIDE(battler) (GetBattlerPosition(battler) & BIT_SIDE)
@@ -281,15 +282,24 @@ struct AI_Stack
u8 size;
};
+struct LinkPartnerHeader
+{
+ u8 versionSignatureLo;
+ u8 versionSignatureHi;
+ u8 vsScreenHealthFlagsLo;
+ u8 vsScreenHealthFlagsHi;
+ struct BattleEnigmaBerry battleEnigmaBerry;
+};
+
struct BattleStruct /* 0x2000000 */
{
- /*0x00000*/ u8 unk0;
- /*0x00001*/ bool8 unk1;
- /*0x00002*/ u8 unk2;
- /*0x00003*/ bool8 unk3;
- u8 filler4[0x15DDA];
- /*0x15DDE*/ u8 unk15DDE;
- /*0x15DDF*/ u8 unk15DDF;
+ /*0x00000*/ union{
+ struct LinkPartnerHeader linkPartnerHeader;
+ struct MultiBattlePokemonTx multiBattleMons[3];
+ } multiBuffer;
+ u8 filler60[0x15D7E];
+ /*0x15DDE*/ u8 contestWinnerSaveIdx;
+ /*0x15DDF*/ u8 contestWinnerIsForArtist;
/*0x15DE0*/ u8 filler15DE0[0x220];
/*0x16000*/ u8 turnEffectsTracker;
/*0x16001*/ u8 turnEffectsBattlerId;
@@ -330,14 +340,14 @@ struct BattleStruct /* 0x2000000 */
/*0x16064*/ u8 unk16064[4];
/*0x16068*/ u8 monToSwitchIntoId[MAX_BATTLERS_COUNT];
/*0x1606C*/ u8 unk1606C[4][3];
- /*0x16078*/ u8 unk16078;
+ /*0x16078*/ u8 runTries;
/*0x16079*/ u8 caughtNick[11];
- /*0x16084*/ u8 unk16084;
+ /*0x16084*/ u8 battleStyle;
/*0x16085*/ u8 unk16085;
- /*0x16086*/ u8 unk16086;
- /*0x16087*/ u8 unk16087;
+ /*0x16086*/ u8 safariGoNearCounter;
+ /*0x16087*/ u8 safariPkblThrowCounter;
/*0x16088*/ u8 safariFleeRate;
- /*0x16089*/ u8 unk16089;
+ /*0x16089*/ u8 safariCatchFactor;
/*0x1608A*/ u8 unk1608A;
/*0x1608B*/ u8 unk1608B;
/*0x1608C*/ u8 ChosenMoveID[4];
@@ -366,34 +376,15 @@ struct BattleStruct /* 0x2000000 */
/*0x160A9*/ u8 unk160A9;
/*0x160AA*/ u8 unk160Aa;
/*0x160AB*/ u8 unk160Ab;
- /*0x160AC*/ u8 unk160AC;
- /*0x160AD*/ u8 unk160AD;
- /*0x160AE*/ u8 unk160AE;
- /*0x160AF*/ u8 unk160AF;
- /*0x160B0*/ u8 unk160B0;
- /*0x160B1*/ u8 unk160B1;
- /*0x160B2*/ u8 unk160B2;
- /*0x160B3*/ u8 unk160B3;
- /*0x160B4*/ u8 unk160B4;
- /*0x160B5*/ u8 unk160B5;
- /*0x160B6*/ u8 unk160B6;
- /*0x160B7*/ u8 unk160B7;
- /*0x160B8*/ u8 unk160B8;
- /*0x160B9*/ u8 unk160B9;
- /*0x160BA*/ u8 unk160Ba;
- /*0x160BB*/ u8 unk160Bb;
+ /*0x160AC*/ u16 lastTakenMove[4 * 2];
/*0x160BC*/ u16 HP_OnSwitchout[2];
/*0x160C0*/ u8 unk160C0;
/*0x160C1*/ u8 hpScale;
- /*0x160C2*/ u8 unk160C2;
- /*0x160C3*/ u8 unk160C3;
- /*0x160C4*/ u8 unk160C4;
- /*0x160C5*/ u8 unk160C5;
- /*0x160C6*/ u8 unk160C6;
- /*0x160C7*/ u8 unk160C7;
+ /*0x160C2*/ u16 unk160C2;
+ /*0x160C4*/ MainCallback unk160C4;
/*0x160C8*/ u8 AI_monToSwitchIntoId[2];
/*0x160CA*/ u8 synchroniseEffect;
- /*0x160CB*/ u8 linkPlayerIndex;
+ /*0x160CB*/ u8 multiplayerId;
/*0x160CC*/ u16 usedHeldItems[4];
/*0x160D4*/ u8 unk160D4;
/*0x160D5*/ u8 unk160D5;
@@ -413,22 +404,8 @@ struct BattleStruct /* 0x2000000 */
/*0x160E5*/ u8 unk160E5;
/*0x160E6*/ u8 unk160E6;
/*0x160E7*/ u8 atkCancellerTracker;
- /*0x160E8*/ u8 unk160E8;
- /*0x160E9*/ u8 unk160E9;
- /*0x160EA*/ u8 unk160EA;
- /*0x160EB*/ u8 unk160EB;
- /*0x160EC*/ u8 unk160EC;
- /*0x160ED*/ u8 unk160ED;
- /*0x160EE*/ u8 unk160EE;
- /*0x160EF*/ u8 unk160EF;
- /*0x160F0*/ u8 unk160F0;
- /*0x160F1*/ u8 unk160F1;
- /*0x160F2*/ u8 unk160F2;
- /*0x160F3*/ u8 unk160F3;
- /*0x160F4*/ u8 unk160F4;
- /*0x160F5*/ u8 unk160F5;
- /*0x160F6*/ u8 unk160F6;
- /*0x160F7*/ u8 unk160F7;
+ /*0x160E8*/ u16 choicedMove[4];
+ /*0x160F0*/ u16 changedItems[4];
/*0x160F8*/ u8 unk160F8;
/*0x160F9*/ u8 unk160F9;
/*0x160FA*/ u8 unk160FA;
@@ -437,26 +414,11 @@ struct BattleStruct /* 0x2000000 */
/*0x160FD*/ u8 unk160FD;
/*0x160FE*/ u8 unk160FE;
/*0x160FF*/ u8 unk160FF;
- /*0x16100*/ u8 unk16100;
- /*0x16101*/ u8 unk16101;
- /*0x16102*/ u8 unk16102;
- /*0x16103*/ u8 unk16103;
- /*0x16104*/ u8 unk16104;
- /*0x16105*/ u8 unk16105;
- /*0x16106*/ u8 unk16106;
- /*0x16107*/ u8 unk16107;
- /*0x16108*/ u8 unk16108;
- /*0x16109*/ u8 unk16109;
- /*0x1610A*/ u8 unk1610A;
- /*0x1610B*/ u8 unk1610B;
- /*0x1610C*/ u8 unk1610C;
- /*0x1610D*/ u8 unk1610D;
- /*0x1610E*/ u8 unk1610E;
- /*0x1610F*/ u8 unk1610F;
+ /*0x16100*/ u8 lastTakenMoveFrom[2 * 2 * 4];
/*0x16110*/ u8 wishPerishSongState;
/*0x16111*/ u8 wishPerishSongBattlerId;
- /*0x16112*/ u8 unk16112;
- /*0x16113*/ u8 unk16113;
+ /*0x16112*/ u8 multihitMoveEffect;
+ /*0x16113*/ u8 givenExpMons;
/*0x16114*/ u8 unk16114;
/*0x16115*/ u8 unk16115;
/*0x16116*/ u8 unk16116;
@@ -474,18 +436,18 @@ struct BattleStruct /* 0x2000000 */
/* 0x16A00 */ struct BattleHistory unk_2016A00_2;
};
-struct Struct2017100
+struct ResourceFlags
{
u32 arr[4];
};
-struct Struct2017800
+struct BattleSpriteInfo
{
u8 invisible:1;
- u8 unk0_1:1;
+ u8 lowHpSong:1;
u8 substituteSprite:1;
- u8 unk0_3:1;
- u8 unk0_4:1;
+ u8 flag_x8:1;
+ u8 hpNumbersNoBars:1;
u16 transformedSpecies;
};
@@ -529,8 +491,6 @@ struct Struct20238C8
u8 unk0_7:1;
};
-#define gBattleResources_statsBeforeLvlUp ((struct StatsArray *)(gSharedMem + 0x17180))
-
#define GET_MOVE_TYPE(move, typeArg) \
{ \
if (gBattleStruct->dynamicMoveType) \
@@ -659,7 +619,7 @@ void sub_800D6D4();
void ApplyPlayerChosenFrameToBattleMenu();
void DrawMainBattleBackground(void);
void LoadBattleTextboxAndBackground();
-void sub_800DE30(u8);
+void InitLinkBattleVsScreen(u8);
void DrawBattleEntryBackground();
// src/battle_2.o
@@ -667,7 +627,7 @@ void CB2_InitBattle(void);
void CB2_InitBattleInternal(void);
void CB2_HandleStartBattle(void);
void sub_800F104(void);
-void sub_800F298(void);
+void CB2_HandleStartMultiBattle(void);
void BattleMainCB2(void);
void sub_800F838(struct Sprite *);
u8 CreateNPCTrainerParty(struct Pokemon *, u16);
@@ -688,7 +648,7 @@ void objc_dp11b_pingpong(struct Sprite *);
void nullsub_41(void);
void sub_8010800(void);
void BattleMainCB1(void);
-void sub_8010874(void);
+void BattleStartClearSetData(void);
void bc_8012FAC(void);
void sub_8011384(void);
void bc_801333C(void);
diff --git a/include/ewram.h b/include/ewram.h
index da544f5c2..0efac7bda 100644
--- a/include/ewram.h
+++ b/include/ewram.h
@@ -87,74 +87,39 @@ extern u8 gSharedMem[];
#define ewram15000 (&gSharedMem[0x15000])
#define ewram15000arr(i, data) (gSharedMem[0x15000 + data + i])
#define ewram15800 (&gSharedMem[0x15800])
-#define ewram15DDE (gSharedMem[0x15DDE])
-#define ewram15DDF (gSharedMem[0x15DDF])
#define ewram15DE0 ((*(struct ContestEntry*)(gSharedMem + 0x15DE0)))
#define ewram15E00 ((*(struct Unk2015E00*)(gSharedMem + 0x15E00)))
#define ewram16000 (gSharedMem[0x16000])
#define ewram16000_2 (&gSharedMem[0x16000])
-#define ewram16001 (gSharedMem[0x16001])
-#define ewram16002 (gSharedMem[0x16002])
#define ewram16003 (gSharedMem[0x16003])
#define ewram16004arr(i, battler) (gSharedMem[0x16004 + i + battler * 2])
-#define ewram1600C (gSharedMem[0x1600C])
-#define ewram1600E (gSharedMem[0x1600E])
#define ewram16010arr(battler) (gSharedMem[0x16010 + battler])
-#define ewram1601B (gSharedMem[0x1601B])
#define eDynamicMoveType (gSharedMem[0x1601C])
#define eFocusPunchBattler (gSharedMem[0x1601D])
#define eDmgMultiplier (gSharedMem[0x1601F])
#define ewram16020 ((u8 *)(gSharedMem + 0x16020))
#define ewram16020arr(i) (gSharedMem[0x16020 + i])
-#define ewram16054 (gSharedMem[0x16054])
-#define ewram16056 (gSharedMem[0x16056])
#define ewram16058 (gSharedMem[0x16058])
-#define ewram16059 (gSharedMem[0x16059])
#define ewram16060(battler) (gSharedMem[0x16060 + battler])
#define BATTLE_PARTY_ID(battler) (gSharedMem[0x16064 + battler])
-#define ewram16064 (&gSharedMem[0x16064])
#define ewram16064arr(battler) (gSharedMem[0x16064 + battler])
#define ewram16068arr(i) (gSharedMem[0x16068 + i])
#define UNK_201606C_ARRAY (gSharedMem + 0x1606C) // lazy define but whatever.
#define ewram1606Carr(i, a) (gSharedMem[0x1606C + i + a * 3])
-#define ewram16078 (gSharedMem[0x16078])
-#define ewram16084 (gSharedMem[0x16084])
-#define ewram16086 (gSharedMem[0x16086])
-#define ewram16087 (gSharedMem[0x16087])
#define ewram16088 (gSharedMem[0x16088])
-#define ewram16088_2 (*(u8 *)(gSharedMem + 0x16088))
#define ewram16089 (gSharedMem[0x16089])
-#define ewram16089_2 (*(u8 *)(gSharedMem + 0x16089))
-
-// src/battle/anim/battle_intro.c
-#define ewram1608A gSharedMem[0x1608A]
-#define ewram1608B gSharedMem[0x1608B]
#define ewram1608Carr(battler) (gSharedMem[0x1608C + battler])
#define ewram16094arr(battler) (gSharedMem[0x16094 + battler])
#define EWRAM_1609D (gSharedMem[0x1609D])
-#define ewram1609e(flank) (gSharedMem[0x1609E + (flank)])
-#define ewram160A1 (gSharedMem[0x160A1])
-#define ewram160A4 (gSharedMem[0x160A4])
-#define ewram160A5 (gSharedMem[0x160A5])
-#define ewram160A6 (gSharedMem[0x160A6])
#define ewram160A8 (gSharedMem[0x160A8])
#define ewram160A9 (gSharedMem[0x160A9])
#define ewram160AA (gSharedMem[0x160AA])
#define ewram160AB (gSharedMem[0x160AB])
-#define ewram160AC ((u8 *)(gSharedMem + 0x160AC))
-#define ewram160ACarr(i) (gSharedMem[0x160AC + i])
-#define ewram160ACarr2(i, battler) (gSharedMem[0x160AC + i + battler * 2])
-#define ewram160BC ((u16 *)(gSharedMem + 0x160BC)) // hp
-#define ewram160BCarr(battler) (gSharedMem[0x160BC + battler * 2])
-#define ewram160C0 (gSharedMem[0x160C0])
-#define ewram160C2_Flags ((u16 *)(gSharedMem + 0x160C2))
-#define ewram160C4_Callback ((MainCallback *)(gSharedMem + 0x160C4))
-#define ewram160C8 (gSharedMem[0x160C8])
+#define eLastTakenMove_flat(i) (gSharedMem[0x160AC + i])
+#define eLastTakenMove_2d(i, battler) (gSharedMem[0x160AC + i + battler * 2])
+#define eHpOnSwitchout(battler) (gSharedMem[0x160BC + battler * 2])
#define ewram160C8arr(battler) (gSharedMem[0x160C8 + (battler / 2)])
-#define ewram160C9 (gSharedMem[0x160C9])
-#define ewram160CB (gSharedMem[0x160CB])
-#define ewram160CC ((u8 *)(gSharedMem + 0x160CC))
#define ewram160CCarr(i) (gSharedMem[0x160CC + i])
#define USED_HELD_ITEM(battler) ((((u16*)(&gSharedMem[0x160CC + battler * 2]))))
#define USED_HELD_ITEMS(battler) (*(u16 *)&gSharedMem[0x160CC + 2 * (battler)])
@@ -163,8 +128,6 @@ extern u8 gSharedMem[];
#define ewram160DA(battler) (gSharedMem[0x160DA + (battler >> 1)])
#define ewram160DD (gSharedMem[0x160DD])
#define ewram160E0(i) (gSharedMem[0x160E0 + i])
-#define ewram160E6 (gSharedMem[0x160E6])
-#define ewram160E7 (gSharedMem[0x160E7])
#define CHOICED_MOVE(battler) (((u16*)(&gSharedMem[0x160E8 + battler * 2])))
#define ewram160E8 ((u8 *)(gSharedMem + 0x160E8))
#define ewram160E8arr(i) (gSharedMem[0x160E8 + i])
@@ -172,7 +135,6 @@ extern u8 gSharedMem[];
#define ewram160F0 ((u8 *)(gSharedMem + 0x160F0))
#define ewram160F0arr(i) (gSharedMem[0x160F0 + i])
#define ewram160F8 (gSharedMem[0x160F8])
-#define ewram160F9 (gSharedMem[0x160F9])
#define eStatHp (gSharedMem[0x160FA])
#define ewram160FB (gSharedMem[0x160FB])
#define ewram16100 ((u8 *)(gSharedMem + 0x16100))
@@ -180,27 +142,24 @@ extern u8 gSharedMem[];
#define ewram16100arr2(i, battler) (gSharedMem[0x16100 + i + battler * 4])
#define ewram16108 ((u8 *)(gSharedMem + 0x16108))
#define ewram16108arr(i) (gSharedMem[0x16108 + i])
-#define ewram16110 (gSharedMem[0x16110])
-#define ewram16111 (gSharedMem[0x16111])
-#define eMultihitMoveEffect (gSharedMem[0x16112])
-#define ewram16113 (gSharedMem[0x16113])
#define ewram16400 (gSharedMem + 0x16400)
+#define AI_ARRAY_160CC(i) (gSharedMem[0x160CC + i * 2])
+#define ewram16800 (&gSharedMem[0x16800])
+
+// gBattleResources
#define AI_THINKING_STRUCT ((struct AI_ThinkingStruct *)(gSharedMem + 0x16800))
#define AI_BATTLE_HISTORY ((struct BattleHistory *) (gSharedMem + 0x16A00))
#define AI_STACK ((struct AI_Stack *) (gSharedMem + 0x16C00))
-#define AI_ARRAY_160CC(i) (gSharedMem[0x160CC + i * 2])
-#define ewram16800 (&gSharedMem[0x16800])
-#define ewram17000 (&gSharedMem[0x17000])
-#define eMoveTutorMenu (struct MoveTutorMenu *)(gSharedMem + 0x17000)
#define eSecretBaseRecord ((struct SecretBaseRecord *)(gSharedMem + 0x17000))
-#define eCableCar1 ((struct CableCarEwramStruct1 *)(gSharedMem + 0x17000))
-#define ewram17002 (&gSharedMem[0x17002])
-#define eFlashFireArr (*(struct Struct2017100 *)(gSharedMem + 0x17100))
+#define eBattleFlagsArr (*(struct ResourceFlags *)(gSharedMem + 0x17100))
#define B_BATTLESCRIPTS_STACK ((struct BattleScriptsStack *) (gSharedMem + 0x17110))
-#define ewram17130 (gSharedMem[0x17130])
#define B_FUNCTION_STACK ((struct BattleCallbacksStack *) (gSharedMem + 0x17140))
-#define ewram17160 (gSharedMem[0x17160])
-#define ewram17800 ((struct Struct2017800 *) (gSharedMem + 0x17800))
+#define gBattleResources_statsBeforeLvlUp ((struct StatsArray *)(gSharedMem + 0x17180))
+
+#define ewram17000 (&gSharedMem[0x17000])
+#define eMoveTutorMenu (struct MoveTutorMenu *)(gSharedMem + 0x17000)
+#define eCableCar1 ((struct CableCarEwramStruct1 *)(gSharedMem + 0x17000))
+#define gBattleSpriteInfo ((struct BattleSpriteInfo *) (gSharedMem + 0x17800))
#define ewram17800_2 (&gSharedMem[0x17800])
#define EWRAM_17800 ((struct UnknownStruct1 *)(gSharedMem + 0x17800))
#define eTransformStatuses ((struct TransformStatus *)(gSharedMem + 0x17800))
diff --git a/include/global.h b/include/global.h
index e5114c396..ed74fcf77 100644
--- a/include/global.h
+++ b/include/global.h
@@ -115,26 +115,31 @@ struct UCoords16
u16 y;
};
+struct SecretBaseParty
+{
+ /*0x1A3C*/ u32 personality[PARTY_SIZE];
+ /*0x1A54*/ u16 moves[PARTY_SIZE * 4];
+ /*0x1A84*/ u16 species[PARTY_SIZE];
+ /*0x1A90*/ u16 heldItems[PARTY_SIZE];
+ /*0x1A9C*/ u8 levels[PARTY_SIZE];
+ /*0x1AA2*/ u8 EVs[PARTY_SIZE];
+};
+
struct SecretBaseRecord
{
/*0x1A08*/ u8 secretBaseId;
- /*0x1A09*/ u8 sbr_field_1_0:4;
+ /*0x1A09*/ u8 toRegister:4;
/*0x1A09*/ u8 gender:1;
- /*0x1A09*/ u8 sbr_field_1_5:1;
- /*0x1A09*/ u8 sbr_field_1_6:2;
+ /*0x1A09*/ u8 battledOwnerToday:1;
+ /*0x1A09*/ u8 registryStatus:2;
/*0x1A0A*/ u8 playerName[OT_NAME_LENGTH];
/*0x1A11*/ u8 trainerId[4]; // byte 0 is used for determining trainer class
- /*0x1A16*/ u16 sbr_field_e;
- /*0x1A18*/ u8 sbr_field_10;
- /*0x1A19*/ u8 sbr_field_11;
+ /*0x1A16*/ u16 numSecretBasesReceived;
+ /*0x1A18*/ u8 numTimesEntered;
+ /*0x1A19*/ u8 unused;
/*0x1A1A*/ u8 decorations[DECOR_MAX_SECRET_BASE];
/*0x1A2A*/ u8 decorationPos[DECOR_MAX_SECRET_BASE];
- /*0x1A3C*/ u32 partyPersonality[PARTY_SIZE];
- /*0x1A54*/ u16 partyMoves[PARTY_SIZE * 4];
- /*0x1A84*/ u16 partySpecies[PARTY_SIZE];
- /*0x1A90*/ u16 partyHeldItems[PARTY_SIZE];
- /*0x1A9C*/ u8 partyLevels[PARTY_SIZE];
- /*0x1AA2*/ u8 partyEVs[PARTY_SIZE];
+ /*0x1A3C*/ struct SecretBaseParty party;
};
#include "constants/game_stat.h"
diff --git a/include/party_menu.h b/include/party_menu.h
index 172435b2d..98ac0ddde 100644
--- a/include/party_menu.h
+++ b/include/party_menu.h
@@ -97,20 +97,6 @@ struct Unk2001000
u16 array[53561];
};
-struct UnknownPokemonStruct2
-{
- /*0x00*/ u16 species;
- /*0x02*/ u16 heldItem;
- /*0x04*/ u8 nickname[11];
- /*0x0F*/ u8 level;
- /*0x10*/ u16 hp;
- /*0x12*/ u16 maxhp;
- /*0x14*/ u32 status;
- /*0x18*/ u32 personality;
- /*0x1C*/ u8 gender;
- /*0x1D*/ u8 language;
-};
-
void CB2_PartyMenuMain(void);
void ChangeBattleTowerPartyMenuSelection(u8 taskId, s8 directionPressed);
void SetPartyMenuSettings(u8 menuType, u8 battleTypeFlags, TaskFunc menuHandlerFunc, u8 textId);
@@ -151,7 +137,7 @@ void SetHeldItemIconVisibility(u8 a, u8 monIndex);
void PartyMenuDoPrintMonNickname(u8 monIndex, int b, const u8 *nameBuffer);
void PrintPartyMenuMonNickname(u8 monIndex, u8 b, struct Pokemon *pokemon);
void PrintPartyMenuMonNicknames(void);
-void CreateMonIcon_LinkMultiBattle(u8 taskId, u8 monIndex, u8 menuType, struct UnknownPokemonStruct2 *pokemon);
+void CreateMonIcon_LinkMultiBattle(u8 taskId, u8 monIndex, u8 menuType, struct MultiBattlePokemonTx *pokemon);
u8 *GetMonNickname(struct Pokemon *pokemon, u8 *stringBuffer);
void PartyMenuPutStatusTilemap(u8 monIndex, u8 b, u8 status);
void PartyMenuDoPrintLevel(u8 monIndex, u8 b, u8 level);
diff --git a/include/pokemon.h b/include/pokemon.h
index d2ab1335c..57da75e16 100644
--- a/include/pokemon.h
+++ b/include/pokemon.h
@@ -193,6 +193,20 @@ struct UnknownPokemonStruct
/*0x2B*/u8 friendship;
};
+struct MultiBattlePokemonTx
+{
+ /*0x00*/ u16 species;
+ /*0x02*/ u16 heldItem;
+ /*0x04*/ u8 nickname[11];
+ /*0x0F*/ u8 level;
+ /*0x10*/ u16 hp;
+ /*0x12*/ u16 maxhp;
+ /*0x14*/ u32 status;
+ /*0x18*/ u32 personality;
+ /*0x1C*/ u8 gender;
+ /*0x1D*/ u8 language;
+};
+
#define BATTLE_STATS_NO 8
struct BattlePokemon
diff --git a/src/battle/anim/battle_intro.c b/src/battle/anim/battle_intro.c
index c18f5790c..1c1972bb4 100644
--- a/src/battle/anim/battle_intro.c
+++ b/src/battle/anim/battle_intro.c
@@ -12,7 +12,7 @@
#include "trig.h"
extern u16 gBattleTypeFlags;
-extern u16 gUnknown_02024DE8;
+extern u16 gIntroSlideFlags;
extern u8 gBattleMonForms[];
extern void sub_800FE20(struct Sprite *);
@@ -118,7 +118,7 @@ static void BattleIntroTask_ScrollScenery(u8 taskId)
gTasks[taskId].tState++;
gTasks[taskId].tBgXOffset = DISPLAY_WIDTH;
gTasks[taskId].tFramesUntilBg1Slide = 32;
- gUnknown_02024DE8 &= ~1;
+ gIntroSlideFlags &= ~1;
}
break;
case 3:
@@ -227,7 +227,7 @@ static void BattleIntroTask_FadeScenery(u8 taskId)
gTasks[taskId].tBgXOffset = DISPLAY_WIDTH;
gTasks[taskId].tFramesUntilBg1Slide = 32;
gTasks[taskId].data[5] = 1;
- gUnknown_02024DE8 &= ~1;
+ gIntroSlideFlags &= ~1;
}
break;
case 3:
@@ -323,7 +323,7 @@ static void BattleIntroTask_ScrollAndFadeScenery(u8 taskId)
gTasks[taskId].tBgXOffset = DISPLAY_WIDTH;
gTasks[taskId].tFramesUntilBg1Slide = 32;
gTasks[taskId].data[5] = 1;
- gUnknown_02024DE8 &= ~1;
+ gIntroSlideFlags &= ~1;
}
break;
case 3:
@@ -402,10 +402,10 @@ static void BattleIntroTask_80E4C34(u8 taskId)
if (gTasks[taskId].tBgXOffset == 0)
{
gTasks[taskId].tState++;
- gSprites[ewram1608A].oam.objMode = 2;
- gSprites[ewram1608A].callback = sub_800FE20;
- gSprites[ewram1608B].oam.objMode = 2;
- gSprites[ewram1608B].callback = sub_800FE20;
+ gSprites[gBattleStruct->unk1608A].oam.objMode = 2;
+ gSprites[gBattleStruct->unk1608A].callback = sub_800FE20;
+ gSprites[gBattleStruct->unk1608B].oam.objMode = 2;
+ gSprites[gBattleStruct->unk1608B].callback = sub_800FE20;
REG_WININ = 0x3F;
REG_WINOUT = 0x3F06;
}
@@ -419,7 +419,7 @@ static void BattleIntroTask_80E4C34(u8 taskId)
gTasks[taskId].tState++;
gTasks[taskId].tBgXOffset = DISPLAY_WIDTH;
gTasks[taskId].tFramesUntilBg1Slide = 32;
- gUnknown_02024DE8 &= ~1;
+ gIntroSlideFlags &= ~1;
}
break;
case 3:
diff --git a/src/battle/anim/normal.c b/src/battle/anim/normal.c
index 9053d7844..9be913b70 100644
--- a/src/battle/anim/normal.c
+++ b/src/battle/anim/normal.c
@@ -1932,8 +1932,8 @@ void sub_80E4300(u8 taskId)
}
else
{
- gTasks[taskId].data[0] = ewram17800[gBattleAnimAttacker].invisible;
- ewram17800[gBattleAnimAttacker].invisible = TRUE;
+ gTasks[taskId].data[0] = gBattleSpriteInfo[gBattleAnimAttacker].invisible;
+ gBattleSpriteInfo[gBattleAnimAttacker].invisible = TRUE;
gTasks[taskId].func = sub_80E4368;
gAnimVisualTaskCount--;
}
@@ -1943,7 +1943,7 @@ static void sub_80E4368(u8 taskId)
{
if (gBattleAnimArgs[7] == 0x1000)
{
- ewram17800[gBattleAnimAttacker].invisible = gTasks[taskId].data[0] & 1;
+ gBattleSpriteInfo[gBattleAnimAttacker].invisible = gTasks[taskId].data[0] & 1;
DestroyTask(taskId);
}
}
diff --git a/src/battle_ai_switch_items.c b/src/battle_ai_switch_items.c
index f83334be3..9de1e9b1f 100644
--- a/src/battle_ai_switch_items.c
+++ b/src/battle_ai_switch_items.c
@@ -82,7 +82,7 @@ static bool8 ShouldSwitchIfWonderGuard(void)
continue;
GetMonData(&gEnemyParty[i], MON_DATA_SPECIES); // Unused return value.
GetMonData(&gEnemyParty[i], MON_DATA_ALT_ABILITY); // Unused return value.
-
+
for (opposingBattler = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT), j = 0; j < MAX_MON_MOVES; ++j)
{
move = GetMonData(&gEnemyParty[i], MON_DATA_MOVE1 + j);
diff --git a/src/battle_anim_special.c b/src/battle_anim_special.c
index e86b9359c..50a5323e3 100755
--- a/src/battle_anim_special.c
+++ b/src/battle_anim_special.c
@@ -1843,7 +1843,7 @@ void sub_81416C4(u8 taskId)
void sub_81417D8(u8 taskId)
{
- gBattleAnimArgs[7] = ewram17800[gBattleAnimAttacker].substituteSprite;
+ gBattleAnimArgs[7] = gBattleSpriteInfo[gBattleAnimAttacker].substituteSprite;
DestroyAnimVisualTask(taskId);
}
diff --git a/src/battle_bg.c b/src/battle_bg.c
index 6aa22edf6..c3c08aa0e 100644
--- a/src/battle_bg.c
+++ b/src/battle_bg.c
@@ -416,7 +416,7 @@ static void sub_800DAF8(u8 taskId, u8 windowId, u8 *dest)
}
CpuSet(src, dest, 3);
} else {
- if (windowId == gBattleStruct->linkPlayerIndex) {
+ if (windowId == gBattleStruct->multiplayerId) {
r4 = gTasks[taskId].data[3];
} else {
r4 = gTasks[taskId].data[4];
@@ -468,7 +468,7 @@ static void PrintLinkBattleWinLossTie(void)
{
// id = player position?
- switch (gLinkPlayers[gBattleStruct->linkPlayerIndex].id)
+ switch (gLinkPlayers[gBattleStruct->multiplayerId].id)
{
case 0:
case 2:
@@ -486,7 +486,7 @@ static void PrintLinkBattleWinLossTie(void)
else
{
- switch (gLinkPlayers[gBattleStruct->linkPlayerIndex].id)
+ switch (gLinkPlayers[gBattleStruct->multiplayerId].id)
{
case 1:
case 3:
@@ -508,7 +508,7 @@ static void PrintLinkBattleWinLossTie(void)
if (gBattleOutcome == 1)
{
- if (gLinkPlayers[gBattleStruct->linkPlayerIndex].id != 0)
+ if (gLinkPlayers[gBattleStruct->multiplayerId].id != 0)
{
PRINT_MESSAGE_RIGHT(BattleText_Win, TILE_OFFSET_WIN);
PRINT_MESSAGE_LEFT(BattleText_Loss, TILE_OFFSET_LOSS);
@@ -521,7 +521,7 @@ static void PrintLinkBattleWinLossTie(void)
}
else
{
- if (gLinkPlayers[gBattleStruct->linkPlayerIndex].id != 0)
+ if (gLinkPlayers[gBattleStruct->multiplayerId].id != 0)
{
PRINT_MESSAGE_LEFT(BattleText_Win, TILE_OFFSET_WIN);
PRINT_MESSAGE_RIGHT(BattleText_Loss, TILE_OFFSET_LOSS);
@@ -535,7 +535,7 @@ static void PrintLinkBattleWinLossTie(void)
}
-void sub_800DE30(u8 taskId)
+void InitLinkBattleVsScreen(u8 taskId)
{
u8 palette;
int i;
@@ -559,11 +559,11 @@ void sub_800DE30(u8 taskId)
} else {
u8 windowId = 4;
- u8 playerId = gBattleStruct->linkPlayerIndex;
- u8 opponentId = gBattleStruct->linkPlayerIndex ^ 1;
+ u8 playerId = gBattleStruct->multiplayerId;
+ u8 opponentId = gBattleStruct->multiplayerId ^ 1;
if (gLinkPlayers[playerId].id) {
- opponentId = gBattleStruct->linkPlayerIndex;
- playerId = gBattleStruct->linkPlayerIndex ^ 1;
+ opponentId = gBattleStruct->multiplayerId;
+ playerId = gBattleStruct->multiplayerId ^ 1;
}
Text_InitWindow8002E4C(
diff --git a/src/battle_controller_link_opponent.c b/src/battle_controller_link_opponent.c
index d781599e9..eafe78b42 100644
--- a/src/battle_controller_link_opponent.c
+++ b/src/battle_controller_link_opponent.c
@@ -44,7 +44,7 @@ extern void (*gAnimScriptCallback)(void);
extern u8 gDisplayedStringBattle[];
extern bool8 gDoingBattleAnim;
extern u8 gBattleOutcome;
-extern u16 gUnknown_02024DE8;
+extern u16 gIntroSlideFlags;
extern u8 gUnknown_02024E68[];
extern struct SpriteTemplate gUnknown_02024E8C;
extern u8 gAnimMoveTurn;
@@ -454,7 +454,7 @@ void sub_8037CC0(void)
{
if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy)
{
- if (ewram17800[gActiveBattler].substituteSprite)
+ if (gBattleSpriteInfo[gActiveBattler].substituteSprite)
move_anim_start_t4(gActiveBattler, gActiveBattler, gActiveBattler, 6);
gBattlerControllerFuncs[gActiveBattler] = sub_8037D2C;
}
@@ -1214,7 +1214,7 @@ void sub_8039648(void)
switch (ewram17810[gActiveBattler].unk4)
{
case 0:
- if (ewram17800[gActiveBattler].substituteSprite)
+ if (gBattleSpriteInfo[gActiveBattler].substituteSprite)
move_anim_start_t4(gActiveBattler, gActiveBattler, gActiveBattler, 5);
ewram17810[gActiveBattler].unk4 = 1;
break;
@@ -1283,7 +1283,7 @@ void LinkOpponentHandlecmd10(void)
{
if (ewram17810[gActiveBattler].unk4 == 0)
{
- if (ewram17800[gActiveBattler].substituteSprite)
+ if (gBattleSpriteInfo[gActiveBattler].substituteSprite)
move_anim_start_t4(gActiveBattler, gActiveBattler, gActiveBattler, 5);
ewram17810[gActiveBattler].unk4++;
}
@@ -1358,9 +1358,9 @@ void sub_8039B64(void)
switch (ewram17810[gActiveBattler].unk4)
{
case 0:
- if (ewram17800[gActiveBattler].substituteSprite && !ewram17800[gActiveBattler].unk0_3)
+ if (gBattleSpriteInfo[gActiveBattler].substituteSprite && !gBattleSpriteInfo[gActiveBattler].flag_x8)
{
- ewram17800[gActiveBattler].unk0_3 = 1;
+ gBattleSpriteInfo[gActiveBattler].flag_x8 = 1;
move_anim_start_t4(gActiveBattler, gActiveBattler, gActiveBattler, 5);
}
ewram17810[gActiveBattler].unk4 = 1;
@@ -1378,10 +1378,10 @@ void sub_8039B64(void)
if (!gAnimScriptActive)
{
sub_80326EC(1);
- if ((ewram17800[gActiveBattler].substituteSprite) && r7 <= 1)
+ if ((gBattleSpriteInfo[gActiveBattler].substituteSprite) && r7 <= 1)
{
move_anim_start_t4(gActiveBattler, gActiveBattler, gActiveBattler, 6);
- ewram17800[gActiveBattler].unk0_3 = 0;
+ gBattleSpriteInfo[gActiveBattler].flag_x8 = 0;
}
ewram17810[gActiveBattler].unk4 = 3;
}
@@ -1613,7 +1613,7 @@ void LinkOpponentHandleFaintingCry(void)
void LinkOpponentHandleIntroSlide(void)
{
StartBattleIntroAnim(gBattleBufferA[gActiveBattler][1]);
- gUnknown_02024DE8 |= 1;
+ gIntroSlideFlags |= 1;
LinkOpponentBufferExecCompleted();
}
diff --git a/src/battle_controller_link_partner.c b/src/battle_controller_link_partner.c
index 67c46c59d..946e943e4 100644
--- a/src/battle_controller_link_partner.c
+++ b/src/battle_controller_link_partner.c
@@ -38,7 +38,7 @@ extern u32 gBattleControllerExecFlags;
extern u16 gBattlerPartyIndexes[];
extern u8 gBattlerSpriteIds[];
extern u8 gBattleOutcome;
-extern u16 gUnknown_02024DE8;
+extern u16 gIntroSlideFlags;
extern u8 gUnknown_02024E68[];
extern u8 gDoingBattleAnim;
extern u32 gTransformedPersonalities[];
@@ -396,7 +396,7 @@ void sub_811E034(void)
{
if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy)
{
- if (ewram17800[gActiveBattler].substituteSprite)
+ if (gBattleSpriteInfo[gActiveBattler].substituteSprite)
move_anim_start_t4(gActiveBattler, gActiveBattler, gActiveBattler, 6);
gBattlerControllerFuncs[gActiveBattler] = sub_811E0A0;
}
@@ -1153,7 +1153,7 @@ void sub_811FA5C(void)
switch (ewram17810[gActiveBattler].unk4)
{
case 0:
- if (ewram17800[gActiveBattler].substituteSprite)
+ if (gBattleSpriteInfo[gActiveBattler].substituteSprite)
move_anim_start_t4(gActiveBattler, gActiveBattler, gActiveBattler, 5);
ewram17810[gActiveBattler].unk4 = 1;
break;
@@ -1219,7 +1219,7 @@ void LinkPartnerHandlecmd10(void)
{
if (ewram17810[gActiveBattler].unk4 == 0)
{
- if (ewram17800[gActiveBattler].substituteSprite)
+ if (gBattleSpriteInfo[gActiveBattler].substituteSprite)
move_anim_start_t4(gActiveBattler, gActiveBattler, gActiveBattler, 5);
ewram17810[gActiveBattler].unk4++;
}
@@ -1294,9 +1294,9 @@ void sub_811FF30(void)
switch (ewram17810[gActiveBattler].unk4)
{
case 0:
- if (ewram17800[gActiveBattler].substituteSprite && !ewram17800[gActiveBattler].unk0_3)
+ if (gBattleSpriteInfo[gActiveBattler].substituteSprite && !gBattleSpriteInfo[gActiveBattler].flag_x8)
{
- ewram17800[gActiveBattler].unk0_3 = 1;
+ gBattleSpriteInfo[gActiveBattler].flag_x8 = 1;
move_anim_start_t4(gActiveBattler, gActiveBattler, gActiveBattler, 5);
}
ewram17810[gActiveBattler].unk4 = 1;
@@ -1314,10 +1314,10 @@ void sub_811FF30(void)
if (!gAnimScriptActive)
{
sub_80326EC(1);
- if ((ewram17800[gActiveBattler].substituteSprite) && r7 <= 1)
+ if ((gBattleSpriteInfo[gActiveBattler].substituteSprite) && r7 <= 1)
{
move_anim_start_t4(gActiveBattler, gActiveBattler, gActiveBattler, 6);
- ewram17800[gActiveBattler].unk0_3 = 0;
+ gBattleSpriteInfo[gActiveBattler].flag_x8 = 0;
}
ewram17810[gActiveBattler].unk4 = 3;
}
@@ -1549,7 +1549,7 @@ void LinkPartnerHandleFaintingCry(void)
void LinkPartnerHandleIntroSlide(void)
{
StartBattleIntroAnim(gBattleBufferA[gActiveBattler][1]);
- gUnknown_02024DE8 |= 1;
+ gIntroSlideFlags |= 1;
LinkPartnerBufferExecCompleted();
}
diff --git a/src/battle_controller_opponent.c b/src/battle_controller_opponent.c
index b3685806d..882c34b7f 100644
--- a/src/battle_controller_opponent.c
+++ b/src/battle_controller_opponent.c
@@ -58,7 +58,7 @@ extern u8 gDisplayedStringBattle[];
extern u8 gBattlerTarget;
extern u8 gAbsentBattlerFlags;
extern bool8 gDoingBattleAnim;
-extern u16 gUnknown_02024DE8;
+extern u16 gIntroSlideFlags;
extern u8 gUnknown_02024E68[];
extern MainCallback gPreBattleCallback1;
extern struct MusicPlayerInfo gMPlayInfo_SE1;
@@ -459,7 +459,7 @@ void sub_8033264(void)
{
if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy)
{
- if (ewram17800[gActiveBattler].substituteSprite)
+ if (gBattleSpriteInfo[gActiveBattler].substituteSprite)
move_anim_start_t4(gActiveBattler, gActiveBattler, gActiveBattler, 6);
gBattlerControllerFuncs[gActiveBattler] = sub_80332D0;
}
@@ -1187,7 +1187,7 @@ void sub_8034B74(void)
switch (ewram17810[gActiveBattler].unk4)
{
case 0:
- if (ewram17800[gActiveBattler].substituteSprite)
+ if (gBattleSpriteInfo[gActiveBattler].substituteSprite)
move_anim_start_t4(gActiveBattler, gActiveBattler, gActiveBattler, 5);
ewram17810[gActiveBattler].unk4 = 1;
break;
@@ -1287,7 +1287,7 @@ void OpponentHandlecmd10(void)
{
if (ewram17810[gActiveBattler].unk4 == 0)
{
- if (ewram17800[gActiveBattler].substituteSprite)
+ if (gBattleSpriteInfo[gActiveBattler].substituteSprite)
move_anim_start_t4(gActiveBattler, gActiveBattler, gActiveBattler, 5);
ewram17810[gActiveBattler].unk4++;
}
@@ -1362,9 +1362,9 @@ void sub_8035238(void)
switch (ewram17810[gActiveBattler].unk4)
{
case 0:
- if (ewram17800[gActiveBattler].substituteSprite && !ewram17800[gActiveBattler].unk0_3)
+ if (gBattleSpriteInfo[gActiveBattler].substituteSprite && !gBattleSpriteInfo[gActiveBattler].flag_x8)
{
- ewram17800[gActiveBattler].unk0_3 = 1;
+ gBattleSpriteInfo[gActiveBattler].flag_x8 = 1;
move_anim_start_t4(gActiveBattler, gActiveBattler, gActiveBattler, 5);
}
ewram17810[gActiveBattler].unk4 = 1;
@@ -1382,10 +1382,10 @@ void sub_8035238(void)
if (!gAnimScriptActive)
{
sub_80326EC(1);
- if ((ewram17800[gActiveBattler].substituteSprite) && r7 <= 1)
+ if ((gBattleSpriteInfo[gActiveBattler].substituteSprite) && r7 <= 1)
{
move_anim_start_t4(gActiveBattler, gActiveBattler, gActiveBattler, 6);
- ewram17800[gActiveBattler].unk0_3 = 0;
+ gBattleSpriteInfo[gActiveBattler].flag_x8 = 0;
}
ewram17810[gActiveBattler].unk4 = 3;
}
@@ -2019,7 +2019,7 @@ void OpponentHandleFaintingCry(void)
void OpponentHandleIntroSlide(void)
{
StartBattleIntroAnim(gBattleBufferA[gActiveBattler][1]);
- gUnknown_02024DE8 |= 1;
+ gIntroSlideFlags |= 1;
OpponentBufferExecCompleted();
}
diff --git a/src/battle_controller_player.c b/src/battle_controller_player.c
index 772728295..271f5cfd1 100644
--- a/src/battle_controller_player.c
+++ b/src/battle_controller_player.c
@@ -64,7 +64,7 @@ extern u8 gAnimFriendship;
extern u16 gWeatherMoveAnim;
extern u32 gTransformedPersonalities[];
extern u8 gBattleMonForms[];
-extern u16 gUnknown_02024DE8;
+extern u16 gIntroSlideFlags;
extern u8 gUnknown_02024E68[];
extern struct SpriteTemplate gUnknown_02024E8C;
extern u8 gAnimMoveTurn;
@@ -1258,7 +1258,7 @@ void sub_802D680(void)
ewram17810[gActiveBattler].unk1_0 = 0;
FreeSpriteTilesByTag(0x27F9);
FreeSpritePaletteByTag(0x27F9);
- if (ewram17800[gActiveBattler].substituteSprite)
+ if (gBattleSpriteInfo[gActiveBattler].substituteSprite)
move_anim_start_t4(gActiveBattler, gActiveBattler, gActiveBattler, 6);
gBattlerControllerFuncs[gActiveBattler] = sub_802D730;
}
@@ -2385,7 +2385,7 @@ void sub_802FB2C(void)
switch (ewram17810[gActiveBattler].unk4)
{
case 0:
- if (ewram17800[gActiveBattler].substituteSprite)
+ if (gBattleSpriteInfo[gActiveBattler].substituteSprite)
move_anim_start_t4(gActiveBattler, gActiveBattler, gActiveBattler, 5);
ewram17810[gActiveBattler].unk4 = 1;
break;
@@ -2460,7 +2460,7 @@ void PlayerHandlecmd10(void)
{
if (ewram17810[gActiveBattler].unk4 == 0)
{
- if (ewram17800[gActiveBattler].substituteSprite)
+ if (gBattleSpriteInfo[gActiveBattler].substituteSprite)
move_anim_start_t4(gActiveBattler, gActiveBattler, gActiveBattler, 5);
ewram17810[gActiveBattler].unk4++;
}
@@ -2548,9 +2548,10 @@ void sub_8030190(void)
switch (ewram17810[gActiveBattler].unk4)
{
case 0:
- if (ewram17800[gActiveBattler].substituteSprite == 1 && ewram17800[gActiveBattler].unk0_3 == 0)
+ if (gBattleSpriteInfo[gActiveBattler].substituteSprite == 1 &&
+ gBattleSpriteInfo[gActiveBattler].flag_x8 == 0)
{
- ewram17800[gActiveBattler].unk0_3 = 1;
+ gBattleSpriteInfo[gActiveBattler].flag_x8 = 1;
move_anim_start_t4(gActiveBattler, gActiveBattler, gActiveBattler, 5);
}
ewram17810[gActiveBattler].unk4 = 1;
@@ -2568,10 +2569,10 @@ void sub_8030190(void)
if (!gAnimScriptActive)
{
sub_80326EC(1);
- if (ewram17800[gActiveBattler].substituteSprite == 1 && r7 < 2)
+ if (gBattleSpriteInfo[gActiveBattler].substituteSprite == 1 && r7 < 2)
{
move_anim_start_t4(gActiveBattler, gActiveBattler, gActiveBattler, 6);
- ewram17800[gActiveBattler].unk0_3 = 0;
+ gBattleSpriteInfo[gActiveBattler].flag_x8 = 0;
}
ewram17810[gActiveBattler].unk4 = 3;
}
@@ -2674,9 +2675,9 @@ void PlayerHandlecmd22(void)
gUnknown_0300434C[gActiveBattler] = CreateTask(TaskDummy, 0xFF);
gTasks[gUnknown_0300434C[gActiveBattler]].data[0] = gBattleBufferA[gActiveBattler][1] & 0xF;
- ewram16054 = gBattleBufferA[gActiveBattler][1] >> 4;
- EWRAM_1609D = gBattleBufferA[gActiveBattler][2];
- ewram160C0 = gBattleBufferA[gActiveBattler][3];
+ gBattleStruct->unk16054 = gBattleBufferA[gActiveBattler][1] >> 4;
+ gBattleStruct->unk1609D = gBattleBufferA[gActiveBattler][2];
+ gBattleStruct->unk160C0 = gBattleBufferA[gActiveBattler][3];
for (i = 0; i < 3; i++)
gUnknown_02038470[i] = gBattleBufferA[gActiveBattler][4 + i];
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB(0, 0, 0));
@@ -2892,7 +2893,7 @@ void PlayerHandleFaintingCry(void)
void PlayerHandleIntroSlide(void)
{
StartBattleIntroAnim(gBattleBufferA[gActiveBattler][1]);
- gUnknown_02024DE8 |= 1;
+ gIntroSlideFlags |= 1;
PlayerBufferExecCompleted();
}
diff --git a/src/battle_controller_safari.c b/src/battle_controller_safari.c
index c015cb4cf..138f873c9 100644
--- a/src/battle_controller_safari.c
+++ b/src/battle_controller_safari.c
@@ -35,7 +35,7 @@ extern MainCallback gPreBattleCallback1;
extern u8 gBankInMenu;
extern u8 gHealthboxSpriteIds[];
extern u16 gBattlerPartyIndexes[];
-extern u16 gUnknown_02024DE8;
+extern u16 gIntroSlideFlags;
extern u8 gBattleOutcome;
extern u8 GetBattlerSide(u8);
@@ -650,7 +650,7 @@ void SafariHandleFaintingCry(void)
void SafariHandleIntroSlide(void)
{
StartBattleIntroAnim(gBattleBufferA[gActiveBattler][1]);
- gUnknown_02024DE8 |= 1;
+ gIntroSlideFlags |= 1;
SafariBufferExecCompleted();
}
diff --git a/src/battle_controller_wally.c b/src/battle_controller_wally.c
index 50ede7c7d..3e54668b0 100644
--- a/src/battle_controller_wally.c
+++ b/src/battle_controller_wally.c
@@ -49,7 +49,7 @@ extern u8 gDisplayedStringBattle[];
extern u8 gBankInMenu;
extern u8 gBattleMonForms[];
extern u8 gBattleOutcome;
-extern u16 gUnknown_02024DE8;
+extern u16 gIntroSlideFlags;
extern u8 gUnknown_02024E68[];
extern struct SpriteTemplate gUnknown_02024E8C;
extern u8 gAnimMoveTurn;
@@ -1195,7 +1195,7 @@ void sub_81390D0(void)
switch (ewram17810[gActiveBattler].unk4)
{
case 0:
- if (ewram17800[gActiveBattler].substituteSprite == 1)
+ if (gBattleSpriteInfo[gActiveBattler].substituteSprite == 1)
move_anim_start_t4(gActiveBattler, gActiveBattler, gActiveBattler, 5);
ewram17810[gActiveBattler].unk4 = 1;
break;
@@ -1212,7 +1212,7 @@ void sub_81390D0(void)
if (!gAnimScriptActive)
{
sub_80326EC(1);
- if (ewram17800[gActiveBattler].substituteSprite == 1)
+ if (gBattleSpriteInfo[gActiveBattler].substituteSprite == 1)
move_anim_start_t4(gActiveBattler, gActiveBattler, gActiveBattler, 6);
ewram17810[gActiveBattler].unk4 = 3;
}
@@ -1464,7 +1464,7 @@ void WallyHandleFaintingCry(void)
void WallyHandleIntroSlide(void)
{
StartBattleIntroAnim(gBattleBufferA[gActiveBattler][1]);
- gUnknown_02024DE8 |= 1;
+ gIntroSlideFlags |= 1;
WallyBufferExecCompleted();
}
@@ -1496,7 +1496,7 @@ void sub_81398BC(u8 bank)
{
u16 species;
- ewram17800[bank].transformedSpecies = 0;
+ gBattleSpriteInfo[bank].transformedSpecies = 0;
gBattlerPartyIndexes[bank] = gBattleBufferA[bank][1];
species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[bank]], MON_DATA_SPECIES);
gUnknown_0300434C[bank] = CreateInvisibleSpriteWithCallback(sub_80312F0);
diff --git a/src/battle_gfx_sfx_util.c b/src/battle_gfx_sfx_util.c
index 104a0eecf..49da3c9e6 100644
--- a/src/battle_gfx_sfx_util.c
+++ b/src/battle_gfx_sfx_util.c
@@ -29,7 +29,7 @@ extern u8 gBattlersCount;
extern u16 gBattlerPartyIndexes[];
extern u8 gBattlerPositions[];
extern u8 gBattlerSpriteIds[];
-extern u16 gUnknown_02024DE8;
+extern u16 gIntroSlideFlags;
extern u8 gDoingBattleAnim;
extern u32 gTransformedPersonalities[];
extern struct Window gUnknown_03004210;
@@ -142,7 +142,7 @@ void unref_sub_8031364(struct Sprite *sprite, bool8 stupid)
void sub_80313A0(struct Sprite *sprite)
{
- if (!(gUnknown_02024DE8 & 1))
+ if (!(gIntroSlideFlags & 1))
{
sprite->pos2.x += sprite->data[0];
if (sprite->pos2.x == 0)
@@ -194,9 +194,9 @@ bool8 move_anim_start_t3(u8 a, u8 b, u8 c, u8 d, u16 e)
gBattleMonForms[a] = e & 0x7F;
return TRUE;
}
- if (ewram17800[a].substituteSprite && sub_803163C(d) == 0)
+ if (gBattleSpriteInfo[a].substituteSprite && sub_803163C(d) == 0)
return TRUE;
- if (ewram17800[a].substituteSprite && d == 2 && gSprites[gBattlerSpriteIds[a]].invisible)
+ if (gBattleSpriteInfo[a].substituteSprite && d == 2 && gSprites[gBattlerSpriteIds[a]].invisible)
{
refresh_graphics_maybe(a, 1, gBattlerSpriteIds[a]);
sub_80324E0(a);
@@ -296,14 +296,14 @@ void BattleLoadOpponentMonSprite(struct Pokemon *pkmn, u8 b)
const u8 *lzPaletteData;
personalityValue = GetMonData(pkmn, MON_DATA_PERSONALITY);
- if (ewram17800[b].transformedSpecies == 0)
+ if (gBattleSpriteInfo[b].transformedSpecies == 0)
{
species = GetMonData(pkmn, MON_DATA_SPECIES);
r7 = personalityValue;
}
else
{
- species = ewram17800[b].transformedSpecies;
+ species = gBattleSpriteInfo[b].transformedSpecies;
r7 = gTransformedPersonalities[b];
}
otId = GetMonData(pkmn, MON_DATA_OT_ID);
@@ -317,7 +317,7 @@ void BattleLoadOpponentMonSprite(struct Pokemon *pkmn, u8 b)
species,
r7);
paletteOffset = 0x100 + b * 16;
- if (ewram17800[b].transformedSpecies == 0)
+ if (gBattleSpriteInfo[b].transformedSpecies == 0)
lzPaletteData = GetMonSpritePal(pkmn);
else
lzPaletteData = GetMonSpritePalFromOtIdPersonality(species, otId, personalityValue);
@@ -330,7 +330,7 @@ void BattleLoadOpponentMonSprite(struct Pokemon *pkmn, u8 b)
LZDecompressWram(lzPaletteData, ewram16400);
LoadPalette(ewram16400 + gBattleMonForms[b] * 32, paletteOffset, 0x20);
}
- if (ewram17800[b].transformedSpecies != 0)
+ if (gBattleSpriteInfo[b].transformedSpecies != 0)
{
BlendPalette(paletteOffset, 16, 6, RGB(31, 31, 31));
CpuCopy32(gPlttBufferFaded + paletteOffset, gPlttBufferUnfaded + paletteOffset, 32);
@@ -348,14 +348,14 @@ void BattleLoadPlayerMonSprite(struct Pokemon *pkmn, u8 b)
const u8 *lzPaletteData;
personalityValue = GetMonData(pkmn, MON_DATA_PERSONALITY);
- if (ewram17800[b].transformedSpecies == 0)
+ if (gBattleSpriteInfo[b].transformedSpecies == 0)
{
species = GetMonData(pkmn, MON_DATA_SPECIES);
r7 = personalityValue;
}
else
{
- species = ewram17800[b].transformedSpecies;
+ species = gBattleSpriteInfo[b].transformedSpecies;
r7 = gTransformedPersonalities[b];
}
otId = GetMonData(pkmn, MON_DATA_OT_ID);
@@ -369,7 +369,7 @@ void BattleLoadPlayerMonSprite(struct Pokemon *pkmn, u8 b)
species,
r7);
paletteOffset = 0x100 + b * 16;
- if (ewram17800[b].transformedSpecies == 0)
+ if (gBattleSpriteInfo[b].transformedSpecies == 0)
lzPaletteData = GetMonSpritePal(pkmn);
else
lzPaletteData = GetMonSpritePalFromOtIdPersonality(species, otId, personalityValue);
@@ -382,7 +382,7 @@ void BattleLoadPlayerMonSprite(struct Pokemon *pkmn, u8 b)
LZDecompressWram(lzPaletteData, ewram16400);
LoadPalette(ewram16400 + gBattleMonForms[b] * 32, paletteOffset, 0x20);
}
- if (ewram17800[b].transformedSpecies != 0)
+ if (gBattleSpriteInfo[b].transformedSpecies != 0)
{
BlendPalette(paletteOffset, 16, 6, RGB(31, 31, 31));
CpuCopy32(gPlttBufferFaded + paletteOffset, gPlttBufferUnfaded + paletteOffset, 32);
@@ -611,7 +611,7 @@ void sub_8031EE8(void)
void sub_8031F0C(void)
{
sub_8031EE8();
- memset(ewram17800, 0, 0x10);
+ memset(gBattleSpriteInfo, 0, 0x10);
}
void sub_8031F24(void)
@@ -619,12 +619,12 @@ void sub_8031F24(void)
s32 i;
for (i = 0; i < gBattlersCount; i++)
- ewram17800[i].invisible = gSprites[gBattlerSpriteIds[i]].invisible;
+ gBattleSpriteInfo[i].invisible = gSprites[gBattlerSpriteIds[i]].invisible;
}
void sub_8031F88(u8 a)
{
- ewram17800[a].invisible = gSprites[gBattlerSpriteIds[a]].invisible;
+ gBattleSpriteInfo[a].invisible = gSprites[gBattlerSpriteIds[a]].invisible;
}
void sub_8031FC4(u8 a, u8 b, bool8 c)
@@ -642,7 +642,7 @@ void sub_8031FC4(u8 a, u8 b, bool8 c)
paletteOffset = 0x100 + a * 16;
LoadPalette(ewram16400 + ewram17840.unk0 * 32, paletteOffset, 32);
gBattleMonForms[a] = ewram17840.unk0;
- if (ewram17800[a].transformedSpecies != 0)
+ if (gBattleSpriteInfo[a].transformedSpecies != 0)
{
BlendPalette(paletteOffset, 16, 6, RGB(31, 31, 31));
CpuCopy32(gPlttBufferFaded + paletteOffset, gPlttBufferUnfaded + paletteOffset, 32);
@@ -716,7 +716,7 @@ void sub_8031FC4(u8 a, u8 b, bool8 c)
CpuCopy32(gPlttBufferFaded + paletteOffset, gPlttBufferUnfaded + paletteOffset, 32);
if (!IsContest())
{
- ewram17800[a].transformedSpecies = species;
+ gBattleSpriteInfo[a].transformedSpecies = species;
gBattleMonForms[a] = gBattleMonForms[b];
}
gSprites[gBattlerSpriteIds[a]].pos1.y = sub_8077F68(a);
@@ -777,12 +777,12 @@ void refresh_graphics_maybe(u8 a, u8 b, u8 spriteId)
void sub_80324BC(u8 a, u16 b)
{
if (b == 0xA4)
- ewram17800[a].substituteSprite = 1;
+ gBattleSpriteInfo[a].substituteSprite = 1;
}
void sub_80324E0(u8 a)
{
- ewram17800[a].substituteSprite = 0;
+ gBattleSpriteInfo[a].substituteSprite = 0;
}
void HandleLowHpMusicChange(struct Pokemon *pkmn, u8 b)
@@ -792,22 +792,22 @@ void HandleLowHpMusicChange(struct Pokemon *pkmn, u8 b)
if (GetHPBarLevel(hp, maxHP) == 1)
{
- if (!ewram17800[b].unk0_1)
+ if (!gBattleSpriteInfo[b].lowHpSong)
{
- if (!ewram17800[b ^ 2].unk0_1)
+ if (!gBattleSpriteInfo[b ^ 2].lowHpSong)
PlaySE(SE_LOW_HEALTH);
- ewram17800[b].unk0_1 = 1;
+ gBattleSpriteInfo[b].lowHpSong = 1;
}
}
else
{
- ewram17800[b].unk0_1 = 0;
+ gBattleSpriteInfo[b].lowHpSong = 0;
if (!IsDoubleBattle())
{
m4aSongNumStop(SE_LOW_HEALTH);
return;
}
- if (IsDoubleBattle() && !ewram17800[b ^ 2].unk0_1)
+ if (IsDoubleBattle() && !gBattleSpriteInfo[b ^ 2].lowHpSong)
{
m4aSongNumStop(SE_LOW_HEALTH);
return;
@@ -819,9 +819,9 @@ void BattleStopLowHpSound(void)
{
u8 r4 = GetBattlerAtPosition(0);
- ewram17800[r4].unk0_1 = 0;
+ gBattleSpriteInfo[r4].lowHpSong = 0;
if (IsDoubleBattle())
- ewram17800[r4 ^ 2].unk0_1 = 0;
+ gBattleSpriteInfo[r4 ^ 2].lowHpSong = 0;
m4aSongNumStop(SE_LOW_HEALTH);
}
@@ -903,9 +903,9 @@ void sub_80328A4(struct Sprite *sprite)
}
if (gAnimScriptActive || r7->invisible)
invisible = TRUE;
- else if (ewram17800[r4].transformedSpecies != 0 && gEnemyMonElevation[ewram17800[r4].transformedSpecies] == 0)
+ else if (gBattleSpriteInfo[r4].transformedSpecies != 0 && gEnemyMonElevation[gBattleSpriteInfo[r4].transformedSpecies] == 0)
invisible = TRUE;
- if (ewram17800[r4].substituteSprite)
+ if (gBattleSpriteInfo[r4].substituteSprite)
invisible = TRUE;
sprite->pos1.x = r7->pos1.x;
sprite->pos2.x = r7->pos2.x;
@@ -921,8 +921,8 @@ void sub_8032984(u8 a, u16 b)
{
if (GetBattlerSide(a) != 0)
{
- if (ewram17800[a].transformedSpecies != 0)
- b = ewram17800[a].transformedSpecies;
+ if (gBattleSpriteInfo[a].transformedSpecies != 0)
+ b = gBattleSpriteInfo[a].transformedSpecies;
if (gEnemyMonElevation[b] != 0)
gSprites[ewram17810[a].unk7].callback = sub_80328A4;
else
@@ -960,7 +960,7 @@ void sub_8032A38(void)
void sub_8032AA8(u8 a, u8 b)
{
- ewram17800[a].transformedSpecies = 0;
+ gBattleSpriteInfo[a].transformedSpecies = 0;
gBattleMonForms[a] = 0;
if (b == 0)
sub_80324E0(a);
diff --git a/src/battle_interface.c b/src/battle_interface.c
index c36556f11..be9554bf2 100644
--- a/src/battle_interface.c
+++ b/src/battle_interface.c
@@ -1048,7 +1048,7 @@ _0804420C: .4byte 0x04000008\n\
// TODO: make this a local variable
memcpy(str, gUnknown_0820A89C, sizeof(str));
r4 = gSprites[a].data[6];
- if ((ewram17800[r4].unk0_4) == 0)
+ if ((gBattleSpriteInfo[r4].hpNumbersNoBars) == 0)
return;
ptr = str + 6;
if (c == 0)
@@ -1427,8 +1427,8 @@ void sub_804454C(void)
{
u8 r6;
- ewram17800[i].unk0_4 ^= 1;
- r6 = ewram17800[i].unk0_4;
+ gBattleSpriteInfo[i].hpNumbersNoBars ^= 1;
+ r6 = gBattleSpriteInfo[i].hpNumbersNoBars;
if (GetBattlerSide(i) == 0)
{
@@ -2702,7 +2702,7 @@ static void sub_8045458(u8 a, u8 b)
for (i = 0; i < 3; i++)
CpuCopy32(r6, OBJ_VRAM0 + (gSprites[a].oam.tileNum + r8 + i) * 32, 32);
- if (!ewram17800[r7].unk0_4)
+ if (!gBattleSpriteInfo[r7].hpNumbersNoBars)
CpuCopy32(sub_8043CDC(1), OBJ_VRAM0 + gSprites[r10].oam.tileNum * 32, 64);
sub_8045458(a, 1);
@@ -2717,7 +2717,7 @@ static void sub_8045458(u8 a, u8 b)
CpuCopy32(r6, OBJ_VRAM0 + (gSprites[a].oam.tileNum + r8) * 32, 96);
if (IsDoubleBattle() == TRUE || GetBattlerSide(r7) == TRUE)
{
- if (!ewram17800[r7].unk0_4)
+ if (!gBattleSpriteInfo[r7].hpNumbersNoBars)
{
CpuCopy32(sub_8043CDC(0), OBJ_VRAM0 + gSprites[r10].oam.tileNum * 32, 32);
CpuCopy32(sub_8043CDC(0x41), OBJ_VRAM0 + (gSprites[r10].oam.tileNum + 1) * 32, 32);
@@ -2933,7 +2933,7 @@ s32 sub_8045C78(u8 a, u8 unused1, u8 c, u8 unused2)
r5 = ABS(r8 / r5);
r6 = sub_8045F58(ewram17850[a].unk4, ewram17850[a].unk8, r8, &ewram17850[a].unk10, 8, r5);
}
- if (c == 1 || (c == 0 && (!ewram17800[a].unk0_4)))
+ if (c == 1 || (c == 0 && (!gBattleSpriteInfo[a].hpNumbersNoBars)))
sub_8045D58(a, c);
if (r6 == -1)
ewram17850[a].unk10 = 0;
diff --git a/src/battle_main.c b/src/battle_main.c
index e41b2a114..fee505c43 100644
--- a/src/battle_main.c
+++ b/src/battle_main.c
@@ -76,7 +76,7 @@ extern const u8 gUnknown_Debug_821F7F3[];
extern const u8 BattleText_YesNo[];
extern u8 gStatStageRatios[][2];
extern u8 gActionsByTurnOrder[4];
-extern struct UnknownPokemonStruct2 gMultiPartnerParty[];
+extern struct MultiBattlePokemonTx gMultiPartnerParty[];
extern u8 gBattleBufferB[][0x200];
extern u8 gActiveBattler;
extern u32 gBattleControllerExecFlags;
@@ -91,15 +91,15 @@ extern u8 gPotentialItemEffectBattler;
extern u8 gAbsentBattlerFlags;
extern u8 gMultiHitCounter;
extern u8 gActionForBanks[];
-extern u16 gUnknown_02024C2C[];
+extern u16 gLastPrintedMoves[];
extern u16 gLastMoves[];
extern u16 gLastLandedMoves[];
extern u16 gLastHitByType[];
-extern u16 gUnknown_02024C4C[];
+extern u16 gLastResultingMoves[];
extern u16 gLockedMoves[];
extern u16 gChosenMovesByBanks[];
extern u32 gHitMarker;
-extern u8 gUnknown_02024C70[];
+extern u8 sUnusedBattlersArray[];
extern u16 gSideStatuses[];
extern u32 gStatuses3[];
//extern u8 gDisableStructs[][0x1C];
@@ -109,7 +109,7 @@ extern u16 gRandomTurnNumber;
extern u8 gBattleCommunication[];
extern u8 gUnknown_02024D1F[]; // I don't actually know what type this is.
extern u8 gBattleOutcome;
-extern u16 gUnknown_02024DE8;
+extern u16 gIntroSlideFlags;
extern u8 gActionSelectionCursor[];
extern u8 gMoveSelectionCursor[];
extern u8 gUnknown_02038470[];
@@ -283,7 +283,7 @@ void CB2_InitBattleInternal(void)
SetVBlankCallback(sub_800FCFC);
SetUpBattleVarsAndBirchPoochyena();
if (gBattleTypeFlags & BATTLE_TYPE_MULTI)
- SetMainCallback2(sub_800F298);
+ SetMainCallback2(CB2_HandleStartMultiBattle);
else
SetMainCallback2(CB2_HandleStartBattle);
if (!(gBattleTypeFlags & BATTLE_TYPE_LINK)
@@ -301,7 +301,7 @@ void CB2_InitBattleInternal(void)
gBattleCommunication[0] = 0;
}
-void sub_800E9EC(void)
+void BufferPartyVsScreenHealth_AtStart(void)
{
u16 r6 = 0;
u16 species;
@@ -330,21 +330,21 @@ void sub_800E9EC(void)
if (species != SPECIES_EGG && hp == 0)
r6 |= 3 << i * 2;
}
- gBattleStruct->unk2 = r6;
- gBattleStruct->unk3 = r6 >> 8;
+ gBattleStruct->multiBuffer.linkPartnerHeader.vsScreenHealthFlagsLo = r6;
+ gBattleStruct->multiBuffer.linkPartnerHeader.vsScreenHealthFlagsHi = r6 >> 8;
}
static void SetPlayerBerryDataInBattleStruct(void)
{
s32 i;
- struct UnknownStruct8 *_ewram4 = &ewram4;
+ struct BattleEnigmaBerry * battleBerry = &gBattleStruct->multiBuffer.linkPartnerHeader.battleEnigmaBerry;
for (i = 0; i < 7; i++)
- _ewram4->unk0[i] = gSaveBlock1.enigmaBerry.berry.name[i];
+ battleBerry->name[i] = gSaveBlock1.enigmaBerry.berry.name[i];
for (i = 0; i < 18; i++)
- _ewram4->unk8[i] = gSaveBlock1.enigmaBerry.itemEffect[i];
- _ewram4->unk7 = gSaveBlock1.enigmaBerry.holdEffect;
- _ewram4->unk1A = gSaveBlock1.enigmaBerry.holdEffectParam;
+ battleBerry->itemEffect[i] = gSaveBlock1.enigmaBerry.itemEffect[i];
+ battleBerry->holdEffect = gSaveBlock1.enigmaBerry.holdEffect;
+ battleBerry->holdEffectParam = gSaveBlock1.enigmaBerry.holdEffectParam;
}
void SetAllPlayersBerryData(void)
@@ -419,7 +419,7 @@ void CB2_HandleStartBattle(void)
BuildOamBuffer();
playerId = GetMultiplayerId();
- ewram160CB = playerId;
+ gBattleStruct->multiplayerId = playerId;
enemyId = playerId ^ 1;
switch (gBattleCommunication[0])
@@ -429,9 +429,9 @@ void CB2_HandleStartBattle(void)
{
if (gReceivedRemoteLinkPlayers != 0 && IsLinkTaskFinished())
{
- gBattleStruct->unk0 = 1;
- gBattleStruct->unk1 = 1;
- sub_800E9EC();
+ gBattleStruct->multiBuffer.linkPartnerHeader.versionSignatureLo = 1;
+ gBattleStruct->multiBuffer.linkPartnerHeader.versionSignatureHi = 1;
+ BufferPartyVsScreenHealth_AtStart();
SetPlayerBerryDataInBattleStruct();
#if DEBUG
if (gUnknown_02023A14_50 & 8)
@@ -443,7 +443,7 @@ void CB2_HandleStartBattle(void)
}
}
#endif
- SendBlock(bitmask_all_link_players_but_self(), gBattleStruct, 32);
+ SendBlock(bitmask_all_link_players_but_self(), &gBattleStruct->multiBuffer.linkPartnerHeader, sizeof(gBattleStruct->multiBuffer.linkPartnerHeader));
gBattleCommunication[0] = 1;
}
}
@@ -494,11 +494,11 @@ void CB2_HandleStartBattle(void)
}
}
SetAllPlayersBerryData();
- taskId = CreateTask(sub_800DE30, 0);
+ taskId = CreateTask(InitLinkBattleVsScreen, 0);
gTasks[taskId].data[1] = 0x10E;
gTasks[taskId].data[2] = 0x5A;
gTasks[taskId].data[5] = 0;
- gTasks[taskId].data[3] = gBattleStruct->unk2 | (gBattleStruct->unk3 << 8);
+ gTasks[taskId].data[3] = gBattleStruct->multiBuffer.linkPartnerHeader.vsScreenHealthFlagsLo | (gBattleStruct->multiBuffer.linkPartnerHeader.vsScreenHealthFlagsHi << 8);
gTasks[taskId].data[4] = gBlockRecvBuffer[enemyId][1];
gBattleCommunication[0]++;
}
@@ -576,7 +576,7 @@ void CB2_HandleStartBattle(void)
}
}
-void sub_800F02C(void)
+void PrepareOwnMultiPartnerBuffer(void)
{
s32 i;
@@ -598,7 +598,7 @@ void sub_800F02C(void)
if (gMultiPartnerParty[i].language != 1)
PadNameString(nickname, 0);
}
- memcpy(gSharedMem, gMultiPartnerParty, 0x60);
+ memcpy(gBattleStruct->multiBuffer.multiBattleMons, gMultiPartnerParty, 3 * sizeof(struct MultiBattlePokemonTx));
}
void sub_800F104(void)
@@ -609,10 +609,10 @@ void sub_800F104(void)
s32 i;
playerId = GetMultiplayerId();
- ewram160CB = playerId;
+ gBattleStruct->multiplayerId = playerId;
// Seriously, Game Freak?
- pSavedCallback = ewram160C4_Callback;
- pSavedBattleTypeFlags = ewram160C2_Flags;
+ pSavedCallback = &gBattleStruct->unk160C4;
+ pSavedBattleTypeFlags = &gBattleStruct->unk160C2;
RunTasks();
AnimateSprites();
BuildOamBuffer();
@@ -634,8 +634,8 @@ void sub_800F104(void)
#endif
if (IsLinkTaskFinished())
{
- sub_800F02C();
- SendBlock(bitmask_all_link_players_but_self(), gSharedMem, 0x60);
+ PrepareOwnMultiPartnerBuffer();
+ SendBlock(bitmask_all_link_players_but_self(), gBattleStruct->multiBuffer.multiBattleMons, 3 * sizeof(struct MultiBattlePokemonTx));
gBattleCommunication[0]++;
}
}
@@ -652,7 +652,7 @@ void sub_800F104(void)
{
if ((!(gLinkPlayers[i].id & 1) && !(gLinkPlayers[playerId].id & 1))
|| ((gLinkPlayers[i].id & 1) && (gLinkPlayers[playerId].id & 1)))
- memcpy(gMultiPartnerParty, gBlockRecvBuffer[i], 0x60);
+ memcpy(gMultiPartnerParty, gBlockRecvBuffer[i], 3 * sizeof(struct MultiBattlePokemonTx));
}
}
gBattleCommunication[0]++;
@@ -680,13 +680,13 @@ void sub_800F104(void)
}
}
-void sub_800F298(void)
+void CB2_HandleStartMultiBattle(void)
{
u8 playerId;
s32 id;
playerId = GetMultiplayerId();
- ewram160CB = playerId;
+ gBattleStruct->multiplayerId = playerId;
RunTasks();
AnimateSprites();
BuildOamBuffer();
@@ -707,11 +707,11 @@ void sub_800F298(void)
#endif
if (IsLinkTaskFinished())
{
- gBattleStruct->unk0 = 1;
- gBattleStruct->unk1 = 1;
- sub_800E9EC();
+ *(&gBattleStruct->multiBuffer.linkPartnerHeader.versionSignatureLo) = 1;
+ *(&gBattleStruct->multiBuffer.linkPartnerHeader.versionSignatureHi) = 1;
+ BufferPartyVsScreenHealth_AtStart();
SetPlayerBerryDataInBattleStruct();
- SendBlock(bitmask_all_link_players_but_self(), gSharedMem, 0x20);
+ SendBlock(bitmask_all_link_players_but_self(), &gBattleStruct->multiBuffer.linkPartnerHeader, sizeof(gBattleStruct->multiBuffer.linkPartnerHeader));
gBattleCommunication[0]++;
}
}
@@ -722,6 +722,7 @@ void sub_800F298(void)
u8 taskId;
ResetBlockReceivedFlags();
+ // LinkBattleComputeBattleTypeFlags
id = 0;
if (gBlockRecvBuffer[0][0] == 0x100)
{
@@ -767,9 +768,9 @@ void sub_800F298(void)
}
SetAllPlayersBerryData();
memcpy(ewram1D000, gPlayerParty, sizeof(struct Pokemon) * 3);
- taskId = CreateTask(sub_800DE30, 0);
- gTasks[taskId].data[1] = 0x10E;
- gTasks[taskId].data[2] = 0x5A;
+ taskId = CreateTask(InitLinkBattleVsScreen, 0);
+ gTasks[taskId].data[1] = 270;
+ gTasks[taskId].data[2] = 90;
gTasks[taskId].data[5] = 0;
gTasks[taskId].data[3] = 0;
gTasks[taskId].data[4] = 0;
@@ -1195,7 +1196,7 @@ void sub_800FE40(u8 taskId)
{
struct Pokemon *sp4 = NULL;
struct Pokemon *sp8 = NULL;
- u8 r2 = ewram160CB;
+ u8 r2 = gBattleStruct->multiplayerId;
u32 r7;
s32 i;
@@ -1321,7 +1322,7 @@ void c2_8011A1C(void)
FreeAllSpritePalettes();
gReservedSpritePaletteCount = 4;
SetVBlankCallback(sub_800FCFC);
- taskId = CreateTask(sub_800DE30, 0);
+ taskId = CreateTask(InitLinkBattleVsScreen, 0);
gTasks[taskId].data[1] = 0x10E;
gTasks[taskId].data[2] = 0x5A;
gTasks[taskId].data[5] = 1;
@@ -2083,9 +2084,9 @@ void debug_sub_801174C(void)
{
gUnknown_02023A14_50 |= 0x10;
if (gUnknown_Debug_2023A76[0][2] > 5)
- gSharedMem[0x160A3] = gUnknown_Debug_2023A76[0][2] - 2;
+ gBattleStruct->unk160A3 = gUnknown_Debug_2023A76[0][2] - 2;
else
- gSharedMem[0x160A3] = gUnknown_Debug_2023A76[0][2];
+ gBattleStruct->unk160A3 = gUnknown_Debug_2023A76[0][2];
sub_80408BC();
}
else if (gUnknown_Debug_2023A76[0][0x22] == 5)
@@ -3064,7 +3065,7 @@ void oac_poke_opponent(struct Sprite *sprite)
void sub_8010278(struct Sprite *sprite)
{
- if ((gUnknown_02024DE8 & 1) == 0)
+ if ((gIntroSlideFlags & 1) == 0)
{
sprite->pos2.x += 2;
if (sprite->pos2.x == 0)
@@ -3121,8 +3122,8 @@ void sub_8010384(struct Sprite *sprite)
u16 species;
u8 yOffset;
- if (ewram17800[r6].transformedSpecies != 0)
- species = ewram17800[r6].transformedSpecies;
+ if (gBattleSpriteInfo[r6].transformedSpecies != 0)
+ species = gBattleSpriteInfo[r6].transformedSpecies;
else
species = sprite->data[2];
@@ -3217,7 +3218,7 @@ void sub_80105A0(struct Sprite *sprite)
void oac_poke_ally_(struct Sprite *sprite)
{
- if ((gUnknown_02024DE8 & 1) == 0)
+ if ((gIntroSlideFlags & 1) == 0)
{
sprite->pos2.x -= 2;
if (sprite->pos2.x == 0)
@@ -3239,7 +3240,7 @@ void nullsub_86(struct Sprite *sprite)
void sub_80105EC(struct Sprite *sprite)
{
- if ((gUnknown_02024DE8 & 1) == 0)
+ if ((gIntroSlideFlags & 1) == 0)
{
sprite->pos2.x += sprite->data[1];
sprite->pos2.y += sprite->data[2];
@@ -3329,7 +3330,7 @@ void nullsub_41(void)
void sub_8010800(void)
{
- sub_8010874();
+ BattleStartClearSetData();
gBattleCommunication[1] = 0;
gBattleMainFunc = bc_8012FAC;
}
@@ -3339,39 +3340,39 @@ void debug_sub_80138CC(void)
{
if (GetBattlerSide(gActiveBattler) == 0)
{
- switch (gSharedMem[0x160FD])
+ switch (gBattleStruct->unk160FD)
{
case 0:
if (gBattlerControllerFuncs[gActiveBattler] == sub_802C098)
- gSharedMem[0x160FD]++;
+ gBattleStruct->unk160FD++;
break;
case 1:
gMain.heldKeys = A_BUTTON;
gMain.newKeys = A_BUTTON;
- gSharedMem[0x160FD]++;
- gSharedMem[0x160FE] = 0x80;
+ gBattleStruct->unk160FD++;
+ gBattleStruct->unk160FE = 0x80;
break;
case 2:
- gSharedMem[0x160FE]--;
- if (gSharedMem[0x160FE] == 0)
+ gBattleStruct->unk160FE--;
+ if (gBattleStruct->unk160FE == 0)
{
gMain.heldKeys = A_BUTTON;
gMain.newKeys = A_BUTTON;
- gSharedMem[0x160FD]++;
- gSharedMem[0x160FE] = 0x80;
+ gBattleStruct->unk160FD++;
+ gBattleStruct->unk160FE = 0x80;
}
break;
case 3:
- gSharedMem[0x160FE]--;
- if (gSharedMem[0x160FE] == 0)
+ gBattleStruct->unk160FE--;
+ if (gBattleStruct->unk160FE == 0)
{
gMain.heldKeys = A_BUTTON;
gMain.newKeys = A_BUTTON;
- gSharedMem[0x160FD]++;
+ gBattleStruct->unk160FD++;
}
break;
case 4:
- gSharedMem[0x160FD] = 0;
+ gBattleStruct->unk160FD = 0;
break;
}
}
@@ -3398,7 +3399,7 @@ void BattleMainCB1(void)
}
}
-void sub_8010874(void)
+void BattleStartClearSetData(void)
{
s32 i;
u32 j;
@@ -3412,70 +3413,78 @@ void sub_8010874(void)
gStatuses3[i] = 0;
MEMSET_ALT(&gDisableStructs[i], 0, 0x1C, j, r4);
- gDisableStructs[i].isFirstTurn= 2;
- gUnknown_02024C70[i] = 0;
+ gDisableStructs[i].isFirstTurn = 2;
+ sUnusedBattlersArray[i] = 0;
gLastMoves[i] = 0;
gLastLandedMoves[i] = 0;
gLastHitByType[i] = 0;
- gUnknown_02024C4C[i] = 0;
+ gLastResultingMoves[i] = 0;
gLastHitBy[i] = 0xFF;
gLockedMoves[i] = 0;
- gUnknown_02024C2C[i] = 0;
- eFlashFireArr.arr[i] = 0;
+ gLastPrintedMoves[i] = 0;
+ eBattleFlagsArr.arr[i] = 0;
}
for (i = 0; i < 2; i++)
{
gSideStatuses[i] = 0;
- MEMSET_ALT(&gSideTimers[i], 0, 12, j, r4);
+ MEMSET_ALT(&gSideTimers[i], 0, sizeof(struct SideTimer), j, r4);
}
gBattlerAttacker = 0;
gBattlerTarget = 0;
gBattleWeather = 0;
- MEMSET_ALT(&gWishFutureKnock, 0, 0x2C, i, r4);
+ MEMSET_ALT(&gWishFutureKnock, 0, sizeof(struct WishFutureKnock), i, r4);
gHitMarker = 0;
if ((gBattleTypeFlags & BATTLE_TYPE_LINK) == 0 && gSaveBlock2.optionsBattleSceneOff == TRUE)
gHitMarker = HITMARKER_NO_ANIMATIONS;
- ewram16084 = gSaveBlock2.optionsBattleStyle;
+
+ gBattleStruct->battleStyle = gSaveBlock2.optionsBattleStyle;
+
gMultiHitCounter = 0;
gBattleOutcome = 0;
gBattleControllerExecFlags = 0;
gPaydayMoney = 0;
- ewram17130 = 0;
- ewram17160 = 0;
+ (*(u8 *)&B_BATTLESCRIPTS_STACK->size) = 0;
+ (*(u8 *)&B_FUNCTION_STACK->size) = 0;
+
for (i = 0; i < 8; i++)
gBattleCommunication[i] = 0;
+
gPauseCounterBattle = 0;
gBattleMoveDamage = 0;
- gUnknown_02024DE8 = 0;
- ewram16002 = 0;
- ewram160A1 = 0;
+ gIntroSlideFlags = 0;
+ gBattleStruct->animTurn = 0;
+ gBattleStruct->animTargetsHit = 0;
gLeveledUpInBattle = 0;
gAbsentBattlerFlags = 0;
- ewram16078 = 0;
- ewram16086 = 0;
- ewram16087 = 0;
- ewram16089 = gBaseStats[GetMonData(&gEnemyParty[0], MON_DATA_SPECIES)].catchRate * 100 / 1275;
- ewram16088 = 3;
- ewram1601B = 0;
- ewram16056 = 1;
+ gBattleStruct->runTries = 0;
+ gBattleStruct->safariGoNearCounter = 0;
+ gBattleStruct->safariPkblThrowCounter = 0;
+ gBattleStruct->safariCatchFactor = gBaseStats[GetMonData(&gEnemyParty[0], MON_DATA_SPECIES)].catchRate * 100 / 1275;
+ gBattleStruct->safariFleeRate = 3;
+ gBattleStruct->wildVictorySong = 0;
+ gBattleStruct->moneyMultiplier = 1;
for (i = 0; i < 8; i++)
{
- ewram160ACarr(i) = 0;
- ewram160CCarr(i) = 0;
- ewram160E8arr(i) = 0;
- ewram160F0arr(i) = 0;
- ewram16100arr(i) = 0;
- ewram16108arr(i) = 0;
+ // TODO: Find matching access here
+ eLastTakenMove_flat(i) = 0;/*((u8 *)(gBattleStruct->lastTakenMove))[i] = 0;*/
+ ewram160CCarr(i) = 0;/*((u8 *)(gBattleStruct->usedHeldItems))[i] = 0;*/
+ ewram160E8arr(i) = 0;/*((u8 *)(gBattleStruct->choicedMove))[i] = 0;*/
+ ewram160F0arr(i) = 0;/*((u8 *)(gBattleStruct->changedItems))[i] = 0;*/
+ ewram16100arr(i) = 0;/*((u8 *)(gBattleStruct->lastTakenMoveFrom) + 8 * 0)[i] = 0;*/
+ ewram16108arr(i) = 0;/*((u8 *)(gBattleStruct->lastTakenMoveFrom) + 8 * 1)[i] = 0;*/
}
- ewram160C8 = 6;
- ewram160C9 = 6;
- ewram16113 = 0;
+ gBattleStruct->AI_monToSwitchIntoId[0] = PARTY_SIZE;
+ gBattleStruct->AI_monToSwitchIntoId[1] = PARTY_SIZE;
+
+ gBattleStruct->givenExpMons = 0;
+
+ // Reset gBattleResults
for (i = 0; i < 11; i++)
gBattleResults.usedBalls[i] = 0;
gBattleResults.battleTurnCounter = 0;
@@ -3499,8 +3508,8 @@ void sub_8010874(void)
gBattleResults.caughtNick[i] = 0;
}
#if DEBUG
- gSharedMem[0x1609E] = 0;
- gSharedMem[0x1609F] = 0;
+ gBattleStruct->unk1609E = 0;
+ gBattleStruct->unk1609F = 0;
#endif
}
@@ -3572,12 +3581,12 @@ void SwitchInClearSetData(void)
gLastMoves[gActiveBattler] = 0;
gLastLandedMoves[gActiveBattler] = 0;
gLastHitByType[gActiveBattler] = 0;
- gUnknown_02024C4C[gActiveBattler] = 0;
- gUnknown_02024C2C[gActiveBattler] = 0;
+ gLastResultingMoves[gActiveBattler] = 0;
+ gLastPrintedMoves[gActiveBattler] = 0;
gLastHitBy[gActiveBattler] = 0xFF;
- ewram160ACarr2(0, gActiveBattler) = 0;
- ewram160ACarr2(1, gActiveBattler) = 0;
+ eLastTakenMove_2d(0, gActiveBattler) = 0;
+ eLastTakenMove_2d(1, gActiveBattler) = 0;
ewram16100arr2(0, gActiveBattler) = 0;
ewram16100arr2(1, gActiveBattler) = 0;
ewram16100arr2(2, gActiveBattler) = 0;
@@ -3585,7 +3594,7 @@ void SwitchInClearSetData(void)
ewram160E8arr2(0, gActiveBattler) = 0;
ewram160E8arr2(1, gActiveBattler) = 0;
- eFlashFireArr.arr[gActiveBattler] = 0;
+ eBattleFlagsArr.arr[gActiveBattler] = 0;
gCurrentMove = 0;
}
@@ -3636,20 +3645,20 @@ void UndoEffectsAfterFainting(void)
gLastMoves[gActiveBattler] = 0;
gLastLandedMoves[gActiveBattler] = 0;
gLastHitByType[gActiveBattler] = 0;
- gUnknown_02024C4C[gActiveBattler] = 0;
- gUnknown_02024C2C[gActiveBattler] = 0;
+ gLastResultingMoves[gActiveBattler] = 0;
+ gLastPrintedMoves[gActiveBattler] = 0;
gLastHitBy[gActiveBattler] = 0xFF;
ewram160E8arr2(0, gActiveBattler) = 0;
ewram160E8arr2(1, gActiveBattler) = 0;
- ewram160ACarr2(0, gActiveBattler) = 0;
- ewram160ACarr2(1, gActiveBattler) = 0;
+ eLastTakenMove_2d(0, gActiveBattler) = 0;
+ eLastTakenMove_2d(1, gActiveBattler) = 0;
ewram16100arr2(0, gActiveBattler) = 0;
ewram16100arr2(1, gActiveBattler) = 0;
ewram16100arr2(2, gActiveBattler) = 0;
ewram16100arr2(3, gActiveBattler) = 0;
- eFlashFireArr.arr[gActiveBattler] = 0;
+ eBattleFlagsArr.arr[gActiveBattler] = 0;
gBattleMons[gActiveBattler].type1 = gBaseStats[gBattleMons[gActiveBattler].species].type1;
gBattleMons[gActiveBattler].type2 = gBaseStats[gBattleMons[gActiveBattler].species].type2;
@@ -3707,14 +3716,15 @@ void sub_8011384(void)
}
else
{
- u8 r0;
+ u16 *hpOnSwitchout;
MEMSET_ALT(&gBattleMons[gActiveBattler], gBattleBufferB[gActiveBattler][4 + i], 0x58, i, ptr);
gBattleMons[gActiveBattler].type1 = gBaseStats[gBattleMons[gActiveBattler].species].type1;
gBattleMons[gActiveBattler].type2 = gBaseStats[gBattleMons[gActiveBattler].species].type2;
gBattleMons[gActiveBattler].ability = GetAbilityBySpecies(gBattleMons[gActiveBattler].species, gBattleMons[gActiveBattler].altAbility);
- r0 = GetBattlerSide(gActiveBattler);
- ewram160BC[r0] = gBattleMons[gActiveBattler].hp;
+
+ hpOnSwitchout = &gBattleStruct->HP_OnSwitchout[GetBattlerSide(gActiveBattler)];
+ *hpOnSwitchout = gBattleMons[gActiveBattler].hp;
for (i = 0; i < 8; i++)
gBattleMons[gActiveBattler].statStages[i] = 6;
gBattleMons[gActiveBattler].status2 = 0;
@@ -3933,9 +3943,9 @@ void sub_80119B4(void)
MarkBattlerForControllerExec(gActiveBattler);
}
}
- ewram16058 = 0;
- ewram160F9 = 0;
- ewram160E6 = 0;
+ gBattleStruct->unk16058 = 0;
+ gBattleStruct->unk160F9 = 0;
+ gBattleStruct->unk160E6 = 0;
gBattleMainFunc = BattleBeginFirstTurn;
}
}
@@ -3952,9 +3962,9 @@ void unref_sub_8011A68(void)
MarkBattlerForControllerExec(gActiveBattler);
}
}
- ewram16058 = 0;
- ewram160F9 = 0;
- ewram160E6 = 0;
+ gBattleStruct->unk16058 = 0;
+ gBattleStruct->unk160F9 = 0;
+ gBattleStruct->unk160E6 = 0;
gBattleMainFunc = BattleBeginFirstTurn;
}
}
@@ -3967,7 +3977,7 @@ void BattleBeginFirstTurn(void)
if (gBattleControllerExecFlags == 0)
{
- if (ewram16058 == 0)
+ if (gBattleStruct->unk16058 == 0)
{
for (i = 0; i < gBattlersCount; i++)
gBattlerByTurnOrder[i] = i;
@@ -3980,16 +3990,16 @@ void BattleBeginFirstTurn(void)
}
}
}
- if (ewram160E6 == 0 && AbilityBattleEffects(0, 0, 0, 0xFF, 0) != 0)
+ if (gBattleStruct->unk160E6 == 0 && AbilityBattleEffects(0, 0, 0, 0xFF, 0) != 0)
{
- ewram160E6 = 1;
+ gBattleStruct->unk160E6 = 1;
return;
}
- while (ewram16058 < gBattlersCount)
+ while (gBattleStruct->unk16058 < gBattlersCount)
{
- if (AbilityBattleEffects(0, gBattlerByTurnOrder[ewram16058], 0, 0, 0) != 0)
+ if (AbilityBattleEffects(0, gBattlerByTurnOrder[gBattleStruct->unk16058], 0, 0, 0) != 0)
r9++;
- ewram16058++;
+ gBattleStruct->unk16058++;
if (r9 != 0)
return;
}
@@ -3997,11 +4007,11 @@ void BattleBeginFirstTurn(void)
return;
if (AbilityBattleEffects(11, 0, 0, 0, 0) != 0)
return;
- while (ewram160F9 < gBattlersCount)
+ while (gBattleStruct->unk160F9 < gBattlersCount)
{
- if (ItemBattleEffects(0, gBattlerByTurnOrder[ewram160F9], 0) != 0)
+ if (ItemBattleEffects(0, gBattlerByTurnOrder[gBattleStruct->unk160F9], 0) != 0)
r9++;
- ewram160F9++;
+ gBattleStruct->unk160F9++;
if (r9 != 0)
return;
}
@@ -4016,20 +4026,20 @@ void BattleBeginFirstTurn(void)
}
TurnValuesCleanUp(0);
SpecialStatusesClear();
- ewram160A6 = gAbsentBattlerFlags;
+ gBattleStruct->unk160A6 = gAbsentBattlerFlags;
gBattleMainFunc = sub_8012324;
ResetSentPokesToOpponentValue();
for (i = 0; i < 8; i++)
gBattleCommunication[i] = 0;
for (i = 0; i < gBattlersCount; i++)
gBattleMons[i].status2 &= ~8;
- ewram16000 = 0;
- ewram16001 = 0;
- ewram16110 = 0;
- ewram16111 = 0;
- ewram1600C = 0;
- ewram16059 = 0;
- ewram1600E = 0;
+ gBattleStruct->turnEffectsTracker = 0;
+ gBattleStruct->turnEffectsBattlerId = 0;
+ gBattleStruct->wishPerishSongState = 0;
+ gBattleStruct->wishPerishSongBattlerId = 0;
+ gBattleStruct->cmd49StateTracker = 0;
+ gBattleStruct->sub80173A4_Tracker = 0;
+ gBattleStruct->turnCountersTracker = 0;
gMoveResultFlags = 0;
gRandomTurnNumber = Random();
}
@@ -4050,11 +4060,11 @@ void bc_8013B1C(void)
if ((gBattleMons[i].status1 & 7) && (gBattleMons[i].status2 & 0x1000))
CancelMultiTurnMoves(i);
}
- ewram16000 = 0;
- ewram16001 = 0;
- ewram16110 = 0;
- ewram16111 = 0;
- ewram1600E = 0;
+ gBattleStruct->turnEffectsTracker = 0;
+ gBattleStruct->turnEffectsBattlerId = 0;
+ gBattleStruct->wishPerishSongState = 0;
+ gBattleStruct->wishPerishSongBattlerId = 0;
+ gBattleStruct->turnCountersTracker = 0;
gMoveResultFlags = 0;
}
}
@@ -4073,7 +4083,7 @@ void BattleTurnPassed(void)
}
if (HandleFaintedMonActions() != 0)
return;
- ewram16059 = 0;
+ gBattleStruct->sub80173A4_Tracker = 0;
if (HandleWishPerishSongOnTurnEnd() != 0)
return;
TurnValuesCleanUp(0);
@@ -4081,9 +4091,9 @@ void BattleTurnPassed(void)
gHitMarker &= ~0x80000;
gHitMarker &= ~0x400000;
gHitMarker &= ~0x100000;
- ewram16002 = 0;
- ewram160A1 = 0;
- ewram1600C = 0;
+ gBattleStruct->animTurn = 0;
+ gBattleStruct->animTargetsHit = 0;
+ gBattleStruct->cmd49StateTracker = 0;
gBattleMoveDamage = 0;
gMoveResultFlags = 0;
for (i = 0; i < 5; i++)
@@ -4103,7 +4113,7 @@ void BattleTurnPassed(void)
}
for (i = 0; i < 4; i++)
ewram16068arr(i) = 6;
- ewram160A6 = gAbsentBattlerFlags;
+ gBattleStruct->unk160A6 = gAbsentBattlerFlags;
gBattleMainFunc = sub_8012324;
gRandomTurnNumber = Random();
}
@@ -4131,7 +4141,7 @@ u8 CanRunFromBattle(void)
if (r6 != GetBattlerSide(i)
&& gBattleMons[i].ability == ABILITY_SHADOW_TAG)
{
- ewram16003 = i;
+ gBattleStruct->scriptingActive = i;
gLastUsedAbility = gBattleMons[i].ability;
gBattleCommunication[5] = 2;
return 2;
@@ -4142,7 +4152,7 @@ u8 CanRunFromBattle(void)
&& gBattleMons[gActiveBattler].type2 != 2
&& gBattleMons[i].ability == ABILITY_ARENA_TRAP)
{
- ewram16003 = i;
+ gBattleStruct->scriptingActive = i;
gLastUsedAbility = gBattleMons[i].ability;
gBattleCommunication[5] = 2;
return 2;
@@ -4151,7 +4161,7 @@ u8 CanRunFromBattle(void)
i = AbilityBattleEffects(15, gActiveBattler, ABILITY_MAGNET_PULL, 0, 0);
if (i != 0 && (gBattleMons[gActiveBattler].type1 == 8 || gBattleMons[gActiveBattler].type2 == 8))
{
- ewram16003 = i - 1;
+ gBattleStruct->scriptingActive = i - 1;
gLastUsedAbility = gBattleMons[i - 1].ability;
gBattleCommunication[5] = 2;
return 2;
@@ -4232,11 +4242,11 @@ void sub_8012324(void)
ewram16068arr(gActiveBattler) = 6;
if (!(gBattleTypeFlags & BATTLE_TYPE_MULTI)
&& (position & BIT_FLANK) != B_FLANK_LEFT
- && !(ewram160A6 & gBitTable[GetBattlerAtPosition(BATTLE_PARTNER(position))])
+ && !(gBattleStruct->unk160A6 & gBitTable[GetBattlerAtPosition(BATTLE_PARTNER(position))])
&& gBattleCommunication[GetBattlerAtPosition(BATTLE_PARTNER(position))] != STATE_WAIT_ACTION_CONFIRMED)
break;
//_080123F8
- if (ewram160A6 & gBitTable[gActiveBattler])
+ if (gBattleStruct->unk160A6 & gBitTable[gActiveBattler])
{
gActionForBanks[gActiveBattler] = 13;
if (!(gBattleTypeFlags & 0x40))
@@ -4509,7 +4519,7 @@ void sub_8012324(void)
{
if (((gBattleTypeFlags & (BATTLE_TYPE_MULTI | BATTLE_TYPE_DOUBLE)) != BATTLE_TYPE_DOUBLE)
|| (position & BIT_FLANK) != B_FLANK_LEFT
- || (ewram160A6 & gBitTable[GetBattlerAtPosition(position ^ BIT_FLANK)]))
+ || (gBattleStruct->unk160A6 & gBitTable[GetBattlerAtPosition(position ^ BIT_FLANK)]))
{
BtlController_EmitLinkStandbyMsg(0, 0);
}
@@ -4895,8 +4905,8 @@ void CheckFocusPunch_ClearVarsBeforeTurnStarts(void)
gBattleMainFunc = RunTurnActionsFunctions;
gBattleCommunication[3] = 0;
gBattleCommunication[4] = 0;
- eMultihitMoveEffect = 0;
- ewram17130 = 0;
+ gBattleStruct->multihitMoveEffect = 0;
+ B_BATTLESCRIPTS_STACK->size = 0;
}
static void RunTurnActionsFunctions(void)
@@ -5170,7 +5180,7 @@ void HandleAction_UseMove(void)
gBattlerAttacker = gBattlerByTurnOrder[gCurrentTurnActionNumber];
- if (ewram160A6 & gBitTable[gBattlerAttacker])
+ if (gBattleStruct->unk160A6 & gBitTable[gBattlerAttacker])
{
gCurrentActionFuncId = B_ACTION_FINISHED;
return;
@@ -5178,7 +5188,7 @@ void HandleAction_UseMove(void)
gCritMultiplier = 1;
eDmgMultiplier = 1;
- ewram160E7 = 0;
+ gBattleStruct->atkCancellerTracker = 0;
gMoveResultFlags = 0;
gMultiHitCounter = 0;
gBattleCommunication[6] = 0;
@@ -5359,7 +5369,7 @@ void HandleAction_Switch(void)
PREPARE_MON_NICK_BUFFER(gBattleTextBuff1, gBattlerAttacker, ewram16064arr(gBattlerAttacker))
- ewram16003 = gBattlerAttacker;
+ gBattleStruct->scriptingActive = gBattlerAttacker;
gBattlescriptCurrInstr = BattleScript_ActionSwitch;
gCurrentActionFuncId = B_ACTION_EXEC_SCRIPT;
@@ -5390,7 +5400,7 @@ void HandleAction_UseItem(void)
else
{
- switch (ewram160D8((ewram16003 = gBattlerAttacker)))
+ switch (ewram160D8((gBattleStruct->scriptingActive = gBattlerAttacker)))
{
case AI_ITEM_FULL_RESTORE:
case AI_ITEM_HEAL_HP:
@@ -5428,8 +5438,8 @@ void HandleAction_UseItem(void)
gBattleTextBuff1[2]++;
}
- ewram160A4 = gBattleTextBuff1[2] + 14;
- ewram160A5 = 0;
+ gBattleStruct->animArg1 = gBattleTextBuff1[2] + 14;
+ gBattleStruct->animArg2 = 0;
}
break;
case AI_ITEM_GUARD_SPECS:
@@ -5476,7 +5486,7 @@ bool8 TryRunFromBattle(u8 bank)
{
if (gBattleMons[bank].speed < gBattleMons[bank ^ BIT_SIDE].speed)
{
- speedVar = (gBattleMons[bank].speed * 128) / (gBattleMons[bank ^ BIT_SIDE].speed) + (ewram16078 * 30);
+ speedVar = (gBattleMons[bank].speed * 128) / (gBattleMons[bank ^ BIT_SIDE].speed) + (gBattleStruct->runTries * 30);
if (speedVar > (Random() & 0xFF))
effect++;
}
@@ -5486,7 +5496,7 @@ bool8 TryRunFromBattle(u8 bank)
}
}
- ewram16078++;
+ gBattleStruct->runTries++;
}
if (effect)
@@ -5579,14 +5589,14 @@ void HandleAction_ThrowPokeblock(void)
gBattleCommunication[MULTISTRING_CHOOSER] = gBattleBufferB[gBattlerAttacker][1] - 1;
gLastUsedItem = gBattleBufferB[gBattlerAttacker][2];
- if (ewram16087 < 3)
- ewram16087++;
- if (ewram16088 > 1)
+ if (gBattleStruct->safariPkblThrowCounter < 3)
+ gBattleStruct->safariPkblThrowCounter++;
+ if (gBattleStruct->safariFleeRate > 1)
{
- if (ewram16088 < gUnknown_081FA70C[ewram16087][gBattleCommunication[MULTISTRING_CHOOSER]])
- ewram16088 = 1;
+ if (gBattleStruct->safariFleeRate < gUnknown_081FA70C[gBattleStruct->safariPkblThrowCounter][gBattleCommunication[MULTISTRING_CHOOSER]])
+ gBattleStruct->safariFleeRate = 1;
else
- ewram16088 -= gUnknown_081FA70C[ewram16087][gBattleCommunication[MULTISTRING_CHOOSER]];
+ gBattleStruct->safariFleeRate -= gUnknown_081FA70C[gBattleStruct->safariPkblThrowCounter][gBattleCommunication[MULTISTRING_CHOOSER]];
}
gBattlescriptCurrInstr = gBattlescriptsForSafariActions[2];
@@ -5599,17 +5609,17 @@ void HandleAction_GoNear(void)
gBattle_BG0_X = 0;
gBattle_BG0_Y = 0;
- ewram16089 += gUnknown_081FA71B[ewram16086];
- if (ewram16089 > 20)
- ewram16089 = 20;
+ gBattleStruct->safariCatchFactor += gUnknown_081FA71B[gBattleStruct->safariGoNearCounter];
+ if (gBattleStruct->safariCatchFactor > 20)
+ gBattleStruct->safariCatchFactor = 20;
- ewram16088 += gUnknown_081FA71F[ewram16086];
- if (ewram16088 > 20)
- ewram16088 = 20;
+ gBattleStruct->safariFleeRate += gUnknown_081FA71F[gBattleStruct->safariGoNearCounter];
+ if (gBattleStruct->safariFleeRate > 20)
+ gBattleStruct->safariFleeRate = 20;
- if (ewram16086 < 3)
+ if (gBattleStruct->safariGoNearCounter < 3)
{
- ewram16086++;
+ gBattleStruct->safariGoNearCounter++;
gBattleCommunication[MULTISTRING_CHOOSER] = 0;
}
else
@@ -5645,7 +5655,7 @@ void HandleAction_Action11(void)
{
if (!HandleFaintedMonActions())
{
- ewram16059 = 0;
+ gBattleStruct->sub80173A4_Tracker = 0;
gCurrentActionFuncId = B_ACTION_FINISHED;
}
}
@@ -5673,15 +5683,15 @@ void HandleAction_ActionFinished(void)
| HITMARKER_CHARGING | HITMARKER_x4000000);
gBattleMoveDamage = 0;
- ewram16002 = 0;
- ewram160A1 = 0;
+ gBattleStruct->animTurn = 0;
+ gBattleStruct->animTargetsHit = 0;
gLastLandedMoves[gBattlerAttacker] = 0;
gLastHitByType[gBattlerAttacker] = 0;
eDynamicMoveType = 0;
gDynamicBasePower = 0;
- ewram1600C = 0;
+ gBattleStruct->cmd49StateTracker = 0;
gBattleCommunication[3] = 0;
gBattleCommunication[4] = 0;
- eMultihitMoveEffect = 0;
- ewram17130 = 0;
+ gBattleStruct->multihitMoveEffect = 0;
+ B_BATTLESCRIPTS_STACK->size = 0;
}
diff --git a/src/battle_message.c b/src/battle_message.c
index ce1e63edd..b8872163b 100644
--- a/src/battle_message.c
+++ b/src/battle_message.c
@@ -658,7 +658,7 @@ u32 BattleStringExpandPlaceholders(const u8* src, u8* dst)
{
if (gLastUsedItem == ITEM_ENIGMA_BERRY)
{
- if (gLinkPlayers[gBattleStruct->linkPlayerIndex].id == gPotentialItemEffectBattler)
+ if (gLinkPlayers[gBattleStruct->multiplayerId].id == gPotentialItemEffectBattler)
{
StringCopy(text, gEnigmaBerries[gPotentialItemEffectBattler].name);
#ifdef ENGLISH
@@ -724,7 +724,7 @@ u32 BattleStringExpandPlaceholders(const u8* src, u8* dst)
if (gTrainerBattleOpponent == SECRET_BASE_OPPONENT)
{
memset(text, 0xFF, 8);
- memcpy(text, ewram17002, 7);
+ memcpy(text, eSecretBaseRecord->playerName, 7);
toCpy = text;
}
else if (gBattleTypeFlags & BATTLE_TYPE_BATTLE_TOWER)
@@ -949,7 +949,7 @@ void ExpandBattleTextBuffPlaceholders(u8* src, u8* dst)
{
if (hword == ITEM_ENIGMA_BERRY)
{
- if (gLinkPlayers[gBattleStruct->linkPlayerIndex].id == gPotentialItemEffectBattler)
+ if (gLinkPlayers[gBattleStruct->multiplayerId].id == gPotentialItemEffectBattler)
{
StringCopy(dst, gEnigmaBerries[gPotentialItemEffectBattler].name);
#ifdef ENGLISH
diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c
index 0cdcfe8f9..c9c22ec6f 100644
--- a/src/battle_script_commands.c
+++ b/src/battle_script_commands.c
@@ -101,8 +101,8 @@ extern u8* gBattleScriptsForMoveEffects[];
extern u16 gChosenMove; //last used move in battle
extern u8 gBankInMenu;
extern u8 gActionForBanks[4];
-extern u16 gUnknown_02024C2C[4]; //last used moves 2, used by sketch
-extern u16 gUnknown_02024C4C[4]; //last used moves by banks, another one
+extern u16 gLastPrintedMoves[4]; //last used moves 2, used by sketch
+extern u16 gLastResultingMoves[4]; //last used moves by banks, another one
extern u8 gCurrentTurnActionNumber;
extern u16 gTrappingMoves[];
@@ -4991,7 +4991,7 @@ static void atk15_seteffectwithchance(void)
}
gBattleCommunication[MOVE_EFFECT_BYTE] = 0;
- gBattleStruct->unk16112 = 0;
+ gBattleStruct->multihitMoveEffect = 0;
}
static void atk16_seteffectprimary(void)
@@ -5015,7 +5015,7 @@ static void atk18_clearstatusfromeffect(void)
gBattleCommunication[MOVE_EFFECT_BYTE] = 0;
gBattlescriptCurrInstr += 2;
- gBattleStruct->unk16112 = 0;
+ gBattleStruct->multihitMoveEffect = 0;
}
static void atk19_tryfaintmon(void)
@@ -5057,8 +5057,8 @@ static void atk19_tryfaintmon(void)
if (!(gAbsentBattlerFlags & gBitTable[gActiveBattler])
&& gBattleMons[gActiveBattler].hp == 0)
{
- ewram160ACarr2(0, battlerId) = 0;
- ewram160ACarr2(1, battlerId) = 0;
+ eLastTakenMove_2d(0, battlerId) = 0;
+ eLastTakenMove_2d(1, battlerId) = 0;
ewram16100arr2(0, battlerId) = 0;
ewram16100arr2(1, battlerId) = 0;
ewram16100arr2(2, battlerId) = 0;
@@ -5334,7 +5334,7 @@ static void atk23_getexp(void)
else
{
gBattleStruct->getexpStateTracker++;
- gBattleStruct->unk16113 |= gBitTable[gBattlerPartyIndexes[gBank1]];
+ gBattleStruct->givenExpMons |= gBitTable[gBattlerPartyIndexes[gBank1]];
}
break;
case 1: // calculate experience points to redistribute
@@ -6673,7 +6673,7 @@ void atk49_moveend(void)
}
if (gBattleMoves[gChosenMove].effect != 0x7F || (gMoveResultFlags & 0x29))
- gUnknown_02024C2C[gBattlerAttacker] = gChosenMove;
+ gLastPrintedMoves[gBattlerAttacker] = gChosenMove;
if (!(gAbsentBattlerFlags & gBitTable[gBattlerAttacker])
&& !(gSharedMem[0x160A6] & gBitTable[gBattlerAttacker])
@@ -6682,12 +6682,12 @@ void atk49_moveend(void)
if (gHitMarker & HITMARKER_OBEYS)
{
gLastMoves[gBattlerAttacker] = gChosenMove;
- gUnknown_02024C4C[gBattlerAttacker] = gCurrentMove;
+ gLastResultingMoves[gBattlerAttacker] = gCurrentMove;
}
else
{
gLastMoves[gBattlerAttacker] = 0xFFFF;
- gUnknown_02024C4C[gBattlerAttacker] = 0xFFFF;
+ gLastResultingMoves[gBattlerAttacker] = 0xFFFF;
}
if (!(gHitMarker & HITMARKER_FAINTED(gBattlerTarget)))
@@ -9574,7 +9574,7 @@ static void atk74_hpthresholds2(void)
{
gActiveBattler = GetBattlerForBattleScript(T2_READ_8(gBattlescriptCurrInstr + 1));
opposing_bank = gActiveBattler ^ 1;
- hp_switchout = ewram160BCarr(GetBattlerSide(opposing_bank)); //gBattleStruct->HP_OnSwitchout[GetBattlerSide(opposing_bank)];
+ hp_switchout = eHpOnSwitchout(GetBattlerSide(opposing_bank)); //gBattleStruct->HP_OnSwitchout[GetBattlerSide(opposing_bank)];
result = (hp_switchout - gBattleMons[opposing_bank].hp) * 100 / hp_switchout;
if (gBattleMons[opposing_bank].hp >= hp_switchout)
@@ -9666,7 +9666,7 @@ static void atk76_various(void)
static void atk77_setprotectlike(void) //protect and endure
{
bool8 not_last_turn = 1;
- u16 last_move = gUnknown_02024C4C[gBattlerAttacker];
+ u16 last_move = gLastResultingMoves[gBattlerAttacker];
if (last_move != MOVE_PROTECT && last_move != MOVE_DETECT && last_move != MOVE_ENDURE)
gDisableStructs[gBattlerAttacker].protectUses = 0;
@@ -9788,7 +9788,7 @@ static void atk7B_tryhealhalfhealth(void)
static void atk7C_trymirrormove(void)
{
- u16 r7 = ewram160ACarr2(0, gBattlerAttacker) | (ewram160ACarr2(1, gBattlerAttacker) << 8);
+ u16 r7 = eLastTakenMove_2d(0, gBattlerAttacker) | (eLastTakenMove_2d(1, gBattlerAttacker) << 8);
u16 r6 = ewram16100arr2(0, gBattlerAttacker) | (ewram16100arr2(1, gBattlerAttacker) << 8);
u16 r5 = ewram16100arr2(2, gBattlerAttacker) | (ewram16100arr2(3, gBattlerAttacker) << 8);
@@ -11867,14 +11867,14 @@ struct move_pp
static void atkA8_copymovepermanently(void)
{
gChosenMove = 0xFFFF;
- if (!(gBattleMons[gBattlerAttacker].status2 & STATUS2_TRANSFORMED) && gUnknown_02024C2C[gBattlerTarget] != MOVE_STRUGGLE && gUnknown_02024C2C[gBattlerTarget] != 0 && gUnknown_02024C2C[gBattlerTarget] != 0xFFFF && gUnknown_02024C2C[gBattlerTarget] != MOVE_SKETCH)
+ if (!(gBattleMons[gBattlerAttacker].status2 & STATUS2_TRANSFORMED) && gLastPrintedMoves[gBattlerTarget] != MOVE_STRUGGLE && gLastPrintedMoves[gBattlerTarget] != 0 && gLastPrintedMoves[gBattlerTarget] != 0xFFFF && gLastPrintedMoves[gBattlerTarget] != MOVE_SKETCH)
{
int i;
for (i = 0; i < 4; i++)
{
if (gBattleMons[gBattlerAttacker].moves[i] == MOVE_SKETCH)
continue;
- if (gBattleMons[gBattlerAttacker].moves[i] == gUnknown_02024C2C[gBattlerTarget])
+ if (gBattleMons[gBattlerAttacker].moves[i] == gLastPrintedMoves[gBattlerTarget])
break;
}
if (i != 4) //sketch fail
@@ -11882,8 +11882,8 @@ static void atkA8_copymovepermanently(void)
else //sketch worked
{
struct move_pp moves_data;
- gBattleMons[gBattlerAttacker].moves[gCurrMovePos] = gUnknown_02024C2C[gBattlerTarget];
- gBattleMons[gBattlerAttacker].pp[gCurrMovePos] = gBattleMoves[gUnknown_02024C2C[gBattlerTarget]].pp;
+ gBattleMons[gBattlerAttacker].moves[gCurrMovePos] = gLastPrintedMoves[gBattlerTarget];
+ gBattleMons[gBattlerAttacker].pp[gCurrMovePos] = gBattleMoves[gLastPrintedMoves[gBattlerTarget]].pp;
gActiveBattler = gBattlerAttacker;
for (i = 0; i < 4; i++)
{
@@ -11895,8 +11895,8 @@ static void atkA8_copymovepermanently(void)
MarkBattlerForControllerExec(gActiveBattler);
gBattleTextBuff1[0] = 0xFD;
gBattleTextBuff1[1] = 2;
- gBattleTextBuff1[2] = gUnknown_02024C2C[gBattlerTarget];
- gBattleTextBuff1[3] = gUnknown_02024C2C[gBattlerTarget] >> 8;
+ gBattleTextBuff1[2] = gLastPrintedMoves[gBattlerTarget];
+ gBattleTextBuff1[3] = gLastPrintedMoves[gBattlerTarget] >> 8;
gBattleTextBuff1[4] = 0xFF;
gBattlescriptCurrInstr += 5;
}
@@ -13376,7 +13376,7 @@ void atkEF_handleballthrow(void)
u32 odds;
u8 catch_rate;
if (gLastUsedItem == ITEM_SAFARI_BALL)
- catch_rate = gBattleStruct->unk16089 * 1275 / 100; //correct the name to safariFleeRate
+ catch_rate = gBattleStruct->safariCatchFactor * 1275 / 100; //correct the name to safariFleeRate
else
catch_rate = gBaseStats[gBattleMons[gBattlerTarget].species].catchRate;
if (gLastUsedItem > 5)
diff --git a/src/battle_util.c b/src/battle_util.c
index b1260cd4e..4f8a0b036 100644
--- a/src/battle_util.c
+++ b/src/battle_util.c
@@ -1303,7 +1303,7 @@ bool8 HandleFaintedMonActions(void)
do
{
gBank1 = gBattlerTarget = gBattleStruct->unk1605A;
- if (gBattleMons[gBattleStruct->unk1605A].hp == 0 && !(gBattleStruct->unk16113 & gBitTable[gBattlerPartyIndexes[gBattleStruct->unk1605A]]) && !(gAbsentBattlerFlags & gBitTable[gBattleStruct->unk1605A]))
+ if (gBattleMons[gBattleStruct->unk1605A].hp == 0 && !(gBattleStruct->givenExpMons & gBitTable[gBattlerPartyIndexes[gBattleStruct->unk1605A]]) && !(gAbsentBattlerFlags & gBitTable[gBattleStruct->unk1605A]))
{
BattleScriptExecute(BattleScript_GiveExp);
gBattleStruct->sub80173A4_Tracker = 2;
@@ -2003,14 +2003,14 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
case ABILITY_FLASH_FIRE:
if (moveType == TYPE_FIRE && !(gBattleMons[bank].status1 & STATUS1_FREEZE))
{
- if (!(eFlashFireArr.arr[bank] & 1))
+ if (!(eBattleFlagsArr.arr[bank] & 1))
{
gBattleCommunication[MULTISTRING_CHOOSER] = 0;
if (gProtectStructs[gBattlerAttacker].notFirstStrike)
gBattlescriptCurrInstr = BattleScript_FlashFireBoost;
else
gBattlescriptCurrInstr = BattleScript_FlashFireBoost_PPLoss;
- eFlashFireArr.arr[bank] |= 1;
+ eBattleFlagsArr.arr[bank] |= 1;
effect = 2;
}
else
diff --git a/src/calculate_base_damage.c b/src/calculate_base_damage.c
index 760887834..c15b94d8f 100644
--- a/src/calculate_base_damage.c
+++ b/src/calculate_base_damage.c
@@ -330,7 +330,7 @@ s32 CalculateBaseDamage(struct BattlePokemon *attacker, struct BattlePokemon *de
}
// flash fire triggered
- if ((eFlashFireArr.arr[bankAtk] & 1) && type == TYPE_FIRE)
+ if ((eBattleFlagsArr.arr[bankAtk] & 1) && type == TYPE_FIRE)
damage = (15 * damage) / 10;
}
diff --git a/src/choose_party.c b/src/choose_party.c
index f1252f965..5ed637910 100644
--- a/src/choose_party.c
+++ b/src/choose_party.c
@@ -23,7 +23,7 @@
extern u8 gPlayerPartyCount;
extern u8 gLastFieldPokeMenuOpened;
extern u8 gUnknown_020384F0;
-extern struct UnknownPokemonStruct2 gMultiPartnerParty[3];
+extern struct MultiBattlePokemonTx gMultiPartnerParty[3];
extern u8 gUnknown_0202E8F6;
extern const u16 gBattleTowerBannedSpecies[];
diff --git a/src/contest_link_80C2020.c b/src/contest_link_80C2020.c
index e14880ee0..6f176e2b0 100644
--- a/src/contest_link_80C2020.c
+++ b/src/contest_link_80C2020.c
@@ -727,8 +727,8 @@ static void sub_80C2E14(u8 taskId)
sub_810FB10(2);
Contest_SaveWinner(gSpecialVar_ContestRank);
Contest_SaveWinner(0xFE);
- ewram15DDF = 1;
- ewram15DDE = sub_80B2C4C(0xfe, 0);
+ gBattleStruct->contestWinnerIsForArtist = 1;
+ gBattleStruct->contestWinnerSaveIdx = sub_80B2C4C(0xfe, 0);
BeginHardwarePaletteFade(0xff, 0, 0, 16, 0);
gTasks[taskId].func = sub_80C2EA0;
}
diff --git a/src/contest_painting.c b/src/contest_painting.c
index ae683d267..59ffd2353 100644
--- a/src/contest_painting.c
+++ b/src/contest_painting.c
@@ -108,8 +108,8 @@ void sub_8106630(u32 contestWinnerId)
{
// probably fakematching
struct ContestWinner *ptr1 = (struct ContestWinner*)&ewram15DE0; // TODO: resolve messy struct duplicates
- u8 *ptr2 = (u8*)&ewram15DDE;
- u8 *ptr3 = (u8*)&ewram15DDF;
+ u8 *ptr2 = (u8*)&gBattleStruct->contestWinnerSaveIdx;
+ u8 *ptr3 = (u8*)&gBattleStruct->contestWinnerIsForArtist;
*ptr1 = gSaveBlock1.contestWinners[contestWinnerId - 1];
*ptr2 = contestWinnerId - 1;
*ptr3 = 0;
@@ -143,15 +143,15 @@ static void ShowContestPainting(void)
case 2:
SeedRng(gMain.vblankCounter1);
InitKeys();
- ContestPaintingInitWindow(ewram15DDF);
+ ContestPaintingInitWindow(gBattleStruct->contestWinnerIsForArtist);
gMain.state++;
break;
case 3:
- sub_8107090(ewram15DDE, ewram15DDF);
+ sub_8107090(gBattleStruct->contestWinnerSaveIdx, gBattleStruct->contestWinnerIsForArtist);
gMain.state++;
break;
case 4:
- ContestPaintingPrintCaption(ewram15DDE, ewram15DDF);
+ ContestPaintingPrintCaption(gBattleStruct->contestWinnerSaveIdx, gBattleStruct->contestWinnerIsForArtist);
LoadPalette(gUnknown_083F6140, 0, 1 * 2);
DmaClear32(3, PLTT, 0x400);
BeginFastPaletteFade(2);
diff --git a/src/debug/tomomichi_debug_menu.c b/src/debug/tomomichi_debug_menu.c
index 64da15dc7..c4ce87f33 100644
--- a/src/debug/tomomichi_debug_menu.c
+++ b/src/debug/tomomichi_debug_menu.c
@@ -4477,38 +4477,38 @@ static void PrepareDebugOverlayBeforeShowingContestPainting(u8 a0)
switch (a0)
{
case 0:
- ewram15DDF = 0;
- ewram15DDE = 0;
+ gBattleStruct->contestWinnerIsForArtist = 0;
+ gBattleStruct->contestWinnerSaveIdx = 0;
contestEntry->contestType = sPicTest_ContestType - 1;
StringCopy(contestEntry->trainer_name, sDummyTrainerName);
StringCopy(contestEntry->pokemon_name, sDummyNickname);
break;
case 1:
- ewram15DDF = 0;
- ewram15DDE = 8;
+ gBattleStruct->contestWinnerIsForArtist = 0;
+ gBattleStruct->contestWinnerSaveIdx = 8;
contestEntry->contestType = sPicTest_MuseumArtTitleType - 1;
StringCopy(contestEntry->pokemon_name, sDummyNickname);
break;
case 2:
- ewram15DDF = 1;
- ewram15DDE = 8;
+ gBattleStruct->contestWinnerIsForArtist = 1;
+ gBattleStruct->contestWinnerSaveIdx = 8;
contestEntry->contestType = sPicTest_PreviewType - 1;
break;
case 3:
- ewram15DDF = 0;
- ewram15DDE = 8;
+ gBattleStruct->contestWinnerIsForArtist = 0;
+ gBattleStruct->contestWinnerSaveIdx = 8;
contestEntry->contestType = 0;
StringCopy(contestEntry->pokemon_name, sDummyNickname);
break;
case 4:
- ewram15DDF = 0;
- ewram15DDE = 8;
+ gBattleStruct->contestWinnerIsForArtist = 0;
+ gBattleStruct->contestWinnerSaveIdx = 8;
contestEntry->contestType = 3;
StringCopy(contestEntry->pokemon_name, sDummyNickname);
break;
case 5:
- ewram15DDF = 0;
- ewram15DDE = 8;
+ gBattleStruct->contestWinnerIsForArtist = 0;
+ gBattleStruct->contestWinnerSaveIdx = 8;
contestEntry->contestType = 9;
StringCopy(contestEntry->pokemon_name, sDummyNickname);
break;
diff --git a/src/party_menu.c b/src/party_menu.c
index b5b00c947..8a3ce81d1 100644
--- a/src/party_menu.c
+++ b/src/party_menu.c
@@ -2828,7 +2828,7 @@ void unref_sub_806D964(u8 taskId)
TryCreatePartyMenuMonIcon(taskId, i, &gPlayerParty[i]);
}
-void CreateMonIcon_LinkMultiBattle(u8 taskId, u8 monIndex, u8 menuType, struct UnknownPokemonStruct2 *pokemon)
+void CreateMonIcon_LinkMultiBattle(u8 taskId, u8 monIndex, u8 menuType, struct MultiBattlePokemonTx *pokemon)
{
u8 x = gUnknown_08376678[menuType][monIndex].x;
u8 y = gUnknown_08376678[menuType][monIndex].y;
diff --git a/src/pokemon_2.c b/src/pokemon_2.c
index 17f0aa768..2d0ee9cfb 100644
--- a/src/pokemon_2.c
+++ b/src/pokemon_2.c
@@ -1077,27 +1077,27 @@ void CreateSecretBaseEnemyParty(struct SecretBaseRecord *secretBaseRecord)
for (i = 0; i < 6; i++)
{
- if (eSecretBaseRecord->partySpecies[i])
+ if (eSecretBaseRecord->party.species[i])
{
CreateMon(&gEnemyParty[i],
- eSecretBaseRecord->partySpecies[i],
- eSecretBaseRecord->partyLevels[i],
+ eSecretBaseRecord->party.species[i],
+ eSecretBaseRecord->party.levels[i],
15,
1,
- eSecretBaseRecord->partyPersonality[i],
+ eSecretBaseRecord->party.personality[i],
2,
0);
// these two SetMonData calls require the (u8 *) cast since SetMonData is declared in this function.
- SetMonData(&gEnemyParty[i], MON_DATA_HELD_ITEM, (u8 *)&eSecretBaseRecord->partyHeldItems[i]);
+ SetMonData(&gEnemyParty[i], MON_DATA_HELD_ITEM, (u8 *)&eSecretBaseRecord->party.heldItems[i]);
for (j = 0; j < 6; j++)
- SetMonData(&gEnemyParty[i], MON_DATA_HP_EV + j, &eSecretBaseRecord->partyEVs[i]);
+ SetMonData(&gEnemyParty[i], MON_DATA_HP_EV + j, &eSecretBaseRecord->party.EVs[i]);
for (j = 0; j < 4; j++)
{
- SetMonData(&gEnemyParty[i], MON_DATA_MOVE1 + j, (u8 *)&eSecretBaseRecord->partyMoves[i * 4 + j]);
- SetMonData(&gEnemyParty[i], MON_DATA_PP1 + j, &gBattleMoves[eSecretBaseRecord->partyMoves[i * 4 + j]].pp);
+ SetMonData(&gEnemyParty[i], MON_DATA_MOVE1 + j, (u8 *)&eSecretBaseRecord->party.moves[i * 4 + j]);
+ SetMonData(&gEnemyParty[i], MON_DATA_PP1 + j, &gBattleMoves[eSecretBaseRecord->party.moves[i * 4 + j]].pp);
}
}
}
@@ -1188,6 +1188,7 @@ void CopyPlayerPartyMonToBattleData(u8 battleIndex, u8 partyIndex)
{
s32 i;
s8 nickname[POKEMON_NAME_LENGTH * 2];
+ u16 * hpSwitchout;
gBattleMons[battleIndex].species = GetMonData(&gPlayerParty[partyIndex], MON_DATA_SPECIES, NULL);
gBattleMons[battleIndex].item = GetMonData(&gPlayerParty[partyIndex], MON_DATA_HELD_ITEM, NULL);
@@ -1226,7 +1227,9 @@ void CopyPlayerPartyMonToBattleData(u8 battleIndex, u8 partyIndex)
GetMonData(&gPlayerParty[partyIndex], MON_DATA_NICKNAME, nickname);
StringCopy10(gBattleMons[battleIndex].nickname, nickname);
GetMonData(&gPlayerParty[partyIndex], MON_DATA_OT_NAME, gBattleMons[battleIndex].otName);
- ewram160BC[GetBattlerSide(battleIndex)] = gBattleMons[battleIndex].hp;
+
+ hpSwitchout = &gBattleStruct->HP_OnSwitchout[GetBattlerSide(battleIndex)];
+ *hpSwitchout = gBattleMons[battleIndex].hp;
for (i = 0; i < 8; i++)
gBattleMons[battleIndex].statStages[i] = 6;
diff --git a/src/reshow_battle_screen.c b/src/reshow_battle_screen.c
index ad18b3594..e6a1081cc 100644
--- a/src/reshow_battle_screen.c
+++ b/src/reshow_battle_screen.c
@@ -201,7 +201,7 @@ static bool8 LoadAppropiateBankSprite(u8 bank)
{
if (GetBattlerSide(bank))
{
- if (!ewram17800[bank].substituteSprite)
+ if (!gBattleSpriteInfo[bank].substituteSprite)
BattleLoadOpponentMonSprite(&gEnemyParty[gBattlerPartyIndexes[bank]], bank);
else
BattleLoadSubstituteSprite(bank, 0);
@@ -210,7 +210,7 @@ static bool8 LoadAppropiateBankSprite(u8 bank)
LoadPlayerTrainerBankSprite(gSaveBlock2.playerGender, 0);
else if (gBattleTypeFlags & BATTLE_TYPE_WALLY_TUTORIAL && bank == 0)
LoadPlayerTrainerBankSprite(2, 0);
- else if (!ewram17800[bank].substituteSprite)
+ else if (!gBattleSpriteInfo[bank].substituteSprite)
BattleLoadPlayerMonSprite(&gPlayerParty[gBattlerPartyIndexes[bank]], bank);
else
BattleLoadSubstituteSprite(bank, 0);
@@ -226,7 +226,7 @@ static void sub_807B184(u8 bank)
{
u8 posY;
- if (ewram17800[bank].substituteSprite)
+ if (gBattleSpriteInfo[bank].substituteSprite)
posY = sub_8077F7C(bank);
else
posY = sub_8077F68(bank);
@@ -274,7 +274,7 @@ static void sub_807B184(u8 bank)
gSprites[gBattlerSpriteIds[bank]].data[2] = GetMonData(&gPlayerParty[gBattlerPartyIndexes[bank]], MON_DATA_SPECIES);
StartSpriteAnim(&gSprites[gBattlerSpriteIds[bank]], gBattleMonForms[bank]);
}
- gSprites[gBattlerSpriteIds[bank]].invisible = ewram17800[bank].invisible;
+ gSprites[gBattlerSpriteIds[bank]].invisible = gBattleSpriteInfo[bank].invisible;
}
}
diff --git a/src/script_pokemon_util_80C4BF0.c b/src/script_pokemon_util_80C4BF0.c
index c405d9cb4..4ccc59540 100644
--- a/src/script_pokemon_util_80C4BF0.c
+++ b/src/script_pokemon_util_80C4BF0.c
@@ -222,8 +222,8 @@ void ShowContestWinner(void)
if(gUnknown_0203856C)
{
sub_80AAF30();
- gBattleStruct->unk15DDF = 1;
- gBattleStruct->unk15DDE = sub_80B2C4C(254, 0);
+ gBattleStruct->contestWinnerIsForArtist = 1;
+ gBattleStruct->contestWinnerSaveIdx = sub_80B2C4C(254, 0);
Contest_SaveWinner(3);
gUnknown_0203856C = 0;
}
diff --git a/src/secret_base.c b/src/secret_base.c
index b37da51d1..cf09a7544 100644
--- a/src/secret_base.c
+++ b/src/secret_base.c
@@ -147,13 +147,13 @@ void ClearSecretBase(struct SecretBaseRecord *record)
record->playerName[i] = 0xff;
for (i = 0; i < 4; i++)
record->trainerId[i] = 0x00;
- record->sbr_field_e = 0;
- record->sbr_field_10 = 0;
- record->sbr_field_11 = 0;
- record->sbr_field_1_0 = 0;
+ record->numSecretBasesReceived = 0;
+ record->numTimesEntered = 0;
+ record->unused = 0;
+ record->toRegister = 0;
record->gender = 0;
- record->sbr_field_1_5 = 0;
- record->sbr_field_1_6 = 0;
+ record->battledOwnerToday = 0;
+ record->registryStatus = 0;
for (i = 0; i < 16; i++)
{
record->decorations[i] = 0;
@@ -162,12 +162,12 @@ void ClearSecretBase(struct SecretBaseRecord *record)
for (i = 0; i < 6; i++)
{
for (j = 0; j < 4; j++)
- record->partyMoves[i * 4 + j] = 0;
- record->partyPersonality[i] = 0;
- record->partyEVs[i] = 0;
- record->partySpecies[i] = 0;
- record->partyHeldItems[i] = 0;
- record->partyLevels[i] = 0;
+ record->party.moves[i * 4 + j] = 0;
+ record->party.personality[i] = 0;
+ record->party.EVs[i] = 0;
+ record->party.species[i] = 0;
+ record->party.heldItems[i] = 0;
+ record->party.levels[i] = 0;
}
}
@@ -373,8 +373,8 @@ void sub_80BBA48(u8 taskid)
break;
case 2:
curbaseid = VarGet(VAR_CURRENT_SECRET_BASE);
- if (gSaveBlock1.secretBases[curbaseid].sbr_field_10 < 0xff)
- gSaveBlock1.secretBases[curbaseid].sbr_field_10++;
+ if (gSaveBlock1.secretBases[curbaseid].numTimesEntered < 0xff)
+ gSaveBlock1.secretBases[curbaseid].numTimesEntered++;
sub_80BBA14();
WarpIntoMap();
gFieldCallback = sub_8080990;
@@ -660,7 +660,7 @@ void BufferSecretBaseOwnerName(void)
bool8 sub_80BC268(u8 i)
{
- if (gSaveBlock1.secretBases[i].sbr_field_1_6)
+ if (gSaveBlock1.secretBases[i].registryStatus)
return TRUE;
else
return FALSE;
@@ -686,24 +686,24 @@ void SetPlayerSecretBaseRecordMixingParty(void)
{
u16 j;
for (j = 0; j < 4; j++)
- record->partyMoves[i * 4 + j] = MOVE_NONE;
+ record->party.moves[i * 4 + j] = MOVE_NONE;
- record->partySpecies[i] = SPECIES_NONE;
- record->partyHeldItems[i] = ITEM_NONE;
- record->partyLevels[i] = 0;
- record->partyPersonality[i] = 0;
- record->partyEVs[i] = 0;
+ record->party.species[i] = SPECIES_NONE;
+ record->party.heldItems[i] = ITEM_NONE;
+ record->party.levels[i] = 0;
+ record->party.personality[i] = 0;
+ record->party.EVs[i] = 0;
if (GetMonData(&gPlayerParty[i], MON_DATA_SPECIES) != SPECIES_NONE && !GetMonData(&gPlayerParty[i], MON_DATA_IS_EGG))
{
for (j = 0; j < 4; j++)
- record->partyMoves[secretBasePartyIndex * 4 + j] = GetMonData(&gPlayerParty[i], MON_DATA_MOVE1 + j);
+ record->party.moves[secretBasePartyIndex * 4 + j] = GetMonData(&gPlayerParty[i], MON_DATA_MOVE1 + j);
- record->partySpecies[secretBasePartyIndex] = GetMonData(&(gPlayerParty[i]), MON_DATA_SPECIES);
- record->partyHeldItems[secretBasePartyIndex] = GetMonData(&gPlayerParty[i], MON_DATA_HELD_ITEM);
- record->partyLevels[secretBasePartyIndex] = GetMonData(&gPlayerParty[i], MON_DATA_LEVEL);
- record->partyPersonality[secretBasePartyIndex] = GetMonData(&gPlayerParty[i], MON_DATA_PERSONALITY);
- record->partyEVs[secretBasePartyIndex] = CalculateMonAverageEVs(&gPlayerParty[i]);
+ record->party.species[secretBasePartyIndex] = GetMonData(&(gPlayerParty[i]), MON_DATA_SPECIES);
+ record->party.heldItems[secretBasePartyIndex] = GetMonData(&gPlayerParty[i], MON_DATA_HELD_ITEM);
+ record->party.levels[secretBasePartyIndex] = GetMonData(&gPlayerParty[i], MON_DATA_LEVEL);
+ record->party.personality[secretBasePartyIndex] = GetMonData(&gPlayerParty[i], MON_DATA_PERSONALITY);
+ record->party.EVs[secretBasePartyIndex] = CalculateMonAverageEVs(&gPlayerParty[i]);
secretBasePartyIndex++;
}
}
@@ -711,9 +711,9 @@ void SetPlayerSecretBaseRecordMixingParty(void)
void sub_80BC440(void)
{
- u16 backupValue = gSaveBlock1.secretBases[0].sbr_field_e;
+ u16 backupValue = gSaveBlock1.secretBases[0].numSecretBasesReceived;
ResetSecretBase(0);
- gSaveBlock1.secretBases[0].sbr_field_e = backupValue;
+ gSaveBlock1.secretBases[0].numSecretBasesReceived = backupValue;
sub_80BC0F8();
}
@@ -760,9 +760,9 @@ void MoveSecretBase(void)
sub_80BC474();
IncrementGameStat(GAME_STAT_MOVED_SECRET_BASE);
- backupValue = gSaveBlock1.secretBases[0].sbr_field_e;
+ backupValue = gSaveBlock1.secretBases[0].numSecretBasesReceived;
ResetSecretBase(0);
- gSaveBlock1.secretBases[0].sbr_field_e = backupValue;
+ gSaveBlock1.secretBases[0].numSecretBasesReceived = backupValue;
}
u8 sub_80BC538(void)
@@ -790,7 +790,7 @@ void GetCurSecretBaseRegistrationValidity(void)
void ToggleCurSecretBaseRegistry(void)
{
- gSaveBlock1.secretBases[sub_80BC14C(gCurrentSecretBaseId)].sbr_field_1_6 ^= 1;
+ gSaveBlock1.secretBases[sub_80BC14C(gCurrentSecretBaseId)].registryStatus ^= 1;
FlagSet(FLAG_SECRET_BASE_REGISTRY_ENABLED);
}
@@ -1045,7 +1045,7 @@ void sub_80BCB10(u8 taskId)
Menu_EraseWindowRect(0, 0, 29, 19);
- gSaveBlock1.secretBases[taskData[4]].sbr_field_1_6 = 0;
+ gSaveBlock1.secretBases[taskData[4]].registryStatus = 0;
taskData[0]--;
if (taskData[2] > 0)
@@ -1128,12 +1128,12 @@ void unref_sub_80BCD7C(u8 secretBaseIndex)
for (i = 0; i < 1; i++)
{
- gSaveBlock1.secretBases[secretBaseIndex].partyPersonality[i] = i + 1;
- gSaveBlock1.secretBases[secretBaseIndex].partyMoves[i * 4] = i + 1;
- gSaveBlock1.secretBases[secretBaseIndex].partySpecies[i] = SPECIES_TREECKO;
- gSaveBlock1.secretBases[secretBaseIndex].partyHeldItems[i] = i + 1;
- gSaveBlock1.secretBases[secretBaseIndex].partyLevels[i] = i + 5;
- gSaveBlock1.secretBases[secretBaseIndex].partyEVs[i] = i * 5;
+ gSaveBlock1.secretBases[secretBaseIndex].party.personality[i] = i + 1;
+ gSaveBlock1.secretBases[secretBaseIndex].party.moves[i * 4] = i + 1;
+ gSaveBlock1.secretBases[secretBaseIndex].party.species[i] = SPECIES_TREECKO;
+ gSaveBlock1.secretBases[secretBaseIndex].party.heldItems[i] = i + 1;
+ gSaveBlock1.secretBases[secretBaseIndex].party.levels[i] = i + 5;
+ gSaveBlock1.secretBases[secretBaseIndex].party.EVs[i] = i * 5;
}
}
@@ -1147,7 +1147,7 @@ void sub_80BCE1C(void)
void sub_80BCE4C()
{
- gSaveBlock1.secretBases[VarGet(VAR_CURRENT_SECRET_BASE)].sbr_field_1_5 = gSpecialVar_Result;
+ gSaveBlock1.secretBases[VarGet(VAR_CURRENT_SECRET_BASE)].battledOwnerToday = gSpecialVar_Result;
}
void sub_80BCE90()
@@ -1159,13 +1159,13 @@ void sub_80BCE90()
u8 i;
for (i = 0; i < MAX_SECRET_BASES; i++)
- gSaveBlock1.secretBases[i].sbr_field_1_5 = 0;
+ gSaveBlock1.secretBases[i].battledOwnerToday = 0;
FlagSet(FLAG_DAILY_UNKNOWN_8C2);
}
gSpecialVar_0x8004 = GetSecretBaseOwnerType(curBaseIndex);
- gSpecialVar_Result = gSaveBlock1.secretBases[curBaseIndex].sbr_field_1_5;
+ gSpecialVar_Result = gSaveBlock1.secretBases[curBaseIndex].battledOwnerToday;
}
void sub_80BCF1C(u8 taskId)
@@ -1208,7 +1208,7 @@ void sub_80BCF1C(u8 taskId)
void sub_80BD034(u8 i, struct SecretBaseRecord *secretBase)
{
gSaveBlock1.secretBases[i] = *secretBase;
- gSaveBlock1.secretBases[i].sbr_field_1_6 = 2;
+ gSaveBlock1.secretBases[i].registryStatus = 2;
}
bool8 sub_80BD070(struct SecretBaseRecord *baseA, struct SecretBaseRecord *baseB)
@@ -1277,7 +1277,7 @@ u8 sub_80BD1B0(void)
for (i = 1; i < MAX_SECRET_BASES; i++)
{
- if (gSaveBlock1.secretBases[i].sbr_field_1_6 == 0 && gSaveBlock1.secretBases[i].sbr_field_1_0 == 0)
+ if (gSaveBlock1.secretBases[i].registryStatus == 0 && gSaveBlock1.secretBases[i].toRegister == 0)
return i;
}
@@ -1296,10 +1296,10 @@ u8 sub_80BD1FC(struct SecretBaseRecord *secretBase)
{
if (secretBaseIndex != -1)
{
- if (gSaveBlock1.secretBases[secretBaseIndex].sbr_field_1_0 == 1)
+ if (gSaveBlock1.secretBases[secretBaseIndex].toRegister == 1)
return 0;
- if (gSaveBlock1.secretBases[secretBaseIndex].sbr_field_1_6 != 2
- || secretBase->sbr_field_1_0 == 1)
+ if (gSaveBlock1.secretBases[secretBaseIndex].registryStatus != 2
+ || secretBase->toRegister == 1)
{
sub_80BD034(secretBaseIndex, secretBase);
return secretBaseIndex;
@@ -1336,8 +1336,8 @@ void sub_80BD280(void)
{
for (j = i + 1; j < MAX_SECRET_BASES; j++)
{
- if ((!secretBases[i].sbr_field_1_6 && secretBases[j].sbr_field_1_6 == 1)
- || (secretBases[i].sbr_field_1_6 == 2 && secretBases[j].sbr_field_1_6 != 2))
+ if ((!secretBases[i].registryStatus && secretBases[j].registryStatus == 1)
+ || (secretBases[i].registryStatus == 2 && secretBases[j].registryStatus != 2))
{
temp = secretBases[i];
secretBases[i] = secretBases[j];
@@ -1353,7 +1353,7 @@ void sub_80BD328(struct SecretBaseRecord *secretBases, u8 b)
for (i = 1; i < MAX_SECRET_BASES; i++)
{
- if (secretBases[i].sbr_field_1_6 == b)
+ if (secretBases[i].registryStatus == b)
sub_80BD1FC(&secretBases[i]);
}
}
@@ -1439,13 +1439,13 @@ bool8 sub_80BD494(struct SecretBaseRecord *base, struct SecretBaseRecord *secret
return FALSE;
}
- if (base->sbr_field_e > secretBases[i].sbr_field_e)
+ if (base->numSecretBasesReceived > secretBases[i].numSecretBasesReceived)
{
ClearSecretBase(&secretBases[i]);
return FALSE;
}
- secretBases[i].sbr_field_1_0 = base->sbr_field_1_0;
+ secretBases[i].toRegister = base->toRegister;
ClearSecretBase(base);
return TRUE;
@@ -1464,8 +1464,8 @@ void sub_80BD514(struct SecretBaseRecord *basesA, struct SecretBaseRecord *bases
{
if (basesA[i].secretBaseId)
{
- if (basesA[i].sbr_field_1_6 == 1)
- basesA[i].sbr_field_1_0 = 1;
+ if (basesA[i].registryStatus == 1)
+ basesA[i].toRegister = 1;
if (!sub_80BD494(&basesA[i], basesB, i))
{
@@ -1479,7 +1479,7 @@ void sub_80BD514(struct SecretBaseRecord *basesA, struct SecretBaseRecord *bases
{
if (basesB[i].secretBaseId)
{
- basesB[i].sbr_field_1_5 = 0;
+ basesB[i].battledOwnerToday = 0;
if (!sub_80BD494(&basesB[i], basesC, i))
sub_80BD494(&basesB[i], basesD, i);
@@ -1490,12 +1490,12 @@ void sub_80BD514(struct SecretBaseRecord *basesA, struct SecretBaseRecord *bases
{
if (basesC[i].secretBaseId)
{
- basesC[i].sbr_field_1_5 = 0;
+ basesC[i].battledOwnerToday = 0;
sub_80BD494(&basesC[i], basesD, i);
}
if (basesD[i].secretBaseId)
- basesD[i].sbr_field_1_5 = 0;
+ basesD[i].battledOwnerToday = 0;
}
}
@@ -1557,10 +1557,10 @@ void sub_80BD674(void *playerRecords, u32 size, u8 c)
for (i = 1; i < MAX_SECRET_BASES; i++)
{
- if (gSaveBlock1.secretBases[i].sbr_field_1_0 == 1)
+ if (gSaveBlock1.secretBases[i].toRegister == 1)
{
- gSaveBlock1.secretBases[i].sbr_field_1_6 = 1;
- gSaveBlock1.secretBases[i].sbr_field_1_0 = 0;
+ gSaveBlock1.secretBases[i].registryStatus = 1;
+ gSaveBlock1.secretBases[i].toRegister = 0;
}
}
@@ -1568,11 +1568,11 @@ void sub_80BD674(void *playerRecords, u32 size, u8 c)
for (i = 1; i < MAX_SECRET_BASES; i++)
{
- if (gSaveBlock1.secretBases[i].sbr_field_1_6 == 2)
- gSaveBlock1.secretBases[i].sbr_field_1_6 = 0;
+ if (gSaveBlock1.secretBases[i].registryStatus == 2)
+ gSaveBlock1.secretBases[i].registryStatus = 0;
}
- if (gSaveBlock1.secretBases[0].sbr_field_e != 0xFFFF)
- gSaveBlock1.secretBases[0].sbr_field_e++;
+ if (gSaveBlock1.secretBases[0].numSecretBasesReceived != 0xFFFF)
+ gSaveBlock1.secretBases[0].numSecretBasesReceived++;
}
}
diff --git a/sym_ewram.txt b/sym_ewram.txt
index 80e699ab2..790d684b1 100644
--- a/sym_ewram.txt
+++ b/sym_ewram.txt
@@ -154,7 +154,7 @@ gActionForBanks = .; /* 2024C18 */
gSelectionBattleScripts = .; /* 2024C1C */
. += 0x10;
-gUnknown_02024C2C = .; /* 2024C2C */
+gLastPrintedMoves = .; /* 2024C2C */
. += 0x8;
gLastMoves = .; /* 2024C34 */
@@ -166,7 +166,7 @@ gLastLandedMoves = .; /* 2024C3C */
gLastHitByType = .; /* 2024C44 */
. += 0x8;
-gUnknown_02024C4C = .; /* 2024C4C */
+gLastResultingMoves = .; /* 2024C4C */
. += 0x8;
gLockedMoves = .; /* 2024C54 */
@@ -184,7 +184,7 @@ gMoveResultFlags = .; /* 2024C68 */
gHitMarker = .; /* 2024C6C */
. += 0x4;
-gUnknown_02024C70 = .; /* 2024C70 */
+sUnusedBattlersArray = .; /* 2024C70 */
. += 0x4;
gTakenDmgByBattler = .; /* 2024C74 */
@@ -238,7 +238,7 @@ gWishFutureKnock = .; /* 2024DBC */
gUnknown_02024DDC = .; /* 2024DDC */
. += 0xC;
-gUnknown_02024DE8 = .; /* 2024DE8 */
+gIntroSlideFlags = .; /* 2024DE8 */
. += 0x2;
gSentPokesToOpponent = .; /* 2024DEA */