summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorcamthesaxman <camthesaxman@users.noreply.github.com>2019-07-31 18:29:13 -0500
committercamthesaxman <camthesaxman@users.noreply.github.com>2019-07-31 18:29:13 -0500
commitbbd177fa20a3f53a4815061c524a14e959de6783 (patch)
treeac166c12c8555af4672049cb5702a0bbf7ea3aa1 /src
parentb74a0c3122113b5ebef469739745e2b8fd420c50 (diff)
fix more emerald differences
Diffstat (limited to 'src')
-rw-r--r--src/battle_ai_script_commands.c8
-rw-r--r--src/battle_main.c10
-rw-r--r--src/battle_script_commands.c36
-rw-r--r--src/battle_setup.c14
-rw-r--r--src/battle_tower.c2
-rw-r--r--src/battle_util.c319
-rw-r--r--src/berry_blender.c6
-rw-r--r--src/bike.c19
-rw-r--r--src/cable_club.c2
-rw-r--r--src/clock.c68
-rw-r--r--src/contest_link_80C2020.c2
-rw-r--r--src/debug/tomomichi_debug_menu.c2
-rw-r--r--src/field_specials.c2
-rw-r--r--src/overworld.c2
-rw-r--r--src/safari_zone.c2
-rw-r--r--src/scrcmd.c2
-rw-r--r--src/script_pokemon_util_80C4BF0.c6
-rw-r--r--src/tv.c2
18 files changed, 275 insertions, 229 deletions
diff --git a/src/battle_ai_script_commands.c b/src/battle_ai_script_commands.c
index ca72e254c..405776db6 100644
--- a/src/battle_ai_script_commands.c
+++ b/src/battle_ai_script_commands.c
@@ -26,7 +26,7 @@ extern u8 gBattlerTarget;
extern u8 gAbsentBattlerFlags;
extern u8 gMoveResultFlags;
extern u16 gDynamicBasePower;
-extern u16 gLastUsedMove[MAX_BATTLERS_COUNT];
+extern u16 gLastMoves[MAX_BATTLERS_COUNT];
extern u32 gStatuses3[MAX_BATTLERS_COUNT];
extern u16 gSideStatuses[2];
extern struct BattlePokemon gBattleMons[MAX_BATTLERS_COUNT];
@@ -448,7 +448,7 @@ void sub_810745C(void)
{
if (AI_BATTLE_HISTORY->usedMoves[gBattlerTarget >> 1][i] == 0)
{
- AI_BATTLE_HISTORY->usedMoves[gBattlerTarget >> 1][i] = gLastUsedMove[gBattlerTarget];
+ AI_BATTLE_HISTORY->usedMoves[gBattlerTarget >> 1][i] = gLastMoves[gBattlerTarget];
return;
}
}
@@ -1256,9 +1256,9 @@ _081083D0: .4byte gAIScriptPtr\n\
static void BattleAICmd_get_move(void)
{
if (gAIScriptPtr[1] == USER)
- AI_THINKING_STRUCT->funcResult = gLastUsedMove[gBattlerAttacker];
+ AI_THINKING_STRUCT->funcResult = gLastMoves[gBattlerAttacker];
else
- AI_THINKING_STRUCT->funcResult = gLastUsedMove[gBattlerTarget];
+ AI_THINKING_STRUCT->funcResult = gLastMoves[gBattlerTarget];
gAIScriptPtr += 2;
}
diff --git a/src/battle_main.c b/src/battle_main.c
index 46519307a..85a9a3fea 100644
--- a/src/battle_main.c
+++ b/src/battle_main.c
@@ -92,7 +92,7 @@ extern u8 gAbsentBattlerFlags;
extern u8 gMultiHitCounter;
extern u8 gActionForBanks[];
extern u16 gUnknown_02024C2C[];
-extern u16 gLastUsedMove[];
+extern u16 gLastMoves[];
extern u16 gLastLandedMoves[];
extern u16 gLastHitByType[];
extern u16 gUnknown_02024C4C[];
@@ -3329,7 +3329,7 @@ void sub_8010874(void)
MEMSET_ALT(&gDisableStructs[i], 0, 0x1C, j, r4);
gDisableStructs[i].isFirstTurn= 2;
gUnknown_02024C70[i] = 0;
- gLastUsedMove[i] = 0;
+ gLastMoves[i] = 0;
gLastLandedMoves[i] = 0;
gLastHitByType[i] = 0;
gUnknown_02024C4C[i] = 0;
@@ -3484,7 +3484,7 @@ void SwitchInClearSetData(void)
}
gDisableStructs[gActiveBattler].isFirstTurn= 2;
- gLastUsedMove[gActiveBattler] = 0;
+ gLastMoves[gActiveBattler] = 0;
gLastLandedMoves[gActiveBattler] = 0;
gLastHitByType[gActiveBattler] = 0;
gUnknown_02024C4C[gActiveBattler] = 0;
@@ -3548,7 +3548,7 @@ void UndoEffectsAfterFainting(void)
gProtectStructs[gActiveBattler].notFirstStrike = 0;
gDisableStructs[gActiveBattler].isFirstTurn= 2;
- gLastUsedMove[gActiveBattler] = 0;
+ gLastMoves[gActiveBattler] = 0;
gLastLandedMoves[gActiveBattler] = 0;
gLastHitByType[gActiveBattler] = 0;
gUnknown_02024C4C[gActiveBattler] = 0;
@@ -3981,7 +3981,7 @@ void BattleTurnPassed(void)
TurnValuesCleanUp(1);
if (gBattleOutcome == 0)
{
- if (UpdateTurnCounters() != 0)
+ if (DoFieldEndTurnEffects() != 0)
return;
if (TurnBasedEffects() != 0)
return;
diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c
index 996760ad4..045a933df 100644
--- a/src/battle_script_commands.c
+++ b/src/battle_script_commands.c
@@ -53,7 +53,7 @@ extern u8 gPotentialItemEffectBattler;
extern u8 gEffectBattler;
extern u8 gAbsentBattlerFlags;
extern u8 gMultiHitCounter;
-extern u16 gLastUsedMove[4];
+extern u16 gLastMoves[4];
extern u16 gLockedMoves[4];
extern u16 gChosenMovesByBanks[4];
extern u16 gSideStatuses[2];
@@ -6901,12 +6901,12 @@ void atk49_moveend(void)
{
if (gHitMarker & HITMARKER_OBEYS)
{
- gLastUsedMove[gBattlerAttacker] = gChosenMove;
+ gLastMoves[gBattlerAttacker] = gChosenMove;
gUnknown_02024C4C[gBattlerAttacker] = gCurrentMove;
}
else
{
- gLastUsedMove[gBattlerAttacker] = 0xFFFF;
+ gLastMoves[gBattlerAttacker] = 0xFFFF;
gUnknown_02024C4C[gBattlerAttacker] = 0xFFFF;
}
@@ -11385,8 +11385,8 @@ static bool8 IsMoveUncopyable(u16 move)
static void atk9D_mimicattackcopy(void)
{
gChosenMove = 0xFFFF;
- if (IsMoveUncopyable(gLastUsedMove[gBattlerTarget]) || gBattleMons[gBattlerAttacker].status2 & STATUS2_TRANSFORMED
- || gLastUsedMove[gBattlerTarget] == 0 || gLastUsedMove[gBattlerTarget] == 0xFFFF)
+ if (IsMoveUncopyable(gLastMoves[gBattlerTarget]) || gBattleMons[gBattlerAttacker].status2 & STATUS2_TRANSFORMED
+ || gLastMoves[gBattlerTarget] == 0 || gLastMoves[gBattlerTarget] == 0xFFFF)
{
gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
}
@@ -11395,21 +11395,21 @@ static void atk9D_mimicattackcopy(void)
int i;
for (i = 0; i < 4; i++)
{
- if (gBattleMons[gBattlerAttacker].moves[i] == gLastUsedMove[gBattlerTarget])
+ if (gBattleMons[gBattlerAttacker].moves[i] == gLastMoves[gBattlerTarget])
break;
}
if (i == 4)
{
- gBattleMons[gBattlerAttacker].moves[gCurrMovePos] = gLastUsedMove[gBattlerTarget];
- if (gBattleMoves[gLastUsedMove[gBattlerTarget]].pp < 5)
- gBattleMons[gBattlerAttacker].pp[gCurrMovePos] = gBattleMoves[gLastUsedMove[gBattlerTarget]].pp;
+ gBattleMons[gBattlerAttacker].moves[gCurrMovePos] = gLastMoves[gBattlerTarget];
+ if (gBattleMoves[gLastMoves[gBattlerTarget]].pp < 5)
+ gBattleMons[gBattlerAttacker].pp[gCurrMovePos] = gBattleMoves[gLastMoves[gBattlerTarget]].pp;
else
gBattleMons[gBattlerAttacker].pp[gCurrMovePos] = 5;
gBattleTextBuff1[0] = 0xFD;
gBattleTextBuff1[1] = 2;
- gBattleTextBuff1[2] = gLastUsedMove[gBattlerTarget];
- gBattleTextBuff1[3] = uBYTE1_16(gLastUsedMove[gBattlerTarget]);
+ gBattleTextBuff1[2] = gLastMoves[gBattlerTarget];
+ gBattleTextBuff1[3] = uBYTE1_16(gLastMoves[gBattlerTarget]);
gBattleTextBuff1[4] = 0xFF;
gDisableStructs[gBattlerAttacker].mimickedMoves |= gBitTable[gCurrMovePos];
@@ -11770,7 +11770,7 @@ static void atkA3_disablelastusedattack(void)
int i;
for (i = 0; i < 4; i++)
{
- if (gBattleMons[gBattlerTarget].moves[i] == gLastUsedMove[gBattlerTarget])
+ if (gBattleMons[gBattlerTarget].moves[i] == gLastMoves[gBattlerTarget])
break;
}
if (gDisableStructs[gBattlerTarget].disabledMove == 0 && i != 4 && gBattleMons[gBattlerTarget].pp[i] != 0)
@@ -11797,10 +11797,10 @@ static void atkA4_trysetencore(void)
int i;
for (i = 0; i < 4; i++)
{
- if (gBattleMons[gBattlerTarget].moves[i] == gLastUsedMove[gBattlerTarget])
+ if (gBattleMons[gBattlerTarget].moves[i] == gLastMoves[gBattlerTarget])
break;
}
- if (gLastUsedMove[gBattlerTarget] == MOVE_STRUGGLE || gLastUsedMove[gBattlerTarget] == MOVE_ENCORE || gLastUsedMove[gBattlerTarget] == MOVE_MIRROR_MOVE)
+ if (gLastMoves[gBattlerTarget] == MOVE_STRUGGLE || gLastMoves[gBattlerTarget] == MOVE_ENCORE || gLastMoves[gBattlerTarget] == MOVE_MIRROR_MOVE)
i = 4;
if (gDisableStructs[gBattlerTarget].encoredMove == 0 && i != 4 && gBattleMons[gBattlerTarget].pp[i] != 0)
{
@@ -12295,12 +12295,12 @@ static void atkAC_remaininghptopower(void)
static void atkAD_tryspiteppreduce(void)
{
- if (gLastUsedMove[gBattlerTarget] != 0 && gLastUsedMove[gBattlerTarget] != 0xFFFF && !(gStatuses3[gBattlerTarget] & STATUS3_SEMI_INVULNERABLE))
+ if (gLastMoves[gBattlerTarget] != 0 && gLastMoves[gBattlerTarget] != 0xFFFF && !(gStatuses3[gBattlerTarget] & STATUS3_SEMI_INVULNERABLE))
{
int i;
for (i = 0; i < 4; i++)
{
- if (gLastUsedMove[gBattlerTarget] == gBattleMons[gBattlerTarget].moves[i])
+ if (gLastMoves[gBattlerTarget] == gBattleMons[gBattlerTarget].moves[i])
break;
}
if (i != 4 && gBattleMons[gBattlerTarget].pp[i] > 1)
@@ -12311,8 +12311,8 @@ static void atkAD_tryspiteppreduce(void)
gBattleTextBuff1[0] = 0xFD;
gBattleTextBuff1[1] = 2;
- gBattleTextBuff1[2] = gLastUsedMove[gBattlerTarget];
- gBattleTextBuff1[3] = gLastUsedMove[gBattlerTarget] >> 8;
+ gBattleTextBuff1[2] = gLastMoves[gBattlerTarget];
+ gBattleTextBuff1[3] = gLastMoves[gBattlerTarget] >> 8;
gBattleTextBuff1[4] = 0xFF;
ConvertIntToDecimalStringN(gBattleTextBuff2, lost_pp, 0, 1);
gBattleTextBuff2[0] = 0xFD;
diff --git a/src/battle_setup.c b/src/battle_setup.c
index 7f0e852cd..fb76a2ed2 100644
--- a/src/battle_setup.c
+++ b/src/battle_setup.c
@@ -558,7 +558,7 @@ void ScrSpecial_StartWallyTutorialBattle(void)
{
CreateMaleMon(&gEnemyParty[0], SPECIES_RALTS, 5);
ScriptContext2_Enable();
- gMain.savedCallback = c2_exit_to_overworld_1_continue_scripts_restart_music;
+ gMain.savedCallback = CB2_ReturnToFieldContinueScriptPlayMapMusic;
gBattleTypeFlags = BATTLE_TYPE_WALLY_TUTORIAL;
CreateBattleStartTask(B_TRANSITION_SLICE, 0);
}
@@ -640,7 +640,7 @@ void CB2_EndScriptedWildBattle(void)
if (IsPlayerDefeated(gBattleOutcome) == TRUE)
SetMainCallback2(CB2_WhiteOut);
else
- SetMainCallback2(c2_exit_to_overworld_1_continue_scripts_restart_music);
+ SetMainCallback2(CB2_ReturnToFieldContinueScriptPlayMapMusic);
}
s8 BattleSetup_GetTerrain(void)
@@ -898,7 +898,7 @@ static void CB2_StartFirstBattle(void)
static void CB2_EndFirstBattle(void)
{
Overworld_ClearSavedMusic();
- SetMainCallback2(c2_exit_to_overworld_1_continue_scripts_restart_music);
+ SetMainCallback2(CB2_ReturnToFieldContinueScriptPlayMapMusic);
}
// why not just use the macros? maybe its because they didnt want to uncast const every time?
@@ -1107,7 +1107,7 @@ void CB2_EndTrainerBattle(void)
{
if (gTrainerBattleOpponent == SECRET_BASE_OPPONENT)
{
- SetMainCallback2(c2_exit_to_overworld_1_continue_scripts_restart_music);
+ SetMainCallback2(CB2_ReturnToFieldContinueScriptPlayMapMusic);
}
else if (IsPlayerDefeated(gBattleOutcome) == TRUE)
{
@@ -1115,7 +1115,7 @@ void CB2_EndTrainerBattle(void)
}
else
{
- SetMainCallback2(c2_exit_to_overworld_1_continue_scripts_restart_music);
+ SetMainCallback2(CB2_ReturnToFieldContinueScriptPlayMapMusic);
SetCurrentTrainerBattledFlag();
}
}
@@ -1124,7 +1124,7 @@ void CB2_EndTrainerEyeRematchBattle(void)
{
if (gTrainerBattleOpponent == SECRET_BASE_OPPONENT)
{
- SetMainCallback2(c2_exit_to_overworld_1_continue_scripts_restart_music);
+ SetMainCallback2(CB2_ReturnToFieldContinueScriptPlayMapMusic);
}
else if (IsPlayerDefeated(gBattleOutcome) == TRUE)
{
@@ -1132,7 +1132,7 @@ void CB2_EndTrainerEyeRematchBattle(void)
}
else
{
- SetMainCallback2(c2_exit_to_overworld_1_continue_scripts_restart_music);
+ SetMainCallback2(CB2_ReturnToFieldContinueScriptPlayMapMusic);
SetCurrentTrainerBattledFlag();
SetTrainerFlagsAfterTrainerEyeRematch();
}
diff --git a/src/battle_tower.c b/src/battle_tower.c
index 138c1975d..a5b2df0a6 100644
--- a/src/battle_tower.c
+++ b/src/battle_tower.c
@@ -1282,7 +1282,7 @@ void sub_81354CC(void)
break;
}
- SetMainCallback2(c2_exit_to_overworld_1_continue_scripts_restart_music);
+ SetMainCallback2(CB2_ReturnToFieldContinueScriptPlayMapMusic);
}
void sub_8135534(u8 taskId)
diff --git a/src/battle_util.c b/src/battle_util.c
index bda5c2e9a..b1260cd4e 100644
--- a/src/battle_util.c
+++ b/src/battle_util.c
@@ -2,6 +2,7 @@
#include "battle.h"
#include "battle_util.h"
#include "battle_controllers.h"
+#include "battle_message.h"
#include "data2.h"
#include "event_data.h"
#include "ewram.h"
@@ -29,7 +30,7 @@ extern const u8* gBattlescriptCurrInstr;
extern u8 gActiveBattler;
extern u8 gBattleBufferB[4][0x200];
extern u8* gSelectionBattleScripts[4]; //battlescript location when you try to choose a move you're not allowed to
-extern u16 gLastUsedMove[4];
+extern u16 gLastMoves[4];
extern struct BattlePokemon gBattleMons[4];
extern struct BattleEnigmaBerry gEnigmaBerries[4];
extern u8 gPotentialItemEffectBattler;
@@ -334,7 +335,7 @@ void PressurePPLoseOnUsingPerishSong(u8 bankAtk)
}
-void MarkAllBufferBanksForExecution(void) // unused
+void MarkAllBattlersForControllerExec(void) // unused
{
s32 i;
@@ -482,7 +483,7 @@ u8 TrySetCantSelectMoveBattleScript(void) //msg can't select a move
gSelectionBattleScripts[gActiveBattler] = BattleScript_MoveSelectionDisabledMove;
limitations++;
}
- if (move == gLastUsedMove[gActiveBattler] && move != MOVE_STRUGGLE && gBattleMons[gActiveBattler].status2 & STATUS2_TORMENT)
+ if (move == gLastMoves[gActiveBattler] && move != MOVE_STRUGGLE && gBattleMons[gActiveBattler].status2 & STATUS2_TORMENT)
{
CancelMultiTurnMoves(gActiveBattler);
gSelectionBattleScripts[gActiveBattler] = BattleScript_MoveSelectionTormented;
@@ -523,40 +524,36 @@ u8 TrySetCantSelectMoveBattleScript(void) //msg can't select a move
return limitations;
}
-#define MOVE_LIMITATION_ZEROMOVE (1 << 0)
-#define MOVE_LIMITATION_PP (1 << 1)
-#define MOVE_LIMITATION_DISABLED (1 << 2)
-#define MOVE_LIMITATION_TORMENTED (1 << 3)
-#define MOVE_LIMITATION_TAUNT (1 << 4)
-#define MOVE_LIMITATION_IMPRISION (1 << 5)
-
-u8 CheckMoveLimitations(u8 bank, u8 unusableMoves, u8 check)
+u8 CheckMoveLimitations(u8 battlerId, u8 unusableMoves, u8 check)
{
u8 holdEffect;
- u16* choicedMove = CHOICED_MOVE(bank);
+ u16* choicedMove = CHOICED_MOVE(battlerId);
s32 i;
- if (gBattleMons[bank].item == ITEM_ENIGMA_BERRY)
- holdEffect = gEnigmaBerries[bank].holdEffect;
+
+ if (gBattleMons[battlerId].item == ITEM_ENIGMA_BERRY)
+ holdEffect = gEnigmaBerries[battlerId].holdEffect;
else
- holdEffect = ItemId_GetHoldEffect(gBattleMons[bank].item);
- gPotentialItemEffectBattler = bank;
- for (i = 0; i < 4; i++)
+ holdEffect = ItemId_GetHoldEffect(gBattleMons[battlerId].item);
+
+ gPotentialItemEffectBattler = battlerId;
+
+ for (i = 0; i < MAX_MON_MOVES; i++)
{
- if (gBattleMons[bank].moves[i] == 0 && check & MOVE_LIMITATION_ZEROMOVE)
+ if (gBattleMons[battlerId].moves[i] == 0 && check & MOVE_LIMITATION_ZEROMOVE)
unusableMoves |= gBitTable[i];
- if (gBattleMons[bank].pp[i] == 0 && check & MOVE_LIMITATION_PP)
+ if (gBattleMons[battlerId].pp[i] == 0 && check & MOVE_LIMITATION_PP)
unusableMoves |= gBitTable[i];
- if (gBattleMons[bank].moves[i] == gDisableStructs[bank].disabledMove && check & MOVE_LIMITATION_DISABLED)
+ if (gBattleMons[battlerId].moves[i] == gDisableStructs[battlerId].disabledMove && check & MOVE_LIMITATION_DISABLED)
unusableMoves |= gBitTable[i];
- if (gBattleMons[bank].moves[i] == gLastUsedMove[bank] && check & MOVE_LIMITATION_TORMENTED && gBattleMons[bank].status2 & STATUS2_TORMENT)
+ if (gBattleMons[battlerId].moves[i] == gLastMoves[battlerId] && check & MOVE_LIMITATION_TORMENTED && gBattleMons[battlerId].status2 & STATUS2_TORMENT)
unusableMoves |= gBitTable[i];
- if (gDisableStructs[bank].tauntTimer1 && check & MOVE_LIMITATION_TAUNT && gBattleMoves[gBattleMons[bank].moves[i]].power == 0)
+ if (gDisableStructs[battlerId].tauntTimer1 && check & MOVE_LIMITATION_TAUNT && gBattleMoves[gBattleMons[battlerId].moves[i]].power == 0)
unusableMoves |= gBitTable[i];
- if (IsImprisoned(bank, gBattleMons[bank].moves[i]) && check & MOVE_LIMITATION_IMPRISION)
+ if (IsImprisoned(battlerId, gBattleMons[battlerId].moves[i]) && check & MOVE_LIMITATION_IMPRISON)
unusableMoves |= gBitTable[i];
- if (gDisableStructs[bank].encoreTimer1 && gDisableStructs[bank].encoredMove != gBattleMons[bank].moves[i])
+ if (gDisableStructs[battlerId].encoreTimer1 && gDisableStructs[battlerId].encoredMove != gBattleMons[battlerId].moves[i])
unusableMoves |= gBitTable[i];
- if (holdEffect == HOLD_EFFECT_CHOICE_BAND && *choicedMove != 0 && *choicedMove != 0xFFFF && *choicedMove != gBattleMons[bank].moves[i])
+ if (holdEffect == HOLD_EFFECT_CHOICE_BAND && *choicedMove != 0 && *choicedMove != 0xFFFF && *choicedMove != gBattleMons[battlerId].moves[i])
unusableMoves |= gBitTable[i];
}
return unusableMoves;
@@ -564,9 +561,9 @@ u8 CheckMoveLimitations(u8 bank, u8 unusableMoves, u8 check)
bool8 AreAllMovesUnusable(void)
{
- u8 unusable;
- unusable = CheckMoveLimitations(gActiveBattler, 0, 0xFF);
- if (unusable == 0xF) //all moves are unusable
+ u8 unusable = CheckMoveLimitations(gActiveBattler, 0, 0xFF);
+
+ if (unusable == 0xF) // All moves are unusable.
{
gProtectStructs[gActiveBattler].noValidMoves = 1;
gSelectionBattleScripts[gActiveBattler] = BattleScript_NoMovesLeft;
@@ -576,33 +573,53 @@ bool8 AreAllMovesUnusable(void)
gBattleBufferB[gActiveBattler][3] = GetBattlerAtPosition(GetBattlerPosition(gActiveBattler) ^ 1);
}
else
+ {
gProtectStructs[gActiveBattler].noValidMoves = 0;
+ }
+
return (unusable == 0xF);
}
-u8 IsImprisoned(u8 bank, u16 move)
+u8 IsImprisoned(u8 battlerId, u16 move)
{
- u8 imprisionedMoves = 0;
- u8 bankSide = GetBattlerSide(bank);
s32 i;
+ u8 imprisonedMoves = 0;
+ u8 battlerSide = GetBattlerSide(battlerId);
+
for (i = 0; i < gBattlersCount; i++)
{
- if (bankSide != GetBattlerSide(i) && gStatuses3[i] & STATUS3_IMPRISONED_OTHERS)
+ if (battlerSide != GetBattlerSide(i) && gStatuses3[i] & STATUS3_IMPRISONED_OTHERS)
{
s32 j;
- for (j = 0; j < 4; j++)
+ for (j = 0; j < MAX_MON_MOVES; j++)
{
if (move == gBattleMons[i].moves[j])
break;
}
- if (j < 4)
- imprisionedMoves++;
+ if (j < MAX_MON_MOVES)
+ imprisonedMoves++;
}
}
- return imprisionedMoves;
+
+ return imprisonedMoves;
}
-u8 UpdateTurnCounters(void)
+enum
+{
+ ENDTURN_ORDER,
+ ENDTURN_REFLECT,
+ ENDTURN_LIGHT_SCREEN,
+ ENDTURN_MIST,
+ ENDTURN_SAFEGUARD,
+ ENDTURN_WISH,
+ ENDTURN_RAIN,
+ ENDTURN_SANDSTORM,
+ ENDTURN_SUN,
+ ENDTURN_HAIL,
+ ENDTURN_FIELD_COUNT,
+};
+
+u8 DoFieldEndTurnEffects(void)
{
u8 effect = 0;
s32 i;
@@ -616,11 +633,11 @@ u8 UpdateTurnCounters(void)
do
{
- u8 sideBank;
+ u8 side;
- switch (gBattleStruct->turncountersTracker)
+ switch (gBattleStruct->turnCountersTracker)
{
- case 0:
+ case ENDTURN_ORDER:
for (i = 0; i < gBattlersCount; i++)
{
gBattlerByTurnOrder[i] = i;
@@ -634,25 +651,21 @@ u8 UpdateTurnCounters(void)
SwapTurnOrder(i, j);
}
}
- gBattleStruct->turncountersTracker++;
+ gBattleStruct->turnCountersTracker++;
gBattleStruct->turnSideTracker = 0;
- case 1:
+ // fall through
+ case ENDTURN_REFLECT:
while (gBattleStruct->turnSideTracker < 2)
{
- gActiveBattler = gBattlerAttacker = sideBank = gBattleStruct->turnSideTracker;
+ gActiveBattler = gBattlerAttacker = side = gBattleStruct->turnSideTracker;
- if (gSideStatuses[sideBank] & SIDE_STATUS_REFLECT)
+ if (gSideStatuses[side] & SIDE_STATUS_REFLECT)
{
- if (--gSideTimers[sideBank].reflectTimer == 0)
+ if (--gSideTimers[side].reflectTimer == 0)
{
-
- gSideStatuses[sideBank] &= ~SIDE_STATUS_REFLECT;
+ gSideStatuses[side] &= ~SIDE_STATUS_REFLECT;
BattleScriptExecute(BattleScript_SideStatusWoreOff);
- gBattleTextBuff1[0] = 0xFD;
- gBattleTextBuff1[1] = 2;
- gBattleTextBuff1[2] = MOVE_REFLECT;
- gBattleTextBuff1[3] = MOVE_REFLECT >> 8;
- gBattleTextBuff1[4] = EOS;
+ PREPARE_MOVE_BUFFER(gBattleTextBuff1, MOVE_REFLECT);
effect++;
}
}
@@ -662,26 +675,22 @@ u8 UpdateTurnCounters(void)
}
if (!effect)
{
- gBattleStruct->turncountersTracker++;
+ gBattleStruct->turnCountersTracker++;
gBattleStruct->turnSideTracker = 0;
}
break;
- case 2:
+ case ENDTURN_LIGHT_SCREEN:
while (gBattleStruct->turnSideTracker < 2)
{
- gActiveBattler = gBattlerAttacker = sideBank = gBattleStruct->turnSideTracker;
- if (gSideStatuses[sideBank] & SIDE_STATUS_LIGHTSCREEN)
+ gActiveBattler = gBattlerAttacker = side = gBattleStruct->turnSideTracker;
+ if (gSideStatuses[side] & SIDE_STATUS_LIGHTSCREEN)
{
- if (--gSideTimers[sideBank].lightscreenTimer == 0)
+ if (--gSideTimers[side].lightscreenTimer == 0)
{
- gSideStatuses[sideBank] &= ~SIDE_STATUS_LIGHTSCREEN;
+ gSideStatuses[side] &= ~SIDE_STATUS_LIGHTSCREEN;
BattleScriptExecute(BattleScript_SideStatusWoreOff);
- gBattleCommunication[MULTISTRING_CHOOSER] = sideBank;
- gBattleTextBuff1[0] = 0xFD;
- gBattleTextBuff1[1] = 2;
- gBattleTextBuff1[2] = MOVE_LIGHT_SCREEN;
- gBattleTextBuff1[3] = MOVE_LIGHT_SCREEN >> 8;
- gBattleTextBuff1[4] = EOS;
+ gBattleCommunication[MULTISTRING_CHOOSER] = side;
+ PREPARE_MOVE_BUFFER(gBattleTextBuff1, MOVE_LIGHT_SCREEN);
effect++;
}
}
@@ -691,24 +700,20 @@ u8 UpdateTurnCounters(void)
}
if (!effect)
{
- gBattleStruct->turncountersTracker++;
+ gBattleStruct->turnCountersTracker++;
gBattleStruct->turnSideTracker = 0;
}
break;
- case 3:
+ case ENDTURN_MIST:
while (gBattleStruct->turnSideTracker < 2)
{
- gActiveBattler = gBattlerAttacker = sideBank = gBattleStruct->turnSideTracker;
- if (gSideTimers[sideBank].mistTimer && --gSideTimers[sideBank].mistTimer == 0)
+ gActiveBattler = gBattlerAttacker = side = gBattleStruct->turnSideTracker;
+ if (gSideTimers[side].mistTimer && --gSideTimers[side].mistTimer == 0)
{
- gSideStatuses[sideBank] &= ~SIDE_STATUS_MIST;
+ gSideStatuses[side] &= ~SIDE_STATUS_MIST;
BattleScriptExecute(BattleScript_SideStatusWoreOff);
- gBattleCommunication[MULTISTRING_CHOOSER] = sideBank;
- gBattleTextBuff1[0] = 0xFD;
- gBattleTextBuff1[1] = 2;
- gBattleTextBuff1[2] = MOVE_MIST;
- gBattleTextBuff1[3] = MOVE_MIST >> 8;
- gBattleTextBuff1[4] = EOS;
+ gBattleCommunication[MULTISTRING_CHOOSER] = side;
+ PREPARE_MOVE_BUFFER(gBattleTextBuff1, MOVE_MIST);
effect++;
}
gBattleStruct->turnSideTracker++;
@@ -717,19 +722,19 @@ u8 UpdateTurnCounters(void)
}
if (!effect)
{
- gBattleStruct->turncountersTracker++;
+ gBattleStruct->turnCountersTracker++;
gBattleStruct->turnSideTracker = 0;
}
break;
- case 4:
+ case ENDTURN_SAFEGUARD:
while (gBattleStruct->turnSideTracker < 2)
{
- gActiveBattler = gBattlerAttacker = sideBank = gBattleStruct->turnSideTracker;
- if (gSideStatuses[sideBank] & SIDE_STATUS_SAFEGUARD)
+ gActiveBattler = gBattlerAttacker = side = gBattleStruct->turnSideTracker;
+ if (gSideStatuses[side] & SIDE_STATUS_SAFEGUARD)
{
- if (--gSideTimers[sideBank].safeguardTimer == 0)
+ if (--gSideTimers[side].safeguardTimer == 0)
{
- gSideStatuses[sideBank] &= ~SIDE_STATUS_SAFEGUARD;
+ gSideStatuses[side] &= ~SIDE_STATUS_SAFEGUARD;
BattleScriptExecute(BattleScript_SafeguardEnds);
effect++;
}
@@ -740,11 +745,11 @@ u8 UpdateTurnCounters(void)
}
if (!effect)
{
- gBattleStruct->turncountersTracker++;
+ gBattleStruct->turnCountersTracker++;
gBattleStruct->turnSideTracker = 0;
}
break;
- case 5:
+ case ENDTURN_WISH:
while (gBattleStruct->turnSideTracker < gBattlersCount)
{
gActiveBattler = gBattlerByTurnOrder[gBattleStruct->turnSideTracker];
@@ -760,10 +765,10 @@ u8 UpdateTurnCounters(void)
}
if (!effect)
{
- gBattleStruct->turncountersTracker++;
+ gBattleStruct->turnCountersTracker++;
}
break;
- case 6:
+ case ENDTURN_RAIN:
if (gBattleWeather & WEATHER_RAIN_ANY)
{
if (!(gBattleWeather & WEATHER_RAIN_PERMANENT))
@@ -780,15 +785,20 @@ u8 UpdateTurnCounters(void)
gBattleCommunication[MULTISTRING_CHOOSER] = 0;
}
else if (gBattleWeather & WEATHER_RAIN_DOWNPOUR)
+ {
gBattleCommunication[MULTISTRING_CHOOSER] = 1;
+ }
else
+ {
gBattleCommunication[MULTISTRING_CHOOSER] = 0;
+ }
+
BattleScriptExecute(BattleScript_RainContinuesOrEnds);
effect++;
}
- gBattleStruct->turncountersTracker++;
+ gBattleStruct->turnCountersTracker++;
break;
- case 7:
+ case ENDTURN_SANDSTORM:
if (gBattleWeather & WEATHER_SANDSTORM_ANY)
{
if (!(gBattleWeather & WEATHER_SANDSTORM_PERMANENT) && --gWishFutureKnock.weatherDuration == 0)
@@ -797,16 +807,18 @@ u8 UpdateTurnCounters(void)
gBattlescriptCurrInstr = BattleScript_SandStormHailEnds;
}
else
+ {
gBattlescriptCurrInstr = BattleScript_DamagingWeatherContinues;
+ }
gBattleStruct->animArg1 = B_ANIM_SANDSTORM_CONTINUES;
gBattleCommunication[MULTISTRING_CHOOSER] = 0;
BattleScriptExecute(gBattlescriptCurrInstr);
effect++;
}
- gBattleStruct->turncountersTracker++;
+ gBattleStruct->turnCountersTracker++;
break;
- case 8:
+ case ENDTURN_SUN:
if (gBattleWeather & WEATHER_SUN_ANY)
{
if (!(gBattleWeather & WEATHER_SUN_PERMANENT) && --gWishFutureKnock.weatherDuration == 0)
@@ -815,14 +827,16 @@ u8 UpdateTurnCounters(void)
gBattlescriptCurrInstr = BattleScript_SunlightFaded;
}
else
+ {
gBattlescriptCurrInstr = BattleScript_SunlightContinues;
+ }
BattleScriptExecute(gBattlescriptCurrInstr);
effect++;
}
- gBattleStruct->turncountersTracker++;
+ gBattleStruct->turnCountersTracker++;
break;
- case 9:
+ case ENDTURN_HAIL:
if (gBattleWeather & WEATHER_HAIL)
{
if (--gWishFutureKnock.weatherDuration == 0)
@@ -831,16 +845,18 @@ u8 UpdateTurnCounters(void)
gBattlescriptCurrInstr = BattleScript_SandStormHailEnds;
}
else
+ {
gBattlescriptCurrInstr = BattleScript_DamagingWeatherContinues;
+ }
gBattleStruct->animArg1 = B_ANIM_HAIL_CONTINUES;
gBattleCommunication[MULTISTRING_CHOOSER] = 1;
BattleScriptExecute(gBattlescriptCurrInstr);
effect++;
}
- gBattleStruct->turncountersTracker++;
+ gBattleStruct->turnCountersTracker++;
break;
- case 10:
+ case ENDTURN_FIELD_COUNT:
effect++;
break;
}
@@ -850,23 +866,47 @@ u8 UpdateTurnCounters(void)
#define TURNBASED_MAX_CASE 19
+enum
+{
+ ENDTURN_INGRAIN,
+ ENDTURN_ABILITIES,
+ ENDTURN_ITEMS1,
+ ENDTURN_LEECH_SEED,
+ ENDTURN_POISON,
+ ENDTURN_BAD_POISON,
+ ENDTURN_BURN,
+ ENDTURN_NIGHTMARES,
+ ENDTURN_CURSE,
+ ENDTURN_WRAP,
+ ENDTURN_UPROAR,
+ ENDTURN_THRASH,
+ ENDTURN_DISABLE,
+ ENDTURN_ENCORE,
+ ENDTURN_LOCK_ON,
+ ENDTURN_CHARGE,
+ ENDTURN_TAUNT,
+ ENDTURN_YAWN,
+ ENDTURN_ITEMS2,
+ ENDTURN_BATTLER_COUNT
+};
+
u8 TurnBasedEffects(void)
{
u8 effect = 0;
gHitMarker |= (HITMARKER_GRUDGE | HITMARKER_x20);
- while (gBattleStruct->turnEffectsBank < gBattlersCount && gBattleStruct->turnEffectsTracker <= TURNBASED_MAX_CASE)
+ while (gBattleStruct->turnEffectsBattlerId < gBattlersCount && gBattleStruct->turnEffectsTracker <= TURNBASED_MAX_CASE)
{
- gActiveBattler = gBattlerAttacker = gBattlerByTurnOrder[gBattleStruct->turnEffectsBank];
+ gActiveBattler = gBattlerAttacker = gBattlerByTurnOrder[gBattleStruct->turnEffectsBattlerId];
if (gAbsentBattlerFlags & gBitTable[gActiveBattler])
{
- gBattleStruct->turnEffectsBank++;
+ gBattleStruct->turnEffectsBattlerId++;
}
else
{
switch (gBattleStruct->turnEffectsTracker)
{
- case 0: // ingrain
+ case ENDTURN_INGRAIN: // ingrain
if ((gStatuses3[gActiveBattler] & STATUS3_ROOTED)
&& gBattleMons[gActiveBattler].hp != gBattleMons[gActiveBattler].maxHP
&& gBattleMons[gActiveBattler].hp != 0)
@@ -880,25 +920,27 @@ u8 TurnBasedEffects(void)
}
gBattleStruct->turnEffectsTracker++;
break;
- case 1: // end turn abilities
+ case ENDTURN_ABILITIES: // end turn abilities
if (AbilityBattleEffects(ABILITYEFFECT_ENDTURN, gActiveBattler, 0, 0, 0))
effect++;
gBattleStruct->turnEffectsTracker++;
break;
- case 2: // item effects
- if (ItemBattleEffects(1, gActiveBattler, 0))
+ case ENDTURN_ITEMS1: // item effects
+ if (ItemBattleEffects(1, gActiveBattler, FALSE))
effect++;
gBattleStruct->turnEffectsTracker++;
break;
- case 18: // item effects again
- if (ItemBattleEffects(1, gActiveBattler, 1))
+ case ENDTURN_ITEMS2: // item effects again
+ if (ItemBattleEffects(1, gActiveBattler, TRUE))
effect++;
gBattleStruct->turnEffectsTracker++;
break;
- case 3: // leech seed
- if (gStatuses3[gActiveBattler] & STATUS3_LEECHSEED && gBattleMons[gStatuses3[gActiveBattler] & STATUS3_LEECHSEED_BATTLER].hp != 0 && gBattleMons[gActiveBattler].hp != 0)
+ case ENDTURN_LEECH_SEED: // leech seed
+ if ((gStatuses3[gActiveBattler] & STATUS3_LEECHSEED)
+ && gBattleMons[gStatuses3[gActiveBattler] & STATUS3_LEECHSEED_BATTLER].hp != 0
+ && gBattleMons[gActiveBattler].hp != 0)
{
- gBattlerTarget = gStatuses3[gActiveBattler] & STATUS3_LEECHSEED_BATTLER; //funny how the 'target' is actually the bank that receives HP
+ gBattlerTarget = gStatuses3[gActiveBattler] & STATUS3_LEECHSEED_BATTLER; // Notice gBattlerTarget is actually the HP receiver.
gBattleMoveDamage = gBattleMons[gActiveBattler].maxHP / 8;
if (gBattleMoveDamage == 0)
gBattleMoveDamage = 1;
@@ -909,7 +951,7 @@ u8 TurnBasedEffects(void)
}
gBattleStruct->turnEffectsTracker++;
break;
- case 4: // poison
+ case ENDTURN_POISON: // poison
if ((gBattleMons[gActiveBattler].status1 & STATUS1_POISON) && gBattleMons[gActiveBattler].hp != 0)
{
gBattleMoveDamage = gBattleMons[gActiveBattler].maxHP / 8;
@@ -920,13 +962,13 @@ u8 TurnBasedEffects(void)
}
gBattleStruct->turnEffectsTracker++;
break;
- case 5: // toxic poison
+ case ENDTURN_BAD_POISON: // toxic poison
if ((gBattleMons[gActiveBattler].status1 & STATUS1_TOXIC_POISON) && gBattleMons[gActiveBattler].hp != 0)
{
gBattleMoveDamage = gBattleMons[gActiveBattler].maxHP / 16;
if (gBattleMoveDamage == 0)
gBattleMoveDamage = 1;
- if ((gBattleMons[gActiveBattler].status1 & 0xF00) != 0xF00) //not 16 turns
+ if ((gBattleMons[gActiveBattler].status1 & 0xF00) != 0xF00) // not 16 turns
gBattleMons[gActiveBattler].status1 += 0x100;
gBattleMoveDamage *= (gBattleMons[gActiveBattler].status1 & 0xF00) >> 8;
BattleScriptExecute(BattleScript_PoisonTurnDmg);
@@ -934,7 +976,7 @@ u8 TurnBasedEffects(void)
}
gBattleStruct->turnEffectsTracker++;
break;
- case 6: // burn
+ case ENDTURN_BURN: // burn
if ((gBattleMons[gActiveBattler].status1 & STATUS1_BURN) && gBattleMons[gActiveBattler].hp != 0)
{
gBattleMoveDamage = gBattleMons[gActiveBattler].maxHP / 8;
@@ -945,7 +987,7 @@ u8 TurnBasedEffects(void)
}
gBattleStruct->turnEffectsTracker++;
break;
- case 7: // spooky nightmares
+ case ENDTURN_NIGHTMARES: // spooky nightmares
if ((gBattleMons[gActiveBattler].status2 & STATUS2_NIGHTMARE) && gBattleMons[gActiveBattler].hp != 0)
{
// missing sleep check
@@ -957,7 +999,7 @@ u8 TurnBasedEffects(void)
}
gBattleStruct->turnEffectsTracker++;
break;
- case 8: // curse
+ case ENDTURN_CURSE: // curse
if ((gBattleMons[gActiveBattler].status2 & STATUS2_CURSED) && gBattleMons[gActiveBattler].hp != 0)
{
gBattleMoveDamage = gBattleMons[gActiveBattler].maxHP / 4;
@@ -968,7 +1010,7 @@ u8 TurnBasedEffects(void)
}
gBattleStruct->turnEffectsTracker++;
break;
- case 9: // wrap
+ case ENDTURN_WRAP: // wrap
if ((gBattleMons[gActiveBattler].status2 & STATUS2_WRAPPED) && gBattleMons[gActiveBattler].hp != 0)
{
gBattleMons[gActiveBattler].status2 -= 0x2000;
@@ -976,8 +1018,8 @@ u8 TurnBasedEffects(void)
{
gBattleStruct->animArg1 = ewram16004arr(0, gActiveBattler);
gBattleStruct->animArg2 = ewram16004arr(1, gActiveBattler);
- gBattleTextBuff1[0] = 0xFD;
- gBattleTextBuff1[1] = 2;
+ gBattleTextBuff1[0] = B_BUFF_PLACEHOLDER_BEGIN;
+ gBattleTextBuff1[1] = B_BUFF_MOVE;
gBattleTextBuff1[2] = ewram16004arr(0, gActiveBattler);
gBattleTextBuff1[3] = ewram16004arr(1, gActiveBattler);
gBattleTextBuff1[4] = EOS;
@@ -1000,7 +1042,7 @@ u8 TurnBasedEffects(void)
}
gBattleStruct->turnEffectsTracker++;
break;
- case 10: // uproar
+ case ENDTURN_UPROAR: // uproar
if (gBattleMons[gActiveBattler].status2 & STATUS2_UPROAR)
{
for (gBattlerAttacker = 0; gBattlerAttacker < gBattlersCount; gBattlerAttacker++)
@@ -1049,7 +1091,7 @@ u8 TurnBasedEffects(void)
if (effect != 2)
gBattleStruct->turnEffectsTracker++;
break;
- case 11: // thrash
+ case ENDTURN_THRASH: // thrash
if (gBattleMons[gActiveBattler].status2 & STATUS2_LOCK_CONFUSE)
{
gBattleMons[gActiveBattler].status2 -= 0x400;
@@ -1071,11 +1113,11 @@ u8 TurnBasedEffects(void)
}
gBattleStruct->turnEffectsTracker++;
break;
- case 12: // disable
+ case ENDTURN_DISABLE: // disable
if (gDisableStructs[gActiveBattler].disableTimer1 != 0)
{
- int i;
- for (i = 0; i < 4; i++)
+ s32 i;
+ for (i = 0; i < MAX_MON_MOVES; i++)
{
if (gDisableStructs[gActiveBattler].disabledMove == gBattleMons[gActiveBattler].moves[i])
break;
@@ -1094,7 +1136,7 @@ u8 TurnBasedEffects(void)
}
gBattleStruct->turnEffectsTracker++;
break;
- case 13: // encore
+ case ENDTURN_ENCORE: // encore
if (gDisableStructs[gActiveBattler].encoreTimer1 != 0)
{
if (gBattleMons[gActiveBattler].moves[gDisableStructs[gActiveBattler].encoredMovePos] != gDisableStructs[gActiveBattler].encoredMove) // pokemon does not have the encored move anymore
@@ -1113,22 +1155,22 @@ u8 TurnBasedEffects(void)
}
gBattleStruct->turnEffectsTracker++;
break;
- case 14: // lock-on decrement
+ case ENDTURN_LOCK_ON: // lock-on decrement
if (gStatuses3[gActiveBattler] & STATUS3_ALWAYS_HITS)
gStatuses3[gActiveBattler] -= 0x8;
gBattleStruct->turnEffectsTracker++;
break;
- case 15: // charge
+ case ENDTURN_CHARGE: // charge
if (gDisableStructs[gActiveBattler].chargeTimer1 && --gDisableStructs[gActiveBattler].chargeTimer1 == 0)
gStatuses3[gActiveBattler] &= ~STATUS3_CHARGED_UP;
gBattleStruct->turnEffectsTracker++;
break;
- case 16: // taunt
+ case ENDTURN_TAUNT: // taunt
if (gDisableStructs[gActiveBattler].tauntTimer1)
gDisableStructs[gActiveBattler].tauntTimer1--;
gBattleStruct->turnEffectsTracker++;
break;
- case 17: // yawn
+ case ENDTURN_YAWN: // yawn
if (gStatuses3[gActiveBattler] & STATUS3_YAWN)
{
gStatuses3[gActiveBattler] -= 0x800;
@@ -1147,9 +1189,9 @@ u8 TurnBasedEffects(void)
}
gBattleStruct->turnEffectsTracker++;
break;
- case 19: // done
+ case ENDTURN_BATTLER_COUNT: // done
gBattleStruct->turnEffectsTracker = 0;
- gBattleStruct->turnEffectsBank++;
+ gBattleStruct->turnEffectsBattlerId++;
break;
}
if (effect != 0)
@@ -1163,17 +1205,20 @@ u8 TurnBasedEffects(void)
bool8 HandleWishPerishSongOnTurnEnd(void)
{
gHitMarker |= (HITMARKER_GRUDGE | HITMARKER_x20);
- switch (gBattleStruct->sub80170DC_Tracker)
+
+ switch (gBattleStruct->wishPerishSongState)
{
case 0: // future sight
- while (gBattleStruct->sub80170DC_Bank < gBattlersCount)
+ while (gBattleStruct->wishPerishSongBattlerId < gBattlersCount)
{
- gActiveBattler = gBattleStruct->sub80170DC_Bank;
+ gActiveBattler = gBattleStruct->wishPerishSongBattlerId;
if (gAbsentBattlerFlags & gBitTable[gActiveBattler])
- gBattleStruct->sub80170DC_Bank++;
+ {
+ gBattleStruct->wishPerishSongBattlerId++;
+ }
else
{
- gBattleStruct->sub80170DC_Bank++;
+ gBattleStruct->wishPerishSongBattlerId++;
if (gWishFutureKnock.futureSightCounter[gActiveBattler] && --gWishFutureKnock.futureSightCounter[gActiveBattler] == 0 && gBattleMons[gActiveBattler].hp)
{
if (gWishFutureKnock.futureSightMove[gActiveBattler] == MOVE_FUTURE_SIGHT)
@@ -1194,17 +1239,17 @@ bool8 HandleWishPerishSongOnTurnEnd(void)
}
}
}
- gBattleStruct->sub80170DC_Tracker = 1;
- gBattleStruct->sub80170DC_Bank = 0;
+ gBattleStruct->wishPerishSongState = 1;
+ gBattleStruct->wishPerishSongBattlerId = 0;
case 1: // perish song
- while (gBattleStruct->sub80170DC_Bank < gBattlersCount)
+ while (gBattleStruct->wishPerishSongBattlerId < gBattlersCount)
{
- gActiveBattler = gBattlerAttacker = gBattlerByTurnOrder[gBattleStruct->sub80170DC_Bank];
+ gActiveBattler = gBattlerAttacker = gBattlerByTurnOrder[gBattleStruct->wishPerishSongBattlerId];
if (gAbsentBattlerFlags & gBitTable[gActiveBattler])
- gBattleStruct->sub80170DC_Bank++;
+ gBattleStruct->wishPerishSongBattlerId++;
else
{
- gBattleStruct->sub80170DC_Bank++;
+ gBattleStruct->wishPerishSongBattlerId++;
if (gStatuses3[gActiveBattler] & STATUS3_PERISH_SONG)
{
gBattleTextBuff1[0] = 0xFD;
diff --git a/src/berry_blender.c b/src/berry_blender.c
index 70cb34809..06cf9ba1f 100644
--- a/src/berry_blender.c
+++ b/src/berry_blender.c
@@ -1258,7 +1258,7 @@ static void sub_804E9F8(void)
break;
case 102:
if (!gPaletteFade.active)
- SetMainCallback2(c2_exit_to_overworld_1_continue_scripts_restart_music);
+ SetMainCallback2(CB2_ReturnToFieldContinueScriptPlayMapMusic);
break;
}
RunTasks();
@@ -2480,7 +2480,7 @@ static void sub_8050E30(void)
break;
case 12:
if (gReceivedRemoteLinkPlayers == 0)
- SetMainCallback2(c2_exit_to_overworld_1_continue_scripts_restart_music);
+ SetMainCallback2(CB2_ReturnToFieldContinueScriptPlayMapMusic);
break;
}
@@ -2529,7 +2529,7 @@ static void sub_80510E8(void)
if (gBerryBlenderData->field_7C == 0)
SetMainCallback2(DoBerryBlending);
else
- SetMainCallback2(c2_exit_to_overworld_1_continue_scripts_restart_music);
+ SetMainCallback2(CB2_ReturnToFieldContinueScriptPlayMapMusic);
}
break;
}
diff --git a/src/bike.c b/src/bike.c
index b1176997b..1f5d45418 100644
--- a/src/bike.c
+++ b/src/bike.c
@@ -20,6 +20,7 @@ extern u8 gUnknown_020297ED;
u8 debug_sub_805F2B0(u8);
#endif
+// this file's functions
static void MovePlayerOnMachBike(u8, u16, u16);
static u8 GetMachBikeTransition(u8 *);
static void MachBikeTransition_FaceDirection(u8);
@@ -61,6 +62,8 @@ static u8 CanBikeFaceDirOnMetatile(u8, u8);
static bool8 WillPlayerCollideWithCollision(u8, u8);
static void Bike_SetBikeStill(void);
+// const rom data
+
/*
A bike transition is a type of callback for the bike that actually
modifies the bicycle's direction or momentum or otherwise movement.
@@ -123,7 +126,7 @@ static const u8 sAcroBikeJumpTimerList[] = {4, 0};
// this is a list of history inputs to do in order to do the check to retrieve a jump direction for acro bike. it seems to be an extensible list, so its possible that Game Freak may have intended for the Acro Bike to have more complex tricks at some point. The final list only has the acro jump.
static const struct BikeHistoryInputInfo sAcroBikeTricksList[] =
{
- // the 0xF is a mask performed with each byte of the array in order to perform the check on only the last entry of the history list, otherwise the check wouldnt work as there can be 0xF0 as opposed to 0x0F.
+ // the 0xF is a mask performed with each byte of the array in order to perform the check on only the last entry of the history list, otherwise the check wouldn't work as there can be 0xF0 as opposed to 0x0F.
{DIR_SOUTH, B_BUTTON, 0xF, 0xF, sAcroBikeJumpTimerList, sAcroBikeJumpTimerList, DIR_SOUTH},
{DIR_NORTH, B_BUTTON, 0xF, 0xF, sAcroBikeJumpTimerList, sAcroBikeJumpTimerList, DIR_NORTH},
{DIR_WEST, B_BUTTON, 0xF, 0xF, sAcroBikeJumpTimerList, sAcroBikeJumpTimerList, DIR_WEST},
@@ -630,7 +633,7 @@ static void AcroBikeTransition_WheelieHoppingMoving(u8 direction)
return;
}
collision = get_some_collision(direction);
- //TODO: Try to get rid of this goto
+ // TODO: Try to get rid of this goto
if (collision == 0 || collision == 9)
{
goto derp;
@@ -647,7 +650,7 @@ static void AcroBikeTransition_WheelieHoppingMoving(u8 direction)
}
else
{
- derp:
+ derp:
PlayerMovingHoppingWheelie(direction);
}
}
@@ -755,7 +758,7 @@ static void AcroBikeTransition_WheelieRisingMoving(u8 direction)
static void AcroBikeTransition_WheelieLoweringMoving(u8 direction)
{
- u8 var;
+ u8 collision;
struct EventObject *playerEventObj = &gEventObjects[gPlayerAvatar.eventObjectId];
if (CanBikeFaceDirOnMetatile(direction, playerEventObj->currentMetatileBehavior) == 0)
@@ -763,12 +766,12 @@ static void AcroBikeTransition_WheelieLoweringMoving(u8 direction)
PlayerEndWheelie(playerEventObj->movementDirection);
return;
}
- var = get_some_collision(direction);
- if (var > 0 && var < 12)
+ collision = get_some_collision(direction);
+ if (collision > 0 && collision < 12)
{
- if (var == 6)
+ if (collision == 6)
PlayerJumpLedge(direction);
- else if (var < 5 || var > 8)
+ else if (collision < 5 || collision > 8)
PlayerEndWheelie(direction);
return;
}
diff --git a/src/cable_club.c b/src/cable_club.c
index b030d8cc2..28bf3b759 100644
--- a/src/cable_club.c
+++ b/src/cable_club.c
@@ -940,7 +940,7 @@ void unref_sub_8083BB0(void)
void sub_8083BDC(void)
{
- TrainerCard_ShowLinkCard(gSpecialVar_0x8006, c2_exit_to_overworld_1_continue_scripts_restart_music);
+ TrainerCard_ShowLinkCard(gSpecialVar_0x8006, CB2_ReturnToFieldContinueScriptPlayMapMusic);
}
bool32 sub_8083BF4(u8 linkPlayerIndex)
diff --git a/src/clock.c b/src/clock.c
index fceccdfcb..3bea39754 100644
--- a/src/clock.c
+++ b/src/clock.c
@@ -1,21 +1,20 @@
#include "global.h"
#include "clock.h"
-#include "berry.h"
-#include "dewford_trend.h"
#include "event_data.h"
+#include "rtc.h"
+#include "time_events.h"
#include "field_specials.h"
-#include "field_weather.h"
#include "lottery_corner.h"
+#include "dewford_trend.h"
+#include "tv.h"
+#include "field_weather.h"
+#include "berry.h"
#include "main.h"
#include "overworld.h"
-#include "rtc.h"
-#include "time_events.h"
-#include "tv.h"
#include "wallclock.h"
-static void UpdatePerDay(struct Time *time);
-static void UpdatePerMinute(struct Time *time);
-static void ReturnFromStartWallClock(void);
+static void UpdatePerDay(struct Time *localTime);
+static void UpdatePerMinute(struct Time *localTime);
void InitTimeBasedEvents(void)
{
@@ -35,50 +34,49 @@ void DoTimeBasedEvents(void)
}
}
-static void UpdatePerDay(struct Time *time)
+static void UpdatePerDay(struct Time *localTime)
{
u16 *varPtr = GetVarPointer(VAR_DAYS);
int days = *varPtr;
- u16 newDays;
+ u16 daysSince;
- if (days != time->days && days <= time->days)
+ if (days != localTime->days && days <= localTime->days)
{
- newDays = time->days - days;
+ daysSince = localTime->days - days;
ClearDailyFlags();
- UpdateDewfordTrendPerDay(newDays);
- UpdateTVShowsPerDay(newDays);
- UpdateWeatherPerDay(newDays);
- UpdatePartyPokerusTime(newDays);
- UpdateMirageRnd(newDays);
- UpdateBirchState(newDays);
- SetShoalItemFlag(newDays);
- SetRandomLotteryNumber(newDays);
- *varPtr = time->days;
+ UpdateDewfordTrendPerDay(daysSince);
+ UpdateTVShowsPerDay(daysSince);
+ UpdateWeatherPerDay(daysSince);
+ UpdatePartyPokerusTime(daysSince);
+ UpdateMirageRnd(daysSince);
+ UpdateBirchState(daysSince);
+ SetShoalItemFlag(daysSince);
+ SetRandomLotteryNumber(daysSince);
+ *varPtr = localTime->days;
}
}
-static void UpdatePerMinute(struct Time *time)
+static void UpdatePerMinute(struct Time *localTime)
{
- struct Time newTime;
- s32 minutesPassed;
-
- CalcTimeDifference(&newTime, &gSaveBlock2.lastBerryTreeUpdate, time);
- minutesPassed = 1440 * newTime.days + 60 * newTime.hours + newTime.minutes;
-
- if (minutesPassed == 0) // do not do the update for the first minute.
- return;
+ struct Time difference;
+ int minutes;
- if (minutesPassed > -1) // do not perform an update on invalid minutesPassed.
+ CalcTimeDifference(&difference, &gSaveBlock2.lastBerryTreeUpdate, localTime);
+ minutes = 24 * 60 * difference.days + 60 * difference.hours + difference.minutes;
+ if (minutes != 0)
{
- BerryTreeTimeUpdate(minutesPassed);
- gSaveBlock2.lastBerryTreeUpdate = *time;
+ if (minutes >= 0)
+ {
+ BerryTreeTimeUpdate(minutes);
+ gSaveBlock2.lastBerryTreeUpdate = *localTime;
+ }
}
}
static void ReturnFromStartWallClock(void)
{
InitTimeBasedEvents();
- SetMainCallback2(c2_exit_to_overworld_1_continue_scripts_restart_music);
+ SetMainCallback2(CB2_ReturnToFieldContinueScriptPlayMapMusic);
}
void StartWallClock(void)
diff --git a/src/contest_link_80C2020.c b/src/contest_link_80C2020.c
index 8269f424b..f4203dd42 100644
--- a/src/contest_link_80C2020.c
+++ b/src/contest_link_80C2020.c
@@ -753,7 +753,7 @@ static void sub_80C2EA0(u8 taskId)
REG_BLDCNT = 0;
REG_BLDY = 0;
DestroyTask(taskId);
- SetMainCallback2(c2_exit_to_overworld_1_continue_scripts_restart_music);
+ SetMainCallback2(CB2_ReturnToFieldContinueScriptPlayMapMusic);
}
}
}
diff --git a/src/debug/tomomichi_debug_menu.c b/src/debug/tomomichi_debug_menu.c
index daaca570c..07e08eb4f 100644
--- a/src/debug/tomomichi_debug_menu.c
+++ b/src/debug/tomomichi_debug_menu.c
@@ -1885,7 +1885,7 @@ bool8 InitTomomichiDebugWindow(void)
static void debug_sub_808B868(void)
{
- c2_exit_to_overworld_1_continue_scripts_restart_music();
+ CB2_ReturnToFieldContinueScriptPlayMapMusic();
}
static bool8 InitDebugWindow(void)
diff --git a/src/field_specials.c b/src/field_specials.c
index 0e8fe06d9..8cdda2af8 100644
--- a/src/field_specials.c
+++ b/src/field_specials.c
@@ -761,7 +761,7 @@ u8 GetLeadMonFriendshipScore(void)
void CB2_FieldShowRegionMap(void)
{
- FieldInitRegionMap(c2_exit_to_overworld_1_continue_scripts_restart_music);
+ FieldInitRegionMap(CB2_ReturnToFieldContinueScriptPlayMapMusic);
}
void FieldShowRegionMap(void)
diff --git a/src/overworld.c b/src/overworld.c
index 19fe5f377..934b09dbc 100644
--- a/src/overworld.c
+++ b/src/overworld.c
@@ -1441,7 +1441,7 @@ void sub_80546B8(void)
CB2_ReturnToField();
}
-void c2_exit_to_overworld_1_continue_scripts_restart_music(void)
+void CB2_ReturnToFieldContinueScriptPlayMapMusic(void)
{
FieldClearVBlankHBlankCallbacks();
gFieldCallback = sub_8080990;
diff --git a/src/safari_zone.c b/src/safari_zone.c
index 7aa05c7dc..8e5f3c692 100644
--- a/src/safari_zone.c
+++ b/src/safari_zone.c
@@ -110,7 +110,7 @@ void sub_80C824C(void)
{
ScriptContext1_SetupScript(&gUnknown_081C3459);
ScriptContext1_Stop();
- SetMainCallback2(c2_exit_to_overworld_1_continue_scripts_restart_music);
+ SetMainCallback2(CB2_ReturnToFieldContinueScriptPlayMapMusic);
}
}
diff --git a/src/scrcmd.c b/src/scrcmd.c
index d37e1180d..8015705a0 100644
--- a/src/scrcmd.c
+++ b/src/scrcmd.c
@@ -1782,7 +1782,7 @@ bool8 ScrCmd_playslotmachine(struct ScriptContext *ctx)
{
u8 v2 = VarGet(ScriptReadHalfword(ctx));
- PlaySlotMachine(v2, c2_exit_to_overworld_1_continue_scripts_restart_music);
+ PlaySlotMachine(v2, CB2_ReturnToFieldContinueScriptPlayMapMusic);
ScriptContext1_Stop();
return TRUE;
}
diff --git a/src/script_pokemon_util_80C4BF0.c b/src/script_pokemon_util_80C4BF0.c
index f6cb8ae0a..ce6c01439 100644
--- a/src/script_pokemon_util_80C4BF0.c
+++ b/src/script_pokemon_util_80C4BF0.c
@@ -214,7 +214,7 @@ void sub_80C4D80(void)
void ShowContestWinnerCleanup(void)
{
- SetMainCallback2(c2_exit_to_overworld_1_continue_scripts_restart_music);
+ SetMainCallback2(CB2_ReturnToFieldContinueScriptPlayMapMusic);
}
void ShowContestWinner(void)
@@ -521,7 +521,7 @@ void sub_80C5580(void)
break;
}
- SetMainCallback2(c2_exit_to_overworld_1_continue_scripts_restart_music);
+ SetMainCallback2(CB2_ReturnToFieldContinueScriptPlayMapMusic);
}
void ChooseBattleTowerPlayerParty(void)
@@ -546,7 +546,7 @@ void SetBattleTowerPlayerParty(void)
break;
}
- SetMainCallback2(c2_exit_to_overworld_1_continue_scripts_restart_music);
+ SetMainCallback2(CB2_ReturnToFieldContinueScriptPlayMapMusic);
}
void ReducePlayerPartyToThree(void)
diff --git a/src/tv.c b/src/tv.c
index 0c87d53b1..29d7fc442 100644
--- a/src/tv.c
+++ b/src/tv.c
@@ -2073,7 +2073,7 @@ void ChangePokemonNickname(void)
void ChangePokemonNickname_CB(void)
{
SetMonData(&(gPlayerParty[gSpecialVar_0x8004]), MON_DATA_NICKNAME, gStringVar2);
- c2_exit_to_overworld_1_continue_scripts_restart_music();
+ CB2_ReturnToFieldContinueScriptPlayMapMusic();
}
void TV_CopyNicknameToStringVar1AndEnsureTerminated(void)