summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2021-06-17 14:32:35 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2021-06-17 14:32:35 -0400
commit42650e1507008d0ad3a710e0b8ec27d8ad97bd26 (patch)
tree0f912926525a2d4da4c60eeff6a29b21b94ccb09
parentacb87f3f2feb5e87590148fd31c48abb8cfa42d2 (diff)
document ewram macros in BattleStartClearSetData
-rw-r--r--include/battle.h78
-rw-r--r--include/ewram.h13
-rw-r--r--include/global.h29
-rw-r--r--src/battle/anim/battle_intro.c10
-rw-r--r--src/battle_controller_link_opponent.c4
-rw-r--r--src/battle_controller_link_partner.c4
-rw-r--r--src/battle_controller_opponent.c4
-rw-r--r--src/battle_controller_player.c4
-rw-r--r--src/battle_controller_safari.c4
-rw-r--r--src/battle_controller_wally.c4
-rw-r--r--src/battle_gfx_sfx_util.c4
-rw-r--r--src/battle_main.c104
-rw-r--r--src/battle_message.c2
-rw-r--r--src/battle_script_commands.c28
-rw-r--r--src/battle_util.c6
-rw-r--r--src/calculate_base_damage.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/pokemon_2.c16
-rw-r--r--src/script_pokemon_util_80C4BF0.c4
-rw-r--r--src/secret_base.c128
-rw-r--r--sym_ewram.txt8
23 files changed, 231 insertions, 263 deletions
diff --git a/include/battle.h b/include/battle.h
index 5956595cc..4820227dc 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)
@@ -297,8 +298,8 @@ struct BattleStruct /* 0x2000000 */
struct MultiBattlePokemonTx multiBattleMons[3];
} multiBuffer;
u8 filler60[0x15D7E];
- /*0x15DDE*/ u8 unk15DDE;
- /*0x15DDF*/ u8 unk15DDF;
+ /*0x15DDE*/ u8 contestWinnerSaveIdx;
+ /*0x15DDF*/ u8 contestWinnerIsForArtist;
/*0x15DE0*/ u8 filler15DE0[0x220];
/*0x16000*/ u8 turnEffectsTracker;
/*0x16001*/ u8 turnEffectsBattlerId;
@@ -339,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];
@@ -375,31 +376,13 @@ 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;
+ /*0x160C4*/ MainCallback unk160C4;
/*0x160C8*/ u8 AI_monToSwitchIntoId[2];
/*0x160CA*/ u8 synchroniseEffect;
/*0x160CB*/ u8 multiplayerId;
@@ -422,22 +405,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;
@@ -446,26 +415,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;
+ /*0x16113*/ u8 givenExpMons;
/*0x16114*/ u8 unk16114;
/*0x16115*/ u8 unk16115;
/*0x16116*/ u8 unk16116;
@@ -483,7 +437,7 @@ struct BattleStruct /* 0x2000000 */
/* 0x16A00 */ struct BattleHistory unk_2016A00_2;
};
-struct Struct2017100
+struct ResourceFlags
{
u32 arr[4];
};
@@ -697,7 +651,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..3feed99ae 100644
--- a/include/ewram.h
+++ b/include/ewram.h
@@ -87,8 +87,6 @@ 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])
@@ -192,13 +190,16 @@ extern u8 gSharedMem[];
#define ewram16800 (&gSharedMem[0x16800])
#define ewram17000 (&gSharedMem[0x17000])
#define eMoveTutorMenu (struct MoveTutorMenu *)(gSharedMem + 0x17000)
+
+// gBattleResources
#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 eCableCar1 ((struct CableCarEwramStruct1 *)(gSharedMem + 0x17000))
+#define ewram17130 (gSharedMem[0x17130])
#define ewram17160 (gSharedMem[0x17160])
#define ewram17800 ((struct Struct2017800 *) (gSharedMem + 0x17800))
#define ewram17800_2 (&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/src/battle/anim/battle_intro.c b/src/battle/anim/battle_intro.c
index c18f5790c..568f5071d 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:
@@ -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_controller_link_opponent.c b/src/battle_controller_link_opponent.c
index d781599e9..bd1ab3e23 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;
@@ -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..bbe366ac0 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[];
@@ -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..39a05c2af 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;
@@ -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..24968cb9d 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;
@@ -2892,7 +2892,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..7d6070aa1 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;
@@ -1464,7 +1464,7 @@ void WallyHandleFaintingCry(void)
void WallyHandleIntroSlide(void)
{
StartBattleIntroAnim(gBattleBufferA[gActiveBattler][1]);
- gUnknown_02024DE8 |= 1;
+ gIntroSlideFlags |= 1;
WallyBufferExecCompleted();
}
diff --git a/src/battle_gfx_sfx_util.c b/src/battle_gfx_sfx_util.c
index 104a0eecf..a7e65137d 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)
diff --git a/src/battle_main.c b/src/battle_main.c
index 1a2b39ab0..1d4736d60 100644
--- a/src/battle_main.c
+++ b/src/battle_main.c
@@ -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[];
@@ -3065,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)
@@ -3218,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)
@@ -3240,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];
@@ -3330,7 +3330,7 @@ void nullsub_41(void)
void sub_8010800(void)
{
- sub_8010874();
+ BattleStartClearSetData();
gBattleCommunication[1] = 0;
gBattleMainFunc = bc_8012FAC;
}
@@ -3399,7 +3399,7 @@ void BattleMainCB1(void)
}
}
-void sub_8010874(void)
+void BattleStartClearSetData(void)
{
s32 i;
u32 j;
@@ -3413,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
+ ewram160ACarr(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;
@@ -3500,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
}
@@ -3573,8 +3581,8 @@ 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;
@@ -3586,7 +3594,7 @@ void SwitchInClearSetData(void)
ewram160E8arr2(0, gActiveBattler) = 0;
ewram160E8arr2(1, gActiveBattler) = 0;
- eFlashFireArr.arr[gActiveBattler] = 0;
+ eBattleFlagsArr.arr[gActiveBattler] = 0;
gCurrentMove = 0;
}
@@ -3637,8 +3645,8 @@ 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;
@@ -3650,7 +3658,7 @@ void UndoEffectsAfterFainting(void)
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;
@@ -4897,7 +4905,7 @@ void CheckFocusPunch_ClearVarsBeforeTurnStarts(void)
gBattleCommunication[3] = 0;
gBattleCommunication[4] = 0;
eMultihitMoveEffect = 0;
- ewram17130 = 0;
+ B_BATTLESCRIPTS_STACK->size = 0;
}
static void RunTurnActionsFunctions(void)
@@ -5684,5 +5692,5 @@ void HandleAction_ActionFinished(void)
gBattleCommunication[3] = 0;
gBattleCommunication[4] = 0;
eMultihitMoveEffect = 0;
- ewram17130 = 0;
+ B_BATTLESCRIPTS_STACK->size = 0;
}
diff --git a/src/battle_message.c b/src/battle_message.c
index d28848f18..b8872163b 100644
--- a/src/battle_message.c
+++ b/src/battle_message.c
@@ -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)
diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c
index 0cdcfe8f9..2ac0c114f 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[];
@@ -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)))
@@ -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;
@@ -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/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/pokemon_2.c b/src/pokemon_2.c
index 17f0aa768..f19b0f0be 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);
}
}
}
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 */