diff --git a/include/functions.h b/include/functions.h index 0b9685639d..024d3fe7c3 100644 --- a/include/functions.h +++ b/include/functions.h @@ -1542,7 +1542,7 @@ s32 func_800E8F08(Vec3s* param_1, Vec3s* param_2); s32 func_800E8FA4(Actor* actor, Vec3f* param_2, Vec3s* param_3, Vec3s* param_4); s32 func_800E9138(GlobalContext* globalCtx, Actor* actor, Vec3s* param_3, Vec3s* param_4, f32 param_5); s32 func_800E9250(GlobalContext* globalCtx, Actor* actor, Vec3s* param_3, Vec3s* param_4, Vec3f param_5); -u8 func_800E9360(void); +void SaveContext_Init(void); void GameInfo_Init(void); // void func_800E9470(void); void DebugDisplay_AddObject(f32 posX, f32 posY, f32 posZ, s16 rotX, s16 rotY, s16 rotZ, f32 scaleX, f32 scaleY, f32 scaleZ, u8 red, u8 green, u8 blue, u8 alpha, s16 type, GraphicsContext* gfxCtx); diff --git a/spec b/spec index bf75a91ed7..e2866c7422 100644 --- a/spec +++ b/spec @@ -468,7 +468,6 @@ beginseg include "build/src/code/z_collision_check.o" include "build/src/code/code_800E8EA0.o" include "build/src/code/z_common_data.o" - include "build/data/code/z_common_data.bss.o" include "build/src/code/z_debug.o" include "build/src/code/z_debug_display.o" include "build/data/code/z_debug_display.data.o" diff --git a/src/code/title_setup.c b/src/code/title_setup.c index 7df67a3b24..69790b60c0 100644 --- a/src/code/title_setup.c +++ b/src/code/title_setup.c @@ -47,7 +47,7 @@ void TitleSetup_GameStateResetContext(void) { void TitleSetup_InitImpl(GameState* gameState) { func_80185908(); - func_800E9360(); + SaveContext_Init(); TitleSetup_GameStateResetContext(); gameState->running = 0; diff --git a/src/code/z_common_data.c b/src/code/z_common_data.c index d391ce1530..88fa3e1037 100644 --- a/src/code/z_common_data.c +++ b/src/code/z_common_data.c @@ -1,3 +1,22 @@ #include "global.h" -#pragma GLOBAL_ASM("asm/non_matchings/code/z_common_data/func_800E9360.s") +SaveContext gSaveContext; + +void SaveContext_Init(void) { + bzero(&gSaveContext, sizeof(gSaveContext)); + gSaveContext.playerForm = 0; + gSaveContext.seqIndex = 0xFF; + gSaveContext.nightSeqIndex = 0xFF; + gSaveContext.unk_3F46 = 0; + gSaveContext.nextCutsceneIndex = 0xFFEF; + gSaveContext.cutsceneTrigger = 0; + gSaveContext.unk_3F4D = 0; + gSaveContext.nextDayTime = 0xFFFF; + gSaveContext.environmentTime = 0; + gSaveContext.dogIsLost = true; + gSaveContext.nextTransition = 0xFF; + gSaveContext.unk_3F26 = 50; + gSaveContext.language = 1; + gSaveContext.audioSetting = 0; + gSaveContext.zTargetSetting = 0; +} diff --git a/tools/disasm/functions.txt b/tools/disasm/functions.txt index d859d90578..38ed524869 100644 --- a/tools/disasm/functions.txt +++ b/tools/disasm/functions.txt @@ -1518,7 +1518,7 @@ 0x800E8FA4:("func_800E8FA4",), 0x800E9138:("func_800E9138",), 0x800E9250:("func_800E9250",), - 0x800E9360:("func_800E9360",), + 0x800E9360:("SaveContext_Init",), 0x800E93E0:("GameInfo_Init",), 0x800E9470:("func_800E9470",), 0x800E9488:("DebugDisplay_AddObject",),