matching d_lyt_boss_gauge

This commit is contained in:
compugab
2026-06-08 20:21:47 -04:00
parent 9aac632fd0
commit 695e70ea8f
5 changed files with 219 additions and 17 deletions
+12 -12
View File
@@ -4748,7 +4748,7 @@ isDoingSkyKeepPuzzle__15dLytMeterMain_cFv = .text:0x800D53D0; // type:function s
fn_800D5420__15dLytMeterMain_cFv = .text:0x800D5420; // type:function size:0x114
isSilentRealm__15dLytMeterMain_cFv = .text:0x800D5540; // type:function size:0x4C
fn_800D5590__15dLytMeterMain_cFv = .text:0x800D5590; // type:function size:0x98
fn_800D5630__15dLytMeterMain_cFv = .text:0x800D5630; // type:function size:0x18
fn_800D5630__15dLytMeterMain_cFf = .text:0x800D5630; // type:function size:0x18
isInModeMap__15dLytMeterMain_cFv = .text:0x800D5650; // type:function size:0x24
isInModePause__15dLytMeterMain_cFv = .text:0x800D5680; // type:function size:0x28
shouldBeHiddenGeneral__15dLytMeterMain_cFv = .text:0x800D56B0; // type:function size:0xFC
@@ -8705,24 +8705,24 @@ __dt__22dLytDepositBoxCursor_cFv = .text:0x801580B0; // type:function size:0x1A8
getName__22dLytDepositBoxCursor_cCFv = .text:0x80158260; // type:function size:0x8 scope:weak
getLyt__22dLytDepositBoxCursor_cFv = .text:0x80158270; // type:function size:0x8 scope:weak
getPane__22dLytDepositBoxCursor_cFv = .text:0x80158280; // type:function size:0x8 scope:weak
fn_80158290 = .text:0x80158290; // type:function size:0x4
fn_801582A0 = .text:0x801582A0; // type:function size:0x134
fn_801583E0 = .text:0x801583E0; // type:function size:0x4
fn_801583F0 = .text:0x801583F0; // type:function size:0x4
fn_80158290__15dLytBossGauge_cFv = .text:0x80158290; // type:function size:0x4
fn_801582A0__15dLytBossGauge_cFv = .text:0x801582A0; // type:function size:0x134
fn_801583E0__15dLytBossGauge_cFv = .text:0x801583E0; // type:function size:0x4
fn_801583F0__15dLytBossGauge_cFv = .text:0x801583F0; // type:function size:0x4
fn_80158400__15dLytBossGauge_cFv = .text:0x80158400; // type:function size:0x78
fn_80158480 = .text:0x80158480; // type:function size:0x4
fn_80158490 = .text:0x80158490; // type:function size:0x4
fn_80158480__15dLytBossGauge_cFv = .text:0x80158480; // type:function size:0x4
fn_80158490__15dLytBossGauge_cFv = .text:0x80158490; // type:function size:0x4
fn_801584A0__15dLytBossGauge_cFv = .text:0x801584A0; // type:function size:0x78
fn_80158520 = .text:0x80158520; // type:function size:0x4
fn_80158530 = .text:0x80158530; // type:function size:0x4
fn_80158540 = .text:0x80158540; // type:function size:0x80
fn_801585C0 = .text:0x801585C0; // type:function size:0x4
fn_80158520__15dLytBossGauge_cFv = .text:0x80158520; // type:function size:0x4
fn_80158530__15dLytBossGauge_cFv = .text:0x80158530; // type:function size:0x4
fn_80158540__15dLytBossGauge_cFv = .text:0x80158540; // type:function size:0x80
fn_801585C0__15dLytBossGauge_cFv = .text:0x801585C0; // type:function size:0x4
build__15dLytBossGauge_cFv = .text:0x801585D0; // type:function size:0x188
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__15dLytBossGauge_cFv = .text:0x80158940; // type:function size:0x108
fn_80158940__15dLytBossGauge_cFf = .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
+26 -2
View File
@@ -3,6 +3,8 @@
#include "d/lyt/d2d.h"
#include "s/s_State.hpp"
#include "sized_string.h"
#include "toBeSorted/arc_managers/layout_arc_manager.h"
class dLytBossGauge_c {
public:
@@ -16,12 +18,29 @@ public:
void setMode(s32 mode);
void fn_80158940();
void fn_80158940(f32);
void setField_0x545(bool value) {
field_0x545 = value;
}
void setField_0x546(bool value){
field_0x546 = value;
}
void fn_80158290();
void fn_801582A0();
void fn_801583E0();
void fn_801583F0();
void fn_80158400();
void fn_80158480();
void fn_80158490();
void fn_801584A0();
void fn_80158520();
void fn_80158530();
void fn_80158540();
void fn_801585C0();
private:
STATE_FUNC_DECLARE(dLytBossGauge_c, None);
STATE_FUNC_DECLARE(dLytBossGauge_c, In);
@@ -30,13 +49,18 @@ private:
STATE_MGR_DEFINE_UTIL_CHANGESTATE(dLytBossGauge_c);
static dLytBossGauge_c *sInstance;
/* 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];
/* 0x546 */ bool field_0x546;
/* 0x547 */ u8 field_0x547;
/* 0x548 */ s32 field_0x548;
/* 0x54c */ float field_0x54c;
};
#endif
+1 -1
View File
@@ -99,7 +99,7 @@ public:
bool fn_800D5380(u8);
void executeMap();
bool fn_800D5590();
void fn_800D5630();
void fn_800D5630(f32);
bool isInModeMap();
bool isInModePause();
bool shouldBeHiddenGeneral();
+178
View File
@@ -4,3 +4,181 @@ STATE_DEFINE(dLytBossGauge_c, None);
STATE_DEFINE(dLytBossGauge_c, In);
STATE_DEFINE(dLytBossGauge_c, Move);
STATE_DEFINE(dLytBossGauge_c, Out);
void dLytBossGauge_c::fn_80158290(){0.0f;return;}
void dLytBossGauge_c::fn_801583E0(){return;}
void dLytBossGauge_c::fn_801583F0(){return;}
void dLytBossGauge_c::fn_80158400(){
if (mAnmGroups[0].isEndReached()) {
mAnmGroups[0].setAnimEnable(false);
mStateMgr.changeState(dLytBossGauge_c::StateID_Move);
}
return;
}
void dLytBossGauge_c::fn_80158480(){return;}
void dLytBossGauge_c::fn_80158490(){return;}
void dLytBossGauge_c::fn_801584A0(){
if (field_0x545) {
mAnmGroups[1].setAnimEnable(true);
mAnmGroups[1].setFrame(0.0f);
mStateMgr.changeState(dLytBossGauge_c::StateID_Out);
field_0x545=false;
}
return;
}
void dLytBossGauge_c::fn_80158520(){return;}
void dLytBossGauge_c::fn_80158530(){return;}
void dLytBossGauge_c::fn_80158540(){
if(mAnmGroups[1].isEndReached()){
mAnmGroups[1].setAnimEnable(false);
field_0x546=true;
mStateMgr.changeState(dLytBossGauge_c::StateID_None);
}
}
void dLytBossGauge_c::fn_801585C0(){return;}
void dLytBossGauge_c::fn_801582A0(){
if(field_0x544){
mAnmGroups[0].setAnimEnable(true);
mAnmGroups[0].setFrame(0.0f);
SizedString<64> name;
name[0] = 0;
for(int i = 0; i < 3; i++ ){
name.sprintf("N_bigBoss_%02d", i);
nw4r::lyt::Pane *pane = mLyt.findPane(name);
if(i == field_0x548){
pane->SetVisible(true);
}else{
pane->SetVisible(false);
}
}
mAnmGroups[2].setAnimEnable(true);
mAnmGroups[2].setFrame(0.0f);
mLyt.calc();
mAnmGroups[2].setAnimEnable(false);
mStateMgr.changeState(dLytBossGauge_c::StateID_In);
field_0x546=0;
field_0x544=0;
}
}
static const d2d::LytBrlanMapping brlanMap[] = {
{ "bossGauge_00_in.brlan", "G_inOut_00"},
{ "bossGauge_00_out.brlan", "G_inOut_00"},
{ "bossGauge_00_dangerLoop.brlan", "G_danger_00"},
{ "bossGauge_00_move.brlan", "G_move_00"},
};
bool dLytBossGauge_c::build(){
sInstance = this;
field_0x54c = 0.8f;
void *data = LayoutArcManager::GetInstance()->getLoadedData("BossGauge");
mResAcc.attach(data, "arc");
mLyt.setResAcc(&mResAcc);
mLyt.build("bossGauge_00.brlyt", nullptr);
for(int i =0 ; i<4 ; i++){
mAnmGroups[i].init(brlanMap[i].mFile, &mResAcc, mLyt.getLayout(), brlanMap[i].mName);
mAnmGroups[i].bind(false);
mAnmGroups[i].setAnimEnable(false);
}
mAnmGroups[0].setAnimEnable(true);
mAnmGroups[0].setFrame(0.0f);
mAnmGroups[3].setAnimEnable(true);
mAnmGroups[3].setFrame(0.0f);
mLyt.calc();
mAnmGroups[0].setAnimEnable(false);
mAnmGroups[3].setAnimEnable(false);
mStateMgr.changeState(dLytBossGauge_c::StateID_None);
field_0x544=0;
field_0x545=0;
field_0x546=0;
field_0x548=0;
return true;
}
bool dLytBossGauge_c::remove(){
mLyt.unbindAnims();
for(int i = 0; i<4; i++) {
mAnmGroups[i].remove();
}
return true;
}
bool dLytBossGauge_c::execute(){
mStateMgr.executeState();
if(*mStateMgr.getStateID() != dLytBossGauge_c::StateID_None){
for(int i = 0; i < 3 ; i++){
if(mAnmGroups[i].isEnabled() ){
if(i < 2 && mAnmGroups[i].isStop()){
mAnmGroups[i].setAnimEnable(false);
}
mAnmGroups[i].play();
}
}
mLyt.calc();
}
return true;
}
bool dLytBossGauge_c::draw(){
if(*mStateMgr.getStateID() != dLytBossGauge_c::StateID_None){
mLyt.addToDrawList();
}
return true;
}
void dLytBossGauge_c::setMode(s32 mode){
field_0x548 = mode;
field_0x544 = 1;
return;
}
void dLytBossGauge_c::fn_80158940(f32 f){
int f2 = mAnmGroups[3].getAnimDuration() * f + 0.5f;
mAnmGroups[3].setAnimEnable(true);
mAnmGroups[3].setFrame(f2);
mLyt.calc();
mAnmGroups[3].setAnimEnable(false);
if(f >= field_0x54c){
if(!mAnmGroups[2].isEnabled()){
mAnmGroups[2].setAnimEnable(true);
mAnmGroups[2].setFrame(0.0f);
}else{
mAnmGroups[2].setAnimEnable(false);
}
}
return;
}
+2 -2
View File
@@ -1058,9 +1058,9 @@ bool dLytMeterMain_c::fn_800D5590() {
return field_0x13773;
}
void dLytMeterMain_c::fn_800D5630() {
void dLytMeterMain_c::fn_800D5630(f32 f) {
if (mpBossGauge != nullptr) {
mpBossGauge->fn_80158940();
mpBossGauge->fn_80158940(f);
}
}