mirror of
https://github.com/zeldaret/ss
synced 2026-07-07 13:33:21 -04:00
matching d_lyt_boss_gauge
This commit is contained in:
+12
-12
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user