summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/battle/battle_setup.c8
-rw-r--r--src/braille_puzzles.c4
-rw-r--r--src/debug/kagaya_debug_menu.c2
-rw-r--r--src/event_obj_lock.c12
-rw-r--r--src/event_object_movement.c3
-rw-r--r--src/field_control_avatar.c480
-rw-r--r--src/field_effect.c4
-rw-r--r--src/field_fadetransition.c2
-rw-r--r--src/fldeff_cut.c2
-rw-r--r--src/item_menu.c8
-rw-r--r--src/item_use.c4
-rw-r--r--src/menu.c2
-rw-r--r--src/metatile_behavior.c8
-rw-r--r--src/overworld.c30
-rw-r--r--src/pokemon_menu.c2
-rw-r--r--src/start_menu.c2
-rw-r--r--src/wild_encounter.c12
17 files changed, 304 insertions, 281 deletions
diff --git a/src/battle/battle_setup.c b/src/battle/battle_setup.c
index b5c362258..47211b718 100644
--- a/src/battle/battle_setup.c
+++ b/src/battle/battle_setup.c
@@ -484,8 +484,8 @@ static void Task_BattleStart(u8 taskId)
if (IsBattleTransitionDone() == TRUE)
{
SetMainCallback2(sub_800E7C4);
- prev_quest_postbuffer_cursor_backup_reset();
- overworld_poison_timer_set();
+ RestartWildEncounterImmunitySteps();
+ ClearPoisonStepCounter();
DestroyTask(taskId);
}
break;
@@ -876,8 +876,8 @@ static void CB2_StartFirstBattle(void)
gBattleTypeFlags = BATTLE_TYPE_FIRST_BATTLE;
gMain.savedCallback = CB2_EndFirstBattle;
SetMainCallback2(sub_800E7C4);
- prev_quest_postbuffer_cursor_backup_reset();
- overworld_poison_timer_set();
+ RestartWildEncounterImmunitySteps();
+ ClearPoisonStepCounter();
IncrementGameStat(GAME_STAT_TOTAL_BATTLES);
IncrementGameStat(GAME_STAT_WILD_BATTLES);
}
diff --git a/src/braille_puzzles.c b/src/braille_puzzles.c
index 3cf1661b5..7f26f0a9b 100644
--- a/src/braille_puzzles.c
+++ b/src/braille_puzzles.c
@@ -185,7 +185,7 @@ void Task_BrailleWait(u8 taskId)
data[0] = 4;
break;
}
- sub_8064E2C();
+ ScriptUnfreezeEventObjects();
DestroyTask(taskId);
ScriptContext2_Disable();
break;
@@ -195,7 +195,7 @@ void Task_BrailleWait(u8 taskId)
data[0] = 4;
break;
case 4:
- sub_8064E2C();
+ ScriptUnfreezeEventObjects();
ScriptContext1_SetupScript(S_OpenRegiceChamber);
DestroyTask(taskId);
break;
diff --git a/src/debug/kagaya_debug_menu.c b/src/debug/kagaya_debug_menu.c
index 7bb5cc1d6..89a36b2da 100644
--- a/src/debug/kagaya_debug_menu.c
+++ b/src/debug/kagaya_debug_menu.c
@@ -170,7 +170,7 @@ u8 debug_sub_80B0800(void)
u8 r2;
CloseMenu();
- r2 = sub_8068F18();
+ r2 = TrySetDiveWarp();
if (r2 != 0)
{
gFieldEffectArguments[0] = 0;
diff --git a/src/event_obj_lock.c b/src/event_obj_lock.c
index 624cf0b35..33f37e87e 100644
--- a/src/event_obj_lock.c
+++ b/src/event_obj_lock.c
@@ -86,22 +86,22 @@ void LockSelectedEventObject(void)
}
}
-void sub_8064E2C(void)
+void ScriptUnfreezeEventObjects(void)
{
- u8 objectId = GetEventObjectIdByLocalIdAndMap(0xFF, 0, 0);
- EventObjectClearHeldMovementIfFinished(&gEventObjects[objectId]);
+ u8 playerObjectId = GetEventObjectIdByLocalIdAndMap(0xFF, 0, 0);
+ EventObjectClearHeldMovementIfFinished(&gEventObjects[playerObjectId]);
sub_80A2178();
UnfreezeEventObjects();
}
void unref_sub_8064E5C(void)
{
- u8 objectId;
+ u8 playerObjectId;
if (gEventObjects[gSelectedEventObject].active)
EventObjectClearHeldMovementIfFinished(&gEventObjects[gSelectedEventObject]);
- objectId = GetEventObjectIdByLocalIdAndMap(0xFF, 0, 0);
- EventObjectClearHeldMovementIfFinished(&gEventObjects[objectId]);
+ playerObjectId = GetEventObjectIdByLocalIdAndMap(0xFF, 0, 0);
+ EventObjectClearHeldMovementIfFinished(&gEventObjects[playerObjectId]);
sub_80A2178();
UnfreezeEventObjects();
}
diff --git a/src/event_object_movement.c b/src/event_object_movement.c
index 319274f98..d128bf30f 100644
--- a/src/event_object_movement.c
+++ b/src/event_object_movement.c
@@ -4603,8 +4603,7 @@ bool8 EventObjectCheckHeldMovementStatus(struct EventObject *eventObject)
bool8 EventObjectClearHeldMovementIfFinished(struct EventObject *eventObject)
{
- u8 heldMovementStatus;
- heldMovementStatus = EventObjectCheckHeldMovementStatus(eventObject);
+ u8 heldMovementStatus = EventObjectCheckHeldMovementStatus(eventObject);
if (heldMovementStatus != 0 && heldMovementStatus != 16)
EventObjectClearHeldMovementIfActive(eventObject);
diff --git a/src/field_control_avatar.c b/src/field_control_avatar.c
index 1252f0296..dc35d6fb5 100644
--- a/src/field_control_avatar.c
+++ b/src/field_control_avatar.c
@@ -38,8 +38,8 @@ extern u16 gSpecialVar_0x8004;
extern u16 gSpecialVar_0x8005;
extern u8 gUnknown_020297ED;
-static EWRAM_DATA u8 gUnknown_0202E8C0 = 0;
-static EWRAM_DATA u16 gUnknown_0202E8C2 = 0;
+static EWRAM_DATA u8 sWildEncounterImmunitySteps = 0;
+static EWRAM_DATA u16 sPreviousPlayerMetatileBehavior = 0;
u8 gSelectedEventObject;
@@ -82,40 +82,44 @@ extern u8 S_EggHatch[];
extern u8 gUnknown_0815FD0D[];
extern u8 gUnknown_081C6BDE[];
-static void player_get_pos_to_and_height(struct MapPosition *);
-static void player_get_next_pos_and_height(struct MapPosition *);
-static u16 cur_mapdata_block_role_at_player_pos(int);
-static bool8 sub_80681F0(struct MapPosition *position, u16 b, u8 c);
-static u8 *TryGetScriptOnPressingA(struct MapPosition *position, u8 b, u8 c);
-static u8 *sub_8068364(struct MapPosition *, u8, u8);
-static u8 *TryGetInvisibleEventObjectScript(struct MapPosition *, u8, u8 c);
-static u8 *sub_8068500(struct MapPosition *, u8, u8);
-static u8 *TryGetFieldMoveScript(struct MapPosition *, u8, u8);
-static bool32 sub_8068770(void);
-static bool32 sub_80687A4(void);
-static bool8 sub_80687E4(struct MapPosition *, u16, u16);
-static void happiness_algorithm_step(void);
-static bool8 overworld_poison_step(void);
-static bool8 is_it_battle_time_3(u16);
+static void GetPlayerPosition(struct MapPosition *);
+static void GetInFrontOfPlayerPosition(struct MapPosition *);
+static u16 GetPlayerCurMetatileBehavior(int);
+static bool8 TryStartInteractionScript(struct MapPosition*, u16, u8);
+static u8 *GetInteractionScript(struct MapPosition*, u8, u8);
+static u8 *GetInteractedEventObjectScript(struct MapPosition *, u8, u8);
+static u8 *GetInteractedBackgroundEventScript(struct MapPosition *, u8, u8);
+static u8 *GetInteractedMetatileScript(struct MapPosition *, u8, u8);
+static u8 *GetInteractedWaterScript(struct MapPosition *, u8, u8);
+static bool32 TrySetupDiveDownScript(void);
+static bool32 TrySetupDiveEmergeScript(void);
+static bool8 TryStartStepBasedScript(struct MapPosition *, u16, u16);
+static void UpdateHappinessStep(void);
+static bool8 UpdatePoisonStepCounter(void);
+static bool8 CheckStandardWildEncounter(u16);
static bool8 mapheader_run_first_tag2_script_list_match_conditionally(struct MapPosition *, u16, u8);
-static bool8 sub_8068B30(u16);
-static bool8 is_non_stair_warp_tile(u16, u8);
-static s8 map_warp_check_packed(struct MapHeader *, struct MapPosition *);
+static bool8 IsWarpMetatileBehavior(u16);
+static bool8 IsArrowWarpMetatileBehavior(u16, u8);
+static s8 FindWarpEventByPosition(struct MapHeader *, struct MapPosition *);
static void sub_8068C30(struct MapHeader *, s8, struct MapPosition *);
static bool8 map_warp_consider_2_to_inside(struct MapPosition *, u16, u8);
-static s8 map_warp_check(struct MapHeader *, u16, u16, u8);
-static u8 *mapheader_trigger_activate_at(struct MapHeader *, u16, u16, u8);
-static struct BgEvent *FindInvisibleEventObjectByPosition(struct MapHeader *, u16, u16, u8);;
+static s8 FindWarpEventByCoordsAndId(struct MapHeader *, u16, u16, u8);
+static u8 *GetCoordEventScriptAtPosition(struct MapHeader *, u16, u16, u8);
+static struct BgEvent *FindBackgroundEventByPosition(struct MapHeader *, u16, u16, u8);
+static bool8 TryStartCoordEventScript(struct MapPosition *);
+static bool8 TryStartWarpEventScript(struct MapPosition *, u16);
+static bool8 TryStartCrackedFloorHoleScript(u16);
+static bool8 TryStartStepCountScript(void);
-void FieldClearPlayerInput(struct FieldInput *input)
+void ClearPlayerFieldInput(struct FieldInput *input)
{
input->pressedAButton = 0;
- input->input_field_0_1 = 0;
+ input->checkStandardWildEncounter = 0;
input->pressedStartButton = 0;
input->pressedSelectButton = 0;
input->input_field_0_4 = 0;
input->input_field_0_5 = 0;
- input->input_field_0_6 = 0;
+ input->tookStep = 0;
input->pressedBButton = 0;
input->input_field_1_0 = 0;
input->input_field_1_1 = 0;
@@ -124,13 +128,13 @@ void FieldClearPlayerInput(struct FieldInput *input)
input->dpadDirection = 0;
}
-void FieldGetPlayerInput(struct FieldInput *input, u16 newKeys, u16 heldKeys)
+void GetPlayerFieldInput(struct FieldInput *input, u16 newKeys, u16 heldKeys)
{
- u8 r6 = gPlayerAvatar.tileTransitionState;
- u8 r9 = gPlayerAvatar.runningState;
- bool8 forcedMove = MetatileBehavior_IsMoveTile(cur_mapdata_block_role_at_player_pos(r9));
+ u8 tileTransitionState = gPlayerAvatar.tileTransitionState;
+ u8 runningState = gPlayerAvatar.runningState;
+ bool8 forcedMove = MetatileBehavior_IsMoveTile(GetPlayerCurMetatileBehavior(runningState));
- if ((r6 == 2 && forcedMove == FALSE) || r6 == 0)
+ if ((tileTransitionState == T_TILE_CENTER && forcedMove == FALSE) || tileTransitionState == T_NOT_MOVING)
{
if (GetPlayerSpeed() != 4)
{
@@ -143,19 +147,22 @@ void FieldGetPlayerInput(struct FieldInput *input, u16 newKeys, u16 heldKeys)
if (newKeys & B_BUTTON)
input->pressedBButton = TRUE;
}
+
if (heldKeys & (DPAD_UP | DPAD_DOWN | DPAD_LEFT | DPAD_RIGHT))
{
input->input_field_0_4 = TRUE;
input->input_field_0_5 = TRUE;
}
}
+
if (forcedMove == FALSE)
{
- if (r6 == 2 && r9 == 2)
- input->input_field_0_6 = TRUE;
- if (forcedMove == FALSE && r6 == 2)
- input->input_field_0_1 = TRUE;
+ if (tileTransitionState == T_TILE_CENTER && runningState == MOVING)
+ input->tookStep = TRUE;
+ if (forcedMove == FALSE && tileTransitionState == T_TILE_CENTER)
+ input->checkStandardWildEncounter = TRUE;
}
+
if (heldKeys & DPAD_UP)
input->dpadDirection = DIR_NORTH;
else if (heldKeys & DPAD_DOWN)
@@ -164,19 +171,21 @@ void FieldGetPlayerInput(struct FieldInput *input, u16 newKeys, u16 heldKeys)
input->dpadDirection = DIR_WEST;
else if (heldKeys & DPAD_RIGHT)
input->dpadDirection = DIR_EAST;
+
#if DEBUG
if ((heldKeys & R_BUTTON) && input->pressedStartButton)
{
input->input_field_1_2 = TRUE;
input->pressedStartButton = FALSE;
}
+
if (gUnknown_020297ED)
{
if (heldKeys & R_BUTTON)
{
input->input_field_1_1 = TRUE;
- input->input_field_0_6 = FALSE;
- input->input_field_0_1 = FALSE;
+ input->tookStep = FALSE;
+ input->checkStandardWildEncounter = FALSE;
input->input_field_0_4 = FALSE;
input->input_field_0_5 = FALSE;
if (newKeys & SELECT_BUTTON)
@@ -185,23 +194,24 @@ void FieldGetPlayerInput(struct FieldInput *input, u16 newKeys, u16 heldKeys)
input->pressedSelectButton = FALSE;
}
}
+
if (heldKeys & L_BUTTON)
input->input_field_1_3 = TRUE;
}
#endif
}
-int sub_8068024(struct FieldInput *input)
+int ProcessPlayerFieldInput(struct FieldInput *input)
{
struct MapPosition position;
- u8 r6;
- u16 r4;
+ u8 playerDirection;
+ u16 metatileBehavior;
- r6 = GetPlayerFacingDirection();
- player_get_pos_to_and_height(&position);
- r4 = MapGridGetMetatileBehaviorAt(position.x, position.y);
+ playerDirection = GetPlayerFacingDirection();
+ GetPlayerPosition(&position);
+ metatileBehavior = MapGridGetMetatileBehaviorAt(position.x, position.y);
#if DEBUG
- if (input->input_field_1_3 && dive_warp(&position, r4) == TRUE)
+ if (input->input_field_1_3 && dive_warp(&position, metatileBehavior) == TRUE)
return TRUE;
#endif
@@ -219,31 +229,33 @@ int sub_8068024(struct FieldInput *input)
mapheader_run_first_tag2_script_list_match() == 1)
return TRUE;
- if (input->pressedBButton && sub_80687A4() == 1)
+ if (input->pressedBButton && TrySetupDiveEmergeScript() == TRUE)
return TRUE;
- if (input->input_field_0_6)
+ if (input->tookStep)
{
IncrementGameStat(GAME_STAT_STEPS);
- if (sub_80687E4(&position, r4, r6) == 1)
+ if (TryStartStepBasedScript(&position, metatileBehavior, playerDirection) == TRUE)
return TRUE;
}
- if (input->input_field_0_1 && is_it_battle_time_3(r4) == 1)
+ if (input->checkStandardWildEncounter && CheckStandardWildEncounter(metatileBehavior) == TRUE)
return TRUE;
- if (input->input_field_0_4 && input->dpadDirection == r6)
+ if (input->input_field_0_4 && input->dpadDirection == playerDirection)
{
- if (mapheader_run_first_tag2_script_list_match_conditionally(&position, r4, r6) == 1)
+ if (mapheader_run_first_tag2_script_list_match_conditionally(&position, metatileBehavior, playerDirection) == TRUE)
return TRUE;
}
- player_get_next_pos_and_height(&position);
- r4 = MapGridGetMetatileBehaviorAt(position.x, position.y);
- if (input->pressedAButton && sub_80681F0(&position, r4, r6) == 1)
+
+ GetInFrontOfPlayerPosition(&position);
+ metatileBehavior = MapGridGetMetatileBehaviorAt(position.x, position.y);
+ if (input->pressedAButton && TryStartInteractionScript(&position, metatileBehavior, playerDirection) == TRUE)
return TRUE;
- if (input->input_field_0_5 && input->dpadDirection == r6)
+
+ if (input->input_field_0_5 && input->dpadDirection == playerDirection)
{
- if (map_warp_consider_2_to_inside(&position, r4, r6) == 1)
+ if (map_warp_consider_2_to_inside(&position, metatileBehavior, playerDirection) == TRUE)
return TRUE;
}
- if (input->pressedAButton && sub_8068770() == 1)
+ if (input->pressedAButton && TrySetupDiveDownScript() == TRUE)
return TRUE;
if (input->pressedStartButton)
{
@@ -251,7 +263,7 @@ int sub_8068024(struct FieldInput *input)
sub_8071310();
return TRUE;
}
- if (input->pressedSelectButton && sub_80A6D1C() == TRUE)
+ if (input->pressedSelectButton && UseRegisteredKeyItem() == TRUE)
return TRUE;
#if DEBUG
@@ -271,13 +283,13 @@ int sub_8068024(struct FieldInput *input)
return FALSE;
}
-static void player_get_pos_to_and_height(struct MapPosition *position)
+static void GetPlayerPosition(struct MapPosition *position)
{
PlayerGetDestCoords(&position->x, &position->y);
position->height = PlayerGetZCoord();
}
-static void player_get_next_pos_and_height(struct MapPosition *position)
+static void GetInFrontOfPlayerPosition(struct MapPosition *position)
{
s16 x, y;
@@ -289,7 +301,7 @@ static void player_get_next_pos_and_height(struct MapPosition *position)
position->height = 0;
}
-static u16 cur_mapdata_block_role_at_player_pos(int unused)
+static u16 GetPlayerCurMetatileBehavior(int runningState)
{
s16 x, y;
@@ -297,13 +309,13 @@ static u16 cur_mapdata_block_role_at_player_pos(int unused)
return MapGridGetMetatileBehaviorAt(x, y);
}
-static bool8 sub_80681F0(struct MapPosition *position, u16 b, u8 c)
+static bool8 TryStartInteractionScript(struct MapPosition *position, u16 metatileBehavior, u8 direction)
{
- u8 *script = TryGetScriptOnPressingA(position, b, c);
-
+ u8 *script = GetInteractionScript(position, metatileBehavior, direction);
if (script == NULL)
return FALSE;
+ // Play computer noise for PC-related scripts.
if (script != gUnknown_0815281E
&& script != gUnknown_08152C39
&& script != gUnknown_0815F36C
@@ -315,98 +327,105 @@ static bool8 sub_80681F0(struct MapPosition *position, u16 b, u8 c)
return TRUE;
}
-static u8 *TryGetScriptOnPressingA(struct MapPosition *position, u8 b, u8 c)
+static u8 *GetInteractionScript(struct MapPosition *position, u8 metatileBehavior, u8 direction)
{
- u8 *script;
-
- script = sub_8068364(position, b, c);
+ u8 *script = GetInteractedEventObjectScript(position, metatileBehavior, direction);
if (script != NULL)
return script;
- script = TryGetInvisibleEventObjectScript(position, b, c);
+
+ script = GetInteractedBackgroundEventScript(position, metatileBehavior, direction);
if (script != NULL)
return script;
- script = sub_8068500(position, b, c);
+
+ script = GetInteractedMetatileScript(position, metatileBehavior, direction);
if (script != NULL)
return script;
- script = TryGetFieldMoveScript(position, b, c);
+
+ script = GetInteractedWaterScript(position, metatileBehavior, direction);
if (script != NULL)
return script;
return NULL;
}
-u8 *sub_80682A8(struct MapPosition *position, u8 unused, u8 c)
+u8 *GetInteractedLinkPlayerScript(struct MapPosition *position, u8 metatileBehavior, u8 direction)
{
- u8 r3;
+ u8 eventObjectId;
s32 i;
if (!MetatileBehavior_IsCounter(MapGridGetMetatileBehaviorAt(position->x, position->y)))
- r3 = GetEventObjectIdByXYZ(position->x, position->y, position->height);
+ eventObjectId = GetEventObjectIdByXYZ(position->x, position->y, position->height);
else
- r3 = GetEventObjectIdByXYZ(position->x + gUnknown_0821664C[c].x, position->y + gUnknown_0821664C[c].y, position->height);
- if (r3 == 16 || gEventObjects[r3].localId == 0xFF)
+ eventObjectId = GetEventObjectIdByXYZ(position->x + gUnknown_0821664C[direction].x, position->y + gUnknown_0821664C[direction].y, position->height);
+
+ if (eventObjectId == 16 || gEventObjects[eventObjectId].localId == 0xFF)
return NULL;
+
for (i = 0; i < 4; i++)
{
- if (gLinkPlayerEventObjects[i].active == TRUE && gLinkPlayerEventObjects[i].eventObjId == r3)
+ if (gLinkPlayerEventObjects[i].active == TRUE && gLinkPlayerEventObjects[i].eventObjId == eventObjectId)
return NULL;
}
- gSelectedEventObject = r3;
- gSpecialVar_LastTalked = gEventObjects[r3].localId;
- gSpecialVar_Facing = c;
- return GetEventObjectScriptPointerByEventObjectId(r3);
+
+ gSelectedEventObject = eventObjectId;
+ gSpecialVar_LastTalked = gEventObjects[eventObjectId].localId;
+ gSpecialVar_Facing = direction;
+ return GetEventObjectScriptPointerByEventObjectId(eventObjectId);
}
-static u8 *sub_8068364(struct MapPosition *position, u8 b, u8 c)
+static u8 *GetInteractedEventObjectScript(struct MapPosition *position, u8 metatileBehavior, u8 direction)
{
- u8 r3;
+ u8 eventObjectId;
u8 *script;
- r3 = GetEventObjectIdByXYZ(position->x, position->y, position->height);
- if (r3 == 16 || gEventObjects[r3].localId == 0xFF)
+ eventObjectId = GetEventObjectIdByXYZ(position->x, position->y, position->height);
+ if (eventObjectId == 16 || gEventObjects[eventObjectId].localId == 0xFF)
{
- if (MetatileBehavior_IsCounter(b) != TRUE)
+ if (MetatileBehavior_IsCounter(metatileBehavior) != TRUE)
return NULL;
- r3 = GetEventObjectIdByXYZ(position->x + gUnknown_0821664C[c].x, position->y + gUnknown_0821664C[c].y, position->height);
- if (r3 == 16 || gEventObjects[r3].localId == 0xFF)
+
+ // Look for an event object on the other side of the counter.
+ eventObjectId = GetEventObjectIdByXYZ(position->x + gUnknown_0821664C[direction].x, position->y + gUnknown_0821664C[direction].y, position->height);
+ if (eventObjectId == 16 || gEventObjects[eventObjectId].localId == 0xFF)
return NULL;
}
- //_080683E8
- gSelectedEventObject = r3;
- gSpecialVar_LastTalked = gEventObjects[r3].localId;
- gSpecialVar_Facing = c;
- script = GetEventObjectScriptPointerByEventObjectId(r3);
+
+ gSelectedEventObject = eventObjectId;
+ gSpecialVar_LastTalked = gEventObjects[eventObjectId].localId;
+ gSpecialVar_Facing = direction;
+ script = GetEventObjectScriptPointerByEventObjectId(eventObjectId);
script = GetRamScript(gSpecialVar_LastTalked, script);
return script;
}
-static u8 *TryGetInvisibleEventObjectScript(struct MapPosition *position, u8 unused, u8 c)
+static u8 *GetInteractedBackgroundEventScript(struct MapPosition *position, u8 metatileBehavior, u8 direction)
{
- struct BgEvent *bgEvent = FindInvisibleEventObjectByPosition(&gMapHeader, position->x - 7, position->y - 7, position->height);
+ struct BgEvent *bgEvent = FindBackgroundEventByPosition(&gMapHeader, position->x - 7, position->y - 7, position->height);
if (bgEvent == NULL)
return NULL;
if (bgEvent->bgUnion.script == NULL)
return gUnknown_081C6C02;
+
switch (bgEvent->kind)
{
case 0:
default:
return bgEvent->bgUnion.script;
case 1:
- if (c != 2)
+ if (direction != DIR_NORTH)
return NULL;
break;
case 2:
- if (c != 1)
+ if (direction != DIR_SOUTH)
return NULL;
break;
case 3:
- if (c != 4)
+ if (direction != DIR_EAST)
return NULL;
break;
case 4:
- if (c != 3)
+ if (direction != DIR_WEST)
return NULL;
break;
case 5:
@@ -418,7 +437,7 @@ static u8 *TryGetInvisibleEventObjectScript(struct MapPosition *position, u8 unu
return NULL;
return HiddenItemScript;
case 8:
- if (c == 2)
+ if (direction == DIR_NORTH)
{
gSpecialVar_0x8004 = bgEvent->bgUnion.secretBaseId;
if (sub_80BC050())
@@ -426,63 +445,67 @@ static u8 *TryGetInvisibleEventObjectScript(struct MapPosition *position, u8 unu
}
return NULL;
}
+
return bgEvent->bgUnion.script;
}
-static u8 *sub_8068500(struct MapPosition *position, u8 b, u8 c)
+static u8 *GetInteractedMetatileScript(struct MapPosition *position, u8 metatileBehavior, u8 direction)
{
s8 height;
- if (MetatileBehavior_IsPlayerFacingTVScreen(b, c) == TRUE)
+ if (MetatileBehavior_IsPlayerFacingTVScreen(metatileBehavior, direction) == TRUE)
return Event_TV;
- if (MetatileBehavior_IsPC(b) == TRUE)
+ if (MetatileBehavior_IsPC(metatileBehavior) == TRUE)
return gUnknown_081A0009;
- if (MetatileBehavior_IsClosedSootopolisGymDoor(b) == TRUE)
+ if (MetatileBehavior_IsClosedSootopolisGymDoor(metatileBehavior) == TRUE)
return ClosedSootopolisGymDoorScript;
- if (is_tile_x84(b) == TRUE)
+ if (is_tile_x84(metatileBehavior) == TRUE)
return gUnknown_081A4363;
- if (MetatileBehavior_IsPokeblockFeeder(b) == TRUE)
+ if (MetatileBehavior_IsPokeblockFeeder(metatileBehavior) == TRUE)
return gUnknown_081C346A;
- if (MetatileBehavior_IsTrickHousePuzzleDoor(b) == TRUE)
+ if (MetatileBehavior_IsTrickHousePuzzleDoor(metatileBehavior) == TRUE)
return gUnknown_081616E1;
- if (MetatileBehavior_IsRegionMap(b) == TRUE)
+ if (MetatileBehavior_IsRegionMap(metatileBehavior) == TRUE)
return Event_WorldMap;
- if (sub_805791C(b) == TRUE)
+ if (sub_805791C(metatileBehavior) == TRUE)
return S_RunningShoesManual;
- if (MetatileBehavior_IsPictureBookShelf(b) == TRUE)
+ if (MetatileBehavior_IsPictureBookShelf(metatileBehavior) == TRUE)
return PictureBookShelfScript;
- if (MetatileBehavior_IsBookShelf(b) == TRUE)
+ if (MetatileBehavior_IsBookShelf(metatileBehavior) == TRUE)
return BookshelfScript;
- if (MetatileBehavior_IsPokeCenterBookShelf(b) == TRUE)
+ if (MetatileBehavior_IsPokeCenterBookShelf(metatileBehavior) == TRUE)
return PokemonCenterBookshelfScript;
- if (MetatileBehavior_IsVase(b) == TRUE)
+ if (MetatileBehavior_IsVase(metatileBehavior) == TRUE)
return VaseScript;
- if (MetatileBehavior_IsTrashCan(b) == TRUE)
+ if (MetatileBehavior_IsTrashCan(metatileBehavior) == TRUE)
return TrashCanScript;
- if (MetatileBehavior_IsShopShelf(b) == TRUE)
+ if (MetatileBehavior_IsShopShelf(metatileBehavior) == TRUE)
return ShopShelfScript;
- if (MetatileBehavior_IsBlueprint(b) == TRUE)
+ if (MetatileBehavior_IsBlueprint(metatileBehavior) == TRUE)
return BlueprintScript;
+
height = position->height;
if (height == MapGridGetZCoordAt(position->x, position->y))
{
- if (MetatileBehavior_IsSecretBasePC(b) == TRUE)
+ if (MetatileBehavior_IsSecretBasePC(metatileBehavior) == TRUE)
return gUnknown_0815F36C;
- if (sub_805724C(b) == TRUE)
+ if (sub_805724C(metatileBehavior) == TRUE)
return gUnknown_0815F43A;
- if (sub_8057364(b) == TRUE)
+ if (sub_8057364(metatileBehavior) == TRUE)
return gUnknown_0815F523;
- if (sub_8057378(b) == TRUE)
+ if (sub_8057378(metatileBehavior) == TRUE)
return gUnknown_0815F528;
}
+
return NULL;
}
-static u8 *TryGetFieldMoveScript(struct MapPosition *unused1, u8 b, u8 unused2)
+static u8 *GetInteractedWaterScript(struct MapPosition *unused1, u8 metatileBehavior, u8 direction)
{
if (FlagGet(FLAG_BADGE05_GET) == TRUE && PartyHasMonWithSurf() == TRUE && IsPlayerFacingSurfableFishableWater() == TRUE)
return UseSurfScript;
- if (MetatileBehavior_IsWaterfall(b) == TRUE)
+
+ if (MetatileBehavior_IsWaterfall(metatileBehavior) == TRUE)
{
if (FlagGet(FLAG_BADGE08_GET) == TRUE && IsPlayerSurfingNorth() == TRUE)
return S_UseWaterfall;
@@ -492,9 +515,9 @@ static u8 *TryGetFieldMoveScript(struct MapPosition *unused1, u8 b, u8 unused2)
return NULL;
}
-static bool32 sub_8068770(void)
+static bool32 TrySetupDiveDownScript(void)
{
- if (FlagGet(FLAG_BADGE07_GET) && sub_8068F18() == 2)
+ if (FlagGet(FLAG_BADGE07_GET) && TrySetDiveWarp() == 2)
{
ScriptContext1_SetupScript(UseDiveScript);
return TRUE;
@@ -502,9 +525,9 @@ static bool32 sub_8068770(void)
return FALSE;
}
-static bool32 sub_80687A4(void)
+static bool32 TrySetupDiveEmergeScript(void)
{
- if (FlagGet(FLAG_BADGE07_GET) && gMapHeader.mapType == MAP_TYPE_UNDERWATER && sub_8068F18() == 1)
+ if (FlagGet(FLAG_BADGE07_GET) && gMapHeader.mapType == MAP_TYPE_UNDERWATER && TrySetDiveWarp() == 1)
{
ScriptContext1_SetupScript(S_UseDiveUnderwater);
return TRUE;
@@ -512,24 +535,24 @@ static bool32 sub_80687A4(void)
return FALSE;
}
-static bool8 sub_80687E4(struct MapPosition *position, u16 b, u16 unused)
+static bool8 TryStartStepBasedScript(struct MapPosition *position, u16 metatileBehavior, u16 direction)
{
- if (mapheader_trigger_activate_at__run_now(position) == TRUE)
+ if (TryStartCoordEventScript(position) == TRUE)
return TRUE;
- if (sub_8068A64(position, b) == TRUE)
+ if (TryStartWarpEventScript(position, metatileBehavior) == TRUE)
return TRUE;
- if (sub_8068870(b) == TRUE)
+ if (TryStartCrackedFloorHoleScript(metatileBehavior) == TRUE)
return TRUE;
- if (sub_8068894() == TRUE)
+ if (TryStartStepCountScript() == TRUE)
return TRUE;
if (UpdateRepelCounter() == TRUE)
return TRUE;
return FALSE;
}
-bool8 mapheader_trigger_activate_at__run_now(struct MapPosition *position)
+bool8 TryStartCoordEventScript(struct MapPosition *position)
{
- u8 *script = mapheader_trigger_activate_at(&gMapHeader, position->x - 7, position->y - 7, position->height);
+ u8 *script = GetCoordEventScriptAtPosition(&gMapHeader, position->x - 7, position->y - 7, position->height);
if (script == NULL)
return FALSE;
@@ -537,10 +560,9 @@ bool8 mapheader_trigger_activate_at__run_now(struct MapPosition *position)
return TRUE;
}
-//can be u8, u16, or u32
-bool8 sub_8068870(u16 a)
+bool8 TryStartCrackedFloorHoleScript(u16 metatileBehavior)
{
- if (MetatileBehavior_IsCrackedFloorHole(a))
+ if (MetatileBehavior_IsCrackedFloorHole(metatileBehavior))
{
ScriptContext1_SetupScript(S_FallDownHole);
return TRUE;
@@ -548,11 +570,11 @@ bool8 sub_8068870(u16 a)
return FALSE;
}
-bool8 sub_8068894(void)
+bool8 TryStartStepCountScript(void)
{
IncrementRematchStepCounter();
- happiness_algorithm_step();
- if (overworld_poison_step() == TRUE)
+ UpdateHappinessStep();
+ if (UpdatePoisonStepCounter() == TRUE)
{
ScriptContext1_SetupScript(gUnknown_081A14B8);
return TRUE;
@@ -573,12 +595,12 @@ bool8 sub_8068894(void)
return FALSE;
}
-void unref_sub_80688F8(void)
+void Unref_ClearHappinessStepCounter(void)
{
VarSet(VAR_HAPPINESS_STEP_COUNTER, 0);
}
-static void happiness_algorithm_step(void)
+static void UpdateHappinessStep(void)
{
u16 *ptr = GetVarPointer(VAR_HAPPINESS_STEP_COUNTER);
int i;
@@ -596,12 +618,12 @@ static void happiness_algorithm_step(void)
}
}
-void overworld_poison_timer_set(void)
+void ClearPoisonStepCounter(void)
{
VarSet(VAR_POISON_STEP_COUNTER, 0);
}
-static bool8 overworld_poison_step(void)
+static bool8 UpdatePoisonStepCounter(void)
{
u16 *ptr;
@@ -626,75 +648,75 @@ static bool8 overworld_poison_step(void)
return FALSE;
}
-void prev_quest_postbuffer_cursor_backup_reset(void)
+void RestartWildEncounterImmunitySteps(void)
{
- gUnknown_0202E8C0 = 0;
+ // Starts at 0 and counts up to 4 steps.
+ sWildEncounterImmunitySteps = 0;
}
-static bool8 is_it_battle_time_3(u16 a)
+static bool8 CheckStandardWildEncounter(u16 metatileBehavior)
{
- if (gUnknown_0202E8C0 < 4)
+ if (sWildEncounterImmunitySteps < 4)
{
- gUnknown_0202E8C0++;
- gUnknown_0202E8C2 = a;
+ sWildEncounterImmunitySteps++;
+ sPreviousPlayerMetatileBehavior = metatileBehavior;
return FALSE;
}
- if (StandardWildEncounter(a, gUnknown_0202E8C2) == TRUE)
+
+ if (StandardWildEncounter(metatileBehavior, sPreviousPlayerMetatileBehavior) == TRUE)
{
- gUnknown_0202E8C0 = 0;
- gUnknown_0202E8C2 = a;
+ sWildEncounterImmunitySteps = 0;
+ sPreviousPlayerMetatileBehavior = metatileBehavior;
return TRUE;
}
- else
- {
- gUnknown_0202E8C2 = a;
- return FALSE;
- }
+
+ sPreviousPlayerMetatileBehavior = metatileBehavior;
+ return FALSE;
}
-static bool8 mapheader_run_first_tag2_script_list_match_conditionally(struct MapPosition *position, u16 b, u8 c)
+static bool8 mapheader_run_first_tag2_script_list_match_conditionally(struct MapPosition *position, u16 metatileBehavior, u8 direction)
{
- s8 r6 = map_warp_check_packed(&gMapHeader, position);
+ s8 warpEventId = FindWarpEventByPosition(&gMapHeader, position);
- if (is_non_stair_warp_tile(b, c) == TRUE && r6 != -1)
+ if (IsArrowWarpMetatileBehavior(metatileBehavior, direction) == TRUE && warpEventId != -1)
{
walkrun_find_lowest_active_bit_in_bitfield();
- sub_8068C30(&gMapHeader, r6, position);
+ sub_8068C30(&gMapHeader, warpEventId, position);
sub_8080E88();
return TRUE;
}
return FALSE;
}
-bool8 sub_8068A64(struct MapPosition *position, u16 b)
+bool8 TryStartWarpEventScript(struct MapPosition *position, u16 metatileBehavior)
{
- s8 r4 = map_warp_check_packed(&gMapHeader, position);
+ s8 warpEventId = FindWarpEventByPosition(&gMapHeader, position);
- if (r4 != -1 && sub_8068B30(b) == TRUE)
+ if (warpEventId != -1 && IsWarpMetatileBehavior(metatileBehavior) == TRUE)
{
walkrun_find_lowest_active_bit_in_bitfield();
- sub_8068C30(&gMapHeader, r4, position);
- if (MetatileBehavior_IsEscalator(b) == TRUE)
+ sub_8068C30(&gMapHeader, warpEventId, position);
+ if (MetatileBehavior_IsEscalator(metatileBehavior) == TRUE)
{
- sub_8080F2C(b);
+ sub_8080F2C(metatileBehavior);
return TRUE;
}
- if (MetatileBehavior_IsLavaridgeB1FWarp(b) == TRUE)
+ if (MetatileBehavior_IsLavaridgeB1FWarp(metatileBehavior) == TRUE)
{
sub_8080F48();
return TRUE;
}
- if (MetatileBehavior_IsLavaridge1FWarp(b) == TRUE)
+ if (MetatileBehavior_IsLavaridge1FWarp(metatileBehavior) == TRUE)
{
sub_8080F58();
return TRUE;
}
- if (MetatileBehavior_IsAquaHideoutWarp(b) == TRUE)
+ if (MetatileBehavior_IsAquaHideoutWarp(metatileBehavior) == TRUE)
{
sub_8080F68();
return TRUE;
}
- if (MetatileBehavior_IsMtPyreHole(b) == TRUE)
+ if (MetatileBehavior_IsMtPyreHole(metatileBehavior) == TRUE)
{
ScriptContext1_SetupScript(gUnknown_081C6BDE);
return TRUE;
@@ -705,44 +727,44 @@ bool8 sub_8068A64(struct MapPosition *position, u16 b)
return FALSE;
}
-static bool8 sub_8068B30(u16 a)
+static bool8 IsWarpMetatileBehavior(u16 metatileBehavior)
{
- if (MetatileBehavior_IsWarpDoor(a) != TRUE
- && MetatileBehavior_IsLadder(a) != TRUE
- && MetatileBehavior_IsEscalator(a) != TRUE
- && MetatileBehavior_IsNonAnimDoor(a) != TRUE
- && MetatileBehavior_IsLavaridgeB1FWarp(a) != TRUE
- && MetatileBehavior_IsLavaridge1FWarp(a) != TRUE
- && MetatileBehavior_IsAquaHideoutWarp(a) != TRUE
- && MetatileBehavior_IsMtPyreHole(a) != TRUE)
+ if (MetatileBehavior_IsWarpDoor(metatileBehavior) != TRUE
+ && MetatileBehavior_IsLadder(metatileBehavior) != TRUE
+ && MetatileBehavior_IsEscalator(metatileBehavior) != TRUE
+ && MetatileBehavior_IsNonAnimDoor(metatileBehavior) != TRUE
+ && MetatileBehavior_IsLavaridgeB1FWarp(metatileBehavior) != TRUE
+ && MetatileBehavior_IsLavaridge1FWarp(metatileBehavior) != TRUE
+ && MetatileBehavior_IsAquaHideoutWarp(metatileBehavior) != TRUE
+ && MetatileBehavior_IsMtPyreHole(metatileBehavior) != TRUE)
return FALSE;
return TRUE;
}
-static bool8 is_non_stair_warp_tile(u16 a, u8 b)
+static bool8 IsArrowWarpMetatileBehavior(u16 metatileBehavior, u8 direction)
{
- switch (b)
+ switch (direction)
{
- case 2:
- return MetatileBehavior_IsNorthArrowWarp(a);
- case 1:
- return MetatileBehavior_IsSouthArrowWarp(a);
- case 3:
- return MetatileBehavior_IsWestArrowWarp(a);
- case 4:
- return MetatileBehavior_IsEastArrowWarp(a);
+ case DIR_NORTH:
+ return MetatileBehavior_IsNorthArrowWarp(metatileBehavior);
+ case DIR_SOUTH:
+ return MetatileBehavior_IsSouthArrowWarp(metatileBehavior);
+ case DIR_WEST:
+ return MetatileBehavior_IsWestArrowWarp(metatileBehavior);
+ case DIR_EAST:
+ return MetatileBehavior_IsEastArrowWarp(metatileBehavior);
}
return FALSE;
}
-static s8 map_warp_check_packed(struct MapHeader *mapHeader, struct MapPosition *position)
+static s8 FindWarpEventByPosition(struct MapHeader *mapHeader, struct MapPosition *position)
{
- return map_warp_check(mapHeader, position->x - 7, position->y - 7, position->height);
+ return FindWarpEventByCoordsAndId(mapHeader, position->x - 7, position->y - 7, position->height);
}
-static void sub_8068C30(struct MapHeader *unused, s8 b, struct MapPosition *position)
+static void sub_8068C30(struct MapHeader *unused, s8 warpEventId, struct MapPosition *position)
{
- struct WarpEvent *warpEvent = &gMapHeader.events->warps[b];
+ struct WarpEvent *warpEvent = &gMapHeader.events->warps[warpEventId];
if (warpEvent->mapNum == 0x7F)
{
@@ -756,28 +778,28 @@ static void sub_8068C30(struct MapHeader *unused, s8 b, struct MapPosition *posi
sub_80535C4(position->x, position->y);
mapHeader = Overworld_GetMapHeaderByGroupAndId(warpEvent->unk7, warpEvent->mapNum);
if (mapHeader->events->warps[warpEvent->mapGroup].mapNum == 0x7F)
- saved_warp2_set(mapHeader->events->warps[b].mapGroup, gSaveBlock1.location.mapGroup, gSaveBlock1.location.mapNum, b);
+ saved_warp2_set(mapHeader->events->warps[warpEventId].mapGroup, gSaveBlock1.location.mapGroup, gSaveBlock1.location.mapNum, warpEventId);
}
}
-static bool8 map_warp_consider_2_to_inside(struct MapPosition *position, u16 b, u8 c)
+static bool8 map_warp_consider_2_to_inside(struct MapPosition *position, u16 metatileBehavior, u8 direction)
{
- s8 r4;
+ s8 warpEventId;
- if (c == 2)
+ if (direction == DIR_NORTH)
{
- if (sub_80571C0(b) == TRUE)
+ if (sub_80571C0(metatileBehavior) == TRUE)
{
sub_80BC038(position, gMapHeader.events);
return TRUE;
}
- if (MetatileBehavior_IsWarpDoor(b) == TRUE)
+ if (MetatileBehavior_IsWarpDoor(metatileBehavior) == TRUE)
{
- r4 = map_warp_check_packed(&gMapHeader, position);
- if (r4 != -1 && sub_8068B30(b) == TRUE)
+ warpEventId = FindWarpEventByPosition(&gMapHeader, position);
+ if (warpEventId != -1 && IsWarpMetatileBehavior(metatileBehavior) == TRUE)
{
walkrun_find_lowest_active_bit_in_bitfield();
- sub_8068C30(&gMapHeader, r4, position);
+ sub_8068C30(&gMapHeader, warpEventId, position);
sub_8080EF0();
return TRUE;
}
@@ -786,7 +808,7 @@ static bool8 map_warp_consider_2_to_inside(struct MapPosition *position, u16 b,
return FALSE;
}
-static s8 map_warp_check(struct MapHeader *mapHeader, u16 x, u16 y, u8 warpId)
+static s8 FindWarpEventByCoordsAndId(struct MapHeader *mapHeader, u16 x, u16 y, u8 warpId)
{
s32 i;
struct WarpEvent *warpEvent = mapHeader->events->warps;
@@ -803,7 +825,7 @@ static s8 map_warp_check(struct MapHeader *mapHeader, u16 x, u16 y, u8 warpId)
return -1;
}
-static u8 *trigger_activate(struct CoordEvent *coordEvent)
+static u8 *TryRunCoordEventScript(struct CoordEvent *coordEvent)
{
if (coordEvent != NULL)
{
@@ -823,7 +845,7 @@ static u8 *trigger_activate(struct CoordEvent *coordEvent)
return NULL;
}
-static u8 *mapheader_trigger_activate_at(struct MapHeader *mapHeader, u16 x, u16 y, u8 elevation)
+static u8 *GetCoordEventScriptAtPosition(struct MapHeader *mapHeader, u16 x, u16 y, u8 elevation)
{
s32 i;
struct CoordEvent *coordEvents = mapHeader->events->coordEvents;
@@ -835,7 +857,7 @@ static u8 *mapheader_trigger_activate_at(struct MapHeader *mapHeader, u16 x, u16
{
if (coordEvents[i].elevation == elevation || coordEvents[i].elevation == 0)
{
- u8 *script = trigger_activate(&coordEvents[i]);
+ u8 *script = TryRunCoordEventScript(&coordEvents[i]);
if (script != NULL)
return script;
}
@@ -844,12 +866,12 @@ static u8 *mapheader_trigger_activate_at(struct MapHeader *mapHeader, u16 x, u16
return NULL;
}
-u8 *sub_8068E24(struct MapPosition *position)
+u8 *GetCoordEventScriptAtMapPosition(struct MapPosition *position)
{
- return mapheader_trigger_activate_at(&gMapHeader, position->x - 7, position->y - 7, position->height);
+ return GetCoordEventScriptAtPosition(&gMapHeader, position->x - 7, position->y - 7, position->height);
}
-static struct BgEvent *FindInvisibleEventObjectByPosition(struct MapHeader *mapHeader, u16 b, u16 c, u8 d)
+static struct BgEvent *FindBackgroundEventByPosition(struct MapHeader *mapHeader, u16 x, u16 y, u8 elevation)
{
u8 i;
struct BgEvent *bgEvents = mapHeader->events->bgEvents;
@@ -857,20 +879,20 @@ static struct BgEvent *FindInvisibleEventObjectByPosition(struct MapHeader *mapH
for (i = 0; i < bgEventCount; i++)
{
- if ((u16)bgEvents[i].x == b && (u16)bgEvents[i].y == c)
+ if ((u16)bgEvents[i].x == x && (u16)bgEvents[i].y == y)
{
- if (bgEvents[i].unk4 == d || bgEvents[i].unk4 == 0)
+ if (bgEvents[i].elevation == elevation || bgEvents[i].elevation == 0)
return &bgEvents[i];
}
}
return NULL;
}
-bool8 dive_warp(struct MapPosition *position, u16 b)
+bool8 dive_warp(struct MapPosition *position, u16 metatileBehavior)
{
- if (gMapHeader.mapType == MAP_TYPE_UNDERWATER && sub_805750C(b) == 0)
+ if (gMapHeader.mapType == MAP_TYPE_UNDERWATER && !MetatileBehavior_IsNotSurfacable(metatileBehavior))
{
- if (sub_80538B0(position->x - 7, position->y - 7))
+ if (SetDiveWarpEmerge(position->x - 7, position->y - 7))
{
walkrun_find_lowest_active_bit_in_bitfield();
sp13E_warp_to_last_warp();
@@ -878,9 +900,9 @@ bool8 dive_warp(struct MapPosition *position, u16 b)
return TRUE;
}
}
- else if (sub_80574EC(b) == TRUE)
+ else if (MetatileBehavior_IsDiveable(metatileBehavior) == TRUE)
{
- if (sub_80538D0(position->x - 7, position->y - 7))
+ if (SetDiveWarpDive(position->x - 7, position->y - 7))
{
walkrun_find_lowest_active_bit_in_bitfield();
sp13E_warp_to_last_warp();
@@ -891,21 +913,21 @@ bool8 dive_warp(struct MapPosition *position, u16 b)
return FALSE;
}
-u8 sub_8068F18(void)
+u8 TrySetDiveWarp(void)
{
s16 x, y;
- u8 r5;
+ u8 metatileBehavior;
PlayerGetDestCoords(&x, &y);
- r5 = MapGridGetMetatileBehaviorAt(x, y);
- if (gMapHeader.mapType == MAP_TYPE_UNDERWATER && sub_805750C(r5) == 0)
+ metatileBehavior = MapGridGetMetatileBehaviorAt(x, y);
+ if (gMapHeader.mapType == MAP_TYPE_UNDERWATER && !MetatileBehavior_IsNotSurfacable(metatileBehavior))
{
- if (sub_80538B0(x - 7, y - 7) == TRUE)
+ if (SetDiveWarpEmerge(x - 7, y - 7) == TRUE)
return 1;
}
- else if (sub_80574EC(r5) == TRUE)
+ else if (MetatileBehavior_IsDiveable(metatileBehavior) == TRUE)
{
- if (sub_80538D0(x - 7, y - 7) == TRUE)
+ if (SetDiveWarpDive(x - 7, y - 7) == TRUE)
return 2;
}
return 0;
@@ -913,12 +935,12 @@ u8 sub_8068F18(void)
u8 *GetEventObjectScriptPointerPlayerFacing(void)
{
- u8 r4;
+ u8 direction;
struct MapPosition position;
- r4 = GetPlayerMovementDirection();
- player_get_next_pos_and_height(&position);
- return sub_8068364(&position, MapGridGetMetatileBehaviorAt(position.x, position.y), r4);
+ direction = GetPlayerMovementDirection();
+ GetInFrontOfPlayerPosition(&position);
+ return GetInteractedEventObjectScript(&position, MapGridGetMetatileBehaviorAt(position.x, position.y), direction);
}
int SetCableClubWarp(void)
@@ -926,8 +948,8 @@ int SetCableClubWarp(void)
struct MapPosition position;
GetPlayerMovementDirection(); //unnecessary
- player_get_pos_to_and_height(&position);
+ GetPlayerPosition(&position);
MapGridGetMetatileBehaviorAt(position.x, position.y); //unnecessary
- sub_8068C30(&gMapHeader, map_warp_check_packed(&gMapHeader, &position), &position);
+ sub_8068C30(&gMapHeader, FindWarpEventByPosition(&gMapHeader, &position), &position);
return 0;
}
diff --git a/src/field_effect.c b/src/field_effect.c
index 24609254a..2005f88be 100644
--- a/src/field_effect.c
+++ b/src/field_effect.c
@@ -18,6 +18,7 @@
#include "event_object_movement.h"
#include "metatile_behavior.h"
#include "field_camera.h"
+#include "field_control_avatar.h"
#include "field_effect.h"
#include "field_fadetransition.h"
#include "fieldmap.h"
@@ -1623,8 +1624,7 @@ bool8 sub_8087058(struct Task *task, struct EventObject *eventObject)
return FALSE;
}
-void Task_Dive(u8);
-extern int dive_warp(struct MapPosition *, u16);
+static void Task_Dive(u8);
bool8 FldEff_UseDive(void)
{
diff --git a/src/field_fadetransition.c b/src/field_fadetransition.c
index 7a65c696a..8610edca2 100644
--- a/src/field_fadetransition.c
+++ b/src/field_fadetransition.c
@@ -339,7 +339,7 @@ void task_mpl_807E3C8(u8 taskId)
{
ScriptContext2_Disable();
DestroyTask(taskId);
- sub_8064E2C();
+ ScriptUnfreezeEventObjects();
}
}
diff --git a/src/fldeff_cut.c b/src/fldeff_cut.c
index ce580a65c..58409b4f3 100644
--- a/src/fldeff_cut.c
+++ b/src/fldeff_cut.c
@@ -374,7 +374,7 @@ static void CutGrassSpriteCallbackEnd(struct Sprite *sprite)
for (i = 1; i < 8; i++)
DestroySprite(&gSprites[eCutGrassSpriteArray[i]]);
FieldEffectStop(&gSprites[eCutGrassSpriteArray[0]], FLDEFF_CUT_GRASS);
- sub_8064E2C();
+ ScriptUnfreezeEventObjects();
ScriptContext2_Disable();
}
diff --git a/src/item_menu.c b/src/item_menu.c
index 78c342e90..da77760dd 100644
--- a/src/item_menu.c
+++ b/src/item_menu.c
@@ -54,7 +54,7 @@ extern void Shop_FadeReturnToMartMenu(void);
extern void sub_80546B8(u8);
extern void sub_804E990(u8);
extern void sub_802E424(u8);
-extern void sub_8064E2C(void);
+extern void ScriptUnfreezeEventObjects(void);
struct UnknownStruct2
{
@@ -2733,7 +2733,7 @@ void CleanUpOverworldMessage(u8 taskId)
{
Menu_EraseWindowRect(0, 13, 29, 19);
DestroyTask(taskId);
- sub_8064E2C();
+ ScriptUnfreezeEventObjects();
ScriptContext2_Disable();
}
@@ -3346,10 +3346,10 @@ static void OnItemSelect_PC(u8 taskId)
}
}
-bool32 sub_80A6D1C(void)
+bool32 UseRegisteredKeyItem(void)
{
HideMapNamePopup();
- if (gSaveBlock1.registeredItem != 0)
+ if (gSaveBlock1.registeredItem != ITEM_NONE)
{
if (CheckBagHasItem(gSaveBlock1.registeredItem, 1) == TRUE)
{
diff --git a/src/item_use.c b/src/item_use.c
index 5dfaa942d..69fcd51de 100644
--- a/src/item_use.c
+++ b/src/item_use.c
@@ -204,7 +204,7 @@ void ItemUseOnFieldCB_Bike(u8 taskId)
if (ItemId_GetSecondaryId(gSpecialVar_ItemId) == 1)
GetOnOffBike(4);
- sub_8064E2C();
+ ScriptUnfreezeEventObjects();
ScriptContext2_Disable();
DestroyTask(taskId);
}
@@ -312,7 +312,7 @@ void RunItemfinderResults(u8 taskId)
void ExitItemfinder(u8 taskId)
{
Menu_EraseWindowRect(0, 14, 29, 19);
- sub_8064E2C();
+ ScriptUnfreezeEventObjects();
ScriptContext2_Disable();
DestroyTask(taskId);
}
diff --git a/src/menu.c b/src/menu.c
index ba3199d5a..60aaeba32 100644
--- a/src/menu.c
+++ b/src/menu.c
@@ -54,7 +54,7 @@ void CloseMenu(void)
{
PlaySE(SE_SELECT);
Menu_EraseScreen();
- sub_8064E2C();
+ ScriptUnfreezeEventObjects();
ScriptContext2_Disable();
Menu_DestroyCursor();
}
diff --git a/src/metatile_behavior.c b/src/metatile_behavior.c
index d05ba0b89..b8a490dde 100644
--- a/src/metatile_behavior.c
+++ b/src/metatile_behavior.c
@@ -891,15 +891,17 @@ bool8 sub_80574D8(u8 var)
return FALSE;
}
-bool8 sub_80574EC(u8 var)
+bool8 MetatileBehavior_IsDiveable(u8 metatileBehavior)
{
- if (var == MB_SEMI_DEEP_WATER || var == MB_DEEP_WATER || var == MB_SOOTOPOLIS_DEEP_WATER)
+ if (metatileBehavior == MB_SEMI_DEEP_WATER
+ || metatileBehavior == MB_DEEP_WATER
+ || metatileBehavior == MB_SOOTOPOLIS_DEEP_WATER)
return TRUE;
else
return FALSE;
}
-bool8 sub_805750C(u8 var)
+bool8 MetatileBehavior_IsNotSurfacable(u8 var)
{
if (var == MB_NO_SURFACING || var == MB_SEAWEED_NO_SURFACING)
return TRUE;
diff --git a/src/overworld.c b/src/overworld.c
index c27ac999f..fa7fa84e3 100644
--- a/src/overworld.c
+++ b/src/overworld.c
@@ -560,9 +560,9 @@ struct MapConnection *GetMapConnection(u8 dir)
return NULL;
}
-bool8 sub_8053850(u8 dir, u16 x, u16 y)
+static bool8 SetDiveWarp(u8 direction, u16 x, u16 y)
{
- struct MapConnection *connection = GetMapConnection(dir);
+ struct MapConnection *connection = GetMapConnection(direction);
if (connection != NULL)
{
@@ -578,14 +578,14 @@ bool8 sub_8053850(u8 dir, u16 x, u16 y)
return TRUE;
}
-bool8 sub_80538B0(u16 x, u16 y)
+bool8 SetDiveWarpEmerge(u16 x, u16 y)
{
- return sub_8053850(CONNECTION_EMERGE, x, y);
+ return SetDiveWarp(CONNECTION_EMERGE, x, y);
}
-bool8 sub_80538D0(u16 x, u16 y)
+bool8 SetDiveWarpDive(u16 x, u16 y)
{
- return sub_8053850(CONNECTION_DIVE, x, y);
+ return SetDiveWarp(CONNECTION_DIVE, x, y);
}
void sub_80538F0(u8 mapGroup, u8 mapNum)
@@ -599,7 +599,7 @@ void sub_80538F0(u8 mapGroup, u8 mapNum)
LoadEventObjTemplatesFromHeader();
ClearTempFieldEventData();
ResetCyclingRoadChallengeData();
- prev_quest_postbuffer_cursor_backup_reset();
+ RestartWildEncounterImmunitySteps();
TryUpdateRandomTrainerRematches(mapGroup, mapNum);
DoTimeBasedEvents();
SetSav1WeatherFromCurrMapHeader();
@@ -634,7 +634,7 @@ void sub_8053994(u32 a1)
v3 = Overworld_MapTypeIsIndoors(gMapHeader.mapType);
ClearTempFieldEventData();
ResetCyclingRoadChallengeData();
- prev_quest_postbuffer_cursor_backup_reset();
+ RestartWildEncounterImmunitySteps();
TryUpdateRandomTrainerRematches(gSaveBlock1.location.mapGroup, gSaveBlock1.location.mapNum);
if (a1 != 1)
DoTimeBasedEvents();
@@ -1183,21 +1183,21 @@ bool32 is_c1_link_related_active(void)
void c1_overworld_normal(u16 newKeys, u16 heldKeys)
{
- struct FieldInput inputStruct;
+ struct FieldInput fieldInput;
sub_8059204();
- FieldClearPlayerInput(&inputStruct);
- FieldGetPlayerInput(&inputStruct, newKeys, heldKeys);
+ ClearPlayerFieldInput(&fieldInput);
+ GetPlayerFieldInput(&fieldInput, newKeys, heldKeys);
if (!ScriptContext2_IsEnabled())
{
- if (sub_8068024(&inputStruct) == 1)
+ if (ProcessPlayerFieldInput(&fieldInput) == 1)
{
ScriptContext2_Enable();
HideMapNamePopup();
}
else
{
- player_step(inputStruct.dpadDirection, newKeys, heldKeys);
+ player_step(fieldInput.dpadDirection, newKeys, heldKeys);
}
}
}
@@ -2304,7 +2304,7 @@ u8 *sub_8055648(struct UnkStruct_8054FF8 *a1)
{
if (a1->c != 2)
return 0;
- return sub_8068E24(&a1->sub);
+ return GetCoordEventScriptAtMapPosition(&a1->sub);
}
bool32 sub_8055660(struct UnkStruct_8054FF8 *a1)
@@ -2344,7 +2344,7 @@ u8 *sub_805568C(struct UnkStruct_8054FF8 *a1)
return TradeRoom_ReadTrainerCard2;
}
- return sub_80682A8(&unkStruct, a1->field_C, a1->d);
+ return GetInteractedLinkPlayerScript(&unkStruct, a1->field_C, a1->d);
}
u16 sub_8055758(u8 *script)
diff --git a/src/pokemon_menu.c b/src/pokemon_menu.c
index 441dc0842..df8621b4b 100644
--- a/src/pokemon_menu.c
+++ b/src/pokemon_menu.c
@@ -883,7 +883,7 @@ static void sub_808ADAC(void)
static bool8 SetUpFieldMove_Dive(void)
{
- gFieldEffectArguments[1] = sub_8068F18();
+ gFieldEffectArguments[1] = TrySetDiveWarp();
if (gFieldEffectArguments[1])
{
gFieldCallback = FieldCallback_PrepareFadeInFromMenu;
diff --git a/src/start_menu.c b/src/start_menu.c
index 2a07313a4..5c437178c 100644
--- a/src/start_menu.c
+++ b/src/start_menu.c
@@ -588,7 +588,7 @@ static u8 SaveCallback2(void)
case SAVE_SUCCESS:
case SAVE_ERROR:
Menu_EraseScreen();
- sub_8064E2C();
+ ScriptUnfreezeEventObjects();
ScriptContext2_Disable();
return TRUE;
}
diff --git a/src/wild_encounter.c b/src/wild_encounter.c
index 7e5dac594..99594d3f2 100644
--- a/src/wild_encounter.c
+++ b/src/wild_encounter.c
@@ -4105,7 +4105,7 @@ static bool8 DoGlobalWildEncounterDiceRoll(void)
return TRUE;
}
-bool8 StandardWildEncounter(u16 a, u16 b)
+bool8 StandardWildEncounter(u16 curMetatileBehavior, u16 prevMetatileBehavior)
{
u16 headerNum;
struct Roamer *roamer;
@@ -4117,11 +4117,11 @@ bool8 StandardWildEncounter(u16 a, u16 b)
headerNum = GetCurrentMapWildMonHeader();
if (headerNum != 0xFFFF)
{
- if (MetatileBehavior_IsLandWildEncounter(a) == TRUE)
+ if (MetatileBehavior_IsLandWildEncounter(curMetatileBehavior) == TRUE)
{
if (gWildMonHeaders[headerNum].landMonsInfo)
{
- if (b != a && !DoGlobalWildEncounterDiceRoll())
+ if (prevMetatileBehavior != curMetatileBehavior && !DoGlobalWildEncounterDiceRoll())
return 0;
if (DoWildEncounterTest(gWildMonHeaders[headerNum].landMonsInfo->encounterRate, 0) == TRUE)
@@ -4150,12 +4150,12 @@ bool8 StandardWildEncounter(u16 a, u16 b)
}
}
}
- else if (MetatileBehavior_IsWaterWildEncounter(a) == TRUE
- || (TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_SURFING) && MetatileBehavior_IsBridge(a) == TRUE))
+ else if (MetatileBehavior_IsWaterWildEncounter(curMetatileBehavior) == TRUE
+ || (TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_SURFING) && MetatileBehavior_IsBridge(curMetatileBehavior) == TRUE))
{
if (gWildMonHeaders[headerNum].waterMonsInfo)
{
- if (b != a && !DoGlobalWildEncounterDiceRoll())
+ if (prevMetatileBehavior != curMetatileBehavior && !DoGlobalWildEncounterDiceRoll())
return 0;
if (DoWildEncounterTest(gWildMonHeaders[headerNum].waterMonsInfo->encounterRate, 0) == TRUE)