Requested Changes + Much more documentation

This commit is contained in:
Adrienn Tindall 2024-10-01 23:20:30 -04:00
parent 1aab496bce
commit b21c778ada
27 changed files with 265 additions and 263 deletions

View File

@ -2,7 +2,7 @@
#define POKEPLATINUM_CONSTANTS_FIELD_MAP_LOAD_H
enum {
MAP_LOAD_TYPE_OVERWORLD,
MAP_LOAD_TYPE_OVERWORLD = 0,
MAP_LOAD_TYPE_UNDERGROUND,
MAP_LOAD_TYPE_UNION,
MAP_LOAD_TYPE_COLOSSEUM,

View File

@ -12,11 +12,11 @@
#include "struct_decls/struct_02061830_decl.h"
#include "struct_decls/struct_02095E80_decl.h"
#include "struct_decls/struct_0209ACBC_decl.h"
#include "struct_defs/map_load_mode.h"
#include "struct_defs/struct_0202610C.h"
#include "struct_defs/struct_02049FA8.h"
#include "struct_defs/struct_0204AFC4.h"
#include "struct_defs/struct_0209C370.h"
#include "struct_defs/struct_020EC3A8.h"
#include "field/field_system_sub1_decl.h"
#include "field/field_system_sub2_decl.h"
@ -70,7 +70,7 @@ typedef struct FieldSystem_t {
UnkStruct_ov5_021D3CAC *unk_50;
UnkStruct_ov5_021D41B4 *unk_54;
UnkStruct_02054C18 *unk_58;
const TerrainCollisionManager *unk_5C;
const TerrainCollisionManager *terrainCollisionMan;
int unk_60;
UnkStruct_ov5_021E1B20 *unk_64;
BOOL unk_68;

View File

@ -7,7 +7,7 @@
#include "field/field_system_decl.h"
#include "functypes/funcptr_02050904.h"
void sub_020531A0(FieldSystem *fieldSystem);
void FieldMapChange_Set3DDisplay(FieldSystem *fieldSystem);
void FieldMapChange_UpdateGameData(FieldSystem *fieldSystem, BOOL param1);
void FieldMapChange_UpdateGameDataDistortionWorld(FieldSystem *fieldSystem, BOOL param1);
void sub_02053494(FieldSystem *fieldSystem);
@ -16,14 +16,14 @@ void FieldSystem_SetLoadSavedGameMapTask(FieldSystem *fieldSystem);
void FieldSystem_StartLoadMapFromErrorTask(FieldSystem *fieldSystem);
void FieldSystem_StartChangeMapTask(TaskManager *param0, const Location *param1);
void FieldTask_ChangeMapByLocation(TaskManager *param0, const Location *param1);
void sub_020539E8(TaskManager *param0, int param1, int param2, int param3, int param4, int param5);
void FieldTask_ChangeMapToLocation(TaskManager *param0, int param1, int param2, int param3, int param4, int param5);
void FieldTask_StartMapChangeFull(TaskManager *param0, int param1, int param2, int param3, int param4, int param5);
void sub_02053AB4(FieldSystem *fieldSystem, int param1, int param2, int param3, int param4, int param5);
void sub_02053AFC(TaskManager *param0, int param1, int param2, int param3, int param4, int param5);
void sub_02053CD4(TaskManager *param0, const Location *param1, u32 param2);
void FieldTask_StartMapChangeFly(FieldSystem *fieldSystem, int param1, int param2, int param3, int param4, int param5);
void FieldTask_ChangeMapChangeFly(TaskManager *param0, int param1, int param2, int param3, int param4, int param5);
void FieldTask_ChangeMapChangeByDig(TaskManager *param0, const Location *param1, u32 param2);
void FieldSystem_StartMapChangeWarpTask(FieldSystem *fieldSystem, int param1, int param2);
void *sub_02053FAC(FieldSystem *fieldSystem);
void sub_02054064(FieldSystem *fieldSystem);
void FieldTask_SetUndergroundMapChange(FieldSystem *fieldSystem);
BOOL FieldTask_MapChangeToUnderground(TaskManager *param0);
BOOL sub_0205430C(TaskManager *param0);
FieldTask FieldMapChange_GetMapChangeUndergroundTask(const FieldSystem *fieldSystem);

View File

@ -10,6 +10,6 @@ UnkStruct_ov5_021DD9C8 *ov5_021DD98C(BGL *param0);
void ov5_021DD9C8(UnkStruct_ov5_021DD9C8 *param0);
void ov5_021DD9E8(UnkStruct_ov5_021DD9C8 *param0, const int param1, const int param2);
void ov5_021DDA78(UnkStruct_ov5_021DD9C8 *param0);
void ov5_021DDAA4(FieldSystem *fieldSystem);
void FieldSystem_RequestLocationName(FieldSystem *fieldSystem);
#endif // POKEPLATINUM_OV5_021DD6FC_H

View File

@ -9,7 +9,7 @@
SysTask *ov6_02243F88(FieldSystem *fieldSystem, u32 param1, Pokemon *param2, int param3);
int ov6_02243FBC(SysTask *param0);
void ov6_02243FC8(SysTask *param0);
SysTask *ov6_02245CCC(FieldSystem *fieldSystem, int param1);
SysTask *FieldTask_InitFlyLandingTask(FieldSystem *fieldSystem, int param1);
int ov6_02245CF0(SysTask *param0);
void ov6_02245CFC(SysTask *param0);

View File

@ -1,7 +1,7 @@
#ifndef POKEPLATINUM_STRUCT_020EC3A8_H
#define POKEPLATINUM_STRUCT_020EC3A8_H
#ifndef POKEPLATINUM_STRUCT_MAP_LOAD_MODE_H
#define POKEPLATINUM_STRUCT_MAP_LOAD_MODE_H
typedef struct {
typedef struct MapLoadMode {
u32 fieldBottomScreen : 4;
u32 unk_00_4 : 4;
u32 unk_00_8 : 4;
@ -12,4 +12,4 @@ typedef struct {
u32 unk_04;
} MapLoadMode;
#endif // POKEPLATINUM_STRUCT_020EC3A8_H
#endif // POKEPLATINUM_STRUCT_MAP_LOAD_MODE_H

View File

@ -15,7 +15,7 @@ SecretBaseRecord *sub_0202855C(u32 param0);
void Underground_Init(UndergroundData *param0);
void sub_02028658(SaveData *param0, int param1);
void sub_02028758(SaveData *param0, s32 param1, BOOL param2);
void sub_0202878C(SaveData *param0);
void SaveData_LoadAndUpdateUnderground(SaveData *param0);
void sub_020287E0(SaveData *param0);
void sub_020287F8(SaveData *param0);
BOOL sub_02028810(SaveData *param0);

View File

@ -7,7 +7,7 @@ void FieldTask_FinishFieldMap(TaskManager *param0);
void FieldTask_StartFieldMap(TaskManager *param0);
void sub_020558AC(TaskManager *param0);
void sub_020558F0(TaskManager *param0);
void sub_02055974(TaskManager *param0);
void FieldTask_FinishFadeOut(TaskManager *param0);
void FieldTask_StartFadeIn(TaskManager *param0);
#endif // POKEPLATINUM_UNK_02055808_H

View File

@ -13,7 +13,7 @@
#include "sys_task_manager.h"
#include "trainer_info.h"
UnkStruct_0205B43C *sub_0205B33C(FieldSystem *fieldSystem);
UnkStruct_0205B43C *FieldSystem_InitCommUnionRoom(FieldSystem *fieldSystem);
void sub_0205B388(FieldSystem *fieldSystem);
void sub_0205B5BC(SysTask *param0, void *param1);
FieldSystem *sub_0205B770(UnkStruct_0205B43C *param0);

View File

@ -7,8 +7,8 @@ void sub_02070428(FieldSystem *fieldSystem, BOOL param1);
void FieldSystem_InitFlagsOnMapChange(FieldSystem *fieldSystem);
void FieldSystem_InitFlagsWarp(FieldSystem *fieldSystem);
void sub_0207056C(FieldSystem *fieldSystem);
void sub_02070588(FieldSystem *fieldSystem);
void sub_020705A4(FieldSystem *fieldSystem);
void FieldSystem_SetTeleportFlags(FieldSystem *fieldSystem);
void FieldSystem_SetEscapeFlags(FieldSystem *fieldSystem);
void sub_020705B4(FieldSystem *fieldSystem);
void sub_020705CC(FieldSystem *fieldSystem);

View File

@ -10,10 +10,10 @@
#include "struct_decls/struct_02001AF4_decl.h"
#include "struct_decls/struct_0203A790_decl.h"
#include "struct_decls/struct_020508D4_decl.h"
#include "struct_defs/map_load_mode.h"
#include "struct_defs/struct_02049FA8.h"
#include "struct_defs/struct_0205AA50.h"
#include "struct_defs/struct_0205EC34.h"
#include "struct_defs/struct_020EC3A8.h"
#include "field/field_system.h"
#include "functypes/funcptr_02050904.h"
@ -79,46 +79,46 @@
FS_EXTERN_OVERLAY(overlay23);
typedef struct {
typedef struct MapChangeData {
int state;
Location nextLocation;
UnkStruct_ov5_021D432C *unk_18;
} MapChangeData;
typedef struct {
typedef struct MapChangeSubData {
int state;
Location nextLocation;
} MapChangeSubData;
typedef struct {
int unk_00;
SysTask *unk_04;
Location unk_08;
typedef struct MapChangeFlyData {
int state;
SysTask *task;
Location location;
UnkStruct_ov5_021D432C *unk_1C;
} UnkStruct_02053AB4;
} MapChangeFlyData;
typedef struct {
typedef struct MapChangeFromErrorData {
BOOL finishedFlag;
Location location;
} MapChangeFromErrorData;
typedef struct {
int unk_00;
typedef struct MapChangeDigData {
int state;
int unk_04;
SysTask *unk_08;
Location unk_0C;
} UnkStruct_02053CD4;
SysTask *task;
Location location;
} MapChangeDigData;
typedef struct {
typedef struct MapChangeWarpData {
int state;
BOOL warpFinished;
Location nextLocation;
} MapChangeWarpData;
typedef struct {
int unk_00;
typedef struct MapChangeUndergroundData {
int state;
int unk_04;
int unk_08;
int mapId;
int unk_0C;
int unk_10;
int unk_14;
@ -131,32 +131,32 @@ typedef struct {
UIControlData *unk_3C;
} MapChangeUndergroundData;
typedef struct {
int unk_00;
typedef struct MapChangeUnionData {
int state;
BOOL unk_04;
Location unk_08;
Location location;
} MapChangeUnionData;
static BOOL FieldTask_ChangeMap(TaskManager *taskMan);
static BOOL FieldTask_LoadNewGameSpawn(TaskManager *taskMan);
static void FieldMapChange_SetNewLocation(FieldSystem *fieldSystem, const Location *param1);
static void FieldMapChange_InitTerrainCollisionManager(FieldSystem *fieldSystem);
static void sub_02053468(FieldSystem *fieldSystem);
static void FieldMapChange_RemoveTerrainCollisionManager(FieldSystem *fieldSystem);
static void FieldMapChange_CreatePlayerObject(FieldSystem *fieldSystem);
static void sub_02053374(FieldSystem *fieldSystem);
static void sub_020534BC(FieldSystem *fieldSystem);
static BOOL sub_02053B44(TaskManager *taskMan);
static void sub_02053BD4(TaskManager *taskMan);
static BOOL sub_02053BE4(TaskManager *taskMan);
static void sub_02053C10(TaskManager *taskMan);
static BOOL sub_02053C28(TaskManager *taskMan);
static void sub_02053C70(TaskManager *taskMan);
static BOOL sub_02053CB4(TaskManager *taskMan);
static BOOL sub_02053D0C(TaskManager *taskMan);
static void sub_02053DB4(TaskManager *taskMan);
static BOOL sub_02053DC4(TaskManager *taskMan);
static void sub_02053DF0(TaskManager *taskMan);
static BOOL sub_02053E08(TaskManager *taskMan);
static BOOL FieldTask_MapChangeFly(TaskManager *taskMan);
static void FieldTask_FinishFly(TaskManager *taskMan);
static BOOL FieldTask_FinishFieldMapFly(TaskManager *taskMan);
static void FieldTask_StartFadeInFly(TaskManager *taskMan);
static BOOL FieldTask_StartFadeInFlySub(TaskManager *taskMan);
static void FieldTask_FadeInFly(TaskManager *taskMan);
static BOOL FieldTask_WaitFadeInFly(TaskManager *taskMan);
static BOOL FieldTask_MapChangeByDig(TaskManager *taskMan);
static void FieldTask_StartFinishFieldMapDig(TaskManager *taskMan);
static BOOL FieldTask_FinishFieldMapDig(TaskManager *taskMan);
static void FieldTask_StartFadeInDig(TaskManager *taskMan);
static BOOL FieldTask_FadeInDig(TaskManager *taskMan);
static void sub_02053E5C(TaskManager *taskMan);
static BOOL sub_0205444C(TaskManager *taskMan, int param1);
@ -233,7 +233,7 @@ static void FieldMapChange_SetNewLocation(FieldSystem *fieldSystem, const Locati
}
}
void sub_020531A0(FieldSystem *fieldSystem)
void FieldMapChange_Set3DDisplay(FieldSystem *fieldSystem)
{
GF_ASSERT(fieldSystem->mapLoadType < MAP_LOAD_TYPE_MAX);
gCoreSys.unk_65 = fieldSystem->mapLoadMode->unk_00_12;
@ -320,10 +320,10 @@ void FieldMapChange_UpdateGameDataDistortionWorld(FieldSystem *fieldSystem, BOOL
}
if (!param1) {
u16 v2 = sub_0203A858(mapId);
u16 warpId = sub_0203A858(mapId);
if (v2 != 0) {
FieldOverworldState_SetWarpId(fieldState, v2);
if (warpId != 0) {
FieldOverworldState_SetWarpId(fieldState, warpId);
}
}
@ -373,7 +373,7 @@ static void FieldMapChange_LoadObjects(FieldSystem *fieldSystem)
static void FieldMapChange_InitTerrainCollisionManager(FieldSystem *fieldSystem)
{
sub_020530C8(fieldSystem);
GF_ASSERT(fieldSystem->unk_5C == NULL);
GF_ASSERT(fieldSystem->terrainCollisionMan == NULL);
sub_02039DC0(fieldSystem->location->mapId, fieldSystem->unk_2C);
if (sub_0206B1F0(SaveData_GetVarsFlags(fieldSystem->saveData), 3)) {
@ -390,18 +390,18 @@ static void FieldMapChange_InitTerrainCollisionManager(FieldSystem *fieldSystem)
fieldSystem->unk_60 = fieldSystem->mapLoadMode->unk_00_4;
fieldSystem->bottomScreen = fieldSystem->mapLoadMode->fieldBottomScreen;
sub_02054F44(&fieldSystem->unk_5C, fieldSystem->mapLoadMode->unk_00_8);
sub_02054F44(&fieldSystem->terrainCollisionMan, fieldSystem->mapLoadMode->unk_00_8);
if (fieldSystem->mapLoadMode->unk_00_16) {
sub_02054BD0(fieldSystem, fieldSystem->mapLoadMode->unk_00_24);
}
}
static void sub_02053468(FieldSystem *fieldSystem)
static void FieldMapChange_RemoveTerrainCollisionManager(FieldSystem *fieldSystem)
{
GF_ASSERT(fieldSystem->unk_5C != NULL);
GF_ASSERT(fieldSystem->terrainCollisionMan != NULL);
fieldSystem->unk_5C = NULL;
fieldSystem->terrainCollisionMan = NULL;
fieldSystem->bottomScreen = 5;
if (fieldSystem->mapLoadMode->unk_00_16) {
@ -443,10 +443,10 @@ static BOOL FieldSystem_IsSaveInUnionRoom(const FieldSystem *fieldSystem)
static void FieldSystem_SetLocationToUnionRoomExit(FieldSystem *fieldSystem)
{
Location *v0 = FieldOverworldState_GetSpecialLocation(SaveData_GetFieldOverworldState(fieldSystem->saveData));
Location *exit = FieldOverworldState_GetSpecialLocation(SaveData_GetFieldOverworldState(fieldSystem->saveData));
VarsFlags *varsFlags = SaveData_GetVarsFlags(fieldSystem->saveData);
Location_Set(v0, fieldSystem->location->mapId, -1, 8, 2, 1);
Location_Set(exit, fieldSystem->location->mapId, -1, 8, 2, 1);
}
static BOOL FieldTask_LoadNewGameSpawn(TaskManager *taskMan)
@ -488,7 +488,7 @@ static BOOL FieldTask_LoadSavedGameMap(TaskManager *taskMan)
switch (*state) {
case 0:
sub_0202878C(fieldSystem->saveData);
SaveData_LoadAndUpdateUnderground(fieldSystem->saveData);
if (Journal_CheckOpenOnContinue(SaveData_GetJournal(fieldSystem->saveData), inline_020535E8(varsFlags))) {
sub_0203D30C(fieldSystem, NULL);
@ -554,7 +554,7 @@ static BOOL FieldTask_LoadMapFromError(TaskManager *taskMan)
case 0:
sub_0200F344(0, 0x0);
sub_0200F344(1, 0x0);
sub_0202878C(fieldSystem->saveData);
SaveData_LoadAndUpdateUnderground(fieldSystem->saveData);
fieldSystem->journal = Journal_GetSavedPage(SaveData_GetJournal(fieldSystem->saveData), inline_020535E8(varsFlags));
(*state)++;
break;
@ -567,7 +567,7 @@ static BOOL FieldTask_LoadMapFromError(TaskManager *taskMan)
(*state)++;
break;
case 2:
fieldSystem->unk_7C = sub_0205B33C(fieldSystem);
fieldSystem->unk_7C = FieldSystem_InitCommUnionRoom(fieldSystem);
fieldSystem->unk_80 = sub_0205C22C(fieldSystem->unk_7C);
FieldTask_StartFieldMap(taskMan);
(*state)++;
@ -624,12 +624,12 @@ static BOOL FieldTask_ChangeMap(TaskManager *taskMan)
case 0:
Sound_PlayEffect(1539);
Sound_TryFadeInBGM(fieldSystem, location->mapId);
sub_02055974(taskMan);
(mapChangeData->state)++;
FieldTask_FinishFadeOut(taskMan);
mapChangeData->state++;
break;
case 1:
FieldTask_ChangeMapByLocation(taskMan, &mapChangeData->nextLocation);
(mapChangeData->state)++;
mapChangeData->state++;
break;
case 2:
if (Sound_CheckFade() != 0) {
@ -638,7 +638,7 @@ static BOOL FieldTask_ChangeMap(TaskManager *taskMan)
Sound_PlayMapBGM(fieldSystem, location->mapId);
FieldTask_StartFadeIn(taskMan);
(mapChangeData->state)++;
mapChangeData->state++;
break;
case 3:
Heap_FreeToHeap(mapChangeData);
@ -666,15 +666,15 @@ static BOOL FieldTask_ChangeMapSub(TaskManager *taskMan)
switch (mapChangeSub->state) {
case 0:
FieldMapChange_DeleteObjects(fieldSystem);
sub_02053468(fieldSystem);
(mapChangeSub->state)++;
FieldMapChange_RemoveTerrainCollisionManager(fieldSystem);
mapChangeSub->state++;
break;
case 1:
FieldMapChange_SetNewLocation(fieldSystem, &mapChangeSub->nextLocation);
FieldMapChange_InitTerrainCollisionManager(fieldSystem);
FieldMapChange_UpdateGameData(fieldSystem, 0);
RadarChain_Clear(fieldSystem->chain);
(mapChangeSub->state)++;
mapChangeSub->state++;
break;
case 2:
FieldMapChange_CreateObjects(fieldSystem);
@ -701,7 +701,7 @@ void FieldTask_ChangeMapByLocation(TaskManager *taskMan, const Location *nextLoc
FieldTask_Start(taskMan, FieldTask_ChangeMapSub, mapChangeSub);
}
void sub_020539E8(TaskManager *taskMan, int param1, int param2, int param3, int param4, int param5)
void FieldTask_ChangeMapToLocation(TaskManager *taskMan, int param1, int param2, int param3, int param4, int param5)
{
Location location;
@ -719,11 +719,11 @@ static BOOL FieldTask_ChangeMapFull(TaskManager *taskMan)
case 0:
Sound_TryFadeInBGM(fieldSystem, nextLocation->mapId);
FieldTask_FinishFieldMap(taskMan);
(mapChangeSub->state)++;
mapChangeSub->state++;
break;
case 1:
FieldTask_ChangeMapByLocation(taskMan, &mapChangeSub->nextLocation);
(mapChangeSub->state)++;
mapChangeSub->state++;
break;
case 2:
if (Sound_CheckFade() != 0) {
@ -732,97 +732,97 @@ static BOOL FieldTask_ChangeMapFull(TaskManager *taskMan)
Sound_PlayMapBGM(fieldSystem, nextLocation->mapId);
FieldTask_StartFieldMap(taskMan);
(mapChangeSub->state)++;
mapChangeSub->state++;
break;
case 3:
Heap_FreeToHeap(mapChangeSub);
return 1;
return TRUE;
}
return 0;
return FALSE;
}
void FieldTask_StartMapChangeFull(TaskManager *taskMan, int mapId, int param2, int x, int z, int param5)
void FieldTask_StartMapChangeFull(TaskManager *taskMan, int mapId, int param2, int x, int z, int dir)
{
MapChangeSubData *mapChangeSub = Heap_AllocFromHeapAtEnd(11, sizeof(MapChangeSubData));
mapChangeSub->state = 0;
Location_Set(&mapChangeSub->nextLocation, mapId, param2, x, z, param5);
Location_Set(&mapChangeSub->nextLocation, mapId, param2, x, z, dir);
FieldTask_Start(taskMan, FieldTask_ChangeMapFull, mapChangeSub);
}
void sub_02053AB4(FieldSystem *fieldSystem, int param1, int param2, int param3, int param4, int param5)
void FieldTask_StartMapChangeFly(FieldSystem *fieldSystem, int param1, int param2, int param3, int param4, int param5)
{
Location location;
Location_Set(&location, param1, param2, param3, param4, param5);
UnkStruct_02053AB4 *v1 = Heap_AllocFromHeapAtEnd(11, sizeof(UnkStruct_02053AB4));
MapChangeFlyData *mapChangeData = Heap_AllocFromHeapAtEnd(11, sizeof(MapChangeFlyData));
v1->unk_00 = 0;
v1->unk_04 = NULL;
v1->unk_08 = location;
mapChangeData->state = 0;
mapChangeData->task = NULL;
mapChangeData->location = location;
FieldTask_Set(fieldSystem, sub_02053B44, v1);
FieldTask_Set(fieldSystem, FieldTask_MapChangeFly, mapChangeData);
}
void sub_02053AFC(TaskManager *taskMan, int param1, int param2, int param3, int param4, int param5)
void FieldTask_ChangeMapChangeFly(TaskManager *taskMan, int param1, int param2, int param3, int param4, int param5)
{
Location location;
Location_Set(&location, param1, param2, param3, param4, param5);
UnkStruct_02053AB4 *v1 = Heap_AllocFromHeapAtEnd(11, sizeof(UnkStruct_02053AB4));
MapChangeFlyData *mapChangeData = Heap_AllocFromHeapAtEnd(11, sizeof(MapChangeFlyData));
v1->unk_00 = 0;
v1->unk_04 = NULL;
v1->unk_08 = location;
mapChangeData->state = 0;
mapChangeData->task = NULL;
mapChangeData->location = location;
FieldTask_Change(taskMan, sub_02053B44, v1);
FieldTask_Change(taskMan, FieldTask_MapChangeFly, mapChangeData);
}
static BOOL sub_02053B44(TaskManager *taskMan)
static BOOL FieldTask_MapChangeFly(TaskManager *taskMan)
{
FieldSystem *fieldSystem = TaskManager_FieldSystem(taskMan);
UnkStruct_02053AB4 *v1 = TaskManager_Environment(taskMan);
Location *v2 = &v1->unk_08;
MapChangeFlyData *mapChangeData = TaskManager_Environment(taskMan);
Location *location = &mapChangeData->location;
switch (v1->unk_00) {
switch (mapChangeData->state) {
case 0:
Sound_TryFadeInBGM(fieldSystem, v2->mapId);
sub_02053BD4(taskMan);
(v1->unk_00)++;
Sound_TryFadeInBGM(fieldSystem, location->mapId);
FieldTask_FinishFly(taskMan);
mapChangeData->state++;
break;
case 1:
PlayerAvatar_SetPlayerState(fieldSystem->playerAvatar, 0x0);
FieldTask_ChangeMapByLocation(taskMan, &v1->unk_08);
(v1->unk_00)++;
FieldTask_ChangeMapByLocation(taskMan, &mapChangeData->location);
mapChangeData->state++;
break;
case 2:
if (Sound_CheckFade() != 0) {
break;
}
Sound_PlayMapBGM(fieldSystem, v2->mapId);
Sound_PlayMapBGM(fieldSystem, location->mapId);
sub_0207056C(fieldSystem);
sub_02053C10(taskMan);
(v1->unk_00)++;
FieldTask_StartFadeInFly(taskMan);
mapChangeData->state++;
break;
case 3:
Heap_FreeToHeap(v1);
Heap_FreeToHeap(mapChangeData);
return 1;
}
return 0;
}
static void sub_02053BD4(TaskManager *taskMan)
static void FieldTask_FinishFly(TaskManager *taskMan)
{
FieldTask_Start(taskMan, sub_02053BE4, NULL);
FieldTask_Start(taskMan, FieldTask_FinishFieldMapFly, NULL);
}
static BOOL sub_02053BE4(TaskManager *taskMan)
static BOOL FieldTask_FinishFieldMapFly(TaskManager *taskMan)
{
int *state = FieldTask_GetState(taskMan);
@ -838,176 +838,176 @@ static BOOL sub_02053BE4(TaskManager *taskMan)
return FALSE;
}
static void sub_02053C10(TaskManager *taskMan)
static void FieldTask_StartFadeInFly(TaskManager *taskMan)
{
UnkStruct_02053AB4 *v0 = TaskManager_Environment(taskMan);
FieldTask_Start(taskMan, sub_02053C28, v0);
MapChangeFlyData *mapChangeData = TaskManager_Environment(taskMan);
FieldTask_Start(taskMan, FieldTask_StartFadeInFlySub, mapChangeData);
}
static BOOL sub_02053C28(TaskManager *taskMan)
static BOOL FieldTask_StartFadeInFlySub(TaskManager *taskMan)
{
int *v0 = FieldTask_GetState(taskMan);
int *state = FieldTask_GetState(taskMan);
FieldSystem *fieldSystem = TaskManager_FieldSystem(taskMan);
switch (*v0) {
switch (*state) {
case 0:
FieldTask_StartFieldMap(taskMan);
(*v0)++;
(*state)++;
break;
case 1:
ov5_021DDAA4(fieldSystem);
sub_02053C70(taskMan);
(*v0)++;
FieldSystem_RequestLocationName(fieldSystem);
FieldTask_FadeInFly(taskMan);
(*state)++;
break;
case 2:
return 1;
return TRUE;
}
return 0;
return FALSE;
}
static void sub_02053C70(TaskManager *taskMan)
static void FieldTask_FadeInFly(TaskManager *taskMan)
{
FieldSystem *fieldSystem = TaskManager_FieldSystem(taskMan);
UnkStruct_02053AB4 *v1 = TaskManager_Environment(taskMan);
MapChangeFlyData *mapChangeData = TaskManager_Environment(taskMan);
if (!sub_0203CD4C(fieldSystem)) {
GF_ASSERT(FALSE);
return;
}
v1->unk_04 = ov6_02245CCC(fieldSystem, PlayerAvatar_Gender(fieldSystem->playerAvatar));
FieldTask_Start(taskMan, sub_02053CB4, v1);
mapChangeData->task = FieldTask_InitFlyLandingTask(fieldSystem, PlayerAvatar_Gender(fieldSystem->playerAvatar));
FieldTask_Start(taskMan, FieldTask_WaitFadeInFly, mapChangeData);
}
static BOOL sub_02053CB4(TaskManager *taskMan)
static BOOL FieldTask_WaitFadeInFly(TaskManager *taskMan)
{
UnkStruct_02053AB4 *v0 = TaskManager_Environment(taskMan);
MapChangeFlyData *mapChangeData = TaskManager_Environment(taskMan);
if (ov6_02245CF0(v0->unk_04) == 1) {
ov6_02245CFC(v0->unk_04);
return 1;
if (ov6_02245CF0(mapChangeData->task) == 1) {
ov6_02245CFC(mapChangeData->task);
return TRUE;
}
return 0;
return FALSE;
}
void sub_02053CD4(TaskManager *taskMan, const Location *param1, u32 param2)
void FieldTask_ChangeMapChangeByDig(TaskManager *taskMan, const Location *location, u32 param2)
{
UnkStruct_02053CD4 *v0 = Heap_AllocFromHeapAtEnd(11, sizeof(UnkStruct_02053CD4));
MapChangeDigData *mapChangeData = Heap_AllocFromHeapAtEnd(11, sizeof(MapChangeDigData));
v0->unk_00 = 0;
v0->unk_04 = param2;
v0->unk_08 = NULL;
v0->unk_0C = *param1;
mapChangeData->state = 0;
mapChangeData->unk_04 = param2;
mapChangeData->task = NULL;
mapChangeData->location = *location;
FieldTask_Change(taskMan, sub_02053D0C, v0);
FieldTask_Change(taskMan, FieldTask_MapChangeByDig, mapChangeData);
}
static BOOL sub_02053D0C(TaskManager *taskMan)
static BOOL FieldTask_MapChangeByDig(TaskManager *taskMan)
{
FieldSystem *fieldSystem = TaskManager_FieldSystem(taskMan);
UnkStruct_02053CD4 *v1 = TaskManager_Environment(taskMan);
Location *v2 = &v1->unk_0C;
MapChangeDigData *mapChangeData = TaskManager_Environment(taskMan);
Location *location = &mapChangeData->location;
switch (v1->unk_00) {
switch (mapChangeData->state) {
case 0:
Sound_TryFadeInBGM(fieldSystem, v2->mapId);
sub_02053DB4(taskMan);
(v1->unk_00)++;
Sound_TryFadeInBGM(fieldSystem, location->mapId);
FieldTask_StartFinishFieldMapDig(taskMan);
mapChangeData->state++;
break;
case 1:
PlayerAvatar_SetPlayerState(fieldSystem->playerAvatar, 0x0);
FieldTask_ChangeMapByLocation(taskMan, &v1->unk_0C);
(v1->unk_00)++;
FieldTask_ChangeMapByLocation(taskMan, &mapChangeData->location);
mapChangeData->state++;
break;
case 2:
if (Sound_CheckFade() != 0) {
break;
}
Sound_PlayMapBGM(fieldSystem, v2->mapId);
Sound_PlayMapBGM(fieldSystem, location->mapId);
if (v1->unk_04 == 2) {
sub_02070588(fieldSystem);
} else if ((v1->unk_04 == 0) || (v1->unk_04 == 1)) {
sub_020705A4(fieldSystem);
if (mapChangeData->unk_04 == 2) {
FieldSystem_SetTeleportFlags(fieldSystem);
} else if ((mapChangeData->unk_04 == 0) || (mapChangeData->unk_04 == 1)) {
FieldSystem_SetEscapeFlags(fieldSystem);
} else {
GF_ASSERT(FALSE);
}
sub_02053DF0(taskMan);
(v1->unk_00)++;
FieldTask_StartFadeInDig(taskMan);
mapChangeData->state++;
break;
case 3:
Heap_FreeToHeap(v1);
return 1;
Heap_FreeToHeap(mapChangeData);
return TRUE;
}
return 0;
return FALSE;
}
static void sub_02053DB4(TaskManager *taskMan)
static void FieldTask_StartFinishFieldMapDig(TaskManager *taskMan)
{
FieldTask_Start(taskMan, sub_02053DC4, NULL);
FieldTask_Start(taskMan, FieldTask_FinishFieldMapDig, NULL);
}
static BOOL sub_02053DC4(TaskManager *taskMan)
static BOOL FieldTask_FinishFieldMapDig(TaskManager *taskMan)
{
int *v0 = FieldTask_GetState(taskMan);
int *state = FieldTask_GetState(taskMan);
switch (*v0) {
switch (*state) {
case 0:
FieldTask_FinishFieldMap(taskMan);
(*v0)++;
(*state)++;
break;
case 1:
return 1;
return TRUE;
}
return 0;
return FALSE;
}
static void sub_02053DF0(TaskManager *taskMan)
static void FieldTask_StartFadeInDig(TaskManager *taskMan)
{
UnkStruct_02053CD4 *v0 = TaskManager_Environment(taskMan);
FieldTask_Start(taskMan, sub_02053E08, v0);
MapChangeDigData *mapChangeData = TaskManager_Environment(taskMan);
FieldTask_Start(taskMan, FieldTask_FadeInDig, mapChangeData);
}
static BOOL sub_02053E08(TaskManager *taskMan)
static BOOL FieldTask_FadeInDig(TaskManager *taskMan)
{
int *v0 = FieldTask_GetState(taskMan);
int *state = FieldTask_GetState(taskMan);
FieldSystem *fieldSystem = TaskManager_FieldSystem(taskMan);
UnkStruct_02053CD4 *v2 = TaskManager_Environment(taskMan);
MapChangeDigData *mapChangeData = TaskManager_Environment(taskMan);
switch (*v0) {
switch (*state) {
case 0:
FieldTask_StartFieldMap(taskMan);
(*v0)++;
(*state)++;
break;
case 1:
ov5_021DDAA4(fieldSystem);
FieldSystem_RequestLocationName(fieldSystem);
sub_02053E5C(taskMan);
(*v0)++;
(*state)++;
break;
case 2:
return 1;
return TRUE;
}
return 0;
return FALSE;
}
static void sub_02053E5C(TaskManager *taskMan)
{
FieldSystem *fieldSystem = TaskManager_FieldSystem(taskMan);
UnkStruct_02053CD4 *v1 = TaskManager_Environment(taskMan);
MapChangeDigData *mapChangeData = TaskManager_Environment(taskMan);
if (!sub_0203CD4C(fieldSystem)) {
GF_ASSERT(FALSE);
return;
}
void *v2 = ov6_022472C8(fieldSystem, 4, v1->unk_04);
void *v2 = ov6_022472C8(fieldSystem, 4, mapChangeData->unk_04);
FieldTask_Start(taskMan, ov6_022472E8, v2);
}
@ -1075,28 +1075,28 @@ void FieldSystem_StartMapChangeWarpTask(FieldSystem *fieldSystem, int param1, in
void *sub_02053FAC(FieldSystem *fieldSystem)
{
MapChangeUndergroundData *mapChangeUndergroundData;
Location *v1 = FieldOverworldState_GetSpecialLocation(SaveData_GetFieldOverworldState(fieldSystem->saveData));
Location *location = FieldOverworldState_GetSpecialLocation(SaveData_GetFieldOverworldState(fieldSystem->saveData));
mapChangeUndergroundData = Heap_AllocFromHeapAtEnd(11, sizeof(MapChangeUndergroundData));
mapChangeUndergroundData->unk_00 = 0;
mapChangeUndergroundData->state = 0;
mapChangeUndergroundData->unk_04 = 0;
if (fieldSystem->mapLoadType == MAP_LOAD_TYPE_UNDERGROUND) {
mapChangeUndergroundData->unk_08 = v1->mapId;
mapChangeUndergroundData->mapId = location->mapId;
mapChangeUndergroundData->unk_0C = -1;
mapChangeUndergroundData->unk_10 = v1->x;
mapChangeUndergroundData->unk_14 = v1->z;
mapChangeUndergroundData->unk_10 = location->x;
mapChangeUndergroundData->unk_14 = location->z;
} else {
Location_SetToPlayerLocation(v1, fieldSystem);
mapChangeUndergroundData->unk_08 = 2;
Location_SetToPlayerLocation(location, fieldSystem);
mapChangeUndergroundData->mapId = 2;
mapChangeUndergroundData->unk_0C = -1;
{
int v2, v3;
int v4, v5;
v4 = (v1->x / 32) - 1;
v5 = (v1->z / 32) - 6;
v4 = (location->x / 32) - 1;
v5 = (location->z / 32) - 6;
GF_ASSERT(v4 >= 0);
GF_ASSERT(v5 >= 0);
@ -1123,7 +1123,7 @@ void *sub_02053FAC(FieldSystem *fieldSystem)
return mapChangeUndergroundData;
}
void sub_02054064(FieldSystem *fieldSystem)
void FieldTask_SetUndergroundMapChange(FieldSystem *fieldSystem)
{
MapChangeUndergroundData *mapChangeUndergroundData = sub_02053FAC(fieldSystem);
@ -1139,24 +1139,24 @@ BOOL FieldTask_MapChangeToUnderground(TaskManager *taskMan)
FieldSystem *fieldSystem = TaskManager_FieldSystem(taskMan);
MapChangeUndergroundData *mapChangeUndergroundData = TaskManager_Environment(taskMan);
switch (mapChangeUndergroundData->unk_00) {
switch (mapChangeUndergroundData->state) {
case 0:
MessageLoader *v2 = MessageLoader_Init(1, 26, 221, 11);
MessageLoader *msgLoader = MessageLoader_Init(1, 26, 221, 11);
mapChangeUndergroundData->unk_34 = MessageLoader_GetNewStrbuf(v2, 124);
MessageLoader_Free(v2);
mapChangeUndergroundData->unk_34 = MessageLoader_GetNewStrbuf(msgLoader, 124);
MessageLoader_Free(msgLoader);
FieldMessage_AddWindow(fieldSystem->unk_08, &mapChangeUndergroundData->unk_24, 3);
FieldMessage_DrawWindow(&mapChangeUndergroundData->unk_24, SaveData_Options(fieldSystem->saveData));
mapChangeUndergroundData->unk_38 = FieldMessage_Print(&mapChangeUndergroundData->unk_24, mapChangeUndergroundData->unk_34, SaveData_Options(fieldSystem->saveData), 1);
mapChangeUndergroundData->unk_00 = 1;
mapChangeUndergroundData->state = 1;
break;
case 1:
if (FieldMessage_FinishedPrinting(mapChangeUndergroundData->unk_38) == 1) {
Strbuf_Free(mapChangeUndergroundData->unk_34);
sub_0200DAA4(fieldSystem->unk_08, 3, 1024 - (18 + 12) - 9, 11, 0, 11);
mapChangeUndergroundData->unk_3C = sub_02002100(fieldSystem->unk_08, &Unk_020EC3A0, 1024 - (18 + 12) - 9, 11, 11);
mapChangeUndergroundData->unk_00 = 2;
mapChangeUndergroundData->state = 2;
}
break;
case 2:
@ -1164,12 +1164,12 @@ BOOL FieldTask_MapChangeToUnderground(TaskManager *taskMan)
case 0:
sub_0200E084(&mapChangeUndergroundData->unk_24, 0);
BGL_DeleteWindow(&mapChangeUndergroundData->unk_24);
mapChangeUndergroundData->unk_00 = 3;
mapChangeUndergroundData->state = 3;
break;
case 0xfffffffe:
sub_0200E084(&mapChangeUndergroundData->unk_24, 0);
BGL_DeleteWindow(&mapChangeUndergroundData->unk_24);
mapChangeUndergroundData->unk_00 = 5;
mapChangeUndergroundData->state = 5;
}
break;
case 3:
@ -1183,19 +1183,19 @@ BOOL FieldTask_MapChangeToUnderground(TaskManager *taskMan)
ScriptManager_Start(taskMan, 2005, NULL, &mapChangeUndergroundData->unk_1C);
}
mapChangeUndergroundData->unk_00 = 4;
mapChangeUndergroundData->state = 4;
break;
case 4:
if (SaveData_OverwriteCheck(fieldSystem->saveData)) {
mapChangeUndergroundData->unk_00 = 5;
mapChangeUndergroundData->state = 5;
} else {
ov5_021E1F7C(mapChangeUndergroundData->unk_20);
ov5_021E1FF4(mapChangeUndergroundData->unk_20);
if (mapChangeUndergroundData->unk_1C == 0) {
mapChangeUndergroundData->unk_00 = 5;
mapChangeUndergroundData->state = 5;
} else {
mapChangeUndergroundData->unk_00 = 6;
mapChangeUndergroundData->state = 6;
}
}
break;
@ -1205,23 +1205,23 @@ BOOL FieldTask_MapChangeToUnderground(TaskManager *taskMan)
return 1;
case 6:
sub_0200564C(0, 30);
(mapChangeUndergroundData->unk_00)++;
mapChangeUndergroundData->state++;
break;
case 7:
if (sub_0205444C(taskMan, 0)) {
(mapChangeUndergroundData->unk_00)++;
mapChangeUndergroundData->state++;
}
break;
case 8:
FieldTask_FinishFieldMap(taskMan);
(mapChangeUndergroundData->unk_00)++;
mapChangeUndergroundData->state++;
break;
case 9:
fieldSystem->mapLoadType = MAP_LOAD_TYPE_UNDERGROUND;
Overlay_LoadByID(FS_OVERLAY_ID(overlay23), 2);
ov23_022499E8(fieldSystem);
sub_020539E8(taskMan, mapChangeUndergroundData->unk_08, -1, mapChangeUndergroundData->unk_10, mapChangeUndergroundData->unk_14, 1);
(mapChangeUndergroundData->unk_00)++;
FieldTask_ChangeMapToLocation(taskMan, mapChangeUndergroundData->mapId, -1, mapChangeUndergroundData->unk_10, mapChangeUndergroundData->unk_14, 1);
mapChangeUndergroundData->state++;
break;
case 10:
if (Sound_CheckFade() != 0) {
@ -1231,14 +1231,14 @@ BOOL FieldTask_MapChangeToUnderground(TaskManager *taskMan)
sub_02004234(0);
Sound_ClearSpecialBGM(fieldSystem);
FieldTask_StartFieldMap(taskMan);
(mapChangeUndergroundData->unk_00)++;
mapChangeUndergroundData->state++;
break;
case 11:
if (sub_0205444C(taskMan, 1)) {
ov23_02249A2C();
fieldSystem->unk_6C = ov23_02249404(fieldSystem);
sub_0200AAE0(30, 0, -16, GX_BLEND_PLANEMASK_BG0 | GX_BLEND_PLANEMASK_BG3 | GX_BLEND_PLANEMASK_OBJ, 2);
(mapChangeUndergroundData->unk_00)++;
mapChangeUndergroundData->state++;
}
break;
case 12:
@ -1259,36 +1259,36 @@ BOOL FieldTask_MapChangeFromUnderground(TaskManager *taskMan)
MapChangeUndergroundData *mapChangeUndergroundData = TaskManager_Environment(taskMan);
int v2 = 0;
switch (mapChangeUndergroundData->unk_00) {
switch (mapChangeUndergroundData->state) {
case 0:
ov23_0224DBF4(0);
ov23_02249A5C();
ov23_0224942C(fieldSystem->unk_6C);
sub_0200AAE0(30, -16, 0, GX_BLEND_PLANEMASK_BG0, 2);
mapChangeUndergroundData->unk_00++;
mapChangeUndergroundData->state++;
break;
case 1:
if (sub_0200AC1C(2)) {
if ((fieldSystem->unk_6C == NULL) && !CommSys_IsInitialized()) {
sub_0200564C(0, 30);
mapChangeUndergroundData->unk_00++;
mapChangeUndergroundData->state++;
}
}
break;
case 2:
if (sub_0205444C(taskMan, 2)) {
(mapChangeUndergroundData->unk_00)++;
mapChangeUndergroundData->state++;
}
break;
case 3:
FieldTask_FinishFieldMap(taskMan);
(mapChangeUndergroundData->unk_00)++;
mapChangeUndergroundData->state++;
break;
case 4:
fieldSystem->mapLoadType = MAP_LOAD_TYPE_OVERWORLD;
Overlay_UnloadByID(FS_OVERLAY_ID(overlay23));
sub_020539E8(taskMan, mapChangeUndergroundData->unk_08, -1, mapChangeUndergroundData->unk_10, mapChangeUndergroundData->unk_14, 1);
(mapChangeUndergroundData->unk_00)++;
FieldTask_ChangeMapToLocation(taskMan, mapChangeUndergroundData->mapId, -1, mapChangeUndergroundData->unk_10, mapChangeUndergroundData->unk_14, 1);
mapChangeUndergroundData->state++;
break;
case 5:
if (Sound_CheckFade() != 0) {
@ -1298,11 +1298,11 @@ BOOL FieldTask_MapChangeFromUnderground(TaskManager *taskMan)
sub_02004234(0);
Sound_ClearSpecialBGM(fieldSystem);
FieldTask_StartFieldMap(taskMan);
(mapChangeUndergroundData->unk_00)++;
mapChangeUndergroundData->state++;
break;
case 6:
if (sub_0205444C(taskMan, 3)) {
(mapChangeUndergroundData->unk_00)++;
mapChangeUndergroundData->state++;
}
break;
case 7:
@ -1330,7 +1330,7 @@ static BOOL sub_0205444C(TaskManager *taskMan, int param1)
{
FieldSystem *fieldSystem = TaskManager_FieldSystem(taskMan);
MapChangeUndergroundData *mapChangeUndergroundData = TaskManager_Environment(taskMan);
BOOL v2 = 0;
BOOL ret = 0;
switch (mapChangeUndergroundData->unk_04) {
case 0:
@ -1341,12 +1341,12 @@ static BOOL sub_0205444C(TaskManager *taskMan, int param1)
case 1:
if (mapChangeUndergroundData->unk_18) {
mapChangeUndergroundData->unk_04 = 0;
v2 = 1;
ret = 1;
}
break;
}
return v2;
return ret;
}
static BOOL sub_02054494(TaskManager *taskMan)
@ -1357,12 +1357,12 @@ static BOOL sub_02054494(TaskManager *taskMan)
switch (mapChangeSub->state) {
case 0:
FieldMapChange_DeleteObjects(fieldSystem);
(mapChangeSub->state)++;
mapChangeSub->state++;
break;
case 1:
FieldMapChange_SetNewLocation(fieldSystem, &mapChangeSub->nextLocation);
sub_0203F5C0(fieldSystem, 2);
(mapChangeSub->state)++;
mapChangeSub->state++;
break;
case 2:
FieldMapChange_CreateObjects(fieldSystem);
@ -1376,17 +1376,17 @@ static BOOL sub_02054494(TaskManager *taskMan)
void sub_020544F0(TaskManager *taskMan, const Location *nextLocation)
{
FieldSystem *fieldSystem = TaskManager_FieldSystem(taskMan);
MapChangeSubData *v1 = Heap_AllocFromHeapAtEnd(11, sizeof(MapChangeSubData));
MapChangeSubData *mapChangeData = Heap_AllocFromHeapAtEnd(11, sizeof(MapChangeSubData));
if (sub_0203CD4C(fieldSystem)) {
GF_ASSERT(FALSE);
return;
}
v1->state = 0;
v1->nextLocation = *nextLocation;
mapChangeData->state = 0;
mapChangeData->nextLocation = *nextLocation;
FieldTask_Start(taskMan, sub_02054494, v1);
FieldTask_Start(taskMan, sub_02054494, mapChangeData);
}
static BOOL sub_02054538(TaskManager *taskMan)
@ -1394,7 +1394,7 @@ static BOOL sub_02054538(TaskManager *taskMan)
FieldSystem *fieldSystem = TaskManager_FieldSystem(taskMan);
MapChangeUnionData *mapChangeData = TaskManager_Environment(taskMan);
int *state = FieldTask_GetState(taskMan);
Location *v3 = &mapChangeData->unk_08;
Location *v3 = &mapChangeData->location;
switch (*state) {
case 0:
@ -1409,7 +1409,7 @@ static BOOL sub_02054538(TaskManager *taskMan)
}
break;
case 2:
FieldTask_ChangeMapByLocation(taskMan, &mapChangeData->unk_08);
FieldTask_ChangeMapByLocation(taskMan, &mapChangeData->location);
(*state)++;
break;
case 3:
@ -1435,12 +1435,12 @@ static BOOL sub_02054538(TaskManager *taskMan)
void sub_020545EC(FieldSystem *fieldSystem)
{
Location *v0 = FieldOverworldState_GetSpecialLocation(SaveData_GetFieldOverworldState(fieldSystem->saveData));
Location *location = FieldOverworldState_GetSpecialLocation(SaveData_GetFieldOverworldState(fieldSystem->saveData));
MapChangeUnionData *mapChangeData = Heap_AllocFromHeapAtEnd(11, sizeof(MapChangeUnionData));
MI_CpuClear8(mapChangeData, sizeof(MapChangeUnionData));
mapChangeData->unk_08 = *v0;
mapChangeData->location = *location;
sub_0205B388(fieldSystem);
sub_0205C2E0(fieldSystem->unk_80);
fieldSystem->mapLoadType = MAP_LOAD_TYPE_OVERWORLD;
@ -1454,7 +1454,7 @@ static BOOL sub_02054648(TaskManager *taskMan)
FieldSystem *fieldSystem = TaskManager_FieldSystem(taskMan);
MapChangeUnionData *mapChangeData = TaskManager_Environment(taskMan);
int *state = FieldTask_GetState(taskMan);
Location *v3 = &mapChangeData->unk_08;
Location *v3 = &mapChangeData->location;
switch (*state) {
case 0:
@ -1467,7 +1467,7 @@ static BOOL sub_02054648(TaskManager *taskMan)
(*state)++;
break;
case 2:
FieldTask_ChangeMapByLocation(taskMan, &mapChangeData->unk_08);
FieldTask_ChangeMapByLocation(taskMan, &mapChangeData->location);
(*state)++;
break;
case 3:
@ -1506,9 +1506,9 @@ void sub_02054708(TaskManager *taskMan)
MI_CpuClear8(mapChangeData, sizeof(MapChangeUnionData));
Location_SetToPlayerLocation(location, fieldSystem);
Location_Set(&mapChangeData->unk_08, 466, -1, 8, 14, 0);
Location_Set(&mapChangeData->location, 466, -1, 8, 14, 0);
fieldSystem->unk_7C = sub_0205B33C(fieldSystem);
fieldSystem->unk_7C = FieldSystem_InitCommUnionRoom(fieldSystem);
fieldSystem->unk_80 = sub_0205C22C(fieldSystem->unk_7C);
fieldSystem->mapLoadType = MAP_LOAD_TYPE_UNION;
@ -1525,12 +1525,12 @@ static BOOL FieldTask_ChangeMapColosseum(TaskManager *taskMan)
case 0:
Sound_PlayEffect(1539);
Sound_TryFadeInBGM(fieldSystem, location->mapId);
sub_02055974(taskMan);
(mapChangeData->state)++;
FieldTask_FinishFadeOut(taskMan);
mapChangeData->state++;
break;
case 1:
FieldTask_ChangeMapByLocation(taskMan, &mapChangeData->nextLocation);
(mapChangeData->state)++;
mapChangeData->state++;
break;
case 2:
if (Sound_CheckFade() != 0) {
@ -1539,7 +1539,7 @@ static BOOL FieldTask_ChangeMapColosseum(TaskManager *taskMan)
Sound_PlayMapBGM(fieldSystem, location->mapId);
FieldTask_StartFieldMap(taskMan);
(mapChangeData->state)++;
mapChangeData->state++;
break;
case 3:
Heap_FreeToHeap(mapChangeData);

View File

@ -3,6 +3,8 @@
#include <nitro.h>
#include <string.h>
#include "constants/field/map_load.h"
#include "struct_decls/pokedexdata_decl.h"
#include "struct_decls/struct_02006C24_decl.h"
#include "struct_decls/struct_020508D4_decl.h"
@ -332,9 +334,9 @@ void sub_0203AB00(FieldSystem *fieldSystem)
menu->unk_224 = sub_0203AC28(fieldSystem);
} else if (sub_0206C0D0(fieldSystem) == 1) {
menu->unk_224 = sub_0203AC2C(fieldSystem);
} else if (fieldSystem->mapLoadType == 3) {
} else if (fieldSystem->mapLoadType == MAP_LOAD_TYPE_COLOSSEUM) {
menu->unk_224 = sub_0203AC3C(fieldSystem);
} else if (fieldSystem->mapLoadType == 2) {
} else if (fieldSystem->mapLoadType == MAP_LOAD_TYPE_UNION) {
menu->unk_224 = sub_0203AC34(fieldSystem);
menu->unk_228 = 1;
} else {

View File

@ -119,7 +119,7 @@ int Journal_SaveSize(void)
return sizeof(Journal) * 10;
}
static void Jounral_Init(Journal *journal)
static void Journal_Init(Journal *journal)
{
memset(journal, 0, sizeof(Journal));
}
@ -150,7 +150,7 @@ Journal *Journal_GetSavedPage(Journal *journal, BOOL param1)
journal[v1] = journal[v1 - 1];
}
Jounral_Init(&journal[0]);
Journal_Init(&journal[0]);
}
return &journal[0];

View File

@ -166,7 +166,7 @@ static BOOL FieldMap_Init(OverlayManager *overlayMan, int *param1)
sub_0200F32C(0);
sub_0200F32C(1);
ov5_021D173C(fieldSystem);
sub_020531A0(fieldSystem);
FieldMapChange_Set3DDisplay(fieldSystem);
if (fieldSystem->mapLoadMode->unk_00_20) {
Overlay_LoadByID(FS_OVERLAY_ID(overlay6), 2);

View File

@ -303,7 +303,7 @@ void ov5_021DDA78(UnkStruct_ov5_021DD9C8 *param0)
}
}
void ov5_021DDAA4(FieldSystem *fieldSystem)
void FieldSystem_RequestLocationName(FieldSystem *fieldSystem)
{
int v0;
int v1;

View File

@ -2892,7 +2892,7 @@ static const UnkStruct_ov101_021D86B0 dummy_field_cutin = {
int (*const Unk_ov6_02249270[])(UnkStruct_ov6_02249270 *);
SysTask *ov6_02245CCC(FieldSystem *fieldSystem, int param1)
SysTask *FieldTask_InitFlyLandingTask(FieldSystem *fieldSystem, int param1)
{
UnkStruct_ov6_02249270 *v0 = ov6_02245F44(4, (sizeof(UnkStruct_ov6_02249270)));

View File

@ -153,10 +153,10 @@ static int ov6_02247288(TaskManager *taskMan, FieldSystem *fieldSystem, UnkStruc
v1 = FieldOverworldState_GetWarpId(v0);
sub_0203A7F0(v1, &v2);
sub_02053CD4(taskMan, &v2, param2->unk_08);
FieldTask_ChangeMapChangeByDig(taskMan, &v2, param2->unk_08);
} else {
Location *v3 = sub_0203A72C(v0);
sub_02053CD4(taskMan, v3, param2->unk_08);
FieldTask_ChangeMapChangeByDig(taskMan, v3, param2->unk_08);
}
return 2;

View File

@ -598,7 +598,7 @@ static void ov23_0224F914(SysTask *param0, void *param1)
ov23_0224FB7C(v0);
ov23_02250B34(param0, v0, 1);
ov23_02243204();
sub_02054064(v0->fieldSystem);
FieldTask_SetUndergroundMapChange(v0->fieldSystem);
return;
case 18:
ov23_02250048(param0, param1);

View File

@ -4693,7 +4693,7 @@ static BOOL ScrCmd_0C2(ScriptContext *ctx)
v1 = ScriptContext_GetVar(ctx);
v2 = ScriptContext_GetVar(ctx);
sub_02053AB4(ctx->fieldSystem, v0, -1, v1, v2, 1);
FieldTask_StartMapChangeFly(ctx->fieldSystem, v0, -1, v1, v2, 1);
return 1;
}

View File

@ -215,7 +215,7 @@ void sub_02028758(SaveData *param0, s32 param1, BOOL param2)
}
}
void sub_0202878C(SaveData *param0)
void SaveData_LoadAndUpdateUnderground(SaveData *param0)
{
UndergroundData *v0 = sub_020298B0(param0);

View File

@ -277,7 +277,7 @@ BOOL FieldSystem_CheckCollision(const FieldSystem *fieldSystem, const int param1
BOOL v0;
u16 v1;
v0 = fieldSystem->unk_5C->getAttrFunc(fieldSystem, param1, param2, &v1);
v0 = fieldSystem->terrainCollisionMan->getAttrFunc(fieldSystem, param1, param2, &v1);
if (v0) {
u8 v2;
@ -298,7 +298,7 @@ u8 sub_02054F94(const FieldSystem *fieldSystem, const int param1, const int para
BOOL v0;
u16 v1;
v0 = fieldSystem->unk_5C->getAttrFunc(fieldSystem, param1, param2, &v1);
v0 = fieldSystem->terrainCollisionMan->getAttrFunc(fieldSystem, param1, param2, &v1);
if (v0) {
u8 v2;
@ -317,7 +317,7 @@ const fx32 sub_02054FBC(const FieldSystem *fieldSystem, const fx32 param1, const
BOOL v0;
fx32 v1;
v1 = fieldSystem->unk_5C->getHeightFunc(fieldSystem, param1, param2, param3, param4);
v1 = fieldSystem->terrainCollisionMan->getHeightFunc(fieldSystem, param1, param2, param3, param4);
return v1;
}

View File

@ -119,7 +119,7 @@ static BOOL sub_02055934(TaskManager *param0)
return 0;
}
void sub_02055974(TaskManager *param0)
void FieldTask_FinishFadeOut(TaskManager *param0)
{
FieldTask_Start(param0, sub_02055934, NULL);
}
@ -135,7 +135,7 @@ static BOOL sub_02055984(TaskManager *param0)
(*v0)++;
break;
case 1:
ov5_021DDAA4(fieldSystem);
FieldSystem_RequestLocationName(fieldSystem);
sub_020558F0(param0);
(*v0)++;
break;

View File

@ -240,7 +240,7 @@ static BOOL sub_02056CFC(TaskManager *taskMan)
}
Sound_PlayMapBGM(fieldSystem, v2->mapId);
ov5_021DDAA4(fieldSystem);
FieldSystem_RequestLocationName(fieldSystem);
v1->unk_04 = 0;
FieldTask_Start(taskMan, Unk_020EC544[v1->unk_20], v1);

View File

@ -104,7 +104,7 @@ static int sub_0205BCD4(int param0, int param1, StringTemplate *param2);
static void sub_0205B408(UnkStruct_0205B43C *param0);
static void sub_0205BFF0(UnkStruct_0205B4F8 *param0);
UnkStruct_0205B43C *sub_0205B33C(FieldSystem *fieldSystem)
UnkStruct_0205B43C *FieldSystem_InitCommUnionRoom(FieldSystem *fieldSystem)
{
UnkStruct_0205B43C *v0 = NULL;

View File

@ -224,7 +224,7 @@ static BOOL sub_0206C964(TaskManager *taskMan)
v1->unk_00 = 5;
break;
case 5:
sub_020539E8(taskMan, v1->unk_18, -1, v1->unk_1C, v1->unk_20, v1->unk_04);
FieldTask_ChangeMapToLocation(taskMan, v1->unk_18, -1, v1->unk_1C, v1->unk_20, v1->unk_04);
v1->unk_00 = 6;
break;
case 6:

View File

@ -110,13 +110,13 @@ void sub_0207056C(FieldSystem *fieldSystem)
sub_0206C354(sub_0202D834(fieldSystem->saveData));
}
void sub_02070588(FieldSystem *fieldSystem)
void FieldSystem_SetTeleportFlags(FieldSystem *fieldSystem)
{
sub_0206AE4C(SaveData_GetVarsFlags(fieldSystem->saveData));
sub_0206C354(sub_0202D834(fieldSystem->saveData));
}
void sub_020705A4(FieldSystem *fieldSystem)
void FieldSystem_SetEscapeFlags(FieldSystem *fieldSystem)
{
sub_0206AE4C(SaveData_GetVarsFlags(fieldSystem->saveData));
}

View File

@ -66,7 +66,7 @@ BOOL sub_02070680(TaskManager *param0)
GF_ASSERT(v2 != 0);
sub_0203A7F0(v2, &v3);
sub_02053AFC(param0, v3.mapId, -1, v3.x, v3.z, 1);
FieldTask_ChangeMapChangeFly(param0, v3.mapId, -1, v3.x, v3.z, 1);
Heap_FreeToHeap(v1);
}