diff --git a/config/SOUE01/splits.txt b/config/SOUE01/splits.txt index 5a5677c3..ffb2fbc5 100644 --- a/config/SOUE01/splits.txt +++ b/config/SOUE01/splits.txt @@ -660,7 +660,11 @@ d/lyt/d_lyt_area_caption.cpp: d/lyt/d_lyt_wipe.cpp: .text start:0x8014C6C0 end:0x8014E008 .ctors start:0x804DB77C end:0x804DB780 + .data start:0x80522E80 end:0x805231E8 + .sdata start:0x80572880 end:0x80572888 .sbss start:0x805754C8 end:0x805754D0 + .sdata2 start:0x80579FE0 end:0x80579FF0 + .bss start:0x805B0B30 end:0x805B0D30 d/lyt/d_lyt_help.cpp: .text start:0x8014E010 end:0x80150428 @@ -1052,6 +1056,7 @@ d/lyt/d_lyt_end_roll.cpp: d/lyt/d_lyt_control_game.cpp: .text start:0x802CC7B0 end:0x802D16A8 .ctors start:0x804DB8A0 end:0x804DB8A4 + .data start:0x805403F8 end:0x80540C88 d/lyt/d_lyt_control_title.cpp: .text start:0x802D16B0 end:0x802D17BC diff --git a/config/SOUE01/symbols.txt b/config/SOUE01/symbols.txt index ae0f47fb..bb702b83 100644 --- a/config/SOUE01/symbols.txt +++ b/config/SOUE01/symbols.txt @@ -8306,76 +8306,76 @@ initializeState__37sFStateID_c<22dLytAreaCaptionParts_c>CFR22dLytAreaCaptionPart __sinit_\d_lyt_area_caption_cpp = .text:0x8014C350; // type:function size:0x27C scope:local __dt__37sFStateID_c<22dLytAreaCaptionParts_c>Fv = .text:0x8014C5D0; // type:function size:0x58 isSameName__37sFStateID_c<22dLytAreaCaptionParts_c>CFPCc = .text:0x8014C630; // type:function size:0x88 -fn_8014C6C0 = .text:0x8014C6C0; // type:function size:0x4 -fn_8014C6D0 = .text:0x8014C6D0; // type:function size:0xC -fn_8014C6E0 = .text:0x8014C6E0; // type:function size:0x4 -fn_8014C6F0 = .text:0x8014C6F0; // type:function size:0x4 -fn_8014C700 = .text:0x8014C700; // type:function size:0x40 -fn_8014C740 = .text:0x8014C740; // type:function size:0x4 -fn_8014C750 = .text:0x8014C750; // type:function size:0x4 -fn_8014C760 = .text:0x8014C760; // type:function size:0xC -fn_8014C770 = .text:0x8014C770; // type:function size:0x4 -fn_8014C780 = .text:0x8014C780; // type:function size:0x4 -fn_8014C790 = .text:0x8014C790; // type:function size:0x40 -fn_8014C7D0 = .text:0x8014C7D0; // type:function size:0x4 -LytWipe__ctor = .text:0x8014C7E0; // type:function size:0xC0 -fn_8014C8A0 = .text:0x8014C8A0; // type:function size:0xA4 -fn_8014C950 = .text:0x8014C950; // type:function size:0xA0 -fn_8014C9F0 = .text:0x8014C9F0; // type:function size:0x6C -fn_8014CA60 = .text:0x8014CA60; // type:function size:0x58 -fn_8014CAC0 = .text:0x8014CAC0; // type:function size:0xF0 -fn_8014CBB0 = .text:0x8014CBB0; // type:function size:0x3C -fn_8014CBF0 = .text:0x8014CBF0; // type:function size:0xBC -fn_8014CCB0 = .text:0x8014CCB0; // type:function size:0x10 -fn_8014CCC0 = .text:0x8014CCC0; // type:function size:0x10 -fn_8014CCD0 = .text:0x8014CCD0; // type:function size:0x58 -fn_8014CD30 = .text:0x8014CD30; // type:function size:0x94 -fn_8014CDD0 = .text:0x8014CDD0; // type:function size:0x4C -fn_8014CE20 = .text:0x8014CE20; // type:function size:0x7C -fn_8014CEA0 = .text:0x8014CEA0; // type:function size:0x10 -fn_8014CEB0 = .text:0x8014CEB0; // type:function size:0x28 -fn_8014CEE0 = .text:0x8014CEE0; // type:function size:0xC -fn_8014CEF0 = .text:0x8014CEF0; // type:function size:0x8C -fn_8014CF80 = .text:0x8014CF80; // type:function size:0x10 -fn_8014CF90 = .text:0x8014CF90; // type:function size:0x4 -fn_8014CFA0 = .text:0x8014CFA0; // type:function size:0x4 -fn_8014CFB0 = .text:0x8014CFB0; // type:function size:0xE0 -fn_8014D090 = .text:0x8014D090; // type:function size:0x4 -fn_8014D0A0 = .text:0x8014D0A0; // type:function size:0x4 -fn_8014D0B0 = .text:0x8014D0B0; // type:function size:0x74 -fn_8014D130 = .text:0x8014D130; // type:function size:0x4 -fn_8014D140 = .text:0x8014D140; // type:function size:0x4 -fn_8014D150 = .text:0x8014D150; // type:function size:0xFC -fn_8014D250 = .text:0x8014D250; // type:function size:0x4 -LytWipe__init = .text:0x8014D260; // type:function size:0x98 -fn_8014D300 = .text:0x8014D300; // type:function size:0x44 -fn_8014D350 = .text:0x8014D350; // type:function size:0x48 -fn_8014D3A0 = .text:0x8014D3A0; // type:function size:0x10 -fn_8014D3B0 = .text:0x8014D3B0; // type:function size:0xF4 -fn_8014D4B0 = .text:0x8014D4B0; // type:function size:0x10 -fn_8014D4C0 = .text:0x8014D4C0; // type:function size:0xD8 -fn_8014D5A0 = .text:0x8014D5A0; // type:function size:0x60 -fn_8014D600 = .text:0x8014D600; // type:function size:0xC -fn_8014D610 = .text:0x8014D610; // type:function size:0x1C -fn_8014D630 = .text:0x8014D630; // type:function size:0x1C -fn_8014D650 = .text:0x8014D650; // type:function size:0x1C -fn_8014D670 = .text:0x8014D670; // type:function size:0x10 -fn_8014D680 = .text:0x8014D680; // type:function size:0x10 -fn_8014D690 = .text:0x8014D690; // type:function size:0x10 -fn_8014D6A0 = .text:0x8014D6A0; // type:function size:0x10 -fn_8014D6B0 = .text:0x8014D6B0; // type:function size:0x10 -fn_8014D6C0 = .text:0x8014D6C0; // type:function size:0x10 -fn_8014D6D0 = .text:0x8014D6D0; // type:function size:0x30 -fn_8014D700 = .text:0x8014D700; // type:function size:0x30 -fn_8014D730 = .text:0x8014D730; // type:function size:0x30 -fn_8014D760 = .text:0x8014D760; // type:function size:0x30 -fn_8014D790 = .text:0x8014D790; // type:function size:0x30 -fn_8014D7C0 = .text:0x8014D7C0; // type:function size:0x30 -LytWipe__initStates = .text:0x8014D7F0; // type:function size:0x634 -LytWipe__LytWipeMain__state_dtor = .text:0x8014DE30; // type:function size:0x58 -LytWipe__state_dtor = .text:0x8014DE90; // type:function size:0x58 -fn_8014DEF0 = .text:0x8014DEF0; // type:function size:0x88 -fn_8014DF80 = .text:0x8014DF80; // type:function size:0x88 +initializeState_ModeNone__14dLytWipeMain_cFv = .text:0x8014C6C0; // type:function size:0x4 +executeState_ModeNone__14dLytWipeMain_cFv = .text:0x8014C6D0; // type:function size:0xC +finalizeState_ModeNone__14dLytWipeMain_cFv = .text:0x8014C6E0; // type:function size:0x4 +initializeState_ModeIn__14dLytWipeMain_cFv = .text:0x8014C6F0; // type:function size:0x4 +executeState_ModeIn__14dLytWipeMain_cFv = .text:0x8014C700; // type:function size:0x40 +finalizeState_ModeIn__14dLytWipeMain_cFv = .text:0x8014C740; // type:function size:0x4 +initializeState_ModeWait__14dLytWipeMain_cFv = .text:0x8014C750; // type:function size:0x4 +executeState_ModeWait__14dLytWipeMain_cFv = .text:0x8014C760; // type:function size:0xC +finalizeState_ModeWait__14dLytWipeMain_cFv = .text:0x8014C770; // type:function size:0x4 +initializeState_ModeOut__14dLytWipeMain_cFv = .text:0x8014C780; // type:function size:0x4 +executeState_ModeOut__14dLytWipeMain_cFv = .text:0x8014C790; // type:function size:0x40 +finalizeState_ModeOut__14dLytWipeMain_cFv = .text:0x8014C7D0; // type:function size:0x4 +__ct__14dLytWipeMain_cFv = .text:0x8014C7E0; // type:function size:0xC0 +__dt__53sFStateMgr_c<14dLytWipeMain_c,20sStateMethodUsr_FI_c>Fv = .text:0x8014C8A0; // type:function size:0xA4 +__dt__83sStateMgr_c<14dLytWipeMain_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x8014C950; // type:function size:0xA0 +__dt__30sFStateFct_c<14dLytWipeMain_c>Fv = .text:0x8014C9F0; // type:function size:0x6C +__dt__27sFState_c<14dLytWipeMain_c>Fv = .text:0x8014CA60; // type:function size:0x58 +build__14dLytWipeMain_cFPQ23d2d10ResAccIf_c = .text:0x8014CAC0; // type:function size:0xF0 +remove__14dLytWipeMain_cFv = .text:0x8014CBB0; // type:function size:0x3C +gotoIn__14dLytWipeMain_cFv = .text:0x8014CBF0; // type:function size:0xBC +changeState__83sStateMgr_c<14dLytWipeMain_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>FRC12sStateIDIf_c = .text:0x8014CCB0; // type:function size:0x10 +finalizeState__83sStateMgr_c<14dLytWipeMain_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x8014CCC0; // type:function size:0x10 +gotoWait__14dLytWipeMain_cFv = .text:0x8014CCD0; // type:function size:0x58 +gotoOut__14dLytWipeMain_cFv = .text:0x8014CD30; // type:function size:0x94 +gotoNone__14dLytWipeMain_cFv = .text:0x8014CDD0; // type:function size:0x4C +execute__14dLytWipeMain_cFv = .text:0x8014CE20; // type:function size:0x7C +executeState__83sStateMgr_c<14dLytWipeMain_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x8014CEA0; // type:function size:0x10 +draw__14dLytWipeMain_cFv = .text:0x8014CEB0; // type:function size:0x28 +initializeState_None__10dLytWipe_cFv = .text:0x8014CEE0; // type:function size:0xC +executeState_None__10dLytWipe_cFv = .text:0x8014CEF0; // type:function size:0x8C +changeState__79sStateMgr_c<10dLytWipe_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>FRC12sStateIDIf_c = .text:0x8014CF80; // type:function size:0x10 +finalizeState_None__10dLytWipe_cFv = .text:0x8014CF90; // type:function size:0x4 +initializeState_In__10dLytWipe_cFv = .text:0x8014CFA0; // type:function size:0x4 +executeState_In__10dLytWipe_cFv = .text:0x8014CFB0; // type:function size:0xE0 +finalizeState_In__10dLytWipe_cFv = .text:0x8014D090; // type:function size:0x4 +initializeState_Wait__10dLytWipe_cFv = .text:0x8014D0A0; // type:function size:0x4 +executeState_Wait__10dLytWipe_cFv = .text:0x8014D0B0; // type:function size:0x74 +finalizeState_Wait__10dLytWipe_cFv = .text:0x8014D130; // type:function size:0x4 +initializeState_Out__10dLytWipe_cFv = .text:0x8014D140; // type:function size:0x4 +executeState_Out__10dLytWipe_cFv = .text:0x8014D150; // type:function size:0xFC +finalizeState_Out__10dLytWipe_cFv = .text:0x8014D250; // type:function size:0x4 +build__10dLytWipe_cFv = .text:0x8014D260; // type:function size:0x98 +remove__10dLytWipe_cFv = .text:0x8014D300; // type:function size:0x44 +execute__10dLytWipe_cFv = .text:0x8014D350; // type:function size:0x48 +executeState__79sStateMgr_c<10dLytWipe_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x8014D3A0; // type:function size:0x10 +draw__10dLytWipe_cFv = .text:0x8014D3B0; // type:function size:0xF4 +getStateID__79sStateMgr_c<10dLytWipe_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x8014D4B0; // type:function size:0x10 +__dt__14dLytWipeMain_cFv = .text:0x8014D4C0; // type:function size:0xD8 +build__30sFStateFct_c<14dLytWipeMain_c>FRC12sStateIDIf_c = .text:0x8014D5A0; // type:function size:0x60 +dispose__30sFStateFct_c<14dLytWipeMain_c>FRP10sStateIf_c = .text:0x8014D600; // type:function size:0xC +initialize__27sFState_c<14dLytWipeMain_c>Fv = .text:0x8014D610; // type:function size:0x1C +execute__27sFState_c<14dLytWipeMain_c>Fv = .text:0x8014D630; // type:function size:0x1C +finalize__27sFState_c<14dLytWipeMain_c>Fv = .text:0x8014D650; // type:function size:0x1C +initializeState__83sStateMgr_c<14dLytWipeMain_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x8014D670; // type:function size:0x10 +refreshState__83sStateMgr_c<14dLytWipeMain_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x8014D680; // type:function size:0x10 +getState__83sStateMgr_c<14dLytWipeMain_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x8014D690; // type:function size:0x10 +getNewStateID__83sStateMgr_c<14dLytWipeMain_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x8014D6A0; // type:function size:0x10 +getStateID__83sStateMgr_c<14dLytWipeMain_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x8014D6B0; // type:function size:0x10 +getOldStateID__83sStateMgr_c<14dLytWipeMain_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x8014D6C0; // type:function size:0x10 +finalizeState__29sFStateID_c<14dLytWipeMain_c>CFR14dLytWipeMain_c = .text:0x8014D6D0; // type:function size:0x30 +executeState__29sFStateID_c<14dLytWipeMain_c>CFR14dLytWipeMain_c = .text:0x8014D700; // type:function size:0x30 +initializeState__29sFStateID_c<14dLytWipeMain_c>CFR14dLytWipeMain_c = .text:0x8014D730; // type:function size:0x30 +finalizeState__25sFStateID_c<10dLytWipe_c>CFR10dLytWipe_c = .text:0x8014D760; // type:function size:0x30 +executeState__25sFStateID_c<10dLytWipe_c>CFR10dLytWipe_c = .text:0x8014D790; // type:function size:0x30 +initializeState__25sFStateID_c<10dLytWipe_c>CFR10dLytWipe_c = .text:0x8014D7C0; // type:function size:0x30 +__sinit_\d_lyt_wipe_cpp = .text:0x8014D7F0; // type:function size:0x634 scope:local +__dt__29sFStateID_c<14dLytWipeMain_c>Fv = .text:0x8014DE30; // type:function size:0x58 +__dt__25sFStateID_c<10dLytWipe_c>Fv = .text:0x8014DE90; // type:function size:0x58 +isSameName__25sFStateID_c<10dLytWipe_c>CFPCc = .text:0x8014DEF0; // type:function size:0x88 +isSameName__29sFStateID_c<14dLytWipeMain_c>CFPCc = .text:0x8014DF80; // type:function size:0x88 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 @@ -16808,10 +16808,10 @@ fn_802CD680 = .text:0x802CD680; // type:function size:0x6C fn_802CD6F0 = .text:0x802CD6F0; // type:function size:0xA0 fn_802CD790 = .text:0x802CD790; // type:function size:0xA4 fn_802CD840 = .text:0x802CD840; // type:function size:0x1BC -fn_802CDA00 = .text:0x802CDA00; // type:function size:0x58 -fn_802CDA60 = .text:0x802CDA60; // type:function size:0x6C -fn_802CDAD0 = .text:0x802CDAD0; // type:function size:0xA0 -fn_802CDB70 = .text:0x802CDB70; // type:function size:0xA4 +__dt__23sFState_c<10dLytWipe_c>Fv = .text:0x802CDA00; // type:function size:0x58 +__dt__26sFStateFct_c<10dLytWipe_c>Fv = .text:0x802CDA60; // type:function size:0x6C +__dt__79sStateMgr_c<10dLytWipe_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x802CDAD0; // type:function size:0xA0 +__dt__49sFStateMgr_c<10dLytWipe_c,20sStateMethodUsr_FI_c>Fv = .text:0x802CDB70; // type:function size:0xA4 fn_802CDC20 = .text:0x802CDC20; // type:function size:0x4 fn_802CDC30 = .text:0x802CDC30; // type:function size:0x40 fn_802CDC70 = .text:0x802CDC70; // type:function size:0x6C @@ -16854,8 +16854,8 @@ 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 -fn_802D0850 = .text:0x802D0850; // type:function size:0x60 -fn_802D08B0 = .text:0x802D08B0; // type:function size:0xC +build__26sFStateFct_c<10dLytWipe_c>FRC12sStateIDIf_c = .text:0x802D0850; // type:function size:0x60 +dispose__26sFStateFct_c<10dLytWipe_c>FRP10sStateIf_c = .text:0x802D08B0; // type:function size:0xC fn_802D08C0 = .text:0x802D08C0; // type:function size:0x60 fn_802D0920 = .text:0x802D0920; // type:function size:0xC fn_802D0930 = .text:0x802D0930; // type:function size:0x60 @@ -16869,9 +16869,9 @@ 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 -fn_802D0AC0 = .text:0x802D0AC0; // type:function size:0x1C -fn_802D0AE0 = .text:0x802D0AE0; // type:function size:0x1C -fn_802D0B00 = .text:0x802D0B00; // type:function size:0x1C +initialize__23sFState_c<10dLytWipe_c>Fv = .text:0x802D0AC0; // type:function size:0x1C +execute__23sFState_c<10dLytWipe_c>Fv = .text:0x802D0AE0; // type:function size:0x1C +finalize__23sFState_c<10dLytWipe_c>Fv = .text:0x802D0B00; // type:function size:0x1C fn_802D0B20 = .text:0x802D0B20; // type:function size:0x1C fn_802D0B40 = .text:0x802D0B40; // type:function size:0x1C fn_802D0B60 = .text:0x802D0B60; // type:function size:0x1C @@ -16897,12 +16897,12 @@ 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 -fn_802D0D10 = .text:0x802D0D10; // type:function size:0x10 -fn_802D0D20 = .text:0x802D0D20; // type:function size:0x10 -fn_802D0D30 = .text:0x802D0D30; // type:function size:0x10 -fn_802D0D40 = .text:0x802D0D40; // type:function size:0x10 -fn_802D0D50 = .text:0x802D0D50; // type:function size:0x10 -fn_802D0D60 = .text:0x802D0D60; // type:function size:0x10 +initializeState__79sStateMgr_c<10dLytWipe_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x802D0D10; // type:function size:0x10 +finalizeState__79sStateMgr_c<10dLytWipe_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x802D0D20; // type:function size:0x10 +refreshState__79sStateMgr_c<10dLytWipe_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x802D0D30; // type:function size:0x10 +getState__79sStateMgr_c<10dLytWipe_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x802D0D40; // type:function size:0x10 +getNewStateID__79sStateMgr_c<10dLytWipe_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x802D0D50; // type:function size:0x10 +getOldStateID__79sStateMgr_c<10dLytWipe_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x802D0D60; // type:function size:0x10 fn_802D0D70 = .text:0x802D0D70; // type:function size:0x10 fn_802D0D80 = .text:0x802D0D80; // type:function size:0x10 fn_802D0D90 = .text:0x802D0D90; // type:function size:0x10 @@ -32813,16 +32813,16 @@ lbl_80522CF0 = .data:0x80522CF0; // type:object size:0x14 lbl_80522D08 = .data:0x80522D08; // type:object size:0x18 lbl_80522E48 = .data:0x80522E48; // type:object size:0x34 lbl_80522E80 = .data:0x80522E80; // type:object size:0x14 data:string -lbl_80522E94 = .data:0x80522E94; // type:object size:0xC -lbl_80522EA0 = .data:0x80522EA0; // type:object size:0x10 -lbl_80522EB0 = .data:0x80522EB0; // type:object size:0xC -lbl_80522EBC = .data:0x80522EBC; // type:object size:0xC -lbl_80522EC8 = .data:0x80522EC8; // type:object size:0x30 -lbl_80522EF8 = .data:0x80522EF8; // type:object size:0x30 -lbl_80522F28 = .data:0x80522F28; // type:object size:0x18 -lbl_80522F40 = .data:0x80522F40; // type:object size:0x240 -lbl_80523180 = .data:0x80523180; // type:object size:0x34 -lbl_805231B4 = .data:0x805231B4; // type:object size:0x34 +lbl_80522E94 = .data:0x80522E94; // type:object size:0xB data:string +lbl_80522EA0 = .data:0x80522EA0; // type:object size:0xE data:string +lbl_80522EB0 = .data:0x80522EB0; // type:object size:0x9 data:string +__vt__14dLytWipeMain_c = .data:0x80522EBC; // type:object size:0xC +__vt__53sFStateMgr_c<14dLytWipeMain_c,20sStateMethodUsr_FI_c> = .data:0x80522EC8; // type:object size:0x30 +__vt__83sStateMgr_c<14dLytWipeMain_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c> = .data:0x80522EF8; // type:object size:0x30 +__vt__30sFStateFct_c<14dLytWipeMain_c> = .data:0x80522F28; // type:object size:0x14 +__vt__27sFState_c<14dLytWipeMain_c> = .data:0x80522F40; // type:object size:0x18 +__vt__25sFStateID_c<10dLytWipe_c> = .data:0x80523180; // type:object size:0x34 +__vt__29sFStateID_c<14dLytWipeMain_c> = .data:0x805231B4; // type:object size:0x34 lbl_805231E8 = .data:0x805231E8; // type:object size:0x18 lbl_80523200 = .data:0x80523200; // type:object size:0x18 lbl_80523218 = .data:0x80523218; // type:object size:0x1C @@ -35753,10 +35753,10 @@ 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 -lbl_80540650 = .data:0x80540650; // type:object size:0x30 -lbl_80540680 = .data:0x80540680; // type:object size:0x30 -lbl_805406B0 = .data:0x805406B0; // type:object size:0x18 -lbl_805406C8 = .data:0x805406C8; // type:object size:0x18 +__vt__49sFStateMgr_c<10dLytWipe_c,20sStateMethodUsr_FI_c> = .data:0x80540650; // type:object size:0x30 +__vt__79sStateMgr_c<10dLytWipe_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c> = .data:0x80540680; // type:object size:0x30 +__vt__26sFStateFct_c<10dLytWipe_c> = .data:0x805406B0; // type:object size:0x18 +__vt__23sFState_c<10dLytWipe_c> = .data:0x805406C8; // type:object size:0x18 lbl_805406E0 = .data:0x805406E0; // type:object size:0x30 lbl_80540710 = .data:0x80540710; // type:object size:0x30 lbl_80540740 = .data:0x80540740; // type:object size:0x18 @@ -38294,7 +38294,7 @@ lbl_80572868 = .sdata:0x80572868; // type:object size:0x4 data:4byte @8144 = .sdata:0x80572870; // type:object size:0x1 scope:local data:string lbl_80572878 = .sdata:0x80572878; // type:object size:0x1 lbl_8057287C = .sdata:0x8057287C; // type:object size:0x1 -lbl_80572880 = .sdata:0x80572880; // type:object size:0x8 +lbl_80572880 = .sdata:0x80572880; // type:object size:0x1 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 @@ -40114,7 +40114,7 @@ lbl_805754AC = .sbss:0x805754AC; // type:object size:0x1 data:byte 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 +sInstance__10dLytWipe_c = .sbss:0x805754C8; // type:object size:0x4 data:4byte LYT_HELP_PTR = .sbss:0x805754D0; // type:object size:0x8 data:4byte lbl_805754D8 = .sbss:0x805754D8; // type:object size:0x8 data:4byte sInstance__15dLytBirdGauge_c = .sbss:0x805754E0; // type:object size:0x4 data:4byte @@ -48991,14 +48991,14 @@ lbl_805B0A70 = .bss:0x805B0A70; // type:object size:0xC StateID_Wait__22dLytAreaCaptionParts_c = .bss:0x805B0A80; // type:object size:0x30 data:4byte StateID_Start__22dLytAreaCaptionParts_c = .bss:0x805B0AC0; // type:object size:0x30 data:4byte StateID_Out__22dLytAreaCaptionParts_c = .bss:0x805B0B00; // type:object size:0x30 data:4byte -lbl_805B0B30 = .bss:0x805B0B30; // type:object size:0x10 -LytWipe__LytWipeMain__STATE_MODE_NONE = .bss:0x805B0B40; // type:object size:0x40 data:4byte -LytWipe__LytWipeMain__STATE_MODE_IN = .bss:0x805B0B80; // type:object size:0x40 data:4byte -LytWipe__LytWipeMain__STATE_MODE_WAIT = .bss:0x805B0BC0; // type:object size:0x40 data:4byte -LytWipe__LytWipeMain__STATE_MODE_OUT = .bss:0x805B0C00; // type:object size:0x40 data:4byte -LytWipe__STATE_NONE = .bss:0x805B0C40; // type:object size:0x40 data:4byte -LytWipe__STATE_IN = .bss:0x805B0C80; // type:object size:0x40 data:4byte -LytWipe__STATE_WAIT = .bss:0x805B0CC0; // type:object size:0x40 data:4byte +lbl_805B0B30 = .bss:0x805B0B30; // type:object size:0xC +LytWipe__LytWipeMain__STATE_MODE_NONE = .bss:0x805B0B40; // type:object size:0x30 data:4byte +LytWipe__LytWipeMain__STATE_MODE_IN = .bss:0x805B0B80; // type:object size:0x30 data:4byte +LytWipe__LytWipeMain__STATE_MODE_WAIT = .bss:0x805B0BC0; // type:object size:0x30 data:4byte +LytWipe__LytWipeMain__STATE_MODE_OUT = .bss:0x805B0C00; // type:object size:0x30 data:4byte +LytWipe__STATE_NONE = .bss:0x805B0C40; // type:object size:0x30 data:4byte +LytWipe__STATE_IN = .bss:0x805B0C80; // type:object size:0x30 data:4byte +LytWipe__STATE_WAIT = .bss:0x805B0CC0; // type:object size:0x30 data:4byte LytWipe__STATE_OUT = .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 diff --git a/configure.py b/configure.py index c645ce93..75e051c5 100644 --- a/configure.py +++ b/configure.py @@ -427,7 +427,7 @@ config.libs = [ Object(Matching, "d/lyt/d_lyt_note.cpp"), Object(Matching, "d/lyt/d_lyt_battery.cpp"), Object(Matching, "d/lyt/d_lyt_area_caption.cpp"), - Object(NonMatching, "d/lyt/d_lyt_wipe.cpp"), + Object(Matching, "d/lyt/d_lyt_wipe.cpp"), Object(NonMatching, "d/lyt/d_lyt_help.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_stage.h b/include/d/d_stage.h index a722f9c4..b7901d05 100644 --- a/include/d/d_stage.h +++ b/include/d/d_stage.h @@ -8,6 +8,7 @@ #include "egg/gfx/eggPostEffectBlur.h" #include "egg/gfx/eggScreenEffectBlur.h" #include "m/m_allocator.h" +#include "m/m_fader_base.h" #include "m/m_mtx.h" #include "m/m_vec.h" #include "s/s_FPhase.h" @@ -128,6 +129,14 @@ public: return sInstance; } + bool isFadedOut() const { + return mFader.isStatus(mFaderBase_c::FADED_OUT); + } + + bool isFadedIn() const { + return mFader.isStatus(mFaderBase_c::FADED_IN); + } + u8 getCurrRoomId() const { return curr_room_id; } diff --git a/include/d/lyt/d_lyt_wipe.h b/include/d/lyt/d_lyt_wipe.h new file mode 100644 index 00000000..ec9b5677 --- /dev/null +++ b/include/d/lyt/d_lyt_wipe.h @@ -0,0 +1,74 @@ +#ifndef D_LYT_WIPE_H +#define D_LYT_WIPE_H + +#include "common.h" +#include "d/lyt/d2d.h" +#include "s/s_State.hpp" + +class dLytWipeMain_c { +public: + dLytWipeMain_c(); + virtual ~dLytWipeMain_c() {} + + bool build(d2d::ResAccIf_c *resAcc); + bool remove(); + bool execute(); + bool draw(); + + void gotoIn(); + void gotoWait(); + void gotoOut(); + void gotoNone(); + + bool isStateEndReached() const { + return mStateEndReached; + } + +private: + STATE_FUNC_DECLARE(dLytWipeMain_c, ModeNone); + STATE_FUNC_DECLARE(dLytWipeMain_c, ModeIn); + STATE_FUNC_DECLARE(dLytWipeMain_c, ModeWait); + STATE_FUNC_DECLARE(dLytWipeMain_c, ModeOut); + + STATE_MGR_DEFINE_UTIL_CHANGESTATE(dLytWipeMain_c); + + /* 0x004 */ UI_STATE_MGR_DECLARE(dLytWipeMain_c); + /* 0x040 */ d2d::LytBase_c mLyt; + /* 0x0D0 */ d2d::AnmGroup_c mAnm[1]; + /* 0x110 */ bool mStateEndReached; + /* 0x111 */ u8 _0x111[0x132 - 0x111]; + /* 0x132 */ bool mIsIn; +}; + +class dLytWipe_c { +public: + dLytWipe_c() : mStateMgr(*this, sStateID::null) {} + + bool build(); + bool remove(); + bool execute(); + bool draw(); + +private: + static dLytWipe_c *sInstance; + + STATE_FUNC_DECLARE(dLytWipe_c, None); + STATE_FUNC_DECLARE(dLytWipe_c, In); + STATE_FUNC_DECLARE(dLytWipe_c, Wait); + STATE_FUNC_DECLARE(dLytWipe_c, Out); + + /* 0x000 */ UI_STATE_MGR_DECLARE(dLytWipe_c); + /* 0x03C */ d2d::ResAccIf_c mResAcc; + /* 0x3AC */ dLytWipeMain_c mMain; + + /* 0x4E0 */ u8 _0x4E0[0x59C - 0x4E0]; + + /* 0x59C */ bool mWantsIn; + /* 0x59D */ bool mWantsOut; + /* 0x59E */ bool mIsSettled; + /* 0x59F */ bool mVisible; + /* 0x5A0 */ s32 mTransitionStage; + /* 0x5A4 */ s32 mFadeDelay; +}; + +#endif diff --git a/src/d/lyt/d_lyt_wipe.cpp b/src/d/lyt/d_lyt_wipe.cpp new file mode 100644 index 00000000..5a564dce --- /dev/null +++ b/src/d/lyt/d_lyt_wipe.cpp @@ -0,0 +1,263 @@ +#include "d/lyt/d_lyt_wipe.h" + +#include "common.h" +#include "d/d_stage.h" +#include "d/lyt/d2d.h" +#include "toBeSorted/arc_managers/layout_arc_manager.h" + +STATE_DEFINE(dLytWipeMain_c, ModeNone); +STATE_DEFINE(dLytWipeMain_c, ModeIn); +STATE_DEFINE(dLytWipeMain_c, ModeWait); +STATE_DEFINE(dLytWipeMain_c, ModeOut); + +STATE_DEFINE(dLytWipe_c, None); +STATE_DEFINE(dLytWipe_c, In); +STATE_DEFINE(dLytWipe_c, Wait); +STATE_DEFINE(dLytWipe_c, Out); + +dLytWipe_c *dLytWipe_c::sInstance; + +#define WIPE_ANIM_INOUT 0 +#define WIPE_NUM_ANIMS 1 + +void dLytWipeMain_c::initializeState_ModeNone() {} +void dLytWipeMain_c::executeState_ModeNone() { + mStateEndReached = true; +} +void dLytWipeMain_c::finalizeState_ModeNone() {} + +void dLytWipeMain_c::initializeState_ModeIn() {} +void dLytWipeMain_c::executeState_ModeIn() { + if (mAnm[WIPE_ANIM_INOUT].isStop2()) { + mStateEndReached = true; + } +} +void dLytWipeMain_c::finalizeState_ModeIn() {} + +void dLytWipeMain_c::initializeState_ModeWait() {} +void dLytWipeMain_c::executeState_ModeWait() { + mStateEndReached = true; +} +void dLytWipeMain_c::finalizeState_ModeWait() {} + +void dLytWipeMain_c::initializeState_ModeOut() {} +void dLytWipeMain_c::executeState_ModeOut() { + if (mAnm[WIPE_ANIM_INOUT].isStop2()) { + mStateEndReached = true; + } +} +void dLytWipeMain_c::finalizeState_ModeOut() {} + +dLytWipeMain_c::dLytWipeMain_c() : mStateMgr(*this, sStateID::null) {} + +static const d2d::LytBrlanMapping brlanMap[] = { + {"wipe_00_inOut.brlan", "G_inOut_00"}, +}; + +bool dLytWipeMain_c::build(d2d::ResAccIf_c *resAcc) { + mLyt.setResAcc(resAcc); + mLyt.build("wipe_00.brlyt", nullptr); + mLyt.setPriority(0); + + for (int i = 0; i < WIPE_NUM_ANIMS; i++) { + mAnm[i].init(brlanMap[i].mFile, resAcc, mLyt.getLayout(), brlanMap[i].mName); + mAnm[i].bind(false); + mAnm[i].setAnimEnable(false); + } + + mAnm[WIPE_ANIM_INOUT].setAnimEnable(true); + mAnm[WIPE_ANIM_INOUT].setFrame(0.0f); + mLyt.calc(); + mAnm[WIPE_ANIM_INOUT].setAnimEnable(false); + mIsIn = false; + return true; +} + +bool dLytWipeMain_c::remove() { + mLyt.unbindAnims(); + for (int i = 0; i < WIPE_NUM_ANIMS; i++) { + mAnm[i].remove(); + } + return true; +} + +void dLytWipeMain_c::gotoIn() { + if (!mIsIn) { + mAnm[WIPE_ANIM_INOUT].setForwardOnce(); + mAnm[WIPE_ANIM_INOUT].setAnimEnable(true); + if (mStateEndReached) { + mAnm[WIPE_ANIM_INOUT].setToStart(); + } else { + mStateMgr.finalizeState(); // ??????? + } + mStateMgr.changeState(StateID_ModeIn); + mIsIn = true; + mStateEndReached = false; + } +} + +void dLytWipeMain_c::gotoWait() { + mAnm[WIPE_ANIM_INOUT].setAnimEnable(false); + mStateMgr.changeState(StateID_ModeWait); + mStateEndReached = false; +} + +void dLytWipeMain_c::gotoOut() { + if (mIsIn) { + mAnm[WIPE_ANIM_INOUT].setBackwardsOnce(); + mAnm[WIPE_ANIM_INOUT].setAnimEnable(true); + if (mStateEndReached) { + // Nothing to do - Anim already at end + } else { + mStateMgr.finalizeState(); // ??????? + } + mStateMgr.changeState(StateID_ModeOut); + mIsIn = false; + mStateEndReached = false; + } +} + +void dLytWipeMain_c::gotoNone() { + mStateMgr.changeState(StateID_ModeNone); + mStateEndReached = false; +} + +bool dLytWipeMain_c::execute() { + mStateMgr.executeState(); + for (int i = 0; i < WIPE_NUM_ANIMS; i++) { + if (mAnm[i].isEnabled()) { + mAnm[i].play(); + } + } + mLyt.calc(); + return true; +} + +bool dLytWipeMain_c::draw() { + mLyt.addToDrawList(); + return true; +} + +void dLytWipe_c::initializeState_None() { + mWantsIn = false; +} +void dLytWipe_c::executeState_None() { + mWantsOut = false; + if (mWantsIn) { + mTransitionStage = 0; + mIsSettled = false; + // State IN fades OUT, because I guess the fader fades the scene out, + // which means Wipe is In + if (dStage_c::GetInstance()->fadeOut(2, 16)) { + mStateMgr.changeState(StateID_In); + mWantsIn = false; + mVisible = true; + } + } +} +void dLytWipe_c::finalizeState_None() {} + +void dLytWipe_c::initializeState_In() {} +void dLytWipe_c::executeState_In() { + if (mTransitionStage == 0) { + if (dStage_c::GetInstance()->isFadedOut()) { + mFadeDelay = 15; + mTransitionStage = 1; + } + } else if (mTransitionStage == 1) { + mFadeDelay--; + if (mFadeDelay == 0) { + dStage_c::GetInstance()->forceFadeIn(); + mMain.gotoIn(); + mTransitionStage = 2; + } + } else { + mTransitionStage = 3; + if (mMain.isStateEndReached()) { + mMain.gotoWait(); + mStateMgr.changeState(StateID_Wait); + mIsSettled = true; + } + } +} +void dLytWipe_c::finalizeState_In() {} + +void dLytWipe_c::initializeState_Wait() {} +void dLytWipe_c::executeState_Wait() { + mWantsIn = false; + if (mWantsOut) { + mTransitionStage = 0; + mMain.gotoOut(); + mStateMgr.changeState(StateID_Out); + mWantsOut = false; + mIsSettled = false; + } +} +void dLytWipe_c::finalizeState_Wait() {} + +void dLytWipe_c::initializeState_Out() {} +void dLytWipe_c::executeState_Out() { + if (mTransitionStage == 0) { + if (mMain.isStateEndReached()) { + dStage_c::GetInstance()->forceFadeOut(); + mFadeDelay = 15; + mTransitionStage = 1; + } + } else if (mTransitionStage == 1) { + dStage_c::GetInstance()->forceFadeOut(); + mFadeDelay--; + if (mFadeDelay == 0) { + dStage_c::GetInstance()->fadeIn(2, 16); + mMain.gotoNone(); + mTransitionStage = 2; + } + } else { + mTransitionStage = 3; + if (dStage_c::GetInstance()->isFadedIn()) { + mStateMgr.changeState(StateID_None); + mIsSettled = true; + mVisible = false; + } + } +} +void dLytWipe_c::finalizeState_Out() {} + +bool dLytWipe_c::build() { + sInstance = this; + mTransitionStage = 0; + mFadeDelay = 0; + + mWantsIn = false; + mWantsOut = false; + mIsSettled = true; + mVisible = false; + + void *data = LayoutArcManager::GetInstance()->getLoadedData("DoButton"); + mResAcc.attach(data, ""); + mMain.build(&mResAcc); + + mStateMgr.changeState(StateID_None); + return true; +} + +bool dLytWipe_c::remove() { + sInstance = nullptr; + mMain.remove(); + mResAcc.detach(); + return true; +} + +bool dLytWipe_c::execute() { + mMain.execute(); + mStateMgr.executeState(); + return true; +} + +bool dLytWipe_c::draw() { + if (mVisible && + ((mTransitionStage && (*mStateMgr.getStateID() == StateID_In || *mStateMgr.getStateID() == StateID_Wait)) || + (*mStateMgr.getStateID() == StateID_Out && mTransitionStage < 2))) { + mMain.draw(); + } + return true; +}