diff --git a/config/SOUE01/splits.txt b/config/SOUE01/splits.txt index e7007cce..ca1dc282 100644 --- a/config/SOUE01/splits.txt +++ b/config/SOUE01/splits.txt @@ -196,6 +196,15 @@ toBeSorted/lyt/pause_disp_00.cpp: .ctors start:0x804DB798 end:0x804DB79C .data start:0x80525138 end:0x80525EE0 +toBeSorted/lyt/common_arrow.cpp: + .text start:0x80167FE0 end:0x801695E8 + .ctors start:0x804DB7AC end:0x804DB7B0 + .rodata start:0x804E8D28 end:0x804E8D70 + .data start:0x80527298 end:0x80527600 + .sdata start:0x805729D0 end:0x805729D8 + .sdata2 start:0x8057A180 end:0x8057A188 + .bss start:0x805B1CB0 end:0x805B1DB0 + toBeSorted/counters/counter.cpp: .text start:0x8016CC40 end:0x8016CD94 diff --git a/config/SOUE01/symbols.txt b/config/SOUE01/symbols.txt index ed075bbb..f3bfa3bc 100644 --- a/config/SOUE01/symbols.txt +++ b/config/SOUE01/symbols.txt @@ -453,7 +453,7 @@ fn_80011EC0 = .text:0x80011EC0; // type:function size:0xA0 fn_80011F60 = .text:0x80011F60; // type:function size:0x6C fn_80011FD0 = .text:0x80011FD0; // type:function size:0x58 fn_80012030 = .text:0x80012030; // type:function size:0x40 -fn_80012070 = .text:0x80012070; // type:function size:0x40 +__dt__Q23d2d11dLytStructCFv = .text:0x80012070; // type:function size:0x40 fn_800120B0 = .text:0x800120B0; // type:function size:0x74 __dt__Q34nw4r3lyt11FontRefLinkFv = .text:0x80012130; // type:function size:0x40 fn_80012170 = .text:0x80012170; // type:function size:0xA4 @@ -2865,20 +2865,20 @@ fn_80065600 = .text:0x80065600; // type:function size:0x3C fn_80065640 = .text:0x80065640; // type:function size:0x164 fn_800657B0 = .text:0x800657B0; // type:function size:0x58 fn_80065810 = .text:0x80065810; // type:function size:0x60 -fn_80065870 = .text:0x80065870; // type:function size:0x110 -fn_80065980 = .text:0x80065980; // type:function size:0xA4 +append__Q23d2d11dLytStructDFPQ23d2d11dLytStructD = .text:0x80065870; // type:function size:0x110 +detach__Q23d2d11dLytStructDFPQ23d2d11dLytStructD = .text:0x80065980; // type:function size:0xA4 fn_80065A30 = .text:0x80065A30; // type:function size:0x34 fn_80065A70 = .text:0x80065A70; // type:function size:0x38 fn_80065AB0 = .text:0x80065AB0; // type:function size:0x78 fn_80065B30 = .text:0x80065B30; // type:function size:0x4C fn_80065B80 = .text:0x80065B80; // type:function size:0x174 fn_80065D00 = .text:0x80065D00; // type:function size:0x14 -fn_80065D20 = .text:0x80065D20; // type:function size:0x74 +__dt__Q23d2d11dLytStructDFv = .text:0x80065D20; // type:function size:0x74 fn_80065DA0 = .text:0x80065DA0; // type:function size:0x40 fn_80065DE0 = .text:0x80065DE0; // type:function size:0x90 -fn_80065E70 = .text:0x80065E70; // type:function size:0xC4 +fn_80065E70__Q23d2d11dLytStructDFPQ34nw4r3lyt4Panelll = .text:0x80065E70; // type:function size:0xC4 fn_80065F40 = .text:0x80065F40; // type:function size:0x28 -fn_80065F70 = .text:0x80065F70; // type:function size:0x328 +fn_80065F70__Q23d2d11dLytStructDFv = .text:0x80065F70; // type:function size:0x328 fn_800662A0 = .text:0x800662A0; // type:function size:0xD4 GetRuntimeTypeInfo__Q34nw4r3lyt4PaneCFv = .text:0x80066380; // type:function size:0x8 scope:weak fn_80066390 = .text:0x80066390; // type:function size:0xE8 @@ -3723,8 +3723,8 @@ fn_800A9AB0 = .text:0x800A9AB0; // type:function size:0x50 fn_800A9B00 = .text:0x800A9B00; // type:function size:0xC4 fn_800A9BD0 = .text:0x800A9BD0; // type:function size:0x78 fn_800A9C50 = .text:0x800A9C50; // type:function size:0xD4 -fn_800A9D30__20dLytFontRefAndAccessFv = .text:0x800A9D30; // type:function size:0x60 -fn_800A9D90__20dLytFontRefAndAccessFPvPCc = .text:0x800A9D90; // type:function size:0x90 +fn_800A9D30__Q23d2d10ResAccIf_cFv = .text:0x800A9D30; // type:function size:0x60 +fn_800A9D90__Q23d2d10ResAccIf_cFPvPCc = .text:0x800A9D90; // type:function size:0x90 fn_800A9E20 = .text:0x800A9E20; // type:function size:0x12C fn_800A9F50 = .text:0x800A9F50; // type:function size:0x60 fn_800A9FB0 = .text:0x800A9FB0; // type:function size:0x60 @@ -3745,7 +3745,7 @@ fn_800AA780 = .text:0x800AA780; // type:function size:0x178 fn_800AA900 = .text:0x800AA900; // type:function size:0x108 fn_800AAA10 = .text:0x800AAA10; // type:function size:0x18 fn_800AAA30 = .text:0x800AAA30; // type:function size:0x94 -fn_800AAAD0 = .text:0x800AAAD0; // type:function size:0x94 +fn_800AAAD0__Q23d2d9LytBase_cFPCc = .text:0x800AAAD0; // type:function size:0x94 fn_800AAB70__Q23d2d9LytBase_cFv = .text:0x800AAB70; // type:function size:0x10 __ct__Q23d2d9LytBase_cFv = .text:0x800AAB80; // type:function size:0x44 __dt__Q23d2d7Multi_cFv = .text:0x800AABD0; // type:function size:0x78 @@ -3774,9 +3774,9 @@ fn_800AC500 = .text:0x800AC500; // type:function size:0x8 init__Q23d2d11dLytStructAFPCcPQ23m2d10ResAccIf_cPQ23d2d8Layout_cPCc = .text:0x800AC510; // type:function size:0x9C fn_800AC5B0 = .text:0x800AC5B0; // type:function size:0x114 fn_800AC6D0__Q23d2d11dLytStructAFb = .text:0x800AC6D0; // type:function size:0xF8 -fn_800AC7D0 = .text:0x800AC7D0; // type:function size:0x88 +fn_800AC7D0__Q23d2d11dLytStructAFv = .text:0x800AC7D0; // type:function size:0x88 fn_800AC860__Q23d2d11dLytStructAFv = .text:0x800AC860; // type:function size:0x8 -fn_800AC780__Q23d2d11dLytStructAFb = .text:0x800AC870; // type:function size:0x8C +fn_800AC870__Q23d2d11dLytStructAFb = .text:0x800AC870; // type:function size:0x8C fn_800AC900 = .text:0x800AC900; // type:function size:0xC fn_800AC910__Q23d2d11dLytStructAFv = .text:0x800AC910; // type:function size:0xC fn_800AC920 = .text:0x800AC920; // type:function size:0x14 @@ -4529,7 +4529,7 @@ fn_800CB0C0 = .text:0x800CB0C0; // type:function size:0xA4 fn_800CB170 = .text:0x800CB170; // type:function size:0xA8 fn_800CB220 = .text:0x800CB220; // type:function size:0x10C fn_800CB330 = .text:0x800CB330; // type:function size:0x1C8 -fn_800CB500 = .text:0x800CB500; // type:function size:0x168 +__dt__Q23d2d11dLytStructBFv = .text:0x800CB500; // type:function size:0x168 fn_800CB670 = .text:0x800CB670; // type:function size:0x84 fn_800CB700 = .text:0x800CB700; // type:function size:0x84 fn_800CB790 = .text:0x800CB790; // type:function size:0x84 @@ -4599,9 +4599,9 @@ fn_800CDD40 = .text:0x800CDD40; // type:function size:0x58 fn_800CDDA0 = .text:0x800CDDA0; // type:function size:0x6C fn_800CDE10 = .text:0x800CDE10; // type:function size:0xA0 fn_800CDEB0 = .text:0x800CDEB0; // type:function size:0xA4 -fn_800CDF60 = .text:0x800CDF60; // type:function size:0x258 +__ct__Q23d2d11dLytStructBFv = .text:0x800CDF60; // type:function size:0x258 fn_800CE1C0 = .text:0x800CE1C0; // type:function size:0x18 -fn_800CE1E0 = .text:0x800CE1E0; // type:function size:0x10 +__ct__Q23d2d11dLytStructCFv = .text:0x800CE1E0; // type:function size:0x10 fn_800CE1F0 = .text:0x800CE1F0; // type:function size:0x1BC fn_800CE3B0 = .text:0x800CE3B0; // type:function size:0x218 fn_800CE5D0 = .text:0x800CE5D0; // type:function size:0x98 @@ -9196,57 +9196,57 @@ fn_80167E70 = .text:0x80167E70; // type:function size:0x44 fn_80167EC0 = .text:0x80167EC0; // type:function size:0x10 fn_80167ED0 = .text:0x80167ED0; // type:function size:0x88 fn_80167F60 = .text:0x80167F60; // type:function size:0x74 -fn_80167FE0 = .text:0x80167FE0; // type:function size:0x148 -fn_80168130 = .text:0x80168130; // type:function size:0xA4 -fn_801681E0 = .text:0x801681E0; // type:function size:0xA0 -fn_80168280 = .text:0x80168280; // type:function size:0x6C -fn_801682F0 = .text:0x801682F0; // type:function size:0x58 -fn_80168350 = .text:0x80168350; // type:function size:0x124 -fn_80168480 = .text:0x80168480; // type:function size:0x10 -fn_80168490 = .text:0x80168490; // type:function size:0x68 -fn_80168500 = .text:0x80168500; // type:function size:0xB0 -fn_801685B0 = .text:0x801685B0; // type:function size:0x10 -fn_801685C0 = .text:0x801685C0; // type:function size:0x10 -fn_801685D0 = .text:0x801685D0; // type:function size:0x34 -fn_80168610 = .text:0x80168610; // type:function size:0x24 -fn_80168640 = .text:0x80168640; // type:function size:0x34 -fn_80168680 = .text:0x80168680; // type:function size:0x70 -fn_801686F0 = .text:0x801686F0; // type:function size:0x70 -fn_80168760 = .text:0x80168760; // type:function size:0x2C -fn_80168790 = .text:0x80168790; // type:function size:0x68 -fn_80168800 = .text:0x80168800; // type:function size:0x10 -fn_80168810 = .text:0x80168810; // type:function size:0x64 -fn_80168880 = .text:0x80168880; // type:function size:0xC4 -fn_80168950 = .text:0x80168950; // type:function size:0x74 -fn_801689D0 = .text:0x801689D0; // type:function size:0x28 -fn_80168A00 = .text:0x80168A00; // type:function size:0x14 -fn_80168A20 = .text:0x80168A20; // type:function size:0x88 -fn_80168AB0 = .text:0x80168AB0; // type:function size:0xB4 -fn_80168B70 = .text:0x80168B70; // type:function size:0x8 -fn_80168B80 = .text:0x80168B80; // type:function size:0xC -fn_80168B90 = .text:0x80168B90; // type:function size:0x238 -fn_80168DD0 = .text:0x80168DD0; // type:function size:0x4 -fn_80168DE0 = .text:0x80168DE0; // type:function size:0x48 -fn_80168E30 = .text:0x80168E30; // type:function size:0xA4 -fn_80168EE0 = .text:0x80168EE0; // type:function size:0x4 -fn_80168EF0 = .text:0x80168EF0; // type:function size:0x110 -fn_80169000 = .text:0x80169000; // type:function size:0x60 -fn_80169060 = .text:0x80169060; // type:function size:0xC -fn_80169070 = .text:0x80169070; // type:function size:0x1C -fn_80169090 = .text:0x80169090; // type:function size:0x1C -fn_801690B0 = .text:0x801690B0; // type:function size:0x1C -fn_801690D0 = .text:0x801690D0; // type:function size:0x10 -fn_801690E0 = .text:0x801690E0; // type:function size:0x10 -fn_801690F0 = .text:0x801690F0; // type:function size:0x10 -fn_80169100 = .text:0x80169100; // type:function size:0x10 -fn_80169110 = .text:0x80169110; // type:function size:0x10 -fn_80169120 = .text:0x80169120; // type:function size:0x10 -fn_80169130 = .text:0x80169130; // type:function size:0x30 -fn_80169160 = .text:0x80169160; // type:function size:0x30 -fn_80169190 = .text:0x80169190; // type:function size:0x30 -fn_801691C0 = .text:0x801691C0; // type:function size:0x338 -fn_80169500 = .text:0x80169500; // type:function size:0x58 -fn_80169560 = .text:0x80169560; // type:function size:0x88 +__ct__17dLytCommonArrow_cFv = .text:0x80167FE0; // type:function size:0x148 +__dt__56sFStateMgr_c<17dLytCommonArrow_c,20sStateMethodUsr_FI_c>Fv = .text:0x80168130; // type:function size:0xA4 +__dt__86sStateMgr_c<17dLytCommonArrow_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x801681E0; // type:function size:0xA0 +__dt__33sFStateFct_c<17dLytCommonArrow_c>Fv = .text:0x80168280; // type:function size:0x6C +__dt__30sFState_c<17dLytCommonArrow_c>Fv = .text:0x801682F0; // type:function size:0x58 +init__17dLytCommonArrow_cFv = .text:0x80168350; // type:function size:0x124 +changeState__86sStateMgr_c<17dLytCommonArrow_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>FRC12sStateIDIf_c = .text:0x80168480; // type:function size:0x10 +fn_80168490__17dLytCommonArrow_cFv = .text:0x80168490; // type:function size:0x68 +fn_80168500__17dLytCommonArrow_cFv = .text:0x80168500; // type:function size:0xB0 +executeState__86sStateMgr_c<17dLytCommonArrow_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x801685B0; // type:function size:0x10 +getStateID__86sStateMgr_c<17dLytCommonArrow_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x801685C0; // type:function size:0x10 +addToDrawList__17dLytCommonArrow_cFv = .text:0x801685D0; // type:function size:0x34 +setState__17dLytCommonArrow_cFl = .text:0x80168610; // type:function size:0x24 +fn_80168640__17dLytCommonArrow_cFPf = .text:0x80168640; // type:function size:0x34 +fn_80168680__17dLytCommonArrow_cFv = .text:0x80168680; // type:function size:0x70 +fn_801686F0__17dLytCommonArrow_cFv = .text:0x801686F0; // type:function size:0x70 +fn_80168760__17dLytCommonArrow_cFv = .text:0x80168760; // type:function size:0x2C +fn_80168790__17dLytCommonArrow_cFlf = .text:0x80168790; // type:function size:0x68 +fn_80168800__17dLytCommonArrow_cFl = .text:0x80168800; // type:function size:0x10 +fn_80168810__17dLytCommonArrow_cFPQ23d2d11dLytStructA = .text:0x80168810; // type:function size:0x64 +fn_80168880__17dLytCommonArrow_cFv = .text:0x80168880; // type:function size:0xC4 +initializeState_None__17dLytCommonArrow_cFv = .text:0x80168950; // type:function size:0x74 +executeState_None__17dLytCommonArrow_cFv = .text:0x801689D0; // type:function size:0x28 +finalizeState_None__17dLytCommonArrow_cFv = .text:0x80168A00; // type:function size:0x14 +initializeState_In__17dLytCommonArrow_cFv = .text:0x80168A20; // type:function size:0x88 +executeState_In__17dLytCommonArrow_cFv = .text:0x80168AB0; // type:function size:0xB4 +finalizeState_In__17dLytCommonArrow_cFv = .text:0x80168B70; // type:function size:0x8 +initializeState_Wait__17dLytCommonArrow_cFv = .text:0x80168B80; // type:function size:0xC +executeState_Wait__17dLytCommonArrow_cFv = .text:0x80168B90; // type:function size:0x238 +finalizeState_Wait__17dLytCommonArrow_cFv = .text:0x80168DD0; // type:function size:0x4 +initializeState_Out__17dLytCommonArrow_cFv = .text:0x80168DE0; // type:function size:0x48 +executeState_Out__17dLytCommonArrow_cFv = .text:0x80168E30; // type:function size:0xA4 +finalizeState_Out__17dLytCommonArrow_cFv = .text:0x80168EE0; // type:function size:0x4 +__dt__17dLytCommonArrow_cFv = .text:0x80168EF0; // type:function size:0x110 +build__33sFStateFct_c<17dLytCommonArrow_c>FRC12sStateIDIf_c = .text:0x80169000; // type:function size:0x60 +dispose__33sFStateFct_c<17dLytCommonArrow_c>FRP10sStateIf_c = .text:0x80169060; // type:function size:0xC +initialize__30sFState_c<17dLytCommonArrow_c>Fv = .text:0x80169070; // type:function size:0x1C +execute__30sFState_c<17dLytCommonArrow_c>Fv = .text:0x80169090; // type:function size:0x1C +finalize__30sFState_c<17dLytCommonArrow_c>Fv = .text:0x801690B0; // type:function size:0x1C +initializeState__86sStateMgr_c<17dLytCommonArrow_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x801690D0; // type:function size:0x10 +finalizeState__86sStateMgr_c<17dLytCommonArrow_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x801690E0; // type:function size:0x10 +refreshState__86sStateMgr_c<17dLytCommonArrow_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x801690F0; // type:function size:0x10 +getState__86sStateMgr_c<17dLytCommonArrow_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x80169100; // type:function size:0x10 +getNewStateID__86sStateMgr_c<17dLytCommonArrow_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x80169110; // type:function size:0x10 +getOldStateID__86sStateMgr_c<17dLytCommonArrow_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x80169120; // type:function size:0x10 +finalizeState__32sFStateID_c<17dLytCommonArrow_c>CFR17dLytCommonArrow_c = .text:0x80169130; // type:function size:0x30 +executeState__32sFStateID_c<17dLytCommonArrow_c>CFR17dLytCommonArrow_c = .text:0x80169160; // type:function size:0x30 +initializeState__32sFStateID_c<17dLytCommonArrow_c>CFR17dLytCommonArrow_c = .text:0x80169190; // type:function size:0x30 +__sinit_\common_arrow_cpp = .text:0x801691C0; // type:function size:0x338 scope:local +__dt__32sFStateID_c<17dLytCommonArrow_c>Fv = .text:0x80169500; // type:function size:0x58 +isSameName__32sFStateID_c<17dLytCommonArrow_c>CFPCc = .text:0x80169560; // type:function size:0x88 fn_801695F0 = .text:0x801695F0; // type:function size:0x110 fn_80169700 = .text:0x80169700; // type:function size:0xF4 fn_80169800 = .text:0x80169800; // type:function size:0x10 @@ -30777,7 +30777,7 @@ lbl_8050DF28 = .data:0x8050DF28; // type:object size:0x14 lbl_8050DF3C = .data:0x8050DF3C; // type:object size:0x14 lbl_8050DF50 = .data:0x8050DF50; // type:object size:0x10 lbl_8050DF60 = .data:0x8050DF60; // type:object size:0x10 -lbl_8050DF70 = .data:0x8050DF70; // type:object size:0x14 +__vt__Q23d2d11dLytStructD = .data:0x8050DF70; // type:object size:0x14 lbl_8050DF84 = .data:0x8050DF84; // type:object size:0xC lbl_8050DF90 = .data:0x8050DF90; // type:object size:0x10 lbl_8050DFA0 = .data:0x8050DFA0; // type:object size:0x10 @@ -30987,7 +30987,7 @@ lbl_80510780 = .data:0x80510780; // type:object size:0xC lbl_8051078C = .data:0x8051078C; // type:object size:0xC lbl_80510798 = .data:0x80510798; // type:object size:0x88 lbl_80510820 = .data:0x80510820; // type:object size:0x90 -__vt__20dLytFontRefAndAccess = .data:0x805108B0; // type:object size:0x18 +__vt__Q23d2d10ResAccIf_c = .data:0x805108B0; // type:object size:0x18 lbl_805108C8 = .data:0x805108C8; // type:object size:0x10 lbl_805108D8 = .data:0x805108D8; // type:object size:0x10 lbl_805108E8 = .data:0x805108E8; // type:object size:0x10 @@ -33114,11 +33114,11 @@ lbl_80525A18 = .data:0x80525A18; // type:object size:0x10 data:string jumptable_80525A28 = .data:0x80525A28; // type:object size:0x20 scope:local lbl_80525A48 = .data:0x80525A48; // type:object size:0x10 jumptable_80525A58 = .data:0x80525A58; // type:object size:0x54 scope:local -lbl_80525AD4 = .data:0x80525AD4; // type:object size:0xC -lbl_80525AE0 = .data:0x80525AE0; // type:object size:0x30 -lbl_80525B10 = .data:0x80525B10; // type:object size:0x30 -lbl_80525B40 = .data:0x80525B40; // type:object size:0x18 -lbl_80525B58 = .data:0x80525B58; // type:object size:0x354 +__vt__17dLytPauseDisp00_c = .data:0x80525AD4; // type:object size:0xC +__vt__56sFStateMgr_c<17dLytPauseDisp00_c,20sStateMethodUsr_FI_c> = .data:0x80525AE0; // type:object size:0x30 +__vt__86sStateMgr_c<17dLytPauseDisp00_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c> = .data:0x80525B10; // type:object size:0x30 +__vt__33sFStateFct_c<17dLytPauseDisp00_c> = .data:0x80525B40; // type:object size:0x18 +__vt__30sFState_c<17dLytPauseDisp00_c> = .data:0x80525B58; // type:object size:0x354 lbl_80525EAC = .data:0x80525EAC; // type:object size:0x34 lbl_80525EE0 = .data:0x80525EE0; // type:object size:0x14 lbl_80525EF4 = .data:0x80525EF4; // type:object size:0xC @@ -33260,12 +33260,12 @@ lbl_80527340 = .data:0x80527340; // type:object size:0x1C data:string lbl_8052735C = .data:0x8052735C; // type:object size:0x1C lbl_80527378 = .data:0x80527378; // type:object size:0xC lbl_80527384 = .data:0x80527384; // type:object size:0x58 -lbl_805273DC = .data:0x805273DC; // type:object size:0xC -lbl_805273E8 = .data:0x805273E8; // type:object size:0x30 -lbl_80527418 = .data:0x80527418; // type:object size:0x30 -lbl_80527448 = .data:0x80527448; // type:object size:0x18 -lbl_80527460 = .data:0x80527460; // type:object size:0x168 -lbl_805275C8 = .data:0x805275C8; // type:object size:0x38 +__vt__17dLytCommonArrow_c = .data:0x805273DC; // type:object size:0xC +__vt__56sFStateMgr_c<17dLytCommonArrow_c,20sStateMethodUsr_FI_c> = .data:0x805273E8; // type:object size:0x30 +__vt__86sStateMgr_c<17dLytCommonArrow_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c> = .data:0x80527418; // type:object size:0x30 +__vt__33sFStateFct_c<17dLytCommonArrow_c> = .data:0x80527448; // type:object size:0x14 +__vt__30sFState_c<17dLytCommonArrow_c> = .data:0x80527460; // type:object size:0x18 +__vt__32sFStateID_c<17dLytCommonArrow_c> = .data:0x805275C8; // type:object size:0x34 lbl_80527600 = .data:0x80527600; // type:object size:0x18 data:string lbl_80527618 = .data:0x80527618; // type:object size:0xC lbl_80527624 = .data:0x80527624; // type:object size:0x1C @@ -48723,10 +48723,10 @@ lbl_805B1C00 = .bss:0x805B1C00; // type:object size:0x40 data:4byte lbl_805B1C40 = .bss:0x805B1C40; // type:object size:0x40 data:4byte lbl_805B1C80 = .bss:0x805B1C80; // type:object size:0x30 data:4byte lbl_805B1CB0 = .bss:0x805B1CB0; // type:object size:0x10 -lbl_805B1CC0 = .bss:0x805B1CC0; // type:object size:0x40 data:4byte -lbl_805B1D00 = .bss:0x805B1D00; // type:object size:0x40 data:4byte -lbl_805B1D40 = .bss:0x805B1D40; // type:object size:0x40 data:4byte -lbl_805B1D80 = .bss:0x805B1D80; // type:object size:0x30 data:4byte +StateID_None__17dLytCommonArrow_c = .bss:0x805B1CC0; // type:object size:0x30 data:4byte +StateID_In__17dLytCommonArrow_c = .bss:0x805B1D00; // type:object size:0x30 data:4byte +StateID_Wait__17dLytCommonArrow_c = .bss:0x805B1D40; // type:object size:0x30 data:4byte +StateID_Out__17dLytCommonArrow_c = .bss:0x805B1D80; // type:object size:0x30 data:4byte lbl_805B1DB0 = .bss:0x805B1DB0; // type:object size:0x10 lbl_805B1DC0 = .bss:0x805B1DC0; // type:object size:0x40 data:4byte lbl_805B1E00 = .bss:0x805B1E00; // type:object size:0x40 data:4byte diff --git a/configure.py b/configure.py index 38c5716c..0a4fd036 100644 --- a/configure.py +++ b/configure.py @@ -344,6 +344,7 @@ def nw4rLib(lib_name, objects, extra_cflags=[]): Object(Matching, "toBeSorted/counters/extra_wallet_counter.cpp"), Object(NonMatching, "toBeSorted/lyt/d2d.cpp"), Object(Matching, "toBeSorted/lyt/d_lyt_fader.cpp"), + Object(NonMatching, "toBeSorted/lyt/common_arrow.cpp"), Object(NonMatching, "toBeSorted/lyt/pause_disp_00.cpp"), Object(NonMatching, "toBeSorted/file_manager.cpp"), Object(NonMatching, "toBeSorted/save_manager.cpp"), diff --git a/include/m/m2d.h b/include/m/m2d.h index a2c40b67..20ad886f 100644 --- a/include/m/m2d.h +++ b/include/m/m2d.h @@ -58,7 +58,7 @@ class FrameCtrl_c { f32 getEndFrame() const; f32 getEndFrame2() const; - inline f32 getFrame() { + inline f32 getFrame() const { return mCurrFrame; } @@ -66,7 +66,7 @@ class FrameCtrl_c { setFrame(0.0f); } - inline bool isEndReached() { + inline bool isEndReached() const { f32 actualEnd = mEndFrame - 1.0f; return mCurrFrame >= actualEnd; } @@ -84,11 +84,11 @@ class FrameCtrl_c { return (mFlags & FLAG_BACKWARDS) != 0; } - f32 mEndFrame; - f32 mCurrFrame; - f32 mPrevFrame; - f32 mRate; - u8 mFlags; + /* 0x04 */ f32 mEndFrame; + /* 0x08 */ f32 mCurrFrame; + /* 0x0C */ f32 mPrevFrame; + /* 0x10 */ f32 mRate; + /* 0x14 */ u8 mFlags; }; class Anm_c { diff --git a/include/nw4r/lyt/lyt_pane.h b/include/nw4r/lyt/lyt_pane.h index 20c38ed3..32532e1f 100644 --- a/include/nw4r/lyt/lyt_pane.h +++ b/include/nw4r/lyt/lyt_pane.h @@ -50,6 +50,10 @@ class Pane : detail::PaneBase { return &mAnimList; } + void SetTranslate(const nw4r::math::VEC3 &value) { + mTranslate = value; + } + const math::MTX34 &GetGlobalMtx() const { return mGlbMtx; } diff --git a/include/s/s_StateInterfaces.hpp b/include/s/s_StateInterfaces.hpp index 92101b2c..10b9986e 100644 --- a/include/s/s_StateInterfaces.hpp +++ b/include/s/s_StateInterfaces.hpp @@ -1,6 +1,8 @@ #ifndef S_STATEINTERFACES_H #define S_STATEINTERFACES_H +#include + // Note: Ported from https://github.com/NSMBW-Community/NSMBW-Decomp/tree/master/include/dol/sLib // See include/s/README.txt for changes made diff --git a/include/toBeSorted/lyt/common_arrow.h b/include/toBeSorted/lyt/common_arrow.h new file mode 100644 index 00000000..24349f74 --- /dev/null +++ b/include/toBeSorted/lyt/common_arrow.h @@ -0,0 +1,58 @@ +#ifndef D_LYT_COMMON_ARROW_H +#define D_LYT_COMMON_ARROW_H + +#include +#include +#include + + +class dLytCommonArrow_c { +public: + dLytCommonArrow_c(); + virtual ~dLytCommonArrow_c() {} + + bool init(); + + STATE_FUNC_DECLARE(dLytCommonArrow_c, None); + STATE_FUNC_DECLARE(dLytCommonArrow_c, In); + STATE_FUNC_DECLARE(dLytCommonArrow_c, Wait); + STATE_FUNC_DECLARE(dLytCommonArrow_c, Out); + + void setState(s32 state); + bool addToDrawList(); + + bool fn_80168490(); + bool fn_80168500(); + void fn_80168640(f32 *); + bool fn_80168680(); + bool fn_801686F0(); + bool fn_80168760(); + void fn_80168790(s32, f32); + void fn_80168800(s32); + void fn_80168810(d2d::dLytStructA *); + void fn_80168880(); + +private: + + STATE_MGR_DECLARE(dLytCommonArrow_c); + /* 0x40 */ d2d::LytBase_c mLytBase; + d2d::ResAccIf_c mResAcc; + d2d::dLytStructA field_0x440[0x9]; + d2d::dLytStructD field_0x680; + void *field_0x6A8; + void *field_0x6AC; + s32 field_0x6B0; + s32 field_0x6B4; + s32 field_0x6B8; + s32 field_0x6BC; + s32 field_0x6C0; + s32 field_0x6C4; + u8 field_0x6C8; + u8 field_0x6C9; + u8 field_0x6CA; + u8 field_0x6CB; + u8 field_0x6CC; +}; + + +#endif diff --git a/include/toBeSorted/lyt/d2d.h b/include/toBeSorted/lyt/d2d.h index 94dc3e31..bbd65dbb 100644 --- a/include/toBeSorted/lyt/d2d.h +++ b/include/toBeSorted/lyt/d2d.h @@ -6,6 +6,14 @@ namespace d2d { +class ResAccIf_c : public m2d::ResAccIf_c { +public: + /* 0xB4 */ nw4r::lyt::FontRefLink mFontRefLinks[5]; + + void fn_800A9D30(); + void fn_800A9D90(void *data, const char *name); +}; + struct LytBrlanMapping { const char *mFile; const char *mName; @@ -51,7 +59,9 @@ class LytBase_c : public Multi_c { public: LytBase_c(); virtual ~LytBase_c(); - virtual void draw() override; + virtual void draw() override { + mLayout.Draw(mDrawInfo); + }; LytBase_c *fn_800AAAD0(const char *name); void fn_800AAB70(); @@ -67,11 +77,18 @@ struct dLytStructA { void init(const char *fileName, m2d::ResAccIf_c* acc, d2d::Layout_c *layout, const char *animName); void fn_800AC6D0(bool); - void fn_800AC780(bool); + void fn_800AC7D0(); void fn_800AC860(); void fn_800AC870(bool); void fn_800AC910(); + inline void setFrame(f32 frame) { + fn_800AC6D0(false); + fn_800AC870(true); + mpFrameCtrl->setFrame(frame); + fn_800AC910(); + } + u8 field_0x00[0x08 - 0x00]; /* 0x08 */ m2d::FrameCtrl_c *mpFrameCtrl; @@ -111,8 +128,13 @@ struct dLytStructD_Base { struct dLytStructD : dLytStructD_Base { dLytStructD() : field_0x18(0), field_0x1C(0), field_0x20(0), field_0x22(0), field_0x23(0), field_0x24(0) {} + virtual ~dLytStructD(); + void init(nw4r::lyt::Pane*, u16, u8, u8); void append(dLytStructD *other); + void detach(dLytStructD *other); + void fn_80065E70(nw4r::lyt::Pane*, s32, s32, s32); + void fn_80065F70(); u32 field_0x18; u32 field_0x1C; diff --git a/include/toBeSorted/lyt/d_lyt_fader.h b/include/toBeSorted/lyt/d_lyt_fader.h index fc9e18ac..8d54ea86 100644 --- a/include/toBeSorted/lyt/d_lyt_fader.h +++ b/include/toBeSorted/lyt/d_lyt_fader.h @@ -4,14 +4,6 @@ #include #include -class dLytFontRefAndAccess : public m2d::ResAccIf_c { -public: - /* 0xB4 */ nw4r::lyt::FontRefLink mFontRefLinks[5]; - - void fn_800A9D30(); - void fn_800A9D90(void *data, const char *name); -}; - class dLytFader_c : public mFaderBase_c { public: dLytFader_c(const mColor &color, EStatus status); @@ -32,7 +24,7 @@ class dLytFader_c : public mFaderBase_c { void fn_80175B10(); void fn_80175BC0(s32); - /* 0x014 */ dLytFontRefAndAccess mFont; + /* 0x014 */ d2d::ResAccIf_c mFont; /* 0x384 */ d2d::LytBase_c mLytBase; /* 0x414 */ d2d::dLytStructA mLytStructAs[3]; /* 0x4D4 */ s32 field_0x4D4; diff --git a/src/toBeSorted/lyt/common_arrow.cpp b/src/toBeSorted/lyt/common_arrow.cpp new file mode 100644 index 00000000..0791490f --- /dev/null +++ b/src/toBeSorted/lyt/common_arrow.cpp @@ -0,0 +1,240 @@ +#include +#include + +STATE_DEFINE(dLytCommonArrow_c, None); +STATE_DEFINE(dLytCommonArrow_c, In); +STATE_DEFINE(dLytCommonArrow_c, Wait); +STATE_DEFINE(dLytCommonArrow_c, Out); + +f32 arrow_fs[0x20]; + +static const d2d::LytBrlanMapping brlanMap[] = { + {"commonArrow_00_in.brlan", "G_inOut_00"}, + {"commonArrow_00_loop.brlan", "G_loop_00"}, + {"commonArrow_00_type.brlan", "G_type_00"}, + {"commonArrow_00_onOff.brlan", "G_arrowL_00"}, + {"commonArrow_00_onOff.brlan", "G_arrowR_00"}, + {"commonArrow_00_decide.brlan", "G_arrowL_00"}, + {"commonArrow_00_decide.brlan", "G_arrowR_00"}, + {"commonArrow_00_input.brlan", "G_input_00"}, + {"commonArrow_00_out.brlan", "G_inOut_00"}, +}; + +dLytCommonArrow_c::dLytCommonArrow_c() : mStateMgr(*this, sStateID::null) {} + +extern "C" d2d::dLytStructD *lbl_80575260; + +bool dLytCommonArrow_c::init() { + void *data = LayoutArcManager::sInstance->getLoadedData("CommonArrow"); + mResAcc.fn_800A9D90(data, ""); + mLytBase.build("commonArrow_00.brlyt", &mResAcc); + mLytBase.mPriority = 0x86; + + for (int i = 0; i < 9; i++) { + field_0x440[i].init(brlanMap[i].mFile, &mResAcc, mLytBase.getLayout(), brlanMap[i].mName); + } + field_0x680.fn_80065E70(mLytBase.getLayout()->GetRootPane(), 1, 0, 0); + lbl_80575260->append(&field_0x680); + field_0x6A8 = mLytBase.fn_800AAAD0("B_arrowL_00"); + field_0x6AC = mLytBase.fn_800AAAD0("B_arrowR_00"); + mStateMgr.changeState(StateID_None); + setState(0); + return true; +} + +bool dLytCommonArrow_c::fn_80168490() { + lbl_80575260->detach(&field_0x680); + mLytBase.fn_800AAB70(); + for (int i = 0; i < 9; i++) { + field_0x440[i].fn_800AC860(); + } + return true; +} + +bool dLytCommonArrow_c::fn_80168500() { + mStateMgr.executeState(); + if (!mStateMgr.getStateID()->isEqual(StateID_None)) { + field_0x440[1].mpFrameCtrl->play(); + field_0x440[1].fn_800AC910(); + } + mLytBase.fn_Multi_c_0x14(); + field_0x680.field_0x22 = 0; + field_0x680.fn_80065F70(); + field_0x6BC = field_0x6B8; + return true; +} + +bool dLytCommonArrow_c::addToDrawList() { + if (field_0x6CB == 1) { + mLytBase.addToDrawList(); + } + return true; +} + +void dLytCommonArrow_c::setState(s32 state) { + field_0x6B0 = state; + if (state == 0) { + mLytBase.mPriority = 0x86; + } else { + mLytBase.mPriority = 0x80; + } +} + +void dLytCommonArrow_c::fn_80168640(f32 *arg) { + // TODO + mLytBase.getLayout()->GetRootPane()->SetTranslate(nw4r::math::VEC3(arg[0], arg[1], 0.0f)); +} + +bool dLytCommonArrow_c::fn_80168680() { + if (!mStateMgr.getStateID()->isEqual(StateID_None)) { + return false; + } + field_0x6C8 = 1; + return true; +} + +bool dLytCommonArrow_c::fn_801686F0() { + if (!mStateMgr.getStateID()->isEqual(StateID_Wait)) { + return false; + } + field_0x6C9 = 1; + return true; +} + +bool dLytCommonArrow_c::fn_80168760() { + if (field_0x6C0 == 2 && field_0x6B8 != 2) { + field_0x6C0 = field_0x6B8; + return true; + } + return false; +} + +void dLytCommonArrow_c::fn_80168790(s32 idx, f32 frame) { + d2d::dLytStructA *s = &field_0x440[idx]; + s->setFrame(frame); +} + +void dLytCommonArrow_c::fn_80168800(s32 idx) { + field_0x440[idx].fn_800AC7D0(); +} + +void dLytCommonArrow_c::fn_80168810(d2d::dLytStructA *ctrl) { + if (ctrl->mpFrameCtrl->getFrame()) { + f32 newFrame = ctrl->mpFrameCtrl->getFrame() - 1.0f; + if (newFrame <= 0.0f) { + newFrame = 0.0f; + } + ctrl->mpFrameCtrl->setFrame(newFrame); + ctrl->fn_800AC910(); + } +} + +void dLytCommonArrow_c::fn_80168880() { + +} + +void dLytCommonArrow_c::initializeState_None() { + mLytBase.fn_800AAB70(); + field_0x6C8 = 0; + field_0x6C9 = 0; + field_0x6CA = 0; + field_0x6CB = 0; + field_0x6B4 = 2; + field_0x6B8 = 2; + field_0x6BC = 2; + field_0x6C0 = 2; + field_0x6C4 = 0; + fn_80168790(0, 0.0f); + field_0x6CC = 1; +} +void dLytCommonArrow_c::executeState_None() { + if (field_0x6C8 == 1) { + mStateMgr.changeState(StateID_In); + } +} +void dLytCommonArrow_c::finalizeState_None() { + field_0x6C8 = 0; + fn_80168790(1, 0.0f); +} + +void dLytCommonArrow_c::initializeState_In() { + field_0x6C4 = 0; + field_0x6CB = 1; + f32 tmp = 0.0f; + if (field_0x6B0 == 1) { + tmp = 1.0f; + } + fn_80168790(2, tmp); + fn_80168790(3, 0.0f); + fn_80168790(4, 0.0f); + fn_80168790(7, 0.0f); +} +void dLytCommonArrow_c::executeState_In() { + switch (field_0x6C4) { + case 0: + d2d::dLytStructA *s = &field_0x440[0]; + if (s->mpFrameCtrl->isEndReached() == 1) { + field_0x6C4 += 1; + field_0x6CA = 1; + } else { + s->mpFrameCtrl->play(); + s->fn_800AC910(); + } + break; + case 1: + field_0x6CA = 0; + mStateMgr.changeState(StateID_Wait); + break; + } +} +void dLytCommonArrow_c::finalizeState_In() { + fn_80168800(0); +} + +void dLytCommonArrow_c::initializeState_Wait() { + field_0x6C4 = 0; +} +void dLytCommonArrow_c::executeState_Wait() { + if (field_0x6C9 == 1) { + mStateMgr.changeState(StateID_Out); + return; + } + + fn_80168880(); + if (field_0x6B8 == 0) { + field_0x440[3].mpFrameCtrl->play(); + field_0x440[3].fn_800AC910(); + fn_80168810(&field_0x440[4]); + } else if (field_0x6B8 == 1) { + field_0x440[4].mpFrameCtrl->play(); + field_0x440[4].fn_800AC910(); + fn_80168810(&field_0x440[3]); + } else { + fn_80168810(&field_0x440[3]); + fn_80168810(&field_0x440[4]); + } +} +void dLytCommonArrow_c::finalizeState_Wait() {} + +void dLytCommonArrow_c::initializeState_Out() { + field_0x6C4 = 0; + fn_80168790(8, 0.0f); + field_0x6C9 = 0; +} +void dLytCommonArrow_c::executeState_Out() { + switch (field_0x6C4) { + case 0: + d2d::dLytStructA *s = &field_0x440[8]; + if (s->mpFrameCtrl->isEndReached() == 1) { + field_0x6C4 = 1; + field_0x6CA = 1; + } + s->mpFrameCtrl->play(); + s->fn_800AC910(); + break; + case 1: + mStateMgr.changeState(StateID_None); + break; + } +} +void dLytCommonArrow_c::finalizeState_Out() {} diff --git a/src/toBeSorted/lyt/d2d.cpp b/src/toBeSorted/lyt/d2d.cpp index 5c4396f7..74387500 100644 --- a/src/toBeSorted/lyt/d2d.cpp +++ b/src/toBeSorted/lyt/d2d.cpp @@ -19,8 +19,4 @@ LytBase_c::~LytBase_c() { } } -void LytBase_c::draw() { - mLayout.Draw(mDrawInfo); -} - } // namespace d2d diff --git a/src/toBeSorted/lyt/d_lyt_fader.cpp b/src/toBeSorted/lyt/d_lyt_fader.cpp index 3a1d6eca..ef9b4289 100644 --- a/src/toBeSorted/lyt/d_lyt_fader.cpp +++ b/src/toBeSorted/lyt/d_lyt_fader.cpp @@ -29,7 +29,7 @@ void dLytFader_c::setStatus(EStatus status) { s->fn_800AC6D0(false); s->mpFrameCtrl->setToEnd(); s->fn_800AC910(); - s->fn_800AC780(true); + s->fn_800AC870(true); s->mpFrameCtrl->play(); s->fn_800AC910(); mLytBase.fn_Multi_c_0x14(); @@ -42,7 +42,7 @@ void dLytFader_c::setStatus(EStatus status) { s->fn_800AC6D0(false); s->mpFrameCtrl->setToStart(); s->fn_800AC910(); - s->fn_800AC780(true); + s->fn_800AC870(true); mLytBase.fn_Multi_c_0x14(); fn_80175BC0(2); mLytBase.getLayout()->GetRootPane()->SetVisible(false); @@ -120,7 +120,7 @@ void dLytFader_c::fn_801758F0() { s->mpFrameCtrl->setFrame(0.0f); s->fn_800AC910(); s->mpFrameCtrl->setRate(20.0f / (mFrame - 1)); - s->fn_800AC780(true); + s->fn_800AC870(true); mLytBase.getLayout()->GetRootPane()->SetVisible(true); } @@ -143,7 +143,7 @@ void dLytFader_c::fn_80175A50() { s->mpFrameCtrl->setFrame(0.0f); s->fn_800AC910(); s->mpFrameCtrl->setRate(20.0f / (mFrame - 1)); - s->fn_800AC780(true); + s->fn_800AC870(true); mLytBase.getLayout()->GetRootPane()->SetVisible(true); } diff --git a/src/toBeSorted/lyt/pause_disp_00.cpp b/src/toBeSorted/lyt/pause_disp_00.cpp index 3a7bf1f2..fb7edbc5 100644 --- a/src/toBeSorted/lyt/pause_disp_00.cpp +++ b/src/toBeSorted/lyt/pause_disp_00.cpp @@ -54,10 +54,7 @@ void dLytPauseDisp00_c::init() { void dLytPauseDisp00_c::displayElement(int i, float frame) { d2d::dLytStructA *s = &field_0x00D0[i]; - s->fn_800AC6D0(false); - s->fn_800AC870(true); - s->mpFrameCtrl->setFrame(frame); - s->fn_800AC910(); + s->setFrame(frame); } dLytPauseDisp00_c::~dLytPauseDisp00_c() {}