mirror of
https://github.com/AxioDL/metaforce.git
synced 2025-12-09 01:47:42 +00:00
Work on CPauseScreen
This commit is contained in:
@@ -15,16 +15,28 @@ class CGuiTextPane;
|
||||
class CGuiSliderGroup;
|
||||
class CAuiImagePane;
|
||||
class CStringTable;
|
||||
class CRandom16;
|
||||
class CArchitectureQueue;
|
||||
|
||||
namespace MP1
|
||||
{
|
||||
|
||||
class CPauseScreenBase
|
||||
{
|
||||
public:
|
||||
enum class EMode
|
||||
{
|
||||
Invalid = -1,
|
||||
Zero = 0,
|
||||
One = 1,
|
||||
Two = 2
|
||||
};
|
||||
private:
|
||||
const CStateManager& x4_mgr;
|
||||
const CGuiFrame& x8_frame;
|
||||
CGuiFrame& x8_frame;
|
||||
const CStringTable& xc_pauseStrg;
|
||||
ResId x10_ = -1;
|
||||
float x14_ = 0.f;
|
||||
EMode x10_mode = EMode::Invalid;
|
||||
float x14_alpha = 0.f;
|
||||
u32 x18_ = 0;
|
||||
u32 x1c_ = 0;
|
||||
zeus::CVector3f x20_;
|
||||
@@ -70,19 +82,41 @@ class CPauseScreenBase
|
||||
{
|
||||
struct
|
||||
{
|
||||
bool x198_24_ : 1;
|
||||
bool x198_25_ : 1;
|
||||
bool x198_26_ : 1;
|
||||
bool x198_27_ : 1;
|
||||
bool x198_28_ : 1;
|
||||
bool x198_29_ : 1;
|
||||
bool x198_24_ready : 1;
|
||||
bool x198_25_handledInput : 1;
|
||||
bool x198_26_exitPauseScreen : 1;
|
||||
bool x198_27_canDraw : 1;
|
||||
bool x198_28_pulseTextArrowTop : 1;
|
||||
bool x198_29_pulseTextArrowBottom : 1;
|
||||
};
|
||||
u32 _dummy = 0;
|
||||
};
|
||||
void InitializeFrameGlue();
|
||||
static std::string GetImagePaneName(u32 i);
|
||||
protected:
|
||||
void Activate(EMode mode);
|
||||
void UpdateSideTable(CGuiTableGroup* table);
|
||||
public:
|
||||
CPauseScreenBase(const CStateManager& mgr, const CGuiFrame& frame, const CStringTable& pauseStrg);
|
||||
CPauseScreenBase(const CStateManager& mgr, CGuiFrame& frame, const CStringTable& pauseStrg);
|
||||
|
||||
bool ShouldExitPauseScreen() const { return x198_26_exitPauseScreen; }
|
||||
bool IsReady();
|
||||
bool CanDraw() const { return x198_27_canDraw; }
|
||||
EMode GetMode() const { return x10_mode; }
|
||||
float GetAlpha() const { return x14_alpha; }
|
||||
|
||||
virtual ~CPauseScreenBase() = default;
|
||||
virtual bool InputDisabled() const { return false; }
|
||||
virtual void TransitioningAway() {}
|
||||
virtual void Update(float dt, CRandom16& rand, CArchitectureQueue& archQueue);
|
||||
virtual void Touch() {}
|
||||
virtual void ProcessControllerInput(const CFinalInput& input);
|
||||
virtual void Draw(float transInterp, float totalAlpha, float yOff);
|
||||
virtual float GetCameraYBias() const { return 0.f; }
|
||||
virtual bool VReady() const=0;
|
||||
virtual void VActivate() const=0;
|
||||
virtual void UpdateRightTable();
|
||||
virtual u32 GetRightTableCount() const=0;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user