diff options
-rw-r--r-- | include/battle.h | 49 | ||||
-rw-r--r-- | include/ewram.h | 15 | ||||
-rw-r--r-- | src/battle_ai_script_commands.c | 4 | ||||
-rw-r--r-- | src/battle_controller_wally.c | 56 | ||||
-rw-r--r-- | src/battle_main.c | 14 | ||||
-rw-r--r-- | src/battle_party_menu.c | 6 | ||||
-rw-r--r-- | src/battle_script_commands.c | 4 | ||||
-rw-r--r-- | src/battle_tower.c | 6 | ||||
-rw-r--r-- | src/battle_util.c | 2 |
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; |