From 95c710fab00f8fbf2d47527085b7a4e0cd1761ce Mon Sep 17 00:00:00 2001 From: robojumper Date: Mon, 31 Mar 2025 22:55:30 +0200 Subject: [PATCH] d_lyt_common_icon_material OK --- config/SOUE01/splits.txt | 6 + config/SOUE01/symbols.txt | 342 ++++++------- configure.py | 3 +- include/d/lyt/d_lyt_common_icon_item.h | 4 +- include/d/lyt/d_lyt_common_icon_material.h | 201 ++++++++ include/d/lyt/d_lyt_pause_disp_00.h | 1 - include/d/lyt/d_lyt_pause_disp_01.h | 35 ++ src/d/lyt/d_lyt_common_icon_item.cpp | 12 +- src/d/lyt/d_lyt_common_icon_material.cpp | 547 +++++++++++++++++++++ src/d/lyt/d_lyt_pause_disp_01.cpp | 34 ++ 10 files changed, 1006 insertions(+), 179 deletions(-) create mode 100644 include/d/lyt/d_lyt_common_icon_material.h create mode 100644 include/d/lyt/d_lyt_pause_disp_01.h create mode 100644 src/d/lyt/d_lyt_common_icon_material.cpp create mode 100644 src/d/lyt/d_lyt_pause_disp_01.cpp diff --git a/config/SOUE01/splits.txt b/config/SOUE01/splits.txt index 455ca8af..5685818f 100644 --- a/config/SOUE01/splits.txt +++ b/config/SOUE01/splits.txt @@ -410,6 +410,11 @@ d/lyt/d_lyt_do_button.cpp: d/lyt/d_lyt_common_icon_material.cpp: .text start:0x8010F820 end:0x80111718 .ctors start:0x804DB730 end:0x804DB734 + .rodata start:0x804E7330 end:0x804E7390 + .data start:0x8051ACD8 end:0x8051B070 + .sdata start:0x80572530 end:0x80572558 + .sdata2 start:0x80579DA8 end:0x80579DB8 + .bss start:0x805ACF88 end:0x805AD088 d/lyt/d_lyt_common_icon_item.cpp: .text start:0x80111720 end:0x80113ED8 @@ -561,6 +566,7 @@ d/lyt/d_lyt_pause_disp_00.cpp: d/lyt/d_lyt_pause_disp_01.cpp: .text start:0x8015EDF0 end:0x80161F98 .ctors start:0x804DB79C end:0x804DB7A0 + .data start:0x80525EE0 end:0x80526610 d/lyt/d_lyt_pause_info.cpp: .text start:0x80161FA0 end:0x80163568 diff --git a/config/SOUE01/symbols.txt b/config/SOUE01/symbols.txt index 2cc7c72f..82cba1f2 100644 --- a/config/SOUE01/symbols.txt +++ b/config/SOUE01/symbols.txt @@ -6568,90 +6568,90 @@ fn_8010F770 = .text:0x8010F770; // type:function size:0x8 fn_8010F780 = .text:0x8010F780; // type:function size:0x8 fn_8010F790 = .text:0x8010F790; // type:function size:0x8 fn_8010F7A0 = .text:0x8010F7A0; // type:function size:0x78 -fn_8010F820 = .text:0x8010F820; // type:function size:0x100 -fn_8010F920 = .text:0x8010F920; // type:function size:0x58 -fn_8010F980 = .text:0x8010F980; // type:function size:0x9C -fn_8010FA20 = .text:0x8010FA20; // type:function size:0x15C -fn_8010FB80 = .text:0x8010FB80; // type:function size:0x54 -fn_8010FBE0 = .text:0x8010FBE0; // type:function size:0xAC -fn_8010FC90 = .text:0x8010FC90; // type:function size:0xAC -fn_8010FD40 = .text:0x8010FD40; // type:function size:0x8C -fn_8010FDD0 = .text:0x8010FDD0; // type:function size:0xD4 -fn_8010FEB0 = .text:0x8010FEB0; // type:function size:0x88 -fn_8010FF40 = .text:0x8010FF40; // type:function size:0x2C -fn_8010FF70 = .text:0x8010FF70; // type:function size:0x2C -fn_8010FFA0 = .text:0x8010FFA0; // type:function size:0x7C -fn_80110020 = .text:0x80110020; // type:function size:0x34 -fn_80110060 = .text:0x80110060; // type:function size:0x100 -fn_80110160 = .text:0x80110160; // type:function size:0x58 -fn_801101C0 = .text:0x801101C0; // type:function size:0x9C -fn_80110260 = .text:0x80110260; // type:function size:0x15C -fn_801103C0 = .text:0x801103C0; // type:function size:0x54 -fn_80110420 = .text:0x80110420; // type:function size:0xAC -fn_801104D0 = .text:0x801104D0; // type:function size:0xAC -fn_80110580 = .text:0x80110580; // type:function size:0x8C -fn_80110610 = .text:0x80110610; // type:function size:0xD4 -fn_801106F0 = .text:0x801106F0; // type:function size:0x88 -fn_80110780 = .text:0x80110780; // type:function size:0x2C -fn_801107B0 = .text:0x801107B0; // type:function size:0x2C -fn_801107E0 = .text:0x801107E0; // type:function size:0x7C -fn_80110860 = .text:0x80110860; // type:function size:0x34 -fn_801108A0 = .text:0x801108A0; // type:function size:0x4 -fn_801108B0 = .text:0x801108B0; // type:function size:0x4 -fn_801108C0 = .text:0x801108C0; // type:function size:0x4 -fn_801108D0 = .text:0x801108D0; // type:function size:0x4 -fn_801108E0 = .text:0x801108E0; // type:function size:0x4 -fn_801108F0 = .text:0x801108F0; // type:function size:0x4 -fn_80110900 = .text:0x80110900; // type:function size:0x4 -fn_80110910 = .text:0x80110910; // type:function size:0x4 -fn_80110920 = .text:0x80110920; // type:function size:0x4 -fn_80110930 = .text:0x80110930; // type:function size:0x4 -fn_80110940 = .text:0x80110940; // type:function size:0x4 -fn_80110950 = .text:0x80110950; // type:function size:0x4 -fn_80110960 = .text:0x80110960; // type:function size:0x28 -fn_80110990 = .text:0x80110990; // type:function size:0x4C -fn_801109E0 = .text:0x801109E0; // type:function size:0x4C -fn_80110A30 = .text:0x80110A30; // type:function size:0x4C -fn_80110A80 = .text:0x80110A80; // type:function size:0x2C -fn_80110AB0 = .text:0x80110AB0; // type:function size:0x28 -fn_80110AE0 = .text:0x80110AE0; // type:function size:0x28 -fn_80110B10 = .text:0x80110B10; // type:function size:0x28 -fn_80110B40 = .text:0x80110B40; // type:function size:0x2C -fn_80110B70 = .text:0x80110B70; // type:function size:0x2C -fn_80110BA0 = .text:0x80110BA0; // type:function size:0x2C -fn_80110BD0 = .text:0x80110BD0; // type:function size:0x2C -fn_80110C00 = .text:0x80110C00; // type:function size:0x68 -fn_80110C70 = .text:0x80110C70; // type:function size:0x2C -fn_80110CA0 = .text:0x80110CA0; // type:function size:0x30 -fn_80110CD0 = .text:0x80110CD0; // type:function size:0x40 -fn_80110D10 = .text:0x80110D10; // type:function size:0x8 -fn_80110D20 = .text:0x80110D20; // type:function size:0x8 -fn_80110D30 = .text:0x80110D30; // type:function size:0x40 -fn_80110D70 = .text:0x80110D70; // type:function size:0x8 -fn_80110D80 = .text:0x80110D80; // type:function size:0x8 -fn_80110D90 = .text:0x80110D90; // type:function size:0x40 -fn_80110DD0 = .text:0x80110DD0; // type:function size:0x8 -fn_80110DE0 = .text:0x80110DE0; // type:function size:0x8 -fn_80110DF0 = .text:0x80110DF0; // type:function size:0x12C -fn_80110F20 = .text:0x80110F20; // type:function size:0x84 -fn_80110FB0 = .text:0x80110FB0; // type:function size:0x84 -fn_80111040 = .text:0x80111040; // type:function size:0xA4 -fn_801110F0 = .text:0x801110F0; // type:function size:0xA0 -fn_80111190 = .text:0x80111190; // type:function size:0x6C -fn_80111200 = .text:0x80111200; // type:function size:0x58 -fn_80111260 = .text:0x80111260; // type:function size:0x30 -fn_80111290 = .text:0x80111290; // type:function size:0x30 -fn_801112C0 = .text:0x801112C0; // type:function size:0x30 -LytCommonIconMaterial__initStates = .text:0x801112F0; // type:function size:0x338 -LytCommonIconMaterial__dtor = .text:0x80111630; // type:function size:0x58 -fn_80111690 = .text:0x80111690; // type:function size:0x88 +build__29dLytCommonIconMaterialPart1_cFPQ23d2d10ResAccIf_c = .text:0x8010F820; // type:function size:0x100 +remove__29dLytCommonIconMaterialPart1_cFv = .text:0x8010F920; // type:function size:0x58 +execute__29dLytCommonIconMaterialPart1_cFv = .text:0x8010F980; // type:function size:0x9C +reset__29dLytCommonIconMaterialPart1_cFv = .text:0x8010FA20; // type:function size:0x15C +setItem__29dLytCommonIconMaterialPart1_cFUc = .text:0x8010FB80; // type:function size:0x54 +realizeBg__29dLytCommonIconMaterialPart1_cFv = .text:0x8010FBE0; // type:function size:0xAC +realizeNumberV__29dLytCommonIconMaterialPart1_cFv = .text:0x8010FC90; // type:function size:0xAC +realizeShadow__29dLytCommonIconMaterialPart1_cFv = .text:0x8010FD40; // type:function size:0x8C +realizeItem__29dLytCommonIconMaterialPart1_cFUc = .text:0x8010FDD0; // type:function size:0xD4 +setNumber__29dLytCommonIconMaterialPart1_cFl = .text:0x8010FEB0; // type:function size:0x88 +setOn__29dLytCommonIconMaterialPart1_cFv = .text:0x8010FF40; // type:function size:0x2C +setOff__29dLytCommonIconMaterialPart1_cFv = .text:0x8010FF70; // type:function size:0x2C +isCursorOver__29dLytCommonIconMaterialPart1_cCFv = .text:0x8010FFA0; // type:function size:0x7C +setVisible__29dLytCommonIconMaterialPart1_cFb = .text:0x80110020; // type:function size:0x34 +build__29dLytCommonIconMaterialPart2_cFPQ23d2d10ResAccIf_c = .text:0x80110060; // type:function size:0x100 +remove__29dLytCommonIconMaterialPart2_cFv = .text:0x80110160; // type:function size:0x58 +execute__29dLytCommonIconMaterialPart2_cFv = .text:0x801101C0; // type:function size:0x9C +reset__29dLytCommonIconMaterialPart2_cFv = .text:0x80110260; // type:function size:0x15C +setItem__29dLytCommonIconMaterialPart2_cFUc = .text:0x801103C0; // type:function size:0x54 +realizeBg__29dLytCommonIconMaterialPart2_cFv = .text:0x80110420; // type:function size:0xAC +realizeNumberV__29dLytCommonIconMaterialPart2_cFv = .text:0x801104D0; // type:function size:0xAC +realizeShadow__29dLytCommonIconMaterialPart2_cFv = .text:0x80110580; // type:function size:0x8C +realizeItem__29dLytCommonIconMaterialPart2_cFUc = .text:0x80110610; // type:function size:0xD4 +setNumber__29dLytCommonIconMaterialPart2_cFl = .text:0x801106F0; // type:function size:0x88 +setOn__29dLytCommonIconMaterialPart2_cFv = .text:0x80110780; // type:function size:0x2C +setOff__29dLytCommonIconMaterialPart2_cFv = .text:0x801107B0; // type:function size:0x2C +isCursorOver__29dLytCommonIconMaterialPart2_cCFv = .text:0x801107E0; // type:function size:0x7C +setVisible__29dLytCommonIconMaterialPart2_cFb = .text:0x80110860; // type:function size:0x34 +initializeState_None__24dLytCommonIconMaterial_cFv = .text:0x801108A0; // type:function size:0x4 +executeState_None__24dLytCommonIconMaterial_cFv = .text:0x801108B0; // type:function size:0x4 +finalizeState_None__24dLytCommonIconMaterial_cFv = .text:0x801108C0; // type:function size:0x4 +initializeState_In__24dLytCommonIconMaterial_cFv = .text:0x801108D0; // type:function size:0x4 +executeState_In__24dLytCommonIconMaterial_cFv = .text:0x801108E0; // type:function size:0x4 +finalizeState_In__24dLytCommonIconMaterial_cFv = .text:0x801108F0; // type:function size:0x4 +initializeState_Wait__24dLytCommonIconMaterial_cFv = .text:0x80110900; // type:function size:0x4 +executeState_Wait__24dLytCommonIconMaterial_cFv = .text:0x80110910; // type:function size:0x4 +finalizeState_Wait__24dLytCommonIconMaterial_cFv = .text:0x80110920; // type:function size:0x4 +initializeState_Out__24dLytCommonIconMaterial_cFv = .text:0x80110930; // type:function size:0x4 +executeState_Out__24dLytCommonIconMaterial_cFv = .text:0x80110940; // type:function size:0x4 +finalizeState_Out__24dLytCommonIconMaterial_cFv = .text:0x80110950; // type:function size:0x4 +build__24dLytCommonIconMaterial_cFPQ23d2d10ResAccIf_c = .text:0x80110960; // type:function size:0x28 +build__24dLytCommonIconMaterial_cFPQ23d2d10ResAccIf_cUc = .text:0x80110990; // type:function size:0x4C +remove__24dLytCommonIconMaterial_cFv = .text:0x801109E0; // type:function size:0x4C +execute__24dLytCommonIconMaterial_cFv = .text:0x80110A30; // type:function size:0x4C +reset__24dLytCommonIconMaterial_cFv = .text:0x80110A80; // type:function size:0x2C +setBg__24dLytCommonIconMaterial_cFb = .text:0x80110AB0; // type:function size:0x28 +setHasNumber__24dLytCommonIconMaterial_cFb = .text:0x80110AE0; // type:function size:0x28 +setShadow__24dLytCommonIconMaterial_cFb = .text:0x80110B10; // type:function size:0x28 +setItem__24dLytCommonIconMaterial_cFUc = .text:0x80110B40; // type:function size:0x2C +setNumber__24dLytCommonIconMaterial_cFl = .text:0x80110B70; // type:function size:0x2C +setOn__24dLytCommonIconMaterial_cFv = .text:0x80110BA0; // type:function size:0x2C +setOff__24dLytCommonIconMaterial_cFv = .text:0x80110BD0; // type:function size:0x2C +isCursorOver__24dLytCommonIconMaterial_cCFv = .text:0x80110C00; // type:function size:0x68 +setVisible__24dLytCommonIconMaterial_cFb = .text:0x80110C70; // type:function size:0x2C +getBounding__24dLytCommonIconMaterial_cCFv = .text:0x80110CA0; // type:function size:0x30 +getName__24dLytCommonIconMaterial_cCFv = .text:0x80110CD0; // type:function size:0x40 +getName__29dLytCommonIconMaterialPart1_cCFv = .text:0x80110D10; // type:function size:0x8 +getName__29dLytCommonIconMaterialPart2_cCFv = .text:0x80110D20; // type:function size:0x8 +getLyt__24dLytCommonIconMaterial_cFv = .text:0x80110D30; // type:function size:0x40 +getLyt__29dLytCommonIconMaterialPart1_cFv = .text:0x80110D70; // type:function size:0x8 +getLyt__29dLytCommonIconMaterialPart2_cFv = .text:0x80110D80; // type:function size:0x8 +getPane__24dLytCommonIconMaterial_cFv = .text:0x80110D90; // type:function size:0x40 +getPane__29dLytCommonIconMaterialPart1_cFv = .text:0x80110DD0; // type:function size:0x8 +getPane__29dLytCommonIconMaterialPart2_cFv = .text:0x80110DE0; // type:function size:0x8 +__dt__24dLytCommonIconMaterial_cFv = .text:0x80110DF0; // type:function size:0x12C +__dt__29dLytCommonIconMaterialPart2_cFv = .text:0x80110F20; // type:function size:0x84 +__dt__29dLytCommonIconMaterialPart1_cFv = .text:0x80110FB0; // type:function size:0x84 +__dt__63sFStateMgr_c<24dLytCommonIconMaterial_c,20sStateMethodUsr_FI_c>Fv = .text:0x80111040; // type:function size:0xA4 +__dt__93sStateMgr_c<24dLytCommonIconMaterial_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x801110F0; // type:function size:0xA0 +__dt__40sFStateFct_c<24dLytCommonIconMaterial_c>Fv = .text:0x80111190; // type:function size:0x6C +__dt__37sFState_c<24dLytCommonIconMaterial_c>Fv = .text:0x80111200; // type:function size:0x58 +finalizeState__39sFStateID_c<24dLytCommonIconMaterial_c>CFR24dLytCommonIconMaterial_c = .text:0x80111260; // type:function size:0x30 +executeState__39sFStateID_c<24dLytCommonIconMaterial_c>CFR24dLytCommonIconMaterial_c = .text:0x80111290; // type:function size:0x30 +initializeState__39sFStateID_c<24dLytCommonIconMaterial_c>CFR24dLytCommonIconMaterial_c = .text:0x801112C0; // type:function size:0x30 +__sinit_\d_lyt_common_icon_material_cpp = .text:0x801112F0; // type:function size:0x338 scope:local +__dt__39sFStateID_c<24dLytCommonIconMaterial_c>Fv = .text:0x80111630; // type:function size:0x58 +isSameName__39sFStateID_c<24dLytCommonIconMaterial_c>CFPCc = .text:0x80111690; // type:function size:0x88 build__25dLytCommonIconItemPart1_cFPQ23d2d10ResAccIf_c = .text:0x80111720; // type:function size:0x100 remove__25dLytCommonIconItemPart1_cFv = .text:0x80111820; // type:function size:0x58 execute__25dLytCommonIconItemPart1_cFv = .text:0x80111880; // type:function size:0xC4 reset__25dLytCommonIconItemPart1_cFv = .text:0x80111950; // type:function size:0x198 setItem__25dLytCommonIconItemPart1_cFUc = .text:0x80111AF0; // type:function size:0x5C realizeUnk__25dLytCommonIconItemPart1_cFv = .text:0x80111B50; // type:function size:0x4 -realizeNumber__25dLytCommonIconItemPart1_cFv = .text:0x80111B60; // type:function size:0x8C +realizeNumberV__25dLytCommonIconItemPart1_cFv = .text:0x80111B60; // type:function size:0x8C realizeSize__25dLytCommonIconItemPart1_cFv = .text:0x80111BF0; // type:function size:0x8C realizeBocoburin__25dLytCommonIconItemPart1_cFv = .text:0x80111C80; // type:function size:0x8C realizeItem__25dLytCommonIconItemPart1_cFUc = .text:0x80111D10; // type:function size:0xD4 @@ -6670,7 +6670,7 @@ reset__25dLytCommonIconItemPart2_cFv = .text:0x80112300; // type:function size:0 setShieldOnOff__25dLytCommonIconItemPart2_cFb = .text:0x80112520; // type:function size:0x54 setItem__25dLytCommonIconItemPart2_cFUc = .text:0x80112580; // type:function size:0x130 realizeUnk__25dLytCommonIconItemPart2_cFv = .text:0x801126B0; // type:function size:0x4 -realizeNumber__25dLytCommonIconItemPart2_cFv = .text:0x801126C0; // type:function size:0x8C +realizeNumberV__25dLytCommonIconItemPart2_cFv = .text:0x801126C0; // type:function size:0x8C realizeSize__25dLytCommonIconItemPart2_cFv = .text:0x80112750; // type:function size:0x8C realizeBocoburin__25dLytCommonIconItemPart2_cFv = .text:0x801127E0; // type:function size:0x8C realizeItem__25dLytCommonIconItemPart2_cFUc = .text:0x80112870; // type:function size:0xD4 @@ -8862,42 +8862,42 @@ initializeState__32sFStateID_c<17dLytPauseDisp00_c>CFR17dLytPauseDisp00_c = .tex __sinit_\d_lyt_pause_disp_00_cpp = .text:0x8015E790; // type:function size:0x56C scope:local __dt__32sFStateID_c<17dLytPauseDisp00_c>Fv = .text:0x8015ED00; // type:function size:0x58 isSameName__32sFStateID_c<17dLytPauseDisp00_c>CFPCc = .text:0x8015ED60; // type:function size:0x88 -LytPauseDisp01__ctor = .text:0x8015EDF0; // type:function size:0x160 -fn_8015EF50 = .text:0x8015EF50; // type:function size:0xA4 -fn_8015F000 = .text:0x8015F000; // type:function size:0xA0 -fn_8015F0A0 = .text:0x8015F0A0; // type:function size:0x6C -fn_8015F110 = .text:0x8015F110; // type:function size:0x58 -fn_8015F170 = .text:0x8015F170; // type:function size:0x1A0 +__ct__17dLytPauseDisp01_cFv = .text:0x8015EDF0; // type:function size:0x160 +__dt__56sFStateMgr_c<17dLytPauseDisp01_c,20sStateMethodUsr_FI_c>Fv = .text:0x8015EF50; // type:function size:0xA4 +__dt__86sStateMgr_c<17dLytPauseDisp01_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x8015F000; // type:function size:0xA0 +__dt__33sFStateFct_c<17dLytPauseDisp01_c>Fv = .text:0x8015F0A0; // type:function size:0x6C +__dt__30sFState_c<17dLytPauseDisp01_c>Fv = .text:0x8015F110; // type:function size:0x58 +__ct__24dLytCommonIconMaterial_cFv = .text:0x8015F170; // type:function size:0x1A0 fn_8015F310 = .text:0x8015F310; // type:function size:0x210 -fn_8015F520 = .text:0x8015F520; // type:function size:0x10 +changeState__86sStateMgr_c<17dLytPauseDisp01_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>FRC12sStateIDIf_c = .text:0x8015F520; // type:function size:0x10 fn_8015F530 = .text:0x8015F530; // type:function size:0xFC fn_8015F630 = .text:0x8015F630; // type:function size:0xF4 -fn_8015F730 = .text:0x8015F730; // type:function size:0x10 -fn_8015F740 = .text:0x8015F740; // type:function size:0x10 +executeState__86sStateMgr_c<17dLytPauseDisp01_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x8015F730; // type:function size:0x10 +getStateID__86sStateMgr_c<17dLytPauseDisp01_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x8015F740; // type:function size:0x10 fn_8015F750 = .text:0x8015F750; // type:function size:0x38 fn_8015F790 = .text:0x8015F790; // type:function size:0x14 fn_8015F7B0 = .text:0x8015F7B0; // type:function size:0x14 fn_8015F7D0 = .text:0x8015F7D0; // type:function size:0x14 fn_8015F7F0 = .text:0x8015F7F0; // type:function size:0x10 fn_8015F800 = .text:0x8015F800; // type:function size:0x10 -LytPauseDisp01__stateNoneEnter = .text:0x8015F810; // type:function size:0x1D4 -LytPauseDisp01__stateNoneUpdate = .text:0x8015F9F0; // type:function size:0x34 -LytPauseDisp01__stateNoneLeave = .text:0x8015FA30; // type:function size:0x4 -LytPauseDisp01__stateInEnter = .text:0x8015FA40; // type:function size:0xF0 -LytPauseDisp01__stateInUpdate = .text:0x8015FB30; // type:function size:0xE4 -LytPauseDisp01__stateInLeave = .text:0x8015FC20; // type:function size:0x98 -LytPauseDisp01__stateWaitEnter = .text:0x8015FCC0; // type:function size:0x10 -LytPauseDisp01__stateWaitUpdate = .text:0x8015FCD0; // type:function size:0xF0 -LytPauseDisp01__stateWaitLeave = .text:0x8015FDC0; // type:function size:0x4 -LytPauseDisp01__stateSelectEnter = .text:0x8015FDD0; // type:function size:0x10 -LytPauseDisp01__stateSelectUpdate = .text:0x8015FDE0; // type:function size:0x2C -LytPauseDisp01__stateSelectLeave = .text:0x8015FE10; // type:function size:0x10 -LytPauseDisp01__stateGetDemoEnter = .text:0x8015FE20; // type:function size:0x1C -LytPauseDisp01__stateGetDemoUpdate = .text:0x8015FE40; // type:function size:0x694 -LytPauseDisp01__stateGetDemoLeave = .text:0x801604E0; // type:function size:0x4 -LytPauseDisp01__stateOutEnter = .text:0x801604F0; // type:function size:0x94 -LytPauseDisp01__stateOutUpdate = .text:0x80160590; // type:function size:0xE0 -LytPauseDisp01__stateOutLeave = .text:0x80160670; // type:function size:0x4 +initializeState_None__17dLytPauseDisp01_cFv = .text:0x8015F810; // type:function size:0x1D4 +executeState_None__17dLytPauseDisp01_cFv = .text:0x8015F9F0; // type:function size:0x34 +finalizeState_None__17dLytPauseDisp01_cFv = .text:0x8015FA30; // type:function size:0x4 +initializeState_In__17dLytPauseDisp01_cFv = .text:0x8015FA40; // type:function size:0xF0 +executeState_In__17dLytPauseDisp01_cFv = .text:0x8015FB30; // type:function size:0xE4 +finalizeState_In__17dLytPauseDisp01_cFv = .text:0x8015FC20; // type:function size:0x98 +initializeState_Wait__17dLytPauseDisp01_cFv = .text:0x8015FCC0; // type:function size:0x10 +executeState_Wait__17dLytPauseDisp01_cFv = .text:0x8015FCD0; // type:function size:0xF0 +finalizeState_Wait__17dLytPauseDisp01_cFv = .text:0x8015FDC0; // type:function size:0x4 +initializeState_Select__17dLytPauseDisp01_cFv = .text:0x8015FDD0; // type:function size:0x10 +executeState_Select__17dLytPauseDisp01_cFv = .text:0x8015FDE0; // type:function size:0x2C +finalizeState_Select__17dLytPauseDisp01_cFv = .text:0x8015FE10; // type:function size:0x10 +initializeState_GetDemo__17dLytPauseDisp01_cFv = .text:0x8015FE20; // type:function size:0x1C +executeState_GetDemo__17dLytPauseDisp01_cFv = .text:0x8015FE40; // type:function size:0x694 +finalizeState_GetDemo__17dLytPauseDisp01_cFv = .text:0x801604E0; // type:function size:0x4 +initializeState_Out__17dLytPauseDisp01_cFv = .text:0x801604F0; // type:function size:0x94 +executeState_Out__17dLytPauseDisp01_cFv = .text:0x80160590; // type:function size:0xE0 +finalizeState_Out__17dLytPauseDisp01_cFv = .text:0x80160670; // type:function size:0x4 fn_80160680 = .text:0x80160680; // type:function size:0x68 fn_801606F0 = .text:0x801606F0; // type:function size:0x10 LytPauseDisp01__setupPauseMenuDisplayMaybe = .text:0x80160700; // type:function size:0x3E0 @@ -8917,37 +8917,37 @@ fn_80161560 = .text:0x80161560; // type:function size:0x14 fn_80161580 = .text:0x80161580; // type:function size:0x10 fn_80161590 = .text:0x80161590; // type:function size:0x14 fn_801615B0 = .text:0x801615B0; // type:function size:0x130 -fn_801616E0 = .text:0x801616E0; // type:function size:0x10 -fn_801616F0 = .text:0x801616F0; // type:function size:0x10 -fn_80161700 = .text:0x80161700; // type:function size:0x60 -fn_80161760 = .text:0x80161760; // type:function size:0xC -fn_80161770 = .text:0x80161770; // type:function size:0x60 -fn_801617D0 = .text:0x801617D0; // type:function size:0xC -fn_801617E0 = .text:0x801617E0; // type:function size:0x1C -fn_80161800 = .text:0x80161800; // type:function size:0x1C -fn_80161820 = .text:0x80161820; // type:function size:0x1C -fn_80161840 = .text:0x80161840; // type:function size:0x1C -fn_80161860 = .text:0x80161860; // type:function size:0x1C -fn_80161880 = .text:0x80161880; // type:function size:0x1C -fn_801618A0 = .text:0x801618A0; // type:function size:0x10 -fn_801618B0 = .text:0x801618B0; // type:function size:0x10 -fn_801618C0 = .text:0x801618C0; // type:function size:0x10 -fn_801618D0 = .text:0x801618D0; // type:function size:0x10 -fn_801618E0 = .text:0x801618E0; // type:function size:0x10 -fn_801618F0 = .text:0x801618F0; // type:function size:0x10 -fn_80161900 = .text:0x80161900; // type:function size:0x10 -fn_80161910 = .text:0x80161910; // type:function size:0x10 -fn_80161920 = .text:0x80161920; // type:function size:0x10 -fn_80161930 = .text:0x80161930; // type:function size:0x10 -fn_80161940 = .text:0x80161940; // type:function size:0x10 -fn_80161950 = .text:0x80161950; // type:function size:0x10 -fn_80161960 = .text:0x80161960; // type:function size:0x10 -fn_80161970 = .text:0x80161970; // type:function size:0x30 -fn_801619A0 = .text:0x801619A0; // type:function size:0x30 -fn_801619D0 = .text:0x801619D0; // type:function size:0x30 -LytPauseDisp01__initStates = .text:0x80161A00; // type:function size:0x4B0 -LytPauseDisp01__state_dtor = .text:0x80161EB0; // type:function size:0x58 -fn_80161F10 = .text:0x80161F10; // type:function size:0x88 +changeState__93sStateMgr_c<24dLytCommonIconMaterial_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>FRC12sStateIDIf_c = .text:0x801616E0; // type:function size:0x10 +getStateID__93sStateMgr_c<24dLytCommonIconMaterial_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x801616F0; // type:function size:0x10 +build__33sFStateFct_c<17dLytPauseDisp01_c>FRC12sStateIDIf_c = .text:0x80161700; // type:function size:0x60 +dispose__33sFStateFct_c<17dLytPauseDisp01_c>FRP10sStateIf_c = .text:0x80161760; // type:function size:0xC +build__40sFStateFct_c<24dLytCommonIconMaterial_c>FRC12sStateIDIf_c = .text:0x80161770; // type:function size:0x60 +dispose__40sFStateFct_c<24dLytCommonIconMaterial_c>FRP10sStateIf_c = .text:0x801617D0; // type:function size:0xC +initialize__30sFState_c<17dLytPauseDisp01_c>Fv = .text:0x801617E0; // type:function size:0x1C +execute__30sFState_c<17dLytPauseDisp01_c>Fv = .text:0x80161800; // type:function size:0x1C +finalize__30sFState_c<17dLytPauseDisp01_c>Fv = .text:0x80161820; // type:function size:0x1C +initialize__37sFState_c<24dLytCommonIconMaterial_c>Fv = .text:0x80161840; // type:function size:0x1C +execute__37sFState_c<24dLytCommonIconMaterial_c>Fv = .text:0x80161860; // type:function size:0x1C +finalize__37sFState_c<24dLytCommonIconMaterial_c>Fv = .text:0x80161880; // type:function size:0x1C +initializeState__86sStateMgr_c<17dLytPauseDisp01_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x801618A0; // type:function size:0x10 +finalizeState__86sStateMgr_c<17dLytPauseDisp01_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x801618B0; // type:function size:0x10 +refreshState__86sStateMgr_c<17dLytPauseDisp01_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x801618C0; // type:function size:0x10 +getState__86sStateMgr_c<17dLytPauseDisp01_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x801618D0; // type:function size:0x10 +getNewStateID__86sStateMgr_c<17dLytPauseDisp01_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x801618E0; // type:function size:0x10 +getOldStateID__86sStateMgr_c<17dLytPauseDisp01_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x801618F0; // type:function size:0x10 +initializeState__93sStateMgr_c<24dLytCommonIconMaterial_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x80161900; // type:function size:0x10 +executeState__93sStateMgr_c<24dLytCommonIconMaterial_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x80161910; // type:function size:0x10 +finalizeState__93sStateMgr_c<24dLytCommonIconMaterial_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x80161920; // type:function size:0x10 +refreshState__93sStateMgr_c<24dLytCommonIconMaterial_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x80161930; // type:function size:0x10 +getState__93sStateMgr_c<24dLytCommonIconMaterial_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x80161940; // type:function size:0x10 +getNewStateID__93sStateMgr_c<24dLytCommonIconMaterial_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x80161950; // type:function size:0x10 +getOldStateID__93sStateMgr_c<24dLytCommonIconMaterial_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x80161960; // type:function size:0x10 +finalizeState__32sFStateID_c<17dLytPauseDisp01_c>CFR17dLytPauseDisp01_c = .text:0x80161970; // type:function size:0x30 +executeState__32sFStateID_c<17dLytPauseDisp01_c>CFR17dLytPauseDisp01_c = .text:0x801619A0; // type:function size:0x30 +initializeState__32sFStateID_c<17dLytPauseDisp01_c>CFR17dLytPauseDisp01_c = .text:0x801619D0; // type:function size:0x30 +__sinit_\d_lyt_pause_disp_01_cpp = .text:0x80161A00; // type:function size:0x4B0 +__dt__32sFStateID_c<17dLytPauseDisp01_c>Fv = .text:0x80161EB0; // type:function size:0x58 +isSameName__32sFStateID_c<17dLytPauseDisp01_c>CFPCc = .text:0x80161F10; // type:function size:0x88 LytPauseInfo__ctor = .text:0x80161FA0; // type:function size:0xCC fn_80162070 = .text:0x80162070; // type:function size:0xA4 fn_80162120 = .text:0x80162120; // type:function size:0xA0 @@ -31973,31 +31973,31 @@ lbl_8051AC80 = .data:0x8051AC80; // type:object size:0x14 lbl_8051AC94 = .data:0x8051AC94; // type:object size:0x10 lbl_8051ACA4 = .data:0x8051ACA4; // type:object size:0x34 lbl_8051ACD8 = .data:0x8051ACD8; // type:object size:0x18 data:string -lbl_8051ACF0 = .data:0x8051ACF0; // type:object size:0xC +lbl_8051ACF0 = .data:0x8051ACF0; // type:object size:0x9 data:string lbl_8051ACFC = .data:0x8051ACFC; // type:object size:0x1C data:string -lbl_8051AD18 = .data:0x8051AD18; // type:object size:0x10 -lbl_8051AD28 = .data:0x8051AD28; // type:object size:0x1C -lbl_8051AD44 = .data:0x8051AD44; // type:object size:0xC -lbl_8051AD50 = .data:0x8051AD50; // type:object size:0x1C +lbl_8051AD18 = .data:0x8051AD18; // type:object size:0xD data:string +lbl_8051AD28 = .data:0x8051AD28; // type:object size:0x19 data:string +lbl_8051AD44 = .data:0x8051AD44; // type:object size:0xA data:string +lbl_8051AD50 = .data:0x8051AD50; // type:object size:0x1B data:string lbl_8051AD6C = .data:0x8051AD6C; // type:object size:0xC data:string -lbl_8051AD78 = .data:0x8051AD78; // type:object size:0x20 -lbl_8051AD98 = .data:0x8051AD98; // type:object size:0x10 -lbl_8051ADA8 = .data:0x8051ADA8; // type:object size:0x1C -lbl_8051ADC4 = .data:0x8051ADC4; // type:object size:0xC +lbl_8051AD78 = .data:0x8051AD78; // type:object size:0x1E data:string +lbl_8051AD98 = .data:0x8051AD98; // type:object size:0xF data:string +lbl_8051ADA8 = .data:0x8051ADA8; // type:object size:0x1A data:string +lbl_8051ADC4 = .data:0x8051ADC4; // type:object size:0x9 data:string lbl_8051ADD0 = .data:0x8051ADD0; // type:object size:0x10 data:string -lbl_8051ADE0 = .data:0x8051ADE0; // type:object size:0x10 -lbl_8051ADF0 = .data:0x8051ADF0; // type:object size:0xC +lbl_8051ADE0 = .data:0x8051ADE0; // type:object size:0xF data:string +lbl_8051ADF0 = .data:0x8051ADF0; // type:object size:0x9 data:string lbl_8051ADFC = .data:0x8051ADFC; // type:object size:0x14 data:string lbl_8051AE10 = .data:0x8051AE10; // type:object size:0x18 data:string lbl_8051AE28 = .data:0x8051AE28; // type:object size:0x1C data:string -lbl_8051AE44 = .data:0x8051AE44; // type:object size:0x1C -lbl_8051AE60 = .data:0x8051AE60; // type:object size:0x1C -lbl_8051AE7C = .data:0x8051AE7C; // type:object size:0x20 -lbl_8051AE9C = .data:0x8051AE9C; // type:object size:0x1C -lbl_8051AEB8 = .data:0x8051AEB8; // type:object size:0xC +lbl_8051AE44 = .data:0x8051AE44; // type:object size:0x1A data:string +lbl_8051AE60 = .data:0x8051AE60; // type:object size:0x1B data:string +lbl_8051AE7C = .data:0x8051AE7C; // type:object size:0x1E data:string +lbl_8051AE9C = .data:0x8051AE9C; // type:object size:0x1A data:string +lbl_8051AEB8 = .data:0x8051AEB8; // type:object size:0xB data:string lbl_8051AEC4 = .data:0x8051AEC4; // type:object size:0x14 data:string -lbl_8051AED8 = .data:0x8051AED8; // type:object size:0x164 -lbl_8051B03C = .data:0x8051B03C; // type:object size:0x34 +__vt__24dLytCommonIconMaterial_c = .data:0x8051AED8; // type:object size:0x34 +__vt__39sFStateID_c<24dLytCommonIconMaterial_c> = .data:0x8051B03C; // type:object size:0x34 lbl_8051B070 = .data:0x8051B070; // type:object size:0x19 data:string lbl_8051B08C = .data:0x8051B08C; // type:object size:0xA data:string lbl_8051B098 = .data:0x8051B098; // type:object size:0x1E data:string @@ -33241,17 +33241,17 @@ lbl_805261C0 = .data:0x805261C0; // type:object size:0xC lbl_805261CC = .data:0x805261CC; // type:object size:0xC lbl_805261D8 = .data:0x805261D8; // type:object size:0xC lbl_805261E4 = .data:0x805261E4; // type:object size:0x7C -lbl_80526260 = .data:0x80526260; // type:object size:0x10 -lbl_80526270 = .data:0x80526270; // type:object size:0x30 -lbl_805262A0 = .data:0x805262A0; // type:object size:0x30 -lbl_805262D0 = .data:0x805262D0; // type:object size:0x18 -lbl_805262E8 = .data:0x805262E8; // type:object size:0x18 -lbl_80526300 = .data:0x80526300; // type:object size:0x30 -lbl_80526330 = .data:0x80526330; // type:object size:0x30 -lbl_80526360 = .data:0x80526360; // type:object size:0x18 -lbl_80526378 = .data:0x80526378; // type:object size:0x18 -lbl_80526390 = .data:0x80526390; // type:object size:0x18 -lbl_805263A8 = .data:0x805263A8; // type:object size:0x230 +__vt__17dLytPauseDisp01_c = .data:0x80526260; // type:object size:0x10 +__vt__56sFStateMgr_c<17dLytPauseDisp01_c,20sStateMethodUsr_FI_c> = .data:0x80526270; // type:object size:0x30 +__vt__86sStateMgr_c<17dLytPauseDisp01_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c> = .data:0x805262A0; // type:object size:0x30 +__vt__33sFStateFct_c<17dLytPauseDisp01_c> = .data:0x805262D0; // type:object size:0x18 +__vt__30sFState_c<17dLytPauseDisp01_c> = .data:0x805262E8; // type:object size:0x18 +__vt__63sFStateMgr_c<24dLytCommonIconMaterial_c,20sStateMethodUsr_FI_c> = .data:0x80526300; // type:object size:0x30 +__vt__93sStateMgr_c<24dLytCommonIconMaterial_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c> = .data:0x80526330; // type:object size:0x30 +__vt__40sFStateFct_c<24dLytCommonIconMaterial_c> = .data:0x80526360; // type:object size:0x18 +__vt__37sFState_c<24dLytCommonIconMaterial_c> = .data:0x80526378; // type:object size:0x18 +__vt__29dLytCommonIconMaterialPart2_c = .data:0x80526390; // type:object size:0x18 +__vt__29dLytCommonIconMaterialPart1_c = .data:0x805263A8; // type:object size:0x230 lbl_805265D8 = .data:0x805265D8; // type:object size:0x38 lbl_80526610 = .data:0x80526610; // type:object size:0x18 lbl_80526628 = .data:0x80526628; // type:object size:0xC @@ -38184,9 +38184,9 @@ lbl_80572520 = .sdata:0x80572520; // type:object size:0x8 data:string lbl_80572528 = .sdata:0x80572528; // type:object size:0x8 data:4byte lbl_80572530 = .sdata:0x80572530; // type:object size:0x8 data:4byte lbl_80572538 = .sdata:0x80572538; // type:object size:0x4 data:4byte -lbl_8057253C = .sdata:0x8057253C; // type:object size:0xC +lbl_8057253C = .sdata:0x8057253C; // type:object size:0x6 data:wstring lbl_80572548 = .sdata:0x80572548; // type:object size:0x8 data:4byte -lbl_80572550 = .sdata:0x80572550; // type:object size:0x8 data:4byte +lbl_80572550 = .sdata:0x80572550; // type:object size:0x4 data:4byte part1TextBoxes = .sdata:0x80572558; // type:object size:0x8 data:4byte part1Bounding = .sdata:0x80572560; // type:object size:0x4 data:4byte lbl_80572564 = .sdata:0x80572564; // type:object size:0x6 data:wstring @@ -48801,7 +48801,11 @@ LytDoButton__STATE_INVISIBLE_TIME_CNT = .bss:0x805ACE88; // type:object size:0x8 LytDoButton__STATE_WAIT = .bss:0x805ACF08; // type:object size:0x40 data:4byte LytDoButton__STATE_OUT = .bss:0x805ACF48; // type:object size:0x30 data:4byte lbl_805ACF78 = .bss:0x805ACF78; // type:object size:0x10 -lbl_805ACF88 = .bss:0x805ACF88; // type:object size:0x100 +lbl_805ACF88 = .bss:0x805ACF88; // type:object size:0xC +StateID_None__24dLytCommonIconMaterial_c = .bss:0x805ACF98; // type:object size:0x30 +StateID_In__24dLytCommonIconMaterial_c = .bss:0x805ACFD8; // type:object size:0x30 +StateID_Wait__24dLytCommonIconMaterial_c = .bss:0x805AD018; // type:object size:0x30 +StateID_Out__24dLytCommonIconMaterial_c = .bss:0x805AD058; // type:object size:0x30 lbl_805AD088 = .bss:0x805AD088; // type:object size:0xC StateID_None__20dLytCommonIconItem_c = .bss:0x805AD098; // type:object size:0x30 StateID_In__20dLytCommonIconItem_c = .bss:0x805AD0D8; // type:object size:0x30 diff --git a/configure.py b/configure.py index eff63851..4e07a0f9 100644 --- a/configure.py +++ b/configure.py @@ -401,7 +401,7 @@ config.libs = [ Object(NonMatching, "d/lyt/meter/d_lyt_meter_heart.cpp"), Object(NonMatching, "d/lyt/meter/d_lyt_meter_shield_gauge.cpp"), Object(NonMatching, "d/lyt/d_lyt_do_button.cpp"), - Object(NonMatching, "d/lyt/d_lyt_common_icon_material.cpp"), + Object(Matching, "d/lyt/d_lyt_common_icon_material.cpp"), Object(Matching, "d/lyt/d_lyt_common_icon_item.cpp"), Object(NonMatching, "d/lyt/d_lyt_msg_window.cpp"), Object(NonMatching, "d/lyt/d_lyt_msg_window_select_btn.cpp"), @@ -426,6 +426,7 @@ config.libs = [ Object(Matching, "d/lyt/d_lyt_sky_gauge.cpp"), Object(NonMatching, "d/lyt/d_lyt_boss_gauge.cpp"), Object(NonMatching, "d/lyt/d_lyt_pause_disp_00.cpp"), + Object(NonMatching, "d/lyt/d_lyt_pause_disp_01.cpp"), Object(Matching, "d/lyt/d_lyt_fader.cpp"), Object(Matching, "d/lyt/d_screen_fader.cpp"), Object(NonMatching, "d/a/d_a_insect.cpp"), diff --git a/include/d/lyt/d_lyt_common_icon_item.h b/include/d/lyt/d_lyt_common_icon_item.h index 85e98a39..7e5712c7 100644 --- a/include/d/lyt/d_lyt_common_icon_item.h +++ b/include/d/lyt/d_lyt_common_icon_item.h @@ -61,7 +61,7 @@ public: private: void realizeUnk(); - void realizeNumber(); + void realizeNumberV(); void realizeSize(); void realizeBocoburin(); void realizeItem(u8 item); @@ -137,7 +137,7 @@ public: private: void realizeUnk(); - void realizeNumber(); + void realizeNumberV(); void realizeSize(); void realizeBocoburin(); void realizeItem(u8 item); diff --git a/include/d/lyt/d_lyt_common_icon_material.h b/include/d/lyt/d_lyt_common_icon_material.h new file mode 100644 index 00000000..525004d8 --- /dev/null +++ b/include/d/lyt/d_lyt_common_icon_material.h @@ -0,0 +1,201 @@ +#ifndef D_LYT_COMMON_ICON_MATERIAL_H +#define D_LYT_COMMON_ICON_MATERIAL_H + +#include "common.h" +#include "d/lyt/d2d.h" +#include "d/lyt/d_structd.h" +#include "d/lyt/d_textbox.h" +#include "nw4r/lyt/lyt_bounding.h" +#include "s/s_State.hpp" + +class dLytCommonIconMaterialPartBase_c { +public: + virtual ~dLytCommonIconMaterialPartBase_c() {} + virtual nw4r::lyt::Pane *getPane() = 0; + virtual d2d::LytBase_c *getLyt() = 0; + virtual const char *getName() const = 0; +}; + +/** Material - Bug */ +class dLytCommonIconMaterialPart1_c : public dLytCommonIconMaterialPartBase_c { +public: + dLytCommonIconMaterialPart1_c() {} + virtual ~dLytCommonIconMaterialPart1_c() {} + 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(); + } + + bool build(d2d::ResAccIf_c *resAcc); + bool remove(); + bool execute(); + void reset(); + void setItem(u8 item); + + void setNumber(s32 number); + void setOn(); + void setOff(); + + bool isCursorOver() const; + void setVisible(bool visible); + + const nw4r::lyt::Bounding *getBounding() const { + return mpBounding; + } + + void setBg(bool bg) { + mBg = bg; + } + void setHasNumber(bool hasNumber) { + mNumberV = hasNumber; + } + void setShadow(bool shadow) { + mShadow = shadow; + } + +private: + void realizeBg(); + void realizeNumberV(); + void realizeShadow(); + void realizeItem(u8 item); + + /* 0x004 */ d2d::dLytSub mLyt; + /* 0x098 */ d2d::AnmGroup_c mAnm[6]; + /* 0x218 */ dTextBox_c *mpTextBoxes[2]; + /* 0x220 */ nw4r::lyt::Bounding *mpBounding; + /* 0x224 */ d2d::dLytStructD mCursor; + /* 0x24C */ u8 mItem; + /* 0x24D */ u8 _0x24D[0x254 - 0x24D]; + /* 0x254 */ wchar_t mNumberBuf[16]; + /* 0x274 */ bool mBg; + /* 0x275 */ bool mNumberV; + /* 0x276 */ bool mShadow; +}; + +/** Material - Treasure */ +class dLytCommonIconMaterialPart2_c : public dLytCommonIconMaterialPartBase_c { +public: + dLytCommonIconMaterialPart2_c() {} + virtual ~dLytCommonIconMaterialPart2_c() {} + 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(); + } + + bool build(d2d::ResAccIf_c *resAcc); + bool remove(); + bool execute(); + void reset(); + void setItem(u8 item); + + void setNumber(s32 number); + void setOn(); + void setOff(); + + bool isCursorOver() const; + void setVisible(bool visible); + + const nw4r::lyt::Bounding *getBounding() const { + return mpBounding; + } + + void setBg(bool bg) { + mBg = bg; + } + void setHasNumber(bool hasNumber) { + mNumberV = hasNumber; + } + void setShadow(bool shadow) { + mShadow = shadow; + } + +private: + void realizeBg(); + void realizeNumberV(); + void realizeShadow(); + void realizeItem(u8 item); + + /* 0x004 */ d2d::dLytSub mLyt; + /* 0x098 */ d2d::AnmGroup_c mAnm[6]; + /* 0x218 */ dTextBox_c *mpTextBoxes[2]; + /* 0x220 */ nw4r::lyt::Bounding *mpBounding; + /* 0x224 */ d2d::dLytStructD mCursor; + /* 0x24C */ u8 mItem; + /* 0x24D */ u8 _0x24D[0x254 - 0x24D]; + /* 0x254 */ wchar_t mNumberBuf[16]; + /* 0x274 */ bool mBg; + /* 0x275 */ bool mNumberV; + /* 0x276 */ bool mShadow; +}; + +class dLytCommonIconMaterial_c : public d2d::dSubPane { +public: + dLytCommonIconMaterial_c() : mStateMgr(*this, sStateID::null), mPart(2) {} + ~dLytCommonIconMaterial_c() {} + + virtual bool build(d2d::ResAccIf_c *resAcc) override; + virtual bool remove() override; + virtual bool execute() override; + virtual nw4r::lyt::Pane *getPane() override { + switch (mPart) { + case 0: return mPart1.getPane(); + case 1: return mPart2.getPane(); + default: return nullptr; + } + } + virtual d2d::LytBase_c *getLyt() override { + switch (mPart) { + case 0: return mPart1.getLyt(); + case 1: return mPart2.getLyt(); + default: return nullptr; + } + } + virtual const char *getName() const override { + switch (mPart) { + case 0: return mPart1.getName(); + case 1: return mPart2.getName(); + default: return nullptr; + } + } + + bool build(d2d::ResAccIf_c *resAcc, u8 variant); + + void reset(); + + void setBg(bool bg); + void setHasNumber(bool hasNumber); + void setShadow(bool shadow); + void setItem(u8 item); + void setNumber(s32 number); + void setOn(); + void setOff(); + + bool isCursorOver() const; + void setVisible(bool visible); + + + const nw4r::lyt::Bounding *getBounding() const; + +private: + STATE_FUNC_DECLARE(dLytCommonIconMaterial_c, None); + STATE_FUNC_DECLARE(dLytCommonIconMaterial_c, In); + STATE_FUNC_DECLARE(dLytCommonIconMaterial_c, Wait); + STATE_FUNC_DECLARE(dLytCommonIconMaterial_c, Out); + + /* 0x008 */ UI_STATE_MGR_DECLARE(dLytCommonIconMaterial_c); + /* 0x044 */ u8 mPart; + /* 0x048 */ dLytCommonIconMaterialPart1_c mPart1; + /* 0x0B0 */ dLytCommonIconMaterialPart2_c mPart2; +}; + +#endif diff --git a/include/d/lyt/d_lyt_pause_disp_00.h b/include/d/lyt/d_lyt_pause_disp_00.h index 4367e246..a616ef92 100644 --- a/include/d/lyt/d_lyt_pause_disp_00.h +++ b/include/d/lyt/d_lyt_pause_disp_00.h @@ -5,7 +5,6 @@ #include "d/lyt/d_structd.h" #include "d/lyt/d_lyt_common_icon_item.h" #include "s/s_State.hpp" -#include "s/s_StateMgr.hpp" class dLytPauseDisp00_c { public: diff --git a/include/d/lyt/d_lyt_pause_disp_01.h b/include/d/lyt/d_lyt_pause_disp_01.h new file mode 100644 index 00000000..101e4b5a --- /dev/null +++ b/include/d/lyt/d_lyt_pause_disp_01.h @@ -0,0 +1,35 @@ +#ifndef LYT_PAUSE_DISP_01_H +#define LYT_PAUSE_DISP_01_H + +#include "d/lyt/d2d.h" +#include "d/lyt/d_structd.h" +#include "d/lyt/d_lyt_common_icon_material.h" +#include "s/s_State.hpp" + +class dLytPauseDisp01_c { +public: + dLytPauseDisp01_c(); + virtual ~dLytPauseDisp01_c() {} + + void init(); + + STATE_FUNC_DECLARE(dLytPauseDisp01_c, None); + STATE_FUNC_DECLARE(dLytPauseDisp01_c, In); + STATE_FUNC_DECLARE(dLytPauseDisp01_c, Wait); + STATE_FUNC_DECLARE(dLytPauseDisp01_c, Select); + STATE_FUNC_DECLARE(dLytPauseDisp01_c, GetDemo); + STATE_FUNC_DECLARE(dLytPauseDisp01_c, Out); + +private: + void displayElement(int idx, float value); + + /* 0x0004 */ STATE_MGR_DECLARE(dLytPauseDisp01_c); + /* 0x0040 */ d2d::LytBase_c mLytBase; + /* 0x00D0 */ d2d::AnmGroup_c field_0x00D0[15]; + /* 0x0490 */ dLytCommonIconMaterial_c field_0x2050[28]; + /* 0x96B0 */ d2d::SubPaneList mSubpanes; + /* 0x96BC */ d2d::SubPaneListNode field_0xE11C[28]; + /* 0x987C */ d2d::dLytStructD field_0xE29C; +}; + +#endif diff --git a/src/d/lyt/d_lyt_common_icon_item.cpp b/src/d/lyt/d_lyt_common_icon_item.cpp index 9effaee8..5b4217f3 100644 --- a/src/d/lyt/d_lyt_common_icon_item.cpp +++ b/src/d/lyt/d_lyt_common_icon_item.cpp @@ -119,7 +119,7 @@ void dLytCommonIconItemPart1_c::reset() { void dLytCommonIconItemPart1_c::setItem(u8 item) { realizeUnk(); - realizeNumber(); + realizeNumberV(); realizeSize(); realizeBocoburin(); realizeItem(item); @@ -129,7 +129,7 @@ void dLytCommonIconItemPart1_c::realizeUnk() { // Probably related to field_0x2B4 } -void dLytCommonIconItemPart1_c::realizeNumber() { +void dLytCommonIconItemPart1_c::realizeNumberV() { if (mHasNumber) { mAnm[ITEM_PART_1_ANIM_NUMBERV].setFrame(1.0f); } else { @@ -381,7 +381,7 @@ void dLytCommonIconItemPart2_c::setItem(u8 item) { mappedItem = 9; } mHasNumber = false; - realizeNumber(); + realizeNumberV(); } else if (item == 43) { if (mNumber == 1) { mappedItem = 51; @@ -389,9 +389,9 @@ void dLytCommonIconItemPart2_c::setItem(u8 item) { mappedItem = 43; } mHasNumber = false; - realizeNumber(); + realizeNumberV(); } else { - realizeNumber(); + realizeNumberV(); } realizeSize(); @@ -414,7 +414,7 @@ void dLytCommonIconItemPart2_c::realizeUnk() { // Probably related to field_0x??? } -void dLytCommonIconItemPart2_c::realizeNumber() { +void dLytCommonIconItemPart2_c::realizeNumberV() { if (mHasNumber) { mAnm[ITEM_PART_2_ANIM_NUMBERV].setFrame(1.0f); } else { diff --git a/src/d/lyt/d_lyt_common_icon_material.cpp b/src/d/lyt/d_lyt_common_icon_material.cpp new file mode 100644 index 00000000..72799255 --- /dev/null +++ b/src/d/lyt/d_lyt_common_icon_material.cpp @@ -0,0 +1,547 @@ +#include "d/lyt/d_lyt_common_icon_material.h" + +#include "common.h" +#include "d/d_cs_base.h" + +#include + +STATE_DEFINE(dLytCommonIconMaterial_c, None); +STATE_DEFINE(dLytCommonIconMaterial_c, In); +STATE_DEFINE(dLytCommonIconMaterial_c, Wait); +STATE_DEFINE(dLytCommonIconMaterial_c, Out); + +static const d2d::LytBrlanMapping brlanMapPart1[] = { + { "commonIcon_00_bgV.brlan", "G_bgV_00"}, + { "commonIcon_00_numberV.brlan", "G_numberV_00"}, + { "commonIcon_00_bugs.brlan", "G_icon_00"}, + { "commonIcon_00_shadow.brlan", "G_shadow_00"}, + {"commonIcon_00_textColor.brlan", "G_textColor_00"}, + { "commonIcon_00_onOff.brlan", "G_btn_00"}, +}; + +// S = shadow +static const char *part1TextBoxes[] = { + "T_comNumberS_00", + "T_comNumber_00", +}; + +static const char *part1Bounding = "B_bug_00"; + +#define MATERIAL_PART_1_ANIM_BG 0 +#define MATERIAL_PART_1_ANIM_NUMBERV 1 +#define MATERIAL_PART_1_ANIM_ICON 2 +#define MATERIAL_PART_1_ANIM_SHADOW 3 +#define MATERIAL_PART_1_ANIM_TEXTCOLOR 4 +#define MATERIAL_PART_1_ANIM_ONOFF 5 + +#define MATERIAL_PART_1_NUM_ANIMS 6 + +bool dLytCommonIconMaterialPart1_c::build(d2d::ResAccIf_c *resAcc) { + mLyt.setResAcc(resAcc); + mLyt.build("commonIcon_00.brlyt", nullptr); + for (int i = 0; i < MATERIAL_PART_1_NUM_ANIMS; i++) { + mAnm[i].init(brlanMapPart1[i].mFile, resAcc, mLyt.getLayout(), brlanMapPart1[i].mName); + mAnm[i].setDirection(false); + mAnm[i].setRate(1.0f); + } + + for (int i = 0; i < 2; i++) { + mpTextBoxes[i] = mLyt.getTextBox(part1TextBoxes[i]); + } + + mpBounding = mLyt.findBounding(part1Bounding); + reset(); + return true; +} + +bool dLytCommonIconMaterialPart1_c::remove() { + for (int i = 0; i < MATERIAL_PART_1_NUM_ANIMS; i++) { + mAnm[i].unbind(); + mAnm[i].afterUnbind(); + } + return true; +} + +bool dLytCommonIconMaterialPart1_c::execute() { + if (mAnm[MATERIAL_PART_1_ANIM_ONOFF].isEnabled() && mAnm[MATERIAL_PART_1_ANIM_ONOFF].isStop2()) { + mAnm[MATERIAL_PART_1_ANIM_ONOFF].setAnimEnable(false); + } + + for (int i = 0; i < MATERIAL_PART_1_NUM_ANIMS; i++) { + if (mAnm[i].isEnabled()) { + mAnm[i].play(); + } + } + return true; +} + +void dLytCommonIconMaterialPart1_c::reset() { + mAnm[MATERIAL_PART_1_ANIM_ICON].setFrame(0.0f); + mAnm[MATERIAL_PART_1_ANIM_ICON].setAnimEnable(true); + + mAnm[MATERIAL_PART_1_ANIM_BG].setFrame(0.0f); + mAnm[MATERIAL_PART_1_ANIM_BG].setAnimEnable(true); + + mAnm[MATERIAL_PART_1_ANIM_NUMBERV].setFrame(0.0f); + mAnm[MATERIAL_PART_1_ANIM_NUMBERV].setAnimEnable(true); + + mAnm[MATERIAL_PART_1_ANIM_SHADOW].setFrame(0.0f); + mAnm[MATERIAL_PART_1_ANIM_SHADOW].setAnimEnable(true); + + mAnm[MATERIAL_PART_1_ANIM_TEXTCOLOR].setFrame(0.0f); + mAnm[MATERIAL_PART_1_ANIM_TEXTCOLOR].setAnimEnable(true); + + mAnm[MATERIAL_PART_1_ANIM_ONOFF].setBackwardsOnce(); + mAnm[MATERIAL_PART_1_ANIM_ONOFF].setToEnd2(); + mAnm[MATERIAL_PART_1_ANIM_ONOFF].setAnimEnable(true); + + mLyt.calc(); + + mAnm[MATERIAL_PART_1_ANIM_ONOFF].setAnimEnable(false); + mAnm[MATERIAL_PART_1_ANIM_TEXTCOLOR].setAnimEnable(false); + mAnm[MATERIAL_PART_1_ANIM_SHADOW].setAnimEnable(false); + mAnm[MATERIAL_PART_1_ANIM_NUMBERV].setAnimEnable(false); + mAnm[MATERIAL_PART_1_ANIM_BG].setAnimEnable(false); + mAnm[MATERIAL_PART_1_ANIM_ICON].setAnimEnable(false); +} + +void dLytCommonIconMaterialPart1_c::setItem(u8 item) { + realizeBg(); + realizeNumberV(); + realizeShadow(); + realizeItem(item); +} + +void dLytCommonIconMaterialPart1_c::realizeBg() { + if (mBg) { + mAnm[MATERIAL_PART_1_ANIM_BG].setFrame(1.0f); + } else { + mAnm[MATERIAL_PART_1_ANIM_BG].setFrame(0.0f); + } + + if (mShadow) { + mAnm[MATERIAL_PART_1_ANIM_BG].setFrame(0.0f); + } + + mAnm[MATERIAL_PART_1_ANIM_BG].setAnimEnable(true); + mLyt.calc(); + mAnm[MATERIAL_PART_1_ANIM_BG].setAnimEnable(false); +} + +void dLytCommonIconMaterialPart1_c::realizeNumberV() { + if (mNumberV) { + mAnm[MATERIAL_PART_1_ANIM_NUMBERV].setFrame(1.0f); + } else { + mAnm[MATERIAL_PART_1_ANIM_NUMBERV].setFrame(0.0f); + } + + if (mShadow) { + mAnm[MATERIAL_PART_1_ANIM_NUMBERV].setFrame(0.0f); + } + + mAnm[MATERIAL_PART_1_ANIM_NUMBERV].setAnimEnable(true); + mLyt.calc(); + mAnm[MATERIAL_PART_1_ANIM_NUMBERV].setAnimEnable(false); +} + +void dLytCommonIconMaterialPart1_c::realizeShadow() { + if (mShadow) { + mAnm[MATERIAL_PART_1_ANIM_SHADOW].setFrame(1.0f); + } else { + mAnm[MATERIAL_PART_1_ANIM_SHADOW].setFrame(0.0f); + } + + mAnm[MATERIAL_PART_1_ANIM_SHADOW].setAnimEnable(true); + mLyt.calc(); + mAnm[MATERIAL_PART_1_ANIM_SHADOW].setAnimEnable(false); +} + +void dLytCommonIconMaterialPart1_c::realizeItem(u8 item) { + // Inline? + if (mAnm[MATERIAL_PART_1_ANIM_ICON].getEndFrameRaw() - 1.0f < item) { + mItem = 0; + } else { + mItem = item; + } + + mAnm[MATERIAL_PART_1_ANIM_ICON].setFrame(mItem); + mAnm[MATERIAL_PART_1_ANIM_ICON].setAnimEnable(true); + mLyt.calc(); + mAnm[MATERIAL_PART_1_ANIM_ICON].setAnimEnable(false); + mpBounding->SetVisible(true); +} + +void dLytCommonIconMaterialPart1_c::setNumber(s32 number) { + std::memset(mNumberBuf, 0, sizeof(mNumberBuf)); + swprintf(mNumberBuf, ARRAY_LENGTH(mNumberBuf), L"%d", number); + for (int i = 0; i < 2; i++) { + mpTextBoxes[i]->fn_800AF930(mNumberBuf); + } +} + +void dLytCommonIconMaterialPart1_c::setOn() { + if (mAnm[MATERIAL_PART_1_ANIM_ONOFF].isPlayingBackwardsOnce()) { + mAnm[MATERIAL_PART_1_ANIM_ONOFF].setForwardOnce(); + mAnm[MATERIAL_PART_1_ANIM_ONOFF].setAnimEnable(true); + } +} + +void dLytCommonIconMaterialPart1_c::setOff() { + if (mAnm[MATERIAL_PART_1_ANIM_ONOFF].isPlayingForwardsOnce()) { + mAnm[MATERIAL_PART_1_ANIM_ONOFF].setBackwardsOnce(); + mAnm[MATERIAL_PART_1_ANIM_ONOFF].setAnimEnable(true); + } +} + +bool dLytCommonIconMaterialPart1_c::isCursorOver() const { + d2d::dLytStructD *d = dCsBase_c::GetInstance()->getUnk(); + if (d != nullptr && d->getType() == 'lyt ' && d->field_0x24 == mpBounding) { + return true; + } + return false; +} + +void dLytCommonIconMaterialPart1_c::setVisible(bool visible) { + if (visible) { + mpBounding->SetVisible(true); + } else { + mpBounding->SetVisible(false); + } +} + +static const d2d::LytBrlanMapping brlanMapPart2[] = { + { "commonIcon_01_bgV.brlan", "G_bgV_00"}, + { "commonIcon_01_numberV.brlan", "G_numberV_00"}, + { "commonIcon_01_sozai.brlan", "G_icon_00"}, + { "commonIcon_01_shadow.brlan", "G_shadow_00"}, + {"commonIcon_01_textColor.brlan", "G_textColor_00"}, + { "commonIcon_01_onOff.brlan", "G_btn_00"}, +}; + +// S = shadow +static const char *part2TextBoxes[] = { + "T_comNumberS_00", + "T_comNumber_00", +}; + +static const char *part2Bounding = "B_sozai_00"; + +#define MATERIAL_PART_2_ANIM_BG 0 +#define MATERIAL_PART_2_ANIM_NUMBERV 1 +#define MATERIAL_PART_2_ANIM_ICON 2 +#define MATERIAL_PART_2_ANIM_SHADOW 3 +#define MATERIAL_PART_2_ANIM_TEXTCOLOR 4 +#define MATERIAL_PART_2_ANIM_ONOFF 5 + +#define MATERIAL_PART_2_NUM_ANIMS 6 + +bool dLytCommonIconMaterialPart2_c::build(d2d::ResAccIf_c *resAcc) { + mLyt.setResAcc(resAcc); + mLyt.build("commonIcon_01.brlyt", nullptr); + for (int i = 0; i < MATERIAL_PART_2_NUM_ANIMS; i++) { + mAnm[i].init(brlanMapPart2[i].mFile, resAcc, mLyt.getLayout(), brlanMapPart2[i].mName); + mAnm[i].setDirection(false); + mAnm[i].setRate(1.0f); + } + + for (int i = 0; i < 2; i++) { + mpTextBoxes[i] = mLyt.getTextBox(part2TextBoxes[i]); + } + + mpBounding = mLyt.findBounding(part2Bounding); + reset(); + return true; +} + +bool dLytCommonIconMaterialPart2_c::remove() { + for (int i = 0; i < MATERIAL_PART_2_NUM_ANIMS; i++) { + mAnm[i].unbind(); + mAnm[i].afterUnbind(); + } + return true; +} + +bool dLytCommonIconMaterialPart2_c::execute() { + if (mAnm[MATERIAL_PART_2_ANIM_ONOFF].isEnabled() && mAnm[MATERIAL_PART_2_ANIM_ONOFF].isStop2()) { + mAnm[MATERIAL_PART_2_ANIM_ONOFF].setAnimEnable(false); + } + + for (int i = 0; i < MATERIAL_PART_2_NUM_ANIMS; i++) { + if (mAnm[i].isEnabled()) { + mAnm[i].play(); + } + } + return true; +} + +void dLytCommonIconMaterialPart2_c::reset() { + mAnm[MATERIAL_PART_2_ANIM_ICON].setFrame(0.0f); + mAnm[MATERIAL_PART_2_ANIM_ICON].setAnimEnable(true); + + mAnm[MATERIAL_PART_2_ANIM_BG].setFrame(0.0f); + mAnm[MATERIAL_PART_2_ANIM_BG].setAnimEnable(true); + + mAnm[MATERIAL_PART_2_ANIM_NUMBERV].setFrame(0.0f); + mAnm[MATERIAL_PART_2_ANIM_NUMBERV].setAnimEnable(true); + + mAnm[MATERIAL_PART_2_ANIM_SHADOW].setFrame(0.0f); + mAnm[MATERIAL_PART_2_ANIM_SHADOW].setAnimEnable(true); + + mAnm[MATERIAL_PART_2_ANIM_TEXTCOLOR].setFrame(0.0f); + mAnm[MATERIAL_PART_2_ANIM_TEXTCOLOR].setAnimEnable(true); + + mAnm[MATERIAL_PART_2_ANIM_ONOFF].setBackwardsOnce(); + mAnm[MATERIAL_PART_2_ANIM_ONOFF].setToEnd2(); + mAnm[MATERIAL_PART_2_ANIM_ONOFF].setAnimEnable(true); + + mLyt.calc(); + + mAnm[MATERIAL_PART_2_ANIM_ONOFF].setAnimEnable(false); + mAnm[MATERIAL_PART_2_ANIM_TEXTCOLOR].setAnimEnable(false); + mAnm[MATERIAL_PART_2_ANIM_SHADOW].setAnimEnable(false); + mAnm[MATERIAL_PART_2_ANIM_NUMBERV].setAnimEnable(false); + mAnm[MATERIAL_PART_2_ANIM_BG].setAnimEnable(false); + mAnm[MATERIAL_PART_2_ANIM_ICON].setAnimEnable(false); +} + +void dLytCommonIconMaterialPart2_c::setItem(u8 item) { + realizeBg(); + realizeNumberV(); + realizeShadow(); + realizeItem(item); +} + +void dLytCommonIconMaterialPart2_c::realizeBg() { + if (mBg) { + mAnm[MATERIAL_PART_1_ANIM_BG].setFrame(1.0f); + } else { + mAnm[MATERIAL_PART_1_ANIM_BG].setFrame(0.0f); + } + + if (mShadow) { + mAnm[MATERIAL_PART_1_ANIM_BG].setFrame(0.0f); + } + + mAnm[MATERIAL_PART_1_ANIM_BG].setAnimEnable(true); + mLyt.calc(); + mAnm[MATERIAL_PART_1_ANIM_BG].setAnimEnable(false); +} + +void dLytCommonIconMaterialPart2_c::realizeNumberV() { + if (mNumberV) { + mAnm[MATERIAL_PART_1_ANIM_NUMBERV].setFrame(1.0f); + } else { + mAnm[MATERIAL_PART_1_ANIM_NUMBERV].setFrame(0.0f); + } + + if (mShadow) { + mAnm[MATERIAL_PART_1_ANIM_NUMBERV].setFrame(0.0f); + } + + mAnm[MATERIAL_PART_1_ANIM_NUMBERV].setAnimEnable(true); + mLyt.calc(); + mAnm[MATERIAL_PART_1_ANIM_NUMBERV].setAnimEnable(false); +} + +void dLytCommonIconMaterialPart2_c::realizeShadow() { + if (mShadow) { + mAnm[MATERIAL_PART_1_ANIM_SHADOW].setFrame(1.0f); + } else { + mAnm[MATERIAL_PART_1_ANIM_SHADOW].setFrame(0.0f); + } + + mAnm[MATERIAL_PART_1_ANIM_SHADOW].setAnimEnable(true); + mLyt.calc(); + mAnm[MATERIAL_PART_1_ANIM_SHADOW].setAnimEnable(false); +} + +void dLytCommonIconMaterialPart2_c::realizeItem(u8 item) { + // Inline? + if (mAnm[MATERIAL_PART_2_ANIM_ICON].getEndFrameRaw() - 1.0f < item) { + mItem = 0; + } else { + mItem = item; + } + + mAnm[MATERIAL_PART_2_ANIM_ICON].setFrame(mItem); + mAnm[MATERIAL_PART_2_ANIM_ICON].setAnimEnable(true); + mLyt.calc(); + mAnm[MATERIAL_PART_2_ANIM_ICON].setAnimEnable(false); + mpBounding->SetVisible(true); +} + +void dLytCommonIconMaterialPart2_c::setNumber(s32 number) { + std::memset(mNumberBuf, 0, sizeof(mNumberBuf)); + swprintf(mNumberBuf, ARRAY_LENGTH(mNumberBuf), L"%d", number); + for (int i = 0; i < 2; i++) { + mpTextBoxes[i]->fn_800AF930(mNumberBuf); + } +} + +void dLytCommonIconMaterialPart2_c::setOn() { + if (mAnm[MATERIAL_PART_2_ANIM_ONOFF].isPlayingBackwardsOnce()) { + mAnm[MATERIAL_PART_2_ANIM_ONOFF].setForwardOnce(); + mAnm[MATERIAL_PART_2_ANIM_ONOFF].setAnimEnable(true); + } +} + +void dLytCommonIconMaterialPart2_c::setOff() { + if (mAnm[MATERIAL_PART_2_ANIM_ONOFF].isPlayingForwardsOnce()) { + mAnm[MATERIAL_PART_2_ANIM_ONOFF].setBackwardsOnce(); + mAnm[MATERIAL_PART_2_ANIM_ONOFF].setAnimEnable(true); + } +} + +bool dLytCommonIconMaterialPart2_c::isCursorOver() const { + d2d::dLytStructD *d = dCsBase_c::GetInstance()->getUnk(); + if (d != nullptr && d->getType() == 'lyt ' && d->field_0x24 == mpBounding) { + return true; + } + return false; +} + +void dLytCommonIconMaterialPart2_c::setVisible(bool visible) { + if (visible) { + mpBounding->SetVisible(true); + } else { + mpBounding->SetVisible(false); + } +} + +// Incredible use of the state manager here +void dLytCommonIconMaterial_c::initializeState_None() {} +void dLytCommonIconMaterial_c::executeState_None() {} +void dLytCommonIconMaterial_c::finalizeState_None() {} + +void dLytCommonIconMaterial_c::initializeState_In() {} +void dLytCommonIconMaterial_c::executeState_In() {} +void dLytCommonIconMaterial_c::finalizeState_In() {} + +void dLytCommonIconMaterial_c::initializeState_Wait() {} +void dLytCommonIconMaterial_c::executeState_Wait() {} +void dLytCommonIconMaterial_c::finalizeState_Wait() {} + +void dLytCommonIconMaterial_c::initializeState_Out() {} +void dLytCommonIconMaterial_c::executeState_Out() {} +void dLytCommonIconMaterial_c::finalizeState_Out() {} + +bool dLytCommonIconMaterial_c::build(d2d::ResAccIf_c *resAcc) { + build(resAcc, 1); + return true; +} + +bool dLytCommonIconMaterial_c::build(d2d::ResAccIf_c *resAcc, u8 variant) { + mPart = variant; + switch (mPart) { + case 0: mPart1.build(resAcc); break; + case 1: mPart2.build(resAcc); break; + } + return true; +} + +bool dLytCommonIconMaterial_c::remove() { + switch (mPart) { + case 0: mPart1.remove(); break; + case 1: mPart2.remove(); break; + } + return true; +} + +bool dLytCommonIconMaterial_c::execute() { + switch (mPart) { + case 0: mPart1.execute(); break; + case 1: mPart2.execute(); break; + } + return true; +} + +void dLytCommonIconMaterial_c::reset() { + switch (mPart) { + case 0: mPart1.reset(); break; + case 1: mPart2.reset(); break; + } +} + +void dLytCommonIconMaterial_c::setBg(bool bg) { + switch (mPart) { + case 0: mPart1.setBg(bg); break; + case 1: mPart2.setBg(bg); break; + } +} + +void dLytCommonIconMaterial_c::setHasNumber(bool hasNumber) { + switch (mPart) { + case 0: mPart1.setHasNumber(hasNumber); break; + case 1: mPart2.setHasNumber(hasNumber); break; + } +} + +void dLytCommonIconMaterial_c::setShadow(bool shadow) { + switch (mPart) { + case 0: mPart1.setShadow(shadow); break; + case 1: mPart2.setShadow(shadow); break; + } +} + +void dLytCommonIconMaterial_c::setItem(u8 item) { + switch (mPart) { + case 0: mPart1.setItem(item); break; + case 1: mPart2.setItem(item); break; + } +} + +void dLytCommonIconMaterial_c::setNumber(s32 number) { + switch (mPart) { + case 0: mPart1.setNumber(number); break; + case 1: mPart2.setNumber(number); break; + case 2: break; + } +} + +void dLytCommonIconMaterial_c::setOn() { + switch (mPart) { + case 0: mPart1.setOn(); break; + case 1: mPart2.setOn(); break; + case 2: break; + } +} + +void dLytCommonIconMaterial_c::setOff() { + switch (mPart) { + case 0: mPart1.setOff(); break; + case 1: mPart2.setOff(); break; + case 2: break; + } +} + +bool dLytCommonIconMaterial_c::isCursorOver() const { + switch (mPart) { + case 0: + if (mPart1.isCursorOver()) { + return true; + } + break; + case 1: + if (mPart2.isCursorOver()) { + return true; + } + break; + } + return false; +} + +void dLytCommonIconMaterial_c::setVisible(bool visible) { + switch (mPart) { + case 0: mPart1.setVisible(visible); break; + case 1: mPart2.setVisible(visible); break; + } +} + +const nw4r::lyt::Bounding *dLytCommonIconMaterial_c::getBounding() const { + const nw4r::lyt::Bounding *result = nullptr; + switch (mPart) { + case 0: result = mPart1.getBounding(); break; + case 1: result = mPart2.getBounding(); break; + } + return result; +} diff --git a/src/d/lyt/d_lyt_pause_disp_01.cpp b/src/d/lyt/d_lyt_pause_disp_01.cpp new file mode 100644 index 00000000..4d790486 --- /dev/null +++ b/src/d/lyt/d_lyt_pause_disp_01.cpp @@ -0,0 +1,34 @@ +#include "d/lyt/d_lyt_pause_disp_01.h" + +STATE_DEFINE(dLytPauseDisp01_c, None); +STATE_DEFINE(dLytPauseDisp01_c, In); +STATE_DEFINE(dLytPauseDisp01_c, Wait); +STATE_DEFINE(dLytPauseDisp01_c, Select); +STATE_DEFINE(dLytPauseDisp01_c, GetDemo); +STATE_DEFINE(dLytPauseDisp01_c, Out); + +dLytPauseDisp01_c::dLytPauseDisp01_c() : mStateMgr(*this, sStateID::null) {} + +void dLytPauseDisp01_c::initializeState_None() {} +void dLytPauseDisp01_c::executeState_None() {} +void dLytPauseDisp01_c::finalizeState_None() {} + +void dLytPauseDisp01_c::initializeState_In() {} +void dLytPauseDisp01_c::executeState_In() {} +void dLytPauseDisp01_c::finalizeState_In() {} + +void dLytPauseDisp01_c::initializeState_Wait() {} +void dLytPauseDisp01_c::executeState_Wait() {} +void dLytPauseDisp01_c::finalizeState_Wait() {} + +void dLytPauseDisp01_c::initializeState_Select() {} +void dLytPauseDisp01_c::executeState_Select() {} +void dLytPauseDisp01_c::finalizeState_Select() {} + +void dLytPauseDisp01_c::initializeState_GetDemo() {} +void dLytPauseDisp01_c::executeState_GetDemo() {} +void dLytPauseDisp01_c::finalizeState_GetDemo() {} + +void dLytPauseDisp01_c::initializeState_Out() {} +void dLytPauseDisp01_c::executeState_Out() {} +void dLytPauseDisp01_c::finalizeState_Out() {}