diff --git a/config/SOUE01/symbols.txt b/config/SOUE01/symbols.txt index 29eb77f1..65fe8b03 100644 --- a/config/SOUE01/symbols.txt +++ b/config/SOUE01/symbols.txt @@ -549,7 +549,7 @@ fn_80016360 = .text:0x80016360; // type:function size:0x54 fn_800163C0 = .text:0x800163C0; // type:function size:0x248 fn_80016610 = .text:0x80016610; // type:function size:0x14 create__3d2dFPQ23EGG4Heap = .text:0x80016630; // type:function size:0x58 -fn_80016690 = .text:0x80016690; // type:function size:0xC +setLytAllocator__3d2dFv = .text:0x80016690; // type:function size:0xC fn_800166A0 = .text:0x800166A0; // type:function size:0x58 create__3d3dFPQ23EGG4Heap = .text:0x80016700; // type:function size:0x160 fn_80016860 = .text:0x80016860; // type:function size:0x28 @@ -8376,91 +8376,91 @@ __dt__29sFStateID_c<14dLytWipeMain_c>Fv = .text:0x8014DE30; // type:function siz __dt__25sFStateID_c<10dLytWipe_c>Fv = .text:0x8014DE90; // type:function size:0x58 scope:weak isSameName__25sFStateID_c<10dLytWipe_c>CFPCc = .text:0x8014DEF0; // type:function size:0x88 scope:weak isSameName__29sFStateID_c<14dLytWipeMain_c>CFPCc = .text:0x8014DF80; // type:function size:0x88 scope:weak -LytHelp__LytHelpMain__stateModeNoneEnter = .text:0x8014E010; // type:function size:0x4 -LytHelp__LytHelpMain__stateModeNoneUpdate = .text:0x8014E020; // type:function size:0xC -LytHelp__LytHelpMain__stateModeNoneLeave = .text:0x8014E030; // type:function size:0x4 -LytHelp__LytHelpMain__stateModeInEnter = .text:0x8014E040; // type:function size:0x4 -LytHelp__LytHelpMain__stateModeInUpdate = .text:0x8014E050; // type:function size:0x64 -LytHelp__LytHelpMain__stateModeInLeave = .text:0x8014E0C0; // type:function size:0x4 -LytHelp__LytHelpMain__stateModeWaitEnter = .text:0x8014E0D0; // type:function size:0x4 -LytHelp__LytHelpMain__stateModeWaitUpdate = .text:0x8014E0E0; // type:function size:0xC -LytHelp__LytHelpMain__stateModeWaitLeave = .text:0x8014E0F0; // type:function size:0x4 -LytHelp__LytHelpMain__stateModeOutEnter = .text:0x8014E100; // type:function size:0x4 -LytHelp__LytHelpMain__stateModeOutUpdate = .text:0x8014E110; // type:function size:0x88 -LytHelp__LytHelpMain__statestateModeOutLeave = .text:0x8014E1A0; // type:function size:0x4 -LytHelp__LytHelpMain__stateModeEndEnter = .text:0x8014E1B0; // type:function size:0x4 -LytHelp__LytHelpMain__stateModeEndUpdate = .text:0x8014E1C0; // type:function size:0xC -LytHelp__LytHelpMain__stateModeEndLeave = .text:0x8014E1D0; // type:function size:0x4 -LytHelp__ctor = .text:0x8014E1E0; // type:function size:0xC0 -fn_8014E2A0 = .text:0x8014E2A0; // type:function size:0xA4 -fn_8014E350 = .text:0x8014E350; // type:function size:0xA0 -fn_8014E3F0 = .text:0x8014E3F0; // type:function size:0x6C -fn_8014E460 = .text:0x8014E460; // type:function size:0x58 -fn_8014E4C0 = .text:0x8014E4C0; // type:function size:0x1B4 -fn_8014E680 = .text:0x8014E680; // type:function size:0x5C -fn_8014E6E0 = .text:0x8014E6E0; // type:function size:0x88 -fn_8014E770 = .text:0x8014E770; // type:function size:0x10 -fn_8014E780 = .text:0x8014E780; // type:function size:0x58 -LytHelp__closeHelpWindow = .text:0x8014E7E0; // type:function size:0x8C -fn_8014E870 = .text:0x8014E870; // type:function size:0x4C -fn_8014E8C0 = .text:0x8014E8C0; // type:function size:0x4C -fn_8014E910 = .text:0x8014E910; // type:function size:0x254 -fn_8014EB70 = .text:0x8014EB70; // type:function size:0xA8 -fn_8014EC20 = .text:0x8014EC20; // type:function size:0x10 -fn_8014EC30 = .text:0x8014EC30; // type:function size:0x28 -LytHelp__stateNoneEnter = .text:0x8014EC60; // type:function size:0x4 -LytHelp__stateNoneUpdate = .text:0x8014EC70; // type:function size:0x7C -fn_8014ECF0 = .text:0x8014ECF0; // type:function size:0x10 -LytHelp__stateNoneLeave = .text:0x8014ED00; // type:function size:0x4 -LytHelp__stateInEnter = .text:0x8014ED10; // type:function size:0x4 -LytHelp__stateInUpdate = .text:0x8014ED20; // type:function size:0x6C -LytHelp__stateInLeave = .text:0x8014ED90; // type:function size:0x4 -LytHelp__stateWaitEnter = .text:0x8014EDA0; // type:function size:0x4 -LytHelp__stateWaitUpdate = .text:0x8014EDB0; // type:function size:0x94 -LytHelp__stateWaitLeave = .text:0x8014EE50; // type:function size:0x4 -LytHelp__stateOutEnter = .text:0x8014EE60; // type:function size:0x4 -LytHelp__stateOutUpdate = .text:0x8014EE70; // type:function size:0x64 -LytHelp__stateOutLeave = .text:0x8014EEE0; // type:function size:0x4 -LytHelp__stateEndEnter = .text:0x8014EEF0; // type:function size:0x4 -LytHelp__stateEndUpdate = .text:0x8014EF00; // type:function size:0x4 -LytHelp__stateEndLeave = .text:0x8014EF10; // type:function size:0x4 -fn_8014EF20 = .text:0x8014EF20; // type:function size:0x98 -fn_8014EFC0 = .text:0x8014EFC0; // type:function size:0x10 -fn_8014EFD0 = .text:0x8014EFD0; // type:function size:0x250 -fn_8014F220 = .text:0x8014F220; // type:function size:0xAC -fn_8014F2D0 = .text:0x8014F2D0; // type:function size:0x6C -fn_8014F340 = .text:0x8014F340; // type:function size:0xD8 -fn_8014F420 = .text:0x8014F420; // type:function size:0x7C -fn_8014F4A0 = .text:0x8014F4A0; // type:function size:0x10 -fn_8014F4B0 = .text:0x8014F4B0; // type:function size:0x64 -fn_8014F520 = .text:0x8014F520; // type:function size:0xF4 -fn_8014F620 = .text:0x8014F620; // type:function size:0xA4 -fn_8014F6D0 = .text:0x8014F6D0; // type:function size:0xA0 -fn_8014F770 = .text:0x8014F770; // type:function size:0x6C -fn_8014F7E0 = .text:0x8014F7E0; // type:function size:0x58 -fn_8014F840 = .text:0x8014F840; // type:function size:0x60 -fn_8014F8A0 = .text:0x8014F8A0; // type:function size:0xC -fn_8014F8B0 = .text:0x8014F8B0; // type:function size:0x1C -fn_8014F8D0 = .text:0x8014F8D0; // type:function size:0x1C -fn_8014F8F0 = .text:0x8014F8F0; // type:function size:0x1C -fn_8014F910 = .text:0x8014F910; // type:function size:0x10 -fn_8014F920 = .text:0x8014F920; // type:function size:0x10 -fn_8014F930 = .text:0x8014F930; // type:function size:0x10 -fn_8014F940 = .text:0x8014F940; // type:function size:0x10 -fn_8014F950 = .text:0x8014F950; // type:function size:0x10 -fn_8014F960 = .text:0x8014F960; // type:function size:0x10 -fn_8014F970 = .text:0x8014F970; // type:function size:0x10 -fn_8014F980 = .text:0x8014F980; // type:function size:0x30 -fn_8014F9B0 = .text:0x8014F9B0; // type:function size:0x30 -fn_8014F9E0 = .text:0x8014F9E0; // type:function size:0x30 -fn_8014FA10 = .text:0x8014FA10; // type:function size:0x30 -fn_8014FA40 = .text:0x8014FA40; // type:function size:0x30 -fn_8014FA70 = .text:0x8014FA70; // type:function size:0x30 -LytHelp__initStates = .text:0x8014FAA0; // type:function size:0x7AC -LytHelp__LytHelpMain__state_dtor = .text:0x80150250; // type:function size:0x58 -LytHelp__state_dtor = .text:0x801502B0; // type:function size:0x58 -fn_80150310 = .text:0x80150310; // type:function size:0x88 -fn_801503A0 = .text:0x801503A0; // type:function size:0x88 +initializeState_ModeNone__14dLytHelpMain_cFv = .text:0x8014E010; // type:function size:0x4 +executeState_ModeNone__14dLytHelpMain_cFv = .text:0x8014E020; // type:function size:0xC +finalizeState_ModeNone__14dLytHelpMain_cFv = .text:0x8014E030; // type:function size:0x4 +initializeState_ModeIn__14dLytHelpMain_cFv = .text:0x8014E040; // type:function size:0x4 +executeState_ModeIn__14dLytHelpMain_cFv = .text:0x8014E050; // type:function size:0x64 +finalizeState_ModeIn__14dLytHelpMain_cFv = .text:0x8014E0C0; // type:function size:0x4 +initializeState_ModeWait__14dLytHelpMain_cFv = .text:0x8014E0D0; // type:function size:0x4 +executeState_ModeWait__14dLytHelpMain_cFv = .text:0x8014E0E0; // type:function size:0xC +finalizeState_ModeWait__14dLytHelpMain_cFv = .text:0x8014E0F0; // type:function size:0x4 +initializeState_ModeOut__14dLytHelpMain_cFv = .text:0x8014E100; // type:function size:0x4 +executeState_ModeOut__14dLytHelpMain_cFv = .text:0x8014E110; // type:function size:0x88 +finalizeState_ModeOut__14dLytHelpMain_cFv = .text:0x8014E1A0; // type:function size:0x4 +initializeState_ModeEnd__14dLytHelpMain_cFv = .text:0x8014E1B0; // type:function size:0x4 +executeState_ModeEnd__14dLytHelpMain_cFv = .text:0x8014E1C0; // type:function size:0xC +finalizeState_ModeEnd__14dLytHelpMain_cFv = .text:0x8014E1D0; // type:function size:0x4 +__ct__14dLytHelpMain_cFv = .text:0x8014E1E0; // type:function size:0xC0 +__dt__53sFStateMgr_c<14dLytHelpMain_c,20sStateMethodUsr_FI_c>Fv = .text:0x8014E2A0; // type:function size:0xA4 scope:weak +__dt__83sStateMgr_c<14dLytHelpMain_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x8014E350; // type:function size:0xA0 scope:weak +__dt__30sFStateFct_c<14dLytHelpMain_c>Fv = .text:0x8014E3F0; // type:function size:0x6C scope:weak +__dt__27sFState_c<14dLytHelpMain_c>Fv = .text:0x8014E460; // type:function size:0x58 scope:weak +build__14dLytHelpMain_cFPQ23d2d10ResAccIf_c = .text:0x8014E4C0; // type:function size:0x1B4 +remove__14dLytHelpMain_cFv = .text:0x8014E680; // type:function size:0x5C +modeRequestIn__14dLytHelpMain_cFl = .text:0x8014E6E0; // type:function size:0x88 +changeState__83sStateMgr_c<14dLytHelpMain_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>FRC12sStateIDIf_c = .text:0x8014E770; // type:function size:0x10 scope:weak +modeRequestWait__14dLytHelpMain_cFv = .text:0x8014E780; // type:function size:0x58 +modeRequestOut__14dLytHelpMain_cFv = .text:0x8014E7E0; // type:function size:0x8C +modeRequestEnd__14dLytHelpMain_cFv = .text:0x8014E870; // type:function size:0x4C +modeRequestNone__14dLytHelpMain_cFv = .text:0x8014E8C0; // type:function size:0x4C +setText__14dLytHelpMain_cFl = .text:0x8014E910; // type:function size:0x254 +execute__14dLytHelpMain_cFv = .text:0x8014EB70; // type:function size:0xA8 +executeState__83sStateMgr_c<14dLytHelpMain_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x8014EC20; // type:function size:0x10 scope:weak +draw__14dLytHelpMain_cFv = .text:0x8014EC30; // type:function size:0x28 +initializeState_None__10dLytHelp_cFv = .text:0x8014EC60; // type:function size:0x4 +executeState_None__10dLytHelp_cFv = .text:0x8014EC70; // type:function size:0x7C +changeState__79sStateMgr_c<10dLytHelp_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>FRC12sStateIDIf_c = .text:0x8014ECF0; // type:function size:0x10 scope:weak +finalizeState_None__10dLytHelp_cFv = .text:0x8014ED00; // type:function size:0x4 +initializeState_In__10dLytHelp_cFv = .text:0x8014ED10; // type:function size:0x4 +executeState_In__10dLytHelp_cFv = .text:0x8014ED20; // type:function size:0x6C +finalizeState_In__10dLytHelp_cFv = .text:0x8014ED90; // type:function size:0x4 +initializeState_Wait__10dLytHelp_cFv = .text:0x8014EDA0; // type:function size:0x4 +executeState_Wait__10dLytHelp_cFv = .text:0x8014EDB0; // type:function size:0x94 +finalizeState_Wait__10dLytHelp_cFv = .text:0x8014EE50; // type:function size:0x4 +initializeState_Out__10dLytHelp_cFv = .text:0x8014EE60; // type:function size:0x4 +executeState_Out__10dLytHelp_cFv = .text:0x8014EE70; // type:function size:0x64 +finalizeState_Out__10dLytHelp_cFv = .text:0x8014EEE0; // type:function size:0x4 +initializeState_End__10dLytHelp_cFv = .text:0x8014EEF0; // type:function size:0x4 +executeState_End__10dLytHelp_cFv = .text:0x8014EF00; // type:function size:0x4 +finalizeState_End__10dLytHelp_cFv = .text:0x8014EF10; // type:function size:0x4 +setText__10dLytHelp_cFl = .text:0x8014EF20; // type:function size:0x98 +getStateID__79sStateMgr_c<10dLytHelp_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x8014EFC0; // type:function size:0x10 scope:weak +changeText__10dLytHelp_cFl = .text:0x8014EFD0; // type:function size:0x250 +build__10dLytHelp_cFv = .text:0x8014F220; // type:function size:0xAC +remove__10dLytHelp_cFv = .text:0x8014F2D0; // type:function size:0x6C +__dt__14dLytHelpMain_cFv = .text:0x8014F340; // type:function size:0xD8 scope:weak +execute__10dLytHelp_cFv = .text:0x8014F420; // type:function size:0x7C +executeState__79sStateMgr_c<10dLytHelp_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x8014F4A0; // type:function size:0x10 scope:weak +draw__10dLytHelp_cFv = .text:0x8014F4B0; // type:function size:0x64 +__dt__10dLytHelp_cFv = .text:0x8014F520; // type:function size:0xF4 scope:weak +__dt__49sFStateMgr_c<10dLytHelp_c,20sStateMethodUsr_FI_c>Fv = .text:0x8014F620; // type:function size:0xA4 scope:weak +__dt__79sStateMgr_c<10dLytHelp_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x8014F6D0; // type:function size:0xA0 scope:weak +__dt__26sFStateFct_c<10dLytHelp_c>Fv = .text:0x8014F770; // type:function size:0x6C scope:weak +__dt__23sFState_c<10dLytHelp_c>Fv = .text:0x8014F7E0; // type:function size:0x58 scope:weak +build__30sFStateFct_c<14dLytHelpMain_c>FRC12sStateIDIf_c = .text:0x8014F840; // type:function size:0x60 scope:weak +dispose__30sFStateFct_c<14dLytHelpMain_c>FRP10sStateIf_c = .text:0x8014F8A0; // type:function size:0xC scope:weak +initialize__27sFState_c<14dLytHelpMain_c>Fv = .text:0x8014F8B0; // type:function size:0x1C scope:weak +execute__27sFState_c<14dLytHelpMain_c>Fv = .text:0x8014F8D0; // type:function size:0x1C scope:weak +finalize__27sFState_c<14dLytHelpMain_c>Fv = .text:0x8014F8F0; // type:function size:0x1C scope:weak +initializeState__83sStateMgr_c<14dLytHelpMain_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x8014F910; // type:function size:0x10 scope:weak +finalizeState__83sStateMgr_c<14dLytHelpMain_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x8014F920; // type:function size:0x10 scope:weak +refreshState__83sStateMgr_c<14dLytHelpMain_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x8014F930; // type:function size:0x10 scope:weak +getState__83sStateMgr_c<14dLytHelpMain_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x8014F940; // type:function size:0x10 scope:weak +getNewStateID__83sStateMgr_c<14dLytHelpMain_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x8014F950; // type:function size:0x10 scope:weak +getStateID__83sStateMgr_c<14dLytHelpMain_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x8014F960; // type:function size:0x10 scope:weak +getOldStateID__83sStateMgr_c<14dLytHelpMain_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x8014F970; // type:function size:0x10 scope:weak +finalizeState__29sFStateID_c<14dLytHelpMain_c>CFR14dLytHelpMain_c = .text:0x8014F980; // type:function size:0x30 scope:weak +executeState__29sFStateID_c<14dLytHelpMain_c>CFR14dLytHelpMain_c = .text:0x8014F9B0; // type:function size:0x30 scope:weak +initializeState__29sFStateID_c<14dLytHelpMain_c>CFR14dLytHelpMain_c = .text:0x8014F9E0; // type:function size:0x30 scope:weak +finalizeState__25sFStateID_c<10dLytHelp_c>CFR10dLytHelp_c = .text:0x8014FA10; // type:function size:0x30 scope:weak +executeState__25sFStateID_c<10dLytHelp_c>CFR10dLytHelp_c = .text:0x8014FA40; // type:function size:0x30 scope:weak +initializeState__25sFStateID_c<10dLytHelp_c>CFR10dLytHelp_c = .text:0x8014FA70; // type:function size:0x30 scope:weak +__sinit_\d_lyt_help_cpp = .text:0x8014FAA0; // type:function size:0x7AC scope:local +__dt__29sFStateID_c<14dLytHelpMain_c>Fv = .text:0x80150250; // type:function size:0x58 scope:weak +__dt__25sFStateID_c<10dLytHelp_c>Fv = .text:0x801502B0; // type:function size:0x58 scope:weak +isSameName__25sFStateID_c<10dLytHelp_c>CFPCc = .text:0x80150310; // type:function size:0x88 scope:weak +isSameName__29sFStateID_c<14dLytHelpMain_c>CFPCc = .text:0x801503A0; // type:function size:0x88 scope:weak fn_80150430 = .text:0x80150430; // type:function size:0x34 fn_80150470 = .text:0x80150470; // type:function size:0x1CC fn_80150640 = .text:0x80150640; // type:function size:0x28 @@ -14484,11 +14484,11 @@ doDelete__12dThpPlayer_cFv = .text:0x802733E0; // type:function size:0x38 execute__12dThpPlayer_cFv = .text:0x80273420; // type:function size:0x24 draw__12dThpPlayer_cFv = .text:0x80273450; // type:function size:0x44 __ct__12dThpPlayer_cFv = .text:0x802734A0; // type:function size:0x88 -__dt__14ThpVideoScreenFv = .text:0x80273530; // type:function size:0x58 +__dt__14ThpVideoScreenFv = .text:0x80273530; // type:function size:0x58 scope:weak __dt__12dThpPlayer_cFv = .text:0x80273590; // type:function size:0xA8 reallyCreate__12dThpPlayer_cFUsUs = .text:0x80273640; // type:function size:0x68 drawTHPFrame__FUlUlUlUlUlUl = .text:0x802736B0; // type:function size:0x2C -callback__FPv = .text:0x802736E0; // type:function size:0x24 +callback__FPv = .text:0x802736E0; // type:function size:0x24 scope:local open__12dThpPlayer_cFv = .text:0x80273710; // type:function size:0x44 setupFile__12dThpPlayer_cFPcl = .text:0x80273760; // type:function size:0xD0 reallyExecute__12dThpPlayer_cFv = .text:0x80273830; // type:function size:0x1B0 @@ -16853,8 +16853,8 @@ fn_802D0700 = .text:0x802D0700; // type:function size:0x60 fn_802D0760 = .text:0x802D0760; // type:function size:0xC fn_802D0770 = .text:0x802D0770; // type:function size:0x60 fn_802D07D0 = .text:0x802D07D0; // type:function size:0xC -fn_802D07E0 = .text:0x802D07E0; // type:function size:0x60 -fn_802D0840 = .text:0x802D0840; // type:function size:0xC +build__26sFStateFct_c<10dLytHelp_c>FRC12sStateIDIf_c = .text:0x802D07E0; // type:function size:0x60 +dispose__26sFStateFct_c<10dLytHelp_c>FRP10sStateIf_c = .text:0x802D0840; // type:function size:0xC build__26sFStateFct_c<10dLytWipe_c>FRC12sStateIDIf_c = .text:0x802D0850; // type:function size:0x60 dispose__26sFStateFct_c<10dLytWipe_c>FRP10sStateIf_c = .text:0x802D08B0; // type:function size:0xC fn_802D08C0 = .text:0x802D08C0; // type:function size:0x60 @@ -16867,9 +16867,9 @@ fn_802D09E0 = .text:0x802D09E0; // type:function size:0x1C fn_802D0A00 = .text:0x802D0A00; // type:function size:0x1C fn_802D0A20 = .text:0x802D0A20; // type:function size:0x1C fn_802D0A40 = .text:0x802D0A40; // type:function size:0x1C -fn_802D0A60 = .text:0x802D0A60; // type:function size:0x1C -fn_802D0A80 = .text:0x802D0A80; // type:function size:0x1C -fn_802D0AA0 = .text:0x802D0AA0; // type:function size:0x1C +initialize__23sFState_c<10dLytHelp_c>Fv = .text:0x802D0A60; // type:function size:0x1C +execute__23sFState_c<10dLytHelp_c>Fv = .text:0x802D0A80; // type:function size:0x1C +finalize__23sFState_c<10dLytHelp_c>Fv = .text:0x802D0AA0; // type:function size:0x1C initialize__23sFState_c<10dLytWipe_c>Fv = .text:0x802D0AC0; // type:function size:0x1C execute__23sFState_c<10dLytWipe_c>Fv = .text:0x802D0AE0; // type:function size:0x1C finalize__23sFState_c<10dLytWipe_c>Fv = .text:0x802D0B00; // type:function size:0x1C @@ -16892,12 +16892,12 @@ fn_802D0C70 = .text:0x802D0C70; // type:function size:0x10 fn_802D0C80 = .text:0x802D0C80; // type:function size:0x10 fn_802D0C90 = .text:0x802D0C90; // type:function size:0x10 fn_802D0CA0 = .text:0x802D0CA0; // type:function size:0x10 -fn_802D0CB0 = .text:0x802D0CB0; // type:function size:0x10 -fn_802D0CC0 = .text:0x802D0CC0; // type:function size:0x10 -fn_802D0CD0 = .text:0x802D0CD0; // type:function size:0x10 -fn_802D0CE0 = .text:0x802D0CE0; // type:function size:0x10 -fn_802D0CF0 = .text:0x802D0CF0; // type:function size:0x10 -fn_802D0D00 = .text:0x802D0D00; // type:function size:0x10 +initializeState__79sStateMgr_c<10dLytHelp_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x802D0CB0; // type:function size:0x10 +finalizeState__79sStateMgr_c<10dLytHelp_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x802D0CC0; // type:function size:0x10 +refreshState__79sStateMgr_c<10dLytHelp_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x802D0CD0; // type:function size:0x10 +getState__79sStateMgr_c<10dLytHelp_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x802D0CE0; // type:function size:0x10 +getNewStateID__79sStateMgr_c<10dLytHelp_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x802D0CF0; // type:function size:0x10 +getOldStateID__79sStateMgr_c<10dLytHelp_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x802D0D00; // type:function size:0x10 initializeState__79sStateMgr_c<10dLytWipe_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x802D0D10; // type:function size:0x10 finalizeState__79sStateMgr_c<10dLytWipe_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x802D0D20; // type:function size:0x10 refreshState__79sStateMgr_c<10dLytWipe_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x802D0D30; // type:function size:0x10 @@ -17374,7 +17374,7 @@ create__3m2dFPQ23EGG4HeapUl = .text:0x802E2DD0; // type:function size:0x94 defaultSet__3m2dFv = .text:0x802E2E70; // type:function size:0x58 draw__3m2dFUc = .text:0x802E2ED0; // type:function size:0x88 drawBefore__3m2dFUc = .text:0x802E2F60; // type:function size:0x88 -getAllocator__3m2dFv = .text:0x802E2FF0; // type:function size:0xC +setLytAllocator__3m2dFv = .text:0x802E2FF0; // type:function size:0xC CreateAnimTransform__Q23m2d8Layout_cFPCvPQ34nw4r3lyt16ResourceAccessor = .text:0x802E3000; // type:function size:0x50 __dt__Q23m2d14ResAccIfBase_cFv = .text:0x802E3050; // type:function size:0x40 __dt__Q23m2d10ResAccIf_cFv = .text:0x802E3090; // type:function size:0x88 @@ -19950,7 +19950,7 @@ leaveMenu__15dSndPlayerMgr_cFv = .text:0x8035E470; // type:function size:0x2C enterMap__15dSndPlayerMgr_cFv = .text:0x8035E4A0; // type:function size:0x44 leaveMap__15dSndPlayerMgr_cFv = .text:0x8035E4F0; // type:function size:0x44 enterHelp__15dSndPlayerMgr_cFv = .text:0x8035E540; // type:function size:0x18 -fn_8035E560 = .text:0x8035E560; // type:function size:0x18 +leaveHelp__15dSndPlayerMgr_cFv = .text:0x8035E560; // type:function size:0x18 fn_8035E580 = .text:0x8035E580; // type:function size:0x50 fn_8035E5D0 = .text:0x8035E5D0; // type:function size:0x44 fn_8035E620 = .text:0x8035E620; // type:function size:0xB4 @@ -28326,7 +28326,7 @@ brlanMap = .rodata:0x804E7F50; // type:object size:0x30 scope:local data:4byte brlanMap = .rodata:0x804E7F80; // type:object size:0x20 scope:local data:4byte brlanMap1 = .rodata:0x804E7FA0; // type:object size:0x20 scope:local data:4byte brlanMap2 = .rodata:0x804E7FC0; // type:object size:0x20 scope:local data:4byte -lbl_804E7FE0 = .rodata:0x804E7FE0; // type:object size:0x18 data:4byte +brlanMap = .rodata:0x804E7FE0; // type:object size:0x18 scope:local data:4byte lbl_804E7FF8 = .rodata:0x804E7FF8; // type:object size:0xD0 data:4byte lbl_804E80C8 = .rodata:0x804E80C8; // type:object size:0x30 brlanMap = .rodata:0x804E80F8; // type:object size:0x40 scope:local data:4byte @@ -33988,54 +33988,105 @@ __vt__27sFState_c<14dLytWipeMain_c> = .data:0x80522F40; // type:object size:0x18 @20116 = .data:0x80523168; // type:object size:0x18 scope:local data:string __vt__25sFStateID_c<10dLytWipe_c> = .data:0x80523180; // type:object size:0x34 scope:weak __vt__29sFStateID_c<14dLytWipeMain_c> = .data:0x805231B4; // type:object size:0x34 scope:weak -lbl_805231E8 = .data:0x805231E8; // type:object size:0x18 -lbl_80523200 = .data:0x80523200; // type:object size:0x18 -lbl_80523218 = .data:0x80523218; // type:object size:0x1C -lbl_80523234 = .data:0x80523234; // type:object size:0xC data:string -lbl_80523240 = .data:0x80523240; // type:object size:0x10 data:string -lbl_80523250 = .data:0x80523250; // type:object size:0x10 data:string -lbl_80523260 = .data:0x80523260; // type:object size:0x1C -lbl_8052327C = .data:0x8052327C; // type:object size:0x10 -lbl_8052328C = .data:0x8052328C; // type:object size:0x10 -lbl_8052329C = .data:0x8052329C; // type:object size:0x1C -lbl_805232B8 = .data:0x805232B8; // type:object size:0xC -lbl_805232C4 = .data:0x805232C4; // type:object size:0xC -lbl_805232D0 = .data:0x805232D0; // type:object size:0x18 -lbl_805232E8 = .data:0x805232E8; // type:object size:0xC -lbl_805232F4 = .data:0x805232F4; // type:object size:0xC -lbl_80523300 = .data:0x80523300; // type:object size:0x2C -lbl_8052332C = .data:0x8052332C; // type:object size:0xC -lbl_80523338 = .data:0x80523338; // type:object size:0xC -lbl_80523344 = .data:0x80523344; // type:object size:0xC -lbl_80523350 = .data:0x80523350; // type:object size:0xC -lbl_8052335C = .data:0x8052335C; // type:object size:0xC -lbl_80523368 = .data:0x80523368; // type:object size:0xC -lbl_80523374 = .data:0x80523374; // type:object size:0xC data:string -lbl_80523380 = .data:0x80523380; // type:object size:0xC -lbl_8052338C = .data:0x8052338C; // type:object size:0x10 -lbl_8052339C = .data:0x8052339C; // type:object size:0xC -lbl_805233A8 = .data:0x805233A8; // type:object size:0xC -lbl_805233B4 = .data:0x805233B4; // type:object size:0x10 -lbl_805233C4 = .data:0x805233C4; // type:object size:0xC -lbl_805233D0 = .data:0x805233D0; // type:object size:0xC data:string -lbl_805233DC = .data:0x805233DC; // type:object size:0xC -lbl_805233E8 = .data:0x805233E8; // type:object size:0xC -lbl_805233F4 = .data:0x805233F4; // type:object size:0xC data:string -lbl_80523400 = .data:0x80523400; // type:object size:0xC -lbl_8052340C = .data:0x8052340C; // type:object size:0xC -lbl_80523418 = .data:0x80523418; // type:object size:0xC data:string -lbl_80523424 = .data:0x80523424; // type:object size:0x130 -jumptable_80523554 = .data:0x80523554; // type:object size:0x90 scope:local -jumptable_805235E4 = .data:0x805235E4; // type:object size:0xA0 scope:local -lbl_80523684 = .data:0x80523684; // type:object size:0xC -lbl_80523690 = .data:0x80523690; // type:object size:0x1C -lbl_805236AC = .data:0x805236AC; // type:object size:0xC -lbl_805236B8 = .data:0x805236B8; // type:object size:0x30 -lbl_805236E8 = .data:0x805236E8; // type:object size:0x30 -lbl_80523718 = .data:0x80523718; // type:object size:0x18 -lbl_80523730 = .data:0x80523730; // type:object size:0x2C0 -lbl_805239F0 = .data:0x805239F0; // type:object size:0x34 -lbl_80523A24 = .data:0x80523A24; // type:object size:0x34 +@26269 = .data:0x805231E8; // type:object size:0x15 scope:local data:string +...data.0 = .data:0x805231E8; // type:label scope:local +@26271 = .data:0x80523200; // type:object size:0x16 scope:local data:string +@26272 = .data:0x80523218; // type:object size:0x19 scope:local data:string +@26273 = .data:0x80523234; // type:object size:0xC scope:local data:string +@26274 = .data:0x80523240; // type:object size:0x10 scope:local data:string +@26275 = .data:0x80523250; // type:object size:0x10 scope:local data:string +@26276 = .data:0x80523260; // type:object size:0x10 scope:local data:string +sTextBoxNamesTitleS = .data:0x80523270; // type:object size:0xC scope:local +@26277 = .data:0x8052327C; // type:object size:0xF scope:local data:string +@26278 = .data:0x8052328C; // type:object size:0xF scope:local data:string +@26279 = .data:0x8052329C; // type:object size:0xF scope:local data:string +sTextBoxNamesTitle = .data:0x805232AC; // type:object size:0xC scope:local +@26280 = .data:0x805232B8; // type:object size:0xB scope:local data:string +@26281 = .data:0x805232C4; // type:object size:0xB scope:local data:string +@26282 = .data:0x805232D0; // type:object size:0xB scope:local data:string +sTextBoxNamesS = .data:0x805232DC; // type:object size:0xC scope:local +@26283 = .data:0x805232E8; // type:object size:0xA scope:local data:string +@26284 = .data:0x805232F4; // type:object size:0xA scope:local data:string +@26285 = .data:0x80523300; // type:object size:0xA scope:local data:string +sTextBoxNames = .data:0x8052330C; // type:object size:0xC scope:local +@30390 = .data:0x80523318; // type:object size:0x12 scope:local data:string +@26431 = .data:0x8052332C; // type:object size:0x9 scope:local data:string +@26433 = .data:0x80523338; // type:object size:0xA scope:local data:string +@26435 = .data:0x80523344; // type:object size:0xA scope:local data:string +@26436 = .data:0x80523350; // type:object size:0x9 scope:local data:string +@26437 = .data:0x8052335C; // type:object size:0x9 scope:local data:string +@26438 = .data:0x80523368; // type:object size:0x9 scope:local data:string +@26440 = .data:0x80523374; // type:object size:0xC scope:local data:string +@26441 = .data:0x80523380; // type:object size:0x9 scope:local data:string +@26443 = .data:0x8052338C; // type:object size:0xE scope:local data:string +@26451 = .data:0x8052339C; // type:object size:0xA scope:local data:string +@26456 = .data:0x805233A8; // type:object size:0xA scope:local data:string +@26457 = .data:0x805233B4; // type:object size:0xF scope:local data:string +@26459 = .data:0x805233C4; // type:object size:0x9 scope:local data:string +@26463 = .data:0x805233D0; // type:object size:0xC scope:local data:string +@26468 = .data:0x805233DC; // type:object size:0x9 scope:local data:string +@26470 = .data:0x805233E8; // type:object size:0x9 scope:local data:string +@26474 = .data:0x805233F4; // type:object size:0xC scope:local data:string +@26475 = .data:0x80523400; // type:object size:0xA scope:local data:string +@26476 = .data:0x8052340C; // type:object size:0xA scope:local data:string +@26477 = .data:0x80523418; // type:object size:0xC scope:local data:string +@26478 = .data:0x80523424; // type:object size:0xA scope:local data:string +sHelpTextKeys = .data:0x80523430; // type:object size:0xEC scope:local +@30442 = .data:0x8052351C; // type:object size:0xC scope:local data:string +@30443 = .data:0x80523528; // type:object size:0xE scope:local data:string +@30444 = .data:0x80523538; // type:object size:0xC scope:local data:string +@30445 = .data:0x80523544; // type:object size:0xE scope:local data:string +@30447 = .data:0x80523554; // type:object size:0x90 scope:local +@30546 = .data:0x805235E4; // type:object size:0xA0 scope:local +@30553 = .data:0x80523684; // type:object size:0x9 scope:local data:string +__vt__10dLytHelp_c = .data:0x80523690; // type:object size:0x1C +__vt__14dLytHelpMain_c = .data:0x805236AC; // type:object size:0xC scope:weak +__vt__53sFStateMgr_c<14dLytHelpMain_c,20sStateMethodUsr_FI_c> = .data:0x805236B8; // type:object size:0x30 scope:weak +__vt__83sStateMgr_c<14dLytHelpMain_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c> = .data:0x805236E8; // type:object size:0x30 scope:weak +__vt__30sFStateFct_c<14dLytHelpMain_c> = .data:0x80523718; // type:object size:0x14 scope:weak +__vt__27sFState_c<14dLytHelpMain_c> = .data:0x80523730; // type:object size:0x18 scope:weak +@30667 = .data:0x80523760; // type:object size:0xC scope:local +@30668 = .data:0x8052376C; // type:object size:0xC scope:local +@30669 = .data:0x80523778; // type:object size:0xC scope:local +@30670 = .data:0x80523784; // type:object size:0xC scope:local +@30671 = .data:0x80523790; // type:object size:0xC scope:local +@30672 = .data:0x8052379C; // type:object size:0xC scope:local +@30673 = .data:0x805237A8; // type:object size:0xC scope:local +@30674 = .data:0x805237B4; // type:object size:0xC scope:local +@30675 = .data:0x805237C0; // type:object size:0xC scope:local +@30676 = .data:0x805237CC; // type:object size:0xC scope:local +@30677 = .data:0x805237D8; // type:object size:0xC scope:local +@30678 = .data:0x805237E4; // type:object size:0xC scope:local +@30679 = .data:0x805237F0; // type:object size:0xC scope:local +@30680 = .data:0x805237FC; // type:object size:0xC scope:local +@30681 = .data:0x80523808; // type:object size:0xC scope:local +@30682 = .data:0x80523814; // type:object size:0xC scope:local +@30683 = .data:0x80523820; // type:object size:0xC scope:local +@30684 = .data:0x8052382C; // type:object size:0xC scope:local +@30685 = .data:0x80523838; // type:object size:0xC scope:local +@30686 = .data:0x80523844; // type:object size:0xC scope:local +@30687 = .data:0x80523850; // type:object size:0xC scope:local +@30688 = .data:0x8052385C; // type:object size:0xC scope:local +@30689 = .data:0x80523868; // type:object size:0xC scope:local +@30690 = .data:0x80523874; // type:object size:0xC scope:local +@30691 = .data:0x80523880; // type:object size:0xC scope:local +@30692 = .data:0x8052388C; // type:object size:0xC scope:local +@30693 = .data:0x80523898; // type:object size:0xC scope:local +@30694 = .data:0x805238A4; // type:object size:0xC scope:local +@30695 = .data:0x805238B0; // type:object size:0xC scope:local +@30696 = .data:0x805238BC; // type:object size:0xC scope:local +@30698 = .data:0x805238C8; // type:object size:0x21 scope:local data:string +@30699 = .data:0x805238EC; // type:object size:0x1F scope:local data:string +@30700 = .data:0x8052390C; // type:object size:0x21 scope:local data:string +@30701 = .data:0x80523930; // type:object size:0x20 scope:local data:string +@30702 = .data:0x80523950; // type:object size:0x20 scope:local data:string +@30703 = .data:0x80523970; // type:object size:0x19 scope:local data:string +@30704 = .data:0x8052398C; // type:object size:0x17 scope:local data:string +@30705 = .data:0x805239A4; // type:object size:0x19 scope:local data:string +@30706 = .data:0x805239C0; // type:object size:0x18 scope:local data:string +@30707 = .data:0x805239D8; // type:object size:0x18 scope:local data:string +__vt__29sFStateID_c<14dLytHelpMain_c> = .data:0x805239F0; // type:object size:0x34 scope:weak +__vt__25sFStateID_c<10dLytHelp_c> = .data:0x80523A24; // type:object size:0x34 scope:weak lbl_80523A58 = .data:0x80523A58; // type:object size:0x30 lbl_80523A88 = .data:0x80523A88; // type:object size:0x1C lbl_80523AA4 = .data:0x80523AA4; // type:object size:0x14 @@ -35920,9 +35971,15 @@ __vt__19dAcOswMdlCallback_c = .data:0x80535E38; // type:object size:0x18 @9734 = .data:0x80535F6C; // type:object size:0x17 scope:local data:string __vt__22sFStateID_c<8dAcOsw_c> = .data:0x80535F84; // type:object size:0x34 scope:weak g_profile_THPPLAYER = .data:0x80535FB8; // type:object size:0xC -lbl_80535FC4 = .data:0x80535FC4; // type:object size:0x7C -lbl_80536040 = .data:0x80536040; // type:object size:0x50 -lbl_80536090 = .data:0x80536090; // type:object size:0x10 +...data.0 = .data:0x80535FB8; // type:label scope:local +@10708 = .data:0x80535FC4; // type:object size:0x12 scope:local data:string +@10709 = .data:0x80535FD8; // type:object size:0x12 scope:local data:string +@10710 = .data:0x80535FEC; // type:object size:0x12 scope:local data:string +@10711 = .data:0x80536000; // type:object size:0x11 scope:local data:string +@10712 = .data:0x80536014; // type:object size:0x17 scope:local data:string +@10713 = .data:0x8053602C; // type:object size:0x11 scope:local data:string +__vt__12dThpPlayer_c = .data:0x80536040; // type:object size:0x4C +__vt__14ThpVideoScreen = .data:0x80536090; // type:object size:0x10 g_profile_ALLDIE_TAG = .data:0x805360A0; // type:object size:0x10 TgAlldie__vtable = .data:0x805360B0; // type:object size:0x78 g_profile_VIEW_CLIP_TAG = .data:0x80536128; // type:object size:0x10 @@ -37057,10 +37114,10 @@ lbl_80540578 = .data:0x80540578; // type:object size:0x18 lbl_80540590 = .data:0x80540590; // type:object size:0x18 lbl_805405A8 = .data:0x805405A8; // type:object size:0xC lbl_805405B4 = .data:0x805405B4; // type:object size:0xC -lbl_805405C0 = .data:0x805405C0; // type:object size:0x30 -lbl_805405F0 = .data:0x805405F0; // type:object size:0x30 -lbl_80540620 = .data:0x80540620; // type:object size:0x18 -lbl_80540638 = .data:0x80540638; // type:object size:0x18 +__vt__49sFStateMgr_c<10dLytHelp_c,20sStateMethodUsr_FI_c> = .data:0x805405C0; // type:object size:0x30 +__vt__79sStateMgr_c<10dLytHelp_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c> = .data:0x805405F0; // type:object size:0x30 +__vt__26sFStateFct_c<10dLytHelp_c> = .data:0x80540620; // type:object size:0x18 +__vt__23sFState_c<10dLytHelp_c> = .data:0x80540638; // type:object size:0x18 __vt__49sFStateMgr_c<10dLytWipe_c,20sStateMethodUsr_FI_c> = .data:0x80540650; // type:object size:0x30 __vt__79sStateMgr_c<10dLytWipe_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c> = .data:0x80540680; // type:object size:0x30 __vt__26sFStateFct_c<10dLytWipe_c> = .data:0x805406B0; // type:object size:0x18 @@ -39725,36 +39782,36 @@ lbl_8057285C = .sdata:0x8057285C; // type:object size:0xC @24731 = .sdata:0x80572878; // type:object size:0x1 scope:local @28478 = .sdata:0x8057287C; // type:object size:0x1 scope:local @20010 = .sdata:0x80572880; // type:object size:0x1 scope:local -lbl_80572888 = .sdata:0x80572888; // type:object size:0x8 data:string -lbl_80572890 = .sdata:0x80572890; // type:object size:0x8 -lbl_80572898 = .sdata:0x80572898; // type:object size:0x8 -lbl_805728A0 = .sdata:0x805728A0; // type:object size:0x8 data:string -lbl_805728A8 = .sdata:0x805728A8; // type:object size:0x8 -lbl_805728B0 = .sdata:0x805728B0; // type:object size:0x8 -lbl_805728B8 = .sdata:0x805728B8; // type:object size:0x4 data:string -lbl_805728BC = .sdata:0x805728BC; // type:object size:0x8 -lbl_805728C4 = .sdata:0x805728C4; // type:object size:0xC -lbl_805728D0 = .sdata:0x805728D0; // type:object size:0x8 data:string -lbl_805728D8 = .sdata:0x805728D8; // type:object size:0x8 -lbl_805728E0 = .sdata:0x805728E0; // type:object size:0x8 -lbl_805728E8 = .sdata:0x805728E8; // type:object size:0x8 -lbl_805728F0 = .sdata:0x805728F0; // type:object size:0x8 -lbl_805728F8 = .sdata:0x805728F8; // type:object size:0x8 -lbl_80572900 = .sdata:0x80572900; // type:object size:0x8 -lbl_80572908 = .sdata:0x80572908; // type:object size:0x8 -lbl_80572910 = .sdata:0x80572910; // type:object size:0x8 -lbl_80572918 = .sdata:0x80572918; // type:object size:0x8 data:string -lbl_80572920 = .sdata:0x80572920; // type:object size:0x8 data:string -lbl_80572928 = .sdata:0x80572928; // type:object size:0x8 -lbl_80572930 = .sdata:0x80572930; // type:object size:0x8 -lbl_80572938 = .sdata:0x80572938; // type:object size:0x8 data:string -lbl_80572940 = .sdata:0x80572940; // type:object size:0x8 -lbl_80572948 = .sdata:0x80572948; // type:object size:0x4 data:string -lbl_8057294C = .sdata:0x8057294C; // type:object size:0x8 -lbl_80572954 = .sdata:0x80572954; // type:object size:0xC -lbl_80572960 = .sdata:0x80572960; // type:object size:0x8 data:string -lbl_80572968 = .sdata:0x80572968; // type:object size:0x8 -lbl_80572970 = .sdata:0x80572970; // type:object size:0x8 +@26270 = .sdata:0x80572888; // type:object size:0x8 scope:local data:string +@26430 = .sdata:0x80572890; // type:object size:0x7 scope:local data:string +@26432 = .sdata:0x80572898; // type:object size:0x6 scope:local data:string +@26434 = .sdata:0x805728A0; // type:object size:0x8 scope:local data:string +@26439 = .sdata:0x805728A8; // type:object size:0x7 scope:local data:string +@26442 = .sdata:0x805728B0; // type:object size:0x7 scope:local data:string +@26444 = .sdata:0x805728B8; // type:object size:0x4 scope:local data:string +@26445 = .sdata:0x805728BC; // type:object size:0x5 scope:local data:string +@26446 = .sdata:0x805728C4; // type:object size:0x5 scope:local data:string +@26447 = .sdata:0x805728D0; // type:object size:0x8 scope:local data:string +@26448 = .sdata:0x805728D8; // type:object size:0x5 scope:local data:string +@26449 = .sdata:0x805728E0; // type:object size:0x7 scope:local data:string +@26450 = .sdata:0x805728E8; // type:object size:0x7 scope:local data:string +@26452 = .sdata:0x805728F0; // type:object size:0x5 scope:local data:string +@26453 = .sdata:0x805728F8; // type:object size:0x7 scope:local data:string +@26454 = .sdata:0x80572900; // type:object size:0x5 scope:local data:string +@26455 = .sdata:0x80572908; // type:object size:0x6 scope:local data:string +@26458 = .sdata:0x80572910; // type:object size:0x6 scope:local data:string +@26460 = .sdata:0x80572918; // type:object size:0x8 scope:local data:string +@26461 = .sdata:0x80572920; // type:object size:0x8 scope:local data:string +@26462 = .sdata:0x80572928; // type:object size:0x5 scope:local data:string +@26464 = .sdata:0x80572930; // type:object size:0x7 scope:local data:string +@26465 = .sdata:0x80572938; // type:object size:0x8 scope:local data:string +@26466 = .sdata:0x80572940; // type:object size:0x6 scope:local data:string +@26467 = .sdata:0x80572948; // type:object size:0x4 scope:local data:string +@26469 = .sdata:0x8057294C; // type:object size:0x7 scope:local data:string +@26471 = .sdata:0x80572954; // type:object size:0x7 scope:local data:string +@26472 = .sdata:0x80572960; // type:object size:0x8 scope:local data:string +@26473 = .sdata:0x80572968; // type:object size:0x6 scope:local data:string +@30554 = .sdata:0x80572970; // type:object size:0x1 scope:local lbl_80572978 = .sdata:0x80572978; // type:object size:0x8 data:4byte lbl_80572980 = .sdata:0x80572980; // type:object size:0x4 data:4byte lbl_80572984 = .sdata:0x80572984; // type:object size:0x4 @@ -41545,7 +41602,7 @@ sInstance__9dLytMap_c = .sbss:0x805754B0; // type:object size:0x8 data:4byte sInstance__13dLytBattery_c = .sbss:0x805754B8; // type:object size:0x4 data:4byte sInstance__17dLytAreaCaption_c = .sbss:0x805754C0; // type:object size:0x4 data:4byte sInstance__10dLytWipe_c = .sbss:0x805754C8; // type:object size:0x4 data:4byte -LYT_HELP_PTR = .sbss:0x805754D0; // type:object size:0x8 data:4byte +sInstance__10dLytHelp_c = .sbss:0x805754D0; // type:object size:0x4 data:4byte sInstance__18dLytSystemWindow_c = .sbss:0x805754D8; // type:object size:0x8 data:4byte sInstance__15dLytBirdGauge_c = .sbss:0x805754E0; // type:object size:0x4 data:4byte sInstance__14dLytSkyGauge_c = .sbss:0x805754E8; // type:object size:0x4 data:4byte @@ -44970,8 +45027,8 @@ lbl_80579FB0 = .sdata2:0x80579FB0; // type:object size:0x4 align:4 data:float @28571 = .sdata2:0x80579FD8; // type:object size:0x8 scope:local align:8 data:double @19887 = .sdata2:0x80579FE0; // type:object size:0x4 scope:local align:4 data:float brlanMap = .sdata2:0x80579FE8; // type:object size:0x8 scope:local data:4byte -lbl_80579FF0 = .sdata2:0x80579FF0; // type:object size:0x4 align:4 data:float -lbl_80579FF4 = .sdata2:0x80579FF4; // type:object size:0x4 align:4 data:float +@30309 = .sdata2:0x80579FF0; // type:object size:0x4 scope:local align:4 data:float +@30361 = .sdata2:0x80579FF4; // type:object size:0x4 scope:local align:4 data:float lbl_80579FF8 = .sdata2:0x80579FF8; // type:object size:0x4 align:4 data:float lbl_80579FFC = .sdata2:0x80579FFC; // type:object size:0x4 align:4 data:float lbl_8057A000 = .sdata2:0x8057A000; // type:object size:0x4 align:4 data:float @@ -47656,8 +47713,8 @@ lbl_8057C494 = .sdata2:0x8057C494; // type:object size:0x4 align:4 data:float @9626 = .sdata2:0x8057C4D0; // type:object size:0x4 scope:local align:4 data:float @9633 = .sdata2:0x8057C4D4; // type:object size:0x4 scope:local align:4 data:float @9634 = .sdata2:0x8057C4D8; // type:object size:0x4 scope:local align:4 data:float -lbl_8057C4E0 = .sdata2:0x8057C4E0; // type:object size:0x8 -lbl_8057C4E8 = .sdata2:0x8057C4E8; // type:object size:0x8 align:8 data:double +SPECIAL_TYPES = .sdata2:0x8057C4E0; // type:object size:0x3 scope:local data:string +@10716 = .sdata2:0x8057C4E8; // type:object size:0x8 scope:local align:8 data:double lbl_8057C4F0 = .sdata2:0x8057C4F0; // type:object size:0x4 align:4 data:float lbl_8057C4F4 = .sdata2:0x8057C4F4; // type:object size:0x4 align:4 data:float lbl_8057C4F8 = .sdata2:0x8057C4F8; // type:object size:0x4 align:4 data:float @@ -51224,17 +51281,27 @@ StateID_In__10dLytWipe_c = .bss:0x805B0C80; // type:object size:0x30 data:4byte StateID_Wait__10dLytWipe_c = .bss:0x805B0CC0; // type:object size:0x30 data:4byte @18975 = .bss:0x805B0CF0; // type:object size:0xC scope:local StateID_Out__10dLytWipe_c = .bss:0x805B0D00; // type:object size:0x30 data:4byte -lbl_805B0D30 = .bss:0x805B0D30; // type:object size:0x10 -LytHelp__LytHelpMain__STATE_MODE_NONE = .bss:0x805B0D40; // type:object size:0x40 data:4byte -LytHelp__LytHelpMain__STATE_MODE_IN = .bss:0x805B0D80; // type:object size:0x40 data:4byte -LytHelp__LytHelpMain__STATE_MODE_WAIT = .bss:0x805B0DC0; // type:object size:0x40 data:4byte -LytHelp__LytHelpMain__STATE_MODE_OUT = .bss:0x805B0E00; // type:object size:0x40 data:4byte -LytHelp__LytHelpMain__STATE_MODE_END = .bss:0x805B0E40; // type:object size:0x40 data:4byte -LytHelp__STATE_NONE = .bss:0x805B0E80; // type:object size:0x40 data:4byte -LytHelp__STATE_IN = .bss:0x805B0EC0; // type:object size:0x40 data:4byte -LytHelp__STATE_WAIT = .bss:0x805B0F00; // type:object size:0x40 data:4byte -LytHelp__STATE_OUT = .bss:0x805B0F40; // type:object size:0x40 data:4byte -LytHelp__STATE_END = .bss:0x805B0F80; // type:object size:0x30 data:4byte +@26232 = .bss:0x805B0D30; // type:object size:0xC scope:local +...bss.0 = .bss:0x805B0D30; // type:label scope:local +StateID_ModeNone__14dLytHelpMain_c = .bss:0x805B0D40; // type:object size:0x30 data:4byte +@26236 = .bss:0x805B0D70; // type:object size:0xC scope:local +StateID_ModeIn__14dLytHelpMain_c = .bss:0x805B0D80; // type:object size:0x30 data:4byte +@26240 = .bss:0x805B0DB0; // type:object size:0xC scope:local +StateID_ModeWait__14dLytHelpMain_c = .bss:0x805B0DC0; // type:object size:0x30 data:4byte +@26244 = .bss:0x805B0DF0; // type:object size:0xC scope:local +StateID_ModeOut__14dLytHelpMain_c = .bss:0x805B0E00; // type:object size:0x30 data:4byte +@26248 = .bss:0x805B0E30; // type:object size:0xC scope:local +StateID_ModeEnd__14dLytHelpMain_c = .bss:0x805B0E40; // type:object size:0x30 data:4byte +@26252 = .bss:0x805B0E70; // type:object size:0xC scope:local +StateID_None__10dLytHelp_c = .bss:0x805B0E80; // type:object size:0x30 data:4byte +@26256 = .bss:0x805B0EB0; // type:object size:0xC scope:local +StateID_In__10dLytHelp_c = .bss:0x805B0EC0; // type:object size:0x30 data:4byte +@26260 = .bss:0x805B0EF0; // type:object size:0xC scope:local +StateID_Wait__10dLytHelp_c = .bss:0x805B0F00; // type:object size:0x30 data:4byte +@26264 = .bss:0x805B0F30; // type:object size:0xC scope:local +StateID_Out__10dLytHelp_c = .bss:0x805B0F40; // type:object size:0x30 data:4byte +@26268 = .bss:0x805B0F70; // type:object size:0xC scope:local +StateID_End__10dLytHelp_c = .bss:0x805B0F80; // type:object size:0x30 data:4byte @6677 = .bss:0x805B0FB0; // type:object size:0xC scope:local ...bss.0 = .bss:0x805B0FB0; // type:label scope:local StateID_ModeNone__19dLytBirdGaugeMain_c = .bss:0x805B0FC0; // type:object size:0x30 data:4byte diff --git a/configure.py b/configure.py index d2aca699..47669a2c 100644 --- a/configure.py +++ b/configure.py @@ -538,7 +538,7 @@ config.libs = [ Object(Matching, "d/lyt/d_lyt_battery.cpp"), Object(Matching, "d/lyt/d_lyt_area_caption.cpp"), Object(Matching, "d/lyt/d_lyt_wipe.cpp"), - Object(NonMatching, "d/lyt/d_lyt_help.cpp"), + Object(Matching, "d/lyt/d_lyt_help.cpp"), Object(NonMatching, "d/lyt/d_lyt_system_window.cpp"), Object(Matching, "d/lyt/d_lyt_bird_gauge.cpp"), Object(Matching, "d/lyt/d_lyt_sky_gauge.cpp"), diff --git a/include/d/d_d2d.h b/include/d/d_d2d.h index 95fefae5..15398c06 100644 --- a/include/d/d_d2d.h +++ b/include/d/d_d2d.h @@ -10,6 +10,8 @@ void defaultSet(); void drawBefore(); void draw(); +void setLytAllocator(); + } // namespace d2d #endif diff --git a/include/d/lyt/d_lyt_control_game.h b/include/d/lyt/d_lyt_control_game.h index d6908d2a..1c43e800 100644 --- a/include/d/lyt/d_lyt_control_game.h +++ b/include/d/lyt/d_lyt_control_game.h @@ -37,6 +37,7 @@ public: private: /* 0x00068 */ UI_STATE_MGR_DECLARE(dLytControlGame_c); + static dLytControlGame_c *sInstance; }; diff --git a/include/d/lyt/d_lyt_help.h b/include/d/lyt/d_lyt_help.h new file mode 100644 index 00000000..e3bd2401 --- /dev/null +++ b/include/d/lyt/d_lyt_help.h @@ -0,0 +1,89 @@ +#ifndef D_LYT_HELP_H +#define D_LYT_HELP_H + +#include "common.h" +#include "d/lyt/d2d.h" +#include "d/lyt/d_textbox.h" +#include "m/m2d.h" +#include "s/s_State.hpp" + +class dLytHelpMain_c { +public: + dLytHelpMain_c(); + virtual ~dLytHelpMain_c() {} + + bool build(d2d::ResAccIf_c *resAcc); + bool remove(); + bool execute(); + bool draw(); + + void modeRequestIn(s32 textIndex); + void modeRequestWait(); + void modeRequestOut(); + void modeRequestEnd(); + void modeRequestNone(); + + bool isIdle() const { + return mIsIdle; + } + + void setText(s32 textIndex); +private: + + STATE_FUNC_DECLARE(dLytHelpMain_c, ModeNone); + STATE_FUNC_DECLARE(dLytHelpMain_c, ModeIn); + STATE_FUNC_DECLARE(dLytHelpMain_c, ModeWait); + STATE_FUNC_DECLARE(dLytHelpMain_c, ModeOut); + STATE_FUNC_DECLARE(dLytHelpMain_c, ModeEnd); + + /* 0x004 */ UI_STATE_MGR_DECLARE(dLytHelpMain_c); + /* 0x040 */ d2d::LytBase_c mLyt; + /* 0x0D0 */ d2d::AnmGroup_c mAnm[3]; + /* 0x190 */ dTextBox_c *mpTextBoxesTitleS[3]; + /* 0x19C */ dTextBox_c *mpTextBoxesTitle[3]; + /* 0x1A8 */ dTextBox_c *mpTextBoxesS[3]; + /* 0x1B4 */ dTextBox_c *mpTextBoxes[3]; + /* 0x1C0 */ bool mIsIdle; + /* 0x1C4 */ s32 mTextIndex; + /* 0x1C8 */ s32 field_0x1C8; + /* 0x1CC */ s32 field_0x1CC; +}; + +class dLytHelp_c : public m2d::Base_c { +public: + dLytHelp_c() : mStateMgr(*this, sStateID::null) { + sInstance = this; + } + virtual ~dLytHelp_c() { + sInstance = nullptr; + } + virtual void draw() override; + virtual bool build(); + virtual bool remove(); + virtual bool execute(); + + bool setText(s32 textIndex); + void changeText(s32 textIndex); + +private: + static dLytHelp_c *sInstance; + + STATE_FUNC_DECLARE(dLytHelp_c, None); + STATE_FUNC_DECLARE(dLytHelp_c, In); + STATE_FUNC_DECLARE(dLytHelp_c, Wait); + STATE_FUNC_DECLARE(dLytHelp_c, Out); + STATE_FUNC_DECLARE(dLytHelp_c, End); + + STATE_MGR_DEFINE_UTIL_ISSTATE(dLytHelp_c); + + /* 0x010 */ UI_STATE_MGR_DECLARE(dLytHelp_c); + /* 0x04C */ d2d::ResAccIf_c mResAcc; + /* 0x3BC */ dLytHelpMain_c *mpMain; + /* 0x3C0 */ bool field_0x3C0; + /* 0x3C1 */ bool field_0x3C1; + /* 0x3C2 */ bool field_0x3C2; + /* 0x3C4 */ s32 mTextIndex; + /* 0x3C8 */ s32 field_0x3C8; +}; + +#endif diff --git a/include/d/lyt/d_lyt_sky_gauge.h b/include/d/lyt/d_lyt_sky_gauge.h index 1c7fa35a..82390128 100644 --- a/include/d/lyt/d_lyt_sky_gauge.h +++ b/include/d/lyt/d_lyt_sky_gauge.h @@ -22,8 +22,8 @@ public: void setHeight(f32 height); - bool wantsMove() { - return mWantsModeChange; + bool isIdle() { + return mIsIdle; } const d2d::dLytSub &getLyt() const { @@ -43,7 +43,7 @@ private: /* 0x004 */ UI_STATE_MGR_DECLARE(dLytSkyGaugeMain_c); /* 0x040 */ d2d::dLytSub mLyt; /* 0x0D4 */ d2d::AnmGroup_c mAnmGroups[3]; - /* 0x194 */ bool mWantsModeChange; + /* 0x194 */ bool mIsIdle; /* 0x195 */ bool field_0x195; // unused }; diff --git a/include/d/lyt/meter/d_lyt_meter.h b/include/d/lyt/meter/d_lyt_meter.h index 6f7b5b23..00bc98d4 100644 --- a/include/d/lyt/meter/d_lyt_meter.h +++ b/include/d/lyt/meter/d_lyt_meter.h @@ -187,7 +187,7 @@ private: /* 0x13771 */ bool field_0x13771; /* 0x13772 */ bool field_0x13772; /* 0x13773 */ bool field_0x13773; - /* 0x13774 */ bool field_0x13774; + /* 0x13774 */ bool mHelpOpen; /* 0x13775 */ bool field_0x13775; /* 0x13776 */ bool mTimerVisible; /* 0x13777 */ bool mBirdGaugeVisible; @@ -276,8 +276,12 @@ public: mMain.field_0x13773 = value; } - bool getMeterField_0x13774() const { - return mMain.field_0x13774; + bool isHelpOpen() const { + return mMain.mHelpOpen; + } + + void setHelpOpen(bool val) { + mMain.mHelpOpen = val; } void setMeterField_0x13775(bool val) { diff --git a/include/m/m2d.h b/include/m/m2d.h index eec17c94..475fc6b0 100644 --- a/include/m/m2d.h +++ b/include/m/m2d.h @@ -231,7 +231,8 @@ private: u32 field_0x94; }; -void getAllocator(); +// Inofficial, not found in NSMBW +void setLytAllocator(); } // namespace m2d diff --git a/src/d/lyt/d_lyt_help.cpp b/src/d/lyt/d_lyt_help.cpp new file mode 100644 index 00000000..1de1a71b --- /dev/null +++ b/src/d/lyt/d_lyt_help.cpp @@ -0,0 +1,542 @@ +#include "d/lyt/d_lyt_help.h" + +#include "common.h" +#include "d/d_d2d.h" +#include "d/d_pad.h" +#include "d/lyt/meter/d_lyt_meter.h" +#include "d/snd/d_snd_player_mgr.h" +#include "m/m2d.h" +#include "sized_string.h" +#include "toBeSorted/arc_managers/layout_arc_manager.h" + +STATE_DEFINE(dLytHelpMain_c, ModeNone); +STATE_DEFINE(dLytHelpMain_c, ModeIn); +STATE_DEFINE(dLytHelpMain_c, ModeWait); +STATE_DEFINE(dLytHelpMain_c, ModeOut); +STATE_DEFINE(dLytHelpMain_c, ModeEnd); + +STATE_DEFINE(dLytHelp_c, None); +STATE_DEFINE(dLytHelp_c, In); +STATE_DEFINE(dLytHelp_c, Wait); +STATE_DEFINE(dLytHelp_c, Out); +STATE_DEFINE(dLytHelp_c, End); + +static const d2d::LytBrlanMapping brlanMap[] = { + { "helpMode_02_in.brlan", "G_inOut"}, + { "helpMode_02_out.brlan", "G_inOut"}, + {"helpMode_02_loopBg.brlan", "G_loopBg_00"}, +}; + +#define HELP_MAIN_ANIM_IN 0 +#define HELP_MAIN_ANIM_OUT 1 +#define HELP_MAIN_ANIM_LOOP_BG 2 + +#define HELP_MAIN_NUM_ANIMS 3 + +static const char *sTextBoxNamesTitleS[] = { + "T_orExTitleS_00", + "T_orExTitleS_01", + "T_orExTitleS_02", +}; + +static const char *sTextBoxNamesTitle[] = { + "T_orExTitle_00", + "T_orExTitle_01", + "T_orExTitle_02", +}; + +static const char *sTextBoxNamesS[] = { + "T_orExS_00", + "T_orExS_01", + "T_orExS_02", +}; + +static const char *sTextBoxNames[] = { + "T_orEx_00", + "T_orEx_01", + "T_orEx_02", +}; + +#define HELP_ANIM_NUM_PANES 3 + +dLytHelp_c *dLytHelp_c::sInstance; + +void dLytHelpMain_c::initializeState_ModeNone() {} +void dLytHelpMain_c::executeState_ModeNone() { + mIsIdle = true; +} +void dLytHelpMain_c::finalizeState_ModeNone() {} + +void dLytHelpMain_c::initializeState_ModeIn() {} +void dLytHelpMain_c::executeState_ModeIn() { + if (mAnm[HELP_MAIN_ANIM_IN].isEndReached()) { + mAnm[HELP_MAIN_ANIM_IN].setAnimEnable(false); + mIsIdle = true; + } +} +void dLytHelpMain_c::finalizeState_ModeIn() {} + +void dLytHelpMain_c::initializeState_ModeWait() {} +void dLytHelpMain_c::executeState_ModeWait() { + mIsIdle = true; +} +void dLytHelpMain_c::finalizeState_ModeWait() {} + +void dLytHelpMain_c::initializeState_ModeOut() {} +void dLytHelpMain_c::executeState_ModeOut() { + if (field_0x1CC == 0) { + if (mAnm[HELP_MAIN_ANIM_OUT].isEndReached()) { + mAnm[HELP_MAIN_ANIM_LOOP_BG].setAnimEnable(false); + mAnm[HELP_MAIN_ANIM_OUT].setAnimEnable(false); + field_0x1CC = 1; + } + } else { + mIsIdle = true; + } +} +void dLytHelpMain_c::finalizeState_ModeOut() {} + +void dLytHelpMain_c::initializeState_ModeEnd() {} +void dLytHelpMain_c::executeState_ModeEnd() { + mIsIdle = true; +} +void dLytHelpMain_c::finalizeState_ModeEnd() {} + +dLytHelpMain_c::dLytHelpMain_c() : mStateMgr(*this) {} + +bool dLytHelpMain_c::build(d2d::ResAccIf_c *resAcc) { + mLyt.setResAcc(resAcc); + mLyt.build("helpMode_02.brlyt", nullptr); + mLyt.setPriority(0x8A); + + for (int i = 0; i < HELP_MAIN_NUM_ANIMS; i++) { + mAnm[i].init(brlanMap[i].mFile, resAcc, mLyt.getLayout(), brlanMap[i].mName); + mAnm[i].bind(false); + mAnm[i].setAnimEnable(false); + } + + for (int i = 0; i < HELP_ANIM_NUM_PANES; i++) { + mpTextBoxesTitleS[i] = mLyt.getTextBox(sTextBoxNamesTitleS[i]); + mpTextBoxesTitle[i] = mLyt.getTextBox(sTextBoxNamesTitle[i]); + mpTextBoxesS[i] = mLyt.getTextBox(sTextBoxNamesS[i]); + mpTextBoxes[i] = mLyt.getTextBox(sTextBoxNames[i]); + } + + mAnm[HELP_MAIN_ANIM_IN].setAnimEnable(true); + mAnm[HELP_MAIN_ANIM_IN].setFrame(0.0f); + mAnm[HELP_MAIN_ANIM_LOOP_BG].setAnimEnable(true); + mAnm[HELP_MAIN_ANIM_LOOP_BG].setFrame(0.0f); + + mLyt.calc(); + + mAnm[HELP_MAIN_ANIM_IN].setAnimEnable(false); + mAnm[HELP_MAIN_ANIM_OUT].setAnimEnable(false); + + modeRequestNone(); + + field_0x1C8 = 0; + field_0x1CC = 0; + return true; +} + +bool dLytHelpMain_c::remove() { + mLyt.unbindAnims(); + for (int i = 0; i < HELP_MAIN_NUM_ANIMS; i++) { + mAnm[i].remove(); + } + return true; +} + +void dLytHelpMain_c::modeRequestIn(s32 textIndex) { + mTextIndex = textIndex; + setText(textIndex); + + mAnm[HELP_MAIN_ANIM_IN].setAnimEnable(true); + mAnm[HELP_MAIN_ANIM_IN].setFrame(0.0f); + mLyt.calc(); + mStateMgr.changeState(StateID_ModeIn); + mIsIdle = false; +} + +void dLytHelpMain_c::modeRequestWait() { + mAnm[HELP_MAIN_ANIM_IN].setAnimEnable(false); + mStateMgr.changeState(StateID_ModeWait); + mIsIdle = false; +} + +void dLytHelpMain_c::modeRequestOut() { + mAnm[HELP_MAIN_ANIM_OUT].setAnimEnable(true); + mAnm[HELP_MAIN_ANIM_OUT].setFrame(0.0f); + mLyt.calc(); + field_0x1CC = 0; + mStateMgr.changeState(StateID_ModeOut); + mIsIdle = false; +} + +void dLytHelpMain_c::modeRequestEnd() { + mStateMgr.changeState(StateID_ModeEnd); + mIsIdle = false; +} + +void dLytHelpMain_c::modeRequestNone() { + mStateMgr.changeState(StateID_ModeNone); + mIsIdle = false; +} + +static const char *sHelpTextKeys[] = { + "NORMAL", "NORMAL_Z", "SWORD", "SWORD_LV1", "SWORD_LV1", "DOWSING", "SCOOP_LV2", + "SWIM_LV0", "SWIM_LV1", "PACHINKO", "PACHINKO", "BEATLE", "BEATLE_HOOK", "BEATLE_HOOK", + "BOMB_BAG", "VACUUM", "BUTTERFLY_NET", "BOW", "BOW", "WHIP", "HOOK", + "PICK_UP", "HARP", "SHIELD", "DIVING", "DIVING", "PARASHAWL", "BIRD", + "BIRD", "BOTTLE", "LOOK", "LOOK", "CLIMB", "TIGHTROPE", "HANG_TIGHTROPE", + "SWING", "SWING", "SWING", "CRAWLING", "NORMAL", "BOSSKEY", "TROLLEY", + "BOAT", "BALANCEBALL", "SLIDER", "DRAWING", "PANEL", "SIT", "CATAPULT", + "LADDER", "BIGSWORD", "GISIKI", "PUMPKIN", "SIREN", "MINI_DIVING", "MINI_MINE", + "MINI_TAKE", "MINI_INSECT", "MINI_CLAY", +}; + +// TODO - fakematch +#pragma push +#pragma ppc_iro_level 2 + +void dLytHelpMain_c::setText(s32 textIndex) { + if (textIndex >= 59) { + return; + } + + SizedString<64> label; + + if (mTextIndex != textIndex) { + mTextIndex = textIndex; + } + + for (int i = 0; i < 3; i++) { + s32 textSuffix = i + 1; + bool bUseCaption2 = false; + bool bUseTitle2 = false; + switch (mTextIndex) { + case 4: { + // SWORD_LV1 dupe + if (i == 2) { + bUseCaption2 = true; + } + break; + } + case 36: { + // SWING dupe 1 + if (i == 0) { + bUseCaption2 = true; + } else if (i == 2) { + textSuffix = 4; + } + break; + } + case 37: { + // SWING dupe 2 + if (i == 2) { + textSuffix = 4; + } + break; + } + case 13: { + // BEATLE_HOOK dupe + if (i == 1) { + textSuffix = 3; + bUseCaption2 = true; + } else if (i == 2) { + textSuffix = 4; + } + break; + } + case 10: { + // PACHINKO dupe + if (i == 1) { + bUseCaption2 = true; + } + break; + } + case 39: { + // NORMAL dupe + if (i >= 1) { + bUseCaption2 = true; + } + break; + } + + case 25: { + // DIVING dupe + if (i == 2) { + bUseCaption2 = true; + } + break; + } + case 28: { + // BIRD dupe + if (i == 1) { + bUseCaption2 = true; + bUseTitle2 = true; + } + break; + } + case 31: { + // LOOK dupe + if (i == 2) { + textSuffix = 4; + } + break; + } + case 18: { + // BOW dupe + bUseCaption2 = true; + bUseTitle2 = true; + break; + } + } + + if (!bUseTitle2) { + label.sprintf("HLP_%s_%02d", sHelpTextKeys[textIndex], textSuffix); + } else { + label.sprintf("HLP_%s_%02d_2", sHelpTextKeys[textIndex], textSuffix); + } + mpTextBoxesTitleS[i]->setMessageWithGlobalTextProcessor2(label, nullptr); + mpTextBoxesTitle[i]->setMessageWithGlobalTextProcessor2(label, nullptr); + + if (!bUseCaption2) { + label.sprintf("CPT_%s_%02d", sHelpTextKeys[textIndex], textSuffix); + } else { + label.sprintf("CPT_%s_%02d_2", sHelpTextKeys[textIndex], textSuffix); + } + mpTextBoxesS[i]->setMessageWithGlobalTextProcessor2(label, nullptr); + mpTextBoxes[i]->setMessageWithGlobalTextProcessor2(label, nullptr); + } +} + +#pragma pop + +bool dLytHelpMain_c::execute() { + mStateMgr.executeState(); + + for (int i = 0; i < HELP_MAIN_NUM_ANIMS; i++) { + if (mAnm[i].isEnabled()) { + mAnm[i].play(); + } + } + mLyt.calc(); + return true; +} + +bool dLytHelpMain_c::draw() { + mLyt.addToDrawList(); + return true; +} + +void dLytHelp_c::initializeState_None() {} +void dLytHelp_c::executeState_None() { + if (field_0x3C0 == true) { + dSndPlayerMgr_c::GetInstance()->enterHelp(); + mpMain->modeRequestIn(mTextIndex); + dLytMeter_c::GetInstance()->setHelpOpen(true); + mStateMgr.changeState(StateID_In); + field_0x3C0 = false; + } +} +void dLytHelp_c::finalizeState_None() {} + +void dLytHelp_c::initializeState_In() {} +void dLytHelp_c::executeState_In() { + if (mpMain->isIdle()) { + field_0x3C2 = true; + mpMain->modeRequestWait(); + mStateMgr.changeState(StateID_Wait); + field_0x3C8 = 0; + } +} +void dLytHelp_c::finalizeState_In() {} + +void dLytHelp_c::initializeState_Wait() {} +void dLytHelp_c::executeState_Wait() { + if (dPad::getDownTrig2() || dPad::getDownTrigMinus() || dPad::getDownTrigB() || field_0x3C1) { + mpMain->modeRequestOut(); + dSndPlayerMgr_c::GetInstance()->leaveHelp(); + dLytMeter_c::GetInstance()->setHelpOpen(false); + mStateMgr.changeState(StateID_Out); + } +} +void dLytHelp_c::finalizeState_Wait() {} + +void dLytHelp_c::initializeState_Out() {} +void dLytHelp_c::executeState_Out() { + if (mpMain->isIdle()) { + mTextIndex = -1; + mpMain->modeRequestEnd(); + mStateMgr.changeState(StateID_End); + } +} +void dLytHelp_c::finalizeState_Out() {} + +void dLytHelp_c::initializeState_End() {} +void dLytHelp_c::executeState_End() {} +void dLytHelp_c::finalizeState_End() {} + +bool dLytHelp_c::setText(s32 textIndex) { + if (*mStateMgr.getStateID() == StateID_None) { + field_0x3C0 = true; + field_0x3C1 = false; + if (textIndex <= ARRAY_LENGTH(sHelpTextKeys) - 1) { + mTextIndex = textIndex; + } else { + mTextIndex = 0; + } + return true; + } else { + return false; + } +} + +void dLytHelp_c::changeText(s32 textIndex) { + bool instantSwitch = false; + if (*mStateMgr.getStateID() != StateID_None || mTextIndex >= 0) { + switch (mTextIndex) { + case 0: + /* NORMAL */ + if (textIndex == 1) { + mTextIndex = 1; + instantSwitch = true; + } else if (textIndex == 39) { + mTextIndex = 39; + instantSwitch = true; + } + break; + case 1: + /* NORMAL_Z */ + if (textIndex == 0) { + mTextIndex = 0; + instantSwitch = true; + } + break; + case 2: + case 3: + case 4: + /* SWORD / _LV1 */ + if (textIndex == 23) { + mTextIndex = 23; + instantSwitch = true; + } + break; + case 11: + /* BEATLE */ + if (textIndex == 12) { + mTextIndex = 12; + instantSwitch = true; + } else if (textIndex == 13) { + mTextIndex = 13; + instantSwitch = true; + } + break; + case 12: + case 13: + /* BEATLE / _HOOK */ + if (textIndex == 11) { + mTextIndex = 11; + instantSwitch = true; + } + break; + case 23: + /* SHIELD */ + if (textIndex == 2) { + mTextIndex = 2; + instantSwitch = true; + } else if (textIndex == 3) { + mTextIndex = 3; + instantSwitch = true; + } else if (textIndex == 4) { + mTextIndex = 4; + instantSwitch = true; + } + break; + case 27: + if (textIndex == 28) { + mTextIndex = 28; + instantSwitch = true; + } + break; + case 33: + if (textIndex == 34) { + mTextIndex = 34; + instantSwitch = true; + } + break; + case 34: + if (textIndex == 33) { + mTextIndex = 33; + instantSwitch = true; + } + break; + case 35: + if (textIndex == 37) { + mTextIndex = 37; + instantSwitch = true; + } + break; + case 37: + if (textIndex == 35) { + mTextIndex = 35; + instantSwitch = true; + } + break; + case 39: + if (textIndex == 0) { + mTextIndex = 0; + instantSwitch = true; + } + break; + } + } + + if (instantSwitch) { + mpMain->setText(mTextIndex); + } else if (mTextIndex != textIndex) { + mTextIndex = textIndex; + field_0x3C1 = true; + } +} + +bool dLytHelp_c::build() { + d2d::setLytAllocator(); + void *data = LayoutArcManager::GetInstance()->getLoadedData("MenuHelp"); + mResAcc.attach(data, ""); + mpMain = new dLytHelpMain_c(); + mpMain->build(&mResAcc); + mStateMgr.changeState(StateID_None); + field_0x3C0 = false; + field_0x3C1 = false; + field_0x3C2 = false; + mTextIndex = -1; + field_0x3C8 = 0; + m2d::setLytAllocator(); + return true; +} + +bool dLytHelp_c::remove() { + d2d::setLytAllocator(); + mpMain->remove(); + delete mpMain; + mpMain = nullptr; + mResAcc.detach(); + m2d::setLytAllocator(); + return true; +} + +bool dLytHelp_c::execute() { + if (*mStateMgr.getStateID() != StateID_None) { + mpMain->execute(); + } + mStateMgr.executeState(); + return true; +} + +void dLytHelp_c::draw() { + if (*mStateMgr.getStateID() != StateID_None) { + mpMain->draw(); + } +} diff --git a/src/d/lyt/d_lyt_map.cpp b/src/d/lyt/d_lyt_map.cpp index 478117d1..6e008c36 100644 --- a/src/d/lyt/d_lyt_map.cpp +++ b/src/d/lyt/d_lyt_map.cpp @@ -1,9 +1,10 @@ #include "d/lyt/d_lyt_map.h" #include "common.h" +#include "d/d_cursor_hit_check.h" +#include "d/d_d2d.h" #include "d/d_pad_nav.h" #include "d/lyt/d2d.h" -#include "d/d_cursor_hit_check.h" #include "egg/core/eggColorFader.h" #include "m/m_video.h" #include "sized_string.h" @@ -485,13 +486,12 @@ dLytMapMain_c::~dLytMapMain_c() {} void dLytMapMain_c::draw() {} -extern "C" void fn_80016690(); void dLytMap_c::build() { - fn_80016690(); + d2d::setLytAllocator(); void *data = LayoutArcManager::GetInstance()->getLoadedData("Map2D"); mResAcc.attach(data, ""); mMapMain.build(); - m2d::getAllocator(); + m2d::setLytAllocator(); mMapMain.setPriority(0x86); // TODO there's another thing here at 0x91C0 } diff --git a/src/d/lyt/d_lyt_sky_gauge.cpp b/src/d/lyt/d_lyt_sky_gauge.cpp index b75541f6..f2eb60ef 100644 --- a/src/d/lyt/d_lyt_sky_gauge.cpp +++ b/src/d/lyt/d_lyt_sky_gauge.cpp @@ -27,16 +27,16 @@ dLytSkyGauge_c *dLytSkyGauge_c::sInstance; void dLytSkyGaugeMain_c::initializeState_ModeNone() {} void dLytSkyGaugeMain_c::executeState_ModeNone() { - mWantsModeChange = true; + mIsIdle = true; } void dLytSkyGaugeMain_c::finalizeState_ModeNone() {} void dLytSkyGaugeMain_c::initializeState_ModeIn() {} void dLytSkyGaugeMain_c::executeState_ModeIn() { - if (!mWantsModeChange) { + if (!mIsIdle) { if (mAnmGroups[LYT_SKY_GAUGE_MAIN_ANIM_IN].isEndReached()) { mAnmGroups[LYT_SKY_GAUGE_MAIN_ANIM_IN].setAnimEnable(false); - mWantsModeChange = true; + mIsIdle = true; } } } @@ -44,16 +44,16 @@ void dLytSkyGaugeMain_c::finalizeState_ModeIn() {} void dLytSkyGaugeMain_c::initializeState_ModeMove() {} void dLytSkyGaugeMain_c::executeState_ModeMove() { - mWantsModeChange = true; + mIsIdle = true; } void dLytSkyGaugeMain_c::finalizeState_ModeMove() {} void dLytSkyGaugeMain_c::initializeState_ModeOut() {} void dLytSkyGaugeMain_c::executeState_ModeOut() { - if (!mWantsModeChange) { + if (!mIsIdle) { if (mAnmGroups[LYT_SKY_GAUGE_MAIN_ANIM_OUT].isEndReached()) { mAnmGroups[LYT_SKY_GAUGE_MAIN_ANIM_OUT].setAnimEnable(false); - mWantsModeChange = true; + mIsIdle = true; } } } @@ -112,7 +112,7 @@ bool dLytSkyGaugeMain_c::remove() { void dLytSkyGaugeMain_c::changeToNone() { mStateMgr.changeState(StateID_ModeNone); - mWantsModeChange = false; + mIsIdle = false; } void dLytSkyGaugeMain_c::changeToIn() { @@ -120,12 +120,12 @@ void dLytSkyGaugeMain_c::changeToIn() { mAnmGroups[LYT_SKY_GAUGE_MAIN_ANIM_IN].setFrame(0.0f); mLyt.calc(); mStateMgr.changeState(StateID_ModeIn); - mWantsModeChange = false; + mIsIdle = false; } void dLytSkyGaugeMain_c::changeToMove() { mStateMgr.changeState(StateID_ModeMove); - mWantsModeChange = false; + mIsIdle = false; } void dLytSkyGaugeMain_c::changeToOut() { @@ -133,7 +133,7 @@ void dLytSkyGaugeMain_c::changeToOut() { mAnmGroups[LYT_SKY_GAUGE_MAIN_ANIM_OUT].setFrame(0.0f); mLyt.calc(); mStateMgr.changeState(StateID_ModeOut); - mWantsModeChange = false; + mIsIdle = false; } void dLytSkyGaugeMain_c::setHeight(f32 height) { @@ -154,7 +154,7 @@ void dLytSkyGauge_c::finalizeState_None() {} void dLytSkyGauge_c::initializeState_In() {} void dLytSkyGauge_c::executeState_In() { - if (mMain.wantsMove()) { + if (mMain.isIdle()) { mMain.changeToMove(); mStateMgr.changeState(StateID_Move); } @@ -173,7 +173,7 @@ void dLytSkyGauge_c::finalizeState_Move() {} void dLytSkyGauge_c::initializeState_Out() {} void dLytSkyGauge_c::executeState_Out() { - if (mMain.wantsMove()) { + if (mMain.isIdle()) { mMain.changeToNone(); mStateMgr.changeState(StateID_None); } diff --git a/src/d/lyt/meter/d_lyt_meter.cpp b/src/d/lyt/meter/d_lyt_meter.cpp index 50a874b3..5df7025f 100644 --- a/src/d/lyt/meter/d_lyt_meter.cpp +++ b/src/d/lyt/meter/d_lyt_meter.cpp @@ -350,7 +350,7 @@ bool dLytMeter2Button_c::remove() { bool dLytMeter2Button_c::execute() { dLytMeter_c *meter = dLytMeter_c::GetInstance(); - if (meter->getMeterField_0x13774()) { + if (meter->isHelpOpen()) { StoryflagManager::sInstance->unsetFlag(832); } if (mpOwnerPane == nullptr) { @@ -579,7 +579,7 @@ bool dLytMeterMain_c::fn_800C9FE0() { } bool dLytMeterMain_c::fn_800CA040() { - if (field_0x13774 || fn_800D5650() || fn_800D5680()) { + if (mHelpOpen || fn_800D5650() || fn_800D5680()) { return true; } return false; @@ -853,7 +853,7 @@ bool dLytMeterMain_c::build(d2d::ResAccIf_c *resAcc) { mBasicPosition = POSITION_NORMAL; field_0x13750 = 4; field_0x13770 = 3; - field_0x13774 = 0; + mHelpOpen = false; field_0x13775 = 0; field_0x13773 = 0; mTimerVisible = false; @@ -1021,7 +1021,7 @@ bool dLytMeterMain_c::fn_800D5380(u8 arg) { } bool dLytMeterMain_c::fn_800D53D0() { - if (checkIsInSkykeepPuzzle() && !field_0x13774) { + if (checkIsInSkykeepPuzzle() && !mHelpOpen) { return true; } return false; @@ -1086,7 +1086,7 @@ bool dLytMeterMain_c::fn_800D56B0() { if ((EventManager::isInEvent() && field_0x1377E == 0 && dAcPy_c::GetLink()->getCurrentAction() != 0x8C && dMessage_c::getInstance()->getField_0x32C() == 0xC) || - field_0x13774) { + mHelpOpen) { return true; } @@ -1350,7 +1350,7 @@ void dLytMeterMain_c::checkPaneVisibility() { } if ((dAcPy_c::GetLink()->hasvt_0x1C0() || dAcPy_c::GetLink()->checkActionFlagsCont(0x10) || - (fn_800D56B0() && !field_0x13774) || mGanbariGauge.fn_80104760() || + (fn_800D56B0() && !mHelpOpen) || mGanbariGauge.fn_80104760() || MinigameManager::isInMinigameState(MinigameManager::FUN_FUN_ISLAND) || MinigameManager::isInMinigameState(MinigameManager::THRILL_DIGGER) || diff --git a/src/d/lyt/meter/d_lyt_meter_dowsing.cpp b/src/d/lyt/meter/d_lyt_meter_dowsing.cpp index a7b426a4..d0562c30 100644 --- a/src/d/lyt/meter/d_lyt_meter_dowsing.cpp +++ b/src/d/lyt/meter/d_lyt_meter_dowsing.cpp @@ -631,7 +631,7 @@ void dLytMeterDowsing_c::executeState_Unuse() { mLyt.calc(); mAnm[DOWSING_ANIM_INPUT_0].setAnimEnable(false); mStateMgr.changeState(StateID_DemoMove); - } else if (!dLytMeter_c::GetMain()->fn_800D5680() && dLytMeter_c::GetInstance()->getMeterField_0x13774() == 0 && + } else if (!dLytMeter_c::GetMain()->fn_800D5680() && !dLytMeter_c::GetInstance()->isHelpOpen() && dLytMeter_c::GetInstance()->checkAllFlags(METER_BTN_C)) { if (field_0x54D8 <= 0) { mStateMgr.changeState(StateID_ToUse); diff --git a/src/d/lyt/meter/d_lyt_meter_event_skip.cpp b/src/d/lyt/meter/d_lyt_meter_event_skip.cpp index 4a1e9914..5289b97e 100644 --- a/src/d/lyt/meter/d_lyt_meter_event_skip.cpp +++ b/src/d/lyt/meter/d_lyt_meter_event_skip.cpp @@ -22,8 +22,8 @@ static const d2d::LytBrlanMapping brlanMap[] = { void dLytMeterEventSkip_c::initializeState_Invisible() {} void dLytMeterEventSkip_c::executeState_Invisible() { - if (shouldPromptForSkip() || dLytMeter_c::GetInstance()->getMeterField_0x13774()) { - if (dLytMeter_c::GetInstance()->getMeterField_0x13774()) { + if (shouldPromptForSkip() || dLytMeter_c::GetInstance()->isHelpOpen()) { + if (dLytMeter_c::GetInstance()->isHelpOpen()) { for (int i = 0; i < 2; i++) { mLyt.fn_800AB9A0(mpTextBoxes[i], 1); } @@ -54,7 +54,7 @@ void dLytMeterEventSkip_c::finalizeState_In() {} void dLytMeterEventSkip_c::initializeState_Visible() {} void dLytMeterEventSkip_c::executeState_Visible() { - if (!shouldPromptForSkip() && !dLytMeter_c::GetInstance()->getMeterField_0x13774()) { + if (!shouldPromptForSkip() && !dLytMeter_c::GetInstance()->isHelpOpen()) { mAnm[SKIP_ANIM_OUT].setAnimEnable(true); mAnm[SKIP_ANIM_OUT].setFrame(0.0f); mStateMgr.changeState(StateID_Out); diff --git a/src/m/m2d.cpp b/src/m/m2d.cpp index 5de7dd37..1d980058 100644 --- a/src/m/m2d.cpp +++ b/src/m/m2d.cpp @@ -62,8 +62,7 @@ void drawBefore(u8 priority) { } } -// Despite the name this *updates* Lyt's allocator -void getAllocator() { +void setLytAllocator() { nw4r::lyt::Layout::mspAllocator = l_allocator; }