diff --git a/config/SOUE01/symbols.txt b/config/SOUE01/symbols.txt index a358e059..5cc5fd31 100644 --- a/config/SOUE01/symbols.txt +++ b/config/SOUE01/symbols.txt @@ -7145,7 +7145,7 @@ initializeState_Wait__19dLytMsgWindowTalk_cFv = .text:0x80121720; // type:functi executeState_Wait__19dLytMsgWindowTalk_cFv = .text:0x80121730; // type:function size:0x2C finalizeState_Wait__19dLytMsgWindowTalk_cFv = .text:0x80121760; // type:function size:0x4 initializeState_Visible__19dLytMsgWindowTalk_cFv = .text:0x80121770; // type:function size:0x10C -getTextBox__19dLytMsgWindowTalk_cFv = .text:0x80121880; // type:function size:0x8 +getTextBox__19dLytMsgWindowTalk_cFv = .text:0x80121880; // type:function size:0x8 scope:weak executeState_Visible__19dLytMsgWindowTalk_cFv = .text:0x80121890; // type:function size:0x28 finalizeState_Visible__19dLytMsgWindowTalk_cFv = .text:0x801218C0; // type:function size:0x4 initializeState_Out__19dLytMsgWindowTalk_cFv = .text:0x801218D0; // type:function size:0x60 @@ -7158,12 +7158,12 @@ isDoneOpening__19dLytMsgWindowTalk_cCFv = .text:0x80121D30; // type:function siz close__19dLytMsgWindowTalk_cFv = .text:0x80121DD0; // type:function size:0xC isDoneClosing__19dLytMsgWindowTalk_cCFv = .text:0x80121DE0; // type:function size:0x4C setText__19dLytMsgWindowTalk_cFPCw = .text:0x80121E30; // type:function size:0x7C -isDoneDecide__19dLytMsgWindowTalk_cCFv = .text:0x80121EB0; // type:function size:0x8 -startDecide__19dLytMsgWindowTalk_cFb = .text:0x80121EC0; // type:function size:0x8 -startConfirm__19dLytMsgWindowTalk_cFv = .text:0x80121ED0; // type:function size:0x8 -__sinit_\d_lyt_msg_window_talk_cpp = .text:0x80121EE0; // type:function size:0x3F4 -__dt__34sFStateID_c<19dLytMsgWindowTalk_c>Fv = .text:0x801222E0; // type:function size:0x58 -isSameName__34sFStateID_c<19dLytMsgWindowTalk_c>CFPCc = .text:0x80122340; // type:function size:0x88 +isDoneDecide__19dLytMsgWindowTalk_cCFv = .text:0x80121EB0; // type:function size:0x8 scope:weak +startDecide__19dLytMsgWindowTalk_cFb = .text:0x80121EC0; // type:function size:0x8 scope:weak +startConfirm__19dLytMsgWindowTalk_cFv = .text:0x80121ED0; // type:function size:0x8 scope:weak +__sinit_\d_lyt_msg_window_talk_cpp = .text:0x80121EE0; // type:function size:0x3F4 scope:local +__dt__34sFStateID_c<19dLytMsgWindowTalk_c>Fv = .text:0x801222E0; // type:function size:0x58 scope:weak +isSameName__34sFStateID_c<19dLytMsgWindowTalk_c>CFPCc = .text:0x80122340; // type:function size:0x88 scope:weak build__19dLytMsgWindowLink_cFPQ23d2d10ResAccIf_cPQ23d2d10ResAccIf_cP15dTagProcessor_c = .text:0x801223D0; // type:function size:0x2F8 remove__19dLytMsgWindowLink_cFv = .text:0x801226D0; // type:function size:0xE0 initializeState_Invisible__19dLytMsgWindowLink_cFv = .text:0x801227B0; // type:function size:0x8 @@ -7176,7 +7176,7 @@ initializeState_Wait__19dLytMsgWindowLink_cFv = .text:0x80122A80; // type:functi executeState_Wait__19dLytMsgWindowLink_cFv = .text:0x80122A90; // type:function size:0x2C finalizeState_Wait__19dLytMsgWindowLink_cFv = .text:0x80122AC0; // type:function size:0x4 initializeState_Visible__19dLytMsgWindowLink_cFv = .text:0x80122AD0; // type:function size:0x10C -getTextBox__19dLytMsgWindowLink_cFv = .text:0x80122BE0; // type:function size:0x8 +getTextBox__19dLytMsgWindowLink_cFv = .text:0x80122BE0; // type:function size:0x8 scope:weak executeState_Visible__19dLytMsgWindowLink_cFv = .text:0x80122BF0; // type:function size:0x28 finalizeState_Visible__19dLytMsgWindowLink_cFv = .text:0x80122C20; // type:function size:0x4 initializeState_Out__19dLytMsgWindowLink_cFv = .text:0x80122C30; // type:function size:0x60 @@ -7189,12 +7189,12 @@ isDoneOpening__19dLytMsgWindowLink_cCFv = .text:0x801230A0; // type:function siz close__19dLytMsgWindowLink_cFv = .text:0x801230F0; // type:function size:0xC isDoneClosing__19dLytMsgWindowLink_cCFv = .text:0x80123100; // type:function size:0x9C setText__19dLytMsgWindowLink_cFPCw = .text:0x801231A0; // type:function size:0x7C -isDoneDecide__19dLytMsgWindowLink_cCFv = .text:0x80123220; // type:function size:0x8 -startDecide__19dLytMsgWindowLink_cFb = .text:0x80123230; // type:function size:0x8 -startConfirm__19dLytMsgWindowLink_cFv = .text:0x80123240; // type:function size:0x8 -__sinit_\d_lyt_msg_window_link_cpp = .text:0x80123250; // type:function size:0x3F4 -__dt__34sFStateID_c<19dLytMsgWindowLink_c>Fv = .text:0x80123650; // type:function size:0x58 -isSameName__34sFStateID_c<19dLytMsgWindowLink_c>CFPCc = .text:0x801236B0; // type:function size:0x88 +isDoneDecide__19dLytMsgWindowLink_cCFv = .text:0x80123220; // type:function size:0x8 scope:weak +startDecide__19dLytMsgWindowLink_cFb = .text:0x80123230; // type:function size:0x8 scope:weak +startConfirm__19dLytMsgWindowLink_cFv = .text:0x80123240; // type:function size:0x8 scope:weak +__sinit_\d_lyt_msg_window_link_cpp = .text:0x80123250; // type:function size:0x3F4 scope:local +__dt__34sFStateID_c<19dLytMsgWindowLink_c>Fv = .text:0x80123650; // type:function size:0x58 scope:weak +isSameName__34sFStateID_c<19dLytMsgWindowLink_c>CFPCc = .text:0x801236B0; // type:function size:0x88 scope:weak build__18dLytMsgWindowGet_cFPQ23d2d10ResAccIf_cPQ23d2d10ResAccIf_cP15dTagProcessor_c = .text:0x80123740; // type:function size:0x2A0 remove__18dLytMsgWindowGet_cFv = .text:0x801239E0; // type:function size:0xE0 initializeState_Invisible__18dLytMsgWindowGet_cFv = .text:0x80123AC0; // type:function size:0x8 @@ -7204,7 +7204,7 @@ initializeState_In__18dLytMsgWindowGet_cFv = .text:0x80123B10; // type:function executeState_In__18dLytMsgWindowGet_cFv = .text:0x80123B60; // type:function size:0x78 finalizeState_In__18dLytMsgWindowGet_cFv = .text:0x80123BE0; // type:function size:0x4 initializeState_Visible__18dLytMsgWindowGet_cFv = .text:0x80123BF0; // type:function size:0x10C -getTextBox__18dLytMsgWindowGet_cFv = .text:0x80123D00; // type:function size:0x8 +getTextBox__18dLytMsgWindowGet_cFv = .text:0x80123D00; // type:function size:0x8 scope:weak executeState_Visible__18dLytMsgWindowGet_cFv = .text:0x80123D10; // type:function size:0x28 finalizeState_Visible__18dLytMsgWindowGet_cFv = .text:0x80123D40; // type:function size:0x4 initializeState_Out__18dLytMsgWindowGet_cFv = .text:0x80123D50; // type:function size:0x48 @@ -7217,12 +7217,12 @@ isDoneOpening__18dLytMsgWindowGet_cCFv = .text:0x801240F0; // type:function size close__18dLytMsgWindowGet_cFv = .text:0x80124140; // type:function size:0xC isDoneClosing__18dLytMsgWindowGet_cCFv = .text:0x80124150; // type:function size:0x4C setText__18dLytMsgWindowGet_cFPCw = .text:0x801241A0; // type:function size:0x7C -isDoneDecide__18dLytMsgWindowGet_cCFv = .text:0x80124220; // type:function size:0x8 -startDecide__18dLytMsgWindowGet_cFb = .text:0x80124230; // type:function size:0x8 -startConfirm__18dLytMsgWindowGet_cFv = .text:0x80124240; // type:function size:0x8 -__sinit_\d_lyt_msg_window_get_cpp = .text:0x80124250; // type:function size:0x338 -__dt__33sFStateID_c<18dLytMsgWindowGet_c>Fv = .text:0x80124590; // type:function size:0x58 -isSameName__33sFStateID_c<18dLytMsgWindowGet_c>CFPCc = .text:0x801245F0; // type:function size:0x88 +isDoneDecide__18dLytMsgWindowGet_cCFv = .text:0x80124220; // type:function size:0x8 scope:weak +startDecide__18dLytMsgWindowGet_cFb = .text:0x80124230; // type:function size:0x8 scope:weak +startConfirm__18dLytMsgWindowGet_cFv = .text:0x80124240; // type:function size:0x8 scope:weak +__sinit_\d_lyt_msg_window_get_cpp = .text:0x80124250; // type:function size:0x338 scope:local +__dt__33sFStateID_c<18dLytMsgWindowGet_c>Fv = .text:0x80124590; // type:function size:0x58 scope:weak +isSameName__33sFStateID_c<18dLytMsgWindowGet_c>CFPCc = .text:0x801245F0; // type:function size:0x88 scope:weak build__20dLytMsgWindowSword_cFPQ23d2d10ResAccIf_cPQ23d2d10ResAccIf_cP15dTagProcessor_c = .text:0x80124680; // type:function size:0x3A4 remove__20dLytMsgWindowSword_cFv = .text:0x80124A30; // type:function size:0xE0 initializeState_Invisible__20dLytMsgWindowSword_cFv = .text:0x80124B10; // type:function size:0x8 @@ -7336,92 +7336,92 @@ setText__19dLytMsgWindowDemo_cFPCw = .text:0x80127D50; // type:function size:0x7 __sinit_\d_lyt_msg_window_demo_cpp = .text:0x80127DD0; // type:function size:0x338 scope:local __dt__34sFStateID_c<19dLytMsgWindowDemo_c>Fv = .text:0x80128110; // type:function size:0x58 scope:weak isSameName__34sFStateID_c<19dLytMsgWindowDemo_c>CFPCc = .text:0x80128170; // type:function size:0x88 scope:weak -fn_80128200 = .text:0x80128200; // type:function size:0x8 -fn_80128210 = .text:0x80128210; // type:function size:0x4 -fn_80128220 = .text:0x80128220; // type:function size:0x8 -fn_80128230 = .text:0x80128230; // type:function size:0x2D0 -fn_80128500 = .text:0x80128500; // type:function size:0x5C -fn_80128560 = .text:0x80128560; // type:function size:0x94 -fn_80128600 = .text:0x80128600; // type:function size:0x170 -fn_80128770 = .text:0x80128770; // type:function size:0xE4 -fn_80128860 = .text:0x80128860; // type:function size:0x5C -fn_801288C0 = .text:0x801288C0; // type:function size:0x10C -fn_801289D0 = .text:0x801289D0; // type:function size:0x8 -fn_801289E0 = .text:0x801289E0; // type:function size:0x48 -fn_80128A30 = .text:0x80128A30; // type:function size:0x5C -fn_80128A90 = .text:0x80128A90; // type:function size:0x7C -fn_80128B10 = .text:0x80128B10; // type:function size:0x370 -fn_80128E80 = .text:0x80128E80; // type:function size:0x50 -fn_80128ED0 = .text:0x80128ED0; // type:function size:0x9C -fn_80128F70 = .text:0x80128F70; // type:function size:0x34 -fn_80128FB0 = .text:0x80128FB0; // type:function size:0xE4 -fn_801290A0 = .text:0x801290A0; // type:function size:0x5C -fn_80129100 = .text:0x80129100; // type:function size:0x10C -fn_80129210 = .text:0x80129210; // type:function size:0x8 -fn_80129220 = .text:0x80129220; // type:function size:0x48 -fn_80129270 = .text:0x80129270; // type:function size:0x5C -fn_801292D0 = .text:0x801292D0; // type:function size:0x16C -fn_80129440 = .text:0x80129440; // type:function size:0x2D0 -fn_80129710 = .text:0x80129710; // type:function size:0x5C -fn_80129770 = .text:0x80129770; // type:function size:0x94 -fn_80129810 = .text:0x80129810; // type:function size:0x170 -fn_80129980 = .text:0x80129980; // type:function size:0xE4 -fn_80129A70 = .text:0x80129A70; // type:function size:0x5C -fn_80129AD0 = .text:0x80129AD0; // type:function size:0x10C -fn_80129BE0 = .text:0x80129BE0; // type:function size:0x8 -fn_80129BF0 = .text:0x80129BF0; // type:function size:0x48 -fn_80129C40 = .text:0x80129C40; // type:function size:0x5C -fn_80129CA0 = .text:0x80129CA0; // type:function size:0x7C -LytSimpleWindow__init = .text:0x80129D20; // type:function size:0x164 -fn_80129E90 = .text:0x80129E90; // type:function size:0x10 -fn_80129EA0 = .text:0x80129EA0; // type:function size:0x114 -fn_80129FC0 = .text:0x80129FC0; // type:function size:0xA4 -fn_8012A070 = .text:0x8012A070; // type:function size:0x40 -fn_8012A0B0 = .text:0x8012A0B0; // type:function size:0xA4 -fn_8012A160 = .text:0x8012A160; // type:function size:0xA4 -stateInvisibleEnter = .text:0x8012A210; // type:function size:0x4 -stateInvisibleUpdate = .text:0x8012A220; // type:function size:0x460 -fn_8012A680 = .text:0x8012A680; // type:function size:0x8 -fn_8012A690 = .text:0x8012A690; // type:function size:0x8 -stateInvisibleLeave = .text:0x8012A6A0; // type:function size:0x4 -stateInEnter2 = .text:0x8012A6B0; // type:function size:0xF0 -stateInUpdate2 = .text:0x8012A7A0; // type:function size:0x8C -fn_8012A830 = .text:0x8012A830; // type:function size:0x8 -stateInLeave2 = .text:0x8012A840; // type:function size:0x4 -stateOutputTextEnter = .text:0x8012A850; // type:function size:0x14 -fn_8012A870 = .text:0x8012A870; // type:function size:0x4 -stateOutputTextUpdate = .text:0x8012A880; // type:function size:0x130 -stateOutputTextLeave = .text:0x8012A9B0; // type:function size:0x4 -stateOutEnter2 = .text:0x8012A9C0; // type:function size:0x1AC -fn_8012AB70 = .text:0x8012AB70; // type:function size:0x4 -stateOutUpdate2 = .text:0x8012AB80; // type:function size:0x174 -fn_8012AD00 = .text:0x8012AD00; // type:function size:0x8 -stateOutLeave2 = .text:0x8012AD10; // type:function size:0x4 -fn_8012AD20 = .text:0x8012AD20; // type:function size:0x6C -fn_8012AD90 = .text:0x8012AD90; // type:function size:0x8 -fn_8012ADA0 = .text:0x8012ADA0; // type:function size:0x10 -fn_8012ADB0 = .text:0x8012ADB0; // type:function size:0xB4 -fn_8012AE70 = .text:0x8012AE70; // type:function size:0x8 -LytSimpleWindow__displayText = .text:0x8012AE80; // type:function size:0x11C -fn_8012AFA0 = .text:0x8012AFA0; // type:function size:0x4C -fn_8012AFF0 = .text:0x8012AFF0; // type:function size:0x10 -fn_8012B000__18dLytSimpleWindow_cFv = .text:0x8012B000; // type:function size:0x50 -fn_8012B050 = .text:0x8012B050; // type:function size:0xD4 -fn_8012B130 = .text:0x8012B130; // type:function size:0xF4 -fn_8012B230 = .text:0x8012B230; // type:function size:0xA4 -fn_8012B2E0 = .text:0x8012B2E0; // type:function size:0xA0 -fn_8012B380 = .text:0x8012B380; // type:function size:0x6C -fn_8012B3F0 = .text:0x8012B3F0; // type:function size:0x58 -fn_8012B450 = .text:0x8012B450; // type:function size:0x8 -fn_8012B460 = .text:0x8012B460; // type:function size:0x8 -fn_8012B470 = .text:0x8012B470; // type:function size:0x8 -fn_8012B480 = .text:0x8012B480; // type:function size:0x8 -fn_8012B490 = .text:0x8012B490; // type:function size:0x30 -fn_8012B4C0 = .text:0x8012B4C0; // type:function size:0x30 -fn_8012B4F0 = .text:0x8012B4F0; // type:function size:0x30 -LytSimpleWindow__initStates = .text:0x8012B520; // type:function size:0x338 -LytSimpleWindow__dtor = .text:0x8012B860; // type:function size:0x58 -fn_8012B8C0 = .text:0x8012B8C0; // type:function size:0x88 +build__23dLytSimpleWindowSubtypeFPQ23d2d10ResAccIf_cP15dTagProcessor_c = .text:0x80128200; // type:function size:0x8 +initializeIn__23dLytSimpleWindowSubtypeFl = .text:0x80128210; // type:function size:0x4 +setText__23dLytSimpleWindowSubtypeFPCw = .text:0x80128220; // type:function size:0x8 +build__22dLytSimpleWindowTalk_cFPQ23d2d10ResAccIf_cP15dTagProcessor_c = .text:0x80128230; // type:function size:0x2D0 +remove__22dLytSimpleWindowTalk_cFv = .text:0x80128500; // type:function size:0x5C +execute__22dLytSimpleWindowTalk_cFv = .text:0x80128560; // type:function size:0x94 +draw__22dLytSimpleWindowTalk_cFv = .text:0x80128600; // type:function size:0x170 +initializeIn__22dLytSimpleWindowTalk_cFl = .text:0x80128770; // type:function size:0xE4 +isIn__22dLytSimpleWindowTalk_cFv = .text:0x80128860; // type:function size:0x5C +initializeOutputText__22dLytSimpleWindowTalk_cFv = .text:0x801288C0; // type:function size:0x10C +getTextBox__22dLytSimpleWindowTalk_cFv = .text:0x801289D0; // type:function size:0x8 scope:weak +initializeOut__22dLytSimpleWindowTalk_cFv = .text:0x801289E0; // type:function size:0x48 +isOut__22dLytSimpleWindowTalk_cFv = .text:0x80128A30; // type:function size:0x5C +setText__22dLytSimpleWindowTalk_cFPCw = .text:0x80128A90; // type:function size:0x7C +build__23dLytSimpleWindowSword_cFPQ23d2d10ResAccIf_cP15dTagProcessor_c = .text:0x80128B10; // type:function size:0x370 +remove__23dLytSimpleWindowSword_cFv = .text:0x80128E80; // type:function size:0x50 +execute__23dLytSimpleWindowSword_cFv = .text:0x80128ED0; // type:function size:0x9C +draw__23dLytSimpleWindowSword_cFv = .text:0x80128F70; // type:function size:0x34 +initializeIn__23dLytSimpleWindowSword_cFl = .text:0x80128FB0; // type:function size:0xE4 +isIn__23dLytSimpleWindowSword_cFv = .text:0x801290A0; // type:function size:0x5C +initializeOutputText__23dLytSimpleWindowSword_cFv = .text:0x80129100; // type:function size:0x10C +getTextBox__23dLytSimpleWindowSword_cFv = .text:0x80129210; // type:function size:0x8 scope:weak +initializeOut__23dLytSimpleWindowSword_cFv = .text:0x80129220; // type:function size:0x48 +isOut__23dLytSimpleWindowSword_cFv = .text:0x80129270; // type:function size:0x5C +setText__23dLytSimpleWindowSword_cFPCw = .text:0x801292D0; // type:function size:0x16C +build__22dLytSimpleWindowLink_cFPQ23d2d10ResAccIf_cP15dTagProcessor_c = .text:0x80129440; // type:function size:0x2D0 +remove__22dLytSimpleWindowLink_cFv = .text:0x80129710; // type:function size:0x5C +execute__22dLytSimpleWindowLink_cFv = .text:0x80129770; // type:function size:0x94 +draw__22dLytSimpleWindowLink_cFv = .text:0x80129810; // type:function size:0x170 +initializeIn__22dLytSimpleWindowLink_cFl = .text:0x80129980; // type:function size:0xE4 +isIn__22dLytSimpleWindowLink_cFv = .text:0x80129A70; // type:function size:0x5C +initializeOutputText__22dLytSimpleWindowLink_cFv = .text:0x80129AD0; // type:function size:0x10C +getTextBox__22dLytSimpleWindowLink_cFv = .text:0x80129BE0; // type:function size:0x8 scope:weak +initializeOut__22dLytSimpleWindowLink_cFv = .text:0x80129BF0; // type:function size:0x48 +isOut__22dLytSimpleWindowLink_cFv = .text:0x80129C40; // type:function size:0x5C +setText__22dLytSimpleWindowLink_cFPCw = .text:0x80129CA0; // type:function size:0x7C +build__18dLytSimpleWindow_cFv = .text:0x80129D20; // type:function size:0x164 +changeState__87sStateMgr_c<18dLytSimpleWindow_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>FRC12sStateIDIf_c = .text:0x80129E90; // type:function size:0x10 scope:weak +remove__18dLytSimpleWindow_cFv = .text:0x80129EA0; // type:function size:0x114 +__dt__22dLytSimpleWindowTalk_cFv = .text:0x80129FC0; // type:function size:0xA4 scope:weak +__dt__23dLytSimpleWindowSubtypeFv = .text:0x8012A070; // type:function size:0x40 scope:weak +__dt__23dLytSimpleWindowSword_cFv = .text:0x8012A0B0; // type:function size:0xA4 scope:weak +__dt__22dLytSimpleWindowLink_cFv = .text:0x8012A160; // type:function size:0xA4 scope:weak +initializeState_Invisible__18dLytSimpleWindow_cFv = .text:0x8012A210; // type:function size:0x4 +executeState_Invisible__18dLytSimpleWindow_cFv = .text:0x8012A220; // type:function size:0x460 +getTextBox__23dLytSimpleWindowSubtypeFv = .text:0x8012A680; // type:function size:0x8 scope:weak +getCharData__23dLytSimpleWindowSubtypeFv = .text:0x8012A690; // type:function size:0x8 scope:weak +finalizeState_Invisible__18dLytSimpleWindow_cFv = .text:0x8012A6A0; // type:function size:0x4 +initializeState_In__18dLytSimpleWindow_cFv = .text:0x8012A6B0; // type:function size:0xF0 +executeState_In__18dLytSimpleWindow_cFv = .text:0x8012A7A0; // type:function size:0x8C +isIn__23dLytSimpleWindowSubtypeFv = .text:0x8012A830; // type:function size:0x8 scope:weak +finalizeState_In__18dLytSimpleWindow_cFv = .text:0x8012A840; // type:function size:0x4 +initializeState_OutputText__18dLytSimpleWindow_cFv = .text:0x8012A850; // type:function size:0x14 +initializeOutputText__23dLytSimpleWindowSubtypeFv = .text:0x8012A870; // type:function size:0x4 scope:weak +executeState_OutputText__18dLytSimpleWindow_cFv = .text:0x8012A880; // type:function size:0x130 +finalizeState_OutputText__18dLytSimpleWindow_cFv = .text:0x8012A9B0; // type:function size:0x4 +initializeState_Out__18dLytSimpleWindow_cFv = .text:0x8012A9C0; // type:function size:0x1AC +initializeOut__23dLytSimpleWindowSubtypeFv = .text:0x8012AB70; // type:function size:0x4 scope:weak +executeState_Out__18dLytSimpleWindow_cFv = .text:0x8012AB80; // type:function size:0x174 +isOut__23dLytSimpleWindowSubtypeFv = .text:0x8012AD00; // type:function size:0x8 scope:weak +finalizeState_Out__18dLytSimpleWindow_cFv = .text:0x8012AD10; // type:function size:0x4 +execute__18dLytSimpleWindow_cFv = .text:0x8012AD20; // type:function size:0x6C +execute__23dLytSimpleWindowSubtypeFv = .text:0x8012AD90; // type:function size:0x8 scope:weak +executeState__87sStateMgr_c<18dLytSimpleWindow_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x8012ADA0; // type:function size:0x10 scope:weak +draw__18dLytSimpleWindow_cFv = .text:0x8012ADB0; // type:function size:0xB4 +draw__23dLytSimpleWindowSubtypeFv = .text:0x8012AE70; // type:function size:0x8 scope:weak +set__18dLytSimpleWindow_cFPCclb = .text:0x8012AE80; // type:function size:0x11C +isVisible__18dLytSimpleWindow_cFv = .text:0x8012AFA0; // type:function size:0x4C +getStateID__87sStateMgr_c<18dLytSimpleWindow_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x8012AFF0; // type:function size:0x10 scope:weak +isOutputText__18dLytSimpleWindow_cFv = .text:0x8012B000; // type:function size:0x50 +isInEvent__18dLytSimpleWindow_cFv = .text:0x8012B050; // type:function size:0xD4 +__dt__18dLytSimpleWindow_cFv = .text:0x8012B130; // type:function size:0xF4 scope:weak +__dt__57sFStateMgr_c<18dLytSimpleWindow_c,20sStateMethodUsr_FI_c>Fv = .text:0x8012B230; // type:function size:0xA4 scope:weak +__dt__87sStateMgr_c<18dLytSimpleWindow_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x8012B2E0; // type:function size:0xA0 scope:weak +__dt__34sFStateFct_c<18dLytSimpleWindow_c>Fv = .text:0x8012B380; // type:function size:0x6C scope:weak +__dt__31sFState_c<18dLytSimpleWindow_c>Fv = .text:0x8012B3F0; // type:function size:0x58 scope:weak +getCharData__22dLytSimpleWindowLink_cFv = .text:0x8012B450; // type:function size:0x8 scope:weak +getCharData__23dLytSimpleWindowSword_cFv = .text:0x8012B460; // type:function size:0x8 scope:weak +getCharData__22dLytSimpleWindowTalk_cFv = .text:0x8012B470; // type:function size:0x8 scope:weak +remove__23dLytSimpleWindowSubtypeFv = .text:0x8012B480; // type:function size:0x8 scope:weak +finalizeState__33sFStateID_c<18dLytSimpleWindow_c>CFR18dLytSimpleWindow_c = .text:0x8012B490; // type:function size:0x30 scope:weak +executeState__33sFStateID_c<18dLytSimpleWindow_c>CFR18dLytSimpleWindow_c = .text:0x8012B4C0; // type:function size:0x30 scope:weak +initializeState__33sFStateID_c<18dLytSimpleWindow_c>CFR18dLytSimpleWindow_c = .text:0x8012B4F0; // type:function size:0x30 scope:weak +__sinit_\d_lyt_simple_window_cpp = .text:0x8012B520; // type:function size:0x338 scope:local +__dt__33sFStateID_c<18dLytSimpleWindow_c>Fv = .text:0x8012B860; // type:function size:0x58 scope:weak +isSameName__33sFStateID_c<18dLytSimpleWindow_c>CFPCc = .text:0x8012B8C0; // type:function size:0x88 scope:weak initializeState_Invisible__17dLytAutoCaption_cFv = .text:0x8012B950; // type:function size:0x4 executeState_Invisible__17dLytAutoCaption_cFv = .text:0x8012B960; // type:function size:0x28 finalizeState_Invisible__17dLytAutoCaption_cFv = .text:0x8012B990; // type:function size:0x4 @@ -16765,13 +16765,13 @@ 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 -LytControlGame__ctor = .text:0x802CC830; // type:function size:0x34 +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 -fn_802CC960 = .text:0x802CC960; // type:function size:0x10 +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 @@ -16796,24 +16796,24 @@ LytControlGame__stateMapDelResEnter = .text:0x802CCFB0; // type:function size:0x LytControlGame__stateMapDelResUpdate = .text:0x802CCFC0; // type:function size:0x158 fn_802CD120 = .text:0x802CD120; // type:function size:0xD8 LytControlGame__stateMapDelResLeave = .text:0x802CD200; // type:function size:0x30 -LytControlGame__ctorCont = .text:0x802CD230; // type:function size:0x3F0 -fn_802CD620 = .text:0x802CD620; // type:function size:0x58 -fn_802CD680 = .text:0x802CD680; // type:function size:0x6C -fn_802CD6F0 = .text:0x802CD6F0; // type:function size:0xA0 -fn_802CD790 = .text:0x802CD790; // type:function size:0xA4 -fn_802CD840 = .text:0x802CD840; // type:function size:0x1BC +__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 -fn_802CDC20 = .text:0x802CDC20; // type:function size:0x4 -fn_802CDC30 = .text:0x802CDC30; // type:function size:0x40 -fn_802CDC70 = .text:0x802CDC70; // type:function size:0x6C -fn_802CDCE0 = .text:0x802CDCE0; // type:function size:0x58 -fn_802CDD40 = .text:0x802CDD40; // type:function size:0x6C -fn_802CDDB0 = .text:0x802CDDB0; // type:function size:0xA0 -fn_802CDE50 = .text:0x802CDE50; // type:function size:0xA4 -fn_802CDF00 = .text:0x802CDF00; // type:function size:0xFDC +__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__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 @@ -16821,7 +16821,7 @@ 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 -fn_802CF980 = .text:0x802CF980; // type:function size:0x10 +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 @@ -16844,34 +16844,34 @@ 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 -fn_802D0770 = .text:0x802D0770; // type:function size:0x60 -fn_802D07D0 = .text:0x802D07D0; // 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 -fn_802D08C0 = .text:0x802D08C0; // type:function size:0x60 -fn_802D0920 = .text:0x802D0920; // type:function size:0xC -fn_802D0930 = .text:0x802D0930; // type:function size:0x60 -fn_802D0990 = .text:0x802D0990; // 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 -fn_802D0A00 = .text:0x802D0A00; // type:function size:0x1C -fn_802D0A20 = .text:0x802D0A20; // type:function size:0x1C -fn_802D0A40 = .text:0x802D0A40; // 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 -fn_802D0B20 = .text:0x802D0B20; // type:function size:0x1C -fn_802D0B40 = .text:0x802D0B40; // type:function size:0x1C -fn_802D0B60 = .text:0x802D0B60; // type:function size:0x1C -fn_802D0B80 = .text:0x802D0B80; // type:function size:0x1C -fn_802D0BA0 = .text:0x802D0BA0; // type:function size:0x1C -fn_802D0BC0 = .text:0x802D0BC0; // 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 @@ -16879,12 +16879,12 @@ 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 -fn_802D0C50 = .text:0x802D0C50; // type:function size:0x10 -fn_802D0C60 = .text:0x802D0C60; // type:function size:0x10 -fn_802D0C70 = .text:0x802D0C70; // type:function size:0x10 -fn_802D0C80 = .text:0x802D0C80; // type:function size:0x10 -fn_802D0C90 = .text:0x802D0C90; // type:function size:0x10 -fn_802D0CA0 = .text:0x802D0CA0; // 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 @@ -16897,18 +16897,18 @@ refreshState__79sStateMgr_c<10dLytWipe_c,20sStateMethodUsr_FI_c,12sFStateFct_c,1 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 -fn_802D0D70 = .text:0x802D0D70; // type:function size:0x10 -fn_802D0D80 = .text:0x802D0D80; // type:function size:0x10 -fn_802D0D90 = .text:0x802D0D90; // type:function size:0x10 -fn_802D0DA0 = .text:0x802D0DA0; // type:function size:0x10 -fn_802D0DB0 = .text:0x802D0DB0; // type:function size:0x10 -fn_802D0DC0 = .text:0x802D0DC0; // type:function size:0x10 -fn_802D0DD0 = .text:0x802D0DD0; // type:function size:0x10 -fn_802D0DE0 = .text:0x802D0DE0; // type:function size:0x10 -fn_802D0DF0 = .text:0x802D0DF0; // type:function size:0x10 -fn_802D0E00 = .text:0x802D0E00; // type:function size:0x10 -fn_802D0E10 = .text:0x802D0E10; // type:function size:0x10 -fn_802D0E20 = .text:0x802D0E20; // 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 @@ -26627,10 +26627,10 @@ GetBinaryInner__Q23EGG11LightObjectCFPQ33EGG28IBinary3Bin = SetBinaryInner__Q23EGG11LightObjectFRCQ33EGG28IBinary3BinRCQ33EGG28IBinary3Binf = .text:0x804AAC60; // type:function size:0x5EC GetBinaryType__Q23EGG29IBinaryFv = .text:0x804AB250; // type:function size:0x8 GetVersion__Q23EGG29IBinaryFv = .text:0x804AB260; // type:function size:0x8 -setMaterialCommon__29@unnamed@eggLightTexture_cpp@Fv = .text:0x804AB270; // type:function size:0x9C -setMaterialAmbient__29@unnamed@eggLightTexture_cpp@FRC8_GXColor = .text:0x804AB310; // type:function size:0x124 -setMaterialNormalSphere__29@unnamed@eggLightTexture_cpp@Fv = .text:0x804AB440; // type:function size:0x1B4 -setMaterialCrossOver__29@unnamed@eggLightTexture_cpp@Fv = .text:0x804AB600; // type:function size:0x180 +setMaterialCommon__29@unnamed@eggLightTexture_cpp@Fv = .text:0x804AB270; // type:function size:0x9C scope:local +setMaterialAmbient__29@unnamed@eggLightTexture_cpp@FRC8_GXColor = .text:0x804AB310; // type:function size:0x124 scope:local +setMaterialNormalSphere__29@unnamed@eggLightTexture_cpp@Fv = .text:0x804AB440; // type:function size:0x1B4 scope:local +setMaterialCrossOver__29@unnamed@eggLightTexture_cpp@Fv = .text:0x804AB600; // type:function size:0x180 scope:local initialize__Q23EGG12LightTextureFUsPQ23EGG4Heap = .text:0x804AB780; // type:function size:0x26C __ct__Q23EGG12LightTextureFPCcPCQ23EGG19LightTextureManager = .text:0x804AB9F0; // type:function size:0x284 __dt__Q23EGG12LightTextureFv = .text:0x804ABC80; // type:function size:0x90 @@ -28284,16 +28284,16 @@ brlanMapPart2 = .rodata:0x804E73C8; // type:object size:0x50 scope:local data:4b 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 -lbl_804E7540 = .rodata:0x804E7540; // type:object size:0x20 data:4byte -lbl_804E7560 = .rodata:0x804E7560; // type:object size:0x20 data:4byte -lbl_804E7580 = .rodata:0x804E7580; // type:object size:0x18 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 brlanMap = .rodata:0x804E7598; // type:object size:0x28 scope:local data:4byte brlanMap = .rodata:0x804E75C0; // type:object size:0x18 scope:local data:4byte brlanMap = .rodata:0x804E75D8; // type:object size:0x18 scope:local data:4byte brlanMap = .rodata:0x804E75F0; // type:object size:0x10 scope:local data:4byte -lbl_804E7600 = .rodata:0x804E7600; // type:object size:0x20 data:4byte -lbl_804E7620 = .rodata:0x804E7620; // type:object size:0x28 data:4byte -lbl_804E7648 = .rodata:0x804E7648; // type:object size:0x20 data:4byte +brlanMapTalk = .rodata:0x804E7600; // type:object size:0x20 scope:local data:4byte +brlanMapSword = .rodata:0x804E7620; // type:object size:0x28 scope:local data:4byte +brlanMapLink = .rodata:0x804E7648; // type:object size:0x20 scope:local data:4byte brlanMap = .rodata:0x804E7668; // type:object size:0x20 scope:local data:4byte brlanMap = .rodata:0x804E7688; // type:object size:0x18 scope:local data:4byte sMapPinIconBrlanMap = .rodata:0x804E76A0; // type:object size:0x18 data:4byte @@ -33163,64 +33163,121 @@ sSwordTextBoxes = .data:0x8051CB40; // type:object size:0xC scope:local @17218 = .data:0x8051CC2C; // type:object size:0xA scope:local data:string @17219 = .data:0x8051CC38; // type:object size:0x18 scope:local data:string __vt__20dLytMsgWindowSubtype = .data:0x8051CC50; // type:object size:0x44 -lbl_8051CC98 = .data:0x8051CC98; // type:object size:0x1A data:string -lbl_8051CCB4 = .data:0x8051CCB4; // type:object size:0xB data:string -lbl_8051CCC0 = .data:0x8051CCC0; // type:object size:0x1B data:string -lbl_8051CCE0 = .data:0x8051CCE0; // type:object size:0x20 data:string -lbl_8051CD00 = .data:0x8051CD00; // type:object size:0xE data:string -lbl_8051CD10 = .data:0x8051CD10; // type:object size:0x1C data:string -lbl_8051CD2C = .data:0x8051CD2C; // type:object size:0xA data:string -lbl_8051CD38 = .data:0x8051CD38; // type:object size:0xC data:string -lbl_8051CD44 = .data:0x8051CD44; // type:object size:0xD data:string -lbl_8051CD54 = .data:0x8051CD54; // type:object size:0xA data:string -lbl_8051CD60 = .data:0x8051CD60; // type:object size:0xB data:string -lbl_8051CD6C = .data:0x8051CD6C; // type:object size:0xE data:string -lbl_8051CD7C = .data:0x8051CD7C; // type:object size:0x14 data:4byte -lbl_8051CD90 = .data:0x8051CD90; // type:object size:0xD data:string -lbl_8051CDA0 = .data:0x8051CDA0; // type:object size:0xE data:string -lbl_8051CDB0 = .data:0x8051CDB0; // type:object size:0x9 data:string -lbl_8051CDBC = .data:0x8051CDBC; // type:object size:0x17 data:string +@18304 = .data:0x8051CC98; // type:object size:0x1A scope:local data:string +...data.0 = .data:0x8051CC98; // type:label scope:local +@18305 = .data:0x8051CCB4; // type:object size:0xB scope:local data:string +@18306 = .data:0x8051CCC0; // type:object size:0x1B scope:local data:string +@18307 = .data:0x8051CCE0; // type:object size:0x20 scope:local data:string +@18308 = .data:0x8051CD00; // type:object size:0xE scope:local data:string +@18309 = .data:0x8051CD10; // type:object size:0x1C scope:local data:string +@18310 = .data:0x8051CD2C; // type:object size:0xA scope:local data:string +@18311 = .data:0x8051CD38; // type:object size:0xC scope:local data:string +@18312 = .data:0x8051CD44; // type:object size:0xD scope:local data:string +@18313 = .data:0x8051CD54; // type:object size:0xA scope:local data:string +@18314 = .data:0x8051CD60; // type:object size:0xB scope:local data:string +@18315 = .data:0x8051CD6C; // type:object size:0xE scope:local data:string +sPanes = .data:0x8051CD7C; // type:object size:0x14 scope:local data:4byte +@18316 = .data:0x8051CD90; // type:object size:0xD scope:local data:string +@18317 = .data:0x8051CDA0; // type:object size:0xE scope:local data:string +@18318 = .data:0x8051CDB0; // type:object size:0x9 scope:local data:string +@19381 = .data:0x8051CDBC; // type:object size:0x17 scope:local data:string __vt__19dLytMsgWindowTalk_c = .data:0x8051CDD4; // type:object size:0x44 -lbl_8051CE18 = .data:0x8051CE18; // type:object size:0x170 -__vt__34sFStateID_c<19dLytMsgWindowTalk_c> = .data:0x8051CF88; // type:object size:0x34 -lbl_8051CFC0 = .data:0x8051CFC0; // type:object size:0x18 -lbl_8051CFD8 = .data:0x8051CFD8; // type:object size:0x10 -lbl_8051CFE8 = .data:0x8051CFE8; // type:object size:0x18 data:string -lbl_8051D000 = .data:0x8051D000; // type:object size:0x20 -lbl_8051D020 = .data:0x8051D020; // type:object size:0x10 -lbl_8051D030 = .data:0x8051D030; // type:object size:0x1C -lbl_8051D04C = .data:0x8051D04C; // type:object size:0xC -lbl_8051D058 = .data:0x8051D058; // type:object size:0xC data:string -lbl_8051D064 = .data:0x8051D064; // type:object size:0x10 -lbl_8051D074 = .data:0x8051D074; // type:object size:0xC -lbl_8051D080 = .data:0x8051D080; // type:object size:0xC -lbl_8051D08C = .data:0x8051D08C; // type:object size:0x10 -lbl_8051D09C = .data:0x8051D09C; // type:object size:0x14 data:4byte -lbl_8051D0B0 = .data:0x8051D0B0; // type:object size:0x10 -lbl_8051D0C0 = .data:0x8051D0C0; // type:object size:0x10 -lbl_8051D0D0 = .data:0x8051D0D0; // type:object size:0xC -lbl_8051D0DC = .data:0x8051D0DC; // type:object size:0x14 data:string -__vt__19dLytMsgWindowLink_c = .data:0x8051D0F0; // type:object size:0x1B0 -__vt__34sFStateID_c<19dLytMsgWindowLink_c> = .data:0x8051D2A0; // type:object size:0x38 -lbl_8051D2D8 = .data:0x8051D2D8; // type:object size:0x18 -lbl_8051D2F0 = .data:0x8051D2F0; // type:object size:0xC -lbl_8051D2FC = .data:0x8051D2FC; // type:object size:0x1C -lbl_8051D318 = .data:0x8051D318; // type:object size:0x18 data:string -lbl_8051D330 = .data:0x8051D330; // type:object size:0xC -lbl_8051D33C = .data:0x8051D33C; // type:object size:0xC data:string -lbl_8051D348 = .data:0x8051D348; // type:object size:0xC -lbl_8051D354 = .data:0x8051D354; // type:object size:0xC -lbl_8051D360 = .data:0x8051D360; // type:object size:0x10 -lbl_8051D370 = .data:0x8051D370; // type:object size:0xC -lbl_8051D37C = .data:0x8051D37C; // type:object size:0xC -lbl_8051D388 = .data:0x8051D388; // type:object size:0x18 data:4byte -lbl_8051D3A0 = .data:0x8051D3A0; // type:object size:0x10 -lbl_8051D3B0 = .data:0x8051D3B0; // type:object size:0x10 -lbl_8051D3C0 = .data:0x8051D3C0; // type:object size:0xC -lbl_8051D3CC = .data:0x8051D3CC; // type:object size:0x14 +@19806 = .data:0x8051CE18; // type:object size:0xC scope:local +@19807 = .data:0x8051CE24; // type:object size:0xC scope:local +@19808 = .data:0x8051CE30; // type:object size:0xC scope:local +@19809 = .data:0x8051CE3C; // type:object size:0xC scope:local +@19810 = .data:0x8051CE48; // type:object size:0xC scope:local +@19811 = .data:0x8051CE54; // type:object size:0xC scope:local +@19812 = .data:0x8051CE60; // type:object size:0xC scope:local +@19813 = .data:0x8051CE6C; // type:object size:0xC scope:local +@19814 = .data:0x8051CE78; // type:object size:0xC scope:local +@19815 = .data:0x8051CE84; // type:object size:0xC scope:local +@19816 = .data:0x8051CE90; // type:object size:0xC scope:local +@19817 = .data:0x8051CE9C; // type:object size:0xC scope:local +@19818 = .data:0x8051CEA8; // type:object size:0xC scope:local +@19819 = .data:0x8051CEB4; // type:object size:0xC scope:local +@19820 = .data:0x8051CEC0; // type:object size:0xC scope:local +@19822 = .data:0x8051CECC; // type:object size:0x27 scope:local data:string +@19823 = .data:0x8051CEF8; // type:object size:0x20 scope:local data:string +@19824 = .data:0x8051CF18; // type:object size:0x22 scope:local data:string +@19825 = .data:0x8051CF3C; // type:object size:0x25 scope:local data:string +@19826 = .data:0x8051CF64; // type:object size:0x21 scope:local data:string +__vt__34sFStateID_c<19dLytMsgWindowTalk_c> = .data:0x8051CF88; // type:object size:0x34 scope:weak +@18304 = .data:0x8051CFC0; // type:object size:0x17 scope:local data:string +...data.0 = .data:0x8051CFC0; // type:label scope:local +@18305 = .data:0x8051CFD8; // type:object size:0xB scope:local data:string +@18306 = .data:0x8051CFE8; // type:object size:0x18 scope:local data:string +@18307 = .data:0x8051D000; // type:object size:0x1D scope:local data:string +@18308 = .data:0x8051D020; // type:object size:0xE scope:local data:string +@18309 = .data:0x8051D030; // type:object size:0x19 scope:local data:string +@18310 = .data:0x8051D04C; // type:object size:0xA scope:local data:string +@18311 = .data:0x8051D058; // type:object size:0xC scope:local data:string +@18312 = .data:0x8051D064; // type:object size:0xD scope:local data:string +@18313 = .data:0x8051D074; // type:object size:0xA scope:local data:string +@18314 = .data:0x8051D080; // type:object size:0xB scope:local data:string +@18315 = .data:0x8051D08C; // type:object size:0xE scope:local data:string +sPanes = .data:0x8051D09C; // type:object size:0x14 scope:local data:4byte +@18316 = .data:0x8051D0B0; // type:object size:0xD scope:local data:string +@18317 = .data:0x8051D0C0; // type:object size:0xE scope:local data:string +@18318 = .data:0x8051D0D0; // type:object size:0x9 scope:local data:string +@19385 = .data:0x8051D0DC; // type:object size:0x14 scope:local data:string +__vt__19dLytMsgWindowLink_c = .data:0x8051D0F0; // type:object size:0x44 +@19811 = .data:0x8051D134; // type:object size:0xC scope:local +@19812 = .data:0x8051D140; // type:object size:0xC scope:local +@19813 = .data:0x8051D14C; // type:object size:0xC scope:local +@19814 = .data:0x8051D158; // type:object size:0xC scope:local +@19815 = .data:0x8051D164; // type:object size:0xC scope:local +@19816 = .data:0x8051D170; // type:object size:0xC scope:local +@19817 = .data:0x8051D17C; // type:object size:0xC scope:local +@19818 = .data:0x8051D188; // type:object size:0xC scope:local +@19819 = .data:0x8051D194; // type:object size:0xC scope:local +@19820 = .data:0x8051D1A0; // type:object size:0xC scope:local +@19821 = .data:0x8051D1AC; // type:object size:0xC scope:local +@19822 = .data:0x8051D1B8; // type:object size:0xC scope:local +@19823 = .data:0x8051D1C4; // type:object size:0xC scope:local +@19824 = .data:0x8051D1D0; // type:object size:0xC scope:local +@19825 = .data:0x8051D1DC; // type:object size:0xC scope:local +@19827 = .data:0x8051D1E8; // type:object size:0x27 scope:local data:string +@19828 = .data:0x8051D210; // type:object size:0x20 scope:local data:string +@19829 = .data:0x8051D230; // type:object size:0x22 scope:local data:string +@19830 = .data:0x8051D254; // type:object size:0x25 scope:local data:string +@19831 = .data:0x8051D27C; // type:object size:0x21 scope:local data:string +__vt__34sFStateID_c<19dLytMsgWindowLink_c> = .data:0x8051D2A0; // type:object size:0x34 scope:weak +@18065 = .data:0x8051D2D8; // type:object size:0x16 scope:local data:string +...data.0 = .data:0x8051D2D8; // type:label scope:local +@18066 = .data:0x8051D2F0; // type:object size:0xB scope:local data:string +@18067 = .data:0x8051D2FC; // type:object size:0x17 scope:local data:string +@18068 = .data:0x8051D318; // type:object size:0x18 scope:local data:string +@18069 = .data:0x8051D330; // type:object size:0xA scope:local data:string +@18070 = .data:0x8051D33C; // type:object size:0xC scope:local data:string +@18071 = .data:0x8051D348; // type:object size:0xB scope:local data:string +@18072 = .data:0x8051D354; // type:object size:0xB scope:local data:string +@18073 = .data:0x8051D360; // type:object size:0xD scope:local data:string +@18074 = .data:0x8051D370; // type:object size:0xA scope:local data:string +@18075 = .data:0x8051D37C; // type:object size:0xB scope:local data:string +sPanes = .data:0x8051D388; // type:object size:0x18 scope:local data:4byte +@18076 = .data:0x8051D3A0; // type:object size:0xD scope:local data:string +@18077 = .data:0x8051D3B0; // type:object size:0xE scope:local data:string +@18078 = .data:0x8051D3C0; // type:object size:0x9 scope:local data:string +@18934 = .data:0x8051D3CC; // type:object size:0x13 scope:local data:string __vt__18dLytMsgWindowGet_c = .data:0x8051D3E0; // type:object size:0x44 -lbl_8051D424 = .data:0x8051D424; // type:object size:0x11C -__vt__33sFStateID_c<18dLytMsgWindowGet_c> = .data:0x8051D540; // type:object size:0x34 +@19253 = .data:0x8051D424; // type:object size:0xC scope:local +@19254 = .data:0x8051D430; // type:object size:0xC scope:local +@19255 = .data:0x8051D43C; // type:object size:0xC scope:local +@19256 = .data:0x8051D448; // type:object size:0xC scope:local +@19257 = .data:0x8051D454; // type:object size:0xC scope:local +@19258 = .data:0x8051D460; // type:object size:0xC scope:local +@19259 = .data:0x8051D46C; // type:object size:0xC scope:local +@19260 = .data:0x8051D478; // type:object size:0xC scope:local +@19261 = .data:0x8051D484; // type:object size:0xC scope:local +@19262 = .data:0x8051D490; // type:object size:0xC scope:local +@19263 = .data:0x8051D49C; // type:object size:0xC scope:local +@19264 = .data:0x8051D4A8; // type:object size:0xC scope:local +@19266 = .data:0x8051D4B4; // type:object size:0x26 scope:local data:string +@19267 = .data:0x8051D4DC; // type:object size:0x1F scope:local data:string +@19268 = .data:0x8051D4FC; // type:object size:0x24 scope:local data:string +@19269 = .data:0x8051D520; // type:object size:0x20 scope:local data:string +__vt__33sFStateID_c<18dLytMsgWindowGet_c> = .data:0x8051D540; // type:object size:0x34 scope:weak @17505 = .data:0x8051D578; // type:object size:0x1A scope:local data:string ...data.0 = .data:0x8051D578; // type:label scope:local @17506 = .data:0x8051D594; // type:object size:0xB scope:local data:string @@ -33355,43 +33412,61 @@ __vt__19dLytMsgWindowDemo_c = .data:0x8051DE68; // type:object size:0x44 @18922 = .data:0x8051DF88; // type:object size:0x25 scope:local data:string @18923 = .data:0x8051DFB0; // type:object size:0x21 scope:local data:string __vt__34sFStateID_c<19dLytMsgWindowDemo_c> = .data:0x8051DFD4; // type:object size:0x34 scope:weak -lbl_8051E008 = .data:0x8051E008; // type:object size:0x1C -lbl_8051E024 = .data:0x8051E024; // type:object size:0xC -lbl_8051E030 = .data:0x8051E030; // type:object size:0x20 -lbl_8051E050 = .data:0x8051E050; // type:object size:0x20 data:string -lbl_8051E070 = .data:0x8051E070; // type:object size:0x10 -lbl_8051E080 = .data:0x8051E080; // type:object size:0x1C data:string -lbl_8051E09C = .data:0x8051E09C; // type:object size:0xC -lbl_8051E0A8 = .data:0x8051E0A8; // type:object size:0xC data:string -lbl_8051E0B4 = .data:0x8051E0B4; // type:object size:0x10 -lbl_8051E0C4 = .data:0x8051E0C4; // type:object size:0xC -lbl_8051E0D0 = .data:0x8051E0D0; // type:object size:0xC -lbl_8051E0DC = .data:0x8051E0DC; // type:object size:0x10 -lbl_8051E0EC = .data:0x8051E0EC; // type:object size:0x14 data:4byte -lbl_8051E100 = .data:0x8051E100; // type:object size:0x10 -lbl_8051E110 = .data:0x8051E110; // type:object size:0x10 -lbl_8051E120 = .data:0x8051E120; // type:object size:0x18 -lbl_8051E138 = .data:0x8051E138; // type:object size:0x1C -lbl_8051E154 = .data:0x8051E154; // type:object size:0x1C -lbl_8051E170 = .data:0x8051E170; // type:object size:0x1C data:string -lbl_8051E18C = .data:0x8051E18C; // type:object size:0x20 -lbl_8051E1AC = .data:0x8051E1AC; // type:object size:0xC -lbl_8051E1B8 = .data:0x8051E1B8; // type:object size:0x20 data:string -lbl_8051E1D8 = .data:0x8051E1D8; // type:object size:0xC data:4byte -lbl_8051E1E4 = .data:0x8051E1E4; // type:object size:0x18 -lbl_8051E1FC = .data:0x8051E1FC; // type:object size:0x1C -lbl_8051E218 = .data:0x8051E218; // type:object size:0x18 data:string -lbl_8051E230 = .data:0x8051E230; // type:object size:0x20 -lbl_8051E250 = .data:0x8051E250; // type:object size:0x1C -lbl_8051E26C = .data:0x8051E26C; // type:object size:0x14 data:4byte -lbl_8051E280 = .data:0x8051E280; // type:object size:0x14 data:string -lbl_8051E294 = .data:0x8051E294; // type:object size:0xC -lbl_8051E2A0 = .data:0x8051E2A0; // type:object size:0x10 -lbl_8051E2B0 = .data:0x8051E2B0; // type:object size:0x10 -lbl_8051E2C0 = .data:0x8051E2C0; // type:object size:0x3C -lbl_8051E2FC = .data:0x8051E2FC; // type:object size:0x3C -lbl_8051E338 = .data:0x8051E338; // type:object size:0x1D8 -lbl_8051E510 = .data:0x8051E510; // type:object size:0x38 +@25710 = .data:0x8051E008; // type:object size:0x1A scope:local data:string +...data.0 = .data:0x8051E008; // type:label scope:local +@25711 = .data:0x8051E024; // type:object size:0xB scope:local data:string +@25712 = .data:0x8051E030; // type:object size:0x1B scope:local data:string +@25713 = .data:0x8051E050; // type:object size:0x20 scope:local data:string +@25714 = .data:0x8051E070; // type:object size:0xE scope:local data:string +@25715 = .data:0x8051E080; // type:object size:0x1C scope:local data:string +@25716 = .data:0x8051E09C; // type:object size:0xA scope:local data:string +@25717 = .data:0x8051E0A8; // type:object size:0xC scope:local data:string +@25718 = .data:0x8051E0B4; // type:object size:0xD scope:local data:string +@25719 = .data:0x8051E0C4; // type:object size:0xA scope:local data:string +@25720 = .data:0x8051E0D0; // type:object size:0xB scope:local data:string +@25721 = .data:0x8051E0DC; // type:object size:0xE scope:local data:string +sTalkPaneNames = .data:0x8051E0EC; // type:object size:0x14 scope:local data:4byte +@25722 = .data:0x8051E100; // type:object size:0xD scope:local data:string +@25723 = .data:0x8051E110; // type:object size:0xE scope:local data:string +@31425 = .data:0x8051E120; // type:object size:0x17 scope:local data:string +@25829 = .data:0x8051E138; // type:object size:0x1A scope:local data:string +@25830 = .data:0x8051E154; // type:object size:0x1B scope:local data:string +@25831 = .data:0x8051E170; // type:object size:0x1C scope:local data:string +@25832 = .data:0x8051E18C; // type:object size:0x1D scope:local data:string +@25833 = .data:0x8051E1AC; // type:object size:0xB scope:local data:string +@25834 = .data:0x8051E1B8; // type:object size:0x20 scope:local data:string +sSwordPaneNames = .data:0x8051E1D8; // type:object size:0xC scope:local data:4byte +@31616 = .data:0x8051E1E4; // type:object size:0x17 scope:local data:string +@25945 = .data:0x8051E1FC; // type:object size:0x17 scope:local data:string +@25946 = .data:0x8051E218; // type:object size:0x18 scope:local data:string +@25947 = .data:0x8051E230; // type:object size:0x1D scope:local data:string +@25948 = .data:0x8051E250; // type:object size:0x19 scope:local data:string +sLinkPaneNames = .data:0x8051E26C; // type:object size:0x14 scope:local data:4byte +@31760 = .data:0x8051E280; // type:object size:0x14 scope:local data:string +@31893 = .data:0x8051E294; // type:object size:0x9 scope:local data:string +@32311 = .data:0x8051E2A0; // type:object size:0xD scope:local data:string +__vt__18dLytSimpleWindow_c = .data:0x8051E2B0; // type:object size:0x10 +__vt__22dLytSimpleWindowLink_c = .data:0x8051E2C0; // type:object size:0x3C +__vt__23dLytSimpleWindowSword_c = .data:0x8051E2FC; // type:object size:0x3C +__vt__22dLytSimpleWindowTalk_c = .data:0x8051E338; // type:object size:0x3C +__vt__23dLytSimpleWindowSubtype = .data:0x8051E374; // type:object size:0x3C +@32371 = .data:0x8051E3EC; // type:object size:0xC scope:local +@32372 = .data:0x8051E3F8; // type:object size:0xC scope:local +@32373 = .data:0x8051E404; // type:object size:0xC scope:local +@32374 = .data:0x8051E410; // type:object size:0xC scope:local +@32375 = .data:0x8051E41C; // type:object size:0xC scope:local +@32376 = .data:0x8051E428; // type:object size:0xC scope:local +@32377 = .data:0x8051E434; // type:object size:0xC scope:local +@32378 = .data:0x8051E440; // type:object size:0xC scope:local +@32379 = .data:0x8051E44C; // type:object size:0xC scope:local +@32380 = .data:0x8051E458; // type:object size:0xC scope:local +@32381 = .data:0x8051E464; // type:object size:0xC scope:local +@32382 = .data:0x8051E470; // type:object size:0xC scope:local +@32384 = .data:0x8051E47C; // type:object size:0x26 scope:local data:string +@32385 = .data:0x8051E4A4; // type:object size:0x1F scope:local data:string +@32386 = .data:0x8051E4C4; // type:object size:0x27 scope:local data:string +@32387 = .data:0x8051E4F0; // type:object size:0x20 scope:local data:string +__vt__33sFStateID_c<18dLytSimpleWindow_c> = .data:0x8051E510; // type:object size:0x34 scope:weak @22222 = .data:0x8051E548; // type:object size:0x18 scope:local data:string ...data.0 = .data:0x8051E548; // type:label scope:local @22223 = .data:0x8051E560; // type:object size:0xB scope:local data:string @@ -37459,13 +37534,13 @@ 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 -LytControlGame__vtable = .data:0x805404C8; // type:object size:0x50 -lbl_80540518 = .data:0x80540518; // type:object size:0x30 -lbl_80540548 = .data:0x80540548; // type:object size:0x30 -lbl_80540578 = .data:0x80540578; // type:object size:0x18 -lbl_80540590 = .data:0x80540590; // 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 -lbl_805405B4 = .data:0x805405B4; // 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 @@ -37474,15 +37549,15 @@ __vt__49sFStateMgr_c<10dLytWipe_c,20sStateMethodUsr_FI_c> = .data:0x80540650; // __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 -lbl_805406E0 = .data:0x805406E0; // type:object size:0x30 -lbl_80540710 = .data:0x80540710; // type:object size:0x30 -lbl_80540740 = .data:0x80540740; // type:object size:0x18 -lbl_80540758 = .data:0x80540758; // type:object size:0x18 -LytMsgWindow__vtable = .data:0x80540770; // type:object size:0x10 -lbl_80540780 = .data:0x80540780; // type:object size:0x30 -LytMsgWindow__vtable2 = .data:0x805407B0; // type:object size:0x30 -lbl_805407E0 = .data:0x805407E0; // type:object size:0x18 -lbl_805407F8 = .data:0x805407F8; // type:object size:0x458 +__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 g_profile_LYT_CONTROL_TITLE = .data:0x80540C88; // type:object size:0xC lbl_80540C94 = .data:0x80540C94; // type:object size:0x4C @@ -40048,12 +40123,12 @@ lbl_80572588 = .sdata:0x80572588; // type:object size:0x8 data:4byte lbl_80572590 = .sdata:0x80572590; // type:object size:0x8 data:4byte sSwordPane = .sdata:0x80572598; // type:object size:0x4 scope:local data:4byte sLightPane = .sdata:0x8057259C; // type:object size:0x4 scope:local data:4byte -lbl_805725A0 = .sdata:0x805725A0; // type:object size:0x8 data:4byte -lbl_805725A8 = .sdata:0x805725A8; // type:object size:0x8 data:4byte -lbl_805725B0 = .sdata:0x805725B0; // type:object size:0x8 data:4byte -lbl_805725B8 = .sdata:0x805725B8; // type:object size:0x8 data:4byte -lbl_805725C0 = .sdata:0x805725C0; // type:object size:0x8 data:4byte -lbl_805725C8 = .sdata:0x805725C8; // type:object size:0x8 data:4byte +sTextBoxes = .sdata:0x805725A0; // type:object size:0x8 scope:local data:4byte +sGroupName = .sdata:0x805725A8; // type:object size:0x4 scope:local data:4byte +sTextBoxes = .sdata:0x805725B0; // type:object size:0x8 scope:local data:4byte +sGroupName = .sdata:0x805725B8; // type:object size:0x4 scope:local data:4byte +sTextBoxes = .sdata:0x805725C0; // type:object size:0x8 scope:local data:4byte +sGroupName = .sdata:0x805725C8; // type:object size:0x4 scope:local data:4byte sTextBoxes = .sdata:0x805725D0; // type:object size:0x8 scope:local data:4byte sGroupName = .sdata:0x805725D8; // type:object size:0x4 scope:local data:4byte sPanes = .sdata:0x805725E0; // type:object size:0x8 scope:local data:4byte @@ -40063,10 +40138,10 @@ sPanes = .sdata:0x805725F8; // type:object size:0x8 scope:local data:4byte sGroupName = .sdata:0x80572600; // type:object size:0x4 scope:local data:4byte sTextBoxes = .sdata:0x80572608; // type:object size:0x8 scope:local data:4byte @18694 = .sdata:0x80572610; // type:object size:0x1 scope:local -lbl_80572618 = .sdata:0x80572618; // type:object size:0x8 data:4byte -lbl_80572620 = .sdata:0x80572620; // type:object size:0x8 data:4byte -lbl_80572628 = .sdata:0x80572628; // type:object size:0x8 data:4byte -lbl_80572630 = .sdata:0x80572630; // type:object size:0x8 +sTalkTextboxNames = .sdata:0x80572618; // type:object size:0x8 scope:local data:4byte +sSwordTextboxNames = .sdata:0x80572620; // type:object size:0x8 scope:local data:4byte +sLinkTextboxNames = .sdata:0x80572628; // type:object size:0x8 scope:local data:4byte +@31894 = .sdata:0x80572630; // type:object size:0x1 scope:local sPanes = .sdata:0x80572638; // type:object size:0x4 scope:local data:4byte sTextBoxes = .sdata:0x80572640; // type:object size:0x8 scope:local data:4byte sPanes = .sdata:0x80572648; // type:object size:0x4 scope:local data:4byte @@ -41681,7 +41756,7 @@ lbl_80574F28 = .sdata:0x80574F28; // type:object size:0x4 DISABLE_STRING__29@unnamed@eggLightManager_cpp@ = .sdata:0x80574F2C; // type:object size:0x4 data:4byte lbl_80574F30 = .sdata:0x80574F30; // type:object size:0x8 sTextureSize__Q23EGG12LightTexture = .sdata:0x80574F38; // type:object size:0x2 data:2byte -sScaleExp__Q23EGG12LightTexture = .sdata:0x80574F3A; // type:object size:0x1 scope:local data:byte +sScaleExp__Q23EGG12LightTexture = .sdata:0x80574F3A; // type:object size:0x1 scope:global data:byte @8921 = .sdata:0x80574F3C; // type:object size:0x5 scope:local data:string sByteCodeCalcStr__Q23EGG7ModelEx = .sdata:0x80574F48; // type:object size:0x4 data:4byte @5795 = .sdata:0x80574F50; // type:object size:0x8 scope:local data:string @@ -41957,8 +42032,8 @@ sInstance__16dLytTargetBird_c = .sbss:0x80575480; // type:object size:0x8 data:4 sInstance__15dLytMsgWindow_c = .sbss:0x80575488; // type:object size:0x4 data:4byte lbl_8057548C = .sbss:0x8057548C; // type:object size:0x4 data:4byte CURRENT_ACTOR_EVENT_FLOW_MANAGER = .sbss:0x80575490; // type:object size:0x8 data:4byte -sInstance__18dLytSimpleWindow_c = .sbss:0x80575498; // type:object size:0x8 data:4byte -sInstance__15dLytMapGlobal_c = .sbss:0x805754A0; // type:object size:0x8 data:4byte +sInstance__18dLytSimpleWindow_c = .sbss:0x80575498; // type:object size:0x4 data:4byte +sInstance__15dLytMapGlobal_c = .sbss:0x805754A0; // type:object size:0x4 data:4byte sMapFaderColor = .sbss:0x805754A8; // type:object size:0x4 data:byte lbl_805754AC = .sbss:0x805754AC; // type:object size:0x1 data:byte sInstance__9dLytMap_c = .sbss:0x805754B0; // type:object size:0x8 data:4byte @@ -45316,17 +45391,17 @@ 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 @17201 = .sdata2:0x80579E60; // type:object size:0x8 scope:local align:8 data:double -lbl_80579E68 = .sdata2:0x80579E68; // type:object size:0x4 align:4 data:float -lbl_80579E6C = .sdata2:0x80579E6C; // type:object size:0x4 align:4 data:float -lbl_80579E70 = .sdata2:0x80579E70; // type:object size:0x8 align:8 data:double -lbl_80579E78 = .sdata2:0x80579E78; // type:object size:0x4 align:4 data:float -lbl_80579E80 = .sdata2:0x80579E80; // type:object size:0x4 align:4 data:float -lbl_80579E84 = .sdata2:0x80579E84; // type:object size:0x4 align:4 data:float -lbl_80579E88 = .sdata2:0x80579E88; // type:object size:0x8 align:8 data:double -lbl_80579E90 = .sdata2:0x80579E90; // type:object size:0x4 align:4 data:float -lbl_80579E98 = .sdata2:0x80579E98; // type:object size:0x4 align:4 data:float -lbl_80579E9C = .sdata2:0x80579E9C; // type:object size:0x4 align:4 data:float -lbl_80579EA0 = .sdata2:0x80579EA0; // type:object size:0x4 align:4 data:float +@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 +@19472 = .sdata2:0x80579E70; // type:object size:0x8 scope:local align:8 data:double +@19518 = .sdata2:0x80579E78; // type:object size:0x4 scope:local align:4 data:float +@19386 = .sdata2:0x80579E80; // type:object size:0x4 scope:local align:4 data:float +@19387 = .sdata2:0x80579E84; // type:object size:0x4 scope:local align:4 data:float +@19476 = .sdata2:0x80579E88; // type:object size:0x8 scope:local align:8 data:double +@19522 = .sdata2:0x80579E90; // type:object size:0x4 scope:local align:4 data:float +@18935 = .sdata2:0x80579E98; // type:object size:0x4 scope:local align:4 data:float +@18936 = .sdata2:0x80579E9C; // type:object size:0x4 scope:local align:4 data:float +@19035 = .sdata2:0x80579EA0; // type:object size:0x4 scope:local align:4 data:float @18605 = .sdata2:0x80579EA8; // type:object size:0x4 scope:local align:4 data:float @18606 = .sdata2:0x80579EAC; // type:object size:0x4 scope:local align:4 data:float @18611 = .sdata2:0x80579EB0; // type:object size:0x8 scope:local align:8 data:double @@ -45338,10 +45413,10 @@ lbl_80579EA0 = .sdata2:0x80579EA0; // type:object size:0x4 align:4 data:float @18696 = .sdata2:0x80579ED0; // type:object size:0x4 scope:local align:4 data:float @18698 = .sdata2:0x80579ED4; // type:object size:0x4 scope:local align:4 data:float @18729 = .sdata2:0x80579ED8; // type:object size:0x4 scope:local align:4 data:float -lbl_80579EE0 = .sdata2:0x80579EE0; // type:object size:0x4 align:4 data:float -lbl_80579EE4 = .sdata2:0x80579EE4; // type:object size:0x4 align:4 data:float -lbl_80579EE8 = .sdata2:0x80579EE8; // type:object size:0x8 align:8 data:double -lbl_80579EF0 = .sdata2:0x80579EF0; // type:object size:0x4 align:4 data:float +@31426 = .sdata2:0x80579EE0; // type:object size:0x4 scope:local align:4 data:float +@31427 = .sdata2:0x80579EE4; // type:object size:0x4 scope:local align:4 data:float +@31516 = .sdata2:0x80579EE8; // type:object size:0x8 scope:local align:8 data:double +@31539 = .sdata2:0x80579EF0; // type:object size:0x4 scope:local align:4 data:float @25586 = .sdata2:0x80579EF8; // type:object size:0x4 scope:local align:4 data:float @25587 = .sdata2:0x80579EFC; // type:object size:0x4 scope:local align:4 data:float @25588 = .sdata2:0x80579F00; // type:object size:0x4 scope:local align:4 data:float @@ -45350,8 +45425,8 @@ lbl_80579EF0 = .sdata2:0x80579EF0; // type:object size:0x4 align:4 data:float @25570 = .sdata2:0x80579F10; // type:object size:0x4 scope:local align:4 data:float @25573 = .sdata2:0x80579F18; // type:object size:0x8 scope:local align:8 data:double @25578 = .sdata2:0x80579F20; // type:object size:0x4 scope:local align:4 data:float -lbl_80579F28 = .sdata2:0x80579F28; // type:object size:0x4 align:4 data:float -lbl_80579F2C = .sdata2:0x80579F2C; // type:object size:0x4 align:4 data:float +@2523 = .sdata2:0x80579F28; // type:object size:0x4 scope:local align:4 data:float +@2524 = .sdata2:0x80579F2C; // type:object size:0x4 scope:local align:4 data:float lbl_80579F30 = .sdata2:0x80579F30; // type:object size:0x4 align:4 data:float lbl_80579F38 = .sdata2:0x80579F38; // type:object size:0x8 align:8 data:double lbl_80579F40 = .sdata2:0x80579F40; // type:object size:0x4 align:4 data:float @@ -51437,23 +51512,37 @@ LytMsgWindowSelectBtn__STATE_IN = .bss:0x805AE7C0; // type:object size:0x40 data 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 -lbl_805AE930 = .bss:0x805AE930; // type:object size:0x10 -LytMsgWindowTalk__STATE_INVISIBLE = .bss:0x805AE940; // type:object size:0x40 data:4byte -LytMsgWindowTalk__STATE_IN = .bss:0x805AE980; // type:object size:0x40 data:4byte -LytMsgWindowTalk__STATE_WAIT = .bss:0x805AE9C0; // type:object size:0x40 data:4byte -LytMsgWindowTalk__STATE_VISIBLE = .bss:0x805AEA00; // type:object size:0x40 data:4byte -LytMsgWindowTalk__STATE_OUT = .bss:0x805AEA40; // type:object size:0x30 data:4byte -lbl_805AEA70 = .bss:0x805AEA70; // type:object size:0x10 -LytMsgWindowLink__STATE_INVISIBLE = .bss:0x805AEA80; // type:object size:0x40 data:4byte -LytMsgWindowLink__STATE_IN = .bss:0x805AEAC0; // type:object size:0x40 data:4byte -LytMsgWindowLink__STATE_WAIT = .bss:0x805AEB00; // type:object size:0x40 data:4byte -LytMsgWindowLink__STATE_VISIBLE = .bss:0x805AEB40; // type:object size:0x40 data:4byte -LytMsgWindowLink__STATE_OUT = .bss:0x805AEB80; // type:object size:0x30 data:4byte -lbl_805AEBB0 = .bss:0x805AEBB0; // type:object size:0x10 -LytMsgWindowGet__STATE_INVISIBLE = .bss:0x805AEBC0; // type:object size:0x40 data:4byte -LytMsgWindowGet__STATE_IN = .bss:0x805AEC00; // type:object size:0x40 data:4byte -LytMsgWindowGet__STATE_VISIBLE = .bss:0x805AEC40; // type:object size:0x40 data:4byte -LytMsgWindowGet__STATE_OUT = .bss:0x805AEC80; // 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 +@18291 = .bss:0x805AE970; // type:object size:0xC scope:local +StateID_In__19dLytMsgWindowTalk_c = .bss:0x805AE980; // type:object size:0x30 data:4byte +@18295 = .bss:0x805AE9B0; // type:object size:0xC scope:local +StateID_Wait__19dLytMsgWindowTalk_c = .bss:0x805AE9C0; // type:object size:0x30 data:4byte +@18299 = .bss:0x805AE9F0; // type:object size:0xC scope:local +StateID_Visible__19dLytMsgWindowTalk_c = .bss:0x805AEA00; // type:object size:0x30 data:4byte +@18303 = .bss:0x805AEA30; // type:object size:0xC scope:local +StateID_Out__19dLytMsgWindowTalk_c = .bss:0x805AEA40; // type:object size:0x30 data:4byte +@18287 = .bss:0x805AEA70; // type:object size:0xC scope:local +...bss.0 = .bss:0x805AEA70; // type:label scope:local +StateID_Invisible__19dLytMsgWindowLink_c = .bss:0x805AEA80; // type:object size:0x30 data:4byte +@18291 = .bss:0x805AEAB0; // type:object size:0xC scope:local +StateID_In__19dLytMsgWindowLink_c = .bss:0x805AEAC0; // type:object size:0x30 data:4byte +@18295 = .bss:0x805AEAF0; // type:object size:0xC scope:local +StateID_Wait__19dLytMsgWindowLink_c = .bss:0x805AEB00; // type:object size:0x30 data:4byte +@18299 = .bss:0x805AEB30; // type:object size:0xC scope:local +StateID_Visible__19dLytMsgWindowLink_c = .bss:0x805AEB40; // type:object size:0x30 data:4byte +@18303 = .bss:0x805AEB70; // type:object size:0xC scope:local +StateID_Out__19dLytMsgWindowLink_c = .bss:0x805AEB80; // type:object size:0x30 data:4byte +@18052 = .bss:0x805AEBB0; // type:object size:0xC scope:local +...bss.0 = .bss:0x805AEBB0; // type:label scope:local +StateID_Invisible__18dLytMsgWindowGet_c = .bss:0x805AEBC0; // type:object size:0x30 data:4byte +@18056 = .bss:0x805AEBF0; // type:object size:0xC scope:local +StateID_In__18dLytMsgWindowGet_c = .bss:0x805AEC00; // type:object size:0x30 data:4byte +@18060 = .bss:0x805AEC30; // type:object size:0xC scope:local +StateID_Visible__18dLytMsgWindowGet_c = .bss:0x805AEC40; // type:object size:0x30 data:4byte +@18064 = .bss:0x805AEC70; // type:object size:0xC scope:local +StateID_Out__18dLytMsgWindowGet_c = .bss:0x805AEC80; // type:object size:0x30 data:4byte @17488 = .bss:0x805AECB0; // type:object size:0xC scope:local ...bss.0 = .bss:0x805AECB0; // type:label scope:local StateID_Invisible__20dLytMsgWindowSword_c = .bss:0x805AECC0; // type:object size:0x30 data:4byte @@ -51492,11 +51581,15 @@ StateID_In__19dLytMsgWindowDemo_c = .bss:0x805AF040; // type:object size:0x30 da StateID_Visible__19dLytMsgWindowDemo_c = .bss:0x805AF080; // type:object size:0x30 data:4byte @17842 = .bss:0x805AF0B0; // type:object size:0xC scope:local StateID_Out__19dLytMsgWindowDemo_c = .bss:0x805AF0C0; // type:object size:0x30 data:4byte -lbl_805AF0F0 = .bss:0x805AF0F0; // type:object size:0x10 -LytSimpleWindow__STATE_INVISIBLE = .bss:0x805AF100; // type:object size:0x40 data:4byte -LytSimpleWindow__STATE_IN = .bss:0x805AF140; // type:object size:0x40 data:4byte -LytSimpleWindow__STATE_OUTPUT_TEXT = .bss:0x805AF180; // type:object size:0x40 data:4byte -LytSimpleWindow__STATE_OUT = .bss:0x805AF1C0; // type:object size:0x30 data:4byte +@25681 = .bss:0x805AF0F0; // type:object size:0xC scope:local +...bss.0 = .bss:0x805AF0F0; // type:label scope:local +StateID_Invisible__18dLytSimpleWindow_c = .bss:0x805AF100; // type:object size:0x30 data:4byte +@25685 = .bss:0x805AF130; // type:object size:0xC scope:local +StateID_In__18dLytSimpleWindow_c = .bss:0x805AF140; // type:object size:0x30 data:4byte +@25689 = .bss:0x805AF170; // type:object size:0xC scope:local +StateID_OutputText__18dLytSimpleWindow_c = .bss:0x805AF180; // type:object size:0x30 data:4byte +@25693 = .bss:0x805AF1B0; // type:object size:0xC scope:local +StateID_Out__18dLytSimpleWindow_c = .bss:0x805AF1C0; // type:object size:0x30 data:4byte @22209 = .bss:0x805AF1F0; // type:object size:0xC scope:local ...bss.0 = .bss:0x805AF1F0; // type:label scope:local StateID_Invisible__17dLytAutoCaption_c = .bss:0x805AF200; // type:object size:0x30 data:4byte @@ -52578,7 +52671,7 @@ spBufferSet__Q23EGG8StateEfb = .bss:0x80675010; // type:object size:0x30 sWorkSpaceV__Q23EGG8StateEfb = .bss:0x80675040; // type:object size:0x18 align:4 data:float sWorkSpaceHideV__Q23EGG8StateEfb = .bss:0x80675058; // type:object size:0x18 align:4 data:float sShiftViewPort__Q23EGG8StateEfb = .bss:0x80675070; // type:object size:0x18 align:4 data:float -DUMMY_TEX_OBJ__24@unnamed@eggStateGX_cpp@ = .bss:0x806750A0; // type:object size:0x20 +DUMMY_TEX_OBJ__24@unnamed@eggStateGX_cpp@ = .bss:0x806750A0; // type:object size:0x20 scope:local s_tmem_layout__Q23EGG7StateGX = .bss:0x806750C0; // type:object size:0xA8 data:4byte s_cacheGX__Q23EGG7StateGX = .bss:0x80675168; // type:object size:0x18 @LOCAL@initialize__Q23EGG7StateGXFUsUs8_GXColor11_GXPixelFmt@NullTexData = .bss:0x80675180; // type:object size:0x10 scope:local diff --git a/configure.py b/configure.py index fe8aa3de..560608f0 100644 --- a/configure.py +++ b/configure.py @@ -532,7 +532,7 @@ config.libs = [ Object(Matching, "d/lyt/msg_window/d_lyt_msg_window_wood.cpp"), Object(Matching, "d/lyt/msg_window/d_lyt_msg_window_stone.cpp"), Object(Matching, "d/lyt/msg_window/d_lyt_msg_window_demo.cpp"), - Object(NonMatching, "d/lyt/msg_window/d_lyt_simple_window.cpp"), + Object(Matching, "d/lyt/msg_window/d_lyt_simple_window.cpp"), Object(Matching, "d/lyt/d_lyt_auto_caption.cpp"), Object(Matching, "d/lyt/d_lyt_auto_explain.cpp"), Object(Matching, "d/lyt/d_lyt_map_global.cpp"), diff --git a/include/d/d_tag_processor.h b/include/d/d_tag_processor.h index e7a63110..c643e3f3 100644 --- a/include/d/d_tag_processor.h +++ b/include/d/d_tag_processor.h @@ -196,6 +196,16 @@ public: return mOptionSound[idx]; } + void resetSomeThings() { + // TODO clean this up - are these arrays or not??? + for (int i = 0; i < 11; i++) { + mNumericArgsCopy[i] = 0; + } + for (int i = 0; i < 11; i++) { + (&field_0xEE5)[i] = 0; + } + } + private: enum Cmd_e { TAG_CMD_SCALE = 0x2, diff --git a/include/d/d_textwindow_unk.h b/include/d/d_textwindow_unk.h index a599b2d0..f98aec26 100644 --- a/include/d/d_textwindow_unk.h +++ b/include/d/d_textwindow_unk.h @@ -30,6 +30,8 @@ struct dLytMsgWindowCharData { // one by one in the text boxes class TextWindowUnk { public: + static const int BUF_SIZE = 1023; + TextWindowUnk(dTagProcessor_c *tagProcessor); virtual ~TextWindowUnk() {} @@ -55,8 +57,8 @@ public: private: /* 0x0004 */ dTagProcessor_c *mpTagProcessor; - /* 0x0008 */ wchar_t mRawTextBuffer[1023]; - /* 0x0806 */ wchar_t mProcessedTextBuffer[1023]; + /* 0x0008 */ wchar_t mRawTextBuffer[BUF_SIZE]; + /* 0x0806 */ wchar_t mProcessedTextBuffer[BUF_SIZE]; /* 0x1004 */ wchar_t mUnkBuffer[511]; // ??? /* 0x1402 */ SizedString<64> field_0x1402; /* 0x1442 */ u8 _0x1442[0x144C - 0x1442]; @@ -90,7 +92,7 @@ public: } private: - dLytMsgWindowCharData mData[1023]; + dLytMsgWindowCharData mData[TextWindowUnk::BUF_SIZE]; }; #endif diff --git a/include/d/lyt/d_lyt_control_game.h b/include/d/lyt/d_lyt_control_game.h index 110e0c03..c36b2ee0 100644 --- a/include/d/lyt/d_lyt_control_game.h +++ b/include/d/lyt/d_lyt_control_game.h @@ -3,7 +3,13 @@ #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 "s/s_State.hpp" +#include "toBeSorted/arc_managers/layout_arc_manager.h" +#include "toBeSorted/raii_ptr.h" class dLytControlGame_c : public dBase_c { public: @@ -75,16 +81,25 @@ public: private: /* 0x00068 */ UI_STATE_MGR_DECLARE(dLytControlGame_c); - /* 0x000A4 */ u8 _0x000A4[0x15850 - 0x000A4]; - + /* 0x000A4 */ RaiiPtr field_0x000A4; + /* 0x000A8 */ dLytMeter_c mMeter; + /* 0x13C10 */ dLytMsgWindow_c mMsgWindow; + /* 0x14E34 */ dLytSimpleWindow_c mSimpleWindow; + /* 0x152A0 */ dLytWipe_c mWipe; + /* 0x15848 */ u8 _0x15848[0x15850 - 0x15848]; /* 0x15850 */ dMapFootPrintsMgr_c mFootprintsMgr; - /* 0x15C24 */ u8 _0x15C24[0x15C2C - 0x15C24]; + /* 0x15C24 */ UNKWORD field_0x15C24; + /* 0x15C28 */ UNKWORD field_0x15C28; /* 0x15C2C */ s32 mCurrentPauseDisp; /* 0x15C30 */ s32 mPauseDisp00Tab; - /* 0x15C34 */ u8 _0x15C34[0x15C60 - 0x15C34]; + /* 0x15C34 */ u8 _0x15C34[0x15C40 - 0x15C34]; + + /* 0x15C40 */ LayoutArcControl mLytArcControl; + + /* 0x15C4C */ u8 _0x15C4C[0x15C60 - 0x15C4C]; /* 0x15C60 */ u16 mItemForPauseDemo; diff --git a/include/d/lyt/d_lyt_map.h b/include/d/lyt/d_lyt_map.h index fedd5d13..54df7cf9 100644 --- a/include/d/lyt/d_lyt_map.h +++ b/include/d/lyt/d_lyt_map.h @@ -60,6 +60,9 @@ struct dMapFootPrintEntry { /** Generic footprints queue */ class dMapFootPrintsQueue_c { public: + dMapFootPrintsQueue_c() { + init(); + } void init(); void addStep(const mVec3_c &pos, const mAng &rot); dMapFootPrintEntry *getFirst() const; @@ -79,9 +82,7 @@ private: /** Records Link's footsteps */ class dMapFootPrintsMgr_c { public: - dMapFootPrintsMgr_c() { - mQueue.init(); - } + dMapFootPrintsMgr_c() : mMinStepDistanceSq(0.0f) {} virtual ~dMapFootPrintsMgr_c() {} void execute(); @@ -141,7 +142,6 @@ struct LytMap0x80520B5C { bool field_0x05; }; - /** 2D UI - Map - beacon preview icon following the cursor */ class dLytMapPutIcon_c { public: diff --git a/include/d/lyt/d_lyt_wipe.h b/include/d/lyt/d_lyt_wipe.h index ec9b5677..58558856 100644 --- a/include/d/lyt/d_lyt_wipe.h +++ b/include/d/lyt/d_lyt_wipe.h @@ -4,6 +4,7 @@ #include "common.h" #include "d/lyt/d2d.h" #include "s/s_State.hpp" +#include "toBeSorted/d_flow_mgr.h" class dLytWipeMain_c { public: @@ -61,7 +62,7 @@ private: /* 0x03C */ d2d::ResAccIf_c mResAcc; /* 0x3AC */ dLytWipeMain_c mMain; - /* 0x4E0 */ u8 _0x4E0[0x59C - 0x4E0]; + /* 0x4E0 */ dFlowMgr_c mFlowMgr; /* 0x59C */ bool mWantsIn; /* 0x59D */ bool mWantsOut; 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 74e34487..e0e0e2e1 100644 --- a/include/d/lyt/msg_window/d_lyt_msg_window.h +++ b/include/d/lyt/msg_window/d_lyt_msg_window.h @@ -1,6 +1,7 @@ #ifndef D_LYT_MSG_WINDOW_H #define D_LYT_MSG_WINDOW_H +#include "common.h" #include "d/d_tag_processor.h" #include "d/d_textwindow_unk.h" #include "d/lyt/d2d.h" @@ -53,8 +54,12 @@ public: MSG_WINDOW_36 = 36, }; - dLytMsgWindow_c() : mStateMgr(*this) {} - virtual ~dLytMsgWindow_c() {} + dLytMsgWindow_c() : mStateMgr(*this) { + sInstance = this; + } + virtual ~dLytMsgWindow_c() { + sInstance = nullptr; + } bool build(); bool remove(); diff --git a/include/d/lyt/msg_window/d_lyt_msg_window_sword.h b/include/d/lyt/msg_window/d_lyt_msg_window_sword.h index ae9a40b8..82e649f5 100644 --- a/include/d/lyt/msg_window/d_lyt_msg_window_sword.h +++ b/include/d/lyt/msg_window/d_lyt_msg_window_sword.h @@ -76,8 +76,8 @@ private: /* 0x05F8 */ dLytCommonABtn_c mBtn; - /* 0x07A8 */ dLytMsgWindowCharData mCharacterData[1023]; - /* 0x5794 */ wchar_t mTextBuf[1023]; + /* 0x07A8 */ dLytMsgWindowCharData mCharacterData[TextWindowUnk::BUF_SIZE]; + /* 0x5794 */ wchar_t mTextBuf[TextWindowUnk::BUF_SIZE]; /* 0x5F94 */ dLytTextSword mSwordText; /* 0x607C */ dLytTextSword::ESwordType mSwordType; diff --git a/include/d/lyt/msg_window/d_lyt_simple_window.h b/include/d/lyt/msg_window/d_lyt_simple_window.h index 2356fd83..83f8e8b1 100644 --- a/include/d/lyt/msg_window/d_lyt_simple_window.h +++ b/include/d/lyt/msg_window/d_lyt_simple_window.h @@ -1,18 +1,210 @@ #ifndef D_LYT_SIMPLE_WINDOW_H #define D_LYT_SIMPLE_WINDOW_H -class dLytSimpleWindow_c { +#include "common.h" +#include "d/d_tag_processor.h" +#include "d/d_textwindow_unk.h" +#include "d/lyt/d2d.h" +#include "d/lyt/d_textbox.h" +#include "d/lyt/msg_window/d_lyt_msg_window_common.h" +#include "m/m2d.h" +#include "m/m_vec.h" +#include "nw4r/lyt/lyt_pane.h" +#include "s/s_State.hpp" +#include "sized_string.h" + +class dLytSimpleWindowSubtype { public: - dLytSimpleWindow_c() {} - virtual ~dLytSimpleWindow_c() {} + /* 0x08 */ virtual ~dLytSimpleWindowSubtype() {} + /* 0x0C */ virtual bool build(d2d::ResAccIf_c *, dTagProcessor_c *); + /* 0x10 */ virtual bool remove() { + return true; + } + /* 0x14 */ virtual bool execute() { + return true; + } + /* 0x18 */ virtual bool draw() { + return true; + } + /* 0x1C */ virtual void initializeIn(s32 pos); + /* 0x20 */ virtual bool isIn() { + return true; + } + /* 0x24 */ virtual void initializeOutputText() {} + /* 0x28 */ virtual void initializeOut() {} + /* 0x2C */ virtual bool isOut() { + return true; + } + /* 0x30 */ virtual bool setText(const wchar_t *text); + /* 0x34 */ virtual dTextBox_c *getTextBox() { + return nullptr; + } + /* 0x38 */ virtual dLytMsgWindowCharData *getCharData() { + return nullptr; + } + +private: +}; + +class dLytSimpleWindowTalk_c : public dLytSimpleWindowSubtype { +public: + /* 0x0C */ virtual bool build(d2d::ResAccIf_c *, dTagProcessor_c *) override; + /* 0x10 */ virtual bool remove() override; + /* 0x14 */ virtual bool execute() override; + /* 0x18 */ virtual bool draw() override; + /* 0x1C */ virtual void initializeIn(s32 pos) override; + /* 0x20 */ virtual bool isIn() override; + /* 0x24 */ virtual void initializeOutputText() override; + /* 0x28 */ virtual void initializeOut() override; + /* 0x2C */ virtual bool isOut() override; + /* 0x30 */ virtual bool setText(const wchar_t *text) override; + + /* 0x34 */ virtual dTextBox_c *getTextBox() override { + return mpTextboxes[0]; + } + /* 0x38 */ virtual dLytMsgWindowCharData *getCharData() override { + return mBlurRelated.getCharData(); + } + +private: + /* 0x0004 */ d2d::ResAccIf_c *mpResAcc; + /* 0x0008 */ d2d::LytBase_c mLyt; + /* 0x0098 */ d2d::AnmGroup_c mAnm[4]; + /* 0x0198 */ dTextBox_c *mpTextboxes[2]; + /* 0x01A0 */ nw4r::lyt::Pane *mpPanes[5]; + /* 0x01B4 */ dTagProcessor_c *mpTagProcessor; + /* 0x01B8 */ dLytTextLight mLightText; + /* 0x0294 */ MsgWindowBlurRelated mBlurRelated; + /* 0x5284 */ mVec3_c mOrigPosition; + /* 0x5290 */ mVec3_c mPosition; + /* 0x529C */ mVec2_c mOffset; +}; + +class dLytSimpleWindowSword_c : public dLytSimpleWindowSubtype { +public: + /* 0x0C */ virtual bool build(d2d::ResAccIf_c *, dTagProcessor_c *) override; + /* 0x10 */ virtual bool remove() override; + /* 0x14 */ virtual bool execute() override; + /* 0x18 */ virtual bool draw() override; + /* 0x1C */ virtual void initializeIn(s32 pos) override; + /* 0x20 */ virtual bool isIn() override; + /* 0x24 */ virtual void initializeOutputText() override; + /* 0x28 */ virtual void initializeOut() override; + /* 0x2C */ virtual bool isOut() override; + /* 0x30 */ virtual bool setText(const wchar_t *text) override; + + /* 0x34 */ virtual dTextBox_c *getTextBox() override { + return mpTextboxes[0]; + } + /* 0x38 */ virtual dLytMsgWindowCharData *getCharData() override { + return mCharData; + } + void setSwordType(s32 b) { + mSwordType = b; + } + +private: + /* 0x0004 */ d2d::ResAccIf_c *mpResAcc; + /* 0x0008 */ d2d::LytBase_c mLyt; + /* 0x0098 */ d2d::AnmGroup_c mAnm[5]; + /* 0x01D8 */ dTextBox_c *mpTextboxes[2]; + /* 0x01E0 */ nw4r::lyt::Pane *mpPanes[3]; + /* 0x01F4 */ dTagProcessor_c *mpTagProcessor; + /* 0x01F8 */ dLytMsgWindowCharData mCharData[TextWindowUnk::BUF_SIZE]; + /* 0x51DC */ wchar_t mTextBuf[TextWindowUnk::BUF_SIZE]; + /* 0x59DC */ dLytTextSword mSwordText; + /* 0x5AC4 */ s32 mSwordType; + /* 0x5AC8 */ u8 field_0x5AC8; + /* 0x5ACC */ mVec3_c mOrigPosition; + /* 0x5AD8 */ mVec3_c mPosition; + /* 0x5AE4 */ mVec2_c mOffset; +}; + +class dLytSimpleWindowLink_c : public dLytSimpleWindowSubtype { +public: + /* 0x0C */ virtual bool build(d2d::ResAccIf_c *, dTagProcessor_c *) override; + /* 0x10 */ virtual bool remove() override; + /* 0x14 */ virtual bool execute() override; + /* 0x18 */ virtual bool draw() override; + /* 0x1C */ virtual void initializeIn(s32 pos) override; + /* 0x20 */ virtual bool isIn() override; + /* 0x24 */ virtual void initializeOutputText() override; + /* 0x28 */ virtual void initializeOut() override; + /* 0x2C */ virtual bool isOut() override; + /* 0x30 */ virtual bool setText(const wchar_t *text) override; + + /* 0x34 */ virtual dTextBox_c *getTextBox() override { + return mpTextboxes[0]; + } + /* 0x38 */ virtual dLytMsgWindowCharData *getCharData() override { + return mBlurRelated.getCharData(); + } + +private: + /* 0x0004 */ d2d::ResAccIf_c *mpResAcc; + /* 0x0008 */ d2d::LytBase_c mLyt; + /* 0x0098 */ d2d::AnmGroup_c mAnm[4]; + /* 0x0198 */ dTextBox_c *mpTextboxes[2]; + /* 0x01A0 */ nw4r::lyt::Pane *mpPanes[5]; + /* 0x01B4 */ dTagProcessor_c *mpTagProcessor; + /* 0x01B8 */ dLytTextLight mLightText; + /* 0x0294 */ MsgWindowBlurRelated mBlurRelated; + /* 0x5??? */ mVec3_c mOrigPosition; + /* 0x5??? */ mVec3_c mPosition; + /* 0x5??? */ mVec2_c mOffset; +}; + +/** 2D UI - Message window - Window without a confirm button, automatically closes (on timer or event) */ +class dLytSimpleWindow_c : public m2d::Base_c { +public: + dLytSimpleWindow_c() : mStateMgr(*this) { + sInstance = this; + } + virtual ~dLytSimpleWindow_c() { + sInstance = nullptr; + } + virtual void draw() override; + + bool build(); + bool remove(); + bool execute(); static dLytSimpleWindow_c *getInstance() { return sInstance; } - bool fn_8012B000(); + bool set(const char *label, s32 timer, bool global); + + bool isVisible(); + bool isOutputText(); + bool isInEvent(); + + STATE_FUNC_DECLARE(dLytSimpleWindow_c, Invisible); + STATE_FUNC_DECLARE(dLytSimpleWindow_c, In); + STATE_FUNC_DECLARE(dLytSimpleWindow_c, OutputText); + STATE_FUNC_DECLARE(dLytSimpleWindow_c, Out); private: + /* 0x010 */ UI_STATE_MGR_DECLARE(dLytSimpleWindow_c); + /* 0x04C */ d2d::ResAccIf_c mResAcc; + + /* 0x3BC */ TextWindowUnk *mpUnk; + /* 0x3C0 */ dTagProcessor_c *mpTagProcessor; + /* 0x3C4 */ dLytSimpleWindowSubtype *mpCurrentWindow; + /* 0x3C8 */ dLytSimpleWindowTalk_c *mpWindowTalk; + /* 0x3CC */ dLytSimpleWindowSword_c *mpWindowSword; + /* 0x3D0 */ dLytSimpleWindowLink_c *mpWindowLink; + /* 0x3D4 */ UNKWORD field_0x3D4; + /* 0x3D8 */ UNKWORD field_0x3D8; + /* 0x3DC */ UNKWORD field_0x3DC; + /* 0x3E0 */ UNKWORD field_0x3E0; + /* 0x3E4 */ UNKWORD mTimer; + /* 0x3E8 */ u16 field_0x3E8; + /* 0x3EA */ SizedString<0x40> mLabel; + /* 0x42A */ SizedString<0x40> field_0x42A; + /* 0x46A */ bool mInRequest; + /* 0x46B */ bool mWaitForEvent; + static dLytSimpleWindow_c *sInstance; }; diff --git a/src/d/d_textwindow_unk.cpp b/src/d/d_textwindow_unk.cpp index 22782a5d..063df1b9 100644 --- a/src/d/d_textwindow_unk.cpp +++ b/src/d/d_textwindow_unk.cpp @@ -70,14 +70,14 @@ bool TextWindowUnk::checkEndReached() const { } void MsgWindowBlurRelated::build() { - for (int i = 0; i < 1023; i++) { + for (int i = 0; i < TextWindowUnk::BUF_SIZE; i++) { mData[i].reset(); } } void MsgWindowBlurRelated::drawTextBlur(dLytTextLight *thing, mVec2_c size, u8 alpha) { s8 t = -1; - for (int i = 0; i < 1023; i++) { + for (int i = 0; i < TextWindowUnk::BUF_SIZE; i++) { if (mData[i].displayTimerMaybe >= 0) { if (t == -1) { mData[i].displayTimerMaybe++; diff --git a/src/d/lyt/d_lyt_control_game.cpp b/src/d/lyt/d_lyt_control_game.cpp new file mode 100644 index 00000000..23c96f7d --- /dev/null +++ b/src/d/lyt/d_lyt_control_game.cpp @@ -0,0 +1,14 @@ +#include "d/lyt/d_lyt_control_game.h" + +#include "common.h" +#include "f/f_profile_name.h" + +SPECIAL_BASE_PROFILE(LYT_CONTROL_GAME, dLytControlGame_c, fProfile::LYT_CONTROL_GAME, 0x9, 96); + +dLytControlGame_c::dLytControlGame_c() : mStateMgr(*this), field_0x15C24(0), field_0x15C28(0) { + sInstance = this; +} + +dLytControlGame_c::~dLytControlGame_c() { + sInstance = nullptr; +} diff --git a/src/d/lyt/meter/d_lyt_meter.cpp b/src/d/lyt/meter/d_lyt_meter.cpp index abfcb738..3d7382b7 100644 --- a/src/d/lyt/meter/d_lyt_meter.cpp +++ b/src/d/lyt/meter/d_lyt_meter.cpp @@ -1281,7 +1281,7 @@ void dLytMeterMain_c::checkPaneVisibility() { MinigameManager::isInMinigameState(MinigameManager::ROLLERCOASTER) || fn_800D56B0() || field_0x1377E) || (dLytMeter_c::getField_0x13B66() || fn_800D5420() || - (dLytSimpleWindow_c::getInstance() != nullptr && dLytSimpleWindow_c::getInstance()->fn_8012B000()) || + (dLytSimpleWindow_c::getInstance() != nullptr && dLytSimpleWindow_c::getInstance()->isOutputText()) || fn_800D5650() || fn_800D5680())) { mPanesVisible[METER_ANIM_RUPY] = false; } @@ -1306,7 +1306,7 @@ void dLytMeterMain_c::checkPaneVisibility() { field_0x1377E || (dLytMeter_c::getField_0x13B66() || fn_800D5420() || - (dLytSimpleWindow_c::getInstance() != nullptr && dLytSimpleWindow_c::getInstance()->fn_8012B000()) || + (dLytSimpleWindow_c::getInstance() != nullptr && dLytSimpleWindow_c::getInstance()->isOutputText()) || fn_800D5650() || fn_800D5680())) { mPanesVisible[METER_ANIM_SHIELD] = false; } @@ -1333,7 +1333,7 @@ void dLytMeterMain_c::checkPaneVisibility() { || (field_0x1377E != 0) || (dLytMeter_c::getField_0x13B66() || fn_800D5420() || - (dLytSimpleWindow_c::getInstance() != nullptr && dLytSimpleWindow_c::getInstance()->fn_8012B000()) || + (dLytSimpleWindow_c::getInstance() != nullptr && dLytSimpleWindow_c::getInstance()->isOutputText()) || fn_800D5650() || fn_800D5680())) { mPanesVisible[METER_ANIM_HEART] = false; } diff --git a/src/d/lyt/msg_window/d_lyt_msg_window_sword.cpp b/src/d/lyt/msg_window/d_lyt_msg_window_sword.cpp index 27e725f8..16426fc2 100644 --- a/src/d/lyt/msg_window/d_lyt_msg_window_sword.cpp +++ b/src/d/lyt/msg_window/d_lyt_msg_window_sword.cpp @@ -4,6 +4,7 @@ #include "d/d_gfx.h" #include "d/d_tag_processor.h" #include "d/d_lyt_hio.h" +#include "d/d_textwindow_unk.h" #include "d/lyt/d2d.h" #include "d/lyt/d_textbox.h" #include "m/m_vec.h" @@ -96,7 +97,7 @@ bool dLytMsgWindowSword_c::build(d2d::ResAccIf_c *resAcc1, d2d::ResAccIf_c *resA mSwordText.build(resAcc, mSwordType); - for (int i = 0; i < 1023; i++) { + for (int i = 0; i < TextWindowUnk::BUF_SIZE; i++) { mCharacterData[i].reset(); mTextBuf[i] = L'\0'; } @@ -265,7 +266,7 @@ bool dLytMsgWindowSword_c::execute() { void dLytMsgWindowSword_c::draw() { mLyt.draw(); - for (int i = 0; i < 1023; i++) { + for (int i = 0; i < TextWindowUnk::BUF_SIZE; i++) { if (mCharacterData[i].displayTimerMaybe >= 0) { if (!mHasDrawnThisTick) { mCharacterData[i].displayTimerMaybe += 1; @@ -313,15 +314,14 @@ bool dLytMsgWindowSword_c::isDoneClosing() const { } bool dLytMsgWindowSword_c::setText(const wchar_t *text) { - int foundIdx = 1023; - for (int i = 0; i < 1023; i++) { + int foundIdx = TextWindowUnk::BUF_SIZE; + for (int i = 0; i < TextWindowUnk::BUF_SIZE; i++) { if (mCharacterData[i].displayTimerMaybe >= 0 && foundIdx > mCharacterData[i].field_0x0C) { foundIdx = mCharacterData[i].field_0x0C; } } - // How is text bounds-checked here???? - for (int i = 0; i < 1023; i++) { + for (int i = 0; i < TextWindowUnk::BUF_SIZE; i++) { if (i < foundIdx) { mTextBuf[i] = text[i]; } else { @@ -333,5 +333,5 @@ bool dLytMsgWindowSword_c::setText(const wchar_t *text) { mpTextboxes[1]->SetTagProcessor(mpTagProcessor); mpTextboxes[0]->setTextWithTextProcessor(mTextBuf, mpTagProcessor, 0); mpTextboxes[1]->setTextWithTextProcessor(mTextBuf, mpTagProcessor, 0); - return foundIdx == 1023; + return foundIdx == TextWindowUnk::BUF_SIZE; } diff --git a/src/d/lyt/msg_window/d_lyt_simple_window.cpp b/src/d/lyt/msg_window/d_lyt_simple_window.cpp new file mode 100644 index 00000000..9991aae7 --- /dev/null +++ b/src/d/lyt/msg_window/d_lyt_simple_window.cpp @@ -0,0 +1,795 @@ +#include "d/lyt/msg_window/d_lyt_simple_window.h" + +#include "common.h" +#include "d/d_lyt_hio.h" +#include "d/d_message.h" +#include "d/d_tag_processor.h" +#include "d/d_textwindow_unk.h" +#include "d/lyt/d_lyt_control_game.h" +#include "d/lyt/msg_window/d_lyt_msg_window.h" +#include "d/lyt/msg_window/d_lyt_msg_window_common.h" +#include "m/m_vec.h" +#include "nw4r/lyt/lyt_types.h" +#include "nw4r/math/math_types.h" +#include "sized_string.h" +#include "toBeSorted/arc_managers/layout_arc_manager.h" +#include "toBeSorted/event_manager.h" + +STATE_DEFINE(dLytSimpleWindow_c, Invisible); +STATE_DEFINE(dLytSimpleWindow_c, In); +STATE_DEFINE(dLytSimpleWindow_c, OutputText); +STATE_DEFINE(dLytSimpleWindow_c, Out); + +dLytSimpleWindow_c *dLytSimpleWindow_c::sInstance; + +bool dLytSimpleWindowSubtype::build(d2d::ResAccIf_c *, dTagProcessor_c *) { + return true; +} + +void dLytSimpleWindowSubtype::initializeIn(s32 pos) { + // no-op +} + +bool dLytSimpleWindowSubtype::setText(const wchar_t *text) { + return true; +} + +static const d2d::LytBrlanMapping brlanMapTalk[] = { + { "messageWindow_00_in.brlan", "G_inOut_00"}, + { "messageWindow_00_out.brlan", "G_inOut_00"}, + {"messageWindow_00_position.brlan", "G_position_00"}, + { "messageWindow_00_loop.brlan", "G_loop_00"}, +}; + +#define SIMPLE_WINDOW_TALK_ANIM_IN 0 +#define SIMPLE_WINDOW_TALK_ANIM_OUT 1 +#define SIMPLE_WINDOW_TALK_ANIM_POSITION 2 +#define SIMPLE_WINDOW_TALK_ANIM_LOOP 3 + +#define SIMPLE_WINDOW_TALK_NUM_ANIMS 4 + +static const char *sTalkPaneNames[] = { + "N_window_00", "N_message_00", "N_aBtn_00", "N_inOut_00", "N_position_00", +}; + +#define SIMPLE_WINDOW_TALK_PANE_WINDOW 0 +#define SIMPLE_WINDOW_TALK_PANE_MESSAGE 1 +#define SIMPLE_WINDOW_TALK_PANE_A_BTN 2 +#define SIMPLE_WINDOW_TALK_PANE_IN_OUT 3 +#define SIMPLE_WINDOW_TALK_PANE_POSITION 4 + +#define SIMPLE_WINDOW_TALK_NUM_PANES 5 + +static const char *sTalkTextboxNames[] = { + "T_message_00", + "T_messageS_00", +}; + +#define SIMPLE_WINDOW_TALK_NUM_TEXTBOXES 2 + +bool dLytSimpleWindowTalk_c::build(d2d::ResAccIf_c *resAcc, dTagProcessor_c *tagProcessor) { + mpResAcc = resAcc; + mLyt.setResAcc(resAcc); + mLyt.build("messageWindow_00.brlyt", nullptr); + mLyt.setPriority(0x8A); + + for (int i = 0; i < SIMPLE_WINDOW_TALK_NUM_ANIMS; i++) { + mAnm[i].init(brlanMapTalk[i].mFile, mpResAcc, mLyt.getLayout(), brlanMapTalk[i].mName); + mAnm[i].bind(false); + mAnm[i].setAnimEnable(false); + } + + mAnm[SIMPLE_WINDOW_TALK_ANIM_LOOP].setAnimEnable(true); + + mAnm[SIMPLE_WINDOW_TALK_ANIM_OUT].setAnimEnable(true); + mAnm[SIMPLE_WINDOW_TALK_ANIM_OUT].setToEnd(); + mLyt.calc(); + mAnm[SIMPLE_WINDOW_TALK_ANIM_OUT].setAnimEnable(false); + + for (int i = 0; i < SIMPLE_WINDOW_TALK_NUM_PANES; i++) { + mpPanes[i] = mLyt.findPane(sTalkPaneNames[i]); + } + + for (int i = 0; i < SIMPLE_WINDOW_TALK_NUM_TEXTBOXES; i++) { + mpTextboxes[i] = mLyt.getTextBox(sTalkTextboxNames[i]); + mpTextboxes[i]->SetTextPositionH(0); + mpTextboxes[i]->SetTextPositionV(0); + } + + mpTextboxes[1]->setIsShadow(1); + mpTagProcessor = tagProcessor; + + mLightText.build(mpResAcc, dLytTextLight::NORMAL); + mBlurRelated.build(); + + mpPanes[SIMPLE_WINDOW_TALK_PANE_IN_OUT]->SetVisible(true); + mLyt.calc(); + mpPanes[SIMPLE_WINDOW_TALK_PANE_IN_OUT]->SetVisible(false); + + nw4r::math::MTX34 transform = mpPanes[SIMPLE_WINDOW_TALK_PANE_A_BTN]->GetGlobalMtx(); + mVec2_c _unused; + _unused.x = transform._03; + _unused.y = transform._13; + + mOrigPosition.copyFrom(mpPanes[SIMPLE_WINDOW_TALK_PANE_POSITION]->GetTranslate()); + mPosition.copyFrom(mpPanes[SIMPLE_WINDOW_TALK_PANE_POSITION]->GetTranslate()); + mOffset.x = mOffset.y = 0.0f; + + return true; +} + +bool dLytSimpleWindowTalk_c::remove() { + mLightText.remove(); + for (int i = 0; i < SIMPLE_WINDOW_TALK_NUM_ANIMS; i++) { + mAnm[i].remove(); + } + return true; +} + +bool dLytSimpleWindowTalk_c::execute() { + for (int i = 0; i < SIMPLE_WINDOW_TALK_NUM_ANIMS; i++) { + if (mAnm[i].isEnabled()) { + mAnm[i].play(); + } + } + mLyt.calc(); + return true; +} + +bool dLytSimpleWindowTalk_c::draw() { + bool bVis[3]; + for (int i = 0; i < 3; ++i) { + bVis[i] = mpPanes[i]->IsVisible(); + }; + + mpPanes[0]->SetVisible(bVis[0]); + mpPanes[1]->SetVisible(false); + mpPanes[2]->SetVisible(false); + + mLyt.draw(); + mBlurRelated.drawTextBlur(&mLightText, mOffset, mpPanes[3]->GetAlpha()); + + mpPanes[0]->SetVisible(false); + mpPanes[1]->SetVisible(bVis[1]); + mpPanes[2]->SetVisible(bVis[2]); + + mLyt.draw(); + + for (int i = 0; i < 3; ++i) { + mpPanes[i]->SetVisible(bVis[i]); + }; + return true; +} + +void dLytSimpleWindowTalk_c::initializeIn(s32 pos) { + mAnm[SIMPLE_WINDOW_TALK_ANIM_IN].setAnimEnable(true); + mAnm[SIMPLE_WINDOW_TALK_ANIM_IN].setFrame(0.0f); + + mAnm[SIMPLE_WINDOW_TALK_ANIM_POSITION].setFrame(pos); + mAnm[SIMPLE_WINDOW_TALK_ANIM_POSITION].setAnimEnable(true); + mLyt.calc(); + mAnm[SIMPLE_WINDOW_TALK_ANIM_POSITION].setAnimEnable(false); + + mPosition = mOrigPosition; + mPosition.y = mpPanes[SIMPLE_WINDOW_TALK_PANE_POSITION]->GetTranslate().y; + mpPanes[SIMPLE_WINDOW_TALK_PANE_POSITION]->SetTranslate(mPosition); +} + +bool dLytSimpleWindowTalk_c::isIn() { + if (mAnm[SIMPLE_WINDOW_TALK_ANIM_IN].isEndReached()) { + mAnm[SIMPLE_WINDOW_TALK_ANIM_IN].setAnimEnable(false); + return true; + } + return false; +} + +void dLytSimpleWindowTalk_c::initializeOutputText() { + nw4r::lyt::Size size = getTextBox()->GetSize(); + nw4r::lyt::Size fontSize = getTextBox()->GetFontSize(); + nw4r::math::MTX34 transform = getTextBox()->GetGlobalMtx(); + + mOffset.x = transform._03 - size.width / 2; + mOffset.y = transform._13 + size.height / 2; +} + +void dLytSimpleWindowTalk_c::initializeOut() { + mAnm[SIMPLE_WINDOW_TALK_ANIM_OUT].setAnimEnable(true); + mAnm[SIMPLE_WINDOW_TALK_ANIM_OUT].setFrame(0.0f); +} + +bool dLytSimpleWindowTalk_c::isOut() { + if (mAnm[SIMPLE_WINDOW_TALK_ANIM_OUT].isEndReached()) { + mAnm[SIMPLE_WINDOW_TALK_ANIM_OUT].setAnimEnable(false); + return true; + } + return false; +} + +bool dLytSimpleWindowTalk_c::setText(const wchar_t *text) { + mpTextboxes[0]->SetTagProcessor(mpTagProcessor); + mpTextboxes[1]->SetTagProcessor(mpTagProcessor); + mpTextboxes[0]->setTextWithTextProcessor(text, mpTagProcessor, nullptr); + mpTextboxes[1]->setTextWithTextProcessor(text, mpTagProcessor, nullptr); + return true; +} + +static const d2d::LytBrlanMapping brlanMapSword[] = { + { "messageWindow_01_in.brlan", "G_inOut_00"}, + { "messageWindow_01_out.brlan", "G_inOut_00"}, + { "messageWindow_01_loop.brlan", "G_loop_00"}, + { "messageWindow_01_color.brlan", "G_color_00"}, + {"messageWindow_01_position.brlan", "G_position_00"}, +}; + +#define SIMPLE_WINDOW_SWORD_ANIM_IN 0 +#define SIMPLE_WINDOW_SWORD_ANIM_OUT 1 +#define SIMPLE_WINDOW_SWORD_ANIM_LOOP 2 +#define SIMPLE_WINDOW_SWORD_ANIM_COLOR 3 +#define SIMPLE_WINDOW_SWORD_ANIM_POSITION 4 + +#define SIMPLE_WINDOW_SWORD_NUM_ANIMS 5 + +static const char *sSwordPaneNames[] = { + "N_aBtn_00", + "N_inOut_00", + "N_position_00", +}; + +#define SIMPLE_WINDOW_SWORD_PANE_A_BTN 0 +#define SIMPLE_WINDOW_SWORD_PANE_IN_OUT 1 +#define SIMPLE_WINDOW_SWORD_PANE_POSITION 2 + +#define SIMPLE_WINDOW_SWORD_NUM_PANES 3 + +static const char *sSwordTextboxNames[] = { + "T_message_00", + "T_messageS_00", +}; + +#define SIMPLE_WINDOW_SWORD_NUM_TEXTBOXES 2 + +bool dLytSimpleWindowSword_c::build(d2d::ResAccIf_c *resAcc, dTagProcessor_c *tagProcessor) { + mpResAcc = resAcc; + mLyt.setResAcc(resAcc); + mLyt.build("messageWindow_01.brlyt", nullptr); + mLyt.setPriority(0x8A); + + for (int i = 0; i < SIMPLE_WINDOW_SWORD_NUM_ANIMS; i++) { + mAnm[i].init(brlanMapSword[i].mFile, mpResAcc, mLyt.getLayout(), brlanMapSword[i].mName); + mAnm[i].bind(false); + mAnm[i].setAnimEnable(false); + } + + mAnm[SIMPLE_WINDOW_SWORD_ANIM_LOOP].setAnimEnable(true); + + mAnm[SIMPLE_WINDOW_SWORD_ANIM_OUT].setAnimEnable(true); + mAnm[SIMPLE_WINDOW_SWORD_ANIM_OUT].setToEnd(); + mLyt.calc(); + mAnm[SIMPLE_WINDOW_SWORD_ANIM_OUT].setAnimEnable(false); + + for (int i = 0; i < SIMPLE_WINDOW_SWORD_NUM_PANES; i++) { + mpPanes[i] = mLyt.findPane(sSwordPaneNames[i]); + } + + for (int i = 0; i < SIMPLE_WINDOW_SWORD_NUM_TEXTBOXES; i++) { + mpTextboxes[i] = mLyt.getTextBox(sSwordTextboxNames[i]); + mpTextboxes[i]->SetTextPositionH(0); + mpTextboxes[i]->SetTextPositionV(0); + } + + mpTextboxes[1]->setIsShadow(1); + mpTagProcessor = tagProcessor; + + for (int i = 0; i < TextWindowUnk::BUF_SIZE; i++) { + mCharData[i].reset(); + mTextBuf[i] = L'\0'; + } + + mAnm[SIMPLE_WINDOW_SWORD_ANIM_COLOR].setAnimEnable(true); + mAnm[SIMPLE_WINDOW_SWORD_ANIM_COLOR].setFrame(mSwordType); + mpPanes[SIMPLE_WINDOW_SWORD_PANE_IN_OUT]->SetVisible(true); + mLyt.calc(); + mpPanes[SIMPLE_WINDOW_SWORD_PANE_IN_OUT]->SetVisible(false); + mAnm[SIMPLE_WINDOW_SWORD_ANIM_COLOR].setAnimEnable(false); + + nw4r::math::MTX34 transform = mpPanes[SIMPLE_WINDOW_SWORD_PANE_A_BTN]->GetGlobalMtx(); + mVec2_c _unused; + _unused.x = transform._03; + _unused.y = transform._13; + + mOrigPosition.copyFrom(mpPanes[SIMPLE_WINDOW_SWORD_PANE_POSITION]->GetTranslate()); + mPosition.copyFrom(mpPanes[SIMPLE_WINDOW_SWORD_PANE_POSITION]->GetTranslate()); + mOffset.x = mOffset.y = 0.0f; + + field_0x5AC8 = 0; + + return true; +} + +bool dLytSimpleWindowSword_c::remove() { + for (int i = 0; i < SIMPLE_WINDOW_SWORD_NUM_ANIMS; i++) { + mAnm[i].remove(); + } + return true; +} + +bool dLytSimpleWindowSword_c::execute() { + for (int i = 0; i < SIMPLE_WINDOW_SWORD_NUM_ANIMS; i++) { + if (mAnm[i].isEnabled()) { + mAnm[i].play(); + } + } + mLyt.calc(); + field_0x5AC8 = 0; + return true; +} + +bool dLytSimpleWindowSword_c::draw() { + mLyt.draw(); + return true; +} + +void dLytSimpleWindowSword_c::initializeIn(s32 pos) { + mAnm[SIMPLE_WINDOW_SWORD_ANIM_IN].setAnimEnable(true); + mAnm[SIMPLE_WINDOW_SWORD_ANIM_IN].setFrame(0.0f); + + mAnm[SIMPLE_WINDOW_SWORD_ANIM_POSITION].setFrame(pos); + mAnm[SIMPLE_WINDOW_SWORD_ANIM_POSITION].setAnimEnable(true); + mLyt.calc(); + mAnm[SIMPLE_WINDOW_SWORD_ANIM_POSITION].setAnimEnable(false); + + mPosition = mOrigPosition; + mPosition.y = mpPanes[SIMPLE_WINDOW_SWORD_PANE_POSITION]->GetTranslate().y; + mpPanes[SIMPLE_WINDOW_SWORD_PANE_POSITION]->SetTranslate(mPosition); +} + +bool dLytSimpleWindowSword_c::isIn() { + if (mAnm[SIMPLE_WINDOW_SWORD_ANIM_IN].isEndReached()) { + mAnm[SIMPLE_WINDOW_SWORD_ANIM_IN].setAnimEnable(false); + return true; + } + return false; +} + +void dLytSimpleWindowSword_c::initializeOutputText() { + nw4r::lyt::Size size = getTextBox()->GetSize(); + nw4r::lyt::Size fontSize = getTextBox()->GetFontSize(); + nw4r::math::MTX34 transform = getTextBox()->GetGlobalMtx(); + mOffset.x = transform._03 - size.width / 2; + mOffset.y = transform._13 + size.height / 2; +} + +void dLytSimpleWindowSword_c::initializeOut() { + mAnm[SIMPLE_WINDOW_SWORD_ANIM_OUT].setAnimEnable(true); + mAnm[SIMPLE_WINDOW_SWORD_ANIM_OUT].setFrame(0.0f); +} + +bool dLytSimpleWindowSword_c::isOut() { + if (mAnm[SIMPLE_WINDOW_SWORD_ANIM_OUT].isEndReached()) { + mAnm[SIMPLE_WINDOW_SWORD_ANIM_OUT].setAnimEnable(false); + return true; + } + return false; +} + +bool dLytSimpleWindowSword_c::setText(const wchar_t *text) { + int foundIdx = TextWindowUnk::BUF_SIZE; + for (int i = 0; i < TextWindowUnk::BUF_SIZE; i++) { + if (mCharData[i].displayTimerMaybe >= 0 && foundIdx > mCharData[i].field_0x0C) { + foundIdx = mCharData[i].field_0x0C; + } + } + + for (int i = 0; i < TextWindowUnk::BUF_SIZE; i++) { + if (i < foundIdx) { + mTextBuf[i] = text[i]; + } else { + mTextBuf[i] = L' '; + } + } + + mpTextboxes[0]->SetTagProcessor(mpTagProcessor); + mpTextboxes[1]->SetTagProcessor(mpTagProcessor); + mpTextboxes[0]->setTextWithTextProcessor(text, mpTagProcessor, nullptr); + mpTextboxes[1]->setTextWithTextProcessor(text, mpTagProcessor, nullptr); + return true; +} + +static const d2d::LytBrlanMapping brlanMapLink[] = { + { "linkWindow_00_in.brlan", "G_inOut_00"}, + { "linkWindow_00_out.brlan", "G_inOut_00"}, + {"linkWindow_00_position.brlan", "G_position_00"}, + { "linkWindow_00_loop.brlan", "G_loop_00"}, +}; + +#define SIMPLE_WINDOW_LINK_ANIM_IN 0 +#define SIMPLE_WINDOW_LINK_ANIM_OUT 1 +#define SIMPLE_WINDOW_LINK_ANIM_POSITION 2 +#define SIMPLE_WINDOW_LINK_ANIM_LOOP 3 + +#define SIMPLE_WINDOW_LINK_NUM_ANIMS 4 + +static const char *sLinkPaneNames[] = { + "N_window_00", "N_message_00", "N_aBtn_00", "N_inOut_00", "N_position_00", +}; + +#define SIMPLE_WINDOW_LINK_PANE_WINDOW 0 +#define SIMPLE_WINDOW_LINK_PANE_MESSAGE 1 +#define SIMPLE_WINDOW_LINK_PANE_A_BTN 2 +#define SIMPLE_WINDOW_LINK_PANE_IN_OUT 3 +#define SIMPLE_WINDOW_LINK_PANE_POSITION 4 + +#define SIMPLE_WINDOW_LINK_NUM_PANES 5 + +static const char *sLinkTextboxNames[] = { + "T_message_00", + "T_messageS_00", +}; + +#define SIMPLE_WINDOW_LINK_NUM_TEXTBOXES 2 + +bool dLytSimpleWindowLink_c::build(d2d::ResAccIf_c *resAcc, dTagProcessor_c *tagProcessor) { + mpResAcc = resAcc; + mLyt.setResAcc(resAcc); + mLyt.build("linkWindow_00.brlyt", nullptr); + mLyt.setPriority(0x8A); + + for (int i = 0; i < SIMPLE_WINDOW_LINK_NUM_ANIMS; i++) { + mAnm[i].init(brlanMapLink[i].mFile, mpResAcc, mLyt.getLayout(), brlanMapLink[i].mName); + mAnm[i].bind(false); + mAnm[i].setAnimEnable(false); + } + + mAnm[SIMPLE_WINDOW_LINK_ANIM_LOOP].setAnimEnable(true); + + mAnm[SIMPLE_WINDOW_LINK_ANIM_OUT].setAnimEnable(true); + mAnm[SIMPLE_WINDOW_LINK_ANIM_OUT].setToEnd(); + mLyt.calc(); + mAnm[SIMPLE_WINDOW_LINK_ANIM_OUT].setAnimEnable(false); + + for (int i = 0; i < SIMPLE_WINDOW_LINK_NUM_PANES; i++) { + mpPanes[i] = mLyt.findPane(sLinkPaneNames[i]); + } + + for (int i = 0; i < SIMPLE_WINDOW_LINK_NUM_TEXTBOXES; i++) { + mpTextboxes[i] = mLyt.getTextBox(sLinkTextboxNames[i]); + mpTextboxes[i]->SetTextPositionH(0); + mpTextboxes[i]->SetTextPositionV(0); + } + + mpTextboxes[1]->setIsShadow(1); + mpTagProcessor = tagProcessor; + + mLightText.build(mpResAcc, dLytTextLight::NORMAL); + mBlurRelated.build(); + + mpPanes[SIMPLE_WINDOW_LINK_PANE_IN_OUT]->SetVisible(true); + mLyt.calc(); + mpPanes[SIMPLE_WINDOW_LINK_PANE_IN_OUT]->SetVisible(false); + + nw4r::math::MTX34 transform = mpPanes[SIMPLE_WINDOW_LINK_PANE_A_BTN]->GetGlobalMtx(); + mVec2_c _unused; + _unused.x = transform._03; + _unused.y = transform._13; + + mOrigPosition.copyFrom(mpPanes[SIMPLE_WINDOW_LINK_PANE_POSITION]->GetTranslate()); + mPosition.copyFrom(mpPanes[SIMPLE_WINDOW_LINK_PANE_POSITION]->GetTranslate()); + mOffset.x = mOffset.y = 0.0f; + + return true; +} + +bool dLytSimpleWindowLink_c::remove() { + mLightText.remove(); + for (int i = 0; i < SIMPLE_WINDOW_LINK_NUM_ANIMS; i++) { + mAnm[i].remove(); + } + return true; +} + +bool dLytSimpleWindowLink_c::execute() { + for (int i = 0; i < SIMPLE_WINDOW_LINK_NUM_ANIMS; i++) { + if (mAnm[i].isEnabled()) { + mAnm[i].play(); + } + } + mLyt.calc(); + return true; +} + +bool dLytSimpleWindowLink_c::draw() { + bool bVis[3]; + for (int i = 0; i < 3; ++i) { + bVis[i] = mpPanes[i]->IsVisible(); + }; + + mpPanes[0]->SetVisible(bVis[0]); + mpPanes[1]->SetVisible(false); + mpPanes[2]->SetVisible(false); + + mLyt.draw(); + mBlurRelated.drawTextBlur(&mLightText, mOffset, mpPanes[3]->GetAlpha()); + + mpPanes[0]->SetVisible(false); + mpPanes[1]->SetVisible(bVis[1]); + mpPanes[2]->SetVisible(bVis[2]); + + mLyt.draw(); + + for (int i = 0; i < 3; ++i) { + mpPanes[i]->SetVisible(bVis[i]); + }; + return true; +} + +void dLytSimpleWindowLink_c::initializeIn(s32 pos) { + mAnm[SIMPLE_WINDOW_LINK_ANIM_IN].setAnimEnable(true); + mAnm[SIMPLE_WINDOW_LINK_ANIM_IN].setFrame(0.0f); + + mAnm[SIMPLE_WINDOW_LINK_ANIM_POSITION].setFrame(pos); + mAnm[SIMPLE_WINDOW_LINK_ANIM_POSITION].setAnimEnable(true); + mLyt.calc(); + mAnm[SIMPLE_WINDOW_LINK_ANIM_POSITION].setAnimEnable(false); + + mPosition = mOrigPosition; + mPosition.y = mpPanes[SIMPLE_WINDOW_LINK_PANE_POSITION]->GetTranslate().y; + mpPanes[SIMPLE_WINDOW_LINK_PANE_POSITION]->SetTranslate(mPosition); +} + +bool dLytSimpleWindowLink_c::isIn() { + if (mAnm[SIMPLE_WINDOW_LINK_ANIM_IN].isEndReached()) { + mAnm[SIMPLE_WINDOW_LINK_ANIM_IN].setAnimEnable(false); + return true; + } + return false; +} + +void dLytSimpleWindowLink_c::initializeOutputText() { + nw4r::lyt::Size size = getTextBox()->GetSize(); + nw4r::lyt::Size fontSize = getTextBox()->GetFontSize(); + nw4r::math::MTX34 transform = getTextBox()->GetGlobalMtx(); + + mOffset.x = transform._03 - size.width / 2; + mOffset.y = transform._13 + size.height / 2; +} + +void dLytSimpleWindowLink_c::initializeOut() { + mAnm[SIMPLE_WINDOW_LINK_ANIM_OUT].setAnimEnable(true); + mAnm[SIMPLE_WINDOW_LINK_ANIM_OUT].setFrame(0.0f); +} + +bool dLytSimpleWindowLink_c::isOut() { + if (mAnm[SIMPLE_WINDOW_LINK_ANIM_OUT].isEndReached()) { + mAnm[SIMPLE_WINDOW_LINK_ANIM_OUT].setAnimEnable(false); + return true; + } + return false; +} + +bool dLytSimpleWindowLink_c::setText(const wchar_t *text) { + mpTextboxes[0]->SetTagProcessor(mpTagProcessor); + mpTextboxes[1]->SetTagProcessor(mpTagProcessor); + mpTextboxes[0]->setTextWithTextProcessor(text, mpTagProcessor, nullptr); + mpTextboxes[1]->setTextWithTextProcessor(text, mpTagProcessor, nullptr); + return true; +} + +bool dLytSimpleWindow_c::build() { + void *data = LayoutArcManager::GetInstance()->getLoadedData("System2D"); + mResAcc.attach(data, ""); + mpTagProcessor = new dTagProcessor_c(); + mpUnk = new TextWindowUnk(mpTagProcessor); + + mInRequest = false; + field_0x3D4 = 0; + field_0x3D8 = 0; + field_0x3DC = 0; + field_0x3E0 = 0; + field_0x3E8 = -1; + mLabel = ""; + mTimer = 0; + mWaitForEvent = false; + mpCurrentWindow = nullptr; + mpWindowTalk = nullptr; + mpWindowSword = nullptr; + mpWindowLink = nullptr; + + mStateMgr.changeState(StateID_Invisible); + + return true; +} + +bool dLytSimpleWindow_c::remove() { + if (mpWindowTalk != nullptr) { + delete mpWindowTalk; + mpWindowTalk = nullptr; + } + if (mpWindowSword != nullptr) { + delete mpWindowSword; + mpWindowSword = nullptr; + } + if (mpWindowLink != nullptr) { + delete mpWindowLink; + mpWindowLink = nullptr; + } + + mpCurrentWindow = nullptr; + delete mpUnk; + mpUnk = nullptr; + delete mpTagProcessor; + mpTagProcessor = nullptr; + + mResAcc.detach(); + return true; +} + +void dLytSimpleWindow_c::initializeState_Invisible() {} +void dLytSimpleWindow_c::executeState_Invisible() { + if (!mInRequest) { + return; + } + mInRequest = false; + if (!dMessage_c::isValidTextLabel(mLabel)) { + return; + } + + const wchar_t *message = dMessage_c::getTextMessageByLabel(mLabel, mpTagProcessor, true, nullptr, 0); + if (mpTagProcessor->getMsgWindowSubtype() == dLytMsgWindow_c::MSG_WINDOW_SWORD_FI || + mpTagProcessor->getMsgWindowSubtype() == dLytMsgWindow_c::MSG_WINDOW_SWORD_GHIRAHIM) { + mpWindowSword = new dLytSimpleWindowSword_c(); + + if (mpTagProcessor->getMsgWindowSubtype() == dLytMsgWindow_c::MSG_WINDOW_SWORD_GHIRAHIM) { + mpWindowSword->setSwordType(dLytTextSword::GHIRAHIM); + } else { + mpWindowSword->setSwordType(dLytTextSword::FI); + } + + mpWindowSword->build(&mResAcc, mpTagProcessor); + mpCurrentWindow = mpWindowSword; + } else if (mpTagProcessor->getMsgWindowSubtype() == dLytMsgWindow_c::MSG_WINDOW_LINK) { + mpWindowLink = new dLytSimpleWindowLink_c(); + mpWindowLink->build(&mResAcc, mpTagProcessor); + mpCurrentWindow = mpWindowLink; + } else { + mpWindowTalk = new dLytSimpleWindowTalk_c(); + mpWindowTalk->build(&mResAcc, mpTagProcessor); + mpCurrentWindow = mpWindowTalk; + } + + field_0x42A = mLabel; + + mpUnk->fn_800B2130(field_0x42A, mpCurrentWindow->getTextBox(), mpCurrentWindow->getCharData(), true); + mpCurrentWindow->setText(mpUnk->getProcessedText()); + mStateMgr.changeState(StateID_In); +} +void dLytSimpleWindow_c::finalizeState_Invisible() {} + +void dLytSimpleWindow_c::initializeState_In() { + s32 pos; + if (mpTagProcessor->getField_0x90D() == 1) { + pos = 0; + } else if (mpTagProcessor->getField_0x90D() == 3) { + pos = 1; + } else { + pos = 2; + } + + mpCurrentWindow->initializeIn(pos); + dLyt_HIO_c::getInstance()->setStr2(""); +} +void dLytSimpleWindow_c::executeState_In() { + if (mpCurrentWindow->isIn()) { + mpUnk->textAdvancingRelated(true, true); + mpCurrentWindow->setText(mpUnk->getProcessedText()); + mStateMgr.changeState(StateID_OutputText); + } +} +void dLytSimpleWindow_c::finalizeState_In() {} + +void dLytSimpleWindow_c::initializeState_OutputText() { + mpCurrentWindow->initializeOutputText(); +} +void dLytSimpleWindow_c::executeState_OutputText() { + if (mTimer > 0) { + mTimer--; + } + + if (isInEvent() || !dLytControlGame_c::getInstance()->isStateNormal() || dLytMeter_c::getItemSelect0x75A2() || + dLytMeter_c::getMinusBtnFn800F7600() || dLytMeter_c::getDowsingFn800FE4B0()) { + mTimer = 0; + mWaitForEvent = false; + } + + if (!mWaitForEvent && mTimer <= 0) { + mStateMgr.changeState(StateID_Out); + } +} +void dLytSimpleWindow_c::finalizeState_OutputText() {} + +void dLytSimpleWindow_c::initializeState_Out() { + mpCurrentWindow->initializeOut(); + dLyt_HIO_c::getInstance()->setStr2(""); + dLyt_HIO_c::getInstance()->setStr1(""); + dLyt_HIO_c::getInstance()->setStr3(""); +} +void dLytSimpleWindow_c::executeState_Out() { + if (mpCurrentWindow->isOut()) { + mLabel = ""; + if (mpWindowTalk != nullptr) { + delete mpWindowTalk; + mpWindowTalk = nullptr; + } + if (mpWindowSword != nullptr) { + delete mpWindowSword; + mpWindowSword = nullptr; + } + if (mpWindowLink != nullptr) { + delete mpWindowLink; + mpWindowLink = nullptr; + } + + mpCurrentWindow = nullptr; + mStateMgr.changeState(StateID_Invisible); + } +} +void dLytSimpleWindow_c::finalizeState_Out() {} + +bool dLytSimpleWindow_c::execute() { + mStateMgr.executeState(); + if (isVisible() && mpCurrentWindow != nullptr) { + mpCurrentWindow->execute(); + } + return true; +} + +void dLytSimpleWindow_c::draw() { + if (isVisible() && mpCurrentWindow != nullptr) { + mpTagProcessor->resetSomeThings(); + mpCurrentWindow->draw(); + } +} + +bool dLytSimpleWindow_c::set(const char *label, s32 timer, bool global) { + if (!isVisible()) { + if (global) { + s32 idx = dMessage_c::getMsbtIndexForLabel(label); + if (idx < 0) { + return false; + } + dMessage_c::getInstance()->setCurrentTextFileNumber(idx); + } + mInRequest = true; + if (timer >= 0) { + mTimer = timer; + mWaitForEvent = false; + } else { + // This is a bit weird, the timer will still be running + // here and it'll be checked even when the event has happened + // Probably not a problem in practice though + mWaitForEvent = true; + } + mLabel = label; + return true; + } else { + return false; + } +} + +bool dLytSimpleWindow_c::isVisible() { + return !(*mStateMgr.getStateID() == StateID_Invisible); +} + +bool dLytSimpleWindow_c::isOutputText() { + return (*mStateMgr.getStateID() == StateID_OutputText); +} + +bool dLytSimpleWindow_c::isInEvent() { + if (EventManager::isInEvent()) { + if (EventManager::getCurrentEventName() != nullptr && + strequals(EventManager::getCurrentEventName(), "DefaultStart")) { + return false; + } + return true; + } + return false; +}