diff --git a/config/SOUE01/splits.txt b/config/SOUE01/splits.txt index 14f04d46..d5744794 100644 --- a/config/SOUE01/splits.txt +++ b/config/SOUE01/splits.txt @@ -241,6 +241,11 @@ d/lyt/d_lyt_draw_mark.cpp: d/lyt/d_textbox.cpp: .text start:0x800AE960 end:0x800B1628 + .data start:0x80510780 end:0x80510820 + .sdata start:0x805722C0 end:0x805722D8 + .sbss start:0x805753A8 end:0x805753B0 + .sdata2 start:0x805797D0 end:0x805797F0 + .bss start:0x805A6370 end:0x805A6F70 d/lyt/d_window.cpp: .text start:0x800B1630 end:0x800B1818 @@ -256,6 +261,9 @@ d/d_textunk.cpp: .sdata2 start:0x805797F8 end:0x80579848 .bss start:0x805A6F70 end:0x805A7730 +d/d_textwindow_unk.cpp: + .text start:0x800B20E0 end:0x800B34F0 + d/d_tag_processor.cpp: .text start:0x800B34F0 end:0x800B9274 .ctors start:0x804DB6D4 end:0x804DB6D8 @@ -407,6 +415,12 @@ d/lyt/d_lyt_do_button.cpp: .data start:0x8051A5A8 end:0x8051AC00 .bss start:0x805ACE10 end:0x805ACF78 +d/lyt/d_lyt_common_a_btn.cpp: + .text start:0x8010EF90 end:0x8010F818 + .rodata start:0x804E72E0 end:0x804E7330 + .data start:0x8051AC18 end:0x8051ACD8 + .sdata2 start:0x80579D98 end:0x80579DA8 + d/lyt/d_lyt_common_icon_material.cpp: .text start:0x8010F820 end:0x80111718 .ctors start:0x804DB730 end:0x804DB734 @@ -425,56 +439,117 @@ d/lyt/d_lyt_common_icon_item.cpp: .sdata2 start:0x80579DB8 end:0x80579DD0 .bss start:0x805AD088 end:0x805AD188 -d/lyt/d_lyt_msg_window.cpp: +d/lyt/msg_window/d_lyt_msg_window.cpp: .text start:0x801148F0 end:0x8011C8C8 .ctors start:0x804DB738 end:0x804DB73C + .data start:0x8051B6E8 end:0x8051C300 + .sdata start:0x80572580 end:0x80572588 + .sdata2 start:0x80579DF0 end:0x80579E18 + .bss start:0x805AD188 end:0x805AE670 -d/lyt/d_lyt_msg_window_select_btn.cpp: - .text start:0x8011C8D0 end:0x80120988 +d/lyt/msg_window/d_lyt_msg_window_select_btn.cpp: + .text start:0x8011C8D0 end:0x80120A18 .ctors start:0x804DB73C end:0x804DB740 + .rodata start:0x804E7468 end:0x804E7540 + .data start:0x8051C300 end:0x8051CB10 + .sdata start:0x80572588 end:0x80572598 + .bss start:0x805AE670 end:0x805AE930 -d/lyt/d_lyt_msg_window_base.cpp: +d/lyt/msg_window/d_lyt_msg_window_common.cpp: .text start:0x80120A20 end:0x80121068 + .data start:0x8051CB10 end:0x8051CC98 + .sdata start:0x80572598 end:0x805725A0 + .sdata2 start:0x80579E60 end:0x80579E68 -d/lyt/d_lyt_msg_window_talk.cpp: +d/lyt/msg_window/d_lyt_msg_window_talk.cpp: .text start:0x80121070 end:0x801223C8 .ctors start:0x804DB740 end:0x804DB744 + .rodata start:0x804E7540 end:0x804E7560 + .data start:0x8051CC98 end:0x8051CFC0 + .sdata start:0x805725A0 end:0x805725B0 + .sdata2 start:0x80579E68 end:0x80579E80 + .bss start:0x805AE930 end:0x805AEA70 -d/lyt/d_lyt_msg_window_link.cpp: +d/lyt/msg_window/d_lyt_msg_window_link.cpp: .text start:0x801223D0 end:0x80123738 .ctors start:0x804DB744 end:0x804DB748 + .rodata start:0x804E7560 end:0x804E7580 + .data start:0x8051CFC0 end:0x8051D2D8 + .sdata start:0x805725B0 end:0x805725C0 + .sdata2 start:0x80579E80 end:0x80579E98 + .bss start:0x805AEA70 end:0x805AEBB0 -d/lyt/d_lyt_msg_window_get.cpp: +d/lyt/msg_window/d_lyt_msg_window_get.cpp: .text start:0x80123740 end:0x80124678 .ctors start:0x804DB748 end:0x804DB74C + .rodata start:0x804E7580 end:0x804E7598 + .data start:0x8051D2D8 end:0x8051D578 + .sdata start:0x805725C0 end:0x805725D0 + .sdata2 start:0x80579E98 end:0x80579EA8 + .bss start:0x805AEBB0 end:0x805AECB0 -d/lyt/d_lyt_msg_window_sword.cpp: +d/lyt/msg_window/d_lyt_msg_window_sword.cpp: .text start:0x80124680 end:0x80125BA8 .ctors start:0x804DB74C end:0x804DB750 + .rodata start:0x804E7598 end:0x804E75C0 + .data start:0x8051D578 end:0x8051D8A0 + .sdata start:0x805725D0 end:0x805725E0 + .sdata2 start:0x80579EA8 end:0x80579EC0 + .bss start:0x805AECB0 end:0x805AEDF0 -d/lyt/d_lyt_msg_window_wood.cpp: +d/lyt/msg_window/d_lyt_msg_window_wood.cpp: .text start:0x80125BB0 end:0x801267F8 .ctors start:0x804DB750 end:0x804DB754 + .rodata start:0x804E75C0 end:0x804E75D8 + .data start:0x8051D8A0 end:0x8051DB08 + .sdata start:0x805725E0 end:0x805725F8 + .sdata2 start:0x80579EC0 end:0x80579EC8 + .bss start:0x805AEDF0 end:0x805AEEF0 -d/lyt/d_lyt_msg_window_stone.cpp: +d/lyt/msg_window/d_lyt_msg_window_stone.cpp: .text start:0x80126800 end:0x80127478 .ctors start:0x804DB754 end:0x804DB758 + .rodata start:0x804E75D8 end:0x804E75F0 + .data start:0x8051DB08 end:0x8051DD90 + .sdata start:0x805725F8 end:0x80572608 + .sdata2 start:0x80579EC8 end:0x80579ED0 + .bss start:0x805AEEF0 end:0x805AEFF0 -d/lyt/d_lyt_msg_window_demo.cpp: +d/lyt/msg_window/d_lyt_msg_window_demo.cpp: .text start:0x80127480 end:0x801281F8 .ctors start:0x804DB758 end:0x804DB75C + .rodata start:0x804E75F0 end:0x804E7600 + .data start:0x8051DD90 end:0x8051E008 + .sdata start:0x80572608 end:0x80572618 + .sdata2 start:0x80579ED0 end:0x80579EE0 + .bss start:0x805AEFF0 end:0x805AF0F0 -d/lyt/d_lyt_simple_window.cpp: +d/lyt/msg_window/d_lyt_simple_window.cpp: .text start:0x80128200 end:0x8012B948 .ctors start:0x804DB75C end:0x804DB760 + .rodata start:0x804E7600 end:0x804E7668 + .data start:0x8051E008 end:0x8051E548 + .sdata start:0x80572618 end:0x80572638 + .sdata2 start:0x80579EE0 end:0x80579EF8 + .bss start:0x805AF0F0 end:0x805AF1F0 d/lyt/d_lyt_auto_caption.cpp: .text start:0x8012B950 end:0x8012C568 .ctors start:0x804DB760 end:0x804DB764 + .rodata start:0x804E7668 end:0x804E7688 + .data start:0x8051E548 end:0x8051E7C0 + .sdata start:0x80572638 end:0x80572648 + .sdata2 start:0x80579EF8 end:0x80579F10 + .bss start:0x805AF1F0 end:0x805AF2F0 d/lyt/d_lyt_auto_explain.cpp: .text start:0x8012C570 end:0x8012D188 .ctors start:0x804DB764 end:0x804DB768 + .rodata start:0x804E7688 end:0x804E76A0 + .data start:0x8051E7C0 end:0x8051EA08 + .sdata start:0x80572648 end:0x80572658 + .sdata2 start:0x80579F10 end:0x80579F28 + .bss start:0x805AF2F0 end:0x805AF3F0 d/lyt/d_lyt_map_capture.cpp: .text start:0x8012D190 end:0x8012DC28 @@ -715,6 +790,14 @@ d/tg/d_t_weather.cpp: .text start:0x801A65D0 end:0x801AF7D8 .ctors start:0x804DB804 end:0x804DB808 +d/d_message.cpp: + .text start:0x801AF7E0 end:0x801B329C + .ctors start:0x804DB808 end:0x804DB80C + .data start:0x8052C858 end:0x8052DF40 + .sdata start:0x80573248 end:0x80573290 + .sbss start:0x80575740 end:0x80575760 + .bss start:0x805B29E0 end:0x805B36E0 + d/d_stage.cpp: .text start:0x801B32A0 end:0x801B5BC8 .ctors start:0x804DB80C end:0x804DB810 diff --git a/config/SOUE01/symbols.txt b/config/SOUE01/symbols.txt index ae494792..231ed689 100644 --- a/config/SOUE01/symbols.txt +++ b/config/SOUE01/symbols.txt @@ -555,8 +555,8 @@ fn_80016700 = .text:0x80016700; // type:function size:0x160 fn_80016860 = .text:0x80016860; // type:function size:0x28 createLightTextures = .text:0x80016890; // type:function size:0x98 fn_80016930 = .text:0x80016930; // type:function size:0x2C -fn_80016960 = .text:0x80016960; // type:function size:0x130 -fn_80016A90 = .text:0x80016A90; // type:function size:0xCC +fn_80016960__3d3dFR7mVec3_cRC7mVec3_c = .text:0x80016960; // type:function size:0x130 +fn_80016A90__3d3dFRC7mVec3_c = .text:0x80016A90; // type:function size:0xCC fn_80016B60 = .text:0x80016B60; // type:function size:0xAC __ct__Q23d3d13AnmMdlWrapperFv = .text:0x80016C10; // type:function size:0x88 __dt__Q23d3d13AnmMdlWrapperFv = .text:0x80016CA0; // type:function size:0xB0 @@ -688,7 +688,7 @@ GetTexSize = .text:0x8001D820; // type:function size:0x8 fn_8001D830 = .text:0x8001D830; // type:function size:0x8 fn_8001D840 = .text:0x8001D840; // type:function size:0x38 fn_8001D880 = .text:0x8001D880; // type:function size:0x8C -fn_8001D910 = .text:0x8001D910; // type:function size:0x40 +__dt__7mVec2_cFv = .text:0x8001D910; // type:function size:0x40 fn_8001D950 = .text:0x8001D950; // type:function size:0x22C fn_8001DB80 = .text:0x8001DB80; // type:function size:0x74 fn_8001DC00 = .text:0x8001DC00; // type:function size:0x764 @@ -2357,8 +2357,8 @@ fn_80059630 = .text:0x80059630; // type:function size:0x4 fn_80059640 = .text:0x80059640; // type:function size:0x4 fn_80059650 = .text:0x80059650; // type:function size:0x4 checkInputManagerPressedMask = .text:0x80059660; // type:function size:0x18 -checkButtonAPressed = .text:0x80059680; // type:function size:0x18 -checkButtonBPressed = .text:0x800596A0; // type:function size:0x18 +checkButtonAPressed__4dPadFv = .text:0x80059680; // type:function size:0x18 +checkButtonBPressed__4dPadFv = .text:0x800596A0; // type:function size:0x18 checkButtonCPressed = .text:0x800596C0; // type:function size:0x18 checkButtonZPressed__4dPadFv = .text:0x800596E0; // type:function size:0x18 checkButtonDpadUpPressed = .text:0x80059700; // type:function size:0x18 @@ -2368,11 +2368,11 @@ checkButtonDpadRightPressed = .text:0x80059760; // type:function size:0x18 checkButton1Pressed = .text:0x80059780; // type:function size:0x18 checkButton2Pressed = .text:0x800597A0; // type:function size:0x18 checkButtonMinusPressed = .text:0x800597C0; // type:function size:0x18 -checkButtonPlusPressed = .text:0x800597E0; // type:function size:0x18 +checkButtonPlusPressed__4dPadFv = .text:0x800597E0; // type:function size:0x18 checkInputManagerHeldMask = .text:0x80059800; // type:function size:0x18 down__Q23EGG14CoreControllerCFUl = .text:0x80059820; // type:function size:0x18 downAll__Q23EGG14CoreControllerCFUl = .text:0x80059840; // type:function size:0x18 -checkButtonAHeld = .text:0x80059860; // type:function size:0x18 +checkButtonAHeld__4dPadFv = .text:0x80059860; // type:function size:0x18 checkButtonBHeld = .text:0x80059880; // type:function size:0x18 checkButtonCHeld = .text:0x800598A0; // type:function size:0x18 checkButtonZHeld__4dPadFv = .text:0x800598C0; // type:function size:0x18 @@ -2831,7 +2831,7 @@ dSys_c__endFrame = .text:0x800643E0; // type:function size:0x48 EGG__ConfigurationData__onEndFrame = .text:0x80064430; // type:function size:0x4 dSys_c__setBlack = .text:0x80064440; // type:function size:0x80 setFrameRate__4dSysFUl = .text:0x800644C0; // type:function size:0x10 -dSys_c__getFrameRate = .text:0x800644D0; // type:function size:0x10 +getFrameRate__4dSysFv = .text:0x800644D0; // type:function size:0x10 setClearColor__4dSysF6mColor = .text:0x800644E0; // type:function size:0x60 dSys_c__getClearColor = .text:0x80064540; // type:function size:0x14 dSys_c__create = .text:0x80064560; // type:function size:0x3BC @@ -2902,7 +2902,7 @@ lzSafeDecompress = .text:0x80066FB0; // type:function size:0x64 matrixCreateFromPosRotYScale__FR6mMtx_cRC7mVec3_c4mAngRC7mVec3_cP6mMtx_cf = .text:0x80067020; // type:function size:0x138 checkIfVec3fInMatrix__FRC6mMtx_cRC7mVec3_c = .text:0x80067160; // type:function size:0x88 fn_800671F0 = .text:0x800671F0; // type:function size:0x84 -fn_80067280 = .text:0x80067280; // type:function size:0x4 +__ct__7mVec2_cFv = .text:0x80067280; // type:function size:0x4 fn_80067290 = .text:0x80067290; // type:function size:0xA8 fn_80067340 = .text:0x80067340; // type:function size:0xC0 fn_80067400 = .text:0x80067400; // type:function size:0x80 @@ -3591,7 +3591,7 @@ fn_800A07D0 = .text:0x800A07D0; // type:function size:0x58 mainEventSetUnkActorLink = .text:0x800A0830; // type:function size:0x44 findActorBySpecialName = .text:0x800A0880; // type:function size:0x10 getCurrentEventActorBasedOnGroup = .text:0x800A0890; // type:function size:0x58 -fn_800A08F0 = .text:0x800A08F0; // type:function size:0x58 +fn_800A08F0__12EventManagerFQ27fBase_c12GROUP_TYPE_e = .text:0x800A08F0; // type:function size:0x58 checkButton2HeldForCutscenes = .text:0x800A0950; // type:function size:0x60 fn_800A09B0 = .text:0x800A09B0; // type:function size:0x1D0 fn_800A0B80 = .text:0x800A0B80; // type:function size:0x10 @@ -3763,9 +3763,9 @@ fn_800AB940__Q23d2d9LytBase_cFPCci = .text:0x800AB940; // type:function size:0x5 fn_800AB9A0__Q23d2d9LytBase_cFP10dTextBox_ci = .text:0x800AB9A0; // type:function size:0x1DC fn_800ABB80__Q23d2d9LytBase_cFP10dTextBox_cP10dTextBox_ci = .text:0x800ABB80; // type:function size:0x158 fn_800ABCE0__Q23d2d9LytBase_cFPCQ44nw4r3lyt3res11ExtUserDataP10dTextBox_cP10dTextBox_ci = .text:0x800ABCE0; // type:function size:0x170 -fn_800ABE50__Q23d2d9LytBase_cFP10dTextBox_ciPv = .text:0x800ABE50; // type:function size:0x1E8 -fn_800AC040__Q23d2d9LytBase_cFP10dTextBox_cP10dTextBox_ciPv = .text:0x800AC040; // type:function size:0x160 -fn_800AC1AC__Q23d2d9LytBase_cFPCQ44nw4r3lyt3res11ExtUserDataP10dTextBox_cP10dTextBox_ciPv = .text:0x800AC1A0; // type:function size:0x158 +fn_800ABE50__Q23d2d9LytBase_cFP10dTextBox_cPwUl = .text:0x800ABE50; // type:function size:0x1E8 +fn_800AC040__Q23d2d9LytBase_cFP10dTextBox_cP10dTextBox_cPwUl = .text:0x800AC040; // type:function size:0x160 +fn_800AC1AC__Q23d2d9LytBase_cFPCQ44nw4r3lyt3res11ExtUserDataP10dTextBox_cP10dTextBox_cPwUl = .text:0x800AC1A0; // type:function size:0x158 getMsbtInfo__Q23d2d9LytBase_cCFv = .text:0x800AC300; // type:function size:0x8 findGroupByName__Q23d2d9LytBase_cFPCc = .text:0x800AC310; // type:function size:0x38 hasSameBaseName__3d2dFPCcPCc = .text:0x800AC350; // type:function size:0x64 @@ -3774,9 +3774,9 @@ LytMeter0x24__Q23d2d8dSubPaneCFv = .text:0x800AC4F0; // type:function size:0x8 LytMeter0x28__Q23d2d8dSubPaneFb = .text:0x800AC500; // type:function size:0x8 init__Q23d2d14AnmGroupBase_cFPCcPQ23m2d10ResAccIf_cPQ23d2d8Layout_cPCc = .text:0x800AC510; // type:function size:0x9C init__Q23d2d14AnmGroupBase_cFPQ34nw4r3lyt13AnimTransformPCcPQ23m2d10ResAccIf_cPQ34nw4r3lyt5Group = .text:0x800AC5B0; // type:function size:0x114 -setDirection__Q23d2d14AnmGroupBase_cFb = .text:0x800AC6D0; // type:function size:0xF8 +bind__Q23d2d14AnmGroupBase_cFb = .text:0x800AC6D0; // type:function size:0xF8 unbind__Q23d2d14AnmGroupBase_cFv = .text:0x800AC7D0; // type:function size:0x88 -afterUnbind__Q23d2d14AnmGroupBase_cFv = .text:0x800AC860; // type:function size:0x8 +remove__Q23d2d14AnmGroupBase_cFv = .text:0x800AC860; // type:function size:0x8 setAnimEnable__Q23d2d14AnmGroupBase_cFb = .text:0x800AC870; // type:function size:0x8C setAnmFrame__Q23d2d14AnmGroupBase_cFf = .text:0x800AC900; // type:function size:0xC syncAnmFrame__Q23d2d14AnmGroupBase_cFv = .text:0x800AC910; // type:function size:0xC @@ -3833,36 +3833,36 @@ LytDrawMark__initStates = .text:0x800AE220; // type:function size:0x644 LytDrawMark__dtor = .text:0x800AE870; // type:function size:0x58 fn_800AE8D0 = .text:0x800AE8D0; // type:function size:0x88 __ct__10dTextBox_cFPCQ44nw4r3lyt3res7TextBoxRCQ34nw4r3lyt11ResBlockSet = .text:0x800AE960; // type:function size:0xE0 -fn_800AEA40 = .text:0x800AEA40; // type:function size:0xB4 -fn_800AEB00 = .text:0x800AEB00; // type:function size:0x178 -fn_800AEC80 = .text:0x800AEC80; // type:function size:0x108 -fn_800AED90 = .text:0x800AED90; // type:function size:0x1E8 -fn_800AEF80 = .text:0x800AEF80; // type:function size:0x414 +GetColor__FRC11_GXColorS10 = .text:0x800AEA40; // type:function size:0xB4 +GetMyTextDrawRect__10dTextBox_cCFPQ34nw4r2ut17TextWriterBasePb = .text:0x800AEB00; // type:function size:0x178 +CalcStringRect__FPQ34nw4r2ut4RectRQ34nw4r2ut17TextWriterBasePCwiPbf = .text:0x800AEC80; // type:function size:0x108 +CalcStringRectImpl__FPQ34nw4r2ut4RectPQ34nw4r2ut17TextWriterBasePCwifPb = .text:0x800AED90; // type:function size:0x1E8 +CalcLineRectImpl__FPQ34nw4r2ut4RectPQ34nw4r2ut17TextWriterBasePCwifPbPb = .text:0x800AEF80; // type:function size:0x414 GetCharStrmReader__Q34nw4r2ut4FontCFv = .text:0x800AF3A0; // type:function size:0x38 -fn_800AF3E0 = .text:0x800AF3E0; // type:function size:0x8C -fn_800AF470 = .text:0x800AF470; // type:function size:0xCC -fn_800AF540 = .text:0x800AF540; // type:function size:0x8C -fn_800AF5D0 = .text:0x800AF5D0; // type:function size:0xD4 -fn_800AF6B0 = .text:0x800AF6B0; // type:function size:0x64 -fn_800AF720 = .text:0x800AF720; // type:function size:0x8C -fn_800AF7B0 = .text:0x800AF7B0; // type:function size:0x84 -fn_800AF840 = .text:0x800AF840; // type:function size:0xEC -fn_800AF930__10dTextBox_cFPCw = .text:0x800AF930; // type:function size:0x50 -GetLineWidth__10dTextBox_cFPf = .text:0x800AF980; // type:function size:0x1E4 -fn_800AFB70 = .text:0x800AFB70; // type:function size:0x1A4 -fn_800AFD20 = .text:0x800AFD20; // type:function size:0x3C -fn_800AFD60 = .text:0x800AFD60; // type:function size:0xC8 -fn_800AFE30 = .text:0x800AFE30; // type:function size:0x204 -fn_800B0040 = .text:0x800B0040; // type:function size:0x278 -fn_800B02C0 = .text:0x800B02C0; // type:function size:0x1EC -dTextBox_c__DrawSelf = .text:0x800B04B0; // type:function size:0x930 -fn_800B0DE0 = .text:0x800B0DE0; // type:function size:0x158 -fn_800B0F40 = .text:0x800B0F40; // type:function size:0x240 -fn_800B1180 = .text:0x800B1180; // type:function size:0x3F0 -dTextBox_c__setFontSize = .text:0x800B1570; // type:function size:0x14 +setTextWithGlobalTextProcessor__10dTextBox_cFPCwPve = .text:0x800AF3E0; // type:function size:0x8C +setTextWithGlobalTextProcessorV__10dTextBox_cFPCwPvP16__va_list_struct = .text:0x800AF470; // type:function size:0xCC +setTextWithTextProcessor__10dTextBox_cFPCwP15dTagProcessor_cPve = .text:0x800AF540; // type:function size:0x8C +setTextWithTextProcessorV__10dTextBox_cFPCwP15dTagProcessor_cPvP16__va_list_struct = .text:0x800AF5D0; // type:function size:0xD4 +calcTextLines__10dTextBox_cFPCwP15dTagProcessor_c = .text:0x800AF6B0; // type:function size:0x64 +setMessageWithGlobalTextProcessor__10dTextBox_cFPCcPvPve = .text:0x800AF720; // type:function size:0x8C +setMessageWithGlobalTextProcessorV__10dTextBox_cFPCcPvPvP16__va_list_struct = .text:0x800AF7B0; // type:function size:0x84 +setMessageWithGlobalTextProcessorAndMsbtInfo__10dTextBox_cFPC8MsbtInfoPCcPwUl = .text:0x800AF840; // type:function size:0xEC +setTextWithGlobalTextProcessor__10dTextBox_cFPCw = .text:0x800AF930; // type:function size:0x50 +GetLineWidth__10dTextBox_cCFPf = .text:0x800AF980; // type:function size:0x1E4 +GetLinesHeight__10dTextBox_cCFv = .text:0x800AFB70; // type:function size:0x1A4 +GetUnkWidthRatio__10dTextBox_cCFv = .text:0x800AFD20; // type:function size:0x3C +resizeTextToFit__10dTextBox_cFf = .text:0x800AFD60; // type:function size:0xC8 +init__10dTextBox_cFv = .text:0x800AFE30; // type:function size:0x204 +hasDynamicText__10dTextBox_cFv = .text:0x800B0040; // type:function size:0x278 +someDebugCheckMaybe__10dTextBox_cFv = .text:0x800B02C0; // type:function size:0x1EC +DrawSelf__10dTextBox_cFRCQ34nw4r3lyt8DrawInfo = .text:0x800B04B0; // type:function size:0x930 +CalcLineStrNum__FPfPQ34nw4r2ut17TextWriterBasePCwifPb = .text:0x800B0DE0; // type:function size:0x158 +loadTextFormatVars__10dTextBox_cFv = .text:0x800B0F40; // type:function size:0x240 +setupGX__10dTextBox_cCFv = .text:0x800B1180; // type:function size:0x3F0 +MySetFontSize__10dTextBox_cFRCQ34nw4r3lyt4Size = .text:0x800B1570; // type:function size:0x14 MySetScale__10dTextBox_cFRCQ34nw4r3lyt4Size = .text:0x800B1590; // type:function size:0x14 GetRuntimeTypeInfo__Q34nw4r3lyt7TextBoxCFv = .text:0x800B15B0; // type:function size:0x8 scope:weak -fn_800B15C0 = .text:0x800B15C0; // type:function size:0x68 +__dt__10dTextBox_cFv = .text:0x800B15C0; // type:function size:0x68 __ct__9dWindow_cFPCQ44nw4r3lyt3res6WindowRCQ34nw4r3lyt11ResBlockSet = .text:0x800B1630; // type:function size:0x3C UpdateSize__9dWindow_cFP10dTextBox_cf = .text:0x800B1670; // type:function size:0x134 GetRuntimeTypeInfo__Q34nw4r3lyt6WindowCFv = .text:0x800B17B0; // type:function size:0x8 scope:weak @@ -3887,24 +3887,24 @@ fn_800B2040__12UnkTextThingFv = .text:0x800B2040; // type:function size:0x8 destroyMsg__12UnkTextThingFP8MsbtInfo = .text:0x800B2050; // type:function size:0x40 destroyFlow__12UnkTextThingFP8MsbfInfo = .text:0x800B2090; // type:function size:0x40 __sinit_\d_textunk_cpp = .text:0x800B20D0; // type:function size:0xC scope:local -LytMsgWindowUnk__ctor = .text:0x800B20E0; // type:function size:0x48 -fn_800B2130 = .text:0x800B2130; // type:function size:0x370 -textAdvancingRelated = .text:0x800B24A0; // type:function size:0x5FC -fn_800B2AA0 = .text:0x800B2AA0; // type:function size:0x80 -somethingWithTextboxEndState = .text:0x800B2B20; // type:function size:0x48 -LytMsgWindowUnk__checkTextEndReached = .text:0x800B2B70; // type:function size:0x1C -LytMsgWindowUnk__initSomethingMaybe = .text:0x800B2B90; // type:function size:0xD8 +__ct__13TextWindowUnkFP15dTagProcessor_c = .text:0x800B20E0; // type:function size:0x48 +fn_800B2130__13TextWindowUnkFPCcP10dTextBox_cP21dLytMsgWindowCharDatab = .text:0x800B2130; // type:function size:0x370 +textAdvancingRelated__13TextWindowUnkFbb = .text:0x800B24A0; // type:function size:0x5FC +fn_800B2AA0__13TextWindowUnkFv = .text:0x800B2AA0; // type:function size:0x80 +checkLastLineReached__13TextWindowUnkFv = .text:0x800B2B20; // type:function size:0x48 +checkEndReached__13TextWindowUnkCFv = .text:0x800B2B70; // type:function size:0x1C +reset__13TextWindowUnkFv = .text:0x800B2B90; // type:function size:0xD8 fn_800B2C70 = .text:0x800B2C70; // type:function size:0x340 fn_800B2FB0 = .text:0x800B2FB0; // type:function size:0x324 -fn_800B32E0 = .text:0x800B32E0; // type:function size:0x84 -drawTextBlur = .text:0x800B3370; // type:function size:0x138 -fn_800B34B0 = .text:0x800B34B0; // type:function size:0x40 +build__20MsgWindowBlurRelatedFv = .text:0x800B32E0; // type:function size:0x84 +drawTextBlur__20MsgWindowBlurRelatedFP13dLytTextLight7mVec2_cUc = .text:0x800B3370; // type:function size:0x138 +__dt__13TextWindowUnkFv = .text:0x800B34B0; // type:function size:0x40 fn_800B34F0 = .text:0x800B34F0; // type:function size:0xD0 __ct__15dTagProcessor_cFv = .text:0x800B35C0; // type:function size:0x260 __dt__15dTagProcessor_cFv = .text:0x800B3820; // type:function size:0x58 -fn_800B3880 = .text:0x800B3880; // type:function size:0x8C -eventFlowTextProcessingRelated__15dTagProcessor_cFP10dTextBox_cPCwPwUlPUl = .text:0x800B3910; // type:function size:0x980 -fn_800B4290 = .text:0x800B4290; // type:function size:0x5AC +format__15dTagProcessor_cFP10dTextBox_cPCwPwUlPUlPve = .text:0x800B3880; // type:function size:0x8C +formatV__15dTagProcessor_cFP10dTextBox_cPCwPwUlPUlPvP16__va_list_struct = .text:0x800B3910; // type:function size:0x980 +fn_800B4290__15dTagProcessor_cFP10dTextBox_cPCwPwlPUsP21dLytMsgWindowCharData = .text:0x800B4290; // type:function size:0x5AC Process__15dTagProcessor_cFUsPQ34nw4r2ut15PrintContext = .text:0x800B4840; // type:function size:0x10 CalcRect__15dTagProcessor_cFPQ34nw4r2ut4RectUsPQ34nw4r2ut15PrintContext = .text:0x800B4850; // type:function size:0x4 ProcessTags__15dTagProcessor_cFPQ34nw4r2ut4RectUsPQ34nw4r2ut15PrintContext = .text:0x800B4860; // type:function size:0x78C @@ -3949,19 +3949,19 @@ fn_800B8340 = .text:0x800B8340; // type:function size:0x18C fn_800B84D0 = .text:0x800B84D0; // type:function size:0x8C fn_800B8560 = .text:0x800B8560; // type:function size:0x54 fn_800B85C0 = .text:0x800B85C0; // type:function size:0x290 -getNumLines__15dTagProcessor_cFl = .text:0x800B8850; // type:function size:0x38 +getMaxNumLines__15dTagProcessor_cFl = .text:0x800B8850; // type:function size:0x38 getTextCommand__15dTagProcessor_cFwPCwPUcPlPPw = .text:0x800B8890; // type:function size:0x38 process0xFCommand__15dTagProcessor_cFwPCwPl = .text:0x800B88D0; // type:function size:0xC tick0x830__15dTagProcessor_cFv = .text:0x800B88E0; // type:function size:0x30 resetSomething__15dTagProcessor_cFv = .text:0x800B8910; // type:function size:0x1C tickPauseFrame__15dTagProcessor_cFv = .text:0x800B8930; // type:function size:0x30 -resetSomeFloats__15dTagProcessor_cFv = .text:0x800B8960; // type:function size:0xD8 -getFloat__15dTagProcessor_cFl = .text:0x800B8A40; // type:function size:0x10 +resetLineData__15dTagProcessor_cFv = .text:0x800B8960; // type:function size:0xD8 +getLineWidth__15dTagProcessor_cFl = .text:0x800B8A40; // type:function size:0x10 setNumericArg0__15dTagProcessor_cFl = .text:0x800B8A50; // type:function size:0xC setNumericArgs__15dTagProcessor_cFPCll = .text:0x800B8A60; // type:function size:0xDC fn_800B8B40 = .text:0x800B8B40; // type:function size:0x4C fn_800B8B90 = .text:0x800B8B90; // type:function size:0x4C -fn_800B8BE0 = .text:0x800B8BE0; // type:function size:0x34 +execute__15dTagProcessor_cFv = .text:0x800B8BE0; // type:function size:0x34 __sinit_\d_tag_processor_cpp = .text:0x800B8C20; // type:function size:0x654 scope:local __ct__14dTimeAreaMgr_cFv = .text:0x800B9280; // type:function size:0xF0 __dt__19dTimeAreaMgrProcA_cFv = .text:0x800B9370; // type:function size:0x58 @@ -6547,27 +6547,27 @@ fn_8010EC10 = .text:0x8010EC10; // type:function size:0x134 fn_8010ED50 = .text:0x8010ED50; // type:function size:0x110 fn_8010EE60 = .text:0x8010EE60; // type:function size:0xE8 fn_8010EF50 = .text:0x8010EF50; // type:function size:0x3C -fn_8010EF90 = .text:0x8010EF90; // type:function size:0xAC -fn_8010F040 = .text:0x8010F040; // type:function size:0x50 -fn_8010F090 = .text:0x8010F090; // type:function size:0x58 -fn_8010F0F0 = .text:0x8010F0F0; // type:function size:0x24 -fn_8010F120 = .text:0x8010F120; // type:function size:0x28 -fn_8010F150 = .text:0x8010F150; // type:function size:0x4 -fn_8010F160 = .text:0x8010F160; // type:function size:0x8 -fn_8010F170 = .text:0x8010F170; // type:function size:0x74 -fn_8010F1F0 = .text:0x8010F1F0; // type:function size:0xCC -fn_8010F2C0 = .text:0x8010F2C0; // type:function size:0x5C -fn_8010F320 = .text:0x8010F320; // type:function size:0x8 -fn_8010F330 = .text:0x8010F330; // type:function size:0x6C -canPressAToClearCalibrationScreenMaybe = .text:0x8010F3A0; // type:function size:0x88 -fn_8010F430 = .text:0x8010F430; // type:function size:0x58 -fn_8010F490 = .text:0x8010F490; // type:function size:0x134 -fn_8010F5D0 = .text:0x8010F5D0; // type:function size:0x188 -setTextboxStateMaybe = .text:0x8010F760; // type:function size:0x10 -fn_8010F770 = .text:0x8010F770; // type:function size:0x8 -fn_8010F780 = .text:0x8010F780; // type:function size:0x8 -fn_8010F790 = .text:0x8010F790; // type:function size:0x8 -fn_8010F7A0 = .text:0x8010F7A0; // type:function size:0x78 +build__16dLytCommonABtn_cFPQ23d2d10ResAccIf_c = .text:0x8010EF90; // type:function size:0xAC +remove__16dLytCommonABtn_cFv = .text:0x8010F040; // type:function size:0x50 +execute__16dLytCommonABtn_cFv = .text:0x8010F090; // type:function size:0x58 +requestIn__16dLytCommonABtn_cFv = .text:0x8010F0F0; // type:function size:0x24 +requestOut__16dLytCommonABtn_cFb = .text:0x8010F120; // type:function size:0x28 +resetToInvisble__16dLytCommonABtn_cFv = .text:0x8010F150; // type:function size:0x4 +setSoundVariant__16dLytCommonABtn_cFQ216dLytCommonABtn_c12SoundVariant = .text:0x8010F160; // type:function size:0x8 +runExecuteFunc__16dLytCommonABtn_cFv = .text:0x8010F170; // type:function size:0x74 +gotoStateInvisible__16dLytCommonABtn_cFv = .text:0x8010F1F0; // type:function size:0xCC +executeStateInvisible__16dLytCommonABtn_cFv = .text:0x8010F2C0; // type:function size:0x5C +gotoStateIn__16dLytCommonABtn_cFv = .text:0x8010F320; // type:function size:0x8 +executeStateIn__16dLytCommonABtn_cFv = .text:0x8010F330; // type:function size:0x6C +goToStateVisible__16dLytCommonABtn_cFv = .text:0x8010F3A0; // type:function size:0x88 +executeStateVisible__16dLytCommonABtn_cFv = .text:0x8010F430; // type:function size:0x58 +goToStateDecideOut__16dLytCommonABtn_cFv = .text:0x8010F490; // type:function size:0x134 +executeStateDecideOut__16dLytCommonABtn_cFv = .text:0x8010F5D0; // type:function size:0x188 +setState__16dLytCommonABtn_cFQ216dLytCommonABtn_c9ABtnState = .text:0x8010F760; // type:function size:0x10 +getName__16dLytCommonABtn_cCFv = .text:0x8010F770; // type:function size:0x8 +getLyt__16dLytCommonABtn_cFv = .text:0x8010F780; // type:function size:0x8 +getPane__16dLytCommonABtn_cFv = .text:0x8010F790; // type:function size:0x8 +__dt__16dLytCommonABtn_cFv = .text:0x8010F7A0; // type:function size:0x78 build__29dLytCommonIconMaterialPart1_cFPQ23d2d10ResAccIf_c = .text:0x8010F820; // type:function size:0x100 remove__29dLytCommonIconMaterialPart1_cFv = .text:0x8010F920; // type:function size:0x58 execute__29dLytCommonIconMaterialPart1_cFv = .text:0x8010F980; // type:function size:0x9C @@ -6659,7 +6659,7 @@ setNumber__25dLytCommonIconItemPart1_cFl = .text:0x80111DF0; // type:function si setNumberColor__25dLytCommonIconItemPart1_cFUc = .text:0x80111E80; // type:function size:0xB8 setOn__25dLytCommonIconItemPart1_cFv = .text:0x80111F40; // type:function size:0x2C setOff__25dLytCommonIconItemPart1_cFv = .text:0x80111F70; // type:function size:0x2C -startDecide__25dLytCommonIconItemPart1_cFv = .text:0x80111FA0; // type:function size:0x60 +startConfirm__25dLytCommonIconItemPart1_cFv = .text:0x80111FA0; // type:function size:0x60 isDoneDeciding__25dLytCommonIconItemPart1_cCFv = .text:0x80112000; // type:function size:0x8 isCursorOver__25dLytCommonIconItemPart1_cCFv = .text:0x80112010; // type:function size:0x7C setVisible__25dLytCommonIconItemPart1_cFb = .text:0x80112090; // type:function size:0x34 @@ -6681,7 +6681,7 @@ setNumber__25dLytCommonIconItemPart2_cFl = .text:0x80112AC0; // type:function si setNumberColor__25dLytCommonIconItemPart2_cFUc = .text:0x80112B50; // type:function size:0xB8 setOn__25dLytCommonIconItemPart2_cFv = .text:0x80112C10; // type:function size:0x2C setOff__25dLytCommonIconItemPart2_cFv = .text:0x80112C40; // type:function size:0x2C -startDecide__25dLytCommonIconItemPart2_cFv = .text:0x80112C70; // type:function size:0x60 +startConfirm__25dLytCommonIconItemPart2_cFv = .text:0x80112C70; // type:function size:0x60 isDoneDeciding__25dLytCommonIconItemPart2_cCFv = .text:0x80112CD0; // type:function size:0x8 isCursorOver__25dLytCommonIconItemPart2_cCFv = .text:0x80112CE0; // type:function size:0x7C setVisible__25dLytCommonIconItemPart2_cFb = .text:0x80112D60; // type:function size:0x34 @@ -6724,7 +6724,7 @@ setNumber__20dLytCommonIconItem_cFl = .text:0x80113760; // type:function size:0x setNumberColor__20dLytCommonIconItem_cFUc = .text:0x80113790; // type:function size:0x2C setOn__20dLytCommonIconItem_cFv = .text:0x801137C0; // type:function size:0x2C setOff__20dLytCommonIconItem_cFv = .text:0x801137F0; // type:function size:0x2C -startDecide__20dLytCommonIconItem_cFv = .text:0x80113820; // type:function size:0x2C +startConfirm__20dLytCommonIconItem_cFv = .text:0x80113820; // type:function size:0x2C isDoneDeciding__20dLytCommonIconItem_cCFv = .text:0x80113850; // type:function size:0x68 isCursorOver__20dLytCommonIconItem_cCFv = .text:0x801138C0; // type:function size:0x88 setVisible__20dLytCommonIconItem_cFb = .text:0x80113950; // type:function size:0x3C @@ -6741,310 +6741,310 @@ draw__20LytBirdButtonRelatedFv = .text:0x80114280; // type:function size:0x44 fn_801142D0 = .text:0x801142D0; // type:function size:0x168 fn_80114440 = .text:0x80114440; // type:function size:0x248 fn_80114690 = .text:0x80114690; // type:function size:0x25C -fn_801148F0 = .text:0x801148F0; // type:function size:0x24 -fn_80114920 = .text:0x80114920; // type:function size:0x40 -LytMsgWindow__init = .text:0x80114960; // type:function size:0x228 -fn_80114B90 = .text:0x80114B90; // type:function size:0x10 -fn_80114BA0 = .text:0x80114BA0; // type:function size:0xB8 -LytMsgWindow__stateInvisibleEnter = .text:0x80114C60; // type:function size:0x4 -LytMsgWindow__stateInvisibleUpdate = .text:0x80114C70; // type:function size:0x6A8 -fn_80115320 = .text:0x80115320; // type:function size:0x58 -fn_80115380 = .text:0x80115380; // type:function size:0x58 -fn_801153E0 = .text:0x801153E0; // type:function size:0x6C -fn_80115450 = .text:0x80115450; // type:function size:0xA0 -fn_801154F0 = .text:0x801154F0; // type:function size:0xA4 -fn_801155A0 = .text:0x801155A0; // type:function size:0x58 -fn_80115600 = .text:0x80115600; // type:function size:0x6C -fn_80115670 = .text:0x80115670; // type:function size:0xA0 -fn_80115710 = .text:0x80115710; // type:function size:0xA4 -fn_801157C0 = .text:0x801157C0; // type:function size:0x8 -LytMsgWindow__stateInvisibleLeave = .text:0x801157D0; // type:function size:0x4 -LytMsgWindow__stateInEnter = .text:0x801157E0; // type:function size:0x12C -LytMsgWindow__stateInUpdate = .text:0x80115910; // type:function size:0x60 -LytMsgWindow__stateInLeave = .text:0x80115970; // type:function size:0x4 -LytMsgWindow__stateOutputTextEnter = .text:0x80115980; // type:function size:0x18 -LytMsgWindow__stateOutputTextUpdate = .text:0x801159A0; // type:function size:0x2A0 -fn_80115C40 = .text:0x80115C40; // type:function size:0x8 -LytMsgWindow__stateOutputTextLeave = .text:0x80115C50; // type:function size:0x4 -stateChangePageNonFinalTextboxEnter = .text:0x80115C60; // type:function size:0x30 -stateChangePageNonFinalTextboxUpdate = .text:0x80115C90; // type:function size:0x140 -LytMsgWindow__stateChangePageNonFinalTextboxLeave = .text:0x80115DD0; // type:function size:0x4 -LytMsgWindow__stateWaitKeyChangePage1Enter = .text:0x80115DE0; // type:function size:0x4 -LytMsgWindow__stateWaitKeyChangePage1Update = .text:0x80115DF0; // type:function size:0xB4 -fn_80115EB0 = .text:0x80115EB0; // type:function size:0x8 -LytMsgWindow__stateWaitKeyChangePage1Leave = .text:0x80115EC0; // type:function size:0x4 -stateChangePageFinalTextboxEnter = .text:0x80115ED0; // type:function size:0x40 -stateChangePageFinalTextboxUpdate = .text:0x80115F10; // type:function size:0x258 -LytMsgWindow__stateChangePageFinalTextboxLeave = .text:0x80116170; // type:function size:0x4 -LytMsgWindow__stateWaitKeyMsgEnd1Enter = .text:0x80116180; // type:function size:0x4 -LytMsgWindow__stateWaitKeyMsgEnd1Update = .text:0x80116190; // type:function size:0x1E0 -LytMsgWindow__stateWaitKeyMsgEnd1Leave = .text:0x80116370; // type:function size:0x4 -LytMsgWindow__stateWaitKeyMsgEnd2Enter = .text:0x80116380; // type:function size:0x4 -LytMsgWindow__stateWaitKeyMsgEnd2Update = .text:0x80116390; // type:function size:0x60 -fn_801163F0 = .text:0x801163F0; // type:function size:0x8 -LytMsgWindow__stateWaitKeyMsgEnd2Leave = .text:0x80116400; // type:function size:0x4 -LytMsgWindow__stateWaitKeySelectQuestionEnter = .text:0x80116410; // type:function size:0xD0 -LytMsgWindow__stateWaitKeySelectQuestionUpdate = .text:0x801164E0; // type:function size:0x15C -fn_80116640 = .text:0x80116640; // type:function size:0x10 -LytMsgWindow__stateWaitKeySelectQuestionLeave = .text:0x80116650; // type:function size:0x4 -LytMsgWindow__stateMapOpenEnter = .text:0x80116660; // type:function size:0x4 -LytMsgWindow__stateMapOpenUpdate = .text:0x80116670; // type:function size:0x7C -LytMsgWindow__stateMapOpenLeave = .text:0x801166F0; // type:function size:0x4 -LytMsgWindow__stateWaitKeyMapCloseEnter = .text:0x80116700; // type:function size:0x4 -LytMsgWindow__stateWaitKeyMapCloseUpdate = .text:0x80116710; // type:function size:0x78 -LytMsgWindow__stateWaitKeyMapCloseLeave = .text:0x80116790; // type:function size:0x4 -LytMsgWindow__stateMapCloseEnter = .text:0x801167A0; // type:function size:0x4 -LytMsgWindow__stateMapCloseUpdate = .text:0x801167B0; // type:function size:0x6C -LytMsgWindow__stateMapCloseLeave = .text:0x80116820; // type:function size:0x4 -LytMsgWindow__stateOutEnter = .text:0x80116830; // type:function size:0x2C -LytMsgWindow__stateOutUpdate = .text:0x80116860; // type:function size:0x90 -LytMsgWindow__stateOutLeave = .text:0x801168F0; // type:function size:0x4 -LytMsgWindow__stateExplainInEnter = .text:0x80116900; // type:function size:0x1C -LytMsgWindow__stateExplainInUpdate = .text:0x80116920; // type:function size:0x88 -LytMsgWindow__stateExplainInLeave = .text:0x801169B0; // type:function size:0x4 -LytMsgWindow__stateExplainVisibleEnter = .text:0x801169C0; // type:function size:0x4 -LytMsgWindow__stateExplainVisibleUpdate = .text:0x801169D0; // type:function size:0x80 -LytMsgWindow__stateExplainVisibleLeave = .text:0x80116A50; // type:function size:0x4 -LytMsgWindow__stateExplainOutEnter = .text:0x80116A60; // type:function size:0x14 -LytMsgWindow__stateExplainOutUpdate = .text:0x80116A80; // type:function size:0x74 -LytMsgWindow__stateExplainOutLeave = .text:0x80116B00; // type:function size:0x4 -LytMsgWindow__stateDemoInEnter = .text:0x80116B10; // type:function size:0x1C -LytMsgWindow__stateDemoInUpdate = .text:0x80116B30; // type:function size:0x60 -LytMsgWindow__stateDemoInLeave = .text:0x80116B90; // type:function size:0x4 -LytMsgWindow__stateDemoVisibleEnter = .text:0x80116BA0; // type:function size:0x14 -LytMsgWindow__stateDemoVisibleUpdate = .text:0x80116BC0; // type:function size:0x5C -LytMsgWindow__stateDemoVisibleLeave = .text:0x80116C20; // type:function size:0x4 -LytMsgWindow__stateDemoOutEnter = .text:0x80116C30; // type:function size:0x14 -LytMsgWindow__stateDemoOutUpdate = .text:0x80116C50; // type:function size:0xC4 -LytMsgWindow__stateDemoOutLeave = .text:0x80116D20; // type:function size:0x4 -LytMsgWindow__update = .text:0x80116D30; // type:function size:0x278 -fn_80116FB0 = .text:0x80116FB0; // type:function size:0x10 -fn_80116FC0 = .text:0x80116FC0; // type:function size:0x10 -fn_80116FD0 = .text:0x80116FD0; // type:function size:0xC0 -fn_80117090 = .text:0x80117090; // type:function size:0x1AC -LytMsgWindow__isNotStateInvisible = .text:0x80117240; // type:function size:0x4C -LytMsgWindow__setTextToDisplay = .text:0x80117290; // type:function size:0x24 -fn_801172C0 = .text:0x801172C0; // type:function size:0x50 +__ct__22MsgWindowUnkLocalClassFv = .text:0x801148F0; // type:function size:0x24 +__dt__22MsgWindowUnkLocalClassFv = .text:0x80114920; // type:function size:0x40 +build__15dLytMsgWindow_cFv = .text:0x80114960; // type:function size:0x228 +changeState__84sStateMgr_c<15dLytMsgWindow_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>FRC12sStateIDIf_c = .text:0x80114B90; // type:function size:0x10 +remove__15dLytMsgWindow_cFv = .text:0x80114BA0; // type:function size:0xB8 +initializeState_Invisible__15dLytMsgWindow_cFv = .text:0x80114C60; // type:function size:0x4 +executeState_Invisible__15dLytMsgWindow_cFv = .text:0x80114C70; // type:function size:0x6A8 +__dt__20dLytMsgWindowSubtypeFv = .text:0x80115320; // type:function size:0x58 +__dt__30sFState_c<17dLytAutoCaption_c>Fv = .text:0x80115380; // type:function size:0x58 +__dt__33sFStateFct_c<17dLytAutoCaption_c>Fv = .text:0x801153E0; // type:function size:0x6C +__dt__86sStateMgr_c<17dLytAutoCaption_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x80115450; // type:function size:0xA0 +__dt__56sFStateMgr_c<17dLytAutoCaption_c,20sStateMethodUsr_FI_c>Fv = .text:0x801154F0; // type:function size:0xA4 +__dt__30sFState_c<17dLytAutoExplain_c>Fv = .text:0x801155A0; // type:function size:0x58 +__dt__33sFStateFct_c<17dLytAutoExplain_c>Fv = .text:0x80115600; // type:function size:0x6C +__dt__86sStateMgr_c<17dLytAutoExplain_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x80115670; // type:function size:0xA0 +__dt__56sFStateMgr_c<17dLytAutoExplain_c,20sStateMethodUsr_FI_c>Fv = .text:0x80115710; // type:function size:0xA4 +getTextBox__20dLytMsgWindowSubtypeFv = .text:0x801157C0; // type:function size:0x8 +finalizeState_Invisible__15dLytMsgWindow_cFv = .text:0x801157D0; // type:function size:0x4 +initializeState_In__15dLytMsgWindow_cFv = .text:0x801157E0; // type:function size:0x12C +executeState_In__15dLytMsgWindow_cFv = .text:0x80115910; // type:function size:0x60 +finalizeState_In__15dLytMsgWindow_cFv = .text:0x80115970; // type:function size:0x4 +initializeState_OutputText__15dLytMsgWindow_cFv = .text:0x80115980; // type:function size:0x18 +executeState_OutputText__15dLytMsgWindow_cFv = .text:0x801159A0; // type:function size:0x2A0 +startConfirm__20dLytMsgWindowSubtypeFv = .text:0x80115C40; // type:function size:0x8 +finalizeState_OutputText__15dLytMsgWindow_cFv = .text:0x80115C50; // type:function size:0x4 +initializeState_WaitKeyChangePage0__15dLytMsgWindow_cFv = .text:0x80115C60; // type:function size:0x30 +executeState_WaitKeyChangePage0__15dLytMsgWindow_cFv = .text:0x80115C90; // type:function size:0x140 +finalizeState_WaitKeyChangePage0__15dLytMsgWindow_cFv = .text:0x80115DD0; // type:function size:0x4 +initializeState_WaitKeyChangePage1__15dLytMsgWindow_cFv = .text:0x80115DE0; // type:function size:0x4 +executeState_WaitKeyChangePage1__15dLytMsgWindow_cFv = .text:0x80115DF0; // type:function size:0xB4 +startDecide__20dLytMsgWindowSubtypeFb = .text:0x80115EB0; // type:function size:0x8 +finalizeState_WaitKeyChangePage1__15dLytMsgWindow_cFv = .text:0x80115EC0; // type:function size:0x4 +initializeState_WaitKeyMsgEnd0__15dLytMsgWindow_cFv = .text:0x80115ED0; // type:function size:0x40 +executeState_WaitKeyMsgEnd0__15dLytMsgWindow_cFv = .text:0x80115F10; // type:function size:0x258 +finalizeState_WaitKeyMsgEnd0__15dLytMsgWindow_cFv = .text:0x80116170; // type:function size:0x4 +initializeState_WaitKeyMsgEnd1__15dLytMsgWindow_cFv = .text:0x80116180; // type:function size:0x4 +executeState_WaitKeyMsgEnd1__15dLytMsgWindow_cFv = .text:0x80116190; // type:function size:0x1E0 +finalizeState_WaitKeyMsgEnd1__15dLytMsgWindow_cFv = .text:0x80116370; // type:function size:0x4 +initializeState_WaitKeyMsgEnd2__15dLytMsgWindow_cFv = .text:0x80116380; // type:function size:0x4 +executeState_WaitKeyMsgEnd2__15dLytMsgWindow_cFv = .text:0x80116390; // type:function size:0x60 +isDoneDecide__20dLytMsgWindowSubtypeCFv = .text:0x801163F0; // type:function size:0x8 +finalizeState_WaitKeyMsgEnd2__15dLytMsgWindow_cFv = .text:0x80116400; // type:function size:0x4 +initializeState_WaitKeySelectQuestion__15dLytMsgWindow_cFv = .text:0x80116410; // type:function size:0xD0 +executeState_WaitKeySelectQuestion__15dLytMsgWindow_cFv = .text:0x801164E0; // type:function size:0x15C +getStateID__93sStateMgr_c<24dLytMsgWindowSelectBtn_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x80116640; // type:function size:0x10 +finalizeState_WaitKeySelectQuestion__15dLytMsgWindow_cFv = .text:0x80116650; // type:function size:0x4 +initializeState_MapOpen__15dLytMsgWindow_cFv = .text:0x80116660; // type:function size:0x4 +executeState_MapOpen__15dLytMsgWindow_cFv = .text:0x80116670; // type:function size:0x7C +finalizeState_MapOpen__15dLytMsgWindow_cFv = .text:0x801166F0; // type:function size:0x4 +initializeState_WaitKeyMapClose__15dLytMsgWindow_cFv = .text:0x80116700; // type:function size:0x4 +executeState_WaitKeyMapClose__15dLytMsgWindow_cFv = .text:0x80116710; // type:function size:0x78 +finalizeState_WaitKeyMapClose__15dLytMsgWindow_cFv = .text:0x80116790; // type:function size:0x4 +initializeState_MapClose__15dLytMsgWindow_cFv = .text:0x801167A0; // type:function size:0x4 +executeState_MapClose__15dLytMsgWindow_cFv = .text:0x801167B0; // type:function size:0x6C +finalizeState_MapClose__15dLytMsgWindow_cFv = .text:0x80116820; // type:function size:0x4 +initializeState_Out__15dLytMsgWindow_cFv = .text:0x80116830; // type:function size:0x2C +executeState_Out__15dLytMsgWindow_cFv = .text:0x80116860; // type:function size:0x90 +finalizeState_Out__15dLytMsgWindow_cFv = .text:0x801168F0; // type:function size:0x4 +initializeState_ExplainIn__15dLytMsgWindow_cFv = .text:0x80116900; // type:function size:0x1C +executeState_ExplainIn__15dLytMsgWindow_cFv = .text:0x80116920; // type:function size:0x88 +finalizeState_ExplainIn__15dLytMsgWindow_cFv = .text:0x801169B0; // type:function size:0x4 +initializeState_ExplainVisible__15dLytMsgWindow_cFv = .text:0x801169C0; // type:function size:0x4 +executeState_ExplainVisible__15dLytMsgWindow_cFv = .text:0x801169D0; // type:function size:0x80 +finalizeState_ExplainVisible__15dLytMsgWindow_cFv = .text:0x80116A50; // type:function size:0x4 +initializeState_ExplainOut__15dLytMsgWindow_cFv = .text:0x80116A60; // type:function size:0x14 +executeState_ExplainOut__15dLytMsgWindow_cFv = .text:0x80116A80; // type:function size:0x74 +finalizeState_ExplainOut__15dLytMsgWindow_cFv = .text:0x80116B00; // type:function size:0x4 +initializeState_DemoIn__15dLytMsgWindow_cFv = .text:0x80116B10; // type:function size:0x1C +executeState_DemoIn__15dLytMsgWindow_cFv = .text:0x80116B30; // type:function size:0x60 +finalizeState_DemoIn__15dLytMsgWindow_cFv = .text:0x80116B90; // type:function size:0x4 +initializeState_DemoVisible__15dLytMsgWindow_cFv = .text:0x80116BA0; // type:function size:0x14 +executeState_DemoVisible__15dLytMsgWindow_cFv = .text:0x80116BC0; // type:function size:0x5C +finalizeState_DemoVisible__15dLytMsgWindow_cFv = .text:0x80116C20; // type:function size:0x4 +initializeState_DemoOut__15dLytMsgWindow_cFv = .text:0x80116C30; // type:function size:0x14 +executeState_DemoOut__15dLytMsgWindow_cFv = .text:0x80116C50; // type:function size:0xC4 +finalizeState_DemoOut__15dLytMsgWindow_cFv = .text:0x80116D20; // type:function size:0x4 +execute__15dLytMsgWindow_cFv = .text:0x80116D30; // type:function size:0x278 +getStateID__84sStateMgr_c<15dLytMsgWindow_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x80116FB0; // type:function size:0x10 +executeState__84sStateMgr_c<15dLytMsgWindow_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x80116FC0; // type:function size:0x10 +draw__15dLytMsgWindow_cFv = .text:0x80116FD0; // type:function size:0xC0 +setCurrentLabelName__15dLytMsgWindow_cFPCcb = .text:0x80117090; // type:function size:0x1AC +isVisible__15dLytMsgWindow_cCFv = .text:0x80117240; // type:function size:0x4C +setTextToDisplay__15dLytMsgWindow_cFPCw = .text:0x80117290; // type:function size:0x24 +isOutputtingText__15dLytMsgWindow_cCFv = .text:0x801172C0; // type:function size:0x50 fn_80117310 = .text:0x80117310; // type:function size:0x4C fn_80117360 = .text:0x80117360; // type:function size:0x14 fn_80117380 = .text:0x80117380; // type:function size:0xC -fn_80117390 = .text:0x80117390; // type:function size:0x54 -LytMsgWindow__setCurrentEntrypointName = .text:0x801173F0; // type:function size:0xB4 -LytMsgWindow__setCurrentEventFlowFilename = .text:0x801174B0; // type:function size:0xB4 +fn_80117390__15dLytMsgWindow_cCFb = .text:0x80117390; // type:function size:0x54 +setCurrentEntrypointName__15dLytMsgWindow_cFPCc = .text:0x801173F0; // type:function size:0xB4 +setCurrentFlowFilename__15dLytMsgWindow_cFPCc = .text:0x801174B0; // type:function size:0xB4 LytMsgWindow__setNumericArg0 = .text:0x80117570; // type:function size:0x8 LytMsgWindow__setNumericArgs = .text:0x80117580; // type:function size:0x8 -LytMsgWindow__createSubMsgManager = .text:0x80117590; // type:function size:0x260 -fn_801177F0 = .text:0x801177F0; // type:function size:0x184 -fn_80117980 = .text:0x80117980; // type:function size:0x58 -fn_801179E0 = .text:0x801179E0; // type:function size:0x6C -fn_80117A50 = .text:0x80117A50; // type:function size:0xA0 -fn_80117AF0 = .text:0x80117AF0; // type:function size:0xA4 -fn_80117BA0 = .text:0x80117BA0; // type:function size:0x184 -fn_80117D30 = .text:0x80117D30; // type:function size:0x58 -fn_80117D90 = .text:0x80117D90; // type:function size:0x6C -fn_80117E00 = .text:0x80117E00; // type:function size:0xA0 -fn_80117EA0 = .text:0x80117EA0; // type:function size:0xA4 -LytMsgWindowSword__ctor = .text:0x80117F50; // type:function size:0x1F0 -fn_80118140 = .text:0x80118140; // type:function size:0x58 -fn_801181A0 = .text:0x801181A0; // type:function size:0x6C -fn_80118210 = .text:0x80118210; // type:function size:0xA0 -fn_801182B0 = .text:0x801182B0; // type:function size:0xA4 -fn_80118360 = .text:0x80118360; // type:function size:0x70 -LytMsgWindowSword__setSubtype = .text:0x801183D0; // type:function size:0x8 -LytLinkWindow__ctor = .text:0x801183E0; // type:function size:0x1FC -fn_801185E0 = .text:0x801185E0; // type:function size:0x58 -fn_80118640 = .text:0x80118640; // type:function size:0x6C -fn_801186B0 = .text:0x801186B0; // type:function size:0xA0 -fn_80118750 = .text:0x80118750; // type:function size:0xA4 -fn_80118800 = .text:0x80118800; // type:function size:0x70 -fn_80118870 = .text:0x80118870; // type:function size:0x40 -fn_801188B0 = .text:0x801188B0; // type:function size:0x1FC -fn_80118AB0 = .text:0x80118AB0; // type:function size:0x58 -fn_80118B10 = .text:0x80118B10; // type:function size:0x6C -fn_80118B80 = .text:0x80118B80; // type:function size:0xA0 -fn_80118C20 = .text:0x80118C20; // type:function size:0xA4 -LytMsgWindowDemo__ctor = .text:0x80118CD0; // type:function size:0x1B0 -fn_80118E80 = .text:0x80118E80; // type:function size:0x58 -fn_80118EE0 = .text:0x80118EE0; // type:function size:0x6C -fn_80118F50 = .text:0x80118F50; // type:function size:0xA0 -fn_80118FF0 = .text:0x80118FF0; // type:function size:0xA4 -LytMsgWindowTalk__ctor = .text:0x801190A0; // type:function size:0x1FC -fn_801192A0 = .text:0x801192A0; // type:function size:0x58 -fn_80119300 = .text:0x80119300; // type:function size:0x6C -fn_80119370 = .text:0x80119370; // type:function size:0xA0 -fn_80119410 = .text:0x80119410; // type:function size:0xA4 -fn_801194C0 = .text:0x801194C0; // type:function size:0x40C -LytMsgWindowTalk__dtor = .text:0x801198D0; // type:function size:0x198 -fn_80119A70 = .text:0x80119A70; // type:function size:0x198 -LytMsgWindowSword__dtor = .text:0x80119C10; // type:function size:0x198 -fn_80119DB0 = .text:0x80119DB0; // type:function size:0x170 -fn_80119F20 = .text:0x80119F20; // type:function size:0x170 -fn_8011A090 = .text:0x8011A090; // type:function size:0x198 -fn_8011A230 = .text:0x8011A230; // type:function size:0x158 -fn_8011A390 = .text:0x8011A390; // type:function size:0x118 -fn_8011A4B0 = .text:0x8011A4B0; // type:function size:0x118 -fn_8011A5D0 = .text:0x8011A5D0; // type:function size:0x1AC -fn_8011A780 = .text:0x8011A780; // type:function size:0x10 -fn_8011A790 = .text:0x8011A790; // type:function size:0x10 -fn_8011A7A0 = .text:0x8011A7A0; // type:function size:0x10 -fn_8011A7B0 = .text:0x8011A7B0; // type:function size:0x10 -fn_8011A7C0 = .text:0x8011A7C0; // type:function size:0x10 -fn_8011A7D0 = .text:0x8011A7D0; // type:function size:0x10 -fn_8011A7E0 = .text:0x8011A7E0; // type:function size:0x10 -fn_8011A7F0 = .text:0x8011A7F0; // type:function size:0x10 -fn_8011A800 = .text:0x8011A800; // type:function size:0x10 -fn_8011A810 = .text:0x8011A810; // type:function size:0x60 -fn_8011A870 = .text:0x8011A870; // type:function size:0xC -fn_8011A880 = .text:0x8011A880; // type:function size:0x60 -fn_8011A8E0 = .text:0x8011A8E0; // type:function size:0xC -fn_8011A8F0 = .text:0x8011A8F0; // type:function size:0x60 -fn_8011A950 = .text:0x8011A950; // type:function size:0xC -fn_8011A960 = .text:0x8011A960; // type:function size:0x60 -fn_8011A9C0 = .text:0x8011A9C0; // type:function size:0xC -fn_8011A9D0 = .text:0x8011A9D0; // type:function size:0x60 -fn_8011AA30 = .text:0x8011AA30; // type:function size:0xC -fn_8011AA40 = .text:0x8011AA40; // type:function size:0x60 -fn_8011AAA0 = .text:0x8011AAA0; // type:function size:0xC -fn_8011AAB0 = .text:0x8011AAB0; // type:function size:0x60 -fn_8011AB10 = .text:0x8011AB10; // type:function size:0xC -fn_8011AB20 = .text:0x8011AB20; // type:function size:0x60 -fn_8011AB80 = .text:0x8011AB80; // type:function size:0xC -fn_8011AB90 = .text:0x8011AB90; // type:function size:0x60 -fn_8011ABF0 = .text:0x8011ABF0; // type:function size:0xC -fn_8011AC00 = .text:0x8011AC00; // type:function size:0x1C -fn_8011AC20 = .text:0x8011AC20; // type:function size:0x1C -fn_8011AC40 = .text:0x8011AC40; // type:function size:0x1C -fn_8011AC60 = .text:0x8011AC60; // type:function size:0x1C -fn_8011AC80 = .text:0x8011AC80; // type:function size:0x1C -fn_8011ACA0 = .text:0x8011ACA0; // type:function size:0x1C -fn_8011ACC0 = .text:0x8011ACC0; // type:function size:0x1C -fn_8011ACE0 = .text:0x8011ACE0; // type:function size:0x1C -fn_8011AD00 = .text:0x8011AD00; // type:function size:0x1C -fn_8011AD20 = .text:0x8011AD20; // type:function size:0x1C -fn_8011AD40 = .text:0x8011AD40; // type:function size:0x1C -fn_8011AD60 = .text:0x8011AD60; // type:function size:0x1C -fn_8011AD80 = .text:0x8011AD80; // type:function size:0x1C -fn_8011ADA0 = .text:0x8011ADA0; // type:function size:0x1C -fn_8011ADC0 = .text:0x8011ADC0; // type:function size:0x1C -fn_8011ADE0 = .text:0x8011ADE0; // type:function size:0x1C -fn_8011AE00 = .text:0x8011AE00; // type:function size:0x1C -fn_8011AE20 = .text:0x8011AE20; // type:function size:0x1C -fn_8011AE40 = .text:0x8011AE40; // type:function size:0x1C -fn_8011AE60 = .text:0x8011AE60; // type:function size:0x1C -fn_8011AE80 = .text:0x8011AE80; // type:function size:0x1C -fn_8011AEA0 = .text:0x8011AEA0; // type:function size:0x1C -fn_8011AEC0 = .text:0x8011AEC0; // type:function size:0x1C -fn_8011AEE0 = .text:0x8011AEE0; // type:function size:0x1C -fn_8011AF00 = .text:0x8011AF00; // type:function size:0x1C -fn_8011AF20 = .text:0x8011AF20; // type:function size:0x1C -fn_8011AF40 = .text:0x8011AF40; // type:function size:0x1C -fn_8011AF60 = .text:0x8011AF60; // type:function size:0x10 -fn_8011AF70 = .text:0x8011AF70; // type:function size:0x10 -fn_8011AF80 = .text:0x8011AF80; // type:function size:0x10 -fn_8011AF90 = .text:0x8011AF90; // type:function size:0x10 -fn_8011AFA0 = .text:0x8011AFA0; // type:function size:0x10 -fn_8011AFB0 = .text:0x8011AFB0; // type:function size:0x10 -fn_8011AFC0 = .text:0x8011AFC0; // type:function size:0x10 -fn_8011AFD0 = .text:0x8011AFD0; // type:function size:0x10 -fn_8011AFE0 = .text:0x8011AFE0; // type:function size:0x10 -fn_8011AFF0 = .text:0x8011AFF0; // type:function size:0x10 -fn_8011B000 = .text:0x8011B000; // type:function size:0x10 -fn_8011B010 = .text:0x8011B010; // type:function size:0x10 -fn_8011B020 = .text:0x8011B020; // type:function size:0x10 -fn_8011B030 = .text:0x8011B030; // type:function size:0x10 -fn_8011B040 = .text:0x8011B040; // type:function size:0x10 -fn_8011B050 = .text:0x8011B050; // type:function size:0x10 -fn_8011B060 = .text:0x8011B060; // type:function size:0x10 -fn_8011B070 = .text:0x8011B070; // type:function size:0x10 -fn_8011B080 = .text:0x8011B080; // type:function size:0x10 -fn_8011B090 = .text:0x8011B090; // type:function size:0x10 -fn_8011B0A0 = .text:0x8011B0A0; // type:function size:0x10 -fn_8011B0B0 = .text:0x8011B0B0; // type:function size:0x10 -fn_8011B0C0 = .text:0x8011B0C0; // type:function size:0x10 -fn_8011B0D0 = .text:0x8011B0D0; // type:function size:0x10 -fn_8011B0E0 = .text:0x8011B0E0; // type:function size:0x10 -fn_8011B0F0 = .text:0x8011B0F0; // type:function size:0x10 -fn_8011B100 = .text:0x8011B100; // type:function size:0x10 -fn_8011B110 = .text:0x8011B110; // type:function size:0x10 -fn_8011B120 = .text:0x8011B120; // type:function size:0x10 -fn_8011B130 = .text:0x8011B130; // type:function size:0x10 -fn_8011B140 = .text:0x8011B140; // type:function size:0x10 -fn_8011B150 = .text:0x8011B150; // type:function size:0x10 -fn_8011B160 = .text:0x8011B160; // type:function size:0x10 -fn_8011B170 = .text:0x8011B170; // type:function size:0x10 -fn_8011B180 = .text:0x8011B180; // type:function size:0x10 -fn_8011B190 = .text:0x8011B190; // type:function size:0x10 -fn_8011B1A0 = .text:0x8011B1A0; // type:function size:0x10 -fn_8011B1B0 = .text:0x8011B1B0; // type:function size:0x10 -fn_8011B1C0 = .text:0x8011B1C0; // type:function size:0x10 -fn_8011B1D0 = .text:0x8011B1D0; // type:function size:0x10 -fn_8011B1E0 = .text:0x8011B1E0; // type:function size:0x10 -fn_8011B1F0 = .text:0x8011B1F0; // type:function size:0x10 -fn_8011B200 = .text:0x8011B200; // type:function size:0x10 -fn_8011B210 = .text:0x8011B210; // type:function size:0x10 -fn_8011B220 = .text:0x8011B220; // type:function size:0x10 -fn_8011B230 = .text:0x8011B230; // type:function size:0x10 -fn_8011B240 = .text:0x8011B240; // type:function size:0x10 -fn_8011B250 = .text:0x8011B250; // type:function size:0x10 -fn_8011B260 = .text:0x8011B260; // type:function size:0x10 -fn_8011B270 = .text:0x8011B270; // type:function size:0x10 -fn_8011B280 = .text:0x8011B280; // type:function size:0x10 -fn_8011B290 = .text:0x8011B290; // type:function size:0x10 -fn_8011B2A0 = .text:0x8011B2A0; // type:function size:0x10 -fn_8011B2B0 = .text:0x8011B2B0; // type:function size:0x10 -fn_8011B2C0 = .text:0x8011B2C0; // type:function size:0x10 -fn_8011B2D0 = .text:0x8011B2D0; // type:function size:0x10 -fn_8011B2E0 = .text:0x8011B2E0; // type:function size:0x10 -fn_8011B2F0 = .text:0x8011B2F0; // type:function size:0x10 -fn_8011B300 = .text:0x8011B300; // type:function size:0x10 -fn_8011B310 = .text:0x8011B310; // type:function size:0x10 -fn_8011B320 = .text:0x8011B320; // type:function size:0x10 -fn_8011B330 = .text:0x8011B330; // type:function size:0x10 -fn_8011B340 = .text:0x8011B340; // type:function size:0x10 -fn_8011B350 = .text:0x8011B350; // type:function size:0x10 -fn_8011B360 = .text:0x8011B360; // type:function size:0x10 -fn_8011B370 = .text:0x8011B370; // type:function size:0x10 -fn_8011B380 = .text:0x8011B380; // type:function size:0x10 -fn_8011B390 = .text:0x8011B390; // type:function size:0x10 -fn_8011B3A0 = .text:0x8011B3A0; // type:function size:0x10 -fn_8011B3B0 = .text:0x8011B3B0; // type:function size:0x10 -fn_8011B3C0 = .text:0x8011B3C0; // type:function size:0x10 -fn_8011B3D0 = .text:0x8011B3D0; // type:function size:0x10 -fn_8011B3E0 = .text:0x8011B3E0; // type:function size:0x30 -fn_8011B410 = .text:0x8011B410; // type:function size:0x30 -fn_8011B440 = .text:0x8011B440; // type:function size:0x30 -fn_8011B470 = .text:0x8011B470; // type:function size:0x30 -fn_8011B4A0 = .text:0x8011B4A0; // type:function size:0x30 -fn_8011B4D0 = .text:0x8011B4D0; // type:function size:0x30 -fn_8011B500 = .text:0x8011B500; // type:function size:0x30 -fn_8011B530 = .text:0x8011B530; // type:function size:0x30 -fn_8011B560 = .text:0x8011B560; // type:function size:0x30 -fn_8011B590 = .text:0x8011B590; // type:function size:0x30 -fn_8011B5C0 = .text:0x8011B5C0; // type:function size:0x30 -fn_8011B5F0 = .text:0x8011B5F0; // type:function size:0x30 -fn_8011B620 = .text:0x8011B620; // type:function size:0x30 -fn_8011B650 = .text:0x8011B650; // type:function size:0x30 -fn_8011B680 = .text:0x8011B680; // type:function size:0x30 -fn_8011B6B0 = .text:0x8011B6B0; // type:function size:0x30 -fn_8011B6E0 = .text:0x8011B6E0; // type:function size:0x30 -fn_8011B710 = .text:0x8011B710; // type:function size:0x30 -fn_8011B740 = .text:0x8011B740; // type:function size:0x30 -fn_8011B770 = .text:0x8011B770; // type:function size:0x30 -fn_8011B7A0 = .text:0x8011B7A0; // type:function size:0x30 -fn_8011B7D0 = .text:0x8011B7D0; // type:function size:0x30 -fn_8011B800 = .text:0x8011B800; // type:function size:0x30 -fn_8011B830 = .text:0x8011B830; // type:function size:0x30 -fn_8011B860 = .text:0x8011B860; // type:function size:0x30 -fn_8011B890 = .text:0x8011B890; // type:function size:0x30 -fn_8011B8C0 = .text:0x8011B8C0; // type:function size:0x30 -fn_8011B8F0 = .text:0x8011B8F0; // type:function size:0x30 -fn_8011B920 = .text:0x8011B920; // type:function size:0x30 -fn_8011B950 = .text:0x8011B950; // type:function size:0x30 -LytMsgWindow__initStates = .text:0x8011B980; // type:function size:0xE58 -LytMsgWindow__dtor = .text:0x8011C7E0; // type:function size:0x58 -fn_8011C840 = .text:0x8011C840; // type:function size:0x88 -fn_8011C8D0 = .text:0x8011C8D0; // type:function size:0x60 -fn_8011C930 = .text:0x8011C930; // type:function size:0x40 +createSubMsgManager__15dLytMsgWindow_cFUc = .text:0x80117590; // type:function size:0x260 +__ct__19dLytMsgWindowWood_cFv = .text:0x801177F0; // type:function size:0x184 +__dt__32sFState_c<19dLytMsgWindowWood_c>Fv = .text:0x80117980; // type:function size:0x58 +__dt__35sFStateFct_c<19dLytMsgWindowWood_c>Fv = .text:0x801179E0; // type:function size:0x6C +__dt__88sStateMgr_c<19dLytMsgWindowWood_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x80117A50; // type:function size:0xA0 +__dt__58sFStateMgr_c<19dLytMsgWindowWood_c,20sStateMethodUsr_FI_c>Fv = .text:0x80117AF0; // type:function size:0xA4 +__ct__20dLytMsgWindowStone_cFv = .text:0x80117BA0; // type:function size:0x184 +__dt__33sFState_c<20dLytMsgWindowStone_c>Fv = .text:0x80117D30; // type:function size:0x58 +__dt__36sFStateFct_c<20dLytMsgWindowStone_c>Fv = .text:0x80117D90; // type:function size:0x6C +__dt__89sStateMgr_c<20dLytMsgWindowStone_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x80117E00; // type:function size:0xA0 +__dt__59sFStateMgr_c<20dLytMsgWindowStone_c,20sStateMethodUsr_FI_c>Fv = .text:0x80117EA0; // type:function size:0xA4 +__ct__20dLytMsgWindowSword_cFv = .text:0x80117F50; // type:function size:0x1F0 +__dt__33sFState_c<20dLytMsgWindowSword_c>Fv = .text:0x80118140; // type:function size:0x58 +__dt__36sFStateFct_c<20dLytMsgWindowSword_c>Fv = .text:0x801181A0; // type:function size:0x6C +__dt__89sStateMgr_c<20dLytMsgWindowSword_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x80118210; // type:function size:0xA0 +__dt__59sFStateMgr_c<20dLytMsgWindowSword_c,20sStateMethodUsr_FI_c>Fv = .text:0x801182B0; // type:function size:0xA4 +__dt__13dLytTextSwordFv = .text:0x80118360; // type:function size:0x70 +setSwordType__20dLytMsgWindowSword_cFQ213dLytTextSword10ESwordType = .text:0x801183D0; // type:function size:0x8 +__ct__19dLytMsgWindowLink_cFv = .text:0x801183E0; // type:function size:0x1FC +__dt__32sFState_c<19dLytMsgWindowLink_c>Fv = .text:0x801185E0; // type:function size:0x58 +__dt__35sFStateFct_c<19dLytMsgWindowLink_c>Fv = .text:0x80118640; // type:function size:0x6C +__dt__88sStateMgr_c<19dLytMsgWindowLink_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x801186B0; // type:function size:0xA0 +__dt__58sFStateMgr_c<19dLytMsgWindowLink_c,20sStateMethodUsr_FI_c>Fv = .text:0x80118750; // type:function size:0xA4 +__dt__13dLytTextLightFv = .text:0x80118800; // type:function size:0x70 +__dt__20MsgWindowBlurRelatedFv = .text:0x80118870; // type:function size:0x40 +__ct__18dLytMsgWindowGet_cFv = .text:0x801188B0; // type:function size:0x1FC +__dt__31sFState_c<18dLytMsgWindowGet_c>Fv = .text:0x80118AB0; // type:function size:0x58 +__dt__34sFStateFct_c<18dLytMsgWindowGet_c>Fv = .text:0x80118B10; // type:function size:0x6C +__dt__87sStateMgr_c<18dLytMsgWindowGet_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x80118B80; // type:function size:0xA0 +__dt__57sFStateMgr_c<18dLytMsgWindowGet_c,20sStateMethodUsr_FI_c>Fv = .text:0x80118C20; // type:function size:0xA4 +__ct__19dLytMsgWindowDemo_cFv = .text:0x80118CD0; // type:function size:0x1B0 +__dt__32sFState_c<19dLytMsgWindowDemo_c>Fv = .text:0x80118E80; // type:function size:0x58 +__dt__35sFStateFct_c<19dLytMsgWindowDemo_c>Fv = .text:0x80118EE0; // type:function size:0x6C +__dt__88sStateMgr_c<19dLytMsgWindowDemo_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x80118F50; // type:function size:0xA0 +__dt__58sFStateMgr_c<19dLytMsgWindowDemo_c,20sStateMethodUsr_FI_c>Fv = .text:0x80118FF0; // type:function size:0xA4 +__ct__19dLytMsgWindowTalk_cFv = .text:0x801190A0; // type:function size:0x1FC +__dt__32sFState_c<19dLytMsgWindowTalk_c>Fv = .text:0x801192A0; // type:function size:0x58 +__dt__35sFStateFct_c<19dLytMsgWindowTalk_c>Fv = .text:0x80119300; // type:function size:0x6C +__dt__88sStateMgr_c<19dLytMsgWindowTalk_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x80119370; // type:function size:0xA0 +__dt__58sFStateMgr_c<19dLytMsgWindowTalk_c,20sStateMethodUsr_FI_c>Fv = .text:0x80119410; // type:function size:0xA4 +removeSubMsgManagers__15dLytMsgWindow_cFv = .text:0x801194C0; // type:function size:0x40C +__dt__19dLytMsgWindowTalk_cFv = .text:0x801198D0; // type:function size:0x198 +__dt__19dLytMsgWindowLink_cFv = .text:0x80119A70; // type:function size:0x198 +__dt__20dLytMsgWindowSword_cFv = .text:0x80119C10; // type:function size:0x198 +__dt__19dLytMsgWindowWood_cFv = .text:0x80119DB0; // type:function size:0x170 +__dt__20dLytMsgWindowStone_cFv = .text:0x80119F20; // type:function size:0x170 +__dt__18dLytMsgWindowGet_cFv = .text:0x8011A090; // type:function size:0x198 +__dt__19dLytMsgWindowDemo_cFv = .text:0x8011A230; // type:function size:0x158 +__dt__17dLytAutoExplain_cFv = .text:0x8011A390; // type:function size:0x118 +__dt__17dLytAutoCaption_cFv = .text:0x8011A4B0; // type:function size:0x118 +fn_8011A5D0__15dLytMsgWindow_cCFv = .text:0x8011A5D0; // type:function size:0x1AC +changeState__86sStateMgr_c<17dLytAutoCaption_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>FRC12sStateIDIf_c = .text:0x8011A780; // type:function size:0x10 +changeState__86sStateMgr_c<17dLytAutoExplain_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>FRC12sStateIDIf_c = .text:0x8011A790; // type:function size:0x10 +changeState__88sStateMgr_c<19dLytMsgWindowDemo_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>FRC12sStateIDIf_c = .text:0x8011A7A0; // type:function size:0x10 +changeState__87sStateMgr_c<18dLytMsgWindowGet_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>FRC12sStateIDIf_c = .text:0x8011A7B0; // type:function size:0x10 +changeState__89sStateMgr_c<20dLytMsgWindowStone_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>FRC12sStateIDIf_c = .text:0x8011A7C0; // type:function size:0x10 +changeState__88sStateMgr_c<19dLytMsgWindowWood_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>FRC12sStateIDIf_c = .text:0x8011A7D0; // type:function size:0x10 +changeState__89sStateMgr_c<20dLytMsgWindowSword_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>FRC12sStateIDIf_c = .text:0x8011A7E0; // type:function size:0x10 +changeState__88sStateMgr_c<19dLytMsgWindowLink_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>FRC12sStateIDIf_c = .text:0x8011A7F0; // type:function size:0x10 +changeState__88sStateMgr_c<19dLytMsgWindowTalk_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>FRC12sStateIDIf_c = .text:0x8011A800; // type:function size:0x10 +build__33sFStateFct_c<17dLytAutoCaption_c>FRC12sStateIDIf_c = .text:0x8011A810; // type:function size:0x60 +dispose__33sFStateFct_c<17dLytAutoCaption_c>FRP10sStateIf_c = .text:0x8011A870; // type:function size:0xC +build__33sFStateFct_c<17dLytAutoExplain_c>FRC12sStateIDIf_c = .text:0x8011A880; // type:function size:0x60 +dispose__33sFStateFct_c<17dLytAutoExplain_c>FRP10sStateIf_c = .text:0x8011A8E0; // type:function size:0xC +build__35sFStateFct_c<19dLytMsgWindowDemo_c>FRC12sStateIDIf_c = .text:0x8011A8F0; // type:function size:0x60 +dispose__35sFStateFct_c<19dLytMsgWindowDemo_c>FRP10sStateIf_c = .text:0x8011A950; // type:function size:0xC +build__34sFStateFct_c<18dLytMsgWindowGet_c>FRC12sStateIDIf_c = .text:0x8011A960; // type:function size:0x60 +dispose__34sFStateFct_c<18dLytMsgWindowGet_c>FRP10sStateIf_c = .text:0x8011A9C0; // type:function size:0xC +build__36sFStateFct_c<20dLytMsgWindowStone_c>FRC12sStateIDIf_c = .text:0x8011A9D0; // type:function size:0x60 +dispose__36sFStateFct_c<20dLytMsgWindowStone_c>FRP10sStateIf_c = .text:0x8011AA30; // type:function size:0xC +build__35sFStateFct_c<19dLytMsgWindowWood_c>FRC12sStateIDIf_c = .text:0x8011AA40; // type:function size:0x60 +dispose__35sFStateFct_c<19dLytMsgWindowWood_c>FRP10sStateIf_c = .text:0x8011AAA0; // type:function size:0xC +build__36sFStateFct_c<20dLytMsgWindowSword_c>FRC12sStateIDIf_c = .text:0x8011AAB0; // type:function size:0x60 +dispose__36sFStateFct_c<20dLytMsgWindowSword_c>FRP10sStateIf_c = .text:0x8011AB10; // type:function size:0xC +build__35sFStateFct_c<19dLytMsgWindowLink_c>FRC12sStateIDIf_c = .text:0x8011AB20; // type:function size:0x60 +dispose__35sFStateFct_c<19dLytMsgWindowLink_c>FRP10sStateIf_c = .text:0x8011AB80; // type:function size:0xC +build__35sFStateFct_c<19dLytMsgWindowTalk_c>FRC12sStateIDIf_c = .text:0x8011AB90; // type:function size:0x60 +dispose__35sFStateFct_c<19dLytMsgWindowTalk_c>FRP10sStateIf_c = .text:0x8011ABF0; // type:function size:0xC +initialize__30sFState_c<17dLytAutoCaption_c>Fv = .text:0x8011AC00; // type:function size:0x1C +execute__30sFState_c<17dLytAutoCaption_c>Fv = .text:0x8011AC20; // type:function size:0x1C +finalize__30sFState_c<17dLytAutoCaption_c>Fv = .text:0x8011AC40; // type:function size:0x1C +initialize__30sFState_c<17dLytAutoExplain_c>Fv = .text:0x8011AC60; // type:function size:0x1C +execute__30sFState_c<17dLytAutoExplain_c>Fv = .text:0x8011AC80; // type:function size:0x1C +finalize__30sFState_c<17dLytAutoExplain_c>Fv = .text:0x8011ACA0; // type:function size:0x1C +initialize__32sFState_c<19dLytMsgWindowDemo_c>Fv = .text:0x8011ACC0; // type:function size:0x1C +execute__32sFState_c<19dLytMsgWindowDemo_c>Fv = .text:0x8011ACE0; // type:function size:0x1C +finalize__32sFState_c<19dLytMsgWindowDemo_c>Fv = .text:0x8011AD00; // type:function size:0x1C +initialize__31sFState_c<18dLytMsgWindowGet_c>Fv = .text:0x8011AD20; // type:function size:0x1C +execute__31sFState_c<18dLytMsgWindowGet_c>Fv = .text:0x8011AD40; // type:function size:0x1C +finalize__31sFState_c<18dLytMsgWindowGet_c>Fv = .text:0x8011AD60; // type:function size:0x1C +initialize__33sFState_c<20dLytMsgWindowStone_c>Fv = .text:0x8011AD80; // type:function size:0x1C +execute__33sFState_c<20dLytMsgWindowStone_c>Fv = .text:0x8011ADA0; // type:function size:0x1C +finalize__33sFState_c<20dLytMsgWindowStone_c>Fv = .text:0x8011ADC0; // type:function size:0x1C +initialize__32sFState_c<19dLytMsgWindowWood_c>Fv = .text:0x8011ADE0; // type:function size:0x1C +execute__32sFState_c<19dLytMsgWindowWood_c>Fv = .text:0x8011AE00; // type:function size:0x1C +finalize__32sFState_c<19dLytMsgWindowWood_c>Fv = .text:0x8011AE20; // type:function size:0x1C +initialize__33sFState_c<20dLytMsgWindowSword_c>Fv = .text:0x8011AE40; // type:function size:0x1C +execute__33sFState_c<20dLytMsgWindowSword_c>Fv = .text:0x8011AE60; // type:function size:0x1C +finalize__33sFState_c<20dLytMsgWindowSword_c>Fv = .text:0x8011AE80; // type:function size:0x1C +initialize__32sFState_c<19dLytMsgWindowLink_c>Fv = .text:0x8011AEA0; // type:function size:0x1C +execute__32sFState_c<19dLytMsgWindowLink_c>Fv = .text:0x8011AEC0; // type:function size:0x1C +finalize__32sFState_c<19dLytMsgWindowLink_c>Fv = .text:0x8011AEE0; // type:function size:0x1C +initialize__32sFState_c<19dLytMsgWindowTalk_c>Fv = .text:0x8011AF00; // type:function size:0x1C +execute__32sFState_c<19dLytMsgWindowTalk_c>Fv = .text:0x8011AF20; // type:function size:0x1C +finalize__32sFState_c<19dLytMsgWindowTalk_c>Fv = .text:0x8011AF40; // type:function size:0x1C +initializeState__86sStateMgr_c<17dLytAutoCaption_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x8011AF60; // type:function size:0x10 +executeState__86sStateMgr_c<17dLytAutoCaption_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x8011AF70; // type:function size:0x10 +finalizeState__86sStateMgr_c<17dLytAutoCaption_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x8011AF80; // type:function size:0x10 +refreshState__86sStateMgr_c<17dLytAutoCaption_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x8011AF90; // type:function size:0x10 +getState__86sStateMgr_c<17dLytAutoCaption_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x8011AFA0; // type:function size:0x10 +getNewStateID__86sStateMgr_c<17dLytAutoCaption_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x8011AFB0; // type:function size:0x10 +getStateID__86sStateMgr_c<17dLytAutoCaption_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x8011AFC0; // type:function size:0x10 +getOldStateID__86sStateMgr_c<17dLytAutoCaption_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x8011AFD0; // type:function size:0x10 +initializeState__86sStateMgr_c<17dLytAutoExplain_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x8011AFE0; // type:function size:0x10 +executeState__86sStateMgr_c<17dLytAutoExplain_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x8011AFF0; // type:function size:0x10 +finalizeState__86sStateMgr_c<17dLytAutoExplain_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x8011B000; // type:function size:0x10 +refreshState__86sStateMgr_c<17dLytAutoExplain_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x8011B010; // type:function size:0x10 +getState__86sStateMgr_c<17dLytAutoExplain_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x8011B020; // type:function size:0x10 +getNewStateID__86sStateMgr_c<17dLytAutoExplain_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x8011B030; // type:function size:0x10 +getStateID__86sStateMgr_c<17dLytAutoExplain_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x8011B040; // type:function size:0x10 +getOldStateID__86sStateMgr_c<17dLytAutoExplain_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x8011B050; // type:function size:0x10 +initializeState__88sStateMgr_c<19dLytMsgWindowDemo_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x8011B060; // type:function size:0x10 +executeState__88sStateMgr_c<19dLytMsgWindowDemo_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x8011B070; // type:function size:0x10 +finalizeState__88sStateMgr_c<19dLytMsgWindowDemo_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x8011B080; // type:function size:0x10 +refreshState__88sStateMgr_c<19dLytMsgWindowDemo_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x8011B090; // type:function size:0x10 +getState__88sStateMgr_c<19dLytMsgWindowDemo_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x8011B0A0; // type:function size:0x10 +getNewStateID__88sStateMgr_c<19dLytMsgWindowDemo_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x8011B0B0; // type:function size:0x10 +getStateID__88sStateMgr_c<19dLytMsgWindowDemo_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x8011B0C0; // type:function size:0x10 +getOldStateID__88sStateMgr_c<19dLytMsgWindowDemo_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x8011B0D0; // type:function size:0x10 +initializeState__87sStateMgr_c<18dLytMsgWindowGet_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x8011B0E0; // type:function size:0x10 +executeState__87sStateMgr_c<18dLytMsgWindowGet_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x8011B0F0; // type:function size:0x10 +finalizeState__87sStateMgr_c<18dLytMsgWindowGet_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x8011B100; // type:function size:0x10 +refreshState__87sStateMgr_c<18dLytMsgWindowGet_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x8011B110; // type:function size:0x10 +getState__87sStateMgr_c<18dLytMsgWindowGet_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x8011B120; // type:function size:0x10 +getNewStateID__87sStateMgr_c<18dLytMsgWindowGet_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x8011B130; // type:function size:0x10 +getStateID__87sStateMgr_c<18dLytMsgWindowGet_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x8011B140; // type:function size:0x10 +getOldStateID__87sStateMgr_c<18dLytMsgWindowGet_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x8011B150; // type:function size:0x10 +initializeState__89sStateMgr_c<20dLytMsgWindowStone_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x8011B160; // type:function size:0x10 +executeState__89sStateMgr_c<20dLytMsgWindowStone_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x8011B170; // type:function size:0x10 +finalizeState__89sStateMgr_c<20dLytMsgWindowStone_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x8011B180; // type:function size:0x10 +refreshState__89sStateMgr_c<20dLytMsgWindowStone_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x8011B190; // type:function size:0x10 +getState__89sStateMgr_c<20dLytMsgWindowStone_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x8011B1A0; // type:function size:0x10 +getNewStateID__89sStateMgr_c<20dLytMsgWindowStone_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x8011B1B0; // type:function size:0x10 +getStateID__89sStateMgr_c<20dLytMsgWindowStone_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x8011B1C0; // type:function size:0x10 +getOldStateID__89sStateMgr_c<20dLytMsgWindowStone_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x8011B1D0; // type:function size:0x10 +initializeState__88sStateMgr_c<19dLytMsgWindowWood_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x8011B1E0; // type:function size:0x10 +executeState__88sStateMgr_c<19dLytMsgWindowWood_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x8011B1F0; // type:function size:0x10 +finalizeState__88sStateMgr_c<19dLytMsgWindowWood_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x8011B200; // type:function size:0x10 +refreshState__88sStateMgr_c<19dLytMsgWindowWood_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x8011B210; // type:function size:0x10 +getState__88sStateMgr_c<19dLytMsgWindowWood_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x8011B220; // type:function size:0x10 +getNewStateID__88sStateMgr_c<19dLytMsgWindowWood_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x8011B230; // type:function size:0x10 +getStateID__88sStateMgr_c<19dLytMsgWindowWood_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x8011B240; // type:function size:0x10 +getOldStateID__88sStateMgr_c<19dLytMsgWindowWood_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x8011B250; // type:function size:0x10 +initializeState__89sStateMgr_c<20dLytMsgWindowSword_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x8011B260; // type:function size:0x10 +executeState__89sStateMgr_c<20dLytMsgWindowSword_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x8011B270; // type:function size:0x10 +finalizeState__89sStateMgr_c<20dLytMsgWindowSword_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x8011B280; // type:function size:0x10 +refreshState__89sStateMgr_c<20dLytMsgWindowSword_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x8011B290; // type:function size:0x10 +getState__89sStateMgr_c<20dLytMsgWindowSword_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x8011B2A0; // type:function size:0x10 +getNewStateID__89sStateMgr_c<20dLytMsgWindowSword_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x8011B2B0; // type:function size:0x10 +getStateID__89sStateMgr_c<20dLytMsgWindowSword_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x8011B2C0; // type:function size:0x10 +getOldStateID__89sStateMgr_c<20dLytMsgWindowSword_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x8011B2D0; // type:function size:0x10 +initializeState__88sStateMgr_c<19dLytMsgWindowLink_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x8011B2E0; // type:function size:0x10 +executeState__88sStateMgr_c<19dLytMsgWindowLink_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x8011B2F0; // type:function size:0x10 +finalizeState__88sStateMgr_c<19dLytMsgWindowLink_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x8011B300; // type:function size:0x10 +refreshState__88sStateMgr_c<19dLytMsgWindowLink_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x8011B310; // type:function size:0x10 +getState__88sStateMgr_c<19dLytMsgWindowLink_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x8011B320; // type:function size:0x10 +getNewStateID__88sStateMgr_c<19dLytMsgWindowLink_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x8011B330; // type:function size:0x10 +getStateID__88sStateMgr_c<19dLytMsgWindowLink_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x8011B340; // type:function size:0x10 +getOldStateID__88sStateMgr_c<19dLytMsgWindowLink_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x8011B350; // type:function size:0x10 +initializeState__88sStateMgr_c<19dLytMsgWindowTalk_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x8011B360; // type:function size:0x10 +executeState__88sStateMgr_c<19dLytMsgWindowTalk_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x8011B370; // type:function size:0x10 +finalizeState__88sStateMgr_c<19dLytMsgWindowTalk_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x8011B380; // type:function size:0x10 +refreshState__88sStateMgr_c<19dLytMsgWindowTalk_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x8011B390; // type:function size:0x10 +getState__88sStateMgr_c<19dLytMsgWindowTalk_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x8011B3A0; // type:function size:0x10 +getNewStateID__88sStateMgr_c<19dLytMsgWindowTalk_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x8011B3B0; // type:function size:0x10 +getStateID__88sStateMgr_c<19dLytMsgWindowTalk_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x8011B3C0; // type:function size:0x10 +getOldStateID__88sStateMgr_c<19dLytMsgWindowTalk_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x8011B3D0; // type:function size:0x10 +finalizeState__30sFStateID_c<15dLytMsgWindow_c>CFR15dLytMsgWindow_c = .text:0x8011B3E0; // type:function size:0x30 +executeState__30sFStateID_c<15dLytMsgWindow_c>CFR15dLytMsgWindow_c = .text:0x8011B410; // type:function size:0x30 +initializeState__30sFStateID_c<15dLytMsgWindow_c>CFR15dLytMsgWindow_c = .text:0x8011B440; // type:function size:0x30 +finalizeState__34sFStateID_c<19dLytMsgWindowTalk_c>CFR19dLytMsgWindowTalk_c = .text:0x8011B470; // type:function size:0x30 +executeState__34sFStateID_c<19dLytMsgWindowTalk_c>CFR19dLytMsgWindowTalk_c = .text:0x8011B4A0; // type:function size:0x30 +initializeState__34sFStateID_c<19dLytMsgWindowTalk_c>CFR19dLytMsgWindowTalk_c = .text:0x8011B4D0; // type:function size:0x30 +finalizeState__34sFStateID_c<19dLytMsgWindowLink_c>CFR19dLytMsgWindowLink_c = .text:0x8011B500; // type:function size:0x30 +executeState__34sFStateID_c<19dLytMsgWindowLink_c>CFR19dLytMsgWindowLink_c = .text:0x8011B530; // type:function size:0x30 +initializeState__34sFStateID_c<19dLytMsgWindowLink_c>CFR19dLytMsgWindowLink_c = .text:0x8011B560; // type:function size:0x30 +finalizeState__35sFStateID_c<20dLytMsgWindowSword_c>CFR20dLytMsgWindowSword_c = .text:0x8011B590; // type:function size:0x30 +executeState__35sFStateID_c<20dLytMsgWindowSword_c>CFR20dLytMsgWindowSword_c = .text:0x8011B5C0; // type:function size:0x30 +initializeState__35sFStateID_c<20dLytMsgWindowSword_c>CFR20dLytMsgWindowSword_c = .text:0x8011B5F0; // type:function size:0x30 +finalizeState__34sFStateID_c<19dLytMsgWindowWood_c>CFR19dLytMsgWindowWood_c = .text:0x8011B620; // type:function size:0x30 +executeState__34sFStateID_c<19dLytMsgWindowWood_c>CFR19dLytMsgWindowWood_c = .text:0x8011B650; // type:function size:0x30 +initializeState__34sFStateID_c<19dLytMsgWindowWood_c>CFR19dLytMsgWindowWood_c = .text:0x8011B680; // type:function size:0x30 +finalizeState__35sFStateID_c<20dLytMsgWindowStone_c>CFR20dLytMsgWindowStone_c = .text:0x8011B6B0; // type:function size:0x30 +executeState__35sFStateID_c<20dLytMsgWindowStone_c>CFR20dLytMsgWindowStone_c = .text:0x8011B6E0; // type:function size:0x30 +initializeState__35sFStateID_c<20dLytMsgWindowStone_c>CFR20dLytMsgWindowStone_c = .text:0x8011B710; // type:function size:0x30 +finalizeState__33sFStateID_c<18dLytMsgWindowGet_c>CFR18dLytMsgWindowGet_c = .text:0x8011B740; // type:function size:0x30 +executeState__33sFStateID_c<18dLytMsgWindowGet_c>CFR18dLytMsgWindowGet_c = .text:0x8011B770; // type:function size:0x30 +initializeState__33sFStateID_c<18dLytMsgWindowGet_c>CFR18dLytMsgWindowGet_c = .text:0x8011B7A0; // type:function size:0x30 +finalizeState__34sFStateID_c<19dLytMsgWindowDemo_c>CFR19dLytMsgWindowDemo_c = .text:0x8011B7D0; // type:function size:0x30 +executeState__34sFStateID_c<19dLytMsgWindowDemo_c>CFR19dLytMsgWindowDemo_c = .text:0x8011B800; // type:function size:0x30 +initializeState__34sFStateID_c<19dLytMsgWindowDemo_c>CFR19dLytMsgWindowDemo_c = .text:0x8011B830; // type:function size:0x30 +finalizeState__32sFStateID_c<17dLytAutoExplain_c>CFR17dLytAutoExplain_c = .text:0x8011B860; // type:function size:0x30 +executeState__32sFStateID_c<17dLytAutoExplain_c>CFR17dLytAutoExplain_c = .text:0x8011B890; // type:function size:0x30 +initializeState__32sFStateID_c<17dLytAutoExplain_c>CFR17dLytAutoExplain_c = .text:0x8011B8C0; // type:function size:0x30 +finalizeState__32sFStateID_c<17dLytAutoCaption_c>CFR17dLytAutoCaption_c = .text:0x8011B8F0; // type:function size:0x30 +executeState__32sFStateID_c<17dLytAutoCaption_c>CFR17dLytAutoCaption_c = .text:0x8011B920; // type:function size:0x30 +initializeState__32sFStateID_c<17dLytAutoCaption_c>CFR17dLytAutoCaption_c = .text:0x8011B950; // type:function size:0x30 +__sinit_\d_lyt_msg_window_cpp = .text:0x8011B980; // type:function size:0xE58 scope:local +__dt__30sFStateID_c<15dLytMsgWindow_c>Fv = .text:0x8011C7E0; // type:function size:0x58 +isSameName__30sFStateID_c<15dLytMsgWindow_c>CFPCc = .text:0x8011C840; // type:function size:0x88 +__ct__15SelectBtnHelperFv = .text:0x8011C8D0; // type:function size:0x60 +__dt__15SelectBtnHelperFv = .text:0x8011C930; // type:function size:0x40 fn_8011C970 = .text:0x8011C970; // type:function size:0x6C fn_8011C9E0 = .text:0x8011C9E0; // type:function size:0x4 fn_8011C9F0 = .text:0x8011C9F0; // type:function size:0xCC @@ -7056,285 +7056,285 @@ fn_8011D760 = .text:0x8011D760; // type:function size:0x37C fn_8011DAE0 = .text:0x8011DAE0; // type:function size:0x5E0 fn_8011E0C0 = .text:0x8011E0C0; // type:function size:0x50 fn_8011E110 = .text:0x8011E110; // type:function size:0x38 -fn_8011E150 = .text:0x8011E150; // type:function size:0x4 -fn_8011E160 = .text:0x8011E160; // type:function size:0xA4 -fn_8011E210 = .text:0x8011E210; // type:function size:0x10 -fn_8011E220 = .text:0x8011E220; // type:function size:0x4 -fn_8011E230 = .text:0x8011E230; // type:function size:0x4 -fn_8011E240 = .text:0x8011E240; // type:function size:0xF4 -fn_8011E340 = .text:0x8011E340; // type:function size:0x4 -fn_8011E350 = .text:0x8011E350; // type:function size:0x4 -fn_8011E360 = .text:0x8011E360; // type:function size:0xA8 -fn_8011E410 = .text:0x8011E410; // type:function size:0x4 -fn_8011E420 = .text:0x8011E420; // type:function size:0x4 -fn_8011E430 = .text:0x8011E430; // type:function size:0xC8 -fn_8011E500 = .text:0x8011E500; // type:function size:0x4 -fn_8011E510 = .text:0x8011E510; // type:function size:0x54 -fn_8011E570 = .text:0x8011E570; // type:function size:0x4C -fn_8011E5C0 = .text:0x8011E5C0; // type:function size:0x10 -fn_8011E5D0 = .text:0x8011E5D0; // type:function size:0x138 +initializeState_Wait__29dLytMsgWindowSelectBtnParts_cFv = .text:0x8011E150; // type:function size:0x4 +executeState_Wait__29dLytMsgWindowSelectBtnParts_cFv = .text:0x8011E160; // type:function size:0xA4 +changeState__98sStateMgr_c<29dLytMsgWindowSelectBtnParts_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>FRC12sStateIDIf_c = .text:0x8011E210; // type:function size:0x10 +finalizeState_Wait__29dLytMsgWindowSelectBtnParts_cFv = .text:0x8011E220; // type:function size:0x4 +initializeState_On__29dLytMsgWindowSelectBtnParts_cFv = .text:0x8011E230; // type:function size:0x4 +executeState_On__29dLytMsgWindowSelectBtnParts_cFv = .text:0x8011E240; // type:function size:0xF4 +finalizeState_On__29dLytMsgWindowSelectBtnParts_cFv = .text:0x8011E340; // type:function size:0x4 +initializeState_Select__29dLytMsgWindowSelectBtnParts_cFv = .text:0x8011E350; // type:function size:0x4 +executeState_Select__29dLytMsgWindowSelectBtnParts_cFv = .text:0x8011E360; // type:function size:0xA8 +finalizeState_Select__29dLytMsgWindowSelectBtnParts_cFv = .text:0x8011E410; // type:function size:0x4 +initializeState_Off__29dLytMsgWindowSelectBtnParts_cFv = .text:0x8011E420; // type:function size:0x4 +executeState_Off__29dLytMsgWindowSelectBtnParts_cFv = .text:0x8011E430; // type:function size:0xC8 +finalizeState_Off__29dLytMsgWindowSelectBtnParts_cFv = .text:0x8011E500; // type:function size:0x4 +init__29dLytMsgWindowSelectBtnParts_cFv = .text:0x8011E510; // type:function size:0x54 +execute__29dLytMsgWindowSelectBtnParts_cFv = .text:0x8011E570; // type:function size:0x4C +executeState__98sStateMgr_c<29dLytMsgWindowSelectBtnParts_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x8011E5C0; // type:function size:0x10 +fn_8011E5D0__24dLytMsgWindowSelectBtn_cFUlb = .text:0x8011E5D0; // type:function size:0x138 fn_8011E710 = .text:0x8011E710; // type:function size:0x10 -fn_8011E720 = .text:0x8011E720; // type:function size:0x2C -fn_8011E750 = .text:0x8011E750; // type:function size:0x4 -fn_8011E760 = .text:0x8011E760; // type:function size:0x4 -fn_8011E770 = .text:0x8011E770; // type:function size:0x3C0 -fn_8011EB30 = .text:0x8011EB30; // type:function size:0x7C -fn_8011EBB0 = .text:0x8011EBB0; // type:function size:0xC -fn_8011EBC0 = .text:0x8011EBC0; // type:function size:0x58 -fn_8011EC20 = .text:0x8011EC20; // type:function size:0x288 -fn_8011EEB0 = .text:0x8011EEB0; // type:function size:0x5C -fn_8011EF10 = .text:0x8011EF10; // type:function size:0x21C -fn_8011F130 = .text:0x8011F130; // type:function size:0x7C -fn_8011F1B0 = .text:0x8011F1B0; // type:function size:0x4 -fn_8011F1C0 = .text:0x8011F1C0; // type:function size:0x7C -fn_8011F240 = .text:0x8011F240; // type:function size:0xD0 -fn_8011F310 = .text:0x8011F310; // type:function size:0x4 -fn_8011F320 = .text:0x8011F320; // type:function size:0x94 -fn_8011F3C0 = .text:0x8011F3C0; // type:function size:0x38 -fn_8011F400 = .text:0x8011F400; // type:function size:0x4 -fn_8011F410 = .text:0x8011F410; // type:function size:0x5C -fn_8011F470 = .text:0x8011F470; // type:function size:0xA4 -fn_8011F520 = .text:0x8011F520; // type:function size:0xC -fn_8011F530 = .text:0x8011F530; // type:function size:0x3E4 -fn_8011F920 = .text:0x8011F920; // type:function size:0x84 -fn_8011F9B0 = .text:0x8011F9B0; // type:function size:0x444 -fn_8011FE00 = .text:0x8011FE00; // type:function size:0x10 -drawChoices = .text:0x8011FE10; // type:function size:0x34 +initializeState_Wait__24dLytMsgWindowSelectBtn_cFv = .text:0x8011E720; // type:function size:0x2C +executeState_Wait__24dLytMsgWindowSelectBtn_cFv = .text:0x8011E750; // type:function size:0x4 +finalizeState_Wait__24dLytMsgWindowSelectBtn_cFv = .text:0x8011E760; // type:function size:0x4 +initializeState_In__24dLytMsgWindowSelectBtn_cFv = .text:0x8011E770; // type:function size:0x3C0 +executeState_In__24dLytMsgWindowSelectBtn_cFv = .text:0x8011EB30; // type:function size:0x7C +finalizeState_In__24dLytMsgWindowSelectBtn_cFv = .text:0x8011EBB0; // type:function size:0xC +initializeState_WaitSelect__24dLytMsgWindowSelectBtn_cFv = .text:0x8011EBC0; // type:function size:0x58 +executeState_WaitSelect__24dLytMsgWindowSelectBtn_cFv = .text:0x8011EC20; // type:function size:0x288 +finalizeState_WaitSelect__24dLytMsgWindowSelectBtn_cFv = .text:0x8011EEB0; // type:function size:0x5C +initializeState_CursorInOut__24dLytMsgWindowSelectBtn_cFv = .text:0x8011EF10; // type:function size:0x21C +executeState_CursorInOut__24dLytMsgWindowSelectBtn_cFv = .text:0x8011F130; // type:function size:0x7C +finalizeState_CursorInOut__24dLytMsgWindowSelectBtn_cFv = .text:0x8011F1B0; // type:function size:0x4 +initializeState_WaitDecide__24dLytMsgWindowSelectBtn_cFv = .text:0x8011F1C0; // type:function size:0x7C +executeState_WaitDecide__24dLytMsgWindowSelectBtn_cFv = .text:0x8011F240; // type:function size:0xD0 +finalizeState_WaitDecide__24dLytMsgWindowSelectBtn_cFv = .text:0x8011F310; // type:function size:0x4 +initializeState_WaitCancel__24dLytMsgWindowSelectBtn_cFv = .text:0x8011F320; // type:function size:0x94 +executeState_WaitCancel__24dLytMsgWindowSelectBtn_cFv = .text:0x8011F3C0; // type:function size:0x38 +finalizeState_WaitCancel__24dLytMsgWindowSelectBtn_cFv = .text:0x8011F400; // type:function size:0x4 +initializeState_Out__24dLytMsgWindowSelectBtn_cFv = .text:0x8011F410; // type:function size:0x5C +executeState_Out__24dLytMsgWindowSelectBtn_cFv = .text:0x8011F470; // type:function size:0xA4 +finalizeState_Out__24dLytMsgWindowSelectBtn_cFv = .text:0x8011F520; // type:function size:0xC +build__24dLytMsgWindowSelectBtn_cFPQ23d2d10ResAccIf_c = .text:0x8011F530; // type:function size:0x3E4 +remove__24dLytMsgWindowSelectBtn_cFv = .text:0x8011F920; // type:function size:0x84 +execute__24dLytMsgWindowSelectBtn_cFv = .text:0x8011F9B0; // type:function size:0x444 +executeState__93sStateMgr_c<24dLytMsgWindowSelectBtn_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x8011FE00; // type:function size:0x10 +draw__24dLytMsgWindowSelectBtn_cFv = .text:0x8011FE10; // type:function size:0x34 fn_8011FE50 = .text:0x8011FE50; // type:function size:0x24 -fn_8011FE80 = .text:0x8011FE80; // type:function size:0x8 -fn_8011FE90 = .text:0x8011FE90; // type:function size:0x8 -fn_8011FEA0 = .text:0x8011FEA0; // type:function size:0x8 -fn_8011FEB0 = .text:0x8011FEB0; // type:function size:0x30 -fn_8011FEE0 = .text:0x8011FEE0; // type:function size:0x30 -fn_8011FF10 = .text:0x8011FF10; // type:function size:0x30 -fn_8011FF40 = .text:0x8011FF40; // type:function size:0x30 -fn_8011FF70 = .text:0x8011FF70; // type:function size:0x30 -fn_8011FFA0 = .text:0x8011FFA0; // type:function size:0x30 -LytMsgWindowSelectBtn__initStates = .text:0x8011FFD0; // type:function size:0x868 -LytMsgWindowSelectBtn__LytMsgWindowSelectBtnParts__dtor = .text:0x80120840; // type:function size:0x58 -LytMsgWindowSelectBtn__dtor = .text:0x801208A0; // type:function size:0x58 -fn_80120900 = .text:0x80120900; // type:function size:0x88 -fn_80120990 = .text:0x80120990; // type:function size:0x88 -fn_80120A20 = .text:0x80120A20; // type:function size:0x8 -fn_80120A30 = .text:0x80120A30; // type:function size:0x8 -fn_80120A40 = .text:0x80120A40; // type:function size:0x8 -fn_80120A50 = .text:0x80120A50; // type:function size:0x4 -fn_80120A60 = .text:0x80120A60; // type:function size:0x8 -fn_80120A70 = .text:0x80120A70; // type:function size:0x4 -fn_80120A80 = .text:0x80120A80; // type:function size:0x8 -fn_80120A90 = .text:0x80120A90; // type:function size:0x8 -fn_80120AA0 = .text:0x80120AA0; // type:function size:0x188 -fn_80120C30 = .text:0x80120C30; // type:function size:0x28 -fn_80120C60 = .text:0x80120C60; // type:function size:0x14C -fn_80120DB0 = .text:0x80120DB0; // type:function size:0xC -fn_80120DC0 = .text:0x80120DC0; // type:function size:0x104 -fn_80120ED0 = .text:0x80120ED0; // type:function size:0x28 -fn_80120F00 = .text:0x80120F00; // type:function size:0x14C -fn_80121050 = .text:0x80121050; // type:function size:0xC -fn_80121060 = .text:0x80121060; // type:function size:0x8 -LytMsgWindowTalk__initialize = .text:0x80121070; // type:function size:0x2F8 -fn_80121370 = .text:0x80121370; // type:function size:0xE0 -LytMsgWindowTalk__stateInvisibleEnter = .text:0x80121450; // type:function size:0x8 -LytMsgWindowTalk__stateInvisibleUpdate = .text:0x80121460; // type:function size:0x28 -LytMsgWindowTalk__stateInvisibleLeave = .text:0x80121490; // type:function size:0x4 -LytMsgWindowTalk__stateInEnter = .text:0x801214A0; // type:function size:0xF0 -LytMsgWindowTalk__stateInUpdate = .text:0x80121590; // type:function size:0x180 -LytMsgWindowTalk__stateInLeave = .text:0x80121710; // type:function size:0x4 -LytMsgWindowTalk__stateWaitEnter = .text:0x80121720; // type:function size:0x10 -LytMsgWindowTalk__stateWaitUpdate = .text:0x80121730; // type:function size:0x2C -LytMsgWindowTalk__stateWaitLeave = .text:0x80121760; // type:function size:0x4 -LytMsgWindowTalk__stateVisibleEnter = .text:0x80121770; // type:function size:0x10C -fn_80121880 = .text:0x80121880; // type:function size:0x8 -LytMsgWindowTalk__stateVisibleUpdate = .text:0x80121890; // type:function size:0x28 -LytMsgWindowTalk__stateVisibleLeave = .text:0x801218C0; // type:function size:0x4 -LytMsgWindowTalk__stateOutEnter = .text:0x801218D0; // type:function size:0x60 -LytMsgWindowTalk__stateOutUpdate = .text:0x80121930; // type:function size:0x194 -LytMsgWindowTalk__stateOutLeave = .text:0x80121AD0; // type:function size:0x4 -fn_80121AE0 = .text:0x80121AE0; // type:function size:0xBC -LytMsgWindowTalk__draw = .text:0x80121BA0; // type:function size:0x16C -fn_80121D10 = .text:0x80121D10; // type:function size:0x14 -LytMsgWindowTalk__checkIsOpenComplete = .text:0x80121D30; // type:function size:0x9C -fn_80121DD0 = .text:0x80121DD0; // type:function size:0xC -LytMsgWindowTalk__checkIsNotInOutState = .text:0x80121DE0; // type:function size:0x4C -fn_80121E30 = .text:0x80121E30; // type:function size:0x7C -fn_80121EB0 = .text:0x80121EB0; // type:function size:0x8 -fn_80121EC0 = .text:0x80121EC0; // type:function size:0x8 -fn_80121ED0 = .text:0x80121ED0; // type:function size:0x8 -LytMsgWindowTalk__initStates = .text:0x80121EE0; // type:function size:0x3F4 -LytMsgWindowTalk__dtor2 = .text:0x801222E0; // type:function size:0x58 -fn_80122340 = .text:0x80122340; // type:function size:0x88 -fn_801223D0 = .text:0x801223D0; // type:function size:0x2F8 -fn_801226D0 = .text:0x801226D0; // type:function size:0xE0 -fn_801227B0 = .text:0x801227B0; // type:function size:0x8 -fn_801227C0 = .text:0x801227C0; // type:function size:0x28 -fn_801227F0 = .text:0x801227F0; // type:function size:0x4 -fn_80122800 = .text:0x80122800; // type:function size:0xF0 -fn_801228F0 = .text:0x801228F0; // type:function size:0x180 -fn_80122A70 = .text:0x80122A70; // type:function size:0x4 -fn_80122A80 = .text:0x80122A80; // type:function size:0x10 -fn_80122A90 = .text:0x80122A90; // type:function size:0x2C -fn_80122AC0 = .text:0x80122AC0; // type:function size:0x4 -fn_80122AD0 = .text:0x80122AD0; // type:function size:0x10C -fn_80122BE0 = .text:0x80122BE0; // type:function size:0x8 -fn_80122BF0 = .text:0x80122BF0; // type:function size:0x28 -fn_80122C20 = .text:0x80122C20; // type:function size:0x4 -fn_80122C30 = .text:0x80122C30; // type:function size:0x60 -fn_80122C90 = .text:0x80122C90; // type:function size:0x194 -fn_80122E30 = .text:0x80122E30; // type:function size:0x4 -fn_80122E40 = .text:0x80122E40; // type:function size:0xBC -fn_80122F00 = .text:0x80122F00; // type:function size:0x178 -fn_80123080 = .text:0x80123080; // type:function size:0x14 -fn_801230A0 = .text:0x801230A0; // type:function size:0x4C -fn_801230F0 = .text:0x801230F0; // type:function size:0xC -fn_80123100 = .text:0x80123100; // type:function size:0x9C -fn_801231A0 = .text:0x801231A0; // type:function size:0x7C -fn_80123220 = .text:0x80123220; // type:function size:0x8 -fn_80123230 = .text:0x80123230; // type:function size:0x8 -fn_80123240 = .text:0x80123240; // type:function size:0x8 -LytMsgWindowLink__initStates = .text:0x80123250; // type:function size:0x3F4 -LytMsgWindowLink__dtor = .text:0x80123650; // type:function size:0x58 -fn_801236B0 = .text:0x801236B0; // type:function size:0x88 -fn_80123740 = .text:0x80123740; // type:function size:0x2A0 -fn_801239E0 = .text:0x801239E0; // type:function size:0xE0 -fn_80123AC0 = .text:0x80123AC0; // type:function size:0x8 -fn_80123AD0 = .text:0x80123AD0; // type:function size:0x28 -fn_80123B00 = .text:0x80123B00; // type:function size:0x4 -fn_80123B10 = .text:0x80123B10; // type:function size:0x48 -fn_80123B60 = .text:0x80123B60; // type:function size:0x78 -fn_80123BE0 = .text:0x80123BE0; // type:function size:0x4 -fn_80123BF0 = .text:0x80123BF0; // type:function size:0x10C -fn_80123D00 = .text:0x80123D00; // type:function size:0x8 -fn_80123D10 = .text:0x80123D10; // type:function size:0x28 -fn_80123D40 = .text:0x80123D40; // type:function size:0x4 -fn_80123D50 = .text:0x80123D50; // type:function size:0x48 -fn_80123DA0 = .text:0x80123DA0; // type:function size:0x78 -fn_80123E20 = .text:0x80123E20; // type:function size:0x4 -fn_80123E30 = .text:0x80123E30; // type:function size:0xBC -itemTextBoxDrawMaybe = .text:0x80123EF0; // type:function size:0x1EC -fn_801240E0 = .text:0x801240E0; // type:function size:0xC -fn_801240F0 = .text:0x801240F0; // type:function size:0x4C -fn_80124140 = .text:0x80124140; // type:function size:0xC -fn_80124150 = .text:0x80124150; // type:function size:0x4C -fn_801241A0 = .text:0x801241A0; // type:function size:0x7C -fn_80124220 = .text:0x80124220; // type:function size:0x8 -fn_80124230 = .text:0x80124230; // type:function size:0x8 -fn_80124240 = .text:0x80124240; // type:function size:0x8 -LytMsgWindowGet__initStates = .text:0x80124250; // type:function size:0x338 -LytMsgWindowGet__dtor = .text:0x80124590; // type:function size:0x58 -fn_801245F0 = .text:0x801245F0; // type:function size:0x88 -fn_80124680 = .text:0x80124680; // type:function size:0x3A4 -fn_80124A30 = .text:0x80124A30; // type:function size:0xE0 -LytMsgWindowSword__stateInvisibleEnter = .text:0x80124B10; // type:function size:0x8 -LytMsgWindowSword__stateInvisibleUpdate = .text:0x80124B20; // type:function size:0x28 -LytMsgWindowSword__stateInvisibleLeave = .text:0x80124B50; // type:function size:0x4 -LytMsgWindowSword__stateInEnter = .text:0x80124B60; // type:function size:0xF0 -LytMsgWindowSword__stateInUpdate = .text:0x80124C50; // type:function size:0x194 -LytMsgWindowSword__stateInLeave = .text:0x80124DF0; // type:function size:0x4 -LytMsgWindowSword__stateWaitEnter = .text:0x80124E00; // type:function size:0x10 -LytMsgWindowSword__stateWaitUpdate = .text:0x80124E10; // type:function size:0x2C -LytMsgWindowSword__stateWaitLeave = .text:0x80124E40; // type:function size:0x4 -LytMsgWindowSword__stateVisibleEnter = .text:0x80124E50; // type:function size:0x12C -fn_80124F80 = .text:0x80124F80; // type:function size:0x8 -LytMsgWindowSword__stateVisibleUpdate = .text:0x80124F90; // type:function size:0x28 -LytMsgWindowSword__stateVisibleLeave = .text:0x80124FC0; // type:function size:0x4 -LytMsgWindowSword__stateOutEnter = .text:0x80124FD0; // type:function size:0x60 -LytMsgWindowSword__stateOutUpdate = .text:0x80125030; // type:function size:0x180 -LytMsgWindowSword__stateOutLeave = .text:0x801251B0; // type:function size:0x4 -fn_801251C0 = .text:0x801251C0; // type:function size:0xC4 -fn_80125290 = .text:0x80125290; // type:function size:0x158 -fn_801253F0 = .text:0x801253F0; // type:function size:0x14 -LytMsgWindowSword__checkIsOpenComplete = .text:0x80125410; // type:function size:0x9C -fn_801254B0 = .text:0x801254B0; // type:function size:0xC -LytMsgWindowSword__checkIsNotInOutState = .text:0x801254C0; // type:function size:0x4C -LytMsgWindowSword__setTextToDisplay = .text:0x80125510; // type:function size:0x174 -fn_80125690 = .text:0x80125690; // type:function size:0x8 -fn_801256A0 = .text:0x801256A0; // type:function size:0x8 -fn_801256B0 = .text:0x801256B0; // type:function size:0x8 -LytMsgWindowSword__initStates = .text:0x801256C0; // type:function size:0x3F4 -LytMsgWindowSword__dtor2 = .text:0x80125AC0; // type:function size:0x58 -fn_80125B20 = .text:0x80125B20; // type:function size:0x88 -fn_80125BB0 = .text:0x80125BB0; // type:function size:0x278 -fn_80125E30 = .text:0x80125E30; // type:function size:0xD8 -fn_80125F10 = .text:0x80125F10; // type:function size:0x8 -fn_80125F20 = .text:0x80125F20; // type:function size:0x28 -fn_80125F50 = .text:0x80125F50; // type:function size:0x4 -fn_80125F60 = .text:0x80125F60; // type:function size:0x48 -fn_80125FB0 = .text:0x80125FB0; // type:function size:0x78 -fn_80126030 = .text:0x80126030; // type:function size:0x4 -fn_80126040 = .text:0x80126040; // type:function size:0x4 -fn_80126050 = .text:0x80126050; // type:function size:0x28 -fn_80126080 = .text:0x80126080; // type:function size:0x4 -fn_80126090 = .text:0x80126090; // type:function size:0x48 -fn_801260E0 = .text:0x801260E0; // type:function size:0x78 -fn_80126160 = .text:0x80126160; // type:function size:0x4 -fn_80126170 = .text:0x80126170; // type:function size:0xBC -fn_80126230 = .text:0x80126230; // type:function size:0x14 -fn_80126250 = .text:0x80126250; // type:function size:0xC -fn_80126260 = .text:0x80126260; // type:function size:0x4C -fn_801262B0 = .text:0x801262B0; // type:function size:0xC -fn_801262C0 = .text:0x801262C0; // type:function size:0x4C -fn_80126310 = .text:0x80126310; // type:function size:0x7C -fn_80126390 = .text:0x80126390; // type:function size:0x8 -fn_801263A0 = .text:0x801263A0; // type:function size:0x8 -fn_801263B0 = .text:0x801263B0; // type:function size:0x8 -fn_801263C0 = .text:0x801263C0; // type:function size:0x8 -LytMsgWindowWood__initStates = .text:0x801263D0; // type:function size:0x338 -LytMsgWindowWood__dtor = .text:0x80126710; // type:function size:0x58 -fn_80126770 = .text:0x80126770; // type:function size:0x88 -fn_80126800 = .text:0x80126800; // type:function size:0x284 -fn_80126A90 = .text:0x80126A90; // type:function size:0xD8 -fn_80126B70 = .text:0x80126B70; // type:function size:0x8 -fn_80126B80 = .text:0x80126B80; // type:function size:0x28 -fn_80126BB0 = .text:0x80126BB0; // type:function size:0x4 -fn_80126BC0 = .text:0x80126BC0; // type:function size:0x48 -fn_80126C10 = .text:0x80126C10; // type:function size:0x78 -fn_80126C90 = .text:0x80126C90; // type:function size:0x4 -fn_80126CA0 = .text:0x80126CA0; // type:function size:0x4 -fn_80126CB0 = .text:0x80126CB0; // type:function size:0x28 -fn_80126CE0 = .text:0x80126CE0; // type:function size:0x4 -fn_80126CF0 = .text:0x80126CF0; // type:function size:0x48 -fn_80126D40 = .text:0x80126D40; // type:function size:0x78 -fn_80126DC0 = .text:0x80126DC0; // type:function size:0x4 -fn_80126DD0 = .text:0x80126DD0; // type:function size:0xBC -fn_80126E90 = .text:0x80126E90; // type:function size:0x14 -fn_80126EB0 = .text:0x80126EB0; // type:function size:0xC -fn_80126EC0 = .text:0x80126EC0; // type:function size:0x4C -fn_80126F10 = .text:0x80126F10; // type:function size:0xC -fn_80126F20 = .text:0x80126F20; // type:function size:0x4C -fn_80126F70 = .text:0x80126F70; // type:function size:0xA0 -fn_80127010 = .text:0x80127010; // type:function size:0x8 -fn_80127020 = .text:0x80127020; // type:function size:0x8 -fn_80127030 = .text:0x80127030; // type:function size:0x8 -fn_80127040 = .text:0x80127040; // type:function size:0x8 -LytMsgWindowStone__initStates = .text:0x80127050; // type:function size:0x338 -LytMsgWindowStone__dtor = .text:0x80127390; // type:function size:0x58 -fn_801273F0 = .text:0x801273F0; // type:function size:0x88 -fn_80127480 = .text:0x80127480; // type:function size:0x1BC -fn_80127640 = .text:0x80127640; // type:function size:0x6C -fn_801276B0 = .text:0x801276B0; // type:function size:0x160 -fn_80127810 = .text:0x80127810; // type:function size:0x8 -fn_80127820 = .text:0x80127820; // type:function size:0x28 -fn_80127850 = .text:0x80127850; // type:function size:0x4 -fn_80127860 = .text:0x80127860; // type:function size:0x60 -fn_801278C0 = .text:0x801278C0; // type:function size:0x60 -fn_80127920 = .text:0x80127920; // type:function size:0x4 -fn_80127930 = .text:0x80127930; // type:function size:0x4 -fn_80127940 = .text:0x80127940; // type:function size:0x28 -fn_80127970 = .text:0x80127970; // type:function size:0x4 -fn_80127980 = .text:0x80127980; // type:function size:0x60 -fn_801279E0 = .text:0x801279E0; // type:function size:0x60 -fn_80127A40 = .text:0x80127A40; // type:function size:0x4 -fn_80127A50 = .text:0x80127A50; // type:function size:0xA8 -fn_80127B00 = .text:0x80127B00; // type:function size:0x100 -fn_80127C00 = .text:0x80127C00; // type:function size:0x88 -fn_80127C90 = .text:0x80127C90; // type:function size:0xC -fn_80127CA0 = .text:0x80127CA0; // type:function size:0x4C -fn_80127CF0 = .text:0x80127CF0; // type:function size:0xC -fn_80127D00 = .text:0x80127D00; // type:function size:0x4C -fn_80127D50 = .text:0x80127D50; // type:function size:0x7C -LytMsgWindowDemo__initStates = .text:0x80127DD0; // type:function size:0x338 -LytMsgWindowDemo__dtor = .text:0x80128110; // type:function size:0x58 -fn_80128170 = .text:0x80128170; // type:function size:0x88 +getName__24dLytMsgWindowSelectBtn_cCFv = .text:0x8011FE80; // type:function size:0x8 +getLyt__24dLytMsgWindowSelectBtn_cFv = .text:0x8011FE90; // type:function size:0x8 +getPane__24dLytMsgWindowSelectBtn_cFv = .text:0x8011FEA0; // type:function size:0x8 +finalizeState__44sFStateID_c<29dLytMsgWindowSelectBtnParts_c>CFR29dLytMsgWindowSelectBtnParts_c = .text:0x8011FEB0; // type:function size:0x30 +executeState__44sFStateID_c<29dLytMsgWindowSelectBtnParts_c>CFR29dLytMsgWindowSelectBtnParts_c = .text:0x8011FEE0; // type:function size:0x30 +initializeState__44sFStateID_c<29dLytMsgWindowSelectBtnParts_c>CFR29dLytMsgWindowSelectBtnParts_c = .text:0x8011FF10; // type:function size:0x30 +finalizeState__39sFStateID_c<24dLytMsgWindowSelectBtn_c>CFR24dLytMsgWindowSelectBtn_c = .text:0x8011FF40; // type:function size:0x30 +executeState__39sFStateID_c<24dLytMsgWindowSelectBtn_c>CFR24dLytMsgWindowSelectBtn_c = .text:0x8011FF70; // type:function size:0x30 +initializeState__39sFStateID_c<24dLytMsgWindowSelectBtn_c>CFR24dLytMsgWindowSelectBtn_c = .text:0x8011FFA0; // type:function size:0x30 +__sinit_\d_lyt_msg_window_select_btn_cpp = .text:0x8011FFD0; // type:function size:0x868 +__dt__44sFStateID_c<29dLytMsgWindowSelectBtnParts_c>Fv = .text:0x80120840; // type:function size:0x58 +__dt__39sFStateID_c<24dLytMsgWindowSelectBtn_c>Fv = .text:0x801208A0; // type:function size:0x58 +isSameName__39sFStateID_c<24dLytMsgWindowSelectBtn_c>CFPCc = .text:0x80120900; // type:function size:0x88 +isSameName__44sFStateID_c<29dLytMsgWindowSelectBtnParts_c>CFPCc = .text:0x80120990; // type:function size:0x88 +build__20dLytMsgWindowSubtypeFPQ23d2d10ResAccIf_cPQ23d2d10ResAccIf_cP15dTagProcessor_c = .text:0x80120A20; // type:function size:0x8 +remove__20dLytMsgWindowSubtypeFv = .text:0x80120A30; // type:function size:0x8 +execute__20dLytMsgWindowSubtypeFv = .text:0x80120A40; // type:function size:0x8 +open__20dLytMsgWindowSubtypeFP12dAcObjBase_cUl = .text:0x80120A50; // type:function size:0x4 +isDoneOpening__20dLytMsgWindowSubtypeCFv = .text:0x80120A60; // type:function size:0x8 +close__20dLytMsgWindowSubtypeFv = .text:0x80120A70; // type:function size:0x4 +isDoneClosing__20dLytMsgWindowSubtypeCFv = .text:0x80120A80; // type:function size:0x8 +setText__20dLytMsgWindowSubtypeFPCw = .text:0x80120A90; // type:function size:0x8 +build__13dLytTextSwordFPQ23d2d10ResAccIf_cQ213dLytTextSword10ESwordType = .text:0x80120AA0; // type:function size:0x188 +remove__13dLytTextSwordFv = .text:0x80120C30; // type:function size:0x28 +draw__13dLytTextSwordFPCwSc7mVec3_cf = .text:0x80120C60; // type:function size:0x14C +getAnimDuration__13dLytTextSwordCFv = .text:0x80120DB0; // type:function size:0xC +build__13dLytTextLightFPQ23d2d10ResAccIf_cQ213dLytTextLight9ETextType = .text:0x80120DC0; // type:function size:0x104 +remove__13dLytTextLightFv = .text:0x80120ED0; // type:function size:0x28 +draw__13dLytTextLightFSc7mVec3_cUcf = .text:0x80120F00; // type:function size:0x14C +getAnimDuration__13dLytTextLightCFv = .text:0x80121050; // type:function size:0xC +vt_0x40__20dLytMsgWindowSubtypeCFv = .text:0x80121060; // type:function size:0x8 +build__19dLytMsgWindowTalk_cFPQ23d2d10ResAccIf_cPQ23d2d10ResAccIf_cP15dTagProcessor_c = .text:0x80121070; // type:function size:0x2F8 +remove__19dLytMsgWindowTalk_cFv = .text:0x80121370; // type:function size:0xE0 +initializeState_Invisible__19dLytMsgWindowTalk_cFv = .text:0x80121450; // type:function size:0x8 +executeState_Invisible__19dLytMsgWindowTalk_cFv = .text:0x80121460; // type:function size:0x28 +finalizeState_Invisible__19dLytMsgWindowTalk_cFv = .text:0x80121490; // type:function size:0x4 +initializeState_In__19dLytMsgWindowTalk_cFv = .text:0x801214A0; // type:function size:0xF0 +executeState_In__19dLytMsgWindowTalk_cFv = .text:0x80121590; // type:function size:0x180 +finalizeState_In__19dLytMsgWindowTalk_cFv = .text:0x80121710; // type:function size:0x4 +initializeState_Wait__19dLytMsgWindowTalk_cFv = .text:0x80121720; // type:function size:0x10 +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 +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 +executeState_Out__19dLytMsgWindowTalk_cFv = .text:0x80121930; // type:function size:0x194 +finalizeState_Out__19dLytMsgWindowTalk_cFv = .text:0x80121AD0; // type:function size:0x4 +execute__19dLytMsgWindowTalk_cFv = .text:0x80121AE0; // type:function size:0xBC +draw__19dLytMsgWindowTalk_cFv = .text:0x80121BA0; // type:function size:0x16C +open__19dLytMsgWindowTalk_cFP12dAcObjBase_cUl = .text:0x80121D10; // type:function size:0x14 +isDoneOpening__19dLytMsgWindowTalk_cCFv = .text:0x80121D30; // type:function size:0x9C +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 +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 +executeState_Invisible__19dLytMsgWindowLink_cFv = .text:0x801227C0; // type:function size:0x28 +finalizeState_Invisible__19dLytMsgWindowLink_cFv = .text:0x801227F0; // type:function size:0x4 +initializeState_In__19dLytMsgWindowLink_cFv = .text:0x80122800; // type:function size:0xF0 +executeState_In__19dLytMsgWindowLink_cFv = .text:0x801228F0; // type:function size:0x180 +finalizeState_In__19dLytMsgWindowLink_cFv = .text:0x80122A70; // type:function size:0x4 +initializeState_Wait__19dLytMsgWindowLink_cFv = .text:0x80122A80; // type:function size:0x10 +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 +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 +executeState_Out__19dLytMsgWindowLink_cFv = .text:0x80122C90; // type:function size:0x194 +finalizeState_Out__19dLytMsgWindowLink_cFv = .text:0x80122E30; // type:function size:0x4 +execute__19dLytMsgWindowLink_cFv = .text:0x80122E40; // type:function size:0xBC +draw__19dLytMsgWindowLink_cFv = .text:0x80122F00; // type:function size:0x178 +open__19dLytMsgWindowLink_cFP12dAcObjBase_cUl = .text:0x80123080; // type:function size:0x14 +isDoneOpening__19dLytMsgWindowLink_cCFv = .text:0x801230A0; // type:function size:0x4C +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 +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 +executeState_Invisible__18dLytMsgWindowGet_cFv = .text:0x80123AD0; // type:function size:0x28 +finalizeState_Invisible__18dLytMsgWindowGet_cFv = .text:0x80123B00; // type:function size:0x4 +initializeState_In__18dLytMsgWindowGet_cFv = .text:0x80123B10; // type:function size:0x48 +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 +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 +executeState_Out__18dLytMsgWindowGet_cFv = .text:0x80123DA0; // type:function size:0x78 +finalizeState_Out__18dLytMsgWindowGet_cFv = .text:0x80123E20; // type:function size:0x4 +execute__18dLytMsgWindowGet_cFv = .text:0x80123E30; // type:function size:0xBC +draw__18dLytMsgWindowGet_cFv = .text:0x80123EF0; // type:function size:0x1EC +open__18dLytMsgWindowGet_cFP12dAcObjBase_cUl = .text:0x801240E0; // type:function size:0xC +isDoneOpening__18dLytMsgWindowGet_cCFv = .text:0x801240F0; // type:function size:0x4C +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 +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 +executeState_Invisible__20dLytMsgWindowSword_cFv = .text:0x80124B20; // type:function size:0x28 +finalizeState_Invisible__20dLytMsgWindowSword_cFv = .text:0x80124B50; // type:function size:0x4 +initializeState_In__20dLytMsgWindowSword_cFv = .text:0x80124B60; // type:function size:0xF0 +executeState_In__20dLytMsgWindowSword_cFv = .text:0x80124C50; // type:function size:0x194 +finalizeState_In__20dLytMsgWindowSword_cFv = .text:0x80124DF0; // type:function size:0x4 +initializeState_Wait__20dLytMsgWindowSword_cFv = .text:0x80124E00; // type:function size:0x10 +executeState_Wait__20dLytMsgWindowSword_cFv = .text:0x80124E10; // type:function size:0x2C +finalizeState_Wait__20dLytMsgWindowSword_cFv = .text:0x80124E40; // type:function size:0x4 +initializeState_Visible__20dLytMsgWindowSword_cFv = .text:0x80124E50; // type:function size:0x12C +getTextBox__20dLytMsgWindowSword_cFv = .text:0x80124F80; // type:function size:0x8 +executeState_Visible__20dLytMsgWindowSword_cFv = .text:0x80124F90; // type:function size:0x28 +finalizeState_Visible__20dLytMsgWindowSword_cFv = .text:0x80124FC0; // type:function size:0x4 +initializeState_Out__20dLytMsgWindowSword_cFv = .text:0x80124FD0; // type:function size:0x60 +executeState_Out__20dLytMsgWindowSword_cFv = .text:0x80125030; // type:function size:0x180 +finalizeState_Out__20dLytMsgWindowSword_cFv = .text:0x801251B0; // type:function size:0x4 +execute__20dLytMsgWindowSword_cFv = .text:0x801251C0; // type:function size:0xC4 +draw__20dLytMsgWindowSword_cFv = .text:0x80125290; // type:function size:0x158 +open__20dLytMsgWindowSword_cFP12dAcObjBase_cUl = .text:0x801253F0; // type:function size:0x14 +isDoneOpening__20dLytMsgWindowSword_cCFv = .text:0x80125410; // type:function size:0x9C +close__20dLytMsgWindowSword_cFv = .text:0x801254B0; // type:function size:0xC +isDoneClosing__20dLytMsgWindowSword_cCFv = .text:0x801254C0; // type:function size:0x4C +setText__20dLytMsgWindowSword_cFPCw = .text:0x80125510; // type:function size:0x174 +isDoneDecide__20dLytMsgWindowSword_cCFv = .text:0x80125690; // type:function size:0x8 +startDecide__20dLytMsgWindowSword_cFb = .text:0x801256A0; // type:function size:0x8 +startConfirm__20dLytMsgWindowSword_cFv = .text:0x801256B0; // type:function size:0x8 +__sinit_\d_lyt_msg_window_sword_cpp = .text:0x801256C0; // type:function size:0x3F4 scope:local +__dt__35sFStateID_c<20dLytMsgWindowSword_c>Fv = .text:0x80125AC0; // type:function size:0x58 +isSameName__35sFStateID_c<20dLytMsgWindowSword_c>CFPCc = .text:0x80125B20; // type:function size:0x88 +build__19dLytMsgWindowWood_cFPQ23d2d10ResAccIf_cPQ23d2d10ResAccIf_cP15dTagProcessor_c = .text:0x80125BB0; // type:function size:0x278 +remove__19dLytMsgWindowWood_cFv = .text:0x80125E30; // type:function size:0xD8 +initializeState_Invisible__19dLytMsgWindowWood_cFv = .text:0x80125F10; // type:function size:0x8 +executeState_Invisible__19dLytMsgWindowWood_cFv = .text:0x80125F20; // type:function size:0x28 +finalizeState_Invisible__19dLytMsgWindowWood_cFv = .text:0x80125F50; // type:function size:0x4 +initializeState_In__19dLytMsgWindowWood_cFv = .text:0x80125F60; // type:function size:0x48 +executeState_In__19dLytMsgWindowWood_cFv = .text:0x80125FB0; // type:function size:0x78 +finalizeState_In__19dLytMsgWindowWood_cFv = .text:0x80126030; // type:function size:0x4 +initializeState_Visible__19dLytMsgWindowWood_cFv = .text:0x80126040; // type:function size:0x4 +executeState_Visible__19dLytMsgWindowWood_cFv = .text:0x80126050; // type:function size:0x28 +finalizeState_Visible__19dLytMsgWindowWood_cFv = .text:0x80126080; // type:function size:0x4 +initializeState_Out__19dLytMsgWindowWood_cFv = .text:0x80126090; // type:function size:0x48 +executeState_Out__19dLytMsgWindowWood_cFv = .text:0x801260E0; // type:function size:0x78 +finalizeState_Out__19dLytMsgWindowWood_cFv = .text:0x80126160; // type:function size:0x4 +execute__19dLytMsgWindowWood_cFv = .text:0x80126170; // type:function size:0xBC +draw__19dLytMsgWindowWood_cFv = .text:0x80126230; // type:function size:0x14 +open__19dLytMsgWindowWood_cFP12dAcObjBase_cUl = .text:0x80126250; // type:function size:0xC +isDoneOpening__19dLytMsgWindowWood_cCFv = .text:0x80126260; // type:function size:0x4C +close__19dLytMsgWindowWood_cFv = .text:0x801262B0; // type:function size:0xC +isDoneClosing__19dLytMsgWindowWood_cCFv = .text:0x801262C0; // type:function size:0x4C +setText__19dLytMsgWindowWood_cFPCw = .text:0x80126310; // type:function size:0x7C +isDoneDecide__19dLytMsgWindowWood_cCFv = .text:0x80126390; // type:function size:0x8 +startDecide__19dLytMsgWindowWood_cFb = .text:0x801263A0; // type:function size:0x8 +startConfirm__19dLytMsgWindowWood_cFv = .text:0x801263B0; // type:function size:0x8 +getTextBox__19dLytMsgWindowWood_cFv = .text:0x801263C0; // type:function size:0x8 +__sinit_\d_lyt_msg_window_wood_cpp = .text:0x801263D0; // type:function size:0x338 scope:local +__dt__34sFStateID_c<19dLytMsgWindowWood_c>Fv = .text:0x80126710; // type:function size:0x58 +isSameName__34sFStateID_c<19dLytMsgWindowWood_c>CFPCc = .text:0x80126770; // type:function size:0x88 +build__20dLytMsgWindowStone_cFPQ23d2d10ResAccIf_cPQ23d2d10ResAccIf_cP15dTagProcessor_c = .text:0x80126800; // type:function size:0x284 +remove__20dLytMsgWindowStone_cFv = .text:0x80126A90; // type:function size:0xD8 +initializeState_Invisible__20dLytMsgWindowStone_cFv = .text:0x80126B70; // type:function size:0x8 +executeState_Invisible__20dLytMsgWindowStone_cFv = .text:0x80126B80; // type:function size:0x28 +finalizeState_Invisible__20dLytMsgWindowStone_cFv = .text:0x80126BB0; // type:function size:0x4 +initializeState_In__20dLytMsgWindowStone_cFv = .text:0x80126BC0; // type:function size:0x48 +executeState_In__20dLytMsgWindowStone_cFv = .text:0x80126C10; // type:function size:0x78 +finalizeState_In__20dLytMsgWindowStone_cFv = .text:0x80126C90; // type:function size:0x4 +initializeState_Visible__20dLytMsgWindowStone_cFv = .text:0x80126CA0; // type:function size:0x4 +executeState_Visible__20dLytMsgWindowStone_cFv = .text:0x80126CB0; // type:function size:0x28 +finalizeState_Visible__20dLytMsgWindowStone_cFv = .text:0x80126CE0; // type:function size:0x4 +initializeState_Out__20dLytMsgWindowStone_cFv = .text:0x80126CF0; // type:function size:0x48 +executeState_Out__20dLytMsgWindowStone_cFv = .text:0x80126D40; // type:function size:0x78 +finalizeState_Out__20dLytMsgWindowStone_cFv = .text:0x80126DC0; // type:function size:0x4 +execute__20dLytMsgWindowStone_cFv = .text:0x80126DD0; // type:function size:0xBC +draw__20dLytMsgWindowStone_cFv = .text:0x80126E90; // type:function size:0x14 +open__20dLytMsgWindowStone_cFP12dAcObjBase_cUl = .text:0x80126EB0; // type:function size:0xC +isDoneOpening__20dLytMsgWindowStone_cCFv = .text:0x80126EC0; // type:function size:0x4C +close__20dLytMsgWindowStone_cFv = .text:0x80126F10; // type:function size:0xC +isDoneClosing__20dLytMsgWindowStone_cCFv = .text:0x80126F20; // type:function size:0x4C +setText__20dLytMsgWindowStone_cFPCw = .text:0x80126F70; // type:function size:0xA0 +isDoneDecide__20dLytMsgWindowStone_cCFv = .text:0x80127010; // type:function size:0x8 +startDecide__20dLytMsgWindowStone_cFb = .text:0x80127020; // type:function size:0x8 +startConfirm__20dLytMsgWindowStone_cFv = .text:0x80127030; // type:function size:0x8 +getTextBox__20dLytMsgWindowStone_cFv = .text:0x80127040; // type:function size:0x8 +__sinit_\d_lyt_msg_window_stone_cpp = .text:0x80127050; // type:function size:0x338 scope:local +__dt__35sFStateID_c<20dLytMsgWindowStone_c>Fv = .text:0x80127390; // type:function size:0x58 +isSameName__35sFStateID_c<20dLytMsgWindowStone_c>CFPCc = .text:0x801273F0; // type:function size:0x88 +build__19dLytMsgWindowDemo_cFPQ23d2d10ResAccIf_cPQ23d2d10ResAccIf_cP15dTagProcessor_c = .text:0x80127480; // type:function size:0x1BC +remove__19dLytMsgWindowDemo_cFv = .text:0x80127640; // type:function size:0x6C +initializeState_Invisible__19dLytMsgWindowDemo_cFv = .text:0x801276B0; // type:function size:0x160 +getTextBox__19dLytMsgWindowDemo_cFv = .text:0x80127810; // type:function size:0x8 +executeState_Invisible__19dLytMsgWindowDemo_cFv = .text:0x80127820; // type:function size:0x28 +finalizeState_Invisible__19dLytMsgWindowDemo_cFv = .text:0x80127850; // type:function size:0x4 +initializeState_In__19dLytMsgWindowDemo_cFv = .text:0x80127860; // type:function size:0x60 +executeState_In__19dLytMsgWindowDemo_cFv = .text:0x801278C0; // type:function size:0x60 +finalizeState_In__19dLytMsgWindowDemo_cFv = .text:0x80127920; // type:function size:0x4 +initializeState_Visible__19dLytMsgWindowDemo_cFv = .text:0x80127930; // type:function size:0x4 +executeState_Visible__19dLytMsgWindowDemo_cFv = .text:0x80127940; // type:function size:0x28 +finalizeState_Visible__19dLytMsgWindowDemo_cFv = .text:0x80127970; // type:function size:0x4 +initializeState_Out__19dLytMsgWindowDemo_cFv = .text:0x80127980; // type:function size:0x60 +executeState_Out__19dLytMsgWindowDemo_cFv = .text:0x801279E0; // type:function size:0x60 +finalizeState_Out__19dLytMsgWindowDemo_cFv = .text:0x80127A40; // type:function size:0x4 +execute__19dLytMsgWindowDemo_cFv = .text:0x80127A50; // type:function size:0xA8 +draw__19dLytMsgWindowDemo_cFv = .text:0x80127B00; // type:function size:0x100 +getTextLabel__19dLytMsgWindowDemo_cFv = .text:0x80127C00; // type:function size:0x88 +open__19dLytMsgWindowDemo_cFP12dAcObjBase_cUl = .text:0x80127C90; // type:function size:0xC +isDoneOpening__19dLytMsgWindowDemo_cCFv = .text:0x80127CA0; // type:function size:0x4C +close__19dLytMsgWindowDemo_cFv = .text:0x80127CF0; // type:function size:0xC +isDoneClosing__19dLytMsgWindowDemo_cCFv = .text:0x80127D00; // type:function size:0x4C +setText__19dLytMsgWindowDemo_cFPCw = .text:0x80127D50; // type:function size:0x7C +__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 +isSameName__34sFStateID_c<19dLytMsgWindowDemo_c>CFPCc = .text:0x80128170; // type:function size:0x88 fn_80128200 = .text:0x80128200; // type:function size:0x8 fn_80128210 = .text:0x80128210; // type:function size:0x4 fn_80128220 = .text:0x80128220; // type:function size:0x8 @@ -7421,58 +7421,58 @@ 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 -fn_8012B950 = .text:0x8012B950; // type:function size:0x4 -fn_8012B960 = .text:0x8012B960; // type:function size:0x28 -fn_8012B990 = .text:0x8012B990; // type:function size:0x4 -fn_8012B9A0 = .text:0x8012B9A0; // type:function size:0xFC -fn_8012BAA0 = .text:0x8012BAA0; // type:function size:0x78 -fn_8012BB20 = .text:0x8012BB20; // type:function size:0x4 -fn_8012BB30 = .text:0x8012BB30; // type:function size:0x4 -fn_8012BB40 = .text:0x8012BB40; // type:function size:0x28 -fn_8012BB70 = .text:0x8012BB70; // type:function size:0x4 -fn_8012BB80 = .text:0x8012BB80; // type:function size:0x48 -fn_8012BBD0 = .text:0x8012BBD0; // type:function size:0x78 -fn_8012BC50 = .text:0x8012BC50; // type:function size:0x4 -fn_8012BC60 = .text:0x8012BC60; // type:function size:0x178 -fn_8012BDE0 = .text:0x8012BDE0; // type:function size:0x50 -fn_8012BE30 = .text:0x8012BE30; // type:function size:0xA8 -fn_8012BEE0 = .text:0x8012BEE0; // type:function size:0x14 -fn_8012BF00 = .text:0x8012BF00; // type:function size:0xC -fn_8012BF10 = .text:0x8012BF10; // type:function size:0x4C -fn_8012BF60 = .text:0x8012BF60; // type:function size:0xC -fn_8012BF70 = .text:0x8012BF70; // type:function size:0x4C -fn_8012BFC0 = .text:0x8012BFC0; // type:function size:0x64 -fn_8012C030 = .text:0x8012C030; // type:function size:0xF4 -fn_8012C130 = .text:0x8012C130; // type:function size:0x8 -LytAutoCaption__initStates = .text:0x8012C140; // type:function size:0x338 -LytAutoCaption__dtor = .text:0x8012C480; // type:function size:0x58 -fn_8012C4E0 = .text:0x8012C4E0; // type:function size:0x88 -fn_8012C570 = .text:0x8012C570; // type:function size:0x4 -fn_8012C580 = .text:0x8012C580; // type:function size:0x28 -fn_8012C5B0 = .text:0x8012C5B0; // type:function size:0x4 -fn_8012C5C0 = .text:0x8012C5C0; // type:function size:0xCC -fn_8012C690 = .text:0x8012C690; // type:function size:0x78 -fn_8012C710 = .text:0x8012C710; // type:function size:0x4 -fn_8012C720 = .text:0x8012C720; // type:function size:0x4 -fn_8012C730 = .text:0x8012C730; // type:function size:0x28 -fn_8012C760 = .text:0x8012C760; // type:function size:0x4 -fn_8012C770 = .text:0x8012C770; // type:function size:0x48 -fn_8012C7C0 = .text:0x8012C7C0; // type:function size:0x78 -fn_8012C840 = .text:0x8012C840; // type:function size:0x4 -fn_8012C850 = .text:0x8012C850; // type:function size:0x194 -fn_8012C9F0 = .text:0x8012C9F0; // type:function size:0x50 -fn_8012CA40 = .text:0x8012CA40; // type:function size:0xA8 -fn_8012CAF0 = .text:0x8012CAF0; // type:function size:0x14 -fn_8012CB10 = .text:0x8012CB10; // type:function size:0xC -fn_8012CB20 = .text:0x8012CB20; // type:function size:0x4C -fn_8012CB70 = .text:0x8012CB70; // type:function size:0xC -fn_8012CB80 = .text:0x8012CB80; // type:function size:0x4C -fn_8012CBD0 = .text:0x8012CBD0; // type:function size:0x7C -fn_8012CC50 = .text:0x8012CC50; // type:function size:0xF4 -fn_8012CD50 = .text:0x8012CD50; // type:function size:0x8 -LytAutoExplain__initStates = .text:0x8012CD60; // type:function size:0x338 -LytAutoExplain__dtor = .text:0x8012D0A0; // type:function size:0x58 -fn_8012D100 = .text:0x8012D100; // type:function size:0x88 +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 +initializeState_In__17dLytAutoCaption_cFv = .text:0x8012B9A0; // type:function size:0xFC +executeState_In__17dLytAutoCaption_cFv = .text:0x8012BAA0; // type:function size:0x78 +finalizeState_In__17dLytAutoCaption_cFv = .text:0x8012BB20; // type:function size:0x4 +initializeState_OutputText__17dLytAutoCaption_cFv = .text:0x8012BB30; // type:function size:0x4 +executeState_OutputText__17dLytAutoCaption_cFv = .text:0x8012BB40; // type:function size:0x28 +finalizeState_OutputText__17dLytAutoCaption_cFv = .text:0x8012BB70; // type:function size:0x4 +initializeState_Out__17dLytAutoCaption_cFv = .text:0x8012BB80; // type:function size:0x48 +executeState_Out__17dLytAutoCaption_cFv = .text:0x8012BBD0; // type:function size:0x78 +finalizeState_Out__17dLytAutoCaption_cFv = .text:0x8012BC50; // type:function size:0x4 +build__17dLytAutoCaption_cFPQ23d2d10ResAccIf_cPQ23d2d10ResAccIf_cP15dTagProcessor_c = .text:0x8012BC60; // type:function size:0x178 +remove__17dLytAutoCaption_cFv = .text:0x8012BDE0; // type:function size:0x50 +execute__17dLytAutoCaption_cFv = .text:0x8012BE30; // type:function size:0xA8 +draw__17dLytAutoCaption_cFv = .text:0x8012BEE0; // type:function size:0x14 +open__17dLytAutoCaption_cFP12dAcObjBase_cUl = .text:0x8012BF00; // type:function size:0xC +isDoneOpening__17dLytAutoCaption_cCFv = .text:0x8012BF10; // type:function size:0x4C +close__17dLytAutoCaption_cFv = .text:0x8012BF60; // type:function size:0xC +isDoneClosing__17dLytAutoCaption_cCFv = .text:0x8012BF70; // type:function size:0x4C +setText__17dLytAutoCaption_cFPCw = .text:0x8012BFC0; // type:function size:0x64 +checkSomethingMeter__17dLytAutoCaption_cFv = .text:0x8012C030; // type:function size:0xF4 +getTextBox__17dLytAutoCaption_cFv = .text:0x8012C130; // type:function size:0x8 +__sinit_\d_lyt_auto_caption_cpp = .text:0x8012C140; // type:function size:0x338 +__dt__32sFStateID_c<17dLytAutoCaption_c>Fv = .text:0x8012C480; // type:function size:0x58 +isSameName__32sFStateID_c<17dLytAutoCaption_c>CFPCc = .text:0x8012C4E0; // type:function size:0x88 +initializeState_Invisible__17dLytAutoExplain_cFv = .text:0x8012C570; // type:function size:0x4 +executeState_Invisible__17dLytAutoExplain_cFv = .text:0x8012C580; // type:function size:0x28 +finalizeState_Invisible__17dLytAutoExplain_cFv = .text:0x8012C5B0; // type:function size:0x4 +initializeState_In__17dLytAutoExplain_cFv = .text:0x8012C5C0; // type:function size:0xCC +executeState_In__17dLytAutoExplain_cFv = .text:0x8012C690; // type:function size:0x78 +finalizeState_In__17dLytAutoExplain_cFv = .text:0x8012C710; // type:function size:0x4 +initializeState_OutputText__17dLytAutoExplain_cFv = .text:0x8012C720; // type:function size:0x4 +executeState_OutputText__17dLytAutoExplain_cFv = .text:0x8012C730; // type:function size:0x28 +finalizeState_OutputText__17dLytAutoExplain_cFv = .text:0x8012C760; // type:function size:0x4 +initializeState_Out__17dLytAutoExplain_cFv = .text:0x8012C770; // type:function size:0x48 +executeState_Out__17dLytAutoExplain_cFv = .text:0x8012C7C0; // type:function size:0x78 +finalizeState_Out__17dLytAutoExplain_cFv = .text:0x8012C840; // type:function size:0x4 +build__17dLytAutoExplain_cFPQ23d2d10ResAccIf_cPQ23d2d10ResAccIf_cP15dTagProcessor_c = .text:0x8012C850; // type:function size:0x194 +remove__17dLytAutoExplain_cFv = .text:0x8012C9F0; // type:function size:0x50 +execute__17dLytAutoExplain_cFv = .text:0x8012CA40; // type:function size:0xA8 +draw__17dLytAutoExplain_cFv = .text:0x8012CAF0; // type:function size:0x14 +open__17dLytAutoExplain_cFP12dAcObjBase_cUl = .text:0x8012CB10; // type:function size:0xC +isDoneOpening__17dLytAutoExplain_cCFv = .text:0x8012CB20; // type:function size:0x4C +close__17dLytAutoExplain_cFv = .text:0x8012CB70; // type:function size:0xC +isDoneClosing__17dLytAutoExplain_cCFv = .text:0x8012CB80; // type:function size:0x4C +setText__17dLytAutoExplain_cFPCw = .text:0x8012CBD0; // type:function size:0x7C +checkSomethingMeter__17dLytAutoExplain_cFv = .text:0x8012CC50; // type:function size:0xF4 +getTextBox__17dLytAutoExplain_cFv = .text:0x8012CD50; // type:function size:0x8 +__sinit_\d_lyt_auto_explain_cpp = .text:0x8012CD60; // type:function size:0x338 +__dt__32sFStateID_c<17dLytAutoExplain_c>Fv = .text:0x8012D0A0; // type:function size:0x58 +isSameName__32sFStateID_c<17dLytAutoExplain_c>CFPCc = .text:0x8012D100; // type:function size:0x88 fn_8012D190 = .text:0x8012D190; // type:function size:0x68 fn_8012D200 = .text:0x8012D200; // type:function size:0x108 projectForMapMaybe = .text:0x8012D310; // type:function size:0x18 @@ -7831,7 +7831,7 @@ fn_80138E30 = .text:0x80138E30; // type:function size:0xD4 fn_80138F10 = .text:0x80138F10; // type:function size:0xA0 fn_80138FB0 = .text:0x80138FB0; // type:function size:0xA4 fn_80139060 = .text:0x80139060; // type:function size:0x28 -fn_80139090 = .text:0x80139090; // type:function size:0x478 +isOpenMaybe__13dLytMapMain_cCFv = .text:0x80139090; // type:function size:0x478 fn_80139510 = .text:0x80139510; // type:function size:0xA8 fn_801395C0 = .text:0x801395C0; // type:function size:0x64 fn_80139630 = .text:0x80139630; // type:function size:0x4C @@ -9202,21 +9202,21 @@ __dt__56sFStateMgr_c<17dLytCommonArrow_c,20sStateMethodUsr_FI_c>Fv = .text:0x801 __dt__86sStateMgr_c<17dLytCommonArrow_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x801681E0; // type:function size:0xA0 scope:weak __dt__33sFStateFct_c<17dLytCommonArrow_c>Fv = .text:0x80168280; // type:function size:0x6C scope:weak __dt__30sFState_c<17dLytCommonArrow_c>Fv = .text:0x801682F0; // type:function size:0x58 scope:weak -init__17dLytCommonArrow_cFv = .text:0x80168350; // type:function size:0x124 +build__17dLytCommonArrow_cFv = .text:0x80168350; // type:function size:0x124 changeState__86sStateMgr_c<17dLytCommonArrow_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>FRC12sStateIDIf_c = .text:0x80168480; // type:function size:0x10 scope:weak -fn_80168490__17dLytCommonArrow_cFv = .text:0x80168490; // type:function size:0x68 -fn_80168500__17dLytCommonArrow_cFv = .text:0x80168500; // type:function size:0xB0 +remove__17dLytCommonArrow_cFv = .text:0x80168490; // type:function size:0x68 +execute__17dLytCommonArrow_cFv = .text:0x80168500; // type:function size:0xB0 executeState__86sStateMgr_c<17dLytCommonArrow_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x801685B0; // type:function size:0x10 scope:weak getStateID__86sStateMgr_c<17dLytCommonArrow_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x801685C0; // type:function size:0x10 scope:weak -addToDrawList__17dLytCommonArrow_cFv = .text:0x801685D0; // type:function size:0x34 +draw__17dLytCommonArrow_cFv = .text:0x801685D0; // type:function size:0x34 setState__17dLytCommonArrow_cFl = .text:0x80168610; // type:function size:0x24 setTranslate__17dLytCommonArrow_cFPC3Vec = .text:0x80168640; // type:function size:0x34 requestIn__17dLytCommonArrow_cFv = .text:0x80168680; // type:function size:0x70 requestOut__17dLytCommonArrow_cFv = .text:0x801686F0; // type:function size:0x70 fn_80168760__17dLytCommonArrow_cFv = .text:0x80168760; // type:function size:0x2C displayElement__17dLytCommonArrow_cFlf = .text:0x80168790; // type:function size:0x68 -fn_80168800__17dLytCommonArrow_cFl = .text:0x80168800; // type:function size:0x10 -fn_80168810__17dLytCommonArrow_cFPQ23d2d10AnmGroup_c = .text:0x80168810; // type:function size:0x64 +unbindAt__17dLytCommonArrow_cFl = .text:0x80168800; // type:function size:0x10 +tickDown__17dLytCommonArrow_cFPQ23d2d10AnmGroup_c = .text:0x80168810; // type:function size:0x64 fn_80168880__17dLytCommonArrow_cFv = .text:0x80168880; // type:function size:0xC4 initializeState_None__17dLytCommonArrow_cFv = .text:0x80168950; // type:function size:0x74 executeState_None__17dLytCommonArrow_cFv = .text:0x801689D0; // type:function size:0x28 @@ -9343,7 +9343,7 @@ getNaviTableEquipmentCheckEntry = .text:0x8016C360; // type:function size:0x9C FiContext__setTargetedActorTextId = .text:0x8016C400; // type:function size:0x9C rateBattlePerformance = .text:0x8016C4A0; // type:function size:0x148 prepareFiHelpIndex = .text:0x8016C5F0; // type:function size:0x288 -getGlobalFiInfo0 = .text:0x8016C880; // type:function size:0x20 +getGlobalFiInfo0__9FiContextFl = .text:0x8016C880; // type:function size:0x20 fn_8016C8A0 = .text:0x8016C8A0; // type:function size:0x54 createGlobalFiContext = .text:0x8016C900; // type:function size:0x2C FiContext__init = .text:0x8016C930; // type:function size:0xB4 @@ -10907,50 +10907,50 @@ fn_801B1F10 = .text:0x801B1F10; // type:function size:0x38 ActorEventFlowManager__clear = .text:0x801B1F50; // type:function size:0x2C fn_801B1F80 = .text:0x801B1F80; // type:function size:0xD8 fn_801B2060 = .text:0x801B2060; // type:function size:0x98 -fn_801B2100 = .text:0x801B2100; // type:function size:0x30 -msbAlloc = .text:0x801B2130; // type:function size:0x2C -msbFree = .text:0x801B2160; // type:function size:0x24 -GlobalMessageRelatedContext__ctor = .text:0x801B2190; // type:function size:0x48 -fn_801B21E0 = .text:0x801B21E0; // type:function size:0x268 -fn_801B2450 = .text:0x801B2450; // type:function size:0xBC -fn_801B2510 = .text:0x801B2510; // type:function size:0x7C -fn_801B2590 = .text:0x801B2590; // type:function size:0x8 -getTextMessageByLabel = .text:0x801B25A0; // type:function size:0x24 -fn_801B25D0 = .text:0x801B25D0; // type:function size:0x2C -fn_801B2600 = .text:0x801B2600; // type:function size:0xC -fn_801B2610 = .text:0x801B2610; // type:function size:0x180 -fn_801B2790 = .text:0x801B2790; // type:function size:0x98 -fn_801B2830 = .text:0x801B2830; // type:function size:0xC -fn_801B2840 = .text:0x801B2840; // type:function size:0x38 -getMsbtNameInArc = .text:0x801B2880; // type:function size:0x88 -getMsbfNameInArc = .text:0x801B2910; // type:function size:0x88 -getMajorNumberForMsbt = .text:0x801B29A0; // type:function size:0x24 -fn_801B29D0 = .text:0x801B29D0; // type:function size:0x24 +dMessage_c_classInit__Fv = .text:0x801B2100; // type:function size:0x30 +msbAlloc__FUl = .text:0x801B2130; // type:function size:0x2C +msbFree__FPv = .text:0x801B2160; // type:function size:0x24 +__ct__10dMessage_cFv = .text:0x801B2190; // type:function size:0x48 +create__10dMessage_cFv = .text:0x801B21E0; // type:function size:0x268 +doDelete__10dMessage_cFv = .text:0x801B2450; // type:function size:0xBC +execute__10dMessage_cFv = .text:0x801B2510; // type:function size:0x7C +draw__10dMessage_cFv = .text:0x801B2590; // type:function size:0x8 +getTextMessageByLabel__10dMessage_cFPCcbPwUl = .text:0x801B25A0; // type:function size:0x24 +getTextMessageByLabel__10dMessage_cFPCcP15dTagProcessor_cbPwUl = .text:0x801B25D0; // type:function size:0x2C +formatText__10dMessage_cFPCw = .text:0x801B2600; // type:function size:0xC +getTextMessageByLabelInternal__10dMessage_cFPCcP15dTagProcessor_cbPwUl = .text:0x801B2610; // type:function size:0x180 +formatTextInternal__10dMessage_cFPCw = .text:0x801B2790; // type:function size:0x98 +isValidTextLabel__10dMessage_cFPCc = .text:0x801B2830; // type:function size:0xC +checkIsValidTextLabel__10dMessage_cFPCc = .text:0x801B2840; // type:function size:0x38 +getMsbtFileName__10dMessage_cFl = .text:0x801B2880; // type:function size:0x88 +getMsbfFileName__10dMessage_cFl = .text:0x801B2910; // type:function size:0x88 +getMsbtNumberByIndex__10dMessage_cFl = .text:0x801B29A0; // type:function size:0x24 +getMsbfNumberByIndex__10dMessage_cFl = .text:0x801B29D0; // type:function size:0x24 fn_801B2A00 = .text:0x801B2A00; // type:function size:0x14 -fn_801B2A20 = .text:0x801B2A20; // type:function size:0x4C -fn_801B2A70 = .text:0x801B2A70; // type:function size:0xC -fn_801B2A80 = .text:0x801B2A80; // type:function size:0xA4 -getMsbtInfoForIndex = .text:0x801B2B30; // type:function size:0xC -fn_801B2B40 = .text:0x801B2B40; // type:function size:0x38 -getMsbfInfoForIndex = .text:0x801B2B80; // type:function size:0xC -fn_801B2B90 = .text:0x801B2B90; // type:function size:0x38 +getTextIndexForLabel__10dMessage_cFPCc = .text:0x801B2A20; // type:function size:0x4C +getMsbtIndexForLabel__10dMessage_cFPCc = .text:0x801B2A70; // type:function size:0xC +getMsbtIndexForLabelInternal__10dMessage_cFPCc = .text:0x801B2A80; // type:function size:0xA4 +getMsbtInfoForIndex__10dMessage_cFl = .text:0x801B2B30; // type:function size:0xC +getMsbtInfoForIndexInternal__10dMessage_cFl = .text:0x801B2B40; // type:function size:0x38 +getMsbfInfoForIndex__10dMessage_cFl = .text:0x801B2B80; // type:function size:0xC +getMsbfInfoForIndexInternal__10dMessage_cFl = .text:0x801B2B90; // type:function size:0x38 fn_801B2BD0 = .text:0x801B2BD0; // type:function size:0x10 fn_801B2BE0 = .text:0x801B2BE0; // type:function size:0x40 fn_801B2C20 = .text:0x801B2C20; // type:function size:0x30 -fn_801B2C50 = .text:0x801B2C50; // type:function size:0xC0 +executeMinigame__10dMessage_cFv = .text:0x801B2C50; // type:function size:0xC0 fn_801B2D10 = .text:0x801B2D10; // type:function size:0x4C -fn_801B2D60 = .text:0x801B2D60; // type:function size:0x44 -getUsedLanguageString = .text:0x801B2DB0; // type:function size:0x1B0 -getEventFlowFileNameByIndex = .text:0x801B2F60; // type:function size:0x4 -getEventFlowFileNameByIndex2 = .text:0x801B2F70; // type:function size:0x14 -getDataFromMsbArc = .text:0x801B2F90; // type:function size:0x70 -setZevFromMsbArc = .text:0x801B3000; // type:function size:0x68 -fn_801B3070 = .text:0x801B3070; // type:function size:0x104 -fn_801B3180 = .text:0x801B3180; // type:function size:0x24 -fn_801B31B0 = .text:0x801B31B0; // type:function size:0x24 -fn_801B31E0 = .text:0x801B31E0; // type:function size:0x34 -fn_801B3220 = .text:0x801B3220; // type:function size:0x64 -initCurrentLangString = .text:0x801B3290; // type:function size:0xC +reset__10dMessage_cFv = .text:0x801B2D60; // type:function size:0x44 +getLanguageIdentifier__10dMessage_cFv = .text:0x801B2DB0; // type:function size:0x1B0 +getArcNameByIndex__10dMessage_cFlb = .text:0x801B2F60; // type:function size:0x4 +getArcNameByIndexInternal__10dMessage_cFlb = .text:0x801B2F70; // type:function size:0x14 +getDataFromMsbArc__10dMessage_cFlPCcb = .text:0x801B2F90; // type:function size:0x70 +setZevFromMsbArc__10dMessage_cFv = .text:0x801B3000; // type:function size:0x68 +setStageZevFromMsbArc__10dMessage_cFv = .text:0x801B3070; // type:function size:0x104 +getZev0Internal__10dMessage_cFv = .text:0x801B3180; // type:function size:0x24 +getZevStageInternal__10dMessage_cFv = .text:0x801B31B0; // type:function size:0x24 +getArcIndexForFile__10dMessage_cFPCc = .text:0x801B31E0; // type:function size:0x34 +__dt__10dMessage_cFv = .text:0x801B3220; // type:function size:0x64 +__sinit_\d_message_cpp = .text:0x801B3290; // type:function size:0xC scope:local dStage_c_classInit__Fv = .text:0x801B32A0; // type:function size:0x30 __ct__8dStage_cFv = .text:0x801B32D0; // type:function size:0xF0 __dt__18sFPhase<8dStage_c>Fv = .text:0x801B33C0; // type:function size:0x58 @@ -16794,7 +16794,7 @@ LytControlGame__stateMapSetResLeave = .text:0x802CCC70; // type:function size:0x LytControlGame__stateMapSyncResEnter = .text:0x802CCC80; // type:function size:0x4 LytControlGame__stateMapSetResUpdate2 = .text:0x802CCC90; // type:function size:0x9C LytControlGame__stateMapSyncResLeave = .text:0x802CCD30; // type:function size:0x4 -fn_802CCD40 = .text:0x802CCD40; // type:function size:0x10 +fn_802CCD40__17dLytControlGame_cFb = .text:0x802CCD40; // type:function size:0x10 LytControlGame__stateMapEnter = .text:0x802CCD50; // type:function size:0x110 LytControlGame__stateMapUpdate = .text:0x802CCE60; // type:function size:0x138 LytControlGame__stateMapLeave = .text:0x802CCFA0; // type:function size:0x4 @@ -16834,8 +16834,8 @@ fn_802CFA90 = .text:0x802CFA90; // type:function size:0x2E0 fn_802CFD70 = .text:0x802CFD70; // type:function size:0x20 updateHelpText = .text:0x802CFD90; // type:function size:0x1C fn_802CFDB0 = .text:0x802CFDB0; // type:function size:0x74 -fn_802CFE30 = .text:0x802CFE30; // type:function size:0xD8 -LytControlGame__isNotInStateMap = .text:0x802CFF10; // type:function size:0x4C +isInSomeMapState__17dLytControlGame_cCFv = .text:0x802CFE30; // type:function size:0xD8 +isNotInStateMap__17dLytControlGame_cCFv = .text:0x802CFF10; // type:function size:0x4C fn_802CFF60 = .text:0x802CFF60; // type:function size:0x90 fn_802CFFF0 = .text:0x802CFFF0; // type:function size:0x1C somehowRelatedToEnteringLightPillars = .text:0x802D0010; // type:function size:0x254 @@ -20872,7 +20872,7 @@ fn_8037EE40 = .text:0x8037EE40; // type:function size:0x3C fn_8037EE80 = .text:0x8037EE80; // type:function size:0x64 playSound = .text:0x8037EEF0; // type:function size:0xAC fn_8037EFA0 = .text:0x8037EFA0; // type:function size:0x80 -playButtonPressSoundWhenAdvancingTextBoxes = .text:0x8037F020; // type:function size:0xB4 +playButtonPressSoundWhenAdvancingTextBoxes__17SmallSoundManagerFf = .text:0x8037F020; // type:function size:0xB4 fn_8037F0E0 = .text:0x8037F0E0; // type:function size:0xC fn_8037F0F0 = .text:0x8037F0F0; // type:function size:0x60 fn_8037F150 = .text:0x8037F150; // type:function size:0x6D0 @@ -30998,11 +30998,11 @@ lbl_80510514 = .data:0x80510514; // type:object size:0x238 lbl_8051074C = .data:0x8051074C; // type:object size:0x34 lbl_80510780 = .data:0x80510780; // type:object size:0xC lbl_8051078C = .data:0x8051078C; // type:object size:0xC -lbl_80510798 = .data:0x80510798; // type:object size:0x88 +__vt__10dTextBox_c = .data:0x80510798; // type:object size:0x84 __vt__9dWindow_c = .data:0x80510820; // type:object size:0x8C scope:weak __vt__Q23d2d10ResAccIf_c = .data:0x805108B0; // type:object size:0x18 __vt__12UnkTextThing = .data:0x805108C8; // type:object size:0xC scope:weak -lbl_805108D8 = .data:0x805108D8; // type:object size:0x10 +__vt__13TextWindowUnk = .data:0x805108D8; // type:object size:0x10 lbl_805108E8 = .data:0x805108E8; // type:object size:0x10 lbl_805108F8 = .data:0x805108F8; // type:object size:0x14 data:string jumptable_8051090C = .data:0x8051090C; // type:object size:0x80 scope:local @@ -31963,15 +31963,15 @@ __vt__13DoButtonClass = .data:0x8051AA60; // type:object size:0x16C __vt__29sFStateID_c<14dLytDobutton_c> = .data:0x8051ABCC; // type:object size:0x34 lbl_8051AC00 = .data:0x8051AC00; // type:object size:0xC lbl_8051AC0C = .data:0x8051AC0C; // type:object size:0xC -lbl_8051AC18 = .data:0x8051AC18; // type:object size:0x14 -lbl_8051AC2C = .data:0x8051AC2C; // type:object size:0xC -lbl_8051AC38 = .data:0x8051AC38; // type:object size:0x14 -lbl_8051AC4C = .data:0x8051AC4C; // type:object size:0x10 -lbl_8051AC5C = .data:0x8051AC5C; // type:object size:0x18 +lbl_8051AC18 = .data:0x8051AC18; // type:object size:0x11 data:string +lbl_8051AC2C = .data:0x8051AC2C; // type:object size:0xB data:string +lbl_8051AC38 = .data:0x8051AC38; // type:object size:0x13 data:string +lbl_8051AC4C = .data:0x8051AC4C; // type:object size:0xD data:string +lbl_8051AC5C = .data:0x8051AC5C; // type:object size:0x15 data:string lbl_8051AC74 = .data:0x8051AC74; // type:object size:0xC data:string -lbl_8051AC80 = .data:0x8051AC80; // type:object size:0x14 -lbl_8051AC94 = .data:0x8051AC94; // type:object size:0x10 -lbl_8051ACA4 = .data:0x8051ACA4; // type:object size:0x34 +lbl_8051AC80 = .data:0x8051AC80; // type:object size:0x12 data:string +lbl_8051AC94 = .data:0x8051AC94; // type:object size:0xE data:string +__vt__16dLytCommonABtn_c = .data:0x8051ACA4; // type:object size:0x34 lbl_8051ACD8 = .data:0x8051ACD8; // type:object size:0x18 data:string lbl_8051ACF0 = .data:0x8051ACF0; // type:object size:0x9 data:string lbl_8051ACFC = .data:0x8051ACFC; // type:object size:0x1C data:string @@ -32057,47 +32057,47 @@ lbl_8051B6E8 = .data:0x8051B6E8; // type:object size:0xC lbl_8051B6F4 = .data:0x8051B6F4; // type:object size:0xC lbl_8051B700 = .data:0x8051B700; // type:object size:0xC data:string jumptable_8051B70C = .data:0x8051B70C; // type:object size:0x7C scope:local -lbl_8051B788 = .data:0x8051B788; // type:object size:0x10 -lbl_8051B798 = .data:0x8051B798; // type:object size:0x30 -lbl_8051B7C8 = .data:0x8051B7C8; // type:object size:0x30 -lbl_8051B7F8 = .data:0x8051B7F8; // type:object size:0x18 -lbl_8051B810 = .data:0x8051B810; // type:object size:0x18 -lbl_8051B828 = .data:0x8051B828; // type:object size:0x30 -lbl_8051B858 = .data:0x8051B858; // type:object size:0x30 -lbl_8051B888 = .data:0x8051B888; // type:object size:0x18 -lbl_8051B8A0 = .data:0x8051B8A0; // type:object size:0x18 -lbl_8051B8B8 = .data:0x8051B8B8; // type:object size:0x30 -lbl_8051B8E8 = .data:0x8051B8E8; // type:object size:0x30 -lbl_8051B918 = .data:0x8051B918; // type:object size:0x18 -lbl_8051B930 = .data:0x8051B930; // type:object size:0x18 -lbl_8051B948 = .data:0x8051B948; // type:object size:0x30 -lbl_8051B978 = .data:0x8051B978; // type:object size:0x30 -lbl_8051B9A8 = .data:0x8051B9A8; // type:object size:0x18 -lbl_8051B9C0 = .data:0x8051B9C0; // type:object size:0x18 -lbl_8051B9D8 = .data:0x8051B9D8; // type:object size:0x30 -lbl_8051BA08 = .data:0x8051BA08; // type:object size:0x30 -lbl_8051BA38 = .data:0x8051BA38; // type:object size:0x18 -lbl_8051BA50 = .data:0x8051BA50; // type:object size:0x18 -lbl_8051BA68 = .data:0x8051BA68; // type:object size:0x30 -lbl_8051BA98 = .data:0x8051BA98; // type:object size:0x30 -lbl_8051BAC8 = .data:0x8051BAC8; // type:object size:0x18 -lbl_8051BAE0 = .data:0x8051BAE0; // type:object size:0x18 -lbl_8051BAF8 = .data:0x8051BAF8; // type:object size:0x30 -lbl_8051BB28 = .data:0x8051BB28; // type:object size:0x30 -lbl_8051BB58 = .data:0x8051BB58; // type:object size:0x18 -lbl_8051BB70 = .data:0x8051BB70; // type:object size:0x18 -lbl_8051BB88 = .data:0x8051BB88; // type:object size:0x30 -lbl_8051BBB8 = .data:0x8051BBB8; // type:object size:0x30 -lbl_8051BBE8 = .data:0x8051BBE8; // type:object size:0x18 -lbl_8051BC00 = .data:0x8051BC00; // type:object size:0x18 -lbl_8051BC18 = .data:0x8051BC18; // type:object size:0x30 -lbl_8051BC48 = .data:0x8051BC48; // type:object size:0x30 -lbl_8051BC78 = .data:0x8051BC78; // type:object size:0x18 -lbl_8051BC90 = .data:0x8051BC90; // type:object size:0x18 -lbl_8051BCA8 = .data:0x8051BCA8; // type:object size:0xC -lbl_8051BCB4 = .data:0x8051BCB4; // type:object size:0xC -lbl_8051BCC0 = .data:0x8051BCC0; // type:object size:0x60C -lbl_8051C2CC = .data:0x8051C2CC; // type:object size:0x34 +__vt__22MsgWindowUnkLocalClass = .data:0x8051B788; // type:object size:0xC +__vt__56sFStateMgr_c<17dLytAutoCaption_c,20sStateMethodUsr_FI_c> = .data:0x8051B798; // type:object size:0x30 +__vt__86sStateMgr_c<17dLytAutoCaption_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c> = .data:0x8051B7C8; // type:object size:0x30 +__vt__33sFStateFct_c<17dLytAutoCaption_c> = .data:0x8051B7F8; // type:object size:0x14 +__vt__30sFState_c<17dLytAutoCaption_c> = .data:0x8051B810; // type:object size:0x18 +__vt__56sFStateMgr_c<17dLytAutoExplain_c,20sStateMethodUsr_FI_c> = .data:0x8051B828; // type:object size:0x30 +__vt__86sStateMgr_c<17dLytAutoExplain_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c> = .data:0x8051B858; // type:object size:0x30 +__vt__33sFStateFct_c<17dLytAutoExplain_c> = .data:0x8051B888; // type:object size:0x14 +__vt__30sFState_c<17dLytAutoExplain_c> = .data:0x8051B8A0; // type:object size:0x18 +__vt__58sFStateMgr_c<19dLytMsgWindowDemo_c,20sStateMethodUsr_FI_c> = .data:0x8051B8B8; // type:object size:0x30 +__vt__88sStateMgr_c<19dLytMsgWindowDemo_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c> = .data:0x8051B8E8; // type:object size:0x30 +__vt__35sFStateFct_c<19dLytMsgWindowDemo_c> = .data:0x8051B918; // type:object size:0x14 +__vt__32sFState_c<19dLytMsgWindowDemo_c> = .data:0x8051B930; // type:object size:0x18 +__vt__57sFStateMgr_c<18dLytMsgWindowGet_c,20sStateMethodUsr_FI_c> = .data:0x8051B948; // type:object size:0x30 +__vt__87sStateMgr_c<18dLytMsgWindowGet_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c> = .data:0x8051B978; // type:object size:0x30 +__vt__34sFStateFct_c<18dLytMsgWindowGet_c> = .data:0x8051B9A8; // type:object size:0x14 +__vt__31sFState_c<18dLytMsgWindowGet_c> = .data:0x8051B9C0; // type:object size:0x18 +__vt__59sFStateMgr_c<20dLytMsgWindowStone_c,20sStateMethodUsr_FI_c> = .data:0x8051B9D8; // type:object size:0x30 +__vt__89sStateMgr_c<20dLytMsgWindowStone_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c> = .data:0x8051BA08; // type:object size:0x30 +__vt__36sFStateFct_c<20dLytMsgWindowStone_c> = .data:0x8051BA38; // type:object size:0x14 +__vt__33sFState_c<20dLytMsgWindowStone_c> = .data:0x8051BA50; // type:object size:0x18 +__vt__58sFStateMgr_c<19dLytMsgWindowWood_c,20sStateMethodUsr_FI_c> = .data:0x8051BA68; // type:object size:0x30 +__vt__88sStateMgr_c<19dLytMsgWindowWood_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c> = .data:0x8051BA98; // type:object size:0x30 +__vt__35sFStateFct_c<19dLytMsgWindowWood_c> = .data:0x8051BAC8; // type:object size:0x14 +__vt__32sFState_c<19dLytMsgWindowWood_c> = .data:0x8051BAE0; // type:object size:0x18 +__vt__59sFStateMgr_c<20dLytMsgWindowSword_c,20sStateMethodUsr_FI_c> = .data:0x8051BAF8; // type:object size:0x30 +__vt__89sStateMgr_c<20dLytMsgWindowSword_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c> = .data:0x8051BB28; // type:object size:0x30 +__vt__36sFStateFct_c<20dLytMsgWindowSword_c> = .data:0x8051BB58; // type:object size:0x14 +__vt__33sFState_c<20dLytMsgWindowSword_c> = .data:0x8051BB70; // type:object size:0x18 +__vt__58sFStateMgr_c<19dLytMsgWindowLink_c,20sStateMethodUsr_FI_c> = .data:0x8051BB88; // type:object size:0x30 +__vt__88sStateMgr_c<19dLytMsgWindowLink_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c> = .data:0x8051BBB8; // type:object size:0x30 +__vt__35sFStateFct_c<19dLytMsgWindowLink_c> = .data:0x8051BBE8; // type:object size:0x14 +__vt__32sFState_c<19dLytMsgWindowLink_c> = .data:0x8051BC00; // type:object size:0x18 +__vt__58sFStateMgr_c<19dLytMsgWindowTalk_c,20sStateMethodUsr_FI_c> = .data:0x8051BC18; // type:object size:0x30 +__vt__88sStateMgr_c<19dLytMsgWindowTalk_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c> = .data:0x8051BC48; // type:object size:0x30 +__vt__35sFStateFct_c<19dLytMsgWindowTalk_c> = .data:0x8051BC78; // type:object size:0x14 +__vt__32sFState_c<19dLytMsgWindowTalk_c> = .data:0x8051BC90; // type:object size:0x18 +__vt__20MsgWindowBlurRelated = .data:0x8051BCA8; // type:object size:0xC +__vt__13dLytTextLight = .data:0x8051BCB4; // type:object size:0xC +__vt__13dLytTextSword = .data:0x8051BCC0; // type:object size:0xC +__vt__30sFStateID_c<15dLytMsgWindow_c> = .data:0x8051C2CC; // type:object size:0x34 lbl_8051C300 = .data:0x8051C300; // type:object size:0xC lbl_8051C30C = .data:0x8051C30C; // type:object size:0xC data:string lbl_8051C318 = .data:0x8051C318; // type:object size:0x10 @@ -32155,29 +32155,30 @@ lbl_8051C6B8 = .data:0x8051C6B8; // type:object size:0x40 lbl_8051C6F8 = .data:0x8051C6F8; // type:object size:0x3AC lbl_8051CAA4 = .data:0x8051CAA4; // type:object size:0x34 lbl_8051CAD8 = .data:0x8051CAD8; // type:object size:0x38 -lbl_8051CB10 = .data:0x8051CB10; // type:object size:0xC -lbl_8051CB1C = .data:0x8051CB1C; // type:object size:0xC -lbl_8051CB28 = .data:0x8051CB28; // type:object size:0xC -lbl_8051CB34 = .data:0x8051CB34; // type:object size:0x164 -lbl_8051CC98 = .data:0x8051CC98; // type:object size:0x1C -lbl_8051CCB4 = .data:0x8051CCB4; // type:object size:0xC -lbl_8051CCC0 = .data:0x8051CCC0; // type:object size:0x20 +lbl_8051CB10 = .data:0x8051CB10; // type:object size:0x9 data:string +lbl_8051CB1C = .data:0x8051CB1C; // type:object size:0xA data:string +lbl_8051CB28 = .data:0x8051CB28; // type:object size:0xB data:string +lbl_8051CB34 = .data:0x8051CB34; // type:object size:0xB 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:0x10 +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:0xC +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:0x10 -lbl_8051CD54 = .data:0x8051CD54; // type:object size:0xC -lbl_8051CD60 = .data:0x8051CD60; // type:object size:0xC -lbl_8051CD6C = .data:0x8051CD6C; // type:object size:0x10 +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:0x10 -lbl_8051CDA0 = .data:0x8051CDA0; // type:object size:0x10 -lbl_8051CDB0 = .data:0x8051CDB0; // type:object size:0xC -lbl_8051CDBC = .data:0x8051CDBC; // type:object size:0x18 -LytMsgWindowTalk__vtable = .data:0x8051CDD4; // type:object size:0x1B4 -lbl_8051CF88 = .data:0x8051CF88; // type:object size:0x38 +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 +__vt__19dLytMsgWindowTalk_c = .data:0x8051CDD4; // type:object size:0x44 +__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 @@ -32195,8 +32196,8 @@ 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 -lbl_8051D0F0 = .data:0x8051D0F0; // type:object size:0x1B0 -lbl_8051D2A0 = .data:0x8051D2A0; // type:object size:0x38 +__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 @@ -32213,62 +32214,62 @@ 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 -LytMsgWindowGet__vtable = .data:0x8051D3E0; // type:object size:0x160 -lbl_8051D540 = .data:0x8051D540; // type:object size:0x38 -lbl_8051D578 = .data:0x8051D578; // type:object size:0x1C -lbl_8051D594 = .data:0x8051D594; // type:object size:0xC -lbl_8051D5A0 = .data:0x8051D5A0; // type:object size:0x1C +__vt__18dLytMsgWindowGet_c = .data:0x8051D3E0; // type:object size:0x44 +__vt__33sFStateID_c<18dLytMsgWindowGet_c> = .data:0x8051D540; // type:object size:0x34 +lbl_8051D578 = .data:0x8051D578; // type:object size:0x1A data:string +lbl_8051D594 = .data:0x8051D594; // type:object size:0xB data:string +lbl_8051D5A0 = .data:0x8051D5A0; // type:object size:0x1B data:string lbl_8051D5BC = .data:0x8051D5BC; // type:object size:0x1C data:string -lbl_8051D5D8 = .data:0x8051D5D8; // type:object size:0xC -lbl_8051D5E4 = .data:0x8051D5E4; // type:object size:0x20 -lbl_8051D604 = .data:0x8051D604; // type:object size:0xC +lbl_8051D5D8 = .data:0x8051D5D8; // type:object size:0xA data:string +lbl_8051D5E4 = .data:0x8051D5E4; // type:object size:0x1D data:string +lbl_8051D604 = .data:0x8051D604; // type:object size:0xB data:string lbl_8051D610 = .data:0x8051D610; // type:object size:0x20 data:string -lbl_8051D630 = .data:0x8051D630; // type:object size:0x10 -lbl_8051D640 = .data:0x8051D640; // type:object size:0xC -lbl_8051D64C = .data:0x8051D64C; // type:object size:0xC -lbl_8051D658 = .data:0x8051D658; // type:object size:0x10 +lbl_8051D630 = .data:0x8051D630; // type:object size:0xE data:string +lbl_8051D640 = .data:0x8051D640; // type:object size:0xA data:string +lbl_8051D64C = .data:0x8051D64C; // type:object size:0xB data:string +lbl_8051D658 = .data:0x8051D658; // type:object size:0xE data:string lbl_8051D668 = .data:0x8051D668; // type:object size:0xC data:4byte -lbl_8051D674 = .data:0x8051D674; // type:object size:0x10 -lbl_8051D684 = .data:0x8051D684; // type:object size:0x10 -lbl_8051D694 = .data:0x8051D694; // type:object size:0xC -lbl_8051D6A0 = .data:0x8051D6A0; // type:object size:0x18 -LytMsgWindowSword__vtable = .data:0x8051D6B8; // type:object size:0x1B4 -lbl_8051D86C = .data:0x8051D86C; // type:object size:0x34 -lbl_8051D8A0 = .data:0x8051D8A0; // type:object size:0x1C -lbl_8051D8BC = .data:0x8051D8BC; // type:object size:0xC -lbl_8051D8C8 = .data:0x8051D8C8; // type:object size:0x1C -lbl_8051D8E4 = .data:0x8051D8E4; // type:object size:0xC -lbl_8051D8F0 = .data:0x8051D8F0; // type:object size:0x1C -lbl_8051D90C = .data:0x8051D90C; // type:object size:0xC -lbl_8051D918 = .data:0x8051D918; // type:object size:0xC -lbl_8051D924 = .data:0x8051D924; // type:object size:0x10 -lbl_8051D934 = .data:0x8051D934; // type:object size:0x10 -lbl_8051D944 = .data:0x8051D944; // type:object size:0xC -lbl_8051D950 = .data:0x8051D950; // type:object size:0x18 -lbl_8051D968 = .data:0x8051D968; // type:object size:0x16C -lbl_8051DAD4 = .data:0x8051DAD4; // type:object size:0x34 -lbl_8051DB08 = .data:0x8051DB08; // type:object size:0x1C -lbl_8051DB24 = .data:0x8051DB24; // type:object size:0xC +lbl_8051D674 = .data:0x8051D674; // type:object size:0xD data:string +lbl_8051D684 = .data:0x8051D684; // type:object size:0xE data:string +lbl_8051D694 = .data:0x8051D694; // type:object size:0x9 data:string +lbl_8051D6A0 = .data:0x8051D6A0; // type:object size:0x17 data:string +__vt__20dLytMsgWindowSword_c = .data:0x8051D6B8; // type:object size:0x44 +__vt__35sFStateID_c<20dLytMsgWindowSword_c> = .data:0x8051D86C; // type:object size:0x34 +lbl_8051D8A0 = .data:0x8051D8A0; // type:object size:0x19 data:string +lbl_8051D8BC = .data:0x8051D8BC; // type:object size:0xB data:string +lbl_8051D8C8 = .data:0x8051D8C8; // type:object size:0x1B data:string +lbl_8051D8E4 = .data:0x8051D8E4; // type:object size:0xA data:string +lbl_8051D8F0 = .data:0x8051D8F0; // type:object size:0x1A data:string +lbl_8051D90C = .data:0x8051D90C; // type:object size:0xA data:string +lbl_8051D918 = .data:0x8051D918; // type:object size:0xB data:string +lbl_8051D924 = .data:0x8051D924; // type:object size:0xD data:string +lbl_8051D934 = .data:0x8051D934; // type:object size:0xE data:string +lbl_8051D944 = .data:0x8051D944; // type:object size:0x9 data:string +lbl_8051D950 = .data:0x8051D950; // type:object size:0x16 data:string +__vt__19dLytMsgWindowWood_c = .data:0x8051D968; // type:object size:0x44 +__vt__34sFStateID_c<19dLytMsgWindowWood_c> = .data:0x8051DAD4; // type:object size:0x34 +lbl_8051DB08 = .data:0x8051DB08; // type:object size:0x1A data:string +lbl_8051DB24 = .data:0x8051DB24; // type:object size:0xB data:string lbl_8051DB30 = .data:0x8051DB30; // type:object size:0x1C data:string -lbl_8051DB4C = .data:0x8051DB4C; // type:object size:0xC -lbl_8051DB58 = .data:0x8051DB58; // type:object size:0x1C -lbl_8051DB74 = .data:0x8051DB74; // type:object size:0xC -lbl_8051DB80 = .data:0x8051DB80; // type:object size:0xC -lbl_8051DB8C = .data:0x8051DB8C; // type:object size:0x10 -lbl_8051DB9C = .data:0x8051DB9C; // type:object size:0x10 -lbl_8051DBAC = .data:0x8051DBAC; // type:object size:0x10 +lbl_8051DB4C = .data:0x8051DB4C; // type:object size:0xA data:string +lbl_8051DB58 = .data:0x8051DB58; // type:object size:0x1B data:string +lbl_8051DB74 = .data:0x8051DB74; // type:object size:0xA data:string +lbl_8051DB80 = .data:0x8051DB80; // type:object size:0xB data:string +lbl_8051DB8C = .data:0x8051DB8C; // type:object size:0xD data:string +lbl_8051DB9C = .data:0x8051DB9C; // type:object size:0xE data:string +lbl_8051DBAC = .data:0x8051DBAC; // type:object size:0xE data:string lbl_8051DBBC = .data:0x8051DBBC; // type:object size:0xC data:4byte -lbl_8051DBC8 = .data:0x8051DBC8; // type:object size:0xC -lbl_8051DBD4 = .data:0x8051DBD4; // type:object size:0x18 -lbl_8051DBEC = .data:0x8051DBEC; // type:object size:0x16C -lbl_8051DD58 = .data:0x8051DD58; // type:object size:0x38 -lbl_8051DD90 = .data:0x8051DD90; // type:object size:0x18 -lbl_8051DDA8 = .data:0x8051DDA8; // type:object size:0xC -lbl_8051DDB4 = .data:0x8051DDB4; // type:object size:0x18 -lbl_8051DDCC = .data:0x8051DDCC; // type:object size:0x10 -lbl_8051DDDC = .data:0x8051DDDC; // type:object size:0x8C -lbl_8051DE68 = .data:0x8051DE68; // type:object size:0x16C -lbl_8051DFD4 = .data:0x8051DFD4; // type:object size:0x34 +lbl_8051DBC8 = .data:0x8051DBC8; // type:object size:0x9 data:string +lbl_8051DBD4 = .data:0x8051DBD4; // type:object size:0x17 data:string +__vt__20dLytMsgWindowStone_c = .data:0x8051DBEC; // type:object size:0x44 +__vt__35sFStateID_c<20dLytMsgWindowStone_c> = .data:0x8051DD58; // type:object size:0x34 +lbl_8051DD90 = .data:0x8051DD90; // type:object size:0x15 data:string +lbl_8051DDA8 = .data:0x8051DDA8; // type:object size:0xB data:string +lbl_8051DDB4 = .data:0x8051DDB4; // type:object size:0x16 data:string +lbl_8051DDCC = .data:0x8051DDCC; // type:object size:0xD data:string +lbl_8051DDDC = .data:0x8051DDDC; // type:object size:0xE data:string +__vt__19dLytMsgWindowDemo_c = .data:0x8051DE68; // type:object size:0x44 +__vt__34sFStateID_c<19dLytMsgWindowDemo_c> = .data:0x8051DFD4; // type:object size:0x34 lbl_8051E008 = .data:0x8051E008; // type:object size:0x1C lbl_8051E024 = .data:0x8051E024; // type:object size:0xC lbl_8051E030 = .data:0x8051E030; // type:object size:0x20 @@ -32317,8 +32318,8 @@ lbl_8051E5E0 = .data:0x8051E5E0; // type:object size:0x10 lbl_8051E5F0 = .data:0x8051E5F0; // type:object size:0x10 lbl_8051E600 = .data:0x8051E600; // type:object size:0x10 lbl_8051E610 = .data:0x8051E610; // type:object size:0x18 -lbl_8051E628 = .data:0x8051E628; // type:object size:0x164 -lbl_8051E78C = .data:0x8051E78C; // type:object size:0x34 +__vt__17dLytAutoCaption_c = .data:0x8051E628; // type:object size:0x44 +__vt__32sFStateID_c<17dLytAutoCaption_c> = .data:0x8051E78C; // type:object size:0x34 lbl_8051E7C0 = .data:0x8051E7C0; // type:object size:0x18 data:string lbl_8051E7D8 = .data:0x8051E7D8; // type:object size:0xC lbl_8051E7E4 = .data:0x8051E7E4; // type:object size:0x1C @@ -32328,8 +32329,8 @@ lbl_8051E828 = .data:0x8051E828; // type:object size:0x10 lbl_8051E838 = .data:0x8051E838; // type:object size:0x10 lbl_8051E848 = .data:0x8051E848; // type:object size:0x10 lbl_8051E858 = .data:0x8051E858; // type:object size:0x18 -lbl_8051E870 = .data:0x8051E870; // type:object size:0x164 -lbl_8051E9D4 = .data:0x8051E9D4; // type:object size:0x34 +__vt__17dLytAutoExplain_c = .data:0x8051E870; // type:object size:0x44 +__vt__32sFStateID_c<17dLytAutoExplain_c> = .data:0x8051E9D4; // type:object size:0x34 lbl_8051EA08 = .data:0x8051EA08; // type:object size:0xA0 data:4byte lbl_8051EAA8 = .data:0x8051EAA8; // type:object size:0x38 lbl_8051EAE0 = .data:0x8051EAE0; // type:object size:0x14 @@ -33984,170 +33985,170 @@ jumptable_8052CAC8 = .data:0x8052CAC8; // type:object size:0x28 scope:local lbl_8052CAF0 = .data:0x8052CAF0; // type:object size:0x114 jumptable_8052CC04 = .data:0x8052CC04; // type:object size:0x20 scope:local g_profile_MESSAGE = .data:0x8052CC24; // type:object size:0xC -lbl_8052CC30 = .data:0x8052CC30; // type:object size:0x10 +lbl_8052CC30 = .data:0x8052CC30; // type:object size:0xE data:string lbl_8052CC40 = .data:0x8052CC40; // type:object size:0x10 data:string lbl_8052CC50 = .data:0x8052CC50; // type:object size:0x10 data:string -lbl_8052CC60 = .data:0x8052CC60; // type:object size:0x18 +lbl_8052CC60 = .data:0x8052CC60; // type:object size:0x11 data:string lbl_8052CC78 = .data:0x8052CC78; // type:object size:0x10 data:string -lbl_8052CC88 = .data:0x8052CC88; // type:object size:0x14 -lbl_8052CC9C = .data:0x8052CC9C; // type:object size:0x18 -lbl_8052CCB4 = .data:0x8052CCB4; // type:object size:0x18 -lbl_8052CCCC = .data:0x8052CCCC; // type:object size:0x18 -lbl_8052CCE4 = .data:0x8052CCE4; // type:object size:0x18 -lbl_8052CCFC = .data:0x8052CCFC; // type:object size:0x18 -lbl_8052CD14 = .data:0x8052CD14; // type:object size:0x18 -lbl_8052CD2C = .data:0x8052CD2C; // type:object size:0x18 -lbl_8052CD44 = .data:0x8052CD44; // type:object size:0x18 -lbl_8052CD5C = .data:0x8052CD5C; // type:object size:0x18 -lbl_8052CD74 = .data:0x8052CD74; // type:object size:0x18 -lbl_8052CD8C = .data:0x8052CD8C; // type:object size:0x14 -lbl_8052CDA0 = .data:0x8052CDA0; // type:object size:0x10 -lbl_8052CDB0 = .data:0x8052CDB0; // type:object size:0xC -lbl_8052CDBC = .data:0x8052CDBC; // type:object size:0x10 -lbl_8052CDCC = .data:0x8052CDCC; // type:object size:0x10 -lbl_8052CDDC = .data:0x8052CDDC; // type:object size:0x10 +lbl_8052CC88 = .data:0x8052CC88; // type:object size:0x12 data:string +lbl_8052CC9C = .data:0x8052CC9C; // type:object size:0x16 data:string +lbl_8052CCB4 = .data:0x8052CCB4; // type:object size:0x17 data:string +lbl_8052CCCC = .data:0x8052CCCC; // type:object size:0x17 data:string +lbl_8052CCE4 = .data:0x8052CCE4; // type:object size:0x17 data:string +lbl_8052CCFC = .data:0x8052CCFC; // type:object size:0x17 data:string +lbl_8052CD14 = .data:0x8052CD14; // type:object size:0x17 data:string +lbl_8052CD2C = .data:0x8052CD2C; // type:object size:0x17 data:string +lbl_8052CD44 = .data:0x8052CD44; // type:object size:0x17 data:string +lbl_8052CD5C = .data:0x8052CD5C; // type:object size:0x17 data:string +lbl_8052CD74 = .data:0x8052CD74; // type:object size:0x17 data:string +lbl_8052CD8C = .data:0x8052CD8C; // type:object size:0x11 data:string +lbl_8052CDA0 = .data:0x8052CDA0; // type:object size:0xE data:string +lbl_8052CDB0 = .data:0x8052CDB0; // type:object size:0xA data:string +lbl_8052CDBC = .data:0x8052CDBC; // type:object size:0xE data:string +lbl_8052CDCC = .data:0x8052CDCC; // type:object size:0xE data:string +lbl_8052CDDC = .data:0x8052CDDC; // type:object size:0xF data:string lbl_8052CDEC = .data:0x8052CDEC; // type:object size:0x14 data:string -lbl_8052CE00 = .data:0x8052CE00; // type:object size:0x10 -lbl_8052CE10 = .data:0x8052CE10; // type:object size:0x10 -lbl_8052CE20 = .data:0x8052CE20; // type:object size:0x18 +lbl_8052CE00 = .data:0x8052CE00; // type:object size:0xF data:string +lbl_8052CE10 = .data:0x8052CE10; // type:object size:0xF data:string +lbl_8052CE20 = .data:0x8052CE20; // type:object size:0x13 data:string lbl_8052CE38 = .data:0x8052CE38; // type:object size:0x10 data:string -lbl_8052CE48 = .data:0x8052CE48; // type:object size:0x14 -lbl_8052CE5C = .data:0x8052CE5C; // type:object size:0x14 +lbl_8052CE48 = .data:0x8052CE48; // type:object size:0x12 data:string +lbl_8052CE5C = .data:0x8052CE5C; // type:object size:0x13 data:string lbl_8052CE70 = .data:0x8052CE70; // type:object size:0x14 data:string -lbl_8052CE84 = .data:0x8052CE84; // type:object size:0x18 -lbl_8052CE9C = .data:0x8052CE9C; // type:object size:0x14 -lbl_8052CEB0 = .data:0x8052CEB0; // type:object size:0x18 +lbl_8052CE84 = .data:0x8052CE84; // type:object size:0x17 data:string +lbl_8052CE9C = .data:0x8052CE9C; // type:object size:0x11 data:string +lbl_8052CEB0 = .data:0x8052CEB0; // type:object size:0x16 data:string lbl_8052CEC8 = .data:0x8052CEC8; // type:object size:0x10 data:string -lbl_8052CED8 = .data:0x8052CED8; // type:object size:0x10 +lbl_8052CED8 = .data:0x8052CED8; // type:object size:0xF data:string lbl_8052CEE8 = .data:0x8052CEE8; // type:object size:0x14 data:string -lbl_8052CEFC = .data:0x8052CEFC; // type:object size:0x14 -lbl_8052CF10 = .data:0x8052CF10; // type:object size:0x10 -lbl_8052CF20 = .data:0x8052CF20; // type:object size:0x14 -lbl_8052CF34 = .data:0x8052CF34; // type:object size:0x10 -lbl_8052CF44 = .data:0x8052CF44; // type:object size:0x14 -lbl_8052CF58 = .data:0x8052CF58; // type:object size:0x10 -lbl_8052CF68 = .data:0x8052CF68; // type:object size:0x10 -lbl_8052CF78 = .data:0x8052CF78; // type:object size:0x10 +lbl_8052CEFC = .data:0x8052CEFC; // type:object size:0x11 data:string +lbl_8052CF10 = .data:0x8052CF10; // type:object size:0xF data:string +lbl_8052CF20 = .data:0x8052CF20; // type:object size:0x11 data:string +lbl_8052CF34 = .data:0x8052CF34; // type:object size:0xF data:string +lbl_8052CF44 = .data:0x8052CF44; // type:object size:0x12 data:string +lbl_8052CF58 = .data:0x8052CF58; // type:object size:0xF data:string +lbl_8052CF68 = .data:0x8052CF68; // type:object size:0xF data:string +lbl_8052CF78 = .data:0x8052CF78; // type:object size:0xF data:string lbl_8052CF88 = .data:0x8052CF88; // type:object size:0xC data:string -lbl_8052CF94 = .data:0x8052CF94; // type:object size:0x10 -lbl_8052CFA4 = .data:0x8052CFA4; // type:object size:0x10 -lbl_8052CFB4 = .data:0x8052CFB4; // type:object size:0x14 +lbl_8052CF94 = .data:0x8052CF94; // type:object size:0xF data:string +lbl_8052CFA4 = .data:0x8052CFA4; // type:object size:0xE data:string +lbl_8052CFB4 = .data:0x8052CFB4; // type:object size:0xE data:string lbl_8052CFC8 = .data:0x8052CFC8; // type:object size:0x10 data:string -lbl_8052CFD8 = .data:0x8052CFD8; // type:object size:0x14 -lbl_8052CFEC = .data:0x8052CFEC; // type:object size:0x14 -lbl_8052D000 = .data:0x8052D000; // type:object size:0x14 -lbl_8052D014 = .data:0x8052D014; // type:object size:0x14 -lbl_8052D028 = .data:0x8052D028; // type:object size:0x18 -lbl_8052D040 = .data:0x8052D040; // type:object size:0x14 -lbl_8052D054 = .data:0x8052D054; // type:object size:0x10 -lbl_8052D064 = .data:0x8052D064; // type:object size:0x14 +lbl_8052CFD8 = .data:0x8052CFD8; // type:object size:0x12 data:string +lbl_8052CFEC = .data:0x8052CFEC; // type:object size:0x12 data:string +lbl_8052D000 = .data:0x8052D000; // type:object size:0x12 data:string +lbl_8052D014 = .data:0x8052D014; // type:object size:0x12 data:string +lbl_8052D028 = .data:0x8052D028; // type:object size:0x15 data:string +lbl_8052D040 = .data:0x8052D040; // type:object size:0x11 data:string +lbl_8052D054 = .data:0x8052D054; // type:object size:0xE data:string +lbl_8052D064 = .data:0x8052D064; // type:object size:0x12 data:string lbl_8052D078 = .data:0x8052D078; // type:object size:0x14 data:string -lbl_8052D08C = .data:0x8052D08C; // type:object size:0x14 +lbl_8052D08C = .data:0x8052D08C; // type:object size:0x11 data:string lbl_8052D0A0 = .data:0x8052D0A0; // type:object size:0x14 data:string lbl_8052D0B4 = .data:0x8052D0B4; // type:object size:0x14 data:string lbl_8052D0C8 = .data:0x8052D0C8; // type:object size:0x14 data:string -lbl_8052D0DC = .data:0x8052D0DC; // type:object size:0x18 -lbl_8052D0F4 = .data:0x8052D0F4; // type:object size:0x14 -lbl_8052D108 = .data:0x8052D108; // type:object size:0x10 +lbl_8052D0DC = .data:0x8052D0DC; // type:object size:0x17 data:string +lbl_8052D0F4 = .data:0x8052D0F4; // type:object size:0x11 data:string +lbl_8052D108 = .data:0x8052D108; // type:object size:0xE data:string lbl_8052D118 = .data:0x8052D118; // type:object size:0x10 data:string -lbl_8052D128 = .data:0x8052D128; // type:object size:0x14 -lbl_8052D13C = .data:0x8052D13C; // type:object size:0x14 -lbl_8052D150 = .data:0x8052D150; // type:object size:0x14 -lbl_8052D164 = .data:0x8052D164; // type:object size:0x14 -lbl_8052D178 = .data:0x8052D178; // type:object size:0x18 -lbl_8052D190 = .data:0x8052D190; // type:object size:0x18 -lbl_8052D1A8 = .data:0x8052D1A8; // type:object size:0x18 -lbl_8052D1C0 = .data:0x8052D1C0; // type:object size:0x18 +lbl_8052D128 = .data:0x8052D128; // type:object size:0x12 data:string +lbl_8052D13C = .data:0x8052D13C; // type:object size:0x12 data:string +lbl_8052D150 = .data:0x8052D150; // type:object size:0x12 data:string +lbl_8052D164 = .data:0x8052D164; // type:object size:0x12 data:string +lbl_8052D178 = .data:0x8052D178; // type:object size:0x17 data:string +lbl_8052D190 = .data:0x8052D190; // type:object size:0x15 data:string +lbl_8052D1A8 = .data:0x8052D1A8; // type:object size:0x15 data:string +lbl_8052D1C0 = .data:0x8052D1C0; // type:object size:0x11 data:string lbl_8052D1D8 = .data:0x8052D1D8; // type:object size:0x18 data:string -lbl_8052D1F0 = .data:0x8052D1F0; // type:object size:0x10 -lbl_8052D200 = .data:0x8052D200; // type:object size:0x18 -lbl_8052D218 = .data:0x8052D218; // type:object size:0x10 -lbl_8052D228 = .data:0x8052D228; // type:object size:0x1C -lbl_8052D244 = .data:0x8052D244; // type:object size:0x10 -lbl_8052D254 = .data:0x8052D254; // type:object size:0x14 -lbl_8052D268 = .data:0x8052D268; // type:object size:0x10 -MSBT_FILENAMES = .data:0x8052D278; // type:object size:0x148 -lbl_8052D3C0 = .data:0x8052D3C0; // type:object size:0x10 +lbl_8052D1F0 = .data:0x8052D1F0; // type:object size:0xE data:string +lbl_8052D200 = .data:0x8052D200; // type:object size:0x15 data:string +lbl_8052D218 = .data:0x8052D218; // type:object size:0xE data:string +lbl_8052D228 = .data:0x8052D228; // type:object size:0x19 data:string +lbl_8052D244 = .data:0x8052D244; // type:object size:0xF data:string +lbl_8052D254 = .data:0x8052D254; // type:object size:0x11 data:string +lbl_8052D268 = .data:0x8052D268; // type:object size:0xE data:string +sMsbtFileNames = .data:0x8052D278; // type:object size:0x148 +lbl_8052D3C0 = .data:0x8052D3C0; // type:object size:0xE data:string lbl_8052D3D0 = .data:0x8052D3D0; // type:object size:0x10 data:string lbl_8052D3E0 = .data:0x8052D3E0; // type:object size:0x10 data:string -lbl_8052D3F0 = .data:0x8052D3F0; // type:object size:0x18 +lbl_8052D3F0 = .data:0x8052D3F0; // type:object size:0x11 data:string lbl_8052D408 = .data:0x8052D408; // type:object size:0x10 data:string -lbl_8052D418 = .data:0x8052D418; // type:object size:0x14 -lbl_8052D42C = .data:0x8052D42C; // type:object size:0x18 -lbl_8052D444 = .data:0x8052D444; // type:object size:0x18 -lbl_8052D45C = .data:0x8052D45C; // type:object size:0x18 -lbl_8052D474 = .data:0x8052D474; // type:object size:0x18 -lbl_8052D48C = .data:0x8052D48C; // type:object size:0x18 -lbl_8052D4A4 = .data:0x8052D4A4; // type:object size:0x18 -lbl_8052D4BC = .data:0x8052D4BC; // type:object size:0x18 -lbl_8052D4D4 = .data:0x8052D4D4; // type:object size:0x18 -lbl_8052D4EC = .data:0x8052D4EC; // type:object size:0x18 -lbl_8052D504 = .data:0x8052D504; // type:object size:0x18 -lbl_8052D51C = .data:0x8052D51C; // type:object size:0x10 -lbl_8052D52C = .data:0x8052D52C; // type:object size:0x10 -lbl_8052D53C = .data:0x8052D53C; // type:object size:0x10 -lbl_8052D54C = .data:0x8052D54C; // type:object size:0x10 +lbl_8052D418 = .data:0x8052D418; // type:object size:0x12 data:string +lbl_8052D42C = .data:0x8052D42C; // type:object size:0x16 data:string +lbl_8052D444 = .data:0x8052D444; // type:object size:0x17 data:string +lbl_8052D45C = .data:0x8052D45C; // type:object size:0x17 data:string +lbl_8052D474 = .data:0x8052D474; // type:object size:0x17 data:string +lbl_8052D48C = .data:0x8052D48C; // type:object size:0x17 data:string +lbl_8052D4A4 = .data:0x8052D4A4; // type:object size:0x17 data:string +lbl_8052D4BC = .data:0x8052D4BC; // type:object size:0x17 data:string +lbl_8052D4D4 = .data:0x8052D4D4; // type:object size:0x17 data:string +lbl_8052D4EC = .data:0x8052D4EC; // type:object size:0x17 data:string +lbl_8052D504 = .data:0x8052D504; // type:object size:0x17 data:string +lbl_8052D51C = .data:0x8052D51C; // type:object size:0xE data:string +lbl_8052D52C = .data:0x8052D52C; // type:object size:0xE data:string +lbl_8052D53C = .data:0x8052D53C; // type:object size:0xE data:string +lbl_8052D54C = .data:0x8052D54C; // type:object size:0xF data:string lbl_8052D55C = .data:0x8052D55C; // type:object size:0x14 data:string -lbl_8052D570 = .data:0x8052D570; // type:object size:0x10 -lbl_8052D580 = .data:0x8052D580; // type:object size:0x10 -lbl_8052D590 = .data:0x8052D590; // type:object size:0x18 +lbl_8052D570 = .data:0x8052D570; // type:object size:0xF data:string +lbl_8052D580 = .data:0x8052D580; // type:object size:0xF data:string +lbl_8052D590 = .data:0x8052D590; // type:object size:0x13 data:string lbl_8052D5A8 = .data:0x8052D5A8; // type:object size:0x10 data:string -lbl_8052D5B8 = .data:0x8052D5B8; // type:object size:0x14 -lbl_8052D5CC = .data:0x8052D5CC; // type:object size:0x14 +lbl_8052D5B8 = .data:0x8052D5B8; // type:object size:0x12 data:string +lbl_8052D5CC = .data:0x8052D5CC; // type:object size:0x13 data:string lbl_8052D5E0 = .data:0x8052D5E0; // type:object size:0x14 data:string -lbl_8052D5F4 = .data:0x8052D5F4; // type:object size:0x18 -lbl_8052D60C = .data:0x8052D60C; // type:object size:0x14 -lbl_8052D620 = .data:0x8052D620; // type:object size:0x18 +lbl_8052D5F4 = .data:0x8052D5F4; // type:object size:0x17 data:string +lbl_8052D60C = .data:0x8052D60C; // type:object size:0x11 data:string +lbl_8052D620 = .data:0x8052D620; // type:object size:0x16 data:string lbl_8052D638 = .data:0x8052D638; // type:object size:0x10 data:string -lbl_8052D648 = .data:0x8052D648; // type:object size:0x10 +lbl_8052D648 = .data:0x8052D648; // type:object size:0xF data:string lbl_8052D658 = .data:0x8052D658; // type:object size:0x14 data:string -lbl_8052D66C = .data:0x8052D66C; // type:object size:0x14 -lbl_8052D680 = .data:0x8052D680; // type:object size:0x10 -lbl_8052D690 = .data:0x8052D690; // type:object size:0x14 -lbl_8052D6A4 = .data:0x8052D6A4; // type:object size:0x10 -lbl_8052D6B4 = .data:0x8052D6B4; // type:object size:0x14 -lbl_8052D6C8 = .data:0x8052D6C8; // type:object size:0x10 -lbl_8052D6D8 = .data:0x8052D6D8; // type:object size:0x10 -lbl_8052D6E8 = .data:0x8052D6E8; // type:object size:0x10 +lbl_8052D66C = .data:0x8052D66C; // type:object size:0x11 data:string +lbl_8052D680 = .data:0x8052D680; // type:object size:0xF data:string +lbl_8052D690 = .data:0x8052D690; // type:object size:0x11 data:string +lbl_8052D6A4 = .data:0x8052D6A4; // type:object size:0xF data:string +lbl_8052D6B4 = .data:0x8052D6B4; // type:object size:0x12 data:string +lbl_8052D6C8 = .data:0x8052D6C8; // type:object size:0xF data:string +lbl_8052D6D8 = .data:0x8052D6D8; // type:object size:0xF data:string +lbl_8052D6E8 = .data:0x8052D6E8; // type:object size:0xF data:string lbl_8052D6F8 = .data:0x8052D6F8; // type:object size:0xC data:string -lbl_8052D704 = .data:0x8052D704; // type:object size:0x10 -lbl_8052D714 = .data:0x8052D714; // type:object size:0x10 -lbl_8052D724 = .data:0x8052D724; // type:object size:0x14 +lbl_8052D704 = .data:0x8052D704; // type:object size:0xF data:string +lbl_8052D714 = .data:0x8052D714; // type:object size:0xE data:string +lbl_8052D724 = .data:0x8052D724; // type:object size:0xE data:string lbl_8052D738 = .data:0x8052D738; // type:object size:0x10 data:string -lbl_8052D748 = .data:0x8052D748; // type:object size:0x14 -lbl_8052D75C = .data:0x8052D75C; // type:object size:0x14 -lbl_8052D770 = .data:0x8052D770; // type:object size:0x14 -lbl_8052D784 = .data:0x8052D784; // type:object size:0x14 -lbl_8052D798 = .data:0x8052D798; // type:object size:0x18 -lbl_8052D7B0 = .data:0x8052D7B0; // type:object size:0x14 -lbl_8052D7C4 = .data:0x8052D7C4; // type:object size:0x10 -lbl_8052D7D4 = .data:0x8052D7D4; // type:object size:0x14 +lbl_8052D748 = .data:0x8052D748; // type:object size:0x12 data:string +lbl_8052D75C = .data:0x8052D75C; // type:object size:0x12 data:string +lbl_8052D770 = .data:0x8052D770; // type:object size:0x12 data:string +lbl_8052D784 = .data:0x8052D784; // type:object size:0x12 data:string +lbl_8052D798 = .data:0x8052D798; // type:object size:0x15 data:string +lbl_8052D7B0 = .data:0x8052D7B0; // type:object size:0x11 data:string +lbl_8052D7C4 = .data:0x8052D7C4; // type:object size:0xE data:string +lbl_8052D7D4 = .data:0x8052D7D4; // type:object size:0x12 data:string lbl_8052D7E8 = .data:0x8052D7E8; // type:object size:0x14 data:string -lbl_8052D7FC = .data:0x8052D7FC; // type:object size:0x14 +lbl_8052D7FC = .data:0x8052D7FC; // type:object size:0x11 data:string lbl_8052D810 = .data:0x8052D810; // type:object size:0x14 data:string lbl_8052D824 = .data:0x8052D824; // type:object size:0x14 data:string lbl_8052D838 = .data:0x8052D838; // type:object size:0x14 data:string -lbl_8052D84C = .data:0x8052D84C; // type:object size:0x18 -lbl_8052D864 = .data:0x8052D864; // type:object size:0x14 -lbl_8052D878 = .data:0x8052D878; // type:object size:0x10 +lbl_8052D84C = .data:0x8052D84C; // type:object size:0x17 data:string +lbl_8052D864 = .data:0x8052D864; // type:object size:0x11 data:string +lbl_8052D878 = .data:0x8052D878; // type:object size:0xE data:string lbl_8052D888 = .data:0x8052D888; // type:object size:0x10 data:string -lbl_8052D898 = .data:0x8052D898; // type:object size:0x14 -lbl_8052D8AC = .data:0x8052D8AC; // type:object size:0x14 -lbl_8052D8C0 = .data:0x8052D8C0; // type:object size:0x14 -lbl_8052D8D4 = .data:0x8052D8D4; // type:object size:0x14 -lbl_8052D8E8 = .data:0x8052D8E8; // type:object size:0x18 -lbl_8052D900 = .data:0x8052D900; // type:object size:0x18 -lbl_8052D918 = .data:0x8052D918; // type:object size:0x18 -lbl_8052D930 = .data:0x8052D930; // type:object size:0x18 +lbl_8052D898 = .data:0x8052D898; // type:object size:0x12 data:string +lbl_8052D8AC = .data:0x8052D8AC; // type:object size:0x12 data:string +lbl_8052D8C0 = .data:0x8052D8C0; // type:object size:0x12 data:string +lbl_8052D8D4 = .data:0x8052D8D4; // type:object size:0x12 data:string +lbl_8052D8E8 = .data:0x8052D8E8; // type:object size:0x17 data:string +lbl_8052D900 = .data:0x8052D900; // type:object size:0x15 data:string +lbl_8052D918 = .data:0x8052D918; // type:object size:0x15 data:string +lbl_8052D930 = .data:0x8052D930; // type:object size:0x11 data:string lbl_8052D948 = .data:0x8052D948; // type:object size:0x18 data:string -lbl_8052D960 = .data:0x8052D960; // type:object size:0x10 -lbl_8052D970 = .data:0x8052D970; // type:object size:0x18 -lbl_8052D988 = .data:0x8052D988; // type:object size:0x10 -lbl_8052D998 = .data:0x8052D998; // type:object size:0x1C -lbl_8052D9B4 = .data:0x8052D9B4; // type:object size:0x10 -lbl_8052D9C4 = .data:0x8052D9C4; // type:object size:0x14 -lbl_8052D9D8 = .data:0x8052D9D8; // type:object size:0x10 -lbl_8052D9E8 = .data:0x8052D9E8; // type:object size:0x140 +lbl_8052D960 = .data:0x8052D960; // type:object size:0xE data:string +lbl_8052D970 = .data:0x8052D970; // type:object size:0x15 data:string +lbl_8052D988 = .data:0x8052D988; // type:object size:0xE data:string +lbl_8052D998 = .data:0x8052D998; // type:object size:0x19 data:string +lbl_8052D9B4 = .data:0x8052D9B4; // type:object size:0xF data:string +lbl_8052D9C4 = .data:0x8052D9C4; // type:object size:0x11 data:string +lbl_8052D9D8 = .data:0x8052D9D8; // type:object size:0xE data:string +sMsbfFileNames = .data:0x8052D9E8; // type:object size:0x140 lbl_8052DB28 = .data:0x8052DB28; // type:object size:0x1C lbl_8052DB44 = .data:0x8052DB44; // type:object size:0x1C lbl_8052DB60 = .data:0x8052DB60; // type:object size:0x1C @@ -34178,7 +34179,7 @@ lbl_8052DE34 = .data:0x8052DE34; // type:object size:0xC lbl_8052DE40 = .data:0x8052DE40; // type:object size:0x10 EVENT_FLOW_FILENAMES = .data:0x8052DE50; // type:object size:0x18 lbl_8052DE68 = .data:0x8052DE68; // type:object size:0x10 -GlobalMessageRelatedContext__vtable = .data:0x8052DE78; // type:object size:0x4C +__vt__10dMessage_c = .data:0x8052DE78; // type:object size:0x4C ActorEventFlowManager__vtable = .data:0x8052DEC4; // type:object size:0x78 g_profile_STAGE = .data:0x8052DF40; // type:object size:0xC sCallbacks__8dStage_c = .data:0x8052DF4C; // type:object size:0x24 @@ -38205,14 +38206,14 @@ 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 lbl_805725D0 = .sdata:0x805725D0; // type:object size:0x8 data:4byte -lbl_805725D8 = .sdata:0x805725D8; // type:object size:0x8 data:4byte +lbl_805725D8 = .sdata:0x805725D8; // type:object size:0x4 data:4byte lbl_805725E0 = .sdata:0x805725E0; // type:object size:0x8 data:4byte lbl_805725E8 = .sdata:0x805725E8; // type:object size:0x8 data:4byte -lbl_805725F0 = .sdata:0x805725F0; // type:object size:0x8 data:4byte +lbl_805725F0 = .sdata:0x805725F0; // type:object size:0x4 data:4byte lbl_805725F8 = .sdata:0x805725F8; // type:object size:0x8 data:4byte -lbl_80572600 = .sdata:0x80572600; // type:object size:0x8 data:4byte +lbl_80572600 = .sdata:0x80572600; // type:object size:0x4 data:4byte lbl_80572608 = .sdata:0x80572608; // type:object size:0x8 data:4byte -lbl_80572610 = .sdata:0x80572610; // type:object size:0x8 +lbl_80572610 = .sdata:0x80572610; // type:object size:0x1 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 @@ -40104,14 +40105,14 @@ sInstance__14dLytDobutton_c = .sbss:0x80575468; // type:object size:0x8 data:4by lbl_80575470 = .sbss:0x80575470; // type:object size:0x8 lbl_80575478 = .sbss:0x80575478; // type:object size:0x8 data:4byte sInstance__20LytBirdButtonRelated = .sbss:0x80575480; // type:object size:0x8 data:4byte -LYT_MSG_WINDOW = .sbss:0x80575488; // type:object size:0x4 data:4byte +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 LYT_SIMPLE_WINDOW = .sbss:0x80575498; // type:object size:0x8 data:4byte lbl_805754A0 = .sbss:0x805754A0; // type:object size:0x8 data:4byte sMapFaderColor = .sbss:0x805754A8; // type:object size:0x4 data:byte lbl_805754AC = .sbss:0x805754AC; // type:object size:0x1 data:byte -lbl_805754B0 = .sbss:0x805754B0; // type:object size:0x8 data:4byte +sInstance__9dLytMap_c = .sbss:0x805754B0; // type:object size:0x8 data:4byte sInstance__13dLytBattery_c = .sbss:0x805754B8; // type:object size:0x8 data:4byte sInstance__17dLytAreaCaption_c = .sbss:0x805754C0; // type:object size:0x8 data:4byte LytWipe = .sbss:0x805754C8; // type:object size:0x8 data:4byte @@ -40228,13 +40229,13 @@ lbl_80575730 = .sbss:0x80575730; // type:object size:0x2 data:2byte lbl_80575734 = .sbss:0x80575734; // type:object size:0x4 data:float lbl_80575738 = .sbss:0x80575738; // type:object size:0x2 data:2byte lbl_8057573C = .sbss:0x8057573C; // type:object size:0x4 data:float -GLOBAL_MESSAGE_RELATED_CONTEXT = .sbss:0x80575740; // type:object size:0x4 data:4byte -GLOBAL_TEXT_MANAGER = .sbss:0x80575744; // type:object size:0x4 data:4byte +sInstance__10dMessage_c = .sbss:0x80575740; // type:object size:0x4 data:4byte +sTagProcessor__10dMessage_c = .sbss:0x80575744; // type:object size:0x4 data:4byte lbl_80575748 = .sbss:0x80575748; // type:object size:0x1 data:byte lbl_80575749 = .sbss:0x80575749; // type:object size:0x7 data:byte CURRENT_LANGUAGE_STRING = .sbss:0x80575750; // type:object size:0x8 data:byte -lbl_80575758 = .sbss:0x80575758; // type:object size:0x4 data:4byte -lbl_8057575C = .sbss:0x8057575C; // type:object size:0x4 data:4byte +sZev0__10dMessage_c = .sbss:0x80575758; // type:object size:0x4 data:4byte +sZevStage__10dMessage_c = .sbss:0x8057575C; // type:object size:0x4 data:4byte sInstance__8dStage_c = .sbss:0x80575760; // type:object size:0x4 data:4byte lbl_80575764 = .sbss:0x80575764; // type:object size:0x1 data:byte lbl_80575768 = .sbss:0x80575768; // type:object size:0x8 data:byte @@ -40423,7 +40424,7 @@ lbl_805759F0 = .sbss:0x805759F0; // type:object size:0x1 data:byte lbl_805759F1 = .sbss:0x805759F1; // type:object size:0x1 data:byte lbl_805759F4 = .sbss:0x805759F4; // type:object size:0x4 data:float lbl_805759F8 = .sbss:0x805759F8; // type:object size:0x8 data:byte -LYT_CONTROL_GAME = .sbss:0x80575A00; // type:object size:0x8 data:4byte +sInstance__17dLytControlGame_c = .sbss:0x80575A00; // type:object size:0x8 data:4byte MENU_PAUSE = .sbss:0x80575A08; // type:object size:0x8 data:4byte lbl_80575A10 = .sbss:0x80575A10; // type:object size:0x8 data:byte lbl_80575A18 = .sbss:0x80575A18; // type:object size:0x1 data:byte @@ -48830,7 +48831,7 @@ LytMsgWindowSelectBtn__LytMsgWindowSelectBtnParts__STATE_WAIT = .bss:0x805AE680; LytMsgWindowSelectBtn__LytMsgWindowSelectBtnParts__STATE_ON = .bss:0x805AE6C0; // type:object size:0x40 data:4byte LytMsgWindowSelectBtn__LytMsgWindowSelectBtnParts__STATE_SELECT = .bss:0x805AE700; // type:object size:0x40 data:4byte LytMsgWindowSelectBtn__LytMsgWindowSelectBtnParts__STATE_OFF = .bss:0x805AE740; // type:object size:0x40 data:4byte -LytMsgWindowSelectBtn__STATE_WAIT = .bss:0x805AE780; // type:object size:0x40 data:4byte +StateID_Wait__24dLytMsgWindowSelectBtn_c = .bss:0x805AE780; // type:object size:0x40 data:4byte LytMsgWindowSelectBtn__STATE_IN = .bss:0x805AE7C0; // type:object size:0x40 data:4byte LytMsgWindowSelectBtn__STATE_WAIT_SELECT = .bss:0x805AE800; // type:object size:0x80 data:4byte LytMsgWindowSelectBtn__STATE_WAIT_DECIDE = .bss:0x805AE880; // type:object size:0x80 data:4byte @@ -48852,42 +48853,42 @@ LytMsgWindowGet__STATE_INVISIBLE = .bss:0x805AEBC0; // type:object size:0x40 dat 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 -lbl_805AECB0 = .bss:0x805AECB0; // type:object size:0x10 -LytMsgWindowSword__STATE_INVISIBLE = .bss:0x805AECC0; // type:object size:0x40 data:4byte -LytMsgWindowSword__STATE_IN = .bss:0x805AED00; // type:object size:0x40 data:4byte -LytMsgWindowSword__STATE_WAIT = .bss:0x805AED40; // type:object size:0x40 data:4byte -LytMsgWindowSword__STATE_VISIBLE = .bss:0x805AED80; // type:object size:0x40 data:4byte +lbl_805AECB0 = .bss:0x805AECB0; // type:object size:0xC +LytMsgWindowSword__STATE_INVISIBLE = .bss:0x805AECC0; // type:object size:0x30 data:4byte +LytMsgWindowSword__STATE_IN = .bss:0x805AED00; // type:object size:0x30 data:4byte +LytMsgWindowSword__STATE_WAIT = .bss:0x805AED40; // type:object size:0x30 data:4byte +LytMsgWindowSword__STATE_VISIBLE = .bss:0x805AED80; // type:object size:0x30 data:4byte LytMsgWindowSword__STATE_OUT = .bss:0x805AEDC0; // type:object size:0x30 data:4byte -lbl_805AEDF0 = .bss:0x805AEDF0; // type:object size:0x10 -LytMsgWindowWood__STATE_INVISIBLE = .bss:0x805AEE00; // type:object size:0x40 data:4byte -LytMsgWindowWood__STATE_IN = .bss:0x805AEE40; // type:object size:0x40 data:4byte -LytMsgWindowWood__STATE_VISIBLE = .bss:0x805AEE80; // type:object size:0x40 data:4byte -LytMsgWindowWood__STATE_OUT = .bss:0x805AEEC0; // type:object size:0x30 data:4byte -lbl_805AEEF0 = .bss:0x805AEEF0; // type:object size:0x10 -LytMsgWindowStone__STATE_INVISIBLE = .bss:0x805AEF00; // type:object size:0x40 data:4byte -LytMsgWindowStone__STATE_IN = .bss:0x805AEF40; // type:object size:0x40 data:4byte -LytMsgWindowStone__STATE_VISIBLE = .bss:0x805AEF80; // type:object size:0x40 data:4byte -LytMsgWindowStone__STATE_OUT = .bss:0x805AEFC0; // type:object size:0x30 data:4byte -lbl_805AEFF0 = .bss:0x805AEFF0; // type:object size:0x10 -LytMsgWindowDemo__STATE_INVISIBLE = .bss:0x805AF000; // type:object size:0x40 data:4byte -LytMsgWindowDemo__STATE_IN = .bss:0x805AF040; // type:object size:0x40 data:4byte -LytMsgWindowDemo__STATE_VISIBLE = .bss:0x805AF080; // type:object size:0x40 data:4byte -LytMsgWindowDemo__STATE_OUT = .bss:0x805AF0C0; // type:object size:0x30 data:4byte +lbl_805AEDF0 = .bss:0x805AEDF0; // type:object size:0xC +StateID_Invisible__19dLytMsgWindowWood_c = .bss:0x805AEE00; // type:object size:0x30 data:4byte +StateID_In__19dLytMsgWindowWood_c = .bss:0x805AEE40; // type:object size:0x30 data:4byte +StateID_Visible__19dLytMsgWindowWood_c = .bss:0x805AEE80; // type:object size:0x30 data:4byte +StateID_Out__19dLytMsgWindowWood_c = .bss:0x805AEEC0; // type:object size:0x30 data:4byte +lbl_805AEEF0 = .bss:0x805AEEF0; // type:object size:0xC +StateID_Invisible__20dLytMsgWindowStone_c = .bss:0x805AEF00; // type:object size:0x30 data:4byte +StateID_In__20dLytMsgWindowStone_c = .bss:0x805AEF40; // type:object size:0x30 data:4byte +StateID_Visible__20dLytMsgWindowStone_c = .bss:0x805AEF80; // type:object size:0x30 data:4byte +StateID_Out__20dLytMsgWindowStone_c = .bss:0x805AEFC0; // type:object size:0x30 data:4byte +lbl_805AEFF0 = .bss:0x805AEFF0; // type:object size:0xC +StateID_Invisible__19dLytMsgWindowDemo_c = .bss:0x805AF000; // type:object size:0x30 data:4byte +StateID_In__19dLytMsgWindowDemo_c = .bss:0x805AF040; // type:object size:0x30 data:4byte +StateID_Visible__19dLytMsgWindowDemo_c = .bss:0x805AF080; // type:object size:0x30 data:4byte +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 -lbl_805AF1F0 = .bss:0x805AF1F0; // type:object size:0x10 -LytAutoCaption__STATE_INVISIBLE = .bss:0x805AF200; // type:object size:0x40 data:4byte -LytAutoCaption__STATE_IN = .bss:0x805AF240; // type:object size:0x40 data:4byte -LytAutoCaption__STATE_OUTPUT_TEXT = .bss:0x805AF280; // type:object size:0x40 data:4byte -LytAutoCaption__STATE_OUT = .bss:0x805AF2C0; // type:object size:0x30 data:4byte -lbl_805AF2F0 = .bss:0x805AF2F0; // type:object size:0x10 -LytAutoExplain__STATE_INVISIBLE = .bss:0x805AF300; // type:object size:0x40 data:4byte -LytAutoExplain__STATE_IN = .bss:0x805AF340; // type:object size:0x40 data:4byte -LytAutoExplain__STATE_OUTPUT_TEXT = .bss:0x805AF380; // type:object size:0x40 data:4byte -LytAutoExplain__STATE_OUT = .bss:0x805AF3C0; // type:object size:0x30 data:4byte +lbl_805AF1F0 = .bss:0x805AF1F0; // type:object size:0xC +StateID_Invisible__17dLytAutoCaption_c = .bss:0x805AF200; // type:object size:0x30 data:4byte +StateID_In__17dLytAutoCaption_c = .bss:0x805AF240; // type:object size:0x30 data:4byte +StateID_OutputText__17dLytAutoCaption_c = .bss:0x805AF280; // type:object size:0x30 data:4byte +StateID_Out__17dLytAutoCaption_c = .bss:0x805AF2C0; // type:object size:0x30 data:4byte +lbl_805AF2F0 = .bss:0x805AF2F0; // type:object size:0xC +StateID_Invisible__17dLytAutoExplain_c = .bss:0x805AF300; // type:object size:0x30 data:4byte +StateID_In__17dLytAutoExplain_c = .bss:0x805AF340; // type:object size:0x30 data:4byte +StateID_OutputText__17dLytAutoExplain_c = .bss:0x805AF380; // type:object size:0x30 data:4byte +StateID_Out__17dLytAutoExplain_c = .bss:0x805AF3C0; // type:object size:0x30 data:4byte lbl_805AF3F0 = .bss:0x805AF3F0; // type:object size:0x10 StateID_RenderingWait__16dLytMapCapture_c = .bss:0x805AF400; // type:object size:0x40 data:4byte StateID_RenderingWaitStep2__16dLytMapCapture_c = .bss:0x805AF440; // type:object size:0x30 data:4byte diff --git a/configure.py b/configure.py index 085daf4e..6a924d56 100644 --- a/configure.py +++ b/configure.py @@ -382,6 +382,7 @@ config.libs = [ Object(NonMatching, "d/lyt/d_textbox.cpp"), Object(Matching, "d/lyt/d_window.cpp"), Object(Matching, "d/d_textunk.cpp"), + Object(NonMatching, "d/d_textwindow_unk.cpp"), Object(NonMatching, "d/d_tag_processor.cpp"), Object(NonMatching, "d/lyt/meter/d_lyt_meter.cpp"), Object(NonMatching, "d/lyt/meter/d_lyt_meter_unk.cpp"), @@ -404,17 +405,19 @@ config.libs = [ Object(NonMatching, "d/lyt/meter/d_lyt_meter_heart.cpp"), Object(NonMatching, "d/lyt/meter/d_lyt_meter_shield_gauge.cpp"), Object(NonMatching, "d/lyt/d_lyt_do_button.cpp"), + Object(Matching, "d/lyt/d_lyt_common_a_btn.cpp"), Object(Matching, "d/lyt/d_lyt_common_icon_material.cpp"), Object(Matching, "d/lyt/d_lyt_common_icon_item.cpp"), - Object(NonMatching, "d/lyt/d_lyt_msg_window.cpp"), - Object(NonMatching, "d/lyt/d_lyt_msg_window_select_btn.cpp"), - Object(NonMatching, "d/lyt/d_lyt_msg_window_talk.cpp"), - Object(NonMatching, "d/lyt/d_lyt_msg_window_link.cpp"), - Object(NonMatching, "d/lyt/d_lyt_msg_window_get.cpp"), - Object(NonMatching, "d/lyt/d_lyt_msg_window_sword.cpp"), - Object(NonMatching, "d/lyt/d_lyt_msg_window_wood.cpp"), - Object(NonMatching, "d/lyt/d_lyt_msg_window_stone.cpp"), - Object(NonMatching, "d/lyt/d_lyt_msg_window_demo.cpp"), + Object(NonMatching, "d/lyt/msg_window/d_lyt_msg_window.cpp"), + Object(NonMatching, "d/lyt/msg_window/d_lyt_msg_window_select_btn.cpp"), + Object(Matching, "d/lyt/msg_window/d_lyt_msg_window_common.cpp"), + Object(NonMatching, "d/lyt/msg_window/d_lyt_msg_window_talk.cpp"), + Object(NonMatching, "d/lyt/msg_window/d_lyt_msg_window_link.cpp"), + Object(NonMatching, "d/lyt/msg_window/d_lyt_msg_window_get.cpp"), + Object(Matching, "d/lyt/msg_window/d_lyt_msg_window_sword.cpp"), + 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/d_lyt_simple_window.cpp"), Object(NonMatching, "d/lyt/d_lyt_auto_caption.cpp"), Object(NonMatching, "d/lyt/d_lyt_auto_explain.cpp"), @@ -435,6 +438,7 @@ config.libs = [ Object(NonMatching, "d/a/d_a_insect.cpp"), Object(NonMatching, "d/d_stage_mgr.cpp"), Object(NonMatching, "d/d_last.cpp"), + Object(NonMatching, "d/d_message.cpp"), Object(NonMatching, "d/d_stage.cpp"), Object(Matching, "d/d_room.cpp"), Object(NonMatching, "d/d_cs_base.cpp"), diff --git a/include/d/d_message.h b/include/d/d_message.h new file mode 100644 index 00000000..cd075bb0 --- /dev/null +++ b/include/d/d_message.h @@ -0,0 +1,118 @@ +#ifndef D_MESSAGE_H +#define D_MESSAGE_H + +#include "common.h" +#include "d/d_base.h" +#include "d/d_tag_processor.h" +#include "libms/flowfile.h" +#include "libms/msgfile.h" +#include "sized_string.h" + +class dMessage_c : public dBase_c { +public: + dMessage_c(); + virtual ~dMessage_c() { + sInstance = nullptr; + } + + int create() override; + int doDelete() override; + int execute() override; + int draw() override; + + static const char *getLanguageIdentifier(); + + static dMessage_c *getInstance() { + return sInstance; + } + + static dTagProcessor_c *getGlobalTagProcessor() { + return sTagProcessor; + } + + void reset(); + + bool getField_0x329() const { + return field_0x329; + } + + void setField_0x329(bool v) { + field_0x329 = v; + } + + bool getField_0x32A() const { + return field_0x32A; + } + + static bool isValidTextLabel(const char *name); + static void loadTextByLabel(const char *label, dTagProcessor_c *tagProcessor, bool, u32, u32); + + static s32 getMsbtIndexForLabel(const char *name); + static const char *getMsbtFileName(s32 index); + + static const wchar_t *getTextMessageByLabel(const char *label, bool global, wchar_t *dstBuf, u32 maxLen); + static const wchar_t * + getTextMessageByLabel(const char *label, dTagProcessor_c *pTagProcessor, bool global, wchar_t *dstBuf, u32 maxLen); + + static const wchar_t *formatText(const wchar_t *text); + +private: + static void *sZev0; + static void *sZevStage; + + static void *getZev0Internal(); + static void *getZevStageInternal(); + + void executeMinigame(); + + const wchar_t *formatTextInternal(const wchar_t *text); + const wchar_t *getTextMessageByLabelInternal( + const char *label, dTagProcessor_c *pTagProcessor, bool global, wchar_t *dstBuf, u32 maxLen + ); + + static s32 getArcIndexForFile(const char *fileName); + static const char *getArcNameByIndex(s32 idx, bool); + + bool checkIsValidTextLabel(const char *name); + + static void setZevFromMsbArc(); + static void setStageZevFromMsbArc(); + static s32 getMsbtNumberByIndex(s32 index); + static const char *getMsbfFileName(s32 index); + static s32 getMsbfNumberByIndex(s32 index); + static void *getDataFromMsbArc(s32 number, const char *fileName, bool); + + s32 getTextIndexForLabel(const char *label); + s32 getMsbtIndexForLabelInternal(const char *label); + static MsbtInfo *getMsbtInfoForIndex(s32 index); + MsbtInfo *getMsbtInfoForIndexInternal(s32 index); + + static MsbfInfo *getMsbfInfoForIndex(s32 index); + MsbfInfo *getMsbfInfoForIndexInternal(s32 index); + + static const char *getArcNameByIndexInternal(s32 idx, bool global); + + static dMessage_c *sInstance; + static dTagProcessor_c *sTagProcessor; + + /* 0x068 */ MsbtInfo *mpMsgs[82]; + /* 0x1B0 */ MsbfInfo *mpFlows[80]; + /* 0x2F0 */ SizedString<8> mLanguage; + /* 0x2F8 */ u32 mCurrentTextFileNumber; + + /* 0x2FC */ s32 field_0x2FC; + + /* 0x300 */ u8 _0x300[0x329 - 0x300]; + + /* 0x329 */ bool field_0x329; + /* 0x32A */ bool field_0x32A; + + /* 0x32B */ u8 _0x32B[0x334 - 0x32B]; + + /* 0x334 */ u32 mMinigameResultPoints; + /* 0x338 */ u32 mMinigameTime; + /* 0x33C */ u8 _0x33C[0x344 - 0x33C]; + /* 0x344 */ s32 field_0x344; +}; + +#endif diff --git a/include/d/d_pad.h b/include/d/d_pad.h index e158fafb..5175dbca 100644 --- a/include/d/d_pad.h +++ b/include/d/d_pad.h @@ -3,8 +3,12 @@ class dPad { public: - + static bool checkButtonAPressed(); + static bool checkButtonBPressed(); static bool checkButtonZPressed(); + static bool checkButtonPlusPressed(); + + static bool checkButtonAHeld(); static bool checkButtonZHeld(); }; diff --git a/include/d/d_stage_mgr.h b/include/d/d_stage_mgr.h index aa4b277f..9160b33d 100644 --- a/include/d/d_stage_mgr.h +++ b/include/d/d_stage_mgr.h @@ -114,6 +114,10 @@ public: void addObjId(u16 id); void addActorId(u16 actorId); + dFader_c *getFader() { + return &mFader; + } + private: static void lastExecuteCallback(); diff --git a/include/d/d_sys.h b/include/d/d_sys.h index 02a9c127..a9d6ff9c 100644 --- a/include/d/d_sys.h +++ b/include/d/d_sys.h @@ -7,6 +7,7 @@ namespace dSys { void setFrameRate(u32); +u8 getFrameRate(); void setClearColor(mColor clr); } // namespace dSys_c diff --git a/include/d/d_tag_processor.h b/include/d/d_tag_processor.h index c68ad2f1..f4195865 100644 --- a/include/d/d_tag_processor.h +++ b/include/d/d_tag_processor.h @@ -5,6 +5,13 @@ #include "nw4r/ut/ut_TagProcessorBase.h" #include "nw4r/ut/ut_TextWriterBase.h" +struct dLytMsgWindowCharData; + +struct LineData { + f32 mLineWidths[0x32]; + u32 mNumLines; +}; + // inofficial name // size: 0xEF4 class dTagProcessor_c : public nw4r::ut::TagProcessorBase { @@ -12,8 +19,9 @@ public: dTagProcessor_c(); virtual ~dTagProcessor_c(); + void format(dTextBox_c *textBox, const wchar_t *src, wchar_t *dest, u32 destLen, u32 *pOutLen, void *unk, ...); void - eventFlowTextProcessingRelated(dTextBox_c *textBox, const wchar_t *src, wchar_t *dest, u32 destLen, u32 *pOutLen); + formatV(dTextBox_c *textBox, const wchar_t *src, wchar_t *dest, u32 destLen, u32 *pOutLen, void *unk, va_list list); virtual nw4r::ut::Operation Process(u16 ch, nw4r::ut::PrintContext *ctx) override; virtual nw4r::ut::Operation CalcRect(nw4r::ut::Rect *rect, u16 ch, nw4r::ut::PrintContext *ctx) override; @@ -45,7 +53,7 @@ public: u8 symbolToFontIdx(s32 s); void setStringArg(const wchar_t *arg, s32 index); - static s32 getNumLines(s32 arg); + static s32 getMaxNumLines(s32 arg); static void getTextCommand(wchar_t _0xe, const wchar_t *src, u8 *outCmdLen, s32 *outCmd, wchar_t **outEndPtr); static void process0xFCommand(wchar_t _0xf, const wchar_t *src, s32 *outCmd); @@ -60,13 +68,97 @@ public: char fn_800B7880(u32); void fn_800B70D0(nw4r::ut::TextWriterBase *, nw4r::ut::PrintContext *ctx, u16 c, s32); + void + fn_800B4290(dTextBox_c *textBox, const wchar_t *src, wchar_t *dest, s32, u16 *, dLytMsgWindowCharData *charData); + void resetSomething(); - void resetSomeFloats(); + void resetLineData(); void setNumericArg0(s32 arg); void setNumericArgs(const s32 *args, s32 numArgs); - f32 getFloat(s32 i); + f32 getLineWidth(s32 i); s32 tickPauseFrame(); s32 tick0x830(); + void execute(); + + void setTextbox(dTextBox_c *box) { + field_0x004 = box; + } + + s32 getNumLinesMaybe() const { + return mLineData.mNumLines; + } + + u8 getMsgWindowSubtype() const { + return mMsgWindowSubtype; + } + + u8 getField_0x90D() const { + return field_0x90D; + } + + u8 getField_0x90E() const { + return field_0x90E; + } + + s32 getField_0x824() const { + return field_0x824; + } + + s32 getField_0x828() const { + return field_0x828; + } + + s32 getField_0x82C() const { + return field_0x82C; + } + + s32 getField_0x830() const { + return field_0x830; + } + + void setMsgWindowSubtype(u8 type) { + mMsgWindowSubtype = type; + } + + void setField_0x828(s32 val) { + field_0x828 = val; + } + + void setField_0x82C(s32 val) { + field_0x82C = val; + } + + void setField_0x90D(u8 val) { + field_0x90D = val; + } + + void setField_0x90E(u8 val) { + field_0x90E = val; + } + + void setField_0xEE0(u8 val) { + field_0xEE0 = val; + } + + void setField_0xEE1(u8 val) { + field_0xEE1 = val; + } + + void setField_0xEE2(u8 val) { + field_0xEE2 = val; + } + + void setField_0xEE3(u8 val) { + field_0xEE3 = val; + } + + wchar_t *getBuf(s32 idx) { + return field_0x008[idx]; + } + + LineData getLineData() const { + return mLineData; + } private: /* 0x004 */ dTextBox_c *field_0x004; @@ -117,12 +209,11 @@ private: /* 0x900 */ s32 field_0x900; /* 0x904 */ f32 field_0x904; /* 0x908 */ f32 field_0x908; - /* 0x90C */ u8 field_0x90C; + /* 0x90C */ u8 mMsgWindowSubtype; /* 0x90D */ u8 field_0x90D; /* 0x90E */ u8 field_0x90E; /* 0x90F */ u8 field_0x90F[4]; - /* 0x914 */ f32 field_0x914[0x32]; - /* 0x9DC */ s32 mCommandInsert; + /* 0x914 */ LineData mLineData; /* 0x9E0 */ wchar_t mStringArgs[8][64]; /* 0xDE0 */ u8 field_0xDE0[0xEE0 - 0xDE0]; /* 0xEE0 */ u8 field_0xEE0; diff --git a/include/d/d_textunk.h b/include/d/d_textunk.h index 5e43e709..a76d5c99 100644 --- a/include/d/d_textunk.h +++ b/include/d/d_textunk.h @@ -7,6 +7,13 @@ #include "nw4r/ut/ut_Color.h" #include "sized_string.h" +/** + * This class appears to be the remnant of a sort of "hot-reloading" + * mechanism for the game's user interface. Many of the functions + * affect text formatting, UI layouting, and it also has mechanisms + * for overriding the text and flow files being accessed. The actual + * implementation appears to have been stripped out though. + */ class UnkTextThing { public: UnkTextThing(); @@ -21,6 +28,20 @@ public: return 0.0f; } + inline static f32 getField0x75C() { + if (sInstance != nullptr) { + return sInstance->field_0x75C; + } + return 0.0f; + } + + inline static f32 getField0x760() { + if (sInstance != nullptr) { + return sInstance->field_0x760; + } + return 0.0f; + } + inline static f32 getField0x768() { if (sInstance != nullptr) { return sInstance->field_0x768; @@ -95,11 +116,68 @@ public: return 0.0f; } -private: - static UnkTextThing *sInstance; + static UnkTextThing *getInstance() { + return sInstance; + } + + s16 getMsgWindowWaitDelay() const { + return mMsgWindowWaitDelay; + } + + bool getShouldOverrideData() const { + return mShouldOverrideData; + } + + void *getOverrideZev0() const { + return mOverrideZev0; + } + + void *getOverrideStageZev() const { + return mOverrideStageZev; + } + + bool getShouldHookAllocations() const { + return mShouldHookAllocations; + } + + MsbtInfo *getOverrideMsbtInfo(s32 index) const { + return mMsbts[index]; + } + + MsbfInfo *getOverrideMsbfInfo(s32 index) const { + return mMsbfs[index]; + } + + const char *getStr1() const { + return field_0x004; + } + + const char *getStr2() const { + return field_0x084; + } + + const char *getStr3() const { + return field_0x104; + } + + void setStr1(const char *s) { + field_0x004 = s; + } + + void setStr2(const char *s) { + field_0x084 = s; + } + + void setStr3(const char *s) { + field_0x104 = s; + } void *allocUnk(size_t size, int align); void destroyUnk(void *thing); + +private: + static UnkTextThing *sInstance; + void destroyFlow(MsbfInfo *flow); void destroyMsg(MsbtInfo *msg); @@ -121,11 +199,11 @@ private: /* 0x184 */ void *field_buf0[82]; /* 0x2CC */ void *field_buf4[23]; /* 0x328 */ void *field_buf1[80]; - /* 0x468 */ MsbtInfo *field_buf2[82]; + /* 0x468 */ MsbtInfo *mMsbts[82]; /* 0x5B0 */ MsbtInfo *field_buf5[23]; - /* 0x60C */ MsbfInfo *field_buf3[80]; - /* 0x74C */ void *field_0x74C; - /* 0x750 */ void *field_0x750; + /* 0x60C */ MsbfInfo *mMsbfs[80]; + /* 0x74C */ void *mOverrideZev0; + /* 0x750 */ void *mOverrideStageZev; /* 0x754 */ f32 field_0x754; /* 0x758 */ f32 field_0x758; /* 0x75C */ f32 field_0x75C; @@ -152,13 +230,13 @@ private: /* 0x7A8 */ s16 field_0x7A8; /* 0x7AA */ s16 field_0x7AA; /* 0x7AC */ s16 field_0x7AC; - /* 0x7AE */ s16 field_0x7AE; + /* 0x7AE */ s16 mMsgWindowWaitDelay; /* 0x7B0 */ s16 field_0x7B0; /* 0x7B2 */ bool field_0x7B2; /* 0x7B3 */ bool field_0x7B3; - /* 0x7B4 */ bool field_0x7B4; + /* 0x7B4 */ bool mShouldOverrideData; /* 0x7B5 */ bool field_0x7B5; - /* 0x7B6 */ bool field_0x7B6; + /* 0x7B6 */ bool mShouldHookAllocations; /* 0x7B6 */ bool field_0x7B7; /* 0x7B8 */ nw4r::ut::Color field_0x7B8; /* 0x7BC */ nw4r::ut::Color field_0x7BC; diff --git a/include/d/d_textwindow_unk.h b/include/d/d_textwindow_unk.h new file mode 100644 index 00000000..a599b2d0 --- /dev/null +++ b/include/d/d_textwindow_unk.h @@ -0,0 +1,96 @@ +#ifndef D_TEXTWINDOW_UNK_H +#define D_TEXTWINDOW_UNK_H + +#include "d/d_tag_processor.h" +#include "d/lyt/d_textbox.h" +#include "d/lyt/msg_window/d_lyt_msg_window_common.h" +#include "m/m_vec.h" +#include "sized_string.h" + +struct dLytMsgWindowCharData { + /* 0x00 */ f32 posX; + /* 0x04 */ f32 posY; + /* 0x08 */ f32 field_0x08; + /* 0x0C */ s16 field_0x0C; + /* 0x0E */ wchar_t character; + /* 0x10 */ s8 displayTimerMaybe; + + void reset() { + posX = 0.0f; + posY = 0.0f; + field_0x08 = dTagProcessor_c::fn_800B8040(0, 0); + character = L'\0'; + field_0x0C = 1023; + displayTimerMaybe = -1; + } +}; + +// Size 0x1554 +// Probably responsible for emitting characters +// one by one in the text boxes +class TextWindowUnk { +public: + TextWindowUnk(dTagProcessor_c *tagProcessor); + virtual ~TextWindowUnk() {} + + bool fn_800B2130(const char *, dTextBox_c *, dLytMsgWindowCharData *data, bool); + void fn_800B2AA0(); + void textAdvancingRelated(bool, bool); + + const wchar_t *getProcessedText() const { + return mProcessedTextBuffer; + } + + u16 getField_0x147A() const { + return field_0x147A; + } + + u16 getField_0x147C() const { + return field_0x147C; + } + + bool checkEndReached() const; + bool checkLastLineReached(); + bool reset(); + +private: + /* 0x0004 */ dTagProcessor_c *mpTagProcessor; + /* 0x0008 */ wchar_t mRawTextBuffer[1023]; + /* 0x0806 */ wchar_t mProcessedTextBuffer[1023]; + /* 0x1004 */ wchar_t mUnkBuffer[511]; // ??? + /* 0x1402 */ SizedString<64> field_0x1402; + /* 0x1442 */ u8 _0x1442[0x144C - 0x1442]; + + /* 0x144C */ s32 mRawTextPos; + /* 0x1450 */ s32 mRawTextEndPos; + /* 0x1454 */ s32 mCurrentLine; + /* 0x1458 */ s32 field_0x1458; + /* 0x145C */ u8 _0x145C[0x1478 - 0x145C]; + /* 0x1478 */ u16 field_0x1478; + /* 0x147A */ u16 field_0x147A; + /* 0x147C */ u16 field_0x147C; + /* 0x147E */ u8 _0x147E[0x1480 - 0x147E]; + /* 0x1480 */ dTextBox_c *mpTextBox; + /* 0x1484 */ LineData mLineWidths; + /* 0x1550 */ dLytMsgWindowCharData *mpCharacterData; +}; + +class MsgWindowBlurRelated { +public: + MsgWindowBlurRelated() {} + virtual ~MsgWindowBlurRelated() {} + + void build(); + void remove(); + void drawTextBlur(dLytTextLight *thing, mVec2_c size, u8 alpha); + void reset(); + + dLytMsgWindowCharData *getCharData() { + return mData; + } + +private: + dLytMsgWindowCharData mData[1023]; +}; + +#endif diff --git a/include/d/lyt/d2d.h b/include/d/lyt/d2d.h index a1015f1f..d7a7bc8d 100644 --- a/include/d/lyt/d2d.h +++ b/include/d/lyt/d2d.h @@ -44,10 +44,10 @@ class Multi_c : public m2d::Base_c { public: Multi_c(); virtual ~Multi_c() {} - virtual void draw() override; - virtual void animate(); - virtual void calc(); - virtual bool build(const char *name, m2d::ResAccIf_c *acc); + /* vt 0x0C */ virtual void draw() override; + /* vt 0x10 */ virtual void animate(); + /* vt 0x18 */ virtual void calc(); + /* vt 0x18 */ virtual bool build(const char *name, m2d::ResAccIf_c *acc); void calcBefore(); void calcAfter(); @@ -68,6 +68,10 @@ public: mpResAcc = resAcc; } + const nw4r::lyt::DrawInfo &getDrawInfo() { + return mDrawInfo; + } + protected: Layout_c mLayout; nw4r::lyt::DrawInfo mDrawInfo; @@ -79,11 +83,11 @@ class LytBase_c : public Multi_c { public: LytBase_c(); virtual ~LytBase_c(); - virtual void draw() override { + /* vt 0x0C */ virtual void draw() override { mLayout.Draw(mDrawInfo); }; - virtual bool build(const char *name, m2d::ResAccIf_c *acc) override; + /* vt 0x18 */ virtual bool build(const char *name, m2d::ResAccIf_c *acc) override; dTextBox_c *getTextBox(const char *name); dTextBox_c *getSizeBoxInWindow(const char *windowName); dWindow_c *getWindow(const char *name); @@ -92,7 +96,7 @@ public: bool fn_800AB940(const char *name, int arg); bool fn_800AB9A0(dTextBox_c *textbox, int arg); - bool fn_800ABE50(dTextBox_c *textbox, int arg, void *unk); + bool fn_800ABE50(dTextBox_c *textbox, wchar_t *destBuf, u32 maxLen); private: void setPropertiesRecursive(nw4r::lyt::Pane *pane, f32, f32, f32, f32, f32); @@ -101,9 +105,10 @@ private: bool fn_800ABB80(dTextBox_c *textbox1, dTextBox_c *textbox2, int arg); bool fn_800ABCE0(const nw4r::lyt::res::ExtUserData *userDatum, dTextBox_c *textbox1, dTextBox_c *textbox2, int arg); - bool fn_800AC040(dTextBox_c *textbox1, dTextBox_c *textbox2, int arg, void *unk); + bool fn_800AC040(dTextBox_c *textbox1, dTextBox_c *textbox2, wchar_t *destBuf, u32 maxLen); bool fn_800AC1AC( - const nw4r::lyt::res::ExtUserData *userDatum, dTextBox_c *textbox1, dTextBox_c *textbox2, int arg, void *unk + const nw4r::lyt::res::ExtUserData *userDatum, dTextBox_c *textbox1, dTextBox_c *textbox2, wchar_t *destBuf, + u32 maxLen ); MsbtInfo *getMsbtInfo() const; bool fn_800AB930(dTextBox_c *box); @@ -131,9 +136,11 @@ private: class dSubPane; struct SubPaneListNode { - nw4r::ut::LinkListNode mNode; - dSubPane *mpLytPane; - nw4r::lyt::Pane *mpPane; + /* 0x00 */ nw4r::ut::LinkListNode mNode; + /** The d lyt pane, set by the UI element */ + /* 0x08 */ dSubPane *mpLytPane; + /** The nw4r lyt pane, set by linkMeters */ + /* 0x0C */ nw4r::lyt::Pane *mpPane; }; typedef nw4r::ut::LinkList SubPaneList; @@ -141,24 +148,24 @@ typedef nw4r::ut::LinkList Su class dSubPane { public: dSubPane() : field_0x04(false), field_0x05(0) {} - virtual ~dSubPane() {} - virtual bool build(ResAccIf_c *resAcc) = 0; - virtual bool remove() = 0; - virtual bool execute() = 0; - virtual nw4r::lyt::Pane *getPane() = 0; - virtual LytBase_c *getLyt() = 0; - virtual const char *getName() const = 0; - virtual bool LytMeter0x24() const { + /* vt 0x08 */ virtual ~dSubPane() {} + /* vt 0x0C */ virtual bool build(ResAccIf_c *resAcc) = 0; + /* vt 0x10 */ virtual bool remove() = 0; + /* vt 0x14 */ virtual bool execute() = 0; + /* vt 0x18 */ virtual nw4r::lyt::Pane *getPane() = 0; + /* vt 0x1C */ virtual LytBase_c *getLyt() = 0; + /* vt 0x20 */ virtual const char *getName() const = 0; + /* vt 0x24 */ virtual bool LytMeter0x24() const { return field_0x04; } - virtual void LytMeter0x28(bool arg) { + /* vt 0x28 */ virtual void LytMeter0x28(bool arg) { field_0x04 = arg; } - virtual u8 LytMeter0x2C() const { + /* vt 0x2C */ virtual u8 LytMeter0x2C() const { return field_0x05; } - virtual void LytMeter0x30(u8 arg) { + /* vt 0x30 */ virtual void LytMeter0x30(u8 arg) { field_0x05 = arg; } @@ -178,22 +185,15 @@ struct AnmGroupBase_c { bool init(const char *fileName, m2d::ResAccIf_c *acc, d2d::Layout_c *layout, const char *animName); bool init(nw4r::lyt::AnimTransform *transform, const char *fileName, m2d::ResAccIf_c *acc, nw4r::lyt::Group *group); - bool setDirection(bool backwards); + bool bind(bool bDisable); bool unbind(); - bool afterUnbind(); + bool remove(); void setAnimEnable(bool); void setAnmFrame(f32); void syncAnmFrame(); void setForward(); void setBackward(); - inline void setFrameAndControlThings(f32 frame) { - setDirection(false); - setAnimEnable(true); - mpFrameCtrl->setFrame(frame); - syncAnmFrame(); - } - inline void play() { mpFrameCtrl->play(); syncAnmFrame(); @@ -205,12 +205,12 @@ struct AnmGroupBase_c { } inline void setFrameRatio(f32 frame) { - f32 end = getEndFrameRaw() - 1.0f; + f32 end = getAnimDuration() - 1.0f; setFrame(end * frame); } - inline f32 getEndFrameRaw() const { - return mpFrameCtrl->getEndFrameRaw(); + inline f32 getAnimDuration() const { + return mpFrameCtrl->getAnimDuration(); } inline f32 getFrame() const { @@ -250,7 +250,7 @@ struct AnmGroupBase_c { return mpFrameCtrl->getFlags() == (FLAG_NO_LOOP | FLAG_BACKWARDS); } - inline bool isPlayingForwardsOnce() const { + inline bool isPlayingForwardsOnce() const { return mpFrameCtrl->getFlags() == FLAG_NO_LOOP; } @@ -275,6 +275,10 @@ struct AnmGroupBase_c { syncAnmFrame(); } + inline f32 getRatio() const { + return mpFrameCtrl->getRatio(); + } + inline void setBackwardsRatio(f32 ratio) { mpFrameCtrl->setBackwardsRatio(ratio); syncAnmFrame(); diff --git a/include/d/lyt/d_lyt_auto_caption.h b/include/d/lyt/d_lyt_auto_caption.h new file mode 100644 index 00000000..7ad26cba --- /dev/null +++ b/include/d/lyt/d_lyt_auto_caption.h @@ -0,0 +1,48 @@ +#ifndef D_LYT_AUTO_CAPTION_H +#define D_LYT_AUTO_CAPTION_H + +#include "d/d_tag_processor.h" +#include "d/lyt/d2d.h" +#include "d/lyt/d_textbox.h" +#include "d/lyt/msg_window/d_lyt_msg_window_common.h" +#include "nw4r/lyt/lyt_pane.h" +#include "s/s_State.hpp" + +class dLytAutoCaption_c : public dLytMsgWindowSubtype { +public: + dLytAutoCaption_c() : mStateMgr(*this) {} + /* vt 0x08 */ virtual ~dLytAutoCaption_c() {} + /* vt 0x0C */ virtual void draw() override; + /* vt 0x10 */ virtual bool + build(d2d::ResAccIf_c *resAcc1, d2d::ResAccIf_c *resAcc, dTagProcessor_c *tagProcessor) override; + /* vt 0x14 */ virtual bool remove() override; + /* vt 0x18 */ virtual bool execute() override; + /* vt 0x1C */ virtual void open(dAcObjBase_c *obj, u32 param) override; + /* vt 0x20 */ virtual bool isDoneOpening() const override; + /* vt 0x24 */ virtual void close() override; + /* vt 0x28 */ virtual bool isDoneClosing() const override; + /* vt 0x2C */ virtual bool setText(const wchar_t *text) override; + /* vt 0x30 */ virtual dTextBox_c *getTextBox() override { + return mpTextboxes[0]; + } + + STATE_FUNC_DECLARE(dLytAutoCaption_c, Invisible); + STATE_FUNC_DECLARE(dLytAutoCaption_c, In); + STATE_FUNC_DECLARE(dLytAutoCaption_c, OutputText); + STATE_FUNC_DECLARE(dLytAutoCaption_c, Out); + + bool checkSomethingMeter(); + +private: + MSG_WINDOW_STATE_MGR_INLINE(dLytAutoCaption_c) + /* 0x010 */ UI_STATE_MGR_DECLARE(dLytAutoCaption_c); + /* 0x068 */ d2d::ResAccIf_c mResAcc; + /* 0x3C4 */ d2d::LytBase_c mLyt; + /* 0x44C */ d2d::AnmGroup_c mAnm[4]; + /* 0x54C */ dTextBox_c *mpTextboxes[2]; + /* 0x554 */ nw4r::lyt::Pane *mpPane; + /* 0x558 */ dTagProcessor_c *mpTagProcessor; + /* 0x55C */ bool mShouldBeOpen; +}; + +#endif diff --git a/include/d/lyt/d_lyt_auto_explain.h b/include/d/lyt/d_lyt_auto_explain.h new file mode 100644 index 00000000..b3988de4 --- /dev/null +++ b/include/d/lyt/d_lyt_auto_explain.h @@ -0,0 +1,48 @@ +#ifndef D_LYT_AUTO_EXPLAIN_H +#define D_LYT_AUTO_EXPLAIN_H + +#include "d/d_tag_processor.h" +#include "d/lyt/d2d.h" +#include "d/lyt/d_textbox.h" +#include "d/lyt/msg_window/d_lyt_msg_window_common.h" +#include "nw4r/lyt/lyt_pane.h" +#include "s/s_State.hpp" + +class dLytAutoExplain_c : public dLytMsgWindowSubtype { +public: + dLytAutoExplain_c() : mStateMgr(*this) {} + /* vt 0x08 */ virtual ~dLytAutoExplain_c() {} + /* vt 0x0C */ virtual void draw() override; + /* vt 0x10 */ virtual bool + build(d2d::ResAccIf_c *resAcc1, d2d::ResAccIf_c *resAcc, dTagProcessor_c *tagProcessor) override; + /* vt 0x14 */ virtual bool remove() override; + /* vt 0x18 */ virtual bool execute() override; + /* vt 0x1C */ virtual void open(dAcObjBase_c *obj, u32 param) override; + /* vt 0x20 */ virtual bool isDoneOpening() const override; + /* vt 0x24 */ virtual void close() override; + /* vt 0x28 */ virtual bool isDoneClosing() const override; + /* vt 0x2C */ virtual bool setText(const wchar_t *text) override; + /* vt 0x30 */ virtual dTextBox_c *getTextBox() override { + return mpTextboxes[0]; + } + + STATE_FUNC_DECLARE(dLytAutoExplain_c, Invisible); + STATE_FUNC_DECLARE(dLytAutoExplain_c, In); + STATE_FUNC_DECLARE(dLytAutoExplain_c, OutputText); + STATE_FUNC_DECLARE(dLytAutoExplain_c, Out); + + bool checkSomethingMeter(); + +private: + MSG_WINDOW_STATE_MGR_INLINE(dLytAutoExplain_c) + /* 0x010 */ UI_STATE_MGR_DECLARE(dLytAutoExplain_c); + /* 0x068 */ d2d::ResAccIf_c mResAcc; + /* 0x3C4 */ d2d::LytBase_c mLyt; + /* 0x44C */ d2d::AnmGroup_c mAnm[3]; + /* 0x50C */ dTextBox_c *mpTextboxes[2]; + /* 0x514 */ nw4r::lyt::Pane *mpPane; + /* 0x518 */ dTagProcessor_c *mpTagProcessor; + /* 0x51C */ bool mShouldBeOpen; +}; + +#endif diff --git a/include/d/lyt/d_lyt_common_a_btn.h b/include/d/lyt/d_lyt_common_a_btn.h new file mode 100644 index 00000000..a2f9fe02 --- /dev/null +++ b/include/d/lyt/d_lyt_common_a_btn.h @@ -0,0 +1,89 @@ +#ifndef D_LYT_COMMON_A_BTN_H +#define D_LYT_COMMON_A_BTN_H + +#include "d/lyt/d2d.h" + +/** + * Made up name. + * + * An A button used in various message windows, as well as + * the title menu. Can be hidden, visible, animating in, animating out. + */ +class dLytCommonABtn_c : public d2d::dSubPane { +public: + virtual bool build(d2d::ResAccIf_c *resAcc) override; + virtual bool remove() override; + virtual bool execute() override; + virtual nw4r::lyt::Pane *getPane() override { + return mLyt.getLayout()->GetRootPane(); + } + virtual d2d::LytBase_c *getLyt() override { + return &mLyt; + } + virtual const char *getName() const override { + return mLyt.getName(); + } + + bool isDoneOut() const { + return mIsDoneOut; + } + + bool requestIn(); + bool requestOut(bool b); + + enum SoundVariant { + VARIANT_NORMAL, + VARIANT_TITLE, + }; + + void setSoundVariant(SoundVariant); + void resetToInvisble(); + + enum ABtnState { + STATE_INVISIBLE, + STATE_IN, + STATE_VISIBLE, + STATE_OUT, + }; + +private: + enum OutState { + OUT_STATE_DECIDING, + OUT_STATE_GOTO_OUT, + OUT_STATE_OUT, + OUT_STATE_GOTO_INVISIBLE, + }; + + void setState(ABtnState state); + + void runExecuteFunc(); + + void executeStateInvisible(); + void executeStateIn(); + void executeStateVisible(); + void executeStateDecideOut(); + + void gotoStateInvisible(); + void gotoStateIn(); + void goToStateVisible(); + void goToStateDecideOut(); + + typedef void (dLytCommonABtn_c::*executeFunc)(void); + static const executeFunc sExecuteFuncs[4]; + + /* 0x008 */ d2d::dLytSub mLyt; + /* 0x09C */ d2d::AnmGroup_c mAnm[4]; + /* 0x19C */ ABtnState mState; + /* 0x1A0 */ OutState mOutState; + /* 0x1A4 */ SoundVariant mSoundVariant; + /* 0x1A8 */ u8 field_0x1A8; + /* 0x1A9 */ bool mInRequested; + /* 0x1AA */ bool mOutRequested; + /* 0x1AB */ bool mIsDoneOut; + /* 0x1AC */ u8 field_0x1AC; + /* 0x1AD */ bool mNoDecide; + /* 0x1AE */ u8 field_0x1AE; + /* 0x1AF */ u8 field_0x1AF; +}; + +#endif diff --git a/include/d/lyt/d_lyt_common_arrow.h b/include/d/lyt/d_lyt_common_arrow.h index 16415e5a..c6dd34ea 100644 --- a/include/d/lyt/d_lyt_common_arrow.h +++ b/include/d/lyt/d_lyt_common_arrow.h @@ -12,7 +12,7 @@ public: dLytCommonArrow_c(); virtual ~dLytCommonArrow_c() {} - bool init(); + bool build(); STATE_FUNC_DECLARE(dLytCommonArrow_c, None); STATE_FUNC_DECLARE(dLytCommonArrow_c, In); @@ -20,20 +20,20 @@ public: STATE_FUNC_DECLARE(dLytCommonArrow_c, Out); void setState(s32 state); - bool addToDrawList(); + bool draw(); - bool fn_80168490(); - bool fn_80168500(); - void setTranslate(const Vec *); + bool remove(); + bool execute(); bool requestIn(); bool requestOut(); - bool fn_80168760(); - void displayElement(s32, f32); - void fn_80168800(s32); - void fn_80168810(d2d::AnmGroup_c *); - void fn_80168880(); private: + void setTranslate(const Vec *); + bool fn_80168760(); + void displayElement(s32, f32); + void unbindAt(s32); + void tickDown(d2d::AnmGroup_c *); + void fn_80168880(); UI_STATE_MGR_DECLARE(dLytCommonArrow_c); /* 0x40 */ d2d::LytBase_c mLytBase; d2d::ResAccIf_c mResAcc; diff --git a/include/d/lyt/d_lyt_common_icon_item.h b/include/d/lyt/d_lyt_common_icon_item.h index 7e5712c7..66be9d60 100644 --- a/include/d/lyt/d_lyt_common_icon_item.h +++ b/include/d/lyt/d_lyt_common_icon_item.h @@ -56,7 +56,7 @@ public: void setNumberColor(u8 color); void setOn(); void setOff(); - void startDecide(); + void startConfirm(); bool isDoneDeciding() const; private: @@ -129,7 +129,7 @@ public: void setNumberColor(u8 color); void setOn(); void setOff(); - void startDecide(); + void startConfirm(); bool isDoneDeciding() const; void setShieldOnOff(bool onOff); @@ -264,7 +264,7 @@ public: /** The "decide" animation in the scrap shop makes the selected item flash for a short time before showing the upgrade screen */ - void startDecide(); + void startConfirm(); bool isDoneDeciding() const; void setShieldOnOff(bool onOff); diff --git a/include/d/lyt/d_lyt_control_game.h b/include/d/lyt/d_lyt_control_game.h new file mode 100644 index 00000000..5802522f --- /dev/null +++ b/include/d/lyt/d_lyt_control_game.h @@ -0,0 +1,25 @@ +#ifndef D_LYT_CONTROL_GAME_H +#define D_LYT_CONTROL_GAME_H + +#include "d/d_base.h" + +class dLytControlGame_c : public dBase_c { +public: + dLytControlGame_c(); + virtual ~dLytControlGame_c(); + + bool isInSomeMapState() const; + bool isNotInStateMap() const; + + void fn_802CCD40(bool); + + static dLytControlGame_c *getInstance() { + return sInstance; + } + +private: + + static dLytControlGame_c *sInstance; +}; + +#endif diff --git a/include/d/lyt/d_lyt_map.h b/include/d/lyt/d_lyt_map.h index 81e3f3d2..fbe85483 100644 --- a/include/d/lyt/d_lyt_map.h +++ b/include/d/lyt/d_lyt_map.h @@ -263,6 +263,8 @@ public: void build(); + bool isOpenMaybe() const; + STATE_FUNC_DECLARE(dLytMapMain_c, Invisible); STATE_FUNC_DECLARE(dLytMapMain_c, RenderingWait); STATE_FUNC_DECLARE(dLytMapMain_c, In); @@ -369,6 +371,14 @@ public: return &sInstance->mResAcc; } + static dLytMap_c *getInstance() { + return sInstance; + } + + bool isOpenMaybe() const { + return mMapMain.isOpenMaybe(); + } + void build(); private: diff --git a/include/d/lyt/d_textbox.h b/include/d/lyt/d_textbox.h index b3a69449..57b406fc 100644 --- a/include/d/lyt/d_textbox.h +++ b/include/d/lyt/d_textbox.h @@ -2,56 +2,116 @@ #define D_LYT_TEXTBOX_H #include "d/lyt/d2d.h" +#include "libms/msgfile.h" +#include "nw4r/lyt/lyt_drawInfo.h" #include "nw4r/lyt/lyt_textBox.h" #include "nw4r/lyt/lyt_types.h" +#include "nw4r/ut/ut_Rect.h" +#include "nw4r/ut/ut_TextWriterBase.h" + +class dTagProcessor_c; class dTextBox_c : public nw4r::lyt::TextBox { friend class dWindow_c; public: - dTextBox_c(const nw4r::lyt::res::TextBox *pBlock, const nw4r::lyt::ResBlockSet &ResBlockSet); + dTextBox_c(const nw4r::lyt::res::TextBox *pBlock, const nw4r::lyt::ResBlockSet &resBlockSet); + virtual void DrawSelf(const nw4r::lyt::DrawInfo &drawInfo) override; // at 0x18 - f32 GetLineWidth(f32 *pOutSpacing); + f32 GetLineWidth(f32 *pOutSpacing) const; + f32 GetLinesHeight() const; + f32 GetUnkWidthRatio() const; void setLytBase(d2d::LytBase_c *lytBase) { mpLytBase = lytBase; } void SetScale(f32 scale) { - nw4r::lyt::Size value(mTextScale); + nw4r::lyt::Size value(mMyTextScale); value.width *= scale; value.height *= scale; - mScale = scale; + mMyScale = scale; MySetScale(value); nw4r::lyt::TextBox::SetFontSize(value); } + void set0x1F6(u8 val) { + field_0x1F6 = val; + } + void set0x1F8(u8 val) { field_0x1F8 = val; } f32 getMyScale() const { - return mScale; + return mMyScale; } void fn_800E0A60(const char *area, ...) { // TODO } - void fn_800AF930(const wchar_t *); + void setTextWithGlobalTextProcessor(const wchar_t *str); + void setTextWithGlobalTextProcessor(const wchar_t *str, void *, ...); + void setMessageWithGlobalTextProcessor(const char *labelId, void *unused, void *, ...); + void setMessageWithGlobalTextProcessorV(const char *labelId, void *unused, void *, va_list list); + void setTextWithTextProcessor(const wchar_t *str, dTagProcessor_c *tagProcessor, void *, ...); + s32 calcTextLines(const wchar_t *src, dTagProcessor_c *tagProcessor); + + void setMessageWithGlobalTextProcessorAndMsbtInfo(const MsbtInfo *info, const char *labelId, wchar_t *destBuf, u32 maxLen); + + void loadTextFormatVars(); + void setupGX() const; // @bug: This does not implement UT's RTTI, so casts to dTextBox_c will // succeed even if all you have is a lyt::TextBox private: + void init(); + void MySetFontSize(const nw4r::lyt::Size &value); void MySetScale(const nw4r::lyt::Size &value); + void setTextWithGlobalTextProcessorV(const wchar_t *str, void *, va_list list); + void setTextWithTextProcessorV(const wchar_t *str, dTagProcessor_c *tagProcessor, void *, va_list list); + + nw4r::ut::Rect GetMyTextDrawRect(nw4r::ut::TextWriterBase *pWriter, bool *pbWideScreenUnk) const; + + f32 resizeTextToFit(f32 maxWidth); + bool hasDynamicText(); + void someDebugCheckMaybe(); + + int GetStoredLineStrNum(int i, f32 *pLineWidth, bool *pbOver) const { + *pbOver = mbOvers[i]; + *pLineWidth = mLineWidths[i]; + return mLineStrNums[i]; + } + + void SetStoredLineStrNum(int i, f32 lineWidth, int lineStrNum, bool bOver) { + mLineWidths[i] = lineWidth; + mLineStrNums[i] = lineStrNum; + mbOvers[i] = bOver; + } + /* 0x104 */ d2d::LytBase_c *mpLytBase; - /* 0x108 */ u8 field_0x108[0x118 - 0x108]; - /* 0x118 */ nw4r::lyt::Size mTextScale; - /* 0x120 */ f32 mScale; - /* 0x124 */ u8 field_0x124[0x1F8 - 0x124]; + /* 0x108 */ f32 mFixedWidth; + /* 0x10C */ u8 mIsWidthFixed; + /* 0x114 */ nw4r::lyt::Size mMyFontSize; + /* 0x118 */ nw4r::lyt::Size mMyTextScale; + /* 0x120 */ f32 mMyScale; + /* 0x124 */ nw4r::ut::TextWriterBase mTextWriter; + /* 0x188 */ nw4r::ut::Rect field_0x188; + /* 0x198 */ u32 mLineStrNums[10]; + /* 0x1C0 */ u8 mFontIdx; + /* 0x1C1 */ u8 mWindowSubtype; + /* 0x1C4 */ f32 mLineWidths[10]; + /* 0x1EC */ bool mbOvers[10]; + /* 0x1F6 */ u8 field_0x1F6; + /* 0x1F7 */ u8 field_0x1F7; /* 0x1F8 */ u8 field_0x1F8; - /* 0x1F9 */ u8 field_0x1F9[0x204 - 0x1F9]; + /* 0x1F9 */ bool field_0x1F9; + /* 0x1FA */ u8 field_0x1FA; + /* 0x1FC */ dTagProcessor_c *mpMyTagProcessor; + /* 0x200 */ bool mHasTextWriter; + /* 0x201 */ bool field_0x201; }; #endif diff --git a/include/d/lyt/msg_window/d_lyt_msg_window.h b/include/d/lyt/msg_window/d_lyt_msg_window.h new file mode 100644 index 00000000..ad6be3c2 --- /dev/null +++ b/include/d/lyt/msg_window/d_lyt_msg_window.h @@ -0,0 +1,147 @@ +#ifndef D_LYT_MSG_WINDOW_H +#define D_LYT_MSG_WINDOW_H + +#include "d/d_tag_processor.h" +#include "d/d_textwindow_unk.h" +#include "d/lyt/d2d.h" +#include "d/lyt/msg_window/d_lyt_msg_window_common.h" +#include "d/lyt/msg_window/d_lyt_msg_window_select_btn.h" +#include "m/m_vec.h" +#include "s/s_State.hpp" +#include "sized_string.h" + +// Forward declarations required for vtable order +class dLytMsgWindowTalk_c; +class dLytMsgWindowLink_c; +class dLytMsgWindowGet_c; +class dLytMsgWindowSword_c; +class dLytMsgWindowWood_c; +class dLytMsgWindowStone_c; +class dLytMsgWindowDemo_c; +class dLytAutoExplain_c; +class dLytAutoCaption_c; + +struct dLytMsgWindowCharData; + +class dLytMsgWindow_c { +public: + dLytMsgWindow_c() : mStateMgr(*this) {} + virtual ~dLytMsgWindow_c() {} + + bool build(); + bool remove(); + bool execute(); + bool draw(); + + bool isVisible() const; + bool isOutputtingText() const; + + void setCurrentLabelName(const char *name, bool storeFile); + void setCurrentEntrypointName(const char *name); + void setCurrentFlowFilename(const char *name); + + static dLytMsgWindow_c *getInstance() { + return sInstance; + } + + SizedString<64> getLabel() const { + return mNameCopy; + } + + const char *fn_80117390(bool) const; + +private: + bool setTextToDisplay(const wchar_t *text); + void createSubMsgManager(u8 type); + void removeSubMsgManagers(); + bool fn_8011A5D0() const; + + static dLytMsgWindow_c *sInstance; + + STATE_FUNC_DECLARE(dLytMsgWindow_c, Invisible); + STATE_FUNC_DECLARE(dLytMsgWindow_c, In); + STATE_FUNC_DECLARE(dLytMsgWindow_c, OutputText); + STATE_FUNC_DECLARE(dLytMsgWindow_c, WaitKeyChangePage0); + STATE_FUNC_DECLARE(dLytMsgWindow_c, WaitKeyChangePage1); + STATE_FUNC_DECLARE(dLytMsgWindow_c, WaitKeyMsgEnd0); + STATE_FUNC_DECLARE(dLytMsgWindow_c, WaitKeyMsgEnd1); + STATE_FUNC_DECLARE(dLytMsgWindow_c, WaitKeyMsgEnd2); + STATE_FUNC_DECLARE(dLytMsgWindow_c, WaitKeySelectQuestion); + STATE_FUNC_DECLARE(dLytMsgWindow_c, MapOpen); + STATE_FUNC_DECLARE(dLytMsgWindow_c, WaitKeyMapClose); + STATE_FUNC_DECLARE(dLytMsgWindow_c, MapClose); + STATE_FUNC_DECLARE(dLytMsgWindow_c, Out); + STATE_FUNC_DECLARE(dLytMsgWindow_c, ExplainIn); + STATE_FUNC_DECLARE(dLytMsgWindow_c, ExplainVisible); + STATE_FUNC_DECLARE(dLytMsgWindow_c, ExplainOut); + STATE_FUNC_DECLARE(dLytMsgWindow_c, DemoIn); + STATE_FUNC_DECLARE(dLytMsgWindow_c, DemoVisible); + STATE_FUNC_DECLARE(dLytMsgWindow_c, DemoOut); + + /* 0x004 */ UI_STATE_MGR_DECLARE(dLytMsgWindow_c); + /* 0x040 */ d2d::ResAccIf_c mResAcc1; + /* 0x3B0 */ d2d::ResAccIf_c mResAcc2; + + /* 0x720 */ TextWindowUnk *mpMsgWindowUnk; + /* 0x724 */ dTagProcessor_c *mpTagProcessor; + + /* 0x728 */ dLytMsgWindowSubtype *mpCurrentSubtype; + /* 0x72C */ dLytMsgWindowTalk_c *mpWindowTalk; + /* 0x730 */ dLytMsgWindowLink_c *mpWindowLink; + /* 0x734 */ dLytMsgWindowSword_c *mpWindowSword; + /* 0x738 */ dLytMsgWindowWood_c *mpWindowWood; + /* 0x73C */ dLytMsgWindowStone_c *mpWindowStone; + /* 0x740 */ dLytMsgWindowGet_c *mpWindowGet; + /* 0x744 */ dLytMsgWindowDemo_c *mpWindowDemo; + /* 0x748 */ dLytAutoExplain_c *mpAutoExplain; + /* 0x74C */ dLytAutoCaption_c *mpAutoCaption; + + /* 0x750 */ u8 _0x750[0x75C - 0x750]; + /* 0x75C */ mVec3_c field_0x75C; + /* 0x768 */ mVec3_c field_0x768; + /* 0x774 */ s32 field_0x774; + /* 0x778 */ s32 field_0x778; + /* 0x77C */ s32 field_0x77C; + /* 0x780 */ s32 field_0x780; + /* 0x784 */ s32 field_0x784; + + /* 0x788 */ u16 mEntryPointToTrigger; + /* 0x78A */ u16 mAlsoEntryPointToTrigger; + + /* 0x78C */ SizedString<0x40> mName; + /* 0x7CC */ SizedString<0x40> mNameCopy; + + /* 0x80C */ u8 field_0x80C; + /* 0x80D */ u8 field_0x80D; + /* 0x80E */ u8 field_0x80E; + /* 0x80F */ u8 mShowAutoMessage; + /* 0x810 */ u8 field_0x810; + /* 0x811 */ u8 field_0x811; + /* 0x812 */ u8 field_0x812; + /* 0x813 */ u8 field_0x813; + /* 0x814 */ u8 field_0x814; + /* 0x815 */ u8 field_0x815; + /* 0x816 */ u8 field_0x816; + /* 0x817 */ u8 field_0x817; + /* 0x818 */ u8 field_0x818; + /* 0x819 */ u8 field_0x819; + /* 0x81A */ u8 field_0x81A; + /* 0x81B */ u8 field_0x81B; + /* 0x81C */ u8 field_0x81C; + /* 0x81D */ u8 field_0x81D; + /* 0x81E */ u8 field_0x81E; + + /* 0x820 */ u16 field_0x820; + /* 0x824 */ s32 field_0x824; + /* 0x828 */ dLytMsgWindowCharData *field_0x828; + + /* 0x82C */ u32 mTextOptionSelection; + /* 0x830 */ u32 mSpecialFiMenuValue; + + /* 0x834 */ dLytMsgWindowSelectBtn_c mSelectBtn; + /* 0x1208 */ SizedString<8> mCurrentEntrypointName; + /* 0x1210 */ SizedString<16> mCurrentFlowFileName; + /* 0x1220 */ u8 field_0x1220; +}; + +#endif diff --git a/include/d/lyt/msg_window/d_lyt_msg_window_common.h b/include/d/lyt/msg_window/d_lyt_msg_window_common.h new file mode 100644 index 00000000..0180bdd3 --- /dev/null +++ b/include/d/lyt/msg_window/d_lyt_msg_window_common.h @@ -0,0 +1,91 @@ +#ifndef D_LYT_MGS_WINDOW_COMMON_H +#define D_LYT_MGS_WINDOW_COMMON_H + +#include "common.h" +#include "d/a/obj/d_a_obj_base.h" +#include "d/d_tag_processor.h" +#include "d/lyt/d2d.h" +#include "m/m2d.h" +#include "m/m_vec.h" +#include "nw4r/lyt/lyt_pane.h" + +#define MSG_WINDOW_STATE_MGR_INLINE(className) void changeState(const sFStateID_c &newState) { mStateMgr.changeState(newState); } + +class dLytMsgWindowSubtype : public m2d::Base_c { +public: + /* vt 0x08 */ virtual ~dLytMsgWindowSubtype() {} + // vt 0x0C = m2d::Base_c::draw + /* vt 0x10 */ virtual bool build(d2d::ResAccIf_c *resAcc1, d2d::ResAccIf_c *resAcc, dTagProcessor_c *tagProcessor); + /* vt 0x14 */ virtual bool remove(); + /* vt 0x18 */ virtual bool execute(); + /* vt 0x1C */ virtual void open(dAcObjBase_c *obj, u32 param); + /* vt 0x20 */ virtual bool isDoneOpening() const; + /* vt 0x24 */ virtual void close(); + /* vt 0x28 */ virtual bool isDoneClosing() const; + /* vt 0x2C */ virtual bool setText(const wchar_t *text); + /* vt 0x30 */ virtual dTextBox_c *getTextBox() { + return nullptr; + } + /* vt 0x34 */ virtual bool startConfirm() { + return true; + } + /* vt 0x38 */ virtual bool startDecide(bool b) { + return true; + } + /* vt 0x3C */ virtual bool isDoneDecide() const { + return true; + } + /* vt 0x40 */ virtual bool vt_0x40() const { + return true; + } +}; + +class dLytTextSword { +public: + enum ESwordType { + FI, + GHIRAHIM, + LASTBOSS, + }; + + dLytTextSword() {} + /* vt at 0x00 */ + virtual ~dLytTextSword() {} + + bool build(d2d::ResAccIf_c *pResAcc, ESwordType type); + bool remove(); + void draw(const wchar_t *str, s8 frame, mVec3_c pos, f32 scale); + f32 getAnimDuration() const; + +private: + /* 0x04 */ d2d::LytBase_c mLyt; + /* 0x94 */ d2d::AnmGroup_c mAnm; + /* 0xD4 */ dTextBox_c *mpTexts[3]; + /* 0xE0 */ nw4r::lyt::Pane *mpPane; + /* 0xE4 */ ESwordType mType; +}; + +class dLytTextLight { +public: + enum ETextType { + NORMAL, + DEMO, + }; + + dLytTextLight() {} + /* vt at 0x00 */ + virtual ~dLytTextLight() {} + + bool build(d2d::ResAccIf_c *pResAcc, ETextType type); + bool remove(); + void draw(s8 frame, mVec3_c pos, u8 alpha, f32 scale); + f32 getAnimDuration() const; + +private: + /* 0x04 */ d2d::LytBase_c mLyt; + /* 0x94 */ d2d::AnmGroup_c mAnm; + /* 0xD4 */ nw4r::lyt::Pane *mpPane; + /* 0xD8 */ ETextType mType; +}; + +#endif diff --git a/include/d/lyt/msg_window/d_lyt_msg_window_demo.h b/include/d/lyt/msg_window/d_lyt_msg_window_demo.h new file mode 100644 index 00000000..dad4d332 --- /dev/null +++ b/include/d/lyt/msg_window/d_lyt_msg_window_demo.h @@ -0,0 +1,60 @@ +#ifndef D_LYT_MSG_WINDOW_DEMO_H +#define D_LYT_MSG_WINDOW_DEMO_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/m_vec.h" +#include "nw4r/lyt/lyt_pane.h" +#include "s/s_State.hpp" +#include "sized_string.h" + +class dLytMsgWindowDemo_c : public dLytMsgWindowSubtype { +public: + dLytMsgWindowDemo_c() : mStateMgr(*this) {} + /* vt 0x08 */ virtual ~dLytMsgWindowDemo_c() {} + /* vt 0x0C */ virtual void draw() override; + /* vt 0x10 */ virtual bool + build(d2d::ResAccIf_c *resAcc1, d2d::ResAccIf_c *resAcc, dTagProcessor_c *tagProcessor) override; + /* vt 0x14 */ virtual bool remove() override; + /* vt 0x18 */ virtual bool execute() override; + /* vt 0x1C */ virtual void open(dAcObjBase_c *obj, u32 param) override; + /* vt 0x20 */ virtual bool isDoneOpening() const override; + /* vt 0x24 */ virtual void close() override; + /* vt 0x28 */ virtual bool isDoneClosing() const override; + /* vt 0x2C */ virtual bool setText(const wchar_t *text) override; + /* vt 0x30 */ virtual dTextBox_c *getTextBox() override { + return mpTextboxes[0]; + } + + dLytMsgWindowCharData *getCharData() { + return mBlurRelated.getCharData(); + } + + STATE_FUNC_DECLARE(dLytMsgWindowDemo_c, Invisible); + STATE_FUNC_DECLARE(dLytMsgWindowDemo_c, In); + STATE_FUNC_DECLARE(dLytMsgWindowDemo_c, Visible); + STATE_FUNC_DECLARE(dLytMsgWindowDemo_c, Out); + +private: + static SizedString<64> getTextLabel(); + + MSG_WINDOW_STATE_MGR_INLINE(dLytMsgWindowDemo_c) + /* 0x010 */ UI_STATE_MGR_DECLARE(dLytMsgWindowDemo_c); + /* 0x04C */ d2d::ResAccIf_c mResAcc; + /* 0x3BC */ d2d::LytBase_c mLyt; + /* 0x44C */ d2d::AnmGroup_c mAnm[2]; + + /* 0x4CC */ nw4r::lyt::Pane *mpPane; + /* 0x4D0 */ dTextBox_c *mpTextboxes[2]; + /* 0x4D8 */ dTagProcessor_c *mpTagProcessor; + /* 0x4DC */ mVec2_c mOffsets[2]; + /* 0x4EC */ dLytTextLight mText; + /* 0x5C8 */ MsgWindowBlurRelated mBlurRelated; + + /* 0x55B8 */ bool mShouldBeOpen; +}; + +#endif diff --git a/include/d/lyt/msg_window/d_lyt_msg_window_get.h b/include/d/lyt/msg_window/d_lyt_msg_window_get.h new file mode 100644 index 00000000..7aabba08 --- /dev/null +++ b/include/d/lyt/msg_window/d_lyt_msg_window_get.h @@ -0,0 +1,68 @@ +#ifndef D_LYT_MSG_WINDOW_GET_H +#define D_LYT_MSG_WINDOW_GET_H + +#include "d/d_tag_processor.h" +#include "d/d_textwindow_unk.h" +#include "d/lyt/d2d.h" +#include "d/lyt/d_lyt_common_a_btn.h" +#include "d/lyt/d_textbox.h" +#include "d/lyt/msg_window/d_lyt_msg_window_common.h" +#include "m/m_vec.h" +#include "s/s_State.hpp" + +class dLytMsgWindowGet_c : public dLytMsgWindowSubtype { +public: + dLytMsgWindowGet_c() : mStateMgr(*this) {} + /* vt 0x08 */ virtual ~dLytMsgWindowGet_c() {} + /* vt 0x0C */ virtual void draw() override; + /* vt 0x10 */ virtual bool + build(d2d::ResAccIf_c *resAcc1, d2d::ResAccIf_c *resAcc, dTagProcessor_c *tagProcessor) override; + /* vt 0x14 */ virtual bool remove() override; + /* vt 0x18 */ virtual bool execute() override; + /* vt 0x1C */ virtual void open(dAcObjBase_c *obj, u32 param) override; + /* vt 0x20 */ virtual bool isDoneOpening() const override; + /* vt 0x24 */ virtual void close() override; + /* vt 0x28 */ virtual bool isDoneClosing() const override; + /* vt 0x2C */ virtual bool setText(const wchar_t *text) override; + /* vt 0x30 */ virtual dTextBox_c *getTextBox() override { + return mpTextboxes[0]; + } + /* vt 0x34 */ virtual bool startConfirm() override { + return mBtn.requestIn(); + } + /* vt 0x38 */ virtual bool startDecide(bool b) override { + return mBtn.requestOut(b); + } + /* vt 0x3C */ virtual bool isDoneDecide() const override { + return mBtn.isDoneOut(); + } + + STATE_FUNC_DECLARE(dLytMsgWindowGet_c, Invisible); + STATE_FUNC_DECLARE(dLytMsgWindowGet_c, In); + STATE_FUNC_DECLARE(dLytMsgWindowGet_c, Visible); + STATE_FUNC_DECLARE(dLytMsgWindowGet_c, Out); + + dLytMsgWindowCharData *getCharData() { + return mBlurRelated.getCharData(); + } + +private: + MSG_WINDOW_STATE_MGR_INLINE(dLytMsgWindowGet_c) + /* 0x0010 */ UI_STATE_MGR_DECLARE(dLytMsgWindowGet_c); + /* 0x004C */ d2d::SubPaneList mSubpaneList; + /* 0x005C */ d2d::SubPaneListNode mNodes[1]; + /* 0x0068 */ d2d::ResAccIf_c mResAcc; + /* 0x03D8 */ d2d::LytBase_c mLyt; + /* 0x0468 */ d2d::AnmGroup_c mAnm[3]; + /* 0x0528 */ dTextBox_c *mpTextboxes[2]; + /* 0x0530 */ nw4r::lyt::Pane *mpPanes[6]; + /* 0x0548 */ dTagProcessor_c *mpTagProcessor; + /* 0x054C */ mVec2_c mOffset; + /* 0x0554 */ dLytCommonABtn_c mBtn; + /* 0x06E0 */ dLytTextLight mText; + /* 0x07C4 */ MsgWindowBlurRelated mBlurRelated; + + /* 0x55B8 */ bool mShouldBeOpen; +}; + +#endif diff --git a/include/d/lyt/msg_window/d_lyt_msg_window_link.h b/include/d/lyt/msg_window/d_lyt_msg_window_link.h new file mode 100644 index 00000000..f392c417 --- /dev/null +++ b/include/d/lyt/msg_window/d_lyt_msg_window_link.h @@ -0,0 +1,73 @@ +#ifndef D_LYT_MSG_WINDOW_LINK_H +#define D_LYT_MSG_WINDOW_LINK_H + +#include "d/d_tag_processor.h" +#include "d/d_textwindow_unk.h" +#include "d/lyt/d2d.h" +#include "d/lyt/d_lyt_common_a_btn.h" +#include "d/lyt/d_textbox.h" +#include "d/lyt/msg_window/d_lyt_msg_window_common.h" +#include "s/s_State.hpp" + +class dLytMsgWindowLink_c : public dLytMsgWindowSubtype { +public: + dLytMsgWindowLink_c() : mStateMgr(*this) {} + /* vt 0x08 */ virtual ~dLytMsgWindowLink_c() {} + /* vt 0x0C */ virtual void draw() override; + /* vt 0x10 */ virtual bool + build(d2d::ResAccIf_c *resAcc1, d2d::ResAccIf_c *resAcc, dTagProcessor_c *tagProcessor) override; + /* vt 0x14 */ virtual bool remove() override; + /* vt 0x18 */ virtual bool execute() override; + /* vt 0x1C */ virtual void open(dAcObjBase_c *obj, u32 param) override; + /* vt 0x20 */ virtual bool isDoneOpening() const override; + /* vt 0x24 */ virtual void close() override; + /* vt 0x28 */ virtual bool isDoneClosing() const override; + /* vt 0x2C */ virtual bool setText(const wchar_t *text) override; + /* vt 0x30 */ virtual dTextBox_c *getTextBox() override { + return mpTextboxes[0]; + } + /* vt 0x34 */ virtual bool startConfirm() override { + return mBtn.requestIn(); + } + /* vt 0x38 */ virtual bool startDecide(bool b) override { + return mBtn.requestOut(b); + } + /* vt 0x3C */ virtual bool isDoneDecide() const override { + return mBtn.isDoneOut(); + } + + STATE_FUNC_DECLARE(dLytMsgWindowLink_c, Invisible); + STATE_FUNC_DECLARE(dLytMsgWindowLink_c, In); + STATE_FUNC_DECLARE(dLytMsgWindowLink_c, Wait); + STATE_FUNC_DECLARE(dLytMsgWindowLink_c, Visible); + STATE_FUNC_DECLARE(dLytMsgWindowLink_c, Out); + + dLytMsgWindowCharData *getCharData() { + return mBlurRelated.getCharData(); + } + +private: + MSG_WINDOW_STATE_MGR_INLINE(dLytMsgWindowLink_c) + /* 0x0010 */ UI_STATE_MGR_DECLARE(dLytMsgWindowLink_c); + /* 0x004C */ d2d::SubPaneList mSubpaneList; + /* 0x005C */ d2d::SubPaneListNode mNodes[1]; + /* 0x0068 */ d2d::ResAccIf_c mResAcc; + /* 0x03D8 */ d2d::LytBase_c mLyt; + /* 0x0468 */ d2d::AnmGroup_c mAnm[4]; + /* 0x0568 */ dTextBox_c *mpTextboxes[2]; + /* 0x0570 */ nw4r::lyt::Pane *mpPanes[5]; + /* 0x0584 */ dTagProcessor_c *mpTagProcessor; + /* 0x0588 */ mVec3_c mTranslationOrig; + /* 0x0594 */ mVec3_c mTranslationTo; + /* 0x05A0 */ mVec3_c mTranslationFrom; + /* 0x05AC */ mVec2_c mOffset; + /* 0x05B4 */ dAcObjBase_c *mpActor; + /* 0x05B8 */ s32 mParam; + /* 0x05BC */ s32 mWaitDelay; + /* 0x05C0 */ dLytCommonABtn_c mBtn; + /* 0x0770 */ dLytTextLight mText; + /* 0x084C */ MsgWindowBlurRelated mBlurRelated; + /* 0x583C */ bool mShouldBeOpen; +}; + +#endif diff --git a/include/d/lyt/msg_window/d_lyt_msg_window_select_btn.h b/include/d/lyt/msg_window/d_lyt_msg_window_select_btn.h new file mode 100644 index 00000000..3d69201e --- /dev/null +++ b/include/d/lyt/msg_window/d_lyt_msg_window_select_btn.h @@ -0,0 +1,149 @@ +#ifndef D_LYT_MSG_WINDOW_SELECT_BTN_H +#define D_LYT_MSG_WINDOW_SELECT_BTN_H + +#include "d/d_tag_processor.h" +#include "d/lyt/d2d.h" +#include "d/lyt/d_textbox.h" +#include "d/lyt/d_window.h" +#include "nw4r/lyt/lyt_pane.h" +#include "s/s_State.hpp" + +// Size 0x54? +struct SelectBtnHelper { + SelectBtnHelper(); + ~SelectBtnHelper(); + + /* 0x00 */ nw4r::lyt::Pane *panes[9]; + /* 0x24 */ u8 _0x24[0x34 - 0x24]; + /* 0x34 */ f32 field_0x34; + /* 0x38 */ f32 field_0x38; + /* 0x3C */ f32 field_0x3C; + /* 0x40 */ f32 field_0x40; + /* 0x44 */ s32 field_0x44; + /* 0x48 */ s32 field_0x48; + /* 0x4C */ s32 field_0x4C; + /* 0x50 */ s8 field_0x50; + /* 0x51 */ s8 field_0x51; + /* 0x52 */ s8 field_0x52; + + f32 fn_8011D690(s32); + void fn_8011C970(); + u8 fn_8011CAC0(); +}; + +class dLytMsgWindowSelectBtnParts_c { + friend class dLytMsgWindowSelectBtn_c; + +public: + dLytMsgWindowSelectBtnParts_c() : mStateMgr(*this) {} + + void init(); + void execute(); + +private: + STATE_FUNC_DECLARE(dLytMsgWindowSelectBtnParts_c, Wait); + STATE_FUNC_DECLARE(dLytMsgWindowSelectBtnParts_c, On); + STATE_FUNC_DECLARE(dLytMsgWindowSelectBtnParts_c, Select); + STATE_FUNC_DECLARE(dLytMsgWindowSelectBtnParts_c, Off); + + /* 0x00 */ UI_STATE_MGR_DECLARE(dLytMsgWindowSelectBtnParts_c); + /* 0x3C */ d2d::AnmGroup_c *mpAnms[3]; + /* 0x48 */ u32 field_0x48; + /* 0x4C */ u32 field_0x4C; + /* 0x50 */ u8 field_0x50; +}; + +class dLytMsgWindowSelectBtn_c : public d2d::dSubPane { +public: + dLytMsgWindowSelectBtn_c() : mStateMgr(*this) {} + virtual bool build(d2d::ResAccIf_c *resAcc) override; + virtual bool remove() override; + virtual bool execute() override; + virtual nw4r::lyt::Pane *getPane() override { + return mLyt.getLayout()->GetRootPane(); + } + virtual d2d::LytBase_c *getLyt() override { + return &mLyt; + } + virtual const char *getName() const override { + return mLyt.getName(); + } + + virtual ~dLytMsgWindowSelectBtn_c() {} + + bool draw(); + + s32 getField_0x9B4() const { + return field_0x9B4; + } + + void setField_0x9B8(s32 value) { + field_0x9B8 = value; + } + + void setField_0x9BC(s32 value) { + field_0x9BC = value; + } + + void setField_0x990(s32 value) { + mBtnHelper.field_0x4C = value; + } + + void setField_0x998(dTagProcessor_c *value) { + mpTagProcessor = value; + } + + void fn_8011E5D0(u32, bool); + + dTextBox_c *getSelectTextBox(s32 option, s32 idx) const { + return mpSelectTextBoxes[option][idx]; + } + + BOOL isStateWait() { + return *mStateMgr.getStateID() == StateID_Wait; + } + +private: + s32 fn_8011FE50(); + + STATE_FUNC_DECLARE(dLytMsgWindowSelectBtn_c, Wait); + STATE_FUNC_DECLARE(dLytMsgWindowSelectBtn_c, In); + STATE_FUNC_DECLARE(dLytMsgWindowSelectBtn_c, WaitSelect); + STATE_FUNC_DECLARE(dLytMsgWindowSelectBtn_c, CursorInOut); + STATE_FUNC_DECLARE(dLytMsgWindowSelectBtn_c, WaitDecide); + STATE_FUNC_DECLARE(dLytMsgWindowSelectBtn_c, WaitCancel); + STATE_FUNC_DECLARE(dLytMsgWindowSelectBtn_c, Out); + + /* 0x008 */ UI_STATE_MGR_DECLARE(dLytMsgWindowSelectBtn_c); + /* 0x044 */ d2d::dLytSub mLyt; + /* 0x0D8 */ d2d::AnmGroup_c mAnm[27]; + /* 0x798 */ nw4r::lyt::Pane *mpSelectPanes[7]; + /* 0x7B4 */ dTextBox_c *mpSelectTextBoxes[4][2]; + /* 0x7D4 */ dTextBox_c *mpDecideTextBoxes[2]; + /* 0x7DC */ nw4r::lyt::Pane *mpBoundings[4]; + /* 0x7EC */ dWindow_c *mpWindow; + /* 0x7F0 */ dTextBox_c *mpSizeBox; + /* 0x7F4 */ dLytMsgWindowSelectBtnParts_c mParts[4]; + /* 0x944 */ SelectBtnHelper mBtnHelper; + /* 0x998 */ dTagProcessor_c *mpTagProcessor; + /* 0x99C */ s32 field_0x99C; + /* 0x9A0 */ s32 field_0x9A0; + /* 0x9A4 */ u8 field_0x9A4; + /* 0x9A8 */ s32 field_0x9A8; + /* 0x9AC */ void *field_0x9AC; + /* 0x9B0 */ s32 field_0x9B0; + /* 0x9B0 */ s32 field_0x9B4; + /* 0x9B8 */ s32 field_0x9B8; + /* 0x9BC */ s32 field_0x9BC; + /* 0x9C0 */ s32 field_0x9C0; + /* 0x9C4 */ void *field_0x9C4; + /* 0x9C8 */ s32 field_0x9C8; + /* 0x9CC */ s8 field_0x9CC; + /* 0x9CD */ u8 field_0x9CD; + /* 0x9CE */ u8 field_0x9CE; + /* 0x9CF */ u8 field_0x9CF; + /* 0x9D0 */ u8 field_0x9D0; + /* 0x9D1 */ u8 field_0x9D1; +}; + +#endif diff --git a/include/d/lyt/msg_window/d_lyt_msg_window_stone.h b/include/d/lyt/msg_window/d_lyt_msg_window_stone.h new file mode 100644 index 00000000..4e2b4e71 --- /dev/null +++ b/include/d/lyt/msg_window/d_lyt_msg_window_stone.h @@ -0,0 +1,59 @@ +#ifndef D_LYT_MSG_WINDOW_STONE_H +#define D_LYT_MSG_WINDOW_STONE_H + +#include "d/d_tag_processor.h" +#include "d/lyt/d2d.h" +#include "d/lyt/d_lyt_common_a_btn.h" +#include "d/lyt/d_textbox.h" +#include "d/lyt/msg_window/d_lyt_msg_window_common.h" +#include "nw4r/lyt/lyt_pane.h" +#include "s/s_State.hpp" + +class dLytMsgWindowStone_c : public dLytMsgWindowSubtype { +public: + dLytMsgWindowStone_c() : mStateMgr(*this) {} + /* vt 0x08 */ virtual ~dLytMsgWindowStone_c() {} + /* vt 0x0C */ virtual void draw() override; + /* vt 0x10 */ virtual bool + build(d2d::ResAccIf_c *resAcc1, d2d::ResAccIf_c *resAcc, dTagProcessor_c *tagProcessor) override; + /* vt 0x14 */ virtual bool remove() override; + /* vt 0x18 */ virtual bool execute() override; + /* vt 0x1C */ virtual void open(dAcObjBase_c *obj, u32 param) override; + /* vt 0x20 */ virtual bool isDoneOpening() const override; + /* vt 0x24 */ virtual void close() override; + /* vt 0x28 */ virtual bool isDoneClosing() const override; + /* vt 0x2C */ virtual bool setText(const wchar_t *text) override; + /* vt 0x30 */ virtual dTextBox_c *getTextBox() override { + return mpTextboxes[0]; + } + /* vt 0x34 */ virtual bool startConfirm() override { + return mBtn.requestIn(); + } + /* vt 0x38 */ virtual bool startDecide(bool b) override { + return mBtn.requestOut(b); + } + /* vt 0x3C */ virtual bool isDoneDecide() const override { + return mBtn.isDoneOut(); + } + + STATE_FUNC_DECLARE(dLytMsgWindowStone_c, Invisible); + STATE_FUNC_DECLARE(dLytMsgWindowStone_c, In); + STATE_FUNC_DECLARE(dLytMsgWindowStone_c, Visible); + STATE_FUNC_DECLARE(dLytMsgWindowStone_c, Out); + +private: + MSG_WINDOW_STATE_MGR_INLINE(dLytMsgWindowStone_c) + /* 0x010 */ UI_STATE_MGR_DECLARE(dLytMsgWindowStone_c); + /* 0x04C */ d2d::SubPaneList mSubpaneList; + /* 0x05C */ d2d::SubPaneListNode mNodes[1]; + /* 0x068 */ d2d::ResAccIf_c mResAcc; + /* 0x3D8 */ d2d::LytBase_c mLyt; + /* 0x468 */ d2d::AnmGroup_c mAnm[3]; + /* 0x528 */ dTextBox_c *mpTextboxes[3]; + /* 0x530 */ nw4r::lyt::Pane *mpPanes[2]; + /* 0x538 */ dTagProcessor_c *mpTagProcessor; + /* 0x53C */ dLytCommonABtn_c mBtn; + /* 0x6EC */ bool mShouldBeOpen; +}; + +#endif 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 new file mode 100644 index 00000000..ae9a40b8 --- /dev/null +++ b/include/d/lyt/msg_window/d_lyt_msg_window_sword.h @@ -0,0 +1,88 @@ +#ifndef D_LYT_MSG_WINDOW_SWORD_H +#define D_LYT_MSG_WINDOW_SWORD_H + +#include "d/a/obj/d_a_obj_base.h" +#include "d/d_tag_processor.h" +#include "d/d_textwindow_unk.h" +#include "d/lyt/d2d.h" +#include "d/lyt/d_lyt_common_a_btn.h" +#include "d/lyt/d_textbox.h" +#include "d/lyt/msg_window/d_lyt_msg_window_common.h" +#include "m/m_vec.h" +#include "s/s_State.hpp" + +class dLytMsgWindowSword_c : public dLytMsgWindowSubtype { +public: + dLytMsgWindowSword_c() : mStateMgr(*this) {} + /* vt 0x08 */ virtual ~dLytMsgWindowSword_c() {} + /* vt 0x0C */ virtual void draw() override; + /* vt 0x10 */ virtual bool + build(d2d::ResAccIf_c *resAcc1, d2d::ResAccIf_c *resAcc, dTagProcessor_c *tagProcessor) override; + /* vt 0x14 */ virtual bool remove() override; + /* vt 0x18 */ virtual bool execute() override; + /* vt 0x1C */ virtual void open(dAcObjBase_c *obj, u32 param) override; + /* vt 0x20 */ virtual bool isDoneOpening() const override; + /* vt 0x24 */ virtual void close() override; + /* vt 0x28 */ virtual bool isDoneClosing() const override; + /* vt 0x2C */ virtual bool setText(const wchar_t *text) override; + /* vt 0x30 */ virtual dTextBox_c *getTextBox() override { + return mpTextboxes[0]; + } + /* vt 0x34 */ virtual bool startConfirm() override { + return mBtn.requestIn(); + } + /* vt 0x38 */ virtual bool startDecide(bool b) override { + return mBtn.requestOut(b); + } + /* vt 0x3C */ virtual bool isDoneDecide() const override { + return mBtn.isDoneOut(); + } + + STATE_FUNC_DECLARE(dLytMsgWindowSword_c, Invisible); + STATE_FUNC_DECLARE(dLytMsgWindowSword_c, In); + STATE_FUNC_DECLARE(dLytMsgWindowSword_c, Wait); + STATE_FUNC_DECLARE(dLytMsgWindowSword_c, Visible); + STATE_FUNC_DECLARE(dLytMsgWindowSword_c, Out); + + void setSwordType(dLytTextSword::ESwordType type) { + mSwordType = type; + } + + dLytMsgWindowCharData *getCharData() { + return mCharacterData; + } + +private: + MSG_WINDOW_STATE_MGR_INLINE(dLytMsgWindowSword_c) + /* 0x0010 */ UI_STATE_MGR_DECLARE(dLytMsgWindowSword_c); + /* 0x004C */ d2d::SubPaneList mSubpaneList; + /* 0x005C */ d2d::SubPaneListNode mNodes[1]; + /* 0x0068 */ d2d::ResAccIf_c mResAcc; + /* 0x03D8 */ d2d::LytBase_c mLyt; + /* 0x0468 */ d2d::AnmGroup_c mAnm[5]; + /* 0x05A8 */ dTextBox_c *mpTextboxes[2]; + /* 0x05B0 */ nw4r::lyt::Pane *mpPanes[3]; + /* 0x05BC */ dTagProcessor_c *mpTagProcessor; + /* 0x05C0 */ mVec3_c mTranslationOrig; + /* 0x05CC */ mVec3_c mTranslationTo; + /* 0x05D8 */ mVec3_c mTranslationFrom; + + /* 0x05E4 */ mVec2_c mOffset; + + /* 0x05EC */ dAcObjBase_c *mpActor; + /* 0x05F0 */ s32 mParam; + + /* 0x05F4 */ s32 mWaitDelay; + + /* 0x05F8 */ dLytCommonABtn_c mBtn; + + /* 0x07A8 */ dLytMsgWindowCharData mCharacterData[1023]; + /* 0x5794 */ wchar_t mTextBuf[1023]; + + /* 0x5F94 */ dLytTextSword mSwordText; + /* 0x607C */ dLytTextSword::ESwordType mSwordType; + /* 0x6080 */ bool mShouldBeOpen; + /* 0x6081 */ bool mHasDrawnThisTick; +}; + +#endif diff --git a/include/d/lyt/msg_window/d_lyt_msg_window_talk.h b/include/d/lyt/msg_window/d_lyt_msg_window_talk.h new file mode 100644 index 00000000..3cbed7e2 --- /dev/null +++ b/include/d/lyt/msg_window/d_lyt_msg_window_talk.h @@ -0,0 +1,74 @@ +#ifndef D_LYT_MSG_WINDOW_TALK_H +#define D_LYT_MSG_WINDOW_TALK_H + +#include "d/d_tag_processor.h" +#include "d/d_textwindow_unk.h" +#include "d/lyt/d2d.h" +#include "d/lyt/d_lyt_common_a_btn.h" +#include "d/lyt/d_textbox.h" +#include "d/lyt/msg_window/d_lyt_msg_window_common.h" +#include "m/m_vec.h" +#include "s/s_State.hpp" + +class dLytMsgWindowTalk_c : public dLytMsgWindowSubtype { +public: + dLytMsgWindowTalk_c() : mStateMgr(*this) {} + /* vt 0x08 */ virtual ~dLytMsgWindowTalk_c() {} + /* vt 0x0C */ virtual void draw() override; + /* vt 0x10 */ virtual bool + build(d2d::ResAccIf_c *resAcc1, d2d::ResAccIf_c *resAcc, dTagProcessor_c *tagProcessor) override; + /* vt 0x14 */ virtual bool remove() override; + /* vt 0x18 */ virtual bool execute() override; + /* vt 0x1C */ virtual void open(dAcObjBase_c *obj, u32 param) override; + /* vt 0x20 */ virtual bool isDoneOpening() const override; + /* vt 0x24 */ virtual void close() override; + /* vt 0x28 */ virtual bool isDoneClosing() const override; + /* vt 0x2C */ virtual bool setText(const wchar_t *text) override; + /* vt 0x30 */ virtual dTextBox_c *getTextBox() override { + return mpTextboxes[0]; + } + /* vt 0x34 */ virtual bool startConfirm() override { + return mBtn.requestIn(); + } + /* vt 0x38 */ virtual bool startDecide(bool b) override { + return mBtn.requestOut(b); + } + /* vt 0x3C */ virtual bool isDoneDecide() const override { + return mBtn.isDoneOut(); + } + + STATE_FUNC_DECLARE(dLytMsgWindowTalk_c, Invisible); + STATE_FUNC_DECLARE(dLytMsgWindowTalk_c, In); + STATE_FUNC_DECLARE(dLytMsgWindowTalk_c, Wait); + STATE_FUNC_DECLARE(dLytMsgWindowTalk_c, Visible); + STATE_FUNC_DECLARE(dLytMsgWindowTalk_c, Out); + + dLytMsgWindowCharData *getCharData() { + return mBlurRelated.getCharData(); + } + +private: + MSG_WINDOW_STATE_MGR_INLINE(dLytMsgWindowTalk_c) + /* 0x0010 */ UI_STATE_MGR_DECLARE(dLytMsgWindowTalk_c); + /* 0x004C */ d2d::SubPaneList mSubpaneList; + /* 0x005C */ d2d::SubPaneListNode mNodes[1]; + /* 0x0068 */ d2d::ResAccIf_c mResAcc; + /* 0x03D8 */ d2d::LytBase_c mLyt; + /* 0x0468 */ d2d::AnmGroup_c mAnm[4]; + /* 0x0568 */ dTextBox_c *mpTextboxes[2]; + /* 0x0570 */ nw4r::lyt::Pane *mpPanes[5]; + /* 0x0584 */ dTagProcessor_c *mpTagProcessor; + /* 0x0588 */ mVec3_c mTranslationOrig; + /* 0x0594 */ mVec3_c mTranslationTo; + /* 0x05A0 */ mVec3_c mTranslationFrom; + /* 0x05AC */ mVec2_c mOffset; + /* 0x05B4 */ dAcObjBase_c *mpActor; + /* 0x05B8 */ s32 mParam; + /* 0x05BC */ s32 mWaitDelay; + /* 0x05C0 */ dLytCommonABtn_c mBtn; + /* 0x0770 */ dLytTextLight mText; + /* 0x084C */ MsgWindowBlurRelated mBlurRelated; + /* 0x583C */ bool mShouldBeOpen; +}; + +#endif diff --git a/include/d/lyt/msg_window/d_lyt_msg_window_wood.h b/include/d/lyt/msg_window/d_lyt_msg_window_wood.h new file mode 100644 index 00000000..d1a31ff6 --- /dev/null +++ b/include/d/lyt/msg_window/d_lyt_msg_window_wood.h @@ -0,0 +1,60 @@ +#ifndef D_LYT_MSG_WINDOW_WOOD_H +#define D_LYT_MSG_WINDOW_WOOD_H + +#include "d/a/obj/d_a_obj_base.h" +#include "d/d_tag_processor.h" +#include "d/lyt/d2d.h" +#include "d/lyt/d_lyt_common_a_btn.h" +#include "d/lyt/d_textbox.h" +#include "d/lyt/msg_window/d_lyt_msg_window_common.h" +#include "nw4r/lyt/lyt_pane.h" +#include "s/s_State.hpp" + +class dLytMsgWindowWood_c : public dLytMsgWindowSubtype { +public: + dLytMsgWindowWood_c() : mStateMgr(*this) {} + /* vt 0x08 */ virtual ~dLytMsgWindowWood_c() {} + /* vt 0x0C */ virtual void draw() override; + /* vt 0x10 */ virtual bool + build(d2d::ResAccIf_c *resAcc1, d2d::ResAccIf_c *resAcc, dTagProcessor_c *tagProcessor) override; + /* vt 0x14 */ virtual bool remove() override; + /* vt 0x18 */ virtual bool execute() override; + /* vt 0x1C */ virtual void open(dAcObjBase_c *obj, u32 param) override; + /* vt 0x20 */ virtual bool isDoneOpening() const override; + /* vt 0x24 */ virtual void close() override; + /* vt 0x28 */ virtual bool isDoneClosing() const override; + /* vt 0x2C */ virtual bool setText(const wchar_t *text) override; + /* vt 0x30 */ virtual dTextBox_c *getTextBox() override { + return mpTextboxes[0]; + } + /* vt 0x34 */ virtual bool startConfirm() override { + return mBtn.requestIn(); + } + /* vt 0x38 */ virtual bool startDecide(bool b) override { + return mBtn.requestOut(b); + } + /* vt 0x3C */ virtual bool isDoneDecide() const override { + return mBtn.isDoneOut(); + } + + STATE_FUNC_DECLARE(dLytMsgWindowWood_c, Invisible); + STATE_FUNC_DECLARE(dLytMsgWindowWood_c, In); + STATE_FUNC_DECLARE(dLytMsgWindowWood_c, Visible); + STATE_FUNC_DECLARE(dLytMsgWindowWood_c, Out); + +private: + MSG_WINDOW_STATE_MGR_INLINE(dLytMsgWindowWood_c) + /* 0x010 */ UI_STATE_MGR_DECLARE(dLytMsgWindowWood_c); + /* 0x04C */ d2d::SubPaneList mSubpaneList; + /* 0x05C */ d2d::SubPaneListNode mNodes[1]; + /* 0x068 */ d2d::ResAccIf_c mResAcc; + /* 0x3D8 */ d2d::LytBase_c mLyt; + /* 0x468 */ d2d::AnmGroup_c mAnm[3]; + /* 0x528 */ dTextBox_c *mpTextboxes[2]; + /* 0x530 */ nw4r::lyt::Pane *mpPanes[2]; + /* 0x538 */ dTagProcessor_c *mpTagProcessor; + /* 0x53C */ dLytCommonABtn_c mBtn; + /* 0x6EC */ bool mShouldBeOpen; +}; + +#endif diff --git a/include/egg/math/eggVector.h b/include/egg/math/eggVector.h index 2d030d45..f509ad85 100644 --- a/include/egg/math/eggVector.h +++ b/include/egg/math/eggVector.h @@ -136,6 +136,11 @@ public: static const Vector2f ex; static const Vector2f ey; + void set(f32 fx, f32 fy) { + x = fx; + y = fy; + } + Vector2f operator-(const Vector2f &v) { return Vector2f(x - v.x, y - v.y); } diff --git a/include/libms/commonlib.h b/include/libms/commonlib.h index 13e8bcc1..7a0680e4 100644 --- a/include/libms/commonlib.h +++ b/include/libms/commonlib.h @@ -22,8 +22,7 @@ struct MsbBlock { /* 0x0C */ u16 field_0x0C; }; -#pragma push -#pragma pack(2) +#pragma pack(push ,2) struct MsbHeader { /* 0x00 */ unsigned char field_0x00[0x0C - 0x00]; @@ -33,7 +32,7 @@ struct MsbHeader { /* 0x12 */ int fileLength; }; -#pragma pop +#pragma pack(pop) struct MsbInfo { /* 0x00 */ struct MsbHeader *header; diff --git a/include/libms/flowfile.h b/include/libms/flowfile.h index 9bc47790..edd1710f 100644 --- a/include/libms/flowfile.h +++ b/include/libms/flowfile.h @@ -12,7 +12,7 @@ struct MsbfInfo; struct MsbFlowInfo { /* 0x00 */ char type; /* 0x01 */ char subType; - /* 0x04 */ short params1n2; + /* 0x04 */ int params1n2; /* 0x08 */ short next; /* 0x0A */ short param3; /* 0x0C */ short param4; diff --git a/include/libms/msgfile.h b/include/libms/msgfile.h index 50121699..bc6f2aaa 100644 --- a/include/libms/msgfile.h +++ b/include/libms/msgfile.h @@ -2,6 +2,7 @@ #define LIBMS_MSGFILE_H #include "common.h" +#include #ifdef __cplusplus extern "C" { @@ -16,11 +17,11 @@ struct MsbtAttrInfo { struct MsbtInfo *LMS_InitMessage(void *data); void LMS_CloseMessage(struct MsbtInfo *info); -int LMS_GetTextIndexByLabel(struct MsbtInfo *info, const char *label); -const char *LMS_GetText(struct MsbtInfo *info, int index); -const char *LMS_GetTextByLabel(struct MsbtInfo *info, const char *label); -const char *LMS_GetLabelByTextIndex(struct MsbtInfo *info, int index); -struct MsbtAttrInfo *LMS_GetAttribute(struct MsbtInfo *info, int index); +int LMS_GetTextIndexByLabel(const struct MsbtInfo *info, const char *label); +const wchar_t *LMS_GetText(const struct MsbtInfo *info, int index); +const wchar_t *LMS_GetTextByLabel(const struct MsbtInfo *info, const char *label); +const char *LMS_GetLabelByTextIndex(const struct MsbtInfo *info, int index); +struct MsbtAttrInfo *LMS_GetAttribute(const struct MsbtInfo *info, int index); #ifdef __cplusplus } diff --git a/include/m/m2d.h b/include/m/m2d.h index cf0936e1..3f839d91 100644 --- a/include/m/m2d.h +++ b/include/m/m2d.h @@ -94,6 +94,11 @@ public: setFrame(actualEnd * ratio); } + inline f32 getRatio() const { + f32 actualEnd = mEndFrame - 1.0f; + return mCurrFrame / actualEnd; + } + inline void setBackwardsRatio(f32 ratio) { f32 actualEnd = mEndFrame - 1.0f; setFrame(actualEnd - (ratio * actualEnd)); @@ -105,7 +110,7 @@ public: return f >= end ? 0.0f : f; } - inline f32 getEndFrameRaw() const { + inline f32 getAnimDuration() const { return mEndFrame; } @@ -162,7 +167,7 @@ public: Base_c(u8 priority) : mPriority(priority) {} /* 0x00 */ nw4r::ut::Node mLink; - /* vt offset 0x04 */ + /* vt offset 0x08 */ /* vt 0x08 */ virtual ~Base_c(); /* vt 0x0C */ virtual void draw(); diff --git a/include/m/m_fader_base.h b/include/m/m_fader_base.h index fcef4dfd..61869523 100644 --- a/include/m/m_fader_base.h +++ b/include/m/m_fader_base.h @@ -19,14 +19,14 @@ public: }; mFaderBase_c(const mColor &color, EStatus status); - virtual ~mFaderBase_c(); + /* vt 0x08 */ virtual ~mFaderBase_c(); - virtual void setStatus(EStatus status) = 0; - virtual EStatus getStatus() const; - virtual bool fadeIn(); - virtual bool fadeOut(); - virtual bool calc(); - virtual void draw() = 0; + /* vt 0x0C */ virtual void setStatus(EStatus status) = 0; + /* vt 0x10 */ virtual EStatus getStatus() const; + /* vt 0x14 */ virtual bool fadeIn(); + /* vt 0x18 */ virtual bool fadeOut(); + /* vt 0x1C */ virtual bool calc(); + /* vt 0x20 */ virtual void draw() = 0; void setFrame(u16 frame); void setColor(const mColor &color); diff --git a/include/m/m_vec.h b/include/m/m_vec.h index 011679b0..0ec12fd4 100644 --- a/include/m/m_vec.h +++ b/include/m/m_vec.h @@ -254,4 +254,14 @@ public: static mVec3_c Ez; }; +class mVec2_c : public EGG::Vector2f { +public: + mVec2_c() {} + ~mVec2_c() {} + + mVec2_c(const mVec2_c &other) { + set(other.x, other.y); + } +}; + #endif diff --git a/include/nw4r/lyt/lyt_pane.h b/include/nw4r/lyt/lyt_pane.h index a1fa6327..87c760be 100644 --- a/include/nw4r/lyt/lyt_pane.h +++ b/include/nw4r/lyt/lyt_pane.h @@ -41,9 +41,15 @@ public: bool IsInfluencedAlpha() const { return detail::TestBit(mFlag, INFLUENCED_ALPHA); } + void SetInfluencedAlpha(bool bInfluenced) { + detail::SetBit(&mFlag, INFLUENCED_ALPHA, bInfluenced); + } bool IsLocationAdjust() const { return detail::TestBit(mFlag, LOCATION_ADJUST); } + void SetLocationAdjust(bool bAdjust) { + detail::SetBit(&mFlag, LOCATION_ADJUST, bAdjust); + } bool IsUserAllocated() const { return mbUserAllocated; } diff --git a/include/nw4r/lyt/lyt_textBox.h b/include/nw4r/lyt/lyt_textBox.h index 4dfd0549..f4d5bff9 100644 --- a/include/nw4r/lyt/lyt_textBox.h +++ b/include/nw4r/lyt/lyt_textBox.h @@ -77,6 +77,10 @@ public: mpTagProcessor = pTagProcessor; } + const wchar_t *GetString() const { + return mTextBuf; + } + virtual ~TextBox(); NW4R_UT_RTTI_DECL(TextBox); virtual void DrawSelf(const DrawInfo &drawInfo); // at 0x18 diff --git a/include/nw4r/lyt/lyt_types.h b/include/nw4r/lyt/lyt_types.h index 047638e2..36bf2c71 100644 --- a/include/nw4r/lyt/lyt_types.h +++ b/include/nw4r/lyt/lyt_types.h @@ -31,8 +31,8 @@ inline bool TestBit(T bits, int index) { } template inline void SetBit(T *bits, int pos, bool val) { - T mask = T(1 << pos); - *bits = T((*bits & ~mask)) | (val << pos); + T mask = ~T(1 << pos); + *bits = T((*bits & mask)) | (val << pos); } template diff --git a/include/nw4r/ut/ut_Font.h b/include/nw4r/ut/ut_Font.h index 4df7724e..37b37741 100644 --- a/include/nw4r/ut/ut_Font.h +++ b/include/nw4r/ut/ut_Font.h @@ -1,5 +1,6 @@ #ifndef NW4R_UT_FONT_H #define NW4R_UT_FONT_H +#include "common.h" #include "nw4r/types_nw4r.h" #include "nw4r/ut/ut_CharStrmReader.h" #include "rvl/GX.h" // IWYU pragma: export @@ -67,7 +68,11 @@ public: void InitReaderFunc(FontEncoding encode); - CharStrmReader GetCharStrmReader() const; + // ??? + DECOMP_DONT_INLINE CharStrmReader GetCharStrmReader() const { + CharStrmReader reader(mReadFunc); + return reader; + } private: CharStrmReader::ReadFunc mReadFunc; // at 0x4 diff --git a/include/s/s_State.hpp b/include/s/s_State.hpp index 3a8c4ec5..23dbc2f8 100644 --- a/include/s/s_State.hpp +++ b/include/s/s_State.hpp @@ -8,6 +8,10 @@ // Note: Ported from https://github.com/NSMBW-Community/NSMBW-Decomp/tree/master/include/dol/sLib // See include/s/README.txt for changes made +// Handy search and replace regex to generate functions based on define macros +// STATE_DEFINE\(([A-Za-z_0-9]+), ([A-Za-z_0-9]+)\); +// void $1::initializeState_$2() {}\nvoid $1::executeState_$2() {}\nvoid $1::finalizeState_$2() {}\n + #define STATE_FUNC_DECLARE(class, name) \ void initializeState_##name(); \ void executeState_##name(); \ diff --git a/include/toBeSorted/d_d3d.h b/include/toBeSorted/d_d3d.h index f02b4480..f088d007 100644 --- a/include/toBeSorted/d_d3d.h +++ b/include/toBeSorted/d_d3d.h @@ -10,6 +10,7 @@ #include "m/m3d/m_proc.h" #include "m/m_color.h" #include "m/m_mtx.h" +#include "m/m_vec.h" #include "nw4r/g3d/res/g3d_resfile.h" #include "toBeSorted/tlist.h" @@ -17,6 +18,9 @@ namespace d3d { +f32 fn_80016960(mVec3_c&, const mVec3_c& pos); +bool fn_80016A90(const mVec3_c& pos); + class AnmMdlWrapper : protected m3d::mdlAnmChr { public: AnmMdlWrapper(); diff --git a/include/toBeSorted/event_manager.h b/include/toBeSorted/event_manager.h index c3117290..9c524aec 100644 --- a/include/toBeSorted/event_manager.h +++ b/include/toBeSorted/event_manager.h @@ -3,11 +3,11 @@ #define EVENT_MANAGER_H #include "common.h" +#include "d/a/obj/d_a_obj_base.h" +#include "f/f_base.h" #include "sized_string.h" #include "toBeSorted/event.h" -#include - class dAcBase_c; class EventManager { @@ -16,6 +16,7 @@ public: static bool finishEvent(dAcBase_c *actor, const char *eventName); static void changeOwnEvent(dAcBase_c *actor1, dAcBase_c *actor2, Event *event, UNKWORD); static bool alsoSetAsCurrentEvent(dAcBase_c *actor, Event *event, void *unknown); + static dAcObjBase_c *fn_800A08F0(fBase_c::GROUP_TYPE_e); static EventManager *sInstance; diff --git a/include/toBeSorted/global_fi_context.h b/include/toBeSorted/global_fi_context.h new file mode 100644 index 00000000..585f416d --- /dev/null +++ b/include/toBeSorted/global_fi_context.h @@ -0,0 +1,17 @@ +#ifndef GLOBAL_FI_CONTEXT_H +#define GLOBAL_FI_CONTEXT_H + +#include "common.h" + +struct FiContext { + /* 0x00 */ u8 _0x00[0x4B - 0x00]; + /* 0x4B */ bool mDoSpecialFiMenuHandling; + + static s32 getGlobalFiInfo0(s32); +}; + +extern "C" FiContext *GLOBAL_FI_CONTEXT; +extern "C" void fn_8016C9F0(FiContext *); +extern "C" void createGlobalFiContext(); + +#endif diff --git a/include/toBeSorted/lyt_related_floats.h b/include/toBeSorted/lyt_related_floats.h new file mode 100644 index 00000000..5b12e937 --- /dev/null +++ b/include/toBeSorted/lyt_related_floats.h @@ -0,0 +1,21 @@ +#ifndef LYT_RELATED_FLOATS_H +#define LYT_RELATED_FLOATS_H + +#include "common.h" + +extern "C" f32 lbl_805751A4; +inline f32 get_805751A4() { + return lbl_805751A4; +} + +extern "C" s32 lbl_80575134; +inline s32 get_80575134() { + return lbl_80575134; +} + +extern "C" s32 lbl_8057511C; +inline s32 get_8057511C() { + return lbl_8057511C; +} + +#endif diff --git a/include/toBeSorted/music_mgrs.h b/include/toBeSorted/music_mgrs.h index 0702156c..7beeb58e 100644 --- a/include/toBeSorted/music_mgrs.h +++ b/include/toBeSorted/music_mgrs.h @@ -5,7 +5,10 @@ extern "C" void *BGM_MGR; extern "C" void fn_8035E000(); +extern "C" void fn_8035E860(void *); extern "C" void fn_8035E310(void *); +extern "C" void fn_8035E820(void *); +extern "C" void fn_8035E880(void *); extern "C" void *ENEMY_SOUND_MGR; extern "C" void fn_80362150(void *, u16); diff --git a/include/toBeSorted/other_sound_stuff.h b/include/toBeSorted/other_sound_stuff.h new file mode 100644 index 00000000..9de21cee --- /dev/null +++ b/include/toBeSorted/other_sound_stuff.h @@ -0,0 +1,10 @@ +#ifndef OTHER_SOUND_STUFF_H +#define OTHER_SOUND_STUFF_H + +#include "common.h" + +extern "C" void *lbl_80575DE0; +extern "C" void fn_803996B0(void *, const char *msgLabelName, u16, s32); +extern "C" void fn_803998A0(void *, u16, u16); + +#endif diff --git a/include/toBeSorted/small_sound_mgr.h b/include/toBeSorted/small_sound_mgr.h index 444f1572..9c56dab9 100644 --- a/include/toBeSorted/small_sound_mgr.h +++ b/include/toBeSorted/small_sound_mgr.h @@ -3,6 +3,7 @@ // Thanks kiwi! https://gist.github.com/kiwi515/47bb17b07ed502bdfa7faa60bc48a3c7 +#include "common.h" enum WZSound { /* 0x0000 */ SE_L_FLIPED, /* 0x0001 */ SE_L_FS_START, @@ -6471,6 +6472,7 @@ enum WZSound { class SmallSoundManager { public: void playSound(WZSound id); + void playButtonPressSoundWhenAdvancingTextBoxes(f32); static SmallSoundManager *GetInstance() { return sInstance; diff --git a/src/PowerPC_EABI_Support/MSL/MSL_C/MSL_Common/Include/string.h b/src/PowerPC_EABI_Support/MSL/MSL_C/MSL_Common/Include/string.h index 8e36bf83..db8c619e 100644 --- a/src/PowerPC_EABI_Support/MSL/MSL_C/MSL_Common/Include/string.h +++ b/src/PowerPC_EABI_Support/MSL/MSL_C/MSL_Common/Include/string.h @@ -25,6 +25,8 @@ char *strcpy(char *dst, const char *src); int sscanf(const char *buffer, const char *format, ...); size_t strlen(const char *str); +int atoi(const char *str); + #ifdef __cplusplus } #endif diff --git a/src/REL/d/d_s_boot.cpp b/src/REL/d/d_s_boot.cpp index 905fe2f3..e2733224 100644 --- a/src/REL/d/d_s_boot.cpp +++ b/src/REL/d/d_s_boot.cpp @@ -5,6 +5,7 @@ #include "d/d_dylink.h" #include "d/d_font_manager.h" #include "d/d_heap.h" +#include "d/d_message.h" #include "d/d_scene.h" #include "d/d_sys.h" #include "d/lyt/d_lyt_battery.h" @@ -42,7 +43,6 @@ sFPhaseBase::sFPhaseState dScBoot_c::executeLoadPhase() { extern "C" u8 getUsedLanguageNTSCNum(); extern "C" const char *getEventFlowFileNameByIndex(int, int); -extern "C" const char *getUsedLanguageString(); extern "C" u8 fn_80054F30(); extern "C" nw4r::ut::ResFont *lbl_805750D8; @@ -54,7 +54,7 @@ sFPhaseBase::sFPhaseState dScBoot_c::cb1() { for (int i = 0; i < 6; i++) { SizedString<128> str; - str.sprintf("%s/%s", getUsedLanguageString(), getEventFlowFileNameByIndex(i, 1)); + str.sprintf("%s/%s", dMessage_c::getLanguageIdentifier(), getEventFlowFileNameByIndex(i, 1)); OarcManager::GetInstance()->loadObjectArcFromDisk(str, mHeap::g_archiveHeap); } OarcManager::GetInstance()->loadObjectArcFromDisk("System", mHeap::g_archiveHeap); diff --git a/src/d/col/bg/d_bg_s.cpp b/src/d/col/bg/d_bg_s.cpp index d3067b25..43fd11dc 100644 --- a/src/d/col/bg/d_bg_s.cpp +++ b/src/d/col/bg/d_bg_s.cpp @@ -11,6 +11,7 @@ #include "d/col/c/c_m3d.h" #include "d/col/c/c_partition.h" #include "d/d_sc_game.h" +#include "d/lyt/d_lyt_map.h" #include "toBeSorted/arc_managers/oarc_manager.h" const char *MAP_SOLID_MATERIAL_NAMES[31] = { @@ -1022,9 +1023,8 @@ void dBgS::SetupMapMaterial(int matIdx, bool, s32 roomId) { // TODO } -extern "C" UNKTYPE *lbl_805754B0; UNKTYPE *dBgS::GetMapAccessor() { - return lbl_805754B0; + return dLytMap_c::getInstance(); } void dBgS::DrawMap(int roomId, mMtx_c *, bool bColor, int) { diff --git a/src/d/d_cs_game.cpp b/src/d/d_cs_game.cpp index 3ed7ea18..bc153463 100644 --- a/src/d/d_cs_game.cpp +++ b/src/d/d_cs_game.cpp @@ -234,7 +234,7 @@ bool dCsGame_c::lytItemCursor_c::doInit() { mAnm.init(mAnmGroups.tmp.mAnmGroups, lytItemCursorMap, 0x17, mpResAcc, mLyt.getLayout()); for (int i = 0; i < 0x17; i++) { - mAnmGroups.tmp.mAnmGroups[i].setDirection(false); + mAnmGroups.tmp.mAnmGroups[i].bind(false); mAnmGroups.tmp.mAnmGroups[i].setAnimEnable(false); } diff --git a/src/d/d_font_manager.cpp b/src/d/d_font_manager.cpp index c992484b..a63f2889 100644 --- a/src/d/d_font_manager.cpp +++ b/src/d/d_font_manager.cpp @@ -1,6 +1,7 @@ #include "d/d_font_manager.h" #include "d/d_heap.h" +#include "d/d_message.h" #include "sized_string.h" @@ -48,14 +49,12 @@ void dFontMng_c::setFontFile(int idx, void *fileData) { l_dFontMng_obj[idx].mpFileData = fileData; } -extern "C" const char *getUsedLanguageString(); - const char *dFontMng_c::getFontPath(u8 idx) { static SizedString<128> TEMP_FONT_NAME; if (idx == 2) { TEMP_FONT_NAME.sprintf("/Font/%s", systemFonts[idx]); } else { - TEMP_FONT_NAME.sprintf("/US/Font/%s/%s", getUsedLanguageString(), systemFonts[idx]); + TEMP_FONT_NAME.sprintf("/US/Font/%s/%s", dMessage_c::getLanguageIdentifier(), systemFonts[idx]); } return TEMP_FONT_NAME; } diff --git a/src/d/d_message.cpp b/src/d/d_message.cpp new file mode 100644 index 00000000..8b6d7669 --- /dev/null +++ b/src/d/d_message.cpp @@ -0,0 +1,559 @@ +#include "d/d_message.h" + +#include "common.h" +#include "d/d_sc_game.h" +#include "d/d_tag_processor.h" +#include "d/d_textunk.h" +#include "egg/core/eggHeap.h" +#include "f/f_base.h" +#include "f/f_profile.h" +#include "f/f_profile_name.h" +#include "libms/libms.h" +#include "libms/msgfile.h" +#include "sized_string.h" +#include "toBeSorted/arc_managers/oarc_manager.h" +#include "toBeSorted/event_manager.h" +#include "toBeSorted/global_fi_context.h" + + +SPECIAL_BASE_PROFILE(MESSAGE, dMessage_c, fProfile::MESSAGE, 0x2A8, 0); + +static const char *sMsbtFileNames[82] = { + "000-Test.msbt", + "001-Action.msbt", + "002-System.msbt", + "003-ItemGet.msbt", + "004-Object.msbt", + "005-Tutorial.msbt", + "006-KenseiNormal.msbt", + "006-1KenseiNormal.msbt", + "006-2KenseiNormal.msbt", + "006-3KenseiNormal.msbt", + "006-4KenseiNormal.msbt", + "006-5KenseiNormal.msbt", + "006-6KenseiNormal.msbt", + "006-7KenseiNormal.msbt", + "006-8KenseiNormal.msbt", + "006-9KenseiNormal.msbt", + "007-MapText.msbt", + "008-Hint.msbt", + "word.msbt", + "100-Town.msbt", + "101-Shop.msbt", + "102-Zelda.msbt", + "103-DaiShinkan.msbt", + "104-Rival.msbt", + "105-Terry.msbt", + "106-DrugStore.msbt", + "107-Kanban.msbt", + "108-ShinkanA.msbt", + "109-TakeGoron.msbt", + "110-DivingGame.msbt", + "111-FortuneTeller.msbt", + "112-Trustee.msbt", + "113-RemodelStore.msbt", + "114-Friend.msbt", + "115-Town2.msbt", + "116-InsectGame.msbt", + "117-Pumpkin.msbt", + "118-Town3.msbt", + "119-Captain.msbt", + "120-Nushi.msbt", + "121-AkumaKun.msbt", + "122-Town4.msbt", + "123-Town5.msbt", + "124-Town6.msbt", + "125-D3.msbt", + "150-Siren.msbt", + "198-Test.msbt", + "199-Demo.msbt", + "200-Forest.msbt", + "201-ForestD1.msbt", + "202-ForestD2.msbt", + "203-ForestF2.msbt", + "204-ForestF3.msbt", + "250-ForestSiren.msbt", + "251-Salvage.msbt", + "299-Demo.msbt", + "300-Mountain.msbt", + "301-MountainD1.msbt", + "302-Anahori.msbt", + "303-MountainF2.msbt", + "304-MountainD2.msbt", + "305-MountainF3.msbt", + "350-MountainSiren.msbt", + "351-Salvage.msbt", + "399-Demo.msbt", + "400-Desert.msbt", + "401-DesertD2.msbt", + "402-DesertF2.msbt", + "403-DesertD1.msbt", + "404-DesertF3.msbt", + "405-DesertD2Clear.msbt", + "406-TrolleyRace.msbt", + "450-DesertSiren.msbt", + "451-Salvage.msbt", + "460-RairyuMinigame.msbt", + "499-Demo.msbt", + "500-CenterField.msbt", + "501-Inpa.msbt", + "502-CenterFieldBack.msbt", + "503-Goron.msbt", + "510-Salvage.msbt", + "599-Demo.msbt", +}; + +static char *sMsbfFileNames[80] = { + "000-Test.msbf", + "001-Action.msbf", + "002-System.msbf", + "003-ItemGet.msbf", + "004-Object.msbf", + "005-Tutorial.msbf", + "006-KenseiNormal.msbf", + "006-1KenseiNormal.msbf", + "006-2KenseiNormal.msbf", + "006-3KenseiNormal.msbf", + "006-4KenseiNormal.msbf", + "006-5KenseiNormal.msbf", + "006-6KenseiNormal.msbf", + "006-7KenseiNormal.msbf", + "006-8KenseiNormal.msbf", + "006-9KenseiNormal.msbf", + "008-Hint.msbf", + "100-Town.msbf", + "101-Shop.msbf", + "102-Zelda.msbf", + "103-DaiShinkan.msbf", + "104-Rival.msbf", + "105-Terry.msbf", + "106-DrugStore.msbf", + "107-Kanban.msbf", + "108-ShinkanA.msbf", + "109-TakeGoron.msbf", + "110-DivingGame.msbf", + "111-FortuneTeller.msbf", + "112-Trustee.msbf", + "113-RemodelStore.msbf", + "114-Friend.msbf", + "115-Town2.msbf", + "116-InsectGame.msbf", + "117-Pumpkin.msbf", + "118-Town3.msbf", + "119-Captain.msbf", + "120-Nushi.msbf", + "121-AkumaKun.msbf", + "122-Town4.msbf", + "123-Town5.msbf", + "124-Town6.msbf", + "125-D3.msbf", + "150-Siren.msbf", + "198-Test.msbf", + "199-Demo.msbf", + "200-Forest.msbf", + "201-ForestD1.msbf", + "202-ForestD2.msbf", + "203-ForestF2.msbf", + "204-ForestF3.msbf", + "250-ForestSiren.msbf", + "251-Salvage.msbf", + "299-Demo.msbf", + "300-Mountain.msbf", + "301-MountainD1.msbf", + "302-Anahori.msbf", + "303-MountainF2.msbf", + "304-MountainD2.msbf", + "305-MountainF3.msbf", + "350-MountainSiren.msbf", + "351-Salvage.msbf", + "399-Demo.msbf", + "400-Desert.msbf", + "401-DesertD2.msbf", + "402-DesertF2.msbf", + "403-DesertD1.msbf", + "404-DesertF3.msbf", + "405-DesertD2Clear.msbf", + "406-TrolleyRace.msbf", + "450-DesertSiren.msbf", + "451-Salvage.msbf", + "460-RairyuMinigame.msbf", + "499-Demo.msbf", + "500-CenterField.msbf", + "501-Inpa.msbf", + "502-CenterFieldBack.msbf", + "503-Goron.msbf", + "510-Salvage.msbf", + "599-Demo.msbf", +}; + +static char *sArcNames[] = { + "0-Common", "1-Town", "2-Forest", "3-Mountain", "4-Desert", "5-CenterField", +}; + +dMessage_c *dMessage_c::sInstance; +dTagProcessor_c *dMessage_c::sTagProcessor; + +static void *msbAlloc(size_t size) { + if (UnkTextThing::getInstance()->getShouldHookAllocations() == false) { + return EGG::Heap::alloc(size, 0x20, nullptr); + } else { + return UnkTextThing::getInstance()->allocUnk(size, 0x20); + } +} + +static void msbFree(void *ptr) { + if (UnkTextThing::getInstance()->getShouldHookAllocations() == false) { + EGG::Heap::free(ptr, nullptr); + } else { + UnkTextThing::getInstance()->destroyUnk(ptr); + } +} + +dMessage_c::dMessage_c() { + sInstance = this; +} + +int dMessage_c::create() { + mLanguage = getLanguageIdentifier(); + + mCurrentTextFileNumber = -1; + field_0x2FC = 0; + field_0x344 = 0; + LMS_SetMemFuncs(msbAlloc, msbFree); + setZevFromMsbArc(); + + for (s32 i = 0; i < 82; i++) { + SizedString<0x40> fileName = getMsbtFileName(i); + s32 num = getMsbtNumberByIndex(i); + void *data = getDataFromMsbArc(num, fileName, true); + if (data == nullptr) { + mpMsgs[i] = nullptr; + } else { + mpMsgs[i] = LMS_InitMessage(data); + } + } + + for (s32 i = 0; i < 80; i++) { + SizedString<0x40> fileName = getMsbfFileName(i); + s32 num = getMsbfNumberByIndex(i); + void *data = getDataFromMsbArc(num, fileName, true); + if (data == nullptr) { + mpFlows[i] = nullptr; + } else { + mpFlows[i] = LMS_InitFlow(data); + } + } + + sTagProcessor = new dTagProcessor_c(); + createGlobalFiContext(); + reset(); + return SUCCEEDED; +} + +int dMessage_c::doDelete() { + UnkTextThing::getInstance()->destroy(); + if (sTagProcessor != nullptr) { + delete sTagProcessor; + sTagProcessor = nullptr; + } + + for (int i = 0; i < 82; i++) { + if (mpMsgs[i] != nullptr) { + LMS_CloseMessage(mpMsgs[i]); + } + } + + for (int i = 0; i < 80; i++) { + if (mpFlows[i] != nullptr) { + LMS_CloseFlow(mpFlows[i]); + } + } + return SUCCEEDED; +} + +int dMessage_c::execute() { + if (field_0x2FC != 0 && !EventManager::isInEvent()) { + field_0x2FC = 0; + } + + if (field_0x2FC > 0) { + field_0x2FC--; + } + executeMinigame(); + sTagProcessor->execute(); + + return SUCCEEDED; +} + +int dMessage_c::draw() { + return SUCCEEDED; +} + +const wchar_t *dMessage_c::getTextMessageByLabel(const char *label, bool global, wchar_t *dstBuf, u32 maxLen) { + return sInstance->getTextMessageByLabelInternal(label, nullptr, global, dstBuf, maxLen); +} + +const wchar_t *dMessage_c::getTextMessageByLabel( + const char *label, dTagProcessor_c *pTagProcessor, bool global, wchar_t *dstBuf, u32 maxLen +) { + return sInstance->getTextMessageByLabelInternal(label, pTagProcessor, global, dstBuf, maxLen); +} + +const wchar_t *dMessage_c::formatText(const wchar_t *text) { + return sInstance->formatTextInternal(text); +} + +const wchar_t *dMessage_c::getTextMessageByLabelInternal( + const char *label, dTagProcessor_c *pTagProcessor, bool global, wchar_t *dstBuf, u32 maxLen +) { + s32 fileIndex = mCurrentTextFileNumber; + MsbtInfo *info = nullptr; + + if (global) { + fileIndex = getMsbtIndexForLabelInternal(label); + } + + if (fileIndex >= 0) { + info = getMsbtInfoForIndex(fileIndex); + } + + const wchar_t *text = LMS_GetTextByLabel(info, label); + if (pTagProcessor == nullptr) { + pTagProcessor = sTagProcessor; + } + + u32 outLen = 0; + s32 textIdx = LMS_GetTextIndexByLabel(info, label); + MsbtAttrInfo *att = LMS_GetAttribute(info, textIdx); + pTagProcessor->setMsgWindowSubtype(att->c_0x00); + pTagProcessor->setField_0x90D(att->c_0x01); + + // Strip trailing newline + wchar_t *end; + s32 i; + + if (dstBuf != nullptr) { + pTagProcessor->format(nullptr, text, dstBuf, maxLen, &outLen, nullptr); + i = outLen - 1; + end = &dstBuf[i]; + for (; i > 0; i--) { + if (*end != L'\n') { + break; + } + *end-- = L'\0'; + } + // no return - might be intentional since dstBuf already has the result + } else { + static wchar_t sBuf[0x400] = {}; + pTagProcessor->format(nullptr, text, sBuf, ARRAY_LENGTH(sBuf) - 1, &outLen, nullptr); + i = outLen - 1; + end = &sBuf[i]; + for (; i > 0; i--) { + if (*end != L'\n') { + break; + } + *end = L'\0'; + end--; + } + + return sBuf; + } + + return nullptr; +} + +const wchar_t *dMessage_c::formatTextInternal(const wchar_t *text) { + u32 outLen = 0; + static wchar_t sBuf[0x200] = {}; + sTagProcessor->format(nullptr, text, sBuf, ARRAY_LENGTH(sBuf), &outLen, nullptr); + s32 i = outLen - 1; + wchar_t *end = &sBuf[i]; + for (; i > 0; i--) { + if (*end != L'\n') { + break; + } + *end = L'\0'; + end--; + } + + return sBuf; +} + +bool dMessage_c::isValidTextLabel(const char *name) { + return sInstance->checkIsValidTextLabel(name); +} + +bool dMessage_c::checkIsValidTextLabel(const char *name) { + if (name == nullptr) { + return false; + } + return getTextIndexForLabel(name) >= 0; +} + +const char *dMessage_c::getMsbtFileName(s32 idx) { + static SizedString<128> sPath; + + s32 arcIdx = getArcIndexForFile(sMsbtFileNames[idx]); + const char *arcName = getArcNameByIndex(arcIdx, true); + sPath.sprintf("%s/%s", arcName, sMsbtFileNames[idx]); + return sPath; +} + +const char *dMessage_c::getMsbfFileName(s32 idx) { + static SizedString<128> sPath; + + s32 arcIdx = getArcIndexForFile(sMsbfFileNames[idx]); + const char *arcName = getArcNameByIndex(arcIdx, true); + sPath.sprintf("%s/%s", arcName, sMsbfFileNames[idx]); + return sPath; +} + +s32 dMessage_c::getMsbtNumberByIndex(s32 index) { + return atoi(getMsbtFileName(index)); +} + +s32 dMessage_c::getMsbfNumberByIndex(s32 index) { + return atoi(getMsbfFileName(index)); +} + +s32 dMessage_c::getTextIndexForLabel(const char *label) { + s32 idx = getMsbtIndexForLabelInternal(label); + MsbtInfo *info = nullptr; + if (idx >= 0) { + info = getMsbtInfoForIndex(idx); + } + return LMS_GetTextIndexByLabel(info, label); +} + +s32 dMessage_c::getMsbtIndexForLabel(const char *label) { + return sInstance->getMsbtIndexForLabelInternal(label); +} + +s32 dMessage_c::getMsbtIndexForLabelInternal(const char *label) { + if (mCurrentTextFileNumber <= 81) { + MsbtInfo *info = getMsbtInfoForIndex(mCurrentTextFileNumber); + if (LMS_GetTextIndexByLabel(info, label) >= 0) { + return mCurrentTextFileNumber; + } + } + + for (s32 i = 0; i < 82; i++) { + if (getMsbtInfoForIndex(i) != nullptr) { + if (LMS_GetTextIndexByLabel(getMsbtInfoForIndex(i), label) >= 0) { + return i; + } + } + } + + return -1; +} + +MsbtInfo *dMessage_c::getMsbtInfoForIndex(s32 index) { + return sInstance->getMsbtInfoForIndexInternal(index); +} + +MsbtInfo *dMessage_c::getMsbtInfoForIndexInternal(s32 index) { + UnkTextThing *thing = UnkTextThing::getInstance(); + MsbtInfo *overrideMsbt = thing->getOverrideMsbtInfo(index); + if (overrideMsbt != nullptr && thing->getShouldOverrideData() == true) { + return overrideMsbt; + } + return mpMsgs[index]; +} + +MsbfInfo *dMessage_c::getMsbfInfoForIndex(s32 index) { + return sInstance->getMsbfInfoForIndexInternal(index); +} + +MsbfInfo *dMessage_c::getMsbfInfoForIndexInternal(s32 index) { + UnkTextThing *thing = UnkTextThing::getInstance(); + MsbfInfo *overrideMsbf = thing->getOverrideMsbfInfo(index); + if (overrideMsbf != nullptr && thing->getShouldOverrideData() == true) { + return overrideMsbf; + } + return mpFlows[index]; +} + +extern "C" u8 fn_80054F30(); + +static SizedString<8> sCurrentLanguage; +const char *dMessage_c::getLanguageIdentifier() { + u8 lang = fn_80054F30(); + if (lang == 3) { + sCurrentLanguage = "fr_US"; + } else if (lang == 4) { + sCurrentLanguage = "es_US"; + } else { + sCurrentLanguage = "en_US"; + } + return sCurrentLanguage; +} + +const char *dMessage_c::getArcNameByIndex(s32 idx, bool global) { + return getArcNameByIndexInternal(idx, global); +} + +const char *dMessage_c::getArcNameByIndexInternal(s32 idx, bool global) { + return sArcNames[idx]; +} + +void *dMessage_c::getDataFromMsbArc(s32 number, const char *fileName, bool global) { + SizedString<128> path; + path.sprintf("%s/%s", getLanguageIdentifier(), getArcNameByIndex(number, global)); + return OarcManager::GetInstance()->getData(path, fileName); +} + +void dMessage_c::setZevFromMsbArc() { + SizedString<128> path; + path.sprintf("%s/dat/zev.dat", getArcNameByIndex(0, false)); + sZev0 = getDataFromMsbArc(0, path, false); + sZevStage = nullptr; +} + +void dMessage_c::setStageZevFromMsbArc() { + SizedString<32> stage = dScGame_c::currentSpawnInfo.stageName; + char buf[2]; + buf[0] = stage[1]; + buf[1] = '\0'; + + SizedString<128> path; + + int i = atoi(buf) + 1; + + // TODO figure out what this is + if (stage == "t_tkm24" || stage == "t_tkm26") { + i = 2; + } else if (i < 1 || 6 <= i) { + i = 0; + } + path.sprintf("%s/dat/zev.dat", getArcNameByIndex(i, false)); + sZevStage = getDataFromMsbArc(i, path, false); +} + +void *dMessage_c::sZev0; +void *dMessage_c::sZevStage; + +void *dMessage_c::getZev0Internal() { + UnkTextThing *thing = UnkTextThing::getInstance(); + void *overrideZev = thing->getOverrideZev0(); + if (overrideZev != nullptr && thing->getShouldOverrideData() == true) { + return overrideZev; + } + return sZev0; +} + +void *dMessage_c::getZevStageInternal() { + UnkTextThing *thing = UnkTextThing::getInstance(); + void *overrideZev = thing->getOverrideStageZev(); + if (overrideZev != nullptr && thing->getShouldOverrideData() == true) { + return overrideZev; + } + return sZevStage; +} + +s32 dMessage_c::getArcIndexForFile(const char *fileName) { + char buf[2]; + buf[0] = fileName[0]; + buf[1] = '\0'; + return atoi(buf); +} diff --git a/src/d/d_sc_title.cpp b/src/d/d_sc_title.cpp index 8b7469cd..ffb231fb 100644 --- a/src/d/d_sc_title.cpp +++ b/src/d/d_sc_title.cpp @@ -2,6 +2,7 @@ #include "common.h" #include "d/d_heap.h" +#include "d/d_message.h" #include "d/d_sc_game.h" #include "d/d_sys.h" #include "f/f_base.h" @@ -67,7 +68,6 @@ extern "C" u32 TITLE_SCREEN_CHANGE; extern "C" void fn_80059450(); extern "C" void fn_80058C90(s32); extern "C" void fn_80015E40(); -extern "C" const char *getUsedLanguageString(); static const char *const sFileSelect = "FileSelect"; static const char *const sSkb = "SoftwareKeyboard"; @@ -98,7 +98,7 @@ int dScTitle_c::create() { LayoutArcManager::GetInstance()->loadLayoutArcFromDisk(sSkb, nullptr); mDvd_toMainRam_normal_c::create2(&mpSkbArc, "/SKB/sofkeybd.arc", 0, dHeap::work2Heap.heap); SizedString<128> fntPath; - fntPath.sprintf("/US/Font/%s/%s", getUsedLanguageString(), "normal_02.brfnt"); + fntPath.sprintf("/US/Font/%s/%s", dMessage_c::getLanguageIdentifier(), "normal_02.brfnt"); mDvd_toMainRam_normal_c::create2(&mpSkbFont, fntPath, 0, dHeap::work2Heap.heap); fn_8035E310(BGM_MGR); } diff --git a/src/d/d_tag_processor.cpp b/src/d/d_tag_processor.cpp index 5d3fcd6f..af13af38 100644 --- a/src/d/d_tag_processor.cpp +++ b/src/d/d_tag_processor.cpp @@ -164,7 +164,7 @@ dTagProcessor_c::dTagProcessor_c() { field_0x890 = 0; field_0x8FC = -1; field_0x900 = -1; - resetSomeFloats(); + resetLineData(); field_0x81C = 0; field_0x820 = 0; setNumericArg0(0); @@ -200,7 +200,7 @@ dTagProcessor_c::dTagProcessor_c() { field_0xEE3 = 0; field_0xEE4 = 0; field_0x004 = nullptr; - field_0x90C = 0x24; + mMsgWindowSubtype = 0x24; field_0x90D = 4; field_0xEF0 = 0; field_0xEF1 = 0; @@ -212,8 +212,17 @@ struct StackThing { wchar_t us[4]; }; -void dTagProcessor_c::eventFlowTextProcessingRelated( - dTextBox_c *textBox, const wchar_t *src, wchar_t *dest, u32 destLen, u32 *pOutLen +void dTagProcessor_c::format( + dTextBox_c *textBox, const wchar_t *src, wchar_t *dest, u32 destLen, u32 *pOutLen, void *unk, ... +) { + va_list l; + va_start(l, str); + formatV(textBox, src, dest, destLen, pOutLen, unk, l); + va_end(l); +} + +void dTagProcessor_c::formatV( + dTextBox_c *textBox, const wchar_t *src, wchar_t *dest, u32 destLen, u32 *pOutLen, void *unk, va_list list ) { s32 state3 = 0; s32 state4 = 0; @@ -223,11 +232,11 @@ void dTagProcessor_c::eventFlowTextProcessingRelated( // FPR regswap between float1 and float2 f32 float1, float2; - float2 = float1 = fn_800B8040(0, field_0x90C); + float2 = float1 = fn_800B8040(0, mMsgWindowSubtype); if (textBox != nullptr) { float1 *= textBox->getMyScale(); - resetSomeFloats(); + resetLineData(); textBox->set0x1F8(0); } @@ -241,7 +250,7 @@ void dTagProcessor_c::eventFlowTextProcessingRelated( dest[1] = x.us[1]; dest[2] = x.us[2]; dest[3] = x.us[3]; - dest[4] = mCommandInsert; + dest[4] = mLineData.mNumLines; } StackThing yTmp; @@ -251,7 +260,7 @@ void dTagProcessor_c::eventFlowTextProcessingRelated( wchar_t c = *src; if (c == nullptr) { if (textBox != nullptr) { - mCommandInsert++; + mLineData.mNumLines++; } *writePtr = '\0'; goto end; @@ -344,7 +353,7 @@ void dTagProcessor_c::eventFlowTextProcessingRelated( } break; case 0x10008: if (textBox != nullptr) { - float1 = fn_800B8040(((u8 *)endPtr)[0], field_0x90C); + float1 = fn_800B8040(((u8 *)endPtr)[0], mMsgWindowSubtype); float1 *= textBox->getMyScale(); } writePtr = writeTextNormal(src, writePtr, &local_b4, cmdLen, state4); @@ -407,14 +416,14 @@ void dTagProcessor_c::eventFlowTextProcessingRelated( } } else { if (textBox != nullptr) { - if (c == 10) { + if (c == L'\n') { *writePtr = c; src++; writePtr++; - mCommandInsert++; - s32 i10 = getNumLines(field_0x90C); - if (mCommandInsert % i10 == 0) { - float1 = fn_800B8040(0, field_0x90C); + mLineData.mNumLines++; + s32 i10 = getMaxNumLines(mMsgWindowSubtype); + if (mLineData.mNumLines % i10 == 0) { + float1 = fn_800B8040(0, mMsgWindowSubtype); float1 *= textBox->getMyScale(); } if (textBox != nullptr) { @@ -423,12 +432,13 @@ void dTagProcessor_c::eventFlowTextProcessingRelated( writePtr[1] = buf[1]; writePtr[2] = buf[2]; writePtr[3] = buf[3]; - writePtr[4] = mCommandInsert; + writePtr[4] = mLineData.mNumLines; writePtr += 5; } } else { const nw4r::ut::Font *fnt = textBox->GetFont(); - field_0x914[mCommandInsert] += float1 * fnt->GetCharWidth(*src) + textBox->GetCharSpace(); + mLineData.mLineWidths[mLineData.mNumLines] += + float1 * fnt->GetCharWidth(*src) + textBox->GetCharSpace(); writePtr = fn_800B5FD0(*src, writePtr, nullptr); src++; } @@ -624,16 +634,16 @@ nw4r::ut::Operation dTagProcessor_c::ProcessTags(nw4r::ut::Rect *rect, u16 ch, n } void dTagProcessor_c::fn_800B4FF0(nw4r::ut::Rect *rect, nw4r::ut::PrintContext *ctx, u8 cmdLen, wchar_t *ptr) { - if (field_0x90C != 22 && field_0x90C != 30 && field_0xEE0 != 0) { + if (mMsgWindowSubtype != 22 && mMsgWindowSubtype != 30 && field_0xEE0 != 0) { int arg = ptr[0]; nw4r::lyt::Size textBoxSize = field_0x004->GetSize(); nw4r::lyt::Size fontSize = field_0x004->GetFontSize(); - int i1 = getNumLines(field_0x90C); - if (arg % i1 == 0 && field_0x90C != 31 && field_0x90C != 8) { + int i1 = getMaxNumLines(mMsgWindowSubtype); + if (arg % i1 == 0 && mMsgWindowSubtype != 31 && mMsgWindowSubtype != 8) { int u = 0; int v = 0; - for (int i = arg; i < arg + getNumLines(field_0x90C) && i < 0x32; i++) { - f32 f6 = getFloat(i); + for (int i = arg; i < arg + getMaxNumLines(mMsgWindowSubtype) && i < 0x32; i++) { + f32 f6 = getLineWidth(i); if (f6 > 0.0f) { v++; if (u != 0) { @@ -650,7 +660,7 @@ void dTagProcessor_c::fn_800B4FF0(nw4r::ut::Rect *rect, nw4r::ut::PrintContext