summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/battle.h49
-rw-r--r--include/ewram.h15
-rw-r--r--src/battle_ai_script_commands.c4
-rw-r--r--src/battle_controller_wally.c56
-rw-r--r--src/battle_main.c14
-rw-r--r--src/battle_party_menu.c6
-rw-r--r--src/battle_script_commands.c4
-rw-r--r--src/battle_tower.c6
-rw-r--r--src/battle_util.c2
9 files changed, 65 insertions, 91 deletions
diff --git a/include/battle.h b/include/battle.h
index 591a56a33..a320c2de7 100644
--- a/include/battle.h
+++ b/include/battle.h
@@ -304,12 +304,12 @@ struct BattleStruct /* 0x2000000 */
/*0x16001*/ u8 turnEffectsBattlerId;
/*0x16002*/ u8 animTurn;
/*0x16003*/ u8 scriptingActive;
- /*0x16004*/ u8 wrappedMove[8];
+ /*0x16004*/ u8 wrappedMove[MAX_BATTLERS_COUNT * 2];
/*0x1600C*/ u8 cmd49StateTracker;
/*0x1600D*/ u8 unk1600D;
/*0x1600E*/ u8 turnCountersTracker;
/*0x1600F*/ u8 getexpStateTracker;
- /*0x16010*/ u8 moveTarget[4];
+ /*0x16010*/ u8 moveTarget[MAX_BATTLERS_COUNT];
/*0x16014*/ u8 unk16014;
/*0x16015*/ u8 unk16015;
/*0x16016*/ u8 unk16016;
@@ -319,11 +319,11 @@ struct BattleStruct /* 0x2000000 */
/*0x1601A*/ u8 atk5A_StateTracker; //also atk5B, statetracker
/*0x1601B*/ u8 wildVictorySong;
/*0x1601C*/ u8 dynamicMoveType;
- /*0x1601D*/ u8 unk1601D;
+ /*0x1601D*/ u8 focusPunchBattler;
/*0x1601E*/ u8 statChanger;
/*0x1601F*/ u8 dmgMultiplier;
- /*0x16020*/ u8 wrappedBy[4];
- /*0x16024*/ u16 assistMove[24];
+ /*0x16020*/ u8 wrappedBy[MAX_BATTLERS_COUNT];
+ /*0x16024*/ u16 assistMove[PARTY_SIZE * MAX_MON_MOVES];
/*0x16054*/ u8 unk16054;
/*0x16055*/ u8 unk16055;
/*0x16056*/ u8 moneyMultiplier;
@@ -335,12 +335,12 @@ struct BattleStruct /* 0x2000000 */
/*0x1605C*/ u16 exp;
/*0x1605E*/ u8 unk1605E;
/*0x1605F*/ u8 sentInPokes;
- /*0x16060*/ u8 unk16060[4];
- /*0x16064*/ u8 unk16064[4];
+ /*0x16060*/ u8 unk16060[MAX_BATTLERS_COUNT];
+ /*0x16064*/ u8 unk16064[MAX_BATTLERS_COUNT];
/*0x16068*/ u8 monToSwitchIntoId[MAX_BATTLERS_COUNT];
- /*0x1606C*/ u8 unk1606C[4][3];
+ /*0x1606C*/ u8 unk1606C[MAX_BATTLERS_COUNT][3];
/*0x16078*/ u8 runTries;
- /*0x16079*/ u8 caughtNick[11];
+ /*0x16079*/ u8 caughtNick[POKEMON_NAME_LENGTH + 1];
/*0x16084*/ u8 battleStyle;
/*0x16085*/ u8 unk16085;
/*0x16086*/ u8 safariGoNearCounter;
@@ -349,12 +349,9 @@ struct BattleStruct /* 0x2000000 */
/*0x16089*/ u8 safariCatchFactor;
/*0x1608A*/ u8 unk1608A;
/*0x1608B*/ u8 unk1608B;
- /*0x1608C*/ u8 ChosenMoveID[4];
+ /*0x1608C*/ u8 ChosenMoveID[MAX_BATTLERS_COUNT];
/*0x16090*/ s32 bideDmg;
- /*0x16094*/ u8 unk16094;
- /*0x16095*/ u8 unk16095;
- /*0x16096*/ u8 unk16096;
- /*0x16097*/ u8 unk16097;
+ /*0x16094*/ u8 unk16094[4];
/*0x16098*/ u8 unk16098;
/*0x16099*/ u8 unk16099;
/*0x1609A*/ u8 unk1609a;
@@ -373,9 +370,9 @@ struct BattleStruct /* 0x2000000 */
/*0x160A7*/ u8 unk160A7;
/*0x160A8*/ u8 unk160A8;
/*0x160A9*/ u8 unk160A9;
- /*0x160AA*/ u8 unk160Aa;
- /*0x160AB*/ u8 unk160Ab;
- /*0x160AC*/ u16 lastTakenMove[4 * 2];
+ /*0x160AA*/ u8 unk160AA;
+ /*0x160AB*/ u8 unk160AB;
+ /*0x160AC*/ u16 lastTakenMove[2 * 2 * 2];
/*0x160BC*/ u16 HP_OnSwitchout[2];
/*0x160C0*/ u8 unk160C0;
/*0x160C1*/ u8 hpScale;
@@ -384,27 +381,19 @@ struct BattleStruct /* 0x2000000 */
/*0x160C8*/ u8 AI_monToSwitchIntoId[2];
/*0x160CA*/ u8 synchroniseEffect;
/*0x160CB*/ u8 multiplayerId;
- /*0x160CC*/ u16 usedHeldItems[4];
- /*0x160D4*/ u8 unk160D4;
- /*0x160D5*/ u8 unk160D5;
- /*0x160D6*/ u8 unk160D6;
- /*0x160D7*/ u8 unk160D7;
+ /*0x160CC*/ u16 usedHeldItems[MAX_BATTLERS_COUNT];
+ /*0x160D4*/ u8 unk160D4[MAX_BATTLERS_COUNT];
/*0x160D8*/ u8 unk160D8[2];
/*0x160DA*/ u8 unk160DA[2];
/*0x160DC*/ u8 unk160DC;
/*0x160DD*/ u8 intimidateBank;
/*0x160DE*/ u8 unk160DE;
/*0x160DF*/ u8 unk160DF;
- /*0x160E0*/ u8 unk160E0;
- /*0x160E1*/ u8 unk160E1;
- /*0x160E2*/ u8 unk160E2;
- /*0x160E3*/ u8 unk160E3;
- /*0x160E4*/ u8 unk160E4;
- /*0x160E5*/ u8 unk160E5;
+ /*0x160E0*/ u8 unk160E0[6];
/*0x160E6*/ u8 unk160E6;
/*0x160E7*/ u8 atkCancellerTracker;
- /*0x160E8*/ u16 choicedMove[4];
- /*0x160F0*/ u16 changedItems[4];
+ /*0x160E8*/ u16 choicedMove[MAX_BATTLERS_COUNT];
+ /*0x160F0*/ u16 changedItems[MAX_BATTLERS_COUNT];
/*0x160F8*/ u8 unk160F8;
/*0x160F9*/ u8 unk160F9;
/*0x160FA*/ u8 levelUpHP;
diff --git a/include/ewram.h b/include/ewram.h
index 85085e075..947fa274e 100644
--- a/include/ewram.h
+++ b/include/ewram.h
@@ -89,31 +89,20 @@ extern u8 gSharedMem[];
// Battle Struct
// For matching purposes, the struct is placed at 0x02000000 and
// there's a ton of filler.
-#define ewram16003 (gSharedMem[0x16003])
#define ewram16004arr(i, battler) (gSharedMem[0x16004 + i + battler * 2])
#define ewram16010arr(battler) (gSharedMem[0x16010 + battler])
-#define eDynamicMoveType (gSharedMem[0x1601C])
-#define eFocusPunchBattler (gSharedMem[0x1601D])
-#define eDmgMultiplier (gSharedMem[0x1601F])
-#define ewram16020 ((u8 *)(gSharedMem + 0x16020))
#define ewram16020arr(i) (gSharedMem[0x16020 + i])
#define ewram16058 (gSharedMem[0x16058])
#define ewram16060(battler) (gSharedMem[0x16060 + battler])
#define BATTLE_PARTY_ID(battler) (gSharedMem[0x16064 + battler])
#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 ewram16088 (gSharedMem[0x16088])
#define ewram16089 (gSharedMem[0x16089])
#define ewram1608Carr(battler) (gSharedMem[0x1608C + battler])
#define ewram16094arr(battler) (gSharedMem[0x16094 + battler])
-#define EWRAM_1609D (gSharedMem[0x1609D])
-#define ewram160A8 (gSharedMem[0x160A8])
-#define ewram160A9 (gSharedMem[0x160A9])
-#define ewram160AA (gSharedMem[0x160AA])
-#define ewram160AB (gSharedMem[0x160AB])
#define eLastTakenMove_flat(i) (gSharedMem[0x160AC + i])
#define eLastTakenMove_2d(i, battler) (gSharedMem[0x160AC + i + battler * 2])
#define eHpOnSwitchout(battler) (gSharedMem[0x160BC + battler * 2])
@@ -124,15 +113,11 @@ extern u8 gSharedMem[];
#define ewram160D4(battler) (gSharedMem[0x160D4 + (battler / 2) * 2])
#define ewram160D8(battler) (gSharedMem[0x160D8 + (battler / 2)])
#define ewram160DA(battler) (gSharedMem[0x160DA + (battler >> 1)])
-#define ewram160DD (gSharedMem[0x160DD])
#define ewram160E0(i) (gSharedMem[0x160E0 + i])
#define CHOICED_MOVE(battler) (((u16*)(&gSharedMem[0x160E8 + battler * 2])))
#define ewram160E8arr(i) (gSharedMem[0x160E8 + i])
#define ewram160E8arr2(i, battler) (gSharedMem[0x160E8 + i + battler * 2])
-#define ewram160F0 ((u8 *)(gSharedMem + 0x160F0))
#define ewram160F0arr(i) (gSharedMem[0x160F0 + i])
-#define ewram160FB (gSharedMem[0x160FB])
-#define ewram16100 ((u8 *)(gSharedMem + 0x16100))
#define ewram16100arr(i) (gSharedMem[0x16100 + i])
#define ewram16100arr2(i, battler) (gSharedMem[0x16100 + i + battler * 4])
#define ewram16108arr(i) (gSharedMem[0x16108 + i])
diff --git a/src/battle_ai_script_commands.c b/src/battle_ai_script_commands.c
index 956cc2f6e..9f0cc406d 100644
--- a/src/battle_ai_script_commands.c
+++ b/src/battle_ai_script_commands.c
@@ -957,8 +957,8 @@ static void BattleAICmd_is_most_powerful_move(void)
&& sDiscouragedPowerfulMoveEffects[i] == 0xFFFF)
{
gDynamicBasePower = 0;
- eDynamicMoveType = 0;
- eDmgMultiplier = 1;
+ gBattleStruct->dynamicMoveType = 0;
+ gBattleStruct->dmgMultiplier = 1;
gMoveResultFlags = 0;
gCritMultiplier = 1;
diff --git a/src/battle_controller_wally.c b/src/battle_controller_wally.c
index be72d673e..9dbb8bade 100644
--- a/src/battle_controller_wally.c
+++ b/src/battle_controller_wally.c
@@ -232,10 +232,10 @@ void unref_sub_8137220(void)
void SetBankFuncToWallyBufferRunCommand(void)
{
gBattlerControllerFuncs[gActiveBattler] = WallyBufferRunCommand;
- ewram160A8 = 0;
- ewram160A9 = 0;
- ewram160AA = 0;
- ewram160AB = 0;
+ gBattleStruct->unk160A8 = 0;
+ gBattleStruct->unk160A9 = 0;
+ gBattleStruct->unk160AA = 0;
+ gBattleStruct->unk160AB = 0;
}
void WallyBufferRunCommand(void)
@@ -253,59 +253,59 @@ void sub_81372BC(void)
{
u8 r4;
- switch (ewram160A8)
+ switch (gBattleStruct->unk160A8)
{
case 0:
- ewram160AA = 64;
- ewram160A8++;
+ gBattleStruct->unk160AA = 64;
+ gBattleStruct->unk160A8++;
// fall through
case 1:
- r4 = --ewram160AA;
+ r4 = --gBattleStruct->unk160AA;
if (r4 == 0)
{
PlaySE(SE_SELECT);
BtlController_EmitTwoReturnValues(1, 0, 0);
WallyBufferExecCompleted();
- ewram160A8++;
- ewram160A9 = r4;
- ewram160AA = 64;
+ gBattleStruct->unk160A8++;
+ gBattleStruct->unk160A9 = r4;
+ gBattleStruct->unk160AA = 64;
}
break;
case 2:
- r4 = --ewram160AA;
+ r4 = --gBattleStruct->unk160AA;
if (r4 == 0)
{
PlaySE(SE_SELECT);
BtlController_EmitTwoReturnValues(1, 0, 0);
WallyBufferExecCompleted();
- ewram160A8++;
- ewram160A9 = r4;
- ewram160AA = 64;
+ gBattleStruct->unk160A8++;
+ gBattleStruct->unk160A9 = r4;
+ gBattleStruct->unk160AA = 64;
}
break;
case 3:
- r4 = --ewram160AA;
+ r4 = --gBattleStruct->unk160AA;
if (r4 == 0)
{
BtlController_EmitTwoReturnValues(1, 9, 0);
WallyBufferExecCompleted();
- ewram160A8++;
- ewram160A9 = r4;
- ewram160AA = 64;
+ gBattleStruct->unk160A8++;
+ gBattleStruct->unk160A9 = r4;
+ gBattleStruct->unk160AA = 64;
}
break;
case 4:
- if (--ewram160AA == 0)
+ if (--gBattleStruct->unk160AA == 0)
{
PlaySE(SE_SELECT);
nullsub_8(0);
sub_802E3E4(1, 0);
- ewram160AA = 64;
- ewram160A8++;
+ gBattleStruct->unk160AA = 64;
+ gBattleStruct->unk160A8++;
}
break;
case 5:
- if (--ewram160AA == 0)
+ if (--gBattleStruct->unk160AA == 0)
{
PlaySE(SE_SELECT);
DestroyMenuCursor();
@@ -1284,16 +1284,16 @@ void WallyHandlecmd19(void)
void WallyHandlecmd20(void)
{
- switch (ewram160A9)
+ switch (gBattleStruct->unk160A9)
{
case 0:
sub_80304A8();
- ewram160A9++;
- ewram160AB = 80;
+ gBattleStruct->unk160A9++;
+ gBattleStruct->unk160AB = 80;
// fall through
case 1:
- ewram160AB--;
- if (ewram160AB == 0)
+ gBattleStruct->unk160AB--;
+ if (gBattleStruct->unk160AB == 0)
{
DestroyMenuCursor();
PlaySE(SE_SELECT);
diff --git a/src/battle_main.c b/src/battle_main.c
index bc53dad78..e8978b01c 100644
--- a/src/battle_main.c
+++ b/src/battle_main.c
@@ -4778,7 +4778,7 @@ void SetActionsAndBanksTurnOrder(void)
}
}
gBattleMainFunc = CheckFocusPunch_ClearVarsBeforeTurnStarts;
- eFocusPunchBattler = 0;
+ gBattleStruct->focusPunchBattler = 0;
return;
}
else
@@ -4821,7 +4821,7 @@ void SetActionsAndBanksTurnOrder(void)
}
gBattleMainFunc = CheckFocusPunch_ClearVarsBeforeTurnStarts;
- eFocusPunchBattler = 0;
+ gBattleStruct->focusPunchBattler = 0;
}
static void TurnValuesCleanUp(bool8 var0)
@@ -4877,10 +4877,10 @@ void CheckFocusPunch_ClearVarsBeforeTurnStarts(void)
{
if (!(gHitMarker & HITMARKER_RUN))
{
- while (eFocusPunchBattler < gBattlersCount)
+ while (gBattleStruct->focusPunchBattler < gBattlersCount)
{
- gActiveBattler = gBattlerAttacker = eFocusPunchBattler;
- eFocusPunchBattler++;
+ gActiveBattler = gBattlerAttacker = gBattleStruct->focusPunchBattler;
+ gBattleStruct->focusPunchBattler++;
if (gChosenMovesByBanks[gActiveBattler] == MOVE_FOCUS_PUNCH
&& !(gBattleMons[gActiveBattler].status1 & STATUS1_SLEEP)
&& !(gDisableStructs[gBattlerAttacker].truantCounter)
@@ -5187,7 +5187,7 @@ void HandleAction_UseMove(void)
}
gCritMultiplier = 1;
- eDmgMultiplier = 1;
+ gBattleStruct->dmgMultiplier = 1;
gBattleStruct->atkCancellerTracker = 0;
gMoveResultFlags = 0;
gMultiHitCounter = 0;
@@ -5687,7 +5687,7 @@ void HandleAction_ActionFinished(void)
gBattleStruct->animTargetsHit = 0;
gLastLandedMoves[gBattlerAttacker] = 0;
gLastHitByType[gBattlerAttacker] = 0;
- eDynamicMoveType = 0;
+ gBattleStruct->dynamicMoveType = 0;
gDynamicBasePower = 0;
gBattleStruct->cmd49StateTracker = 0;
gBattleCommunication[3] = 0;
diff --git a/src/battle_party_menu.c b/src/battle_party_menu.c
index d8537670d..044914037 100644
--- a/src/battle_party_menu.c
+++ b/src/battle_party_menu.c
@@ -94,7 +94,7 @@ void sub_8094958(void)
void sub_8094978(u8 arg1, u8 arg2)
{
- sub_8094A74((UNK_201606C_ARRAY) + arg1 * 3, arg2, arg1);
+ sub_8094A74(gBattleStruct->unk1606C[arg1], arg2, arg1);
}
static void sub_8094998(u8 arg[3], u8 player_number)
@@ -204,7 +204,7 @@ void sub_8094B6C(u8 a, u8 b, u8 c)
if (IsLinkDoubleBattle())
{
- u8 *arr = &ewram1606Carr(0, a);
+ u8 *arr = gBattleStruct->unk1606C[a];
for (i = 0, j = 0; i < 3; i++)
{
@@ -686,7 +686,7 @@ static void Task_BattlePartyMenuShift(u8 taskId)
gTasks[taskId].func = Task_80954C0;
return;
}
- if (sub_8094C20(partySelection) == EWRAM_1609D)
+ if (sub_8094C20(partySelection) == gBattleStruct->unk1609D)
{
PartyMenuEraseMsgBoxAndFrame();
GetMonNickname(&gPlayerParty[partySelection], gStringVar1);
diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c
index a98a0eae0..270151d17 100644
--- a/src/battle_script_commands.c
+++ b/src/battle_script_commands.c
@@ -12806,7 +12806,7 @@ static void atkD2_tryswapitems(void)
else {
u16 oldItemAtk, *newItemAtk;
- newItemAtk = (u16 *)(ewram160F0 + 2 * gBattlerAttacker);
+ newItemAtk = (u16 *)(gBattleStruct->changedItems + gBattlerAttacker);
oldItemAtk = gBattleMons[gBattlerAttacker].item;
*newItemAtk = gBattleMons[gBattlerTarget].item;
@@ -13094,7 +13094,7 @@ static void atkE1_trygetintimidatetarget(void)
{
u8 side;
- gBattleStruct->scriptingActive = ewram160DD;
+ gBattleStruct->scriptingActive = gBattleStruct->intimidateBank;
side = GetBattlerSide(gBattleStruct->scriptingActive);
gBattleTextBuff1[0] = 0xFD;
gBattleTextBuff1[1] = 9;
diff --git a/src/battle_tower.c b/src/battle_tower.c
index 6b8af4d86..38d859869 100644
--- a/src/battle_tower.c
+++ b/src/battle_tower.c
@@ -1351,7 +1351,7 @@ void SetBattleTowerProperty(void)
switch (gSpecialVar_0x8004)
{
case 0:
- ewram160FB = gSaveBlock2.battleTower.var_4AE[battleTowerLevelType];
+ gBattleStruct->unk160FB = gSaveBlock2.battleTower.var_4AE[battleTowerLevelType];
gSaveBlock2.battleTower.var_4AE[battleTowerLevelType] = gSpecialVar_0x8005;
break;
case 1:
@@ -1400,7 +1400,7 @@ void SetBattleTowerProperty(void)
ResetBattleTowerStreak(battleTowerLevelType);
break;
case 12:
- gSaveBlock2.battleTower.var_4AE[battleTowerLevelType] = ewram160FB;
+ gSaveBlock2.battleTower.var_4AE[battleTowerLevelType] = gBattleStruct->unk160FB;
break;
case 13:
gSaveBlock2.battleTower.currentWinStreaks[battleTowerLevelType] = GetCurrentBattleTowerWinStreak(battleTowerLevelType);
@@ -1449,7 +1449,7 @@ void BattleTowerUtil(void)
ResetBattleTowerStreak(battleTowerLevelType);
break;
case 12:
- gSaveBlock2.battleTower.var_4AE[battleTowerLevelType] = ewram160FB;
+ gSaveBlock2.battleTower.var_4AE[battleTowerLevelType] = gBattleStruct->unk160FB;
break;
case 13:
gSaveBlock2.battleTower.currentWinStreaks[battleTowerLevelType] = GetCurrentBattleTowerWinStreak(battleTowerLevelType);
diff --git a/src/battle_util.c b/src/battle_util.c
index 4f8a0b036..406aefbdb 100644
--- a/src/battle_util.c
+++ b/src/battle_util.c
@@ -227,7 +227,7 @@ u8 GetBattlerForBattleScript(u8 caseId)
ret = 0;
break;
case BS_GET_SCRIPTING_BANK:
- ret = ewram16003;
+ ret = gBattleStruct->scriptingActive;
break;
case BS_GET_gBank1:
ret = gBank1;