diff --git a/config/SOUE01/symbols.txt b/config/SOUE01/symbols.txt index ae9d961c..50a9a579 100644 --- a/config/SOUE01/symbols.txt +++ b/config/SOUE01/symbols.txt @@ -4741,13 +4741,13 @@ __dt__14dLytSkyGauge_cFv = .text:0x800D4EA0; // type:function size:0x164 __dt__15dLytBirdGauge_cFv = .text:0x800D5010; // type:function size:0x164 __dt__15dLytBossGauge_cFv = .text:0x800D5180; // type:function size:0x108 fn_800D5290__11dLytMeter_cFv = .text:0x800D5290; // type:function size:0xB4 -fn_800D5350 = .text:0x800D5350; // type:function size:0x30 +fn_800D5350__11dLytMeter_cFv = .text:0x800D5350; // type:function size:0x30 fn_800D5380__11dLytMeter_cFUc = .text:0x800D5380; // type:function size:0x44 fn_800D53D0__11dLytMeter_cFv = .text:0x800D53D0; // type:function size:0x50 fn_800D5420__11dLytMeter_cFv = .text:0x800D5420; // type:function size:0x114 isSilentRealm__11dLytMeter_cFv = .text:0x800D5540; // type:function size:0x4C fn_800D5590__11dLytMeter_cFv = .text:0x800D5590; // type:function size:0x98 -fn_800D5630 = .text:0x800D5630; // type:function size:0x18 +fn_800D5630__11dLytMeter_cFv = .text:0x800D5630; // type:function size:0x18 fn_800D5650__11dLytMeter_cFv = .text:0x800D5650; // type:function size:0x24 fn_800D5680__11dLytMeter_cFv = .text:0x800D5680; // type:function size:0x28 fn_800D56B0__11dLytMeter_cFv = .text:0x800D56B0; // type:function size:0xFC @@ -4777,16 +4777,16 @@ __dt__20dLytMeterEventSkip_cFv = .text:0x800D9310; // type:function size:0xD8 execute__20dLytMeterContainer_cFv = .text:0x800D93F0; // type:function size:0x1F0 draw__20dLytMeterContainer_cFv = .text:0x800D95E0; // type:function size:0x90 fn_800D5670__20dLytMeterContainer_cFv = .text:0x800D9670; // type:function size:0x8 -fn_800D9680 = .text:0x800D9680; // type:function size:0x64 -fn_800D96F0 = .text:0x800D96F0; // type:function size:0x20 -fn_800D9710 = .text:0x800D9710; // type:function size:0x10 +fn_800D9680__20dLytMeterContainer_cFb = .text:0x800D9680; // type:function size:0x64 +fn_800D56F0__20dLytMeterContainer_cFv = .text:0x800D96F0; // type:function size:0x20 +fn_800D9710__20dLytMeterContainer_cFv = .text:0x800D9710; // type:function size:0x10 setStaminaWheelPercentInternal__20dLytMeterContainer_cFf = .text:0x800D9720; // type:function size:0x8 -fn_800D9730 = .text:0x800D9730; // type:function size:0x4C -fn_800D9780 = .text:0x800D9780; // type:function size:0x18 +fn_800D9730__20dLytMeterContainer_cFUc = .text:0x800D9730; // type:function size:0x4C +fn_800D9780__20dLytMeterContainer_cFb = .text:0x800D9780; // type:function size:0x18 fn_800D97A0__20dLytMeterContainer_cFv = .text:0x800D97A0; // type:function size:0x20 setStaminaWheelPercent__20dLytMeterContainer_cFf = .text:0x800D97C0; // type:function size:0x14 -fn_800D97E0 = .text:0x800D97E0; // type:function size:0x1C -fn_800D9800 = .text:0x800D9800; // type:function size:0x18 +fn_800D97E0__20dLytMeterContainer_cFUc = .text:0x800D97E0; // type:function size:0x1C +setVisible__20dLytMeterContainer_cFb = .text:0x800D9800; // type:function size:0x18 changeState__83sStateMgr_c<14dLytSkyGauge_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>FRC12sStateIDIf_c = .text:0x800D9820; // type:function size:0x10 changeState__84sStateMgr_c<15dLytBossGauge_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>FRC12sStateIDIf_c = .text:0x800D9830; // type:function size:0x10 changeState__84sStateMgr_c<15dLytBirdGauge_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>FRC12sStateIDIf_c = .text:0x800D9840; // type:function size:0x10 @@ -5439,8 +5439,8 @@ __dt__31sFStateID_c<16dLytMeterParts_c>Fv = .text:0x800DF6A0; // type:function s isSameName__31sFStateID_c<16dLytMeterParts_c>CFPCc = .text:0x800DF700; // type:function size:0x88 isSameName__33sFStateID_c<18dLytMeter2Button_c>CFPCc = .text:0x800DF790; // type:function size:0x88 isSameName__33sFStateID_c<18dLytMeter1Button_c>CFPCc = .text:0x800DF820; // type:function size:0x88 -fn_800DF8B0 = .text:0x800DF8B0; // type:function size:0x3C0 -fn_800DFC70 = .text:0x800DFC70; // type:function size:0x48 +__ct__24dLytMeterConfiguration_cFv = .text:0x800DF8B0; // type:function size:0x3C0 +__dt__24dLytMeterConfiguration_cFv = .text:0x800DFC70; // type:function size:0x48 initializeState_InvisibleWait__15dLytMeterABtn_cFv = .text:0x800DFCC0; // type:function size:0x4 executeState_InvisibleWait__15dLytMeterABtn_cFv = .text:0x800DFCD0; // type:function size:0x34 finalizeState_InvisibleWait__15dLytMeterABtn_cFv = .text:0x800DFD10; // type:function size:0x4 @@ -7839,7 +7839,7 @@ fn_80139680 = .text:0x80139680; // type:function size:0x14 fn_801396A0 = .text:0x801396A0; // type:function size:0xA4 fn_80139750 = .text:0x80139750; // type:function size:0x5E8 fn_80139D40 = .text:0x80139D40; // type:function size:0x15C -fn_80139EA0 = .text:0x80139EA0; // type:function size:0x58 +fn_80139EA0__13dLytMapMain_cCFv = .text:0x80139EA0; // type:function size:0x58 fn_80139F00 = .text:0x80139F00; // type:function size:0x44 fn_80139F50 = .text:0x80139F50; // type:function size:0xE8 fn_8013A040 = .text:0x8013A040; // type:function size:0x3C @@ -8728,7 +8728,7 @@ execute__15dLytBossGauge_cFv = .text:0x80158760; // type:function size:0x100 draw__15dLytBossGauge_cFv = .text:0x80158860; // type:function size:0x68 remove__15dLytBossGauge_cFv = .text:0x801588D0; // type:function size:0x5C setMode__15dLytBossGauge_cFl = .text:0x80158930; // type:function size:0x10 -fn_80158940 = .text:0x80158940; // type:function size:0x108 +fn_80158940__15dLytBossGauge_cFv = .text:0x80158940; // type:function size:0x108 __sinit_\d_lyt_boss_gauge_cpp = .text:0x80158A50; // type:function size:0x338 scope:local __dt__30sFStateID_c<15dLytBossGauge_c>Fv = .text:0x80158D90; // type:function size:0x58 isSameName__30sFStateID_c<15dLytBossGauge_c>CFPCc = .text:0x80158DF0; // type:function size:0x88 @@ -10559,7 +10559,7 @@ addLayerArcn__11dStageMgr_cFPCc = .text:0x80199160; // type:function size:0x8 initUnkWithWater__11dStageMgr_cFUlPQ23d3d12UnkWithWater = .text:0x80199170; // type:function size:0x18 destroyUnkWithWater__11dStageMgr_cFUlPQ23d3d12UnkWithWater = .text:0x80199190; // type:function size:0x18 fn_801991B0 = .text:0x801991B0; // type:function size:0xA0 -fn_80199250 = .text:0x80199250; // type:function size:0x3C +fn_80199250__11dStageMgr_cFv = .text:0x80199250; // type:function size:0x3C fn_80199290 = .text:0x80199290; // type:function size:0x164 fn_80199400 = .text:0x80199400; // type:function size:0xE8 fn_801994F0 = .text:0x801994F0; // type:function size:0x4 @@ -10973,7 +10973,7 @@ fadeIn__8dStage_cFlUs = .text:0x801B3D00; // type:function size:0xA8 fadeOut__8dStage_cFlUs = .text:0x801B3DB0; // type:function size:0xA8 forceFadeOut__8dStage_cFv = .text:0x801B3E60; // type:function size:0x40 forceFadeIn__8dStage_cFv = .text:0x801B3EA0; // type:function size:0x40 -fn_801B3EE0 = .text:0x801B3EE0; // type:function size:0x3C +fn_801B3EE0__8dStage_cFv = .text:0x801B3EE0; // type:function size:0x3C fn_801B3F20 = .text:0x801B3F20; // type:function size:0x8 fn_801B3F30 = .text:0x801B3F30; // type:function size:0x8 drawMap__8dStage_cFP6mMtx_ci = .text:0x801B3F40; // type:function size:0x90 @@ -15036,7 +15036,7 @@ LytSaveMgr__draw = .text:0x802855D0; // type:function size:0x28 fn_80285600 = .text:0x80285600; // type:function size:0x18 fn_80285620 = .text:0x80285620; // type:function size:0x1C fn_80285640 = .text:0x80285640; // type:function size:0x10 -fn_80285650 = .text:0x80285650; // type:function size:0x4C +fn_80285650__13dLytSaveMgr_cCFv = .text:0x80285650; // type:function size:0x4C LytSaveMgr__stateInitEnter = .text:0x802856A0; // type:function size:0x14 LytSaveMgr__stateInitUpdate = .text:0x802856C0; // type:function size:0x28 LytSaveMgr__stateInitLeave = .text:0x802856F0; // type:function size:0x4 @@ -31056,19 +31056,19 @@ Timekeeper__vtable = .data:0x80511C30; // type:object size:0x20 __vt__18SpecialItemDropMgr = .data:0x80511C50; // type:object size:0xC lbl_80511C60 = .data:0x80511C60; // type:object size:0x14 lbl_80511C74 = .data:0x80511C74; // type:object size:0xC -lbl_80511C80 = .data:0x80511C80; // type:object size:0x1C -lbl_80511C9C = .data:0x80511C9C; // type:object size:0xC -lbl_80511CA8 = .data:0x80511CA8; // type:object size:0x1C -lbl_80511CC4 = .data:0x80511CC4; // type:object size:0xC -lbl_80511CD0 = .data:0x80511CD0; // type:object size:0x1C -lbl_80511CEC = .data:0x80511CEC; // type:object size:0xC -lbl_80511CF8 = .data:0x80511CF8; // type:object size:0x3C -lbl_80511D34 = .data:0x80511D34; // type:object size:0x1C -lbl_80511D50 = .data:0x80511D50; // type:object size:0x1C -lbl_80511D6C = .data:0x80511D6C; // type:object size:0x1C +lbl_80511C80 = .data:0x80511C80; // type:object size:0x1A data:string +lbl_80511C9C = .data:0x80511C9C; // type:object size:0xB data:string +lbl_80511CA8 = .data:0x80511CA8; // type:object size:0x19 data:string +lbl_80511CC4 = .data:0x80511CC4; // type:object size:0xA data:string +lbl_80511CD0 = .data:0x80511CD0; // type:object size:0x19 data:string +lbl_80511CEC = .data:0x80511CEC; // type:object size:0xA data:string +lbl_80511CF8 = .data:0x80511CF8; // type:object size:0x9 data:string +lbl_80511D34 = .data:0x80511D34; // type:object size:0x1A data:string +lbl_80511D50 = .data:0x80511D50; // type:object size:0x19 data:string +lbl_80511D6C = .data:0x80511D6C; // type:object size:0x19 data:string lbl_80511D88 = .data:0x80511D88; // type:object size:0x14 data:string jumptable_80511D9C = .data:0x80511D9C; // type:object size:0x2C scope:local -lbl_80511DC8 = .data:0x80511DC8; // type:object size:0x20 +lbl_80511DC8 = .data:0x80511DC8; // type:object size:0x1A data:string lbl_80511DE8 = .data:0x80511DE8; // type:object size:0x10 data:string lbl_80511DF8 = .data:0x80511DF8; // type:object size:0x10 data:string lbl_80511E08 = .data:0x80511E08; // type:object size:0x10 data:string @@ -31076,28 +31076,28 @@ lbl_80511E18 = .data:0x80511E18; // type:object size:0x10 data:string lbl_80511E28 = .data:0x80511E28; // type:object size:0x10 data:string lbl_80511E38 = .data:0x80511E38; // type:object size:0x10 data:string lbl_80511E48 = .data:0x80511E48; // type:object size:0x10 data:string -lbl_80511E58 = .data:0x80511E58; // type:object size:0x10 +lbl_80511E58 = .data:0x80511E58; // type:object size:0xF data:string lbl_80511E68 = .data:0x80511E68; // type:object size:0xC data:string lbl_80511E74 = .data:0x80511E74; // type:object size:0xC data:string lbl_80511E80 = .data:0x80511E80; // type:object size:0xC data:string -lbl_80511E8C = .data:0x80511E8C; // type:object size:0xC +lbl_80511E8C = .data:0x80511E8C; // type:object size:0xB data:string lbl_80511E98 = .data:0x80511E98; // type:object size:0xC data:string -lbl_80511EA4 = .data:0x80511EA4; // type:object size:0xC -lbl_80511EB0 = .data:0x80511EB0; // type:object size:0xC -lbl_80511EBC = .data:0x80511EBC; // type:object size:0x10 -lbl_80511ECC = .data:0x80511ECC; // type:object size:0x1C +lbl_80511EA4 = .data:0x80511EA4; // type:object size:0xA data:string +lbl_80511EB0 = .data:0x80511EB0; // type:object size:0xB data:string +lbl_80511EBC = .data:0x80511EBC; // type:object size:0xD data:string +lbl_80511ECC = .data:0x80511ECC; // type:object size:0x1B data:string lbl_80511EE8 = .data:0x80511EE8; // type:object size:0x20 data:string -lbl_80511F08 = .data:0x80511F08; // type:object size:0x10 +lbl_80511F08 = .data:0x80511F08; // type:object size:0xE data:string lbl_80511F18 = .data:0x80511F18; // type:object size:0x24 data:string -lbl_80511F3C = .data:0x80511F3C; // type:object size:0x10 -lbl_80511F4C = .data:0x80511F4C; // type:object size:0x110 -lbl_8051205C = .data:0x8051205C; // type:object size:0x44 -lbl_805120A0 = .data:0x805120A0; // type:object size:0x10 +lbl_80511F3C = .data:0x80511F3C; // type:object size:0xE data:string +lbl_80511F4C = .data:0x80511F4C; // type:object size:0x9 data:string +lbl_8051205C = .data:0x8051205C; // type:object size:0xF data:string +lbl_805120A0 = .data:0x805120A0; // type:object size:0x9 data:string __vt__53sFStateMgr_c<14dLytSkyGauge_c,20sStateMethodUsr_FI_c> = .data:0x805120B0; // type:object size:0x30 __vt__83sStateMgr_c<14dLytSkyGauge_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c> = .data:0x805120E0; // type:object size:0x30 __vt__30sFStateFct_c<14dLytSkyGauge_c> = .data:0x80512110; // type:object size:0x14 __vt__27sFState_c<14dLytSkyGauge_c> = .data:0x80512128; // type:object size:0x18 -__vt__15dLytBossGauge_c = .data:0x80512140; // type:object size:0x10 +__vt__15dLytBossGauge_c = .data:0x80512140; // type:object size:0xC __vt__54sFStateMgr_c<15dLytBossGauge_c,20sStateMethodUsr_FI_c> = .data:0x80512150; // type:object size:0x30 __vt__84sStateMgr_c<15dLytBossGauge_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c> = .data:0x80512180; // type:object size:0x30 __vt__31sFStateFct_c<15dLytBossGauge_c> = .data:0x805121B0; // type:object size:0x14 @@ -31106,7 +31106,7 @@ __vt__54sFStateMgr_c<15dLytBirdGauge_c,20sStateMethodUsr_FI_c> = .data:0x805121E __vt__84sStateMgr_c<15dLytBirdGauge_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c> = .data:0x80512210; // type:object size:0x30 __vt__31sFStateFct_c<15dLytBirdGauge_c> = .data:0x80512240; // type:object size:0x14 __vt__28sFState_c<15dLytBirdGauge_c> = .data:0x80512258; // type:object size:0x18 -__vt__16dLytMeterTimer_c = .data:0x80512270; // type:object size:0x10 +__vt__16dLytMeterTimer_c = .data:0x80512270; // type:object size:0xC __vt__55sFStateMgr_c<16dLytMeterTimer_c,20sStateMethodUsr_FI_c> = .data:0x80512280; // type:object size:0x30 __vt__85sStateMgr_c<16dLytMeterTimer_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c> = .data:0x805122B0; // type:object size:0x30 __vt__32sFStateFct_c<16dLytMeterTimer_c> = .data:0x805122E0; // type:object size:0x14 @@ -31140,17 +31140,17 @@ __vt__55sFStateMgr_c<16dLytMeterParts_c,20sStateMethodUsr_FI_c> = .data:0x805126 __vt__85sStateMgr_c<16dLytMeterParts_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c> = .data:0x80512658; // type:object size:0x30 __vt__32sFStateFct_c<16dLytMeterParts_c> = .data:0x80512688; // type:object size:0x14 __vt__29sFState_c<16dLytMeterParts_c> = .data:0x805126A0; // type:object size:0x18 -__vt__18dLytMeter2Button_c = .data:0x805126B8; // type:object size:0x38 +__vt__18dLytMeter2Button_c = .data:0x805126B8; // type:object size:0x34 __vt__57sFStateMgr_c<18dLytMeter2Button_c,20sStateMethodUsr_FI_c> = .data:0x805126F0; // type:object size:0x30 __vt__87sStateMgr_c<18dLytMeter2Button_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c> = .data:0x80512720; // type:object size:0x30 __vt__34sFStateFct_c<18dLytMeter2Button_c> = .data:0x80512750; // type:object size:0x14 __vt__31sFState_c<18dLytMeter2Button_c> = .data:0x80512768; // type:object size:0x18 -__vt__18dLytMeter1Button_c = .data:0x80512780; // type:object size:0x38 +__vt__18dLytMeter1Button_c = .data:0x80512780; // type:object size:0x34 __vt__57sFStateMgr_c<18dLytMeter1Button_c,20sStateMethodUsr_FI_c> = .data:0x805127B8; // type:object size:0x30 __vt__87sStateMgr_c<18dLytMeter1Button_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c> = .data:0x805127E8; // type:object size:0x30 __vt__34sFStateFct_c<18dLytMeter1Button_c> = .data:0x80512818; // type:object size:0x14 __vt__31sFState_c<18dLytMeter1Button_c> = .data:0x80512830; // type:object size:0x18 -__vt__20dLytMeterEventSkip_c = .data:0x80512848; // type:object size:0x10 +__vt__20dLytMeterEventSkip_c = .data:0x80512848; // type:object size:0xC __vt__59sFStateMgr_c<20dLytMeterEventSkip_c,20sStateMethodUsr_FI_c> = .data:0x80512858; // type:object size:0x30 __vt__89sStateMgr_c<20dLytMeterEventSkip_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c> = .data:0x80512888; // type:object size:0x30 __vt__36sFStateFct_c<20dLytMeterEventSkip_c> = .data:0x805128B8; // type:object size:0x14 @@ -31207,7 +31207,7 @@ __vt__62sFStateMgr_c<23dLytMeterDowsingBlink_c,20sStateMethodUsr_FI_c> = .data:0 __vt__92sStateMgr_c<23dLytMeterDowsingBlink_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c> = .data:0x80512FD8; // type:object size:0x30 __vt__39sFStateFct_c<23dLytMeterDowsingBlink_c> = .data:0x80513008; // type:object size:0x14 __vt__36sFState_c<23dLytMeterDowsingBlink_c> = .data:0x80513020; // type:object size:0x18 -__vt__26dLytMeterDowsingMenuIcon_c = .data:0x80513038; // type:object size:0x10 +__vt__26dLytMeterDowsingMenuIcon_c = .data:0x80513038; // type:object size:0xC __vt__65sFStateMgr_c<26dLytMeterDowsingMenuIcon_c,20sStateMethodUsr_FI_c> = .data:0x80513048; // type:object size:0x30 __vt__95sStateMgr_c<26dLytMeterDowsingMenuIcon_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c> = .data:0x80513078; // type:object size:0x30 __vt__42sFStateFct_c<26dLytMeterDowsingMenuIcon_c> = .data:0x805130A8; // type:object size:0x14 @@ -31252,7 +31252,7 @@ __vt__61sFStateMgr_c<22dLytMeterShieldGauge_c,20sStateMethodUsr_FI_c> = .data:0x __vt__91sStateMgr_c<22dLytMeterShieldGauge_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c> = .data:0x805135E0; // type:object size:0x30 __vt__38sFStateFct_c<22dLytMeterShieldGauge_c> = .data:0x80513610; // type:object size:0x14 __vt__35sFState_c<22dLytMeterShieldGauge_c> = .data:0x80513628; // type:object size:0x18 -__vt__14dLytDobutton_c = .data:0x80513640; // type:object size:0x10 +__vt__14dLytDobutton_c = .data:0x80513640; // type:object size:0xC __vt__53sFStateMgr_c<14dLytDobutton_c,20sStateMethodUsr_FI_c> = .data:0x80513650; // type:object size:0x30 __vt__83sStateMgr_c<14dLytDobutton_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c> = .data:0x80513680; // type:object size:0x30 __vt__30sFStateFct_c<14dLytDobutton_c> = .data:0x805136B0; // type:object size:0x14 @@ -38114,18 +38114,18 @@ lbl_80572310 = .sdata:0x80572310; // type:object size:0x8 lbl_80572318 = .sdata:0x80572318; // type:object size:0x4 data:4byte lbl_8057231C = .sdata:0x8057231C; // type:object size:0x4 data:4byte lbl_80572320 = .sdata:0x80572320; // type:object size:0x4 data:4byte -lbl_80572324 = .sdata:0x80572324; // type:object size:0x8 -lbl_8057232C = .sdata:0x8057232C; // type:object size:0x4 -lbl_80572330 = .sdata:0x80572330; // type:object size:0x8 -lbl_80572338 = .sdata:0x80572338; // type:object size:0x8 -lbl_80572340 = .sdata:0x80572340; // type:object size:0x8 -lbl_80572348 = .sdata:0x80572348; // type:object size:0x8 -lbl_80572350 = .sdata:0x80572350; // type:object size:0x8 -lbl_80572358 = .sdata:0x80572358; // type:object size:0x8 -lbl_80572360 = .sdata:0x80572360; // type:object size:0x8 -lbl_80572368 = .sdata:0x80572368; // type:object size:0x8 -lbl_80572370 = .sdata:0x80572370; // type:object size:0x8 -lbl_80572378 = .sdata:0x80572378; // type:object size:0x8 +lbl_80572324 = .sdata:0x80572324; // type:object size:0x6 data:string +lbl_8057232C = .sdata:0x8057232C; // type:object size:0x1 +lbl_80572330 = .sdata:0x80572330; // type:object size:0x5 data:string +lbl_80572338 = .sdata:0x80572338; // type:object size:0x5 data:string +lbl_80572340 = .sdata:0x80572340; // type:object size:0x5 data:string +lbl_80572348 = .sdata:0x80572348; // type:object size:0x5 data:string +lbl_80572350 = .sdata:0x80572350; // type:object size:0x7 data:string +lbl_80572358 = .sdata:0x80572358; // type:object size:0x7 data:string +lbl_80572360 = .sdata:0x80572360; // type:object size:0x5 data:string +lbl_80572368 = .sdata:0x80572368; // type:object size:0x5 data:string +lbl_80572370 = .sdata:0x80572370; // type:object size:0x7 data:string +lbl_80572378 = .sdata:0x80572378; // type:object size:0x5 data:string lbl_80572380 = .sdata:0x80572380; // type:object size:0x4 data:4byte lbl_80572388 = .sdata:0x80572388; // type:object size:0x8 data:4byte lbl_80572390 = .sdata:0x80572390; // type:object size:0x4 data:4byte @@ -40388,7 +40388,7 @@ lbl_80575938 = .sbss:0x80575938; // type:object size:0x4 data:float lbl_8057593C = .sbss:0x8057593C; // type:object size:0x4 data:float LYT_PAUSE_DISP = .sbss:0x80575940; // type:object size:0x8 data:4byte sInstance__14dLytGameOver_c = .sbss:0x80575948; // type:object size:0x8 data:4byte -LYT_SAVE_MGR = .sbss:0x80575950; // type:object size:0x8 data:4byte +sInstance__13dLytSaveMgr_c = .sbss:0x80575950; // type:object size:0x8 data:4byte lbl_80575958 = .sbss:0x80575958; // type:object size:0x1 data:byte lbl_80575959 = .sbss:0x80575959; // type:object size:0x1 data:byte lbl_8057595C = .sbss:0x8057595C; // type:object size:0x4 data:4byte @@ -48611,7 +48611,7 @@ sFlags__15ItemflagManager = .bss:0x805A9BD8; // type:object size:0x80 sDungeonFlags__18DungeonflagManager = .bss:0x805A9C58; // type:object size:0x10 sSkipFlags__15SkipflagManager = .bss:0x805A9C68; // type:object size:0x20 lbl_805A9C88 = .bss:0x805A9C88; // type:object size:0x10 data:4byte -lbl_805A9C98 = .bss:0x805A9C98; // type:object size:0x10 +lbl_805A9C98 = .bss:0x805A9C98; // type:object size:0xC sConf = .bss:0x805A9CA8; // type:object size:0x1E8 scope:local StateID_Wait__18dLytMeter1Button_c = .bss:0x805A9EA0; // type:object size:0x30 data:4byte StateID_ToUse__18dLytMeter1Button_c = .bss:0x805A9EE0; // type:object size:0x30 data:4byte diff --git a/configure.py b/configure.py index dbf3e4f5..471534d6 100644 --- a/configure.py +++ b/configure.py @@ -384,7 +384,7 @@ config.libs = [ Object(Matching, "d/d_textunk.cpp"), Object(NonMatching, "d/d_textwindow_unk.cpp"), Object(NonMatching, "d/d_tag_processor.cpp"), - Object(NonMatching, "d/lyt/meter/d_lyt_meter.cpp"), + Object(Matching, "d/lyt/meter/d_lyt_meter.cpp"), Object(NonMatching, "d/lyt/meter/d_lyt_meter_unk.cpp"), Object(Matching, "d/lyt/meter/d_lyt_meter_a_btn.cpp"), Object(Matching, "d/lyt/meter/d_lyt_meter_z_btn.cpp"), diff --git a/include/d/d_message.h b/include/d/d_message.h index ef8eb8b1..aa86ffbe 100644 --- a/include/d/d_message.h +++ b/include/d/d_message.h @@ -33,6 +33,10 @@ public: void init(); void reset(); + bool getField_0x328() const { + return field_0x328; + } + bool getField_0x329() const { return field_0x329; } @@ -115,8 +119,9 @@ private: /* 0x2FC */ s32 field_0x2FC; - /* 0x300 */ u8 _0x300[0x329 - 0x300]; + /* 0x300 */ u8 _0x300[0x328 - 0x300]; + /* 0x328 */ bool field_0x328; /* 0x329 */ bool field_0x329; /* 0x32A */ bool field_0x32A; diff --git a/include/d/d_sc_game.h b/include/d/d_sc_game.h index d3efba4e..33bd09d6 100644 --- a/include/d/d_sc_game.h +++ b/include/d/d_sc_game.h @@ -149,6 +149,7 @@ public: return sInstance; } + bool setReloadTrigger(fProfile::PROFILE_NAME_e reloadTrigger); void setRespawnInfo(const mVec3_c &linkPos, const mAng3_c &linkRot, bool unk); void setSpawnInfo(u8 roomid, const mVec3_c &pos, mAng rot); @@ -194,6 +195,10 @@ public: static dCamera_c *getCamera(s32 idx); static void setCamera(s32 idx, dCamera_c *); + bool isFaderSettled() const { + return mFader.isSettled(); + } + protected: static u32 sUpdateFrameCount; static u8 sCurrentLayer; diff --git a/include/d/d_stage.h b/include/d/d_stage.h index 23b01ee1..a722f9c4 100644 --- a/include/d/d_stage.h +++ b/include/d/d_stage.h @@ -132,6 +132,8 @@ public: return curr_room_id; } + bool fn_801B3EE0(); + private: dRoom_c *createRoom(int roomid, bool flag0x40); void createLytSeekerStone(); diff --git a/include/d/d_stage_mgr.h b/include/d/d_stage_mgr.h index f2f91e41..a03ec212 100644 --- a/include/d/d_stage_mgr.h +++ b/include/d/d_stage_mgr.h @@ -57,6 +57,8 @@ public: s32 getAreaType() const; s32 getMapNameId() const; + bool fn_80199250(); + static dStageMgr_c *GetInstance() { return sInstance; } @@ -123,6 +125,10 @@ public: return &mFader; } + bool isFaderSettled() const { + return mFader.isSettled(); + } + bool isInLastBoss() const { return mIsInLastBoss; } diff --git a/include/d/lyt/d_lyt_bird_gauge.h b/include/d/lyt/d_lyt_bird_gauge.h index 68532922..dea08876 100644 --- a/include/d/lyt/d_lyt_bird_gauge.h +++ b/include/d/lyt/d_lyt_bird_gauge.h @@ -96,6 +96,8 @@ private: STATE_FUNC_DECLARE(dLytBirdGauge_c, Recovery); STATE_FUNC_DECLARE(dLytBirdGauge_c, Out); + STATE_MGR_DEFINE_UTIL_CHANGESTATE(dLytBirdGauge_c); + /* 0x008 */ UI_STATE_MGR_DECLARE(dLytBirdGauge_c); /* 0x008 */ d2d::ResAccIf_c mResAcc; /* 0x3B4 */ dLytBirdGaugeMain_c mMain; diff --git a/include/d/lyt/d_lyt_boss_gauge.h b/include/d/lyt/d_lyt_boss_gauge.h index f62eea3b..c663454d 100644 --- a/include/d/lyt/d_lyt_boss_gauge.h +++ b/include/d/lyt/d_lyt_boss_gauge.h @@ -16,6 +16,8 @@ public: void setMode(s32 mode); + void fn_80158940(); + void setField_0x545(bool value) { field_0x545 = value; } @@ -26,12 +28,15 @@ private: STATE_FUNC_DECLARE(dLytBossGauge_c, Move); STATE_FUNC_DECLARE(dLytBossGauge_c, Out); + STATE_MGR_DEFINE_UTIL_CHANGESTATE(dLytBossGauge_c); + /* 0x004 */ UI_STATE_MGR_DECLARE(dLytBossGauge_c); /* 0x040 */ d2d::ResAccIf_c mResAcc; /* 0x3B0 */ d2d::dLytSub mLyt; /* 0x444 */ d2d::AnmGroup_c mAnmGroups[4]; /* 0x544 */ u8 field_0x544; /* 0x545 */ bool field_0x545; + /* 0x546 */ u8 _0x546[0x550 - 0x546]; }; #endif diff --git a/include/d/lyt/d_lyt_common_icon_item.h b/include/d/lyt/d_lyt_common_icon_item.h index cf0a2af7..4f6ad8c2 100644 --- a/include/d/lyt/d_lyt_common_icon_item.h +++ b/include/d/lyt/d_lyt_common_icon_item.h @@ -273,6 +273,9 @@ private: STATE_FUNC_DECLARE(dLytCommonIconItem_c, Wait); STATE_FUNC_DECLARE(dLytCommonIconItem_c, Out); + STATE_MGR_DEFINE_UTIL_CHANGESTATE(dLytCommonIconItem_c); + STATE_MGR_DEFINE_UTIL_ISSTATE(dLytCommonIconItem_c); + /* 0x008 */ UI_STATE_MGR_DECLARE(dLytCommonIconItem_c); /* 0x044 */ u8 mPart; /* 0x048 */ dLytCommonIconItemPart1_c mPart1; diff --git a/include/d/lyt/d_lyt_do_button.h b/include/d/lyt/d_lyt_do_button.h index 7970f6d5..b2313ab1 100644 --- a/include/d/lyt/d_lyt_do_button.h +++ b/include/d/lyt/d_lyt_do_button.h @@ -82,6 +82,8 @@ private: STATE_FUNC_DECLARE(dLytDobutton_c, Wait); STATE_FUNC_DECLARE(dLytDobutton_c, Out); + STATE_MGR_DEFINE_UTIL_CHANGESTATE(dLytDobutton_c); + UI_STATE_MGR_DECLARE(dLytDobutton_c); /* 0x040 */ d2d::dLytSub mLyt; /* 0x0D4 */ d2d::AnmGroup_c mAnmGroups[12]; diff --git a/include/d/lyt/d_lyt_map.h b/include/d/lyt/d_lyt_map.h index ddf80e66..02f01563 100644 --- a/include/d/lyt/d_lyt_map.h +++ b/include/d/lyt/d_lyt_map.h @@ -267,6 +267,7 @@ private: }; class dLytMapMain_c : public m2d::Base_c { + friend class dLytMap_c; public: dLytMapMain_c(); virtual ~dLytMapMain_c(); @@ -276,6 +277,7 @@ public: void build(); bool isOpenMaybe() const; + bool fn_80139EA0() const; STATE_FUNC_DECLARE(dLytMapMain_c, Invisible); STATE_FUNC_DECLARE(dLytMapMain_c, RenderingWait); @@ -338,10 +340,16 @@ private: /* 0x8904 */ mVec3_c field_0x8904; /* 0x8910 */ mVec3_c field_0x8910; /* 0x891C */ mVec3_c field_0x891C; - // ??? + + /* 0x8928 */ u8 _0x8928[0x8930 - 0x8928]; + /* 0x8930 */ mVec3_c field_0x8930; /* 0x893C */ mVec3_c field_0x893C; - // ??? + + /* 0x8948 */ u8 idkfixmelater[0x4BC0]; + /* 0x8C94 */ s32 field_0x8C94; + + // ... /* 0x8CC4 */ mVec3_c field_0x8CC4; /* 0x8CD0 */ mVec3_c field_0x8CD0; @@ -391,8 +399,24 @@ public: return mMapMain.isOpenMaybe(); } + bool getFn_80139EA0() const { + return mMapMain.fn_80139EA0(); + } + void build(); + static bool isValid(s32 val) { + if (val >= 2 && val < 7) { + return true; + } + return false; + } + + bool unkMeterCheck() const { + s32 val = mMapMain.field_0x8C94; + return isValid(val) && ((1 << (val - 2)) & 0x1D); + } + private: /* 0x0004 */ d2d::ResAccIf_c mResAcc; /* 0x0374 */ dLytMapMain_c mMapMain; diff --git a/include/d/lyt/d_lyt_save_mgr.h b/include/d/lyt/d_lyt_save_mgr.h new file mode 100644 index 00000000..df9ae319 --- /dev/null +++ b/include/d/lyt/d_lyt_save_mgr.h @@ -0,0 +1,17 @@ +#ifndef D_LYT_SAVE_MGR_H +#define D_LYT_SAVE_MGR_H + +class dLytSaveMgr_c { +public: + + static dLytSaveMgr_c* GetInstance() { + return sInstance; + } + + bool fn_80285650() const; + +private: + static dLytSaveMgr_c *sInstance; +}; + +#endif diff --git a/include/d/lyt/d_lyt_sky_gauge.h b/include/d/lyt/d_lyt_sky_gauge.h index af606b77..1c7fa35a 100644 --- a/include/d/lyt/d_lyt_sky_gauge.h +++ b/include/d/lyt/d_lyt_sky_gauge.h @@ -81,6 +81,8 @@ private: STATE_FUNC_DECLARE(dLytSkyGauge_c, Move); STATE_FUNC_DECLARE(dLytSkyGauge_c, Out); + STATE_MGR_DEFINE_UTIL_CHANGESTATE(dLytSkyGauge_c); + /* 0x008 */ UI_STATE_MGR_DECLARE(dLytSkyGauge_c); /* 0x008 */ d2d::ResAccIf_c mResAcc; /* 0x3B4 */ dLytSkyGaugeMain_c mMain; diff --git a/include/d/lyt/d_lyt_unknowns.h b/include/d/lyt/d_lyt_unknowns.h index 29b8233b..7df0a225 100644 --- a/include/d/lyt/d_lyt_unknowns.h +++ b/include/d/lyt/d_lyt_unknowns.h @@ -19,6 +19,9 @@ public: enum Action_e { DO_DASH = 0x5F, + + DO_0x74 = 0x74, + DO_RETURN = 0x7F, DO_STOP = 0x84, DO_ITEMS = 0x85, diff --git a/include/d/lyt/meter/d_lyt_meter.h b/include/d/lyt/meter/d_lyt_meter.h index b88378de..2a1d458e 100644 --- a/include/d/lyt/meter/d_lyt_meter.h +++ b/include/d/lyt/meter/d_lyt_meter.h @@ -4,6 +4,7 @@ // clang-format off #include "common.h" #include "d/lyt/d2d.h" +#include "d/d_cursor_hit_check.h" #include "d/lyt/d_lyt_do_button.h" #include "d/lyt/meter/d_lyt_meter_shield_gauge.h" #include "d/lyt/d_lyt_common_icon_item.h" @@ -23,15 +24,9 @@ #include "d/lyt/meter/d_lyt_meter_item_select.h" #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" -#include "d/lyt/meter/d_lyt_meter_drink.h" -#include "d/lyt/meter/d_lyt_meter_timer.h" -#include "d/lyt/d_lyt_bird_gauge.h" -#include "d/lyt/d_lyt_boss_gauge.h" -#include "d/lyt/d_lyt_sky_gauge.h" + #include "m/m_vec.h" enum Meter_e { @@ -55,6 +50,19 @@ enum Meter_e { // clang-format on +class dLytMeter1Button_c; +class dLytMeter2Button_c; +class dLytMeterTimer_c; +class LytMeterTimerPart1_c; +class LytMeterTimerPart2_c; +class dLytMeterKakeraKey_c; +class dLytMeterBossKey_c; +class dLytMeterSmallKey_c; +class dLytMeterDrink_c; +class dLytSkyGauge_c; +class dLytBirdGauge_c; +class dLytBossGauge_c; + class dLytMeter_c { public: dLytMeter_c(); @@ -70,9 +78,11 @@ public: bool fn_800C9FE0(); bool fn_800CA040(); + bool fn_800D5350(); bool fn_800D5380(u8); - bool fn_800D5290(); + void fn_800D5290(); bool fn_800D5590(); + void fn_800D5630(); bool fn_800D5650(); bool fn_800D5680(); bool fn_800D56B0(); @@ -87,19 +97,19 @@ public: void setUiMode(u16 value) const; u8 getUiMode(); - u8 getField_0x13792() const { + bool getField_0x13792() const { return field_0x13792[0]; } - u8 getField_0x13793() const { + bool getField_0x13793() const { return field_0x13792[1]; } - u8 getField_0x1377E() const { + bool getField_0x1377E() const { return field_0x1377E; } - u8 getField_0x1377F() const { + bool getField_0x1377F() const { return field_0x1377F; } @@ -158,27 +168,27 @@ public: /* 0x13768 */ s32 mOldShieldPosIndex; /* 0x1376C */ s32 mOldRupyPosIndex; /* 0x13770 */ u8 field_0x13770; - /* 0x13771 */ u8 field_0x13771; - /* 0x13772 */ u8 field_0x13772; - /* 0x13773 */ u8 field_0x13773; - /* 0x13774 */ u8 field_0x13774; - /* 0x13775 */ u8 field_0x13775; - /* 0x13776 */ u8 field_0x13776; - /* 0x13777 */ u8 field_0x13777; - /* 0x13778 */ u8 field_0x13778; - /* 0x13779 */ u8 field_0x13779; - /* 0x1377A */ u8 field_0x1377A; - /* 0x1377B */ u8 field_0x1377B; - /* 0x1377C */ u8 field_0x1377C; - /* 0x1377D */ u8 field_0x1377D; - /* 0x1377E */ u8 field_0x1377E; - /* 0x1377F */ u8 field_0x1377F; - /* 0x13780 */ u8 field_0x13780; - /* 0x13781 */ u8 field_0x13781; - /* 0x13782 */ u8 field_0x13782[16]; - /* 0x13792 */ u8 field_0x13792[16]; - /* 0x137A2 */ u8 field_0x137A2[16]; - /* 0x137B2 */ u8 field_0x137B2; + /* 0x13771 */ bool field_0x13771; + /* 0x13772 */ bool field_0x13772; + /* 0x13773 */ bool field_0x13773; + /* 0x13774 */ bool field_0x13774; + /* 0x13775 */ bool field_0x13775; + /* 0x13776 */ bool field_0x13776; + /* 0x13777 */ bool field_0x13777; + /* 0x13778 */ bool field_0x13778; + /* 0x13779 */ bool field_0x13779; + /* 0x1377A */ bool field_0x1377A; + /* 0x1377B */ bool field_0x1377B; + /* 0x1377C */ bool field_0x1377C; + /* 0x1377D */ bool field_0x1377D; + /* 0x1377E */ bool field_0x1377E; + /* 0x1377F */ bool field_0x1377F; + /* 0x13780 */ bool field_0x13780; + /* 0x13781 */ bool field_0x13781; + /* 0x13782 */ bool field_0x13782[16]; + /* 0x13792 */ bool field_0x13792[16]; + /* 0x137A2 */ bool field_0x137A2[16]; + /* 0x137B2 */ bool field_0x137B2; /* 0x137B4 */ mVec3_c mPos3; /* 0x137C0 */ u32 field_0x137C0; }; @@ -213,7 +223,14 @@ public: bool draw(); bool fn_800D5670(); + bool fn_800D56F0(); bool fn_800D97A0(); + void fn_800D9680(bool val); + void fn_800D9710(); + void fn_800D9730(u8 val); + void fn_800D9780(bool val); + static void fn_800D97E0(u8); + static void setVisible(bool); static void setStaminaWheelPercent(f32 percent); void setStaminaWheelPercentInternal(f32 percent); @@ -238,15 +255,15 @@ public: return mMeter.field_0x13770; } - u8 getMeterField_0x13774() const { + bool getMeterField_0x13774() const { return mMeter.field_0x13774; } - u8 getMeterField_0x1377F() const { + bool getMeterField_0x1377F() const { return mMeter.field_0x1377F; } - u8 getMeterField_0x1379A() const { + bool getMeterField_0x1379A() const { return mMeter.field_0x13792[8]; } @@ -258,6 +275,10 @@ public: mFlags = mFlags & ~mask; } + void setFlags(u32 mask) { + mFlags = mFlags | mask; + } + void resetFlags() { mFlags = 0xFFFFFFFF; } @@ -383,13 +404,13 @@ private: /* 0x13B54 */ s32 field_0x13B54; /* 0x13B58 */ s32 field_0x13B58; /* 0x13B5C */ s32 field_0x13B5C; - /* 0x13B60 */ u8 field_0x13B60; - /* 0x13B61 */ u8 field_0x13B61; - /* 0x13B62 */ u8 field_0x13B62; - /* 0x13B63 */ u8 field_0x13B63; - /* 0x13B64 */ u8 field_0x13B64; - /* 0x13B65 */ u8 field_0x13B65; - /* 0x13B66 */ u8 field_0x13B66; + /* 0x13B60 */ bool field_0x13B60; + /* 0x13B61 */ bool field_0x13B61; + /* 0x13B62 */ bool field_0x13B62; + /* 0x13B63 */ bool field_0x13B63; + /* 0x13B64 */ bool field_0x13B64; + /* 0x13B65 */ bool field_0x13B65; + /* 0x13B66 */ bool field_0x13B66; static dLytMeterContainer_c *sInstance; }; diff --git a/include/d/lyt/meter/d_lyt_meter_event_skip.h b/include/d/lyt/meter/d_lyt_meter_event_skip.h index 0f6d7119..b806d48c 100644 --- a/include/d/lyt/meter/d_lyt_meter_event_skip.h +++ b/include/d/lyt/meter/d_lyt_meter_event_skip.h @@ -23,6 +23,8 @@ private: STATE_FUNC_DECLARE(dLytMeterEventSkip_c, Visible); STATE_FUNC_DECLARE(dLytMeterEventSkip_c, Out); + STATE_MGR_DEFINE_UTIL_CHANGESTATE(dLytMeterEventSkip_c); + /* 0x000 */ UI_STATE_MGR_DECLARE(dLytMeterEventSkip_c); /* 0x03C */ d2d::LytBase_c mLyt; /* 0x0D0 */ d2d::AnmGroup_c mAnm[2]; diff --git a/include/d/lyt/meter/d_lyt_meter_ganbari_gauge.h b/include/d/lyt/meter/d_lyt_meter_ganbari_gauge.h index eb6faca0..268614cb 100644 --- a/include/d/lyt/meter/d_lyt_meter_ganbari_gauge.h +++ b/include/d/lyt/meter/d_lyt_meter_ganbari_gauge.h @@ -35,6 +35,10 @@ public: mStaminaPercent = value; } + void setField_0x539(bool v) { + field_0x539 = v; + } + private: void realizeAnimState(); static bool isStaminaLow(f32); @@ -59,6 +63,10 @@ private: STATE_FUNC_DECLARE(dLytMeterGanbariGauge_c, Recovery); STATE_FUNC_DECLARE(dLytMeterGanbariGauge_c, ToMax); + void changeState(const sStateIDIf_c &value) { \ + mStateMgrMain.changeState(value); \ + } + STATE_MGR(dLytMeterGanbariGauge_c) mStateMgrMain; STATE_MGR(dLytMeterGanbariGauge_c) mStateMgrWheel; @@ -71,7 +79,8 @@ private: /* 0x524 */ mVec3_c field_0x524; /* 0x530 */ u8 field_0x530; /* 0x534 */ s32 field_0x534; - /* 0x538 */ s32 field_0x538; + /* 0x538 */ u8 field_0x538; + /* 0x539 */ u8 field_0x539; /* 0x53C */ s32 mOutWaitTimer; /* 0x540 */ s32 field_0x540; /* 0x544 */ s32 field_0x544; diff --git a/include/d/lyt/meter/d_lyt_meter_shield_gauge.h b/include/d/lyt/meter/d_lyt_meter_shield_gauge.h index fb8ee441..50c95115 100644 --- a/include/d/lyt/meter/d_lyt_meter_shield_gauge.h +++ b/include/d/lyt/meter/d_lyt_meter_shield_gauge.h @@ -52,6 +52,8 @@ private: STATE_FUNC_DECLARE(dLytMeterShieldGauge_c, Use); STATE_FUNC_DECLARE(dLytMeterShieldGauge_c, ToMax); + STATE_MGR_DEFINE_UTIL_CHANGESTATE(dLytMeterShieldGauge_c); + /* 0x008 */ UI_STATE_MGR_DECLARE(dLytMeterShieldGauge_c); /* 0x044 */ d2d::dLytSub mLyt; /* 0x0D8 */ d2d::AnmGroup_c mAnm[8]; diff --git a/include/d/lyt/meter/d_lyt_meter_timer.h b/include/d/lyt/meter/d_lyt_meter_timer.h index 85f7c42f..4f10edd8 100644 --- a/include/d/lyt/meter/d_lyt_meter_timer.h +++ b/include/d/lyt/meter/d_lyt_meter_timer.h @@ -248,6 +248,10 @@ public: bool startIn2(); bool startOut2(); + bool getField_0x54() const { + return field_0x54; + } + private: void startIn(); void gotoChangeSiren(); @@ -287,7 +291,7 @@ private: /* 0x49 */ u8 field_0x49; /* 0x4C */ s32 mActualTime; /* 0x50 */ s32 mLastTime; - /* 0x54 */ u8 field_0x54; + /* 0x54 */ bool field_0x54; /* 0x55 */ u8 field_0x55; /* 0x56 */ u8 field_0x56; /* 0x57 */ u8 field_0x57; diff --git a/src/d/lyt/meter/d_lyt_meter.cpp b/src/d/lyt/meter/d_lyt_meter.cpp index 9a26f7c5..98e0e044 100644 --- a/src/d/lyt/meter/d_lyt_meter.cpp +++ b/src/d/lyt/meter/d_lyt_meter.cpp @@ -1,4 +1,6 @@ // clang-format off +#include "d/lyt/d2d.h" +#include "d/d_cursor_hit_check.h" #include "c/c_lib.h" #include "common.h" #include "d/a/d_a_bird.h" @@ -7,6 +9,7 @@ #include "d/d_message.h" #include "d/d_sc_game.h" #include "d/d_sc_title.h" +#include "d/d_stage.h" #include "d/d_stage_mgr.h" #include "d/flag/storyflag_manager.h" #include "d/flag/dungeonflag_manager.h" @@ -14,10 +17,18 @@ #include "d/lyt/d_lyt_area_caption.h" #include "d/lyt/d_lyt_control_game.h" #include "d/lyt/d_lyt_do_button.h" +#include "d/lyt/d_lyt_map.h" #include "d/lyt/d_lyt_meter_configuration.h" +#include "d/lyt/d_lyt_save_mgr.h" #include "d/lyt/d_lyt_unknowns.h" #include "d/lyt/d_window.h" #include "d/lyt/meter/d_lyt_meter.h" +#include "d/lyt/meter/d_lyt_meter_key.h" +#include "d/lyt/meter/d_lyt_meter_drink.h" +#include "d/lyt/meter/d_lyt_meter_timer.h" +#include "d/lyt/d_lyt_bird_gauge.h" +#include "d/lyt/d_lyt_boss_gauge.h" +#include "d/lyt/d_lyt_sky_gauge.h" #include "d/lyt/msg_window/d_lyt_msg_window.h" #include "d/lyt/msg_window/d_lyt_simple_window.h" #include "f/f_manager.h" @@ -561,9 +572,6 @@ u8 dLytMeter_c::getUiMode() { dLytMeter_c::dLytMeter_c() {} #pragma dont_inline reset -extern "C" void fn_800D97E0(int i); -extern "C" void fn_800D9800(int i); - static const d2d::LytBrlanMapping meterBrlanMap[] = { { "basicPosition_00_in.brlan", "G_remoConBtn_00"}, { "basicPosition_00_in.brlan", "G_remoConBtn_01"}, @@ -959,30 +967,138 @@ bool dLytMeter_c::remove() { return true; } +void dLytMeter_c::fn_800D5290() { + dLytMeterContainer_c *container = dLytMeterContainer_c::GetInstance(); + + if (dLytMap_c::getInstance() != nullptr && !dLytMap_c::getInstance()->unkMeterCheck()) { + container->setFlags(0x20); + } + + LytDoButtonRelated::set(LytDoButtonRelated::DO_BUTTON_PLUS, LytDoButtonRelated::DO_0x74); + container->clearFlags(0x100 | 0x80 | 0x40); + if (LytDoButtonRelated::get(LytDoButtonRelated::DO_BUTTON_C) == LytDoButtonRelated::DO_NONE) { + container->clearFlags(0x400); + } +} + +bool dLytMeter_c::fn_800D5350() { + if (field_0x13748 == 1 && dMessage_c::getInstance()->getField_0x328()) { + return true; + } + return false; +} + +bool dLytMeter_c::fn_800D5380(u8 arg) { + if (dAcPy_c::GetLink() != nullptr && + (dAcPy_c::GetLink()->checkActionFlagsCont(0x400 | 0x100 | 0x80 | 0x40 | 0x10 | 0x4 | 0x2 | 0x1) && + (dAcPy_c::GetLink()->checkActionFlagsCont(0x40) || (arg && mItemSelect.getField_0x5794() == 1)))) { + return true; + } + return false; +} + +extern "C" bool checkIsInSkykeepPuzzle(); +bool dLytMeter_c::fn_800D53D0() { + if (checkIsInSkykeepPuzzle() && !field_0x13774) { + return true; + } + return false; +} + +bool dLytMeter_c::fn_800D5420() { + if (!fn_800D5650()) { + if (!dStageMgr_c::GetInstance()->isFaderSettled() || !dScGame_c::GetInstance()->isFaderSettled() || + !dStageMgr_c::GetInstance()->fn_80199250() || !dStage_c::GetInstance()->fn_801B3EE0()) { + return true; + } + } + return false; +} + +bool dLytMeter_c::isSilentRealm() { + if (dScGame_c::currentSpawnInfo.getTrial() == SpawnInfo::TRIAL && !dScGame_c::isCurrentStage("D003_8")) { + return true; + } + return false; +} + +bool dLytMeter_c::fn_800D5590() { + if (dLytMeterContainer_c::getfn_800D97A0() && !dLytMeterContainer_c::GetInstance()->fn_800D56F0()) { + return true; + } + + if (dLytMeterContainer_c::getField_0x13B63()) { + return true; + } + return field_0x13773; +} + +void dLytMeter_c::fn_800D5630() { + if (mpBossGauge != nullptr) { + mpBossGauge->fn_80158940(); + } +} + +bool dLytMeter_c::fn_800D5650() { + if (field_0x13750 >= 0 && field_0x13750 <= 1) { + return true; + } + return false; +} + +bool dLytMeter_c::fn_800D5680() { + if (field_0x13750 >= 2 && field_0x13750 <= 3) { + return true; + } + return false; +} + +bool dLytMeter_c::fn_800D56B0() { + if (dLytSaveMgr_c::GetInstance() != nullptr && dLytSaveMgr_c::GetInstance()->fn_80285650()) { + return true; + } + + if (fn_800D5350()) { + return true; + } + + if ((EventManager::isInEvent() && field_0x1377E == 0 && dAcPy_c::GetLink()->getCurrentAction() != 0x8C && + dMessage_c::getInstance()->getField_0x32C() == 0xC) || + field_0x13774) { + return true; + } + + if (dLytMap_c::getInstance() != nullptr && !dLytMap_c::getInstance()->getFn_80139EA0()) { + return true; + } + + return false; +} + void dLytMeter_c::fn_800D57B0() { - u8 old0x13776 = field_0x13776; - u8 old0x13777 = field_0x13777; - u8 old0x13778 = field_0x13778; - u8 old0x13779 = field_0x13779; - u8 old0x1377A = field_0x1377A; - u8 old0x1377B = field_0x1377B; - u8 old0x1377C = field_0x1377C; - u8 old0x1377D = field_0x1377D; + bool old0x13776 = field_0x13776; + bool old0x13777 = field_0x13777; + bool old0x13778 = field_0x13778; + bool old0x13779 = field_0x13779; + bool old0x1377A = field_0x1377A; + bool old0x1377B = field_0x1377B; + bool old0x1377C = field_0x1377C; + bool old0x1377D = field_0x1377D; dBird_c *bird = nullptr; if (dAcPy_c::GetLink()->getRidingActorType() == dAcPy_c::RIDING_LOFTWING) { bird = static_cast(fManager_c::searchBaseByProfName(fProfile::BIRD, nullptr)); } - field_0x13776 = 1; - field_0x13777 = 1; - field_0x13778 = 1; - field_0x13779 = 1; - field_0x1377A = 1; - field_0x1377B = 1; - field_0x1377C = 1; - field_0x1377D = 1; - field_0x1377E = 0; + field_0x13776 = true; + field_0x13777 = true; + field_0x13778 = true; + field_0x13779 = true; + field_0x1377A = true; + field_0x1377B = true; + field_0x1377C = true; + field_0x1377D = true; + field_0x1377E = false; if (EventManager::getCurrentEventName() != nullptr) { const char *name = EventManager::getCurrentEventName(); @@ -1036,13 +1152,13 @@ void dLytMeter_c::fn_800D57B0() { LytDoButtonRelated::get(LytDoButtonRelated::DO_BUTTON_B) == LytDoButtonRelated::DO_NONE) || (dLytMeterContainer_c::getField_0x13B66() || (fn_800D56B0() && !mItemSelect.fn_800F02F0() && !fn_800D53D0()) || fn_800D5650() || fn_800D5680())) { - field_0x13782[0] = 0; + field_0x13782[0] = false; } if ((fn_800D56B0() && !fn_800D53D0() && !mMinusBtn.fn_800F75E0()) || (dLytMeterContainer_c::getField_0x13B66() || fn_800D5420() || field_0x13750 == 0 || fn_800D5680())) { - field_0x13782[1] = 0; + field_0x13782[1] = false; } if ((fn_800D56B0() && !fn_800D53D0()) @@ -1050,7 +1166,7 @@ void dLytMeter_c::fn_800D57B0() { || (dLytMeterContainer_c::getField_0x13B66() || fn_800D5420() || field_0x13750 == 0 || fn_800D5680()) || (getUiMode() > 1 && !mPlusBtn.getField_0x1C0() && !mPlusBtn.isCalling())) { - field_0x13782[2] = 0; + field_0x13782[2] = false; } if ((fn_800D56B0() && !fn_800D53D0()) @@ -1058,7 +1174,7 @@ void dLytMeter_c::fn_800D57B0() { || (dLytMeterContainer_c::getField_0x13B66() || fn_800D5420() || field_0x13750 == 0 || fn_800D5680()) || (getUiMode() > 1 && !mCrossBtn.fn_800FA730())) { - field_0x13782[3] = 0; + field_0x13782[3] = false; } if ((fn_800D56B0() && !fn_800D53D0()) @@ -1066,7 +1182,7 @@ void dLytMeter_c::fn_800D57B0() { || (dLytMeterContainer_c::getField_0x13B66() || fn_800D5420() || field_0x13750 == 0 || fn_800D5680()) || (getUiMode() != 0 && !mp1Button->shouldCall())) { - field_0x13782[4] = 0; + field_0x13782[4] = false; } if ((fn_800D56B0() && !fn_800D53D0()) @@ -1074,7 +1190,7 @@ void dLytMeter_c::fn_800D57B0() { || (dLytMeterContainer_c::getField_0x13B66() || fn_800D5420() || field_0x13750 == 0 || fn_800D5680()) || (getUiMode() != 0 && !mp2Button->shouldCall())) { - field_0x13782[5] = 0; + field_0x13782[5] = false; } if ((fn_800D56B0() && !fn_800D53D0()) @@ -1082,7 +1198,7 @@ void dLytMeter_c::fn_800D57B0() { || (dLytMeterContainer_c::getField_0x13B66() || fn_800D5420() || field_0x13750 == 0 || fn_800D5680()) || (getUiMode() > 1)) { - field_0x13782[6] = 0; + field_0x13782[6] = false; } if ((fn_800D56B0() && !fn_800D53D0()) @@ -1090,7 +1206,7 @@ void dLytMeter_c::fn_800D57B0() { || (dLytMeterContainer_c::getField_0x13B66() || fn_800D5420() || field_0x13750 == 0 || fn_800D5680()) || (getUiMode() != 0)) { - field_0x13782[7] = 0; + field_0x13782[7] = false; } if ((fn_800D56B0() && !fn_800D53D0() && !mDowsing.fn_800FE490()) @@ -1098,7 +1214,7 @@ void dLytMeter_c::fn_800D57B0() { || (dLytMeterContainer_c::getField_0x13B66() || fn_800D5420() || field_0x13750 == 0 || fn_800D5680()) || (getUiMode() != 0 && !fn_800D5380(true) && !mDowsing.shouldCall() && !mDowsing.fn_800FE490())) { - field_0x13782[8] = 0; + field_0x13782[8] = false; } if ((fn_800D56B0() && !fn_800D53D0()) @@ -1106,7 +1222,7 @@ void dLytMeter_c::fn_800D57B0() { || (dLytMeterContainer_c::getField_0x13B66() || fn_800D5420() || field_0x13750 == 0 || fn_800D5680()) || (getUiMode() != 0 && !fn_800D5380(true) && !mZBtn.isCalling())) { - field_0x13782[9] = 0; + field_0x13782[9] = false; } if ((fn_800D56B0() && !fn_800D53D0()) @@ -1114,7 +1230,7 @@ void dLytMeter_c::fn_800D57B0() { || (dLytMeterContainer_c::getField_0x13B66() || fn_800D5420() || field_0x13750 == 0 || fn_800D5680()) || (getUiMode() != 0)) { - field_0x13782[10] = 0; + field_0x13782[10] = false; } if ((fn_800D56B0() && !fn_800D53D0()) @@ -1122,7 +1238,7 @@ void dLytMeter_c::fn_800D57B0() { || (dLytMeterContainer_c::getField_0x13B66() || fn_800D5420() || field_0x13750 == 0 || fn_800D5680()) || (getUiMode() != 0)) { - field_0x13782[11] = 0; + field_0x13782[11] = false; } if ((!isNotSilentRealmOrLoftwing() || (mShield.getGaugePercentMaybe() == 0.0f && mShield.getField_0x31D()) || @@ -1138,7 +1254,7 @@ void dLytMeter_c::fn_800D57B0() { || (dLytMeterContainer_c::getField_0x13B66() || fn_800D5420() || (dLytSimpleWindow_c::getInstance() != nullptr && dLytSimpleWindow_c::getInstance()->fn_8012B000()) || fn_800D5650() || fn_800D5680())) { - field_0x13782[12] = 0; + field_0x13782[12] = false; } if ((isSilentRealm() || fn_800D5380(false) || field_0x13770 != 3 || @@ -1163,7 +1279,7 @@ void dLytMeter_c::fn_800D57B0() { || (dLytMeterContainer_c::getField_0x13B66() || fn_800D5420() || (dLytSimpleWindow_c::getInstance() != nullptr && dLytSimpleWindow_c::getInstance()->fn_8012B000()) || fn_800D5650() || fn_800D5680())) { - field_0x13782[13] = 0; + field_0x13782[13] = false; } if (dMessage_c::getInstance()->getField_0x2FC() != 0) { @@ -1190,13 +1306,13 @@ void dLytMeter_c::fn_800D57B0() { || (dLytMeterContainer_c::getField_0x13B66() || fn_800D5420() || (dLytSimpleWindow_c::getInstance() != nullptr && dLytSimpleWindow_c::getInstance()->fn_8012B000()) || fn_800D5650() || fn_800D5680())) { - field_0x13782[14] = 0; + field_0x13782[14] = false; } if (!isSilentRealm() || (fn_800D56B0() && !fn_800D5590()) || (dLytMeterContainer_c::getField_0x13B66() || fn_800D5420() || field_0x13750 == 0 || fn_800D5680())) { - field_0x13776 = 0; + field_0x13776 = false; } if (mpTimer != nullptr && field_0x13776 != old0x13776) { @@ -1217,7 +1333,7 @@ void dLytMeter_c::fn_800D57B0() { MinigameManager::isInMinigameState(MinigameManager::ROLLERCOASTER)) || (dLytMeterContainer_c::getField_0x13B66() || fn_800D5420() || fn_800D5650() || fn_800D5680())) { - field_0x13782[15] = 0; + field_0x13782[15] = false; } if ((dAcPy_c::GetLink()->getRidingActorType() != dAcPy_c::RIDING_LOFTWING || fn_800D56B0()) || @@ -1239,7 +1355,7 @@ void dLytMeter_c::fn_800D57B0() { (dLytDobutton_c::getFn0x8010E5D0() != 0x5E || fn_800D56B0() || dLytMeterContainer_c::getField_0x13B66() || fn_800D5420() || fn_800D5650() || fn_800D5680())) { - field_0x13777 = 0; + field_0x13777 = false; } if (mpBirdGauge != nullptr) { @@ -1638,7 +1754,7 @@ bool dLytMeterContainer_c::build() { } fn_800D97E0(0xb); - fn_800D9800(1); + setVisible(true); dMessage_c::getInstance()->init(); mFlags = 0xFFFFFFFF; field_0x13B54 = 0xFFFFFFFF; @@ -1739,12 +1855,65 @@ bool dLytMeterContainer_c::draw() { return true; } +bool dLytMeterContainer_c::fn_800D5670() { + return mMeter.fn_800D5350(); +} + +void dLytMeterContainer_c::fn_800D9680(bool val) { + for (int i = 0; i < METER_NUM_PANES; i++) { + mMeter.field_0x13792[i] = val; + } + mMeter.field_0x137B2 = val; +} + +bool dLytMeterContainer_c::fn_800D56F0() { + if (mMeter.mpTimer != nullptr) { + return mMeter.mpTimer->getField_0x54(); + } + + return false; +} + +void dLytMeterContainer_c::fn_800D9710() { + field_0x13B5C = 8; +} + void dLytMeterContainer_c::setStaminaWheelPercentInternal(f32 percent) { mMeter.mGanbariGauge.setStaminaPercent(percent); } +void dLytMeterContainer_c::fn_800D9730(u8 val) { + mMeter.mItemSelect.fn_800EF6B0(val); + mMeter.mGanbariGauge.setField_0x539(val != 0); +} + +void dLytMeterContainer_c::fn_800D9780(bool val) { + if (!field_0x13B61) { + field_0x13B60 = val; + } +} + +bool dLytMeterContainer_c::fn_800D97A0() { + if (field_0x13B61) { + return false; + } + return field_0x13B60; +} + void dLytMeterContainer_c::setStaminaWheelPercent(f32 percent) { if (sInstance != nullptr) { sInstance->setStaminaWheelPercentInternal(percent); } } + +void dLytMeterContainer_c::fn_800D97E0(u8 arg) { + if (sInstance != nullptr) { + sInstance->fn_800D9730(arg); + } +} + +void dLytMeterContainer_c::setVisible(bool b) { + if (sInstance != nullptr) { + sInstance->mVisible = b; + } +}