summaryrefslogtreecommitdiff
path: root/src/d
diff options
context:
space:
mode:
authorcompugab <compugab@hotmail.com>2026-06-08 20:21:47 -0400
committercompugab <compugab@hotmail.com>2026-06-08 20:21:47 -0400
commit695e70ea8f81623438c801d4de32e087cebcd03d (patch)
treee5a3e785e85e1f52e4748044a09931a61f48ad15 /src/d
parent9aac632fd0ec4c06141aa400771cd138fbc9e89a (diff)
matching d_lyt_boss_gauge
Diffstat (limited to 'src/d')
-rw-r--r--src/d/lyt/d_lyt_boss_gauge.cpp178
-rw-r--r--src/d/lyt/meter/d_lyt_meter.cpp4
2 files changed, 180 insertions, 2 deletions
diff --git a/src/d/lyt/d_lyt_boss_gauge.cpp b/src/d/lyt/d_lyt_boss_gauge.cpp
index 990dd989..7e594858 100644
--- a/src/d/lyt/d_lyt_boss_gauge.cpp
+++ b/src/d/lyt/d_lyt_boss_gauge.cpp
@@ -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;
+}
diff --git a/src/d/lyt/meter/d_lyt_meter.cpp b/src/d/lyt/meter/d_lyt_meter.cpp
index 25798d54..9f2e6038 100644
--- a/src/d/lyt/meter/d_lyt_meter.cpp
+++ b/src/d/lyt/meter/d_lyt_meter.cpp
@@ -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);
}
}