summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--config/SOUE01/splits.txt4
-rw-r--r--config/SOUE01/symbols.txt769
-rw-r--r--configure.py2
-rw-r--r--include/d/a/d_a_item.h9
-rw-r--r--include/d/a/d_a_itembase.h4
-rw-r--r--include/d/d_cs_game.h5
-rw-r--r--include/d/d_message.h16
-rw-r--r--include/d/flag/storyflag_map.h14
-rw-r--r--include/d/lyt/d_lyt_control_game.h73
-rw-r--r--include/d/lyt/d_lyt_draw_mark.h48
-rw-r--r--include/d/lyt/d_lyt_help.h20
-rw-r--r--include/d/lyt/d_lyt_map.h54
-rw-r--r--include/d/lyt/d_lyt_map_global.h10
-rw-r--r--include/d/lyt/d_lyt_pause.h6
-rw-r--r--include/d/lyt/meter/d_lyt_meter.h25
-rw-r--r--include/d/snd/d_snd_source_mgr.h2
-rw-r--r--include/toBeSorted/d_beacon.h2
-rw-r--r--include/toBeSorted/event_manager.h1
-rw-r--r--include/toBeSorted/raii_ptr.h7
-rw-r--r--src/d/d_message.cpp21
-rw-r--r--src/d/lyt/d_lyt_control_game.cpp696
-rw-r--r--src/d/lyt/d_lyt_help.cpp12
-rw-r--r--src/d/lyt/d_lyt_map_markers.cpp2
-rw-r--r--src/d/lyt/d_lyt_pause.cpp4
-rw-r--r--src/d/lyt/meter/d_lyt_meter.cpp2
-rw-r--r--src/d/lyt/meter/d_lyt_meter_cross_btn.cpp5
-rw-r--r--src/d/lyt/msg_window/d_lyt_msg_window.cpp2
27 files changed, 1416 insertions, 399 deletions
diff --git a/config/SOUE01/splits.txt b/config/SOUE01/splits.txt
index 92bd8260..b655c968 100644
--- a/config/SOUE01/splits.txt
+++ b/config/SOUE01/splits.txt
@@ -1712,8 +1712,10 @@ d/lyt/d_lyt_control_game.cpp:
.text start:0x802CC7B0 end:0x802D16A8 align:16
.ctors start:0x804DB8A0 end:0x804DB8A4
.data start:0x805403F8 end:0x80540C88
+ .sdata start:0x80573EF0 end:0x80573F28
.sbss start:0x80575A00 end:0x80575A18
- .bss start:0x805B7DD0 end:0x805B8040
+ .sdata2 start:0x8057CA68 end:0x8057CAA0
+ .bss start:0x805B7DD0 end:0x805B8030
d/lyt/d_lyt_control_title.cpp:
.text start:0x802D16B0 end:0x802D17BC align:16
diff --git a/config/SOUE01/symbols.txt b/config/SOUE01/symbols.txt
index 497938d6..587eb1c6 100644
--- a/config/SOUE01/symbols.txt
+++ b/config/SOUE01/symbols.txt
@@ -3565,7 +3565,7 @@ copyQueuedEventToCurrentAndHandleSkipEvent = .text:0x8009EB30; // type:function
fn_8009EEA0 = .text:0x8009EEA0; // type:function size:0x53C
alsoSetAsCurrentEvent__12EventManagerFP9dAcBase_cP5EventPv = .text:0x8009F3E0; // type:function size:0x470
fn_8009F850 = .text:0x8009F850; // type:function size:0x134
-fn_8009F990 = .text:0x8009F990; // type:function size:0x80
+fn_8009F990__12EventManagerFv = .text:0x8009F990; // type:function size:0x80
fn_8009FA10 = .text:0x8009FA10; // type:function size:0x8
attachSkipEvent = .text:0x8009FA20; // type:function size:0x1A0
setAsEvent = .text:0x8009FBC0; // type:function size:0x120
@@ -3788,12 +3788,12 @@ remove__Q23d2d9AnmGroupsFv = .text:0x800ACA30; // type:function size:0x64
draw__Q23d2d9LytBase_cFv = .text:0x800ACAA0; // type:function size:0x18 scope:weak
fn_800ACAC0 = .text:0x800ACAC0; // type:function size:0x5C
fn_800ACB20 = .text:0x800ACB20; // type:function size:0x40
-fn_800ACB60 = .text:0x800ACB60; // type:function size:0x208
-fn_800ACD70 = .text:0x800ACD70; // type:function size:0x10
-fn_800ACD80 = .text:0x800ACD80; // type:function size:0x3C
-fn_800ACDC0 = .text:0x800ACDC0; // type:function size:0xBC
-fn_800ACE80 = .text:0x800ACE80; // type:function size:0x10
-fn_800ACE90 = .text:0x800ACE90; // type:function size:0x28
+build__14dLytDrawMark_cFi = .text:0x800ACB60; // type:function size:0x208
+changeState__83sStateMgr_c<14dLytDrawMark_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>FRC12sStateIDIf_c = .text:0x800ACD70; // type:function size:0x10
+remove__14dLytDrawMark_cFv = .text:0x800ACD80; // type:function size:0x3C
+execute__14dLytDrawMark_cFv = .text:0x800ACDC0; // type:function size:0xBC
+executeState__83sStateMgr_c<14dLytDrawMark_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x800ACE80; // type:function size:0x10
+draw__14dLytDrawMark_cFv = .text:0x800ACE90; // type:function size:0x28
fn_800ACEC0 = .text:0x800ACEC0; // type:function size:0x4
fn_800ACED0 = .text:0x800ACED0; // type:function size:0x4
fn_800ACEE0 = .text:0x800ACEE0; // type:function size:0x4
@@ -7059,7 +7059,7 @@ convertScreenPosToDpdPos__15SelectBtnHelperCFP7mVec2_cP7mVec2_c = .text:0x8011E0
fn_8011E110__15SelectBtnHelperCF7mVec2_c = .text:0x8011E110; // type:function size:0x38
initializeState_Wait__29dLytMsgWindowSelectBtnParts_cFv = .text:0x8011E150; // type:function size:0x4
executeState_Wait__29dLytMsgWindowSelectBtnParts_cFv = .text:0x8011E160; // type:function size:0xA4
-changeState__98sStateMgr_c<29dLytMsgWindowSelectBtnParts_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>FRC12sStateIDIf_c = .text:0x8011E210; // type:function size:0x10
+changeState__98sStateMgr_c<29dLytMsgWindowSelectBtnParts_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>FRC12sStateIDIf_c = .text:0x8011E210; // type:function size:0x10 scope:weak
finalizeState_Wait__29dLytMsgWindowSelectBtnParts_cFv = .text:0x8011E220; // type:function size:0x4
initializeState_On__29dLytMsgWindowSelectBtnParts_cFv = .text:0x8011E230; // type:function size:0x4
executeState_On__29dLytMsgWindowSelectBtnParts_cFv = .text:0x8011E240; // type:function size:0xF4
@@ -7072,9 +7072,9 @@ executeState_Off__29dLytMsgWindowSelectBtnParts_cFv = .text:0x8011E430; // type:
finalizeState_Off__29dLytMsgWindowSelectBtnParts_cFv = .text:0x8011E500; // type:function size:0x4
init__29dLytMsgWindowSelectBtnParts_cFv = .text:0x8011E510; // type:function size:0x54
execute__29dLytMsgWindowSelectBtnParts_cFv = .text:0x8011E570; // type:function size:0x4C
-executeState__98sStateMgr_c<29dLytMsgWindowSelectBtnParts_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x8011E5C0; // type:function size:0x10
+executeState__98sStateMgr_c<29dLytMsgWindowSelectBtnParts_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x8011E5C0; // type:function size:0x10 scope:weak
requestIn__24dLytMsgWindowSelectBtn_cFlb = .text:0x8011E5D0; // type:function size:0x138
-changeState__93sStateMgr_c<24dLytMsgWindowSelectBtn_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>FRC12sStateIDIf_c = .text:0x8011E710; // type:function size:0x10
+changeState__93sStateMgr_c<24dLytMsgWindowSelectBtn_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>FRC12sStateIDIf_c = .text:0x8011E710; // type:function size:0x10 scope:weak
initializeState_Wait__24dLytMsgWindowSelectBtn_cFv = .text:0x8011E720; // type:function size:0x2C
executeState_Wait__24dLytMsgWindowSelectBtn_cFv = .text:0x8011E750; // type:function size:0x4
finalizeState_Wait__24dLytMsgWindowSelectBtn_cFv = .text:0x8011E760; // type:function size:0x4
@@ -7099,23 +7099,23 @@ finalizeState_Out__24dLytMsgWindowSelectBtn_cFv = .text:0x8011F520; // type:func
build__24dLytMsgWindowSelectBtn_cFPQ23d2d10ResAccIf_c = .text:0x8011F530; // type:function size:0x3E4
remove__24dLytMsgWindowSelectBtn_cFv = .text:0x8011F920; // type:function size:0x84
execute__24dLytMsgWindowSelectBtn_cFv = .text:0x8011F9B0; // type:function size:0x444
-executeState__93sStateMgr_c<24dLytMsgWindowSelectBtn_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x8011FE00; // type:function size:0x10
+executeState__93sStateMgr_c<24dLytMsgWindowSelectBtn_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x8011FE00; // type:function size:0x10 scope:weak
draw__24dLytMsgWindowSelectBtn_cFv = .text:0x8011FE10; // type:function size:0x34
getSelectBtnMode__24dLytMsgWindowSelectBtn_cFv = .text:0x8011FE50; // type:function size:0x24
-getName__24dLytMsgWindowSelectBtn_cCFv = .text:0x8011FE80; // type:function size:0x8
-getLyt__24dLytMsgWindowSelectBtn_cFv = .text:0x8011FE90; // type:function size:0x8
-getPane__24dLytMsgWindowSelectBtn_cFv = .text:0x8011FEA0; // type:function size:0x8
-finalizeState__44sFStateID_c<29dLytMsgWindowSelectBtnParts_c>CFR29dLytMsgWindowSelectBtnParts_c = .text:0x8011FEB0; // type:function size:0x30
-executeState__44sFStateID_c<29dLytMsgWindowSelectBtnParts_c>CFR29dLytMsgWindowSelectBtnParts_c = .text:0x8011FEE0; // type:function size:0x30
-initializeState__44sFStateID_c<29dLytMsgWindowSelectBtnParts_c>CFR29dLytMsgWindowSelectBtnParts_c = .text:0x8011FF10; // type:function size:0x30
-finalizeState__39sFStateID_c<24dLytMsgWindowSelectBtn_c>CFR24dLytMsgWindowSelectBtn_c = .text:0x8011FF40; // type:function size:0x30
-executeState__39sFStateID_c<24dLytMsgWindowSelectBtn_c>CFR24dLytMsgWindowSelectBtn_c = .text:0x8011FF70; // type:function size:0x30
-initializeState__39sFStateID_c<24dLytMsgWindowSelectBtn_c>CFR24dLytMsgWindowSelectBtn_c = .text:0x8011FFA0; // type:function size:0x30
-__sinit_\d_lyt_msg_window_select_btn_cpp = .text:0x8011FFD0; // type:function size:0x868
-__dt__44sFStateID_c<29dLytMsgWindowSelectBtnParts_c>Fv = .text:0x80120840; // type:function size:0x58
-__dt__39sFStateID_c<24dLytMsgWindowSelectBtn_c>Fv = .text:0x801208A0; // type:function size:0x58
-isSameName__39sFStateID_c<24dLytMsgWindowSelectBtn_c>CFPCc = .text:0x80120900; // type:function size:0x88
-isSameName__44sFStateID_c<29dLytMsgWindowSelectBtnParts_c>CFPCc = .text:0x80120990; // type:function size:0x88
+getName__24dLytMsgWindowSelectBtn_cCFv = .text:0x8011FE80; // type:function size:0x8 scope:weak
+getLyt__24dLytMsgWindowSelectBtn_cFv = .text:0x8011FE90; // type:function size:0x8 scope:weak
+getPane__24dLytMsgWindowSelectBtn_cFv = .text:0x8011FEA0; // type:function size:0x8 scope:weak
+finalizeState__44sFStateID_c<29dLytMsgWindowSelectBtnParts_c>CFR29dLytMsgWindowSelectBtnParts_c = .text:0x8011FEB0; // type:function size:0x30 scope:weak
+executeState__44sFStateID_c<29dLytMsgWindowSelectBtnParts_c>CFR29dLytMsgWindowSelectBtnParts_c = .text:0x8011FEE0; // type:function size:0x30 scope:weak
+initializeState__44sFStateID_c<29dLytMsgWindowSelectBtnParts_c>CFR29dLytMsgWindowSelectBtnParts_c = .text:0x8011FF10; // type:function size:0x30 scope:weak
+finalizeState__39sFStateID_c<24dLytMsgWindowSelectBtn_c>CFR24dLytMsgWindowSelectBtn_c = .text:0x8011FF40; // type:function size:0x30 scope:weak
+executeState__39sFStateID_c<24dLytMsgWindowSelectBtn_c>CFR24dLytMsgWindowSelectBtn_c = .text:0x8011FF70; // type:function size:0x30 scope:weak
+initializeState__39sFStateID_c<24dLytMsgWindowSelectBtn_c>CFR24dLytMsgWindowSelectBtn_c = .text:0x8011FFA0; // type:function size:0x30 scope:weak
+__sinit_\d_lyt_msg_window_select_btn_cpp = .text:0x8011FFD0; // type:function size:0x868 scope:local
+__dt__44sFStateID_c<29dLytMsgWindowSelectBtnParts_c>Fv = .text:0x80120840; // type:function size:0x58 scope:weak
+__dt__39sFStateID_c<24dLytMsgWindowSelectBtn_c>Fv = .text:0x801208A0; // type:function size:0x58 scope:weak
+isSameName__39sFStateID_c<24dLytMsgWindowSelectBtn_c>CFPCc = .text:0x80120900; // type:function size:0x88 scope:weak
+isSameName__44sFStateID_c<29dLytMsgWindowSelectBtnParts_c>CFPCc = .text:0x80120990; // type:function size:0x88 scope:weak
build__20dLytMsgWindowSubtypeFPQ23d2d10ResAccIf_cPQ23d2d10ResAccIf_cP15dTagProcessor_c = .text:0x80120A20; // type:function size:0x8
remove__20dLytMsgWindowSubtypeFv = .text:0x80120A30; // type:function size:0x8
execute__20dLytMsgWindowSubtypeFv = .text:0x80120A40; // type:function size:0x8
@@ -10103,7 +10103,7 @@ fn_8018B3A0 = .text:0x8018B3A0; // type:function size:0x80
shouldDropItemForChance = .text:0x8018B420; // type:function size:0x84
getMaxBeaconCount__Fv = .text:0x8018B4B0; // type:function size:0x44
doesStageForbidBeaconPlacement__Fv = .text:0x8018B500; // type:function size:0x40
-getBeaconPositionByIndex = .text:0x8018B540; // type:function size:0x60
+getBeaconPosition__FUl = .text:0x8018B540; // type:function size:0x60
setBeaconPosition__FPC7mVec3_cUl = .text:0x8018B5A0; // type:function size:0x7C
setBeaconPositionChecked__FPC7mVec3_cUl = .text:0x8018B620; // type:function size:0x194
fn_8018B7C0 = .text:0x8018B7C0; // type:function size:0x40
@@ -16763,158 +16763,158 @@ fn_802CC270 = .text:0x802CC270; // type:function size:0x448
fn_802CC6C0 = .text:0x802CC6C0; // type:function size:0x8
CreateJStudioysObj = .text:0x802CC6D0; // type:function size:0x7C
fn_802CC750 = .text:0x802CC750; // type:function size:0x58
-fn_802CC7B0 = .text:0x802CC7B0; // type:function size:0x38
-fn_802CC7F0 = .text:0x802CC7F0; // type:function size:0x40
+__ct__21dLytControlGame_HIO_cFv = .text:0x802CC7B0; // type:function size:0x38
+__dt__21dLytControlGame_HIO_cFv = .text:0x802CC7F0; // type:function size:0x40
dLytControlGame_c_classInit__Fv = .text:0x802CC830; // type:function size:0x34
-fn_802CC870 = .text:0x802CC870; // type:function size:0x4
-fn_802CC880 = .text:0x802CC880; // type:function size:0x4
-fn_802CC890 = .text:0x802CC890; // type:function size:0x4
-fn_802CC8A0 = .text:0x802CC8A0; // type:function size:0x58
-fn_802CC900 = .text:0x802CC900; // type:function size:0x54
-changeState__86sStateMgr_c<17dLytControlGame_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>FRC12sStateIDIf_c = .text:0x802CC960; // type:function size:0x10
-fn_802CC970 = .text:0x802CC970; // type:function size:0x4
-fn_802CC980 = .text:0x802CC980; // type:function size:0x4
-fn_802CC990 = .text:0x802CC990; // type:function size:0x68
-fn_802CCA00 = .text:0x802CCA00; // type:function size:0x4
-LytControlGame__statePauseEnter = .text:0x802CCA10; // type:function size:0x74
-LytControlGame__statePauseUpdate = .text:0x802CCA90; // type:function size:0x34
-LytControlGame__statePauseLeave = .text:0x802CCAD0; // type:function size:0x4
-LytControlGame__statePauseDelResEnter = .text:0x802CCAE0; // type:function size:0x4
-LytControlGame__statePauseDelResUpdate = .text:0x802CCAF0; // type:function size:0x70
-LytControlGame__statePauseDelResLeave = .text:0x802CCB60; // type:function size:0x14
-LytControlGame__stateMapSetResEnter = .text:0x802CCB80; // type:function size:0x58
-LytControlGame__stateMapSetResUpdate = .text:0x802CCBE0; // type:function size:0x8C
-LytControlGame__stateMapSetResLeave = .text:0x802CCC70; // type:function size:0x4
-LytControlGame__stateMapSyncResEnter = .text:0x802CCC80; // type:function size:0x4
-LytControlGame__stateMapSetResUpdate2 = .text:0x802CCC90; // type:function size:0x9C
-LytControlGame__stateMapSyncResLeave = .text:0x802CCD30; // type:function size:0x4
-fn_802CCD40__17dLytControlGame_cFb = .text:0x802CCD40; // type:function size:0x10
-LytControlGame__stateMapEnter = .text:0x802CCD50; // type:function size:0x110
-LytControlGame__stateMapUpdate = .text:0x802CCE60; // type:function size:0x138
-LytControlGame__stateMapLeave = .text:0x802CCFA0; // type:function size:0x4
-LytControlGame__stateMapDelResEnter = .text:0x802CCFB0; // type:function size:0x4
-LytControlGame__stateMapDelResUpdate = .text:0x802CCFC0; // type:function size:0x158
-fn_802CD120 = .text:0x802CD120; // type:function size:0xD8
-LytControlGame__stateMapDelResLeave = .text:0x802CD200; // type:function size:0x30
+initializeState_Normal__17dLytControlGame_cFv = .text:0x802CC870; // type:function size:0x4
+executeState_Normal__17dLytControlGame_cFv = .text:0x802CC880; // type:function size:0x4
+finalizeState_Normal__17dLytControlGame_cFv = .text:0x802CC890; // type:function size:0x4
+initializeState_Pause_SetRes__17dLytControlGame_cFv = .text:0x802CC8A0; // type:function size:0x58
+executeState_Pause_SetRes__17dLytControlGame_cFv = .text:0x802CC900; // type:function size:0x54
+changeState__86sStateMgr_c<17dLytControlGame_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>FRC12sStateIDIf_c = .text:0x802CC960; // type:function size:0x10 scope:weak
+finalizeState_Pause_SetRes__17dLytControlGame_cFv = .text:0x802CC970; // type:function size:0x4
+initializeState_Pause_SyncRes__17dLytControlGame_cFv = .text:0x802CC980; // type:function size:0x4
+executeState_Pause_SyncRes__17dLytControlGame_cFv = .text:0x802CC990; // type:function size:0x68
+finalizeState_Pause_SyncRes__17dLytControlGame_cFv = .text:0x802CCA00; // type:function size:0x4
+initializeState_Pause__17dLytControlGame_cFv = .text:0x802CCA10; // type:function size:0x74
+executeState_Pause__17dLytControlGame_cFv = .text:0x802CCA90; // type:function size:0x34
+finalizeState_Pause__17dLytControlGame_cFv = .text:0x802CCAD0; // type:function size:0x4
+initializeState_Pause_DelRes__17dLytControlGame_cFv = .text:0x802CCAE0; // type:function size:0x4
+executeState_Pause_DelRes__17dLytControlGame_cFv = .text:0x802CCAF0; // type:function size:0x70
+finalizeState_Pause_DelRes__17dLytControlGame_cFv = .text:0x802CCB60; // type:function size:0x14
+initializeState_Map_SetRes__17dLytControlGame_cFv = .text:0x802CCB80; // type:function size:0x58
+executeState_Map_SetRes__17dLytControlGame_cFv = .text:0x802CCBE0; // type:function size:0x8C
+finalizeState_Map_SetRes__17dLytControlGame_cFv = .text:0x802CCC70; // type:function size:0x4
+initializeState_Map_SyncRes__17dLytControlGame_cFv = .text:0x802CCC80; // type:function size:0x4
+executeState_Map_SyncRes__17dLytControlGame_cFv = .text:0x802CCC90; // type:function size:0x9C
+finalizeState_Map_SyncRes__17dLytControlGame_cFv = .text:0x802CCD30; // type:function size:0x4
+setMapEventDone__17dLytControlGame_cFb = .text:0x802CCD40; // type:function size:0x10
+initializeState_Map__17dLytControlGame_cFv = .text:0x802CCD50; // type:function size:0x110
+executeState_Map__17dLytControlGame_cFv = .text:0x802CCE60; // type:function size:0x138
+finalizeState_Map__17dLytControlGame_cFv = .text:0x802CCFA0; // type:function size:0x4
+initializeState_Map_DelRes__17dLytControlGame_cFv = .text:0x802CCFB0; // type:function size:0x4
+executeState_Map_DelRes__17dLytControlGame_cFv = .text:0x802CCFC0; // type:function size:0x158
+__dt__9dLytMap_cFv = .text:0x802CD120; // type:function size:0xD8 scope:weak
+finalizeState_Map_DelRes__17dLytControlGame_cFv = .text:0x802CD200; // type:function size:0x30
__ct__17dLytControlGame_cFv = .text:0x802CD230; // type:function size:0x3F0
-__dt__28sFState_c<15dLytMsgWindow_c>Fv = .text:0x802CD620; // type:function size:0x58
-__dt__31sFStateFct_c<15dLytMsgWindow_c>Fv = .text:0x802CD680; // type:function size:0x6C
-__dt__84sStateMgr_c<15dLytMsgWindow_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x802CD6F0; // type:function size:0xA0
-__dt__54sFStateMgr_c<15dLytMsgWindow_c,20sStateMethodUsr_FI_c>Fv = .text:0x802CD790; // type:function size:0xA4
-__dt__15dLytMsgWindow_cFv = .text:0x802CD840; // type:function size:0x1BC
-__dt__23sFState_c<10dLytWipe_c>Fv = .text:0x802CDA00; // type:function size:0x58
-__dt__26sFStateFct_c<10dLytWipe_c>Fv = .text:0x802CDA60; // type:function size:0x6C
-__dt__79sStateMgr_c<10dLytWipe_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x802CDAD0; // type:function size:0xA0
-__dt__49sFStateMgr_c<10dLytWipe_c,20sStateMethodUsr_FI_c>Fv = .text:0x802CDB70; // type:function size:0xA4
-__ct__18dMapFootPrintEntryFv = .text:0x802CDC20; // type:function size:0x4
-__dt__18dMapFootPrintEntryFv = .text:0x802CDC30; // type:function size:0x40
-__dt__19dMapFootPrintsMgr_cFv = .text:0x802CDC70; // type:function size:0x6C
-__dt__30sFState_c<17dLytControlGame_c>Fv = .text:0x802CDCE0; // type:function size:0x58
-__dt__33sFStateFct_c<17dLytControlGame_c>Fv = .text:0x802CDD40; // type:function size:0x6C
-__dt__86sStateMgr_c<17dLytControlGame_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x802CDDB0; // type:function size:0xA0
-__dt__56sFStateMgr_c<17dLytControlGame_c,20sStateMethodUsr_FI_c>Fv = .text:0x802CDE50; // type:function size:0xA4
+__dt__28sFState_c<15dLytMsgWindow_c>Fv = .text:0x802CD620; // type:function size:0x58 scope:weak
+__dt__31sFStateFct_c<15dLytMsgWindow_c>Fv = .text:0x802CD680; // type:function size:0x6C scope:weak
+__dt__84sStateMgr_c<15dLytMsgWindow_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x802CD6F0; // type:function size:0xA0 scope:weak
+__dt__54sFStateMgr_c<15dLytMsgWindow_c,20sStateMethodUsr_FI_c>Fv = .text:0x802CD790; // type:function size:0xA4 scope:weak
+__dt__15dLytMsgWindow_cFv = .text:0x802CD840; // type:function size:0x1BC scope:weak
+__dt__23sFState_c<10dLytWipe_c>Fv = .text:0x802CDA00; // type:function size:0x58 scope:weak
+__dt__26sFStateFct_c<10dLytWipe_c>Fv = .text:0x802CDA60; // type:function size:0x6C scope:weak
+__dt__79sStateMgr_c<10dLytWipe_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x802CDAD0; // type:function size:0xA0 scope:weak
+__dt__49sFStateMgr_c<10dLytWipe_c,20sStateMethodUsr_FI_c>Fv = .text:0x802CDB70; // type:function size:0xA4 scope:weak
+__ct__18dMapFootPrintEntryFv = .text:0x802CDC20; // type:function size:0x4 scope:weak
+__dt__18dMapFootPrintEntryFv = .text:0x802CDC30; // type:function size:0x40 scope:weak
+__dt__19dMapFootPrintsMgr_cFv = .text:0x802CDC70; // type:function size:0x6C scope:weak
+__dt__30sFState_c<17dLytControlGame_c>Fv = .text:0x802CDCE0; // type:function size:0x58 scope:weak
+__dt__33sFStateFct_c<17dLytControlGame_c>Fv = .text:0x802CDD40; // type:function size:0x6C scope:weak
+__dt__86sStateMgr_c<17dLytControlGame_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x802CDDB0; // type:function size:0xA0 scope:weak
+__dt__56sFStateMgr_c<17dLytControlGame_c,20sStateMethodUsr_FI_c>Fv = .text:0x802CDE50; // type:function size:0xA4 scope:weak
__dt__17dLytControlGame_cFv = .text:0x802CDF00; // type:function size:0xFDC
-LytControlGame__init = .text:0x802CEEE0; // type:function size:0x218
-fn_802CF100 = .text:0x802CF100; // type:function size:0x22C
-fn_802CF330 = .text:0x802CF330; // type:function size:0xA4
-fn_802CF3E0 = .text:0x802CF3E0; // type:function size:0xA0
-fn_802CF480 = .text:0x802CF480; // type:function size:0x6C
-fn_802CF4F0 = .text:0x802CF4F0; // type:function size:0x58
-LytControlGame__update = .text:0x802CF550; // type:function size:0x42C
-executeState__86sStateMgr_c<17dLytControlGame_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x802CF980; // type:function size:0x10
-fn_802CF990 = .text:0x802CF990; // type:function size:0xA4
-checkStoryflag2 = .text:0x802CFA40; // type:function size:0x44
-fn_802CFA90 = .text:0x802CFA90; // type:function size:0x2E0
-fn_802CFD70 = .text:0x802CFD70; // type:function size:0x20
-updateHelpText = .text:0x802CFD90; // type:function size:0x1C
-isStateNormalOrNotInEvent__17dLytControlGame_cCFv = .text:0x802CFDB0; // type:function size:0x74
+create__17dLytControlGame_cFv = .text:0x802CEEE0; // type:function size:0x218
+doDelete__17dLytControlGame_cFv = .text:0x802CF100; // type:function size:0x22C
+__dt__53sFStateMgr_c<14dLytDrawMark_c,20sStateMethodUsr_FI_c>Fv = .text:0x802CF330; // type:function size:0xA4 scope:weak
+__dt__83sStateMgr_c<14dLytDrawMark_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x802CF3E0; // type:function size:0xA0 scope:weak
+__dt__30sFStateFct_c<14dLytDrawMark_c>Fv = .text:0x802CF480; // type:function size:0x6C scope:weak
+__dt__27sFState_c<14dLytDrawMark_c>Fv = .text:0x802CF4F0; // type:function size:0x58 scope:weak
+execute__17dLytControlGame_cFv = .text:0x802CF550; // type:function size:0x42C
+executeState__86sStateMgr_c<17dLytControlGame_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x802CF980; // type:function size:0x10 scope:weak
+draw__17dLytControlGame_cFv = .text:0x802CF990; // type:function size:0xA4
+checkStoryflag__17dLytControlGame_cCFl = .text:0x802CFA40; // type:function size:0x44
+fn_802CFA90__17dLytControlGame_cFv = .text:0x802CFA90; // type:function size:0x2E0
+hideHelp__17dLytControlGame_cFv = .text:0x802CFD70; // type:function size:0x20
+changeHelpText__17dLytControlGame_cFl = .text:0x802CFD90; // type:function size:0x1C
+isStateNotNormalOrInEvent__17dLytControlGame_cCFv = .text:0x802CFDB0; // type:function size:0x74
isInSomeMapState__17dLytControlGame_cCFv = .text:0x802CFE30; // type:function size:0xD8
isNotInStateMap__17dLytControlGame_cCFv = .text:0x802CFF10; // type:function size:0x4C
-fn_802CFF60 = .text:0x802CFF60; // type:function size:0x90
-fn_802CFFF0 = .text:0x802CFFF0; // type:function size:0x1C
-somehowRelatedToEnteringLightPillars__17dLytControlGame_cFlll = .text:0x802D0010; // type:function size:0x254
-fn_802D0270 = .text:0x802D0270; // type:function size:0x4C
-openCollectionScreenDemo__17dLytControlGame_cFv = .text:0x802D02C0; // type:function size:0xA0
-fn_802D0360 = .text:0x802D0360; // type:function size:0xA0
-fn_802D0400 = .text:0x802D0400; // type:function size:0xC
-fn_802D0410 = .text:0x802D0410; // type:function size:0xD4
+fn_802CFF60__17dLytControlGame_cCFv = .text:0x802CFF60; // type:function size:0x90
+openMap__17dLytControlGame_cFv = .text:0x802CFFF0; // type:function size:0x1C
+openMapEvent__17dLytControlGame_cFlll = .text:0x802D0010; // type:function size:0x254
+openPause__17dLytControlGame_cFv = .text:0x802D0270; // type:function size:0x4C
+openPauseDemo__17dLytControlGame_cFv = .text:0x802D02C0; // type:function size:0xA0
+openHelp__17dLytControlGame_cFl = .text:0x802D0360; // type:function size:0xA0
+releaseRes__17dLytControlGame_cFv = .text:0x802D0400; // type:function size:0xC
+decrementRes__17dLytControlGame_cFv = .text:0x802D0410; // type:function size:0xD4
fn_802D04F0__17dLytControlGame_cFv = .text:0x802D04F0; // type:function size:0x10
-fn_802D0500 = .text:0x802D0500; // type:function size:0x9C
-fn_802D05A0 = .text:0x802D05A0; // type:function size:0x148
-fn_802D06F0 = .text:0x802D06F0; // type:function size:0xC
-fn_802D0700 = .text:0x802D0700; // type:function size:0x60
-fn_802D0760 = .text:0x802D0760; // type:function size:0xC
-build__33sFStateFct_c<17dLytControlGame_c>FRC12sStateIDIf_c = .text:0x802D0770; // type:function size:0x60
-dispose__33sFStateFct_c<17dLytControlGame_c>FRP10sStateIf_c = .text:0x802D07D0; // type:function size:0xC
-build__26sFStateFct_c<10dLytHelp_c>FRC12sStateIDIf_c = .text:0x802D07E0; // type:function size:0x60
-dispose__26sFStateFct_c<10dLytHelp_c>FRP10sStateIf_c = .text:0x802D0840; // type:function size:0xC
-build__26sFStateFct_c<10dLytWipe_c>FRC12sStateIDIf_c = .text:0x802D0850; // type:function size:0x60
-dispose__26sFStateFct_c<10dLytWipe_c>FRP10sStateIf_c = .text:0x802D08B0; // type:function size:0xC
-build__34sFStateFct_c<18dLytSimpleWindow_c>FRC12sStateIDIf_c = .text:0x802D08C0; // type:function size:0x60
-dispose__34sFStateFct_c<18dLytSimpleWindow_c>FRP10sStateIf_c = .text:0x802D0920; // type:function size:0xC
-build__31sFStateFct_c<15dLytMsgWindow_c>FRC12sStateIDIf_c = .text:0x802D0930; // type:function size:0x60
-dispose__31sFStateFct_c<15dLytMsgWindow_c>FRP10sStateIf_c = .text:0x802D0990; // type:function size:0xC
-fn_802D09A0 = .text:0x802D09A0; // type:function size:0x1C
-fn_802D09C0 = .text:0x802D09C0; // type:function size:0x1C
-fn_802D09E0 = .text:0x802D09E0; // type:function size:0x1C
-initialize__30sFState_c<17dLytControlGame_c>Fv = .text:0x802D0A00; // type:function size:0x1C
-execute__30sFState_c<17dLytControlGame_c>Fv = .text:0x802D0A20; // type:function size:0x1C
-finalize__30sFState_c<17dLytControlGame_c>Fv = .text:0x802D0A40; // type:function size:0x1C
-initialize__23sFState_c<10dLytHelp_c>Fv = .text:0x802D0A60; // type:function size:0x1C
-execute__23sFState_c<10dLytHelp_c>Fv = .text:0x802D0A80; // type:function size:0x1C
-finalize__23sFState_c<10dLytHelp_c>Fv = .text:0x802D0AA0; // type:function size:0x1C
-initialize__23sFState_c<10dLytWipe_c>Fv = .text:0x802D0AC0; // type:function size:0x1C
-execute__23sFState_c<10dLytWipe_c>Fv = .text:0x802D0AE0; // type:function size:0x1C
-finalize__23sFState_c<10dLytWipe_c>Fv = .text:0x802D0B00; // type:function size:0x1C
-initialize__31sFState_c<18dLytSimpleWindow_c>Fv = .text:0x802D0B20; // type:function size:0x1C
-execute__31sFState_c<18dLytSimpleWindow_c>Fv = .text:0x802D0B40; // type:function size:0x1C
-finalize__31sFState_c<18dLytSimpleWindow_c>Fv = .text:0x802D0B60; // type:function size:0x1C
-initialize__28sFState_c<15dLytMsgWindow_c>Fv = .text:0x802D0B80; // type:function size:0x1C
-execute__28sFState_c<15dLytMsgWindow_c>Fv = .text:0x802D0BA0; // type:function size:0x1C
-finalize__28sFState_c<15dLytMsgWindow_c>Fv = .text:0x802D0BC0; // type:function size:0x1C
-fn_802D0BE0 = .text:0x802D0BE0; // type:function size:0x10
-fn_802D0BF0 = .text:0x802D0BF0; // type:function size:0x10
-fn_802D0C00 = .text:0x802D0C00; // type:function size:0x10
-fn_802D0C10 = .text:0x802D0C10; // type:function size:0x10
-fn_802D0C20 = .text:0x802D0C20; // type:function size:0x10
-fn_802D0C30 = .text:0x802D0C30; // type:function size:0x10
-fn_802D0C40 = .text:0x802D0C40; // type:function size:0x10
-initializeState__86sStateMgr_c<17dLytControlGame_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x802D0C50; // type:function size:0x10
-finalizeState__86sStateMgr_c<17dLytControlGame_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x802D0C60; // type:function size:0x10
-refreshState__86sStateMgr_c<17dLytControlGame_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x802D0C70; // type:function size:0x10
-getState__86sStateMgr_c<17dLytControlGame_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x802D0C80; // type:function size:0x10
-getNewStateID__86sStateMgr_c<17dLytControlGame_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x802D0C90; // type:function size:0x10
-getOldStateID__86sStateMgr_c<17dLytControlGame_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x802D0CA0; // type:function size:0x10
-initializeState__79sStateMgr_c<10dLytHelp_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x802D0CB0; // type:function size:0x10
-finalizeState__79sStateMgr_c<10dLytHelp_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x802D0CC0; // type:function size:0x10
-refreshState__79sStateMgr_c<10dLytHelp_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x802D0CD0; // type:function size:0x10
-getState__79sStateMgr_c<10dLytHelp_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x802D0CE0; // type:function size:0x10
-getNewStateID__79sStateMgr_c<10dLytHelp_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x802D0CF0; // type:function size:0x10
-getOldStateID__79sStateMgr_c<10dLytHelp_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x802D0D00; // type:function size:0x10
-initializeState__79sStateMgr_c<10dLytWipe_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x802D0D10; // type:function size:0x10
-finalizeState__79sStateMgr_c<10dLytWipe_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x802D0D20; // type:function size:0x10
-refreshState__79sStateMgr_c<10dLytWipe_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x802D0D30; // type:function size:0x10
-getState__79sStateMgr_c<10dLytWipe_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x802D0D40; // type:function size:0x10
-getNewStateID__79sStateMgr_c<10dLytWipe_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x802D0D50; // type:function size:0x10
-getOldStateID__79sStateMgr_c<10dLytWipe_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x802D0D60; // type:function size:0x10
-initializeState__87sStateMgr_c<18dLytSimpleWindow_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x802D0D70; // type:function size:0x10
-finalizeState__87sStateMgr_c<18dLytSimpleWindow_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x802D0D80; // type:function size:0x10
-refreshState__87sStateMgr_c<18dLytSimpleWindow_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x802D0D90; // type:function size:0x10
-getState__87sStateMgr_c<18dLytSimpleWindow_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x802D0DA0; // type:function size:0x10
-getNewStateID__87sStateMgr_c<18dLytSimpleWindow_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x802D0DB0; // type:function size:0x10
-getOldStateID__87sStateMgr_c<18dLytSimpleWindow_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x802D0DC0; // type:function size:0x10
-initializeState__84sStateMgr_c<15dLytMsgWindow_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x802D0DD0; // type:function size:0x10
-finalizeState__84sStateMgr_c<15dLytMsgWindow_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x802D0DE0; // type:function size:0x10
-refreshState__84sStateMgr_c<15dLytMsgWindow_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x802D0DF0; // type:function size:0x10
-getState__84sStateMgr_c<15dLytMsgWindow_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x802D0E00; // type:function size:0x10
-getNewStateID__84sStateMgr_c<15dLytMsgWindow_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x802D0E10; // type:function size:0x10
-getOldStateID__84sStateMgr_c<15dLytMsgWindow_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x802D0E20; // type:function size:0x10
-fn_802D0E30 = .text:0x802D0E30; // type:function size:0x30
-fn_802D0E60 = .text:0x802D0E60; // type:function size:0x30
-fn_802D0E90 = .text:0x802D0E90; // type:function size:0x30
-LytControlGame__initStates = .text:0x802D0EC0; // type:function size:0x700
-LytControlGame__dtor = .text:0x802D15C0; // type:function size:0x58
-fn_802D1620 = .text:0x802D1620; // type:function size:0x88
+canOpenPause__17dLytControlGame_cFv = .text:0x802D0500; // type:function size:0x9C
+checkForBeaconNextToMark__17dLytControlGame_cFv = .text:0x802D05A0; // type:function size:0x148
+resetFootsteps__17dLytControlGame_cFv = .text:0x802D06F0; // type:function size:0xC
+build__30sFStateFct_c<14dLytDrawMark_c>FRC12sStateIDIf_c = .text:0x802D0700; // type:function size:0x60 scope:weak
+dispose__30sFStateFct_c<14dLytDrawMark_c>FRP10sStateIf_c = .text:0x802D0760; // type:function size:0xC scope:weak
+build__33sFStateFct_c<17dLytControlGame_c>FRC12sStateIDIf_c = .text:0x802D0770; // type:function size:0x60 scope:weak
+dispose__33sFStateFct_c<17dLytControlGame_c>FRP10sStateIf_c = .text:0x802D07D0; // type:function size:0xC scope:weak
+build__26sFStateFct_c<10dLytHelp_c>FRC12sStateIDIf_c = .text:0x802D07E0; // type:function size:0x60 scope:weak
+dispose__26sFStateFct_c<10dLytHelp_c>FRP10sStateIf_c = .text:0x802D0840; // type:function size:0xC scope:weak
+build__26sFStateFct_c<10dLytWipe_c>FRC12sStateIDIf_c = .text:0x802D0850; // type:function size:0x60 scope:weak
+dispose__26sFStateFct_c<10dLytWipe_c>FRP10sStateIf_c = .text:0x802D08B0; // type:function size:0xC scope:weak
+build__34sFStateFct_c<18dLytSimpleWindow_c>FRC12sStateIDIf_c = .text:0x802D08C0; // type:function size:0x60 scope:weak
+dispose__34sFStateFct_c<18dLytSimpleWindow_c>FRP10sStateIf_c = .text:0x802D0920; // type:function size:0xC scope:weak
+build__31sFStateFct_c<15dLytMsgWindow_c>FRC12sStateIDIf_c = .text:0x802D0930; // type:function size:0x60 scope:weak
+dispose__31sFStateFct_c<15dLytMsgWindow_c>FRP10sStateIf_c = .text:0x802D0990; // type:function size:0xC scope:weak
+initialize__27sFState_c<14dLytDrawMark_c>Fv = .text:0x802D09A0; // type:function size:0x1C scope:weak
+execute__27sFState_c<14dLytDrawMark_c>Fv = .text:0x802D09C0; // type:function size:0x1C scope:weak
+finalize__27sFState_c<14dLytDrawMark_c>Fv = .text:0x802D09E0; // type:function size:0x1C scope:weak
+initialize__30sFState_c<17dLytControlGame_c>Fv = .text:0x802D0A00; // type:function size:0x1C scope:weak
+execute__30sFState_c<17dLytControlGame_c>Fv = .text:0x802D0A20; // type:function size:0x1C scope:weak
+finalize__30sFState_c<17dLytControlGame_c>Fv = .text:0x802D0A40; // type:function size:0x1C scope:weak
+initialize__23sFState_c<10dLytHelp_c>Fv = .text:0x802D0A60; // type:function size:0x1C scope:weak
+execute__23sFState_c<10dLytHelp_c>Fv = .text:0x802D0A80; // type:function size:0x1C scope:weak
+finalize__23sFState_c<10dLytHelp_c>Fv = .text:0x802D0AA0; // type:function size:0x1C scope:weak
+initialize__23sFState_c<10dLytWipe_c>Fv = .text:0x802D0AC0; // type:function size:0x1C scope:weak
+execute__23sFState_c<10dLytWipe_c>Fv = .text:0x802D0AE0; // type:function size:0x1C scope:weak
+finalize__23sFState_c<10dLytWipe_c>Fv = .text:0x802D0B00; // type:function size:0x1C scope:weak
+initialize__31sFState_c<18dLytSimpleWindow_c>Fv = .text:0x802D0B20; // type:function size:0x1C scope:weak
+execute__31sFState_c<18dLytSimpleWindow_c>Fv = .text:0x802D0B40; // type:function size:0x1C scope:weak
+finalize__31sFState_c<18dLytSimpleWindow_c>Fv = .text:0x802D0B60; // type:function size:0x1C scope:weak
+initialize__28sFState_c<15dLytMsgWindow_c>Fv = .text:0x802D0B80; // type:function size:0x1C scope:weak
+execute__28sFState_c<15dLytMsgWindow_c>Fv = .text:0x802D0BA0; // type:function size:0x1C scope:weak
+finalize__28sFState_c<15dLytMsgWindow_c>Fv = .text:0x802D0BC0; // type:function size:0x1C scope:weak
+initializeState__83sStateMgr_c<14dLytDrawMark_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x802D0BE0; // type:function size:0x10 scope:weak
+finalizeState__83sStateMgr_c<14dLytDrawMark_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x802D0BF0; // type:function size:0x10 scope:weak
+refreshState__83sStateMgr_c<14dLytDrawMark_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x802D0C00; // type:function size:0x10 scope:weak
+getState__83sStateMgr_c<14dLytDrawMark_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x802D0C10; // type:function size:0x10 scope:weak
+getNewStateID__83sStateMgr_c<14dLytDrawMark_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x802D0C20; // type:function size:0x10 scope:weak
+getStateID__83sStateMgr_c<14dLytDrawMark_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x802D0C30; // type:function size:0x10 scope:weak
+getOldStateID__83sStateMgr_c<14dLytDrawMark_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x802D0C40; // type:function size:0x10 scope:weak
+initializeState__86sStateMgr_c<17dLytControlGame_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x802D0C50; // type:function size:0x10 scope:weak
+finalizeState__86sStateMgr_c<17dLytControlGame_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x802D0C60; // type:function size:0x10 scope:weak
+refreshState__86sStateMgr_c<17dLytControlGame_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x802D0C70; // type:function size:0x10 scope:weak
+getState__86sStateMgr_c<17dLytControlGame_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x802D0C80; // type:function size:0x10 scope:weak
+getNewStateID__86sStateMgr_c<17dLytControlGame_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x802D0C90; // type:function size:0x10 scope:weak
+getOldStateID__86sStateMgr_c<17dLytControlGame_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x802D0CA0; // type:function size:0x10 scope:weak
+initializeState__79sStateMgr_c<10dLytHelp_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x802D0CB0; // type:function size:0x10 scope:weak
+finalizeState__79sStateMgr_c<10dLytHelp_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x802D0CC0; // type:function size:0x10 scope:weak
+refreshState__79sStateMgr_c<10dLytHelp_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x802D0CD0; // type:function size:0x10 scope:weak
+getState__79sStateMgr_c<10dLytHelp_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x802D0CE0; // type:function size:0x10 scope:weak
+getNewStateID__79sStateMgr_c<10dLytHelp_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x802D0CF0; // type:function size:0x10 scope:weak
+getOldStateID__79sStateMgr_c<10dLytHelp_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x802D0D00; // type:function size:0x10 scope:weak
+initializeState__79sStateMgr_c<10dLytWipe_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x802D0D10; // type:function size:0x10 scope:weak
+finalizeState__79sStateMgr_c<10dLytWipe_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x802D0D20; // type:function size:0x10 scope:weak
+refreshState__79sStateMgr_c<10dLytWipe_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x802D0D30; // type:function size:0x10 scope:weak
+getState__79sStateMgr_c<10dLytWipe_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x802D0D40; // type:function size:0x10 scope:weak
+getNewStateID__79sStateMgr_c<10dLytWipe_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x802D0D50; // type:function size:0x10 scope:weak
+getOldStateID__79sStateMgr_c<10dLytWipe_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x802D0D60; // type:function size:0x10 scope:weak
+initializeState__87sStateMgr_c<18dLytSimpleWindow_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x802D0D70; // type:function size:0x10 scope:weak
+finalizeState__87sStateMgr_c<18dLytSimpleWindow_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x802D0D80; // type:function size:0x10 scope:weak
+refreshState__87sStateMgr_c<18dLytSimpleWindow_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x802D0D90; // type:function size:0x10 scope:weak
+getState__87sStateMgr_c<18dLytSimpleWindow_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x802D0DA0; // type:function size:0x10 scope:weak
+getNewStateID__87sStateMgr_c<18dLytSimpleWindow_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x802D0DB0; // type:function size:0x10 scope:weak
+getOldStateID__87sStateMgr_c<18dLytSimpleWindow_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x802D0DC0; // type:function size:0x10 scope:weak
+initializeState__84sStateMgr_c<15dLytMsgWindow_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x802D0DD0; // type:function size:0x10 scope:weak
+finalizeState__84sStateMgr_c<15dLytMsgWindow_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x802D0DE0; // type:function size:0x10 scope:weak
+refreshState__84sStateMgr_c<15dLytMsgWindow_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x802D0DF0; // type:function size:0x10 scope:weak
+getState__84sStateMgr_c<15dLytMsgWindow_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x802D0E00; // type:function size:0x10 scope:weak
+getNewStateID__84sStateMgr_c<15dLytMsgWindow_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x802D0E10; // type:function size:0x10 scope:weak
+getOldStateID__84sStateMgr_c<15dLytMsgWindow_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x802D0E20; // type:function size:0x10 scope:weak
+finalizeState__32sFStateID_c<17dLytControlGame_c>CFR17dLytControlGame_c = .text:0x802D0E30; // type:function size:0x30 scope:weak
+executeState__32sFStateID_c<17dLytControlGame_c>CFR17dLytControlGame_c = .text:0x802D0E60; // type:function size:0x30 scope:weak
+initializeState__32sFStateID_c<17dLytControlGame_c>CFR17dLytControlGame_c = .text:0x802D0E90; // type:function size:0x30 scope:weak
+__sinit_\d_lyt_control_game_cpp = .text:0x802D0EC0; // type:function size:0x700 scope:local
+__dt__32sFStateID_c<17dLytControlGame_c>Fv = .text:0x802D15C0; // type:function size:0x58 scope:weak
+isSameName__32sFStateID_c<17dLytControlGame_c>CFPCc = .text:0x802D1620; // type:function size:0x88 scope:weak
fn_802D16B0 = .text:0x802D16B0; // type:function size:0x30
fn_802D16E0 = .text:0x802D16E0; // type:function size:0x3C
fn_802D1720 = .text:0x802D1720; // type:function size:0x8
@@ -20991,8 +20991,8 @@ fn_80385090 = .text:0x80385090; // type:function size:0x18
fn_803850B0 = .text:0x803850B0; // type:function size:0x108
fn_803851C0 = .text:0x803851C0; // type:function size:0x74
clearSourceList__15dSndSourceMgr_cFPQ34nw4r2ut4List = .text:0x80385240; // type:function size:0x64
-fn_803852B0 = .text:0x803852B0; // type:function size:0x3C
-fn_803852F0 = .text:0x803852F0; // type:function size:0x3C
+fn_803852B0__15dSndSourceMgr_cFv = .text:0x803852B0; // type:function size:0x3C
+fn_803852F0__15dSndSourceMgr_cFv = .text:0x803852F0; // type:function size:0x3C
pauseAllSound__15dSndSourceMgr_cFv = .text:0x80385330; // type:function size:0x94
fn_803853D0 = .text:0x803853D0; // type:function size:0xA0
stopAllSound__15dSndSourceMgr_cFv = .text:0x80385470; // type:function size:0x78
@@ -28283,7 +28283,7 @@ brlanMapPart1 = .rodata:0x804E7390; // type:object size:0x38 scope:local data:4b
brlanMapPart2 = .rodata:0x804E73C8; // type:object size:0x50 scope:local data:4byte
brlanMapPart3 = .rodata:0x804E7418; // type:object size:0x18 scope:local data:4byte
lbl_804E7430 = .rodata:0x804E7430; // type:object size:0x38 data:4byte
-lbl_804E7468 = .rodata:0x804E7468; // type:object size:0xD8 data:4byte
+brlanMap = .rodata:0x804E7468; // type:object size:0xD8 scope:local data:4byte
brlanMap = .rodata:0x804E7540; // type:object size:0x20 scope:local data:4byte
brlanMap = .rodata:0x804E7560; // type:object size:0x20 scope:local data:4byte
brlanMap = .rodata:0x804E7580; // type:object size:0x18 scope:local data:4byte
@@ -33087,63 +33087,112 @@ __vt__13dLytTextLight = .data:0x8051BCB4; // type:object size:0xC
__vt__13dLytTextSword = .data:0x8051BCC0; // type:object size:0xC
lbl_8051BCCC = .data:0x8051BCCC; // type:object size:0x600
__vt__30sFStateID_c<15dLytMsgWindow_c> = .data:0x8051C2CC; // type:object size:0x34
-lbl_8051C300 = .data:0x8051C300; // type:object size:0x9 data:string
-lbl_8051C30C = .data:0x8051C30C; // type:object size:0xC data:string
-lbl_8051C318 = .data:0x8051C318; // type:object size:0xD data:string
-lbl_8051C328 = .data:0x8051C328; // type:object size:0x17 data:string
-lbl_8051C340 = .data:0x8051C340; // type:object size:0xB data:string
-lbl_8051C350 = .data:0x8051C350; // type:object size:0x20 data:string
-lbl_8051C370 = .data:0x8051C370; // type:object size:0x11 data:string
-lbl_8051C388 = .data:0x8051C388; // type:object size:0x20 data:string
-lbl_8051C3A8 = .data:0x8051C3A8; // type:object size:0x10 data:string
-lbl_8051C3B8 = .data:0x8051C3B8; // type:object size:0x1F data:string
-lbl_8051C3D8 = .data:0x8051C3D8; // type:object size:0x10 data:string
-lbl_8051C3E8 = .data:0x8051C3E8; // type:object size:0x1E data:string
-lbl_8051C408 = .data:0x8051C408; // type:object size:0xF data:string
-lbl_8051C418 = .data:0x8051C418; // type:object size:0xF data:string
-lbl_8051C428 = .data:0x8051C428; // type:object size:0x19 data:string
-lbl_8051C444 = .data:0x8051C444; // type:object size:0x9 data:string
-lbl_8051C450 = .data:0x8051C450; // type:object size:0x9 data:string
-lbl_8051C45C = .data:0x8051C45C; // type:object size:0x9 data:string
-lbl_8051C468 = .data:0x8051C468; // type:object size:0x9 data:string
-lbl_8051C474 = .data:0x8051C474; // type:object size:0x1B data:string
-lbl_8051C490 = .data:0x8051C490; // type:object size:0xC data:string
-lbl_8051C49C = .data:0x8051C49C; // type:object size:0xC data:string
-lbl_8051C4A8 = .data:0x8051C4A8; // type:object size:0xC data:string
-lbl_8051C4B4 = .data:0x8051C4B4; // type:object size:0xC data:string
-lbl_8051C4C0 = .data:0x8051C4C0; // type:object size:0x1B data:string
-lbl_8051C4DC = .data:0x8051C4DC; // type:object size:0xC data:string
-lbl_8051C4E8 = .data:0x8051C4E8; // type:object size:0xC data:string
-lbl_8051C4F4 = .data:0x8051C4F4; // type:object size:0xC data:string
-lbl_8051C500 = .data:0x8051C500; // type:object size:0xC data:string
-lbl_8051C50C = .data:0x8051C50C; // type:object size:0x1B data:string
-lbl_8051C528 = .data:0x8051C528; // type:object size:0x1B data:string
-lbl_8051C548 = .data:0x8051C548; // type:object size:0x18 data:string
-lbl_8051C560 = .data:0x8051C560; // type:object size:0xD data:string
-lbl_8051C570 = .data:0x8051C570; // type:object size:0xC data:string
-lbl_8051C57C = .data:0x8051C57C; // type:object size:0xD data:string
-lbl_8051C58C = .data:0x8051C58C; // type:object size:0xC data:string
-lbl_8051C598 = .data:0x8051C598; // type:object size:0xD data:string
-lbl_8051C5A8 = .data:0x8051C5A8; // type:object size:0xC data:string
-lbl_8051C5B4 = .data:0x8051C5B4; // type:object size:0xD data:string
-lbl_8051C5C4 = .data:0x8051C5C4; // type:object size:0x2C
-lbl_8051C5F0 = .data:0x8051C5F0; // type:object size:0xC data:string
-lbl_8051C5FC = .data:0x8051C5FC; // type:object size:0xD data:string
-lbl_8051C60C = .data:0x8051C60C; // type:object size:0x9 data:string
-lbl_8051C618 = .data:0x8051C618; // type:object size:0x9 data:string
-lbl_8051C624 = .data:0x8051C624; // type:object size:0x9 data:string
-lbl_8051C630 = .data:0x8051C630; // type:object size:0x9 data:string
-lbl_8051C63C = .data:0x8051C63C; // type:object size:0x1C
-lbl_8051C658 = .data:0x8051C658; // type:object size:0xF data:string
-lbl_8051C668 = .data:0x8051C668; // type:object size:0xF data:string
-lbl_8051C678 = .data:0x8051C678; // type:object size:0xA data:string
-lbl_8051C688 = .data:0x8051C688; // type:object size:0x10 data:string
-lbl_8051C698 = .data:0x8051C698; // type:object size:0x10 data:string
-lbl_8051C6A8 = .data:0x8051C6A8; // type:object size:0x10 data:string
-lbl_8051C6B8 = .data:0x8051C6B8; // type:object size:0x40
-__vt__24dLytMsgWindowSelectBtn_c = .data:0x8051C6F8; // type:object size:0x3AC
-lbl_8051CAA4 = .data:0x8051CAA4; // type:object size:0x34
-lbl_8051CAD8 = .data:0x8051CAD8; // type:object size:0x38
+@34830 = .data:0x8051C300; // type:object size:0x9 scope:local data:string
+...data.0 = .data:0x8051C300; // type:label scope:local
+@35537 = .data:0x8051C30C; // type:object size:0xC scope:local data:string
+@35539 = .data:0x8051C318; // type:object size:0xD scope:local data:string
+@29701 = .data:0x8051C328; // type:object size:0x17 scope:local data:string
+@29702 = .data:0x8051C340; // type:object size:0xB scope:local data:string
+@29703 = .data:0x8051C350; // type:object size:0x20 scope:local data:string
+@29704 = .data:0x8051C370; // type:object size:0x11 scope:local data:string
+@29705 = .data:0x8051C388; // type:object size:0x20 scope:local data:string
+@29706 = .data:0x8051C3A8; // type:object size:0x10 scope:local data:string
+@29707 = .data:0x8051C3B8; // type:object size:0x1F scope:local data:string
+@29708 = .data:0x8051C3D8; // type:object size:0x10 scope:local data:string
+@29709 = .data:0x8051C3E8; // type:object size:0x1E scope:local data:string
+@29710 = .data:0x8051C408; // type:object size:0xF scope:local data:string
+@29711 = .data:0x8051C418; // type:object size:0xF scope:local data:string
+@29712 = .data:0x8051C428; // type:object size:0x19 scope:local data:string
+@29713 = .data:0x8051C444; // type:object size:0x9 scope:local data:string
+@29714 = .data:0x8051C450; // type:object size:0x9 scope:local data:string
+@29715 = .data:0x8051C45C; // type:object size:0x9 scope:local data:string
+@29716 = .data:0x8051C468; // type:object size:0x9 scope:local data:string
+@29717 = .data:0x8051C474; // type:object size:0x1B scope:local data:string
+@29718 = .data:0x8051C490; // type:object size:0xC scope:local data:string
+@29719 = .data:0x8051C49C; // type:object size:0xC scope:local data:string
+@29720 = .data:0x8051C4A8; // type:object size:0xC scope:local data:string
+@29721 = .data:0x8051C4B4; // type:object size:0xC scope:local data:string
+@29722 = .data:0x8051C4C0; // type:object size:0x1B scope:local data:string
+@29723 = .data:0x8051C4DC; // type:object size:0xC scope:local data:string
+@29724 = .data:0x8051C4E8; // type:object size:0xC scope:local data:string
+@29725 = .data:0x8051C4F4; // type:object size:0xC scope:local data:string
+@29726 = .data:0x8051C500; // type:object size:0xC scope:local data:string
+@29727 = .data:0x8051C50C; // type:object size:0x1B scope:local data:string
+@29728 = .data:0x8051C528; // type:object size:0x1B scope:local data:string
+@29729 = .data:0x8051C548; // type:object size:0x18 scope:local data:string
+@29730 = .data:0x8051C560; // type:object size:0xD scope:local data:string
+@29731 = .data:0x8051C570; // type:object size:0xC scope:local data:string
+@29732 = .data:0x8051C57C; // type:object size:0xD scope:local data:string
+@29733 = .data:0x8051C58C; // type:object size:0xC scope:local data:string
+@29734 = .data:0x8051C598; // type:object size:0xD scope:local data:string
+@29735 = .data:0x8051C5A8; // type:object size:0xC scope:local data:string
+@29736 = .data:0x8051C5B4; // type:object size:0xD scope:local data:string
+@29737 = .data:0x8051C5C4; // type:object size:0xC scope:local data:string
+sSelectTextBoxes = .data:0x8051C5D0; // type:object size:0x20 scope:local
+@29738 = .data:0x8051C5F0; // type:object size:0xC scope:local data:string
+@29739 = .data:0x8051C5FC; // type:object size:0xD scope:local data:string
+@29740 = .data:0x8051C60C; // type:object size:0x9 scope:local data:string
+@29741 = .data:0x8051C618; // type:object size:0x9 scope:local data:string
+@29742 = .data:0x8051C624; // type:object size:0x9 scope:local data:string
+@29743 = .data:0x8051C630; // type:object size:0x9 scope:local data:string
+@29744 = .data:0x8051C63C; // type:object size:0x9 scope:local data:string
+sBoundings = .data:0x8051C648; // type:object size:0x10 scope:local
+@29745 = .data:0x8051C658; // type:object size:0xF scope:local data:string
+@29746 = .data:0x8051C668; // type:object size:0xF scope:local data:string
+@29747 = .data:0x8051C678; // type:object size:0xA scope:local data:string
+@29748 = .data:0x8051C688; // type:object size:0x10 scope:local data:string
+@29749 = .data:0x8051C698; // type:object size:0x10 scope:local data:string
+@29750 = .data:0x8051C6A8; // type:object size:0x10 scope:local data:string
+@29751 = .data:0x8051C6B8; // type:object size:0x10 scope:local data:string
+sSelectPanes = .data:0x8051C6C8; // type:object size:0x1C scope:local
+@35871 = .data:0x8051C6E4; // type:object size:0x14 scope:local data:string
+__vt__24dLytMsgWindowSelectBtn_c = .data:0x8051C6F8; // type:object size:0x34
+@36090 = .data:0x8051C72C; // type:object size:0xC scope:local
+@36091 = .data:0x8051C738; // type:object size:0xC scope:local
+@36092 = .data:0x8051C744; // type:object size:0xC scope:local
+@36093 = .data:0x8051C750; // type:object size:0xC scope:local
+@36094 = .data:0x8051C75C; // type:object size:0xC scope:local
+@36095 = .data:0x8051C768; // type:object size:0xC scope:local
+@36096 = .data:0x8051C774; // type:object size:0xC scope:local
+@36097 = .data:0x8051C780; // type:object size:0xC scope:local
+@36098 = .data:0x8051C78C; // type:object size:0xC scope:local
+@36099 = .data:0x8051C798; // type:object size:0xC scope:local
+@36100 = .data:0x8051C7A4; // type:object size:0xC scope:local
+@36101 = .data:0x8051C7B0; // type:object size:0xC scope:local
+@36102 = .data:0x8051C7BC; // type:object size:0xC scope:local
+@36103 = .data:0x8051C7C8; // type:object size:0xC scope:local
+@36104 = .data:0x8051C7D4; // type:object size:0xC scope:local
+@36105 = .data:0x8051C7E0; // type:object size:0xC scope:local
+@36106 = .data:0x8051C7EC; // type:object size:0xC scope:local
+@36107 = .data:0x8051C7F8; // type:object size:0xC scope:local
+@36108 = .data:0x8051C804; // type:object size:0xC scope:local
+@36109 = .data:0x8051C810; // type:object size:0xC scope:local
+@36110 = .data:0x8051C81C; // type:object size:0xC scope:local
+@36111 = .data:0x8051C828; // type:object size:0xC scope:local
+@36112 = .data:0x8051C834; // type:object size:0xC scope:local
+@36113 = .data:0x8051C840; // type:object size:0xC scope:local
+@36114 = .data:0x8051C84C; // type:object size:0xC scope:local
+@36115 = .data:0x8051C858; // type:object size:0xC scope:local
+@36116 = .data:0x8051C864; // type:object size:0xC scope:local
+@36117 = .data:0x8051C870; // type:object size:0xC scope:local
+@36118 = .data:0x8051C87C; // type:object size:0xC scope:local
+@36119 = .data:0x8051C888; // type:object size:0xC scope:local
+@36120 = .data:0x8051C894; // type:object size:0xC scope:local
+@36121 = .data:0x8051C8A0; // type:object size:0xC scope:local
+@36122 = .data:0x8051C8AC; // type:object size:0xC scope:local
+@36124 = .data:0x8051C8B8; // type:object size:0x2C scope:local data:string
+@36125 = .data:0x8051C8E4; // type:object size:0x2A scope:local data:string
+@36126 = .data:0x8051C910; // type:object size:0x2E scope:local data:string
+@36127 = .data:0x8051C940; // type:object size:0x2B scope:local data:string
+@36128 = .data:0x8051C96C; // type:object size:0x27 scope:local data:string
+@36129 = .data:0x8051C994; // type:object size:0x25 scope:local data:string
+@36130 = .data:0x8051C9BC; // type:object size:0x2D scope:local data:string
+@36131 = .data:0x8051C9EC; // type:object size:0x2E scope:local data:string
+@36132 = .data:0x8051CA1C; // type:object size:0x2D scope:local data:string
+@36133 = .data:0x8051CA4C; // type:object size:0x2D scope:local data:string
+@36134 = .data:0x8051CA7C; // type:object size:0x26 scope:local data:string
+__vt__39sFStateID_c<24dLytMsgWindowSelectBtn_c> = .data:0x8051CAA4; // type:object size:0x34 scope:weak
+__vt__44sFStateID_c<29dLytMsgWindowSelectBtnParts_c> = .data:0x8051CAD8; // type:object size:0x34 scope:weak
@17001 = .data:0x8051CB10; // type:object size:0x9 scope:local data:string
...data.0 = .data:0x8051CB10; // type:label scope:local
@17002 = .data:0x8051CB1C; // type:object size:0xA scope:local data:string
@@ -37526,39 +37575,76 @@ g_profile_JSTUDIO_SYSOBJ = .data:0x805402D8; // type:object size:0x10
lbl_805402E8 = .data:0x805402E8; // type:object size:0x9C data:4byte
lbl_80540384 = .data:0x80540384; // type:object size:0x74
g_profile_LYT_CONTROL_GAME = .data:0x805403F8; // type:object size:0xC
-lbl_80540404 = .data:0x80540404; // type:object size:0xA data:string
-lbl_80540410 = .data:0x80540410; // type:object size:0x9 data:string
-lbl_8054041C = .data:0x8054041C; // type:object size:0xC data:string
-lbl_80540428 = .data:0x80540428; // type:object size:0x10
-lbl_80540438 = .data:0x80540438; // type:object size:0x30
-lbl_80540468 = .data:0x80540468; // type:object size:0x30
-lbl_80540498 = .data:0x80540498; // type:object size:0x18
-lbl_805404B0 = .data:0x805404B0; // type:object size:0x18
-__vt__17dLytControlGame_c = .data:0x805404C8; // type:object size:0x50
-__vt__56sFStateMgr_c<17dLytControlGame_c,20sStateMethodUsr_FI_c> = .data:0x80540518; // type:object size:0x30
-__vt__86sStateMgr_c<17dLytControlGame_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c> = .data:0x80540548; // type:object size:0x30
-__vt__33sFStateFct_c<17dLytControlGame_c> = .data:0x80540578; // type:object size:0x18
-__vt__30sFState_c<17dLytControlGame_c> = .data:0x80540590; // type:object size:0x18
-lbl_805405A8 = .data:0x805405A8; // type:object size:0xC
-__vt__19dMapFootPrintsMgr_c = .data:0x805405B4; // type:object size:0xC
-__vt__49sFStateMgr_c<10dLytHelp_c,20sStateMethodUsr_FI_c> = .data:0x805405C0; // type:object size:0x30
-__vt__79sStateMgr_c<10dLytHelp_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c> = .data:0x805405F0; // type:object size:0x30
-__vt__26sFStateFct_c<10dLytHelp_c> = .data:0x80540620; // type:object size:0x18
-__vt__23sFState_c<10dLytHelp_c> = .data:0x80540638; // type:object size:0x18
-__vt__49sFStateMgr_c<10dLytWipe_c,20sStateMethodUsr_FI_c> = .data:0x80540650; // type:object size:0x30
-__vt__79sStateMgr_c<10dLytWipe_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c> = .data:0x80540680; // type:object size:0x30
-__vt__26sFStateFct_c<10dLytWipe_c> = .data:0x805406B0; // type:object size:0x18
-__vt__23sFState_c<10dLytWipe_c> = .data:0x805406C8; // type:object size:0x18
-__vt__57sFStateMgr_c<18dLytSimpleWindow_c,20sStateMethodUsr_FI_c> = .data:0x805406E0; // type:object size:0x30
-__vt__87sStateMgr_c<18dLytSimpleWindow_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c> = .data:0x80540710; // type:object size:0x30
-__vt__34sFStateFct_c<18dLytSimpleWindow_c> = .data:0x80540740; // type:object size:0x18
-__vt__31sFState_c<18dLytSimpleWindow_c> = .data:0x80540758; // type:object size:0x18
-__vt__15dLytMsgWindow_c = .data:0x80540770; // type:object size:0x10
-__vt__54sFStateMgr_c<15dLytMsgWindow_c,20sStateMethodUsr_FI_c> = .data:0x80540780; // type:object size:0x30
-__vt__84sStateMgr_c<15dLytMsgWindow_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c> = .data:0x805407B0; // type:object size:0x30
-__vt__31sFStateFct_c<15dLytMsgWindow_c> = .data:0x805407E0; // type:object size:0x18
-__vt__28sFState_c<15dLytMsgWindow_c> = .data:0x805407F8; // type:object size:0x458
-lbl_80540C50 = .data:0x80540C50; // type:object size:0x38
+...data.0 = .data:0x805403F8; // type:label scope:local
+@36306 = .data:0x80540404; // type:object size:0xA scope:local data:string
+@36308 = .data:0x80540410; // type:object size:0x9 scope:local data:string
+@36310 = .data:0x8054041C; // type:object size:0xC scope:local data:string
+__vt__21dLytControlGame_HIO_c = .data:0x80540428; // type:object size:0xC
+__vt__53sFStateMgr_c<14dLytDrawMark_c,20sStateMethodUsr_FI_c> = .data:0x80540438; // type:object size:0x30 scope:weak
+__vt__83sStateMgr_c<14dLytDrawMark_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c> = .data:0x80540468; // type:object size:0x30 scope:weak
+__vt__30sFStateFct_c<14dLytDrawMark_c> = .data:0x80540498; // type:object size:0x14 scope:weak
+__vt__27sFState_c<14dLytDrawMark_c> = .data:0x805404B0; // type:object size:0x18 scope:weak
+__vt__17dLytControlGame_c = .data:0x805404C8; // type:object size:0x4C
+__vt__56sFStateMgr_c<17dLytControlGame_c,20sStateMethodUsr_FI_c> = .data:0x80540518; // type:object size:0x30 scope:weak
+__vt__86sStateMgr_c<17dLytControlGame_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c> = .data:0x80540548; // type:object size:0x30 scope:weak
+__vt__33sFStateFct_c<17dLytControlGame_c> = .data:0x80540578; // type:object size:0x14 scope:weak
+__vt__30sFState_c<17dLytControlGame_c> = .data:0x80540590; // type:object size:0x18 scope:weak
+__vt__9dLytMap_c = .data:0x805405A8; // type:object size:0xC scope:weak
+__vt__19dMapFootPrintsMgr_c = .data:0x805405B4; // type:object size:0xC scope:weak
+__vt__49sFStateMgr_c<10dLytHelp_c,20sStateMethodUsr_FI_c> = .data:0x805405C0; // type:object size:0x30 scope:weak
+__vt__79sStateMgr_c<10dLytHelp_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c> = .data:0x805405F0; // type:object size:0x30 scope:weak
+__vt__26sFStateFct_c<10dLytHelp_c> = .data:0x80540620; // type:object size:0x14 scope:weak
+__vt__23sFState_c<10dLytHelp_c> = .data:0x80540638; // type:object size:0x18 scope:weak
+__vt__49sFStateMgr_c<10dLytWipe_c,20sStateMethodUsr_FI_c> = .data:0x80540650; // type:object size:0x30 scope:weak
+__vt__79sStateMgr_c<10dLytWipe_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c> = .data:0x80540680; // type:object size:0x30 scope:weak
+__vt__26sFStateFct_c<10dLytWipe_c> = .data:0x805406B0; // type:object size:0x14 scope:weak
+__vt__23sFState_c<10dLytWipe_c> = .data:0x805406C8; // type:object size:0x18 scope:weak
+__vt__57sFStateMgr_c<18dLytSimpleWindow_c,20sStateMethodUsr_FI_c> = .data:0x805406E0; // type:object size:0x30 scope:weak
+__vt__87sStateMgr_c<18dLytSimpleWindow_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c> = .data:0x80540710; // type:object size:0x30 scope:weak
+__vt__34sFStateFct_c<18dLytSimpleWindow_c> = .data:0x80540740; // type:object size:0x14 scope:weak
+__vt__31sFState_c<18dLytSimpleWindow_c> = .data:0x80540758; // type:object size:0x18 scope:weak
+__vt__15dLytMsgWindow_c = .data:0x80540770; // type:object size:0xC scope:weak
+__vt__54sFStateMgr_c<15dLytMsgWindow_c,20sStateMethodUsr_FI_c> = .data:0x80540780; // type:object size:0x30 scope:weak
+__vt__84sStateMgr_c<15dLytMsgWindow_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c> = .data:0x805407B0; // type:object size:0x30 scope:weak
+__vt__31sFStateFct_c<15dLytMsgWindow_c> = .data:0x805407E0; // type:object size:0x14 scope:weak
+__vt__28sFState_c<15dLytMsgWindow_c> = .data:0x805407F8; // type:object size:0x18 scope:weak
+@51175 = .data:0x805409AC; // type:object size:0xC scope:local
+@51176 = .data:0x805409B8; // type:object size:0xC scope:local
+@51177 = .data:0x805409C4; // type:object size:0xC scope:local
+@51178 = .data:0x805409D0; // type:object size:0xC scope:local
+@51179 = .data:0x805409DC; // type:object size:0xC scope:local
+@51180 = .data:0x805409E8; // type:object size:0xC scope:local
+@51181 = .data:0x805409F4; // type:object size:0xC scope:local
+@51182 = .data:0x80540A00; // type:object size:0xC scope:local
+@51183 = .data:0x80540A0C; // type:object size:0xC scope:local
+@51184 = .data:0x80540A18; // type:object size:0xC scope:local
+@51185 = .data:0x80540A24; // type:object size:0xC scope:local
+@51186 = .data:0x80540A30; // type:object size:0xC scope:local
+@51187 = .data:0x80540A3C; // type:object size:0xC scope:local
+@51188 = .data:0x80540A48; // type:object size:0xC scope:local
+@51189 = .data:0x80540A54; // type:object size:0xC scope:local
+@51190 = .data:0x80540A60; // type:object size:0xC scope:local
+@51191 = .data:0x80540A6C; // type:object size:0xC scope:local
+@51192 = .data:0x80540A78; // type:object size:0xC scope:local
+@51193 = .data:0x80540A84; // type:object size:0xC scope:local
+@51194 = .data:0x80540A90; // type:object size:0xC scope:local
+@51195 = .data:0x80540A9C; // type:object size:0xC scope:local
+@51196 = .data:0x80540AA8; // type:object size:0xC scope:local
+@51197 = .data:0x80540AB4; // type:object size:0xC scope:local
+@51198 = .data:0x80540AC0; // type:object size:0xC scope:local
+@51199 = .data:0x80540ACC; // type:object size:0xC scope:local
+@51200 = .data:0x80540AD8; // type:object size:0xC scope:local
+@51201 = .data:0x80540AE4; // type:object size:0xC scope:local
+@51203 = .data:0x80540AF0; // type:object size:0x22 scope:local data:string
+@51204 = .data:0x80540B18; // type:object size:0x28 scope:local data:string
+@51205 = .data:0x80540B40; // type:object size:0x29 scope:local data:string
+@51206 = .data:0x80540B6C; // type:object size:0x21 scope:local data:string
+@51207 = .data:0x80540B90; // type:object size:0x28 scope:local data:string
+@51208 = .data:0x80540BB8; // type:object size:0x26 scope:local data:string
+@51209 = .data:0x80540BE0; // type:object size:0x27 scope:local data:string
+@51210 = .data:0x80540C08; // type:object size:0x1F scope:local data:string
+@51211 = .data:0x80540C28; // type:object size:0x26 scope:local data:string
+__vt__32sFStateID_c<17dLytControlGame_c> = .data:0x80540C50; // type:object size:0x34 scope:weak
g_profile_LYT_CONTROL_TITLE = .data:0x80540C88; // type:object size:0xC
lbl_80540C94 = .data:0x80540C94; // type:object size:0x4C
g_profile_MAP_AREA_TAG = .data:0x80540CE0; // type:object size:0x10
@@ -40119,8 +40205,8 @@ part2TextBoxes = .sdata:0x80572570; // type:object size:0x8 scope:local data:4by
part2Bounding = .sdata:0x80572578; // type:object size:0x4 scope:local data:4byte
part3Bounding = .sdata:0x8057257C; // type:object size:0x4 scope:local data:4byte
lbl_80572580 = .sdata:0x80572580; // type:object size:0x8
-lbl_80572588 = .sdata:0x80572588; // type:object size:0x8 data:4byte
-lbl_80572590 = .sdata:0x80572590; // type:object size:0x8 data:4byte
+sDecideTextBoxes = .sdata:0x80572588; // type:object size:0x8 scope:local data:4byte
+sWindowNames = .sdata:0x80572590; // type:object size:0x4 scope:local data:4byte
sSwordPane = .sdata:0x80572598; // type:object size:0x4 scope:local data:4byte
sLightPane = .sdata:0x8057259C; // type:object size:0x4 scope:local data:4byte
sTextBoxes = .sdata:0x805725A0; // type:object size:0x8 scope:local data:4byte
@@ -41140,13 +41226,13 @@ lbl_80573ED4 = .sdata:0x80573ED4; // type:object size:0x4 data:4byte
lbl_80573ED8 = .sdata:0x80573ED8; // type:object size:0x5 data:string
lbl_80573EE0 = .sdata:0x80573EE0; // type:object size:0x5 data:string
lbl_80573EE8 = .sdata:0x80573EE8; // type:object size:0x5 data:string
-lbl_80573EF0 = .sdata:0x80573EF0; // type:object size:0x6 data:string
-lbl_80573EF8 = .sdata:0x80573EF8; // type:object size:0x7 data:string
-lbl_80573F00 = .sdata:0x80573F00; // type:object size:0x7 data:string
-lbl_80573F08 = .sdata:0x80573F08; // type:object size:0x8 data:string
-lbl_80573F10 = .sdata:0x80573F10; // type:object size:0x5 data:string
-lbl_80573F18 = .sdata:0x80573F18; // type:object size:0x8 data:string
-lbl_80573F20 = .sdata:0x80573F20; // type:object size:0x5 data:string
+@36307 = .sdata:0x80573EF0; // type:object size:0x6 scope:local data:string
+@36309 = .sdata:0x80573EF8; // type:object size:0x7 scope:local data:string
+@50393 = .sdata:0x80573F00; // type:object size:0x7 scope:local data:string
+@50394 = .sdata:0x80573F08; // type:object size:0x8 scope:local data:string
+@50395 = .sdata:0x80573F10; // type:object size:0x5 scope:local data:string
+@50396 = .sdata:0x80573F18; // type:object size:0x8 scope:local data:string
+@50397 = .sdata:0x80573F20; // type:object size:0x5 scope:local data:string
lbl_80573F28 = .sdata:0x80573F28; // type:object size:0x4 data:4byte
lbl_80573F2C = .sdata:0x80573F2C; // type:object size:0x4 data:4byte
lbl_80573F30 = .sdata:0x80573F30; // type:object size:0x8 data:string
@@ -42283,7 +42369,7 @@ lbl_805758C8 = .sbss:0x805758C8; // type:object size:0x8 data:4byte
NUMBER_OF_ITEMS = .sbss:0x805758D0; // type:object size:0x4 data:4byte
sIsPerformingInitialCollection__9dAcItem_c = .sbss:0x805758D4; // type:object size:0x1 data:byte
TREASURE_TEMP_COLLECT = .sbss:0x805758D8; // type:object size:0x4 data:4byte
-CURRENT_COUNT_VALUE = .sbss:0x805758DC; // type:object size:0x4 data:4byte
+sCollectionCurrentCount__9dAcItem_c = .sbss:0x805758DC; // type:object size:0x4 data:4byte
lbl_805758E0 = .sbss:0x805758E0; // type:object size:0x4 align:4 data:float
lbl_805758E4 = .sbss:0x805758E4; // type:object size:0x4 align:4 data:float
lbl_805758E8 = .sbss:0x805758E8; // type:object size:0x4 align:4 data:float
@@ -42348,9 +42434,9 @@ lbl_805759F0 = .sbss:0x805759F0; // type:object size:0x1 data:byte
lbl_805759F1 = .sbss:0x805759F1; // type:object size:0x1 data:byte
lbl_805759F4 = .sbss:0x805759F4; // type:object size:0x4 align:4 data:float
lbl_805759F8 = .sbss:0x805759F8; // type:object size:0x8 data:byte
-sInstance__17dLytControlGame_c = .sbss:0x80575A00; // type:object size:0x8 data:4byte
-MENU_PAUSE = .sbss:0x80575A08; // type:object size:0x8 data:4byte
-lbl_80575A10 = .sbss:0x80575A10; // type:object size:0x8 data:byte
+sInstance__17dLytControlGame_c = .sbss:0x80575A00; // type:object size:0x4 data:4byte
+@LOCAL@initializeState_Pause_SetRes__17dLytControlGame_cFv@sLytArcs = .sbss:0x80575A08; // type:object size:0x8 scope:local data:4byte
+@GUARD@initializeState_Pause_SetRes__17dLytControlGame_cFv@sLytArcs = .sbss:0x80575A10; // type:object size:0x1 scope:local data:byte
lbl_80575A18 = .sbss:0x80575A18; // type:object size:0x1 data:byte
lbl_80575A19 = .sbss:0x80575A19; // type:object size:0x1 data:byte
lbl_80575A1A = .sbss:0x80575A1A; // type:object size:0x6 data:byte
@@ -42437,8 +42523,8 @@ mVec2__Zero = .sbss:0x80575C70; // type:object size:0x4 align:4 data:float
mVec2__Ex = .sbss:0x80575C78; // type:object size:0x4 align:4 data:float
mVec2__Ey = .sbss:0x80575C80; // type:object size:0x4 align:4 data:float
m_video__6mVideo = .sbss:0x80575C88; // type:object size:0x8 data:4byte
-MSB_ALLOC_FUNC = .sbss:0x80575C90; // type:object size:0x4 data:4byte
-MSB_FREE_FUNC = .sbss:0x80575C94; // type:object size:0x4 data:4byte
+MSB_ALLOC_FUNC = .sbss:0x80575C90; // type:object size:0x4 scope:local data:4byte
+MSB_FREE_FUNC = .sbss:0x80575C94; // type:object size:0x4 scope:local data:4byte
AudioDecodeThreadCreated = .sbss:0x80575C98; // type:object size:0x8 scope:local data:4byte
lbl_80575CA0 = .sbss:0x80575CA0; // type:object size:0x4 scope:local data:4byte
OldVIPostCallback = .sbss:0x80575CA4; // type:object size:0x4 data:4byte
@@ -45374,22 +45460,22 @@ lbl_80579DF8 = .sdata2:0x80579DF8; // type:object size:0x4 align:4 data:float
lbl_80579E00 = .sdata2:0x80579E00; // type:object size:0x8 align:8 data:double
lbl_80579E08 = .sdata2:0x80579E08; // type:object size:0x4 align:4 data:float
lbl_80579E10 = .sdata2:0x80579E10; // type:object size:0x8 align:8 data:double
-lbl_80579E18 = .sdata2:0x80579E18; // type:object size:0x4 align:4 data:float
-lbl_80579E20 = .sdata2:0x80579E20; // type:object size:0x8 align:8 data:double
-lbl_80579E28 = .sdata2:0x80579E28; // type:object size:0x4 align:4 data:float
-lbl_80579E2C = .sdata2:0x80579E2C; // type:object size:0x4 align:4 data:float
-lbl_80579E30 = .sdata2:0x80579E30; // type:object size:0x4 align:4 data:float
-lbl_80579E34 = .sdata2:0x80579E34; // type:object size:0x4 align:4 data:float
-lbl_80579E38 = .sdata2:0x80579E38; // type:object size:0x4 align:4 data:float
-lbl_80579E3C = .sdata2:0x80579E3C; // type:object size:0x4 align:4 data:float
-lbl_80579E40 = .sdata2:0x80579E40; // type:object size:0x4 align:4 data:float
-lbl_80579E44 = .sdata2:0x80579E44; // type:object size:0x4 align:4 data:float
-lbl_80579E48 = .sdata2:0x80579E48; // type:object size:0x4 align:4 data:float
-lbl_80579E4C = .sdata2:0x80579E4C; // type:object size:0x4 align:4 data:float
-lbl_80579E50 = .sdata2:0x80579E50; // type:object size:0x4 align:4 data:float
-lbl_80579E54 = .sdata2:0x80579E54; // type:object size:0x4 align:4 data:float
-lbl_80579E58 = .sdata2:0x80579E58; // type:object size:0x4 align:4 data:float
-lbl_80579E5C = .sdata2:0x80579E5C; // type:object size:0x4 align:4 data:float
+@34553 = .sdata2:0x80579E18; // type:object size:0x4 scope:local align:4 data:float
+@34621 = .sdata2:0x80579E20; // type:object size:0x8 scope:local align:8 data:double
+@34831 = .sdata2:0x80579E28; // type:object size:0x4 scope:local align:4 data:float
+@34832 = .sdata2:0x80579E2C; // type:object size:0x4 scope:local align:4 data:float
+@34833 = .sdata2:0x80579E30; // type:object size:0x4 scope:local align:4 data:float
+@35090 = .sdata2:0x80579E34; // type:object size:0x4 scope:local align:4 data:float
+@35091 = .sdata2:0x80579E38; // type:object size:0x4 scope:local align:4 data:float
+@35092 = .sdata2:0x80579E3C; // type:object size:0x4 scope:local align:4 data:float
+@35093 = .sdata2:0x80579E40; // type:object size:0x4 scope:local align:4 data:float
+@35094 = .sdata2:0x80579E44; // type:object size:0x4 scope:local align:4 data:float
+@35095 = .sdata2:0x80579E48; // type:object size:0x4 scope:local align:4 data:float
+@35096 = .sdata2:0x80579E4C; // type:object size:0x4 scope:local align:4 data:float
+@35456 = .sdata2:0x80579E50; // type:object size:0x4 scope:local align:4 data:float
+@35457 = .sdata2:0x80579E54; // type:object size:0x4 scope:local align:4 data:float
+@35550 = .sdata2:0x80579E58; // type:object size:0x4 scope:local align:4 data:float
+@35624 = .sdata2:0x80579E5C; // type:object size:0x4 scope:local align:4 data:float
@17201 = .sdata2:0x80579E60; // type:object size:0x8 scope:local align:8 data:double
@19382 = .sdata2:0x80579E68; // type:object size:0x4 scope:local align:4 data:float
@19383 = .sdata2:0x80579E6C; // type:object size:0x4 scope:local align:4 data:float
@@ -48463,19 +48549,19 @@ lbl_8057CA54 = .sdata2:0x8057CA54; // type:object size:0x4 align:4 data:float
lbl_8057CA58 = .sdata2:0x8057CA58; // type:object size:0x4 align:4 data:float
lbl_8057CA5C = .sdata2:0x8057CA5C; // type:object size:0x4 align:4 data:float
lbl_8057CA60 = .sdata2:0x8057CA60; // type:object size:0x8 align:8 data:double
-lbl_8057CA68 = .sdata2:0x8057CA68; // type:object size:0x4 align:4 data:float
-lbl_8057CA6C = .sdata2:0x8057CA6C; // type:object size:0x4 align:4 data:float
-lbl_8057CA70 = .sdata2:0x8057CA70; // type:object size:0x4 data:4byte
-lbl_8057CA74 = .sdata2:0x8057CA74; // type:object size:0x4 data:4byte
-lbl_8057CA78 = .sdata2:0x8057CA78; // type:object size:0x4 data:4byte
-lbl_8057CA7C = .sdata2:0x8057CA7C; // type:object size:0x4 data:4byte
-lbl_8057CA80 = .sdata2:0x8057CA80; // type:object size:0x4 data:4byte
-lbl_8057CA84 = .sdata2:0x8057CA84; // type:object size:0x4 align:4 data:float
-lbl_8057CA88 = .sdata2:0x8057CA88; // type:object size:0x4 align:4 data:float
-lbl_8057CA8C = .sdata2:0x8057CA8C; // type:object size:0x4 align:4 data:float
-lbl_8057CA90 = .sdata2:0x8057CA90; // type:object size:0x4 align:4 data:float
-lbl_8057CA94 = .sdata2:0x8057CA94; // type:object size:0x4 align:4 data:float
-lbl_8057CA98 = .sdata2:0x8057CA98; // type:object size:0x8 align:8 data:double
+@48591 = .sdata2:0x8057CA68; // type:object size:0x4 scope:local align:4 data:float
+@48592 = .sdata2:0x8057CA6C; // type:object size:0x4 scope:local align:4 data:float
+sMenuPause = .sdata2:0x8057CA70; // type:object size:0x4 scope:local data:4byte
+sMap2D = .sdata2:0x8057CA74; // type:object size:0x4 scope:local data:4byte
+sMapField = .sdata2:0x8057CA78; // type:object size:0x4 scope:local data:4byte
+sMapSky = .sdata2:0x8057CA7C; // type:object size:0x4 scope:local data:4byte
+sCommonArrow = .sdata2:0x8057CA80; // type:object size:0x4 scope:local data:4byte
+@48940 = .sdata2:0x8057CA84; // type:object size:0x4 scope:local align:4 data:float
+@50709 = .sdata2:0x8057CA88; // type:object size:0x4 scope:local align:4 data:float
+@50710 = .sdata2:0x8057CA8C; // type:object size:0x4 scope:local align:4 data:float
+@50711 = .sdata2:0x8057CA90; // type:object size:0x4 scope:local align:4 data:float
+@50712 = .sdata2:0x8057CA94; // type:object size:0x4 scope:local align:4 data:float
+@50839 = .sdata2:0x8057CA98; // type:object size:0x8 scope:local align:8 data:double
lbl_8057CAA0 = .sdata2:0x8057CAA0; // type:object size:0x4 align:4 data:float
lbl_8057CAA4 = .sdata2:0x8057CAA4; // type:object size:0x4 align:4 data:float
lbl_8057CAA8 = .sdata2:0x8057CAA8; // type:object size:0x4 align:4 data:float
@@ -51502,16 +51588,29 @@ LytMsgWindow__STATE_DEMO_IN = .bss:0x805AD5B0; // type:object size:0x40 data:4by
LytMsgWindow__STATE_DEMO_VISIBLE = .bss:0x805AD5F0; // type:object size:0x40 data:4byte
LytMsgWindow__STATE_DEMO_OUT = .bss:0x805AD630; // type:object size:0x30 data:4byte
lbl_805AD660 = .bss:0x805AD660; // type:object size:0x1010 data:4byte
-lbl_805AE670 = .bss:0x805AE670; // type:object size:0x10
-LytMsgWindowSelectBtn__LytMsgWindowSelectBtnParts__STATE_WAIT = .bss:0x805AE680; // type:object size:0x40 data:4byte
-LytMsgWindowSelectBtn__LytMsgWindowSelectBtnParts__STATE_ON = .bss:0x805AE6C0; // type:object size:0x40 data:4byte
-LytMsgWindowSelectBtn__LytMsgWindowSelectBtnParts__STATE_SELECT = .bss:0x805AE700; // type:object size:0x40 data:4byte
-LytMsgWindowSelectBtn__LytMsgWindowSelectBtnParts__STATE_OFF = .bss:0x805AE740; // type:object size:0x40 data:4byte
-StateID_Wait__24dLytMsgWindowSelectBtn_c = .bss:0x805AE780; // type:object size:0x40 data:4byte
-LytMsgWindowSelectBtn__STATE_IN = .bss:0x805AE7C0; // type:object size:0x40 data:4byte
-LytMsgWindowSelectBtn__STATE_WAIT_SELECT = .bss:0x805AE800; // type:object size:0x80 data:4byte
-LytMsgWindowSelectBtn__STATE_WAIT_DECIDE = .bss:0x805AE880; // type:object size:0x80 data:4byte
-LytMsgWindowSelectBtn__STATE_OUT = .bss:0x805AE900; // type:object size:0x30 data:4byte
+@28943 = .bss:0x805AE670; // type:object size:0xC scope:local
+...bss.0 = .bss:0x805AE670; // type:label scope:local
+StateID_Wait__29dLytMsgWindowSelectBtnParts_c = .bss:0x805AE680; // type:object size:0x30 data:4byte
+@28947 = .bss:0x805AE6B0; // type:object size:0xC scope:local
+StateID_On__29dLytMsgWindowSelectBtnParts_c = .bss:0x805AE6C0; // type:object size:0x30 data:4byte
+@28951 = .bss:0x805AE6F0; // type:object size:0xC scope:local
+StateID_Select__29dLytMsgWindowSelectBtnParts_c = .bss:0x805AE700; // type:object size:0x30 data:4byte
+@28955 = .bss:0x805AE730; // type:object size:0xC scope:local
+StateID_Off__29dLytMsgWindowSelectBtnParts_c = .bss:0x805AE740; // type:object size:0x30 data:4byte
+@28959 = .bss:0x805AE770; // type:object size:0xC scope:local
+StateID_Wait__24dLytMsgWindowSelectBtn_c = .bss:0x805AE780; // type:object size:0x30 data:4byte
+@28963 = .bss:0x805AE7B0; // type:object size:0xC scope:local
+StateID_In__24dLytMsgWindowSelectBtn_c = .bss:0x805AE7C0; // type:object size:0x30 data:4byte
+@28967 = .bss:0x805AE7F0; // type:object size:0xC scope:local
+StateID_WaitSelect__24dLytMsgWindowSelectBtn_c = .bss:0x805AE800; // type:object size:0x30 data:4byte
+@28971 = .bss:0x805AE830; // type:object size:0xC scope:local
+StateID_CursorInOut__24dLytMsgWindowSelectBtn_c = .bss:0x805AE840; // type:object size:0x30 scope:global
+@28975 = .bss:0x805AE870; // type:object size:0xC scope:local
+StateID_WaitDecide__24dLytMsgWindowSelectBtn_c = .bss:0x805AE880; // type:object size:0x30 data:4byte
+@28979 = .bss:0x805AE8B0; // type:object size:0xC scope:local
+StateID_WaitCancel__24dLytMsgWindowSelectBtn_c = .bss:0x805AE8C0; // type:object size:0x30 scope:global
+@28983 = .bss:0x805AE8F0; // type:object size:0xC scope:local
+StateID_Out__24dLytMsgWindowSelectBtn_c = .bss:0x805AE900; // type:object size:0x30 data:4byte
@18287 = .bss:0x805AE930; // type:object size:0xC scope:local
...bss.0 = .bss:0x805AE930; // type:label scope:local
StateID_Invisible__19dLytMsgWindowTalk_c = .bss:0x805AE940; // type:object size:0x30 data:4byte
@@ -52294,17 +52393,27 @@ AcJstudioAct__STATE_PERFORMANCE = .bss:0x805B7CF0; // type:object size:0x40 data
AcJstudioAct__STATE_LEAVING = .bss:0x805B7D30; // type:object size:0x30 data:4byte
lbl_805B7D60 = .bss:0x805B7D60; // type:object size:0x10 data:4byte
lbl_805B7D70 = .bss:0x805B7D70; // type:object size:0x60 data:4byte
-lbl_805B7DD0 = .bss:0x805B7DD0; // type:object size:0x10
-lbl_805B7DE0 = .bss:0x805B7DE0; // type:object size:0x20
-StateID_Normal__17dLytControlGame_c = .bss:0x805B7E00; // type:object size:0x40 data:4byte
-LytControlGame__StateID_Pause_SetRes = .bss:0x805B7E40; // type:object size:0x40 data:4byte
-LytControlGame__StateID_Pause_SyncRes = .bss:0x805B7E80; // type:object size:0x40 data:4byte
-LytControlGame__StateID_Pause = .bss:0x805B7EC0; // type:object size:0x40 data:4byte
-LytControlGame__StateID_DelRes = .bss:0x805B7F00; // type:object size:0x40 data:4byte
-LytControlGame__StateID_Map_SetRes = .bss:0x805B7F40; // type:object size:0x40 data:4byte
-LytControlGame__StateID_Map_SyncRes = .bss:0x805B7F80; // type:object size:0x40 data:4byte
-LytControlGame__StateID_Map = .bss:0x805B7FC0; // type:object size:0x40 data:4byte
-LytControlGame__StateID_DelRes2 = .bss:0x805B8000; // type:object size:0x40 data:4byte
+@36242 = .bss:0x805B7DD0; // type:object size:0xC scope:local
+...bss.0 = .bss:0x805B7DD0; // type:label scope:local
+sHio = .bss:0x805B7DE0; // type:object size:0x10
+@36261 = .bss:0x805B7DF0; // type:object size:0xC scope:local
+StateID_Normal__17dLytControlGame_c = .bss:0x805B7E00; // type:object size:0x30 data:4byte
+@36265 = .bss:0x805B7E30; // type:object size:0xC scope:local
+StateID_Pause_SetRes__17dLytControlGame_c = .bss:0x805B7E40; // type:object size:0x30 data:4byte
+@36269 = .bss:0x805B7E70; // type:object size:0xC scope:local
+StateID_Pause_SyncRes__17dLytControlGame_c = .bss:0x805B7E80; // type:object size:0x30 data:4byte
+@36273 = .bss:0x805B7EB0; // type:object size:0xC scope:local
+StateID_Pause__17dLytControlGame_c = .bss:0x805B7EC0; // type:object size:0x30 data:4byte
+@36277 = .bss:0x805B7EF0; // type:object size:0xC scope:local
+StateID_Pause_DelRes__17dLytControlGame_c = .bss:0x805B7F00; // type:object size:0x30 data:4byte
+@36281 = .bss:0x805B7F30; // type:object size:0xC scope:local
+StateID_Map_SetRes__17dLytControlGame_c = .bss:0x805B7F40; // type:object size:0x30 data:4byte
+@36285 = .bss:0x805B7F70; // type:object size:0xC scope:local
+StateID_Map_SyncRes__17dLytControlGame_c = .bss:0x805B7F80; // type:object size:0x30 data:4byte
+@36289 = .bss:0x805B7FB0; // type:object size:0xC scope:local
+StateID_Map__17dLytControlGame_c = .bss:0x805B7FC0; // type:object size:0x30 data:4byte
+@36293 = .bss:0x805B7FF0; // type:object size:0xC scope:local
+StateID_Map_DelRes__17dLytControlGame_c = .bss:0x805B8000; // type:object size:0x30 data:4byte
lbl_805B8040 = .bss:0x805B8040; // type:object size:0xE0 align:4 data:float
lbl_805B8120 = .bss:0x805B8120; // type:object size:0x10
lbl_805B8130 = .bss:0x805B8130; // type:object size:0x60 data:4byte
diff --git a/configure.py b/configure.py
index 8c71ad3b..02365a0b 100644
--- a/configure.py
+++ b/configure.py
@@ -663,7 +663,7 @@ config.libs = [
Object(NonMatching, "toBeSorted/d_a_npc_ken_talk.cpp"),
Object(NonMatching, "toBeSorted/d_a_jstudio_act.cpp"),
Object(NonMatching, "toBeSorted/d_a_jstudio_sys.cpp"),
- Object(NonMatching, "d/lyt/d_lyt_control_game.cpp"),
+ Object(Matching, "d/lyt/d_lyt_control_game.cpp"),
Object(NonMatching, "d/lyt/d_lyt_control_title.cpp"),
Object(NonMatching, "d/tg/d_t_map_area.cpp"),
Object(NonMatching, "d/tg/d_t_truck_rails.cpp"),
diff --git a/include/d/a/d_a_item.h b/include/d/a/d_a_item.h
index 0997fb68..ed78c6c4 100644
--- a/include/d/a/d_a_item.h
+++ b/include/d/a/d_a_item.h
@@ -105,8 +105,17 @@ public:
return sIsPerformingInitialCollection;
}
+ static s32 getCollectionCurrentCount() {
+ return sCollectionCurrentCount;
+ }
+
+ s32 getQuantity() const {
+ return mItemQuantity;
+ }
+
private:
static bool sIsPerformingInitialCollection;
+ static s32 sCollectionCurrentCount;
/* 0x334 */ UNKTYPE *mpMdl; // Model has its own handling system
/* 0x338 */ dShadowCircle_c mShdw;
diff --git a/include/d/a/d_a_itembase.h b/include/d/a/d_a_itembase.h
index a08c33a2..9f91e60d 100644
--- a/include/d/a/d_a_itembase.h
+++ b/include/d/a/d_a_itembase.h
@@ -250,6 +250,10 @@ public:
static u16 getTearBit(int tearNum);
static bool setDungeonFlagForTear(int tearNum);
+ u16 getItemId_i() const {
+ return mId;
+ }
+
private:
u16 mId;
diff --git a/include/d/d_cs_game.h b/include/d/d_cs_game.h
index b064844f..52940b71 100644
--- a/include/d/d_cs_game.h
+++ b/include/d/d_cs_game.h
@@ -436,8 +436,9 @@ public:
bool isCursorActive() const {
return mCursorActive;
}
- void setField0x9A0(u8 val) {
- mCursorActive = val;
+
+ void setField_0x9A2(bool value) {
+ field_0x9A2 = value;
}
void offNextCursor() {
diff --git a/include/d/d_message.h b/include/d/d_message.h
index a0729e2c..2c17253a 100644
--- a/include/d/d_message.h
+++ b/include/d/d_message.h
@@ -247,12 +247,12 @@ public:
mInMapEvent = val;
}
- s32 getField_0x32C() const {
- return field_0x32C;
+ s32 getMapEvent() const {
+ return mMapEvent;
}
- void setField_0x32C(s32 val) {
- field_0x32C = val;
+ void setMapEvent(s32 val) {
+ mMapEvent = val;
}
void setField_0x329(bool v) {
@@ -267,6 +267,10 @@ public:
return field_0x32A;
}
+ bool getField_0x330() const {
+ return field_0x330;
+ }
+
void setField_0x330(bool v) {
field_0x330 = v;
}
@@ -367,8 +371,8 @@ private:
/* 0x32A */ bool field_0x32A;
/* 0x32B */ u8 field_0x32B;
- /* 0x32C */ s32 field_0x32C;
- /* 0x330 */ u8 field_0x330;
+ /* 0x32C */ s32 mMapEvent;
+ /* 0x330 */ bool field_0x330;
/* 0x334 */ u32 mMinigameResultPoints;
/* 0x338 */ u32 mMinigameTime;
diff --git a/include/d/flag/storyflag_map.h b/include/d/flag/storyflag_map.h
index 5ebbc965..64ca1504 100644
--- a/include/d/flag/storyflag_map.h
+++ b/include/d/flag/storyflag_map.h
@@ -60,7 +60,7 @@ enum StoryFlags_e {
/** [Harp Cutscene (Lanayru Desert layer 2 / Lanayru Mines layer 2 / Temple of Time layer 2 / Behind The Temple
* layer 3)] Story Flag #9 (0x0009) - JP 805ACD58 0x04 / US 805A9AD8 0x04
*/
- STORYFLAG_9,
+ STORYFLAG_HARP_CUTSCENE,
/** [Entering Ancient Cistern Cutscene]
* Story Flag #10 (0x000A) - JP 805ACD58 0x08 / US 805A9AD8 0x08
@@ -111,7 +111,7 @@ enum StoryFlags_e {
/** [Fire Dragon Text after SotH part Cutscene (Eldin Volcano, Digging Mitts Cave, Volcano Summit Waterfall layer
* 4)] Story Flag #19 (0x0013) - JP 805ACD5B 0x08 / US 805A9ADB 0x08
*/
- STORYFLAG_19,
+ STORYFLAG_BOKO_BASE_BEATEN,
/** [Set when learning 3rd SotH part (Groosenator to Lanayru ready)]
* Story Flag #20 (0x0014) - JP 805ACD5B 0x10 / US 805A9ADB 0x10
@@ -718,7 +718,7 @@ enum StoryFlags_e {
/** [Groose lands in Faron after Harp (Sealed Temple layer 2)]
* Story Flag #140 (0x008C) - JP 805ACD67 0x04 / US 805A9AE7 0x04
*/
- STORYFLAG_140,
+ STORYFLAG_GROOSE_LANDS_IN_FARON,
/** [Ballad of the Goddess played with Impa (Sealed Grounds layer 2)]
* Story Flag #141 (0x008D) - JP 805ACD6C 0x01 / US 805A9AEC 0x01
@@ -863,7 +863,7 @@ enum StoryFlags_e {
/** [Eldin Eruption Cutscene ready to play (set when Levias explains SotH quest, set and unset by Faron and Lanayru
* SotH)] Story Flag #169 (0x00A9) - JP 805ACD62 0x01 / US 805A9AE2 0x01
*/
- STORYFLAG_169,
+ STORYFLAG_ELDIN_VOLCANO_CAN_ERUPT,
/** [Fire Dragon teaches SotH part Cutscene (Fire Dragon's Lair layer 2)]
* Story Flag #170 (0x00AA) - JP 805ACD62 0x02 / US 805A9AE2 0x02
@@ -948,12 +948,12 @@ enum StoryFlags_e {
/** [Water Basin collected (unsets when scrapper picks up anything else)]
* Story Flag #186 (0x00BA) - JP 805ACD69 0x02 / US 805A9AE9 0x02
*/
- STORYFLAG_186,
+ STORYFLAG_SCRAPPER_HAS_WATER_BASIN,
/** [Big Frog Watered]
* Story Flag #187 (0x00BB) - JP 805ACD69 0x04 / US 805A9AE9 0x04
*/
- STORYFLAG_187,
+ STORYFLAG_SUMMIT_BIG_FROG_WATERED,
/** [Asking Fi about the Water Basin after finding the Big Flames in fromt of FS]
* Story Flag #188 (0x00BC) - JP 805ACD69 0x08 / US 805A9AE9 0x08
@@ -3738,7 +3738,7 @@ enum StoryFlags_e {
/** [set after scrappers text at start of Water Basin Escord]
* Story Flag #743 (0x02E7) - JP 805ACDA6 0x80 / US 805A9B26 0x80
*/
- STORYFLAG_743,
+ STORYFLAG_WATER_BASIN_ESCORT_STARTED,
/** [Scrapper text at start of scrapper escort]
* Story Flag #744 (0x02E8) - JP 805ACDA9 0x01 / US 805A9B29 0x01
diff --git a/include/d/lyt/d_lyt_control_game.h b/include/d/lyt/d_lyt_control_game.h
index c36b2ee0..a14bc610 100644
--- a/include/d/lyt/d_lyt_control_game.h
+++ b/include/d/lyt/d_lyt_control_game.h
@@ -1,29 +1,58 @@
#ifndef D_LYT_CONTROL_GAME_H
#define D_LYT_CONTROL_GAME_H
+// clang-format off
+// vtable order
+#include "common.h"
#include "d/d_base.h"
-#include "d/lyt/d_lyt_map.h"
-#include "d/lyt/d_lyt_wipe.h"
#include "d/lyt/meter/d_lyt_meter.h"
#include "d/lyt/msg_window/d_lyt_msg_window.h"
#include "d/lyt/msg_window/d_lyt_simple_window.h"
+#include "d/lyt/d_lyt_wipe.h"
+#include "d/lyt/d_lyt_help.h"
+#include "d/lyt/d_lyt_map.h"
#include "s/s_State.hpp"
#include "toBeSorted/arc_managers/layout_arc_manager.h"
#include "toBeSorted/raii_ptr.h"
+// clang-format on
+
+class dLytDrawMark_c;
class dLytControlGame_c : public dBase_c {
public:
dLytControlGame_c();
virtual ~dLytControlGame_c();
+ enum Cmd_e {
+ CMD_NONE = 0,
+ CMD_MAP = 1,
+ CMD_PAUSE = 2,
+ CMD_HELP = 3,
+ };
+
+ virtual int create() override;
+ virtual int doDelete() override;
+ virtual int execute() override;
+ virtual int draw() override;
+
bool isInSomeMapState() const;
bool isNotInStateMap() const;
- void openCollectionScreenDemo();
- bool isStateNormalOrNotInEvent() const;
- void somehowRelatedToEnteringLightPillars(s32, s32, s32);
-
- void fn_802CCD40(bool);
+ bool isStateNotNormalOrInEvent() const;
+ bool fn_802CFF60() const;
+
+ void setMapEventDone(bool);
void fn_802D04F0();
+ void checkForBeaconNextToMark();
+
+ void hideHelp();
+ void changeHelpText(s32 textIndex);
+ void openPause();
+ void openPauseDemo();
+ void openHelp(s32 textIndex);
+ void openMap();
+ void openMapEvent(s32 mapEvent, s32 arg1, s32 arg2);
+
+ void resetFootsteps();
const dMapFootPrintsQueue_c *getFootprintsQueue() const {
return mFootprintsMgr.getQueue();
@@ -80,31 +109,43 @@ public:
}
private:
+ bool checkStoryflag(s32 flag) const;
+ void fn_802CFA90();
+ bool canOpenPause();
+ bool releaseRes();
+ bool decrementRes();
+
/* 0x00068 */ UI_STATE_MGR_DECLARE(dLytControlGame_c);
- /* 0x000A4 */ RaiiPtr<void*> field_0x000A4;
+ /* 0x000A4 */ RaiiPtr<dLytMap_c> mpMap;
/* 0x000A8 */ dLytMeter_c mMeter;
/* 0x13C10 */ dLytMsgWindow_c mMsgWindow;
/* 0x14E34 */ dLytSimpleWindow_c mSimpleWindow;
/* 0x152A0 */ dLytWipe_c mWipe;
- /* 0x15848 */ u8 _0x15848[0x15850 - 0x15848];
+ /* 0x15848 */ dLytHelp_c *mpHelp;
+ /* 0x1584C */ dLytDrawMark_c *mpDrawMark;
/* 0x15850 */ dMapFootPrintsMgr_c mFootprintsMgr;
- /* 0x15C24 */ UNKWORD field_0x15C24;
- /* 0x15C28 */ UNKWORD field_0x15C28;
-
+ /* 0x15C24 */ s32 mCommand;
+ /* 0x15C28 */ s32 mHelpTextIndex;
/* 0x15C2C */ s32 mCurrentPauseDisp;
/* 0x15C30 */ s32 mPauseDisp00Tab;
+ /* 0x15C34 */ u8 mIsEvent;
+ /* 0x15C38 */ s32 mMapEvent;
- /* 0x15C34 */ u8 _0x15C34[0x15C40 - 0x15C34];
+ /* 0x15C3C */ u8 _0x15C3C[0x15C40 - 0x15C3C];
/* 0x15C40 */ LayoutArcControl mLytArcControl;
- /* 0x15C4C */ u8 _0x15C4C[0x15C60 - 0x15C4C];
+ /* 0x15C4C */ s32 mMapEventArg1;
+ /* 0x15C50 */ s32 mMapEventArg2;
- /* 0x15C60 */ u16 mItemForPauseDemo;
+ /* 0x15C54 */ UNKWORD field_0x15C54;
+ /* 0x15C58 */ UNKWORD field_0x15C58;
- /* 0x15C62 */ u8 _0x15C62[0x15C64 - 0x15C62];
+ /* 0x15C5C */ u8 _0x15C5C[0x15C60 - 0x15C5C];
+ /* 0x15C60 */ u16 mItemForPauseDemo;
+ /* 0x15C62 */ u16 mPickupItemCount;
/* 0x15C64 */ u16 mItemCountForPauseDemo;
/* 0x15C66 */ u8 field_0x15C66;
/* 0x15C67 */ bool mIsPauseDemo;
diff --git a/include/d/lyt/d_lyt_draw_mark.h b/include/d/lyt/d_lyt_draw_mark.h
new file mode 100644
index 00000000..8ec65799
--- /dev/null
+++ b/include/d/lyt/d_lyt_draw_mark.h
@@ -0,0 +1,48 @@
+#ifndef D_LYT_DRAW_MARK_H
+#define D_LYT_DRAW_MARK_H
+
+#include "d/lyt/d2d.h"
+#include "m/m_vec.h"
+#include "s/s_State.hpp"
+
+class dLytDrawMark_c {
+public:
+ dLytDrawMark_c() : mStateMgr(*this) {}
+ ~dLytDrawMark_c() {}
+
+ bool build(UNKWORD);
+ bool remove();
+ bool execute();
+ bool draw();
+
+ u8 getField_0x940() const {
+ return field_0x940;
+ }
+
+ void setField_0x941(u8 v) {
+ field_0x941 = v;
+ }
+
+private:
+ /* 0x000 */ UI_STATE_MGR_DECLARE(dLytDrawMark_c);
+ /* 0x018 */ d2d::LytBase_c mLyt;
+ /* 0x0CC */ d2d::AnmGroup_c mAnm[16];
+
+ /* 0x4CC */ u8 _0x4CC[0x504 - 0x4CC];
+
+ /* 0x504 */ d2d::ResAccIf_c mResAcc;
+
+ /* 0x874 */ u8 _0x874[0x88C - 0x874];
+
+ /* 0x88C */ mVec2_c field_0x88C[6];
+ /* 0x8BC */ mVec2_c field_0x8BC[6];
+
+ /* 0x8EC */ u8 _0x8EC[0x940 - 0x8EC];
+
+ /* 0x940 */ u8 field_0x940;
+ /* 0x941 */ u8 field_0x941;
+
+ /* 0x942 */ u8 _0x942[0x958 - 0x942];
+};
+
+#endif
diff --git a/include/d/lyt/d_lyt_help.h b/include/d/lyt/d_lyt_help.h
index e3bd2401..10f9f377 100644
--- a/include/d/lyt/d_lyt_help.h
+++ b/include/d/lyt/d_lyt_help.h
@@ -65,6 +65,22 @@ public:
bool setText(s32 textIndex);
void changeText(s32 textIndex);
+ static dLytHelp_c *GetInstance() {
+ return sInstance;
+ }
+
+ bool isStateEnd() const {
+ return *mStateMgr.getStateID() == StateID_End;
+ }
+
+ void requestOut() {
+ mOutRequest = true;
+ }
+
+ bool isWaiting() const {
+ return mIsWaiting;
+ }
+
private:
static dLytHelp_c *sInstance;
@@ -80,8 +96,8 @@ private:
/* 0x04C */ d2d::ResAccIf_c mResAcc;
/* 0x3BC */ dLytHelpMain_c *mpMain;
/* 0x3C0 */ bool field_0x3C0;
- /* 0x3C1 */ bool field_0x3C1;
- /* 0x3C2 */ bool field_0x3C2;
+ /* 0x3C1 */ bool mOutRequest;
+ /* 0x3C2 */ bool mIsWaiting;
/* 0x3C4 */ s32 mTextIndex;
/* 0x3C8 */ s32 field_0x3C8;
};
diff --git a/include/d/lyt/d_lyt_map.h b/include/d/lyt/d_lyt_map.h
index 54df7cf9..539c0721 100644
--- a/include/d/lyt/d_lyt_map.h
+++ b/include/d/lyt/d_lyt_map.h
@@ -4,6 +4,7 @@
#include "common.h"
#include "d/d_cursor_hit_check.h"
#include "d/d_message.h"
+#include "d/d_sc_game.h"
#include "d/lyt/d2d.h"
#include "d/lyt/d_lyt_map_capture.h"
#include "d/lyt/d_lyt_map_global.h"
@@ -13,6 +14,7 @@
#include "egg/core/eggColorFader.h"
#include "egg/core/eggFader.h"
#include "m/m2d.h"
+#include "m/m_allocator.h"
#include "m/m_angle.h"
#include "m/m_vec.h"
#include "nw4r/lyt/lyt_bounding.h"
@@ -87,10 +89,18 @@ public:
void execute();
+ void reset() {
+ mQueue.init();
+ }
+
const dMapFootPrintsQueue_c *getQueue() const {
return &mQueue;
}
+ void setFootstepMinDistSq(f32 value) {
+ mMinStepDistanceSq = value;
+ }
+
private:
/* 0x004 */ dMapFootPrintsQueue_c mQueue;
/* 0x3D0 */ f32 mMinStepDistanceSq;
@@ -636,10 +646,9 @@ public:
/** arg1 = surface province */
MAP_EVENT_SAVE_OBJ = 10,
MAP_EVENT_11 = 11,
- };
-private:
- // TODO - need to come up with better names for all of these enums and concepts
+ MAP_EVENT_MAX = 12,
+ };
enum SurfaceProvince_e {
SURFACE_PROVINCE_FARON = 0,
@@ -647,6 +656,9 @@ private:
SURFACE_PROVINCE_LANAYRU = 2,
};
+private:
+ // TODO - need to come up with better names for all of these enums and concepts
+
enum AreaGroup_e {
AREAGROUP_SKY = 1,
AREAGROUP_FARON = 2,
@@ -716,7 +728,7 @@ private:
void loadTextboxes();
void saveMapState();
- void initMapState();
+ static void initMapState();
void loadMapState();
void checkCursorPointedAtMap();
@@ -747,6 +759,10 @@ private:
mMapEvent == MAP_EVENT_11;
}
+ void setMapEventDone(bool done) {
+ mEventDone = done;
+ }
+
/* 0x0010 */ UI_STATE_MGR_DECLARE(dLytMapMain_c);
/* 0x004C */ dFlowMgrBase_c mFlowMgr;
/* 0x00A4 */ dFlow_c mFlow;
@@ -896,9 +912,13 @@ private:
class dLytMap_c {
public:
dLytMap_c() {
+ mMapFader.setVisible(false);
sInstance = this;
}
virtual ~dLytMap_c() {
+ if (dScGame_c::GetInstance() != nullptr) {
+ dScGame_c::GetInstance()->setTargetingScreenPrio(0x85);
+ }
sInstance = nullptr;
}
@@ -918,6 +938,22 @@ public:
return mMapMain.isOpen();
}
+ bool checkClose() const {
+ return mMapMain.checkClose();
+ }
+
+ bool isMapIntroDone() const {
+ return mMapMain.isMapIntroDone();
+ }
+
+ void close() {
+ mMapMain.close();
+ }
+
+ static void initMapState() {
+ dLytMapMain_c::initMapState();
+ }
+
bool isVisibleNoIntro() const {
return mMapMain.isVisibleNoIntro();
}
@@ -938,6 +974,14 @@ public:
return mMapMain.mMapEvent == dLytMapMain_c::MAP_EVENT_SAVE_OBJ;
}
+ void startMapEvent(s32 mapEvent, s32 arg1, s32 arg2) {
+ mMapMain.startMapEvent(mapEvent, arg1, arg2);
+ }
+
+ void setMapEventDone(bool done) {
+ mMapMain.setMapEventDone(done);
+ }
+
void queueMapEvent(s32 mapEvent, s32 arg1, s32 arg2) {
mMapMain.queueMapEvent(mapEvent, arg1, arg2);
}
@@ -951,7 +995,7 @@ public:
private:
/* 0x0004 */ d2d::ResAccIf_c mResAcc;
/* 0x0374 */ dLytMapMain_c mMapMain;
- /* 0x91A4 */ u8 _0x91A4[0x91C0 - 0x91A4];
+ /* 0x91A4 */ mHeapAllocator_c field_0x91A4;
/* 0x91C0 */ dLytMapFader_c mMapFader;
static dLytMap_c *sInstance;
diff --git a/include/d/lyt/d_lyt_map_global.h b/include/d/lyt/d_lyt_map_global.h
index fb0b25bf..ef5d74fa 100644
--- a/include/d/lyt/d_lyt_map_global.h
+++ b/include/d/lyt/d_lyt_map_global.h
@@ -176,8 +176,12 @@ public:
mMapEvent = v;
}
- u8 getField_0x54() const {
- return field_0x54;
+ bool isInMapEvent() const {
+ return mInMapEvent;
+ }
+
+ void setInMapEvent(bool v) {
+ mInMapEvent = v;
}
void projectOntoMap(mVec2_c &result, const mVec3_c &position) const;
@@ -213,7 +217,7 @@ private:
/* 0x4E */ u8 mAlpha;
/* 0x4F */ u8 field_0x4F;
/* 0x50 */ s32 mMapEvent;
- /* 0x54 */ u8 field_0x54;
+ /* 0x54 */ bool mInMapEvent;
/* 0x55 */ u8 field_0x55;
/* 0x56 */ mAng field_0x56;
/* 0x58 */ f32 field_0x58;
diff --git a/include/d/lyt/d_lyt_pause.h b/include/d/lyt/d_lyt_pause.h
index 033ee400..f38dcc3a 100644
--- a/include/d/lyt/d_lyt_pause.h
+++ b/include/d/lyt/d_lyt_pause.h
@@ -215,6 +215,10 @@ public:
void inRequest();
+ bool isActive() const {
+ return mIsActive;
+ }
+
static f32 sDisp00ArrowRotation;
static f32 sDisp00ArrowLength;
@@ -256,7 +260,7 @@ private:
/* 0x0833 */ u8 mCurrentSelectionTab;
/* 0x0834 */ u8 mTimer;
/* 0x0835 */ u8 field_0x0835;
- /* 0x0836 */ bool field_0x0836;
+ /* 0x0836 */ bool mIsActive;
/* 0x0837 */ bool field_0x0837;
/* 0x0838 */ bool field_0x0838;
/* 0x0839 */ bool field_0x0839;
diff --git a/include/d/lyt/meter/d_lyt_meter.h b/include/d/lyt/meter/d_lyt_meter.h
index 26f36e5a..a0ae18cc 100644
--- a/include/d/lyt/meter/d_lyt_meter.h
+++ b/include/d/lyt/meter/d_lyt_meter.h
@@ -74,6 +74,13 @@ public:
POSITION_MAP = 1,
};
+ enum Mode_e {
+ MODE_MAP_INIT = 0,
+ MODE_MAP = 1,
+ MODE_PAUSE = 2,
+ MODE_NONE = 4,
+ };
+
dLytMeterMain_c();
virtual ~dLytMeterMain_c() {}
@@ -250,6 +257,18 @@ public:
return mMain.mItemSelect.fn_800F0220(arg);
}
+ bool itemSelectFn800EFDF0(bool b) const {
+ return mMain.mItemSelect.fn_800EFDF0(b);
+ }
+
+ bool minusBtnFn800F7600() const {
+ return mMain.mMinusBtn.fn_800F7600();
+ }
+
+ bool dowsingFn800FE4B0() const {
+ return mMain.mDowsing.fn_800FE4B0();
+ }
+
bool dowsingDemoRelated(s32 arg) {
return mMain.mDowsing.fn_800FE3C0(arg);
}
@@ -484,6 +503,12 @@ public:
}
}
+ static void setPlusBtnCall(bool call) {
+ if (sInstance != nullptr) {
+ sInstance->mMain.mPlusBtn.setCall(call);
+ }
+ }
+
static void setSelectBtn(f32 angle, f32 length) {
if (sInstance != nullptr) {
dLytMeterMain_c *main = &sInstance->mMain;
diff --git a/include/d/snd/d_snd_source_mgr.h b/include/d/snd/d_snd_source_mgr.h
index f3f56952..c94b3404 100644
--- a/include/d/snd/d_snd_source_mgr.h
+++ b/include/d/snd/d_snd_source_mgr.h
@@ -66,6 +66,8 @@ public:
void setMutedFromFader(bool muteFlag);
void onEventStart();
void onEventEnd();
+ void fn_803852B0();
+ void fn_803852F0();
private:
void calcEnemyObjVolume();
diff --git a/include/toBeSorted/d_beacon.h b/include/toBeSorted/d_beacon.h
index b963d98a..a0e0d588 100644
--- a/include/toBeSorted/d_beacon.h
+++ b/include/toBeSorted/d_beacon.h
@@ -19,4 +19,6 @@ void setBeaconPositionChecked(const mVec3_c *position, u32 beaconIndex);
/** Checks whether the current stage is ineligible for beacon placement */
bool doesStageForbidBeaconPlacement();
+const mVec3_c *getBeaconPosition(u32 beaconIndex);
+
#endif
diff --git a/include/toBeSorted/event_manager.h b/include/toBeSorted/event_manager.h
index d1c8bae8..1b89074f 100644
--- a/include/toBeSorted/event_manager.h
+++ b/include/toBeSorted/event_manager.h
@@ -52,6 +52,7 @@ public:
// Something like isActorInEvent maybe?
static bool FUN_800a0570(const dAcBase_c *actor);
static bool FUN_800a0ba0();
+ static bool fn_8009F990();
private:
/* 0x000 */ u8 _000[0x084 - 0x000];
diff --git a/include/toBeSorted/raii_ptr.h b/include/toBeSorted/raii_ptr.h
index 31d8ac21..22bab4d4 100644
--- a/include/toBeSorted/raii_ptr.h
+++ b/include/toBeSorted/raii_ptr.h
@@ -17,6 +17,13 @@ public:
}
}
+ void destruct() {
+ if (mPtr != nullptr) {
+ delete mPtr;
+ mPtr = nullptr;
+ }
+ }
+
void operator=(T *ptr) {
mPtr = ptr;
}
diff --git a/src/d/d_message.cpp b/src/d/d_message.cpp
index f2343080..a031544e 100644
--- a/src/d/d_message.cpp
+++ b/src/d/d_message.cpp
@@ -431,13 +431,13 @@ bool dFlow_c::handleEventInternal(const MsbFlowInfo *element) {
case 6: mapEvent = dLytMapMain_c::MAP_EVENT_FIELD_MAP_CHANGE_8; break;
case 7: mapEvent = dLytMapMain_c::MAP_EVENT_GODDESS_CUBE; break;
}
- dMessage_c::getInstance()->setField_0x32C(mapEvent);
+ dMessage_c::getInstance()->setMapEvent(mapEvent);
dMessage_c::getInstance()->setField_0x329(true);
if (dMessage_c::getInstance()->getInMapEvent() == false) {
dMessage_c::getInstance()->setInMapEvent(true);
dMessage_c::getInstance()->clearLightPillarRelatedArgs();
- if (dLytControlGame_c::getInstance()->isStateNormalOrNotInEvent()) {
- dLytControlGame_c::getInstance()->somehowRelatedToEnteringLightPillars(
+ if (dLytControlGame_c::getInstance()->isStateNotNormalOrInEvent()) {
+ dLytControlGame_c::getInstance()->openMapEvent(
mapEvent, arg1, arg2
);
}
@@ -450,18 +450,19 @@ bool dFlow_c::handleEventInternal(const MsbFlowInfo *element) {
case EVENT_END_MAP_EVENT: {
// TODO what do these modes do?
if (params1n2 == 1) {
+ // Close map
if (!dLytControlGame_c::getInstance()->isNotInStateMap()) {
- dLytControlGame_c::getInstance()->fn_802CCD40(true);
+ dLytControlGame_c::getInstance()->setMapEventDone(true);
}
} else if (params1n2 == 2) {
dMessage_c::getInstance()->setField_0x330(1);
- if (dMessage_c::getInstance()->getField_0x32C() != 4 &&
- dMessage_c::getInstance()->getField_0x32C() != 12) {
+ if (dMessage_c::getInstance()->getMapEvent() != dLytMapMain_c::MAP_EVENT_DUNGEON_MAP_GET &&
+ dMessage_c::getInstance()->getMapEvent() != dLytMapMain_c::MAP_EVENT_MAX) {
dMessage_c::getInstance()->setField_0x32A(1);
}
} else {
- if (dMessage_c::getInstance()->getField_0x32C() != 4 &&
- dMessage_c::getInstance()->getField_0x32C() != 12) {
+ if (dMessage_c::getInstance()->getMapEvent() != dLytMapMain_c::MAP_EVENT_DUNGEON_MAP_GET &&
+ dMessage_c::getInstance()->getMapEvent() != dLytMapMain_c::MAP_EVENT_MAX) {
dMessage_c::getInstance()->setField_0x32A(1);
}
}
@@ -517,7 +518,7 @@ bool dFlow_c::handleEventInternal(const MsbFlowInfo *element) {
break;
case EVENT_DEMO_COLLECTION_SCREEN:
if (!MinigameManager::isInMinigameState(MinigameManager::INSECT_CAPTURE)) {
- dLytControlGame_c::getInstance()->openCollectionScreenDemo();
+ dLytControlGame_c::getInstance()->openPauseDemo();
}
break;
}
@@ -1767,7 +1768,7 @@ void dMessage_c::init() {
mInMapEvent = false;
field_0x329 = 0;
field_0x32A = 0;
- sInstance->setField_0x32C(12);
+ sInstance->setMapEvent(dLytMapMain_c::MAP_EVENT_MAX);
field_0x330 = 0;
}
diff --git a/src/d/lyt/d_lyt_control_game.cpp b/src/d/lyt/d_lyt_control_game.cpp
index 23c96f7d..357bc1ee 100644
--- a/src/d/lyt/d_lyt_control_game.cpp
+++ b/src/d/lyt/d_lyt_control_game.cpp
@@ -1,14 +1,706 @@
#include "d/lyt/d_lyt_control_game.h"
#include "common.h"
+#include "d/a/d_a_base.h"
+#include "d/a/d_a_item.h"
+#include "d/a/d_a_itembase.h"
+#include "d/a/d_a_player.h"
+#include "d/d_base.h"
+#include "d/d_cs_game.h"
+#include "d/d_d2d.h"
+#include "d/d_heap.h"
+#include "d/d_message.h"
+#include "d/d_rawarchive.h"
+#include "d/d_sc_game.h"
+#include "d/d_stage.h"
+#include "d/d_stage_mgr.h"
+#include "d/flag/sceneflag_manager.h"
+#include "d/flag/storyflag_manager.h"
+#include "d/lyt/d_lyt_draw_mark.h"
+#include "d/lyt/d_lyt_help.h"
+#include "d/lyt/d_lyt_map.h"
+#include "d/lyt/d_lyt_map_global.h"
+#include "d/lyt/d_lyt_pause.h"
+#include "d/lyt/meter/d_lyt_meter.h"
+#include "d/snd/d_snd_player_mgr.h"
+#include "d/snd/d_snd_source_mgr.h"
+#include "d/t/d_t_map_mark.h"
+#include "f/f_base.h"
+#include "f/f_manager.h"
#include "f/f_profile_name.h"
+#include "m/m2d.h"
+#include "m/m_vec.h"
+#include "toBeSorted/arc_managers/layout_arc_manager.h"
+#include "toBeSorted/d_beacon.h"
+#include "toBeSorted/event_manager.h"
+#include "toBeSorted/raii_ptr.h"
-SPECIAL_BASE_PROFILE(LYT_CONTROL_GAME, dLytControlGame_c, fProfile::LYT_CONTROL_GAME, 0x9, 96);
+class dLytControlGame_HIO_c {
+public:
+ dLytControlGame_HIO_c();
+ virtual ~dLytControlGame_HIO_c();
-dLytControlGame_c::dLytControlGame_c() : mStateMgr(*this), field_0x15C24(0), field_0x15C28(0) {
+ /* 0x04 */ f32 field_0x04;
+ /* 0x08 */ f32 field_0x08;
+ /* 0x0C */ s16 field_0x0C;
+ /* 0x0E */ u8 field_0x0E;
+ /* 0x0F */ u8 field_0x0F;
+};
+
+dLytControlGame_HIO_c sHio;
+
+dLytControlGame_HIO_c::dLytControlGame_HIO_c() : field_0x04(300.0f), field_0x08(1.0f), field_0x0E(1), field_0x0F(0) {
+ field_0x0C = 0x1F4;
+}
+dLytControlGame_HIO_c::~dLytControlGame_HIO_c() {}
+
+SPECIAL_BASE_PROFILE(LYT_CONTROL_GAME, dLytControlGame_c, fProfile::LYT_CONTROL_GAME, 0x2A9, 0x19);
+
+dLytControlGame_c *dLytControlGame_c::sInstance;
+
+STATE_DEFINE(dLytControlGame_c, Normal);
+STATE_DEFINE(dLytControlGame_c, Pause_SetRes);
+STATE_DEFINE(dLytControlGame_c, Pause_SyncRes);
+STATE_DEFINE(dLytControlGame_c, Pause);
+STATE_DEFINE(dLytControlGame_c, Pause_DelRes);
+STATE_DEFINE(dLytControlGame_c, Map_SetRes);
+STATE_DEFINE(dLytControlGame_c, Map_SyncRes);
+STATE_DEFINE(dLytControlGame_c, Map);
+STATE_DEFINE(dLytControlGame_c, Map_DelRes);
+
+void dLytControlGame_c::initializeState_Normal() {}
+void dLytControlGame_c::executeState_Normal() {}
+void dLytControlGame_c::finalizeState_Normal() {}
+
+static const char *const sMenuPause = "MenuPause";
+static const char *const sMap2D = "Map2D";
+static const char *const sMapField = "MapField";
+static const char *const sMapSky = "MapSky";
+static const char *const sCommonArrow = "CommonArrow";
+
+void dLytControlGame_c::initializeState_Pause_SetRes() {
+ dLytMeter_c::GetInstance()->setMeterField_0x13750(dLytMeterMain_c::MODE_PAUSE);
+ dBase_c::s_NextExecuteControlFlags |= BASE_PROP_0x1;
+ static const char *sLytArcs[] = {sMenuPause, sCommonArrow};
+ mLytArcControl.set(sLytArcs, ARRAY_LENGTH(sLytArcs));
+}
+void dLytControlGame_c::executeState_Pause_SetRes() {
+ mLytArcControl.load(nullptr);
+ mStateMgr.changeState(StateID_Pause_SyncRes);
+}
+void dLytControlGame_c::finalizeState_Pause_SetRes() {}
+
+void dLytControlGame_c::initializeState_Pause_SyncRes() {}
+void dLytControlGame_c::executeState_Pause_SyncRes() {
+ if (!mLytArcControl.allLoaded()) {
+ return;
+ }
+ if (mpHelp != nullptr) {
+ return;
+ }
+ mStateMgr.changeState(StateID_Pause);
+}
+void dLytControlGame_c::finalizeState_Pause_SyncRes() {}
+
+void dLytControlGame_c::initializeState_Pause() {
+ dBase_c::createBase(fProfile::LYT_PAUSE, this, 0, OTHER);
+ if (dLytPauseMgr_c::GetInstance() == nullptr) {
+ return;
+ }
+ dLytPauseMgr_c::GetInstance()->inRequest();
+ if (dCsGame_c::GetInstance()->shouldDraw()) {
+ dCsGame_c::GetInstance()->offNextCursor();
+ }
+ mCommand = CMD_NONE;
+}
+void dLytControlGame_c::executeState_Pause() {
+ if (dLytPauseMgr_c::GetInstance() != nullptr && !dLytPauseMgr_c::GetInstance()->isActive()) {
+ mStateMgr.changeState(StateID_Pause_DelRes);
+ }
+}
+void dLytControlGame_c::finalizeState_Pause() {}
+
+void dLytControlGame_c::initializeState_Pause_DelRes() {}
+void dLytControlGame_c::executeState_Pause_DelRes() {
+ if (!mLytArcControl.release()) {
+ return;
+ }
+ if (dLytPauseMgr_c::GetInstance() != nullptr) {
+ dLytPauseMgr_c::GetInstance()->deleteRequest();
+ }
+ dSndSourceMgr_c::GetInstance()->fn_803852F0();
+ mStateMgr.changeState(StateID_Normal);
+}
+void dLytControlGame_c::finalizeState_Pause_DelRes() {
+ dLytMeter_c::GetInstance()->setMeterField_0x13750(dLytMeterMain_c::MODE_NONE);
+}
+
+void dLytControlGame_c::initializeState_Map_SetRes() {
+ // Not sure if this is the right enum
+ if (!EventManager::isInEvent() || mMapEvent == dLytMapMain_c::MAP_EVENT_11) {
+ dBase_c::s_NextExecuteControlFlags |= BASE_PROP_0x10;
+ }
+ dLytMeter_c::GetInstance()->setMeterField_0x13750(dLytMeterMain_c::MODE_MAP_INIT);
+}
+void dLytControlGame_c::executeState_Map_SetRes() {
+ LayoutArcManager::GetInstance()->loadLayoutArcFromDisk(sMap2D, nullptr);
+ if (dStageMgr_c::GetInstance()->isSTIFAreaSky()) {
+ LayoutArcManager::GetInstance()->loadLayoutArcFromDisk(sMapSky, nullptr);
+ } else {
+ LayoutArcManager::GetInstance()->loadLayoutArcFromDisk(sMapField, nullptr);
+ }
+ mStateMgr.changeState(StateID_Map_SyncRes);
+}
+void dLytControlGame_c::finalizeState_Map_SetRes() {}
+
+void dLytControlGame_c::initializeState_Map_SyncRes() {}
+void dLytControlGame_c::executeState_Map_SyncRes() {
+ dArcResult_e result1 = LayoutArcManager::GetInstance()->ensureLoaded1(sMap2D);
+ dArcResult_e result2;
+ if (dStageMgr_c::GetInstance()->isSTIFAreaSky()) {
+ result2 = LayoutArcManager::GetInstance()->ensureLoaded1(sMapSky);
+ } else {
+ result2 = LayoutArcManager::GetInstance()->ensureLoaded1(sMapField);
+ }
+ if (result1 == D_ARC_RESULT_OK && result2 == D_ARC_RESULT_OK) {
+ mStateMgr.changeState(StateID_Map);
+ }
+}
+void dLytControlGame_c::finalizeState_Map_SyncRes() {}
+
+void dLytControlGame_c::setMapEventDone(bool b) {
+ mpMap->setMapEventDone(b);
+}
+
+void dLytControlGame_c::initializeState_Map() {
+ mpMap = new (dHeap::layoutEx2Heap.heap) dLytMap_c();
+ mpMap->build();
+ mpMap->startMapEvent(mMapEvent, mMapEventArg1, mMapEventArg2);
+ dLytMapGlobal_c::GetInstance()->setInMapEvent(mMapEvent != dLytMapMain_c::MAP_EVENT_NONE);
+}
+void dLytControlGame_c::executeState_Map() {
+ if (dLytMap_c::GetInstance()->isOpen()) {
+ if (dLytMeter_c::GetInstance()->getMeterField_0x13750() != dLytMeterMain_c::MODE_MAP) {
+ dLytMeter_c::GetInstance()->setMeterField_0x13750(dLytMeterMain_c::MODE_MAP);
+ if (StoryflagManager::sInstance->getCounterOrFlag(STORYFLAG_PLUS_BTN_NOTICE)) {
+ StoryflagManager::sInstance->unsetFlag(STORYFLAG_PLUS_BTN_NOTICE);
+ }
+ }
+ if (dLytMeter_c::GetInstance()->getBasicPosition() != dLytMeterMain_c::POSITION_MAP) {
+ dLytMeter_c::GetInstance()->setBasicPosition(dLytMeterMain_c::POSITION_MAP);
+ }
+ }
+
+ if (mpMap->checkClose()) {
+ mpMap->close();
+ if (dMessage_c::getInstance()->getField_0x330()) {
+ checkForBeaconNextToMark();
+ }
+ mStateMgr.changeState(StateID_Map_DelRes);
+ }
+
+ if (mpMap->isMapIntroDone()) {
+ mStateMgr.changeState(StateID_Map_DelRes);
+ }
+ mpMap->execute();
+}
+void dLytControlGame_c::finalizeState_Map() {}
+
+void dLytControlGame_c::initializeState_Map_DelRes() {}
+void dLytControlGame_c::executeState_Map_DelRes() {
+ // Maybe an inline
+ if (dLytMap_c::GetInstance()->isVisible()) {
+ mpMap->execute();
+ return;
+ }
+
+ dArcResult_e result1 = LayoutArcManager::GetInstance()->ensureLoaded1(sMap2D);
+ dArcResult_e result2;
+
+ if (result1 != D_ARC_RESULT_ERROR_NOT_FOUND) {
+ if (result1 != D_ARC_RESULT_OK) {
+ return;
+ }
+ if (LayoutArcManager::GetInstance()->decrement(sMap2D)) {
+ if (mpMap != nullptr) {
+ mpMap->remove();
+ mpMap.destruct();
+ m2d::setLytAllocator();
+ }
+ dSndSourceMgr_c::GetInstance()->fn_803852F0();
+ mStateMgr.changeState(StateID_Normal);
+ }
+ }
+
+ if (dStageMgr_c::GetInstance()->isSTIFAreaSky()) {
+ result2 = LayoutArcManager::GetInstance()->ensureLoaded1(sMapSky);
+ } else {
+ result2 = LayoutArcManager::GetInstance()->ensureLoaded1(sMapField);
+ }
+
+ if (result2 != D_ARC_RESULT_ERROR_NOT_FOUND) {
+ if (result2 != D_ARC_RESULT_OK) {
+ return;
+ }
+ if (dStageMgr_c::GetInstance()->isSTIFAreaSky()) {
+ LayoutArcManager::GetInstance()->decrement(sMapSky);
+ } else {
+ LayoutArcManager::GetInstance()->decrement(sMapField);
+ }
+ }
+}
+void dLytControlGame_c::finalizeState_Map_DelRes() {
+ dLytMeter_c::GetInstance()->setMeterField_0x13750(dLytMeterMain_c::MODE_NONE);
+ dLytMeter_c::GetInstance()->setBasicPosition(dLytMeterMain_c::POSITION_NORMAL);
+ dMessage_c::getInstance()->setMapEvent(dLytMapMain_c::MAP_EVENT_MAX);
+}
+
+dLytControlGame_c::dLytControlGame_c() : mStateMgr(*this), mCommand(CMD_NONE), mHelpTextIndex(0) {
sInstance = this;
}
dLytControlGame_c::~dLytControlGame_c() {
sInstance = nullptr;
}
+
+int dLytControlGame_c::create() {
+ if (dStage_c::GetInstance() == nullptr) {
+ return NOT_READY;
+ }
+ dLytMap_c::initMapState();
+ mMeter.build();
+ mMsgWindow.build();
+ mSimpleWindow.build();
+ mWipe.build();
+
+ dBase_c::createBase(fProfile::LYT_ENEMY_ICON, this, 0, OTHER);
+ dBase_c::createBase(fProfile::LYT_DROP_LINE, this, 0, OTHER);
+ dBase_c::createBase(fProfile::LYT_FORCE_LINE, this, 0, OTHER);
+ dBase_c::createBase(fProfile::LYT_SAVE_MGR, this, 0, OTHER);
+
+ if (dScGame_c::currentSpawnInfo.stageName == "F103_1" || dScGame_c::currentSpawnInfo.stageName == "t_tkm26" ||
+ dScGame_c::currentSpawnInfo.stageName == "F103" || dScGame_c::currentSpawnInfo.stageName == "t_tkm24") {
+ dBase_c::createBase(fProfile::LYT_SUIRYU_SCORE, this, 0, OTHER);
+ dBase_c::createBase(fProfile::LYT_SUIRYU_SCORE_COMP, this, 0, OTHER);
+ } else if (dScGame_c::isCurrentStage("B301")) {
+ dBase_c::createBase(fProfile::LYT_DEMO_DOWSING, this, 0, OTHER);
+ }
+
+ mCommand = CMD_NONE;
+ mHelpTextIndex = 0;
+
+ StoryflagManager *mgr = StoryflagManager::sInstance;
+
+ mCurrentPauseDisp = mgr->getCounterOrFlag(STORYFLAG_ON_COLLECTION_SCREEN);
+ mPauseDisp00Tab = mgr->getCounterOrFlag(STORYFLAG_SAVED_DISP00_TAB);
+
+ field_0x15C66 = 0;
+ mIsPauseDemo = false;
+
+ mItemForPauseDemo = 0;
+ mPickupItemCount = 0;
+ mItemCountForPauseDemo = 0;
+ mPauseDemoDisp = 0;
+
+ mStateMgr.changeState(StateID_Normal);
+
+ mpHelp = nullptr;
+ mpDrawMark = nullptr;
+
+ field_0x15C54 = 0;
+ field_0x15C58 = 0;
+
+ return SUCCEEDED;
+}
+
+int dLytControlGame_c::doDelete() {
+ if (!releaseRes()) {
+ return NOT_READY;
+ }
+ if (!decrementRes()) {
+ return NOT_READY;
+ }
+ mMsgWindow.remove();
+ mSimpleWindow.remove();
+ mMeter.remove();
+ mWipe.remove();
+ if (mpHelp != nullptr) {
+ mpHelp->remove();
+ delete mpHelp;
+ mpHelp = nullptr;
+ }
+ if (mpDrawMark != nullptr) {
+ mpDrawMark->remove();
+ delete mpDrawMark;
+ mpDrawMark = nullptr;
+ }
+
+ if (mpMap != nullptr) {
+ mpMap->remove();
+ mpMap.destruct();
+ m2d::setLytAllocator();
+ }
+
+ return SUCCEEDED;
+}
+
+int dLytControlGame_c::execute() {
+ if (!isInSomeMapState()) {
+ mFootprintsMgr.setFootstepMinDistSq(sHio.field_0x04 * sHio.field_0x04);
+ mFootprintsMgr.execute();
+ }
+
+ if (*mStateMgr.getStateID() == StateID_Normal) {
+ fn_802CFA90();
+ } else {
+ if (dCsGame_c::GetInstance() != nullptr) {
+ dCsGame_c::GetInstance()->setField_0x9A2(true);
+ }
+ }
+
+ if (mpDrawMark != nullptr) {
+ if (field_0x15C54 == 0) {
+ mpDrawMark->setField_0x941(1);
+ }
+ mpDrawMark->execute();
+ if (mpDrawMark->getField_0x940() != 0) {
+ mpDrawMark->remove();
+ delete mpDrawMark;
+ mpDrawMark = nullptr;
+ }
+ } else {
+ if (field_0x15C54 != 0) {
+ mpDrawMark = new dLytDrawMark_c();
+ mpDrawMark->build(field_0x15C58);
+ }
+ }
+
+ mMeter.execute();
+ mMsgWindow.execute();
+ mSimpleWindow.execute();
+ mWipe.execute();
+
+ if (mpHelp != nullptr) {
+ mpHelp->execute();
+
+ if (dLytHelp_c::GetInstance() != nullptr) {
+ if (mpHelp->isStateEnd()) {
+ mpHelp->remove();
+ delete mpHelp;
+ mpHelp = nullptr;
+ }
+ }
+ }
+
+ mStateMgr.executeState();
+
+ return SUCCEEDED;
+}
+
+int dLytControlGame_c::draw() {
+ mMeter.draw();
+ // okay
+ if (dLytMap_c::GetInstance() != nullptr && dLytMap_c::GetInstance() != nullptr) {
+ mpMap->draw();
+ }
+ mMsgWindow.draw();
+ mSimpleWindow.addToDrawList();
+ mWipe.draw();
+ if (mpHelp != nullptr) {
+ mpHelp->draw();
+ }
+ if (mpDrawMark != nullptr) {
+ mpDrawMark->draw();
+ }
+ return SUCCEEDED;
+}
+
+bool dLytControlGame_c::checkStoryflag(s32 flag) const {
+ return StoryflagManager::sInstance->getCounterOrFlag(flag);
+}
+
+void dLytControlGame_c::fn_802CFA90() {
+ if (mCommand != CMD_NONE) {
+ if (dLytMeter_c::GetInstance()->itemSelectFn800EFDF0(true) ||
+ dLytMeter_c::GetInstance()->minusBtnFn800F7600() || dLytMeter_c::GetInstance()->dowsingFn800FE4B0()) {
+ mCommand = CMD_NONE;
+ return;
+ }
+
+ if (!mIsEvent && !EventManager::fn_8009F990() && mCommand != CMD_HELP) {
+ mCommand = CMD_NONE;
+ }
+ }
+
+ if (mCommand == CMD_MAP) {
+ if (mMapEvent == dLytMapMain_c::MAP_EVENT_SAVE_OBJ) {
+ mCommand = CMD_NONE;
+ }
+ bool b = false;
+ if (dLytMap_c::GetInstance() != nullptr) {
+ b = dLytMap_c::GetInstance()->isVisible();
+ }
+
+ if (!b) {
+ mStateMgr.changeState(StateID_Map_SetRes);
+ dSndPlayerMgr_c::GetInstance()->enterMap();
+ dSndSourceMgr_c::GetInstance()->fn_803852B0();
+ hideHelp();
+ dLytMeter_c::setPlusBtnCall(false);
+ }
+ mCommand = CMD_NONE;
+ }
+
+ if (mCommand == CMD_PAUSE) {
+ mStateMgr.changeState(StateID_Pause_SetRes);
+ dSndPlayerMgr_c::GetInstance()->enterMenu();
+ dSndSourceMgr_c::GetInstance()->fn_803852B0();
+ hideHelp();
+ mCommand = CMD_NONE;
+ }
+
+ if (mCommand == CMD_HELP) {
+ if (mpHelp == nullptr) {
+ mpHelp = new dLytHelp_c();
+ mpHelp->build();
+ }
+ if (dLytHelp_c::GetInstance() != nullptr) {
+ mpHelp->setText(mHelpTextIndex);
+ mCommand = CMD_NONE;
+ }
+ }
+}
+
+void dLytControlGame_c::hideHelp() {
+ if (dLytHelp_c::GetInstance() != nullptr) {
+ mpHelp->requestOut();
+ }
+}
+
+void dLytControlGame_c::changeHelpText(s32 textIndex) {
+ if (dLytHelp_c::GetInstance() != nullptr) {
+ mpHelp->changeText(textIndex);
+ }
+}
+
+bool dLytControlGame_c::isStateNotNormalOrInEvent() const {
+ if (*mStateMgr.getStateID() != StateID_Normal) {
+ return false;
+ }
+ return EventManager::isInEvent();
+}
+
+bool dLytControlGame_c::isInSomeMapState() const {
+ bool ret = false;
+ const sStateIDIf_c &id = *mStateMgr.getStateID();
+ if (id == StateID_Map_SetRes || id == StateID_Map_SyncRes || id == StateID_Map || id == StateID_Map_DelRes) {
+ ret = true;
+ }
+ return ret;
+}
+
+bool dLytControlGame_c::isNotInStateMap() const {
+ return !(*mStateMgr.getStateID() == StateID_Map);
+}
+
+bool dLytControlGame_c::fn_802CFF60() const {
+ bool ret = false;
+ const sStateIDIf_c &id = *mStateMgr.getStateID();
+ if (id == StateID_Map_SetRes || id == StateID_Map_SyncRes) {
+ ret = true;
+ }
+ return ret;
+}
+
+void dLytControlGame_c::openMap() {
+ mCommand = CMD_MAP;
+ mMapEvent = dLytMapMain_c::MAP_EVENT_NONE;
+ mIsEvent = false;
+}
+
+void dLytControlGame_c::openMapEvent(s32 mapEvent, s32 arg1, s32 arg2) {
+ mCommand = CMD_MAP;
+ mMapEvent = mapEvent;
+ mIsEvent = true;
+ mMapEventArg1 = arg1;
+ mMapEventArg2 = arg2;
+
+ if (mapEvent != dLytMapMain_c::MAP_EVENT_SAVE_OBJ) {
+ return;
+ }
+
+ bool showStatueSelect = true;
+ u8 exitId = 0;
+
+ if (dAcPy_c::GetLinkM()->getPosition().z > -78700.0f && dAcPy_c::GetLinkM()->getPosition().z < -76700.0f) {
+ mMapEventArg1 = dLytMapMain_c::SURFACE_PROVINCE_ELDIN;
+ if (!checkStoryflag(STORYFLAG_ELDIN_DISCOVERED)) {
+ exitId = 1;
+ showStatueSelect = false;
+ }
+ } else if (dAcPy_c::GetLinkM()->getPosition().z > 62800.0f && dAcPy_c::GetLinkM()->getPosition().z < 64800) {
+ mMapEventArg1 = dLytMapMain_c::SURFACE_PROVINCE_LANAYRU;
+ if (!checkStoryflag(STORYFLAG_LANAYRU_DISCOVERED)) {
+ exitId = 2;
+ showStatueSelect = false;
+ }
+ } else {
+ mMapEventArg1 = dLytMapMain_c::SURFACE_PROVINCE_FARON;
+ if (!checkStoryflag(STORYFLAG_FARON_DISCOVERED)) {
+ exitId = 0;
+ showStatueSelect = false;
+ }
+ }
+
+ if (mMapEventArg1 == dLytMapMain_c::SURFACE_PROVINCE_FARON && checkStoryflag(STORYFLAG_HARP_CUTSCENE) &&
+ !checkStoryflag(STORYFLAG_GROOSE_LANDS_IN_FARON)) {
+ // Forced descent to Sealed Grounds with Groose
+ exitId = 15;
+ showStatueSelect = false;
+ } else if (mMapEventArg1 == dLytMapMain_c::SURFACE_PROVINCE_ELDIN &&
+ checkStoryflag(STORYFLAG_ELDIN_VOLCANO_CAN_ERUPT) && !checkStoryflag(STORYFLAG_BOKO_BASE_BEATEN)) {
+ // Forced descent to Boko Base
+ exitId = 8;
+ showStatueSelect = false;
+ } else if (mMapEventArg1 == dLytMapMain_c::SURFACE_PROVINCE_ELDIN &&
+ checkStoryflag(STORYFLAG_SCRAPPER_HAS_WATER_BASIN) &&
+ !checkStoryflag(STORYFLAG_SUMMIT_BIG_FROG_WATERED) &&
+ !checkStoryflag(STORYFLAG_WATER_BASIN_ESCORT_STARTED)) {
+ // Forced descent to Eldin entry with Scrapper and the water basin
+ exitId = 1;
+ showStatueSelect = false;
+ } else if (checkStoryflag(STORYFLAG_LEVIAS_FIGHT_DEFEATED) && !checkStoryflag(STORYFLAG_WATER_DRAGON_SOTH_PART)) {
+ // TODO: When is this condition hit? showStatueSelect is only false here if we haven't discovered a surface
+ // province, but with Levias beaten we should've set foot in each province
+ showStatueSelect = true;
+ }
+
+ if (!showStatueSelect) {
+ dScGame_c::GetInstance()->triggerExit(dAcPy_c::GetLink()->mRoomID, exitId);
+ mCommand = CMD_NONE;
+ }
+}
+
+void dLytControlGame_c::openPause() {
+ if (canOpenPause() == true) {
+ mCommand = CMD_PAUSE;
+ mIsEvent = false;
+ mIsPauseDemo = false;
+ }
+}
+
+extern "C" dAcBase_c *getCurrentEventActor();
+
+void dLytControlGame_c::openPauseDemo() {
+ if (canOpenPause() == true) {
+ dAcItem_c *item = static_cast<dAcItem_c *>(getCurrentEventActor());
+ if (item != nullptr) {
+ mItemForPauseDemo = item->getItemId_i();
+ mCommand = CMD_PAUSE;
+ mIsEvent = true;
+ mIsPauseDemo = true;
+ if (mItemForPauseDemo == ITEM_EXTRA_WALLET) {
+ mPauseDemoDisp = dLytPauseMgr_c::DISP_00_INVENTORY;
+ } else {
+ mPauseDemoDisp = dLytPauseMgr_c::DISP_01_COLLECTION;
+ }
+ mItemCountForPauseDemo = dAcItem_c::getCollectionCurrentCount();
+ mPickupItemCount = item->getQuantity() != 0 ? item->getQuantity() : 1;
+ }
+ }
+}
+
+void dLytControlGame_c::openHelp(s32 textIndex) {
+ if (dLytMeter_c::GetInstance()->itemSelectFn800EFDF0(true) || dLytMeter_c::GetInstance()->minusBtnFn800F7600() ||
+ dLytMeter_c::GetInstance()->dowsingFn800FE4B0()) {
+ return;
+ }
+
+ if (mpHelp == nullptr) {
+ mCommand = CMD_HELP;
+ mIsEvent = false;
+ mHelpTextIndex = textIndex;
+ }
+}
+
+bool dLytControlGame_c::releaseRes() {
+ return mLytArcControl.release();
+}
+
+bool dLytControlGame_c::decrementRes() {
+ dArcResult_e result1 = LayoutArcManager::GetInstance()->ensureLoaded2(sMap2D);
+ if (result1 != D_ARC_RESULT_ERROR_NOT_FOUND) {
+ if (result1 != D_ARC_RESULT_OK) {
+ return false;
+ }
+ LayoutArcManager::GetInstance()->decrement(sMap2D);
+ }
+
+ dArcResult_e result2;
+ if (dStageMgr_c::GetInstance()->isSTIFAreaSky()) {
+ result2 = LayoutArcManager::GetInstance()->ensureLoaded2(sMapSky);
+ } else {
+ result2 = LayoutArcManager::GetInstance()->ensureLoaded2(sMapField);
+ }
+ if (result2 != D_ARC_RESULT_ERROR_NOT_FOUND) {
+ if (result2 != D_ARC_RESULT_OK) {
+ return false;
+ }
+ if (dStageMgr_c::GetInstance()->isSTIFAreaSky()) {
+ LayoutArcManager::GetInstance()->decrement(sMapSky);
+ } else {
+ LayoutArcManager::GetInstance()->decrement(sMapField);
+ }
+ }
+
+ return true;
+}
+
+void dLytControlGame_c::fn_802D04F0() {
+ field_0x15C66 = 0;
+ d2d::defaultSet();
+}
+
+bool dLytControlGame_c::canOpenPause() {
+ if (dLytMeter_c::GetInstance()->itemSelectFn800EFDF0(true) || dLytMeter_c::GetInstance()->minusBtnFn800F7600() ||
+ dLytMeter_c::GetInstance()->dowsingFn800FE4B0()) {
+ return false;
+ }
+
+ if (mpHelp == nullptr || mpHelp->isWaiting()) {
+ return true;
+ }
+
+ return false;
+}
+
+void dLytControlGame_c::checkForBeaconNextToMark() {
+ fBase_c *base = nullptr;
+ bool found = false;
+ mVec3_c markPos;
+ while ((base = fManager_c::searchBaseByGroupType(STAGE, base)) != nullptr) {
+ if (base->mProfileName == fProfile::T_MAP_MARK) {
+ dTgMapMark_c *mark = static_cast<dTgMapMark_c *>(base);
+ if (!mark->checkActorProperty(dAcBase_c::AC_PROP_0x100) && mark->rotz_shift0_0xf == 0) {
+ found = true;
+ markPos = mark->mPosition;
+ }
+ }
+ }
+
+ if (found) {
+ for (u32 i = 0; i < 5; i++) {
+ const mVec3_c *pos = getBeaconPosition(i);
+ if (pos != nullptr) {
+ mVec3_c diff = markPos - *pos;
+ if (diff.mag() <= sHio.field_0x0C) {
+ SceneflagManager::sInstance->setFlag(0x3F, 0x18);
+ }
+ }
+ }
+ }
+}
+
+void dLytControlGame_c::resetFootsteps() {
+ mFootprintsMgr.reset();
+}
diff --git a/src/d/lyt/d_lyt_help.cpp b/src/d/lyt/d_lyt_help.cpp
index 1de1a71b..3ebfdf7f 100644
--- a/src/d/lyt/d_lyt_help.cpp
+++ b/src/d/lyt/d_lyt_help.cpp
@@ -345,7 +345,7 @@ void dLytHelp_c::finalizeState_None() {}
void dLytHelp_c::initializeState_In() {}
void dLytHelp_c::executeState_In() {
if (mpMain->isIdle()) {
- field_0x3C2 = true;
+ mIsWaiting = true;
mpMain->modeRequestWait();
mStateMgr.changeState(StateID_Wait);
field_0x3C8 = 0;
@@ -355,7 +355,7 @@ void dLytHelp_c::finalizeState_In() {}
void dLytHelp_c::initializeState_Wait() {}
void dLytHelp_c::executeState_Wait() {
- if (dPad::getDownTrig2() || dPad::getDownTrigMinus() || dPad::getDownTrigB() || field_0x3C1) {
+ if (dPad::getDownTrig2() || dPad::getDownTrigMinus() || dPad::getDownTrigB() || mOutRequest) {
mpMain->modeRequestOut();
dSndPlayerMgr_c::GetInstance()->leaveHelp();
dLytMeter_c::GetInstance()->setHelpOpen(false);
@@ -381,7 +381,7 @@ void dLytHelp_c::finalizeState_End() {}
bool dLytHelp_c::setText(s32 textIndex) {
if (*mStateMgr.getStateID() == StateID_None) {
field_0x3C0 = true;
- field_0x3C1 = false;
+ mOutRequest = false;
if (textIndex <= ARRAY_LENGTH(sHelpTextKeys) - 1) {
mTextIndex = textIndex;
} else {
@@ -497,7 +497,7 @@ void dLytHelp_c::changeText(s32 textIndex) {
mpMain->setText(mTextIndex);
} else if (mTextIndex != textIndex) {
mTextIndex = textIndex;
- field_0x3C1 = true;
+ mOutRequest = true;
}
}
@@ -509,8 +509,8 @@ bool dLytHelp_c::build() {
mpMain->build(&mResAcc);
mStateMgr.changeState(StateID_None);
field_0x3C0 = false;
- field_0x3C1 = false;
- field_0x3C2 = false;
+ mOutRequest = false;
+ mIsWaiting = false;
mTextIndex = -1;
field_0x3C8 = 0;
m2d::setLytAllocator();
diff --git a/src/d/lyt/d_lyt_map_markers.cpp b/src/d/lyt/d_lyt_map_markers.cpp
index d07d235a..4cb3abc2 100644
--- a/src/d/lyt/d_lyt_map_markers.cpp
+++ b/src/d/lyt/d_lyt_map_markers.cpp
@@ -1538,7 +1538,7 @@ void dLytMapIcon01_c::setupStageDrawCommands() {
while ((ac = static_cast<dAcBase_c *>(fManager_c::searchBaseByGroupType(fBase_c::STAGE, ac))) != nullptr) {
setupTgMapMarkDrawCommand(ac);
- if (dLytMapGlobal_c::GetInstance()->getField_0x54()) {
+ if (dLytMapGlobal_c::GetInstance()->isInMapEvent()) {
setupTgMapInstDrawCommand(ac);
}
diff --git a/src/d/lyt/d_lyt_pause.cpp b/src/d/lyt/d_lyt_pause.cpp
index aa6cc565..8b11b9a8 100644
--- a/src/d/lyt/d_lyt_pause.cpp
+++ b/src/d/lyt/d_lyt_pause.cpp
@@ -559,7 +559,7 @@ void dLytPauseMgr_c::initializeState_None() {
mPrevSelectionId = 0;
field_0x083C = false;
field_0x083D = false;
- field_0x0836 = false;
+ mIsActive = false;
field_0x0837 = false;
field_0x0838 = false;
mIsNavLeft = false;
@@ -830,7 +830,7 @@ void dLytPauseMgr_c::finalizeState_Out() {
void dLytPauseMgr_c::inRequest() {
mInRequest = true;
- field_0x0836 = 1;
+ mIsActive = true;
}
bool dLytPauseMgr_c::isStateWait() const {
diff --git a/src/d/lyt/meter/d_lyt_meter.cpp b/src/d/lyt/meter/d_lyt_meter.cpp
index 3d7382b7..8c962391 100644
--- a/src/d/lyt/meter/d_lyt_meter.cpp
+++ b/src/d/lyt/meter/d_lyt_meter.cpp
@@ -1088,7 +1088,7 @@ bool dLytMeterMain_c::fn_800D56B0() {
}
if ((EventManager::isInEvent() && field_0x1377E == 0 && dAcPy_c::GetLink()->getCurrentAction() != 0x8C &&
- dMessage_c::getInstance()->getField_0x32C() == 0xC) ||
+ dMessage_c::getInstance()->getMapEvent() == dLytMapMain_c::MAP_EVENT_MAX) ||
mHelpOpen) {
return true;
}
diff --git a/src/d/lyt/meter/d_lyt_meter_cross_btn.cpp b/src/d/lyt/meter/d_lyt_meter_cross_btn.cpp
index 34c25f6e..4144671b 100644
--- a/src/d/lyt/meter/d_lyt_meter_cross_btn.cpp
+++ b/src/d/lyt/meter/d_lyt_meter_cross_btn.cpp
@@ -5,6 +5,7 @@
#include "d/d_message.h"
#include "d/flag/storyflag_manager.h"
#include "d/lyt/d2d.h"
+#include "d/lyt/d_lyt_map.h"
#include "d/lyt/d_lyt_unknowns.h"
#include "d/lyt/meter/d_lyt_meter.h"
#include "d/snd/d_snd_small_effect_mgr.h"
@@ -172,8 +173,8 @@ void dLytMeterCrossBtnParts_c::execute(bool bIsVisible) {
mpLyt->calc();
}
- if ((EventManager::isInEvent() && dMessage_c::getInstance()->getField_0x32C() == 12 && !checkIsInSkykeepPuzzle() &&
- !dLytMeter_c::GetInstance()->fn_800D5670()) ||
+ if ((EventManager::isInEvent() && dMessage_c::getInstance()->getMapEvent() == dLytMapMain_c::MAP_EVENT_MAX &&
+ !checkIsInSkykeepPuzzle() && !dLytMeter_c::GetInstance()->fn_800D5670()) ||
((dLytMeter_c::getItemSelect0x75A2() && (mIndex != 1 || mCurrentIcon != 0)) || !bIsVisible)) {
field_0x7C = 0;
diff --git a/src/d/lyt/msg_window/d_lyt_msg_window.cpp b/src/d/lyt/msg_window/d_lyt_msg_window.cpp
index 7e3971c4..cd26b754 100644
--- a/src/d/lyt/msg_window/d_lyt_msg_window.cpp
+++ b/src/d/lyt/msg_window/d_lyt_msg_window.cpp
@@ -562,7 +562,7 @@ void dLytMsgWindow_c::finalizeState_MapOpen() {}
void dLytMsgWindow_c::initializeState_WaitKeyMapClose() {}
void dLytMsgWindow_c::executeState_WaitKeyMapClose() {
if ((dPad::getDownTrigB() || dPad::getDownTrigPlus()) && !dLytControlGame_c::getInstance()->isNotInStateMap()) {
- dLytControlGame_c::getInstance()->fn_802CCD40(true);
+ dLytControlGame_c::getInstance()->setMapEventDone(true);
mStateMgr.changeState(StateID_MapClose);
}
}