d_lyt_meter stuff

This commit is contained in:
robojumper
2025-04-09 01:53:57 +02:00
parent 7fa483e850
commit 7ac3f3cd03
18 changed files with 1837 additions and 367 deletions
+4
View File
@@ -359,6 +359,7 @@ d/lyt/meter/d_lyt_meter_item_select.cpp:
.text start:0x800E8EE0 end:0x800F35A8
.ctors start:0x804DB700 end:0x804DB704
.data start:0x805153A8 end:0x80516A28
.bss start:0x805AACD0 end:0x805AB650
d/lyt/meter/d_lyt_meter_plus_btn.cpp:
.text start:0x800F35B0 end:0x800F4768
@@ -388,7 +389,10 @@ d/lyt/meter/d_lyt_meter_rupy.cpp:
d/lyt/meter/d_lyt_meter_ganbari_gauge.cpp:
.text start:0x801026B0 end:0x80105548
.ctors start:0x804DB718 end:0x804DB71C
.rodata start:0x804E69D8 end:0x804E6A58
.data start:0x80518F00 end:0x80519578
.sdata2 start:0x80579C78 end:0x80579CF8
.bss start:0x805AC750 end:0x805ACA90
d/lyt/meter/d_lyt_meter_event_skip.cpp:
.text start:0x80105550 end:0x80105F68
+174 -174
View File
@@ -5666,148 +5666,148 @@ fn_800E8AA0 = .text:0x800E8AA0; // type:function size:0x8
__sinit_\d_lyt_meter_nun_stk_cpp = .text:0x800E8AB0; // type:function size:0x338 scope:local
__dt__32sFStateID_c<17dLytMeterNunStk_c>Fv = .text:0x800E8DF0; // type:function size:0x58
isSameName__32sFStateID_c<17dLytMeterNunStk_c>CFPCc = .text:0x800E8E50; // type:function size:0x88
LytMeterItemSelectIcon__stateWaitEnter = .text:0x800E8EE0; // type:function size:0x4
LytMeterItemSelectIcon__stateWaitUpdate = .text:0x800E8EF0; // type:function size:0x8C
initializeState_Wait__25dLytMeterItemSelectIcon_cFv = .text:0x800E8EE0; // type:function size:0x4
executeState_Wait__25dLytMeterItemSelectIcon_cFv = .text:0x800E8EF0; // type:function size:0x8C
changeState__94sStateMgr_c<25dLytMeterItemSelectIcon_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>FRC12sStateIDIf_c = .text:0x800E8F80; // type:function size:0x10
LytMeterItemSelectIcon__stateWaitLeave = .text:0x800E8F90; // type:function size:0x4
LytMeterItemSelectIcon__stateOnEnter = .text:0x800E8FA0; // type:function size:0x4
LytMeterItemSelectIcon__stateOnUpdate = .text:0x800E8FB0; // type:function size:0x9C
LytMeterItemSelectIcon__stateOnLeave = .text:0x800E9050; // type:function size:0x4
LytMeterItemSelectIcon__stateSelectEnter = .text:0x800E9060; // type:function size:0x4
LytMeterItemSelectIcon__stateSelectUpdate = .text:0x800E9070; // type:function size:0x98
LytMeterItemSelectIcon__stateSelectLeave = .text:0x800E9110; // type:function size:0x4
LytMeterItemSelectIcon__stateOffEnter = .text:0x800E9120; // type:function size:0x4
LytMeterItemSelectIcon__stateOffUpdate = .text:0x800E9130; // type:function size:0x84
LytMeterItemSelectIcon__stateOffLeave = .text:0x800E91C0; // type:function size:0x4
fn_800E91D0 = .text:0x800E91D0; // type:function size:0x6C
fn_800E9240 = .text:0x800E9240; // type:function size:0x10
finalizeState_Wait__25dLytMeterItemSelectIcon_cFv = .text:0x800E8F90; // type:function size:0x4
initializeState_On__25dLytMeterItemSelectIcon_cFv = .text:0x800E8FA0; // type:function size:0x4
executeState_On__25dLytMeterItemSelectIcon_cFv = .text:0x800E8FB0; // type:function size:0x9C
finalizeState_On__25dLytMeterItemSelectIcon_cFv = .text:0x800E9050; // type:function size:0x4
initializeState_Select__25dLytMeterItemSelectIcon_cFv = .text:0x800E9060; // type:function size:0x4
executeState_Select__25dLytMeterItemSelectIcon_cFv = .text:0x800E9070; // type:function size:0x98
finalizeState_Select__25dLytMeterItemSelectIcon_cFv = .text:0x800E9110; // type:function size:0x4
initializeState_Off__25dLytMeterItemSelectIcon_cFv = .text:0x800E9120; // type:function size:0x4
executeState_Off__25dLytMeterItemSelectIcon_cFv = .text:0x800E9130; // type:function size:0x84
finalizeState_Off__25dLytMeterItemSelectIcon_cFv = .text:0x800E91C0; // type:function size:0x4
init__25dLytMeterItemSelectIcon_cFv = .text:0x800E91D0; // type:function size:0x6C
execute__25dLytMeterItemSelectIcon_cFv = .text:0x800E9240; // type:function size:0x10
executeState__94sStateMgr_c<25dLytMeterItemSelectIcon_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x800E9250; // type:function size:0x10
fn_800E9260 = .text:0x800E9260; // type:function size:0x4
fn_800E9270 = .text:0x800E9270; // type:function size:0x8C
initializeState_Wait__26dLytMeterItemSelectBlink_cFv = .text:0x800E9260; // type:function size:0x4
executeState_Wait__26dLytMeterItemSelectBlink_cFv = .text:0x800E9270; // type:function size:0x8C
changeState__95sStateMgr_c<26dLytMeterItemSelectBlink_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>FRC12sStateIDIf_c = .text:0x800E9300; // type:function size:0x10
fn_800E9310 = .text:0x800E9310; // type:function size:0x4
fn_800E9320 = .text:0x800E9320; // type:function size:0x4
fn_800E9330 = .text:0x800E9330; // type:function size:0x9C
fn_800E93D0 = .text:0x800E93D0; // type:function size:0x4
fn_800E93E0 = .text:0x800E93E0; // type:function size:0x4
fn_800E93F0 = .text:0x800E93F0; // type:function size:0x98
fn_800E9490 = .text:0x800E9490; // type:function size:0x4
fn_800E94A0 = .text:0x800E94A0; // type:function size:0x4
fn_800E94B0 = .text:0x800E94B0; // type:function size:0x84
fn_800E9540 = .text:0x800E9540; // type:function size:0x4
fn_800E9550 = .text:0x800E9550; // type:function size:0x20
fn_800E9570 = .text:0x800E9570; // type:function size:0x10
finalizeState_Wait__26dLytMeterItemSelectBlink_cFv = .text:0x800E9310; // type:function size:0x4
initializeState_On__26dLytMeterItemSelectBlink_cFv = .text:0x800E9320; // type:function size:0x4
executeState_On__26dLytMeterItemSelectBlink_cFv = .text:0x800E9330; // type:function size:0x9C
finalizeState_On__26dLytMeterItemSelectBlink_cFv = .text:0x800E93D0; // type:function size:0x4
initializeState_Select__26dLytMeterItemSelectBlink_cFv = .text:0x800E93E0; // type:function size:0x4
executeState_Select__26dLytMeterItemSelectBlink_cFv = .text:0x800E93F0; // type:function size:0x98
finalizeState_Select__26dLytMeterItemSelectBlink_cFv = .text:0x800E9490; // type:function size:0x4
initializeState_Off__26dLytMeterItemSelectBlink_cFv = .text:0x800E94A0; // type:function size:0x4
executeState_Off__26dLytMeterItemSelectBlink_cFv = .text:0x800E94B0; // type:function size:0x84
finalizeState_Off__26dLytMeterItemSelectBlink_cFv = .text:0x800E9540; // type:function size:0x4
init__26dLytMeterItemSelectBlink_cFv = .text:0x800E9550; // type:function size:0x20
execute__26dLytMeterItemSelectBlink_cFv = .text:0x800E9570; // type:function size:0x10
executeState__95sStateMgr_c<26dLytMeterItemSelectBlink_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x800E9580; // type:function size:0x10
fn_800E9590 = .text:0x800E9590; // type:function size:0x4
fn_800E95A0 = .text:0x800E95A0; // type:function size:0x8C
initializeState_Wait__25dLytMeterItemSelectText_cFv = .text:0x800E9590; // type:function size:0x4
executeState_Wait__25dLytMeterItemSelectText_cFv = .text:0x800E95A0; // type:function size:0x8C
changeState__94sStateMgr_c<25dLytMeterItemSelectText_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>FRC12sStateIDIf_c = .text:0x800E9630; // type:function size:0x10
fn_800E9640 = .text:0x800E9640; // type:function size:0x4
fn_800E9650 = .text:0x800E9650; // type:function size:0x4
fn_800E9660 = .text:0x800E9660; // type:function size:0x9C
fn_800E9700 = .text:0x800E9700; // type:function size:0x4
fn_800E9710 = .text:0x800E9710; // type:function size:0x4
fn_800E9720 = .text:0x800E9720; // type:function size:0x98
fn_800E97C0 = .text:0x800E97C0; // type:function size:0x4
fn_800E97D0 = .text:0x800E97D0; // type:function size:0x4
fn_800E97E0 = .text:0x800E97E0; // type:function size:0x84
fn_800E9870 = .text:0x800E9870; // type:function size:0x4
fn_800E9880 = .text:0x800E9880; // type:function size:0x20
fn_800E98A0 = .text:0x800E98A0; // type:function size:0x10
finalizeState_Wait__25dLytMeterItemSelectText_cFv = .text:0x800E9640; // type:function size:0x4
initializeState_On__25dLytMeterItemSelectText_cFv = .text:0x800E9650; // type:function size:0x4
executeState_On__25dLytMeterItemSelectText_cFv = .text:0x800E9660; // type:function size:0x9C
finalizeState_On__25dLytMeterItemSelectText_cFv = .text:0x800E9700; // type:function size:0x4
initializeState_Select__25dLytMeterItemSelectText_cFv = .text:0x800E9710; // type:function size:0x4
executeState_Select__25dLytMeterItemSelectText_cFv = .text:0x800E9720; // type:function size:0x98
finalizeState_Select__25dLytMeterItemSelectText_cFv = .text:0x800E97C0; // type:function size:0x4
initializeState_Off__25dLytMeterItemSelectText_cFv = .text:0x800E97D0; // type:function size:0x4
executeState_Off__25dLytMeterItemSelectText_cFv = .text:0x800E97E0; // type:function size:0x84
finalizeState_Off__25dLytMeterItemSelectText_cFv = .text:0x800E9870; // type:function size:0x4
init__25dLytMeterItemSelectText_cFv = .text:0x800E9880; // type:function size:0x20
execute__25dLytMeterItemSelectText_cFv = .text:0x800E98A0; // type:function size:0x10
executeState__94sStateMgr_c<25dLytMeterItemSelectText_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x800E98B0; // type:function size:0x10
fn_800E98C0 = .text:0x800E98C0; // type:function size:0xC
fn_800E98D0 = .text:0x800E98D0; // type:function size:0x90
initializeState_Invisible__24dLytMeterItemSelectBtn_cFv = .text:0x800E98C0; // type:function size:0xC
executeState_Invisible__24dLytMeterItemSelectBtn_cFv = .text:0x800E98D0; // type:function size:0x90
changeState__93sStateMgr_c<24dLytMeterItemSelectBtn_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>FRC12sStateIDIf_c = .text:0x800E9960; // type:function size:0x10
fn_800E9970 = .text:0x800E9970; // type:function size:0x4
fn_800E9980 = .text:0x800E9980; // type:function size:0x84
fn_800E9A10 = .text:0x800E9A10; // type:function size:0x10C
fn_800E9B20 = .text:0x800E9B20; // type:function size:0x4
fn_800E9B30 = .text:0x800E9B30; // type:function size:0x4
fn_800E9B40 = .text:0x800E9B40; // type:function size:0x6C
fn_800E9BB0 = .text:0x800E9BB0; // type:function size:0x4
fn_800E9BC0 = .text:0x800E9BC0; // type:function size:0x84
fn_800E9C50 = .text:0x800E9C50; // type:function size:0x10C
fn_800E9D60 = .text:0x800E9D60; // type:function size:0x4
fn_800E9D70 = .text:0x800E9D70; // type:function size:0x40
fn_800E9DB0 = .text:0x800E9DB0; // type:function size:0x3C
finalizeState_Invisible__24dLytMeterItemSelectBtn_cFv = .text:0x800E9970; // type:function size:0x4
initializeState_On__24dLytMeterItemSelectBtn_cFv = .text:0x800E9980; // type:function size:0x84
executeState_On__24dLytMeterItemSelectBtn_cFv = .text:0x800E9A10; // type:function size:0x10C
finalizeState_On__24dLytMeterItemSelectBtn_cFv = .text:0x800E9B20; // type:function size:0x4
initializeState_Visible__24dLytMeterItemSelectBtn_cFv = .text:0x800E9B30; // type:function size:0x4
executeState_Visible__24dLytMeterItemSelectBtn_cFv = .text:0x800E9B40; // type:function size:0x6C
finalizeState_Visible__24dLytMeterItemSelectBtn_cFv = .text:0x800E9BB0; // type:function size:0x4
initializeState_Off__24dLytMeterItemSelectBtn_cFv = .text:0x800E9BC0; // type:function size:0x84
executeState_Off__24dLytMeterItemSelectBtn_cFv = .text:0x800E9C50; // type:function size:0x10C
finalizeState_Off__24dLytMeterItemSelectBtn_cFv = .text:0x800E9D60; // type:function size:0x4
init__24dLytMeterItemSelectBtn_cFlPQ23d2d7dLytSubPQ34nw4r3lyt4Pane = .text:0x800E9D70; // type:function size:0x40
execute__24dLytMeterItemSelectBtn_cFv = .text:0x800E9DB0; // type:function size:0x3C
executeState__93sStateMgr_c<24dLytMeterItemSelectBtn_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x800E9DF0; // type:function size:0x10
fn_800E9E00 = .text:0x800E9E00; // type:function size:0x24
fn_800E9E30 = .text:0x800E9E30; // type:function size:0x114
fn_800E9E00__24dLytMeterItemSelectBtn_cFUcUc = .text:0x800E9E00; // type:function size:0x24
fn_800E9E30__24dLytMeterItemSelectBtn_cFUc = .text:0x800E9E30; // type:function size:0x114
fn_800E9F50 = .text:0x800E9F50; // type:function size:0x18
fn_800E9F70 = .text:0x800E9F70; // type:function size:0xDC
__ct__21dLytMeterItemSelect_cFv = .text:0x800EA050; // type:function size:0x268
__ct__25dLytMeterItemSelectIcon_cFv = .text:0x800EA2C0; // type:function size:0x8C
__ct__25dLytMeterItemSelectText_cFv = .text:0x800EA350; // type:function size:0x8C
__ct__24dLytMeterItemSelectBtn_cFv = .text:0x800EA3E0; // type:function size:0x8C
LytMeterItemSelect__stateInitWaitEnter = .text:0x800EA470; // type:function size:0x4
LytMeterItemSelect__stateInitWaitUpdate = .text:0x800EA480; // type:function size:0x6BC
initializeState_InitWait__21dLytMeterItemSelect_cFv = .text:0x800EA470; // type:function size:0x4
executeState_InitWait__21dLytMeterItemSelect_cFv = .text:0x800EA480; // type:function size:0x6BC
changeState__90sStateMgr_c<21dLytMeterItemSelect_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>FRC12sStateIDIf_c = .text:0x800EAB40; // type:function size:0x10
LytMeterItemSelect__stateInitWaitLeave = .text:0x800EAB50; // type:function size:0x4
LytMeterItemSelect__stateWaitEnter = .text:0x800EAB60; // type:function size:0x1C
LytMeterItemSelect__stateWaitUpdate = .text:0x800EAB80; // type:function size:0x2C0
LytMeterItemSelect__stateWaitLeave = .text:0x800EAE40; // type:function size:0x4
LytMeterItemSelect__stateSelectInEnter = .text:0x800EAE50; // type:function size:0x280
LytMeterItemSelect__stateSelectInUpdate = .text:0x800EB0D0; // type:function size:0x154
LytMeterItemSelect__stateSelectInLeave = .text:0x800EB230; // type:function size:0xC
LytMeterItemSelect__stateSelectEnter = .text:0x800EB240; // type:function size:0x4
LytMeterItemSelect__stateSelectUpdate = .text:0x800EB250; // type:function size:0x110
LytMeterItemSelect__stateSelectLeave = .text:0x800EB360; // type:function size:0x4
LytMeterItemSelect__stateSetInEnter = .text:0x800EB370; // type:function size:0x120
LytMeterItemSelect__stateSetInUpdate = .text:0x800EB490; // type:function size:0x1A8
LytMeterItemSelect__stateSetInLeave = .text:0x800EB640; // type:function size:0x4
LytMeterItemSelect__stateSetSpecialItemInEnter = .text:0x800EB650; // type:function size:0x184
LytMeterItemSelect__stateSetSpecialItemInUpdate = .text:0x800EB7E0; // type:function size:0x160
LytMeterItemSelect__stateSetSpecialItemInLeave = .text:0x800EB940; // type:function size:0x4
LytMeterItemSelect__stateSetEnter = .text:0x800EB950; // type:function size:0x44
LytMeterItemSelect__stateSetUpdate = .text:0x800EB9A0; // type:function size:0x1F0
LytMeterItemSelect__stateSetLeave = .text:0x800EBB90; // type:function size:0x4
LytMeterItemSelect__stateSetOutEnter = .text:0x800EBBA0; // type:function size:0x10
LytMeterItemSelect__stateSetOutUpdate = .text:0x800EBBB0; // type:function size:0x8C
LytMeterItemSelect__stateSetOutLeave = .text:0x800EBC40; // type:function size:0x4
fn_800EBC50 = .text:0x800EBC50; // type:function size:0xD8
fn_800EBD30 = .text:0x800EBD30; // type:function size:0x10C
fn_800EBE40 = .text:0x800EBE40; // type:function size:0x4
fn_800EBE50 = .text:0x800EBE50; // type:function size:0xAC
fn_800EBF00 = .text:0x800EBF00; // type:function size:0x17C
fn_800EC080 = .text:0x800EC080; // type:function size:0x4
fn_800EC090 = .text:0x800EC090; // type:function size:0x78
fn_800EC110 = .text:0x800EC110; // type:function size:0x84
fn_800EC1A0 = .text:0x800EC1A0; // type:function size:0x4
fn_800EC1B0 = .text:0x800EC1B0; // type:function size:0x4
fn_800EC1C0 = .text:0x800EC1C0; // type:function size:0x1C8
fn_800EC390 = .text:0x800EC390; // type:function size:0x4
fn_800EC3A0 = .text:0x800EC3A0; // type:function size:0x6C
fn_800EC410 = .text:0x800EC410; // type:function size:0x138
fn_800EC550 = .text:0x800EC550; // type:function size:0x4
fn_800EC560 = .text:0x800EC560; // type:function size:0x140
fn_800EC6A0 = .text:0x800EC6A0; // type:function size:0x240
fn_800EC8E0 = .text:0x800EC8E0; // type:function size:0x54
fn_800EC940 = .text:0x800EC940; // type:function size:0x8C
fn_800EC9D0 = .text:0x800EC9D0; // type:function size:0x27C
fn_800ECC50 = .text:0x800ECC50; // type:function size:0x4
fn_800ECC60 = .text:0x800ECC60; // type:function size:0x4
fn_800ECC70 = .text:0x800ECC70; // type:function size:0x150
fn_800ECDC0 = .text:0x800ECDC0; // type:function size:0x4
fn_800ECDD0 = .text:0x800ECDD0; // type:function size:0x2F4
fn_800ED0D0 = .text:0x800ED0D0; // type:function size:0x210
fn_800ED2E0 = .text:0x800ED2E0; // type:function size:0x4
fn_800ED2F0 = .text:0x800ED2F0; // type:function size:0x90
fn_800ED380 = .text:0x800ED380; // type:function size:0x11C
fn_800ED4A0 = .text:0x800ED4A0; // type:function size:0x4
fn_800ED4B0 = .text:0x800ED4B0; // type:function size:0x54
fn_800ED510 = .text:0x800ED510; // type:function size:0xAC
fn_800ED5C0 = .text:0x800ED5C0; // type:function size:0x4
fn_800ED5D0 = .text:0x800ED5D0; // type:function size:0x138
fn_800ED710 = .text:0x800ED710; // type:function size:0xE0
fn_800ED7F0 = .text:0x800ED7F0; // type:function size:0x4
fn_800ED800 = .text:0x800ED800; // type:function size:0x4
fn_800ED810 = .text:0x800ED810; // type:function size:0xB0
fn_800ED8C0 = .text:0x800ED8C0; // type:function size:0x4
fn_800ED8D0 = .text:0x800ED8D0; // type:function size:0x1D4
fn_800EDAB0 = .text:0x800EDAB0; // type:function size:0x1BC
fn_800EDC70 = .text:0x800EDC70; // type:function size:0x4
fn_800EDC80 = .text:0x800EDC80; // type:function size:0x590
fn_800EE210 = .text:0x800EE210; // type:function size:0x10C
fn_800EE320 = .text:0x800EE320; // type:function size:0x123C
finalizeState_InitWait__21dLytMeterItemSelect_cFv = .text:0x800EAB50; // type:function size:0x4
initializeState_Wait__21dLytMeterItemSelect_cFv = .text:0x800EAB60; // type:function size:0x1C
executeState_Wait__21dLytMeterItemSelect_cFv = .text:0x800EAB80; // type:function size:0x2C0
finalizeState_Wait__21dLytMeterItemSelect_cFv = .text:0x800EAE40; // type:function size:0x4
initializeState_SelectIn__21dLytMeterItemSelect_cFv = .text:0x800EAE50; // type:function size:0x280
executeState_SelectIn__21dLytMeterItemSelect_cFv = .text:0x800EB0D0; // type:function size:0x154
finalizeState_SelectIn__21dLytMeterItemSelect_cFv = .text:0x800EB230; // type:function size:0xC
initializeState_Select__21dLytMeterItemSelect_cFv = .text:0x800EB240; // type:function size:0x4
executeState_Select__21dLytMeterItemSelect_cFv = .text:0x800EB250; // type:function size:0x110
finalizeState_Select__21dLytMeterItemSelect_cFv = .text:0x800EB360; // type:function size:0x4
initializeState_SetIn__21dLytMeterItemSelect_cFv = .text:0x800EB370; // type:function size:0x120
executeState_SetIn__21dLytMeterItemSelect_cFv = .text:0x800EB490; // type:function size:0x1A8
finalizeState_SetIn__21dLytMeterItemSelect_cFv = .text:0x800EB640; // type:function size:0x4
initializeState_SetSpecialItemIn__21dLytMeterItemSelect_cFv = .text:0x800EB650; // type:function size:0x184
executeState_SetSpecialItemIn__21dLytMeterItemSelect_cFv = .text:0x800EB7E0; // type:function size:0x160
finalizeState_SetSpecialItemIn__21dLytMeterItemSelect_cFv = .text:0x800EB940; // type:function size:0x4
initializeState_Set__21dLytMeterItemSelect_cFv = .text:0x800EB950; // type:function size:0x44
executeState_Set__21dLytMeterItemSelect_cFv = .text:0x800EB9A0; // type:function size:0x1F0
finalizeState_Set__21dLytMeterItemSelect_cFv = .text:0x800EBB90; // type:function size:0x4
initializeState_SetOut__21dLytMeterItemSelect_cFv = .text:0x800EBBA0; // type:function size:0x10
executeState_SetOut__21dLytMeterItemSelect_cFv = .text:0x800EBBB0; // type:function size:0x8C
finalizeState_SetOut__21dLytMeterItemSelect_cFv = .text:0x800EBC40; // type:function size:0x4
initializeState_SetNone__21dLytMeterItemSelect_cFv = .text:0x800EBC50; // type:function size:0xD8
executeState_SetNone__21dLytMeterItemSelect_cFv = .text:0x800EBD30; // type:function size:0x10C
finalizeState_SetNone__21dLytMeterItemSelect_cFv = .text:0x800EBE40; // type:function size:0x4
initializeState_SelectOut__21dLytMeterItemSelect_cFv = .text:0x800EBE50; // type:function size:0xAC
executeState_SelectOut__21dLytMeterItemSelect_cFv = .text:0x800EBF00; // type:function size:0x17C
finalizeState_SelectOut__21dLytMeterItemSelect_cFv = .text:0x800EC080; // type:function size:0x4
initializeState_ResetIn__21dLytMeterItemSelect_cFv = .text:0x800EC090; // type:function size:0x78
executeState_ResetIn__21dLytMeterItemSelect_cFv = .text:0x800EC110; // type:function size:0x84
finalizeState_ResetIn__21dLytMeterItemSelect_cFv = .text:0x800EC1A0; // type:function size:0x4
initializeState_Reset__21dLytMeterItemSelect_cFv = .text:0x800EC1B0; // type:function size:0x4
executeState_Reset__21dLytMeterItemSelect_cFv = .text:0x800EC1C0; // type:function size:0x1C8
finalizeState_Reset__21dLytMeterItemSelect_cFv = .text:0x800EC390; // type:function size:0x4
initializeState_ResetOut__21dLytMeterItemSelect_cFv = .text:0x800EC3A0; // type:function size:0x6C
executeState_ResetOut__21dLytMeterItemSelect_cFv = .text:0x800EC410; // type:function size:0x138
finalizeState_ResetOut__21dLytMeterItemSelect_cFv = .text:0x800EC550; // type:function size:0x4
initializeState_ToUse__21dLytMeterItemSelect_cFv = .text:0x800EC560; // type:function size:0x140
executeState_ToUse__21dLytMeterItemSelect_cFv = .text:0x800EC6A0; // type:function size:0x240
finalizeState_ToUse__21dLytMeterItemSelect_cFv = .text:0x800EC8E0; // type:function size:0x54
initializeState_ToUnuse__21dLytMeterItemSelect_cFv = .text:0x800EC940; // type:function size:0x8C
executeState_ToUnuse__21dLytMeterItemSelect_cFv = .text:0x800EC9D0; // type:function size:0x27C
finalizeState_ToUnuse__21dLytMeterItemSelect_cFv = .text:0x800ECC50; // type:function size:0x4
initializeState_Unuse__21dLytMeterItemSelect_cFv = .text:0x800ECC60; // type:function size:0x4
executeState_Unuse__21dLytMeterItemSelect_cFv = .text:0x800ECC70; // type:function size:0x150
finalizeState_Unuse__21dLytMeterItemSelect_cFv = .text:0x800ECDC0; // type:function size:0x4
initializeState_DemoMove__21dLytMeterItemSelect_cFv = .text:0x800ECDD0; // type:function size:0x2F4
executeState_DemoMove__21dLytMeterItemSelect_cFv = .text:0x800ED0D0; // type:function size:0x210
finalizeState_DemoMove__21dLytMeterItemSelect_cFv = .text:0x800ED2E0; // type:function size:0x4
initializeState_DemoOut0__21dLytMeterItemSelect_cFv = .text:0x800ED2F0; // type:function size:0x90
executeState_DemoOut0__21dLytMeterItemSelect_cFv = .text:0x800ED380; // type:function size:0x11C
finalizeState_DemoOut0__21dLytMeterItemSelect_cFv = .text:0x800ED4A0; // type:function size:0x4
initializeState_DemoOut1__21dLytMeterItemSelect_cFv = .text:0x800ED4B0; // type:function size:0x54
executeState_DemoOut1__21dLytMeterItemSelect_cFv = .text:0x800ED510; // type:function size:0xAC
finalizeState_DemoOut1__21dLytMeterItemSelect_cFv = .text:0x800ED5C0; // type:function size:0x4
initializeState_FrameOffIn__21dLytMeterItemSelect_cFv = .text:0x800ED5D0; // type:function size:0x138
executeState_FrameOffIn__21dLytMeterItemSelect_cFv = .text:0x800ED710; // type:function size:0xE0
finalizeState_FrameOffIn__21dLytMeterItemSelect_cFv = .text:0x800ED7F0; // type:function size:0x4
initializeState_FrameOffMove__21dLytMeterItemSelect_cFv = .text:0x800ED800; // type:function size:0x4
executeState_FrameOffMove__21dLytMeterItemSelect_cFv = .text:0x800ED810; // type:function size:0xB0
finalizeState_FrameOffMove__21dLytMeterItemSelect_cFv = .text:0x800ED8C0; // type:function size:0x4
initializeState_FrameOffOut__21dLytMeterItemSelect_cFv = .text:0x800ED8D0; // type:function size:0x1D4
executeState_FrameOffOut__21dLytMeterItemSelect_cFv = .text:0x800EDAB0; // type:function size:0x1BC
finalizeState_FrameOffOut__21dLytMeterItemSelect_cFv = .text:0x800EDC70; // type:function size:0x4
build__21dLytMeterItemSelect_cFPQ23d2d10ResAccIf_c = .text:0x800EDC80; // type:function size:0x590
remove__21dLytMeterItemSelect_cFv = .text:0x800EE210; // type:function size:0x10C
execute__21dLytMeterItemSelect_cFv = .text:0x800EE320; // type:function size:0x123C
getStateID__90sStateMgr_c<21dLytMeterItemSelect_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x800EF560; // type:function size:0x10
executeState__90sStateMgr_c<21dLytMeterItemSelect_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x800EF570; // type:function size:0x10
fn_800EF580 = .text:0x800EF580; // type:function size:0x128
@@ -5816,10 +5816,10 @@ fn_800EF6F0 = .text:0x800EF6F0; // type:function size:0x18
fn_800EF710 = .text:0x800EF710; // type:function size:0x8
relatedToBWheelDisplay = .text:0x800EF720; // type:function size:0x7C
fn_800EF7A0 = .text:0x800EF7A0; // type:function size:0x14
fn_800EF7C0 = .text:0x800EF7C0; // type:function size:0xF8
fn_800EF8C0 = .text:0x800EF8C0; // type:function size:0x10C
fn_800EF7C0__21dLytMeterItemSelect_cFv = .text:0x800EF7C0; // type:function size:0xF8
fn_800EF8C0__21dLytMeterItemSelect_cFUc = .text:0x800EF8C0; // type:function size:0x10C
fn_800EF9D0 = .text:0x800EF9D0; // type:function size:0x100
fn_800EFAD0 = .text:0x800EFAD0; // type:function size:0x200
fn_800EFAD0__21dLytMeterItemSelect_cFlb = .text:0x800EFAD0; // type:function size:0x200
fn_800EFCD0 = .text:0x800EFCD0; // type:function size:0xD0
fn_800EFDA0 = .text:0x800EFDA0; // type:function size:0x4C
fn_800EFDF0 = .text:0x800EFDF0; // type:function size:0x238
@@ -5833,13 +5833,13 @@ fn_800F01F0 = .text:0x800F01F0; // type:function size:0x28
fn_800F0220 = .text:0x800F0220; // type:function size:0xC8
fn_800F02F0 = .text:0x800F02F0; // type:function size:0x14
fn_800F0310 = .text:0x800F0310; // type:function size:0x128
fn_800F0440 = .text:0x800F0440; // type:function size:0x23C
fn_800F0680 = .text:0x800F0680; // type:function size:0x78
fn_800F0440__21dLytMeterItemSelect_cFl = .text:0x800F0440; // type:function size:0x23C
fn_800F0680__21dLytMeterItemSelect_cFUc = .text:0x800F0680; // type:function size:0x78
fn_800F0700 = .text:0x800F0700; // type:function size:0xC8
fn_800F07D0 = .text:0x800F07D0; // type:function size:0xD4
fn_800F07D0__21dLytMeterItemSelect_cFl = .text:0x800F07D0; // type:function size:0xD4
fn_800F08B0 = .text:0x800F08B0; // type:function size:0xD4
fn_800F0990 = .text:0x800F0990; // type:function size:0x44
fn_800F09E0 = .text:0x800F09E0; // type:function size:0xBC
fn_800F0990__21dLytMeterItemSelect_cFUc = .text:0x800F0990; // type:function size:0x44
fn_800F09E0__21dLytMeterItemSelect_cFv = .text:0x800F09E0; // type:function size:0xBC
fn_800F0AA0 = .text:0x800F0AA0; // type:function size:0x8
checkRollercoasterMinigameState = .text:0x800F0AB0; // type:function size:0x8
fn_800F0AC0 = .text:0x800F0AC0; // type:function size:0xA8
@@ -5905,32 +5905,32 @@ getState__94sStateMgr_c<25dLytMeterItemSelectIcon_c,20sStateMethodUsr_FI_c,12sFS
getNewStateID__94sStateMgr_c<25dLytMeterItemSelectIcon_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x800F11A0; // type:function size:0x10
getStateID__94sStateMgr_c<25dLytMeterItemSelectIcon_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x800F11B0; // type:function size:0x10
getOldStateID__94sStateMgr_c<25dLytMeterItemSelectIcon_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x800F11C0; // type:function size:0x10
fn_800F11D0 = .text:0x800F11D0; // type:function size:0x30
fn_800F1200 = .text:0x800F1200; // type:function size:0x30
fn_800F1230 = .text:0x800F1230; // type:function size:0x30
fn_800F1260 = .text:0x800F1260; // type:function size:0x30
fn_800F1290 = .text:0x800F1290; // type:function size:0x30
fn_800F12C0 = .text:0x800F12C0; // type:function size:0x30
fn_800F12F0 = .text:0x800F12F0; // type:function size:0x30
fn_800F1320 = .text:0x800F1320; // type:function size:0x30
fn_800F1350 = .text:0x800F1350; // type:function size:0x30
fn_800F1380 = .text:0x800F1380; // type:function size:0x30
fn_800F13B0 = .text:0x800F13B0; // type:function size:0x30
fn_800F13E0 = .text:0x800F13E0; // type:function size:0x30
fn_800F1410 = .text:0x800F1410; // type:function size:0x30
fn_800F1440 = .text:0x800F1440; // type:function size:0x30
fn_800F1470 = .text:0x800F1470; // type:function size:0x30
LytMeterItemSelect__initStates = .text:0x800F14A0; // type:function size:0x1C60
LytMeterItemSelectIcon__dtor = .text:0x800F3100; // type:function size:0x58
LytMeterItemSelectBlink__dtor = .text:0x800F3160; // type:function size:0x58
LytMeterItemSelectText__dtor = .text:0x800F31C0; // type:function size:0x58
LytMeterItemSelectBtn__dtor = .text:0x800F3220; // type:function size:0x58
LytMeterItemSelect__dtor = .text:0x800F3280; // type:function size:0x58
fn_800F32E0 = .text:0x800F32E0; // type:function size:0x88
fn_800F3370 = .text:0x800F3370; // type:function size:0x88
fn_800F3400 = .text:0x800F3400; // type:function size:0x88
fn_800F3490 = .text:0x800F3490; // type:function size:0x88
fn_800F3520 = .text:0x800F3520; // type:function size:0x88
finalizeState__40sFStateID_c<25dLytMeterItemSelectIcon_c>CFR25dLytMeterItemSelectIcon_c = .text:0x800F11D0; // type:function size:0x30
executeState__40sFStateID_c<25dLytMeterItemSelectIcon_c>CFR25dLytMeterItemSelectIcon_c = .text:0x800F1200; // type:function size:0x30
initializeState__40sFStateID_c<25dLytMeterItemSelectIcon_c>CFR25dLytMeterItemSelectIcon_c = .text:0x800F1230; // type:function size:0x30
finalizeState__41sFStateID_c<26dLytMeterItemSelectBlink_c>CFR26dLytMeterItemSelectBlink_c = .text:0x800F1260; // type:function size:0x30
executeState__41sFStateID_c<26dLytMeterItemSelectBlink_c>CFR26dLytMeterItemSelectBlink_c = .text:0x800F1290; // type:function size:0x30
initializeState__41sFStateID_c<26dLytMeterItemSelectBlink_c>CFR26dLytMeterItemSelectBlink_c = .text:0x800F12C0; // type:function size:0x30
finalizeState__40sFStateID_c<25dLytMeterItemSelectText_c>CFR25dLytMeterItemSelectText_c = .text:0x800F12F0; // type:function size:0x30
executeState__40sFStateID_c<25dLytMeterItemSelectText_c>CFR25dLytMeterItemSelectText_c = .text:0x800F1320; // type:function size:0x30
initializeState__40sFStateID_c<25dLytMeterItemSelectText_c>CFR25dLytMeterItemSelectText_c = .text:0x800F1350; // type:function size:0x30
finalizeState__39sFStateID_c<24dLytMeterItemSelectBtn_c>CFR24dLytMeterItemSelectBtn_c = .text:0x800F1380; // type:function size:0x30
executeState__39sFStateID_c<24dLytMeterItemSelectBtn_c>CFR24dLytMeterItemSelectBtn_c = .text:0x800F13B0; // type:function size:0x30
initializeState__39sFStateID_c<24dLytMeterItemSelectBtn_c>CFR24dLytMeterItemSelectBtn_c = .text:0x800F13E0; // type:function size:0x30
finalizeState__36sFStateID_c<21dLytMeterItemSelect_c>CFR21dLytMeterItemSelect_c = .text:0x800F1410; // type:function size:0x30
executeState__36sFStateID_c<21dLytMeterItemSelect_c>CFR21dLytMeterItemSelect_c = .text:0x800F1440; // type:function size:0x30
initializeState__36sFStateID_c<21dLytMeterItemSelect_c>CFR21dLytMeterItemSelect_c = .text:0x800F1470; // type:function size:0x30
__sinit_\d_lyt_meter_item_select_cpp = .text:0x800F14A0; // type:function size:0x1C60
__dt__40sFStateID_c<25dLytMeterItemSelectIcon_c>Fv = .text:0x800F3100; // type:function size:0x58
__dt__41sFStateID_c<26dLytMeterItemSelectBlink_c>Fv = .text:0x800F3160; // type:function size:0x58
__dt__40sFStateID_c<25dLytMeterItemSelectText_c>Fv = .text:0x800F31C0; // type:function size:0x58
__dt__39sFStateID_c<24dLytMeterItemSelectBtn_c>Fv = .text:0x800F3220; // type:function size:0x58
__dt__36sFStateID_c<21dLytMeterItemSelect_c>Fv = .text:0x800F3280; // type:function size:0x58
isSameName__36sFStateID_c<21dLytMeterItemSelect_c>CFPCc = .text:0x800F32E0; // type:function size:0x88
isSameName__39sFStateID_c<24dLytMeterItemSelectBtn_c>CFPCc = .text:0x800F3370; // type:function size:0x88
isSameName__40sFStateID_c<25dLytMeterItemSelectText_c>CFPCc = .text:0x800F3400; // type:function size:0x88
isSameName__41sFStateID_c<26dLytMeterItemSelectBlink_c>CFPCc = .text:0x800F3490; // type:function size:0x88
isSameName__40sFStateID_c<25dLytMeterItemSelectIcon_c>CFPCc = .text:0x800F3520; // type:function size:0x88
fn_800F35B0 = .text:0x800F35B0; // type:function size:0x4
fn_800F35C0 = .text:0x800F35C0; // type:function size:0x34
fn_800F3600 = .text:0x800F3600; // type:function size:0x4
@@ -6301,15 +6301,15 @@ finalizeState_ToMax__23dLytMeterGanbariGauge_cFv = .text:0x801034A0; // type:fun
fn_801034B0 = .text:0x801034B0; // type:function size:0x68
fn_80103520 = .text:0x80103520; // type:function size:0x58
build__23dLytMeterGanbariGauge_cFPQ23d2d10ResAccIf_c = .text:0x80103580; // type:function size:0x250
fn_801037D0 = .text:0x801037D0; // type:function size:0x50
fn_80103820 = .text:0x80103820; // type:function size:0xEF0
remove__23dLytMeterGanbariGauge_cFv = .text:0x801037D0; // type:function size:0x50
execute__23dLytMeterGanbariGauge_cFv = .text:0x80103820; // type:function size:0xEF0
fn_80104710 = .text:0x80104710; // type:function size:0x4C
fn_80104760 = .text:0x80104760; // type:function size:0x48
fn_801047B0 = .text:0x801047B0; // type:function size:0x60
fn_80104810 = .text:0x80104810; // type:function size:0x10
fn_80104820 = .text:0x80104820; // type:function size:0x38
swimmingRelated__23dLytMeterGanbariGauge_cFv = .text:0x80104820; // type:function size:0x38
fn_80104860 = .text:0x80104860; // type:function size:0x58
fn_801048C0 = .text:0x801048C0; // type:function size:0x190
realizeAnimState__23dLytMeterGanbariGauge_cFv = .text:0x801048C0; // type:function size:0x190
getName__23dLytMeterGanbariGauge_cCFv = .text:0x80104A50; // type:function size:0x8
getLyt__23dLytMeterGanbariGauge_cFv = .text:0x80104A60; // type:function size:0x8
getPane__23dLytMeterGanbariGauge_cFv = .text:0x80104A70; // type:function size:0x8
@@ -31488,11 +31488,11 @@ __vt__64sFStateMgr_c<25dLytMeterItemSelectIcon_c,20sStateMethodUsr_FI_c> = .data
__vt__94sStateMgr_c<25dLytMeterItemSelectIcon_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c> = .data:0x80515BF8; // type:object size:0x30
__vt__41sFStateFct_c<25dLytMeterItemSelectIcon_c> = .data:0x80515C28; // type:object size:0x18
__vt__38sFState_c<25dLytMeterItemSelectIcon_c> = .data:0x80515C40; // type:object size:0xCE4
lbl_80516924 = .data:0x80516924; // type:object size:0x34
lbl_80516958 = .data:0x80516958; // type:object size:0x34
lbl_8051698C = .data:0x8051698C; // type:object size:0x34
lbl_805169C0 = .data:0x805169C0; // type:object size:0x34
lbl_805169F4 = .data:0x805169F4; // type:object size:0x34
__vt__36sFStateID_c<21dLytMeterItemSelect_c> = .data:0x80516924; // type:object size:0x34
__vt__39sFStateID_c<24dLytMeterItemSelectBtn_c> = .data:0x80516958; // type:object size:0x34
__vt__40sFStateID_c<25dLytMeterItemSelectText_c> = .data:0x8051698C; // type:object size:0x34
__vt__41sFStateID_c<26dLytMeterItemSelectBlink_c> = .data:0x805169C0; // type:object size:0x34
__vt__40sFStateID_c<25dLytMeterItemSelectIcon_c> = .data:0x805169F4; // type:object size:0x34
lbl_80516A28 = .data:0x80516A28; // type:object size:0x1C
lbl_80516A44 = .data:0x80516A44; // type:object size:0xC
lbl_80516A50 = .data:0x80516A50; // type:object size:0x1C
@@ -31730,8 +31730,8 @@ lbl_805190C4 = .data:0x805190C4; // type:object size:0xC
lbl_805190D0 = .data:0x805190D0; // type:object size:0x18
lbl_805190E8 = .data:0x805190E8; // type:object size:0x18 data:string
lbl_80519100 = .data:0x80519100; // type:object size:0x10
__vt__23dLytMeterGanbariGauge_c = .data:0x80519110; // type:object size:0x430
__vt__38sFStateID_c<23dLytMeterGanbariGauge_c> = .data:0x80519540; // type:object size:0x38
__vt__23dLytMeterGanbariGauge_c = .data:0x80519110; // type:object size:0x34
__vt__38sFStateID_c<23dLytMeterGanbariGauge_c> = .data:0x80519540; // type:object size:0x34
lbl_80519578 = .data:0x80519578; // type:object size:0x14
lbl_8051958C = .data:0x8051958C; // type:object size:0xC
lbl_80519598 = .data:0x80519598; // type:object size:0x14
@@ -40095,7 +40095,7 @@ lbl_80575430 = .sbss:0x80575430; // type:object size:0x8 data:4byte
sInstance__18SpecialItemDropMgr = .sbss:0x80575438; // type:object size:0x4 data:4byte
FOR_LOADED_PARTICLES = .sbss:0x80575440; // type:object size:0x8 data:4byte
sInstance__20dLytMeterContainer_c = .sbss:0x80575448; // type:object size:0x8 data:4byte
lbl_80575450 = .sbss:0x80575450; // type:object size:0x8 data:4byte
sInstance__24dLytMeterConfiguration_c = .sbss:0x80575450; // type:object size:0x8 data:4byte
sInstance__20LytMeterTimerPart1_c = .sbss:0x80575458; // type:object size:0x4 data:4byte
sInstance__20LytMeterTimerPart2_c = .sbss:0x8057545C; // type:object size:0x4 data:4byte
lbl_80575460 = .sbss:0x80575460; // type:object size:0x1 data:byte
@@ -40103,7 +40103,7 @@ DO_FINISH_TRIAL_TEAR_ANIM = .sbss:0x80575461; // type:object size:0x1 data:byte
LytMeterTimer__FINISHED = .sbss:0x80575462; // type:object size:0x6 data:byte
sInstance__14dLytDobutton_c = .sbss:0x80575468; // type:object size:0x8 data:4byte
lbl_80575470 = .sbss:0x80575470; // type:object size:0x8
lbl_80575478 = .sbss:0x80575478; // type:object size:0x8 data:4byte
sInstance__18LytDoButtonRelated = .sbss:0x80575478; // type:object size:0x8 data:4byte
sInstance__20LytBirdButtonRelated = .sbss:0x80575480; // type:object size:0x8 data:4byte
sInstance__15dLytMsgWindow_c = .sbss:0x80575488; // type:object size:0x4 data:4byte
lbl_8057548C = .sbss:0x8057548C; // type:object size:0x4 data:4byte
+9
View File
@@ -21,6 +21,15 @@
#define ALIGN_DECL(ALIGNMENT) __attribute__((aligned(ALIGNMENT)))
// static_assert from TP
#ifdef __MWERKS__
#define GLUE(a, b) a##b
#define GLUE2(a, b) GLUE(a, b)
#define STATIC_ASSERT(cond) typedef char GLUE2(static_assertion_failed, __LINE__)[(cond) ? 1 : -1]
#else
#define STATIC_ASSERT(...)
#endif
// To remove some warnings
#ifdef __MWERKS__
#define DECL_SECTION(x) __declspec(section x)
+14 -2
View File
@@ -230,9 +230,13 @@ public:
/* vt 0x314 */ virtual void vt_0x314();
/* vt 0x318 */ virtual void vt_0x318();
/* 0x330 */ u8 unk_0x330[0x340 - 0x330];
/* 0x330 */ u8 unk_0x330[0x339 - 0x330];
/* 0x339 */ u8 mRidingActorType;
/* 0x33A */ u8 unk_0x33A[0x340 - 0x33A];
/* 0x340 */ u32 someFlags_0x340;
/* 0x344 */ u8 unk_0x344[0x350 - 0x344];
/* 0x344 */ u8 unk_0x344[0x348 - 0x344];
/* 0x348 */ u32 mSwordAndMoreStates;
/* 0x34C */ u8 unk_0x34C[0x350 - 0x34C];
/* 0x350 */ u32 someFlags_0x350;
u8 UNK_0x354[0x35C - 0x354];
/* 0x35C */ u32 mForceOrPreventActionFlags;
@@ -263,6 +267,10 @@ public:
return mCurrentAction == action;
}
inline bool checkSwordAndMoreStates(u32 mask) const {
return (mSwordAndMoreStates & mask) != 0;
}
inline bool checkActionFlags(u32 mask) const {
return (mActionFlags & mask) != 0;
}
@@ -270,6 +278,10 @@ public:
return (mActionFlagsCont & mask) != 0;
}
inline u8 getRidingActorType() const {
return mRidingActorType;
}
static nw4r::g3d::ResFile getItemResFile(const char *name, mAllocator_c &allocator);
static const dAcPy_c *GetLink() {
+1 -1
View File
@@ -46,7 +46,7 @@ public:
virtual ~Multi_c() {}
/* vt 0x0C */ virtual void draw() override;
/* vt 0x10 */ virtual void animate();
/* vt 0x18 */ virtual void calc();
/* vt 0x14 */ virtual void calc();
/* vt 0x18 */ virtual bool build(const char *name, m2d::ResAccIf_c *acc);
void calcBefore();
+6
View File
@@ -213,6 +213,12 @@ private:
*/
class dLytCommonIconItem_c : public d2d::dSubPane {
public:
enum Variant_e {
B_WHEEL,
POUCH,
DOWSING,
};
dLytCommonIconItem_c() : mStateMgr(*this, sStateID::null), mPart(3) {}
~dLytCommonIconItem_c() {}
+9 -1
View File
@@ -18,9 +18,17 @@ public:
bool remove();
bool draw();
static dLytDobutton_c *sInstance;
static dLytDobutton_c *GetInstance() {
return sInstance;
}
s32 getField0x47C() const {
return field_0x47C;
}
private:
static dLytDobutton_c *sInstance;
STATE_FUNC_DECLARE(dLytDobutton_c, InvisibleWait);
STATE_FUNC_DECLARE(dLytDobutton_c, InvisibleTimeCnt);
STATE_FUNC_DECLARE(dLytDobutton_c, In);
+90 -2
View File
@@ -8,9 +8,97 @@ public:
dLytMeterConfiguration_c();
virtual ~dLytMeterConfiguration_c();
static dLytMeterConfiguration_c *sInstance;
f32 field_0x04[0x7A - 0x01];
/* 0x004 */ u8 field_0x004;
/* 0x005 */ u8 field_0x005;
/* 0x006 */ u8 field_0x006;
/* 0x007 */ u8 field_0x007;
/* 0x008 */ u8 field_0x008;
/* 0x009 */ u8 field_0x009;
/* 0x00A */ u8 field_0x00A;
/* 0x00B */ u8 field_0x00B;
/* 0x00C */ f32 field_0x00C;
/* 0x010 */ u8 field_0x010;
/* 0x011 */ u8 field_0x011;
/* 0x012 */ u8 field_0x012;
/* 0x013 */ u8 field_0x013;
/* 0x014 */ f32 field_0x014;
/* 0x018 */ f32 field_0x018;
/* 0x01C */ u8 field_0x01C;
/* 0x01D */ u8 field_0x01D;
/* 0x01E */ u8 field_0x01E;
/* 0x01F */ u8 field_0x01F;
/* 0x020 */ s32 field_0x020;
/* 0x024 */ s32 field_0x024;
/* 0x028 */ u8 field_0x028;
/* 0x029 */ u8 field_0x029;
/* 0x02A */ u8 field_0x02A;
/* 0x02B */ u8 field_0x02B;
/* 0x02C */ s32 field_0x02C[16];
/* 0x06C */ s32 field_0x06C[16];
/* 0x0AC */ f32 field_0x0AC[16];
/* 0x0EC */ u8 field_0x0EC[16];
/* 0x0FC */ u8 field_0x0FC;
/* 0x0FD */ u8 field_0x0FD;
/* 0x0FE */ u8 field_0x0FE;
/* 0x0FF */ u8 field_0x0FF;
/* 0x100 */ s32 field_0x100[8];
/* 0x121 */ u8 field_0x121;
/* 0x124 */ f32 field_0x124;
/* 0x128 */ f32 field_0x128;
/* 0x12C */ f32 field_0x12C;
/* 0x130 */ f32 field_0x130;
/* 0x134 */ u8 field_0x134;
/* 0x135 */ u8 field_0x135;
/* 0x138 */ f32 field_0x138;
/* 0x13C */ u8 field_0x13C;
/* 0x140 */ f32 field_0x140;
/* 0x144 */ f32 field_0x144;
/* 0x148 */ f32 field_0x148;
/* 0x14C */ f32 field_0x14C;
/* 0x150 */ f32 field_0x150;
/* 0x154 */ f32 field_0x154;
/* 0x158 */ f32 field_0x158;
/* 0x15C */ f32 field_0x15C;
/* 0x160 */ f32 field_0x160;
/* 0x164 */ u8 field_0x164;
/* 0x168 */ f32 field_0x168;
/* 0x16C */ f32 field_0x16C;
/* 0x170 */ f32 field_0x170;
/* 0x174 */ f32 field_0x174;
/* 0x178 */ f32 field_0x178;
/* 0x17C */ f32 field_0x17C;
/* 0x180 */ f32 field_0x180;
/* 0x184 */ f32 field_0x184;
/* 0x188 */ f32 field_0x188;
/* 0x18C */ f32 field_0x18C;
/* 0x190 */ f32 field_0x190;
/* 0x194 */ f32 field_0x194;
/* 0x198 */ f32 field_0x198;
/* 0x19C */ f32 field_0x19C;
/* 0x1A0 */ f32 field_0x1A0;
/* 0x1A4 */ f32 field_0x1A4;
/* 0x1A8 */ f32 field_0x1A8;
/* 0x1AC */ f32 field_0x1AC;
/* 0x1B0 */ u8 field_0x1B0;
/* 0x1B1 */ u8 field_0x1B1;
/* 0x1B4 */ f32 field_0x1B4;
/* 0x1B8 */ f32 field_0x1B8;
/* 0x1BC */ u8 field_0x1BC;
/* 0x1C0 */ f32 field_0x1C0;
/* 0x1C4 */ f32 field_0x1C4;
/* 0x1C8 */ u32 field_0x1C8;
/* 0x1CC */ f32 field_0x1CC;
/* 0x1D0 */ f32 field_0x1D0;
/* 0x1D4 */ u8 field_0x1D4;
/* 0x1D5 */ u8 field_0x1D5;
/* 0x1D6 */ u8 field_0x1D6;
/* 0x1D7 */ u8 field_0x1D7;
/* 0x1D8 */ s32 field_0x1D8;
/* 0x1D8 */ s32 field_0x1DC;
/* 0x1D8 */ s32 field_0x1E0;
/* 0x1D8 */ s32 field_0x1E4;
};
#endif
+18 -2
View File
@@ -11,10 +11,26 @@ public:
bool build(d2d::ResAccIf_c *resAcc);
bool remove();
static LytDoButtonRelated *sInstance;
static LytDoButtonRelated *GetInstance() {
return sInstance;
}
void set0x08(s32 value) {
field_0x08 = value;
field_0x35 = 1;
}
s32 get0x08() {
return field_0x08;
}
private:
u8 field_0x04[0x40 - 0x04];
static LytDoButtonRelated *sInstance;
/* 0x04 */ u8 field_0x04[0x08 - 0x04];
/* 0x08 */ s32 field_0x08;
/* 0x0C */ u8 _0x08[0x35 - 0x0C];
/* 0x35 */ u8 field_0x35;
};
// size 0x27C
+24 -88
View File
@@ -2,6 +2,7 @@
#define D_LYT_METER_H
// TODO sort includes for vtable order
// clang-format off
#include "common.h"
#include "d/lyt/d2d.h"
#include "d/lyt/d_lyt_do_button.h"
#include "d/lyt/meter/d_lyt_meter_shield_gauge.h"
@@ -21,94 +22,7 @@
#include "d/lyt/meter/d_lyt_meter_event_skip.h"
#include "d/lyt/meter/d_lyt_meter_item_select.h"
// clang-format on
class dLytMeter1Button_c : public d2d::dSubPane {
public:
dLytMeter1Button_c() : mStateMgr(*this, sStateID::null) {}
virtual ~dLytMeter1Button_c() {}
virtual bool build(d2d::ResAccIf_c *resAcc) override;
virtual bool remove() override;
virtual bool execute() override;
virtual nw4r::lyt::Pane *getPane() override {
return mLyt.getLayout()->GetRootPane();
}
virtual d2d::LytBase_c *getLyt() override {
return &mLyt;
}
virtual const char *getName() const override {
return mLyt.getName();
}
private:
STATE_FUNC_DECLARE(dLytMeter1Button_c, Wait);
STATE_FUNC_DECLARE(dLytMeter1Button_c, ToUse);
STATE_FUNC_DECLARE(dLytMeter1Button_c, ToUnuse);
STATE_FUNC_DECLARE(dLytMeter1Button_c, Unuse);
UI_STATE_MGR_DECLARE(dLytMeter1Button_c);
d2d::dLytSub mLyt;
d2d::AnmGroup_c mAnmGroups[3];
/* 0x198 */ dWindow_c *mpWindow;
/* 0x19C */ dTextBox_c *mpTextbox;
/* 0x1A0 */ u32 field_0x1A0;
/* 0x1A4 */ s32 field_0x1A4;
/* 0x1A8 */ s32 field_0x1A8;
/* 0x1AC */ u8 field_0x1AC;
/* 0x1AD */ u8 field_0x1AD;
};
class dLytMeter2Button_c : public d2d::dSubPane {
public:
dLytMeter2Button_c() : mStateMgr(*this, sStateID::null) {}
virtual ~dLytMeter2Button_c() {}
virtual bool build(d2d::ResAccIf_c *resAcc) override;
virtual bool remove() override;
virtual bool execute() override;
virtual nw4r::lyt::Pane *getPane() override {
return mLyt.getLayout()->GetRootPane();
}
virtual d2d::LytBase_c *getLyt() override {
return &mLyt;
}
virtual const char *getName() const override {
return mLyt.getName();
}
private:
STATE_FUNC_DECLARE(dLytMeter2Button_c, Wait);
STATE_FUNC_DECLARE(dLytMeter2Button_c, ToUse);
STATE_FUNC_DECLARE(dLytMeter2Button_c, ToUnuse);
STATE_FUNC_DECLARE(dLytMeter2Button_c, Unuse);
UI_STATE_MGR_DECLARE(dLytMeter2Button_c);
d2d::dLytSub mLyt;
d2d::AnmGroup_c mAnmGroups[3];
/* 0x198 */ dWindow_c *mpWindow;
/* 0x19C */ dTextBox_c *mpTextbox;
/* 0x1A0 */ u32 field_0x1A0;
/* 0x1A4 */ s32 field_0x1A4;
/* 0x1A8 */ s32 field_0x1A8;
/* 0x1AC */ u8 field_0x1AC;
/* 0x1AD */ u8 field_0x1AD;
};
class dLytMeterParts_c {
public:
dLytMeterParts_c() : mStateMgr(*this, sStateID::null) {}
private:
STATE_FUNC_DECLARE(dLytMeterParts_c, Invisible);
STATE_FUNC_DECLARE(dLytMeterParts_c, In);
STATE_FUNC_DECLARE(dLytMeterParts_c, Visible);
STATE_FUNC_DECLARE(dLytMeterParts_c, Out);
UI_STATE_MGR_DECLARE(dLytMeterParts_c);
u8 field_0x3C[0x10];
};
// TODO sort includes for vtable order
// clang-format off
#include "d/lyt/meter/d_lyt_meter_parts.h"
#include "d/lyt/meter/d_lyt_meter_key.h"
#include "d/lyt/d_lyt_unknowns.h"
@@ -179,6 +93,21 @@ public:
/* 0x13B38 */ u32 field_0x13B38;
};
STATIC_ASSERT(offsetof(dLytMeter_c, mGanbariGauge) == 0x00C8C);
STATIC_ASSERT(offsetof(dLytMeter_c, mRupy) == 0x011E8);
STATIC_ASSERT(offsetof(dLytMeter_c, mItemSelect) == 0x01A98);
STATIC_ASSERT(offsetof(dLytMeter_c, mCrossBtn) == 0x07260);
STATIC_ASSERT(offsetof(dLytMeter_c, mPlusBtn) == 0x078A0);
STATIC_ASSERT(offsetof(dLytMeter_c, mMinusBtn) == 0x07A64);
STATIC_ASSERT(offsetof(dLytMeter_c, mDowsing) == 0x0C928);
STATIC_ASSERT(offsetof(dLytMeter_c, mABtn) == 0x11E34);
STATIC_ASSERT(offsetof(dLytMeter_c, mZBtn) == 0x12000);
STATIC_ASSERT(offsetof(dLytMeter_c, mNunStk) == 0x121C8);
STATIC_ASSERT(offsetof(dLytMeter_c, mRemoCon) == 0x12350);
STATIC_ASSERT(offsetof(dLytMeter_c, mNunBg) == 0x12440);
STATIC_ASSERT(offsetof(dLytMeter_c, mHeart) == 0x12608);
STATIC_ASSERT(offsetof(dLytMeter_c, mShield) == 0x12DA4);
// made up name
class dLytMeterContainer_c {
public:
@@ -200,6 +129,10 @@ public:
return sInstance;
}
bool checkAllFlags(u32 mask) const {
return (mFlags & mask) == mask;
}
private:
/* 0x00004 */ d2d::ResAccIf_c mResAcc;
/* 0x00374 */ dLytMeterEventSkip_c *mpEventSkip;
@@ -208,8 +141,11 @@ private:
/* 0x13B40 */ LytDoButtonRelated *mpDoButtonRelated;
/* 0x13B44 */ LytBirdButtonRelated *mpBirdRelated;
/* 0x13B48 */ bool mVisible;
/* 0x13B49 */ u8 _0x13B49[0x13B50 - 0x13B49];
/* 0x13B50 */ s32 mFlags;
static dLytMeterContainer_c *sInstance;
};
#endif
+2 -2
View File
@@ -45,8 +45,8 @@ private:
/* 0x1A0 */ nw4r::lyt::Pane *mpPane;
/* 0x1A4 */ void *field_0x1A4;
/* 0x1A8 */ dTextBox_c *mpTextBoxes[2];
/* 0x1B0 */ dWindow_c *mpWindow;
/* 0x1B4 */ dTextBox_c *mpSizeBox;
/* 0x1B0 */ dWindow_c *mpWindow[1];
/* 0x1B4 */ dTextBox_c *mpSizeBox[1];
/* 0x1B8 */ u32 field_0x1B8;
/* 0x1BC */ u32 field_0x1BC;
/* 0x1C0 */ u32 field_0x1C0;
@@ -1,22 +1,36 @@
#ifndef D_LYT_METER_GANBARI_GAUGE_H
#define D_LYT_METER_GANBARI_GAUGE_H
#include "common.h"
#include "d/lyt/d2d.h"
#include "m/m_vec.h"
#include "nw4r/lyt/lyt_pane.h"
#include "s/s_State.hpp"
#include "s/s_StateMgr.hpp"
class dLytMeterGanbariGauge_c : public d2d::dSubPane {
public:
dLytMeterGanbariGauge_c() : mStateMgr1(*this, sStateID::null), mStateMgr2(*this, sStateID::null) {}
dLytMeterGanbariGauge_c() : mStateMgrMain(*this, sStateID::null), mStateMgrWheel(*this, sStateID::null) {}
virtual bool build(d2d::ResAccIf_c *resAcc) override;
virtual bool remove() override;
virtual bool execute() override;
virtual nw4r::lyt::Pane *getPane() override;
virtual d2d::LytBase_c *getLyt() override;
virtual const char *getName() const override;
virtual nw4r::lyt::Pane *getPane() override {
return mLyt.getLayout()->GetRootPane();
}
virtual d2d::LytBase_c *getLyt() override {
return &mLyt;
}
virtual const char *getName() const override {
return mLyt.getName();
}
virtual ~dLytMeterGanbariGauge_c() {}
private:
void realizeAnimState();
static bool swimmingRelated();
static bool fn_801034B0(f32);
static bool fn_80103520(f32);
STATE_FUNC_DECLARE(dLytMeterGanbariGauge_c, InvisibleWait);
STATE_FUNC_DECLARE(dLytMeterGanbariGauge_c, In);
STATE_FUNC_DECLARE(dLytMeterGanbariGauge_c, Wait);
@@ -31,13 +45,33 @@ private:
STATE_FUNC_DECLARE(dLytMeterGanbariGauge_c, Recovery);
STATE_FUNC_DECLARE(dLytMeterGanbariGauge_c, ToMax);
STATE_MGR(dLytMeterGanbariGauge_c) mStateMgr1;
STATE_MGR(dLytMeterGanbariGauge_c) mStateMgr2;
STATE_MGR(dLytMeterGanbariGauge_c) mStateMgrMain;
STATE_MGR(dLytMeterGanbariGauge_c) mStateMgrWheel;
/* 0x080 */ d2d::dLytSub mLyt;
/* 0x114 */ d2d::AnmGroup_c mAnmGroups[16];
/* 0x??? */ u8 padding[0x11E8 - 0x11A0];
/* 0x114 */ d2d::AnmGroup_c mAnm[16];
/* 0x514 */ nw4r::lyt::Pane *mpPane;
/* 0x518 */ f32 field_0x518;
/* 0x51C */ f32 field_0x51C;
/* 0x520 */ u8 _0x520[0x524 - 0x520];
/* 0x524 */ mVec3_c field_0x524;
/* 0x530 */ u8 field_0x530;
/* 0x534 */ s32 field_0x534;
/* 0x538 */ u32 field_0x538;
/* 0x53C */ s32 mOutWaitTimer;
/* 0x540 */ u32 field_0x540;
/* 0x544 */ u32 field_0x544;
/* 0x548 */ u32 field_0x548;
/* 0x54C */ f32 field_0x54C;
/* 0x550 */ f32 field_0x550;
/* 0x554 */ f32 field_0x554;
u8 field_0x558;
u8 field_0x559;
u8 field_0x55A;
u8 field_0x55B;
};
STATIC_ASSERT(sizeof(dLytMeterGanbariGauge_c) == 0x55C);
#endif
+172 -47
View File
@@ -3,51 +3,118 @@
#include "d/lyt/d2d.h"
#include "d/lyt/d_lyt_common_icon_item.h"
#include "toBeSorted/effects_struct.h"
#include "d/lyt/d_textbox.h"
#include "d/lyt/d_window.h"
#include "nw4r/lyt/lyt_pane.h"
#include "s/s_State.hpp"
#include "s/s_StateMgr.hpp"
#include "toBeSorted/effects_struct.h"
class dLytMeterItemSelectIcon_c {
public:
dLytMeterItemSelectIcon_c(): mStateMgr(*this, sStateID::null) {}
dLytMeterItemSelectIcon_c() : mStateMgr(*this, sStateID::null) {}
~dLytMeterItemSelectIcon_c() {}
private:
UI_STATE_MGR_DECLARE(dLytMeterItemSelectIcon_c);
u32 padding;
u32 padding2;
void init();
void execute();
void setAnm(d2d::AnmGroup_c *anim) {
mpAnm = anim;
}
private:
STATE_FUNC_DECLARE(dLytMeterItemSelectIcon_c, Wait);
STATE_FUNC_DECLARE(dLytMeterItemSelectIcon_c, On);
STATE_FUNC_DECLARE(dLytMeterItemSelectIcon_c, Select);
STATE_FUNC_DECLARE(dLytMeterItemSelectIcon_c, Off);
/* 0x00 */ UI_STATE_MGR_DECLARE(dLytMeterItemSelectIcon_c);
/* 0x3C */ d2d::AnmGroup_c *mpAnm;
/* 0x40 */ u32 padding2;
};
class dLytMeterItemSelectBlink_c {
public:
dLytMeterItemSelectBlink_c(): mStateMgr(*this, sStateID::null) {}
dLytMeterItemSelectBlink_c() : mStateMgr(*this, sStateID::null) {}
~dLytMeterItemSelectBlink_c() {}
private:
UI_STATE_MGR_DECLARE(dLytMeterItemSelectBlink_c);
u32 padding;
u32 padding2;
void init();
void execute();
void setAnm(d2d::AnmGroup_c *anim) {
mpAnm = anim;
}
private:
STATE_FUNC_DECLARE(dLytMeterItemSelectBlink_c, Wait);
STATE_FUNC_DECLARE(dLytMeterItemSelectBlink_c, On);
STATE_FUNC_DECLARE(dLytMeterItemSelectBlink_c, Select);
STATE_FUNC_DECLARE(dLytMeterItemSelectBlink_c, Off);
/* 0x00 */ UI_STATE_MGR_DECLARE(dLytMeterItemSelectBlink_c);
/* 0x3C */ d2d::AnmGroup_c *mpAnm;
/* 0x40 */ u32 padding2;
};
class dLytMeterItemSelectText_c {
public:
dLytMeterItemSelectText_c(): mStateMgr(*this, sStateID::null) {}
dLytMeterItemSelectText_c() : mStateMgr(*this, sStateID::null) {}
~dLytMeterItemSelectText_c() {}
private:
UI_STATE_MGR_DECLARE(dLytMeterItemSelectText_c);
u32 padding;
u32 padding2;
void init();
void execute();
void setAnm(d2d::AnmGroup_c *anim) {
mpAnm = anim;
}
private:
STATE_FUNC_DECLARE(dLytMeterItemSelectText_c, Wait);
STATE_FUNC_DECLARE(dLytMeterItemSelectText_c, On);
STATE_FUNC_DECLARE(dLytMeterItemSelectText_c, Select);
STATE_FUNC_DECLARE(dLytMeterItemSelectText_c, Off);
/* 0x00 */ UI_STATE_MGR_DECLARE(dLytMeterItemSelectText_c);
/* 0x3C */ d2d::AnmGroup_c *mpAnm;
/* 0x40 */ u32 padding2;
};
class dLytMeterItemSelectBtn_c {
public:
dLytMeterItemSelectBtn_c(): mStateMgr(*this, sStateID::null) {}
dLytMeterItemSelectBtn_c() : mStateMgr(*this, sStateID::null) {}
~dLytMeterItemSelectBtn_c() {}
private:
UI_STATE_MGR_DECLARE(dLytMeterItemSelectBtn_c);
u8 padding[0x58 - 0x3C];
void init(s32 i, d2d::dLytSub *lyt, nw4r::lyt::Pane *pane);
void fn_800E9E00(u8, u8);
void fn_800E9E30(u8);
void execute();
void setAnm(d2d::AnmGroup_c *anim) {
mpAnm = anim;
}
u8 getField_0x57() const {
return field_0x57;
}
void setField_0x57(u8 val) {
field_0x57 = val;
}
private:
STATE_FUNC_DECLARE(dLytMeterItemSelectBtn_c, Invisible);
STATE_FUNC_DECLARE(dLytMeterItemSelectBtn_c, On);
STATE_FUNC_DECLARE(dLytMeterItemSelectBtn_c, Visible);
STATE_FUNC_DECLARE(dLytMeterItemSelectBtn_c, Off);
/* 0x00 */ UI_STATE_MGR_DECLARE(dLytMeterItemSelectBtn_c);
/* 0x3C */ u8 _0x3C[0x40 - 0x3C];
/* 0x40 */ d2d::AnmGroup_c *mpAnm;
/* 0x44 */ u8 padding[0x57 - 0x44];
/* 0x57 */ u8 field_0x57;
};
class dLytMeterItemSelect_c : public d2d::dSubPane {
@@ -61,7 +128,17 @@ public:
virtual const char *getName() const override;
virtual ~dLytMeterItemSelect_c() {}
private:
void fn_800F0680(u8);
s32 fn_800F0990(u8);
s32 fn_800F07D0(s32);
void fn_800EFAD0(s32, bool);
void fn_800EF7C0();
void fn_800EF8C0(u8);
bool fn_800F09E0();
void fn_800F0440(s32);
STATE_FUNC_DECLARE(dLytMeterItemSelect_c, InitWait);
STATE_FUNC_DECLARE(dLytMeterItemSelect_c, Wait);
STATE_FUNC_DECLARE(dLytMeterItemSelect_c, SelectIn);
@@ -85,35 +162,83 @@ private:
STATE_FUNC_DECLARE(dLytMeterItemSelect_c, FrameOffMove);
STATE_FUNC_DECLARE(dLytMeterItemSelect_c, FrameOffOut);
dLytMeterItemSelectIcon_c mIcon[8];
dLytMeterItemSelectBlink_c mBlink;
dLytMeterItemSelectText_c mText[2];
dLytMeterItemSelectBtn_c mBtn[4];
UI_STATE_MGR_DECLARE(dLytMeterItemSelect_c);
/* 0x0008 */ dLytMeterItemSelectIcon_c mIcon[8];
/* 0x0228 */ dLytMeterItemSelectBlink_c mBlink;
/* 0x026C */ dLytMeterItemSelectText_c mText[2];
/* 0x02F4 */ dLytMeterItemSelectBtn_c mBtn[4];
/* 0x0454 */ UI_STATE_MGR_DECLARE(dLytMeterItemSelect_c);
/* 0x0490 */ d2d::dLytSub mLyt;
/* 0x0524 */ d2d::AnmGroup_c mAnm[34];
/* 0x490 */ d2d::dLytSub mLyt;
/* 0x0DA4 */ nw4r::lyt::Pane *mpPanes[17];
/* 0x524 */ d2d::AnmGroup_c mAnmGroups[34];
/* 0x0DE8 */ nw4r::lyt::Pane *mpSomePane;
/* 0x0DEC */ dTextBox_c *mpTextBoxes[10];
/* 0x0E14 */ dWindow_c *mpWindows[4];
/* 0x0E24 */ dTextBox_c *mpSizeBoxes[4];
/* 0x0E34 */ dLytCommonIconItem_c mItemIcons[9];
/* 0x567C */ d2d::SubPaneList mSubpaneList;
/* 0x5688 */ d2d::SubPaneListNode mSubpanes[9];
/* 0x5718 */ EffectsStruct mEffects;
// What is here?
u8 padding2[0xE34 - 0xDA4];
/* 0xE34 */ dLytCommonIconItem_c mItemIcons[9];
d2d::SubPaneList mNodeList;
d2d::SubPaneListNode mNodes[9];
EffectsStruct mEffects;
s32 field_0x574C;
s32 field_0x5750;
s32 field_0x5754;
s32 field_0x5758;
s32 field_0x575C;
s32 field_0x5760;
s32 field_0x5764;
s32 field_0x5768;
/* 0x??? */ u8 padding[0x7260 - 0x7204];
/* 0x574C */ s32 field_0x574C;
/* 0x5750 */ s32 field_0x5750;
/* 0x5754 */ s32 field_0x5754;
/* 0x5758 */ s32 field_0x5758;
/* 0x575C */ s32 field_0x575C;
/* 0x5760 */ s32 field_0x5760;
/* 0x5764 */ s32 field_0x5764;
/* 0x5768 */ s32 field_0x5768;
/* 0x576C */ s32 field_0x576C;
/* 0x5770 */ s32 field_0x5770;
/* 0x5774 */ s32 field_0x5774;
/* 0x5778 */ f32 field_0x5778;
/* 0x577C */ f32 field_0x577C;
/* 0x5780 */ s32 field_0x5780;
/* 0x5784 */ f32 field_0x5784;
/* 0x5788 */ s32 field_0x5788;
/* 0x578C */ s32 field_0x578C;
/* 0x5790 */ s32 field_0x5790;
/* 0x5794 */ u8 field_0x5794;
/* 0x5795 */ u8 field_0x5795;
/* 0x5796 */ u8 field_0x5796;
/* 0x5797 */ u8 field_0x5797;
/* 0x5798 */ u8 field_0x5798;
/* 0x5799 */ u8 field_0x5799;
/* 0x579A */ u8 field_0x579A;
/* 0x579B */ u8 field_0x579B;
/* 0x579C */ u8 field_0x579C;
/* 0x579C */ u8 field_0x579D;
/* 0x579C */ u8 field_0x579E;
/* 0x579C */ u8 field_0x579F;
/* 0x57A0 */ u8 field_0x57A0;
/* 0x57A1 */ u8 field_0x57A1;
/* 0x57A2 */ u8 field_0x57A2;
/* 0x57A4 */ s32 field_0x57A4;
/* 0x57A8 */ s32 field_0x57A8;
/* 0x57AC */ s32 field_0x57AC;
/* 0x57B0 */ u8 field_0x57B0;
/* 0x57B1 */ u8 field_0x57B1;
/* 0x57B2 */ u8 field_0x57B2;
/* 0x57B3 */ u8 field_0x57B3;
/* 0x57B4 */ u8 field_0x57B4;
/* 0x57B5 */ u8 field_0x57B5;
/* 0x57B6 */ bool field_0x57B6;
/* 0x57B7 */ bool field_0x57B7;
/* 0x57B8 */ u8 field_0x57B8;
/* 0x57B9 */ u8 field_0x57B9;
/* 0x57BA */ u8 field_0x57BA;
/* 0x57BB */ u8 field_0x57BB;
/* 0x57BC */ u8 field_0x57BC;
/* 0x57BD */ u8 field_0x57BD;
/* 0x57BE */ u8 field_0x57BE;
/* 0x57BF */ u8 field_0x57BF;
/* 0x57C0 */ u8 field_0x57C0;
/* 0x57C1 */ u8 field_0x57C1;
/* 0x57C2 */ u8 field_0x57C2;
/* 0x57C3 */ u8 field_0x57C3;
/* 0x57C4 */ u8 field_0x57C4;
/* 0x57C5 */ u8 field_0x57C5;
};
#endif
+91
View File
@@ -0,0 +1,91 @@
#ifndef D_LYT_METER_PARTS_H
#define D_LYT_METER_PARTS_H
#include "d/lyt/d2d.h"
#include "s/s_State.hpp"
class dLytMeter1Button_c : public d2d::dSubPane {
public:
dLytMeter1Button_c() : mStateMgr(*this, sStateID::null) {}
virtual ~dLytMeter1Button_c() {}
virtual bool build(d2d::ResAccIf_c *resAcc) override;
virtual bool remove() override;
virtual bool execute() override;
virtual nw4r::lyt::Pane *getPane() override {
return mLyt.getLayout()->GetRootPane();
}
virtual d2d::LytBase_c *getLyt() override {
return &mLyt;
}
virtual const char *getName() const override {
return mLyt.getName();
}
private:
STATE_FUNC_DECLARE(dLytMeter1Button_c, Wait);
STATE_FUNC_DECLARE(dLytMeter1Button_c, ToUse);
STATE_FUNC_DECLARE(dLytMeter1Button_c, ToUnuse);
STATE_FUNC_DECLARE(dLytMeter1Button_c, Unuse);
UI_STATE_MGR_DECLARE(dLytMeter1Button_c);
d2d::dLytSub mLyt;
d2d::AnmGroup_c mAnmGroups[3];
/* 0x198 */ dWindow_c *mpWindow;
/* 0x19C */ dTextBox_c *mpTextbox;
/* 0x1A0 */ u32 field_0x1A0;
/* 0x1A4 */ s32 field_0x1A4;
/* 0x1A8 */ s32 field_0x1A8;
/* 0x1AC */ u8 field_0x1AC;
/* 0x1AD */ u8 field_0x1AD;
};
class dLytMeter2Button_c : public d2d::dSubPane {
public:
dLytMeter2Button_c() : mStateMgr(*this, sStateID::null) {}
virtual ~dLytMeter2Button_c() {}
virtual bool build(d2d::ResAccIf_c *resAcc) override;
virtual bool remove() override;
virtual bool execute() override;
virtual nw4r::lyt::Pane *getPane() override {
return mLyt.getLayout()->GetRootPane();
}
virtual d2d::LytBase_c *getLyt() override {
return &mLyt;
}
virtual const char *getName() const override {
return mLyt.getName();
}
private:
STATE_FUNC_DECLARE(dLytMeter2Button_c, Wait);
STATE_FUNC_DECLARE(dLytMeter2Button_c, ToUse);
STATE_FUNC_DECLARE(dLytMeter2Button_c, ToUnuse);
STATE_FUNC_DECLARE(dLytMeter2Button_c, Unuse);
UI_STATE_MGR_DECLARE(dLytMeter2Button_c);
d2d::dLytSub mLyt;
d2d::AnmGroup_c mAnmGroups[3];
/* 0x198 */ dWindow_c *mpWindow;
/* 0x19C */ dTextBox_c *mpTextbox;
/* 0x1A0 */ u32 field_0x1A0;
/* 0x1A4 */ s32 field_0x1A4;
/* 0x1A8 */ s32 field_0x1A8;
/* 0x1AC */ u8 field_0x1AC;
/* 0x1AD */ u8 field_0x1AD;
};
class dLytMeterParts_c {
public:
dLytMeterParts_c() : mStateMgr(*this, sStateID::null) {}
private:
STATE_FUNC_DECLARE(dLytMeterParts_c, Invisible);
STATE_FUNC_DECLARE(dLytMeterParts_c, In);
STATE_FUNC_DECLARE(dLytMeterParts_c, Visible);
STATE_FUNC_DECLARE(dLytMeterParts_c, Out);
UI_STATE_MGR_DECLARE(dLytMeterParts_c);
u8 field_0x3C[0x10];
};
#endif
+4
View File
@@ -71,6 +71,10 @@ public:
mTranslate = value;
}
void SetRotate(const nw4r::math::VEC3 &value) {
mRotate = value;
}
const math::MTX34 &GetGlobalMtx() const {
return mGlbMtx;
}
+7 -5
View File
@@ -1,7 +1,7 @@
#include "d/lyt/d_textbox.h"
#include "d/lyt/d_window.h"
#include "d/lyt/meter/d_lyt_meter_a_btn.h"
#include "d/lyt/d_textbox.h"
#include "d/lyt/d_window.h"
STATE_DEFINE(dLytMeterABtn_c, InvisibleWait);
STATE_DEFINE(dLytMeterABtn_c, In);
@@ -105,9 +105,11 @@ bool dLytMeterABtn_c::build(d2d::ResAccIf_c *resAcc) {
mpTextBoxes[i] = mLyt.getTextBox(sTextBoxes[i]);
}
static const char *sWindow = "W_bg_P_00";
mpWindow = mLyt.getWindow(sWindow);
mpSizeBox = mLyt.getSizeBoxInWindow(sWindow);
static const char *sWindows[] = {"W_bg_P_00"};
for (int i = 0; i < 1; i++) {
mpWindow[i] = mLyt.getWindow(sWindows[i]);
mpSizeBox[i] = mLyt.getSizeBoxInWindow(sWindows[i]);
}
field_0x1C4 = 0x5F;
field_0x1B8 = 0x5F;
+360 -34
View File
@@ -1,5 +1,9 @@
#include "d/lyt/meter/d_lyt_meter_ganbari_gauge.h"
#include "common.h"
#include "d/a/d_a_player.h"
#include "d/lyt/d_lyt_meter_configuration.h"
STATE_DEFINE(dLytMeterGanbariGauge_c, InvisibleWait);
STATE_DEFINE(dLytMeterGanbariGauge_c, In);
STATE_DEFINE(dLytMeterGanbariGauge_c, Wait);
@@ -14,80 +18,402 @@ STATE_DEFINE(dLytMeterGanbariGauge_c, ToMin);
STATE_DEFINE(dLytMeterGanbariGauge_c, Recovery);
STATE_DEFINE(dLytMeterGanbariGauge_c, ToMax);
void dLytMeterGanbariGauge_c::initializeState_InvisibleWait() {}
static const d2d::LytBrlanMapping brlanMap[] = {
{ "guts_00_in.brlan", "G_inOut_00"},
{ "guts_00_angle.brlan", "G_angle_00"},
{"guts_00_ganbariUpDown.brlan", "G_ganbari_00"},
{"guts_00_ganbariUpDown.brlan", "G_ganbari_01"},
{ "guts_00_ganbariUse.brlan", "G_ganbari_01"},
{ "guts_00_ganbariLoop.brlan", "G_ganbariLoop_00"},
{ "guts_00_drink.brlan", "G_drink_00"},
{ "guts_00_mLoop.brlan", "G_mLoop_00"},
{ "guts_00_mCaution.brlan", "G_mCaution_00"},
{ "guts_00_caution.brlan", "G_caution_00"},
{ "guts_00_toMin.brlan", "G_minMax_00"},
{ "guts_00_toMinLoop.brlan", "G_toMinLoop"},
{ "guts_00_toMax.brlan", "G_minMax_00"},
{ "guts_00_color.brlan", "G_color_00"},
{ "guts_00_out.brlan", "G_inOut_00"},
{ "guts_00_cameraOut.brlan", "G_inOut_00"},
};
#define GANBARI_ANIM_IN 0
#define GANBARI_ANIM_ANGLE 1
#define GANBARI_ANIM_UPDOWN_0 2
#define GANBARI_ANIM_UPDOWN_1 3
#define GANBARI_ANIM_USE 4
#define GANBARI_ANIM_LOOP 5
#define GANBARI_ANIM_DRINK 6
#define GANBARI_ANIM_M_LOOP 7
#define GANBARI_ANIM_M_CAUTION 8
#define GANBARI_ANIM_CAUTION 9
#define GANBARI_ANIM_TO_MIN 10
#define GANBARI_ANIM_TO_MIN_LOOP 11
#define GANBARI_ANIM_TO_MAX 12
#define GANBARI_ANIM_COLOR 13
#define GANBARI_ANIM_OUT 14
#define GANBARI_ANIM_CAMERA_OUT 15
#define GANBARI_NUM_ANIMS 16
void dLytMeterGanbariGauge_c::initializeState_InvisibleWait() {
mAnm[GANBARI_ANIM_IN].setToStart();
mAnm[GANBARI_ANIM_IN].setAnimEnable(true);
mLyt.calc();
mAnm[GANBARI_ANIM_IN].setAnimEnable(false);
mAnm[GANBARI_ANIM_OUT].setAnimEnable(false);
}
void dLytMeterGanbariGauge_c::executeState_InvisibleWait() {}
void dLytMeterGanbariGauge_c::finalizeState_InvisibleWait() {}
void dLytMeterGanbariGauge_c::initializeState_In() {}
void dLytMeterGanbariGauge_c::executeState_In() {}
void dLytMeterGanbariGauge_c::finalizeState_In() {}
void dLytMeterGanbariGauge_c::initializeState_In() {
if (dAcPy_c::GetLink()->getRidingActorType() == 3) {
field_0x554 = 3.0f;
} else if (swimmingRelated()) {
field_0x554 = 1.0f;
} else {
field_0x554 = 0.0f;
}
mAnm[GANBARI_ANIM_IN].setAnimEnable(true);
mAnm[GANBARI_ANIM_IN].setFrame(0.0f);
}
#pragma pool_data off
void dLytMeterGanbariGauge_c::executeState_In() {
if (mAnm[GANBARI_ANIM_IN].getFrame() == 1.0f) {
realizeAnimState();
if (*mStateMgrWheel.getStateID() == StateID_Caution || *mStateMgrWheel.getStateID() == StateID_ToMin ||
*mStateMgrWheel.getStateID() == StateID_Recovery || *mStateMgrWheel.getStateID() == StateID_ToMax) {
if (field_0x518 > 0.95f) {
mStateMgrWheel.changeState(StateID_Normal);
} else {
mStateMgrWheel.changeState(*mStateMgrWheel.getStateID());
}
}
}
if (mAnm[GANBARI_ANIM_IN].isEndReached()) {
mAnm[GANBARI_ANIM_IN].setAnimEnable(false);
mStateMgrMain.changeState(StateID_Wait);
}
}
#pragma pool_data on
void dLytMeterGanbariGauge_c::finalizeState_In() {
mAnm[GANBARI_ANIM_IN].setAnimEnable(false);
}
void dLytMeterGanbariGauge_c::initializeState_Wait() {}
void dLytMeterGanbariGauge_c::executeState_Wait() {}
void dLytMeterGanbariGauge_c::finalizeState_Wait() {}
void dLytMeterGanbariGauge_c::initializeState_OutWait() {}
void dLytMeterGanbariGauge_c::executeState_OutWait() {}
void dLytMeterGanbariGauge_c::initializeState_OutWait() {
mOutWaitTimer = 0x1E;
}
void dLytMeterGanbariGauge_c::executeState_OutWait() {
if (--mOutWaitTimer <= 0) {
mStateMgrMain.changeState(StateID_Out);
} else if (field_0x518 < 0.9999f) {
mStateMgrMain.changeState(StateID_Wait);
}
}
void dLytMeterGanbariGauge_c::finalizeState_OutWait() {}
void dLytMeterGanbariGauge_c::initializeState_Out() {}
void dLytMeterGanbariGauge_c::executeState_Out() {}
void dLytMeterGanbariGauge_c::finalizeState_Out() {}
void dLytMeterGanbariGauge_c::initializeState_Out() {
mAnm[GANBARI_ANIM_IN].setAnimEnable(false);
mAnm[GANBARI_ANIM_OUT].setAnimEnable(true);
mAnm[GANBARI_ANIM_OUT].setFrame(0.0f);
}
void dLytMeterGanbariGauge_c::executeState_Out() {
if (mAnm[GANBARI_ANIM_OUT].isEndReached()) {
mLyt.calc();
mStateMgrMain.changeState(StateID_InvisibleWait);
}
}
void dLytMeterGanbariGauge_c::finalizeState_Out() {
mAnm[GANBARI_ANIM_OUT].setAnimEnable(false);
}
void dLytMeterGanbariGauge_c::initializeState_CameraOut() {}
void dLytMeterGanbariGauge_c::executeState_CameraOut() {}
void dLytMeterGanbariGauge_c::finalizeState_CameraOut() {}
void dLytMeterGanbariGauge_c::initializeState_CameraOut() {
mAnm[GANBARI_ANIM_CAMERA_OUT].setAnimEnable(true);
mAnm[GANBARI_ANIM_CAMERA_OUT].setFrame(0.0f);
}
void dLytMeterGanbariGauge_c::executeState_CameraOut() {
if (mAnm[GANBARI_ANIM_CAMERA_OUT].isEndReached()) {
mLyt.calc();
mStateMgrMain.changeState(StateID_InvisibleWait);
}
}
void dLytMeterGanbariGauge_c::finalizeState_CameraOut() {
mAnm[GANBARI_ANIM_CAMERA_OUT].setAnimEnable(false);
}
void dLytMeterGanbariGauge_c::initializeState_Full() {}
void dLytMeterGanbariGauge_c::executeState_Full() {}
void dLytMeterGanbariGauge_c::executeState_Full() {
if (field_0x518 < 0.9999f) {
mStateMgrWheel.changeState(StateID_Normal);
} else if (dAcPy_c::GetLink()->checkSwordAndMoreStates(0x200 | 0x40 | 0x20) || field_0x558 != 0) {
mStateMgrWheel.changeState(StateID_FullGutsUse);
}
}
void dLytMeterGanbariGauge_c::finalizeState_Full() {}
void dLytMeterGanbariGauge_c::initializeState_FullGutsUse() {}
void dLytMeterGanbariGauge_c::executeState_FullGutsUse() {}
void dLytMeterGanbariGauge_c::executeState_FullGutsUse() {
if (field_0x518 < 0.9999f) {
mStateMgrWheel.changeState(StateID_Normal);
} else if (!dAcPy_c::GetLink()->checkSwordAndMoreStates(0x200 | 0x40 | 0x20) && field_0x558 == 0) {
mStateMgrWheel.changeState(StateID_Full);
}
}
void dLytMeterGanbariGauge_c::finalizeState_FullGutsUse() {}
void dLytMeterGanbariGauge_c::initializeState_Normal() {}
void dLytMeterGanbariGauge_c::executeState_Normal() {}
void dLytMeterGanbariGauge_c::executeState_Normal() {
if (fn_801034B0(field_0x518)) {
mAnm[GANBARI_ANIM_CAUTION].setRate(1.0f);
mStateMgrWheel.changeState(StateID_Caution);
} else if (fn_80103520(field_0x518)) {
mAnm[GANBARI_ANIM_CAUTION].setRate(3.0f);
mStateMgrWheel.changeState(StateID_Caution);
} else if (field_0x518 >= 0.9999f) {
mStateMgrWheel.changeState(StateID_ToMax);
}
}
void dLytMeterGanbariGauge_c::finalizeState_Normal() {}
void dLytMeterGanbariGauge_c::initializeState_Caution() {}
void dLytMeterGanbariGauge_c::executeState_Caution() {}
void dLytMeterGanbariGauge_c::finalizeState_Caution() {}
void dLytMeterGanbariGauge_c::initializeState_Caution() {
mAnm[GANBARI_ANIM_CAUTION].setAnimEnable(true);
mAnm[GANBARI_ANIM_CAUTION].setFrame(0.0f);
}
void dLytMeterGanbariGauge_c::executeState_Caution() {
if (field_0x518 <= 0.0001f) {
mStateMgrWheel.changeState(StateID_ToMin);
} else if (fn_80103520(field_0x518)) {
mAnm[GANBARI_ANIM_CAUTION].setRate(3.0f);
} else if (fn_801034B0(field_0x518)) {
mAnm[GANBARI_ANIM_CAUTION].setRate(1.0f);
} else {
mStateMgrWheel.changeState(StateID_Normal);
}
}
void dLytMeterGanbariGauge_c::finalizeState_Caution() {
mAnm[GANBARI_ANIM_CAUTION].setFrame(0.0f);
mLyt.calc();
mAnm[GANBARI_ANIM_CAUTION].setAnimEnable(false);
}
void dLytMeterGanbariGauge_c::initializeState_ToMin() {}
void dLytMeterGanbariGauge_c::executeState_ToMin() {}
void dLytMeterGanbariGauge_c::initializeState_ToMin() {
mAnm[GANBARI_ANIM_UPDOWN_1].setAnimEnable(true);
mAnm[GANBARI_ANIM_UPDOWN_1].setFrame(0.0f);
mLyt.calc();
mAnm[GANBARI_ANIM_UPDOWN_1].setAnimEnable(false);
mAnm[GANBARI_ANIM_TO_MIN].setAnimEnable(true);
mAnm[GANBARI_ANIM_TO_MIN].setToStart();
}
void dLytMeterGanbariGauge_c::executeState_ToMin() {
if (field_0x518 >= 0.9999f) {
mAnm[GANBARI_ANIM_TO_MIN].setToStart();
mLyt.calc();
mAnm[GANBARI_ANIM_TO_MIN].setAnimEnable(false);
mStateMgrWheel.changeState(StateID_ToMax);
} else if (mAnm[GANBARI_ANIM_TO_MIN].isEndReached()) {
mStateMgrWheel.changeState(StateID_Recovery);
}
}
void dLytMeterGanbariGauge_c::finalizeState_ToMin() {}
void dLytMeterGanbariGauge_c::initializeState_Recovery() {}
void dLytMeterGanbariGauge_c::executeState_Recovery() {}
void dLytMeterGanbariGauge_c::initializeState_Recovery() {
mAnm[GANBARI_ANIM_TO_MIN].setAnimEnable(true);
mAnm[GANBARI_ANIM_TO_MIN].setToEnd2();
mLyt.calc();
mAnm[GANBARI_ANIM_TO_MIN].setAnimEnable(false);
mAnm[GANBARI_ANIM_TO_MIN_LOOP].setAnimEnable(true);
mAnm[GANBARI_ANIM_TO_MIN_LOOP].setFrame(0.0f);
if (dAcPy_c::GetLink()->getRidingActorType() == 3) {
field_0x554 = 4.0f;
} else if (swimmingRelated()) {
field_0x554 = 1.0f;
} else {
field_0x554 = 2.0f;
}
}
void dLytMeterGanbariGauge_c::executeState_Recovery() {
if (swimmingRelated()) {
if (field_0x518 >= 0.0001f) {
mAnm[GANBARI_ANIM_TO_MIN_LOOP].setFrame(0.0f);
mAnm[GANBARI_ANIM_TO_MAX].setAnimEnable(true);
mAnm[GANBARI_ANIM_TO_MAX].setToEnd2();
mAnm[GANBARI_ANIM_UPDOWN_1].setAnimEnable(true);
mAnm[GANBARI_ANIM_UPDOWN_1].setFrame(0.0f);
mLyt.calc();
mAnm[GANBARI_ANIM_TO_MIN_LOOP].setAnimEnable(false);
mAnm[GANBARI_ANIM_TO_MAX].setAnimEnable(false);
mAnm[GANBARI_ANIM_UPDOWN_1].setAnimEnable(false);
mStateMgrWheel.changeState(StateID_Normal);
}
} else if (field_0x518 >= 0.9999f) {
mAnm[GANBARI_ANIM_TO_MIN_LOOP].setFrame(0.0f);
mLyt.calc();
mAnm[GANBARI_ANIM_TO_MIN_LOOP].setAnimEnable(false);
mStateMgrWheel.changeState(StateID_ToMax);
}
}
void dLytMeterGanbariGauge_c::finalizeState_Recovery() {}
void dLytMeterGanbariGauge_c::initializeState_ToMax() {}
void dLytMeterGanbariGauge_c::executeState_ToMax() {}
void dLytMeterGanbariGauge_c::initializeState_ToMax() {
mAnm[GANBARI_ANIM_TO_MIN].setAnimEnable(true);
mAnm[GANBARI_ANIM_TO_MIN].setToStart();
mLyt.calc();
mAnm[GANBARI_ANIM_TO_MIN].setAnimEnable(false);
mAnm[GANBARI_ANIM_TO_MAX].setAnimEnable(true);
mAnm[GANBARI_ANIM_TO_MAX].setToStart();
if (swimmingRelated()) {
field_0x554 = 1.0f;
}
}
void dLytMeterGanbariGauge_c::executeState_ToMax() {
if (mAnm[GANBARI_ANIM_TO_MAX].isStop2()) {
realizeAnimState();
if (dAcPy_c::GetLink()->checkSwordAndMoreStates(0x200 | 0x40 | 0x20)) {
mStateMgrWheel.changeState(StateID_FullGutsUse);
} else {
mStateMgrWheel.changeState(StateID_Full);
}
}
}
void dLytMeterGanbariGauge_c::finalizeState_ToMax() {}
bool dLytMeterGanbariGauge_c::build(d2d::ResAccIf_c *resAcc) {
// TODO
mLyt.setResAcc(resAcc);
mLyt.build("guts_00.brlyt", nullptr);
for (int i = 0; i < GANBARI_NUM_ANIMS; i++) {
mAnm[i].init(brlanMap[i].mFile, resAcc, mLyt.getLayout(), brlanMap[i].mName);
mAnm[i].bind(false);
mAnm[i].setAnimEnable(true);
}
mAnm[GANBARI_ANIM_USE].setAnimEnable(false);
mAnm[GANBARI_ANIM_LOOP].setAnimEnable(false);
mAnm[GANBARI_ANIM_M_LOOP].setAnimEnable(false);
mAnm[GANBARI_ANIM_M_CAUTION].setAnimEnable(false);
mAnm[GANBARI_ANIM_OUT].setAnimEnable(false);
mAnm[GANBARI_ANIM_CAMERA_OUT].setAnimEnable(false);
field_0x518 = 1.0f;
field_0x51C = 1.0f;
field_0x54C = 1.0f;
field_0x550 = 1.0f;
field_0x548 = dLytMeterConfiguration_c::sInstance->field_0x1C8;
field_0x558 = 0;
field_0x559 = 0;
field_0x55B = 0;
mpPane = nullptr;
field_0x55A = 0;
field_0x554 = 0.0f;
mOutWaitTimer = 0x1E;
field_0x540 = 0;
field_0x534 = 0;
if (dLytMeterConfiguration_c::sInstance->field_0x13C != 0) {
field_0x534 = 0;
} else {
field_0x534 = 1;
}
if (field_0x534 == 0) {
mAnm[GANBARI_ANIM_IN].setToStart();
} else {
mAnm[GANBARI_ANIM_IN].setToEnd2();
}
mAnm[GANBARI_ANIM_IN].setAnimEnable(true);
realizeAnimState();
mAnm[GANBARI_ANIM_IN].setAnimEnable(false);
field_0x524.copyFrom(mLyt.getLayout()->GetRootPane()->GetTranslate());
field_0x530 = 0;
field_0x544 = 0;
if (field_0x534 == 0) {
mStateMgrMain.changeState(StateID_InvisibleWait);
} else {
mStateMgrMain.changeState(StateID_Wait);
}
mStateMgrWheel.changeState(StateID_Full);
return true;
}
bool dLytMeterGanbariGauge_c::remove() {
for (int i = 0; i < GANBARI_NUM_ANIMS; i++) {
mAnm[i].remove();
}
return true;
}
bool dLytMeterGanbariGauge_c::execute() {
// TODO
if (mpPane == nullptr) {
return true;
}
if (!mpPane->IsVisible()) {
if (!(*mStateMgrMain.getStateID() != StateID_InvisibleWait)) {
return true;
}
mStateMgrMain.changeState(StateID_InvisibleWait);
return true;
}
// TODO I really don't like the look of the rest of this function. Depends on a bunch
// of player, camera and filemanager stuff with a ton of inlines...
return true;
}
const char *dLytMeterGanbariGauge_c::getName() const {
return mLyt.getName();
}
void dLytMeterGanbariGauge_c::realizeAnimState() {
mAnm[GANBARI_ANIM_TO_MIN].setToStart();
mAnm[GANBARI_ANIM_TO_MIN].setAnimEnable(true);
d2d::LytBase_c *dLytMeterGanbariGauge_c::getLyt() {
return &mLyt;
}
mAnm[GANBARI_ANIM_TO_MIN_LOOP].setFrame(0.0f);
mAnm[GANBARI_ANIM_TO_MIN_LOOP].setAnimEnable(true);
nw4r::lyt::Pane *dLytMeterGanbariGauge_c::getPane() {
return mLyt.getLayout()->GetRootPane();
mAnm[GANBARI_ANIM_TO_MAX].setToEnd2();
mAnm[GANBARI_ANIM_TO_MAX].setAnimEnable(true);
mAnm[GANBARI_ANIM_CAUTION].setFrame(0.0f);
mAnm[GANBARI_ANIM_CAUTION].setAnimEnable(true);
// okay
mAnm[GANBARI_ANIM_USE].setAnimEnable(false);
mAnm[GANBARI_ANIM_USE].setAnimEnable(true);
mAnm[GANBARI_ANIM_UPDOWN_1].setAnimEnable(true);
mAnm[GANBARI_ANIM_UPDOWN_1].setFrame(0.0f);
mLyt.calc();
mAnm[GANBARI_ANIM_TO_MIN].setAnimEnable(false);
mAnm[GANBARI_ANIM_TO_MIN_LOOP].setAnimEnable(false);
mAnm[GANBARI_ANIM_TO_MAX].setAnimEnable(false);
mAnm[GANBARI_ANIM_CAUTION].setAnimEnable(false);
mAnm[GANBARI_ANIM_USE].setAnimEnable(false);
mAnm[GANBARI_ANIM_UPDOWN_1].setAnimEnable(false);
if (dAcPy_c::GetLink() != nullptr) {
if (dAcPy_c::GetLink()->getRidingActorType() == 3) {
field_0x554 = 3.0f;
} else if (swimmingRelated()) {
field_0x554 = 1.0f;
} else {
field_0x554 = 0.0f;
}
}
}
+809
View File
@@ -1,5 +1,200 @@
#include "d/lyt/meter/d_lyt_meter_item_select.h"
#include "common.h"
#include "d/flag/storyflag_manager.h"
#include "d/lyt/d2d.h"
#include "d/lyt/d_lyt_common_icon_item.h"
#include "d/lyt/d_lyt_do_button.h"
#include "d/lyt/d_lyt_unknowns.h"
#include "d/lyt/meter/d_lyt_meter.h"
#include "m/m_vec.h"
#include "nw4r/lyt/lyt_group.h"
#include "nw4r/math/math_types.h"
#include "toBeSorted/small_sound_mgr.h"
STATE_DEFINE(dLytMeterItemSelectIcon_c, Wait);
STATE_DEFINE(dLytMeterItemSelectIcon_c, On);
STATE_DEFINE(dLytMeterItemSelectIcon_c, Select);
STATE_DEFINE(dLytMeterItemSelectIcon_c, Off);
STATE_DEFINE(dLytMeterItemSelectBlink_c, Wait);
STATE_DEFINE(dLytMeterItemSelectBlink_c, On);
STATE_DEFINE(dLytMeterItemSelectBlink_c, Select);
STATE_DEFINE(dLytMeterItemSelectBlink_c, Off);
STATE_DEFINE(dLytMeterItemSelectText_c, Wait);
STATE_DEFINE(dLytMeterItemSelectText_c, On);
STATE_DEFINE(dLytMeterItemSelectText_c, Select);
STATE_DEFINE(dLytMeterItemSelectText_c, Off);
STATE_DEFINE(dLytMeterItemSelectBtn_c, Invisible);
STATE_DEFINE(dLytMeterItemSelectBtn_c, On);
STATE_DEFINE(dLytMeterItemSelectBtn_c, Visible);
STATE_DEFINE(dLytMeterItemSelectBtn_c, Off);
STATE_DEFINE(dLytMeterItemSelect_c, InitWait);
STATE_DEFINE(dLytMeterItemSelect_c, Wait);
STATE_DEFINE(dLytMeterItemSelect_c, SelectIn);
STATE_DEFINE(dLytMeterItemSelect_c, Select);
STATE_DEFINE(dLytMeterItemSelect_c, SetIn);
STATE_DEFINE(dLytMeterItemSelect_c, SetSpecialItemIn);
STATE_DEFINE(dLytMeterItemSelect_c, Set);
STATE_DEFINE(dLytMeterItemSelect_c, SetOut);
STATE_DEFINE(dLytMeterItemSelect_c, SetNone);
STATE_DEFINE(dLytMeterItemSelect_c, SelectOut);
STATE_DEFINE(dLytMeterItemSelect_c, ResetIn);
STATE_DEFINE(dLytMeterItemSelect_c, Reset);
STATE_DEFINE(dLytMeterItemSelect_c, ResetOut);
STATE_DEFINE(dLytMeterItemSelect_c, ToUse);
STATE_DEFINE(dLytMeterItemSelect_c, ToUnuse);
STATE_DEFINE(dLytMeterItemSelect_c, Unuse);
STATE_DEFINE(dLytMeterItemSelect_c, DemoMove);
STATE_DEFINE(dLytMeterItemSelect_c, DemoOut0);
STATE_DEFINE(dLytMeterItemSelect_c, DemoOut1);
STATE_DEFINE(dLytMeterItemSelect_c, FrameOffIn);
STATE_DEFINE(dLytMeterItemSelect_c, FrameOffMove);
STATE_DEFINE(dLytMeterItemSelect_c, FrameOffOut);
void dLytMeterItemSelectIcon_c::initializeState_Wait() {}
void dLytMeterItemSelectIcon_c::executeState_Wait() {}
void dLytMeterItemSelectIcon_c::finalizeState_Wait() {}
void dLytMeterItemSelectIcon_c::initializeState_On() {}
void dLytMeterItemSelectIcon_c::executeState_On() {}
void dLytMeterItemSelectIcon_c::finalizeState_On() {}
void dLytMeterItemSelectIcon_c::initializeState_Select() {}
void dLytMeterItemSelectIcon_c::executeState_Select() {}
void dLytMeterItemSelectIcon_c::finalizeState_Select() {}
void dLytMeterItemSelectIcon_c::initializeState_Off() {}
void dLytMeterItemSelectIcon_c::executeState_Off() {}
void dLytMeterItemSelectIcon_c::finalizeState_Off() {}
void dLytMeterItemSelectBlink_c::initializeState_Wait() {}
void dLytMeterItemSelectBlink_c::executeState_Wait() {}
void dLytMeterItemSelectBlink_c::finalizeState_Wait() {}
void dLytMeterItemSelectBlink_c::initializeState_On() {}
void dLytMeterItemSelectBlink_c::executeState_On() {}
void dLytMeterItemSelectBlink_c::finalizeState_On() {}
void dLytMeterItemSelectBlink_c::initializeState_Select() {}
void dLytMeterItemSelectBlink_c::executeState_Select() {}
void dLytMeterItemSelectBlink_c::finalizeState_Select() {}
void dLytMeterItemSelectBlink_c::initializeState_Off() {}
void dLytMeterItemSelectBlink_c::executeState_Off() {}
void dLytMeterItemSelectBlink_c::finalizeState_Off() {}
void dLytMeterItemSelectText_c::initializeState_Wait() {}
void dLytMeterItemSelectText_c::executeState_Wait() {}
void dLytMeterItemSelectText_c::finalizeState_Wait() {}
void dLytMeterItemSelectText_c::initializeState_On() {}
void dLytMeterItemSelectText_c::executeState_On() {}
void dLytMeterItemSelectText_c::finalizeState_On() {}
void dLytMeterItemSelectText_c::initializeState_Select() {}
void dLytMeterItemSelectText_c::executeState_Select() {}
void dLytMeterItemSelectText_c::finalizeState_Select() {}
void dLytMeterItemSelectText_c::initializeState_Off() {}
void dLytMeterItemSelectText_c::executeState_Off() {}
void dLytMeterItemSelectText_c::finalizeState_Off() {}
void dLytMeterItemSelectBtn_c::initializeState_Invisible() {}
void dLytMeterItemSelectBtn_c::executeState_Invisible() {}
void dLytMeterItemSelectBtn_c::finalizeState_Invisible() {}
void dLytMeterItemSelectBtn_c::initializeState_On() {}
void dLytMeterItemSelectBtn_c::executeState_On() {}
void dLytMeterItemSelectBtn_c::finalizeState_On() {}
void dLytMeterItemSelectBtn_c::initializeState_Visible() {}
void dLytMeterItemSelectBtn_c::executeState_Visible() {}
void dLytMeterItemSelectBtn_c::finalizeState_Visible() {}
void dLytMeterItemSelectBtn_c::initializeState_Off() {}
void dLytMeterItemSelectBtn_c::executeState_Off() {}
void dLytMeterItemSelectBtn_c::finalizeState_Off() {}
static const char *sPaneNames[] = {
"N_itemArrow_00", "N_arrowHand_00", "N_bBtn_00", "N_itemSelect_00", "N_setBtn_00", "N_bBtn_01",
"N_btnBg_00", "N_btn_00", "N_input_00", "N_iconA_00", "N_iconB_00", "N_iconC_00",
"N_iconD_00", "N_iconE_00", "N_iconF_00", "N_iconG_00", "N_iconH_00",
};
static const d2d::LytBrlanMapping brlanMap[] = {
{ "remoConBtn_00_in.brlan", "G_inOut_00"},
{ "remoConBtn_00_onOff.brlan", "G_itemA_00"},
{ "remoConBtn_00_onOff.brlan", "G_itemB_00"},
{ "remoConBtn_00_onOff.brlan", "G_itemC_00"},
{ "remoConBtn_00_onOff.brlan", "G_itemD_00"},
{ "remoConBtn_00_onOff.brlan", "G_itemE_00"},
{ "remoConBtn_00_onOff.brlan", "G_itemF_00"},
{ "remoConBtn_00_onOff.brlan", "G_itemG_00"},
{ "remoConBtn_00_onOff.brlan", "G_itemH_00"},
{ "remoConBtn_00_onOff.brlan", "G_text_00"},
{ "remoConBtn_00_onOff.brlan", "G_text_01"},
{ "remoConBtn_00_have.brlan", "G_itemA_00"},
{ "remoConBtn_00_have.brlan", "G_itemB_00"},
{ "remoConBtn_00_have.brlan", "G_itemC_00"},
{ "remoConBtn_00_have.brlan", "G_itemD_00"},
{ "remoConBtn_00_have.brlan", "G_itemE_00"},
{ "remoConBtn_00_have.brlan", "G_itemF_00"},
{ "remoConBtn_00_have.brlan", "G_itemG_00"},
{ "remoConBtn_00_have.brlan", "G_itemH_00"},
{"remoConBtn_00_selectOnOff.brlan", "G_selectOnOff_00"},
{ "remoConBtn_00_selectLoop.brlan", "G_selectLoop_00"},
{ "remoConBtn_00_itemArrow.brlan", "G_itemArrow_00"},
{ "remoConBtn_00_decide.brlan", "G_decide_00"},
{ "remoConBtn_00_numberV.brlan", "G_numberV_00"},
{ "remoConBtn_00_out.brlan", "G_inOut_00"},
{ "remoConBtn_00_reset.brlan", "G_inOut_00"},
{ "remoConBtn_00_textColor.brlan", "G_textColor_00"},
{ "remoConBtn_00_enough.brlan", "G_enough_00"},
{ "remoConBtn_00_full.brlan", "G_full_00"},
{ "remoConBtn_00_call.brlan", "G_call_00"},
{ "remoConBtn_00_input.brlan", "G_input_00"},
{ "remoConBtn_00_input.brlan", "G_input_01"},
{ "remoConBtn_00_input.brlan", "G_input_02"},
{ "remoConBtn_00_input.brlan", "G_input_03"},
};
#define ITEM_SELECT_ANIM_IN 0
#define ITEM_SELECT_ANIM_ONOFF_OFFSET 1
#define ITEM_SELECT_ANIM_TEXT_ONOFF_OFFSET 9
#define ITEM_SELECT_ANIM_HAVE_OFFSET 11
#define ITEM_SELECT_ANIM_SELECT_ONOFF 19
#define ITEM_SELECT_ANIM_SELECT_LOOP 20
#define ITEM_SELECT_ANIM_ARROW 21
#define ITEM_SELECT_ANIM_DECIDE 22
#define ITEM_SELECT_ANIM_NUMBERV 23
#define ITEM_SELECT_ANIM_OUT 24
#define ITEM_SELECT_ANIM_RESET 25
#define ITEM_SELECT_ANIM_TEXTCOLOR 26
#define ITEM_SELECT_ANIM_ENOUGH 27
#define ITEM_SELECT_ANIM_FULL 28
#define ITEM_SELECT_ANIM_CALL 29
#define ITEM_SELECT_ANIM_INPUT_OFFSET 30
#define ITEM_SELECT_NUM_ANIMS 34
static const char *sTextboxNames[] = {
"T_number_00", "T_numberS_00", "T_numberS_01", "T_numberS_02", "T_back_00",
"T_backS_00", "T_itemName_00", "T_itemNameS_00", "T_item_00", "T_itemS_00",
};
static const char *sWindowNames[] = {
"W_bgP_00",
"W_bgP_01",
"W_bgP_02",
"W_bgP_04",
};
static const char *groupName = "G_ref_00";
dLytMeterItemSelect_c::dLytMeterItemSelect_c() : mStateMgr(*this, sStateID::null) {
field_0x574C = 11;
field_0x5750 = 11;
@@ -10,3 +205,617 @@ dLytMeterItemSelect_c::dLytMeterItemSelect_c() : mStateMgr(*this, sStateID::null
field_0x5764 = -1;
field_0x5768 = 2;
}
void dLytMeterItemSelect_c::initializeState_InitWait() {}
void dLytMeterItemSelect_c::executeState_InitWait() {}
void dLytMeterItemSelect_c::finalizeState_InitWait() {}
void dLytMeterItemSelect_c::initializeState_Wait() {}
void dLytMeterItemSelect_c::executeState_Wait() {}
void dLytMeterItemSelect_c::finalizeState_Wait() {}
void dLytMeterItemSelect_c::initializeState_SelectIn() {}
void dLytMeterItemSelect_c::executeState_SelectIn() {}
void dLytMeterItemSelect_c::finalizeState_SelectIn() {}
void dLytMeterItemSelect_c::initializeState_Select() {}
void dLytMeterItemSelect_c::executeState_Select() {}
void dLytMeterItemSelect_c::finalizeState_Select() {}
void dLytMeterItemSelect_c::initializeState_SetIn() {}
void dLytMeterItemSelect_c::executeState_SetIn() {}
void dLytMeterItemSelect_c::finalizeState_SetIn() {}
void dLytMeterItemSelect_c::initializeState_SetSpecialItemIn() {}
void dLytMeterItemSelect_c::executeState_SetSpecialItemIn() {}
void dLytMeterItemSelect_c::finalizeState_SetSpecialItemIn() {}
void dLytMeterItemSelect_c::initializeState_Set() {}
void dLytMeterItemSelect_c::executeState_Set() {}
void dLytMeterItemSelect_c::finalizeState_Set() {}
void dLytMeterItemSelect_c::initializeState_SetOut() {}
void dLytMeterItemSelect_c::executeState_SetOut() {}
void dLytMeterItemSelect_c::finalizeState_SetOut() {}
void dLytMeterItemSelect_c::initializeState_SetNone() {}
void dLytMeterItemSelect_c::executeState_SetNone() {}
void dLytMeterItemSelect_c::finalizeState_SetNone() {}
void dLytMeterItemSelect_c::initializeState_SelectOut() {}
void dLytMeterItemSelect_c::executeState_SelectOut() {}
void dLytMeterItemSelect_c::finalizeState_SelectOut() {}
void dLytMeterItemSelect_c::initializeState_ResetIn() {}
void dLytMeterItemSelect_c::executeState_ResetIn() {}
void dLytMeterItemSelect_c::finalizeState_ResetIn() {}
void dLytMeterItemSelect_c::initializeState_Reset() {}
void dLytMeterItemSelect_c::executeState_Reset() {}
void dLytMeterItemSelect_c::finalizeState_Reset() {}
void dLytMeterItemSelect_c::initializeState_ResetOut() {}
void dLytMeterItemSelect_c::executeState_ResetOut() {}
void dLytMeterItemSelect_c::finalizeState_ResetOut() {}
void dLytMeterItemSelect_c::initializeState_ToUse() {}
void dLytMeterItemSelect_c::executeState_ToUse() {}
void dLytMeterItemSelect_c::finalizeState_ToUse() {}
void dLytMeterItemSelect_c::initializeState_ToUnuse() {}
void dLytMeterItemSelect_c::executeState_ToUnuse() {}
void dLytMeterItemSelect_c::finalizeState_ToUnuse() {}
void dLytMeterItemSelect_c::initializeState_Unuse() {}
void dLytMeterItemSelect_c::executeState_Unuse() {}
void dLytMeterItemSelect_c::finalizeState_Unuse() {}
void dLytMeterItemSelect_c::initializeState_DemoMove() {}
void dLytMeterItemSelect_c::executeState_DemoMove() {}
void dLytMeterItemSelect_c::finalizeState_DemoMove() {}
void dLytMeterItemSelect_c::initializeState_DemoOut0() {}
void dLytMeterItemSelect_c::executeState_DemoOut0() {}
void dLytMeterItemSelect_c::finalizeState_DemoOut0() {}
void dLytMeterItemSelect_c::initializeState_DemoOut1() {}
void dLytMeterItemSelect_c::executeState_DemoOut1() {}
void dLytMeterItemSelect_c::finalizeState_DemoOut1() {}
void dLytMeterItemSelect_c::initializeState_FrameOffIn() {}
void dLytMeterItemSelect_c::executeState_FrameOffIn() {}
void dLytMeterItemSelect_c::finalizeState_FrameOffIn() {}
void dLytMeterItemSelect_c::initializeState_FrameOffMove() {}
void dLytMeterItemSelect_c::executeState_FrameOffMove() {}
void dLytMeterItemSelect_c::finalizeState_FrameOffMove() {}
void dLytMeterItemSelect_c::initializeState_FrameOffOut() {}
void dLytMeterItemSelect_c::executeState_FrameOffOut() {}
void dLytMeterItemSelect_c::finalizeState_FrameOffOut() {}
bool dLytMeterItemSelect_c::build(d2d::ResAccIf_c *resAcc) {
mLyt.setResAcc(resAcc);
mLyt.build("remoConBtn_00.brlyt", nullptr);
for (int i = 0; i < 17; i++) {
mpPanes[i] = mLyt.findPane(sPaneNames[i]);
}
for (int i = 0; i < ITEM_SELECT_NUM_ANIMS; i++) {
mAnm[i].init(brlanMap[i].mFile, resAcc, mLyt.getLayout(), brlanMap[i].mName);
mAnm[i].bind(false);
mAnm[i].setAnimEnable(false);
}
for (int i = 0; i < 8; i++) {
mIcon[i].setAnm(&mAnm[i + ITEM_SELECT_ANIM_ONOFF_OFFSET]);
mIcon[i].init();
}
mBlink.setAnm(&mAnm[ITEM_SELECT_ANIM_NUMBERV]);
mBlink.init();
for (int i = 0; i < 2; i++) {
mText[i].setAnm(&mAnm[i + ITEM_SELECT_ANIM_TEXT_ONOFF_OFFSET]);
mText[i].init();
}
for (int i = 0; i < 4; i++) {
mBtn[i].setAnm(&mAnm[i + ITEM_SELECT_ANIM_INPUT_OFFSET]);
mBtn[i].init(i, &mLyt, mpPanes[5]);
}
for (int i = 0; i < 10; i++) {
mpTextBoxes[i] = mLyt.getTextBox(sTextboxNames[i]);
}
for (int i = 0; i < 4; i++) {
mpWindows[i] = mLyt.getWindow(sWindowNames[i]);
mpSizeBoxes[i] = mLyt.getSizeBoxInWindow(sWindowNames[i]);
mpWindows[i]->UpdateSize(mpSizeBoxes[i], 32.0f);
}
for (int i = 0; i < 9; i++) {
mSubpanes[i].mpLytPane = &mItemIcons[i];
mItemIcons[i].build(resAcc, dLytCommonIconItem_c::B_WHEEL);
mSubpaneList.PushBack(&mSubpanes[i]);
}
if (mLyt.getLayout()->GetRootPane() != nullptr) {
nw4r::lyt::Group *g = mLyt.findGroupByName("G_ref_00");
linkMeters(g, &mSubpaneList);
}
for (int i = 0; i < 9; i++) {
mItemIcons[i].reset();
mItemIcons[i].setVisible(false);
mItemIcons[i].setSize(true);
}
mStateMgr.changeState(StateID_InitWait);
return true;
}
bool dLytMeterItemSelect_c::remove() {
for (d2d::SubPaneList::Iterator it = mSubpaneList.GetBeginIter(); it != mSubpaneList.GetEndIter(); ++it) {
if (!it->mpLytPane->LytMeter0x24()) {
continue;
}
d2d::dSubPane *subPane = it->mpLytPane;
if (subPane != nullptr) {
nw4r::lyt::Pane *parent = subPane->getPane()->GetParent();
parent->RemoveChild(subPane->getPane());
}
}
for (int i = 0; i < 9; i++) {
mSubpanes[i].mpLytPane->remove();
}
for (int i = 0; i < ITEM_SELECT_NUM_ANIMS; i++) {
mAnm[i].unbind();
mAnm[i].remove();
}
mEffects.remove(true);
return true;
}
bool dLytMeterItemSelect_c::execute() {
if (StoryflagManager::sInstance->getCounterOrFlag(569) != 0) {
if (field_0x57A2 != 0 || (field_0x57A0 != 0 && field_0x5794 != 2 && field_0x5794 != 9 && field_0x5794 != 10)) {
field_0x57B9 = 0;
StoryflagManager::sInstance->unsetFlag(569);
} else {
field_0x57B9 = 1;
}
}
field_0x57BF = field_0x57BE;
if (mpSomePane == nullptr) {
return true;
}
if (!mpSomePane->IsVisible()) {
if (*mStateMgr.getStateID() != StateID_DemoMove && *mStateMgr.getStateID() != StateID_DemoOut0 &&
*mStateMgr.getStateID() != StateID_DemoOut1 && field_0x57C5 != 0) {
mpPanes[6]->SetVisible(true);
mpPanes[7]->SetVisible(true);
mpPanes[8]->SetVisible(true);
field_0x57C5 = 0;
}
if ((*mStateMgr.getStateID() == StateID_SetIn) || (*mStateMgr.getStateID() == StateID_Set) ||
(*mStateMgr.getStateID() == StateID_SetOut) || (*mStateMgr.getStateID() == StateID_ToUnuse)) {
if (mAnm[ITEM_SELECT_ANIM_IN].isEnabled()) {
mAnm[ITEM_SELECT_ANIM_IN].setToEnd2();
}
if (mAnm[ITEM_SELECT_ANIM_DECIDE].isEnabled()) {
mAnm[ITEM_SELECT_ANIM_DECIDE].setToEnd2();
}
if (field_0x5798 != 11) {
if (field_0x5794 != 11) {
mAnm[ITEM_SELECT_ANIM_OUT].setForwardOnce();
mAnm[ITEM_SELECT_ANIM_OUT].setAnimEnable(true);
mAnm[ITEM_SELECT_ANIM_OUT].setToEnd2();
} else {
mAnm[ITEM_SELECT_ANIM_RESET].setForwardOnce();
mAnm[ITEM_SELECT_ANIM_RESET].setAnimEnable(true);
mAnm[ITEM_SELECT_ANIM_RESET].setToEnd2();
}
} else if (field_0x5794 != 11) {
mAnm[ITEM_SELECT_ANIM_OUT].setForwardOnce();
mAnm[ITEM_SELECT_ANIM_OUT].setAnimEnable(true);
mAnm[ITEM_SELECT_ANIM_OUT].setToEnd2();
} else {
mAnm[ITEM_SELECT_ANIM_RESET].setForwardOnce();
mAnm[ITEM_SELECT_ANIM_RESET].setAnimEnable(true);
mAnm[ITEM_SELECT_ANIM_RESET].setToEnd2();
}
mLyt.getLayout()->Animate(0);
mLyt.calc();
if (mAnm[ITEM_SELECT_ANIM_IN].isEnabled()) {
mAnm[ITEM_SELECT_ANIM_IN].setAnimEnable(false);
}
if (mAnm[ITEM_SELECT_ANIM_DECIDE].isEnabled()) {
mAnm[ITEM_SELECT_ANIM_DECIDE].setAnimEnable(false);
}
if (mAnm[ITEM_SELECT_ANIM_OUT].isEnabled()) {
mAnm[ITEM_SELECT_ANIM_OUT].setAnimEnable(false);
}
if (mAnm[ITEM_SELECT_ANIM_RESET].isEnabled()) {
mAnm[ITEM_SELECT_ANIM_RESET].setAnimEnable(false);
}
mBtn[1].fn_800E9E00(1, 1);
mBtn[0].fn_800E9E00(1, 1);
field_0x57B3 = 0;
if (field_0x5798 != 11) {
if (field_0x5794 != 11) {
mBtn[2].fn_800E9E00(0, 1);
} else {
mBtn[2].fn_800E9E00(1, 1);
}
} else if (field_0x5794 != 11) {
mBtn[2].fn_800E9E00(0, 1);
} else {
mBtn[2].fn_800E9E00(1, 1);
}
mStateMgr.changeState(StateID_Wait);
} else if (*mStateMgr.getStateID() == StateID_SelectOut) {
if (mAnm[ITEM_SELECT_ANIM_IN].isEnabled()) {
mAnm[ITEM_SELECT_ANIM_IN].setToEnd2();
}
if (field_0x57BD != 0) {
field_0x579B = 0;
field_0x5784 = 0.8f;
mEffects.fn_80027320(0);
field_0x57BD = 0;
field_0x57BE = 0;
mpPanes[11]->SetAlpha(0xFF);
}
mLyt.getLayout()->Animate(0);
mLyt.calc();
if (mAnm[ITEM_SELECT_ANIM_IN].isEnabled()) {
mAnm[ITEM_SELECT_ANIM_IN].setAnimEnable(false);
}
mStateMgr.changeState(StateID_Wait);
}
// LAB_800ee8ec:
if (*mStateMgr.getStateID() == StateID_SetNone) {
mAnm[ITEM_SELECT_ANIM_RESET].setToEnd2();
mBtn[0].fn_800E9E30(1);
mBtn[2].fn_800E9E30(1);
mLyt.getLayout()->Animate(0);
mLyt.calc();
mAnm[ITEM_SELECT_ANIM_RESET].setAnimEnable(false);
field_0x57B3 = 0;
field_0x579A = 11;
mStateMgr.changeState(StateID_Wait);
}
if (*mStateMgr.getStateID() == StateID_SetSpecialItemIn) {
mBtn[0].fn_800E9E00(1, 1);
if (mpSomePane->GetAlpha() != 0xFF) {
if (mAnm[ITEM_SELECT_ANIM_OUT].isEnabled()) {
mAnm[ITEM_SELECT_ANIM_OUT].setAnimEnable(false);
}
if (mAnm[ITEM_SELECT_ANIM_RESET].isEnabled()) {
mAnm[ITEM_SELECT_ANIM_RESET].setToStart();
}
mpPanes[4]->SetVisible(true);
mAnm[ITEM_SELECT_ANIM_IN].setAnimEnable(true);
mAnm[ITEM_SELECT_ANIM_IN].setFrame(0.0f);
mBtn[1].fn_800E9E00(1, 1);
mBtn[2].fn_800E9E00(1, 1);
mLyt.calc();
mAnm[ITEM_SELECT_ANIM_IN].setAnimEnable(false);
mAnm[ITEM_SELECT_ANIM_RESET].setAnimEnable(false);
mpPanes[4]->SetVisible(false);
field_0x57B3 = 0;
field_0x579A = 11;
mStateMgr.changeState(StateID_Wait);
}
}
// TODO maybe an inline
s32 tmp;
if (dLytDobutton_c::GetInstance() != nullptr) {
tmp = dLytDobutton_c::GetInstance()->getField0x47C();
} else {
tmp = 0x5E;
}
if (tmp == 0x28) {
if (field_0x5774 == 0) {
SmallSoundManager::GetInstance()->playSound(SE_S_PARACHUTE_CALL);
}
field_0x5774++;
if (field_0x5774 >= mAnm[ITEM_SELECT_ANIM_CALL].getAnimDuration() / 2.0f) {
field_0x5774 = 0;
}
} else {
field_0x5774 = 0;
}
return true;
}
bool a = false;
bool b = false;
if (field_0x5790 > 0) {
field_0x5790--;
}
if (field_0x5794 != field_0x5796) {
field_0x5796 = field_0x5794;
a = true;
if (field_0x5794 != 11) {
field_0x5797 = field_0x5794;
field_0x57B4 = 0;
} else {
field_0x57B4 = 1;
}
fn_800F0680(field_0x5796);
b = true;
} else if (field_0x579C != fn_800F07D0(fn_800F0990(1))) {
field_0x579C = fn_800F07D0(fn_800F0990(1));
fn_800F0680(field_0x5796);
b = true;
} else if (field_0x579D != fn_800F07D0(fn_800F0990(5))) {
field_0x579D = fn_800F07D0(fn_800F0990(5));
fn_800F0680(field_0x5796);
b = true;
} else if (field_0x579E != fn_800F07D0(fn_800F0990(4))) {
field_0x579E = fn_800F07D0(fn_800F0990(4));
fn_800F0680(field_0x5796);
b = true;
} else if (field_0x579F != fn_800F07D0(fn_800F0990(7))) {
field_0x579F = fn_800F07D0(fn_800F0990(7));
fn_800F0680(field_0x5796);
b = true;
}
if (field_0x5797 != 11) {
fn_800EFAD0(fn_800F07D0(fn_800F0990(field_0x5797)), a);
}
if (field_0x57B6) {
if (!mAnm[ITEM_SELECT_ANIM_ENOUGH].isEnabled()) {
mAnm[ITEM_SELECT_ANIM_ENOUGH].setFrame(0.0f);
mAnm[ITEM_SELECT_ANIM_ENOUGH].setAnimEnable(true);
}
field_0x57B6 = false;
}
if (field_0x57B7) {
if (!mAnm[ITEM_SELECT_ANIM_FULL].isEnabled()) {
mAnm[ITEM_SELECT_ANIM_FULL].setFrame(0.0f);
mAnm[ITEM_SELECT_ANIM_FULL].setAnimEnable(true);
if (field_0x5797 == 0) {
SmallSoundManager::GetInstance()->playSound(SE_S_BM_MAX);
} else if (field_0x5797 == 1) {
SmallSoundManager::GetInstance()->playSound(SE_S_AW_MAX);
} else if (field_0x5797 == 5) {
SmallSoundManager::GetInstance()->playSound(SE_S_PC_MAX);
}
}
field_0x57B7 = false;
}
fn_800EF7C0();
mStateMgr.executeState();
fn_800EF8C0(0);
// TODO maybe an inline
s32 tmp;
if (dLytDobutton_c::GetInstance() != nullptr) {
tmp = dLytDobutton_c::GetInstance()->getField0x47C();
} else {
tmp = 0x5E;
}
if (tmp == 0x28) {
if (field_0x57C3 != 0) {
field_0x57BB = 1;
}
} else {
field_0x57C3 = 0;
}
bool b2 = false;
if (field_0x57B9 != 0 && dLytMeterContainer_c::GetInstance()->checkAllFlags(0x10) && field_0x576C == 0x85) {
if (field_0x57BA == 0) {
mAnm[ITEM_SELECT_ANIM_CALL].setToEnd();
mAnm[ITEM_SELECT_ANIM_CALL].setRate(1.0f);
mAnm[ITEM_SELECT_ANIM_CALL].setAnimEnable(true);
field_0x57BA = 1;
}
if (mAnm[ITEM_SELECT_ANIM_CALL].isEnabled()) {
mAnm[ITEM_SELECT_ANIM_CALL].play();
if (dLytMeterContainer_c::GetInstance()->checkAllFlags(0x10) &&
mAnm[ITEM_SELECT_ANIM_CALL].getFrame() == 1.0f) {
SmallSoundManager::GetInstance()->playSound(SE_S_B_BUTTON_BLINK);
}
}
b2 = true;
} else {
if (field_0x57BA == 1) {
mAnm[ITEM_SELECT_ANIM_CALL].setToEnd();
b2 = true;
}
if (field_0x57BB != 0) {
if (field_0x57BC == 0) {
mAnm[ITEM_SELECT_ANIM_CALL].setToEnd();
mAnm[ITEM_SELECT_ANIM_CALL].setRate(2.0f);
mAnm[ITEM_SELECT_ANIM_CALL].setAnimEnable(true);
}
if (mAnm[ITEM_SELECT_ANIM_CALL].isEnabled()) {
mAnm[ITEM_SELECT_ANIM_CALL].play();
if (dLytMeterContainer_c::GetInstance()->checkAllFlags(0x10) &&
mAnm[ITEM_SELECT_ANIM_CALL].getFrame() == 1.0f) {
SmallSoundManager::GetInstance()->playSound(SE_S_PARACHUTE_CALL);
}
}
b2 = true;
} else if (field_0x57BC == 1) {
mAnm[ITEM_SELECT_ANIM_CALL].setToEnd();
b2 = true;
}
}
if (!b2 && mAnm[ITEM_SELECT_ANIM_CALL].isEnabled()) {
mAnm[ITEM_SELECT_ANIM_CALL].setAnimEnable(false);
}
if (field_0x57B9 == 0) {
field_0x57BA = field_0x57B9;
}
field_0x57B9 = 0;
field_0x57BC = field_0x57BB;
field_0x57BB = 0;
if (*mStateMgr.getStateID() != StateID_InitWait) {
for (int i = 0; i < 8; i++) {
mIcon[i].execute();
}
mBlink.execute();
for (int i = 0; i < 2; i++) {
mText[i].execute();
}
for (int i = 0; i < 4; i++) {
mBtn[i].execute();
if (mBtn[i].getField_0x57() != 0) {
mBtn[i].setField_0x57(0);
b = true;
}
}
if (b) {
mLyt.getLayout()->Animate(0);
}
mVec3_c t1(0.0f, 0.0f, 0.0f);
t1.z = field_0x5778;
mpPanes[0]->SetRotate(t1);
mVec3_c t2(0.0f, 0.0f, 0.0f);
t2.z = -field_0x5778;
mpPanes[1]->SetRotate(t2);
mpPanes[2]->SetRotate(t2);
f32 frame = mAnm[ITEM_SELECT_ANIM_ARROW].getAnimDuration();
if (field_0x577C < 0.0f) {
field_0x577C = 0.0f;
}
if (field_0x577C > 1.0f) {
field_0x577C = 1.0f;
}
mAnm[ITEM_SELECT_ANIM_ARROW].setFrame(frame * field_0x577C);
mAnm[ITEM_SELECT_ANIM_ARROW].setAnimEnable(true);
if (mAnm[ITEM_SELECT_ANIM_SELECT_LOOP].isEnabled()) {
mAnm[ITEM_SELECT_ANIM_SELECT_LOOP].play();
}
if (mAnm[ITEM_SELECT_ANIM_ENOUGH].isEnabled()) {
if (mAnm[ITEM_SELECT_ANIM_ENOUGH].isEndReached()) {
mAnm[ITEM_SELECT_ANIM_ENOUGH].setFrame(0.0f);
mAnm[ITEM_SELECT_ANIM_ENOUGH].setAnimEnable(false);
} else {
mAnm[ITEM_SELECT_ANIM_ENOUGH].play();
}
}
if (mAnm[ITEM_SELECT_ANIM_FULL].isEnabled()) {
if (mAnm[ITEM_SELECT_ANIM_FULL].isEndReached()) {
mAnm[ITEM_SELECT_ANIM_FULL].setFrame(0.0f);
mAnm[ITEM_SELECT_ANIM_FULL].setAnimEnable(false);
} else {
mAnm[ITEM_SELECT_ANIM_FULL].play();
}
}
for (int i = 0; i < 9; i++) {
mSubpanes[i].mpLytPane->execute();
}
if (field_0x5794 == 2) {
if (LytDoButtonRelated::GetInstance() != nullptr) {
LytDoButtonRelated::GetInstance()->set0x08(0x91);
}
} else if (field_0x5794 == 9) {
if (field_0x57B3 != 0) {
if (LytDoButtonRelated::GetInstance() != nullptr) {
LytDoButtonRelated::GetInstance()->set0x08(0x90);
}
} else {
if (LytDoButtonRelated::GetInstance() != nullptr) {
LytDoButtonRelated::GetInstance()->set0x08(0x8F);
}
}
}
if (field_0x578C <= 0 && *mStateMgr.getStateID() != StateID_SetIn &&
*mStateMgr.getStateID() != StateID_SetOut && *mStateMgr.getStateID() != StateID_ToUnuse &&
*mStateMgr.getStateID() != StateID_Unuse) {
s32 tmp;
if (LytDoButtonRelated::GetInstance() != nullptr) {
tmp = LytDoButtonRelated::GetInstance()->get0x08();
} else {
tmp = 0x98;
}
if (field_0x576C != tmp) {
s32 tmp;
if (LytDoButtonRelated::GetInstance() != nullptr) {
tmp = LytDoButtonRelated::GetInstance()->get0x08();
} else {
tmp = 0x98;
}
field_0x576C = tmp;
fn_800F0440(field_0x576C);
}
} else {
if (field_0x576C != 0x98) {
field_0x576C = 0x98;
fn_800F0440(field_0x576C);
}
if (field_0x578C > 0) {
field_0x578C--;
}
}
if (LytDoButtonRelated::GetInstance() != nullptr) {
LytDoButtonRelated::GetInstance()->set0x08(0x98);
}
}
field_0x57C1 = fn_800F09E0();
return true;
}