Merge pull request #124 from robojumper/d_sc_game_title

dScTitle_c OK, dScGame_c about halfway
This commit is contained in:
robojumper
2025-03-09 10:07:44 +01:00
committed by GitHub
34 changed files with 1178 additions and 243 deletions
+42
View File
@@ -619,15 +619,57 @@ d/lyt/d_screen_fader.cpp:
.data start:0x80528D68 end:0x80528D90
.sdata2 start:0x8057ABE0 end:0x8057AC08
d/a/d_a_fish_mgr_base.cpp:
.text start:0x8018B880 end:0x8018BFC8
.ctors start:0x804DB7E4 end:0x804DB7E8
d/a/d_a_fish_base.cpp:
.text start:0x8018BFD0 end:0x8018E378
.ctors start:0x804DB7E8 end:0x804DB7EC
d/a/d_a_insect.cpp:
.text start:0x8018F190 end:0x80190710
.data start:0x8052ABD8 end:0x8052ACC0
.sdata2 start:0x8057ADD8 end:0x8057AE30
d/a/d_a_salbage_obj.cpp:
.text start:0x80190AB0 end:0x80192AF8
.ctors start:0x804DB7EC end:0x804DB7F0
d/a/d_a_salbage_npc.cpp:
.text start:0x80192B00 end:0x80194080
.ctors start:0x804DB7F0 end:0x804DB7F4
d/tg/d_t_weather.cpp:
.text start:0x801A65D0 end:0x801AF7D8
.ctors start:0x804DB804 end:0x804DB808
d/d_room_mgr.cpp:
.text start:0x801B32A0 end:0x801B5BC8
.ctors start:0x804DB80C end:0x804DB810
d/d_room.cpp:
.text start:0x801B5C80 end:0x801B84D8
.ctors start:0x804DB810 end:0x804DB814
d/d_sc_title.cpp:
.text start:0x801B9230 end:0x801BA3A0
.ctors start:0x804DB818 end:0x804DB81C
.data start:0x8052E438 end:0x8052E5F8
.sdata start:0x805733D0 end:0x805733E8
.sbss start:0x80575780 end:0x80575788
.sdata2 start:0x8057B580 end:0x8057B588
.bss start:0x805B3760 end:0x805B37E0
d/d_sc_game.cpp:
.text start:0x801BA3A0 end:0x801BC6B8
.ctors start:0x804DB81C end:0x804DB820
.data start:0x8052E5F8 end:0x8052E860
.sdata start:0x805733E8 end:0x80573430
.sbss start:0x80575788 end:0x805757A8
.sdata2 start:0x8057B588 end:0x8057B5A8
.bss start:0x805B37E0 end:0x805B38B8
d/d_cs_base.cpp:
.text start:0x801BC6C0 end:0x801BD250
.data start:0x8052E860 end:0x8052E968
+148 -146
View File
@@ -427,14 +427,14 @@ getFileB__11FileManagerFv = .text:0x80011270; // type:function size:0x8
calcFileCRC__11FileManagerFPCvUl = .text:0x80011280; // type:function size:0xC
updateEmptyFiles__11FileManagerFv = .text:0x80011290; // type:function size:0x34
updateEmptyFileFlags__11FileManagerFv = .text:0x800112D0; // type:function size:0x9C
isFileEmpty__11FileManagerFi = .text:0x80011370; // type:function size:0x20
isFileEmpty__11FileManagerFUc = .text:0x80011370; // type:function size:0x20
isFileDirty__11FileManagerFi = .text:0x80011390; // type:function size:0x20
get_0xA84C__11FileManagerFv = .text:0x800113B0; // type:function size:0xC
checkRegionCode__11FileManagerFv = .text:0x800113C0; // type:function size:0x78
checkFileCRC__11FileManagerFUc = .text:0x80011440; // type:function size:0x50
isFileInactive__11FileManagerCFv = .text:0x80011490; // type:function size:0x6C
setPlayerInfoFileA__11FileManagerFv = .text:0x80011500; // type:function size:0xE0
setT3Info__11FileManagerFP7mVec3_cP7mAng3_c = .text:0x800115E0; // type:function size:0xD8
setT3Info__11FileManagerFRC7mVec3_cRC7mAng3_c = .text:0x800115E0; // type:function size:0xD8
getRegionVersion__11FileManagerFPc = .text:0x800116C0; // type:function size:0x28
__sinit_\file_manager_cpp = .text:0x800116F0; // type:function size:0x3C scope:local
fn_80011730 = .text:0x80011730; // type:function size:0x2C
@@ -2832,7 +2832,7 @@ EGG__ConfigurationData__onEndFrame = .text:0x80064430; // type:function size:0x4
dSys_c__setBlack = .text:0x80064440; // type:function size:0x80
setFrameRate__4dSysFUl = .text:0x800644C0; // type:function size:0x10
dSys_c__getFrameRate = .text:0x800644D0; // type:function size:0x10
dSys_c__setClearColor = .text:0x800644E0; // type:function size:0x60
setClearColor__4dSysF6mColor = .text:0x800644E0; // type:function size:0x60
dSys_c__getClearColor = .text:0x80064540; // type:function size:0x14
dSys_c__create = .text:0x80064560; // type:function size:0x3BC
setPosParam__Q23EGG14CoreControllerFff = .text:0x80064920; // type:function size:0x8
@@ -2980,7 +2980,7 @@ fn_80068E50 = .text:0x80068E50; // type:function size:0x4
fn_80068E60 = .text:0x80068E60; // type:function size:0x8
fn_80068E70 = .text:0x80068E70; // type:function size:0xC
fn_80068E80 = .text:0x80068E80; // type:function size:0x6C
fn_80068EF0 = .text:0x80068EF0; // type:function size:0xC0
fn_80067EF0__16ReloadColorFaderFl = .text:0x80068EF0; // type:function size:0xC0
fn_80068FB0 = .text:0x80068FB0; // type:function size:0x20
__ct__22CurrentStageArcManagerFv = .text:0x80068FD0; // type:function size:0x54
__dt__22CurrentStageArcManagerFv = .text:0x80069030; // type:function size:0x64
@@ -3034,11 +3034,11 @@ decrement__16LayoutArcManagerFPCc = .text:0x8006A220; // type:function size:0x30
getData__16LayoutArcManagerFPCcPCc = .text:0x8006A250; // type:function size:0x8
getLoadedData__16LayoutArcManagerFPCc = .text:0x8006A260; // type:function size:0x8
create__16LayoutArcManagerFPQ23EGG4Heap = .text:0x8006A270; // type:function size:0x64
fn_8006A2E0 = .text:0x8006A2E0; // type:function size:0x6C
fn_8006A350 = .text:0x8006A350; // type:function size:0xC
fn_8006A360 = .text:0x8006A360; // type:function size:0x88
__dt__16LayoutArcControlFv = .text:0x8006A2E0; // type:function size:0x6C
set__16LayoutArcControlFPCPCcl = .text:0x8006A350; // type:function size:0xC
load__16LayoutArcControlFPQ23EGG4Heap = .text:0x8006A360; // type:function size:0x88
fn_8006A3F0 = .text:0x8006A3F0; // type:function size:0x88
fn_8006A480 = .text:0x8006A480; // type:function size:0xC4
release__16LayoutArcControlFv = .text:0x8006A480; // type:function size:0xC4
getActorInfoForObjName = .text:0x8006A550; // type:function size:0x98
getActorIdForObjName = .text:0x8006A5F0; // type:function size:0x34
getActorIdForObjName2 = .text:0x8006A630; // type:function size:0x34
@@ -3628,12 +3628,12 @@ debugPrint10 = .text:0x800A50D0; // type:function size:0x50
fn_800A5120 = .text:0x800A5120; // type:function size:0x10
fn_800A5130 = .text:0x800A5130; // type:function size:0x10
fn_800A5140 = .text:0x800A5140; // type:function size:0x18
fn_800A5160 = .text:0x800A5160; // type:function size:0x50
fn_800A51B0 = .text:0x800A51B0; // type:function size:0x44
create__15MinigameManagerFv = .text:0x800A5160; // type:function size:0x50
destroy__15MinigameManagerFv = .text:0x800A51B0; // type:function size:0x44
fn_800A5200 = .text:0x800A5200; // type:function size:0x40
fn_800A5240 = .text:0x800A5240; // type:function size:0x30
execute__15MinigameManagerFv = .text:0x800A5240; // type:function size:0x30
isSpecialMinigameState1 = .text:0x800A5270; // type:function size:0x2C
isInSpecialMinigameState = .text:0x800A52A0; // type:function size:0x28
isInMinigameState__15MinigameManagerFQ215MinigameManager8Minigame = .text:0x800A52A0; // type:function size:0x28
setNextStoredSpecialMinigameState = .text:0x800A52D0; // type:function size:0x54
endSpecialMinigameState = .text:0x800A5330; // type:function size:0x50
fn_800A5380 = .text:0x800A5380; // type:function size:0x3C
@@ -4745,7 +4745,7 @@ fn_800D5350 = .text:0x800D5350; // type:function size:0x30
fn_800D5380 = .text:0x800D5380; // type:function size:0x44
fn_800D53D0 = .text:0x800D53D0; // type:function size:0x50
fn_800D5420 = .text:0x800D5420; // type:function size:0x114
isSilentRealmModeButNotSkykeep = .text:0x800D5540; // type:function size:0x4C
isSilentRealm__11dLytMeter_cFv = .text:0x800D5540; // type:function size:0x4C
fn_800D5590 = .text:0x800D5590; // type:function size:0x98
fn_800D5630 = .text:0x800D5630; // type:function size:0x18
fn_800D5650 = .text:0x800D5650; // type:function size:0x24
@@ -5545,7 +5545,7 @@ finalizeState_Active__19dLytMeterSmallKey_cFv = .text:0x800E3670; // type:functi
initializeState_Off__19dLytMeterSmallKey_cFv = .text:0x800E3680; // type:function size:0x48
executeState_Off__19dLytMeterSmallKey_cFv = .text:0x800E36D0; // type:function size:0x78
finalizeState_Off__19dLytMeterSmallKey_cFv = .text:0x800E3750; // type:function size:0x4
LytMeterSmallKey__init = .text:0x800E3760; // type:function size:0x230
build__19dLytMeterSmallKey_cFPQ23d2d10ResAccIf_c = .text:0x800E3760; // type:function size:0x230
remove__19dLytMeterSmallKey_cFv = .text:0x800E3990; // type:function size:0x58
fn_800E39F0 = .text:0x800E39F0; // type:function size:0x224
draw__19dLytMeterSmallKey_cFv = .text:0x800E3C20; // type:function size:0x28
@@ -10568,13 +10568,13 @@ getPCAMfromId = .text:0x80199540; // type:function size:0x34
StageManager__overrideLayer0WithLyse = .text:0x80199580; // type:function size:0xF8
StageManager__setSTIF = .text:0x80199680; // type:function size:0x1AC
StageManager__getFlagindex = .text:0x80199830; // type:function size:0x2C
StageManager__getAreaType = .text:0x80199860; // type:function size:0x1C
getAreaType__11dStageMgr_cCFv = .text:0x80199860; // type:function size:0x1C
StageManager__isAreaTypeNormal = .text:0x80199880; // type:function size:0x28
StageManager__isAreaTypeDungeon = .text:0x801998B0; // type:function size:0x2C
isAreaTypeDungeon__11dStageMgr_cCFv = .text:0x801998B0; // type:function size:0x2C
StageManager__isAreaTypeBoss = .text:0x801998E0; // type:function size:0x2C
StageManager__isAreaTypeSkyloft = .text:0x80199910; // type:function size:0x2C
StageManager__isAreaTypeHouse = .text:0x80199940; // type:function size:0x2C
StageManager__isAreaTypeSky = .text:0x80199970; // type:function size:0x2C
isAreaTypeSky__11dStageMgr_cCFv = .text:0x80199970; // type:function size:0x2C
StageManager__isAreaTypeOverworldOrSkyloft = .text:0x801999A0; // type:function size:0x3C
StageManager__isAreaTypeDungeonOrBoss = .text:0x801999E0; // type:function size:0x3C
StageManager__getSTIFmapNameId = .text:0x80199A20; // type:function size:0x20
@@ -11112,87 +11112,87 @@ TagVrbox__update = .text:0x801B8EF0; // type:function size:0x78
TagVrbox__draw = .text:0x801B8F70; // type:function size:0x1F0
TagVrbox__dtor = .text:0x801B9160; // type:function size:0xA4
fn_801B9210 = .text:0x801B9210; // type:function size:0x1C
AcTitleReloader__ctor = .text:0x801B9230; // type:function size:0x30
AcTitleReloader__ctorCont = .text:0x801B9260; // type:function size:0xFC
Reloader__dtor = .text:0x801B9360; // type:function size:0x138
fn_801B94A0 = .text:0x801B94A0; // type:function size:0x58
fn_801B9500 = .text:0x801B9500; // type:function size:0x5C
fn_801B9560 = .text:0x801B9560; // type:function size:0xA4
fn_801B9610 = .text:0x801B9610; // type:function size:0xA0
fn_801B96B0 = .text:0x801B96B0; // type:function size:0x6C
fn_801B9720 = .text:0x801B9720; // type:function size:0x58
fn_801B9780 = .text:0x801B9780; // type:function size:0x58
AcTitleReloader__dtor = .text:0x801B97E0; // type:function size:0x140
AcTitleReloader__init = .text:0x801B9920; // type:function size:0x158
fn_801B9A80 = .text:0x801B9A80; // type:function size:0x54
fn_801B9AE0 = .text:0x801B9AE0; // type:function size:0x10
AcTitleReloader__destroy = .text:0x801B9AF0; // type:function size:0xF0
fn_801B9BE0 = .text:0x801B9BE0; // type:function size:0x24
LoadTitleScreen = .text:0x801B9C10; // type:function size:0xD4
fn_801B9CF0 = .text:0x801B9CF0; // type:function size:0x18
fn_801B9D10 = .text:0x801B9D10; // type:function size:0x4
fn_801B9D20 = .text:0x801B9D20; // type:function size:0x4
fn_801B9D30 = .text:0x801B9D30; // type:function size:0x4
fn_801B9D40 = .text:0x801B9D40; // type:function size:0x4
fn_801B9D50 = .text:0x801B9D50; // type:function size:0x4
fn_801B9D60 = .text:0x801B9D60; // type:function size:0x4
checkAllSaveFilesEmpty = .text:0x801B9D70; // type:function size:0x88
ScTitle__initStates = .text:0x801B9E00; // type:function size:0x1E0
fn_801B9FE0 = .text:0x801B9FE0; // type:function size:0x58
ScTitle__dtor = .text:0x801BA040; // type:function size:0x5C
fn_801BA0A0 = .text:0x801BA0A0; // type:function size:0xC
fn_801BA0B0 = .text:0x801BA0B0; // type:function size:0xC
fn_801BA0C0 = .text:0x801BA0C0; // type:function size:0xDC
fn_801BA1A0 = .text:0x801BA1A0; // type:function size:0xE0
fn_801BA280 = .text:0x801BA280; // type:function size:0x88
fn_801BA310 = .text:0x801BA310; // type:function size:0x30
fn_801BA340 = .text:0x801BA340; // type:function size:0x30
fn_801BA370 = .text:0x801BA370; // type:function size:0x30
fn_801BA3A0 = .text:0x801BA3A0; // type:function size:0x30
fn_801BA3D0 = .text:0x801BA3D0; // type:function size:0xC
fn_801BA3E0 = .text:0x801BA3E0; // type:function size:0xC
fn_801BA3F0 = .text:0x801BA3F0; // type:function size:0x38
Reloader__ctor = .text:0x801BA430; // type:function size:0x23C
Reloader__init = .text:0x801BA670; // type:function size:0x50
Reloader__destroy = .text:0x801BA6C0; // type:function size:0x40
Reloader__update = .text:0x801BA700; // type:function size:0x58
Reloader__draw = .text:0x801BA760; // type:function size:0x3C
fn_801BA7A0 = .text:0x801BA7A0; // type:function size:0x10
fn_801BA7B0 = .text:0x801BA7B0; // type:function size:0x68
fn_801BA820 = .text:0x801BA820; // type:function size:0xA8
fn_801BA8D0 = .text:0x801BA8D0; // type:function size:0x10
fn_801BA8E0 = .text:0x801BA8E0; // type:function size:0x30
fn_801BA910 = .text:0x801BA910; // type:function size:0x6C
fn_801BA980 = .text:0x801BA980; // type:function size:0x18
fn_801BA9A0 = .text:0x801BA9A0; // type:function size:0x4
fn_801BA9B0 = .text:0x801BA9B0; // type:function size:0x54
fn_801BAA10 = .text:0x801BAA10; // type:function size:0xBC
fn_801BAAD0 = .text:0x801BAAD0; // type:function size:0x4
fn_801BAAE0 = .text:0x801BAAE0; // type:function size:0xC4
Reloader__setRespawnInfo = .text:0x801BABB0; // type:function size:0x17C
Reloader__getReloadInfoKeep = .text:0x801BAD30; // type:function size:0x8
fn_801BAD40 = .text:0x801BAD40; // type:function size:0x44
Reloader__setReloadTrigger = .text:0x801BAD90; // type:function size:0x20
fn_801BADB0 = .text:0x801BADB0; // type:function size:0x4C
fn_801BAE00 = .text:0x801BAE00; // type:function size:0x8
fn_801BAE10 = .text:0x801BAE10; // type:function size:0x48
dScTitle_c_classInit__Fv = .text:0x801B9230; // type:function size:0x30
__ct__10dScTitle_cFv = .text:0x801B9260; // type:function size:0xFC
__dt__9dScGame_cFv = .text:0x801B9360; // type:function size:0x138
__dt__12ScGameScreenFv = .text:0x801B94A0; // type:function size:0x58
__dt__21ScGameScreenTargetingFv = .text:0x801B9500; // type:function size:0x5C
__dt__47sFStateMgr_c<9dScGame_c,20sStateMethodUsr_FI_c>Fv = .text:0x801B9560; // type:function size:0xA4
__dt__77sStateMgr_c<9dScGame_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x801B9610; // type:function size:0xA0
__dt__24sFStateFct_c<9dScGame_c>Fv = .text:0x801B96B0; // type:function size:0x6C
__dt__21sFState_c<9dScGame_c>Fv = .text:0x801B9720; // type:function size:0x58
__dt__19sFPhase<9dScGame_c>Fv = .text:0x801B9780; // type:function size:0x58
__dt__10dScTitle_cFv = .text:0x801B97E0; // type:function size:0x140
create__10dScTitle_cFv = .text:0x801B9920; // type:function size:0x158
execute__10dScTitle_cFv = .text:0x801B9A80; // type:function size:0x54
executeState__77sStateMgr_c<9dScGame_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x801B9AE0; // type:function size:0x10
doDelete__10dScTitle_cFv = .text:0x801B9AF0; // type:function size:0xF0
draw__10dScTitle_cFv = .text:0x801B9BE0; // type:function size:0x24
loadTitleScreen__10dScTitle_cFUl = .text:0x801B9C10; // type:function size:0xD4
setSomethingSkbRelated__10dScTitle_cFv = .text:0x801B9CF0; // type:function size:0x18
initializeState_Stanby__10dScTitle_cFv = .text:0x801B9D10; // type:function size:0x4
executeState_Stanby__10dScTitle_cFv = .text:0x801B9D20; // type:function size:0x4
finalizeState_Stanby__10dScTitle_cFv = .text:0x801B9D30; // type:function size:0x4
initializeState_Action__10dScTitle_cFv = .text:0x801B9D40; // type:function size:0x4
executeState_Action__10dScTitle_cFv = .text:0x801B9D50; // type:function size:0x4
finalizeState_Action__10dScTitle_cFv = .text:0x801B9D60; // type:function size:0x4
checkAllSaveFilesEmpty__10dScTitle_cFv = .text:0x801B9D70; // type:function size:0x88
__sinit_\d_sc_title_cpp = .text:0x801B9E00; // type:function size:0x1E0 scope:local
__dt__25sFStateID_c<10dScTitle_c>Fv = .text:0x801B9FE0; // type:function size:0x58
__dt__32sFStateVirtualID_c<10dScTitle_c>Fv = .text:0x801BA040; // type:function size:0x5C
baseID_Action<9dScGame_c>__Fv_RC10sStateID_c = .text:0x801BA0A0; // type:function size:0xC
baseID_Stanby<9dScGame_c>__Fv_RC10sStateID_c = .text:0x801BA0B0; // type:function size:0xC
number__32sFStateVirtualID_c<10dScTitle_c>CFv = .text:0x801BA0C0; // type:function size:0xDC
superID__32sFStateVirtualID_c<10dScTitle_c>CFv = .text:0x801BA1A0; // type:function size:0xE0
isSameName__25sFStateID_c<10dScTitle_c>CFPCc = .text:0x801BA280; // type:function size:0x88
initializeState__25sFStateID_c<10dScTitle_c>CFR10dScTitle_c = .text:0x801BA310; // type:function size:0x30
executeState__25sFStateID_c<10dScTitle_c>CFR10dScTitle_c = .text:0x801BA340; // type:function size:0x30
finalizeState__25sFStateID_c<10dScTitle_c>CFR10dScTitle_c = .text:0x801BA370; // type:function size:0x30
dScGame_c_classInit__Fv = .text:0x801BA3A0; // type:function size:0x30
baseID_Stanby<10sStateID_c>__Fv_RC10sStateID_c = .text:0x801BA3D0; // type:function size:0xC
baseID_Action<10sStateID_c>__Fv_RC10sStateID_c = .text:0x801BA3E0; // type:function size:0xC
someGfxThingCallback__9dScGame_cFv = .text:0x801BA3F0; // type:function size:0x38
__ct__9dScGame_cFv = .text:0x801BA430; // type:function size:0x23C
create__9dScGame_cFv = .text:0x801BA670; // type:function size:0x50
doDelete__9dScGame_cFv = .text:0x801BA6C0; // type:function size:0x40
execute__9dScGame_cFv = .text:0x801BA700; // type:function size:0x58
draw__9dScGame_cFv = .text:0x801BA760; // type:function size:0x3C
deleteReady__9dScGame_cFv = .text:0x801BA7A0; // type:function size:0x10
cb1__9dScGame_cFv = .text:0x801BA7B0; // type:function size:0x68
cb2__9dScGame_cFv = .text:0x801BA820; // type:function size:0xA8
changeState__77sStateMgr_c<9dScGame_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>FRC12sStateIDIf_c = .text:0x801BA8D0; // type:function size:0x10
cb3__9dScGame_cFv = .text:0x801BA8E0; // type:function size:0x30
initializeState_Stanby__9dScGame_cFv = .text:0x801BA910; // type:function size:0x6C
executeState_Stanby__9dScGame_cFv = .text:0x801BA980; // type:function size:0x18
finalizeState_Stanby__9dScGame_cFv = .text:0x801BA9A0; // type:function size:0x4
initializeState_Action__9dScGame_cFv = .text:0x801BA9B0; // type:function size:0x54
executeState_Action__9dScGame_cFv = .text:0x801BAA10; // type:function size:0xBC
finalizeState_Action__9dScGame_cFv = .text:0x801BAAD0; // type:function size:0x4
somethingWithScreen__9dScGame_cFv = .text:0x801BAAE0; // type:function size:0xC4
setRespawnInfo__9dScGame_cFRC7mVec3_cRC7mAng3_cb = .text:0x801BABB0; // type:function size:0x17C
getLinkReloadInfo__9dScGame_cCFv = .text:0x801BAD30; // type:function size:0x8
attemptDelete__9dScGame_cFv = .text:0x801BAD40; // type:function size:0x44
setReloadTrigger__9dScGame_cFQ28fProfile14PROFILE_NAME_e = .text:0x801BAD90; // type:function size:0x20
setSpawnInfo__9dScGame_cFUcRC7mVec3_c4mAng = .text:0x801BADB0; // type:function size:0x4C
getSpawnInfo__9dScGame_cCFv = .text:0x801BAE00; // type:function size:0x8
clearSpawnInfo__9dScGame_cFv = .text:0x801BAE10; // type:function size:0x48
fn_801BAE60 = .text:0x801BAE60; // type:function size:0x90
fn_801BAEF0 = .text:0x801BAEF0; // type:function size:0x50
fn_801BAF40 = .text:0x801BAF40; // type:function size:0x54
Reloader__triggerEntrance = .text:0x801BAFA0; // type:function size:0xDC
triggerExit__6ScGameFlUcll = .text:0x801BB080; // type:function size:0xC0
triggerExit__9dScGame_cFlUcll = .text:0x801BB080; // type:function size:0xC0
Reloader__triggerExitInner = .text:0x801BB140; // type:function size:0x154
fn_801BB2A0 = .text:0x801BB2A0; // type:function size:0x28
fn_801BB2D0 = .text:0x801BB2D0; // type:function size:0x8
fn_801BB2E0 = .text:0x801BB2E0; // type:function size:0xC
fn_801BB2F0 = .text:0x801BB2F0; // type:function size:0x88
LinkReloadInfoKeep__set = .text:0x801BB380; // type:function size:0x34
isCurrentStage__6ScGameFPCc = .text:0x801BB3C0; // type:function size:0x10
setSpawnData__12SpawnInfoExtFPCcUcUcUcRC7mVec3_c4mAng = .text:0x801BB2F0; // type:function size:0x88
set__14LinkReloadInfoFUcRC7mVec3_c4mAngUl = .text:0x801BB380; // type:function size:0x34
isCurrentStage__9dScGame_cFPCc = .text:0x801BB3C0; // type:function size:0x10
isStageSkyloftLayer20 = .text:0x801BB3D0; // type:function size:0x54
isInCredits = .text:0x801BB430; // type:function size:0x54
isStateLayerWithSeekerStoneHintMenu = .text:0x801BB490; // type:function size:0x78
copySpawnNextToCurrent = .text:0x801BB510; // type:function size:0xBC
actuallyTriggerEntrance = .text:0x801BB5D0; // type:function size:0x104
copySpawnNextToCurrent__9dScGame_cFv = .text:0x801BB510; // type:function size:0xBC
actuallyTriggerEntrance__9dScGame_cFPCcUcUcUciiUcUsSc = .text:0x801BB5D0; // type:function size:0x104
setCamera = .text:0x801BB6E0; // type:function size:0x10
getCamera = .text:0x801BB6F0; // type:function size:0x10
fn_801BB700 = .text:0x801BB700; // type:function size:0x4C
@@ -11203,38 +11203,38 @@ startNewGameFile = .text:0x801BB8C0; // type:function size:0x100
fn_801BB9C0 = .text:0x801BB9C0; // type:function size:0x3C
unsetFlagsAfterStart = .text:0x801BBA00; // type:function size:0x110
fn_801BBB10 = .text:0x801BBB10; // type:function size:0x3C
SpawnStruct__setData = .text:0x801BBB50; // type:function size:0xD4
setData__9SpawnInfoFPCcUcUcUcllUcUsSc = .text:0x801BBB50; // type:function size:0xD4
fn_801BBC30 = .text:0x801BBC30; // type:function size:0x4
fn_801BBC40 = .text:0x801BBC40; // type:function size:0xE4
fn_801BBD30 = .text:0x801BBD30; // type:function size:0x14
fn_801BBD50 = .text:0x801BBD50; // type:function size:0x15C
fn_801BBEB0 = .text:0x801BBEB0; // type:function size:0x8
fn_801BBEC0 = .text:0x801BBEC0; // type:function size:0x18
fn_801BBEE0 = .text:0x801BBEE0; // type:function size:0x10
fn_801BBEF0 = .text:0x801BBEF0; // type:function size:0x60
fn_801BBF50 = .text:0x801BBF50; // type:function size:0xC
fn_801BBF60 = .text:0x801BBF60; // type:function size:0x1C
fn_801BBF80 = .text:0x801BBF80; // type:function size:0x1C
fn_801BBFA0 = .text:0x801BBFA0; // type:function size:0x1C
fn_801BBFC0 = .text:0x801BBFC0; // type:function size:0x10
fn_801BBFD0 = .text:0x801BBFD0; // type:function size:0x10
fn_801BBFE0 = .text:0x801BBFE0; // type:function size:0x10
fn_801BBFF0 = .text:0x801BBFF0; // type:function size:0x10
fn_801BC000 = .text:0x801BC000; // type:function size:0x10
fn_801BC010 = .text:0x801BC010; // type:function size:0x10
fn_801BC020 = .text:0x801BC020; // type:function size:0x30
fn_801BC050 = .text:0x801BC050; // type:function size:0xC
fn_801BC060 = .text:0x801BC060; // type:function size:0x10
fn_801BC070 = .text:0x801BC070; // type:function size:0x2C
fn_801BC0A0 = .text:0x801BC0A0; // type:function size:0x30
fn_801BC0D0 = .text:0x801BC0D0; // type:function size:0x30
fn_801BC100 = .text:0x801BC100; // type:function size:0x30
ScGame__sinit = .text:0x801BC130; // type:function size:0x27C
fn_801BC3B0 = .text:0x801BC3B0; // type:function size:0x58
ScGame__state_dtor = .text:0x801BC410; // type:function size:0x5C
fn_801BC470 = .text:0x801BC470; // type:function size:0xDC
fn_801BC550 = .text:0x801BC550; // type:function size:0xE0
fn_801BC630 = .text:0x801BC630; // type:function size:0x88
getStateID__77sStateMgr_c<9dScGame_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x801BBEE0; // type:function size:0x10
build__24sFStateFct_c<9dScGame_c>FRC12sStateIDIf_c = .text:0x801BBEF0; // type:function size:0x60
dispose__24sFStateFct_c<9dScGame_c>FRP10sStateIf_c = .text:0x801BBF50; // type:function size:0xC
initialize__21sFState_c<9dScGame_c>Fv = .text:0x801BBF60; // type:function size:0x1C
execute__21sFState_c<9dScGame_c>Fv = .text:0x801BBF80; // type:function size:0x1C
finalize__21sFState_c<9dScGame_c>Fv = .text:0x801BBFA0; // type:function size:0x1C
initializeState__77sStateMgr_c<9dScGame_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x801BBFC0; // type:function size:0x10
finalizeState__77sStateMgr_c<9dScGame_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x801BBFD0; // type:function size:0x10
refreshState__77sStateMgr_c<9dScGame_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x801BBFE0; // type:function size:0x10
getState__77sStateMgr_c<9dScGame_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x801BBFF0; // type:function size:0x10
getNewStateID__77sStateMgr_c<9dScGame_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x801BC000; // type:function size:0x10
getOldStateID__77sStateMgr_c<9dScGame_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x801BC010; // type:function size:0x10
callPhase__19sFPhase<9dScGame_c>Fv = .text:0x801BC020; // type:function size:0x30
onReset__19sFPhase<9dScGame_c>Fv = .text:0x801BC050; // type:function size:0xC
nextPhase__19sFPhase<9dScGame_c>Fv = .text:0x801BC060; // type:function size:0x10
hasReachedEnd__19sFPhase<9dScGame_c>CFv = .text:0x801BC070; // type:function size:0x2C
finalizeState__23sFStateID_c<9dScGame_c>CFR9dScGame_c = .text:0x801BC0A0; // type:function size:0x30
executeState__23sFStateID_c<9dScGame_c>CFR9dScGame_c = .text:0x801BC0D0; // type:function size:0x30
initializeState__23sFStateID_c<9dScGame_c>CFR9dScGame_c = .text:0x801BC100; // type:function size:0x30
__sinit_\d_sc_game_cpp = .text:0x801BC130; // type:function size:0x27C
__dt__23sFStateID_c<9dScGame_c>Fv = .text:0x801BC3B0; // type:function size:0x58
__dt__30sFStateVirtualID_c<9dScGame_c>Fv = .text:0x801BC410; // type:function size:0x5C
number__30sFStateVirtualID_c<9dScGame_c>CFv = .text:0x801BC470; // type:function size:0xDC
superID__30sFStateVirtualID_c<9dScGame_c>CFv = .text:0x801BC550; // type:function size:0xE0
isSameName__23sFStateID_c<9dScGame_c>CFPCc = .text:0x801BC630; // type:function size:0x88
dCsBase_c_classInit__Fv = .text:0x801BC6C0; // type:function size:0x30
__ct__9dCsBase_cFv = .text:0x801BC6F0; // type:function size:0x1AC
__dt__30sFState_c<17dLytCursorStick_c>Fv = .text:0x801BC8A0; // type:function size:0x58
@@ -17679,7 +17679,7 @@ destroy__Q23m3d9mShadow_cFv = .text:0x802ED2D0; // type:function size:0x60
__dt__Q23m3d14mShadowChild_cFv = .text:0x802ED330; // type:function size:0x9C
create__Q23m3d14mShadowChild_cFUcPQ23EGG4Heap = .text:0x802ED3D0; // type:function size:0x7C
set__Q23m3d14mShadowChild_cFRC7mVec3_cf6mColor = .text:0x802ED450; // type:function size:0x40
addMdl__Q23m3d14mShadowChild_cFRQ23m3d9scnLeaf_cRC7mQuat_c = .text:0x802ED490; // type:function size:0x16C
addMdl__Q23m3d14mShadowChild_cFRQ23m3d9scnLeaf_cR7mQuat_c = .text:0x802ED490; // type:function size:0x16C
setGeom__Q23m3d14mShadowChild_cFPC9_GXTexObjRC6mMtx_cRC7mQuat_c = .text:0x802ED600; // type:function size:0xF8
updateMtx__Q23m3d14mShadowChild_cFv = .text:0x802ED700; // type:function size:0x148
drawMdl__Q23m3d14mShadowChild_cFv = .text:0x802ED850; // type:function size:0x24C
@@ -30804,7 +30804,7 @@ __vt__22CurrentStageArcManager = .data:0x8050E004; // type:object size:0xC
__vt__11OarcManager = .data:0x8050E02C; // type:object size:0xC
lbl_8050E038 = .data:0x8050E038; // type:object size:0x10
__vt__16LayoutArcManager = .data:0x8050E048; // type:object size:0xC
lbl_8050E054 = .data:0x8050E054; // type:object size:0xC
__vt__16LayoutArcControl = .data:0x8050E054; // type:object size:0xC
lbl_8050E060 = .data:0x8050E060; // type:object size:0x30
lbl_8050E090 = .data:0x8050E090; // type:object size:0x2FC
lbl_8050E38C = .data:0x8050E38C; // type:object size:0xCC
@@ -34215,22 +34215,22 @@ lbl_8052E380 = .data:0x8052E380; // type:object size:0x20
lbl_8052E3A0 = .data:0x8052E3A0; // type:object size:0x20
TagVrbox__vtable = .data:0x8052E3C0; // type:object size:0x78
g_profile_TITLE = .data:0x8052E438; // type:object size:0xC
actorInit.defaultFlags2 = .data:0x8052E444; // type:object size:0xC
lbl_8052E450 = .data:0x8052E450; // type:object size:0xC
lbl_8052E45C = .data:0x8052E45C; // type:object size:0x4C
AcTitleReloader__vtable = .data:0x8052E4A8; // type:object size:0xE4
lbl_8052E58C = .data:0x8052E58C; // type:object size:0x6C
g_profile_GAME = .data:0x8052E5F8; // type:object size:0x10
lbl_8052E608 = .data:0x8052E608; // type:object size:0x30
Reloader__vtable = .data:0x8052E638; // type:object size:0x68
Reloader__stateMgr__vtable = .data:0x8052E6A0; // type:object size:0x30
lbl_8052E6D0 = .data:0x8052E6D0; // type:object size:0x30
lbl_8052E700 = .data:0x8052E700; // type:object size:0x18
lbl_8052E718 = .data:0x8052E718; // type:object size:0x18
sModulesToLoad = .data:0x8052E444; // type:object size:0xA scope:local
lbl_8052E450 = .data:0x8052E450; // type:object size:0xB data:string
lbl_8052E45C = .data:0x8052E45C; // type:object size:0x11 data:string
__vt__10dScTitle_c = .data:0x8052E4A8; // type:object size:0x64
__vt__32sFStateVirtualID_c<10dScTitle_c> = .data:0x8052E58C; // type:object size:0x34
g_profile_GAME = .data:0x8052E5F8; // type:object size:0xC
sCallbacks__9dScGame_c = .data:0x8052E608; // type:object size:0x30
__vt__9dScGame_c = .data:0x8052E638; // type:object size:0x64
__vt__47sFStateMgr_c<9dScGame_c,20sStateMethodUsr_FI_c> = .data:0x8052E6A0; // type:object size:0x30
__vt__77sStateMgr_c<9dScGame_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c> = .data:0x8052E6D0; // type:object size:0x30
__vt__24sFStateFct_c<9dScGame_c> = .data:0x8052E700; // type:object size:0x14
__vt__21sFState_c<9dScGame_c> = .data:0x8052E718; // type:object size:0x18
lbl_8052E730 = .data:0x8052E730; // type:object size:0x10
lbl_8052E740 = .data:0x8052E740; // type:object size:0x10
lbl_8052E750 = .data:0x8052E750; // type:object size:0xA4
lbl_8052E7F4 = .data:0x8052E7F4; // type:object size:0x6C
__vt__19sFPhase<9dScGame_c> = .data:0x8052E750; // type:object size:0x24
__vt__30sFStateVirtualID_c<9dScGame_c> = .data:0x8052E7F4; // type:object size:0x34
g_profile_C_BASE = .data:0x8052E860; // type:object size:0xC
lbl_8052E86C = .data:0x8052E86C; // type:object size:0x10
lbl_8052E87C = .data:0x8052E87C; // type:object size:0x10
@@ -38687,8 +38687,8 @@ lbl_805733B8 = .sdata:0x805733B8; // type:object size:0x8 data:string
lbl_805733C0 = .sdata:0x805733C0; // type:object size:0x8 data:string
lbl_805733C8 = .sdata:0x805733C8; // type:object size:0x8 data:string
lbl_805733D0 = .sdata:0x805733D0; // type:object size:0x8 data:string
lbl_805733D8 = .sdata:0x805733D8; // type:object size:0x4
lbl_805733DC = .sdata:0x805733DC; // type:object size:0xC
sLayoutArcsToLoad = .sdata:0x805733D8; // type:object size:0x4
lbl_805733DC = .sdata:0x805733DC; // type:object size:0x5 data:string
lbl_805733E8 = .sdata:0x805733E8; // type:object size:0x4
lbl_805733EC = .sdata:0x805733EC; // type:object size:0x8
lbl_805733F4 = .sdata:0x805733F4; // type:object size:0x8
@@ -40195,7 +40195,7 @@ IS_IN_SKYKEEP_PUZZLE = .sbss:0x805756E8; // type:object size:0x1 data:byte
lbl_805756E9 = .sbss:0x805756E9; // type:object size:0x1 data:byte
sInstance__10dTgSndMg_c = .sbss:0x805756EC; // type:object size:0x4 data:4byte
HBM_stuff = .sbss:0x805756F0; // type:object size:0x8 data:4byte
STAGE_MANAGER = .sbss:0x805756F8; // type:object size:0x4 data:4byte
sInstance__11dStageMgr_c = .sbss:0x805756F8; // type:object size:0x4 data:4byte
lbl_805756FC = .sbss:0x805756FC; // type:object size:0x1 data:byte
lbl_805756FD = .sbss:0x805756FD; // type:object size:0x1 data:byte
lbl_805756FE = .sbss:0x805756FE; // type:object size:0x1 data:byte
@@ -40240,21 +40240,21 @@ lbl_80575770 = .sbss:0x80575770; // type:object size:0x4 data:float
lbl_80575774 = .sbss:0x80575774; // type:object size:0x4 data:4byte
lbl_80575778 = .sbss:0x80575778; // type:object size:0x4 data:float
lbl_8057577C = .sbss:0x8057577C; // type:object size:0x4 data:4byte
lbl_80575780 = .sbss:0x80575780; // type:object size:0x4 data:4byte
lbl_80575784 = .sbss:0x80575784; // type:object size:0x1 data:byte
sInstance__10dScTitle_c = .sbss:0x80575780; // type:object size:0x4 data:4byte
sPreventEmptyFilesTitle__10dScTitle_c = .sbss:0x80575784; // type:object size:0x1 data:byte
lbl_80575785 = .sbss:0x80575785; // type:object size:0x1
lbl_80575786 = .sbss:0x80575786; // type:object size:0x1 data:byte
lbl_80575787 = .sbss:0x80575787; // type:object size:0x1 data:byte
CAMERAS = .sbss:0x80575788; // type:object size:0x4 data:4byte
LINK__7dAcPy_c = .sbss:0x8057578C; // type:object size:0x4 data:4byte
SCRAPPER_PTR = .sbss:0x80575790; // type:object size:0x4 data:4byte
sInstance__6ScGame = .sbss:0x80575794; // type:object size:0x4 data:4byte
StageUpdateCountFrameNum = .sbss:0x80575798; // type:object size:0x4 data:4byte
CURRENT_SPAWN_LAYER = .sbss:0x8057579C; // type:object size:0x1 data:byte
RELOADER_TYPE = .sbss:0x8057579D; // type:object size:0x1 data:byte
COPY_FILE_B_TO_CURRENT_AFTER_RESPAWN = .sbss:0x8057579E; // type:object size:0x1 data:byte
lbl_8057579F = .sbss:0x8057579F; // type:object size:0x1 data:byte
lbl_805757A0 = .sbss:0x805757A0; // type:object size:0x8 data:byte
sInstance__9dScGame_c = .sbss:0x80575794; // type:object size:0x4 data:4byte
sUpdateFrameCount__9dScGame_c = .sbss:0x80575798; // type:object size:0x4 data:4byte
sCurrentLayer__9dScGame_c = .sbss:0x8057579C; // type:object size:0x1 data:byte
sReloaderType__9dScGame_c = .sbss:0x8057579D; // type:object size:0x1 data:byte
sCopyFileBToCurrentAfterRespawn__9dScGame_c = .sbss:0x8057579E; // type:object size:0x1 data:byte
sDoSomethingWithFileAOnTransition__9dScGame_c = .sbss:0x8057579F; // type:object size:0x1 data:byte
sPreventClearingSomeFlag__9dScGame_c = .sbss:0x805757A0; // type:object size:0x1 data:byte
sInstance__9dCsBase_c = .sbss:0x805757A8; // type:object size:0x8 data:4byte
C_GAME = .sbss:0x805757B0; // type:object size:0x8 data:4byte
LINK_PTR2 = .sbss:0x805757B8; // type:object size:0x4 data:4byte
@@ -49134,12 +49134,14 @@ lbl_805B3660 = .bss:0x805B3660; // type:object size:0x80 data:byte
lbl_805B36E0 = .bss:0x805B36E0; // type:object size:0x10
Room__STATE_ACTIVE = .bss:0x805B36F0; // type:object size:0x40 data:4byte
Room__STATE_NON_ACTIVE = .bss:0x805B3730; // type:object size:0x30 data:4byte
lbl_805B3760 = .bss:0x805B3760; // type:object size:0x80
lbl_805B3760 = .bss:0x805B3760; // type:object size:0xC
StateID_Stanby__10dScTitle_c = .bss:0x805B376C; // type:object size:0x34
StateID_Action__10dScTitle_c = .bss:0x805B37AC; // type:object size:0x34
lbl_805B37E0 = .bss:0x805B37E0; // type:object size:0xC
ScGame__STATE_STANBY = .bss:0x805B37EC; // type:object size:0x40 data:4byte
ScGame__STATE_ACTION = .bss:0x805B382C; // type:object size:0x34 data:4byte
currentSpawnInfo__6ScGame = .bss:0x805B3860; // type:object size:0x2C data:4byte
NEXT_SPAWN_INFO = .bss:0x805B388C; // type:object size:0x2C data:byte
StateID_Stanby__9dScGame_c = .bss:0x805B37EC; // type:object size:0x34 data:4byte
StateID_Action__9dScGame_c = .bss:0x805B382C; // type:object size:0x34 data:4byte
currentSpawnInfo__9dScGame_c = .bss:0x805B3860; // type:object size:0x2A
nextSpawnInfo__9dScGame_c = .bss:0x805B388C; // type:object size:0x2A data:byte
lbl_805B38B8 = .bss:0x805B38B8; // type:object size:0x50
CsGame__lytItemCursor__STATE_INVISIBLE = .bss:0x805B3908; // type:object size:0x40 data:4byte
CsGame__lytItemCursor__STATE_BOW = .bss:0x805B3948; // type:object size:0x40 data:4byte
+2
View File
@@ -431,6 +431,8 @@ config.libs = [
Object(NonMatching, "d/a/d_a_insect.cpp"),
Object(NonMatching, "d/d_cs_base.cpp"),
Object(NonMatching, "d/d_cs_game.cpp"),
Object(Matching, "d/d_sc_title.cpp"),
Object(NonMatching, "d/d_sc_game.cpp"),
Object(Matching, "d/lyt/d_lyt_common_arrow.cpp"),
Object(NonMatching, "toBeSorted/file_manager.cpp"),
Object(NonMatching, "toBeSorted/save_manager.cpp"),
+1 -1
View File
@@ -5,7 +5,7 @@
class dDynamicModuleControl {
public:
dDynamicModuleControl() {}
dDynamicModuleControl(): mPtr(nullptr) {}
virtual ~dDynamicModuleControl();
void set(u16 *ptr, int count);
+17
View File
@@ -33,11 +33,28 @@ public:
mFadeOutType = fadeOutType;
}
void setFadeInType(s32 fadeInType) {
mFadeInType = fadeInType;
}
void setFadeOutType(s32 fadeOutType) {
mFadeOutType = fadeOutType;
}
void resetFrames() {
mFadeInFrame = 30;
mFadeOutFrame = 30;
}
void setFrames(u16 fadeIn, u16 fadeOut) {
mFadeInFrame = fadeIn;
mFadeOutFrame = fadeOut;
}
u16 getFadeOutFrame() const {
return mFadeOutFrame;
}
void setFadeInFrame(u16 frame) {
mFadeInFrame = frame;
}
+227
View File
@@ -0,0 +1,227 @@
#ifndef D_SC_GAME_H
#define D_SC_GAME_H
#include "common.h"
#include "d/a/d_a_base.h"
#include "d/d_dylink.h"
#include "d/d_fader.h"
#include "d/d_scene.h"
#include "egg/gfx/eggScreen.h"
#include "f/f_profile_name.h"
#include "m/m2d.h"
#include "m/m_angle.h"
#include "m/m_vec.h"
#include "s/s_FPhase.h"
#include "s/s_State.hpp"
#include "sized_string.h"
#include "toBeSorted/arc_managers/layout_arc_manager.h"
class ScGameScreen : public m2d::Base_c {
public:
ScGameScreen(u8 priority) {
setPriority(priority);
}
private:
/* 0x10 */ EGG::Screen mScreen;
};
class ScGameScreenTargeting : public ScGameScreen {
public:
ScGameScreenTargeting(u8 priority) : ScGameScreen(priority), mLetterboxAmount(0.0f) {}
private:
f32 mLetterboxAmount;
};
struct SpawnInfo {
SpawnInfo() {
reset();
}
SpawnInfo(const SpawnInfo &other) {
*this = other;
}
SpawnInfo &operator=(const SpawnInfo &other) {
setData(
other.stageName, other.room, other.layer, other.entrance, other.night, other.trial, other.transitionType,
other.transitionFadeFrames & 0xFF, other.unk
);
return *this;
}
void reset() {
setData("", 0, 0, 0, 0, 0, 0, 0xf, 0xff);
}
/* 0x00 */ SizedString<32> stageName;
/* 0x20 */ u16 transitionFadeFrames;
/* 0x22 */ s8 room;
/* 0x23 */ u8 layer;
/* 0x24 */ s8 entrance;
/* 0x25 */ u8 night;
/* 0x26 */ u8 trial;
/* 0x27 */ s8 transitionType;
/* 0x28 */ s8 unk;
enum DayNight {
DAY,
NIGHT,
RETAIN_TOD,
};
enum Trial {
NO_TRIAL,
TRIAL,
RETAIN_TRIAL,
};
DayNight getTimeOfDay() {
return (DayNight)night;
}
Trial getTrial() {
return (Trial)trial;
}
bool isNight() {
return getTimeOfDay() == NIGHT;
}
void setData(
const char *i_stageName, u8 i_roomid, u8 i_layer, u8 i_entrance, s32 i_night, s32 i_trial, u8 i_transitionType,
u16 i_fadeFrames, s8 i_field0x28
);
};
struct SpawnInfoExt : public SpawnInfo {
/* 0x2C */ mVec3_c mType0Pos;
/* 0x38 */ s16 mType0RotY;
void setSpawnData(const char *i_stageName, u8 i_roomid, u8 i_layer, u8 i_entrance, const mVec3_c &pos, mAng rot);
};
struct LinkReloadInfo {
LinkReloadInfo() : mType0CsFlag(0) {}
void set(u8 roomid, const mVec3_c &pos, mAng rot, u32 flags);
/* 0x00 */ mVec3_c mPosition;
/* 0x0C */ mAng mRotY;
/* 0x0E */ u8 mRoomId;
/* 0x0F */ u8 mType0CsFlag;
/* 0x10 */ u32 mUnkFlags;
};
class dScGame_c : public dScene_c {
public:
dScGame_c();
virtual ~dScGame_c() {
sInstance = nullptr;
}
virtual int create() override;
virtual int doDelete() override;
virtual int execute() override;
virtual int draw() override;
virtual void deleteReady() override;
void triggerExit(s32 room, u8 exitIndex, s32 forcedNight = 2, s32 forcedTrial = 2);
// void triggerEntrance(const char *stageName, u8 room, );
const LinkReloadInfo &getLinkReloadInfo() const;
static void copySpawnNextToCurrent();
STATE_VIRTUAL_FUNC_DECLARE(dScGame_c, Stanby); // sic
STATE_VIRTUAL_FUNC_DECLARE(dScGame_c, Action);
static bool isCurrentStage(const char *stageName);
static SpawnInfo currentSpawnInfo;
static SpawnInfo nextSpawnInfo;
static dScGame_c *sInstance;
static dScGame_c *GetInstance() {
return sInstance;
}
bool setReloadTrigger(fProfile::PROFILE_NAME_e reloadTrigger);
void setRespawnInfo(const mVec3_c &linkPos, const mAng3_c &linkRot, bool unk);
void setSpawnInfo(u8 roomid, const mVec3_c &pos, mAng rot);
void clearSpawnInfo();
const SpawnInfoExt &getSpawnInfo() const;
protected:
static u32 sUpdateFrameCount;
static u8 sCurrentLayer;
static u8 sReloaderType;
static bool sCopyFileBToCurrentAfterRespawn;
static bool sDoSomethingWithFileAOnTransition;
static bool sPreventClearingSomeFlag;
static void someGfxThingCallback();
void somethingWithScreen();
bool attemptDelete();
static void actuallyTriggerEntrance(
const char *stageName, u8 roomid, u8 layer, u8 entrance, int forcedNight, int forcedTrial, u8 transitionType,
u16 transitionFadeFrames, s8 field0x28
);
void setFadeInType(u8 transitionType) {
mFader.setFadeInType(transitionType);
}
void setFadeOutType(u8 transitionType) {
mFader.setFadeOutType(transitionType);
}
void setFaderFrames(u16 transitionFadeFrames) {
mFader.setFrames(transitionFadeFrames, transitionFadeFrames);
}
void setBeedleShopState(u8 state) {
mBeedleShopState = state;
}
void resetLinkState() {
mInitialSpeedAfterLoadZone = 0.0f;
mStaminaAmount = -1;
mItemToUseOnReload = -1;
mActionIndex = -1;
}
sFPhaseBase::sFPhaseState cb1();
sFPhaseBase::sFPhaseState cb2();
sFPhaseBase::sFPhaseState cb3();
static sFPhase<dScGame_c>::phaseCallback sCallbacks[];
/* 0x068 */ sFPhase<dScGame_c> mPhases;
/* 0x07C */ STATE_MGR_DECLARE(dScGame_c);
/* 0x0B8 */ dDynamicModuleControl mRelCtrl;
/* 0x0C4 */ LayoutArcControl mLayoutCtrl;
/* 0x0D0 */ dFader_c mFader;
/* 0x0F8 */ ScGameScreenTargeting mScreen1;
/* 0x194 */ ScGameScreen mScreen2;
/* 0x228 */ UNKWORD field_0x228;
/* 0x22C */ u8 _0x22C[0x230 - 0x22C];
/* 0x230 */ dAcRefBase_c mStageMgrRef;
/* 0x23C */ u16 mReloadTrigger;
/* 0x23E */ u16 field_0x23E;
/* 0x240 */ SpawnInfoExt mSpawnInfo;
/* 0x27C */ LinkReloadInfo mReloadInfo;
/* 0x290 */ f32 mInitialSpeedAfterLoadZone;
/* 0x294 */ s32 mStaminaAmount;
/* 0x298 */ s8 mItemToUseOnReload;
/* 0x299 */ s8 mBeedleShopState;
/* 0x29A */ u16 mActionIndex;
/* 0x29C */ s32 mLastAreaType;
/* 0x2A0 */ u8 mType0PosFlag;
/* 0x2A1 */ u8 field_0x2A1;
/* 0x2A2 */ u8 mSavePromptFlag;
/* 0x2A3 */ bool mPreventSaveRespawnInfo;
};
#endif
+40
View File
@@ -0,0 +1,40 @@
#ifndef D_SC_TITLE_H
#define D_SC_TITLE_H
#include "d/d_sc_game.h"
#include "s/s_FPhase.h"
#include "s/s_State.hpp"
class dScTitle_c : public dScGame_c {
public:
dScTitle_c();
virtual ~dScTitle_c();
STATE_VIRTUAL_OVERRIDE_FUNC_DECLARE(dScTitle_c, dScGame_c, Stanby);
STATE_VIRTUAL_OVERRIDE_FUNC_DECLARE(dScTitle_c, dScGame_c, Action);
static dScTitle_c *sInstance;
static void loadTitleScreen(u32 params);
static void setSomethingSkbRelated();
private:
static bool sPreventEmptyFilesTitle;
static bool checkAllSaveFilesEmpty();
virtual int create() override;
virtual int execute() override;
virtual int doDelete() override;
virtual int draw() override;
static void *dvdCallback(void *data);
static sFPhase<dScTitle_c>::phaseCallback sCallbacks[];
/* 0x2A4 */ mDvd_toMainRam_normal_c *mpSkbArc;
/* 0x2A8 */ mDvd_toMainRam_normal_c *mpSkbFont;
/* 0x2AC */ u8 field_0x2AC;
/* 0x2AD */ u8 field_0x2AD;
};
#endif
+2
View File
@@ -2,10 +2,12 @@
#define D_SYS_H
#include "common.h"
#include "m/m_color.h"
namespace dSys {
void setFrameRate(u32);
void setClearColor(mColor clr);
} // namespace dSys_c
+1
View File
@@ -7,6 +7,7 @@
struct mColor : public nw4r::ut::Color {
mColor() : nw4r::ut::Color() {}
mColor(int red, int green, int blue, int alpha) : nw4r::ut::Color(red, green, blue, alpha) {}
mColor(int hex) : nw4r::ut::Color(hex) {}
};
#endif
@@ -1,6 +1,7 @@
#ifndef LAYOUT_ARC_MANAGER_H
#define LAYOUT_ARC_MANAGER_H
#include "common.h"
#include "d/d_rawarchive.h"
#include "egg/core/eggHeap.h"
@@ -21,7 +22,7 @@ public:
bool loadLayoutArcFromDisk(const char *object, EGG::Heap *heap);
int ensureLoaded1(const char *object);
void ensureLoaded2(const char *object);
int ensureLoaded2(const char *object);
bool hasEntry(const char *object);
bool decrement(const char *path);
void *getData(const char *oarcName, const char *fileName);
@@ -31,4 +32,17 @@ private:
dRawArcTable_c mArcTable;
};
class LayoutArcControl {
public:
LayoutArcControl() : mLayoutArcs(nullptr), mNumArcs(0) {}
virtual ~LayoutArcControl();
void set(const char *const *layoutArcs, s32 numArcs);
void load(EGG::Heap *heap);
void release();
private:
const char **mLayoutArcs;
s32 mNumArcs;
};
#endif
+2 -2
View File
@@ -270,14 +270,14 @@ public:
/* 80011280 */ u32 calcFileCRC(const void *data, u32 length);
/* 80011290 */ void updateEmptyFiles();
/* 800112D0 */ void updateEmptyFileFlags();
/* 80011370 */ bool isFileEmpty(int fileNum);
/* 80011370 */ bool isFileEmpty(u8 fileNum);
/* 80011390 */ bool isFileDirty(int fileNum);
/* 800113B0 */ u8 get_0xA84C();
/* 800113C0 */ bool checkRegionCode();
/* 80011440 */ bool checkFileCRC(u8 fileNum);
/* 80011490 */ bool isFileInactive() const;
/* 80011500 */ void setPlayerInfoFileA();
/* 800115E0 */ void setT3Info(mVec3_c *pos, mAng3_c *rot);
/* 800115E0 */ void setT3Info(const mVec3_c &pos, const mAng3_c &rot);
/* 800116C0 */ static void getRegionVersion(char *out);
// /* 800116F0 */ void sinit();
+33
View File
@@ -0,0 +1,33 @@
#ifndef MINIGAME_MGR_H
#define MINIGAME_MGR_H
class MinigameManager {
public:
enum Minigame {
NONE,
BAMBOO_CUTTING,
FUN_FUN_ISLAND,
THRILL_DIGGER,
PUMPKIN_CARRY,
INSECT_CAPTURE,
PUMPKIN_ARCHERY,
ROLLERCOASTER,
TRIAL_TIME_ATTACK,
BOSS_RUSH,
HOUSE_CLEANING,
SPIRAL_CHARGE_TUTORIAL,
HARP_PLAYING,
};
static bool isInMinigameState(Minigame game);
static void create();
static void destroy();
static void execute();
private:
MinigameManager() {}
virtual ~MinigameManager() {}
static MinigameManager *sInstance;
};
#endif
+6
View File
@@ -1,7 +1,13 @@
#ifndef MUSIC_MGRS_H
#define MUSIC_MGRS_H
#include "common.h"
extern "C" void *BGM_MGR;
extern "C" void fn_8035E000();
extern "C" void fn_8035E310(void *);
extern "C" void *ENEMY_SOUND_MGR;
extern "C" void fn_80362150(void *, u16);
#endif
+1
View File
@@ -6,6 +6,7 @@ class ReloadColorFader {
public:
static ReloadColorFader *GetInstance();
void fn_80067ED0();
void fn_80067EF0(s32);
void fn_80067F00();
void fn_80067F50();
-33
View File
@@ -1,33 +0,0 @@
#ifndef SCGAME_H
#define SCGAME_H
#include "common.h"
#include "sized_string.h"
struct SpawnInfo {
/* 0x00 */ SizedString<32> stageName;
/* 0x20 */ s16 transitionFadeFrames;
/* 0x22 */ s8 room;
/* 0x23 */ u8 layer;
/* 0x24 */ s8 entrance;
/* 0x25 */ s8 night;
/* 0x26 */ s8 trial;
/* 0x27 */ s8 transitionType;
/* 0x28 */ s32 unk;
bool isNight() {
return night == 1;
}
};
class ScGame {
public:
static SpawnInfo currentSpawnInfo;
static SpawnInfo nextSpawnInfo;
static ScGame *sInstance;
static bool isCurrentStage(const char *stageName);
void triggerExit(s32 room, u8 exitIndex, s32 forcedNight = 2, s32 forcedTrial = 2);
};
#endif
+28
View File
@@ -0,0 +1,28 @@
#ifndef SOME_GFX_THING_H
#define SOME_GFX_THING_H
#include "common.h"
class SomeGfxThing;
extern SomeGfxThing *SOME_GFX_THING;
class SomeGfxThing {
public:
typedef void (*drawCallback)(void);
static void setDrawCallback(drawCallback cb) {
SOME_GFX_THING->mDrawCb = cb;
}
static void setField0x09(u8 val) {
SOME_GFX_THING->field_0x09 = val;
}
private:
u8 _0x00[0x04 - 0x00];
drawCallback mDrawCb;
u8 field_0x08;
u8 field_0x09;
};
#endif
+20
View File
@@ -0,0 +1,20 @@
#ifndef STAGE_MANAGER_H
#define STAGE_MANAGER_H
#include "d/d_base.h"
class dStageMgr_c : dBase_c {
public:
bool isAreaTypeDungeon() const;
bool isAreaTypeSky() const;
s32 getAreaType() const;
static dStageMgr_c *GetInstance() {
return sInstance;
}
private:
static dStageMgr_c *sInstance;
};
#endif
+2 -4
View File
@@ -1,9 +1,9 @@
#include "d/a/obj/d_a_obj_sun_light.h"
#include "d/d_sc_game.h"
#include "nw4r/g3d/res/g3d_resfile.h"
#include "toBeSorted/arc_managers/current_stage_arc_manager.h"
#include "toBeSorted/room_manager.h"
#include "toBeSorted/scgame.h"
SPECIAL_ACTOR_PROFILE(OBJ_SUN_LIGHT, dAcOsunLight_c, fProfile::OBJ_SUN_LIGHT, 0x0219, 0, 3);
@@ -58,7 +58,5 @@ void dAcOsunLight_c::executeState_Wait() {}
void dAcOsunLight_c::finalizeState_Wait() {}
bool dAcOsunLight_c::isDay() {
// return !ScGame::currentSpawnInfo.isNight();
// TODO TempFix?
return !(u8)ScGame::currentSpawnInfo.night;
return dScGame_c::currentSpawnInfo.getTimeOfDay() == SpawnInfo::DAY;
}
@@ -2,11 +2,11 @@
#include "d/a/d_a_item.h"
#include "d/col/cc/d_cc_s.h"
#include "d/d_sc_game.h"
#include "d/flag/storyflag_manager.h"
#include "toBeSorted/attention.h"
#include "toBeSorted/event.h"
#include "toBeSorted/event_manager.h"
#include "toBeSorted/scgame.h"
SPECIAL_ACTOR_PROFILE(OBJ_TOD3_STONE, dAcOtoD3StoneFigure_c, fProfile::OBJ_TOD3_STONE, 0x1B3, 0, 0);
@@ -117,14 +117,14 @@ int dAcOtoD3StoneFigure_c::actorExecute() {
}
int dAcOtoD3StoneFigure_c::draw() {
if (ScGame::currentSpawnInfo.layer != 0x12) {
if (dScGame_c::currentSpawnInfo.layer != 0x12) {
drawModelType1(&mMdl);
}
return SUCCEEDED;
}
void dAcOtoD3StoneFigure_c::initializeState_OneEye() {
if (ScGame::currentSpawnInfo.night == 1) {
if (dScGame_c::currentSpawnInfo.getTimeOfDay() == SpawnInfo::NIGHT) {
rotation.y.mVal += -0x8000;
updateMatrix();
mMdl.setLocalMtx(mWorldMtx);
@@ -133,9 +133,9 @@ void dAcOtoD3StoneFigure_c::initializeState_OneEye() {
void dAcOtoD3StoneFigure_c::executeState_OneEye() {
if (EventManager::isInEvent(this, "D3OpenStart")) {
ScGame::sInstance->triggerExit(roomid, mExitId);
dScGame_c::sInstance->triggerExit(roomid, mExitId);
} else {
if (hasStoneOfTrials() && ScGame::currentSpawnInfo.night != 1) {
if (hasStoneOfTrials() && dScGame_c::currentSpawnInfo.getTimeOfDay() != SpawnInfo::NIGHT) {
// These are interaction related
-0.0f;
AttentionManager::sInstance->addExamineTalkTarget(*this, 1, 300.0f, 50.0f, -100.0f, 100.0f);
+2 -2
View File
@@ -23,6 +23,7 @@
#include "toBeSorted/arc_managers/layout_arc_manager.h"
#include "toBeSorted/arc_managers/oarc_manager.h"
#include "toBeSorted/hbm.h"
#include "toBeSorted/some_gxf_thing.h"
#include "toBeSorted/reload_color_fader.h"
sFPhase<dScBoot_c>::phaseCallback dScBoot_c::sCallbacks[] = {&dScBoot_c::cb1, &dScBoot_c::cb2, &dScBoot_c::cb3,
@@ -44,7 +45,6 @@ extern "C" const char *getEventFlowFileNameByIndex(int, int);
extern "C" const char *getUsedLanguageString();
extern "C" u8 fn_80054F30();
extern "C" nw4r::ut::ResFont *lbl_805750D8;
extern "C" u8 *SOME_GFX_THING;
sFPhaseBase::sFPhaseState dScBoot_c::cb1() {
LayoutArcManager::sInstance->loadLayoutArcFromDisk("cursor", mHeap::g_archiveHeap);
@@ -520,7 +520,7 @@ void dScBoot_c::executeState_Strap() {
void dScBoot_c::finalizeState_Strap() {
// TODO
SOME_GFX_THING[9] = 1;
SomeGfxThing::setField0x09(1);
}
void dScBoot_c::initializeState_Connect() {
+3 -4
View File
@@ -1,16 +1,15 @@
#include "d/t/d_t_genki_dws_tgt.h"
#include "toBeSorted/room_manager.h"
#include "d/d_sc_game.h"
#include "d/flag/sceneflag_manager.h"
#include "d/flag/storyflag_manager.h"
#include "toBeSorted/scgame.h"
#include "toBeSorted/room_manager.h"
SPECIAL_ACTOR_PROFILE(TAG_GENKI_DOWSING_TARGET, dTgGenkiDwsTgt_c, fProfile::TAG_GENKI_DOWSING_TARGET, 0x02A5, 0, 0);
int dTgGenkiDwsTgt_c::create() {
u16 batQuestActivated = StoryflagManager::sInstance->getCounterOrFlag(304);
if (batQuestActivated == 0 || !ScGame::sInstance->currentSpawnInfo.isNight()) {
if (batQuestActivated == 0 || !dScGame_c::sInstance->currentSpawnInfo.isNight()) {
return FAILED;
}
+2 -2
View File
@@ -3,6 +3,7 @@
#include "d/a/d_a_player.h"
#include "d/a/obj/d_a_obj_base.h"
#include "d/d_heap.h"
#include "d/d_sc_game.h"
#include "d/flag/enemyflag_manager.h"
#include "f/f_list_nd.h"
#include "m/m_vec.h"
@@ -10,7 +11,6 @@
#include "toBeSorted/event_manager.h"
#include "toBeSorted/file_manager.h"
#include "toBeSorted/room_manager.h"
#include "toBeSorted/scgame.h"
#include "toBeSorted/special_item_drop_mgr.h"
// .sdata
@@ -232,7 +232,7 @@ bool dAcBase_c::restorePosRotFromCopy() {
// 8002cf10
u32 dAcBase_c::itemDroppingAndGivingRelated(mVec3_c *spawnPos, int subtype) {
if (ScGame::currentSpawnInfo.trial == 1) {
if (dScGame_c::currentSpawnInfo.getTrial() == SpawnInfo::TRIAL) {
return 0;
}
+3 -3
View File
@@ -10,8 +10,8 @@
#include "d/col/c/c_bg_s_shdw_draw.h"
#include "d/col/c/c_m3d.h"
#include "d/col/c/c_partition.h"
#include "d/d_sc_game.h"
#include "toBeSorted/arc_managers/oarc_manager.h"
#include "toBeSorted/scgame.h"
const char *MAP_SOLID_MATERIAL_NAMES[31] = {
0,
@@ -409,7 +409,7 @@ void dBgS::Ct() {
mInSkyKeep = false;
for (int i = 0; i < 8; ++i) {
if (ScGame::isCurrentStage(SKYKEEP_STAGE_NAMES[i])) {
if (dScGame_c::isCurrentStage(SKYKEEP_STAGE_NAMES[i])) {
mInSkyKeep = true;
return;
}
@@ -575,7 +575,7 @@ int dBgS::GetPolyAtt1(cBgS_PolyInfo const &info) {
// TODO: Map to Enums And Cleanup??
int dBgS::GetMapCode(int att0, int att1, bool bAlt) {
if (bAlt && ScGame::currentSpawnInfo.trial == 1) {
if (bAlt && dScGame_c::currentSpawnInfo.getTrial() == SpawnInfo::TRIAL) {
return 0x1E;
}
if (att0 == 4 && att1 == 1) {
+2 -2
View File
@@ -6,7 +6,7 @@
#include "d/col/c/c_bg_s_chk.h"
#include "d/col/c/c_bg_s_lin_chk.h"
#include "d/col/c/c_bg_s_shdw_draw.h"
#include "toBeSorted/scgame.h"
#include "d/d_sc_game.h"
bool cBgW::sLineCheck;
bool cBgW::sGndCheck;
@@ -855,7 +855,7 @@ bool dBgW::GetMapCode(int polyIdx, int *pOut) {
bool target = GetZTargetThrough(info);
if (att0 >= 0x20) {
*pOut = dBgS::GetMapCode(att0 - 0x20, att1, target);
if (Chk0x24_0x20() && ScGame::currentSpawnInfo.trial == 1) {
if (Chk0x24_0x20() && dScGame_c::currentSpawnInfo.getTrial() == SpawnInfo::TRIAL) {
*pOut = 0x1E;
}
return false;
+4 -4
View File
@@ -3,7 +3,7 @@
#include "d/col/bg/d_bg_s.h"
#include "d/col/bg/d_bg_s_gnd_chk.h"
#include "d/col/bg/d_bg_s_lin_chk.h"
#include "toBeSorted/scgame.h"
#include "d/d_sc_game.h"
char STAGE_FS_A[] = "D201";
char STAGE_FS_B[] = "D201_1";
@@ -518,7 +518,7 @@ void dBgWKCol::DrawOnMap(int idx, bool param2) {
if (param2) {
// FS Room 9 /* Spiral Staircase */
if (GetRoomId() == 9 && (ScGame::isCurrentStage(STAGE_FS_A) || ScGame::isCurrentStage(STAGE_FS_B))) {
if (GetRoomId() == 9 && (dScGame_c::isCurrentStage(STAGE_FS_A) || dScGame_c::isCurrentStage(STAGE_FS_B))) {
int all = mMapRelated[idx].mCount;
mVec3_c AB, CA, BC;
mVec3_c v0, v1, v2;
@@ -646,13 +646,13 @@ void dBgWKCol::DrawOnMap(int idx, bool param2) {
f32 yPos = (bnd->GetMinP()->y + bnd->GetMaxP()->y) * 0.5f;
// Sandship
if (GetRoomId() == 15 && ScGame::isCurrentStage(STAGE_SSH)) {
if (GetRoomId() == 15 && dScGame_c::isCurrentStage(STAGE_SSH)) {
yPos = 0.0f;
}
if (idx == 0x12 /* Abyss `Common/tex/naraku.bti`)*/) {
yPos -= 1.0f;
}
if (ScGame::isCurrentStage(STAGE_FS_A) || ScGame::isCurrentStage(STAGE_FS_B)) {
if (dScGame_c::isCurrentStage(STAGE_FS_A) || dScGame_c::isCurrentStage(STAGE_FS_B)) {
int room = GetRoomId();
/* FS Room 9 - Spiral Staircse */
if (room == 9) {
+3 -2
View File
@@ -6,6 +6,7 @@
#include "d/col/c/c_m3d_g_aab.h"
#include "f/f_base.h"
#include "rvl/MTX/mtx.h"
#include "toBeSorted/stage_manager.h"
dCcS *dCcS::sInstance;
@@ -167,11 +168,11 @@ void dCcS::ClearArea() {
mAreaCount = 0;
}
extern "C" void *STAGE_MANAGER;
extern "C" bool fn_8019A7A0(void *stg, f32 *, f32 *);
void dCcS::AdjustHitPos() {
f32 x, z;
if (STAGE_MANAGER && fn_8019A7A0(STAGE_MANAGER, &x, &z)) {
if (dStageMgr_c::GetInstance() != nullptr && fn_8019A7A0(dStageMgr_c::GetInstance(), &x, &z)) {
for (cCcD_Obj **obj = mpObj; obj < mpObj + mObjCount; ++obj) {
(*obj)->AdjustHitPos(x, z);
(*obj)->GetShapeAttr()->TranslateXZ(x, z);
+325
View File
@@ -0,0 +1,325 @@
#include "d/d_sc_game.h"
#include "common.h"
#include "d/d_base.h"
#include "d/flag/storyflag_manager.h"
#include "f/f_base.h"
#include "f/f_profile_name.h"
#include "m/m_fader_base.h"
#include "m/m_vec.h"
#include "s/s_FPhase.h"
#include "s/s_State.hpp"
#include "toBeSorted/arc_managers/layout_arc_manager.h"
#include "toBeSorted/arc_managers/oarc_manager.h"
#include "toBeSorted/file_manager.h"
#include "toBeSorted/minigame_mgr.h"
#include "toBeSorted/music_mgrs.h"
#include "toBeSorted/room_manager.h"
#include "toBeSorted/some_gxf_thing.h"
#include "toBeSorted/stage_manager.h"
#include <cstring>
SPECIAL_BASE_PROFILE(GAME, dScGame_c, fProfile::GAME, 0x4, 0x6F9);
STATE_VIRTUAL_DEFINE(dScGame_c, Stanby);
STATE_VIRTUAL_DEFINE(dScGame_c, Action);
SpawnInfo dScGame_c::currentSpawnInfo;
SpawnInfo dScGame_c::nextSpawnInfo(dScGame_c::currentSpawnInfo);
dScGame_c *dScGame_c::sInstance;
u32 dScGame_c::sUpdateFrameCount;
u8 dScGame_c::sCurrentLayer;
u8 dScGame_c::sReloaderType;
bool dScGame_c::sCopyFileBToCurrentAfterRespawn;
bool dScGame_c::sDoSomethingWithFileAOnTransition;
bool dScGame_c::sPreventClearingSomeFlag;
sFPhase<dScGame_c>::phaseCallback dScGame_c::sCallbacks[] = {
&dScGame_c::cb1, &dScGame_c::cb2, &dScGame_c::cb3, nullptr
};
void dScGame_c::someGfxThingCallback() {
dScGame_c *scGame = dScGame_c::GetInstance();
scGame->somethingWithScreen();
scGame->mFader.draw();
}
dScGame_c::dScGame_c()
: mPhases(this, sCallbacks),
mStateMgr(*this),
mStageMgrRef(nullptr),
mScreen1(0x85),
mScreen2(0x89),
field_0x228(0),
mReloadTrigger(fProfile::PROFILE_MAX) {
resetLinkState();
mBeedleShopState = 0;
mLastAreaType = 6;
mType0PosFlag = 0;
mSavePromptFlag = false;
mPreventSaveRespawnInfo = true;
sInstance = this;
currentSpawnInfo.reset();
}
int dScGame_c::create() {
sFPhaseBase::sFPhaseState phaseResult = mPhases.step();
if (phaseResult != sFPhaseBase::PHASE_ALL_DONE) {
return NOT_READY;
}
SomeGfxThing::setDrawCallback(someGfxThingCallback);
return SUCCEEDED;
}
int dScGame_c::doDelete() {
MinigameManager::destroy();
mRelCtrl.do_unlink();
mLayoutCtrl.release();
return SUCCEEDED;
}
int dScGame_c::execute() {
mFader.calc();
mStateMgr.executeState();
MinigameManager::execute();
return SUCCEEDED;
}
int dScGame_c::draw() {
mScreen1.addToDrawList();
mScreen2.addToDrawList();
return SUCCEEDED;
}
void dScGame_c::deleteReady() {
SomeGfxThing::setDrawCallback(nullptr);
}
sFPhaseBase::sFPhaseState dScGame_c::cb1() {
mFader.create();
mFader.setFrames(15, 15);
mFader.setTypes(1, 1);
mFader.initForLyt();
mRelCtrl.do_link();
mLayoutCtrl.load(nullptr);
return sFPhaseBase::PHASE_NEXT;
}
sFPhaseBase::sFPhaseState dScGame_c::cb2() {
if (!mRelCtrl.do_link()) {
return sFPhaseBase::PHASE_RETRY;
}
if (OarcManager::sInstance->ensureAllEntriesLoaded()) {
return sFPhaseBase::PHASE_RETRY;
}
if (LayoutArcManager::sInstance->ensureAllEntriesLoaded()) {
return sFPhaseBase::PHASE_RETRY;
}
MinigameManager::create();
setReloadTrigger(fProfile::STAGE_MANAGER);
mStateMgr.changeState(StateID_Stanby);
return sFPhaseBase::PHASE_NEXT;
}
sFPhaseBase::sFPhaseState dScGame_c::cb3() {
if (checkChildProcessCreateState()) {
return sFPhaseBase::PHASE_RETRY;
}
return sFPhaseBase::PHASE_NEXT;
}
void dScGame_c::initializeState_Stanby() {
setProcControlFlag(ROOT_DISABLE_EXECUTE | ROOT_DISABLE_DRAW);
if (mReloadTrigger == fProfile::STAGE_MANAGER) {
copySpawnNextToCurrent();
}
dBase_c *base = dBase_c::createBase(mReloadTrigger, this, 0, OTHER);
mStageMgrRef.link(base);
mReloadTrigger = fProfile::PROFILE_MAX;
}
void dScGame_c::executeState_Stanby() {
mStateMgr.changeState(StateID_Action);
}
void dScGame_c::finalizeState_Stanby() {}
void dScGame_c::initializeState_Action() {
mFader.fadeIn();
}
void dScGame_c::executeState_Action() {
if (mFader.isStatus(mFaderBase_c::FADED_OUT)) {
if (attemptDelete()) {
mStateMgr.changeState(StateID_Stanby);
}
} else if (mReloadTrigger != fProfile::PROFILE_MAX) {
mFader.fadeOut();
fn_80362150(ENEMY_SOUND_MGR, mFader.getFadeOutFrame());
}
}
void dScGame_c::finalizeState_Action() {}
void dScGame_c::somethingWithScreen() {}
void dScGame_c::setRespawnInfo(const mVec3_c &linkPos, const mAng3_c &linkRot, bool unk) {
bool isInThunderDragonTrial = MinigameManager::isInMinigameState(MinigameManager::TRIAL_TIME_ATTACK) ||
MinigameManager::isInMinigameState(MinigameManager::BOSS_RUSH) ?
true :
false;
bool isInHordeFight = isCurrentStage("F403") && !StoryflagManager::sInstance->getFlag(134);
s32 areaType = dStageMgr_c::GetInstance()->getAreaType();
if (mPreventSaveRespawnInfo != true && !isInThunderDragonTrial && !isInHordeFight &&
(areaType != 2 && !isCurrentStage("B100_1") && !sPreventClearingSomeFlag &&
(areaType != 1 || (mLastAreaType != 1 && mLastAreaType != 2)))) {
FileManager::sInstance->setT3Info(linkPos, linkRot);
if (mLastAreaType != 5 && unk) {
StoryflagManager::sInstance->unsetFlag(752);
}
}
if (!isInThunderDragonTrial && isCurrentStage("B400") && mLastAreaType != 2) {
FileManager::sInstance->copyCurrentToFileB();
}
sPreventClearingSomeFlag = 0;
mPreventSaveRespawnInfo = false;
mLastAreaType = areaType;
}
const LinkReloadInfo &dScGame_c::getLinkReloadInfo() const {
return mReloadInfo;
}
bool dScGame_c::attemptDelete() {
if (mStageMgrRef.p_owner == nullptr) {
return true;
} else {
if (!mStageMgrRef.p_owner->delete_request) {
mStageMgrRef.p_owner->deleteRequest();
}
return false;
}
}
bool dScGame_c::setReloadTrigger(fProfile::PROFILE_NAME_e trigger) {
if (mReloadTrigger != fProfile::PROFILE_MAX) {
return false;
}
mReloadTrigger = trigger;
return true;
}
void dScGame_c::setSpawnInfo(u8 roomid, const mVec3_c &pos, mAng rot) {
mSpawnInfo.setSpawnData(currentSpawnInfo.stageName, roomid, sCurrentLayer, 0, pos, rot);
}
const SpawnInfoExt &dScGame_c::getSpawnInfo() const {
return mSpawnInfo;
}
void dScGame_c::clearSpawnInfo() {
mSpawnInfo.setSpawnData("", 0, 0, 0, mVec3_c::Zero, 0);
}
extern "C" void processEventFlags();
void dScGame_c::triggerExit(s32 room, u8 exitIndex, s32 forcedNight, s32 forcedTrial) {
processEventFlags();
// TODO
}
void SpawnInfoExt::setSpawnData(
const char *i_stageName, u8 i_roomid, u8 i_layer, u8 i_entrance, const mVec3_c &pos, mAng rot
) {
setData(
i_stageName, i_roomid, i_layer, i_entrance, dScGame_c::currentSpawnInfo.night,
dScGame_c::currentSpawnInfo.trial, 0, 15, -1
);
mType0Pos = pos;
mType0RotY = rot;
}
void LinkReloadInfo::set(u8 roomid, const mVec3_c &pos, mAng rot, u32 flags) {
mRoomId = roomid;
mPosition = pos;
mRotY = rot;
mUnkFlags = flags;
mType0CsFlag = 1;
}
bool dScGame_c::isCurrentStage(const char *stage) {
return dScGame_c::currentSpawnInfo.stageName == stage;
}
extern "C" void fn_801BB9C0();
extern "C" void *lbl_80575688;
extern "C" void fn_801909A0(void *);
extern "C" void maybeResetSkykeepPuzzle(bool);
void dScGame_c::copySpawnNextToCurrent() {
if (sDoSomethingWithFileAOnTransition == true) {
fn_801BB9C0();
sDoSomethingWithFileAOnTransition = false;
}
if (std::strncmp(currentSpawnInfo.stageName, nextSpawnInfo.stageName, 2)) {
fn_801909A0(lbl_80575688);
}
currentSpawnInfo = nextSpawnInfo;
sCurrentLayer = currentSpawnInfo.layer;
maybeResetSkykeepPuzzle(false);
}
void dScGame_c::actuallyTriggerEntrance(
const char *stageName, u8 roomid, u8 layer, u8 entrance, int forcedNight, int forcedTrial, u8 transitionType,
u16 transitionFadeFrames, s8 field0x28
) {
s32 trial, night;
if (forcedTrial == 2) {
trial = currentSpawnInfo.trial;
} else {
trial = forcedTrial;
}
if (forcedNight == 2) {
night = currentSpawnInfo.night;
} else {
night = forcedNight;
}
nextSpawnInfo.setData(
stageName, roomid, layer, entrance, night, trial, transitionType, transitionFadeFrames, field0x28
);
if (dScGame_c::GetInstance() != nullptr) {
dScGame_c::GetInstance()->setFadeInType(transitionType);
dScGame_c::GetInstance()->setFadeOutType(transitionType);
dScGame_c::GetInstance()->setFaderFrames(transitionFadeFrames);
dScGame_c::GetInstance()->resetLinkState();
dScGame_c::GetInstance()->setBeedleShopState(0);
}
}
void SpawnInfo::setData(
const char *i_stageName, u8 i_roomid, u8 i_layer, u8 i_entrance, s32 i_night, s32 i_trial, u8 i_transitionType,
u16 i_fadeFrames, s8 i_field0x28
) {
stageName = i_stageName;
room = i_roomid;
layer = i_layer;
entrance = i_entrance;
night = i_night;
trial = i_trial;
transitionType = i_transitionType;
transitionFadeFrames = i_fadeFrames;
unk = i_field0x28;
}
+218
View File
@@ -0,0 +1,218 @@
#include "d/d_sc_title.h"
#include "common.h"
#include "d/d_heap.h"
#include "d/d_sc_game.h"
#include "d/d_sys.h"
#include "f/f_base.h"
#include "f/f_profile_name.h"
#include "m/m_color.h"
#include "m/m_dvd.h"
#include "s/s_State.hpp"
#include "sized_string.h"
#include "toBeSorted/arc_managers/layout_arc_manager.h"
#include "toBeSorted/file_manager.h"
#include "toBeSorted/music_mgrs.h"
#include "toBeSorted/reload_color_fader.h"
SPECIAL_BASE_PROFILE(TITLE, dScTitle_c, fProfile::TITLE, 0, 0);
dScTitle_c *dScTitle_c::sInstance;
bool dScTitle_c::sPreventEmptyFilesTitle;
extern "C" {
u8 lbl_80575785;
u8 lbl_80575786;
u8 lbl_80575787;
}
static u16 sModulesToLoad[] = {
// ??? not sure what these correspond to
0x229, 0x2B0, 0x2B6, 0x2AF, 0x2B7,
};
static const char *sLayoutArcsToLoad[] = {
"Title2D",
};
STATE_VIRTUAL_DEFINE(dScTitle_c, Stanby);
STATE_VIRTUAL_DEFINE(dScTitle_c, Action);
extern "C" void *lbl_80575688;
extern "C" void fn_801907F0(void *);
extern "C" void *lbl_805750D8;
extern "C" void fn_80052D50(void *);
dScTitle_c::dScTitle_c() {
sInstance = this;
mRelCtrl.set(sModulesToLoad, ARRAY_LENGTH(sModulesToLoad));
mLayoutCtrl.set(sLayoutArcsToLoad, ARRAY_LENGTH(sLayoutArcsToLoad));
fn_801907F0(lbl_80575688);
if (checkAllSaveFilesEmpty() == true) {
actuallyTriggerEntrance("F000", 0, 26, 55, 0, 0, 0, 15, -1);
} else {
actuallyTriggerEntrance("F000", 0, 28, 48, 0, 0, 0, 15, -1);
}
FileManager::sInstance->clearTempFileData();
FileManager::sInstance->initFile(1);
fn_80052D50(lbl_805750D8);
lbl_80575787 = 0;
field_0x2AC = 0;
}
dScTitle_c::~dScTitle_c() {
sInstance = nullptr;
}
extern "C" u32 TITLE_SCREEN_CHANGE;
extern "C" void fn_80059450();
extern "C" void fn_80058C90(s32);
extern "C" void fn_80015E40();
extern "C" const char *getUsedLanguageString();
static const char *const sFileSelect = "FileSelect";
static const char *const sSkb = "SoftwareKeyboard";
int dScTitle_c::create() {
int ret = dScGame_c::create();
if (ret == SUCCEEDED && ReloadColorFader::GetInstance()->field_0x0C == 1) {
if (field_0x2AC == 0) {
ReloadColorFader::GetInstance()->fn_80067EF0(0);
if (checkAllSaveFilesEmpty() != true) {
TITLE_SCREEN_CHANGE = 0;
}
field_0x2AC = 1;
ret = NOT_READY;
} else {
ReloadColorFader::GetInstance()->fn_80067EF0(1);
}
}
if (ret == SUCCEEDED) {
dSys::setFrameRate(2);
dSys::setClearColor(mColor(0x00000000));
fn_80059450();
fn_80058C90(0);
fn_80015E40();
field_0x2AD = 0;
LayoutArcManager::sInstance->loadLayoutArcFromDisk(sFileSelect, nullptr);
LayoutArcManager::sInstance->loadLayoutArcFromDisk(sSkb, nullptr);
mDvd_toMainRam_normal_c::create2(&mpSkbArc, "/SKB/sofkeybd.arc", 0, dHeap::work2Heap.heap);
SizedString<128> fntPath;
fntPath.sprintf("/US/Font/%s/%s", getUsedLanguageString(), "normal_02.brfnt");
mDvd_toMainRam_normal_c::create2(&mpSkbFont, fntPath, 0, dHeap::work2Heap.heap);
fn_8035E310(BGM_MGR);
}
return ret;
}
int dScTitle_c::execute() {
mFader.calc();
mStateMgr.executeState();
return SUCCEEDED;
}
extern "C" void fn_80015E80();
int dScTitle_c::doDelete() {
// TODO return codes
int result;
result = LayoutArcManager::sInstance->ensureLoaded2(sFileSelect);
if (result != -2) {
if (result != 0) {
return NOT_READY;
}
LayoutArcManager::sInstance->decrement(sFileSelect);
}
result = LayoutArcManager::sInstance->ensureLoaded2(sSkb);
if (result != -2) {
if (result != 0) {
return NOT_READY;
}
LayoutArcManager::sInstance->decrement(sSkb);
}
// TODO here's the other half of the ::destroy fakematch...
if (mpSkbArc->mStatus != 0) {
mDvd_command_c::destroy((mDvd_command_c **)&mpSkbArc);
} else {
return NOT_READY;
}
if (mpSkbFont->mStatus != 0) {
mDvd_command_c::destroy((mDvd_command_c **)&mpSkbFont);
} else {
return NOT_READY;
}
dScGame_c::doDelete();
fn_80015E80();
return SUCCEEDED;
}
int dScTitle_c::draw() {
dScGame_c::draw();
return SUCCEEDED;
}
extern "C" u32 TITLE_SCREEN_CHANGE;
void dScTitle_c::loadTitleScreen(u32 params) {
FileManager::sInstance->updateEmptyFiles();
if (checkAllSaveFilesEmpty() == true && params != 1) {
params = 2;
}
TITLE_SCREEN_CHANGE = params;
setRootActor(fProfile::TITLE, params, 0, 0);
if (checkAllSaveFilesEmpty() == true) {
actuallyTriggerEntrance("F000", 0, 26, 55, 0, 0, 0, 15, -1);
} else {
actuallyTriggerEntrance("F000", 0, 28, 48, 0, 0, 0, 15, -1);
}
fn_80362150(ENEMY_SOUND_MGR, 30);
}
void dScTitle_c::setSomethingSkbRelated() {
if (sInstance != nullptr) {
sInstance->field_0x2AD = 1;
}
}
void dScTitle_c::initializeState_Stanby() {
dScGame_c::initializeState_Stanby();
}
void dScTitle_c::executeState_Stanby() {
dScGame_c::executeState_Stanby();
}
void dScTitle_c::finalizeState_Stanby() {
dScGame_c::finalizeState_Stanby();
}
void dScTitle_c::initializeState_Action() {
dScGame_c::initializeState_Action();
}
void dScTitle_c::executeState_Action() {
dScGame_c::executeState_Action();
}
void dScTitle_c::finalizeState_Action() {
dScGame_c::finalizeState_Action();
}
bool dScTitle_c::checkAllSaveFilesEmpty() {
FileManager *mgr = FileManager::sInstance;
bool allEmpty = true;
for (int i = 0; i < 3; i++) {
if (!mgr->isFileEmpty(i)) {
allEmpty = false;
break;
}
}
if (!sPreventEmptyFilesTitle && allEmpty == true) {
return true;
}
return false;
}
+15 -18
View File
@@ -1,11 +1,13 @@
// clang-format off
#include "common.h"
#include "d/d_sc_game.h"
#include "d/d_sc_title.h"
#include "d/lyt/d_lyt_area_caption.h"
#include "d/lyt/d_lyt_meter_configuration.h"
#include "d/lyt/d_window.h"
#include "d/lyt/meter/d_lyt_meter.h"
#include "toBeSorted/stage_manager.h"
#include "toBeSorted/arc_managers/layout_arc_manager.h"
#include "toBeSorted/scgame.h"
// clang-format on
static dLytMeterConfiguration_c sConf;
@@ -277,7 +279,6 @@ void floats2() {
dLytMeter_c::dLytMeter_c() {}
#pragma dont_inline reset
extern "C" void *GLOBAL_TITLE_RELOADER;
extern "C" void fn_800D97E0(int i);
extern "C" void fn_800D9800(int i);
extern "C" void fn_801B2D10(void *);
@@ -322,10 +323,6 @@ static const d2d::LytBrlanMapping meterBrlanMap[] = {
{"basicPosition_00_rupyPosition.brlan", "G_rupyPosi_00"},
};
extern "C" void *STAGE_MANAGER;
extern "C" bool StageManager__isAreaTypeSky(void *stageMgr);
extern "C" bool StageManager__isAreaTypeDungeon(void *stageMgr);
bool dLytMeter_c::build(d2d::ResAccIf_c *resAcc) {
mLyt.setResAcc(resAcc);
mLyt.build("basicPosition_00.brlyt", nullptr);
@@ -341,7 +338,7 @@ bool dLytMeter_c::build(d2d::ResAccIf_c *resAcc) {
// out G_shield_00
mShield.setContainerGroup(&mAnmGroups[28]);
if (GLOBAL_TITLE_RELOADER == nullptr) {
if (dScTitle_c::sInstance == nullptr) {
mp1Button = new dLytMeter1Button_c();
mp2Button = new dLytMeter2Button_c();
} else {
@@ -406,7 +403,7 @@ bool dLytMeter_c::build(d2d::ResAccIf_c *resAcc) {
mpTimerPart2 = nullptr;
}
if (GLOBAL_TITLE_RELOADER == nullptr && StageManager__isAreaTypeSky(STAGE_MANAGER)) {
if (dScTitle_c::sInstance == nullptr && dStageMgr_c::GetInstance()->isAreaTypeSky()) {
mpSkyGauge = new dLytSkyGauge_c();
mpSkyGauge->build(resAcc);
@@ -417,38 +414,38 @@ bool dLytMeter_c::build(d2d::ResAccIf_c *resAcc) {
mpBirdGauge = nullptr;
}
if (ScGame::currentSpawnInfo.stageName == "F401") {
if (dScGame_c::currentSpawnInfo.stageName == "F401") {
mpBossGauge = new dLytBossGauge_c();
mpBossGauge->build();
} else {
mpBossGauge = nullptr;
}
if (ScGame::isCurrentStage("F200") || ScGame::isCurrentStage("F210") || ScGame::isCurrentStage("F211")) {
if (dScGame_c::isCurrentStage("F200") || dScGame_c::isCurrentStage("F210") || dScGame_c::isCurrentStage("F211")) {
mpKakeraKey = new dLytMeterKakeraKey_c();
mpKakeraKey->build(resAcc);
} else {
mpKakeraKey = nullptr;
}
if (!StageManager__isAreaTypeDungeon(STAGE_MANAGER) || ScGame::currentSpawnInfo.stageName == "F100_1" ||
ScGame::currentSpawnInfo.stageName == "F103_1") {
if (!dStageMgr_c::GetInstance()->isAreaTypeDungeon() || dScGame_c::currentSpawnInfo.stageName == "F100_1" ||
dScGame_c::currentSpawnInfo.stageName == "F103_1") {
mpBossKey = nullptr;
} else {
mpBossKey = new dLytMeterBossKey_c();
mpBossKey->build(resAcc);
}
if (StageManager__isAreaTypeDungeon(STAGE_MANAGER) &&
(!(ScGame::currentSpawnInfo.stageName == "F100_1") && !(ScGame::currentSpawnInfo.stageName == "F103_1")) ||
ScGame::currentSpawnInfo.stageName == "F302" || ScGame::currentSpawnInfo.stageName == "F302") {
if (dStageMgr_c::GetInstance()->isAreaTypeDungeon() &&
(!(dScGame_c::currentSpawnInfo.stageName == "F100_1") && !(dScGame_c::currentSpawnInfo.stageName == "F103_1")) ||
dScGame_c::currentSpawnInfo.stageName == "F302" || dScGame_c::currentSpawnInfo.stageName == "F302") {
mpSmallKey = new dLytMeterSmallKey_c();
mpSmallKey->build(resAcc);
} else {
mpSmallKey = nullptr;
}
if (GLOBAL_TITLE_RELOADER != nullptr) {
if (dScTitle_c::sInstance != nullptr) {
mpDrink = nullptr;
} else {
mpDrink = new dLytMeterDrink_c();
@@ -597,7 +594,7 @@ dLytMeterContainer_c::dLytMeterContainer_c() {
bool dLytMeterContainer_c::build() {
void *data = LayoutArcManager::sInstance->getLoadedData("DoButton");
mResAcc.attach(data, "");
if (GLOBAL_TITLE_RELOADER != nullptr) {
if (dScTitle_c::sInstance != nullptr) {
mpEventSkip = nullptr;
} else {
mpEventSkip = new dLytMeterEventSkip_c();
@@ -609,7 +606,7 @@ bool dLytMeterContainer_c::build() {
dLytAreaCaption_c::create();
mMeter.build(&mResAcc);
if (GLOBAL_TITLE_RELOADER != nullptr) {
if (dScTitle_c::sInstance != nullptr) {
mpDoButton = nullptr;
mpDoButtonRelated = nullptr;
mpBirdRelated = nullptr;
+3 -3
View File
@@ -1,9 +1,9 @@
#include "d/t/d_t_switch.h"
#include "d/d_sc_game.h"
#include "d/flag/sceneflag_manager.h"
#include "s/s_Math.h"
#include "toBeSorted/event.h"
#include "toBeSorted/scgame.h"
SPECIAL_ACTOR_PROFILE(SW_TAG, dTgSw_c, fProfile::SW_TAG, 0x24, 0, 0);
@@ -35,7 +35,7 @@ int dTgSw_c::create() {
mTrigSceneFlagIdEnd += (params >> 0x1C);
}
if (ScGame::isCurrentStage("D201")) {
if (dScGame_c::isCurrentStage("D201")) {
if (roomid == 4) {
if (!SceneflagManager::sInstance->checkBoolFlag(roomid, 0x2F)) {
SceneflagManager::sInstance->unsetFlag(roomid, mSetSceneFlagId);
@@ -107,7 +107,7 @@ bool dTgSw_c::isPuzzleSolved() {
}
bool dTgSw_c::isLmfBossKeyPuzzle() {
return ScGame::isCurrentStage("D300_1") && roomid == 8 && mSetSceneFlagId == 0x1C;
return dScGame_c::isCurrentStage("D300_1") && roomid == 8 && mSetSceneFlagId == 0x1C;
}
void dTgSw_c::initializeState_OnWait() {
@@ -28,8 +28,8 @@ int LayoutArcManager::ensureLoaded1(const char *object) {
return mArcTable.ensureLoadedMaybe2(object);
}
void LayoutArcManager::ensureLoaded2(const char *object) {
mArcTable.ensureLoadedMaybe(object);
int LayoutArcManager::ensureLoaded2(const char *object) {
return mArcTable.ensureLoadedMaybe(object);
}
bool LayoutArcManager::hasEntry(const char *object) {
+2 -2
View File
@@ -447,7 +447,7 @@ extern "C" void fn_800C01F0(); // todo flag managers
}
}
}
/* 80011370 */ bool FileManager::isFileEmpty(int fileNum) {}
/* 80011370 */ bool FileManager::isFileEmpty(u8 fileNum) {}
/* 80011390 */ bool FileManager::isFileDirty(int fileNum) {}
/* 800113B0 */ u8 FileManager::get_0xA84C() {}
/* 800113C0 */ bool FileManager::checkRegionCode() {}
@@ -464,5 +464,5 @@ bool FileManager::isFileInactive() const {
return false;
}
/* 80011500 */ void FileManager::setPlayerInfoFileA() {}
/* 800115E0 */ void FileManager::setT3Info(mVec3_c *pos, mAng3_c *rot) {}
/* 800115E0 */ void FileManager::setT3Info(const mVec3_c &pos, const mAng3_c &rot) {}
/* 800116C0 */ void FileManager::getRegionVersion(char *out) {}
-5
View File
@@ -1,5 +0,0 @@
#include "toBeSorted/scgame.h"
SpawnInfo ScGame::currentSpawnInfo = {};
SpawnInfo ScGame::nextSpawnInfo = {};
ScGame* ScGame::sInstance = nullptr;
+2 -2
View File
@@ -1,8 +1,8 @@
#include "toBeSorted/time_area_mgr.h"
#include "d/d_heap.h"
#include "d/d_sc_game.h"
#include "nw4r/g3d/g3d_obj.h"
#include "toBeSorted/scgame.h"
dTimeAreaMgr_c::dTimeAreaMgr_c() {
sInstance = this;
@@ -17,7 +17,7 @@ bool dTimeAreaMgr_c::init() {
mProcA.create(&mAllocator);
mProcB.create(&mAllocator);
mAllocator.adjustFrmHeap();
mIsInLanayruMiningFacility = ScGame::isCurrentStage("D300") || ScGame::isCurrentStage("D300_1");
mIsInLanayruMiningFacility = dScGame_c::isCurrentStage("D300") || dScGame_c::isCurrentStage("D300_1");
return true;
}