2
0
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:
Jack Andersen
2017-05-01 18:00:38 -10:00
parent 159b83b37a
commit 394cbf36e0
13 changed files with 576 additions and 52 deletions

View File

@@ -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;
};
}