summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrobojumper <robojumper@gmail.com>2026-07-26 21:18:08 +0200
committerGitHub <noreply@github.com>2026-07-26 21:18:08 +0200
commit4e1dc6c40328a100492d93074cc29b23a511a2f5 (patch)
treea05e0c3b300202c83e2e65e9514f153cfdc4d8eb
parent38bdcb4ca9272e1c8cdea6856052a503e8b13a1a (diff)
parente5c423bf6e9068b3166cfdac64a3b1ba8e966ab6 (diff)
Merge pull request #335 from compugab/matchin_title_lyt
Matchin title lyt
-rw-r--r--config/SOUE01/splits.txt8
-rw-r--r--config/SOUE01/symbols.txt389
-rw-r--r--configure.py4
-rw-r--r--include/d/d_stage.h2
-rw-r--r--include/d/d_stage_mgr.h8
-rw-r--r--include/d/lyt/d_lyt_control_title.h18
-rw-r--r--include/d/lyt/d_lyt_demo_title.h72
-rw-r--r--src/d/lyt/d_lyt_control_title.cpp27
-rw-r--r--src/d/lyt/d_lyt_demo_title.cpp318
9 files changed, 678 insertions, 168 deletions
diff --git a/config/SOUE01/splits.txt b/config/SOUE01/splits.txt
index 9e47132a..7d3f498f 100644
--- a/config/SOUE01/splits.txt
+++ b/config/SOUE01/splits.txt
@@ -1755,17 +1755,21 @@ d/lyt/d_lyt_deposit.cpp:
d/lyt/d_lyt_demo_title.cpp:
.text start:0x802B02D0 end:0x802B22E8 align:16
.ctors start:0x804DB88C end:0x804DB890
- .rodata start:0x804EFA90 end:0x804EFAB8
+ .rodata start:0x804EFA90 end:0x804EFAA0
.data start:0x8053DFC8 end:0x8053E510
+ .sdata start:0x80573C30 end:0x80573C38
.sbss start:0x805759D0 end:0x805759D8
+ .sdata2 start:0x8057C7E0 end:0x8057C7E8
.bss start:0x805B7120 end:0x805B73A0
d/lyt/d_lyt_end_roll.cpp:
.text start:0x802B22F0 end:0x802B6B98 align:16
.ctors start:0x804DB890 end:0x804DB894
- .rodata start:0x804EFAB8 end:0x804EFAE0
+ .rodata start:0x804EFAA0 end:0x804EFAE0
.data start:0x8053E510 end:0x8053F0F8
+ .sdata start:0x80573C38 end:0x80573C58
.sbss start:0x805759D8 end:0x805759E0
+ .sdata2 start:0x8057C7E8 end:0x8057C818
.bss start:0x805B73A0 end:0x805B7B20
toBeSorted/d_a_bullet.cpp:
diff --git a/config/SOUE01/symbols.txt b/config/SOUE01/symbols.txt
index 66e0a011..2416fd90 100644
--- a/config/SOUE01/symbols.txt
+++ b/config/SOUE01/symbols.txt
@@ -628,7 +628,7 @@ create3__Q23d3d13AnmMdlWrapperFR9dAcBase_cPvPCcPCcPQ33m3d5mdl_c13mdlCallback_cUl
setAnm__Q23d3d13AnmMdlWrapperFPCcQ23m3d10playMode_e = .text:0x80019D50; // type:function size:0x14
__dt__Q23d3d14AnmMdlWrapper2Fv = .text:0x80019D70; // type:function size:0x58
__dt__Q23d3d7XluProcFv = .text:0x80019DD0; // type:function size:0x5C
-__sinit_\d_d3d_cpp = .text:0x80019E30; // type:function size:0x44
+__sinit_\d_d3d_cpp = .text:0x80019E30; // type:function size:0x44 scope:local
ExecCallback_CALC_MAT__14dScnCallback_cFQ44nw4r3g3d6ScnObj6TimingPQ34nw4r3g3d6ScnObjUlPv = .text:0x80019E80; // type:function size:0x3A8
attach__14dScnCallback_cFRQ23m3d9scnLeaf_c = .text:0x8001A230; // type:function size:0x50
setPCAMPos2__FPC4PCAM = .text:0x8001A280; // type:function size:0x144
@@ -2626,7 +2626,7 @@ set0x43DE__17daPlayerActBase_cFv = .text:0x8005CE00; // type:function size:0x4
set0x439F__17daPlayerActBase_cFP9dAcBase_ci = .text:0x8005CE10; // type:function size:0x4
vt_0x084__17daPlayerActBase_cFP9dAcBase_ci = .text:0x8005CE20; // type:function size:0x8
IfCurrentActionToActor__17daPlayerActBase_cFP9dAcBase_ci = .text:0x8005CE30; // type:function size:0x8
-__sinit_\d_player_act_cpp = .text:0x8005CE40; // type:function size:0x4C
+__sinit_\d_player_act_cpp = .text:0x8005CE40; // type:function size:0x4C scope:local
ExecCallback_DRAW_OPA__24daPlBaseScnObjCallback_cFQ44nw4r3g3d6ScnObj6TimingPQ34nw4r3g3d6ScnObjUlPv = .text:0x8005CE90; // type:function size:0x134
ExecCallback_CALC_MAT__24daPlBaseScnObjCallback_cFQ44nw4r3g3d6ScnObj6TimingPQ34nw4r3g3d6ScnObjUlPv = .text:0x8005CFD0; // type:function size:0x10
ExecCallbackA__21daPlBaseMdlCallback_cFPQ34nw4r3g3d12ChrAnmResultQ34nw4r3g3d6ResMdlPQ34nw4r3g3d16FuncObjCalcWorld = .text:0x8005CFE0; // type:function size:0x134
@@ -3186,7 +3186,7 @@ fn_800822C0 = .text:0x800822C0; // type:function size:0x10
fn_800822D0 = .text:0x800822D0; // type:function size:0x24
fn_80082300 = .text:0x80082300; // type:function size:0xC
__dt__13dCameraGame_cFv = .text:0x80082310; // type:function size:0xB0
-__sinit_\d_camera_game_cpp = .text:0x800823C0; // type:function size:0xCF8
+__sinit_\d_camera_game_cpp = .text:0x800823C0; // type:function size:0xCF8 scope:local
__dt__19GameCameraHandler06Fv = .text:0x800830C0; // type:function size:0x60
__dt__19GameCameraHandler08Fv = .text:0x80083120; // type:function size:0x60
__dt__19GameCameraHandler02Fv = .text:0x80083180; // type:function size:0x60
@@ -3290,7 +3290,7 @@ fn_80091B90 = .text:0x80091B90; // type:function size:0x8C
fn_80091C20 = .text:0x80091C20; // type:function size:0x8
fn_80091C30 = .text:0x80091C30; // type:function size:0x74
fn_80091CB0 = .text:0x80091CB0; // type:function size:0x40
-__sinit_\d_camera_event_cpp = .text:0x80091CF0; // type:function size:0x6A4
+__sinit_\d_camera_event_cpp = .text:0x80091CF0; // type:function size:0x6A4 scope:local
ActorReference__ActorReference = .text:0x800923A0; // type:function size:0x14
EventSystemActorRelation__EventSystemActorRelation = .text:0x800923C0; // type:function size:0x44
EventSystemActorRelation____dt = .text:0x80092410; // type:function size:0x60
@@ -4291,7 +4291,7 @@ __dt__10dFlowMgr_cFv = .text:0x800C4420; // type:function size:0x5C
__ct__10dLytBase_cFv = .text:0x800C4480; // type:function size:0x54
__dt__10dLytBase_cFv = .text:0x800C44E0; // type:function size:0x94
allocateLytWork1Heap__10dLytBase_cFPCcb = .text:0x800C4580; // type:function size:0xB4
-fn_800C4640 = .text:0x800C4640; // type:function size:0x8
+build__10dLytBase_cFv = .text:0x800C4640; // type:function size:0x8
removeLyt__10dLytBase_cFv = .text:0x800C4650; // type:function size:0x14
fn_800C4670 = .text:0x800C4670; // type:function size:0x20
fn_800C4690 = .text:0x800C4690; // type:function size:0x14
@@ -7483,7 +7483,7 @@ unprojectFromMap__15dLytMapGlobal_cCFR7mVec3_cRC7mVec2_cRC7mVec3_cRC4mAng = .tex
unprojectFromMap__15dLytMapGlobal_cCFR7mVec3_cRC7mVec2_cRC7mVec2_cRC7mVec3_cRC7mVec3_cRC4mAngff = .text:0x8012D390; // type:function size:0x118
initializeState_RenderingWait__16dLytMapCapture_cFv = .text:0x8012D4B0; // type:function size:0x4
executeState_RenderingWait__16dLytMapCapture_cFv = .text:0x8012D4C0; // type:function size:0x70
-changeState__85sStateMgr_c<16dLytMapCapture_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>FRC12sStateIDIf_c = .text:0x8012D530; // type:function size:0x10
+changeState__85sStateMgr_c<16dLytMapCapture_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>FRC12sStateIDIf_c = .text:0x8012D530; // type:function size:0x10 scope:weak
finalizeState_RenderingWait__16dLytMapCapture_cFv = .text:0x8012D540; // type:function size:0x4
initializeState_RenderingWaitStep2__16dLytMapCapture_cFv = .text:0x8012D550; // type:function size:0x4
executeState_RenderingWaitStep2__16dLytMapCapture_cFv = .text:0x8012D560; // type:function size:0x94
@@ -7495,12 +7495,12 @@ fn_8012D6F0__16dLytMapCapture_cFv = .text:0x8012D6F0; // type:function size:0xE4
execute__16dLytMapCapture_cFv = .text:0x8012D7E0; // type:function size:0x10
isBusyRendering__16dLytMapCapture_cCFv = .text:0x8012D7F0; // type:function size:0x8
fn_8012D800__16dLytMapCapture_cFPQ34nw4r3lyt4PaneP9_GXTexObj = .text:0x8012D800; // type:function size:0xEC
-finalizeState__31sFStateID_c<16dLytMapCapture_c>CFR16dLytMapCapture_c = .text:0x8012D8F0; // type:function size:0x30
-executeState__31sFStateID_c<16dLytMapCapture_c>CFR16dLytMapCapture_c = .text:0x8012D920; // type:function size:0x30
-initializeState__31sFStateID_c<16dLytMapCapture_c>CFR16dLytMapCapture_c = .text:0x8012D950; // type:function size:0x30
-__sinit_\d_lyt_map_capture_cpp = .text:0x8012D980; // type:function size:0x1C0
-__dt__31sFStateID_c<16dLytMapCapture_c>Fv = .text:0x8012DB40; // type:function size:0x58
-isSameName__31sFStateID_c<16dLytMapCapture_c>CFPCc = .text:0x8012DBA0; // type:function size:0x88
+finalizeState__31sFStateID_c<16dLytMapCapture_c>CFR16dLytMapCapture_c = .text:0x8012D8F0; // type:function size:0x30 scope:weak
+executeState__31sFStateID_c<16dLytMapCapture_c>CFR16dLytMapCapture_c = .text:0x8012D920; // type:function size:0x30 scope:weak
+initializeState__31sFStateID_c<16dLytMapCapture_c>CFR16dLytMapCapture_c = .text:0x8012D950; // type:function size:0x30 scope:weak
+__sinit_\d_lyt_map_capture_cpp = .text:0x8012D980; // type:function size:0x1C0 scope:local
+__dt__31sFStateID_c<16dLytMapCapture_c>Fv = .text:0x8012DB40; // type:function size:0x58 scope:weak
+isSameName__31sFStateID_c<16dLytMapCapture_c>CFPCc = .text:0x8012DBA0; // type:function size:0x88 scope:weak
__ct__13dLytMap_HIO_cFv = .text:0x8012DC30; // type:function size:0xEC
__dt__13dLytMap_HIO_cFv = .text:0x8012DD20; // type:function size:0x40
init__21dMapFootPrintsQueue_cFv = .text:0x8012DD60; // type:function size:0x17C
@@ -14165,7 +14165,7 @@ getOldStateID__83sStateMgr_c<14dAcBoomerang_c,20sStateMethodUsr_FI_c,12sFStateFc
finalizeState__29sFStateID_c<14dAcBoomerang_c>CFR14dAcBoomerang_c = .text:0x80265080; // type:function size:0x30
executeState__29sFStateID_c<14dAcBoomerang_c>CFR14dAcBoomerang_c = .text:0x802650B0; // type:function size:0x30
initializeState__29sFStateID_c<14dAcBoomerang_c>CFR14dAcBoomerang_c = .text:0x802650E0; // type:function size:0x30
-__sinit_\d_a_obj_boomerang_cpp = .text:0x80265110; // type:function size:0x41C
+__sinit_\d_a_obj_boomerang_cpp = .text:0x80265110; // type:function size:0x41C scope:local
__dt__29sFStateID_c<14dAcBoomerang_c>Fv = .text:0x80265530; // type:function size:0x58
isSameName__29sFStateID_c<14dAcBoomerang_c>CFPCc = .text:0x80265590; // type:function size:0x88
dAcOFairy_c_classInit__Fv = .text:0x80265620; // type:function size:0x144
@@ -15012,7 +15012,7 @@ initializeState__29sFStateID_c<14dLytGameOver_c>CFR14dLytGameOver_c = .text:0x80
finalizeState__32sFStateID_c<17dLytGameOverMgr_c>CFR17dLytGameOverMgr_c = .text:0x802847C0; // type:function size:0x30
executeState__32sFStateID_c<17dLytGameOverMgr_c>CFR17dLytGameOverMgr_c = .text:0x802847F0; // type:function size:0x30
initializeState__32sFStateID_c<17dLytGameOverMgr_c>CFR17dLytGameOverMgr_c = .text:0x80284820; // type:function size:0x30
-__sinit_\d_lyt_game_over_cpp = .text:0x80284850; // type:function size:0x578
+__sinit_\d_lyt_game_over_cpp = .text:0x80284850; // type:function size:0x578 scope:local
__dt__29sFStateID_c<14dLytGameOver_c>Fv = .text:0x80284DD0; // type:function size:0x58
__dt__32sFStateID_c<17dLytGameOverMgr_c>Fv = .text:0x80284E30; // type:function size:0x58
isSameName__32sFStateID_c<17dLytGameOverMgr_c>CFPCc = .text:0x80284E90; // type:function size:0x88
@@ -15616,7 +15616,7 @@ initializeState__41sFStateID_c<26dLytMeterSuiryuScoreBase_c>CFR26dLytMeterSuiryu
finalizeState__34sFStateID_c<19dLytMeterClefMain_c>CFR19dLytMeterClefMain_c = .text:0x8029BA20; // type:function size:0x30
executeState__34sFStateID_c<19dLytMeterClefMain_c>CFR19dLytMeterClefMain_c = .text:0x8029BA50; // type:function size:0x30
initializeState__34sFStateID_c<19dLytMeterClefMain_c>CFR19dLytMeterClefMain_c = .text:0x8029BA80; // type:function size:0x30
-__sinit_\d_lyt_suiryu_score_cpp = .text:0x8029BAB0; // type:function size:0x634
+__sinit_\d_lyt_suiryu_score_cpp = .text:0x8029BAB0; // type:function size:0x634 scope:local
__dt__41sFStateID_c<26dLytMeterSuiryuScoreBase_c>Fv = .text:0x8029C0F0; // type:function size:0x58
__dt__34sFStateID_c<19dLytMeterClefMain_c>Fv = .text:0x8029C150; // type:function size:0x58
isSameName__34sFStateID_c<19dLytMeterClefMain_c>CFPCc = .text:0x8029C1B0; // type:function size:0x88
@@ -15825,7 +15825,7 @@ getOldStateID__86sStateMgr_c<17dLytDemoDowsing_c,20sStateMethodUsr_FI_c,12sFStat
finalizeState__32sFStateID_c<17dLytDemoDowsing_c>CFR17dLytDemoDowsing_c = .text:0x802A1490; // type:function size:0x30
executeState__32sFStateID_c<17dLytDemoDowsing_c>CFR17dLytDemoDowsing_c = .text:0x802A14C0; // type:function size:0x30
initializeState__32sFStateID_c<17dLytDemoDowsing_c>CFR17dLytDemoDowsing_c = .text:0x802A14F0; // type:function size:0x30
-__sinit_\d_lyt_demo_dowsing_cpp = .text:0x802A1520; // type:function size:0x1C0
+__sinit_\d_lyt_demo_dowsing_cpp = .text:0x802A1520; // type:function size:0x1C0 scope:local
__dt__32sFStateID_c<17dLytDemoDowsing_c>Fv = .text:0x802A16E0; // type:function size:0x58
isSameName__32sFStateID_c<17dLytDemoDowsing_c>CFPCc = .text:0x802A1740; // type:function size:0x88
initializeState_ModeNone__14dLytShopMain_cFv = .text:0x802A17D0; // type:function size:0x4
@@ -15963,7 +15963,7 @@ initializeState__29sFStateID_c<14dLytShopMain_c>CFR14dLytShopMain_c = .text:0x80
finalizeState__25sFStateID_c<10dLytShop_c>CFR10dLytShop_c = .text:0x802A70A0; // type:function size:0x30
executeState__25sFStateID_c<10dLytShop_c>CFR10dLytShop_c = .text:0x802A70D0; // type:function size:0x30
initializeState__25sFStateID_c<10dLytShop_c>CFR10dLytShop_c = .text:0x802A7100; // type:function size:0x30
-__sinit_\d_lyt_shop_cpp = .text:0x802A7130; // type:function size:0xCD0
+__sinit_\d_lyt_shop_cpp = .text:0x802A7130; // type:function size:0xCD0 scope:local
__dt__29sFStateID_c<14dLytShopMain_c>Fv = .text:0x802A7E00; // type:function size:0x58
__dt__25sFStateID_c<10dLytShop_c>Fv = .text:0x802A7E60; // type:function size:0x58
isSameName__25sFStateID_c<10dLytShop_c>CFPCc = .text:0x802A7EC0; // type:function size:0x88
@@ -16139,100 +16139,100 @@ __dt__32sFStateID_c<17dLytDepositMain_c>Fv = .text:0x802B00F0; // type:function
__dt__28sFStateID_c<13dLytDeposit_c>Fv = .text:0x802B0150; // type:function size:0x58 scope:weak
isSameName__28sFStateID_c<13dLytDeposit_c>CFPCc = .text:0x802B01B0; // type:function size:0x88 scope:weak
isSameName__32sFStateID_c<17dLytDepositMain_c>CFPCc = .text:0x802B0240; // type:function size:0x88 scope:weak
-fn_802B02D0 = .text:0x802B02D0; // type:function size:0x4
-fn_802B02E0 = .text:0x802B02E0; // type:function size:0xC
-fn_802B02F0 = .text:0x802B02F0; // type:function size:0x4
-fn_802B0300 = .text:0x802B0300; // type:function size:0x4
-fn_802B0310 = .text:0x802B0310; // type:function size:0x64
-fn_802B0380 = .text:0x802B0380; // type:function size:0x4
-fn_802B0390 = .text:0x802B0390; // type:function size:0x4
-fn_802B03A0 = .text:0x802B03A0; // type:function size:0xC
-fn_802B03B0 = .text:0x802B03B0; // type:function size:0x4
-fn_802B03C0 = .text:0x802B03C0; // type:function size:0x4
-fn_802B03D0 = .text:0x802B03D0; // type:function size:0x64
-fn_802B0440 = .text:0x802B0440; // type:function size:0x4
-fn_802B0450 = .text:0x802B0450; // type:function size:0x4
-fn_802B0460 = .text:0x802B0460; // type:function size:0xC
-fn_802B0470 = .text:0x802B0470; // type:function size:0x4
-fn_802B0480 = .text:0x802B0480; // type:function size:0xC0
-fn_802B0540 = .text:0x802B0540; // type:function size:0xA4
-fn_802B05F0 = .text:0x802B05F0; // type:function size:0xA0
-fn_802B0690 = .text:0x802B0690; // type:function size:0x6C
-fn_802B0700 = .text:0x802B0700; // type:function size:0x58
-fn_802B0760 = .text:0x802B0760; // type:function size:0x100
-fn_802B0860 = .text:0x802B0860; // type:function size:0xD4
-fn_802B0940 = .text:0x802B0940; // type:function size:0x10
-fn_802B0950 = .text:0x802B0950; // type:function size:0x28
-fn_802B0980 = .text:0x802B0980; // type:function size:0x70
-fn_802B09F0 = .text:0x802B09F0; // type:function size:0x4C
-fn_802B0A40 = .text:0x802B0A40; // type:function size:0x10
-fn_802B0A50 = .text:0x802B0A50; // type:function size:0xA4
-fn_802B0B00 = .text:0x802B0B00; // type:function size:0x4C
-fn_802B0B50 = .text:0x802B0B50; // type:function size:0x80
-fn_802B0BD0 = .text:0x802B0BD0; // type:function size:0x4C
-fn_802B0C20 = .text:0x802B0C20; // type:function size:0x4
-fn_802B0C30 = .text:0x802B0C30; // type:function size:0x60
-fn_802B0C90 = .text:0x802B0C90; // type:function size:0x10
-fn_802B0CA0 = .text:0x802B0CA0; // type:function size:0x4
-fn_802B0CB0 = .text:0x802B0CB0; // type:function size:0x4
-fn_802B0CC0 = .text:0x802B0CC0; // type:function size:0x58
-fn_802B0D20 = .text:0x802B0D20; // type:function size:0x4
-fn_802B0D30 = .text:0x802B0D30; // type:function size:0x4
-fn_802B0D40 = .text:0x802B0D40; // type:function size:0x6C
-fn_802B0DB0 = .text:0x802B0DB0; // type:function size:0x4
-fn_802B0DC0 = .text:0x802B0DC0; // type:function size:0x4
-fn_802B0DD0 = .text:0x802B0DD0; // type:function size:0x5C
-fn_802B0E30 = .text:0x802B0E30; // type:function size:0x4
-fn_802B0E40 = .text:0x802B0E40; // type:function size:0x4
-fn_802B0E50 = .text:0x802B0E50; // type:function size:0x4
-fn_802B0E60 = .text:0x802B0E60; // type:function size:0x4
-fn_802B0E70 = .text:0x802B0E70; // type:function size:0xF4
-fn_802B0F70 = .text:0x802B0F70; // type:function size:0x58
-fn_802B0FD0 = .text:0x802B0FD0; // type:function size:0x6C
-fn_802B1040 = .text:0x802B1040; // type:function size:0xA0
-fn_802B10E0 = .text:0x802B10E0; // type:function size:0xA4
-fn_802B1190 = .text:0x802B1190; // type:function size:0xD8
-fn_802B1270 = .text:0x802B1270; // type:function size:0x88
-fn_802B1300 = .text:0x802B1300; // type:function size:0x7C
-fn_802B1380 = .text:0x802B1380; // type:function size:0x10
-fn_802B1390 = .text:0x802B1390; // type:function size:0x10
-fn_802B13A0 = .text:0x802B13A0; // type:function size:0x68
-fn_802B1410 = .text:0x802B1410; // type:function size:0x44
-fn_802B1460 = .text:0x802B1460; // type:function size:0x16C
-fn_802B15D0 = .text:0x802B15D0; // type:function size:0x60
-fn_802B1630 = .text:0x802B1630; // type:function size:0xC
-fn_802B1640 = .text:0x802B1640; // type:function size:0x60
-fn_802B16A0 = .text:0x802B16A0; // type:function size:0xC
-fn_802B16B0 = .text:0x802B16B0; // type:function size:0x1C
-fn_802B16D0 = .text:0x802B16D0; // type:function size:0x1C
-fn_802B16F0 = .text:0x802B16F0; // type:function size:0x1C
-fn_802B1710 = .text:0x802B1710; // type:function size:0x1C
-fn_802B1730 = .text:0x802B1730; // type:function size:0x1C
-fn_802B1750 = .text:0x802B1750; // type:function size:0x1C
-fn_802B1770 = .text:0x802B1770; // type:function size:0x10
-fn_802B1780 = .text:0x802B1780; // type:function size:0x10
-fn_802B1790 = .text:0x802B1790; // type:function size:0x10
-fn_802B17A0 = .text:0x802B17A0; // type:function size:0x10
-fn_802B17B0 = .text:0x802B17B0; // type:function size:0x10
-fn_802B17C0 = .text:0x802B17C0; // type:function size:0x10
-fn_802B17D0 = .text:0x802B17D0; // type:function size:0x10
-fn_802B17E0 = .text:0x802B17E0; // type:function size:0x10
-fn_802B17F0 = .text:0x802B17F0; // type:function size:0x10
-fn_802B1800 = .text:0x802B1800; // type:function size:0x10
-fn_802B1810 = .text:0x802B1810; // type:function size:0x10
-fn_802B1820 = .text:0x802B1820; // type:function size:0x10
-fn_802B1830 = .text:0x802B1830; // type:function size:0x10
-fn_802B1840 = .text:0x802B1840; // type:function size:0x30
-fn_802B1870 = .text:0x802B1870; // type:function size:0x30
-fn_802B18A0 = .text:0x802B18A0; // type:function size:0x30
-fn_802B18D0 = .text:0x802B18D0; // type:function size:0x30
-fn_802B1900 = .text:0x802B1900; // type:function size:0x30
-fn_802B1930 = .text:0x802B1930; // type:function size:0x30
-LytDemoTitle__initStates = .text:0x802B1960; // type:function size:0x7AC
-LytDemoTitleMain__dtor = .text:0x802B2110; // type:function size:0x58
-LytDemoTitle__dtor = .text:0x802B2170; // type:function size:0x58
-fn_802B21D0 = .text:0x802B21D0; // type:function size:0x88
-fn_802B2260 = .text:0x802B2260; // type:function size:0x88
+initializeState_ModeNone__19dLytDemoTitleMain_cFv = .text:0x802B02D0; // type:function size:0x4
+executeState_ModeNone__19dLytDemoTitleMain_cFv = .text:0x802B02E0; // type:function size:0xC
+finalizeState_ModeNone__19dLytDemoTitleMain_cFv = .text:0x802B02F0; // type:function size:0x4
+initializeState_ModeIn__19dLytDemoTitleMain_cFv = .text:0x802B0300; // type:function size:0x4
+executeState_ModeIn__19dLytDemoTitleMain_cFv = .text:0x802B0310; // type:function size:0x64
+finalizeState_ModeIn__19dLytDemoTitleMain_cFv = .text:0x802B0380; // type:function size:0x4
+initializeState_ModeMove__19dLytDemoTitleMain_cFv = .text:0x802B0390; // type:function size:0x4
+executeState_ModeMove__19dLytDemoTitleMain_cFv = .text:0x802B03A0; // type:function size:0xC
+finalizeState_ModeMove__19dLytDemoTitleMain_cFv = .text:0x802B03B0; // type:function size:0x4
+initializeState_ModeOut__19dLytDemoTitleMain_cFv = .text:0x802B03C0; // type:function size:0x4
+executeState_ModeOut__19dLytDemoTitleMain_cFv = .text:0x802B03D0; // type:function size:0x64
+finalizeState_ModeOut__19dLytDemoTitleMain_cFv = .text:0x802B0440; // type:function size:0x4
+initializeState_ModeEnd__19dLytDemoTitleMain_cFv = .text:0x802B0450; // type:function size:0x4
+executeState_ModeEnd__19dLytDemoTitleMain_cFv = .text:0x802B0460; // type:function size:0xC
+finalizeState_ModeEnd__19dLytDemoTitleMain_cFv = .text:0x802B0470; // type:function size:0x4
+__ct__19dLytDemoTitleMain_cFv = .text:0x802B0480; // type:function size:0xC0
+__dt__58sFStateMgr_c<19dLytDemoTitleMain_c,20sStateMethodUsr_FI_c>Fv = .text:0x802B0540; // type:function size:0xA4 scope:weak
+__dt__88sStateMgr_c<19dLytDemoTitleMain_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x802B05F0; // type:function size:0xA0 scope:weak
+__dt__35sFStateFct_c<19dLytDemoTitleMain_c>Fv = .text:0x802B0690; // type:function size:0x6C scope:weak
+__dt__32sFState_c<19dLytDemoTitleMain_c>Fv = .text:0x802B0700; // type:function size:0x58 scope:weak
+build__19dLytDemoTitleMain_cFPQ23d2d10ResAccIf_c = .text:0x802B0760; // type:function size:0x100
+execute__19dLytDemoTitleMain_cFv = .text:0x802B0860; // type:function size:0xD4
+executeState__88sStateMgr_c<19dLytDemoTitleMain_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x802B0940; // type:function size:0x10 scope:weak
+draw__19dLytDemoTitleMain_cFv = .text:0x802B0950; // type:function size:0x28
+remove__19dLytDemoTitleMain_cFv = .text:0x802B0980; // type:function size:0x70
+fn_802B09F0__19dLytDemoTitleMain_cFv = .text:0x802B09F0; // type:function size:0x4C
+changeState__88sStateMgr_c<19dLytDemoTitleMain_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>FRC12sStateIDIf_c = .text:0x802B0A40; // type:function size:0x10 scope:weak
+fn_802B0A50__19dLytDemoTitleMain_cFv = .text:0x802B0A50; // type:function size:0xA4
+fn_802B0B00__19dLytDemoTitleMain_cFv = .text:0x802B0B00; // type:function size:0x4C
+fn_802B0B50__19dLytDemoTitleMain_cFv = .text:0x802B0B50; // type:function size:0x80
+fn_802B0BD0__19dLytDemoTitleMain_cFv = .text:0x802B0BD0; // type:function size:0x4C
+initializeState_None__15dLytDemoTitle_cFv = .text:0x802B0C20; // type:function size:0x4
+executeState_None__15dLytDemoTitle_cFv = .text:0x802B0C30; // type:function size:0x60
+changeState__84sStateMgr_c<15dLytDemoTitle_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>FRC12sStateIDIf_c = .text:0x802B0C90; // type:function size:0x10 scope:weak
+finalizeState_None__15dLytDemoTitle_cFv = .text:0x802B0CA0; // type:function size:0x4
+initializeState_In__15dLytDemoTitle_cFv = .text:0x802B0CB0; // type:function size:0x4
+executeState_In__15dLytDemoTitle_cFv = .text:0x802B0CC0; // type:function size:0x58
+finalizeState_In__15dLytDemoTitle_cFv = .text:0x802B0D20; // type:function size:0x4
+initializeState_Move__15dLytDemoTitle_cFv = .text:0x802B0D30; // type:function size:0x4
+executeState_Move__15dLytDemoTitle_cFv = .text:0x802B0D40; // type:function size:0x6C
+finalizeState_Move__15dLytDemoTitle_cFv = .text:0x802B0DB0; // type:function size:0x4
+initializeState_Out__15dLytDemoTitle_cFv = .text:0x802B0DC0; // type:function size:0x4
+executeState_Out__15dLytDemoTitle_cFv = .text:0x802B0DD0; // type:function size:0x5C
+finalizeState_Out__15dLytDemoTitle_cFv = .text:0x802B0E30; // type:function size:0x4
+initializeState_End__15dLytDemoTitle_cFv = .text:0x802B0E40; // type:function size:0x4
+executeState_End__15dLytDemoTitle_cFv = .text:0x802B0E50; // type:function size:0x4
+finalizeState_End__15dLytDemoTitle_cFv = .text:0x802B0E60; // type:function size:0x4
+dLytDemoTitle_c_classInit__Fv = .text:0x802B0E70; // type:function size:0xF4
+__dt__28sFState_c<15dLytDemoTitle_c>Fv = .text:0x802B0F70; // type:function size:0x58 scope:weak
+__dt__31sFStateFct_c<15dLytDemoTitle_c>Fv = .text:0x802B0FD0; // type:function size:0x6C scope:weak
+__dt__84sStateMgr_c<15dLytDemoTitle_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x802B1040; // type:function size:0xA0 scope:weak
+__dt__54sFStateMgr_c<15dLytDemoTitle_c,20sStateMethodUsr_FI_c>Fv = .text:0x802B10E0; // type:function size:0xA4 scope:weak
+__dt__19dLytDemoTitleMain_cFv = .text:0x802B1190; // type:function size:0xD8 scope:weak
+create__15dLytDemoTitle_cFv = .text:0x802B1270; // type:function size:0x88
+execute__15dLytDemoTitle_cFv = .text:0x802B1300; // type:function size:0x7C
+getStateID__84sStateMgr_c<15dLytDemoTitle_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x802B1380; // type:function size:0x10 scope:weak
+executeState__84sStateMgr_c<15dLytDemoTitle_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x802B1390; // type:function size:0x10 scope:weak
+draw__15dLytDemoTitle_cFv = .text:0x802B13A0; // type:function size:0x68
+doDelete__15dLytDemoTitle_cFv = .text:0x802B1410; // type:function size:0x44
+__dt__15dLytDemoTitle_cFv = .text:0x802B1460; // type:function size:0x16C scope:weak
+build__31sFStateFct_c<15dLytDemoTitle_c>FRC12sStateIDIf_c = .text:0x802B15D0; // type:function size:0x60 scope:weak
+dispose__31sFStateFct_c<15dLytDemoTitle_c>FRP10sStateIf_c = .text:0x802B1630; // type:function size:0xC scope:weak
+build__35sFStateFct_c<19dLytDemoTitleMain_c>FRC12sStateIDIf_c = .text:0x802B1640; // type:function size:0x60 scope:weak
+dispose__35sFStateFct_c<19dLytDemoTitleMain_c>FRP10sStateIf_c = .text:0x802B16A0; // type:function size:0xC scope:weak
+initialize__28sFState_c<15dLytDemoTitle_c>Fv = .text:0x802B16B0; // type:function size:0x1C scope:weak
+execute__28sFState_c<15dLytDemoTitle_c>Fv = .text:0x802B16D0; // type:function size:0x1C scope:weak
+finalize__28sFState_c<15dLytDemoTitle_c>Fv = .text:0x802B16F0; // type:function size:0x1C scope:weak
+initialize__32sFState_c<19dLytDemoTitleMain_c>Fv = .text:0x802B1710; // type:function size:0x1C scope:weak
+execute__32sFState_c<19dLytDemoTitleMain_c>Fv = .text:0x802B1730; // type:function size:0x1C scope:weak
+finalize__32sFState_c<19dLytDemoTitleMain_c>Fv = .text:0x802B1750; // type:function size:0x1C scope:weak
+initializeState__84sStateMgr_c<15dLytDemoTitle_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x802B1770; // type:function size:0x10 scope:weak
+finalizeState__84sStateMgr_c<15dLytDemoTitle_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x802B1780; // type:function size:0x10 scope:weak
+refreshState__84sStateMgr_c<15dLytDemoTitle_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x802B1790; // type:function size:0x10 scope:weak
+getState__84sStateMgr_c<15dLytDemoTitle_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x802B17A0; // type:function size:0x10 scope:weak
+getNewStateID__84sStateMgr_c<15dLytDemoTitle_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x802B17B0; // type:function size:0x10 scope:weak
+getOldStateID__84sStateMgr_c<15dLytDemoTitle_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x802B17C0; // type:function size:0x10 scope:weak
+initializeState__88sStateMgr_c<19dLytDemoTitleMain_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x802B17D0; // type:function size:0x10 scope:weak
+finalizeState__88sStateMgr_c<19dLytDemoTitleMain_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x802B17E0; // type:function size:0x10 scope:weak
+refreshState__88sStateMgr_c<19dLytDemoTitleMain_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x802B17F0; // type:function size:0x10 scope:weak
+getState__88sStateMgr_c<19dLytDemoTitleMain_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x802B1800; // type:function size:0x10 scope:weak
+getNewStateID__88sStateMgr_c<19dLytDemoTitleMain_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x802B1810; // type:function size:0x10 scope:weak
+getStateID__88sStateMgr_c<19dLytDemoTitleMain_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x802B1820; // type:function size:0x10 scope:weak
+getOldStateID__88sStateMgr_c<19dLytDemoTitleMain_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x802B1830; // type:function size:0x10 scope:weak
+finalizeState__34sFStateID_c<19dLytDemoTitleMain_c>CFR19dLytDemoTitleMain_c = .text:0x802B1840; // type:function size:0x30 scope:weak
+executeState__34sFStateID_c<19dLytDemoTitleMain_c>CFR19dLytDemoTitleMain_c = .text:0x802B1870; // type:function size:0x30 scope:weak
+initializeState__34sFStateID_c<19dLytDemoTitleMain_c>CFR19dLytDemoTitleMain_c = .text:0x802B18A0; // type:function size:0x30 scope:weak
+finalizeState__30sFStateID_c<15dLytDemoTitle_c>CFR15dLytDemoTitle_c = .text:0x802B18D0; // type:function size:0x30 scope:weak
+executeState__30sFStateID_c<15dLytDemoTitle_c>CFR15dLytDemoTitle_c = .text:0x802B1900; // type:function size:0x30 scope:weak
+initializeState__30sFStateID_c<15dLytDemoTitle_c>CFR15dLytDemoTitle_c = .text:0x802B1930; // type:function size:0x30 scope:weak
+__sinit_\d_lyt_demo_title_cpp = .text:0x802B1960; // type:function size:0x7AC scope:local
+__dt__34sFStateID_c<19dLytDemoTitleMain_c>Fv = .text:0x802B2110; // type:function size:0x58 scope:weak
+__dt__30sFStateID_c<15dLytDemoTitle_c>Fv = .text:0x802B2170; // type:function size:0x58 scope:weak
+isSameName__30sFStateID_c<15dLytDemoTitle_c>CFPCc = .text:0x802B21D0; // type:function size:0x88 scope:weak
+isSameName__34sFStateID_c<19dLytDemoTitleMain_c>CFPCc = .text:0x802B2260; // type:function size:0x88 scope:weak
fn_802B22F0 = .text:0x802B22F0; // type:function size:0x4
fn_802B2300 = .text:0x802B2300; // type:function size:0xC
fn_802B2310 = .text:0x802B2310; // type:function size:0x4
@@ -16917,13 +16917,13 @@ initializeState__32sFStateID_c<17dLytControlGame_c>CFR17dLytControlGame_c = .tex
__sinit_\d_lyt_control_game_cpp = .text:0x802D0EC0; // type:function size:0x700 scope:local
__dt__32sFStateID_c<17dLytControlGame_c>Fv = .text:0x802D15C0; // type:function size:0x58 scope:weak
isSameName__32sFStateID_c<17dLytControlGame_c>CFPCc = .text:0x802D1620; // type:function size:0x88 scope:weak
-fn_802D16B0 = .text:0x802D16B0; // type:function size:0x30
-fn_802D16E0 = .text:0x802D16E0; // type:function size:0x3C
-fn_802D1720 = .text:0x802D1720; // type:function size:0x8
-fn_802D1730 = .text:0x802D1730; // type:function size:0x8
-fn_802D1740 = .text:0x802D1740; // type:function size:0x8
-fn_802D1750 = .text:0x802D1750; // type:function size:0x8
-fn_802D1760 = .text:0x802D1760; // type:function size:0x5C
+dLytControlTitle_c_classInit__Fv = .text:0x802D16B0; // type:function size:0x30
+__ct__18dLytControlTitle_cFv = .text:0x802D16E0; // type:function size:0x3C
+create__18dLytControlTitle_cFv = .text:0x802D1720; // type:function size:0x8
+doDelete__18dLytControlTitle_cFv = .text:0x802D1730; // type:function size:0x8
+execute__18dLytControlTitle_cFv = .text:0x802D1740; // type:function size:0x8
+draw__18dLytControlTitle_cFv = .text:0x802D1750; // type:function size:0x8
+__dt__18dLytControlTitle_cFv = .text:0x802D1760; // type:function size:0x5C
TgMapArea__ctor = .text:0x802D17C0; // type:function size:0x4C
TgMapArea__init = .text:0x802D1810; // type:function size:0x80
fn_802D1890 = .text:0x802D1890; // type:function size:0x5C
@@ -17871,7 +17871,7 @@ normalizeRS__7mVec3_cFv = .text:0x802F2BF0; // type:function size:0x84
rotX__7mVec3_cFRC4mAng = .text:0x802F2C80; // type:function size:0xA8
rotY__7mVec3_cFRC4mAng = .text:0x802F2D30; // type:function size:0xAC
rotZ__7mVec3_cFRC4mAng = .text:0x802F2DE0; // type:function size:0xA8
-__sinit_\m_vec_cpp = .text:0x802F2E90; // type:function size:0x78
+__sinit_\m_vec_cpp = .text:0x802F2E90; // type:function size:0x78 scope:local
init__Q210homebutton15FrameControllerFifff = .text:0x802F2F10; // type:function size:0x38
initFrame__Q210homebutton15FrameControllerFv = .text:0x802F2F50; // type:function size:0x20
calc__Q210homebutton15FrameControllerFv = .text:0x802F2F70; // type:function size:0x14C
@@ -20027,7 +20027,7 @@ setStageEffectsVolume__22dSndControlPlayerMgr_cFfl = .text:0x80360A60; // type:f
setStageEffectsMuteVolume__22dSndControlPlayerMgr_cFf = .text:0x80360AD0; // type:function size:0x5C
setEnemyMuteVolume__22dSndControlPlayerMgr_cFf = .text:0x80360B30; // type:function size:0x5C
setObjectMuteVolume__22dSndControlPlayerMgr_cFf = .text:0x80360B90; // type:function size:0x64
-__sinit_\d_snd_control_player_mgr_cpp = .text:0x80360C00; // type:function size:0x28
+__sinit_\d_snd_control_player_mgr_cpp = .text:0x80360C00; // type:function size:0x28 scope:local
__dt__33SndMgrDisposer<15dSnd3DManager_c>Fv = .text:0x80360C30; // type:function size:0x78 scope:weak
create__33SndMgrDisposer<15dSnd3DManager_c>Fv = .text:0x80360CB0; // type:function size:0x48 scope:weak
remove__33SndMgrDisposer<15dSnd3DManager_c>Fv = .text:0x80360D00; // type:function size:0x10 scope:weak
@@ -27101,7 +27101,7 @@ __dt__Q27JStudio13TObject_lightFv = .text:0x804BF750; // type:function size:0x58
__dt__Q27JStudio15TObject_messageFv = .text:0x804BF7B0; // type:function size:0x58
__dt__Q27JStudio16TObject_particleFv = .text:0x804BF810; // type:function size:0x58
__dt__Q27JStudio13TObject_soundFv = .text:0x804BF870; // type:function size:0x58
-__sinit_\jstudio-object_cpp = .text:0x804BF8D0; // type:function size:0x300
+__sinit_\jstudio-object_cpp = .text:0x804BF8D0; // type:function size:0x300 scope:local
__dt__Q37JStudio28@unnamed@jstudio_object_cpp@54TOutputVariableValue_BOOL_<Q27JStudio14TAdaptor_actor>Fv = .text:0x804BFBD0; // type:function size:0x58
__dt__Q37JStudio28@unnamed@jstudio_object_cpp@55TOutputVariableValue_BOOL_<Q27JStudio15TAdaptor_camera>Fv = .text:0x804BFC30; // type:function size:0x58
__dt__Q37JStudio28@unnamed@jstudio_object_cpp@54TOutputVariableValue_BOOL_<Q27JStudio14TAdaptor_light>Fv = .text:0x804BFC90; // type:function size:0x58
@@ -27200,7 +27200,7 @@ setJSG_SRT___Q214JStudio_JStage14TAdaptor_actorFPCQ27JStudio8TControl = .text:0x
getJSG_SRT___Q214JStudio_JStage14TAdaptor_actorFPCQ27JStudio8TControl = .text:0x804C22E0; // type:function size:0x1A8
__cl__Q314JStudio_JStage14TAdaptor_actor26TVVOutput_ANIMATION_FRAME_CFfPQ27JStudio8TAdaptor = .text:0x804C2490; // type:function size:0xE8
__dt__Q314JStudio_JStage14TAdaptor_actor26TVVOutput_ANIMATION_FRAME_Fv = .text:0x804C2580; // type:function size:0x58
-__sinit_\object-actor_cpp = .text:0x804C25E0; // type:function size:0x250
+__sinit_\object-actor_cpp = .text:0x804C25E0; // type:function size:0x250 scope:local
__dt__Q214JStudio_JStage81TVariableValueOutput_object_<Q214JStudio_JStage14TAdaptor_actor,Q26JStage6TActor>Fv = .text:0x804C2830; // type:function size:0x58
__cl__Q214JStudio_JStage81TVariableValueOutput_object_<Q214JStudio_JStage14TAdaptor_actor,Q26JStage6TActor>CFfPQ27JStudio8TAdaptor = .text:0x804C2890; // type:function size:0x30
fn_804C28C0 = .text:0x804C28C0; // type:function size:0x10
@@ -27221,7 +27221,7 @@ adaptor_do_TARGET_PARENT_NODE__Q214JStudio_JStage15TAdaptor_cameraFQ37JStudio4da
adaptor_do_TARGET_PARENT_ENABLE__Q214JStudio_JStage15TAdaptor_cameraFQ37JStudio4data15TEOperationDataPCvUl = .text:0x804C2E30; // type:function size:0x24
setJSG_position___Q214JStudio_JStage15TAdaptor_cameraFPCQ27JStudio8TControl = .text:0x804C2E60; // type:function size:0x10C
getJSG_position___Q214JStudio_JStage15TAdaptor_cameraFPCQ27JStudio8TControl = .text:0x804C2F70; // type:function size:0x118
-__sinit_\object-camera_cpp = .text:0x804C3090; // type:function size:0x228
+__sinit_\object-camera_cpp = .text:0x804C3090; // type:function size:0x228 scope:local
__dt__Q214JStudio_JStage83TVariableValueOutput_object_<Q214JStudio_JStage15TAdaptor_camera,Q26JStage7TCamera>Fv = .text:0x804C32C0; // type:function size:0x58
__cl__Q214JStudio_JStage83TVariableValueOutput_object_<Q214JStudio_JStage15TAdaptor_camera,Q26JStage7TCamera>CFfPQ27JStudio8TAdaptor = .text:0x804C3320; // type:function size:0x30
__ct__Q214JStudio_JStage14TAdaptor_lightFPCQ26JStage7TSystemPQ26JStage6TLight = .text:0x804C3350; // type:function size:0x154
@@ -27362,7 +27362,7 @@ fn_804C6150 = .text:0x804C6150; // type:function size:0x98
fn_804C61F0 = .text:0x804C61F0; // type:function size:0x8
fn_804C6200 = .text:0x804C6200; // type:function size:0x134
__dt__Q315JStudio_JAudio214TAdaptor_sound13TVVOSetValue_Fv = .text:0x804C6340; // type:function size:0x58
-__sinit_\object-sound_cpp = .text:0x804C63A0; // type:function size:0x13C
+__sinit_\object-sound_cpp = .text:0x804C63A0; // type:function size:0x13C scope:local
strlen = .text:0x804C64DC; // type:function size:0x1C scope:weak
__va_arg = .text:0x804C64F8; // type:function size:0xC8 scope:global
__register_global_object = .text:0x804C65C0; // type:function size:0x18 scope:global
@@ -28685,7 +28685,7 @@ lbl_804EF780 = .rodata:0x804EF780; // type:object size:0x68
lbl_804EF7E8 = .rodata:0x804EF7E8; // type:object size:0xC8
sItemData = .rodata:0x804EF8B0; // type:object size:0xBC scope:local data:byte
brlanMap = .rodata:0x804EF970; // type:object size:0x120 scope:local data:4byte
-lbl_804EFA90 = .rodata:0x804EFA90; // type:object size:0x10 data:4byte
+brlanMap = .rodata:0x804EFA90; // type:object size:0x10 scope:local data:4byte
lbl_804EFAA0 = .rodata:0x804EFAA0; // type:object size:0x18 data:4byte
lbl_804EFAB8 = .rodata:0x804EFAB8; // type:object size:0x18 data:4byte
lbl_804EFAD0 = .rodata:0x804EFAD0; // type:object size:0x10 data:4byte
@@ -33639,8 +33639,16 @@ __vt__17dLytAutoExplain_c = .data:0x8051E870; // type:object size:0x44
@25768 = .data:0x8051E98C; // type:object size:0x26 scope:local data:string
@25769 = .data:0x8051E9B4; // type:object size:0x1F scope:local data:string
__vt__32sFStateID_c<17dLytAutoExplain_c> = .data:0x8051E9D4; // type:object size:0x34 scope:weak
-lbl_8051EA08 = .data:0x8051EA08; // type:object size:0xA0 data:4byte
-lbl_8051EAA8 = .data:0x8051EAA8; // type:object size:0x38
+@21053 = .data:0x8051EA08; // type:object size:0xC scope:local data:4byte
+...data.0 = .data:0x8051EA08; // type:label scope:local
+@21054 = .data:0x8051EA14; // type:object size:0xC scope:local
+@21055 = .data:0x8051EA20; // type:object size:0xC scope:local
+@21056 = .data:0x8051EA2C; // type:object size:0xC scope:local
+@21057 = .data:0x8051EA38; // type:object size:0xC scope:local
+@21058 = .data:0x8051EA44; // type:object size:0xC scope:local
+@21060 = .data:0x8051EA50; // type:object size:0x28 scope:local data:string
+@21061 = .data:0x8051EA78; // type:object size:0x2D scope:local data:string
+__vt__31sFStateID_c<16dLytMapCapture_c> = .data:0x8051EAA8; // type:object size:0x34 scope:weak
lbl_8051EAE0 = .data:0x8051EAE0; // type:object size:0x13 data:string
lbl_8051EAF4 = .data:0x8051EAF4; // type:object size:0x9 data:string
lbl_8051EB00 = .data:0x8051EB00; // type:object size:0x14 data:string
@@ -37634,24 +37642,65 @@ __vt__31sFState_c<18dLytDepositStock_c> = .data:0x8053D830; // type:object size:
@32416 = .data:0x8053DF40; // type:object size:0x1B scope:local data:string
__vt__32sFStateID_c<17dLytDepositMain_c> = .data:0x8053DF5C; // type:object size:0x34 scope:weak
__vt__28sFStateID_c<13dLytDeposit_c> = .data:0x8053DF90; // type:object size:0x34 scope:weak
-lbl_8053DFC8 = .data:0x8053DFC8; // type:object size:0x16 data:string
-lbl_8053DFE0 = .data:0x8053DFE0; // type:object size:0xB data:string
-lbl_8053DFEC = .data:0x8053DFEC; // type:object size:0x17 data:string
-lbl_8053E004 = .data:0x8053E004; // type:object size:0x13 data:string
+@23163 = .data:0x8053DFC8; // type:object size:0x16 scope:local data:string
+...data.0 = .data:0x8053DFC8; // type:label scope:local
+@23164 = .data:0x8053DFE0; // type:object size:0xB scope:local data:string
+@23165 = .data:0x8053DFEC; // type:object size:0x17 scope:local data:string
+@24236 = .data:0x8053E004; // type:object size:0x13 scope:local data:string
g_profile_LYT_DEMO_TITLE = .data:0x8053E018; // type:object size:0xC
-lbl_8053E024 = .data:0x8053E024; // type:object size:0xA data:string
-lbl_8053E030 = .data:0x8053E030; // type:object size:0x50
-lbl_8053E080 = .data:0x8053E080; // type:object size:0x30
-lbl_8053E0B0 = .data:0x8053E0B0; // type:object size:0x30
-lbl_8053E0E0 = .data:0x8053E0E0; // type:object size:0x18
-lbl_8053E0F8 = .data:0x8053E0F8; // type:object size:0x18
-lbl_8053E110 = .data:0x8053E110; // type:object size:0x10
-lbl_8053E120 = .data:0x8053E120; // type:object size:0x30
-lbl_8053E150 = .data:0x8053E150; // type:object size:0x30
-lbl_8053E180 = .data:0x8053E180; // type:object size:0x18
-lbl_8053E198 = .data:0x8053E198; // type:object size:0x30C
-lbl_8053E4A4 = .data:0x8053E4A4; // type:object size:0x34
-lbl_8053E4D8 = .data:0x8053E4D8; // type:object size:0x38
+@24400 = .data:0x8053E024; // type:object size:0xA scope:local data:string
+__vt__15dLytDemoTitle_c = .data:0x8053E030; // type:object size:0x50
+__vt__54sFStateMgr_c<15dLytDemoTitle_c,20sStateMethodUsr_FI_c> = .data:0x8053E080; // type:object size:0x30 scope:weak
+__vt__84sStateMgr_c<15dLytDemoTitle_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c> = .data:0x8053E0B0; // type:object size:0x30 scope:weak
+__vt__31sFStateFct_c<15dLytDemoTitle_c> = .data:0x8053E0E0; // type:object size:0x14 scope:weak
+__vt__28sFState_c<15dLytDemoTitle_c> = .data:0x8053E0F8; // type:object size:0x18 scope:weak
+__vt__19dLytDemoTitleMain_c = .data:0x8053E110; // type:object size:0xC scope:weak
+__vt__58sFStateMgr_c<19dLytDemoTitleMain_c,20sStateMethodUsr_FI_c> = .data:0x8053E120; // type:object size:0x30 scope:weak
+__vt__88sStateMgr_c<19dLytDemoTitleMain_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c> = .data:0x8053E150; // type:object size:0x30 scope:weak
+__vt__35sFStateFct_c<19dLytDemoTitleMain_c> = .data:0x8053E180; // type:object size:0x14 scope:weak
+__vt__32sFState_c<19dLytDemoTitleMain_c> = .data:0x8053E198; // type:object size:0x18 scope:weak
+@24506 = .data:0x8053E1DC; // type:object size:0xC scope:local
+@24507 = .data:0x8053E1E8; // type:object size:0xC scope:local
+@24508 = .data:0x8053E1F4; // type:object size:0xC scope:local
+@24509 = .data:0x8053E200; // type:object size:0xC scope:local
+@24510 = .data:0x8053E20C; // type:object size:0xC scope:local
+@24511 = .data:0x8053E218; // type:object size:0xC scope:local
+@24512 = .data:0x8053E224; // type:object size:0xC scope:local
+@24513 = .data:0x8053E230; // type:object size:0xC scope:local
+@24514 = .data:0x8053E23C; // type:object size:0xC scope:local
+@24515 = .data:0x8053E248; // type:object size:0xC scope:local
+@24516 = .data:0x8053E254; // type:object size:0xC scope:local
+@24517 = .data:0x8053E260; // type:object size:0xC scope:local
+@24518 = .data:0x8053E26C; // type:object size:0xC scope:local
+@24519 = .data:0x8053E278; // type:object size:0xC scope:local
+@24520 = .data:0x8053E284; // type:object size:0xC scope:local
+@24521 = .data:0x8053E290; // type:object size:0xC scope:local
+@24522 = .data:0x8053E29C; // type:object size:0xC scope:local
+@24523 = .data:0x8053E2A8; // type:object size:0xC scope:local
+@24524 = .data:0x8053E2B4; // type:object size:0xC scope:local
+@24525 = .data:0x8053E2C0; // type:object size:0xC scope:local
+@24526 = .data:0x8053E2CC; // type:object size:0xC scope:local
+@24527 = .data:0x8053E2D8; // type:object size:0xC scope:local
+@24528 = .data:0x8053E2E4; // type:object size:0xC scope:local
+@24529 = .data:0x8053E2F0; // type:object size:0xC scope:local
+@24530 = .data:0x8053E2FC; // type:object size:0xC scope:local
+@24531 = .data:0x8053E308; // type:object size:0xC scope:local
+@24532 = .data:0x8053E314; // type:object size:0xC scope:local
+@24533 = .data:0x8053E320; // type:object size:0xC scope:local
+@24534 = .data:0x8053E32C; // type:object size:0xC scope:local
+@24535 = .data:0x8053E338; // type:object size:0xC scope:local
+@24537 = .data:0x8053E344; // type:object size:0x26 scope:local data:string
+@24538 = .data:0x8053E36C; // type:object size:0x24 scope:local data:string
+@24539 = .data:0x8053E390; // type:object size:0x26 scope:local data:string
+@24540 = .data:0x8053E3B8; // type:object size:0x25 scope:local data:string
+@24541 = .data:0x8053E3E0; // type:object size:0x25 scope:local data:string
+@24542 = .data:0x8053E408; // type:object size:0x1E scope:local data:string
+@24543 = .data:0x8053E428; // type:object size:0x1C scope:local data:string
+@24544 = .data:0x8053E444; // type:object size:0x1E scope:local data:string
+@24545 = .data:0x8053E464; // type:object size:0x1D scope:local data:string
+@24546 = .data:0x8053E484; // type:object size:0x1D scope:local data:string
+__vt__34sFStateID_c<19dLytDemoTitleMain_c> = .data:0x8053E4A4; // type:object size:0x34 scope:weak
+__vt__30sFStateID_c<15dLytDemoTitle_c> = .data:0x8053E4D8; // type:object size:0x34 scope:weak
lbl_8053E510 = .data:0x8053E510; // type:object size:0xB data:string
lbl_8053E51C = .data:0x8053E51C; // type:object size:0x4C
lbl_8053E568 = .data:0x8053E568; // type:object size:0x12 data:string
@@ -37877,7 +37926,7 @@ __vt__28sFState_c<15dLytMsgWindow_c> = .data:0x805407F8; // type:object size:0x1
@51211 = .data:0x80540C28; // type:object size:0x26 scope:local data:string
__vt__32sFStateID_c<17dLytControlGame_c> = .data:0x80540C50; // type:object size:0x34 scope:weak
g_profile_LYT_CONTROL_TITLE = .data:0x80540C88; // type:object size:0xC
-lbl_80540C94 = .data:0x80540C94; // type:object size:0x4C
+__vt__18dLytControlTitle_c = .data:0x80540C94; // type:object size:0x4C
g_profile_MAP_AREA_TAG = .data:0x80540CE0; // type:object size:0x10
TgMapArea__vtable = .data:0x80540CF0; // type:object size:0x78
g_profile_TRUCK_RAIL = .data:0x80540D68; // type:object size:0x10
@@ -41345,7 +41394,7 @@ sGroupName = .sdata:0x80573C18; // type:object size:0x4 scope:local data:4byte
@31056 = .sdata:0x80573C1C; // type:object size:0x1 scope:local
@31057 = .sdata:0x80573C20; // type:object size:0x5 scope:local data:string
@31437 = .sdata:0x80573C28; // type:object size:0x6 scope:local data:wstring
-lbl_80573C30 = .sdata:0x80573C30; // type:object size:0x8
+@24401 = .sdata:0x80573C30; // type:object size:0x1 scope:local
lbl_80573C38 = .sdata:0x80573C38; // type:object size:0x3 data:string
lbl_80573C3C = .sdata:0x80573C3C; // type:object size:0x5 data:string
lbl_80573C44 = .sdata:0x80573C44; // type:object size:0x4 data:string
@@ -42663,7 +42712,7 @@ sInstance__10dLytShop_c = .sbss:0x805759B4; // type:object size:0x4 data:4byte
@LOCAL@loadItemText__17dLytDepositMain_cFll@empty = .sbss:0x805759B8; // type:object size:0x2 scope:local
@LOCAL@loadPageText__17dLytDepositMain_cFv@buf = .sbss:0x805759C0; // type:object size:0x8 scope:local
sInstance__13dLytDeposit_c = .sbss:0x805759C8; // type:object size:0x4 data:4byte
-lbl_805759D0 = .sbss:0x805759D0; // type:object size:0x8 data:4byte
+sInstance__15dLytDemoTitle_c = .sbss:0x805759D0; // type:object size:0x4 data:4byte
LYT_END_ROLL_PTR = .sbss:0x805759D8; // type:object size:0x8 data:4byte
GLOBAL_FI_POINTER = .sbss:0x805759E0; // type:object size:0x4 data:4byte
lbl_805759E4 = .sbss:0x805759E4; // type:object size:0x1 data:byte
@@ -45755,8 +45804,8 @@ lbl_80579E10 = .sdata2:0x80579E10; // type:object size:0x8 align:8 data:double
@25578 = .sdata2:0x80579F20; // type:object size:0x4 scope:local align:4 data:float
@2523 = .sdata2:0x80579F28; // type:object size:0x4 scope:local align:4 data:float
@2524 = .sdata2:0x80579F2C; // type:object size:0x4 scope:local align:4 data:float
-lbl_80579F30 = .sdata2:0x80579F30; // type:object size:0x4 align:4 data:float
-lbl_80579F38 = .sdata2:0x80579F38; // type:object size:0x8 align:8 data:double
+@21014 = .sdata2:0x80579F30; // type:object size:0x4 scope:local align:4 data:float
+@21042 = .sdata2:0x80579F38; // type:object size:0x8 scope:local align:8 data:double
lbl_80579F40 = .sdata2:0x80579F40; // type:object size:0x4 align:4 data:float
lbl_80579F44 = .sdata2:0x80579F44; // type:object size:0x4 align:4 data:float
lbl_80579F48 = .sdata2:0x80579F48; // type:object size:0x4 align:4 data:float
@@ -48640,8 +48689,8 @@ lbl_8057C7B8 = .sdata2:0x8057C7B8; // type:object size:0x8 align:8 data:double
@LOCAL@buildSubpanes__17dLytDepositMain_cFv@sInitialPageIndices = .sdata2:0x8057C7D0; // type:object size:0x3 scope:local data:byte
@31162 = .sdata2:0x8057C7D4; // type:object size:0x4 scope:local align:4 data:float
@31777 = .sdata2:0x8057C7D8; // type:object size:0x8 scope:local align:8 data:double
-lbl_8057C7E0 = .sdata2:0x8057C7E0; // type:object size:0x4 align:4 data:float
-lbl_8057C7E4 = .sdata2:0x8057C7E4; // type:object size:0x4 align:4 data:float
+@24168 = .sdata2:0x8057C7E0; // type:object size:0x4 scope:local align:4 data:float
+@24219 = .sdata2:0x8057C7E4; // type:object size:0x4 scope:local align:4 data:float
lbl_8057C7E8 = .sdata2:0x8057C7E8; // type:object size:0x4 align:4 data:float
lbl_8057C7F0 = .sdata2:0x8057C7F0; // type:object size:0x8 align:8 data:double
lbl_8057C7F8 = .sdata2:0x8057C7F8; // type:object size:0x4 align:4 data:float
@@ -51975,8 +52024,10 @@ StateID_In__17dLytAutoExplain_c = .bss:0x805AF340; // type:object size:0x30 data
StateID_OutputText__17dLytAutoExplain_c = .bss:0x805AF380; // type:object size:0x30 data:4byte
@22221 = .bss:0x805AF3B0; // type:object size:0xC scope:local
StateID_Out__17dLytAutoExplain_c = .bss:0x805AF3C0; // type:object size:0x30 data:4byte
-lbl_805AF3F0 = .bss:0x805AF3F0; // type:object size:0x10
-StateID_RenderingWait__16dLytMapCapture_c = .bss:0x805AF400; // type:object size:0x40 data:4byte
+@20520 = .bss:0x805AF3F0; // type:object size:0xC scope:local
+...bss.0 = .bss:0x805AF3F0; // type:label scope:local
+StateID_RenderingWait__16dLytMapCapture_c = .bss:0x805AF400; // type:object size:0x30 data:4byte
+@20524 = .bss:0x805AF430; // type:object size:0xC scope:local
StateID_RenderingWaitStep2__16dLytMapCapture_c = .bss:0x805AF440; // type:object size:0x30 data:4byte
lbl_805AF470 = .bss:0x805AF470; // type:object size:0x10
sHio = .bss:0x805AF480; // type:object size:0x40 scope:local
@@ -52641,17 +52692,27 @@ StateID_Recycle__13dLytDeposit_c = .bss:0x805B7070; // type:object size:0x30 sco
StateID_ArrangementOut__13dLytDeposit_c = .bss:0x805B70B0; // type:object size:0x30 scope:global
@26147 = .bss:0x805B70E0; // type:object size:0xC scope:local
StateID_Out__13dLytDeposit_c = .bss:0x805B70F0; // type:object size:0x30 scope:global
-lbl_805B7120 = .bss:0x805B7120; // type:object size:0x10
-LytDemoTitleMain__STATE_MODE_NONE = .bss:0x805B7130; // type:object size:0x40 data:4byte
-LytDemoTitleMain__STATE_MODE_IN = .bss:0x805B7170; // type:object size:0x40 data:4byte
-LytDemoTitleMain__STATE_MODE_MOVE = .bss:0x805B71B0; // type:object size:0x40 data:4byte
-LytDemoTitleMain__STATE_MODE_OUT = .bss:0x805B71F0; // type:object size:0x40 data:4byte
-LytDemoTitleMain__STATE_MODE_END = .bss:0x805B7230; // type:object size:0x40 data:4byte
-LytDemoTitle__STATE_NONE = .bss:0x805B7270; // type:object size:0x40 data:4byte
-LytDemoTitle__STATE_IN = .bss:0x805B72B0; // type:object size:0x40 data:4byte
-LytDemoTitle__STATE_MOVE = .bss:0x805B72F0; // type:object size:0x40 data:4byte
-LytDemoTitle__STATE_OUT = .bss:0x805B7330; // type:object size:0x40 data:4byte
-LytDemoTitle__STATE_END = .bss:0x805B7370; // type:object size:0x30 data:4byte
+@23038 = .bss:0x805B7120; // type:object size:0xC scope:local
+...bss.0 = .bss:0x805B7120; // type:label scope:local
+StateID_ModeNone__19dLytDemoTitleMain_c = .bss:0x805B7130; // type:object size:0x30 data:4byte
+@23042 = .bss:0x805B7160; // type:object size:0xC scope:local
+StateID_ModeIn__19dLytDemoTitleMain_c = .bss:0x805B7170; // type:object size:0x30 data:4byte
+@23046 = .bss:0x805B71A0; // type:object size:0xC scope:local
+StateID_ModeMove__19dLytDemoTitleMain_c = .bss:0x805B71B0; // type:object size:0x30 data:4byte
+@23050 = .bss:0x805B71E0; // type:object size:0xC scope:local
+StateID_ModeOut__19dLytDemoTitleMain_c = .bss:0x805B71F0; // type:object size:0x30 data:4byte
+@23054 = .bss:0x805B7220; // type:object size:0xC scope:local
+StateID_ModeEnd__19dLytDemoTitleMain_c = .bss:0x805B7230; // type:object size:0x30 data:4byte
+@23058 = .bss:0x805B7260; // type:object size:0xC scope:local
+StateID_None__15dLytDemoTitle_c = .bss:0x805B7270; // type:object size:0x30 data:4byte
+@23062 = .bss:0x805B72A0; // type:object size:0xC scope:local
+StateID_In__15dLytDemoTitle_c = .bss:0x805B72B0; // type:object size:0x30 data:4byte
+@23066 = .bss:0x805B72E0; // type:object size:0xC scope:local
+StateID_Move__15dLytDemoTitle_c = .bss:0x805B72F0; // type:object size:0x30 data:4byte
+@23070 = .bss:0x805B7320; // type:object size:0xC scope:local
+StateID_Out__15dLytDemoTitle_c = .bss:0x805B7330; // type:object size:0x30 data:4byte
+@23074 = .bss:0x805B7360; // type:object size:0xC scope:local
+StateID_End__15dLytDemoTitle_c = .bss:0x805B7370; // type:object size:0x30 data:4byte
lbl_805B73A0 = .bss:0x805B73A0; // type:object size:0x10
LytEndRollMain__STATE_MODE_NONE = .bss:0x805B73B0; // type:object size:0x40 data:4byte
LytEndRollMain__STATE_MODE_IN = .bss:0x805B73F0; // type:object size:0x40 data:4byte
diff --git a/configure.py b/configure.py
index dc9fe3b3..908e3ee2 100644
--- a/configure.py
+++ b/configure.py
@@ -671,14 +671,14 @@ config.libs = [
Object(NonMatching, "d/lyt/d_lyt_demo_dowsing.cpp"),
Object(NonMatching, "d/lyt/d_lyt_shop.cpp"),
Object(Matching, "d/lyt/d_lyt_deposit.cpp"),
- Object(NonMatching, "d/lyt/d_lyt_demo_title.cpp"),
+ Object(Matching, "d/lyt/d_lyt_demo_title.cpp"),
Object(NonMatching, "d/lyt/d_lyt_end_roll.cpp"),
Object(NonMatching, "toBeSorted/d_a_bullet.cpp"),
Object(NonMatching, "toBeSorted/d_a_npc_ken_talk.cpp"),
Object(NonMatching, "toBeSorted/d_a_jstudio_act.cpp"),
Object(NonMatching, "toBeSorted/d_a_jstudio_sys.cpp"),
Object(Matching, "d/lyt/d_lyt_control_game.cpp"),
- Object(NonMatching, "d/lyt/d_lyt_control_title.cpp"),
+ Object(Matching, "d/lyt/d_lyt_control_title.cpp"),
Object(NonMatching, "d/tg/d_t_map_area.cpp"),
Object(NonMatching, "d/tg/d_t_truck_rails.cpp"),
Object(NonMatching, "d/a/obj/d_a_obj_force_sign.cpp"),
diff --git a/include/d/d_stage.h b/include/d/d_stage.h
index 1c238c2f..5b69d38d 100644
--- a/include/d/d_stage.h
+++ b/include/d/d_stage.h
@@ -164,6 +164,8 @@ public:
return curr_room_id;
}
+ dFader_c& getFader() { return mFader; }
+
bool fn_801B3EE0();
void fn_801B3F20();
void fn_801B3F30();
diff --git a/include/d/d_stage_mgr.h b/include/d/d_stage_mgr.h
index 64bd6276..4771ba1e 100644
--- a/include/d/d_stage_mgr.h
+++ b/include/d/d_stage_mgr.h
@@ -121,6 +121,14 @@ public:
return (field_0x88A0 & flag) != 0;
}
+ void unsetFlags0x88a0(u32 flag){
+ field_0x88A0 &= flag;
+ }
+
+ void setFlags0x88a0(u32 flag){
+ field_0x88A0 |= flag;
+ }
+
void initUnkWithWater(u32 val, d3d::UnkWithWater *waterThing);
void destroyUnkWithWater(u32 val, d3d::UnkWithWater *waterThing);
diff --git a/include/d/lyt/d_lyt_control_title.h b/include/d/lyt/d_lyt_control_title.h
new file mode 100644
index 00000000..b5714f40
--- /dev/null
+++ b/include/d/lyt/d_lyt_control_title.h
@@ -0,0 +1,18 @@
+#ifndef D_LYT_CONTROL_TITLE_H
+#define D_LYT_CONTROL_TITLE_H
+
+#include "d/d_base.h"
+
+class dLytControlTitle_c : public dBase_c {
+public:
+ dLytControlTitle_c();
+ virtual ~dLytControlTitle_c();
+
+ virtual int create() override;
+ virtual int doDelete() override;
+ virtual int execute() override;
+ virtual int draw() override;
+
+private:
+};
+#endif
diff --git a/include/d/lyt/d_lyt_demo_title.h b/include/d/lyt/d_lyt_demo_title.h
new file mode 100644
index 00000000..84a554a8
--- /dev/null
+++ b/include/d/lyt/d_lyt_demo_title.h
@@ -0,0 +1,72 @@
+#ifndef D_LYT_DEMO_TITLE_H
+#define D_LYT_DEMO_TITLE_H
+
+#include "d/lyt/d2d.h"
+#include "d/lyt/d_lyt_base.h"
+#include "s/s_State.hpp"
+#include "s/s_StateID.hpp"
+
+class dLytDemoTitleMain_c {
+public:
+ dLytDemoTitleMain_c();
+ virtual ~dLytDemoTitleMain_c() {};
+
+ bool build(d2d::ResAccIf_c *resAcc);
+ bool execute();
+ bool draw();
+ bool remove();
+ void fn_802B09F0();
+ void fn_802B0A50();
+ void fn_802B0B00();
+ void fn_802B0B50();
+ void fn_802B0BD0();
+
+ bool getmIsAnimating() {
+ return mIsAnimating;
+ }
+
+ d2d::LytBase_c getmLytBase() {
+ return mLytBase;
+ }
+
+private:
+ STATE_FUNC_DECLARE(dLytDemoTitleMain_c, ModeNone);
+ STATE_FUNC_DECLARE(dLytDemoTitleMain_c, ModeIn);
+ STATE_FUNC_DECLARE(dLytDemoTitleMain_c, ModeMove);
+ STATE_FUNC_DECLARE(dLytDemoTitleMain_c, ModeOut);
+ STATE_FUNC_DECLARE(dLytDemoTitleMain_c, ModeEnd);
+
+ /* 0x004 */ UI_STATE_MGR_DECLARE(dLytDemoTitleMain_c);
+ /* 0x040 */ d2d::LytBase_c mLytBase;
+ /* 0x0d0 */ d2d::AnmGroup_c mAnmGroups[2];
+ /* 0x150 */ bool mIsAnimating;
+};
+
+class dLytDemoTitle_c : public dLytBase_c {
+public:
+ dLytDemoTitle_c() : mStateMgr(*this) {}
+ virtual ~dLytDemoTitle_c() {}
+
+ virtual int create() override;
+ virtual int execute() override;
+ virtual int draw() override;
+ virtual int doDelete() override;
+
+private:
+ STATE_FUNC_DECLARE(dLytDemoTitle_c, None);
+ STATE_FUNC_DECLARE(dLytDemoTitle_c, In);
+ STATE_FUNC_DECLARE(dLytDemoTitle_c, Move);
+ STATE_FUNC_DECLARE(dLytDemoTitle_c, Out);
+ STATE_FUNC_DECLARE(dLytDemoTitle_c, End);
+
+ STATE_MGR_DEFINE_UTIL_INSTANCIATE_STATE(dLytDemoTitle_c);
+
+ static dLytDemoTitle_c *sInstance;
+
+ /* 0x08c */ UI_STATE_MGR_DECLARE(dLytDemoTitle_c);
+ /* 0x040 */ d2d::ResAccIf_c resAcc;
+ /* 0x438 */ dLytDemoTitleMain_c mMain;
+ /* 0x58c */ bool mIsAnimating;
+ /* 0x58d */ bool field_0x58d;
+};
+#endif
diff --git a/src/d/lyt/d_lyt_control_title.cpp b/src/d/lyt/d_lyt_control_title.cpp
new file mode 100644
index 00000000..476cdfb1
--- /dev/null
+++ b/src/d/lyt/d_lyt_control_title.cpp
@@ -0,0 +1,27 @@
+#include "d/lyt/d_lyt_control_title.h"
+
+#include "f/f_base.h"
+
+
+SPECIAL_BASE_PROFILE(LYT_CONTROL_TITLE, dLytControlTitle_c, fProfile::LYT_CONTROL_TITLE, 0X2AB, 0);
+
+dLytControlTitle_c::dLytControlTitle_c() {}
+
+
+int dLytControlTitle_c::create() {
+ return SUCCEEDED;
+}
+
+int dLytControlTitle_c::doDelete() {
+ return SUCCEEDED;
+}
+
+int dLytControlTitle_c::execute() {
+ return SUCCEEDED;
+}
+
+int dLytControlTitle_c::draw() {
+ return SUCCEEDED;
+}
+
+dLytControlTitle_c::~dLytControlTitle_c() {}
diff --git a/src/d/lyt/d_lyt_demo_title.cpp b/src/d/lyt/d_lyt_demo_title.cpp
new file mode 100644
index 00000000..15ea8910
--- /dev/null
+++ b/src/d/lyt/d_lyt_demo_title.cpp
@@ -0,0 +1,318 @@
+#include "d/lyt/d_lyt_demo_title.h"
+
+#include "d/d_fader.h"
+#include "d/d_stage.h"
+#include "d/d_stage_mgr.h"
+#include "d/d_sys.h"
+#include "d/lyt/d2d.h"
+#include "toBeSorted/arc_managers/layout_arc_manager.h"
+
+extern "C" u32 lbl_805B7120;
+
+#define TITLE_DEMO_MAIN_ANIM_IN 0
+#define TITLE_DEMO_MAIN_ANIM_OUT 1
+
+STATE_DEFINE(dLytDemoTitleMain_c, ModeNone);
+STATE_DEFINE(dLytDemoTitleMain_c, ModeIn);
+STATE_DEFINE(dLytDemoTitleMain_c, ModeMove);
+STATE_DEFINE(dLytDemoTitleMain_c, ModeOut);
+STATE_DEFINE(dLytDemoTitleMain_c, ModeEnd);
+
+STATE_DEFINE(dLytDemoTitle_c, None);
+STATE_DEFINE(dLytDemoTitle_c, In);
+STATE_DEFINE(dLytDemoTitle_c, Move);
+STATE_DEFINE(dLytDemoTitle_c, Out);
+STATE_DEFINE(dLytDemoTitle_c, End);
+
+dLytDemoTitle_c *dLytDemoTitle_c::sInstance;
+
+void dLytDemoTitleMain_c::initializeState_ModeNone() {
+ return;
+}
+
+void dLytDemoTitleMain_c::executeState_ModeNone() {
+ mIsAnimating = true;
+ return;
+}
+
+void dLytDemoTitleMain_c::finalizeState_ModeNone() {
+ return;
+}
+
+void dLytDemoTitleMain_c::initializeState_ModeIn() {
+ return;
+}
+
+void dLytDemoTitleMain_c::executeState_ModeIn() {
+ if (mAnmGroups[TITLE_DEMO_MAIN_ANIM_IN].isEndReached()) {
+ mAnmGroups[TITLE_DEMO_MAIN_ANIM_IN].setAnimEnable(false);
+ mIsAnimating = true;
+ }
+ return;
+}
+
+void dLytDemoTitleMain_c::finalizeState_ModeIn() {
+ return;
+}
+
+void dLytDemoTitleMain_c::initializeState_ModeMove() {
+ return;
+}
+
+void dLytDemoTitleMain_c::executeState_ModeMove() {
+ mIsAnimating = true;
+ return;
+}
+
+void dLytDemoTitleMain_c::finalizeState_ModeMove() {
+ return;
+}
+
+void dLytDemoTitleMain_c::initializeState_ModeOut() {
+ return;
+}
+
+void dLytDemoTitleMain_c::executeState_ModeOut() {
+ if (mAnmGroups[TITLE_DEMO_MAIN_ANIM_OUT].isEndReached()) {
+ mAnmGroups[TITLE_DEMO_MAIN_ANIM_OUT].setAnimEnable(false);
+ mIsAnimating = true;
+ }
+ return;
+}
+
+void dLytDemoTitleMain_c::finalizeState_ModeOut() {
+ return;
+}
+
+void dLytDemoTitleMain_c::initializeState_ModeEnd() {
+ return;
+}
+
+void dLytDemoTitleMain_c::executeState_ModeEnd() {
+ mIsAnimating = true;
+ return;
+}
+
+void dLytDemoTitleMain_c::finalizeState_ModeEnd() {
+ return;
+}
+
+dLytDemoTitleMain_c::dLytDemoTitleMain_c() : mStateMgr(*this) {}
+
+static const d2d::LytBrlanMapping brlanMap[] = {
+ { "demoTitle_00_in.brlan", "G_inOut_00"},
+ {"demoTitle_00_out.brlan", "G_inOut_00"},
+};
+
+bool dLytDemoTitleMain_c::build(d2d::ResAccIf_c *resAcc) {
+ mLytBase.setResAcc(resAcc);
+ mLytBase.build("demoTitle_00.brlyt", nullptr);
+ mLytBase.setPriority(0x86);
+
+ for (int i = 0; i < 2; i++) {
+ mAnmGroups[i].init(brlanMap[i].mFile, resAcc, mLytBase.getLayout(), brlanMap[i].mName);
+ mAnmGroups[i].bind(false);
+ mAnmGroups[i].setAnimEnable(false);
+ }
+
+ mAnmGroups[TITLE_DEMO_MAIN_ANIM_IN].setAnimEnable(true);
+ mAnmGroups[TITLE_DEMO_MAIN_ANIM_IN].setFrame(0.0f);
+
+ mLytBase.calc();
+
+ mAnmGroups[TITLE_DEMO_MAIN_ANIM_IN].setAnimEnable(false);
+
+ fn_802B09F0();
+
+ return true;
+}
+
+bool dLytDemoTitleMain_c::execute() {
+ mLytBase.getLayout()->GetRootPane()->SetInfluencedAlpha(true);
+ mLytBase.getLayout()->GetRootPane()->SetAlpha(255 - dStage_c::GetInstance()->getFader().getColorFaderAlpha());
+
+ mStateMgr.executeState();
+
+ for (int i = 0; i < 2; i++) {
+ if (mAnmGroups[i].isEnabled()) {
+ mAnmGroups[i].play();
+ }
+ }
+
+ mLytBase.calc();
+
+ return true;
+}
+
+bool dLytDemoTitleMain_c::draw() {
+ mLytBase.addToDrawList();
+ return true;
+}
+
+bool dLytDemoTitleMain_c::remove() {
+ dStageMgr_c::GetInstance()->unsetFlags0x88a0(0xfffffffe);
+
+ mLytBase.unbindAnims();
+
+ for (int i = 0; i < 2; i++) {
+ mAnmGroups[i].remove();
+ }
+ return true;
+}
+
+void dLytDemoTitleMain_c::fn_802B09F0() {
+ mStateMgr.changeState(StateID_ModeNone);
+ mIsAnimating = false;
+ return;
+}
+
+void dLytDemoTitleMain_c::fn_802B0A50() {
+ dStageMgr_c::GetInstance()->setFlags0x88a0(0x1);
+
+ dSys_c::setClearColor(mColor(0xFF));
+
+ mAnmGroups[TITLE_DEMO_MAIN_ANIM_IN].setAnimEnable(true);
+ mAnmGroups[TITLE_DEMO_MAIN_ANIM_IN].setFrame(0.0f);
+ mLytBase.calc();
+ mStateMgr.changeState(StateID_ModeIn);
+ mIsAnimating = false;
+}
+
+void dLytDemoTitleMain_c::fn_802B0B00() {
+ mStateMgr.changeState(StateID_ModeMove);
+ mIsAnimating = false;
+ return;
+}
+
+void dLytDemoTitleMain_c::fn_802B0B50() {
+ mAnmGroups[TITLE_DEMO_MAIN_ANIM_OUT].setAnimEnable(true);
+ mAnmGroups[TITLE_DEMO_MAIN_ANIM_OUT].setFrame(0.0f);
+ mLytBase.calc();
+ mStateMgr.changeState(StateID_ModeOut);
+ mIsAnimating = false;
+ return;
+}
+
+void dLytDemoTitleMain_c::fn_802B0BD0() {
+ mStateMgr.changeState(StateID_ModeEnd);
+ mIsAnimating = false;
+ return;
+}
+
+void dLytDemoTitle_c::initializeState_None() {
+ return;
+}
+
+void dLytDemoTitle_c::executeState_None() {
+ if (mIsAnimating) {
+ mMain.fn_802B0A50();
+ mStateMgr.changeState(StateID_In);
+ mIsAnimating = false;
+ }
+ return;
+}
+
+void dLytDemoTitle_c::finalizeState_None() {
+ return;
+}
+
+void dLytDemoTitle_c::initializeState_In() {
+ return;
+}
+
+void dLytDemoTitle_c::executeState_In() {
+ if (mMain.getmIsAnimating()) {
+ mMain.fn_802B0B00();
+ mStateMgr.changeState(StateID_Move);
+ }
+ return;
+}
+
+void dLytDemoTitle_c::finalizeState_In() {
+ return;
+}
+
+void dLytDemoTitle_c::initializeState_Move() {
+ return;
+}
+
+void dLytDemoTitle_c::executeState_Move() {
+ if (mMain.getmIsAnimating() && field_0x58d) {
+ mMain.fn_802B0B50();
+ mStateMgr.changeState(StateID_Out);
+ field_0x58d = false;
+ }
+ return;
+}
+
+void dLytDemoTitle_c::finalizeState_Move() {
+ return;
+}
+
+void dLytDemoTitle_c::initializeState_Out() {
+ return;
+}
+
+void dLytDemoTitle_c::executeState_Out() {
+ if (mMain.getmIsAnimating()) {
+ deleteRequest();
+ mMain.fn_802B0BD0();
+ mStateMgr.changeState(StateID_End);
+ }
+
+ return;
+}
+
+void dLytDemoTitle_c::finalizeState_Out() {
+ return;
+}
+
+void dLytDemoTitle_c::initializeState_End() {
+ return;
+}
+
+void dLytDemoTitle_c::executeState_End() {
+ return;
+}
+
+void dLytDemoTitle_c::finalizeState_End() {
+ return;
+}
+
+SPECIAL_BASE_PROFILE(LYT_DEMO_TITLE, dLytDemoTitle_c, fProfile::LYT_DEMO_TITLE, 0x2BA, 0);
+
+int dLytDemoTitle_c::create() {
+ sInstance = this;
+
+ resAcc.attach(LayoutArcManager::GetInstance()->getLoadedData("DemoTitle"), "");
+
+ mMain.build(&resAcc);
+ mStateMgr.changeState(StateID_None);
+ mIsAnimating = true;
+ field_0x58d = false;
+ return SUCCEEDED;
+}
+
+int dLytDemoTitle_c::execute() {
+ if (*mStateMgr.getStateID() != StateID_None) {
+ mMain.execute();
+ }
+
+ mStateMgr.executeState();
+
+ return SUCCEEDED;
+}
+
+int dLytDemoTitle_c::draw() {
+ if (*mStateMgr.getStateID() != StateID_None) {
+ mMain.draw();
+ }
+ return SUCCEEDED;
+}
+
+int dLytDemoTitle_c::doDelete() {
+ mMain.remove();
+ resAcc.detach();
+ sInstance = nullptr;
+ return SUCCEEDED;
+}