Files
ss/include/d/lyt/meter/d_lyt_meter_key.h
T
2025-04-21 21:51:05 +02:00

137 lines
3.6 KiB
C++

#ifndef D_LYT_METER_KEY_H
#define D_LYT_METER_KEY_H
#include "common.h"
#include "d/lyt/d2d.h"
#include "m/m_vec.h"
#include "nw4r/lyt/lyt_pane.h"
#include "s/s_State.hpp"
class dLytMeterKakeraKey_c {
public:
dLytMeterKakeraKey_c() : mStateMgr(*this, sStateID::null) {}
~dLytMeterKakeraKey_c() {}
bool build(d2d::ResAccIf_c *);
bool remove();
bool execute();
bool draw();
void setPosition(s32 position);
void setShouldBeVisible(bool v) {
mShouldBeVisible = v;
}
private:
STATE_FUNC_DECLARE(dLytMeterKakeraKey_c, Wait);
STATE_FUNC_DECLARE(dLytMeterKakeraKey_c, On);
STATE_FUNC_DECLARE(dLytMeterKakeraKey_c, Increase);
STATE_FUNC_DECLARE(dLytMeterKakeraKey_c, Active);
STATE_FUNC_DECLARE(dLytMeterKakeraKey_c, Off);
STATE_MGR_DEFINE_UTIL_CHANGESTATE(dLytMeterKakeraKey_c);
/* 0x000 */ UI_STATE_MGR_DECLARE(dLytMeterKakeraKey_c);
/* 0x03C */ d2d::dLytSub mLyt;
/* 0x0D0 */ d2d::AnmGroup_c mAnm[8];
/* 0x2D0 */ nw4r::lyt::Pane *mpPane;
/* 0x2D4 */ mVec3_c mPanePositions[2];
/* 0x2EC */ mVec3_c mPosition;
/* 0x2F8 */ u32 mSavedKeyPieceCount;
/* 0x2FC */ s32 mNextKeyPieceCount;
/* 0x300 */ s32 mPosititionIndex;
/* 0x304 */ s32 mOldPosititionIndex;
/* 0x308 */ s32 mMovementFrame;
/* 0x30C */ u8 mShouldBeVisible;
};
class dLytMeterBossKey_c {
public:
dLytMeterBossKey_c() : mStateMgr(*this, sStateID::null) {}
~dLytMeterBossKey_c() {}
virtual d2d::LytBase_c *getLyt() {
return &mLyt;
}
virtual const char *getName() const {
return mLyt.getName();
}
bool build(d2d::ResAccIf_c *);
bool remove();
bool execute();
bool draw();
void setPosition(s32 position);
void setShouldBeVisible(bool v) {
mShouldBeVisible = v;
}
private:
STATE_FUNC_DECLARE(dLytMeterBossKey_c, Wait);
STATE_FUNC_DECLARE(dLytMeterBossKey_c, On);
STATE_FUNC_DECLARE(dLytMeterBossKey_c, Active);
STATE_FUNC_DECLARE(dLytMeterBossKey_c, Off);
STATE_MGR_DEFINE_UTIL_CHANGESTATE(dLytMeterBossKey_c);
/* 0x004 */ UI_STATE_MGR_DECLARE(dLytMeterBossKey_c);
/* 0x040 */ d2d::dLytSub mLyt;
/* 0x0D4 */ d2d::AnmGroup_c mAnm[5];
/* 0x214 */ nw4r::lyt::Pane *mpPane;
/* 0x218 */ mVec3_c mPanePositions[4];
/* 0x248 */ mVec3_c mPosition;
/* 0x254 */ s32 mPosititionIndex;
/* 0x258 */ s32 mOldPosititionIndex;
/* 0x25C */ s32 mMovementFrame;
/* 0x260 */ u8 mShouldBeVisible;
};
class dLytMeterSmallKey_c {
public:
dLytMeterSmallKey_c() : mStateMgr(*this, sStateID::null) {}
~dLytMeterSmallKey_c() {}
virtual d2d::LytBase_c *getLyt() {
return &mLyt;
}
virtual const char *getName() const {
return mLyt.getName();
}
bool build(d2d::ResAccIf_c *);
bool remove();
bool execute();
bool draw();
void setPosition(s32 position);
void setShouldBeVisible(bool v) {
mShouldBeVisible = v;
}
private:
STATE_FUNC_DECLARE(dLytMeterSmallKey_c, Wait);
STATE_FUNC_DECLARE(dLytMeterSmallKey_c, On);
STATE_FUNC_DECLARE(dLytMeterSmallKey_c, Active);
STATE_FUNC_DECLARE(dLytMeterSmallKey_c, Off);
STATE_MGR_DEFINE_UTIL_CHANGESTATE(dLytMeterSmallKey_c);
/* 0x004 */ UI_STATE_MGR_DECLARE(dLytMeterSmallKey_c);
/* 0x040 */ d2d::dLytSub mLyt;
/* 0x0D4 */ d2d::AnmGroup_c mAnm[5];
/* 0x214 */ nw4r::lyt::Pane *mpPane;
/* 0x218 */ mVec3_c mPanePositions[4];
/* 0x248 */ mVec3_c mPosition;
/* 0x254 */ s32 mSavedSmallKeyCount;
/* 0x258 */ s32 mPosititionIndex;
/* 0x25C */ s32 mOldPosititionIndex;
/* 0x260 */ s32 mMovementFrame;
/* 0x264 */ u8 mShouldBeVisible;
};
#endif