From e5a24391fbc463716883664fe709520d76d48520 Mon Sep 17 00:00:00 2001 From: robojumper Date: Fri, 4 Apr 2025 00:48:00 +0200 Subject: [PATCH] Another file that'll have painful weak function order it seems --- config/SOUE01/symbols.txt | 326 +++++++++--------- include/d/d_message.h | 13 + include/d/d_textunk.h | 12 + include/d/d_textwindow_unk.h | 8 + include/d/lyt/d_lyt_auto_caption.h | 8 +- include/d/lyt/d_lyt_auto_explain.h | 8 +- include/d/lyt/msg_window/d_lyt_msg_window.h | 19 +- .../lyt/msg_window/d_lyt_msg_window_common.h | 9 +- .../d/lyt/msg_window/d_lyt_msg_window_stone.h | 5 +- .../d/lyt/msg_window/d_lyt_msg_window_wood.h | 5 +- src/d/lyt/d_lyt_auto_caption.cpp | 4 +- src/d/lyt/d_lyt_auto_explain.cpp | 4 +- src/d/lyt/msg_window/d_lyt_msg_window.cpp | 218 +++++++++++- .../lyt/msg_window/d_lyt_msg_window_stone.cpp | 4 +- .../lyt/msg_window/d_lyt_msg_window_wood.cpp | 4 +- 15 files changed, 449 insertions(+), 198 deletions(-) diff --git a/config/SOUE01/symbols.txt b/config/SOUE01/symbols.txt index 6b4ab60f..66f5b54c 100644 --- a/config/SOUE01/symbols.txt +++ b/config/SOUE01/symbols.txt @@ -6746,77 +6746,77 @@ fn_80114920 = .text:0x80114920; // type:function size:0x40 build__15dLytMsgWindow_cFv = .text:0x80114960; // type:function size:0x228 changeState__84sStateMgr_c<15dLytMsgWindow_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>FRC12sStateIDIf_c = .text:0x80114B90; // type:function size:0x10 remove__15dLytMsgWindow_cFv = .text:0x80114BA0; // type:function size:0xB8 -LytMsgWindow__stateInvisibleEnter = .text:0x80114C60; // type:function size:0x4 -LytMsgWindow__stateInvisibleUpdate = .text:0x80114C70; // type:function size:0x6A8 -fn_80115320 = .text:0x80115320; // type:function size:0x58 -fn_80115380 = .text:0x80115380; // type:function size:0x58 -fn_801153E0 = .text:0x801153E0; // type:function size:0x6C -fn_80115450 = .text:0x80115450; // type:function size:0xA0 -fn_801154F0 = .text:0x801154F0; // type:function size:0xA4 -fn_801155A0 = .text:0x801155A0; // type:function size:0x58 -fn_80115600 = .text:0x80115600; // type:function size:0x6C -fn_80115670 = .text:0x80115670; // type:function size:0xA0 -fn_80115710 = .text:0x80115710; // type:function size:0xA4 -fn_801157C0 = .text:0x801157C0; // type:function size:0x8 -LytMsgWindow__stateInvisibleLeave = .text:0x801157D0; // type:function size:0x4 -LytMsgWindow__stateInEnter = .text:0x801157E0; // type:function size:0x12C -LytMsgWindow__stateInUpdate = .text:0x80115910; // type:function size:0x60 -LytMsgWindow__stateInLeave = .text:0x80115970; // type:function size:0x4 -LytMsgWindow__stateOutputTextEnter = .text:0x80115980; // type:function size:0x18 -LytMsgWindow__stateOutputTextUpdate = .text:0x801159A0; // type:function size:0x2A0 +initializeState_Invisible__15dLytMsgWindow_cFv = .text:0x80114C60; // type:function size:0x4 +executeState_Invisible__15dLytMsgWindow_cFv = .text:0x80114C70; // type:function size:0x6A8 +__dt__20dLytMsgWindowSubtypeFv = .text:0x80115320; // type:function size:0x58 +__dt__30sFState_c<17dLytAutoCaption_c>Fv = .text:0x80115380; // type:function size:0x58 +__dt__33sFStateFct_c<17dLytAutoCaption_c>Fv = .text:0x801153E0; // type:function size:0x6C +__dt__86sStateMgr_c<17dLytAutoCaption_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x80115450; // type:function size:0xA0 +__dt__56sFStateMgr_c<17dLytAutoCaption_c,20sStateMethodUsr_FI_c>Fv = .text:0x801154F0; // type:function size:0xA4 +__dt__30sFState_c<17dLytAutoExplain_c>Fv = .text:0x801155A0; // type:function size:0x58 +__dt__33sFStateFct_c<17dLytAutoExplain_c>Fv = .text:0x80115600; // type:function size:0x6C +__dt__86sStateMgr_c<17dLytAutoExplain_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x80115670; // type:function size:0xA0 +__dt__56sFStateMgr_c<17dLytAutoExplain_c,20sStateMethodUsr_FI_c>Fv = .text:0x80115710; // type:function size:0xA4 +vt_0x30__20dLytMsgWindowSubtypeFv = .text:0x801157C0; // type:function size:0x8 +finalizeState_Invisible__15dLytMsgWindow_cFv = .text:0x801157D0; // type:function size:0x4 +initializeState_In__15dLytMsgWindow_cFv = .text:0x801157E0; // type:function size:0x12C +executeState_In__15dLytMsgWindow_cFv = .text:0x80115910; // type:function size:0x60 +finalizeState_In__15dLytMsgWindow_cFv = .text:0x80115970; // type:function size:0x4 +initializeState_OutputText__15dLytMsgWindow_cFv = .text:0x80115980; // type:function size:0x18 +executeState_OutputText__15dLytMsgWindow_cFv = .text:0x801159A0; // type:function size:0x2A0 vt_0x34__20dLytMsgWindowSubtypeFv = .text:0x80115C40; // type:function size:0x8 -LytMsgWindow__stateOutputTextLeave = .text:0x80115C50; // type:function size:0x4 -stateChangePageNonFinalTextboxEnter = .text:0x80115C60; // type:function size:0x30 -stateChangePageNonFinalTextboxUpdate = .text:0x80115C90; // type:function size:0x140 -LytMsgWindow__stateChangePageNonFinalTextboxLeave = .text:0x80115DD0; // type:function size:0x4 -LytMsgWindow__stateWaitKeyChangePage1Enter = .text:0x80115DE0; // type:function size:0x4 -LytMsgWindow__stateWaitKeyChangePage1Update = .text:0x80115DF0; // type:function size:0xB4 +finalizeState_OutputText__15dLytMsgWindow_cFv = .text:0x80115C50; // type:function size:0x4 +initializeState_WaitKeyChangePage0__15dLytMsgWindow_cFv = .text:0x80115C60; // type:function size:0x30 +executeState_WaitKeyChangePage0__15dLytMsgWindow_cFv = .text:0x80115C90; // type:function size:0x140 +finalizeState_WaitKeyChangePage0__15dLytMsgWindow_cFv = .text:0x80115DD0; // type:function size:0x4 +initializeState_WaitKeyChangePage1__15dLytMsgWindow_cFv = .text:0x80115DE0; // type:function size:0x4 +executeState_WaitKeyChangePage1__15dLytMsgWindow_cFv = .text:0x80115DF0; // type:function size:0xB4 vt_0x38__20dLytMsgWindowSubtypeFb = .text:0x80115EB0; // type:function size:0x8 -LytMsgWindow__stateWaitKeyChangePage1Leave = .text:0x80115EC0; // type:function size:0x4 -stateChangePageFinalTextboxEnter = .text:0x80115ED0; // type:function size:0x40 -stateChangePageFinalTextboxUpdate = .text:0x80115F10; // type:function size:0x258 -LytMsgWindow__stateChangePageFinalTextboxLeave = .text:0x80116170; // type:function size:0x4 -LytMsgWindow__stateWaitKeyMsgEnd1Enter = .text:0x80116180; // type:function size:0x4 -LytMsgWindow__stateWaitKeyMsgEnd1Update = .text:0x80116190; // type:function size:0x1E0 -LytMsgWindow__stateWaitKeyMsgEnd1Leave = .text:0x80116370; // type:function size:0x4 -LytMsgWindow__stateWaitKeyMsgEnd2Enter = .text:0x80116380; // type:function size:0x4 -LytMsgWindow__stateWaitKeyMsgEnd2Update = .text:0x80116390; // type:function size:0x60 +finalizeState_WaitKeyChangePage1__15dLytMsgWindow_cFv = .text:0x80115EC0; // type:function size:0x4 +initializeState_WaitKeyMsgEnd0__15dLytMsgWindow_cFv = .text:0x80115ED0; // type:function size:0x40 +executeState_WaitKeyMsgEnd0__15dLytMsgWindow_cFv = .text:0x80115F10; // type:function size:0x258 +finalizeState_WaitKeyMsgEnd0__15dLytMsgWindow_cFv = .text:0x80116170; // type:function size:0x4 +initializeState_WaitKeyMsgEnd1__15dLytMsgWindow_cFv = .text:0x80116180; // type:function size:0x4 +executeState_WaitKeyMsgEnd1__15dLytMsgWindow_cFv = .text:0x80116190; // type:function size:0x1E0 +finalizeState_WaitKeyMsgEnd1__15dLytMsgWindow_cFv = .text:0x80116370; // type:function size:0x4 +initializeState_WaitKeyMsgEnd2__15dLytMsgWindow_cFv = .text:0x80116380; // type:function size:0x4 +executeState_WaitKeyMsgEnd2__15dLytMsgWindow_cFv = .text:0x80116390; // type:function size:0x60 vt_0x3C__20dLytMsgWindowSubtypeCFv = .text:0x801163F0; // type:function size:0x8 -LytMsgWindow__stateWaitKeyMsgEnd2Leave = .text:0x80116400; // type:function size:0x4 -LytMsgWindow__stateWaitKeySelectQuestionEnter = .text:0x80116410; // type:function size:0xD0 -LytMsgWindow__stateWaitKeySelectQuestionUpdate = .text:0x801164E0; // type:function size:0x15C +finalizeState_WaitKeyMsgEnd2__15dLytMsgWindow_cFv = .text:0x80116400; // type:function size:0x4 +initializeState_WaitKeySelectQuestion__15dLytMsgWindow_cFv = .text:0x80116410; // type:function size:0xD0 +executeState_WaitKeySelectQuestion__15dLytMsgWindow_cFv = .text:0x801164E0; // type:function size:0x15C fn_80116640 = .text:0x80116640; // type:function size:0x10 -LytMsgWindow__stateWaitKeySelectQuestionLeave = .text:0x80116650; // type:function size:0x4 -LytMsgWindow__stateMapOpenEnter = .text:0x80116660; // type:function size:0x4 -LytMsgWindow__stateMapOpenUpdate = .text:0x80116670; // type:function size:0x7C -LytMsgWindow__stateMapOpenLeave = .text:0x801166F0; // type:function size:0x4 -LytMsgWindow__stateWaitKeyMapCloseEnter = .text:0x80116700; // type:function size:0x4 -LytMsgWindow__stateWaitKeyMapCloseUpdate = .text:0x80116710; // type:function size:0x78 -LytMsgWindow__stateWaitKeyMapCloseLeave = .text:0x80116790; // type:function size:0x4 -LytMsgWindow__stateMapCloseEnter = .text:0x801167A0; // type:function size:0x4 -LytMsgWindow__stateMapCloseUpdate = .text:0x801167B0; // type:function size:0x6C -LytMsgWindow__stateMapCloseLeave = .text:0x80116820; // type:function size:0x4 -LytMsgWindow__stateOutEnter = .text:0x80116830; // type:function size:0x2C -LytMsgWindow__stateOutUpdate = .text:0x80116860; // type:function size:0x90 -LytMsgWindow__stateOutLeave = .text:0x801168F0; // type:function size:0x4 -LytMsgWindow__stateExplainInEnter = .text:0x80116900; // type:function size:0x1C -LytMsgWindow__stateExplainInUpdate = .text:0x80116920; // type:function size:0x88 -LytMsgWindow__stateExplainInLeave = .text:0x801169B0; // type:function size:0x4 -LytMsgWindow__stateExplainVisibleEnter = .text:0x801169C0; // type:function size:0x4 -LytMsgWindow__stateExplainVisibleUpdate = .text:0x801169D0; // type:function size:0x80 -LytMsgWindow__stateExplainVisibleLeave = .text:0x80116A50; // type:function size:0x4 -LytMsgWindow__stateExplainOutEnter = .text:0x80116A60; // type:function size:0x14 -LytMsgWindow__stateExplainOutUpdate = .text:0x80116A80; // type:function size:0x74 -LytMsgWindow__stateExplainOutLeave = .text:0x80116B00; // type:function size:0x4 -LytMsgWindow__stateDemoInEnter = .text:0x80116B10; // type:function size:0x1C -LytMsgWindow__stateDemoInUpdate = .text:0x80116B30; // type:function size:0x60 -LytMsgWindow__stateDemoInLeave = .text:0x80116B90; // type:function size:0x4 -LytMsgWindow__stateDemoVisibleEnter = .text:0x80116BA0; // type:function size:0x14 -LytMsgWindow__stateDemoVisibleUpdate = .text:0x80116BC0; // type:function size:0x5C -LytMsgWindow__stateDemoVisibleLeave = .text:0x80116C20; // type:function size:0x4 -LytMsgWindow__stateDemoOutEnter = .text:0x80116C30; // type:function size:0x14 -LytMsgWindow__stateDemoOutUpdate = .text:0x80116C50; // type:function size:0xC4 -LytMsgWindow__stateDemoOutLeave = .text:0x80116D20; // type:function size:0x4 +finalizeState_WaitKeySelectQuestion__15dLytMsgWindow_cFv = .text:0x80116650; // type:function size:0x4 +initializeState_MapOpen__15dLytMsgWindow_cFv = .text:0x80116660; // type:function size:0x4 +executeState_MapOpen__15dLytMsgWindow_cFv = .text:0x80116670; // type:function size:0x7C +finalizeState_MapOpen__15dLytMsgWindow_cFv = .text:0x801166F0; // type:function size:0x4 +initializeState_WaitKeyMapClose__15dLytMsgWindow_cFv = .text:0x80116700; // type:function size:0x4 +executeState_WaitKeyMapClose__15dLytMsgWindow_cFv = .text:0x80116710; // type:function size:0x78 +finalizeState_WaitKeyMapClose__15dLytMsgWindow_cFv = .text:0x80116790; // type:function size:0x4 +initializeState_MapClose__15dLytMsgWindow_cFv = .text:0x801167A0; // type:function size:0x4 +executeState_MapClose__15dLytMsgWindow_cFv = .text:0x801167B0; // type:function size:0x6C +finalizeState_MapClose__15dLytMsgWindow_cFv = .text:0x80116820; // type:function size:0x4 +initializeState_Out__15dLytMsgWindow_cFv = .text:0x80116830; // type:function size:0x2C +executeState_Out__15dLytMsgWindow_cFv = .text:0x80116860; // type:function size:0x90 +finalizeState_Out__15dLytMsgWindow_cFv = .text:0x801168F0; // type:function size:0x4 +initializeState_ExplainIn__15dLytMsgWindow_cFv = .text:0x80116900; // type:function size:0x1C +executeState_ExplainIn__15dLytMsgWindow_cFv = .text:0x80116920; // type:function size:0x88 +finalizeState_ExplainIn__15dLytMsgWindow_cFv = .text:0x801169B0; // type:function size:0x4 +initializeState_ExplainVisible__15dLytMsgWindow_cFv = .text:0x801169C0; // type:function size:0x4 +executeState_ExplainVisible__15dLytMsgWindow_cFv = .text:0x801169D0; // type:function size:0x80 +finalizeState_ExplainVisible__15dLytMsgWindow_cFv = .text:0x80116A50; // type:function size:0x4 +initializeState_ExplainOut__15dLytMsgWindow_cFv = .text:0x80116A60; // type:function size:0x14 +executeState_ExplainOut__15dLytMsgWindow_cFv = .text:0x80116A80; // type:function size:0x74 +finalizeState_ExplainOut__15dLytMsgWindow_cFv = .text:0x80116B00; // type:function size:0x4 +initializeState_DemoIn__15dLytMsgWindow_cFv = .text:0x80116B10; // type:function size:0x1C +executeState_DemoIn__15dLytMsgWindow_cFv = .text:0x80116B30; // type:function size:0x60 +finalizeState_DemoIn__15dLytMsgWindow_cFv = .text:0x80116B90; // type:function size:0x4 +initializeState_DemoVisible__15dLytMsgWindow_cFv = .text:0x80116BA0; // type:function size:0x14 +executeState_DemoVisible__15dLytMsgWindow_cFv = .text:0x80116BC0; // type:function size:0x5C +finalizeState_DemoVisible__15dLytMsgWindow_cFv = .text:0x80116C20; // type:function size:0x4 +initializeState_DemoOut__15dLytMsgWindow_cFv = .text:0x80116C30; // type:function size:0x14 +executeState_DemoOut__15dLytMsgWindow_cFv = .text:0x80116C50; // type:function size:0xC4 +finalizeState_DemoOut__15dLytMsgWindow_cFv = .text:0x80116D20; // type:function size:0x4 LytMsgWindow__update = .text:0x80116D30; // type:function size:0x278 fn_80116FB0 = .text:0x80116FB0; // type:function size:0x10 fn_80116FC0 = .text:0x80116FC0; // type:function size:0x10 @@ -6833,17 +6833,17 @@ LytMsgWindow__setCurrentEntrypointName = .text:0x801173F0; // type:function size LytMsgWindow__setCurrentEventFlowFilename = .text:0x801174B0; // type:function size:0xB4 LytMsgWindow__setNumericArg0 = .text:0x80117570; // type:function size:0x8 LytMsgWindow__setNumericArgs = .text:0x80117580; // type:function size:0x8 -LytMsgWindow__createSubMsgManager = .text:0x80117590; // type:function size:0x260 -fn_801177F0 = .text:0x801177F0; // type:function size:0x184 -fn_80117980 = .text:0x80117980; // type:function size:0x58 -fn_801179E0 = .text:0x801179E0; // type:function size:0x6C -fn_80117A50 = .text:0x80117A50; // type:function size:0xA0 -fn_80117AF0 = .text:0x80117AF0; // type:function size:0xA4 -fn_80117BA0 = .text:0x80117BA0; // type:function size:0x184 -fn_80117D30 = .text:0x80117D30; // type:function size:0x58 -fn_80117D90 = .text:0x80117D90; // type:function size:0x6C -fn_80117E00 = .text:0x80117E00; // type:function size:0xA0 -fn_80117EA0 = .text:0x80117EA0; // type:function size:0xA4 +createSubMsgManager__15dLytMsgWindow_cFUc = .text:0x80117590; // type:function size:0x260 +__ct__19dLytMsgWindowWood_cFv = .text:0x801177F0; // type:function size:0x184 +__dt__32sFState_c<19dLytMsgWindowWood_c>Fv = .text:0x80117980; // type:function size:0x58 +__dt__35sFStateFct_c<19dLytMsgWindowWood_c>Fv = .text:0x801179E0; // type:function size:0x6C +__dt__88sStateMgr_c<19dLytMsgWindowWood_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x80117A50; // type:function size:0xA0 +__dt__58sFStateMgr_c<19dLytMsgWindowWood_c,20sStateMethodUsr_FI_c>Fv = .text:0x80117AF0; // type:function size:0xA4 +__ct__20dLytMsgWindowStone_cFv = .text:0x80117BA0; // type:function size:0x184 +__dt__33sFState_c<20dLytMsgWindowStone_c>Fv = .text:0x80117D30; // type:function size:0x58 +__dt__36sFStateFct_c<20dLytMsgWindowStone_c>Fv = .text:0x80117D90; // type:function size:0x6C +__dt__89sStateMgr_c<20dLytMsgWindowStone_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x80117E00; // type:function size:0xA0 +__dt__59sFStateMgr_c<20dLytMsgWindowStone_c,20sStateMethodUsr_FI_c>Fv = .text:0x80117EA0; // type:function size:0xA4 LytMsgWindowSword__ctor = .text:0x80117F50; // type:function size:0x1F0 fn_80118140 = .text:0x80118140; // type:function size:0x58 fn_801181A0 = .text:0x801181A0; // type:function size:0x6C @@ -6873,7 +6873,7 @@ fn_801192A0 = .text:0x801192A0; // type:function size:0x58 fn_80119300 = .text:0x80119300; // type:function size:0x6C fn_80119370 = .text:0x80119370; // type:function size:0xA0 fn_80119410 = .text:0x80119410; // type:function size:0xA4 -removeAllWindowSubtypes__15dLytMsgWindow_cFv = .text:0x801194C0; // type:function size:0x40C +removeSubMsgManagers__15dLytMsgWindow_cFv = .text:0x801194C0; // type:function size:0x40C LytMsgWindowTalk__dtor = .text:0x801198D0; // type:function size:0x198 fn_80119A70 = .text:0x80119A70; // type:function size:0x198 LytMsgWindowSword__dtor = .text:0x80119C10; // type:function size:0x198 @@ -6884,51 +6884,51 @@ fn_8011A230 = .text:0x8011A230; // type:function size:0x158 __dt__17dLytAutoExplain_cFv = .text:0x8011A390; // type:function size:0x118 __dt__17dLytAutoCaption_cFv = .text:0x8011A4B0; // type:function size:0x118 fn_8011A5D0 = .text:0x8011A5D0; // type:function size:0x1AC -fn_8011A780 = .text:0x8011A780; // type:function size:0x10 -fn_8011A790 = .text:0x8011A790; // type:function size:0x10 +changeState__86sStateMgr_c<17dLytAutoCaption_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>FRC12sStateIDIf_c = .text:0x8011A780; // type:function size:0x10 +changeState__86sStateMgr_c<17dLytAutoExplain_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>FRC12sStateIDIf_c = .text:0x8011A790; // type:function size:0x10 fn_8011A7A0 = .text:0x8011A7A0; // type:function size:0x10 fn_8011A7B0 = .text:0x8011A7B0; // type:function size:0x10 -fn_8011A7C0 = .text:0x8011A7C0; // type:function size:0x10 -fn_8011A7D0 = .text:0x8011A7D0; // type:function size:0x10 +changeState__89sStateMgr_c<20dLytMsgWindowStone_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>FRC12sStateIDIf_c = .text:0x8011A7C0; // type:function size:0x10 +changeState__88sStateMgr_c<19dLytMsgWindowWood_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>FRC12sStateIDIf_c = .text:0x8011A7D0; // type:function size:0x10 fn_8011A7E0 = .text:0x8011A7E0; // type:function size:0x10 fn_8011A7F0 = .text:0x8011A7F0; // type:function size:0x10 fn_8011A800 = .text:0x8011A800; // type:function size:0x10 -fn_8011A810 = .text:0x8011A810; // type:function size:0x60 -fn_8011A870 = .text:0x8011A870; // type:function size:0xC -fn_8011A880 = .text:0x8011A880; // type:function size:0x60 -fn_8011A8E0 = .text:0x8011A8E0; // type:function size:0xC +build__33sFStateFct_c<17dLytAutoCaption_c>FRC12sStateIDIf_c = .text:0x8011A810; // type:function size:0x60 +dispose__33sFStateFct_c<17dLytAutoCaption_c>FRP10sStateIf_c = .text:0x8011A870; // type:function size:0xC +build__33sFStateFct_c<17dLytAutoExplain_c>FRC12sStateIDIf_c = .text:0x8011A880; // type:function size:0x60 +dispose__33sFStateFct_c<17dLytAutoExplain_c>FRP10sStateIf_c = .text:0x8011A8E0; // type:function size:0xC fn_8011A8F0 = .text:0x8011A8F0; // type:function size:0x60 fn_8011A950 = .text:0x8011A950; // type:function size:0xC fn_8011A960 = .text:0x8011A960; // type:function size:0x60 fn_8011A9C0 = .text:0x8011A9C0; // type:function size:0xC -fn_8011A9D0 = .text:0x8011A9D0; // type:function size:0x60 -fn_8011AA30 = .text:0x8011AA30; // type:function size:0xC -fn_8011AA40 = .text:0x8011AA40; // type:function size:0x60 -fn_8011AAA0 = .text:0x8011AAA0; // type:function size:0xC +build__36sFStateFct_c<20dLytMsgWindowStone_c>FRC12sStateIDIf_c = .text:0x8011A9D0; // type:function size:0x60 +dispose__36sFStateFct_c<20dLytMsgWindowStone_c>FRP10sStateIf_c = .text:0x8011AA30; // type:function size:0xC +build__35sFStateFct_c<19dLytMsgWindowWood_c>FRC12sStateIDIf_c = .text:0x8011AA40; // type:function size:0x60 +dispose__35sFStateFct_c<19dLytMsgWindowWood_c>FRP10sStateIf_c = .text:0x8011AAA0; // type:function size:0xC fn_8011AAB0 = .text:0x8011AAB0; // type:function size:0x60 fn_8011AB10 = .text:0x8011AB10; // type:function size:0xC fn_8011AB20 = .text:0x8011AB20; // type:function size:0x60 fn_8011AB80 = .text:0x8011AB80; // type:function size:0xC fn_8011AB90 = .text:0x8011AB90; // type:function size:0x60 fn_8011ABF0 = .text:0x8011ABF0; // type:function size:0xC -fn_8011AC00 = .text:0x8011AC00; // type:function size:0x1C -fn_8011AC20 = .text:0x8011AC20; // type:function size:0x1C -fn_8011AC40 = .text:0x8011AC40; // type:function size:0x1C -fn_8011AC60 = .text:0x8011AC60; // type:function size:0x1C -fn_8011AC80 = .text:0x8011AC80; // type:function size:0x1C -fn_8011ACA0 = .text:0x8011ACA0; // type:function size:0x1C +initialize__30sFState_c<17dLytAutoCaption_c>Fv = .text:0x8011AC00; // type:function size:0x1C +execute__30sFState_c<17dLytAutoCaption_c>Fv = .text:0x8011AC20; // type:function size:0x1C +finalize__30sFState_c<17dLytAutoCaption_c>Fv = .text:0x8011AC40; // type:function size:0x1C +initialize__30sFState_c<17dLytAutoExplain_c>Fv = .text:0x8011AC60; // type:function size:0x1C +execute__30sFState_c<17dLytAutoExplain_c>Fv = .text:0x8011AC80; // type:function size:0x1C +finalize__30sFState_c<17dLytAutoExplain_c>Fv = .text:0x8011ACA0; // type:function size:0x1C fn_8011ACC0 = .text:0x8011ACC0; // type:function size:0x1C fn_8011ACE0 = .text:0x8011ACE0; // type:function size:0x1C fn_8011AD00 = .text:0x8011AD00; // type:function size:0x1C fn_8011AD20 = .text:0x8011AD20; // type:function size:0x1C fn_8011AD40 = .text:0x8011AD40; // type:function size:0x1C fn_8011AD60 = .text:0x8011AD60; // type:function size:0x1C -fn_8011AD80 = .text:0x8011AD80; // type:function size:0x1C -fn_8011ADA0 = .text:0x8011ADA0; // type:function size:0x1C -fn_8011ADC0 = .text:0x8011ADC0; // type:function size:0x1C -fn_8011ADE0 = .text:0x8011ADE0; // type:function size:0x1C -fn_8011AE00 = .text:0x8011AE00; // type:function size:0x1C -fn_8011AE20 = .text:0x8011AE20; // type:function size:0x1C +initialize__33sFState_c<20dLytMsgWindowStone_c>Fv = .text:0x8011AD80; // type:function size:0x1C +execute__33sFState_c<20dLytMsgWindowStone_c>Fv = .text:0x8011ADA0; // type:function size:0x1C +finalize__33sFState_c<20dLytMsgWindowStone_c>Fv = .text:0x8011ADC0; // type:function size:0x1C +initialize__32sFState_c<19dLytMsgWindowWood_c>Fv = .text:0x8011ADE0; // type:function size:0x1C +execute__32sFState_c<19dLytMsgWindowWood_c>Fv = .text:0x8011AE00; // type:function size:0x1C +finalize__32sFState_c<19dLytMsgWindowWood_c>Fv = .text:0x8011AE20; // type:function size:0x1C fn_8011AE40 = .text:0x8011AE40; // type:function size:0x1C fn_8011AE60 = .text:0x8011AE60; // type:function size:0x1C fn_8011AE80 = .text:0x8011AE80; // type:function size:0x1C @@ -6938,22 +6938,22 @@ fn_8011AEE0 = .text:0x8011AEE0; // type:function size:0x1C fn_8011AF00 = .text:0x8011AF00; // type:function size:0x1C fn_8011AF20 = .text:0x8011AF20; // type:function size:0x1C fn_8011AF40 = .text:0x8011AF40; // type:function size:0x1C -fn_8011AF60 = .text:0x8011AF60; // type:function size:0x10 -fn_8011AF70 = .text:0x8011AF70; // type:function size:0x10 -fn_8011AF80 = .text:0x8011AF80; // type:function size:0x10 -fn_8011AF90 = .text:0x8011AF90; // type:function size:0x10 -fn_8011AFA0 = .text:0x8011AFA0; // type:function size:0x10 -fn_8011AFB0 = .text:0x8011AFB0; // type:function size:0x10 -fn_8011AFC0 = .text:0x8011AFC0; // type:function size:0x10 -fn_8011AFD0 = .text:0x8011AFD0; // type:function size:0x10 -fn_8011AFE0 = .text:0x8011AFE0; // type:function size:0x10 -fn_8011AFF0 = .text:0x8011AFF0; // type:function size:0x10 -fn_8011B000 = .text:0x8011B000; // type:function size:0x10 -fn_8011B010 = .text:0x8011B010; // type:function size:0x10 -fn_8011B020 = .text:0x8011B020; // type:function size:0x10 -fn_8011B030 = .text:0x8011B030; // type:function size:0x10 -fn_8011B040 = .text:0x8011B040; // type:function size:0x10 -fn_8011B050 = .text:0x8011B050; // type:function size:0x10 +initializeState__86sStateMgr_c<17dLytAutoCaption_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x8011AF60; // type:function size:0x10 +executeState__86sStateMgr_c<17dLytAutoCaption_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x8011AF70; // type:function size:0x10 +finalizeState__86sStateMgr_c<17dLytAutoCaption_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x8011AF80; // type:function size:0x10 +refreshState__86sStateMgr_c<17dLytAutoCaption_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x8011AF90; // type:function size:0x10 +getState__86sStateMgr_c<17dLytAutoCaption_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x8011AFA0; // type:function size:0x10 +getNewStateID__86sStateMgr_c<17dLytAutoCaption_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x8011AFB0; // type:function size:0x10 +getStateID__86sStateMgr_c<17dLytAutoCaption_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x8011AFC0; // type:function size:0x10 +getOldStateID__86sStateMgr_c<17dLytAutoCaption_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x8011AFD0; // type:function size:0x10 +initializeState__86sStateMgr_c<17dLytAutoExplain_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x8011AFE0; // type:function size:0x10 +executeState__86sStateMgr_c<17dLytAutoExplain_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x8011AFF0; // type:function size:0x10 +finalizeState__86sStateMgr_c<17dLytAutoExplain_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x8011B000; // type:function size:0x10 +refreshState__86sStateMgr_c<17dLytAutoExplain_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x8011B010; // type:function size:0x10 +getState__86sStateMgr_c<17dLytAutoExplain_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x8011B020; // type:function size:0x10 +getNewStateID__86sStateMgr_c<17dLytAutoExplain_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x8011B030; // type:function size:0x10 +getStateID__86sStateMgr_c<17dLytAutoExplain_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x8011B040; // type:function size:0x10 +getOldStateID__86sStateMgr_c<17dLytAutoExplain_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x8011B050; // type:function size:0x10 fn_8011B060 = .text:0x8011B060; // type:function size:0x10 fn_8011B070 = .text:0x8011B070; // type:function size:0x10 fn_8011B080 = .text:0x8011B080; // type:function size:0x10 @@ -6970,22 +6970,22 @@ fn_8011B120 = .text:0x8011B120; // type:function size:0x10 fn_8011B130 = .text:0x8011B130; // type:function size:0x10 fn_8011B140 = .text:0x8011B140; // type:function size:0x10 fn_8011B150 = .text:0x8011B150; // type:function size:0x10 -fn_8011B160 = .text:0x8011B160; // type:function size:0x10 -fn_8011B170 = .text:0x8011B170; // type:function size:0x10 -fn_8011B180 = .text:0x8011B180; // type:function size:0x10 -fn_8011B190 = .text:0x8011B190; // type:function size:0x10 -fn_8011B1A0 = .text:0x8011B1A0; // type:function size:0x10 -fn_8011B1B0 = .text:0x8011B1B0; // type:function size:0x10 -fn_8011B1C0 = .text:0x8011B1C0; // type:function size:0x10 -fn_8011B1D0 = .text:0x8011B1D0; // type:function size:0x10 -fn_8011B1E0 = .text:0x8011B1E0; // type:function size:0x10 -fn_8011B1F0 = .text:0x8011B1F0; // type:function size:0x10 -fn_8011B200 = .text:0x8011B200; // type:function size:0x10 -fn_8011B210 = .text:0x8011B210; // type:function size:0x10 -fn_8011B220 = .text:0x8011B220; // type:function size:0x10 -fn_8011B230 = .text:0x8011B230; // type:function size:0x10 -fn_8011B240 = .text:0x8011B240; // type:function size:0x10 -fn_8011B250 = .text:0x8011B250; // type:function size:0x10 +initializeState__89sStateMgr_c<20dLytMsgWindowStone_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x8011B160; // type:function size:0x10 +executeState__89sStateMgr_c<20dLytMsgWindowStone_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x8011B170; // type:function size:0x10 +finalizeState__89sStateMgr_c<20dLytMsgWindowStone_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x8011B180; // type:function size:0x10 +refreshState__89sStateMgr_c<20dLytMsgWindowStone_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x8011B190; // type:function size:0x10 +getState__89sStateMgr_c<20dLytMsgWindowStone_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x8011B1A0; // type:function size:0x10 +getNewStateID__89sStateMgr_c<20dLytMsgWindowStone_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x8011B1B0; // type:function size:0x10 +getStateID__89sStateMgr_c<20dLytMsgWindowStone_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x8011B1C0; // type:function size:0x10 +getOldStateID__89sStateMgr_c<20dLytMsgWindowStone_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x8011B1D0; // type:function size:0x10 +initializeState__88sStateMgr_c<19dLytMsgWindowWood_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x8011B1E0; // type:function size:0x10 +executeState__88sStateMgr_c<19dLytMsgWindowWood_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x8011B1F0; // type:function size:0x10 +finalizeState__88sStateMgr_c<19dLytMsgWindowWood_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x8011B200; // type:function size:0x10 +refreshState__88sStateMgr_c<19dLytMsgWindowWood_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x8011B210; // type:function size:0x10 +getState__88sStateMgr_c<19dLytMsgWindowWood_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x8011B220; // type:function size:0x10 +getNewStateID__88sStateMgr_c<19dLytMsgWindowWood_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x8011B230; // type:function size:0x10 +getStateID__88sStateMgr_c<19dLytMsgWindowWood_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x8011B240; // type:function size:0x10 +getOldStateID__88sStateMgr_c<19dLytMsgWindowWood_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x8011B250; // type:function size:0x10 fn_8011B260 = .text:0x8011B260; // type:function size:0x10 fn_8011B270 = .text:0x8011B270; // type:function size:0x10 fn_8011B280 = .text:0x8011B280; // type:function size:0x10 @@ -7010,9 +7010,9 @@ fn_8011B3A0 = .text:0x8011B3A0; // type:function size:0x10 fn_8011B3B0 = .text:0x8011B3B0; // type:function size:0x10 fn_8011B3C0 = .text:0x8011B3C0; // type:function size:0x10 fn_8011B3D0 = .text:0x8011B3D0; // type:function size:0x10 -fn_8011B3E0 = .text:0x8011B3E0; // type:function size:0x30 -fn_8011B410 = .text:0x8011B410; // type:function size:0x30 -fn_8011B440 = .text:0x8011B440; // type:function size:0x30 +finalizeState__30sFStateID_c<15dLytMsgWindow_c>CFR15dLytMsgWindow_c = .text:0x8011B3E0; // type:function size:0x30 +executeState__30sFStateID_c<15dLytMsgWindow_c>CFR15dLytMsgWindow_c = .text:0x8011B410; // type:function size:0x30 +initializeState__30sFStateID_c<15dLytMsgWindow_c>CFR15dLytMsgWindow_c = .text:0x8011B440; // type:function size:0x30 fn_8011B470 = .text:0x8011B470; // type:function size:0x30 fn_8011B4A0 = .text:0x8011B4A0; // type:function size:0x30 fn_8011B4D0 = .text:0x8011B4D0; // type:function size:0x30 @@ -7270,9 +7270,9 @@ finalizeState_Out__19dLytMsgWindowWood_cFv = .text:0x80126160; // type:function execute__19dLytMsgWindowWood_cFv = .text:0x80126170; // type:function size:0xBC draw__19dLytMsgWindowWood_cFv = .text:0x80126230; // type:function size:0x14 open__19dLytMsgWindowWood_cFv = .text:0x80126250; // type:function size:0xC -isOpening__19dLytMsgWindowWood_cCFv = .text:0x80126260; // type:function size:0x4C +isDoneOpening__19dLytMsgWindowWood_cCFv = .text:0x80126260; // type:function size:0x4C close__19dLytMsgWindowWood_cFv = .text:0x801262B0; // type:function size:0xC -isClosing__19dLytMsgWindowWood_cCFv = .text:0x801262C0; // type:function size:0x4C +isDoneClosing__19dLytMsgWindowWood_cCFv = .text:0x801262C0; // type:function size:0x4C setText__19dLytMsgWindowWood_cFPCw = .text:0x80126310; // type:function size:0x7C vt_0x3C__19dLytMsgWindowWood_cCFv = .text:0x80126390; // type:function size:0x8 vt_0x38__19dLytMsgWindowWood_cFb = .text:0x801263A0; // type:function size:0x8 @@ -7298,9 +7298,9 @@ finalizeState_Out__20dLytMsgWindowStone_cFv = .text:0x80126DC0; // type:function execute__20dLytMsgWindowStone_cFv = .text:0x80126DD0; // type:function size:0xBC draw__20dLytMsgWindowStone_cFv = .text:0x80126E90; // type:function size:0x14 open__20dLytMsgWindowStone_cFv = .text:0x80126EB0; // type:function size:0xC -isOpening__20dLytMsgWindowStone_cCFv = .text:0x80126EC0; // type:function size:0x4C +isDoneOpening__20dLytMsgWindowStone_cCFv = .text:0x80126EC0; // type:function size:0x4C close__20dLytMsgWindowStone_cFv = .text:0x80126F10; // type:function size:0xC -isClosing__20dLytMsgWindowStone_cCFv = .text:0x80126F20; // type:function size:0x4C +isDoneClosing__20dLytMsgWindowStone_cCFv = .text:0x80126F20; // type:function size:0x4C setText__20dLytMsgWindowStone_cFPCw = .text:0x80126F70; // type:function size:0xA0 vt_0x3C__20dLytMsgWindowStone_cCFv = .text:0x80127010; // type:function size:0x8 vt_0x38__20dLytMsgWindowStone_cFb = .text:0x80127020; // type:function size:0x8 @@ -7438,9 +7438,9 @@ remove__17dLytAutoCaption_cFv = .text:0x8012BDE0; // type:function size:0x50 execute__17dLytAutoCaption_cFv = .text:0x8012BE30; // type:function size:0xA8 draw__17dLytAutoCaption_cFv = .text:0x8012BEE0; // type:function size:0x14 open__17dLytAutoCaption_cFv = .text:0x8012BF00; // type:function size:0xC -isOpening__17dLytAutoCaption_cCFv = .text:0x8012BF10; // type:function size:0x4C +isDoneOpening__17dLytAutoCaption_cCFv = .text:0x8012BF10; // type:function size:0x4C close__17dLytAutoCaption_cFv = .text:0x8012BF60; // type:function size:0xC -isClosing__17dLytAutoCaption_cCFv = .text:0x8012BF70; // type:function size:0x4C +isDoneClosing__17dLytAutoCaption_cCFv = .text:0x8012BF70; // type:function size:0x4C setText__17dLytAutoCaption_cFPCw = .text:0x8012BFC0; // type:function size:0x64 checkSomethingMeter__17dLytAutoCaption_cFv = .text:0x8012C030; // type:function size:0xF4 vt_0x30__17dLytAutoCaption_cFv = .text:0x8012C130; // type:function size:0x8 @@ -7464,9 +7464,9 @@ remove__17dLytAutoExplain_cFv = .text:0x8012C9F0; // type:function size:0x50 execute__17dLytAutoExplain_cFv = .text:0x8012CA40; // type:function size:0xA8 draw__17dLytAutoExplain_cFv = .text:0x8012CAF0; // type:function size:0x14 open__17dLytAutoExplain_cFv = .text:0x8012CB10; // type:function size:0xC -isOpening__17dLytAutoExplain_cCFv = .text:0x8012CB20; // type:function size:0x4C +isDoneOpening__17dLytAutoExplain_cCFv = .text:0x8012CB20; // type:function size:0x4C close__17dLytAutoExplain_cFv = .text:0x8012CB70; // type:function size:0xC -isClosing__17dLytAutoExplain_cCFv = .text:0x8012CB80; // type:function size:0x4C +isDoneClosing__17dLytAutoExplain_cCFv = .text:0x8012CB80; // type:function size:0x4C setText__17dLytAutoExplain_cFPCw = .text:0x8012CBD0; // type:function size:0x7C checkSomethingMeter__17dLytAutoExplain_cFv = .text:0x8012CC50; // type:function size:0xF4 vt_0x30__17dLytAutoExplain_cFv = .text:0x8012CD50; // type:function size:0x8 @@ -32058,14 +32058,14 @@ lbl_8051B6F4 = .data:0x8051B6F4; // type:object size:0xC lbl_8051B700 = .data:0x8051B700; // type:object size:0xC data:string jumptable_8051B70C = .data:0x8051B70C; // type:object size:0x7C scope:local lbl_8051B788 = .data:0x8051B788; // type:object size:0x10 -lbl_8051B798 = .data:0x8051B798; // type:object size:0x30 -lbl_8051B7C8 = .data:0x8051B7C8; // type:object size:0x30 -lbl_8051B7F8 = .data:0x8051B7F8; // type:object size:0x18 -lbl_8051B810 = .data:0x8051B810; // type:object size:0x18 -lbl_8051B828 = .data:0x8051B828; // type:object size:0x30 -lbl_8051B858 = .data:0x8051B858; // type:object size:0x30 -lbl_8051B888 = .data:0x8051B888; // type:object size:0x18 -lbl_8051B8A0 = .data:0x8051B8A0; // type:object size:0x18 +__vt__56sFStateMgr_c<17dLytAutoCaption_c,20sStateMethodUsr_FI_c> = .data:0x8051B798; // type:object size:0x30 +__vt__86sStateMgr_c<17dLytAutoCaption_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c> = .data:0x8051B7C8; // type:object size:0x30 +__vt__33sFStateFct_c<17dLytAutoCaption_c> = .data:0x8051B7F8; // type:object size:0x18 +__vt__30sFState_c<17dLytAutoCaption_c> = .data:0x8051B810; // type:object size:0x18 +__vt__56sFStateMgr_c<17dLytAutoExplain_c,20sStateMethodUsr_FI_c> = .data:0x8051B828; // type:object size:0x30 +__vt__86sStateMgr_c<17dLytAutoExplain_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c> = .data:0x8051B858; // type:object size:0x30 +__vt__33sFStateFct_c<17dLytAutoExplain_c> = .data:0x8051B888; // type:object size:0x18 +__vt__30sFState_c<17dLytAutoExplain_c> = .data:0x8051B8A0; // type:object size:0x18 lbl_8051B8B8 = .data:0x8051B8B8; // type:object size:0x30 lbl_8051B8E8 = .data:0x8051B8E8; // type:object size:0x30 lbl_8051B918 = .data:0x8051B918; // type:object size:0x18 @@ -32074,14 +32074,14 @@ lbl_8051B948 = .data:0x8051B948; // type:object size:0x30 lbl_8051B978 = .data:0x8051B978; // type:object size:0x30 lbl_8051B9A8 = .data:0x8051B9A8; // type:object size:0x18 lbl_8051B9C0 = .data:0x8051B9C0; // type:object size:0x18 -lbl_8051B9D8 = .data:0x8051B9D8; // type:object size:0x30 -lbl_8051BA08 = .data:0x8051BA08; // type:object size:0x30 -lbl_8051BA38 = .data:0x8051BA38; // type:object size:0x18 -lbl_8051BA50 = .data:0x8051BA50; // type:object size:0x18 -lbl_8051BA68 = .data:0x8051BA68; // type:object size:0x30 -lbl_8051BA98 = .data:0x8051BA98; // type:object size:0x30 -lbl_8051BAC8 = .data:0x8051BAC8; // type:object size:0x18 -lbl_8051BAE0 = .data:0x8051BAE0; // type:object size:0x18 +__vt__59sFStateMgr_c<20dLytMsgWindowStone_c,20sStateMethodUsr_FI_c> = .data:0x8051B9D8; // type:object size:0x30 +__vt__89sStateMgr_c<20dLytMsgWindowStone_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c> = .data:0x8051BA08; // type:object size:0x30 +__vt__36sFStateFct_c<20dLytMsgWindowStone_c> = .data:0x8051BA38; // type:object size:0x18 +__vt__33sFState_c<20dLytMsgWindowStone_c> = .data:0x8051BA50; // type:object size:0x18 +__vt__58sFStateMgr_c<19dLytMsgWindowWood_c,20sStateMethodUsr_FI_c> = .data:0x8051BA68; // type:object size:0x30 +__vt__88sStateMgr_c<19dLytMsgWindowWood_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c> = .data:0x8051BA98; // type:object size:0x30 +__vt__35sFStateFct_c<19dLytMsgWindowWood_c> = .data:0x8051BAC8; // type:object size:0x18 +__vt__32sFState_c<19dLytMsgWindowWood_c> = .data:0x8051BAE0; // type:object size:0x18 lbl_8051BAF8 = .data:0x8051BAF8; // type:object size:0x30 lbl_8051BB28 = .data:0x8051BB28; // type:object size:0x30 lbl_8051BB58 = .data:0x8051BB58; // type:object size:0x18 @@ -32097,7 +32097,7 @@ lbl_8051BC90 = .data:0x8051BC90; // type:object size:0x18 lbl_8051BCA8 = .data:0x8051BCA8; // type:object size:0xC lbl_8051BCB4 = .data:0x8051BCB4; // type:object size:0xC lbl_8051BCC0 = .data:0x8051BCC0; // type:object size:0x60C -lbl_8051C2CC = .data:0x8051C2CC; // type:object size:0x34 +__vt__30sFStateID_c<15dLytMsgWindow_c> = .data:0x8051C2CC; // type:object size:0x34 lbl_8051C300 = .data:0x8051C300; // type:object size:0xC lbl_8051C30C = .data:0x8051C30C; // type:object size:0xC data:string lbl_8051C318 = .data:0x8051C318; // type:object size:0x10 diff --git a/include/d/d_message.h b/include/d/d_message.h index d9fa29df..ffc2864a 100644 --- a/include/d/d_message.h +++ b/include/d/d_message.h @@ -31,6 +31,16 @@ public: void reset(); + bool getField_0x329() const { + return field_0x329; + } + + bool getField_0x32A() const { + return field_0x32A; + } + + static void loadTextByLabel(const char *label, dTagProcessor_c *tagProcessor, bool, u32, u32); + private: static s32 getArcIndexForFile(const char *fileName); static const char *getArcNameByIndex(s32 idx, bool); @@ -52,6 +62,9 @@ private: /* 0x2FC */ s32 field_0x2FC; + /* 0x329 */ bool field_0x329; + /* 0x32A */ bool field_0x32A; + /* 0x334 */ u32 mMinigameResultPoints; /* 0x338 */ u32 mMinigameTime; /* 0x344 */ s32 field_0x344; diff --git a/include/d/d_textunk.h b/include/d/d_textunk.h index 086785cf..587d5376 100644 --- a/include/d/d_textunk.h +++ b/include/d/d_textunk.h @@ -113,6 +113,18 @@ public: return sInstance; } + void reset0(const char *str) { + field_0x004 = str; + } + + void reset1(const char *str) { + field_0x084 = str; + } + + void reset2(const char *str) { + field_0x104 = str; + } + private: static UnkTextThing *sInstance; diff --git a/include/d/d_textwindow_unk.h b/include/d/d_textwindow_unk.h index 0e929df2..e0754ab4 100644 --- a/include/d/d_textwindow_unk.h +++ b/include/d/d_textwindow_unk.h @@ -2,12 +2,20 @@ #define D_TEXTWINDOW_UNK_H #include "d/d_tag_processor.h" +#include "d/lyt/d_textbox.h" // Size 0x1554 class TextWindowUnk { public: TextWindowUnk(dTagProcessor_c *tagProcessor); virtual ~TextWindowUnk() {} + + void fn_800B2130(const char *, dTextBox_c *, void*, bool); + void textAdvancingRelated(bool, bool); + + const wchar_t *getProcessedText() const { + return mProcessedTextBuffer; + } private: /* 0x0004 */ dTagProcessor_c *mpTagProcessor; diff --git a/include/d/lyt/d_lyt_auto_caption.h b/include/d/lyt/d_lyt_auto_caption.h index d09c86fe..8996d0e0 100644 --- a/include/d/lyt/d_lyt_auto_caption.h +++ b/include/d/lyt/d_lyt_auto_caption.h @@ -10,15 +10,17 @@ class dLytAutoCaption_c : public dLytMsgWindowSubtype { public: + dLytAutoCaption_c() : mStateMgr(*this) {} /* vt 0x08 */ virtual ~dLytAutoCaption_c() {} /* vt 0x0C */ virtual void draw() override; - /* vt 0x10 */ virtual bool build(d2d::ResAccIf_c *resAcc1, d2d::ResAccIf_c *resAcc, dTagProcessor_c *tagProcessor) override; + /* vt 0x10 */ virtual bool + build(d2d::ResAccIf_c *resAcc1, d2d::ResAccIf_c *resAcc, dTagProcessor_c *tagProcessor) override; /* vt 0x14 */ virtual bool remove() override; /* vt 0x18 */ virtual bool execute() override; /* vt 0x1C */ virtual void open() override; - /* vt 0x20 */ virtual bool isOpening() const override; + /* vt 0x20 */ virtual bool isDoneOpening() const override; /* vt 0x24 */ virtual void close() override; - /* vt 0x28 */ virtual bool isClosing() const override; + /* vt 0x28 */ virtual bool isDoneClosing() const override; /* vt 0x2C */ virtual bool setText(const wchar_t *text) override; /* vt 0x30 */ virtual dTextBox_c *vt_0x30() override { return mpTextboxes[0]; diff --git a/include/d/lyt/d_lyt_auto_explain.h b/include/d/lyt/d_lyt_auto_explain.h index e9e62e48..5d1a2091 100644 --- a/include/d/lyt/d_lyt_auto_explain.h +++ b/include/d/lyt/d_lyt_auto_explain.h @@ -10,15 +10,17 @@ class dLytAutoExplain_c : public dLytMsgWindowSubtype { public: + dLytAutoExplain_c() : mStateMgr(*this) {} /* vt 0x08 */ virtual ~dLytAutoExplain_c() {} /* vt 0x0C */ virtual void draw() override; - /* vt 0x10 */ virtual bool build(d2d::ResAccIf_c *resAcc1, d2d::ResAccIf_c *resAcc, dTagProcessor_c *tagProcessor) override; + /* vt 0x10 */ virtual bool + build(d2d::ResAccIf_c *resAcc1, d2d::ResAccIf_c *resAcc, dTagProcessor_c *tagProcessor) override; /* vt 0x14 */ virtual bool remove() override; /* vt 0x18 */ virtual bool execute() override; /* vt 0x1C */ virtual void open() override; - /* vt 0x20 */ virtual bool isOpening() const override; + /* vt 0x20 */ virtual bool isDoneOpening() const override; /* vt 0x24 */ virtual void close() override; - /* vt 0x28 */ virtual bool isClosing() const override; + /* vt 0x28 */ virtual bool isDoneClosing() const override; /* vt 0x2C */ virtual bool setText(const wchar_t *text) override; /* vt 0x30 */ virtual dTextBox_c *vt_0x30() override { return mpTextboxes[0]; diff --git a/include/d/lyt/msg_window/d_lyt_msg_window.h b/include/d/lyt/msg_window/d_lyt_msg_window.h index 701b22d7..d3fc6287 100644 --- a/include/d/lyt/msg_window/d_lyt_msg_window.h +++ b/include/d/lyt/msg_window/d_lyt_msg_window.h @@ -4,15 +4,16 @@ #include "d/d_tag_processor.h" #include "d/d_textwindow_unk.h" #include "d/lyt/d2d.h" -#include "d/lyt/d_lyt_auto_caption.h" -#include "d/lyt/d_lyt_auto_explain.h" #include "d/lyt/msg_window/d_lyt_msg_window_common.h" #include "d/lyt/msg_window/d_lyt_msg_window_select_btn.h" -#include "d/lyt/msg_window/d_lyt_msg_window_stone.h" -#include "d/lyt/msg_window/d_lyt_msg_window_wood.h" #include "s/s_State.hpp" #include "sized_string.h" +class dLytMsgWindowWood_c; +class dLytMsgWindowStone_c; +class dLytAutoExplain_c; +class dLytAutoCaption_c; + class dLytMsgWindow_c { public: dLytMsgWindow_c() : mStateMgr(*this) {} @@ -22,8 +23,10 @@ public: bool remove(); private: - - void removeAllWindowSubtypes(); + static bool isValidTextLabel(const char *name); + void setTextToDisplay(const wchar_t *text); + void createSubMsgManager(u8 type); + void removeSubMsgManagers(); static dLytMsgWindow_c *sInstance; @@ -47,7 +50,6 @@ private: STATE_FUNC_DECLARE(dLytMsgWindow_c, DemoVisible); STATE_FUNC_DECLARE(dLytMsgWindow_c, DemoOut); - /* 0x004 */ UI_STATE_MGR_DECLARE(dLytMsgWindow_c); /* 0x040 */ d2d::ResAccIf_c mResAcc1; /* 0x3B0 */ d2d::ResAccIf_c mResAcc2; @@ -76,6 +78,7 @@ private: /* 0x78A */ u16 mAlsoEntryPointToTrigger; /* 0x78C */ SizedString<0x40> mName; + /* 0x7CC */ SizedString<0x40> mNameCopy; /* 0x80C */ u8 field_0x80C; /* 0x80D */ u8 field_0x80D; @@ -99,7 +102,7 @@ private: /* 0x820 */ u16 field_0x820; /* 0x824 */ void *field_0x824; - /* 0x828 */ s32 field_0x828; + /* 0x828 */ void *field_0x828; /* 0x82C */ u32 mTextOptionSelection; /* 0x830 */ u32 mSpecialFiMenuValue; diff --git a/include/d/lyt/msg_window/d_lyt_msg_window_common.h b/include/d/lyt/msg_window/d_lyt_msg_window_common.h index d8f843e3..7e1544ec 100644 --- a/include/d/lyt/msg_window/d_lyt_msg_window_common.h +++ b/include/d/lyt/msg_window/d_lyt_msg_window_common.h @@ -1,6 +1,7 @@ #ifndef D_LYT_MGS_WINDOW_COMMON_H #define D_LYT_MGS_WINDOW_COMMON_H +#include "common.h" #include "d/d_tag_processor.h" #include "d/lyt/d2d.h" #include "m/m2d.h" @@ -13,11 +14,13 @@ public: /* vt 0x14 */ virtual bool remove(); /* vt 0x18 */ virtual bool execute(); /* vt 0x1C */ virtual void open(); - /* vt 0x20 */ virtual bool isOpening() const; + /* vt 0x20 */ virtual bool isDoneOpening() const; /* vt 0x24 */ virtual void close(); - /* vt 0x28 */ virtual bool isClosing() const; + /* vt 0x28 */ virtual bool isDoneClosing() const; /* vt 0x2C */ virtual bool setText(const wchar_t *text); - /* vt 0x30 */ virtual dTextBox_c *vt_0x30(); + /* vt 0x30 */ virtual dTextBox_c *vt_0x30() { + return nullptr; + } /* vt 0x34 */ virtual bool vt_0x34() { return true; } diff --git a/include/d/lyt/msg_window/d_lyt_msg_window_stone.h b/include/d/lyt/msg_window/d_lyt_msg_window_stone.h index 4a52f910..3b7cc3dd 100644 --- a/include/d/lyt/msg_window/d_lyt_msg_window_stone.h +++ b/include/d/lyt/msg_window/d_lyt_msg_window_stone.h @@ -11,6 +11,7 @@ class dLytMsgWindowStone_c : public dLytMsgWindowSubtype { public: + dLytMsgWindowStone_c() : mStateMgr(*this) {} /* vt 0x08 */ virtual ~dLytMsgWindowStone_c() {} /* vt 0x0C */ virtual void draw() override; /* vt 0x10 */ virtual bool @@ -18,9 +19,9 @@ public: /* vt 0x14 */ virtual bool remove() override; /* vt 0x18 */ virtual bool execute() override; /* vt 0x1C */ virtual void open() override; - /* vt 0x20 */ virtual bool isOpening() const override; + /* vt 0x20 */ virtual bool isDoneOpening() const override; /* vt 0x24 */ virtual void close() override; - /* vt 0x28 */ virtual bool isClosing() const override; + /* vt 0x28 */ virtual bool isDoneClosing() const override; /* vt 0x2C */ virtual bool setText(const wchar_t *text) override; /* vt 0x30 */ virtual dTextBox_c *vt_0x30() override { return mpTextboxes[0]; diff --git a/include/d/lyt/msg_window/d_lyt_msg_window_wood.h b/include/d/lyt/msg_window/d_lyt_msg_window_wood.h index 795fdf97..a43f9e08 100644 --- a/include/d/lyt/msg_window/d_lyt_msg_window_wood.h +++ b/include/d/lyt/msg_window/d_lyt_msg_window_wood.h @@ -11,6 +11,7 @@ class dLytMsgWindowWood_c : public dLytMsgWindowSubtype { public: + dLytMsgWindowWood_c() : mStateMgr(*this) {} /* vt 0x08 */ virtual ~dLytMsgWindowWood_c() {} /* vt 0x0C */ virtual void draw() override; /* vt 0x10 */ virtual bool @@ -18,9 +19,9 @@ public: /* vt 0x14 */ virtual bool remove() override; /* vt 0x18 */ virtual bool execute() override; /* vt 0x1C */ virtual void open() override; - /* vt 0x20 */ virtual bool isOpening() const override; + /* vt 0x20 */ virtual bool isDoneOpening() const override; /* vt 0x24 */ virtual void close() override; - /* vt 0x28 */ virtual bool isClosing() const override; + /* vt 0x28 */ virtual bool isDoneClosing() const override; /* vt 0x2C */ virtual bool setText(const wchar_t *text) override; /* vt 0x30 */ virtual dTextBox_c *vt_0x30() override { return mpTextboxes[0]; diff --git a/src/d/lyt/d_lyt_auto_caption.cpp b/src/d/lyt/d_lyt_auto_caption.cpp index 5e1ad385..feb3c198 100644 --- a/src/d/lyt/d_lyt_auto_caption.cpp +++ b/src/d/lyt/d_lyt_auto_caption.cpp @@ -150,7 +150,7 @@ void dLytAutoCaption_c::open() { mShouldBeOpen = true; } -bool dLytAutoCaption_c::isOpening() const { +bool dLytAutoCaption_c::isDoneOpening() const { return !(*mStateMgr.getStateID() == StateID_In); } @@ -158,7 +158,7 @@ void dLytAutoCaption_c::close() { mShouldBeOpen = false; } -bool dLytAutoCaption_c::isClosing() const { +bool dLytAutoCaption_c::isDoneClosing() const { return !(*mStateMgr.getStateID() == StateID_Out); } diff --git a/src/d/lyt/d_lyt_auto_explain.cpp b/src/d/lyt/d_lyt_auto_explain.cpp index 5a56e9a1..709bf9c5 100644 --- a/src/d/lyt/d_lyt_auto_explain.cpp +++ b/src/d/lyt/d_lyt_auto_explain.cpp @@ -143,7 +143,7 @@ void dLytAutoExplain_c::open() { mShouldBeOpen = true; } -bool dLytAutoExplain_c::isOpening() const { +bool dLytAutoExplain_c::isDoneOpening() const { return !(*mStateMgr.getStateID() == StateID_In); } @@ -151,7 +151,7 @@ void dLytAutoExplain_c::close() { mShouldBeOpen = false; } -bool dLytAutoExplain_c::isClosing() const { +bool dLytAutoExplain_c::isDoneClosing() const { return !(*mStateMgr.getStateID() == StateID_Out); } 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 e377d3b9..cd189104 100644 --- a/src/d/lyt/msg_window/d_lyt_msg_window.cpp +++ b/src/d/lyt/msg_window/d_lyt_msg_window.cpp @@ -1,7 +1,18 @@ #include "d/lyt/msg_window/d_lyt_msg_window.h" + #include "common.h" +#include "d/d_message.h" #include "d/d_tag_processor.h" +#include "d/d_textunk.h" #include "d/d_textwindow_unk.h" +#include "d/lyt/d_textbox.h" +// clang-format off +// vtable order +#include "d/lyt/msg_window/d_lyt_msg_window_wood.h" +#include "d/lyt/msg_window/d_lyt_msg_window_stone.h" +#include "d/lyt/d_lyt_auto_explain.h" +#include "d/lyt/d_lyt_auto_caption.h" +// clang-format on #include "s/s_State.hpp" #include "toBeSorted/arc_managers/layout_arc_manager.h" #include "toBeSorted/global_fi_context.h" @@ -65,7 +76,7 @@ bool dLytMsgWindow_c::build() { field_0x77C = 0; field_0x780 = 0; field_0x784 = -1; - + mAlsoEntryPointToTrigger = 0xFFFF; mEntryPointToTrigger = 0xFFFF; @@ -97,14 +108,13 @@ bool dLytMsgWindow_c::build() { return true; } - bool dLytMsgWindow_c::remove() { delete mpMsgWindowUnk; mpMsgWindowUnk = nullptr; delete mpTagProcessor; mpTagProcessor = nullptr; mSelectBtn.remove(); - removeAllWindowSubtypes(); + removeSubMsgManagers(); field_0x824 = 0; mResAcc1.detach(); mResAcc2.detach(); @@ -112,14 +122,102 @@ bool dLytMsgWindow_c::remove() { } void dLytMsgWindow_c::initializeState_Invisible() {} -void dLytMsgWindow_c::executeState_Invisible() {} +void dLytMsgWindow_c::executeState_Invisible() { + if (dMessage_c::getInstance()->getField_0x329()) { + mStateMgr.changeState(StateID_MapOpen); + } else if (dMessage_c::getInstance()->getField_0x32A()) { + mStateMgr.changeState(StateID_WaitKeyMapClose); + } else if (field_0x80C) { + field_0x80C = 0; + if (isValidTextLabel(mName)) { + mNameCopy = mName; + dMessage_c::loadTextByLabel(mNameCopy, mpTagProcessor, true, 0, 0); + + if (field_0x1220 == 0) { + if (field_0x80D != 0) { + if (mpTagProcessor->getMsgWindowSubtype() == 0x16) { + mpAutoCaption = new dLytAutoCaption_c(); + mpAutoCaption->build(&mResAcc1, &mResAcc2, mpTagProcessor); + mpCurrentSubtype = mpAutoCaption; + } else { + mpAutoExplain = new dLytAutoExplain_c(); + mpAutoExplain->build(&mResAcc1, &mResAcc2, mpTagProcessor); + mpCurrentSubtype = mpAutoExplain; + } + + mpCurrentSubtype->setPriority(0x8A); + dTextBox_c *box = mpCurrentSubtype->vt_0x30(); + mpMsgWindowUnk->fn_800B2130(mNameCopy, box, nullptr, true); + mpMsgWindowUnk->textAdvancingRelated(true, true); + mShowAutoMessage = false; + setTextToDisplay(mpMsgWindowUnk->getProcessedText()); + mStateMgr.changeState(StateID_ExplainIn); + } else { + createSubMsgManager(mpTagProcessor->getMsgWindowSubtype()); + field_0x828 = 0; + mSpecialFiMenuValue = 7; + if (mpTagProcessor->getMsgWindowSubtype() == 6) { + mpCurrentSubtype = mpWindowWood; + dTextBox_c *box = mpCurrentSubtype->vt_0x30(); + mpMsgWindowUnk->fn_800B2130(mNameCopy, box, nullptr, true); + mpMsgWindowUnk->textAdvancingRelated(true, true); + setTextToDisplay(mpMsgWindowUnk->getProcessedText()); + } else if (mpTagProcessor->getMsgWindowSubtype() == 7) { + mpCurrentSubtype = mpWindowStone; + dTextBox_c *box = mpCurrentSubtype->vt_0x30(); + mpMsgWindowUnk->fn_800B2130(mNameCopy, box, nullptr, true); + mpMsgWindowUnk->textAdvancingRelated(true, true); + setTextToDisplay(mpMsgWindowUnk->getProcessedText()); + } else if (mpTagProcessor->getMsgWindowSubtype() >= 2 && + mpTagProcessor->getMsgWindowSubtype() < 5) { + mpCurrentSubtype = mpWindowSword; + // TODO + } else if (mpTagProcessor->getMsgWindowSubtype() == 9) { + mpCurrentSubtype = mpWindowLink; + // TODO + } else if (mpTagProcessor->getMsgWindowSubtype() == 5) { + mpCurrentSubtype = mpWindowGet; + // TODO + } else if (mpTagProcessor->getMsgWindowSubtype() == 30) { + mpCurrentSubtype = mpWindowDemo; + dTextBox_c *box = mpCurrentSubtype->vt_0x30(); + mpMsgWindowUnk->fn_800B2130(mNameCopy, box, field_0x828, true); + mpMsgWindowUnk->textAdvancingRelated(true, true); + setTextToDisplay(mpMsgWindowUnk->getProcessedText()); + mStateMgr.changeState(StateID_DemoIn); + return; + } else { + mpCurrentSubtype = mpWindowTalk; + // TODO + } + mpCurrentSubtype->setPriority(0x8A); + dTextBox_c *box = mpCurrentSubtype->vt_0x30(); + mpMsgWindowUnk->fn_800B2130(mNameCopy, box, field_0x828, true); + setTextToDisplay(mpMsgWindowUnk->getProcessedText()); + mStateMgr.changeState(StateID_In); + } + } else { + mStateMgr.changeState(StateID_OutputText); + } + } + } +} void dLytMsgWindow_c::finalizeState_Invisible() {} void dLytMsgWindow_c::initializeState_In() {} -void dLytMsgWindow_c::executeState_In() {} +void dLytMsgWindow_c::executeState_In() { + if (mpCurrentSubtype->isDoneOpening()) { + mStateMgr.changeState(StateID_OutputText); + } +} void dLytMsgWindow_c::finalizeState_In() {} -void dLytMsgWindow_c::initializeState_OutputText() {} +void dLytMsgWindow_c::initializeState_OutputText() { + field_0x81C = 0; + field_0x81D = 0; + field_0x820 = 0; + field_0x81E = 0; +} void dLytMsgWindow_c::executeState_OutputText() {} void dLytMsgWindow_c::finalizeState_OutputText() {} @@ -186,3 +284,111 @@ void dLytMsgWindow_c::finalizeState_DemoVisible() {} void dLytMsgWindow_c::initializeState_DemoOut() {} void dLytMsgWindow_c::executeState_DemoOut() {} void dLytMsgWindow_c::finalizeState_DemoOut() {} + +#pragma dont_inline on +void dLytMsgWindow_c::createSubMsgManager(u8 type) { + switch (type) { + case 6: + mpWindowWood = new dLytMsgWindowWood_c(); + mpWindowWood->build(&mResAcc1, &mResAcc2, mpTagProcessor); + break; + case 7: + mpWindowStone = new dLytMsgWindowStone_c(); + mpWindowStone->build(&mResAcc1, &mResAcc2, mpTagProcessor); + break; + case 2: + // TODO Sword + break; + case 3: + // TODO Sword + break; + case 4: + // TODO Sword + break; + case 5: + // TODO Get + mpWindowGet = new dLytMsgWindowWood_c(); + mpWindowGet->build(&mResAcc1, &mResAcc2, mpTagProcessor); + break; + case 9: + // TODO Link + mpWindowLink = new dLytMsgWindowWood_c(); + mpWindowLink->build(&mResAcc1, &mResAcc2, mpTagProcessor); + break; + case 30: + // TODO Demo + mpWindowDemo = new dLytMsgWindowWood_c(); + mpWindowDemo->build(&mResAcc1, &mResAcc2, mpTagProcessor); + break; + default: + // TODO talk + mpWindowDemo = new dLytMsgWindowWood_c(); + mpWindowDemo->build(&mResAcc1, &mResAcc2, mpTagProcessor); + break; + } +} + +#pragma dont_inline off + +void dLytMsgWindow_c::removeSubMsgManagers() { + if (mpWindowTalk != nullptr) { + mpWindowTalk->remove(); + delete mpWindowTalk; + mpWindowTalk = nullptr; + } + + if (mpWindowLink != nullptr) { + mpWindowLink->remove(); + delete mpWindowLink; + mpWindowLink = nullptr; + } + + if (mpWindowSword != nullptr) { + mpWindowSword->remove(); + delete mpWindowSword; + mpWindowSword = nullptr; + } + + if (mpWindowWood != nullptr) { + mpWindowWood->remove(); + delete mpWindowWood; + mpWindowWood = nullptr; + } + + if (mpWindowStone != nullptr) { + mpWindowStone->remove(); + delete mpWindowStone; + mpWindowStone = nullptr; + } + + if (mpWindowGet != nullptr) { + mpWindowGet->remove(); + delete mpWindowGet; + mpWindowGet = nullptr; + } + + if (mpWindowDemo != nullptr) { + mpWindowDemo->remove(); + delete mpWindowDemo; + mpWindowDemo = nullptr; + } + + if (mpAutoExplain != nullptr) { + mpAutoExplain->remove(); + delete mpAutoExplain; + mpAutoExplain = nullptr; + } + + if (mpAutoCaption != nullptr) { + mpAutoCaption->remove(); + delete mpAutoCaption; + mpAutoCaption = nullptr; + } + + mpCurrentSubtype = nullptr; + field_0x1220 = 0; + + UnkTextThing::getInstance()->reset1(""); + UnkTextThing::getInstance()->reset0(""); + UnkTextThing::getInstance()->reset2(""); +} diff --git a/src/d/lyt/msg_window/d_lyt_msg_window_stone.cpp b/src/d/lyt/msg_window/d_lyt_msg_window_stone.cpp index aaad7424..8b3815d3 100644 --- a/src/d/lyt/msg_window/d_lyt_msg_window_stone.cpp +++ b/src/d/lyt/msg_window/d_lyt_msg_window_stone.cpp @@ -172,7 +172,7 @@ void dLytMsgWindowStone_c::open() { mShouldBeOpen = true; } -bool dLytMsgWindowStone_c::isOpening() const { +bool dLytMsgWindowStone_c::isDoneOpening() const { return !(*mStateMgr.getStateID() == StateID_In); } @@ -180,7 +180,7 @@ void dLytMsgWindowStone_c::close() { mShouldBeOpen = false; } -bool dLytMsgWindowStone_c::isClosing() const { +bool dLytMsgWindowStone_c::isDoneClosing() const { return !(*mStateMgr.getStateID() == StateID_Out); } diff --git a/src/d/lyt/msg_window/d_lyt_msg_window_wood.cpp b/src/d/lyt/msg_window/d_lyt_msg_window_wood.cpp index 0e363491..95604dcb 100644 --- a/src/d/lyt/msg_window/d_lyt_msg_window_wood.cpp +++ b/src/d/lyt/msg_window/d_lyt_msg_window_wood.cpp @@ -170,7 +170,7 @@ void dLytMsgWindowWood_c::open() { mShouldBeOpen = true; } -bool dLytMsgWindowWood_c::isOpening() const { +bool dLytMsgWindowWood_c::isDoneOpening() const { return !(*mStateMgr.getStateID() == StateID_In); } @@ -178,7 +178,7 @@ void dLytMsgWindowWood_c::close() { mShouldBeOpen = false; } -bool dLytMsgWindowWood_c::isClosing() const { +bool dLytMsgWindowWood_c::isDoneClosing() const { return !(*mStateMgr.getStateID() == StateID_Out); }