diff --git a/config/SOUE01/splits.txt b/config/SOUE01/splits.txt index a0d69977..44b2c993 100644 --- a/config/SOUE01/splits.txt +++ b/config/SOUE01/splits.txt @@ -567,6 +567,19 @@ d/lyt/d_screen_fader.cpp: .data start:0x80528D68 end:0x80528D90 .sdata2 start:0x8057ABE0 end:0x8057AC08 +d/d_cs_base.cpp: + .text start:0x801BC6C0 end:0x801BD250 + .data start:0x8052E860 end:0x8052E968 + .sdata start:0x80573430 end:0x80573448 + .sdata2 start:0x8057B5A8 end:0x8057B5C0 + +d/d_cs_game.cpp: + .text start:0x801BD250 end:0x801C5C28 + .ctors start:0x804DB820 end:0x804DB824 + .data start:0x8052E968 end:0x80530170 + .sdata2 start:0x8057B5C0 end:0x8057B650 + .bss start:0x805B38B8 end:0x805B4178 + d/a/d_a_player.cpp: .text start:0x801C5C30 end:0x802471F8 .ctors start:0x804DB824 end:0x804DB828 diff --git a/config/SOUE01/symbols.txt b/config/SOUE01/symbols.txt index 11f168e8..f8911869 100644 --- a/config/SOUE01/symbols.txt +++ b/config/SOUE01/symbols.txt @@ -2863,8 +2863,8 @@ create__6mVideoFv = .text:0x80065590; // type:function size:0x54 fn_800655F0 = .text:0x800655F0; // type:function size:0x4 __ct__Q23d2d15dLytStructDListFv = .text:0x80065600; // type:function size:0x3C fn_80065640 = .text:0x80065640; // type:function size:0x164 -appendToList1__Q23d2d15dLytStructDListFPQ23d2d11dLytStructD = .text:0x800657B0; // type:function size:0x58 -removeFromList1__Q23d2d15dLytStructDListFPQ23d2d11dLytStructD = .text:0x80065810; // type:function size:0x60 +appendToList1__Q23d2d15dLytStructDListFPQ23d2d11dLytStructC = .text:0x800657B0; // type:function size:0x58 +removeFromList1__Q23d2d15dLytStructDListFPQ23d2d11dLytStructC = .text:0x80065810; // type:function size:0x60 appendToList2__Q23d2d15dLytStructDListFPQ23d2d11dLytStructD = .text:0x80065870; // type:function size:0x110 removeFromList2__Q23d2d15dLytStructDListFPQ23d2d11dLytStructD = .text:0x80065980; // type:function size:0xA4 fn_80065A30 = .text:0x80065A30; // type:function size:0x34 @@ -2874,7 +2874,7 @@ fn_80065B30 = .text:0x80065B30; // type:function size:0x4C fn_80065B80 = .text:0x80065B80; // type:function size:0x174 fn_80065D00 = .text:0x80065D00; // type:function size:0x14 __dt__Q23d2d11dLytStructDFv = .text:0x80065D20; // type:function size:0x74 -fn_80065DA0 = .text:0x80065DA0; // type:function size:0x40 +__dt__Q23d2d18dLytStructDInArrayFv = .text:0x80065DA0; // type:function size:0x40 fn_80065DE0 = .text:0x80065DE0; // type:function size:0x90 fn_80065E70__Q23d2d11dLytStructDFPQ34nw4r3lyt4Panelll = .text:0x80065E70; // type:function size:0xC4 fn_80065F40 = .text:0x80065F40; // type:function size:0x28 @@ -3783,8 +3783,8 @@ syncAnmFrame__Q23d2d14AnmGroupBase_cFv = .text:0x800AC910; // type:function size setForward__Q23d2d14AnmGroupBase_cFv = .text:0x800AC920; // type:function size:0x14 setBackward__Q23d2d14AnmGroupBase_cFv = .text:0x800AC940; // type:function size:0x14 fn_800AC960 = .text:0x800AC960; // type:function size:0x4C -fn_800AC9B0 = .text:0x800AC9B0; // type:function size:0x80 -fn_800ACA30 = .text:0x800ACA30; // type:function size:0x64 +init__Q23d2d9AnmGroupsFPQ23d2d10AnmGroup_cPQ23d2d15LytBrlanMappingUlPQ23m2d10ResAccIf_cPQ23d2d8Layout_c = .text:0x800AC9B0; // type:function size:0x80 +remove__Q23d2d9AnmGroupsFv = .text:0x800ACA30; // type:function size:0x64 draw__Q23d2d9LytBase_cFv = .text:0x800ACAA0; // type:function size:0x18 fn_800ACAC0 = .text:0x800ACAC0; // type:function size:0x5C fn_800ACB20 = .text:0x800ACB20; // type:function size:0x40 @@ -9303,13 +9303,13 @@ fn_8016B220 = .text:0x8016B220; // type:function size:0x88 fn_8016B2B0 = .text:0x8016B2B0; // type:function size:0x28 fn_8016B2E0 = .text:0x8016B2E0; // type:function size:0x38 fn_8016B320 = .text:0x8016B320; // type:function size:0x30 -fn_8016B350 = .text:0x8016B350; // type:function size:0x30 -fn_8016B380 = .text:0x8016B380; // type:function size:0x30 +draw__17dLytCursorStick_cFv = .text:0x8016B350; // type:function size:0x30 +similarToDraw__17dLytCursorStick_cFv = .text:0x8016B380; // type:function size:0x30 fn_8016B3B0 = .text:0x8016B3B0; // type:function size:0x138 -fn_8016B4F0 = .text:0x8016B4F0; // type:function size:0x10 +changeState__86sStateMgr_c<17dLytCursorStick_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>FRC12sStateIDIf_c = .text:0x8016B4F0; // type:function size:0x10 fn_8016B500 = .text:0x8016B500; // type:function size:0x50 fn_8016B550 = .text:0x8016B550; // type:function size:0x5C -fn_8016B5B0 = .text:0x8016B5B0; // type:function size:0x10 +executeState__86sStateMgr_c<17dLytCursorStick_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x8016B5B0; // type:function size:0x10 fn_8016B5C0 = .text:0x8016B5C0; // type:function size:0x34 fn_8016B600 = .text:0x8016B600; // type:function size:0x40 fn_8016B640 = .text:0x8016B640; // type:function size:0x8 @@ -11235,82 +11235,82 @@ ScGame__state_dtor = .text:0x801BC410; // type:function size:0x5C fn_801BC470 = .text:0x801BC470; // type:function size:0xDC fn_801BC550 = .text:0x801BC550; // type:function size:0xE0 fn_801BC630 = .text:0x801BC630; // type:function size:0x88 -CsBase__ctor = .text:0x801BC6C0; // type:function size:0x30 -CsBase__ctorCont = .text:0x801BC6F0; // type:function size:0x1AC -fn_801BC8A0 = .text:0x801BC8A0; // type:function size:0x58 -fn_801BC900 = .text:0x801BC900; // type:function size:0x6C -fn_801BC970 = .text:0x801BC970; // type:function size:0xA0 -fn_801BCA10 = .text:0x801BCA10; // type:function size:0xA4 -fn_801BCAC0 = .text:0x801BCAC0; // type:function size:0x158 -fn_801BCC20 = .text:0x801BCC20; // type:function size:0x104 -fn_801BCD30 = .text:0x801BCD30; // type:function size:0x44 -fn_801BCD80 = .text:0x801BCD80; // type:function size:0x1E4 -fn_801BCF70 = .text:0x801BCF70; // type:function size:0xB0 -fn_801BD020 = .text:0x801BD020; // type:function size:0x14 -fn_801BD040 = .text:0x801BD040; // type:function size:0x10 -fn_801BD050 = .text:0x801BD050; // type:function size:0xBC -fn_801BD110 = .text:0x801BD110; // type:function size:0x60 -fn_801BD170 = .text:0x801BD170; // type:function size:0xC -fn_801BD180 = .text:0x801BD180; // type:function size:0x1C -fn_801BD1A0 = .text:0x801BD1A0; // type:function size:0x1C -fn_801BD1C0 = .text:0x801BD1C0; // type:function size:0x1C -fn_801BD1E0 = .text:0x801BD1E0; // type:function size:0x10 -fn_801BD1F0 = .text:0x801BD1F0; // type:function size:0x10 -fn_801BD200 = .text:0x801BD200; // type:function size:0x10 -fn_801BD210 = .text:0x801BD210; // type:function size:0x10 -fn_801BD220 = .text:0x801BD220; // type:function size:0x10 -fn_801BD230 = .text:0x801BD230; // type:function size:0x10 -fn_801BD240 = .text:0x801BD240; // type:function size:0x10 -CsGame__ctor = .text:0x801BD250; // type:function size:0x30 +dCsBase_c_classInit__Fv = .text:0x801BC6C0; // type:function size:0x30 +__ct__9dCsBase_cFv = .text:0x801BC6F0; // type:function size:0x1AC +__dt__30sFState_c<17dLytCursorStick_c>Fv = .text:0x801BC8A0; // type:function size:0x58 +__dt__33sFStateFct_c<17dLytCursorStick_c>Fv = .text:0x801BC900; // type:function size:0x6C +__dt__86sStateMgr_c<17dLytCursorStick_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x801BC970; // type:function size:0xA0 +__dt__56sFStateMgr_c<17dLytCursorStick_c,20sStateMethodUsr_FI_c>Fv = .text:0x801BCA10; // type:function size:0xA4 +__dt__9dCsBase_cFv = .text:0x801BCAC0; // type:function size:0x158 +create__9dCsBase_cFv = .text:0x801BCC20; // type:function size:0x104 +doDelete__9dCsBase_cFv = .text:0x801BCD30; // type:function size:0x44 +execute__9dCsBase_cFv = .text:0x801BCD80; // type:function size:0x1E4 +draw__9dCsBase_cFv = .text:0x801BCF70; // type:function size:0xB0 +setCurrentLyt__9dCsBase_cFi = .text:0x801BD020; // type:function size:0x14 +update__9dCsBase_cFv = .text:0x801BD040; // type:function size:0x10 +similarToDraw__9dCsBase_cFv = .text:0x801BD050; // type:function size:0xBC +build__33sFStateFct_c<17dLytCursorStick_c>FRC12sStateIDIf_c = .text:0x801BD110; // type:function size:0x60 +dispose__33sFStateFct_c<17dLytCursorStick_c>FRP10sStateIf_c = .text:0x801BD170; // type:function size:0xC +initialize__30sFState_c<17dLytCursorStick_c>Fv = .text:0x801BD180; // type:function size:0x1C +execute__30sFState_c<17dLytCursorStick_c>Fv = .text:0x801BD1A0; // type:function size:0x1C +finalize__30sFState_c<17dLytCursorStick_c>Fv = .text:0x801BD1C0; // type:function size:0x1C +initializeState__86sStateMgr_c<17dLytCursorStick_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x801BD1E0; // type:function size:0x10 +finalizeState__86sStateMgr_c<17dLytCursorStick_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x801BD1F0; // type:function size:0x10 +refreshState__86sStateMgr_c<17dLytCursorStick_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x801BD200; // type:function size:0x10 +getState__86sStateMgr_c<17dLytCursorStick_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x801BD210; // type:function size:0x10 +getNewStateID__86sStateMgr_c<17dLytCursorStick_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x801BD220; // type:function size:0x10 +getStateID__86sStateMgr_c<17dLytCursorStick_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x801BD230; // type:function size:0x10 +getOldStateID__86sStateMgr_c<17dLytCursorStick_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x801BD240; // type:function size:0x10 +dCsGame_c_classInit__Fv = .text:0x801BD250; // type:function size:0x30 fn_801BD280 = .text:0x801BD280; // type:function size:0x8C fn_801BD310 = .text:0x801BD310; // type:function size:0x40 -CsGame__ctorCont = .text:0x801BD350; // type:function size:0x4CC +__ct__9dCsGame_cFv = .text:0x801BD350; // type:function size:0x4CC fn_801BD820 = .text:0x801BD820; // type:function size:0x40 fn_801BD860 = .text:0x801BD860; // type:function size:0x40 -fn_801BD8A0 = .text:0x801BD8A0; // type:function size:0x5C -fn_801BD900 = .text:0x801BD900; // type:function size:0x5C -fn_801BD960 = .text:0x801BD960; // type:function size:0x58 -fn_801BD9C0 = .text:0x801BD9C0; // type:function size:0x6C -fn_801BDA30 = .text:0x801BDA30; // type:function size:0xA0 -fn_801BDAD0 = .text:0x801BDAD0; // type:function size:0xA4 +__dt__13dCsGameLyt1_cFv = .text:0x801BD8A0; // type:function size:0x5C +__dt__13dCsGameLyt2_cFv = .text:0x801BD900; // type:function size:0x5C +__dt__40sFState_cFv = .text:0x801BD960; // type:function size:0x58 +__dt__43sFStateFct_cFv = .text:0x801BD9C0; // type:function size:0x6C +__dt__96sStateMgr_cFv = .text:0x801BDA30; // type:function size:0xA0 +__dt__66sFStateMgr_cFv = .text:0x801BDAD0; // type:function size:0xA4 fn_801BDB80 = .text:0x801BDB80; // type:function size:0x40 fn_801BDBC0 = .text:0x801BDBC0; // type:function size:0x6C -fn_801BDC30 = .text:0x801BDC30; // type:function size:0x58 -fn_801BDC90 = .text:0x801BDC90; // type:function size:0x6C -fn_801BDD00 = .text:0x801BDD00; // type:function size:0xA0 -fn_801BDDA0 = .text:0x801BDDA0; // type:function size:0xA4 -fn_801BDE50 = .text:0x801BDE50; // type:function size:0xB4 -fn_801BDF10 = .text:0x801BDF10; // type:function size:0x58 -fn_801BDF70 = .text:0x801BDF70; // type:function size:0x6C -fn_801BDFE0 = .text:0x801BDFE0; // type:function size:0xA0 -fn_801BE080 = .text:0x801BE080; // type:function size:0xA4 -fn_801BE130 = .text:0x801BE130; // type:function size:0xCC -fn_801BE200 = .text:0x801BE200; // type:function size:0x58 -fn_801BE260 = .text:0x801BE260; // type:function size:0x6C -fn_801BE2D0 = .text:0x801BE2D0; // type:function size:0xA0 -fn_801BE370 = .text:0x801BE370; // type:function size:0xA4 -fn_801BE420 = .text:0x801BE420; // type:function size:0xB4 -fn_801BE4E0 = .text:0x801BE4E0; // type:function size:0x58 -fn_801BE540 = .text:0x801BE540; // type:function size:0x6C -fn_801BE5B0 = .text:0x801BE5B0; // type:function size:0xA0 -fn_801BE650 = .text:0x801BE650; // type:function size:0xA4 -fn_801BE700 = .text:0x801BE700; // type:function size:0xB4 -fn_801BE7C0 = .text:0x801BE7C0; // type:function size:0x58 -fn_801BE820 = .text:0x801BE820; // type:function size:0x6C -fn_801BE890 = .text:0x801BE890; // type:function size:0xA0 -fn_801BE930 = .text:0x801BE930; // type:function size:0xA4 -fn_801BE9E0 = .text:0x801BE9E0; // type:function size:0xB4 -CsGame__lytItemCursor__dtor = .text:0x801BEAA0; // type:function size:0x2E4 +__dt__53sFState_cFv = .text:0x801BDC30; // type:function size:0x58 +__dt__56sFStateFct_cFv = .text:0x801BDC90; // type:function size:0x6C +__dt__109sStateMgr_cFv = .text:0x801BDD00; // type:function size:0xA0 +__dt__79sFStateMgr_cFv = .text:0x801BDDA0; // type:function size:0xA4 +__dt__Q39dCsGame_c15lytItemCursor_c11lytBowCsr_cFv = .text:0x801BDE50; // type:function size:0xB4 +__dt__57sFState_cFv = .text:0x801BDF10; // type:function size:0x58 +__dt__60sFStateFct_cFv = .text:0x801BDF70; // type:function size:0x6C +__dt__113sStateMgr_cFv = .text:0x801BDFE0; // type:function size:0xA0 +__dt__83sFStateMgr_cFv = .text:0x801BE080; // type:function size:0xA4 +__dt__Q39dCsGame_c15lytItemCursor_c15lytDowsingCsr_cFv = .text:0x801BE130; // type:function size:0xCC +__dt__58sFState_cFv = .text:0x801BE200; // type:function size:0x58 +__dt__61sFStateFct_cFv = .text:0x801BE260; // type:function size:0x6C +__dt__114sStateMgr_cFv = .text:0x801BE2D0; // type:function size:0xA0 +__dt__84sFStateMgr_cFv = .text:0x801BE370; // type:function size:0xA4 +__dt__Q39dCsGame_c15lytItemCursor_c16lytPachinkoCsr_cFv = .text:0x801BE420; // type:function size:0xB4 +__dt__58sFState_cFv = .text:0x801BE4E0; // type:function size:0x58 +__dt__61sFStateFct_cFv = .text:0x801BE540; // type:function size:0x6C +__dt__114sStateMgr_cFv = .text:0x801BE5B0; // type:function size:0xA0 +__dt__84sFStateMgr_cFv = .text:0x801BE650; // type:function size:0xA4 +__dt__Q39dCsGame_c15lytItemCursor_c16lytCrawShotCsr_cFv = .text:0x801BE700; // type:function size:0xB4 +__dt__56sFState_cFv = .text:0x801BE7C0; // type:function size:0x58 +__dt__59sFStateFct_cFv = .text:0x801BE820; // type:function size:0x6C +__dt__112sStateMgr_cFv = .text:0x801BE890; // type:function size:0xA0 +__dt__82sFStateMgr_cFv = .text:0x801BE930; // type:function size:0xA4 +__dt__Q39dCsGame_c15lytItemCursor_c14lytVacuumCsr_cFv = .text:0x801BE9E0; // type:function size:0xB4 +__dt__Q29dCsGame_c15lytItemCursor_cFv = .text:0x801BEAA0; // type:function size:0x2E4 fn_801BED90 = .text:0x801BED90; // type:function size:0x40 -CsGame__dtor = .text:0x801BEDD0; // type:function size:0x33C -CsGame__init = .text:0x801BF110; // type:function size:0xF4 -CsGame__destroy = .text:0x801BF210; // type:function size:0x84 +__dt__9dCsGame_cFv = .text:0x801BEDD0; // type:function size:0x33C +create__9dCsGame_cFv = .text:0x801BF110; // type:function size:0xF4 +doDelete__9dCsGame_cFv = .text:0x801BF210; // type:function size:0x84 CsGame__baseUpdate = .text:0x801BF2A0; // type:function size:0x25C fn_801BF500 = .text:0x801BF500; // type:function size:0x14 CsGame__draw = .text:0x801BF520; // type:function size:0xBC fn_801BF5E0 = .text:0x801BF5E0; // type:function size:0x44 fn_801BF630 = .text:0x801BF630; // type:function size:0x288 -fn_801BF8C0 = .text:0x801BF8C0; // type:function size:0x10 +setNextCursorType__9dCsGame_cFQ39dCsGame_c15lytItemCursor_c12CursorType_e = .text:0x801BF8C0; // type:function size:0x10 fn_801BF8D0 = .text:0x801BF8D0; // type:function size:0x8 fn_801BF8E0 = .text:0x801BF8E0; // type:function size:0x18 fn_801BF900 = .text:0x801BF900; // type:function size:0x8 @@ -11336,30 +11336,30 @@ fn_801BFF00 = .text:0x801BFF00; // type:function size:0xC fn_801BFF10 = .text:0x801BFF10; // type:function size:0x20 fn_801BFF30 = .text:0x801BFF30; // type:function size:0x4C fn_801BFF80 = .text:0x801BFF80; // type:function size:0x8 -CsGame__lytItemCursor__stateInvisibleEnter = .text:0x801BFF90; // type:function size:0x4 -CsGame__lytItemCursor__stateInvisibleUpdate = .text:0x801BFFA0; // type:function size:0x4 -CsGame__lytItemCursor__stateInvisibleLeave = .text:0x801BFFB0; // type:function size:0x4 -CsGame__lytItemCursor__stateBowEnter = .text:0x801BFFC0; // type:function size:0x4C -fn_801C0010 = .text:0x801C0010; // type:function size:0x10 -CsGame__lytItemCursor__stateBowUpdate = .text:0x801C0020; // type:function size:0x10 -CsGame__lytItemCursor__stateBowLeave = .text:0x801C0030; // type:function size:0x4 -CsGame__lytItemCursor__stateDowsingEnter = .text:0x801C0040; // type:function size:0x8 -CsGame__lytItemCursor__stateDowsingUpdate = .text:0x801C0050; // type:function size:0x8 -CsGame__lytItemCursor__stateDowsingLeave = .text:0x801C0060; // type:function size:0x4 -CsGame__lytItemCursor__stateVacuumEnter = .text:0x801C0070; // type:function size:0x8 -CsGame__lytItemCursor__stateVacuumUpdate = .text:0x801C0080; // type:function size:0x10 -CsGame__lytItemCursor__stateVacuumLeave = .text:0x801C0090; // type:function size:0x4 -CsGame__lytItemCursor__statePachinkoEnter = .text:0x801C00A0; // type:function size:0x4 -CsGame__lytItemCursor__statePachinkoUpdate = .text:0x801C00B0; // type:function size:0x10 -CsGame__lytItemCursor__statePachinkoLeave = .text:0x801C00C0; // type:function size:0x4 -CsGame__lytItemCursor__stateHookShotEnter = .text:0x801C00D0; // type:function size:0x8 -CsGame__lytItemCursor__stateHookShotUpdate = .text:0x801C00E0; // type:function size:0x10 -CsGame__lytItemCursor__stateHookShotLeave = .text:0x801C00F0; // type:function size:0x4 -CsGame__lytItemCursor__statePlayerCamEnter = .text:0x801C0100; // type:function size:0x4 -CsGame__lytItemCursor__statePlayerCamUpdate = .text:0x801C0110; // type:function size:0x3C -CsGame__lytItemCursor__statePlayerCamLeave = .text:0x801C0150; // type:function size:0x4 -CsGame__lytItemCursor__changeState = .text:0x801C0160; // type:function size:0x10 -fn_801C0170 = .text:0x801C0170; // type:function size:0x10 +initializeState_Invisible__Q29dCsGame_c15lytItemCursor_cFv = .text:0x801BFF90; // type:function size:0x4 +executeState_Invisible__Q29dCsGame_c15lytItemCursor_cFv = .text:0x801BFFA0; // type:function size:0x4 +finalizeState_Invisible__Q29dCsGame_c15lytItemCursor_cFv = .text:0x801BFFB0; // type:function size:0x4 +initializeState_Bow__Q29dCsGame_c15lytItemCursor_cFv = .text:0x801BFFC0; // type:function size:0x4C +changeState__109sStateMgr_cFRC12sStateIDIf_c = .text:0x801C0010; // type:function size:0x10 +executeState_Bow__Q29dCsGame_c15lytItemCursor_cFv = .text:0x801C0020; // type:function size:0x10 +finalizeState_Bow__Q29dCsGame_c15lytItemCursor_cFv = .text:0x801C0030; // type:function size:0x4 +initializeState_Dowsing__Q29dCsGame_c15lytItemCursor_cFv = .text:0x801C0040; // type:function size:0x8 +executeState_Dowsing__Q29dCsGame_c15lytItemCursor_cFv = .text:0x801C0050; // type:function size:0x8 +finalizeState_Dowsing__Q29dCsGame_c15lytItemCursor_cFv = .text:0x801C0060; // type:function size:0x4 +initializeState_Vacuum__Q29dCsGame_c15lytItemCursor_cFv = .text:0x801C0070; // type:function size:0x8 +executeState_Vacuum__Q29dCsGame_c15lytItemCursor_cFv = .text:0x801C0080; // type:function size:0x10 +finalizeState_Vacuum__Q29dCsGame_c15lytItemCursor_cFv = .text:0x801C0090; // type:function size:0x4 +initializeState_Pachinko__Q29dCsGame_c15lytItemCursor_cFv = .text:0x801C00A0; // type:function size:0x4 +executeState_Pachinko__Q29dCsGame_c15lytItemCursor_cFv = .text:0x801C00B0; // type:function size:0x10 +finalizeState_Pachinko__Q29dCsGame_c15lytItemCursor_cFv = .text:0x801C00C0; // type:function size:0x4 +initializeState_HookShot__Q29dCsGame_c15lytItemCursor_cFv = .text:0x801C00D0; // type:function size:0x8 +executeState_HookShot__Q29dCsGame_c15lytItemCursor_cFv = .text:0x801C00E0; // type:function size:0x10 +finalizeState_HookShot__Q29dCsGame_c15lytItemCursor_cFv = .text:0x801C00F0; // type:function size:0x4 +initializeState_PlayerCam__Q29dCsGame_c15lytItemCursor_cFv = .text:0x801C0100; // type:function size:0x4 +executeState_PlayerCam__Q29dCsGame_c15lytItemCursor_cFv = .text:0x801C0110; // type:function size:0x3C +finalizeState_PlayerCam__Q29dCsGame_c15lytItemCursor_cFv = .text:0x801C0150; // type:function size:0x4 +changeState__Q29dCsGame_c15lytItemCursor_cFRC42sFStateID_c = .text:0x801C0160; // type:function size:0x10 +changeState__96sStateMgr_cFRC12sStateIDIf_c = .text:0x801C0170; // type:function size:0x10 CsGame__lytItemCursor__startBowDrawOrChargeState = .text:0x801C0180; // type:function size:0x8 CsGame__lytItemCursor__startBowAim = .text:0x801C0190; // type:function size:0x8 CsGame__lytItemCursor__startBowReady = .text:0x801C01A0; // type:function size:0x8 @@ -11371,233 +11371,233 @@ fn_801C01F0 = .text:0x801C01F0; // type:function size:0x8 fn_801C0200 = .text:0x801C0200; // type:function size:0x8 fn_801C0210 = .text:0x801C0210; // type:function size:0xC fn_801C0220 = .text:0x801C0220; // type:function size:0x20 -setInvisible = .text:0x801C0240; // type:function size:0x19C +doInit__Q29dCsGame_c15lytItemCursor_cFv = .text:0x801C0240; // type:function size:0x19C fn_801C03E0 = .text:0x801C03E0; // type:function size:0x28 fn_801C0410 = .text:0x801C0410; // type:function size:0x108 -fn_801C0520 = .text:0x801C0520; // type:function size:0x10 -CsGame__lytItemCursor__lytDowsingCsr__stateNotFindEnter = .text:0x801C0530; // type:function size:0x4 -CsGame__lytItemCursor__lytDowsingCsr__stateNotFindUpdate = .text:0x801C0540; // type:function size:0x70 -fn_801C05B0 = .text:0x801C05B0; // type:function size:0x10 -CsGame__lytItemCursor__lytDowsingCsr__stateNotFindLeave = .text:0x801C05C0; // type:function size:0x4 -CsGame__lytItemCursor__lytDowsingCsr__stateToFindEnter = .text:0x801C05D0; // type:function size:0x4 -CsGame__lytItemCursor__lytDowsingCsr__stateToFindUpdate = .text:0x801C05E0; // type:function size:0xF4 -CsGame__lytItemCursor__lytDowsingCsr__stateToFindLeave = .text:0x801C06E0; // type:function size:0x4 -CsGame__lytItemCursor__lytDowsingCsr__stateFindEnter = .text:0x801C06F0; // type:function size:0x4 -CsGame__lytItemCursor__lytDowsingCsr__stateFindUpdate = .text:0x801C0700; // type:function size:0x1B4 -CsGame__lytItemCursor__lytDowsingCsr__stateFindLeave = .text:0x801C08C0; // type:function size:0x4 -CsGame__lytItemCursor__lytDowsingCsr__stateFindMinimumEnter = .text:0x801C08D0; // type:function size:0x4 -CsGame__lytItemCursor__lytDowsingCsr__stateFindMinimumUpdate = .text:0x801C08E0; // type:function size:0x2C -CsGame__lytItemCursor__lytDowsingCsr__stateFindMinimumLeave = .text:0x801C0910; // type:function size:0x4 -CsGame__lytItemCursor__lytDowsingCsr__stateToNotFIndEnter = .text:0x801C0920; // type:function size:0x4 -CsGame__lytItemCursor__lytDowsingCsr__stateToNotFindUpdaate = .text:0x801C0930; // type:function size:0x98 -CsGame__lytItemCursor__lytDowsingCsr__stateToNotFindLeave = .text:0x801C09D0; // type:function size:0x4 -fn_801C09E0 = .text:0x801C09E0; // type:function size:0x108 +executeState__96sStateMgr_cFv = .text:0x801C0520; // type:function size:0x10 +initializeState_NotFind__Q39dCsGame_c15lytItemCursor_c15lytDowsingCsr_cFv = .text:0x801C0530; // type:function size:0x4 +executeState_NotFind__Q39dCsGame_c15lytItemCursor_c15lytDowsingCsr_cFv = .text:0x801C0540; // type:function size:0x70 +changeState__113sStateMgr_cFRC12sStateIDIf_c = .text:0x801C05B0; // type:function size:0x10 +finalizeState_NotFind__Q39dCsGame_c15lytItemCursor_c15lytDowsingCsr_cFv = .text:0x801C05C0; // type:function size:0x4 +initializeState_ToFind__Q39dCsGame_c15lytItemCursor_c15lytDowsingCsr_cFv = .text:0x801C05D0; // type:function size:0x4 +executeState_ToFind__Q39dCsGame_c15lytItemCursor_c15lytDowsingCsr_cFv = .text:0x801C05E0; // type:function size:0xF4 +finalizeState_ToFind__Q39dCsGame_c15lytItemCursor_c15lytDowsingCsr_cFv = .text:0x801C06E0; // type:function size:0x4 +initializeState_Find__Q39dCsGame_c15lytItemCursor_c15lytDowsingCsr_cFv = .text:0x801C06F0; // type:function size:0x4 +executeState_Find__Q39dCsGame_c15lytItemCursor_c15lytDowsingCsr_cFv = .text:0x801C0700; // type:function size:0x1B4 +finalizeState_Find__Q39dCsGame_c15lytItemCursor_c15lytDowsingCsr_cFv = .text:0x801C08C0; // type:function size:0x4 +initializeState_FindMinimum__Q39dCsGame_c15lytItemCursor_c15lytDowsingCsr_cFv = .text:0x801C08D0; // type:function size:0x4 +executeState_FindMinimum__Q39dCsGame_c15lytItemCursor_c15lytDowsingCsr_cFv = .text:0x801C08E0; // type:function size:0x2C +finalizeState_FindMinimum__Q39dCsGame_c15lytItemCursor_c15lytDowsingCsr_cFv = .text:0x801C0910; // type:function size:0x4 +initializeState_ToNotFind__Q39dCsGame_c15lytItemCursor_c15lytDowsingCsr_cFv = .text:0x801C0920; // type:function size:0x4 +executeState_ToNotFind__Q39dCsGame_c15lytItemCursor_c15lytDowsingCsr_cFv = .text:0x801C0930; // type:function size:0x98 +finalizeState_ToNotFind__Q39dCsGame_c15lytItemCursor_c15lytDowsingCsr_cFv = .text:0x801C09D0; // type:function size:0x4 +enter__Q39dCsGame_c15lytItemCursor_c15lytDowsingCsr_cFv = .text:0x801C09E0; // type:function size:0x108 fn_801C0AF0 = .text:0x801C0AF0; // type:function size:0x74 fn_801C0B70 = .text:0x801C0B70; // type:function size:0x8 fn_801C0B80 = .text:0x801C0B80; // type:function size:0x24 fn_801C0BB0 = .text:0x801C0BB0; // type:function size:0x1C fn_801C0BD0 = .text:0x801C0BD0; // type:function size:0x140 -CsGame__lytItemCursor__lytDowsingCsr__UnkFunc = .text:0x801C0D10; // type:function size:0x8C -fn_801C0DA0 = .text:0x801C0DA0; // type:function size:0x2B0 -fn_801C1050 = .text:0x801C1050; // type:function size:0x10 -fn_801C1060 = .text:0x801C1060; // type:function size:0x10 -fn_801C1070 = .text:0x801C1070; // type:function size:0x4 -fn_801C1080 = .text:0x801C1080; // type:function size:0x4 -fn_801C1090 = .text:0x801C1090; // type:function size:0x4 -fn_801C10A0 = .text:0x801C10A0; // type:function size:0x4 -fn_801C10B0 = .text:0x801C10B0; // type:function size:0x4 -fn_801C10C0 = .text:0x801C10C0; // type:function size:0x4 -fn_801C10D0 = .text:0x801C10D0; // type:function size:0x4 -fn_801C10E0 = .text:0x801C10E0; // type:function size:0x10 -fn_801C10F0 = .text:0x801C10F0; // type:function size:0x4 -fn_801C1100 = .text:0x801C1100; // type:function size:0x4 -fn_801C1110 = .text:0x801C1110; // type:function size:0x4 -fn_801C1120 = .text:0x801C1120; // type:function size:0x4 -fn_801C1130 = .text:0x801C1130; // type:function size:0x104 -fn_801C1240 = .text:0x801C1240; // type:function size:0xC8 -fn_801C1310 = .text:0x801C1310; // type:function size:0x4 -fn_801C1320 = .text:0x801C1320; // type:function size:0x90 -fn_801C13B0 = .text:0x801C13B0; // type:function size:0x118 -fn_801C14D0 = .text:0x801C14D0; // type:function size:0x4 -fn_801C14E0 = .text:0x801C14E0; // type:function size:0x54 -fn_801C1540 = .text:0x801C1540; // type:function size:0x11C -fn_801C1660 = .text:0x801C1660; // type:function size:0x4 -fn_801C1670 = .text:0x801C1670; // type:function size:0x1F4 -CsGame__lytItemCursor__lytBowCsr__UnkFun = .text:0x801C1870; // type:function size:0x170 +init__Q39dCsGame_c15lytItemCursor_c15lytDowsingCsr_cFv = .text:0x801C0D10; // type:function size:0x8C +execute__Q39dCsGame_c15lytItemCursor_c15lytDowsingCsr_cFv = .text:0x801C0DA0; // type:function size:0x2B0 +executeState__113sStateMgr_cFv = .text:0x801C1050; // type:function size:0x10 +getStateID__113sStateMgr_cCFv = .text:0x801C1060; // type:function size:0x10 +initializeState_Invisible__Q39dCsGame_c15lytItemCursor_c11lytBowCsr_cFv = .text:0x801C1070; // type:function size:0x4 +executeState_Invisible__Q39dCsGame_c15lytItemCursor_c11lytBowCsr_cFv = .text:0x801C1080; // type:function size:0x4 +finalizeState_Invisible__Q39dCsGame_c15lytItemCursor_c11lytBowCsr_cFv = .text:0x801C1090; // type:function size:0x4 +initializeState_Select__Q39dCsGame_c15lytItemCursor_c11lytBowCsr_cFv = .text:0x801C10A0; // type:function size:0x4 +executeState_Select__Q39dCsGame_c15lytItemCursor_c11lytBowCsr_cFv = .text:0x801C10B0; // type:function size:0x4 +finalizeState_Select__Q39dCsGame_c15lytItemCursor_c11lytBowCsr_cFv = .text:0x801C10C0; // type:function size:0x4 +initializeState_Ready__Q39dCsGame_c15lytItemCursor_c11lytBowCsr_cFv = .text:0x801C10D0; // type:function size:0x4 +executeState_Ready__Q39dCsGame_c15lytItemCursor_c11lytBowCsr_cFv = .text:0x801C10E0; // type:function size:0x10 +finalizeState_Ready__Q39dCsGame_c15lytItemCursor_c11lytBowCsr_cFv = .text:0x801C10F0; // type:function size:0x4 +initializeState_ToAimStart__Q39dCsGame_c15lytItemCursor_c11lytBowCsr_cFv = .text:0x801C1100; // type:function size:0x4 +executeState_ToAimStart__Q39dCsGame_c15lytItemCursor_c11lytBowCsr_cFv = .text:0x801C1110; // type:function size:0x4 +finalizeState_ToAimStart__Q39dCsGame_c15lytItemCursor_c11lytBowCsr_cFv = .text:0x801C1120; // type:function size:0x4 +initializeState_AimStart__Q39dCsGame_c15lytItemCursor_c11lytBowCsr_cFv = .text:0x801C1130; // type:function size:0x104 +executeState_AimStart__Q39dCsGame_c15lytItemCursor_c11lytBowCsr_cFv = .text:0x801C1240; // type:function size:0xC8 +finalizeState_AimStart__Q39dCsGame_c15lytItemCursor_c11lytBowCsr_cFv = .text:0x801C1310; // type:function size:0x4 +initializeState_Draw__Q39dCsGame_c15lytItemCursor_c11lytBowCsr_cFv = .text:0x801C1320; // type:function size:0x90 +executeState_Draw__Q39dCsGame_c15lytItemCursor_c11lytBowCsr_cFv = .text:0x801C13B0; // type:function size:0x118 +finalizeState_Draw__Q39dCsGame_c15lytItemCursor_c11lytBowCsr_cFv = .text:0x801C14D0; // type:function size:0x4 +initializeState_Charge__Q39dCsGame_c15lytItemCursor_c11lytBowCsr_cFv = .text:0x801C14E0; // type:function size:0x54 +executeState_Charge__Q39dCsGame_c15lytItemCursor_c11lytBowCsr_cFv = .text:0x801C1540; // type:function size:0x11C +finalizeState_Charge__Q39dCsGame_c15lytItemCursor_c11lytBowCsr_cFv = .text:0x801C1660; // type:function size:0x4 +enter__Q39dCsGame_c15lytItemCursor_c11lytBowCsr_cFv = .text:0x801C1670; // type:function size:0x1F4 +init__Q39dCsGame_c15lytItemCursor_c11lytBowCsr_cFv = .text:0x801C1870; // type:function size:0x170 fn_801C19E0 = .text:0x801C19E0; // type:function size:0x170 -fn_801C1B50 = .text:0x801C1B50; // type:function size:0x10 +executeState__109sStateMgr_cFv = .text:0x801C1B50; // type:function size:0x10 CsGame__lytItemCursor__lytBowCsr__startDrawOrCharge = .text:0x801C1B60; // type:function size:0xB0 -fn_801C1C10 = .text:0x801C1C10; // type:function size:0x10 +getStateID__109sStateMgr_cCFv = .text:0x801C1C10; // type:function size:0x10 CsGame__lytItemCursor__lytBowCsr__startAimStart = .text:0x801C1C20; // type:function size:0x84 fn_801C1CB0 = .text:0x801C1CB0; // type:function size:0x84 -fn_801C1D40 = .text:0x801C1D40; // type:function size:0x4 -fn_801C1D50 = .text:0x801C1D50; // type:function size:0x4 -fn_801C1D60 = .text:0x801C1D60; // type:function size:0x4 -fn_801C1D70 = .text:0x801C1D70; // type:function size:0x4 -fn_801C1D80 = .text:0x801C1D80; // type:function size:0x28 -fn_801C1DB0 = .text:0x801C1DB0; // type:function size:0x10 -fn_801C1DC0 = .text:0x801C1DC0; // type:function size:0x4 -fn_801C1DD0 = .text:0x801C1DD0; // type:function size:0x64 -fn_801C1E40 = .text:0x801C1E40; // type:function size:0x128 -fn_801C1F70 = .text:0x801C1F70; // type:function size:0x4 -fn_801C1F80 = .text:0x801C1F80; // type:function size:0x4 -fn_801C1F90 = .text:0x801C1F90; // type:function size:0x28 -fn_801C1FC0 = .text:0x801C1FC0; // type:function size:0x4 -fn_801C1FD0 = .text:0x801C1FD0; // type:function size:0x54 -fn_801C2030 = .text:0x801C2030; // type:function size:0xB4 -fn_801C20F0 = .text:0x801C20F0; // type:function size:0x4 -fn_801C2100 = .text:0x801C2100; // type:function size:0x70 -fn_801C2170 = .text:0x801C2170; // type:function size:0x11C -fn_801C2290 = .text:0x801C2290; // type:function size:0x4 -fn_801C22A0 = .text:0x801C22A0; // type:function size:0x88 -fn_801C2330 = .text:0x801C2330; // type:function size:0xDC -fn_801C2410 = .text:0x801C2410; // type:function size:0x4 -CsGame__lytItemCursor__lytPachinkoCsr__UnkFunc = .text:0x801C2420; // type:function size:0x150 -fn_801C2570 = .text:0x801C2570; // type:function size:0xFC -fn_801C2670 = .text:0x801C2670; // type:function size:0x10 +initializeState_Invisible__Q39dCsGame_c15lytItemCursor_c16lytPachinkoCsr_cFv = .text:0x801C1D40; // type:function size:0x4 +executeState_Invisible__Q39dCsGame_c15lytItemCursor_c16lytPachinkoCsr_cFv = .text:0x801C1D50; // type:function size:0x4 +finalizeState_Invisible__Q39dCsGame_c15lytItemCursor_c16lytPachinkoCsr_cFv = .text:0x801C1D60; // type:function size:0x4 +initializeState_Select__Q39dCsGame_c15lytItemCursor_c16lytPachinkoCsr_cFv = .text:0x801C1D70; // type:function size:0x4 +executeState_Select__Q39dCsGame_c15lytItemCursor_c16lytPachinkoCsr_cFv = .text:0x801C1D80; // type:function size:0x28 +changeState__114sStateMgr_cFRC12sStateIDIf_c = .text:0x801C1DB0; // type:function size:0x10 +finalizeState_Select__Q39dCsGame_c15lytItemCursor_c16lytPachinkoCsr_cFv = .text:0x801C1DC0; // type:function size:0x4 +initializeState_ToDraw__Q39dCsGame_c15lytItemCursor_c16lytPachinkoCsr_cFv = .text:0x801C1DD0; // type:function size:0x64 +executeState_ToDraw__Q39dCsGame_c15lytItemCursor_c16lytPachinkoCsr_cFv = .text:0x801C1E40; // type:function size:0x128 +finalizeState_ToDraw__Q39dCsGame_c15lytItemCursor_c16lytPachinkoCsr_cFv = .text:0x801C1F70; // type:function size:0x4 +initializeState_Draw__Q39dCsGame_c15lytItemCursor_c16lytPachinkoCsr_cFv = .text:0x801C1F80; // type:function size:0x4 +executeState_Draw__Q39dCsGame_c15lytItemCursor_c16lytPachinkoCsr_cFv = .text:0x801C1F90; // type:function size:0x28 +finalizeState_Draw__Q39dCsGame_c15lytItemCursor_c16lytPachinkoCsr_cFv = .text:0x801C1FC0; // type:function size:0x4 +initializeState_Out__Q39dCsGame_c15lytItemCursor_c16lytPachinkoCsr_cFv = .text:0x801C1FD0; // type:function size:0x54 +executeState_Out__Q39dCsGame_c15lytItemCursor_c16lytPachinkoCsr_cFv = .text:0x801C2030; // type:function size:0xB4 +finalizeState_Out__Q39dCsGame_c15lytItemCursor_c16lytPachinkoCsr_cFv = .text:0x801C20F0; // type:function size:0x4 +initializeState_Charge__Q39dCsGame_c15lytItemCursor_c16lytPachinkoCsr_cFv = .text:0x801C2100; // type:function size:0x70 +executeState_Charge__Q39dCsGame_c15lytItemCursor_c16lytPachinkoCsr_cFv = .text:0x801C2170; // type:function size:0x11C +finalizeState_Charge__Q39dCsGame_c15lytItemCursor_c16lytPachinkoCsr_cFv = .text:0x801C2290; // type:function size:0x4 +initializeState_ChargeFull__Q39dCsGame_c15lytItemCursor_c16lytPachinkoCsr_cFv = .text:0x801C22A0; // type:function size:0x88 +executeState_ChargeFull__Q39dCsGame_c15lytItemCursor_c16lytPachinkoCsr_cFv = .text:0x801C2330; // type:function size:0xDC +finalizeState_ChargeFull__Q39dCsGame_c15lytItemCursor_c16lytPachinkoCsr_cFv = .text:0x801C2410; // type:function size:0x4 +init__Q39dCsGame_c15lytItemCursor_c16lytPachinkoCsr_cFv = .text:0x801C2420; // type:function size:0x150 +execute__Q39dCsGame_c15lytItemCursor_c16lytPachinkoCsr_cFv = .text:0x801C2570; // type:function size:0xFC +executeState__114sStateMgr_cFv = .text:0x801C2670; // type:function size:0x10 fn_801C2680 = .text:0x801C2680; // type:function size:0xC -fn_801C2690 = .text:0x801C2690; // type:function size:0x10 -fn_801C26A0 = .text:0x801C26A0; // type:function size:0xC8 -fn_801C2770 = .text:0x801C2770; // type:function size:0x10 -fn_801C2780 = .text:0x801C2780; // type:function size:0x4 +initializeState_Normal__Q39dCsGame_c15lytItemCursor_c16lytCrawShotCsr_cFv = .text:0x801C2690; // type:function size:0x10 +executeState_Normal__Q39dCsGame_c15lytItemCursor_c16lytCrawShotCsr_cFv = .text:0x801C26A0; // type:function size:0xC8 +changeState__114sStateMgr_cFRC12sStateIDIf_c = .text:0x801C2770; // type:function size:0x10 +finalizeState_Normal__Q39dCsGame_c15lytItemCursor_c16lytCrawShotCsr_cFv = .text:0x801C2780; // type:function size:0x4 fn_801C2790 = .text:0x801C2790; // type:function size:0x60 -fn_801C27F0 = .text:0x801C27F0; // type:function size:0x8 -fn_801C2800 = .text:0x801C2800; // type:function size:0xDC -fn_801C28E0 = .text:0x801C28E0; // type:function size:0x4 -fn_801C28F0 = .text:0x801C28F0; // type:function size:0x4 -fn_801C2900 = .text:0x801C2900; // type:function size:0xDC -fn_801C29E0 = .text:0x801C29E0; // type:function size:0x4 -fn_801C29F0 = .text:0x801C29F0; // type:function size:0x4 -fn_801C2A00 = .text:0x801C2A00; // type:function size:0xFC -fn_801C2B00 = .text:0x801C2B00; // type:function size:0x4 -CsGame__lytItemCursor__lytClawShotCsr__init = .text:0x801C2B10; // type:function size:0xDC +initializeState_ToLock__Q39dCsGame_c15lytItemCursor_c16lytCrawShotCsr_cFv = .text:0x801C27F0; // type:function size:0x8 +executeState_ToLock__Q39dCsGame_c15lytItemCursor_c16lytCrawShotCsr_cFv = .text:0x801C2800; // type:function size:0xDC +finalizeState_ToLock__Q39dCsGame_c15lytItemCursor_c16lytCrawShotCsr_cFv = .text:0x801C28E0; // type:function size:0x4 +initializeState_Lock__Q39dCsGame_c15lytItemCursor_c16lytCrawShotCsr_cFv = .text:0x801C28F0; // type:function size:0x4 +executeState_Lock__Q39dCsGame_c15lytItemCursor_c16lytCrawShotCsr_cFv = .text:0x801C2900; // type:function size:0xDC +finalizeState_Lock__Q39dCsGame_c15lytItemCursor_c16lytCrawShotCsr_cFv = .text:0x801C29E0; // type:function size:0x4 +initializeState_ToNormal__Q39dCsGame_c15lytItemCursor_c16lytCrawShotCsr_cFv = .text:0x801C29F0; // type:function size:0x4 +executeState_ToNormal__Q39dCsGame_c15lytItemCursor_c16lytCrawShotCsr_cFv = .text:0x801C2A00; // type:function size:0xFC +finalizeState_ToNormal__Q39dCsGame_c15lytItemCursor_c16lytCrawShotCsr_cFv = .text:0x801C2B00; // type:function size:0x4 +enter__Q39dCsGame_c15lytItemCursor_c16lytCrawShotCsr_cFv = .text:0x801C2B10; // type:function size:0xDC fn_801C2BF0 = .text:0x801C2BF0; // type:function size:0x8 -CsGame__lytItemCursor__lytClawShotCsr__UnkFunc = .text:0x801C2C00; // type:function size:0xA4 -fn_801C2CB0 = .text:0x801C2CB0; // type:function size:0x10 -fn_801C2CC0 = .text:0x801C2CC0; // type:function size:0x10 -fn_801C2CD0 = .text:0x801C2CD0; // type:function size:0x10 -fn_801C2CE0 = .text:0x801C2CE0; // type:function size:0xC8 -fn_801C2DB0 = .text:0x801C2DB0; // type:function size:0x10 -fn_801C2DC0 = .text:0x801C2DC0; // type:function size:0x4 -fn_801C2DD0 = .text:0x801C2DD0; // type:function size:0x4 -fn_801C2DE0 = .text:0x801C2DE0; // type:function size:0xDC -fn_801C2EC0 = .text:0x801C2EC0; // type:function size:0x4 -fn_801C2ED0 = .text:0x801C2ED0; // type:function size:0x4 -fn_801C2EE0 = .text:0x801C2EE0; // type:function size:0xC8 -fn_801C2FB0 = .text:0x801C2FB0; // type:function size:0x4 -fn_801C2FC0 = .text:0x801C2FC0; // type:function size:0x4 -fn_801C2FD0 = .text:0x801C2FD0; // type:function size:0x98 -fn_801C3070 = .text:0x801C3070; // type:function size:0x4 -CsGame__lytItemCursor__lytVacuumCsr__startStateNormal = .text:0x801C3080; // type:function size:0xD8 +init__Q39dCsGame_c15lytItemCursor_c16lytCrawShotCsr_cFv = .text:0x801C2C00; // type:function size:0xA4 +execute__Q39dCsGame_c15lytItemCursor_c16lytCrawShotCsr_cFv = .text:0x801C2CB0; // type:function size:0x10 +executeState__114sStateMgr_cFv = .text:0x801C2CC0; // type:function size:0x10 +initializeState_Normal__Q39dCsGame_c15lytItemCursor_c14lytVacuumCsr_cFv = .text:0x801C2CD0; // type:function size:0x10 +executeState_Normal__Q39dCsGame_c15lytItemCursor_c14lytVacuumCsr_cFv = .text:0x801C2CE0; // type:function size:0xC8 +changeState__112sStateMgr_cFRC12sStateIDIf_c = .text:0x801C2DB0; // type:function size:0x10 +finalizeState_Normal__Q39dCsGame_c15lytItemCursor_c14lytVacuumCsr_cFv = .text:0x801C2DC0; // type:function size:0x4 +initializeState_ToLock__Q39dCsGame_c15lytItemCursor_c14lytVacuumCsr_cFv = .text:0x801C2DD0; // type:function size:0x4 +executeState_ToLock__Q39dCsGame_c15lytItemCursor_c14lytVacuumCsr_cFv = .text:0x801C2DE0; // type:function size:0xDC +finalizeState_ToLock__Q39dCsGame_c15lytItemCursor_c14lytVacuumCsr_cFv = .text:0x801C2EC0; // type:function size:0x4 +initializeState_Lock__Q39dCsGame_c15lytItemCursor_c14lytVacuumCsr_cFv = .text:0x801C2ED0; // type:function size:0x4 +executeState_Lock__Q39dCsGame_c15lytItemCursor_c14lytVacuumCsr_cFv = .text:0x801C2EE0; // type:function size:0xC8 +finalizeState_Lock__Q39dCsGame_c15lytItemCursor_c14lytVacuumCsr_cFv = .text:0x801C2FB0; // type:function size:0x4 +initializeState_ToNormal__Q39dCsGame_c15lytItemCursor_c14lytVacuumCsr_cFv = .text:0x801C2FC0; // type:function size:0x4 +executeState_ToNormal__Q39dCsGame_c15lytItemCursor_c14lytVacuumCsr_cFv = .text:0x801C2FD0; // type:function size:0x98 +finalizeState_ToNormal__Q39dCsGame_c15lytItemCursor_c14lytVacuumCsr_cFv = .text:0x801C3070; // type:function size:0x4 +enter__Q39dCsGame_c15lytItemCursor_c14lytVacuumCsr_cFv = .text:0x801C3080; // type:function size:0xD8 fn_801C3160 = .text:0x801C3160; // type:function size:0x2C fn_801C3190 = .text:0x801C3190; // type:function size:0x8 -CsGame__lytItemCursor__lytVacuumCsr__UnkFunc = .text:0x801C31A0; // type:function size:0x50 -fn_801C31F0 = .text:0x801C31F0; // type:function size:0x10 -fn_801C3200 = .text:0x801C3200; // type:function size:0x10 +init__Q39dCsGame_c15lytItemCursor_c14lytVacuumCsr_cFv = .text:0x801C31A0; // type:function size:0x50 +execute__Q39dCsGame_c15lytItemCursor_c14lytVacuumCsr_cFv = .text:0x801C31F0; // type:function size:0x10 +executeState__112sStateMgr_cFv = .text:0x801C3200; // type:function size:0x10 fn_801C3210 = .text:0x801C3210; // type:function size:0x8 fn_801C3220 = .text:0x801C3220; // type:function size:0x8 fn_801C3230 = .text:0x801C3230; // type:function size:0x8 -fn_801C3240 = .text:0x801C3240; // type:function size:0x60 -fn_801C32A0 = .text:0x801C32A0; // type:function size:0xC -fn_801C32B0 = .text:0x801C32B0; // type:function size:0x60 -fn_801C3310 = .text:0x801C3310; // type:function size:0xC -fn_801C3320 = .text:0x801C3320; // type:function size:0x60 -fn_801C3380 = .text:0x801C3380; // type:function size:0xC -fn_801C3390 = .text:0x801C3390; // type:function size:0x60 -fn_801C33F0 = .text:0x801C33F0; // type:function size:0xC -fn_801C3400 = .text:0x801C3400; // type:function size:0x60 -fn_801C3460 = .text:0x801C3460; // type:function size:0xC -fn_801C3470 = .text:0x801C3470; // type:function size:0x60 -fn_801C34D0 = .text:0x801C34D0; // type:function size:0xC -fn_801C34E0 = .text:0x801C34E0; // type:function size:0x1C -fn_801C3500 = .text:0x801C3500; // type:function size:0x1C -fn_801C3520 = .text:0x801C3520; // type:function size:0x1C -fn_801C3540 = .text:0x801C3540; // type:function size:0x1C -fn_801C3560 = .text:0x801C3560; // type:function size:0x1C -fn_801C3580 = .text:0x801C3580; // type:function size:0x1C -fn_801C35A0 = .text:0x801C35A0; // type:function size:0x1C -fn_801C35C0 = .text:0x801C35C0; // type:function size:0x1C -fn_801C35E0 = .text:0x801C35E0; // type:function size:0x1C -fn_801C3600 = .text:0x801C3600; // type:function size:0x1C -fn_801C3620 = .text:0x801C3620; // type:function size:0x1C -fn_801C3640 = .text:0x801C3640; // type:function size:0x1C -fn_801C3660 = .text:0x801C3660; // type:function size:0x1C -fn_801C3680 = .text:0x801C3680; // type:function size:0x1C -fn_801C36A0 = .text:0x801C36A0; // type:function size:0x1C -fn_801C36C0 = .text:0x801C36C0; // type:function size:0x1C -fn_801C36E0 = .text:0x801C36E0; // type:function size:0x1C -fn_801C3700 = .text:0x801C3700; // type:function size:0x1C -fn_801C3720 = .text:0x801C3720; // type:function size:0x10 -fn_801C3730 = .text:0x801C3730; // type:function size:0x10 -fn_801C3740 = .text:0x801C3740; // type:function size:0x10 -fn_801C3750 = .text:0x801C3750; // type:function size:0x10 -fn_801C3760 = .text:0x801C3760; // type:function size:0x10 -fn_801C3770 = .text:0x801C3770; // type:function size:0x10 -fn_801C3780 = .text:0x801C3780; // type:function size:0x10 -fn_801C3790 = .text:0x801C3790; // type:function size:0x10 -fn_801C37A0 = .text:0x801C37A0; // type:function size:0x10 -fn_801C37B0 = .text:0x801C37B0; // type:function size:0x10 -fn_801C37C0 = .text:0x801C37C0; // type:function size:0x10 -fn_801C37D0 = .text:0x801C37D0; // type:function size:0x10 -fn_801C37E0 = .text:0x801C37E0; // type:function size:0x10 -fn_801C37F0 = .text:0x801C37F0; // type:function size:0x10 -fn_801C3800 = .text:0x801C3800; // type:function size:0x10 -fn_801C3810 = .text:0x801C3810; // type:function size:0x10 -fn_801C3820 = .text:0x801C3820; // type:function size:0x10 -fn_801C3830 = .text:0x801C3830; // type:function size:0x10 -fn_801C3840 = .text:0x801C3840; // type:function size:0x10 -fn_801C3850 = .text:0x801C3850; // type:function size:0x10 -fn_801C3860 = .text:0x801C3860; // type:function size:0x10 -fn_801C3870 = .text:0x801C3870; // type:function size:0x10 -fn_801C3880 = .text:0x801C3880; // type:function size:0x10 -fn_801C3890 = .text:0x801C3890; // type:function size:0x10 -fn_801C38A0 = .text:0x801C38A0; // type:function size:0x10 -fn_801C38B0 = .text:0x801C38B0; // type:function size:0x10 -fn_801C38C0 = .text:0x801C38C0; // type:function size:0x10 -fn_801C38D0 = .text:0x801C38D0; // type:function size:0x10 -fn_801C38E0 = .text:0x801C38E0; // type:function size:0x10 -fn_801C38F0 = .text:0x801C38F0; // type:function size:0x10 -fn_801C3900 = .text:0x801C3900; // type:function size:0x10 -fn_801C3910 = .text:0x801C3910; // type:function size:0x10 -fn_801C3920 = .text:0x801C3920; // type:function size:0x10 -fn_801C3930 = .text:0x801C3930; // type:function size:0x10 -fn_801C3940 = .text:0x801C3940; // type:function size:0x10 -fn_801C3950 = .text:0x801C3950; // type:function size:0x10 -fn_801C3960 = .text:0x801C3960; // type:function size:0x10 -fn_801C3970 = .text:0x801C3970; // type:function size:0x10 -fn_801C3980 = .text:0x801C3980; // type:function size:0x10 -fn_801C3990 = .text:0x801C3990; // type:function size:0x10 -fn_801C39A0 = .text:0x801C39A0; // type:function size:0x30 -fn_801C39D0 = .text:0x801C39D0; // type:function size:0x30 -fn_801C3A00 = .text:0x801C3A00; // type:function size:0x30 -fn_801C3A30 = .text:0x801C3A30; // type:function size:0x30 -fn_801C3A60 = .text:0x801C3A60; // type:function size:0x30 -fn_801C3A90 = .text:0x801C3A90; // type:function size:0x30 -fn_801C3AC0 = .text:0x801C3AC0; // type:function size:0x30 -fn_801C3AF0 = .text:0x801C3AF0; // type:function size:0x30 -fn_801C3B20 = .text:0x801C3B20; // type:function size:0x30 -fn_801C3B50 = .text:0x801C3B50; // type:function size:0x30 -fn_801C3B80 = .text:0x801C3B80; // type:function size:0x30 -fn_801C3BB0 = .text:0x801C3BB0; // type:function size:0x30 -fn_801C3BE0 = .text:0x801C3BE0; // type:function size:0x30 -fn_801C3C10 = .text:0x801C3C10; // type:function size:0x30 -fn_801C3C40 = .text:0x801C3C40; // type:function size:0x30 -fn_801C3C70 = .text:0x801C3C70; // type:function size:0x30 -fn_801C3CA0 = .text:0x801C3CA0; // type:function size:0x30 -fn_801C3CD0 = .text:0x801C3CD0; // type:function size:0x30 -CsGame__lytItemCursor__initStates = .text:0x801C3D00; // type:function size:0x1984 -CsGame__lytItemCursor__state_dtor = .text:0x801C5690; // type:function size:0x58 -CsGame_conflict2__lytDowsingCsr__state_dtor = .text:0x801C56F0; // type:function size:0x58 -CsGame__lytItemCursor__lytBowCsr__dtor = .text:0x801C5750; // type:function size:0x58 -CsGame__lytItemCursor__lytPachinkoCsr__state_dtor = .text:0x801C57B0; // type:function size:0x58 -CsGame__lytItemCursor__lytClawShotCsr__dtor = .text:0x801C5810; // type:function size:0x58 -CsGame__lytItemCursor__lytVacuumCsr__state_dtor = .text:0x801C5870; // type:function size:0x58 -fn_801C58D0 = .text:0x801C58D0; // type:function size:0x88 -fn_801C5960 = .text:0x801C5960; // type:function size:0x88 -fn_801C59F0 = .text:0x801C59F0; // type:function size:0x88 -fn_801C5A80 = .text:0x801C5A80; // type:function size:0x88 -fn_801C5B10 = .text:0x801C5B10; // type:function size:0x88 -fn_801C5BA0 = .text:0x801C5BA0; // type:function size:0x88 +build__43sFStateFct_cFRC12sStateIDIf_c = .text:0x801C3240; // type:function size:0x60 +dispose__43sFStateFct_cFRP10sStateIf_c = .text:0x801C32A0; // type:function size:0xC +build__59sFStateFct_cFRC12sStateIDIf_c = .text:0x801C32B0; // type:function size:0x60 +dispose__59sFStateFct_cFRP10sStateIf_c = .text:0x801C3310; // type:function size:0xC +build__61sFStateFct_cFRC12sStateIDIf_c = .text:0x801C3320; // type:function size:0x60 +dispose__61sFStateFct_cFRP10sStateIf_c = .text:0x801C3380; // type:function size:0xC +build__61sFStateFct_cFRC12sStateIDIf_c = .text:0x801C3390; // type:function size:0x60 +dispose__61sFStateFct_cFRP10sStateIf_c = .text:0x801C33F0; // type:function size:0xC +build__60sFStateFct_cFRC12sStateIDIf_c = .text:0x801C3400; // type:function size:0x60 +dispose__60sFStateFct_cFRP10sStateIf_c = .text:0x801C3460; // type:function size:0xC +build__56sFStateFct_cFRC12sStateIDIf_c = .text:0x801C3470; // type:function size:0x60 +dispose__56sFStateFct_cFRP10sStateIf_c = .text:0x801C34D0; // type:function size:0xC +initialize__40sFState_cFv = .text:0x801C34E0; // type:function size:0x1C +execute__40sFState_cFv = .text:0x801C3500; // type:function size:0x1C +finalize__40sFState_cFv = .text:0x801C3520; // type:function size:0x1C +initialize__56sFState_cFv = .text:0x801C3540; // type:function size:0x1C +execute__56sFState_cFv = .text:0x801C3560; // type:function size:0x1C +finalize__56sFState_cFv = .text:0x801C3580; // type:function size:0x1C +initialize__58sFState_cFv = .text:0x801C35A0; // type:function size:0x1C +execute__58sFState_cFv = .text:0x801C35C0; // type:function size:0x1C +finalize__58sFState_cFv = .text:0x801C35E0; // type:function size:0x1C +initialize__58sFState_cFv = .text:0x801C3600; // type:function size:0x1C +execute__58sFState_cFv = .text:0x801C3620; // type:function size:0x1C +finalize__58sFState_cFv = .text:0x801C3640; // type:function size:0x1C +initialize__57sFState_cFv = .text:0x801C3660; // type:function size:0x1C +execute__57sFState_cFv = .text:0x801C3680; // type:function size:0x1C +finalize__57sFState_cFv = .text:0x801C36A0; // type:function size:0x1C +initialize__53sFState_cFv = .text:0x801C36C0; // type:function size:0x1C +execute__53sFState_cFv = .text:0x801C36E0; // type:function size:0x1C +finalize__53sFState_cFv = .text:0x801C3700; // type:function size:0x1C +initializeState__96sStateMgr_cFv = .text:0x801C3720; // type:function size:0x10 +finalizeState__96sStateMgr_cFv = .text:0x801C3730; // type:function size:0x10 +refreshState__96sStateMgr_cFv = .text:0x801C3740; // type:function size:0x10 +getState__96sStateMgr_cCFv = .text:0x801C3750; // type:function size:0x10 +getNewStateID__96sStateMgr_cCFv = .text:0x801C3760; // type:function size:0x10 +getStateID__96sStateMgr_cCFv = .text:0x801C3770; // type:function size:0x10 +getOldStateID__96sStateMgr_cCFv = .text:0x801C3780; // type:function size:0x10 +initializeState__112sStateMgr_cFv = .text:0x801C3790; // type:function size:0x10 +finalizeState__112sStateMgr_cFv = .text:0x801C37A0; // type:function size:0x10 +refreshState__112sStateMgr_cFv = .text:0x801C37B0; // type:function size:0x10 +getState__112sStateMgr_cCFv = .text:0x801C37C0; // type:function size:0x10 +getNewStateID__112sStateMgr_cCFv = .text:0x801C37D0; // type:function size:0x10 +getStateID__112sStateMgr_cCFv = .text:0x801C37E0; // type:function size:0x10 +getOldStateID__112sStateMgr_cCFv = .text:0x801C37F0; // type:function size:0x10 +initializeState__114sStateMgr_cFv = .text:0x801C3800; // type:function size:0x10 +finalizeState__114sStateMgr_cFv = .text:0x801C3810; // type:function size:0x10 +refreshState__114sStateMgr_cFv = .text:0x801C3820; // type:function size:0x10 +getState__114sStateMgr_cCFv = .text:0x801C3830; // type:function size:0x10 +getNewStateID__114sStateMgr_cCFv = .text:0x801C3840; // type:function size:0x10 +getStateID__114sStateMgr_cCFv = .text:0x801C3850; // type:function size:0x10 +getOldStateID__114sStateMgr_cCFv = .text:0x801C3860; // type:function size:0x10 +initializeState__114sStateMgr_cFv = .text:0x801C3870; // type:function size:0x10 +finalizeState__114sStateMgr_cFv = .text:0x801C3880; // type:function size:0x10 +refreshState__114sStateMgr_cFv = .text:0x801C3890; // type:function size:0x10 +getState__114sStateMgr_cCFv = .text:0x801C38A0; // type:function size:0x10 +getNewStateID__114sStateMgr_cCFv = .text:0x801C38B0; // type:function size:0x10 +getStateID__114sStateMgr_cCFv = .text:0x801C38C0; // type:function size:0x10 +getOldStateID__114sStateMgr_cCFv = .text:0x801C38D0; // type:function size:0x10 +initializeState__113sStateMgr_cFv = .text:0x801C38E0; // type:function size:0x10 +finalizeState__113sStateMgr_cFv = .text:0x801C38F0; // type:function size:0x10 +refreshState__113sStateMgr_cFv = .text:0x801C3900; // type:function size:0x10 +getState__113sStateMgr_cCFv = .text:0x801C3910; // type:function size:0x10 +getNewStateID__113sStateMgr_cCFv = .text:0x801C3920; // type:function size:0x10 +getOldStateID__113sStateMgr_cCFv = .text:0x801C3930; // type:function size:0x10 +initializeState__109sStateMgr_cFv = .text:0x801C3940; // type:function size:0x10 +finalizeState__109sStateMgr_cFv = .text:0x801C3950; // type:function size:0x10 +refreshState__109sStateMgr_cFv = .text:0x801C3960; // type:function size:0x10 +getState__109sStateMgr_cCFv = .text:0x801C3970; // type:function size:0x10 +getNewStateID__109sStateMgr_cCFv = .text:0x801C3980; // type:function size:0x10 +getOldStateID__109sStateMgr_cCFv = .text:0x801C3990; // type:function size:0x10 +finalizeState__55sFStateID_cCFRQ39dCsGame_c15lytItemCursor_c11lytBowCsr_c = .text:0x801C39A0; // type:function size:0x30 +executeState__55sFStateID_cCFRQ39dCsGame_c15lytItemCursor_c11lytBowCsr_c = .text:0x801C39D0; // type:function size:0x30 +initializeState__55sFStateID_cCFRQ39dCsGame_c15lytItemCursor_c11lytBowCsr_c = .text:0x801C3A00; // type:function size:0x30 +finalizeState__59sFStateID_cCFRQ39dCsGame_c15lytItemCursor_c15lytDowsingCsr_c = .text:0x801C3A30; // type:function size:0x30 +executeState__59sFStateID_cCFRQ39dCsGame_c15lytItemCursor_c15lytDowsingCsr_c = .text:0x801C3A60; // type:function size:0x30 +initializeState__59sFStateID_cCFRQ39dCsGame_c15lytItemCursor_c15lytDowsingCsr_c = .text:0x801C3A90; // type:function size:0x30 +finalizeState__60sFStateID_cCFRQ39dCsGame_c15lytItemCursor_c16lytPachinkoCsr_c = .text:0x801C3AC0; // type:function size:0x30 +executeState__60sFStateID_cCFRQ39dCsGame_c15lytItemCursor_c16lytPachinkoCsr_c = .text:0x801C3AF0; // type:function size:0x30 +initializeState__60sFStateID_cCFRQ39dCsGame_c15lytItemCursor_c16lytPachinkoCsr_c = .text:0x801C3B20; // type:function size:0x30 +finalizeState__60sFStateID_cCFRQ39dCsGame_c15lytItemCursor_c16lytCrawShotCsr_c = .text:0x801C3B50; // type:function size:0x30 +executeState__60sFStateID_cCFRQ39dCsGame_c15lytItemCursor_c16lytCrawShotCsr_c = .text:0x801C3B80; // type:function size:0x30 +initializeState__60sFStateID_cCFRQ39dCsGame_c15lytItemCursor_c16lytCrawShotCsr_c = .text:0x801C3BB0; // type:function size:0x30 +finalizeState__58sFStateID_cCFRQ39dCsGame_c15lytItemCursor_c14lytVacuumCsr_c = .text:0x801C3BE0; // type:function size:0x30 +executeState__58sFStateID_cCFRQ39dCsGame_c15lytItemCursor_c14lytVacuumCsr_c = .text:0x801C3C10; // type:function size:0x30 +initializeState__58sFStateID_cCFRQ39dCsGame_c15lytItemCursor_c14lytVacuumCsr_c = .text:0x801C3C40; // type:function size:0x30 +finalizeState__42sFStateID_cCFRQ29dCsGame_c15lytItemCursor_c = .text:0x801C3C70; // type:function size:0x30 +executeState__42sFStateID_cCFRQ29dCsGame_c15lytItemCursor_c = .text:0x801C3CA0; // type:function size:0x30 +initializeState__42sFStateID_cCFRQ29dCsGame_c15lytItemCursor_c = .text:0x801C3CD0; // type:function size:0x30 +__sinit_\d_cs_game_cpp = .text:0x801C3D00; // type:function size:0x1984 scope:local +__dt__42sFStateID_cFv = .text:0x801C5690; // type:function size:0x58 +__dt__59sFStateID_cFv = .text:0x801C56F0; // type:function size:0x58 +__dt__55sFStateID_cFv = .text:0x801C5750; // type:function size:0x58 +__dt__60sFStateID_cFv = .text:0x801C57B0; // type:function size:0x58 +__dt__60sFStateID_cFv = .text:0x801C5810; // type:function size:0x58 +__dt__58sFStateID_cFv = .text:0x801C5870; // type:function size:0x58 +isSameName__58sFStateID_cCFPCc = .text:0x801C58D0; // type:function size:0x88 +isSameName__60sFStateID_cCFPCc = .text:0x801C5960; // type:function size:0x88 +isSameName__60sFStateID_cCFPCc = .text:0x801C59F0; // type:function size:0x88 +isSameName__59sFStateID_cCFPCc = .text:0x801C5A80; // type:function size:0x88 +isSameName__55sFStateID_cCFPCc = .text:0x801C5B10; // type:function size:0x88 +isSameName__42sFStateID_cCFPCc = .text:0x801C5BA0; // type:function size:0x88 ActorLink__ctor = .text:0x801C5C30; // type:function size:0x30 fn_801C5C60 = .text:0x801C5C60; // type:function size:0x10 fn_801C5C70 = .text:0x801C5C70; // type:function size:0x8 @@ -30776,7 +30776,7 @@ lbl_8050DF10 = .data:0x8050DF10; // type:object size:0x18 lbl_8050DF28 = .data:0x8050DF28; // type:object size:0x11 data:string lbl_8050DF3C = .data:0x8050DF3C; // type:object size:0x11 data:string __vt__18ArcCallbackHandler = .data:0x8050DF50; // type:object size:0x10 -lbl_8050DF60 = .data:0x8050DF60; // type:object size:0x10 +__vt__Q23d2d11dLytStructC = .data:0x8050DF60; // type:object size:0x10 __vt__Q23d2d11dLytStructD = .data:0x8050DF70; // type:object size:0x14 lbl_8050DF84 = .data:0x8050DF84; // type:object size:0xC lbl_8050DF90 = .data:0x8050DF90; // type:object size:0x10 @@ -34147,11 +34147,11 @@ lbl_8052E7F4 = .data:0x8052E7F4; // type:object size:0x6C g_profile_C_BASE = .data:0x8052E860; // type:object size:0xC lbl_8052E86C = .data:0x8052E86C; // type:object size:0x10 lbl_8052E87C = .data:0x8052E87C; // type:object size:0x10 -lbl_8052E88C = .data:0x8052E88C; // type:object size:0x4C -lbl_8052E8D8 = .data:0x8052E8D8; // type:object size:0x30 -lbl_8052E908 = .data:0x8052E908; // type:object size:0x30 -lbl_8052E938 = .data:0x8052E938; // type:object size:0x18 -lbl_8052E950 = .data:0x8052E950; // type:object size:0x18 +__vt__9dCsBase_c = .data:0x8052E88C; // type:object size:0x4C +__vt__56sFStateMgr_c<17dLytCursorStick_c,20sStateMethodUsr_FI_c> = .data:0x8052E8D8; // type:object size:0x30 +__vt__86sStateMgr_c<17dLytCursorStick_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c> = .data:0x8052E908; // type:object size:0x30 +__vt__33sFStateFct_c<17dLytCursorStick_c> = .data:0x8052E938; // type:object size:0x14 +__vt__30sFState_c<17dLytCursorStick_c> = .data:0x8052E950; // type:object size:0x18 g_profile_C_GAME = .data:0x8052E968; // type:object size:0xC lbl_8052E974 = .data:0x8052E974; // type:object size:0x10 lbl_8052E984 = .data:0x8052E984; // type:object size:0x10 @@ -34201,48 +34201,48 @@ lbl_8052EDA0 = .data:0x8052EDA0; // type:object size:0x10 lbl_8052EDB0 = .data:0x8052EDB0; // type:object size:0x10 lbl_8052EDC0 = .data:0x8052EDC0; // type:object size:0x84 lbl_8052EE44 = .data:0x8052EE44; // type:object size:0xC -CsGame__vtable = .data:0x8052EE50; // type:object size:0x4C +__vt__9dCsGame_c = .data:0x8052EE50; // type:object size:0x4C CsGame__lytItemCursor__vtable = .data:0x8052EE9C; // type:object size:0x2C lbl_8052EEC8 = .data:0x8052EEC8; // type:object size:0x10 -lbl_8052EED8 = .data:0x8052EED8; // type:object size:0x30 -lbl_8052EF08 = .data:0x8052EF08; // type:object size:0x30 -lbl_8052EF38 = .data:0x8052EF38; // type:object size:0x18 -lbl_8052EF50 = .data:0x8052EF50; // type:object size:0x18 -lbl_8052EF68 = .data:0x8052EF68; // type:object size:0x10 -lbl_8052EF78 = .data:0x8052EF78; // type:object size:0x30 -lbl_8052EFA8 = .data:0x8052EFA8; // type:object size:0x30 -lbl_8052EFD8 = .data:0x8052EFD8; // type:object size:0x18 -lbl_8052EFF0 = .data:0x8052EFF0; // type:object size:0x18 -CsGame__lytItemCursor__lytClawShotCsr__vtable = .data:0x8052F008; // type:object size:0x10 -lbl_8052F018 = .data:0x8052F018; // type:object size:0x30 -lbl_8052F048 = .data:0x8052F048; // type:object size:0x30 -lbl_8052F078 = .data:0x8052F078; // type:object size:0x18 -lbl_8052F090 = .data:0x8052F090; // type:object size:0x18 -CsGame__lytItemCursor__lytPachinkoCsr__vtable = .data:0x8052F0A8; // type:object size:0x10 -lbl_8052F0B8 = .data:0x8052F0B8; // type:object size:0x30 -lbl_8052F0E8 = .data:0x8052F0E8; // type:object size:0x30 -lbl_8052F118 = .data:0x8052F118; // type:object size:0x18 -lbl_8052F130 = .data:0x8052F130; // type:object size:0x18 -CsGame__lytItemCursor__lytDowsingCsr__vtable = .data:0x8052F148; // type:object size:0x10 -lbl_8052F158 = .data:0x8052F158; // type:object size:0x30 -lbl_8052F188 = .data:0x8052F188; // type:object size:0x30 -lbl_8052F1B8 = .data:0x8052F1B8; // type:object size:0x18 -lbl_8052F1D0 = .data:0x8052F1D0; // type:object size:0x18 -CsGame__lytItemCursor__lytBowCsr__vtable = .data:0x8052F1E8; // type:object size:0x10 -lbl_8052F1F8 = .data:0x8052F1F8; // type:object size:0x30 -lbl_8052F228 = .data:0x8052F228; // type:object size:0x30 -lbl_8052F258 = .data:0x8052F258; // type:object size:0x18 -lbl_8052F270 = .data:0x8052F270; // type:object size:0x18 +__vt__66sFStateMgr_c = .data:0x8052EED8; // type:object size:0x30 +__vt__96sStateMgr_c = .data:0x8052EF08; // type:object size:0x30 +__vt__43sFStateFct_c = .data:0x8052EF38; // type:object size:0x18 +__vt__40sFState_c = .data:0x8052EF50; // type:object size:0x18 +__vt__Q39dCsGame_c15lytItemCursor_c14lytVacuumCsr_c = .data:0x8052EF68; // type:object size:0x10 +__vt__82sFStateMgr_c = .data:0x8052EF78; // type:object size:0x30 +__vt__112sStateMgr_c = .data:0x8052EFA8; // type:object size:0x30 +__vt__59sFStateFct_c = .data:0x8052EFD8; // type:object size:0x18 +__vt__56sFState_c = .data:0x8052EFF0; // type:object size:0x18 +__vt__Q39dCsGame_c15lytItemCursor_c16lytCrawShotCsr_c = .data:0x8052F008; // type:object size:0x10 +__vt__84sFStateMgr_c = .data:0x8052F018; // type:object size:0x30 +__vt__114sStateMgr_c = .data:0x8052F048; // type:object size:0x30 +__vt__61sFStateFct_c = .data:0x8052F078; // type:object size:0x18 +__vt__58sFState_c = .data:0x8052F090; // type:object size:0x18 +__vt__Q39dCsGame_c15lytItemCursor_c16lytPachinkoCsr_c = .data:0x8052F0A8; // type:object size:0x10 +__vt__84sFStateMgr_c = .data:0x8052F0B8; // type:object size:0x30 +__vt__114sStateMgr_c = .data:0x8052F0E8; // type:object size:0x30 +__vt__61sFStateFct_c = .data:0x8052F118; // type:object size:0x18 +__vt__58sFState_c = .data:0x8052F130; // type:object size:0x18 +__vt__Q39dCsGame_c15lytItemCursor_c15lytDowsingCsr_c = .data:0x8052F148; // type:object size:0x10 +__vt__83sFStateMgr_c = .data:0x8052F158; // type:object size:0x30 +__vt__113sStateMgr_c = .data:0x8052F188; // type:object size:0x30 +__vt__60sFStateFct_c = .data:0x8052F1B8; // type:object size:0x18 +__vt__57sFState_c = .data:0x8052F1D0; // type:object size:0x18 +__vt__Q39dCsGame_c15lytItemCursor_c11lytBowCsr_c = .data:0x8052F1E8; // type:object size:0x10 +__vt__79sFStateMgr_c = .data:0x8052F1F8; // type:object size:0x30 +__vt__109sStateMgr_c = .data:0x8052F228; // type:object size:0x30 +__vt__56sFStateFct_c = .data:0x8052F258; // type:object size:0x18 +__vt__53sFState_c = .data:0x8052F270; // type:object size:0x18 lbl_8052F288 = .data:0x8052F288; // type:object size:0x2C lbl_8052F2B4 = .data:0x8052F2B4; // type:object size:0x7C lbl_8052F330 = .data:0x8052F330; // type:object size:0x10 lbl_8052F340 = .data:0x8052F340; // type:object size:0xCF4 -lbl_80530034 = .data:0x80530034; // type:object size:0x34 -lbl_80530068 = .data:0x80530068; // type:object size:0x34 -lbl_8053009C = .data:0x8053009C; // type:object size:0x34 -lbl_805300D0 = .data:0x805300D0; // type:object size:0x34 -lbl_80530104 = .data:0x80530104; // type:object size:0x34 -lbl_80530138 = .data:0x80530138; // type:object size:0x38 +__vt__58sFStateID_c = .data:0x80530034; // type:object size:0x34 +__vt__60sFStateID_c = .data:0x80530068; // type:object size:0x34 +__vt__60sFStateID_c = .data:0x8053009C; // type:object size:0x34 +__vt__59sFStateID_c = .data:0x805300D0; // type:object size:0x34 +__vt__55sFStateID_c = .data:0x80530104; // type:object size:0x34 +__vt__42sFStateID_c = .data:0x80530138; // type:object size:0x34 g_profile_PLAYER = .data:0x80530170; // type:object size:0x10 ActorLink__PLAYER_ACTIONS = .data:0x80530180; // type:object size:0x1810 lbl_80531990 = .data:0x80531990; // type:object size:0x18 @@ -39859,7 +39859,7 @@ dSystem__s_NewMEM1ArenaHi = .sbss:0x80575240; // type:object size:0x8 data:4byte dSystem__myDylinkInitPhase = .sbss:0x80575248; // type:object size:0x8 sInstance__18ArcCallbackHandler = .sbss:0x80575250; // type:object size:0x8 data:4byte aspectRatio = .sbss:0x80575258; // type:object size:0x8 data:float -lbl_80575260 = .sbss:0x80575260; // type:object size:0x8 data:4byte +sInstance__Q23d2d15dLytStructDList = .sbss:0x80575260; // type:object size:0x8 data:4byte lbl_80575268 = .sbss:0x80575268; // type:object size:0x8 data:4byte someColor = .sbss:0x80575270; // type:object size:0x1 data:byte reloadColorFaderPtr = .sbss:0x80575274; // type:object size:0x4 data:4byte @@ -39983,7 +39983,7 @@ lbl_805754D8 = .sbss:0x805754D8; // type:object size:0x8 data:4byte lbl_805754E0 = .sbss:0x805754E0; // type:object size:0x8 data:4byte lbl_805754E8 = .sbss:0x805754E8; // type:object size:0x8 data:4byte lbl_805754F0 = .sbss:0x805754F0; // type:object size:0x8 data:4byte -lbl_805754F8 = .sbss:0x805754F8; // type:object size:0x8 data:4byte +sInstance__17dLytCursorStick_c = .sbss:0x805754F8; // type:object size:0x8 data:4byte GLOBAL_FI_CONTEXT = .sbss:0x80575500; // type:object size:0x4 data:4byte NAVI_TABLE = .sbss:0x80575504; // type:object size:0x4 data:4byte SMALL_KEY_COUNTER = .sbss:0x80575508; // type:object size:0x8 data:4byte @@ -40120,7 +40120,7 @@ RELOADER_TYPE = .sbss:0x8057579D; // type:object size:0x1 data:byte COPY_FILE_B_TO_CURRENT_AFTER_RESPAWN = .sbss:0x8057579E; // type:object size:0x1 data:byte lbl_8057579F = .sbss:0x8057579F; // type:object size:0x1 data:byte lbl_805757A0 = .sbss:0x805757A0; // type:object size:0x8 data:byte -C_BASE = .sbss:0x805757A8; // type:object size:0x8 data:4byte +sInstance__9dCsBase_c = .sbss:0x805757A8; // type:object size:0x8 data:4byte C_GAME = .sbss:0x805757B0; // type:object size:0x8 data:4byte LINK_PTR2 = .sbss:0x805757B8; // type:object size:0x4 data:4byte lbl_805757BC = .sbss:0x805757BC; // type:object size:0x1 data:byte diff --git a/configure.py b/configure.py index 81c87b62..181fde2d 100644 --- a/configure.py +++ b/configure.py @@ -419,6 +419,8 @@ config.libs = [ Object(NonMatching, "d/lyt/d_lyt_pause_disp_00.cpp"), Object(Matching, "d/lyt/d_lyt_fader.cpp"), Object(Matching, "d/lyt/d_screen_fader.cpp"), + Object(NonMatching, "d/d_cs_base.cpp"), + Object(NonMatching, "d/d_cs_game.cpp"), Object(NonMatching, "d/lyt/d_lyt_common_arrow.cpp"), Object(NonMatching, "toBeSorted/file_manager.cpp"), Object(NonMatching, "toBeSorted/save_manager.cpp"), diff --git a/include/d/d_cs.h b/include/d/d_cs.h new file mode 100644 index 00000000..2843e026 --- /dev/null +++ b/include/d/d_cs.h @@ -0,0 +1,8 @@ +#ifndef D_CS_H +#define D_CS_H + +#include "d/d_base.h" + +class dCs_c : public dBase_c {}; + +#endif diff --git a/include/d/d_cs_base.h b/include/d/d_cs_base.h new file mode 100644 index 00000000..c3aa6346 --- /dev/null +++ b/include/d/d_cs_base.h @@ -0,0 +1,48 @@ +#ifndef D_C_BASE_H +#define D_C_BASE_H + +#include "d/d_cs.h" +#include "d/lyt/d2d.h" +#include "d/lyt/d_lyt_cursor_stick.h" +#include "d/lyt/d_structd.h" +#include "m/m2d.h" + +class dCsBase_c : public dCs_c { +public: + dCsBase_c(); + virtual ~dCsBase_c(); + virtual int create() override; + virtual int doDelete() override; + virtual int draw() override; + virtual int execute() override; + + static dCsBase_c *sInstance; + + int update(); + int similarToDraw(); + + void setField703(bool val) { + field_0x703 = val; + } + +private: + static int sfield0x700Init; + void setCurrentLyt(int lyt); + + /* 0x068 */ m2d::ResAccIf_c mResAcc; + /* 0x11C */ d2d::LytBase_c mLyts[2]; + /* 0x23C */ d2d::LytBase_c *mpCurrLyt; + /* 0x240 */ d2d::dLytStructC mStructC; + /* 0x254 */ dLytCursorStick_c mCursorStick; + /* 0x6F0 */ f32 field_0x6F0; + /* 0x6F4 */ f32 field_0x6F4; + /* 0x6F8 */ f32 field_0x6F8; + /* 0x6FC */ f32 field_0x6FC; + /* 0x700 */ u16 field_0x700; + /* 0x702 */ u8 field_0x702; + /* 0x703 */ u8 field_0x703; + /* 0x704 */ u8 field_0x704; + /* 0x705 */ u8 field_0x705; +}; + +#endif diff --git a/include/d/d_cs_game.h b/include/d/d_cs_game.h new file mode 100644 index 00000000..75283c23 --- /dev/null +++ b/include/d/d_cs_game.h @@ -0,0 +1,351 @@ +#ifndef D_CS_GAME_H +#define D_CS_GAME_H + +#include "common.h" +#include "d/d_cs.h" +#include "d/lyt/d2d.h" +#include "d/lyt/d_structd.h" +#include "m/m2d.h" +#include "s/s_FStateID.hpp" +#include "s/s_State.hpp" +#include "s/s_StateID.hpp" +#include "toBeSorted/effects_struct.h" + +struct CsGameConfigMaybe { + CsGameConfigMaybe(); + virtual ~CsGameConfigMaybe() {} + + /* 0x04 */ f32 field_0x04; + /* 0x08 */ f32 field_0x08; + /* 0x0C */ f32 field_0x0C; + /* 0x10 */ f32 field_0x10; + /* 0x14 */ f32 field_0x14; + /* 0x18 */ f32 field_0x18; + /* 0x1C */ f32 field_0x1C; + /* 0x20 */ f32 field_0x20; + /* 0x24 */ f32 field_0x24; + /* 0x28 */ f32 field_0x28; + /* 0x2C */ f32 field_0x2C; + /* 0x30 */ s32 field_0x30; + /* 0x34 */ f32 field_0x34; + /* 0x38 */ f32 field_0x38; + /* 0x3C */ f32 field_0x3C; + /* 0x40 */ u8 field_0x40; + /* 0x41 */ u8 field_0x41; + /* 0x42 */ u8 field_0x42; +}; + +class EffectRelatedTmp { +public: + EffectRelatedTmp(); + virtual ~EffectRelatedTmp(); + + void doSomething(EffectsStruct *s); +}; + +class EffectRelated : public EffectRelatedTmp { +public: + EffectRelated(u32 x = 0x28, f32 y = 3.5f); + virtual ~EffectRelated() {} +}; + +class dCsGameLytBase_c { +public: + dCsGameLytBase_c() {} + virtual ~dCsGameLytBase_c() {} + virtual void dCsGameLytBase_0x0C() {} // not overridden + virtual void dCsGameLytBase_0x10() {} // overridden by both + virtual void dCsGameLytBase_0x14() = 0; + virtual void dCsGameLytBase_0x18() {} // not overridden + virtual void dCsGameLytBase_0x1C() {} // not overridden + virtual void dCsGameLytBase_0x20() = 0; + virtual void dCsGameLytBase_0x24() = 0; + virtual void dCsGameLytBase_0x28() = 0; + +protected: + /* 0x04 */ u8 field_0x04[0x0C - 0x04]; +}; + +class dCsGameLyt1_c : public dCsGameLytBase_c { +public: + dCsGameLyt1_c() : mpResAcc(nullptr) {} + virtual ~dCsGameLyt1_c() {} + virtual void dCsGameLytBase_0x10() override; + virtual void dCsGameLytBase_0x14() override; + virtual void dCsGameLytBase_0x20() override; + virtual void dCsGameLytBase_0x24() override; + virtual void dCsGameLytBase_0x28() override; + + void setResAcc(m2d::ResAccIf_c *resAcc) { + mpResAcc = resAcc; + } + +private: + /* 0x0C */ m2d::ResAccIf_c *mpResAcc; + /* 0x10 */ d2d::LytBase_c mLyt; +}; + +class dCsGameLyt2_c : public dCsGameLytBase_c { +public: + dCsGameLyt2_c() : mpResAcc(nullptr) {} + virtual ~dCsGameLyt2_c() {} + virtual void dCsGameLytBase_0x10() override; + virtual void dCsGameLytBase_0x14() override; + virtual void dCsGameLytBase_0x20() override; + virtual void dCsGameLytBase_0x24() override; + virtual void dCsGameLytBase_0x28() override; + + void setResAcc(m2d::ResAccIf_c *resAcc) { + mpResAcc = resAcc; + } + +private: + /* 0x0C */ m2d::ResAccIf_c *mpResAcc; + /* 0x10 */ d2d::LytBase_c mLyt; +}; + +class Tmp { +public: + d2d::AnmGroup_c mAnmGroups[0x17]; +}; + +class dCsGameAnmGroups_c { +public: + dCsGameAnmGroups_c() {} + virtual ~dCsGameAnmGroups_c() {} + + Tmp tmp; +}; + +/// @brief Game cursor. +class dCsGame_c : public dCs_c { +public: + dCsGame_c(); + virtual ~dCsGame_c(); + + virtual int create() override; + virtual int doDelete() override; + + void setSomething(int); + + static dCsGame_c *sInstance; + + /// @brief Item cursor. + class lytItemCursor_c { + friend class dCsGame_c; + + public: + + enum CursorType_e { + BOW = 6, + }; + + /// @brief Bow cursor. + class lytBowCsr_c { + public: + lytBowCsr_c(dCsGameAnmGroups_c &g, d2d::LytBase_c *lyt) + : mAnm(g.tmp.mAnmGroups, 0x17), mpLyt(lyt), mStateMgr(*this, sStateID::null) {} + virtual ~lytBowCsr_c() {} + + void init(); + + void enter(); + inline void select() { + mStateMgr.changeState(StateID_Select); + } + void execute(); + + private: + STATE_FUNC_DECLARE(lytBowCsr_c, Invisible); + STATE_FUNC_DECLARE(lytBowCsr_c, Select); + STATE_FUNC_DECLARE(lytBowCsr_c, Ready); + STATE_FUNC_DECLARE(lytBowCsr_c, ToAimStart); + STATE_FUNC_DECLARE(lytBowCsr_c, AimStart); + STATE_FUNC_DECLARE(lytBowCsr_c, Draw); + STATE_FUNC_DECLARE(lytBowCsr_c, Charge); + + /* 0x04 */ UI_STATE_MGR_DECLARE(lytBowCsr_c); + /* 0x40 */ d2d::AnmGroups mAnm; + /* 0x4C */ d2d::LytBase_c *mpLyt; + /* 0x50 */ f32 field_0x50; + /* 0x54 */ f32 field_0x54; + }; + + /// @brief Dowsing cursor. + class lytDowsingCsr_c { + public: + lytDowsingCsr_c(dCsGameAnmGroups_c &g, d2d::LytBase_c *lyt) + : mAnm(g.tmp.mAnmGroups, 0x17), mpLyt(lyt), mStateMgr(*this, sStateID::null) {} + virtual ~lytDowsingCsr_c() {} + + void init(); + + void enter(); + void execute(); + + private: + STATE_FUNC_DECLARE(lytDowsingCsr_c, NotFind); + STATE_FUNC_DECLARE(lytDowsingCsr_c, ToFind); + STATE_FUNC_DECLARE(lytDowsingCsr_c, Find); + STATE_FUNC_DECLARE(lytDowsingCsr_c, FindMinimum); + STATE_FUNC_DECLARE(lytDowsingCsr_c, ToNotFind); + + /* 0x04 */ UI_STATE_MGR_DECLARE(lytDowsingCsr_c); + /* 0x40 */ d2d::AnmGroups mAnm; + /* 0x4C */ d2d::LytBase_c *mpLyt; + /* 0x50 */ EffectsStruct mEffects1; + /* 0x84 */ EffectsStruct mEffects2; + /* 0xB8 */ f32 field_0xB8; + /* 0xBC */ f32 field_0xBC; + /* 0xC0 */ f32 field_0xC0; + }; + + /// @brief Slingshot cursor. + class lytPachinkoCsr_c { + public: + lytPachinkoCsr_c(dCsGameAnmGroups_c &g, d2d::LytBase_c *lyt) + : mAnm(g.tmp.mAnmGroups, 0x17), mpLyt(lyt), mStateMgr(*this, sStateID::null), field_0x50(0), + field_0x54(0.0f), field_0x58(0.0f) {} + virtual ~lytPachinkoCsr_c() {} + + void init(); + + // void enter(); + void execute(); + + private: + STATE_FUNC_DECLARE(lytPachinkoCsr_c, Invisible); + STATE_FUNC_DECLARE(lytPachinkoCsr_c, Select); + STATE_FUNC_DECLARE(lytPachinkoCsr_c, ToDraw); + STATE_FUNC_DECLARE(lytPachinkoCsr_c, Draw); + STATE_FUNC_DECLARE(lytPachinkoCsr_c, Out); + STATE_FUNC_DECLARE(lytPachinkoCsr_c, Charge); + STATE_FUNC_DECLARE(lytPachinkoCsr_c, ChargeFull); + + /* 0x04 */ UI_STATE_MGR_DECLARE(lytPachinkoCsr_c); + /* 0x40 */ d2d::AnmGroups mAnm; + /* 0x4C */ d2d::LytBase_c *mpLyt; + /* 0x50 */ u8 field_0x50; + /* 0x54 */ f32 field_0x54; + /* 0x58 */ f32 field_0x58; + }; + + /// @brief Clawshots cursor. + class lytCrawShotCsr_c { + public: + lytCrawShotCsr_c(dCsGameAnmGroups_c &g, d2d::LytBase_c *lyt) + : mAnm(g.tmp.mAnmGroups, 0x17), mpLyt(lyt), mStateMgr(*this, sStateID::null) {} + virtual ~lytCrawShotCsr_c() {} + + void init(); + + void enter(); + void execute(); + + private: + STATE_FUNC_DECLARE(lytCrawShotCsr_c, Normal); + STATE_FUNC_DECLARE(lytCrawShotCsr_c, ToLock); + STATE_FUNC_DECLARE(lytCrawShotCsr_c, Lock); + STATE_FUNC_DECLARE(lytCrawShotCsr_c, ToNormal); + + /* 0x04 */ UI_STATE_MGR_DECLARE(lytCrawShotCsr_c); + /* 0x40 */ d2d::AnmGroups mAnm; + /* 0x4C */ d2d::LytBase_c *mpLyt; + }; + + /// @brief Gust Bellows cursor. + class lytVacuumCsr_c { + public: + lytVacuumCsr_c(dCsGameAnmGroups_c &g, d2d::LytBase_c *lyt) + : mAnm(g.tmp.mAnmGroups, 0x17), mpLyt(lyt), mStateMgr(*this, sStateID::null) {} + virtual ~lytVacuumCsr_c() {} + + void init(); + + void enter(); + void execute(); + + private: + STATE_FUNC_DECLARE(lytVacuumCsr_c, Normal); + STATE_FUNC_DECLARE(lytVacuumCsr_c, ToLock); + STATE_FUNC_DECLARE(lytVacuumCsr_c, Lock); + STATE_FUNC_DECLARE(lytVacuumCsr_c, ToNormal); + + /* 0x04 */ UI_STATE_MGR_DECLARE(lytVacuumCsr_c); + /* 0x40 */ d2d::AnmGroups mAnm; + /* 0x4C */ d2d::LytBase_c *mpLyt; + /* 0x5C */ u8 field_0x5C; + }; + + public: + lytItemCursor_c() + : mStateMgr(*this, sStateID::null), mAnm(mAnmGroups.tmp.mAnmGroups, 0x17), mBow(mAnmGroups, &mLyt), + mDowsing(mAnmGroups, &mLyt), mPachinko(mAnmGroups, &mLyt), mCrawShot(mAnmGroups, &mLyt), + mVacuum(mAnmGroups, &mLyt) {} + virtual ~lytItemCursor_c() {} + virtual void lytItemCursor0x0C(); + virtual bool init(); + virtual bool remove(); + + bool preInit(); + bool doInit(); + + void setResAcc(m2d::ResAccIf_c *resAcc) { + mpResAcc = resAcc; + } + + void setField0x9A0(u8 val) { + field_0x9A0 = val; + } + + void setNextCursorType(CursorType_e cs) { + field_0x9A8 = 1; + mNextCursorType = cs; + } + + void changeState(const sFStateID_c &newState); + + private: + STATE_FUNC_DECLARE(lytItemCursor_c, Invisible); + STATE_FUNC_DECLARE(lytItemCursor_c, Bow); + STATE_FUNC_DECLARE(lytItemCursor_c, Dowsing); + STATE_FUNC_DECLARE(lytItemCursor_c, Vacuum); + STATE_FUNC_DECLARE(lytItemCursor_c, Pachinko); + STATE_FUNC_DECLARE(lytItemCursor_c, HookShot); + STATE_FUNC_DECLARE(lytItemCursor_c, PlayerCam); + + + /* 0x004 */ f32 field_0x004; + /* 0x008 */ f32 field_0x008; + /* 0x00C */ UI_STATE_MGR_DECLARE(lytItemCursor_c); + + /* 0x048 */ EffectsStruct mEffects; + /* 0x07C */ EffectRelated mEffectRelated; + /* 0x0C8 */ m2d::ResAccIf_c *mpResAcc; + /* 0x0CC */ d2d::LytBase_c mLyt; + /* 0x15C */ dCsGameAnmGroups_c mAnmGroups; + /* 0x720 */ d2d::AnmGroups mAnm; + /* 0x72C */ lytBowCsr_c mBow; + /* 0x794 */ lytDowsingCsr_c mDowsing; + /* 0x86C */ lytPachinkoCsr_c mPachinko; + /* 0x8C0 */ lytCrawShotCsr_c mCrawShot; + /* 0x934 */ lytVacuumCsr_c mVacuum; + /* 0x990 */ u8 field_0x990; + /* 0x99C */ u8 field_0x99C; + /* 0x9A0 */ u8 field_0x9A0; + /* 0x9A8 */ u8 field_0x9A8; + /* 0x9AC */ CursorType_e mNextCursorType; + }; + + void setNextCursorType(lytItemCursor_c::CursorType_e); + + /* 0x068 */ m2d::ResAccIf_c mCursorResAcc; + /* 0x11C */ m2d::ResAccIf_c mMain2DResAcc; + /* 0x1D0 */ d2d::dLytStructCSub mStructC; + /* 0x1EC */ s32 mCursorType; + /* 0x1F0 */ dCsGameLyt1_c mLyt1; + /* 0x290 */ dCsGameLyt2_c mLyt2; + /* 0x330 */ lytItemCursor_c mCursor; +}; + +#endif diff --git a/include/d/lyt/d2d.h b/include/d/lyt/d2d.h index ba920c75..0e037a61 100644 --- a/include/d/lyt/d2d.h +++ b/include/d/lyt/d2d.h @@ -6,7 +6,6 @@ #include "nw4r/lyt/lyt_pane.h" #include "nw4r/lyt/lyt_picture.h" - class dTextBox_c; class dWindow_c; @@ -123,6 +122,7 @@ public: const char *getName() const { return mpName; } + private: /// This name is stored by `build` and usually accessed by dLytMeters' getName functions const char *mpName; @@ -232,7 +232,6 @@ struct AnmGroupBase_c { return mpFrameCtrl->isStop2(); } - inline void playBackwardsOnce() { mpFrameCtrl->setFlags(FLAG_NO_LOOP | FLAG_BACKWARDS); setToEnd2(); @@ -249,6 +248,16 @@ struct AnmGroupBase_c { syncAnmFrame(); } + inline void setRatio(f32 ratio) { + mpFrameCtrl->setRatio(ratio); + syncAnmFrame(); + } + + inline void setBackwardsRatio(f32 ratio) { + mpFrameCtrl->setBackwardsRatio(ratio); + syncAnmFrame(); + } + private: /* 0x04 */ void *field_0x04; /* 0x08 */ m2d::FrameCtrl_c *mpFrameCtrl; @@ -265,6 +274,30 @@ struct AnmGroup_c : public AnmGroupBase_c { /* 0x28 */ m2d::FrameCtrl_c mFrameCtrl; }; +// This abstraction is apparently only ever used in CsGame +class AnmGroups { +public: + AnmGroups(d2d::AnmGroup_c *g, u32 num) : mpAnmGroups(g), mNumAnmGroups(num) {} + virtual ~AnmGroups() {} + + bool init( + d2d::AnmGroup_c *pGroups, const LytBrlanMapping *mMappings, u32 num, m2d::ResAccIf_c *acc, d2d::Layout_c *layout + ); + void remove(); + + d2d::AnmGroup_c &operator[](int idx) { + return mpAnmGroups[idx]; + } + + const d2d::AnmGroup_c &operator[](int idx) const { + return mpAnmGroups[idx]; + } + +private: + /* 0x04 */ d2d::AnmGroup_c *mpAnmGroups; + /* 0x08 */ u32 mNumAnmGroups; +}; + } // namespace d2d #endif diff --git a/include/d/lyt/d_lyt_cursor_stick.h b/include/d/lyt/d_lyt_cursor_stick.h new file mode 100644 index 00000000..83836c0c --- /dev/null +++ b/include/d/lyt/d_lyt_cursor_stick.h @@ -0,0 +1,33 @@ +#ifndef D_LYT_CURSOR_STICK_H +#define D_LYT_CURSOR_STICK_H + +#include "common.h" +#include "d/lyt/d2d.h" +#include "s/s_State.hpp" +#include "s/s_StateMgr.hpp" + +class dLytCursorStick_c { +public: + dLytCursorStick_c() : mStateMgr(*this, sStateID::null) { + sInstance = this; + } + ~dLytCursorStick_c() { + sInstance = nullptr; + } + + static dLytCursorStick_c *sInstance; + static bool draw(); + static bool similarToDraw(); + +private: + STATE_FUNC_DECLARE(dLytCursorStick_c, Off); + STATE_FUNC_DECLARE(dLytCursorStick_c, On); + + /* 0x000 */ UI_STATE_MGR_DECLARE(dLytCursorStick_c); + /* 0x03C */ d2d::ResAccIf_c mResAcc; + /* 0x3AC */ d2d::dLytSub mLyt; + /* 0x440 */ d2d::AnmGroup_c mAnmGroups[1]; + /* 0x480 */ u8 field_0x480[0x49C - 0x480]; +}; + +#endif diff --git a/include/d/lyt/d_structd.h b/include/d/lyt/d_structd.h index e21a711e..51359aa6 100644 --- a/include/d/lyt/d_structd.h +++ b/include/d/lyt/d_structd.h @@ -7,9 +7,29 @@ namespace d2d { +class dLytStructC { +public: + dLytStructC() : field_0x10(0), field_0x14(0) {} + virtual ~dLytStructC() {} + virtual void *dLytStructC0x0C(); + + TListNode mLink; + u16 field_0x10; + s32 field_0x14; +}; + +class dLytStructCSub : public dLytStructC { +private: +public: + dLytStructCSub() {} + virtual ~dLytStructCSub() {} + virtual void *dLytStructC0x0C(); + + u8 field_0x18[8]; +}; + struct dLytStructD_Base { - dLytStructD_Base() - : field_0x0C(0), field_0x10(0), field_0x14(0), field_0x015(0), field_0x016(0) {} + dLytStructD_Base() : field_0x0C(0), field_0x10(0), field_0x14(0), field_0x015(0), field_0x016(0) {} virtual ~dLytStructD_Base() {} TListNode mLink; u32 field_0x0C; @@ -59,15 +79,15 @@ public: static dLytStructDList *sInstance; - void appendToList1(dLytStructD *other); - void removeFromList1(dLytStructD *other); + void appendToList1(dLytStructC *other); + void removeFromList1(dLytStructC *other); void appendToList2(dLytStructD *other); void removeFromList2(dLytStructD *other); private: + TList mList1; TList mList2; - TList mList1; bool field_0x18; }; diff --git a/include/m/m2d.h b/include/m/m2d.h index 839a12de..2d3a1750 100644 --- a/include/m/m2d.h +++ b/include/m/m2d.h @@ -89,6 +89,16 @@ public: mFlags = mFlags | FLAG_BACKWARDS; } + inline void setRatio(f32 ratio) { + f32 actualEnd = mEndFrame - 1.0f; + setFrame(actualEnd * ratio); + } + + inline void setBackwardsRatio(f32 ratio) { + f32 actualEnd = mEndFrame - 1.0f; + setFrame(actualEnd - (ratio * actualEnd)); + } + private: inline bool notLooping() const { return (mFlags & FLAG_NO_LOOP) != 0; diff --git a/include/toBeSorted/effects_struct.h b/include/toBeSorted/effects_struct.h index 55be29fd..c920f961 100644 --- a/include/toBeSorted/effects_struct.h +++ b/include/toBeSorted/effects_struct.h @@ -2,7 +2,7 @@ #define EFFECTS_STRUCT_H #include "common.h" -#include "d/a/d_a_base.h" +#include "d/d_base.h" class EffectsStruct { private: @@ -11,16 +11,16 @@ private: public: // vt at 0x1C EffectsStruct(); - EffectsStruct(dAcBase_c *); + EffectsStruct(dBase_c *); virtual ~EffectsStruct(); - inline void init(dAcBase_c *owner) { + inline void init(dBase_c *owner) { mpOwner = owner; } private: u8 field_0x20[0x28 - 0x20]; - /* 0x28 */ dAcBase_c *mpOwner; + /* 0x28 */ dBase_c *mpOwner; u8 field_0x2C[0x34 - 0x2C]; }; diff --git a/src/d/d_cs_base.cpp b/src/d/d_cs_base.cpp new file mode 100644 index 00000000..5c2d8153 --- /dev/null +++ b/src/d/d_cs_base.cpp @@ -0,0 +1,120 @@ +#include "d/d_cs_base.h" + +#include "common.h" +#include "f/f_base.h" +#include "f/f_profile_name.h" +#include "nw4r/math/math_types.h" +#include "toBeSorted/arc_managers/layout_arc_manager.h" + +SPECIAL_BASE_PROFILE(C_BASE, dCsBase_c, fProfile::C_BASE, 0x2C0, 0x06F9); + +dCsBase_c::dCsBase_c() + : mpCurrLyt(nullptr), field_0x6F0(0.0f), field_0x6F4(0.0f), field_0x6F8(0.0f), field_0x6FC(0.0f), field_0x700(0), + field_0x702(0), field_0x703(0), field_0x704(0), field_0x705(0) { + sInstance = this; +} + +dCsBase_c::~dCsBase_c() { + sInstance = nullptr; +} + +extern "C" void fn_8016B2B0(); +extern "C" void fn_8016B2E0(); +extern "C" bool lbl_80572D10; +extern "C" int lbl_80573438; + +static const char *sLytNames[] = { + "P1_Def.brlyt", + "P1_Cat.brlyt", +}; + +#pragma explicit_zero_data on +int dCsBase_c::sfield0x700Init = 0; +#pragma explicit_zero_data off + +int dCsBase_c::create() { + void *data = LayoutArcManager::sInstance->getLoadedData("cursor"); + mResAcc.attach(data, "arc"); + + for (int i = 0; i < 2; i++) { + mLyts[i].setResAcc(&mResAcc); + mLyts[i].build(sLytNames[i], nullptr); + mLyts[i].setPriority(0x88); + mLyts[i].calc(); + } + setCurrentLyt(0); + mStructC.field_0x10 = 1; + d2d::dLytStructDList::sInstance->appendToList1(&mStructC); + fn_8016B2B0(); + field_0x6F0 = 0.0f; + field_0x6F4 = 0.0f; + field_0x6F8 = 0.0f; + field_0x6FC = 0.0f; + + field_0x700 = sfield0x700Init; + field_0x702 = 0; + field_0x703 = 0; + + return SUCCEEDED; +} + +int dCsBase_c::doDelete() { + d2d::dLytStructDList::sInstance->removeFromList1(&mStructC); + fn_8016B2E0(); + mResAcc.detach(); + return SUCCEEDED; +} + +int dCsBase_c::execute() { + // TODO this needs player / controller / d_pad stuff? + + return SUCCEEDED; +} + +int dCsBase_c::draw() { + if (field_0x704 == 1) { + return SUCCEEDED; + } + + if (field_0x703 && lbl_80572D10 && field_0x702) { + nw4r::lyt::Pane *p = mpCurrLyt->getLayout()->GetRootPane(); + nw4r::math::VEC3 pos; + pos.x = field_0x6F0; + pos.y = field_0x6F4; + pos.z = 0.0f; + p->SetTranslate(pos); + mpCurrLyt->calc(); + mpCurrLyt->addToDrawList(); + } + mCursorStick.draw(); + + return SUCCEEDED; +} + +void dCsBase_c::setCurrentLyt(int lyt) { + mpCurrLyt = &mLyts[lyt]; +} + +int dCsBase_c::update() { + return execute(); +} + +int dCsBase_c::similarToDraw() { + if (field_0x704 != 1) { + return SUCCEEDED; + } + + if (field_0x703 && lbl_80572D10 && field_0x702) { + nw4r::lyt::Pane *p = mpCurrLyt->getLayout()->GetRootPane(); + nw4r::math::VEC3 pos; + pos.x = field_0x6F0; + pos.y = field_0x6F4; + pos.z = 0.0f; + p->SetTranslate(pos); + mpCurrLyt->calc(); + mpCurrLyt->draw(); + } + mCursorStick.similarToDraw(); + + return SUCCEEDED; +} diff --git a/src/d/d_cs_game.cpp b/src/d/d_cs_game.cpp new file mode 100644 index 00000000..144617a1 --- /dev/null +++ b/src/d/d_cs_game.cpp @@ -0,0 +1,627 @@ +#include "d/d_cs_game.h" + +#include "d/d_cs_base.h" +#include "d/lyt/d2d.h" +#include "d/lyt/d_structd.h" +#include "f/f_base.h" +#include "toBeSorted/arc_managers/layout_arc_manager.h" + +SPECIAL_BASE_PROFILE(C_GAME, dCsGame_c, fProfile::C_GAME, 0x2BF, 0x06F9); + +CsGameConfigMaybe sConfig; + +CsGameConfigMaybe::CsGameConfigMaybe() { + field_0x04 = 0.0f; + field_0x08 = 0.0f; + field_0x0C = 0.0f; + field_0x10 = 0.0f; + field_0x14 = 3.0f; + field_0x20 = 10.0f; + field_0x24 = 1.0f; + field_0x28 = 6.0f; + field_0x18 = 1.3f; + field_0x1C = 0.5f; + field_0x42 = 0; + field_0x2C = 3.5f; + field_0x30 = 40; + field_0x34 = 17.0f; + field_0x38 = 3.0f; + field_0x41 = 0; + field_0x3C = 1.0f; + field_0x40 = 5; +} +// CsGameConfigMaybe::~CsGameConfigMaybe() {} + +STATE_DEFINE(dCsGame_c::lytItemCursor_c, Invisible); +STATE_DEFINE(dCsGame_c::lytItemCursor_c, Bow); +STATE_DEFINE(dCsGame_c::lytItemCursor_c, Dowsing); +STATE_DEFINE(dCsGame_c::lytItemCursor_c, Vacuum); +STATE_DEFINE(dCsGame_c::lytItemCursor_c, Pachinko); +STATE_DEFINE(dCsGame_c::lytItemCursor_c, HookShot); +STATE_DEFINE(dCsGame_c::lytItemCursor_c, PlayerCam); + +STATE_DEFINE(dCsGame_c::lytItemCursor_c::lytDowsingCsr_c, NotFind); +STATE_DEFINE(dCsGame_c::lytItemCursor_c::lytDowsingCsr_c, ToFind); +STATE_DEFINE(dCsGame_c::lytItemCursor_c::lytDowsingCsr_c, Find); +STATE_DEFINE(dCsGame_c::lytItemCursor_c::lytDowsingCsr_c, FindMinimum); +STATE_DEFINE(dCsGame_c::lytItemCursor_c::lytDowsingCsr_c, ToNotFind); + +STATE_DEFINE(dCsGame_c::lytItemCursor_c::lytBowCsr_c, Invisible); +STATE_DEFINE(dCsGame_c::lytItemCursor_c::lytBowCsr_c, Select); +STATE_DEFINE(dCsGame_c::lytItemCursor_c::lytBowCsr_c, Ready); +STATE_DEFINE(dCsGame_c::lytItemCursor_c::lytBowCsr_c, ToAimStart); +STATE_DEFINE(dCsGame_c::lytItemCursor_c::lytBowCsr_c, AimStart); +STATE_DEFINE(dCsGame_c::lytItemCursor_c::lytBowCsr_c, Draw); +STATE_DEFINE(dCsGame_c::lytItemCursor_c::lytBowCsr_c, Charge); + +STATE_DEFINE(dCsGame_c::lytItemCursor_c::lytPachinkoCsr_c, Invisible); +STATE_DEFINE(dCsGame_c::lytItemCursor_c::lytPachinkoCsr_c, Select); +STATE_DEFINE(dCsGame_c::lytItemCursor_c::lytPachinkoCsr_c, ToDraw); +STATE_DEFINE(dCsGame_c::lytItemCursor_c::lytPachinkoCsr_c, Draw); +STATE_DEFINE(dCsGame_c::lytItemCursor_c::lytPachinkoCsr_c, Out); +STATE_DEFINE(dCsGame_c::lytItemCursor_c::lytPachinkoCsr_c, Charge); +STATE_DEFINE(dCsGame_c::lytItemCursor_c::lytPachinkoCsr_c, ChargeFull); + +STATE_DEFINE(dCsGame_c::lytItemCursor_c::lytCrawShotCsr_c, Normal); +STATE_DEFINE(dCsGame_c::lytItemCursor_c::lytCrawShotCsr_c, ToLock); +STATE_DEFINE(dCsGame_c::lytItemCursor_c::lytCrawShotCsr_c, Lock); +STATE_DEFINE(dCsGame_c::lytItemCursor_c::lytCrawShotCsr_c, ToNormal); + +STATE_DEFINE(dCsGame_c::lytItemCursor_c::lytVacuumCsr_c, Normal); +STATE_DEFINE(dCsGame_c::lytItemCursor_c::lytVacuumCsr_c, ToLock); +STATE_DEFINE(dCsGame_c::lytItemCursor_c::lytVacuumCsr_c, Lock); +STATE_DEFINE(dCsGame_c::lytItemCursor_c::lytVacuumCsr_c, ToNormal); + +#define MAIN_ANIM_CURSOR 0 +#define MAIN_ANIM_DOWSE_IN_OUT 1 +#define MAIN_ANIM_LOOP 2 +#define MAIN_ANIM_HOOK_FIX 3 +#define MAIN_ANIM_VACUUM_LOCK 4 +#define MAIN_ANIM_LOCK_LOOP 5 +#define MAIN_ANIM_DOWSE_LOOP_1 6 +#define MAIN_ANIM_DOWSE_LOOP_2 7 +#define MAIN_ANIM_DOWSE_LOOP_3 8 +#define MAIN_ANIM_DOWSE_ZOOM 9 +#define MAIN_ANIM_ARROW_ON 10 +#define MAIN_ANIM_ARROW_CURSOR 11 +#define MAIN_ANIM_ARROW_EFFECT 12 +#define MAIN_ANIM_ARROW_KEEP 13 +#define MAIN_ANIM_ARROW_PEAK 14 +#define MAIN_ANIM_SLING_ON 15 +#define MAIN_ANIM_SLING_KEEP 16 +#define MAIN_ANIM_SLING_PEAK 17 +#define MAIN_ANIM_SLING_PEAK_RING 18 +#define MAIN_ANIM_SLING_OUT 19 +#define MAIN_ANIM_ARROW_LOOP 20 +#define MAIN_ANIM_LOOP_END 21 +#define MAIN_ANIM_LOOP_END_2 22 + +static const d2d::LytBrlanMapping lytItemCursorMap[] = { + { "itemCursor_00_cursor.brlan", "G_cursor_00"}, + { "itemCursor_00_dowseInOut.brlan", "G_dowseAll_00"}, + { "itemCursor_00_loop.brlan", "G_loop_00"}, + { "itemCursor_00_hookFix.brlan", "G_hookFix_00"}, + { "itemCursor_00_vacuumLock.brlan", "G_vacuumLock_00"}, + { "itemCursor_00_lockLoop.brlan", "G_lockLoop_00"}, + { "itemCursor_00_dowseLoop1.brlan", "G_dowseLoop_00"}, + { "itemCursor_00_dowseLoop2.brlan", "G_dowseLoop_01"}, + { "itemCursor_00_dowseLoop3.brlan", "G_auraLoop_00"}, + { "itemCursor_00_dowseZoom.brlan", "G_dowseAll_00"}, + { "itemCursor_00_arrowOn.brlan", "G_arrowOn_00"}, + { "itemCursor_00_arrowCursor.brlan", "G_arrowCursor_00"}, + { "itemCursor_00_arrowEffect.brlan", "G_arrowEffect_00"}, + { "itemCursor_00_arrowKeep.brlan", "G_arrowCursor_00"}, + { "itemCursor_00_arrowPeak.brlan", "G_arrowCursor_00"}, + { "itemCursor_00_slingOn.brlan", "G_slingEffect_00"}, + { "itemCursor_00_slingKeep.brlan", "G_slingGauge_00"}, + { "itemCursor_00_slingPeak.brlan", "G_slingAll_00"}, + {"itemCursor_00_slingPeakRing.brlan", "G_slingRing_00"}, + { "itemCursor_00_slingOut.brlan", "G_slingEffect_00"}, + { "itemCursor_00_loop2.brlan", "G_arrowLoop"}, + { "itemCursor_00_loopEnd.brlan", "G_loopEnd_00"}, + { "itemCursor_00_loopEnd2.brlan", "G_loopEnd_01"}, +}; + +dCsGame_c::dCsGame_c() : mCursorType(0) { + sInstance = this; +} + +dCsGame_c::~dCsGame_c() { + sInstance = nullptr; +} + +int dCsGame_c::create() { + void *csData = LayoutArcManager::sInstance->getLoadedData("cursor"); + mCursorResAcc.attach(csData, "arc"); + void *mainData = LayoutArcManager::sInstance->getLoadedData("Main2D"); + mMain2DResAcc.attach(mainData, ""); + + mLyt1.setResAcc(&mCursorResAcc); + mLyt1.dCsGameLytBase_0x10(); + mLyt2.setResAcc(&mCursorResAcc); + mLyt2.dCsGameLytBase_0x10(); + mCursor.setResAcc(&mMain2DResAcc); + mCursor.init(); + + setSomething(0); + mCursorType = 0; + + mCursor.setField0x9A0(0); + mStructC.field_0x10 = 2; + d2d::dLytStructDList::sInstance->appendToList1(&mStructC); + dCsBase_c::sInstance->setField703(false); + return SUCCEEDED; +} + +int dCsGame_c::doDelete() { + mCursor.remove(); + mLyt2.dCsGameLytBase_0x14(); + mLyt1.dCsGameLytBase_0x14(); + d2d::dLytStructDList::sInstance->removeFromList1(&mStructC); + mCursorResAcc.detach(); + mMain2DResAcc.detach(); + return SUCCEEDED; +} + +void dCsGame_c::setNextCursorType(lytItemCursor_c::CursorType_e cs) { + mCursor.setNextCursorType(cs); +} + +void dCsGame_c::lytItemCursor_c::initializeState_Invisible() {} +void dCsGame_c::lytItemCursor_c::executeState_Invisible() {} +void dCsGame_c::lytItemCursor_c::finalizeState_Invisible() {} + +void dCsGame_c::lytItemCursor_c::initializeState_Bow() { + mBow.enter(); + mBow.select(); +} +void dCsGame_c::lytItemCursor_c::executeState_Bow() { + field_0x990 = 1; + mBow.execute(); +} +void dCsGame_c::lytItemCursor_c::finalizeState_Bow() {} + +void dCsGame_c::lytItemCursor_c::initializeState_Dowsing() { + mDowsing.enter(); +} +void dCsGame_c::lytItemCursor_c::executeState_Dowsing() { + mDowsing.execute(); +} +void dCsGame_c::lytItemCursor_c::finalizeState_Dowsing() {} + +void dCsGame_c::lytItemCursor_c::initializeState_Vacuum() { + mVacuum.enter(); +} +void dCsGame_c::lytItemCursor_c::executeState_Vacuum() { + field_0x99C = 1; + mVacuum.execute(); +} +void dCsGame_c::lytItemCursor_c::finalizeState_Vacuum() {} + +void dCsGame_c::lytItemCursor_c::initializeState_Pachinko() {} +void dCsGame_c::lytItemCursor_c::executeState_Pachinko() { + field_0x99C = 1; + mPachinko.execute(); +} +void dCsGame_c::lytItemCursor_c::finalizeState_Pachinko() {} + +void dCsGame_c::lytItemCursor_c::initializeState_HookShot() { + mCrawShot.enter(); +} +void dCsGame_c::lytItemCursor_c::executeState_HookShot() { + field_0x99C = 1; + mCrawShot.execute(); +} +void dCsGame_c::lytItemCursor_c::finalizeState_HookShot() {} + +void dCsGame_c::lytItemCursor_c::initializeState_PlayerCam() {} +void dCsGame_c::lytItemCursor_c::executeState_PlayerCam() { + d2d::AnmGroup_c &g = mAnmGroups.tmp.mAnmGroups[MAIN_ANIM_CURSOR]; + g.setFrame(9.0f); +} +void dCsGame_c::lytItemCursor_c::finalizeState_PlayerCam() {} + +void dCsGame_c::lytItemCursor_c::changeState(const sFStateID_c &newState) { + mStateMgr.changeState(newState); +} + +bool dCsGame_c::lytItemCursor_c::doInit() { + mEffects.init(dCsGame_c::sInstance); + preInit(); + mLyt.setPriority(0x88); + mLyt.calc(); + mAnm.init(mAnmGroups.tmp.mAnmGroups, lytItemCursorMap, 0x17, mpResAcc, mLyt.getLayout()); + + for (int i = 0; i < 0x17; i++) { + mAnmGroups.tmp.mAnmGroups[i].setDirection(false); + mAnmGroups.tmp.mAnmGroups[i].setAnimEnable(false); + } + + mAnmGroups.tmp.mAnmGroups[MAIN_ANIM_CURSOR].setAnimEnable(true); + mAnmGroups.tmp.mAnmGroups[MAIN_ANIM_LOOP].setFrame(0.0f); + mAnmGroups.tmp.mAnmGroups[MAIN_ANIM_LOOP].setAnimEnable(true); + + mAnmGroups.tmp.mAnmGroups[MAIN_ANIM_ARROW_LOOP].setAnimEnable(true); + mAnmGroups.tmp.mAnmGroups[MAIN_ANIM_ARROW_LOOP].setFrame(0.0f); + + mBow.init(); + mDowsing.init(); + mPachinko.init(); + mCrawShot.init(); + mVacuum.init(); + + mAnmGroups.tmp.mAnmGroups[MAIN_ANIM_VACUUM_LOCK].setAnimEnable(false); + mEffectRelated.doSomething(&mEffects); + mLyt.setPriority(0x88); + + mLyt.calc(); + mAnmGroups.tmp.mAnmGroups[0x14].setAnimEnable(false); + mStateMgr.changeState(StateID_Invisible); + return true; +} + +void dCsGame_c::lytItemCursor_c::lytDowsingCsr_c::initializeState_NotFind() {} +void dCsGame_c::lytItemCursor_c::lytDowsingCsr_c::executeState_NotFind() { + if (field_0xC0 < 0.999f) { + mAnm[MAIN_ANIM_DOWSE_IN_OUT].setAnimEnable(true); + mAnm[MAIN_ANIM_DOWSE_IN_OUT].setForward(); + mStateMgr.changeState(StateID_Find); + } +} +void dCsGame_c::lytItemCursor_c::lytDowsingCsr_c::finalizeState_NotFind() {} + +void dCsGame_c::lytItemCursor_c::lytDowsingCsr_c::initializeState_ToFind() {} +void dCsGame_c::lytItemCursor_c::lytDowsingCsr_c::executeState_ToFind() { + if (mAnm[MAIN_ANIM_DOWSE_IN_OUT].isEndReached()) { + mAnm[MAIN_ANIM_DOWSE_IN_OUT].setAnimEnable(false); + mAnm[MAIN_ANIM_DOWSE_ZOOM].setAnimEnable(true); + // TODO + mAnm[MAIN_ANIM_DOWSE_ZOOM].setRatio(1.0f - field_0xC0); + mpLyt->calc(); + mStateMgr.changeState(StateID_Find); + } else { + mAnm[MAIN_ANIM_DOWSE_IN_OUT].play(); + } +} +void dCsGame_c::lytItemCursor_c::lytDowsingCsr_c::finalizeState_ToFind() {} + +void dCsGame_c::lytItemCursor_c::lytDowsingCsr_c::initializeState_Find() {} +void dCsGame_c::lytItemCursor_c::lytDowsingCsr_c::executeState_Find() { + mAnm[MAIN_ANIM_DOWSE_LOOP_2].setAnimEnable(true); + mAnm[MAIN_ANIM_DOWSE_ZOOM].setAnimEnable(true); + // TODO + mAnm[MAIN_ANIM_DOWSE_ZOOM].setRatio(1.0f - field_0xC0); + + if (field_0xC0 > 0.9999f) { + mAnm[MAIN_ANIM_DOWSE_ZOOM].setToEnd(); + mpLyt->calc(); + mAnm[MAIN_ANIM_DOWSE_IN_OUT].setAnimEnable(true); + mAnm[MAIN_ANIM_DOWSE_ZOOM].setAnimEnable(false); + mAnm[MAIN_ANIM_DOWSE_IN_OUT].setBackward(); + mStateMgr.changeState(StateID_ToNotFind); + } else if (field_0xC0 < 0.0001f) { + mAnm[MAIN_ANIM_DOWSE_LOOP_2].setFrame(0.0f); + mAnm[MAIN_ANIM_DOWSE_LOOP_3].setAnimEnable(true); + mAnm[MAIN_ANIM_DOWSE_LOOP_3].setFrame(0.0f); + mpLyt->calc(); + mAnm[MAIN_ANIM_DOWSE_LOOP_2].setAnimEnable(false); + mStateMgr.changeState(StateID_FindMinimum); + } +} +void dCsGame_c::lytItemCursor_c::lytDowsingCsr_c::finalizeState_Find() {} + +void dCsGame_c::lytItemCursor_c::lytDowsingCsr_c::initializeState_FindMinimum() {} +void dCsGame_c::lytItemCursor_c::lytDowsingCsr_c::executeState_FindMinimum() { + if (field_0xC0 > 0.0001f) { + mStateMgr.changeState(StateID_Find); + } +} +void dCsGame_c::lytItemCursor_c::lytDowsingCsr_c::finalizeState_FindMinimum() {} + +void dCsGame_c::lytItemCursor_c::lytDowsingCsr_c::initializeState_ToNotFind() {} +void dCsGame_c::lytItemCursor_c::lytDowsingCsr_c::executeState_ToNotFind() { + if (mAnm[MAIN_ANIM_DOWSE_IN_OUT].isStop2()) { + mpLyt->calc(); + mStateMgr.changeState(StateID_NotFind); + mAnm[MAIN_ANIM_DOWSE_IN_OUT].setAnimEnable(false); + } else { + mAnm[MAIN_ANIM_DOWSE_IN_OUT].play(); + } +} +void dCsGame_c::lytItemCursor_c::lytDowsingCsr_c::finalizeState_ToNotFind() {} + +void dCsGame_c::lytItemCursor_c::lytBowCsr_c::initializeState_Invisible() {} +void dCsGame_c::lytItemCursor_c::lytBowCsr_c::executeState_Invisible() {} +void dCsGame_c::lytItemCursor_c::lytBowCsr_c::finalizeState_Invisible() {} + +void dCsGame_c::lytItemCursor_c::lytBowCsr_c::initializeState_Select() {} +void dCsGame_c::lytItemCursor_c::lytBowCsr_c::executeState_Select() {} +void dCsGame_c::lytItemCursor_c::lytBowCsr_c::finalizeState_Select() {} + +void dCsGame_c::lytItemCursor_c::lytBowCsr_c::initializeState_Ready() {} +void dCsGame_c::lytItemCursor_c::lytBowCsr_c::executeState_Ready() { + mAnm[MAIN_ANIM_LOOP].setAnimEnable(true); +} +void dCsGame_c::lytItemCursor_c::lytBowCsr_c::finalizeState_Ready() {} + +void dCsGame_c::lytItemCursor_c::lytBowCsr_c::initializeState_ToAimStart() {} +void dCsGame_c::lytItemCursor_c::lytBowCsr_c::executeState_ToAimStart() {} +void dCsGame_c::lytItemCursor_c::lytBowCsr_c::finalizeState_ToAimStart() {} + +void dCsGame_c::lytItemCursor_c::lytBowCsr_c::initializeState_AimStart() { + mAnm[MAIN_ANIM_ARROW_PEAK].setFrame(0.0f); + mAnm[MAIN_ANIM_ARROW_KEEP].setFrame(0.0f); + mAnm[MAIN_ANIM_ARROW_CURSOR].setAnimEnable(false); + mAnm[MAIN_ANIM_LOOP_END].setAnimEnable(true); + mAnm[MAIN_ANIM_LOOP_END].setFrame(0.0f); + mpLyt->calc(); + mAnm[MAIN_ANIM_LOOP_END].setAnimEnable(false); + mAnm[MAIN_ANIM_LOOP].setAnimEnable(false); + mAnm[MAIN_ANIM_ARROW_ON].setAnimEnable(true); + mAnm[MAIN_ANIM_ARROW_ON].setFrame(0.0f); +} +void dCsGame_c::lytItemCursor_c::lytBowCsr_c::executeState_AimStart() { + if (mAnm[MAIN_ANIM_ARROW_ON].isFlag2()) { + mAnm[MAIN_ANIM_ARROW_ON].play(); + if (mAnm[MAIN_ANIM_ARROW_ON].isEndReached()) { + mpLyt->calc(); + mAnm[MAIN_ANIM_ARROW_ON].setAnimEnable(false); + mAnm[MAIN_ANIM_ARROW_LOOP].setAnimEnable(true); + mpLyt->calc(); + } + } +} +void dCsGame_c::lytItemCursor_c::lytBowCsr_c::finalizeState_AimStart() {} + +void dCsGame_c::lytItemCursor_c::lytBowCsr_c::initializeState_Draw() { + mAnm[MAIN_ANIM_LOOP_END_2].setAnimEnable(true); + mAnm[MAIN_ANIM_LOOP_END_2].setFrame(0.0f); + mpLyt->calc(); + mAnm[MAIN_ANIM_LOOP_END_2].setAnimEnable(false); + mAnm[MAIN_ANIM_ARROW_LOOP].setAnimEnable(false); +} +void dCsGame_c::lytItemCursor_c::lytBowCsr_c::executeState_Draw() { + // TODO ??? + mAnm[MAIN_ANIM_ARROW_CURSOR].setAnimEnable(true); + f32 t = field_0x50; + if (t < 0.0001f) { + t = 0.0f; + } else if (t > 0.9999f) { + t = 1.0f; + } + mAnm[MAIN_ANIM_ARROW_CURSOR].setBackwardsRatio(t); + if (t <= 0.0f) { + mAnm[MAIN_ANIM_ARROW_CURSOR].setAnimEnable(false); + mStateMgr.changeState(StateID_Charge); + } +} +void dCsGame_c::lytItemCursor_c::lytBowCsr_c::finalizeState_Draw() {} + +void dCsGame_c::lytItemCursor_c::lytBowCsr_c::initializeState_Charge() { + mAnm[MAIN_ANIM_ARROW_EFFECT].setAnimEnable(true); + mAnm[MAIN_ANIM_ARROW_EFFECT].setFrame(0.0f); +} +extern "C" void *SOUND_EFFECT_SOUND_MGR; +extern "C" void SmallSoundManager__playSound(void *, s32); +void dCsGame_c::lytItemCursor_c::lytBowCsr_c::executeState_Charge() { + if (field_0x54 >= 1.0f) { + if (!mAnm[MAIN_ANIM_ARROW_PEAK].isFlag2()) { + mAnm[MAIN_ANIM_ARROW_PEAK].setAnimEnable(true); + mAnm[MAIN_ANIM_ARROW_PEAK].setFrame(0.0f); + SmallSoundManager__playSound(SOUND_EFFECT_SOUND_MGR, 0x148D); + } + mAnm[MAIN_ANIM_ARROW_KEEP].setAnimEnable(false); + } else { + if (field_0x50 > 0.0001f) { + mAnm[MAIN_ANIM_ARROW_CURSOR].setAnimEnable(true); + mStateMgr.changeState(StateID_Draw); + mAnm[MAIN_ANIM_ARROW_PEAK].setAnimEnable(false); + mAnm[MAIN_ANIM_ARROW_KEEP].setAnimEnable(false); + } else { + mAnm[MAIN_ANIM_ARROW_PEAK].setAnimEnable(false); + mAnm[MAIN_ANIM_ARROW_KEEP].setAnimEnable(true); + } + } +} +void dCsGame_c::lytItemCursor_c::lytBowCsr_c::finalizeState_Charge() {} + +void dCsGame_c::lytItemCursor_c::lytPachinkoCsr_c::initializeState_Invisible() {} +void dCsGame_c::lytItemCursor_c::lytPachinkoCsr_c::executeState_Invisible() {} +void dCsGame_c::lytItemCursor_c::lytPachinkoCsr_c::finalizeState_Invisible() {} + +void dCsGame_c::lytItemCursor_c::lytPachinkoCsr_c::initializeState_Select() {} +void dCsGame_c::lytItemCursor_c::lytPachinkoCsr_c::executeState_Select() { + if (!field_0x50) { + return; + } + mStateMgr.changeState(StateID_ToDraw); +} +void dCsGame_c::lytItemCursor_c::lytPachinkoCsr_c::finalizeState_Select() {} + +void dCsGame_c::lytItemCursor_c::lytPachinkoCsr_c::initializeState_ToDraw() { + mAnm[MAIN_ANIM_SLING_ON].setAnimEnable(true); + mAnm[MAIN_ANIM_SLING_ON].setFrame(0.0f); + field_0x58 = 0.0f; +} +extern "C" int getCurrentSlingshotType(); +void dCsGame_c::lytItemCursor_c::lytPachinkoCsr_c::executeState_ToDraw() { + if (field_0x50) { + if (mAnm[MAIN_ANIM_SLING_ON].isEndReached()) { + mpLyt->calc(); + mAnm[MAIN_ANIM_SLING_ON].setAnimEnable(false); + if (getCurrentSlingshotType() == 2) { + field_0x58 = field_0x54; + mStateMgr.changeState(StateID_Charge); + } else { + mStateMgr.changeState(StateID_Draw); + } + } else { + mAnm[MAIN_ANIM_SLING_ON].play(); + } + } else { + mAnm[MAIN_ANIM_SLING_ON].setAnimEnable(false); + mStateMgr.changeState(StateID_Out); + } +} +void dCsGame_c::lytItemCursor_c::lytPachinkoCsr_c::finalizeState_ToDraw() {} + +void dCsGame_c::lytItemCursor_c::lytPachinkoCsr_c::initializeState_Draw() {} +void dCsGame_c::lytItemCursor_c::lytPachinkoCsr_c::executeState_Draw() { + if (field_0x50) { + return; + } + mStateMgr.changeState(StateID_Out); +} +void dCsGame_c::lytItemCursor_c::lytPachinkoCsr_c::finalizeState_Draw() {} + +void dCsGame_c::lytItemCursor_c::lytPachinkoCsr_c::initializeState_Out() { + mAnm[MAIN_ANIM_SLING_OUT].setAnimEnable(true); + mAnm[MAIN_ANIM_SLING_OUT].setFrame(0.0f); +} +void dCsGame_c::lytItemCursor_c::lytPachinkoCsr_c::executeState_Out() { + if (mAnm[MAIN_ANIM_SLING_OUT].isEndReached()) { + mpLyt->calc(); + mAnm[MAIN_ANIM_SLING_OUT].setAnimEnable(false); + mStateMgr.changeState(StateID_Select); + } else { + mAnm[MAIN_ANIM_SLING_OUT].play(); + } +} +void dCsGame_c::lytItemCursor_c::lytPachinkoCsr_c::finalizeState_Out() {} + +void dCsGame_c::lytItemCursor_c::lytPachinkoCsr_c::initializeState_Charge() { + mAnm[MAIN_ANIM_SLING_KEEP].setAnimEnable(true); + mAnm[MAIN_ANIM_SLING_KEEP].setFrame(0.0f); + mpLyt->calc(); +} +void dCsGame_c::lytItemCursor_c::lytPachinkoCsr_c::executeState_Charge() { + if (field_0x50) { + if (field_0x54 >= 1.0f) { + mAnm[MAIN_ANIM_SLING_KEEP].setToEnd(); + mpLyt->calc(); + mAnm[MAIN_ANIM_SLING_KEEP].setAnimEnable(false); + mStateMgr.changeState(StateID_ChargeFull); + } else { + // TODO we need a second load of anm control here + mAnm[MAIN_ANIM_SLING_KEEP].setRatio((field_0x54 - field_0x58) / (1.0f - field_0x58)); + } + } else { + mAnm[MAIN_ANIM_SLING_KEEP].setAnimEnable(false); + mStateMgr.changeState(StateID_Out); + } +} +void dCsGame_c::lytItemCursor_c::lytPachinkoCsr_c::finalizeState_Charge() {} + +void dCsGame_c::lytItemCursor_c::lytPachinkoCsr_c::initializeState_ChargeFull() { + mAnm[MAIN_ANIM_SLING_PEAK].setAnimEnable(true); + mAnm[MAIN_ANIM_SLING_PEAK].setFrame(0.0f); + mAnm[MAIN_ANIM_SLING_PEAK_RING].setAnimEnable(true); + mAnm[MAIN_ANIM_SLING_PEAK_RING].setFrame(0.0f); +} +void dCsGame_c::lytItemCursor_c::lytPachinkoCsr_c::executeState_ChargeFull() { + if (field_0x50) { + if (mAnm[MAIN_ANIM_SLING_PEAK].isEndReached()) { + mpLyt->calc(); + } else if (mAnm[MAIN_ANIM_SLING_PEAK].isFlag2()) { + mAnm[MAIN_ANIM_SLING_PEAK].play(); + } + } else { + mpLyt->calc(); + mAnm[MAIN_ANIM_SLING_PEAK].setAnimEnable(false); + mStateMgr.changeState(StateID_Out); + } +} +void dCsGame_c::lytItemCursor_c::lytPachinkoCsr_c::finalizeState_ChargeFull() {} + +void dCsGame_c::lytItemCursor_c::lytCrawShotCsr_c::initializeState_Normal() {} +void dCsGame_c::lytItemCursor_c::lytCrawShotCsr_c::executeState_Normal() {} +void dCsGame_c::lytItemCursor_c::lytCrawShotCsr_c::finalizeState_Normal() {} + +void dCsGame_c::lytItemCursor_c::lytCrawShotCsr_c::initializeState_ToLock() {} +void dCsGame_c::lytItemCursor_c::lytCrawShotCsr_c::executeState_ToLock() {} +void dCsGame_c::lytItemCursor_c::lytCrawShotCsr_c::finalizeState_ToLock() {} + +void dCsGame_c::lytItemCursor_c::lytCrawShotCsr_c::initializeState_Lock() {} +void dCsGame_c::lytItemCursor_c::lytCrawShotCsr_c::executeState_Lock() {} +void dCsGame_c::lytItemCursor_c::lytCrawShotCsr_c::finalizeState_Lock() {} + +void dCsGame_c::lytItemCursor_c::lytCrawShotCsr_c::initializeState_ToNormal() {} +void dCsGame_c::lytItemCursor_c::lytCrawShotCsr_c::executeState_ToNormal() {} +void dCsGame_c::lytItemCursor_c::lytCrawShotCsr_c::finalizeState_ToNormal() {} + +void dCsGame_c::lytItemCursor_c::lytVacuumCsr_c::initializeState_Normal() { + mAnm[MAIN_ANIM_LOOP].setAnimEnable(true); +} +void dCsGame_c::lytItemCursor_c::lytVacuumCsr_c::executeState_Normal() { + if (field_0x5C) { + mAnm[MAIN_ANIM_VACUUM_LOCK].setAnimEnable(true); + mAnm[MAIN_ANIM_VACUUM_LOCK].setForward(); + mAnm[MAIN_ANIM_VACUUM_LOCK].setToEnd2(); + mAnm[MAIN_ANIM_LOOP].setAnimEnable(false); + mStateMgr.changeState(StateID_ToLock); + } else { + mAnm[MAIN_ANIM_LOOP].play(); + } +} +void dCsGame_c::lytItemCursor_c::lytVacuumCsr_c::finalizeState_Normal() {} + +void dCsGame_c::lytItemCursor_c::lytVacuumCsr_c::initializeState_ToLock() {} +void dCsGame_c::lytItemCursor_c::lytVacuumCsr_c::executeState_ToLock() { + if (mAnm[MAIN_ANIM_VACUUM_LOCK].isEndReached()) { + mAnm[MAIN_ANIM_VACUUM_LOCK].setAnimEnable(false); + mpLyt->calc(); + mAnm[MAIN_ANIM_LOCK_LOOP].setAnimEnable(true); + mAnm[MAIN_ANIM_LOCK_LOOP].setFrame(0.0f); + mStateMgr.changeState(StateID_Lock); + } else { + mAnm[MAIN_ANIM_VACUUM_LOCK].play(); + } +} +void dCsGame_c::lytItemCursor_c::lytVacuumCsr_c::finalizeState_ToLock() {} + +void dCsGame_c::lytItemCursor_c::lytVacuumCsr_c::initializeState_Lock() {} +void dCsGame_c::lytItemCursor_c::lytVacuumCsr_c::executeState_Lock() { + if (!field_0x5C) { + mAnm[MAIN_ANIM_VACUUM_LOCK].setAnimEnable(true); + mAnm[MAIN_ANIM_VACUUM_LOCK].setBackward(); + mAnm[MAIN_ANIM_VACUUM_LOCK].setToEnd2(); + mAnm[MAIN_ANIM_LOCK_LOOP].setAnimEnable(false); + mStateMgr.changeState(StateID_ToNormal); + } else { + mAnm[MAIN_ANIM_LOCK_LOOP].play(); + } +} +void dCsGame_c::lytItemCursor_c::lytVacuumCsr_c::finalizeState_Lock() {} + +void dCsGame_c::lytItemCursor_c::lytVacuumCsr_c::initializeState_ToNormal() {} +void dCsGame_c::lytItemCursor_c::lytVacuumCsr_c::executeState_ToNormal() { + if (mAnm[MAIN_ANIM_VACUUM_LOCK].isStop2()) { + mpLyt->calc(); + mAnm[MAIN_ANIM_VACUUM_LOCK].setAnimEnable(false); + mStateMgr.changeState(StateID_Normal); + } else { + mAnm[MAIN_ANIM_VACUUM_LOCK].play(); + } +} +void dCsGame_c::lytItemCursor_c::lytVacuumCsr_c::finalizeState_ToNormal() {} + +void dCsGame_c::lytItemCursor_c::lytVacuumCsr_c::enter() { + mAnm[MAIN_ANIM_CURSOR].setFrame(4.0f); + mAnm[MAIN_ANIM_LOCK_LOOP].setAnimEnable(false); + mAnm[MAIN_ANIM_VACUUM_LOCK].setAnimEnable(true); + mAnm[MAIN_ANIM_VACUUM_LOCK].setFrame(0.0f); + mpLyt->animate(); + mpLyt->calc(); + mAnm[MAIN_ANIM_VACUUM_LOCK].setAnimEnable(false); + mStateMgr.changeState(StateID_Normal); +} + +void dCsGame_c::lytItemCursor_c::lytVacuumCsr_c::init() { + field_0x5C = 0; + enter(); + mStateMgr.changeState(StateID_Normal); +} + +void dCsGame_c::lytItemCursor_c::lytVacuumCsr_c::execute() { + mStateMgr.executeState(); +} diff --git a/src/d/lyt/d2d.cpp b/src/d/lyt/d2d.cpp index 5a36550b..c69bada8 100644 --- a/src/d/lyt/d2d.cpp +++ b/src/d/lyt/d2d.cpp @@ -12,7 +12,6 @@ #include "nw4r/lyt/lyt_window.h" #include "sized_string.h" - using namespace nw4r::lyt; namespace d2d { @@ -896,4 +895,21 @@ void AnmGroupBase_c::setBackward() { mpFrameCtrl->setBackward(); } +bool AnmGroups::init( + d2d::AnmGroup_c *pGroups, const LytBrlanMapping *mappings, u32 num, m2d::ResAccIf_c *acc, d2d::Layout_c *layout +) { + mNumAnmGroups = num; + for (int i = 0; i < mNumAnmGroups; i++) { + pGroups[i].init(mappings[i].mFile, acc, layout, mappings[i].mName); + } + + return true; +} + +void AnmGroups::remove() { + for (int i = 0; i < mNumAnmGroups; i++) { + mpAnmGroups[i].afterUnbind(); + } +} + } // namespace d2d diff --git a/src/d/lyt/d_structd.cpp b/src/d/lyt/d_structd.cpp index 37f3c84e..40ee0a88 100644 --- a/src/d/lyt/d_structd.cpp +++ b/src/d/lyt/d_structd.cpp @@ -11,11 +11,11 @@ dLytStructDList *dLytStructDList::create(EGG::Heap *heap) { return new (heap) dLytStructDList(); } -void dLytStructDList::appendToList1(dLytStructD *other) { +void dLytStructDList::appendToList1(dLytStructC *other) { mList1.insert(other); } -void dLytStructDList::removeFromList1(dLytStructD *other) { +void dLytStructDList::removeFromList1(dLytStructC *other) { mList1.remove(other); } diff --git a/tools/custom/apply_state_mgr_fns.py b/tools/custom/apply_state_mgr_fns.py index 5436f6f8..9b44712a 100644 --- a/tools/custom/apply_state_mgr_fns.py +++ b/tools/custom/apply_state_mgr_fns.py @@ -12,6 +12,7 @@ import re import sys from typing import Callable, List + @dataclass class Vtable: # A vtable pattern with a match named class_name @@ -19,6 +20,7 @@ class Vtable: # A factory for function names functions: Callable[[str], List[str | None]] + def L(items): """Join items and add a length prefix""" s = None @@ -26,77 +28,78 @@ def L(items): s = "".join(items) else: s = items - + return str(len(s)) + s + sFStateMgr_c = Vtable( - re.compile("__vt__[0-9]+sFStateMgr_c<[0-9]+(?P[A-Za-z0-9_]+),20sStateMethodUsr_FI_c>"), + re.compile("__vt__[0-9]+sFStateMgr_c<(?P[A-Za-z0-9_]+),20sStateMethodUsr_FI_c>"), lambda name: [ None, None, - "__dt__" + L(["sFStateMgr_c<", L(name), ",20sStateMethodUsr_FI_c>"]) + "Fv", - "initializeState__" + L(["sStateMgr_c<", L(name), ",20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>"]) + "Fv", - "executeState__" + L(["sStateMgr_c<", L(name), ",20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>"]) + "Fv", - "finalizeState__" + L(["sStateMgr_c<", L(name), ",20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>"]) + "Fv", - "changeState__" + L(["sStateMgr_c<", L(name), ",20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>"]) + "FRC12sStateIDIf_c", - "refreshState__" + L(["sStateMgr_c<", L(name), ",20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>"]) + "Fv", - "getState__" + L(["sStateMgr_c<", L(name), ",20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>"]) + "CFv", - "getNewStateID__" + L(["sStateMgr_c<", L(name), ",20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>"]) + "CFv", - "getStateID__" + L(["sStateMgr_c<", L(name), ",20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>"]) + "CFv", - "getOldStateID__" + L(["sStateMgr_c<", L(name), ",20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>"]) + "CFv", + "__dt__" + L(["sFStateMgr_c<", name, ",20sStateMethodUsr_FI_c>"]) + "Fv", + "initializeState__" + L(["sStateMgr_c<", name, ",20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>"]) + "Fv", + "executeState__" + L(["sStateMgr_c<", name, ",20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>"]) + "Fv", + "finalizeState__" + L(["sStateMgr_c<", name, ",20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>"]) + "Fv", + "changeState__" + L(["sStateMgr_c<", name, ",20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>"]) + "FRC12sStateIDIf_c", + "refreshState__" + L(["sStateMgr_c<", name, ",20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>"]) + "Fv", + "getState__" + L(["sStateMgr_c<", name, ",20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>"]) + "CFv", + "getNewStateID__" + L(["sStateMgr_c<", name, ",20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>"]) + "CFv", + "getStateID__" + L(["sStateMgr_c<", name, ",20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>"]) + "CFv", + "getOldStateID__" + L(["sStateMgr_c<", name, ",20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>"]) + "CFv", ] ) sStateMgr_c = Vtable( - re.compile("__vt__[0-9]+sStateMgr_c<[0-9]+(?P[A-Za-z0-9_]+),20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>"), + re.compile("__vt__[0-9]+sStateMgr_c<(?P[A-Za-z0-9_]+),20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>"), lambda name: [ None, None, - "__dt__" + L(["sStateMgr_c<", L(name), ",20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>"]) + "Fv", + "__dt__" + L(["sStateMgr_c<", name, ",20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>"]) + "Fv", # the rest are dupes ] ) sFStateFct_c = Vtable( - re.compile("__vt__[0-9]+sFStateFct_c<[0-9]+(?P[A-Za-z0-9_]+)>"), + re.compile("__vt__[0-9]+sFStateFct_c<(?P[A-Za-z0-9_]+)>"), lambda name: [ None, None, - "__dt__" + L(["sFStateFct_c<", L(name), ">"]) + "Fv", - "build__" + L(["sFStateFct_c<", L(name), ">"]) + "FRC12sStateIDIf_c", - "dispose__" + L(["sFStateFct_c<", L(name), ">"]) + "FRP10sStateIf_c", + "__dt__" + L(["sFStateFct_c<", name, ">"]) + "Fv", + "build__" + L(["sFStateFct_c<", name, ">"]) + "FRC12sStateIDIf_c", + "dispose__" + L(["sFStateFct_c<", name, ">"]) + "FRP10sStateIf_c", ] ) sFState_c = Vtable( - re.compile("__vt__[0-9]+sFState_c<[0-9]+(?P[A-Za-z0-9_]+)>"), + re.compile("__vt__[0-9]+sFState_c<(?P[A-Za-z0-9_]+)>"), lambda name: [ None, None, - "__dt__" + L(["sFState_c<", L(name), ">"]) + "Fv", - "initialize__" + L(["sFState_c<", L(name), ">"]) + "Fv", - "execute__" + L(["sFState_c<", L(name), ">"]) + "Fv", - "finalize__" + L(["sFState_c<", L(name), ">"]) + "Fv", + "__dt__" + L(["sFState_c<", name, ">"]) + "Fv", + "initialize__" + L(["sFState_c<", name, ">"]) + "Fv", + "execute__" + L(["sFState_c<", name, ">"]) + "Fv", + "finalize__" + L(["sFState_c<", name, ">"]) + "Fv", ] ) sFStateID_c = Vtable( - re.compile("__vt__[0-9]+sFStateID_c<[0-9]+(?P[A-Za-z0-9_]+)>"), + re.compile("__vt__[0-9]+sFStateID_c<(?P[A-Za-z0-9_]+)>"), lambda name: [ None, None, - "__dt__" + L(["sFStateID_c<", L(name), ">"]) + "Fv", + "__dt__" + L(["sFStateID_c<", name, ">"]) + "Fv", None, None, None, None, - "isSameName__" + L(["sFStateID_c<", L(name), ">"]) + "CFPCc", + "isSameName__" + L(["sFStateID_c<", name, ">"]) + "CFPCc", None, None, - "initializeState__" + L(["sFStateID_c<", L(name), ">"]) + "CFR" + L(name), - "executeState__" + L(["sFStateID_c<", L(name), ">"]) + "CFR" + L(name), - "finalizeState__" + L(["sFStateID_c<", L(name), ">"]) + "CFR" + L(name), + "initializeState__" + L(["sFStateID_c<", name, ">"]) + "CFR" + name, + "executeState__" + L(["sFStateID_c<", name, ">"]) + "CFR" + name, + "finalizeState__" + L(["sFStateID_c<", name, ">"]) + "CFR" + name, ] ) @@ -136,6 +139,7 @@ def parse_data(file): return renames + def main(): s_file = sys.argv[1] sym_file = sys.argv[2] @@ -150,6 +154,5 @@ def main(): pathlib.Path(sym_file).write_text(sym_text) - if __name__ == "__main__": main()