summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMarcus Huderle <huderlem@gmail.com>2018-06-16 18:31:23 -0500
committerMarcus Huderle <huderlem@gmail.com>2018-06-19 18:52:24 -0500
commitad0bb29c4b5802a526722ab15a63396c437dc943 (patch)
treebfda08573471b17151fc4c3cc38ba5d3498b25d6 /src
parent544b5b61d42e355ef44c65dc84e53d5f73d7c0e1 (diff)
Label various overworld-related things
Diffstat (limited to 'src')
-rw-r--r--src/cable_car.c2
-rw-r--r--src/decoration.c2
-rw-r--r--src/event_object_movement.c38
-rw-r--r--src/field_camera.c6
-rw-r--r--src/field_control_avatar.c14
-rw-r--r--src/field_effect.c50
-rw-r--r--src/field_fadetransition.c74
-rw-r--r--src/field_screen_effect.c115
-rw-r--r--src/field_specials.c18
-rw-r--r--src/fieldmap.c4
-rw-r--r--src/fldeff_flash.c138
-rw-r--r--src/item_use.c2
-rw-r--r--src/new_game.c2
-rw-r--r--src/overworld.c431
-rw-r--r--src/safari_zone.c2
-rw-r--r--src/scrcmd.c19
-rw-r--r--src/secret_base.c6
-rw-r--r--src/time_events.c2
18 files changed, 463 insertions, 462 deletions
diff --git a/src/cable_car.c b/src/cable_car.c
index bae6f020a..c4276c733 100644
--- a/src/cable_car.c
+++ b/src/cable_car.c
@@ -439,7 +439,7 @@ static void sub_8123740(void)
DmaFill16Large(3, 0, VRAM, VRAM_SIZE, 0x1000);
DmaFill32Defvars(3, 0, OAM, OAM_SIZE);
DmaFill16Defvars(3, 0, PLTT, PLTT_SIZE);
- warp_in();
+ WarpIntoMap();
gFieldCallback = NULL;
SetMainCallback2(CB2_LoadMap);
}
diff --git a/src/decoration.c b/src/decoration.c
index e31624540..8eff1270f 100644
--- a/src/decoration.c
+++ b/src/decoration.c
@@ -2039,7 +2039,7 @@ void sub_80FF114(u8 taskId)
{
DrawWholeMapView();
Overworld_SetWarpDestination(gSaveBlock1.location.mapGroup, gSaveBlock1.location.mapNum, -1, gTasks[taskId].data[3], gTasks[taskId].data[4]);
- warp_in();
+ WarpIntoMap();
}
void sub_80FF160(u8 taskId)
{
diff --git a/src/event_object_movement.c b/src/event_object_movement.c
index 60bd09ca9..01460539c 100644
--- a/src/event_object_movement.c
+++ b/src/event_object_movement.c
@@ -729,7 +729,7 @@ bool8 (*const gDirectionBlockedMetatileFuncs[])(u8) = {
MetatileBehavior_IsWestBlocked
};
-const struct Coords16 gDirectionToVectors[] = {
+static const struct Coords16 sDirectionToVectors[] = {
{ 0, 0},
{ 0, 1},
{ 0, -1},
@@ -4445,14 +4445,14 @@ void sub_8060288(u8 localId, u8 mapNum, u8 mapGroup)
void MoveCoords(u8 direction, s16 *x, s16 *y)
{
- *x += gDirectionToVectors[direction].x;
- *y += gDirectionToVectors[direction].y;
+ *x += sDirectionToVectors[direction].x;
+ *y += sDirectionToVectors[direction].y;
}
void Unref_MovePixelCoords(u8 direction, s16 *x, s16 *y)
{
- *x += gDirectionToVectors[direction].x << 4;
- *y += gDirectionToVectors[direction].y << 4;
+ *x += sDirectionToVectors[direction].x << 4;
+ *y += sDirectionToVectors[direction].y << 4;
}
static void MoveCoordsInDirection(u32 dir, s16 *x, s16 *y, s16 deltaX, s16 deltaY)
@@ -4460,13 +4460,13 @@ static void MoveCoordsInDirection(u32 dir, s16 *x, s16 *y, s16 deltaX, s16 delta
u8 direction = dir;
s16 dx2 = (u16)deltaX;
s16 dy2 = (u16)deltaY;
- if (gDirectionToVectors[direction].x > 0)
+ if (sDirectionToVectors[direction].x > 0)
*x += dx2;
- if (gDirectionToVectors[direction].x < 0)
+ if (sDirectionToVectors[direction].x < 0)
*x -= dx2;
- if (gDirectionToVectors[direction].y > 0)
+ if (sDirectionToVectors[direction].y > 0)
*y += dy2;
- if (gDirectionToVectors[direction].y < 0)
+ if (sDirectionToVectors[direction].y < 0)
*y -= dy2;
}
@@ -7871,32 +7871,32 @@ void UnfreezeEventObjects(void)
static void Step1(struct Sprite *sprite, u8 dir)
{
- sprite->pos1.x += gDirectionToVectors[dir].x;
- sprite->pos1.y += gDirectionToVectors[dir].y;
+ sprite->pos1.x += sDirectionToVectors[dir].x;
+ sprite->pos1.y += sDirectionToVectors[dir].y;
}
static void Step2(struct Sprite *sprite, u8 dir)
{
- sprite->pos1.x += 2 * (u16) gDirectionToVectors[dir].x;
- sprite->pos1.y += 2 * (u16) gDirectionToVectors[dir].y;
+ sprite->pos1.x += 2 * (u16) sDirectionToVectors[dir].x;
+ sprite->pos1.y += 2 * (u16) sDirectionToVectors[dir].y;
}
static void Step3(struct Sprite *sprite, u8 dir)
{
- sprite->pos1.x += 2 * (u16) gDirectionToVectors[dir].x + (u16) gDirectionToVectors[dir].x;
- sprite->pos1.y += 2 * (u16) gDirectionToVectors[dir].y + (u16) gDirectionToVectors[dir].y;
+ sprite->pos1.x += 2 * (u16) sDirectionToVectors[dir].x + (u16) sDirectionToVectors[dir].x;
+ sprite->pos1.y += 2 * (u16) sDirectionToVectors[dir].y + (u16) sDirectionToVectors[dir].y;
}
static void Step4(struct Sprite *sprite, u8 dir)
{
- sprite->pos1.x += 4 * (u16) gDirectionToVectors[dir].x;
- sprite->pos1.y += 4 * (u16) gDirectionToVectors[dir].y;
+ sprite->pos1.x += 4 * (u16) sDirectionToVectors[dir].x;
+ sprite->pos1.y += 4 * (u16) sDirectionToVectors[dir].y;
}
static void Step8(struct Sprite *sprite, u8 dir)
{
- sprite->pos1.x += 8 * (u16) gDirectionToVectors[dir].x;
- sprite->pos1.y += 8 * (u16) gDirectionToVectors[dir].y;
+ sprite->pos1.x += 8 * (u16) sDirectionToVectors[dir].x;
+ sprite->pos1.y += 8 * (u16) sDirectionToVectors[dir].y;
}
static void oamt_npc_ministep_reset(struct Sprite *sprite, u8 direction, u8 a3)
diff --git a/src/field_camera.c b/src/field_camera.c
index fa8f1a582..efd2e2d8c 100644
--- a/src/field_camera.c
+++ b/src/field_camera.c
@@ -24,9 +24,9 @@ static s16 sVerticalCameraPan;
static u8 gUnknown_0300059C;
static void (*sFieldCameraPanningCallback)(void);
-struct FieldCamera gFieldCamera;
-u16 gTotalCameraPixelOffsetY;
-u16 gTotalCameraPixelOffsetX;
+extern struct FieldCamera gFieldCamera;
+extern u16 gTotalCameraPixelOffsetY;
+extern u16 gTotalCameraPixelOffsetX;
static void RedrawMapSliceNorth(struct FieldCameraOffset*, struct MapData*);
static void RedrawMapSliceSouth(struct FieldCameraOffset*, struct MapData*);
diff --git a/src/field_control_avatar.c b/src/field_control_avatar.c
index 273378c14..a973b80ca 100644
--- a/src/field_control_avatar.c
+++ b/src/field_control_avatar.c
@@ -356,7 +356,7 @@ u8 *GetInteractedLinkPlayerScript(struct MapPosition *position, u8 metatileBehav
if (!MetatileBehavior_IsCounter(MapGridGetMetatileBehaviorAt(position->x, position->y)))
eventObjectId = GetEventObjectIdByXYZ(position->x, position->y, position->height);
else
- eventObjectId = GetEventObjectIdByXYZ(position->x + gUnknown_0821664C[direction].x, position->y + gUnknown_0821664C[direction].y, position->height);
+ eventObjectId = GetEventObjectIdByXYZ(position->x + gDirectionToVectors[direction].x, position->y + gDirectionToVectors[direction].y, position->height);
if (eventObjectId == 16 || gEventObjects[eventObjectId].localId == 0xFF)
return NULL;
@@ -385,7 +385,7 @@ static u8 *GetInteractedEventObjectScript(struct MapPosition *position, u8 metat
return NULL;
// 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);
+ eventObjectId = GetEventObjectIdByXYZ(position->x + gDirectionToVectors[direction].x, position->y + gDirectionToVectors[direction].y, position->height);
if (eventObjectId == 16 || gEventObjects[eventObjectId].localId == 0xFF)
return NULL;
}
@@ -680,7 +680,7 @@ static bool8 mapheader_run_first_tag2_script_list_match_conditionally(struct Map
if (IsArrowWarpMetatileBehavior(metatileBehavior, direction) == TRUE && warpEventId != -1)
{
- walkrun_find_lowest_active_bit_in_bitfield();
+ StoreInitialPlayerAvatarState();
sub_8068C30(&gMapHeader, warpEventId, position);
sub_8080E88();
return TRUE;
@@ -694,7 +694,7 @@ bool8 TryStartWarpEventScript(struct MapPosition *position, u16 metatileBehavior
if (warpEventId != -1 && IsWarpMetatileBehavior(metatileBehavior) == TRUE)
{
- walkrun_find_lowest_active_bit_in_bitfield();
+ StoreInitialPlayerAvatarState();
sub_8068C30(&gMapHeader, warpEventId, position);
if (MetatileBehavior_IsEscalator(metatileBehavior) == TRUE)
{
@@ -798,7 +798,7 @@ static bool8 map_warp_consider_2_to_inside(struct MapPosition *position, u16 met
warpEventId = FindWarpEventByPosition(&gMapHeader, position);
if (warpEventId != -1 && IsWarpMetatileBehavior(metatileBehavior) == TRUE)
{
- walkrun_find_lowest_active_bit_in_bitfield();
+ StoreInitialPlayerAvatarState();
sub_8068C30(&gMapHeader, warpEventId, position);
sub_8080EF0();
return TRUE;
@@ -894,7 +894,7 @@ bool8 dive_warp(struct MapPosition *position, u16 metatileBehavior)
{
if (SetDiveWarpEmerge(position->x - 7, position->y - 7))
{
- walkrun_find_lowest_active_bit_in_bitfield();
+ StoreInitialPlayerAvatarState();
sp13E_warp_to_last_warp();
PlaySE(SE_W291);
return TRUE;
@@ -904,7 +904,7 @@ bool8 dive_warp(struct MapPosition *position, u16 metatileBehavior)
{
if (SetDiveWarpDive(position->x - 7, position->y - 7))
{
- walkrun_find_lowest_active_bit_in_bitfield();
+ StoreInitialPlayerAvatarState();
sp13E_warp_to_last_warp();
PlaySE(SE_W291);
return TRUE;
diff --git a/src/field_effect.c b/src/field_effect.c
index 91794a07a..47698aee4 100644
--- a/src/field_effect.c
+++ b/src/field_effect.c
@@ -1107,7 +1107,7 @@ void task00_8084310(u8 taskId)
if (!FieldEffectActiveListContains(FLDEFF_USE_FLY))
{
Overworld_ResetStateAfterFly();
- warp_in();
+ WarpIntoMap();
SetMainCallback2(CB2_LoadMap);
gFieldCallback = mapldr_08084390;
DestroyTask(taskId);
@@ -1150,7 +1150,6 @@ void c3_080843F8(u8 taskId)
}
}
-extern void pal_fill_for_map_transition(void);
void sub_8086774(u8);
extern void CameraObjectReset2(void);
extern void CameraObjectReset1(void);
@@ -1286,14 +1285,13 @@ bool8 sub_80869F8(struct Task *task)
void sub_8086A68(u8);
extern void sub_80B4824(u8);
-extern void sub_8053FF8(void);
-extern void fade_8080918(void);
+extern void TryFadeOutOldMapMusic(void);
void sub_8086B98(struct Task *);
void sub_8086BE4(struct Task *);
void sub_8086C30(void);
void sub_8086C40(void);
-bool8 sub_8054034(void);
+bool8 BGMusicStopped(void);
void sub_8086C94(void);
void sub_80B483C(void);
void sub_8086CBC(u8);
@@ -1408,16 +1406,16 @@ void sub_8086BE4(struct Task *task)
void sub_8086C30(void)
{
- sub_8053FF8();
- fade_8080918();
+ TryFadeOutOldMapMusic();
+ WarpFadeScreen();
}
void sub_8086C40(void)
{
- if (!gPaletteFade.active && sub_8054034() == TRUE)
+ if (!gPaletteFade.active && BGMusicStopped() == TRUE)
{
sub_80B483C();
- warp_in();
+ WarpIntoMap();
gFieldCallback = sub_8086C94;
SetMainCallback2(CB2_LoadMap);
DestroyTask(FindTaskIdByFunc(sub_8086A68));
@@ -1767,17 +1765,17 @@ bool8 sub_80872E4(struct Task *task, struct EventObject *eventObject, struct Spr
bool8 sub_80873D8(struct Task *task, struct EventObject *eventObject, struct Sprite *sprite)
{
- sub_8053FF8();
- fade_8080918();
+ TryFadeOutOldMapMusic();
+ WarpFadeScreen();
task->data[0]++;
return FALSE;
}
bool8 sub_80873F4(struct Task *task, struct EventObject *eventObject, struct Sprite *sprite)
{
- if (!gPaletteFade.active && sub_8054034() == TRUE)
+ if (!gPaletteFade.active && BGMusicStopped() == TRUE)
{
- warp_in();
+ WarpIntoMap();
gFieldCallback = mapldr_080851BC;
SetMainCallback2(CB2_LoadMap);
DestroyTask(FindTaskIdByFunc(sub_80871D0));
@@ -1930,8 +1928,8 @@ bool8 sub_80877AC(struct Task *task, struct EventObject *eventObject, struct Spr
{
if (!FieldEffectActiveListContains(FLDEFF_POP_OUT_OF_ASH))
{
- sub_8053FF8();
- fade_8080918();
+ TryFadeOutOldMapMusic();
+ WarpFadeScreen();
task->data[0]++;
}
return FALSE;
@@ -1942,9 +1940,9 @@ void mapldr_080859D4(void);
bool8 sub_80877D4(struct Task *task, struct EventObject *eventObject, struct Sprite *sprite)
{
- if (!gPaletteFade.active && sub_8054034() == TRUE)
+ if (!gPaletteFade.active && BGMusicStopped() == TRUE)
{
- warp_in();
+ WarpIntoMap();
gFieldCallback = sub_8086748;
SetMainCallback2(CB2_LoadMap);
DestroyTask(FindTaskIdByFunc(sub_808766C));
@@ -1995,17 +1993,17 @@ void sub_8087914(struct Task *task)
u8 unknown_0839F380[5] = {1, 3, 4, 2, 1};
if (task->data[14] != 0 && (--task->data[14]) == 0)
{
- sub_8053FF8();
- fade_8080918();
+ TryFadeOutOldMapMusic();
+ WarpFadeScreen();
}
eventObject = &gEventObjects[gPlayerAvatar.eventObjectId];
if (!EventObjectIsMovementOverridden(eventObject) || EventObjectClearHeldMovementIfFinished(eventObject))
{
- if (task->data[14] == 0 && !gPaletteFade.active && sub_8054034() == TRUE)
+ if (task->data[14] == 0 && !gPaletteFade.active && BGMusicStopped() == TRUE)
{
SetEventObjectDirection(eventObject, task->data[15]);
sub_8053678();
- warp_in();
+ WarpIntoMap();
gFieldCallback = mapldr_080859D4;
SetMainCallback2(CB2_LoadMap);
DestroyTask(FindTaskIdByFunc(sub_80878C4));
@@ -2157,17 +2155,17 @@ static void TeleportFieldEffectTask3(struct Task *task)
if (task->data[4] >= 0xa8)
{
task->data[0]++;
- sub_8053FF8();
- fade_8080918();
+ TryFadeOutOldMapMusic();
+ WarpFadeScreen();
}
}
static void TeleportFieldEffectTask4(struct Task *task)
{
- if (!gPaletteFade.active && sub_8054034() == TRUE)
+ if (!gPaletteFade.active && BGMusicStopped() == TRUE)
{
Overworld_SetWarpDestToLastHealLoc();
- warp_in();
+ WarpIntoMap();
SetMainCallback2(CB2_LoadMap);
gFieldCallback = mapldr_08085D88;
DestroyTask(FindTaskIdByFunc(ExecuteTeleportFieldEffectTask));
@@ -3062,7 +3060,7 @@ void sub_8088F10(struct Task *task)
{
if (sub_8088FA4(task->data[1]))
{
- fade_8080918();
+ WarpFadeScreen();
task->data[0]++;
}
}
diff --git a/src/field_fadetransition.c b/src/field_fadetransition.c
index a9dc78dfa..c52dc98c6 100644
--- a/src/field_fadetransition.c
+++ b/src/field_fadetransition.c
@@ -39,35 +39,35 @@ void palette_bg_fill_black(void)
void pal_fill_for_map_transition(void)
{
- u8 map_light = get_map_type_from_warp0();
- switch (fade_type_for_given_maplight_pair(map_light, Overworld_GetMapTypeOfSaveblockLocation()))
+ u8 previousMapType = GetLastUsedWarpMapType();
+ switch (GetMapPairFadeFromType(previousMapType, Overworld_GetMapTypeOfSaveblockLocation()))
{
case 0:
- FadeScreen(0, 0);
+ FadeScreen(FADE_FROM_BLACK, 0);
palette_bg_fill_black();
break;
case 1:
- FadeScreen(2, 0);
+ FadeScreen(FADE_FROM_WHITE, 0);
palette_bg_fill_white();
}
}
void pal_fill_black(void)
{
- FadeScreen(0, 0);
+ FadeScreen(FADE_FROM_BLACK, 0);
palette_bg_fill_black();
}
-void fade_8080918(void)
+void WarpFadeScreen(void)
{
- u8 light_level = Overworld_GetMapTypeOfSaveblockLocation();
- switch (sub_810CDB8(light_level, warp1_get_mapheader()->mapType))
+ u8 currentMapType = Overworld_GetMapTypeOfSaveblockLocation();
+ switch (GetMapPairFadeToType(currentMapType, GetDestinationWarpMapHeader()->mapType))
{
case 0:
- FadeScreen(1, 0);
+ FadeScreen(FADE_TO_BLACK, 0);
break;
case 1:
- FadeScreen(3, 0);
+ FadeScreen(FADE_TO_WHITE, 0);
}
}
@@ -358,7 +358,7 @@ void sub_8080E44(void)
CreateTask(task_mpl_807E3C8, 10);
}
-bool32 sub_8080E64(void)
+static bool32 PaletteFadeActive(void)
{
return gPaletteFade.active;
}
@@ -374,8 +374,8 @@ bool32 sub_8080E70(void)
void sub_8080E88(void)
{
ScriptContext2_Enable();
- sub_8053FF8();
- fade_8080918();
+ TryFadeOutOldMapMusic();
+ WarpFadeScreen();
PlayRainSoundEffect();
PlaySE(SE_KAIDAN);
gFieldCallback = mapldr_default;
@@ -385,8 +385,8 @@ void sub_8080E88(void)
void sp13E_warp_to_last_warp(void)
{
ScriptContext2_Enable();
- sub_8053FF8();
- fade_8080918();
+ TryFadeOutOldMapMusic();
+ WarpFadeScreen();
PlayRainSoundEffect();
gFieldCallback = mapldr_default;
CreateTask(task0A_fade_n_map_maybe, 10);
@@ -426,8 +426,8 @@ void sub_8080F58(void)
void sub_8080F68(void)
{
ScriptContext2_Enable();
- sub_8053FF8();
- fade_8080918();
+ TryFadeOutOldMapMusic();
+ WarpFadeScreen();
PlaySE(SE_TK_WARPIN);
CreateTask(task0A_fade_n_map_maybe, 10);
gFieldCallback = sub_8080B78;
@@ -436,12 +436,12 @@ void sub_8080F68(void)
void sub_8080F9C(void)
{
ScriptContext2_Enable();
- fade_8080918();
+ WarpFadeScreen();
CreateTask(task0A_fade_n_map_maybe, 10);
gFieldCallback = sub_80C791C;
}
-void sub_8080FC4(u8 taskId)
+static void WaitCableClubWarp(u8 taskId)
{
struct Task *task = &gTasks[taskId];
@@ -452,13 +452,11 @@ void sub_8080FC4(u8 taskId)
task->data[0]++;
break;
case 1:
- if (!sub_8080E64() && sub_8054034())
- {
+ if (!PaletteFadeActive() && BGMusicStopped())
task->data[0]++;
- }
break;
case 2:
- warp_in();
+ WarpIntoMap();
SetMainCallback2(sub_8054588);
DestroyTask(taskId);
break;
@@ -468,10 +466,10 @@ void sub_8080FC4(u8 taskId)
void DoCableClubWarp(void)
{
ScriptContext2_Enable();
- sub_8053FF8();
- fade_8080918();
+ TryFadeOutOldMapMusic();
+ WarpFadeScreen();
PlaySE(SE_KAIDAN);
- CreateTask(sub_8080FC4, 10);
+ CreateTask(WaitCableClubWarp, 10);
}
void sub_8081050(u8 taskId)
@@ -482,13 +480,13 @@ void sub_8081050(u8 taskId)
{
case 0:
ClearLinkCallback_2();
- FadeScreen(1, 0);
- sub_8053FF8();
+ FadeScreen(FADE_TO_BLACK, 0);
+ TryFadeOutOldMapMusic();
PlaySE(SE_KAIDAN);
data[0]++;
break;
case 1:
- if (!sub_8080E64() && sub_8054034())
+ if (!PaletteFadeActive() && BGMusicStopped())
{
sub_800832C();
data[0]++;
@@ -497,7 +495,7 @@ void sub_8081050(u8 taskId)
case 2:
if (!gReceivedRemoteLinkPlayers)
{
- warp_in();
+ WarpIntoMap();
SetMainCallback2(CB2_LoadMap);
DestroyTask(taskId);
}
@@ -538,13 +536,13 @@ void task0A_fade_n_map_maybe(u8 taskId)
task->data[0]++;
break;
case 1:
- if (!sub_8080E64() && sub_8054034())
+ if (!PaletteFadeActive() && BGMusicStopped())
{
task->data[0]++;
}
break;
case 2:
- warp_in();
+ WarpIntoMap();
SetMainCallback2(CB2_LoadMap);
DestroyTask(taskId);
break;
@@ -595,8 +593,8 @@ void sub_808115C(u8 taskId)
}
break;
case 4:
- sub_8053FF8();
- fade_8080918();
+ TryFadeOutOldMapMusic();
+ WarpFadeScreen();
PlayRainSoundEffect();
task->data[0] = 0;
task->func = task0A_fade_n_map_maybe;
@@ -616,13 +614,13 @@ void sub_80812C8(u8 taskId)
task->data[0]++;
break;
case 1:
- if (!sub_8080E64() && sub_8054034())
+ if (!PaletteFadeActive() && BGMusicStopped())
{
task->data[0]++;
}
break;
case 2:
- warp_in();
+ WarpIntoMap();
SetMainCallback2(sub_8054534);
DestroyTask(taskId);
break;
@@ -632,8 +630,8 @@ void sub_80812C8(u8 taskId)
void sub_8081334(void)
{
ScriptContext2_Enable();
- sub_8053FF8();
- fade_8080918();
+ TryFadeOutOldMapMusic();
+ WarpFadeScreen();
PlayRainSoundEffect();
PlaySE(SE_KAIDAN);
gFieldCallback = sub_8080B60;
diff --git a/src/field_screen_effect.c b/src/field_screen_effect.c
index b314699c5..13bc1bd63 100644
--- a/src/field_screen_effect.c
+++ b/src/field_screen_effect.c
@@ -9,71 +9,78 @@
#include "text.h"
#include "scanline_effect.h"
-const static u16 gUnknown_0839ACDC[] = { 0xC8, 0x48, 0x38, 0x28, 0x18, 0x0 };
+const static u16 sFlashLevelPixelRadii[] = { 200, 72, 56, 40, 24, 0 };
const s32 gMaxFlashLevel = 4;
-const static struct ScanlineEffectParams gUnknown_0839ACEC =
+const static struct ScanlineEffectParams sFlashEffectParams =
{
(void *)REG_ADDR_WIN0H,
((DMA_ENABLE | DMA_START_HBLANK | DMA_REPEAT | DMA_DEST_RELOAD) << 16) | 1,
1
};
-static void sub_808136C(u16 *dest, u32 a2, s32 a3, s32 a4)
+static void SetFlashScanlineffectWindowBoundary(u16 *dest, u32 y, s32 left, s32 right)
{
- if (a2 <= 0xA0)
+ if (y <= 160)
{
- if (a3 < 0)
- a3 = 0;
- if (a3 > 255)
- a3 = 255;
- if (a4 < 0)
- a4 = 0;
- if (a4 > 255)
- a4 = 255;
- dest[a2] = (a3 << 8) | a4;
+ if (left < 0)
+ left = 0;
+ if (left > 255)
+ left = 255;
+ if (right < 0)
+ right = 0;
+ if (right > 255)
+ right = 255;
+ dest[y] = (left << 8) | right;
}
}
-static void sub_8081398(u16 *dest, s32 a2, s32 a3, s32 a4)
+static void SetFlashScanlineEffectWindowBoundaries(u16 *dest, s32 centerX, s32 centerY, s32 radius)
{
- s32 v1 = a4;
- s32 v2 = a4;
+ s32 r = radius;
+ s32 v2 = radius;
s32 v3 = 0;
- while (v1 >= v3)
+ while (r >= v3)
{
- sub_808136C(dest, a3 - v3, a2 - v1, a2 + v1);
- sub_808136C(dest, a3 + v3, a2 - v1, a2 + v1);
- sub_808136C(dest, a3 - v1, a2 - v3, a2 + v3);
- sub_808136C(dest, a3 + v1, a2 - v3, a2 + v3);
+ SetFlashScanlineffectWindowBoundary(dest, centerY - v3, centerX - r, centerX + r);
+ SetFlashScanlineffectWindowBoundary(dest, centerY + v3, centerX - r, centerX + r);
+ SetFlashScanlineffectWindowBoundary(dest, centerY - r, centerX - v3, centerX + v3);
+ SetFlashScanlineffectWindowBoundary(dest, centerY + r, centerX - v3, centerX + v3);
v2 -= (v3 * 2) - 1;
v3++;
if (v2 < 0)
{
- v2 += 2 * (v1 - 1);
- v1--;
+ v2 += 2 * (r - 1);
+ r--;
}
}
}
-static void sub_8081424(u8 taskId)
+#define tFlashCenterX data[1]
+#define tFlashCenterY data[2]
+#define tCurFlashRadius data[3]
+#define tDestFlashRadius data[4]
+#define tFlashRadiusDelta data[5]
+#define tClearScanlineEffect data[6]
+
+static void UpdateFlashLevelEffect(u8 taskId)
{
s16 *data = gTasks[taskId].data;
switch (data[0])
{
case 0:
- sub_8081398(gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer], data[1], data[2], data[3]);
+ SetFlashScanlineEffectWindowBoundaries(gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer], tFlashCenterX, tFlashCenterY, tCurFlashRadius);
data[0] = 1;
break;
case 1:
- sub_8081398(gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer], data[1], data[2], data[3]);
+ SetFlashScanlineEffectWindowBoundaries(gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer], tFlashCenterX, tFlashCenterY, tCurFlashRadius);
data[0] = 0;
- data[3] += data[5];
- if (data[3] > data[4])
+ tCurFlashRadius += tFlashRadiusDelta;
+ if (tCurFlashRadius > tDestFlashRadius)
{
- if (data[6] == 1)
+ if (tClearScanlineEffect == 1)
{
ScanlineEffect_Stop();
data[0] = 2;
@@ -93,7 +100,7 @@ static void sub_8081424(u8 taskId)
static void sub_80814E8(u8 taskId)
{
- if (!FuncIsActiveTask(sub_8081424))
+ if (!FuncIsActiveTask(UpdateFlashLevelEffect))
{
EnableBothScriptContexts();
DestroyTask(taskId);
@@ -106,41 +113,46 @@ static void sub_8081510(void)
CreateTask(sub_80814E8, 80);
}
-static u8 sub_8081534(s32 a1, s32 a2, s32 a3, s32 a4, s32 a5, u8 a6)
+static u8 sub_8081534(s32 centerX, s32 centerY, s32 initialFlashRadius, s32 destFlashRadius, s32 clearScanlineEffect, u8 delta)
{
- u8 taskId = CreateTask(sub_8081424, 80);
+ u8 taskId = CreateTask(UpdateFlashLevelEffect, 80);
s16 *data = gTasks[taskId].data;
- data[3] = a3;
- data[4] = a4;
- data[1] = a1;
- data[2] = a2;
- data[6] = a5;
+ tCurFlashRadius = initialFlashRadius;
+ tDestFlashRadius = destFlashRadius;
+ tFlashCenterX = centerX;
+ tFlashCenterY = centerY;
+ tClearScanlineEffect = clearScanlineEffect;
- if (a3 < a4)
- data[5] = a6;
+ if (initialFlashRadius < destFlashRadius)
+ tFlashRadiusDelta = delta;
else
- data[5] = -a6;
+ tFlashRadiusDelta = -delta;
return taskId;
}
-void sub_8081594(u8 a1)
+#undef tCurFlashRadius
+#undef tDestFlashRadius
+#undef tFlashRadiusDelta
+#undef tClearScanlineEffect
+
+void sub_8081594(u8 flashLevel)
{
- u8 flashLevel = Overworld_GetFlashLevel();
+ u8 curFlashLevel = Overworld_GetFlashLevel();
u8 value = 0;
- if (!a1)
+ if (!flashLevel)
value = 1;
- sub_8081534(120, 80, gUnknown_0839ACDC[flashLevel], gUnknown_0839ACDC[a1], value, 1);
+ sub_8081534(120, 80, sFlashLevelPixelRadii[curFlashLevel], sFlashLevelPixelRadii[flashLevel], value, 1);
sub_8081510();
ScriptContext2_Enable();
}
-void sub_80815E0(u8 a1)
+void WriteFlashScanlineEffectBuffer(u8 flashLevel)
{
- if (a1)
+ if (flashLevel)
{
- sub_8081398(&gScanlineEffectRegBuffers[0][0], 120, 80, gUnknown_0839ACDC[a1]);
+ SetFlashScanlineEffectWindowBoundaries(&gScanlineEffectRegBuffers[0][0], 120, 80, sFlashLevelPixelRadii[flashLevel]);
CpuFastSet(&gScanlineEffectRegBuffers[0], &gScanlineEffectRegBuffers[1], 480);
}
}
@@ -208,10 +220,9 @@ static void sub_80816A8(u8 taskId)
REG_BLDALPHA = 1804;
REG_WININ = 63;
REG_WINOUT = 30;
- sub_8081398(&gScanlineEffectRegBuffers[0][0], data[2], data[3], 1);
+ SetFlashScanlineEffectWindowBoundaries(&gScanlineEffectRegBuffers[0][0], data[2], data[3], 1);
CpuFastSet(&gScanlineEffectRegBuffers[0], &gScanlineEffectRegBuffers[1], 480);
- //ScanlineEffect_SetParams(gUnknown_0839ACEC[0], gUnknown_0839ACEC[1], gUnknown_0839ACEC[2]);
- ScanlineEffect_SetParams(gUnknown_0839ACEC);
+ ScanlineEffect_SetParams(sFlashEffectParams);
data[0] = 1;
break;
case 1:
@@ -221,7 +232,7 @@ static void sub_80816A8(u8 taskId)
data[0] = 2;
break;
case 2:
- if (!FuncIsActiveTask(sub_8081424))
+ if (!FuncIsActiveTask(UpdateFlashLevelEffect))
{
EnableBothScriptContexts();
data[0] = 3;
@@ -323,7 +334,7 @@ void sub_8081924(void)
static void task50_0807F0C8(u8 taskId)
{
- if (sub_8054034() == TRUE)
+ if (BGMusicStopped() == TRUE)
{
DestroyTask(taskId);
EnableBothScriptContexts();
diff --git a/src/field_specials.c b/src/field_specials.c
index cb400dc2d..f7b14dad8 100644
--- a/src/field_specials.c
+++ b/src/field_specials.c
@@ -21,6 +21,7 @@
#include "constants/species.h"
#include "constants/abilities.h"
#include "constants/moves.h"
+#include "constants/weather.h"
#include "text.h"
#include "wallclock.h"
#include "tv.h"
@@ -42,7 +43,7 @@
#define CHAR_DECIMAL_SEPARATOR CHAR_COMMA
#endif
-extern struct WarpData gUnknown_020297F0;
+extern struct WarpData gLastUsedWarp;
extern u8 gBattleOutcome;
extern u16 gSpecialVar_0x8004;
extern u16 gSpecialVar_0x8005;
@@ -207,7 +208,7 @@ u16 GetRecordedCyclingRoadResults(void) {
}
void UpdateCyclingRoadState(void) {
- if (gUnknown_020297F0.mapNum == MAP_NUM(ROUTE110_SEASIDE_CYCLING_ROAD_NORTH_ENTRANCE) && gUnknown_020297F0.mapGroup == MAP_GROUP(ROUTE110_SEASIDE_CYCLING_ROAD_NORTH_ENTRANCE))
+ if (gLastUsedWarp.mapNum == MAP_NUM(ROUTE110_SEASIDE_CYCLING_ROAD_NORTH_ENTRANCE) && gLastUsedWarp.mapGroup == MAP_GROUP(ROUTE110_SEASIDE_CYCLING_ROAD_NORTH_ENTRANCE))
{
return;
}
@@ -2009,17 +2010,17 @@ bool8 FoundBlackGlasses(void)
void SetRoute119Weather(void)
{
- if (is_map_type_1_2_3_5_or_6(get_map_type_from_warp0()) != TRUE)
+ if (is_map_type_1_2_3_5_or_6(GetLastUsedWarpMapType()) != TRUE)
{
- SetSav1Weather(0x14);
+ SetSav1Weather(WEATHER_ROUTE119_CYCLE);
}
}
void SetRoute123Weather(void)
{
- if (is_map_type_1_2_3_5_or_6(get_map_type_from_warp0()) != TRUE)
+ if (is_map_type_1_2_3_5_or_6(GetLastUsedWarpMapType()) != TRUE)
{
- SetSav1Weather(0x15);
+ SetSav1Weather(WEATHER_ROUTE123_CYCLE);
}
}
@@ -2027,13 +2028,12 @@ u8 GetLeadMonIndex(void)
{
u8 i;
u8 partyCount = CalculatePlayerPartyCount();
- for (i=0; i<partyCount; i++)
+ for (i = 0; i < partyCount; i++)
{
if (GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2, NULL) != SPECIES_EGG && GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2, NULL) != 0)
- {
return i;
- }
}
+
return 0;
}
diff --git a/src/fieldmap.c b/src/fieldmap.c
index 7383bb174..b819d7275 100644
--- a/src/fieldmap.c
+++ b/src/fieldmap.c
@@ -676,8 +676,8 @@ int GetPostCameraMoveMapBorderId(int x, int y)
int CanCameraMoveInDirection(int direction)
{
int x, y;
- x = gSaveBlock1.pos.x + 7 + gUnknown_0821664C[direction].x;
- y = gSaveBlock1.pos.y + 7 + gUnknown_0821664C[direction].y;
+ x = gSaveBlock1.pos.x + 7 + gDirectionToVectors[direction].x;
+ y = gSaveBlock1.pos.y + 7 + gDirectionToVectors[direction].y;
if (GetMapBorderIdAt(x, y) == -1)
{
return 0;
diff --git a/src/fldeff_flash.c b/src/fldeff_flash.c
index a9f64a2d1..5a04f7061 100644
--- a/src/fldeff_flash.c
+++ b/src/fldeff_flash.c
@@ -12,12 +12,12 @@
#include "sprite.h"
#include "task.h"
-struct FlashStruct
+struct MapTypeFadePairs
{
- u8 unk0;
- u8 unk1;
- u8 unk2;
- u8 unk3;
+ u8 mapTypeA;
+ u8 mapTypeB;
+ u8 fadeToType; // 0 = fade to black, 1 = fade to white
+ u8 fadeFromType; // 0 = fade from black, 1 = fade from white
void (*func)(void);
};
@@ -26,39 +26,39 @@ extern void (*gPostMenuFieldCallback)(void);
extern u8 gUnknown_081B694A[];
-void sub_810CBFC(void);
-void sub_810CC34(void);
-bool8 sub_810CD5C(void);
-void sub_810CE5C(u8);
-void sub_810CE78(u8);
-void sub_810CF18(u8);
-void sub_810CF5C(u8);
-void sub_810CFC4(u8);
-void sub_810D00C(u8);
-void sub_810D028(u8);
-void sub_810D0C4(u8);
-void sub_810D128(u8);
-void sub_810CFF8(void);
-void sub_810CE48(void);
-
-static const struct FlashStruct gUnknown_083F7FC4[] =
+static void sub_810CBFC(void);
+static void sub_810CC34(void);
+static bool8 sub_810CD5C(void);
+static void sub_810CE5C(u8);
+static void sub_810CE78(u8);
+static void sub_810CF18(u8);
+static void sub_810CF5C(u8);
+static void sub_810CFC4(u8);
+static void sub_810D00C(u8);
+static void sub_810D028(u8);
+static void sub_810D0C4(u8);
+static void sub_810D128(u8);
+static void CreateEnterUndergroundEffectTask(void);
+static void CreateExitUndergroundTask(void);
+
+static const struct MapTypeFadePairs gMapTypeFadePairs[] =
{
- {1, 4, 1, 0, sub_810CFF8},
- {2, 4, 1, 0, sub_810CFF8},
- {3, 4, 1, 0, sub_810CFF8},
- {5, 4, 1, 0, sub_810CFF8},
- {6, 4, 1, 0, sub_810CFF8},
- {7, 4, 1, 0, sub_810CFF8},
- {8, 4, 1, 0, sub_810CFF8},
- {9, 4, 1, 0, sub_810CFF8},
- {4, 1, 0, 1, sub_810CE48},
- {4, 2, 0, 1, sub_810CE48},
- {4, 3, 0, 1, sub_810CE48},
- {4, 5, 0, 1, sub_810CE48},
- {4, 6, 0, 1, sub_810CE48},
- {4, 7, 0, 1, sub_810CE48},
- {4, 8, 0, 1, sub_810CE48},
- {4, 9, 0, 1, sub_810CE48},
+ {MAP_TYPE_TOWN, MAP_TYPE_UNDERGROUND, 1, 0, CreateEnterUndergroundEffectTask},
+ {MAP_TYPE_CITY, MAP_TYPE_UNDERGROUND, 1, 0, CreateEnterUndergroundEffectTask},
+ {MAP_TYPE_ROUTE, MAP_TYPE_UNDERGROUND, 1, 0, CreateEnterUndergroundEffectTask},
+ {MAP_TYPE_UNDERWATER, MAP_TYPE_UNDERGROUND, 1, 0, CreateEnterUndergroundEffectTask},
+ {MAP_TYPE_6, MAP_TYPE_UNDERGROUND, 1, 0, CreateEnterUndergroundEffectTask},
+ {MAP_TYPE_7, MAP_TYPE_UNDERGROUND, 1, 0, CreateEnterUndergroundEffectTask},
+ {MAP_TYPE_INDOOR, MAP_TYPE_UNDERGROUND, 1, 0, CreateEnterUndergroundEffectTask},
+ {MAP_TYPE_SECRET_BASE, MAP_TYPE_UNDERGROUND, 1, 0, CreateEnterUndergroundEffectTask},
+ {MAP_TYPE_UNDERGROUND, MAP_TYPE_TOWN, 0, 1, CreateExitUndergroundTask},
+ {MAP_TYPE_UNDERGROUND, MAP_TYPE_CITY, 0, 1, CreateExitUndergroundTask},
+ {MAP_TYPE_UNDERGROUND, MAP_TYPE_ROUTE, 0, 1, CreateExitUndergroundTask},
+ {MAP_TYPE_UNDERGROUND, MAP_TYPE_UNDERWATER, 0, 1, CreateExitUndergroundTask},
+ {MAP_TYPE_UNDERGROUND, MAP_TYPE_6, 0, 1, CreateExitUndergroundTask},
+ {MAP_TYPE_UNDERGROUND, MAP_TYPE_7, 0, 1, CreateExitUndergroundTask},
+ {MAP_TYPE_UNDERGROUND, MAP_TYPE_INDOOR, 0, 1, CreateExitUndergroundTask},
+ {MAP_TYPE_UNDERGROUND, MAP_TYPE_SECRET_BASE, 0, 1, CreateExitUndergroundTask},
{0, 0, 0, 0, NULL},
};
@@ -95,7 +95,7 @@ bool8 SetUpFieldMove_Flash(void)
return FALSE;
}
-void sub_810CBFC(void)
+static void sub_810CBFC(void)
{
u8 taskId = oei_task_add();
gFieldEffectArguments[0] = gLastFieldPokeMenuOpened;
@@ -103,7 +103,7 @@ void sub_810CBFC(void)
gTasks[taskId].data[9] = (uintptr_t)sub_810CC34;
}
-void sub_810CC34(void)
+static void sub_810CC34(void)
{
PlaySE(SE_W115);
FlagSet(FLAG_SYS_USE_FLASH);
@@ -156,17 +156,17 @@ void sub_810CC80(void)
SetMainCallback2(gMain.savedCallback);
}
-bool8 sub_810CD5C(void)
+static bool8 sub_810CD5C(void)
{
u8 i;
- u8 v0 = get_map_type_from_warp0();
- u8 v1 = Overworld_GetMapTypeOfSaveblockLocation();
+ u8 prevMapType = GetLastUsedWarpMapType();
+ u8 curMapType = Overworld_GetMapTypeOfSaveblockLocation();
- for (i = 0; gUnknown_083F7FC4[i].unk0; i++)
+ for (i = 0; gMapTypeFadePairs[i].mapTypeA; i++)
{
- if (gUnknown_083F7FC4[i].unk0 == v0 && gUnknown_083F7FC4[i].unk1 == v1)
+ if (gMapTypeFadePairs[i].mapTypeA == prevMapType && gMapTypeFadePairs[i].mapTypeB == curMapType)
{
- gUnknown_083F7FC4[i].func();
+ gMapTypeFadePairs[i].func();
return TRUE;
}
}
@@ -174,51 +174,49 @@ bool8 sub_810CD5C(void)
return FALSE;
}
-u8 sub_810CDB8(u8 a1, u8 a2)
+u8 GetMapPairFadeToType(u8 currentMapType, u8 destinationMapType)
{
u8 i;
- u8 v0 = a1;
- u8 v1 = a2;
+ u8 curMapType = currentMapType;
+ u8 destMapType = destinationMapType;
- for (i = 0; gUnknown_083F7FC4[i].unk0; i++)
+ for (i = 0; gMapTypeFadePairs[i].mapTypeA; i++)
{
- if (gUnknown_083F7FC4[i].unk0 == v0 && gUnknown_083F7FC4[i].unk1 == v1)
- {
- return gUnknown_083F7FC4[i].unk2;
- }
+ if (gMapTypeFadePairs[i].mapTypeA == curMapType && gMapTypeFadePairs[i].mapTypeB == destMapType)
+ return gMapTypeFadePairs[i].fadeToType;
}
return FALSE;
}
-u8 fade_type_for_given_maplight_pair(u8 a1, u8 a2)
+u8 GetMapPairFadeFromType(u8 currentMapType, u8 destinationMapType)
{
u8 i;
- u8 v0 = a1;
- u8 v1 = a2;
+ u8 curMapType = currentMapType;
+ u8 destMapType = destinationMapType;
- for (i = 0; gUnknown_083F7FC4[i].unk0; i++)
+ for (i = 0; gMapTypeFadePairs[i].mapTypeA; i++)
{
- if (gUnknown_083F7FC4[i].unk0 == v0 && gUnknown_083F7FC4[i].unk1 == v1)
+ if (gMapTypeFadePairs[i].mapTypeA == curMapType && gMapTypeFadePairs[i].mapTypeB == destMapType)
{
- return gUnknown_083F7FC4[i].unk3;
+ return gMapTypeFadePairs[i].fadeFromType;
}
}
return FALSE;
}
-void sub_810CE48(void)
+static void CreateExitUndergroundTask(void)
{
CreateTask(sub_810CE5C, 0);
}
-void sub_810CE5C(u8 taskId)
+static void sub_810CE5C(u8 taskId)
{
gTasks[taskId].func = sub_810CE78;
}
-void sub_810CE78(u8 taskId)
+static void sub_810CE78(u8 taskId)
{
REG_DISPCNT = 0;
LZ77UnCompVram(gCaveTransitionTiles, (void *)0x600C000);
@@ -235,7 +233,7 @@ void sub_810CE78(u8 taskId)
gTasks[taskId].data[1] = 0;
}
-void sub_810CF18(u8 taskId)
+static void sub_810CF18(u8 taskId)
{
u16 count = gTasks[taskId].data[1];
u16 blend = count + 0x1000;
@@ -251,7 +249,7 @@ void sub_810CF18(u8 taskId)
}
}
-void sub_810CF5C(u8 taskId)
+static void sub_810CF5C(u8 taskId)
{
u16 count;
@@ -272,7 +270,7 @@ void sub_810CF5C(u8 taskId)
}
}
-void sub_810CFC4(u8 taskId)
+static void sub_810CFC4(u8 taskId)
{
if (gTasks[taskId].data[2])
gTasks[taskId].data[2]--;
@@ -280,17 +278,17 @@ void sub_810CFC4(u8 taskId)
SetMainCallback2(gMain.savedCallback);
}
-void sub_810CFF8(void)
+static void CreateEnterUndergroundEffectTask(void)
{
CreateTask(sub_810D00C, 0);
}
-void sub_810D00C(u8 taskId)
+static void sub_810D00C(u8 taskId)
{
gTasks[taskId].func = sub_810D028;
}
-void sub_810D028(u8 taskId)
+static void sub_810D028(u8 taskId)
{
REG_DISPCNT = 0;
LZ77UnCompVram(gCaveTransitionTiles, (void *)0x600C000);
@@ -308,7 +306,7 @@ void sub_810D028(u8 taskId)
gTasks[taskId].data[2] = 0;
}
-void sub_810D0C4(u8 taskId)
+static void sub_810D0C4(u8 taskId)
{
u16 count = gTasks[taskId].data[2];
if (count < 16)
@@ -325,7 +323,7 @@ void sub_810D0C4(u8 taskId)
}
}
-void sub_810D128(u8 taskId)
+static void sub_810D128(u8 taskId)
{
u16 count = 16 - gTasks[taskId].data[1];
u16 blend = count + 0x1000;
diff --git a/src/item_use.c b/src/item_use.c
index 69fcd51de..926ab4876 100644
--- a/src/item_use.c
+++ b/src/item_use.c
@@ -972,7 +972,7 @@ void ItemUseOutOfBattle_BlackWhiteFlute(u8 taskId)
void task08_080A1C44(u8 taskId)
{
- player_avatar_init_params_reset();
+ ResetInitialPlayerAvatarState();
sub_80878A8();
DestroyTask(taskId);
}
diff --git a/src/new_game.c b/src/new_game.c
index f8a5524f5..683a22801 100644
--- a/src/new_game.c
+++ b/src/new_game.c
@@ -137,7 +137,7 @@ void debug_sub_8052E04()
void WarpToTruck(void)
{
Overworld_SetWarpDestination(MAP_GROUP(INSIDE_OF_TRUCK), MAP_NUM(INSIDE_OF_TRUCK), -1, -1, -1);
- warp_in();
+ WarpIntoMap();
}
void ClearSav2(void)
diff --git a/src/overworld.c b/src/overworld.c
index 47e23ad35..5bb357f8a 100644
--- a/src/overworld.c
+++ b/src/overworld.c
@@ -55,12 +55,6 @@
#define LEGENDARY_MUSIC BGM_HIDERI // Drought
#endif
-struct UnkTVStruct
-{
- u32 tv_field_0;
- u32 tv_field_4;
-};
-
extern u8 gUnknown_020297ED;
extern u16 gTotalCameraPixelOffsetY;
extern u16 gTotalCameraPixelOffsetX;
@@ -90,11 +84,11 @@ extern struct MapData * const gMapAttributes[];
extern struct MapHeader * const * const gMapGroups[];
extern s32 gMaxFlashLevel;
-EWRAM_DATA struct WarpData gUnknown_020297F0 = {0};
-EWRAM_DATA struct WarpData gWarpDestination = {0}; // new warp position
-EWRAM_DATA struct WarpData gUnknown_02029800 = {0};
-EWRAM_DATA struct WarpData gUnknown_02029808 = {0};
-EWRAM_DATA struct UnkPlayerStruct gUnknown_02029810 = {0};
+EWRAM_DATA struct WarpData gLastUsedWarp = {0};
+EWRAM_DATA struct WarpData gWarpDestination = {0};
+EWRAM_DATA struct WarpData gFixedDiveWarp = {0};
+EWRAM_DATA struct WarpData gFixedHoleWarp = {0};
+EWRAM_DATA struct InitialPlayerAvatarState gInitialPlayerAvatarState = {0};
EWRAM_DATA static u16 sAmbientCrySpecies = 0;
EWRAM_DATA static bool8 sIsAmbientCryWaterMon = FALSE;
EWRAM_DATA struct LinkPlayerEventObject gLinkPlayerEventObjects[4] = {0};
@@ -104,10 +98,16 @@ static u16 (*gUnknown_03000584)(u32);
static u8 gUnknown_03000588;
u16 word_3004858;
-void (*gFieldCallback)(void);
+extern void (*gFieldCallback)(void);
u8 gUnknown_03004860;
u8 gFieldLinkPlayerCount;
+static u8 GetAdjustedInitialTransitionFlags(struct InitialPlayerAvatarState*, u16, u8);
+static u8 GetAdjustedInitialDirection(struct InitialPlayerAvatarState*, u8, u16, u8);
+static bool32 sub_805483C(u8*);
+static void c2_80567AC(void);
+static void InitOverworldGraphicsRegisters(void);
+
static const struct WarpData sDummyWarpData =
{
.mapGroup = -1,
@@ -129,20 +129,20 @@ static const u8 sUnusedData[] =
0x2C, 0x00, 0x00, 0x00,
};
-const struct UCoords32 gUnknown_0821664C[] =
-{
- { 0, 0},
- { 0, 1},
- { 0, -1},
- {-1, 0},
- { 1, 0},
- {-1, 1},
- { 1, 1},
- {-1, -1},
- { 1, -1},
+const struct UCoords32 gDirectionToVectors[] =
+{
+ { 0, 0}, // DIR_NONE
+ { 0, 1}, // DIR_SOUTH
+ { 0, -1}, // DIR_NORTH
+ {-1, 0}, // DIR_WEST
+ { 1, 0}, // DIR_EAST
+ {-1, 1}, // DIR_SOUTHWEST
+ { 1, 1}, // DIR_SOUTHEAST
+ {-1, -1}, // DIR_NORTHWEST
+ { 1, -1}, // DIR_NORTHEAST
};
-const struct ScanlineEffectParams gUnknown_08216694 =
+static const struct ScanlineEffectParams sFlashEffectParams =
{
(void *)REG_ADDR_WIN0H,
((DMA_ENABLE | DMA_START_HBLANK | DMA_REPEAT | DMA_DEST_RELOAD) << 16) | 1,
@@ -197,12 +197,12 @@ static void DoWhiteOut(void)
ScrSpecial_HealPlayerParty();
Overworld_ResetStateAfterWhiteOut();
Overworld_SetWarpDestToLastHealLoc();
- warp_in();
+ WarpIntoMap();
}
void Overworld_ResetStateAfterFly(void)
{
- player_avatar_init_params_reset();
+ ResetInitialPlayerAvatarState();
FlagClear(FLAG_SYS_CYCLING_ROAD);
FlagClear(FLAG_SYS_CRUISE_MODE);
FlagClear(FLAG_SYS_SAFARI_MODE);
@@ -212,7 +212,7 @@ void Overworld_ResetStateAfterFly(void)
void Overworld_ResetStateAfterTeleport(void)
{
- player_avatar_init_params_reset();
+ ResetInitialPlayerAvatarState();
FlagClear(FLAG_SYS_CYCLING_ROAD);
FlagClear(FLAG_SYS_CRUISE_MODE);
FlagClear(FLAG_SYS_SAFARI_MODE);
@@ -223,7 +223,7 @@ void Overworld_ResetStateAfterTeleport(void)
void Overworld_ResetStateAfterDigEscRope(void)
{
- player_avatar_init_params_reset();
+ ResetInitialPlayerAvatarState();
FlagClear(FLAG_SYS_CYCLING_ROAD);
FlagClear(FLAG_SYS_CRUISE_MODE);
FlagClear(FLAG_SYS_SAFARI_MODE);
@@ -233,7 +233,7 @@ void Overworld_ResetStateAfterDigEscRope(void)
void Overworld_ResetStateAfterWhiteOut(void)
{
- player_avatar_init_params_reset();
+ ResetInitialPlayerAvatarState();
FlagClear(FLAG_SYS_CYCLING_ROAD);
FlagClear(FLAG_SYS_CRUISE_MODE);
FlagClear(FLAG_SYS_SAFARI_MODE);
@@ -241,7 +241,7 @@ void Overworld_ResetStateAfterWhiteOut(void)
FlagClear(FLAG_SYS_USE_FLASH);
}
-void sub_805308C(void)
+static void sub_805308C(void)
{
FlagClear(FLAG_SYS_SAFARI_MODE);
ChooseAmbientCrySpecies();
@@ -269,18 +269,18 @@ void IncrementGameStat(u8 index)
}
}
-u32 GetGameStat(u8 index)
+u32 GetGameStat(u8 stat)
{
- if (index >= NUM_GAME_STATS)
+ if (stat >= NUM_GAME_STATS)
return 0;
- return gSaveBlock1.gameStats[index];
+ return gSaveBlock1.gameStats[stat];
}
-void SetGameStat(u8 index, u32 value)
+void SetGameStat(u8 stat, u32 value)
{
- if (index < NUM_GAME_STATS)
- gSaveBlock1.gameStats[index] = value;
+ if (stat < NUM_GAME_STATS)
+ gSaveBlock1.gameStats[stat] = value;
}
void LoadEventObjTemplatesFromHeader(void)
@@ -342,7 +342,7 @@ static void mapdata_load_assets_to_gpu_and_full_redraw(void)
cur_mapheader_run_tileset_funcs_after_some_cpuset();
}
-static struct MapData *get_mapdata_header(void)
+static struct MapData *GetCurrentMapData(void)
{
u16 mapDataId = gSaveBlock1.mapDataId;
if (mapDataId)
@@ -352,10 +352,10 @@ static struct MapData *get_mapdata_header(void)
static void ApplyCurrentWarp(void)
{
- gUnknown_020297F0 = gSaveBlock1.location;
+ gLastUsedWarp = gSaveBlock1.location;
gSaveBlock1.location = gWarpDestination;
- gUnknown_02029800 = sDummyWarpData;
- gUnknown_02029808 = sDummyWarpData;
+ gFixedDiveWarp = sDummyWarpData;
+ gFixedHoleWarp = sDummyWarpData;
}
static void SetWarpData(struct WarpData *warp, s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y)
@@ -367,7 +367,7 @@ static void SetWarpData(struct WarpData *warp, s8 mapGroup, s8 mapNum, s8 warpId
warp->y = y;
}
-static bool32 warp_data_is_not_neg_1(struct WarpData *warp)
+static bool32 IsDummyWarp(struct WarpData *warp)
{
if (warp->mapGroup != -1)
return FALSE;
@@ -387,25 +387,25 @@ struct MapHeader *const Overworld_GetMapHeaderByGroupAndId(u16 mapGroup, u16 map
return gMapGroups[mapGroup][mapNum];
}
-struct MapHeader *const warp1_get_mapheader(void)
+struct MapHeader *const GetDestinationWarpMapHeader(void)
{
return Overworld_GetMapHeaderByGroupAndId(gWarpDestination.mapGroup, gWarpDestination.mapNum);
}
-static void set_current_map_header_from_sav1_save_old_name(void)
+static void LoadCurrentMapData(void)
{
gMapHeader = *Overworld_GetMapHeaderByGroupAndId(gSaveBlock1.location.mapGroup, gSaveBlock1.location.mapNum);
gSaveBlock1.mapDataId = gMapHeader.mapDataId;
- gMapHeader.mapData = get_mapdata_header();
+ gMapHeader.mapData = GetCurrentMapData();
}
static void LoadSaveblockMapHeader(void)
{
gMapHeader = *Overworld_GetMapHeaderByGroupAndId(gSaveBlock1.location.mapGroup, gSaveBlock1.location.mapNum);
- gMapHeader.mapData = get_mapdata_header();
+ gMapHeader.mapData = GetCurrentMapData();
}
-void sub_80533CC(void)
+static void SetPlayerCoordsFromWarp(void)
{
if (gSaveBlock1.location.warpId >= 0 && gSaveBlock1.location.warpId < gMapHeader.events->warpCount)
{
@@ -424,11 +424,11 @@ void sub_80533CC(void)
}
}
-void warp_in(void)
+void WarpIntoMap(void)
{
ApplyCurrentWarp();
- set_current_map_header_from_sav1_save_old_name();
- sub_80533CC();
+ LoadCurrentMapData();
+ SetPlayerCoordsFromWarp();
}
void Overworld_SetWarpDestination(s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y)
@@ -495,31 +495,27 @@ void sub_8053678(void)
gWarpDestination = gSaveBlock1.warp4;
}
-void sub_8053690(s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y)
+void SetFixedDiveWarp(s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y)
{
- SetWarpData(&gUnknown_02029800, mapGroup, mapNum, warpId, x, y);
+ SetWarpData(&gFixedDiveWarp, mapGroup, mapNum, warpId, x, y);
}
-static void warp1_set_to_warp2(void)
+static void SetFixedDiveWarpAsDestination(void)
{
- gWarpDestination = gUnknown_02029800;
+ gWarpDestination = gFixedDiveWarp;
}
-void sub_80536E4(s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y)
+void SetFixedHoleWarp(s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y)
{
- SetWarpData(&gUnknown_02029808, mapGroup, mapNum, warpId, x, y);
+ SetWarpData(&gFixedHoleWarp, mapGroup, mapNum, warpId, x, y);
}
-void sub_8053720(s16 x, s16 y)
+void SetFixedHoleWarpAsDestination(s16 x, s16 y)
{
- if (warp_data_is_not_neg_1(&gUnknown_02029808) == TRUE)
- {
- gWarpDestination = gUnknown_020297F0;
- }
+ if (IsDummyWarp(&gFixedHoleWarp) == TRUE)
+ gWarpDestination = gLastUsedWarp;
else
- {
- Overworld_SetWarpDestination(gUnknown_02029808.mapGroup, gUnknown_02029808.mapNum, -1, x, y);
- }
+ Overworld_SetWarpDestination(gFixedHoleWarp.mapGroup, gFixedHoleWarp.mapNum, -1, x, y);
}
void sub_8053778(void)
@@ -563,7 +559,6 @@ struct MapConnection *GetMapConnection(u8 dir)
static bool8 SetDiveWarp(u8 direction, u16 x, u16 y)
{
struct MapConnection *connection = GetMapConnection(direction);
-
if (connection != NULL)
{
Overworld_SetWarpDestination(connection->mapGroup, connection->mapNum, -1, x, y);
@@ -571,10 +566,12 @@ static bool8 SetDiveWarp(u8 direction, u16 x, u16 y)
else
{
mapheader_run_script_with_tag_x6();
- if (warp_data_is_not_neg_1(&gUnknown_02029800))
+ if (IsDummyWarp(&gFixedDiveWarp))
return FALSE;
- warp1_set_to_warp2();
+
+ SetFixedDiveWarpAsDestination();
}
+
return TRUE;
}
@@ -595,7 +592,7 @@ void sub_80538F0(u8 mapGroup, u8 mapNum)
Overworld_SetWarpDestination(mapGroup, mapNum, -1, -1, -1);
sub_8053F0C();
ApplyCurrentWarp();
- set_current_map_header_from_sav1_save_old_name();
+ LoadCurrentMapData();
LoadEventObjTemplatesFromHeader();
ClearTempFieldEventData();
ResetCyclingRoadChallengeData();
@@ -628,7 +625,7 @@ void sub_8053994(u32 a1)
bool8 v2;
bool8 v3;
- set_current_map_header_from_sav1_save_old_name();
+ LoadCurrentMapData();
LoadEventObjTemplatesFromHeader();
v2 = is_map_type_1_2_3_5_or_6(gMapHeader.mapType);
v3 = Overworld_MapTypeIsIndoors(gMapHeader.mapType);
@@ -655,82 +652,82 @@ void sub_8053994(u32 a1)
}
}
-void player_avatar_init_params_reset(void)
+void ResetInitialPlayerAvatarState(void)
{
- gUnknown_02029810.player_field_1 = 1;
- gUnknown_02029810.player_field_0 = 1;
+ gInitialPlayerAvatarState.direction = DIR_SOUTH;
+ gInitialPlayerAvatarState.transitionFlags = PLAYER_AVATAR_FLAG_ON_FOOT;
}
-void walkrun_find_lowest_active_bit_in_bitfield(void)
+void StoreInitialPlayerAvatarState(void)
{
- gUnknown_02029810.player_field_1 = GetPlayerFacingDirection();
+ gInitialPlayerAvatarState.direction = GetPlayerFacingDirection();
if (TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_MACH_BIKE))
- gUnknown_02029810.player_field_0 = 2;
+ gInitialPlayerAvatarState.transitionFlags = PLAYER_AVATAR_FLAG_MACH_BIKE;
else if (TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_ACRO_BIKE))
- gUnknown_02029810.player_field_0 = 4;
+ gInitialPlayerAvatarState.transitionFlags = PLAYER_AVATAR_FLAG_ACRO_BIKE;
else if (TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_SURFING))
- gUnknown_02029810.player_field_0 = 8;
+ gInitialPlayerAvatarState.transitionFlags = PLAYER_AVATAR_FLAG_SURFING;
else if (TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_UNDERWATER))
- gUnknown_02029810.player_field_0 = 16;
+ gInitialPlayerAvatarState.transitionFlags = PLAYER_AVATAR_FLAG_UNDERWATER;
else
- gUnknown_02029810.player_field_0 = 1;
+ gInitialPlayerAvatarState.transitionFlags = PLAYER_AVATAR_FLAG_ON_FOOT;
}
-struct UnkPlayerStruct *sub_8053AA8(void)
+static struct InitialPlayerAvatarState *GetInitialPlayerAvatarState(void)
{
- struct UnkPlayerStruct playerStruct;
+ struct InitialPlayerAvatarState playerStruct;
u8 mapType = Overworld_GetMapTypeOfSaveblockLocation();
- u16 v2 = cur_mapdata_block_role_at_screen_center_acc_to_sav1();
- u8 v4 = sub_8053B00(&gUnknown_02029810, v2, mapType);
- playerStruct.player_field_0 = v4;
- playerStruct.player_field_1 = sub_8053B60(&gUnknown_02029810, v4, v2, mapType);
- gUnknown_02029810 = playerStruct;
- return &gUnknown_02029810;
-}
-
-u8 sub_8053B00(struct UnkPlayerStruct *playerStruct, u16 a2, u8 a3)
-{
- if (a3 != 8 && FlagGet(FLAG_SYS_CRUISE_MODE))
- return 1;
- if (a3 == 5)
- return 16;
- if (MetatileBehavior_IsSurfableWaterOrUnderwater(a2) == 1)
- return 8;
+ u16 metatileBehavior = GetCenterScreenMetatileBehavior();
+ u8 transitionFlags = GetAdjustedInitialTransitionFlags(&gInitialPlayerAvatarState, metatileBehavior, mapType);
+ playerStruct.transitionFlags = transitionFlags;
+ playerStruct.direction = GetAdjustedInitialDirection(&gInitialPlayerAvatarState, transitionFlags, metatileBehavior, mapType);
+ gInitialPlayerAvatarState = playerStruct;
+ return &gInitialPlayerAvatarState;
+}
+
+static u8 GetAdjustedInitialTransitionFlags(struct InitialPlayerAvatarState *playerStruct, u16 metatileBehavior, u8 mapType)
+{
+ if (mapType != MAP_TYPE_INDOOR && FlagGet(FLAG_SYS_CRUISE_MODE))
+ return PLAYER_AVATAR_FLAG_ON_FOOT;
+ if (mapType == MAP_TYPE_UNDERWATER)
+ return PLAYER_AVATAR_FLAG_UNDERWATER;
+ if (MetatileBehavior_IsSurfableWaterOrUnderwater(metatileBehavior) == TRUE)
+ return PLAYER_AVATAR_FLAG_SURFING;
if (Overworld_IsBikingAllowed() != TRUE)
- return 1;
- if (playerStruct->player_field_0 == 2)
- return 2;
- if (playerStruct->player_field_0 != 4)
- return 1;
- return 4;
-}
-
-u8 sub_8053B60(struct UnkPlayerStruct *playerStruct, u8 a2, u16 a3, u8 a4)
-{
- if (FlagGet(FLAG_SYS_CRUISE_MODE) && a4 == 6)
- return 4;
- if (MetatileBehavior_IsDeepSouthWarp(a3) == TRUE)
- return 2;
- if (MetatileBehavior_IsNonAnimDoor(a3) == TRUE || MetatileBehavior_IsDoor(a3) == TRUE)
- return 1;
- if (MetatileBehavior_IsSouthArrowWarp(a3) == TRUE)
- return 2;
- if (MetatileBehavior_IsNorthArrowWarp(a3) == TRUE)
- return 1;
- if (MetatileBehavior_IsWestArrowWarp(a3) == TRUE)
- return 4;
- if (MetatileBehavior_IsEastArrowWarp(a3) == TRUE)
- return 3;
- if ((playerStruct->player_field_0 == 16 && a2 == 8)
- || (playerStruct->player_field_0 == 8 && a2 == 16))
- return playerStruct->player_field_1;
- if (MetatileBehavior_IsLadder(a3) == TRUE)
- return playerStruct->player_field_1;
- return 1;
-}
-
-u16 cur_mapdata_block_role_at_screen_center_acc_to_sav1(void)
+ return PLAYER_AVATAR_FLAG_ON_FOOT;
+ if (playerStruct->transitionFlags == PLAYER_AVATAR_FLAG_MACH_BIKE)
+ return PLAYER_AVATAR_FLAG_MACH_BIKE;
+ if (playerStruct->transitionFlags != PLAYER_AVATAR_FLAG_ACRO_BIKE)
+ return PLAYER_AVATAR_FLAG_ON_FOOT;
+ return PLAYER_AVATAR_FLAG_ACRO_BIKE;
+}
+
+static u8 GetAdjustedInitialDirection(struct InitialPlayerAvatarState *playerStruct, u8 transitionFlags, u16 metatileBehavior, u8 mapType)
+{
+ if (FlagGet(FLAG_SYS_CRUISE_MODE) && mapType == MAP_TYPE_6)
+ return DIR_EAST;
+ if (MetatileBehavior_IsDeepSouthWarp(metatileBehavior) == TRUE)
+ return DIR_NORTH;
+ if (MetatileBehavior_IsNonAnimDoor(metatileBehavior) == TRUE || MetatileBehavior_IsDoor(metatileBehavior) == TRUE)
+ return DIR_SOUTH;
+ if (MetatileBehavior_IsSouthArrowWarp(metatileBehavior) == TRUE)
+ return DIR_NORTH;
+ if (MetatileBehavior_IsNorthArrowWarp(metatileBehavior) == TRUE)
+ return DIR_SOUTH;
+ if (MetatileBehavior_IsWestArrowWarp(metatileBehavior) == TRUE)
+ return DIR_EAST;
+ if (MetatileBehavior_IsEastArrowWarp(metatileBehavior) == TRUE)
+ return DIR_WEST;
+ if ((playerStruct->transitionFlags == PLAYER_AVATAR_FLAG_UNDERWATER && transitionFlags == PLAYER_AVATAR_FLAG_SURFING)
+ || (playerStruct->transitionFlags == PLAYER_AVATAR_FLAG_SURFING && transitionFlags == PLAYER_AVATAR_FLAG_UNDERWATER))
+ return playerStruct->direction;
+ if (MetatileBehavior_IsLadder(metatileBehavior) == TRUE)
+ return playerStruct->direction;
+ return DIR_SOUTH;
+}
+
+u16 GetCenterScreenMetatileBehavior(void)
{
return MapGridGetMetatileBehaviorAt(gSaveBlock1.pos.x + 7, gSaveBlock1.pos.y + 7);
}
@@ -787,7 +784,7 @@ u8 Overworld_GetFlashLevel(void)
void sub_8053D14(u16 mapDataId)
{
gSaveBlock1.mapDataId = mapDataId;
- gMapHeader.mapData = get_mapdata_header();
+ gMapHeader.mapData = GetCurrentMapData();
}
static bool16 ShouldLegendaryMusicPlayAtLocation(struct WarpData *warp)
@@ -949,14 +946,14 @@ void Overworld_ChangeMusicTo(u16 newMusic)
u8 GetMapMusicFadeoutSpeed(void)
{
- struct MapHeader *mapHeader = warp1_get_mapheader();
+ struct MapHeader *mapHeader = GetDestinationWarpMapHeader();
if (Overworld_MapTypeIsIndoors(mapHeader->mapType) == TRUE)
return 2;
else
return 4;
}
-void sub_8053FF8(void)
+void TryFadeOutOldMapMusic(void)
{
u16 music = GetWarpDestinationMusic();
if (FlagGet(FLAG_SPECIAL_FLAG_1) != TRUE && music != GetCurrentMapMusic())
@@ -966,7 +963,7 @@ void sub_8053FF8(void)
}
}
-bool8 sub_8054034(void)
+bool8 BGMusicStopped(void)
{
return IsNotWaitingForBGMStop();
}
@@ -1054,9 +1051,9 @@ u8 Overworld_GetMapTypeOfSaveblockLocation(void)
return GetMapTypeByWarpData(&gSaveBlock1.location);
}
-u8 get_map_type_from_warp0(void)
+u8 GetLastUsedWarpMapType(void)
{
- return GetMapTypeByWarpData(&gUnknown_020297F0);
+ return GetMapTypeByWarpData(&gLastUsedWarp);
}
bool8 is_map_type_1_2_3_5_or_6(u8 mapType)
@@ -1246,7 +1243,7 @@ void sub_80543DC(u16 (*a1)(u32))
gUnknown_03000584 = a1;
}
-void sub_80543E8(void)
+static void RunFieldCallback(void)
{
if (gFieldCallback != NULL)
gFieldCallback();
@@ -1261,7 +1258,7 @@ void CB2_NewGame(void)
StopMapMusic();
ResetSafariZoneFlag_();
NewGameInitData();
- player_avatar_init_params_reset();
+ ResetInitialPlayerAvatarState();
PlayTimeCounter_Start();
ScriptContext1_Init();
ScriptContext2_Disable();
@@ -1274,14 +1271,12 @@ void CB2_NewGame(void)
#if DEBUG
-extern void (*gFieldCallback)(void);
-
void debug_sub_8058C00(void)
{
FieldClearVBlankHBlankCallbacks();
StopMapMusic();
ResetSafariZoneFlag_();
- player_avatar_init_params_reset();
+ ResetInitialPlayerAvatarState();
PlayTimeCounter_Start();
ScriptContext1_Init();
ScriptContext2_Disable();
@@ -1309,7 +1304,7 @@ void CB2_WhiteOut(void)
StopMapMusic();
ResetSafariZoneFlag_();
DoWhiteOut();
- player_avatar_init_params_reset();
+ ResetInitialPlayerAvatarState();
ScriptContext1_Init();
ScriptContext2_Disable();
gFieldCallback = sub_8080B60;
@@ -1363,7 +1358,7 @@ void sub_8054588(void)
SetMainCallback2(c2_80567AC);
}
-void c2_80567AC(void)
+static void c2_80567AC(void)
{
if (sub_805483C(&gMain.state))
{
@@ -1472,7 +1467,7 @@ void CB2_ContinueSavedGame(void)
{
ClearSecretBase2Field_9();
sub_8053778();
- warp_in();
+ WarpIntoMap();
SetMainCallback2(CB2_LoadMap);
}
else
@@ -1509,19 +1504,19 @@ void VBlankCB_Field(void)
sub_8072E74();
}
-void sub_8054814(void)
+static void InitCurrentFlashLevelScanlineEffect(void)
{
- u8 val = Overworld_GetFlashLevel();
- if (val)
+ u8 flashLevel = Overworld_GetFlashLevel();
+ if (flashLevel)
{
- sub_80815E0(val);
- ScanlineEffect_SetParams(gUnknown_08216694);
+ WriteFlashScanlineEffectBuffer(flashLevel);
+ ScanlineEffect_SetParams(sFlashEffectParams);
}
}
-bool32 sub_805483C(u8 *a1)
+static bool32 sub_805483C(u8 *state)
{
- switch (*a1)
+ switch (*state)
{
case 0:
FieldClearVBlankHBlankCallbacks();
@@ -1529,60 +1524,60 @@ bool32 sub_805483C(u8 *a1)
ScriptContext2_Disable();
sub_8054F70();
sub_8054BA8();
- (*a1)++;
+ (*state)++;
break;
case 1:
sub_8053994(1);
- (*a1)++;
+ (*state)++;
break;
case 2:
sub_8054D4C(1);
- (*a1)++;
+ (*state)++;
break;
case 3:
sub_8054E98();
sub_8054D90();
sub_8054EC8();
sub_8054E60();
- (*a1)++;
+ (*state)++;
break;
case 4:
- sub_8054814();
- sub_8054C54();
+ InitCurrentFlashLevelScanlineEffect();
+ InitOverworldGraphicsRegisters();
Text_LoadWindowTemplate(&gWindowTemplate_81E6C3C);
InitMenuWindow(&gMenuTextWindowTemplate);
- (*a1)++;
+ (*state)++;
break;
case 5:
move_tilemap_camera_to_upper_left_corner();
- (*a1)++;
+ (*state)++;
break;
case 6:
sub_8056D28(gMapHeader.mapData);
- (*a1)++;
+ (*state)++;
break;
case 7:
sub_8056D38(gMapHeader.mapData);
- (*a1)++;
+ (*state)++;
break;
case 8:
apply_map_tileset1_tileset2_palette(gMapHeader.mapData);
- (*a1)++;
+ (*state)++;
break;
case 9:
DrawWholeMapView();
- (*a1)++;
+ (*state)++;
break;
case 10:
cur_mapheader_run_tileset_funcs_after_some_cpuset();
- (*a1)++;
+ (*state)++;
break;
case 12:
- sub_80543E8();
- (*a1)++;
+ RunFieldCallback();
+ (*state)++;
break;
case 11:
- (*a1)++;
+ (*state)++;
break;
case 13:
return 1;
@@ -1590,67 +1585,67 @@ bool32 sub_805483C(u8 *a1)
return 0;
}
-bool32 sub_805493C(u8 *a1, u32 a2)
+bool32 sub_805493C(u8 *state, u32 a2)
{
- switch (*a1)
+ switch (*state)
{
case 0:
FieldClearVBlankHBlankCallbacks();
sub_8053994(a2);
- (*a1)++;
+ (*state)++;
break;
case 1:
sub_8054BA8();
- (*a1)++;
+ (*state)++;
break;
case 2:
sub_8054D4C(a2);
- (*a1)++;
+ (*state)++;
break;
case 3:
mli4_mapscripts_and_other();
sub_8054E34();
- (*a1)++;
+ (*state)++;
break;
case 4:
- sub_8054814();
- sub_8054C54();
+ InitCurrentFlashLevelScanlineEffect();
+ InitOverworldGraphicsRegisters();
Text_LoadWindowTemplate(&gWindowTemplate_81E6C3C);
InitMenuWindow(&gMenuTextWindowTemplate);
- (*a1)++;
+ (*state)++;
break;
case 5:
move_tilemap_camera_to_upper_left_corner();
- (*a1)++;
+ (*state)++;
break;
case 6:
sub_8056D28(gMapHeader.mapData);
- (*a1)++;
+ (*state)++;
break;
case 7:
sub_8056D38(gMapHeader.mapData);
- (*a1)++;
+ (*state)++;
break;
case 8:
apply_map_tileset1_tileset2_palette(gMapHeader.mapData);
- (*a1)++;
+ (*state)++;
break;
case 9:
DrawWholeMapView();
- (*a1)++;
+ (*state)++;
break;
case 10:
cur_mapheader_run_tileset_funcs_after_some_cpuset();
- (*a1)++;
+ (*state)++;
break;
case 11:
if (gMapHeader.flags == 1 && sub_80BBB24() == 1)
ShowMapNamePopup();
- (*a1)++;
+ (*state)++;
break;
case 12:
- sub_80543E8();
- (*a1)++;
+ RunFieldCallback();
+ (*state)++;
break;
case 13:
return 1;
@@ -1658,24 +1653,24 @@ bool32 sub_805493C(u8 *a1, u32 a2)
return 0;
}
-bool32 sub_8054A4C(u8 *a1)
+bool32 sub_8054A4C(u8 *state)
{
- switch (*a1)
+ switch (*state)
{
case 0:
sub_8054BA8();
sub_8054D4C(0);
sub_8054E20();
sub_8054E34();
- (*a1)++;
+ (*state)++;
break;
case 1:
sub_8054C2C();
- (*a1)++;
+ (*state)++;
break;
case 2:
- sub_80543E8();
- (*a1)++;
+ RunFieldCallback();
+ (*state)++;
break;
case 3:
return 1;
@@ -1683,67 +1678,67 @@ bool32 sub_8054A4C(u8 *a1)
return 0;
}
-bool32 sub_8054A9C(u8 *a1)
+bool32 sub_8054A9C(u8 *state)
{
- switch (*a1)
+ switch (*state)
{
case 0:
FieldClearVBlankHBlankCallbacks();
sub_8054BA8();
- (*a1)++;
+ (*state)++;
break;
case 1:
sub_8054D4C(1);
- (*a1)++;
+ (*state)++;
break;
case 2:
sub_8054F48();
sub_8054E20();
sub_8054E7C();
- (*a1)++;
+ (*state)++;
break;
case 3:
- sub_8054814();
- sub_8054C54();
+ InitCurrentFlashLevelScanlineEffect();
+ InitOverworldGraphicsRegisters();
Text_LoadWindowTemplate(&gWindowTemplate_81E6C3C);
InitMenuWindow(&gMenuTextWindowTemplate);
- (*a1)++;
+ (*state)++;
break;
case 4:
move_tilemap_camera_to_upper_left_corner();
- (*a1)++;
+ (*state)++;
break;
case 5:
sub_8056D28(gMapHeader.mapData);
- (*a1)++;
+ (*state)++;
break;
case 6:
sub_8056D38(gMapHeader.mapData);
- (*a1)++;
+ (*state)++;
break;
case 7:
apply_map_tileset1_tileset2_palette(gMapHeader.mapData);
- (*a1)++;
+ (*state)++;
break;
case 8:
DrawWholeMapView();
- (*a1)++;
+ (*state)++;
break;
case 9:
cur_mapheader_run_tileset_funcs_after_some_cpuset();
- (*a1)++;
+ (*state)++;
break;
case 12:
- sub_80543E8();
- (*a1)++;
+ RunFieldCallback();
+ (*state)++;
break;
case 10:
case 11:
- (*a1)++;
+ (*state)++;
break;
case 13:
SetFieldVBlankCallback();
- (*a1)++;
+ (*state)++;
return 1;
}
return 0;
@@ -1769,14 +1764,14 @@ void sub_8054BA8(void)
void sub_8054C2C(void)
{
- sub_8054814();
- sub_8054C54();
+ InitCurrentFlashLevelScanlineEffect();
+ InitOverworldGraphicsRegisters();
Text_LoadWindowTemplate(&gWindowTemplate_81E6C3C);
InitMenuWindow(&gMenuTextWindowTemplate);
mapdata_load_assets_to_gpu_and_full_redraw();
}
-void sub_8054C54(void)
+static void InitOverworldGraphicsRegisters(void)
{
REG_MOSAIC = 0;
REG_WININ = 7967;
@@ -1832,15 +1827,15 @@ void sub_8054D90(void)
void mli4_mapscripts_and_other(void)
{
s16 x, y;
- struct UnkPlayerStruct *player;
+ struct InitialPlayerAvatarState *initialPlayerAvatarState;
gTotalCameraPixelOffsetX = 0;
gTotalCameraPixelOffsetY = 0;
sub_805AA98();
sav1_camera_get_focus_coords(&x, &y);
- player = sub_8053AA8();
- InitPlayerAvatar(x, y, player->player_field_1, gSaveBlock2.playerGender);
- SetPlayerAvatarTransitionFlags(player->player_field_0);
- player_avatar_init_params_reset();
+ initialPlayerAvatarState = GetInitialPlayerAvatarState();
+ InitPlayerAvatar(x, y, initialPlayerAvatarState->direction, gSaveBlock2.playerGender);
+ SetPlayerAvatarTransitionFlags(initialPlayerAvatarState->transitionFlags);
+ ResetInitialPlayerAvatarState();
TrySpawnEventObjects(0, 0);
ResetBerryTreeSparkleFlags();
mapheader_run_first_tag4_script_list_match();
@@ -2327,8 +2322,8 @@ u8 *sub_805568C(struct UnkStruct_8054FF8 *a1)
return 0;
unkStruct = a1->sub;
- unkStruct.x += gUnknown_0821664C[a1->d].x;
- unkStruct.y += gUnknown_0821664C[a1->d].y;
+ unkStruct.x += gDirectionToVectors[a1->d].x;
+ unkStruct.y += gDirectionToVectors[a1->d].y;
unkStruct.height = 0;
linkPlayerId = GetLinkPlayerIdAt(unkStruct.x, unkStruct.y);
diff --git a/src/safari_zone.c b/src/safari_zone.c
index 7cc8e16a0..9272da902 100644
--- a/src/safari_zone.c
+++ b/src/safari_zone.c
@@ -102,7 +102,7 @@ void sub_80C824C(void)
else if (gBattleOutcome == 8)
{
ScriptContext2_RunNewScript(&gUnknown_081C340A);
- warp_in();
+ WarpIntoMap();
gFieldCallback = sub_8080E44;
SetMainCallback2(CB2_LoadMap);
}
diff --git a/src/scrcmd.c b/src/scrcmd.c
index ca49dc0df..d37e1180d 100644
--- a/src/scrcmd.c
+++ b/src/scrcmd.c
@@ -42,6 +42,7 @@
#include "sound.h"
#include "string_util.h"
#include "tv.h"
+#include "constants/maps.h"
typedef u16 (*SpecialFunc)(void);
typedef void (*NativeFunc)(void);
@@ -725,7 +726,7 @@ bool8 ScrCmd_warp(struct ScriptContext *ctx)
Overworld_SetWarpDestination(mapGroup, mapNum, warpId, x, y);
sub_8080E88();
- player_avatar_init_params_reset();
+ ResetInitialPlayerAvatarState();
return TRUE;
}
@@ -739,7 +740,7 @@ bool8 ScrCmd_warpsilent(struct ScriptContext *ctx)
Overworld_SetWarpDestination(mapGroup, mapNum, warpId, x, y);
sp13E_warp_to_last_warp();
- player_avatar_init_params_reset();
+ ResetInitialPlayerAvatarState();
return TRUE;
}
@@ -753,7 +754,7 @@ bool8 ScrCmd_warpdoor(struct ScriptContext *ctx)
Overworld_SetWarpDestination(mapGroup, mapNum, warpId, x, y);
sub_8080EF0();
- player_avatar_init_params_reset();
+ ResetInitialPlayerAvatarState();
return TRUE;
}
@@ -765,12 +766,12 @@ bool8 ScrCmd_warphole(struct ScriptContext *ctx)
u16 y;
PlayerGetDestCoords(&x, &y);
- if (mapGroup == 0xFF && mapNum == 0xFF)
- sub_8053720(x - 7, y - 7);
+ if (mapGroup == MAP_GROUP(UNDEFINED) && mapNum == MAP_NUM(UNDEFINED))
+ SetFixedHoleWarpAsDestination(x - 7, y - 7);
else
Overworld_SetWarpDestination(mapGroup, mapNum, -1, x - 7, y - 7);
sp13F_fall_to_last_warp();
- player_avatar_init_params_reset();
+ ResetInitialPlayerAvatarState();
return TRUE;
}
@@ -784,7 +785,7 @@ bool8 ScrCmd_warpteleport(struct ScriptContext *ctx)
Overworld_SetWarpDestination(mapGroup, mapNum, warpId, x, y);
sub_8080F68();
- player_avatar_init_params_reset();
+ ResetInitialPlayerAvatarState();
return TRUE;
}
@@ -820,7 +821,7 @@ bool8 ScrCmd_setdivewarp(struct ScriptContext *ctx)
u16 x = VarGet(ScriptReadHalfword(ctx));
u16 y = VarGet(ScriptReadHalfword(ctx));
- sub_8053690(mapGroup, mapNum, warpId, x, y);
+ SetFixedDiveWarp(mapGroup, mapNum, warpId, x, y);
return FALSE;
}
@@ -832,7 +833,7 @@ bool8 ScrCmd_setholewarp(struct ScriptContext *ctx)
u16 x = VarGet(ScriptReadHalfword(ctx));
u16 y = VarGet(ScriptReadHalfword(ctx));
- sub_80536E4(mapGroup, mapNum, warpId, x, y);
+ SetFixedHoleWarp(mapGroup, mapNum, warpId, x, y);
return FALSE;
}
diff --git a/src/secret_base.c b/src/secret_base.c
index 60ce80af5..69c7171d6 100644
--- a/src/secret_base.c
+++ b/src/secret_base.c
@@ -363,7 +363,7 @@ void sub_80BBA48(u8 taskid)
if (gSaveBlock1.secretBases[curbaseid].sbr_field_10 < 0xff)
gSaveBlock1.secretBases[curbaseid].sbr_field_10++;
sub_80BBA14();
- warp_in();
+ WarpIntoMap();
gFieldCallback = sub_8080990;
SetMainCallback2(CB2_LoadMap);
DestroyTask(taskid);
@@ -416,7 +416,7 @@ void sub_80BBBEC(u8 taskid)
{
idx = 4 * (gCurrentSecretBaseId / 10);
Overworld_SetWarpDestination(gSaveBlock1.location.mapGroup, gSaveBlock1.location.mapNum, -1, gUnknown_083D1374[idx + 2], gUnknown_083D1374[idx + 3]);
- warp_in();
+ WarpIntoMap();
gFieldCallback = sub_80BBB90;
SetMainCallback2(CB2_LoadMap);
DestroyTask(taskid);
@@ -578,7 +578,7 @@ void sub_80BC074(u8 taskid)
break;
case 2:
copy_saved_warp2_bank_and_enter_x_to_warp1(0x7E);
- warp_in();
+ WarpIntoMap();
gFieldCallback = mapldr_default;
SetMainCallback2(CB2_LoadMap);
ScriptContext2_Disable();
diff --git a/src/time_events.c b/src/time_events.c
index 4bd732788..d3acdaf2f 100644
--- a/src/time_events.c
+++ b/src/time_events.c
@@ -81,7 +81,7 @@ void UpdateShoalTideFlag(void)
1,
};
- if (is_map_type_1_2_3_5_or_6(get_map_type_from_warp0()))
+ if (is_map_type_1_2_3_5_or_6(GetLastUsedWarpMapType()))
{
RtcCalcLocalTime();
if (tide[gLocalTime.hours])