mirror of
https://github.com/AxioDL/metaforce.git
synced 2025-12-08 21:07:42 +00:00
Lots of HUD-related implementations
This commit is contained in:
82
Runtime/GuiSys/CScanDisplay.hpp
Normal file
82
Runtime/GuiSys/CScanDisplay.hpp
Normal file
@@ -0,0 +1,82 @@
|
||||
#ifndef __URDE_CSCANDISPLAY_HPP__
|
||||
#define __URDE_CSCANDISPLAY_HPP__
|
||||
|
||||
#include "RetroTypes.hpp"
|
||||
#include "zeus/CColor.hpp"
|
||||
#include "zeus/CVector2f.hpp"
|
||||
#include "zeus/CQuaternion.hpp"
|
||||
#include "CScannableObjectInfo.hpp"
|
||||
#include "Graphics/CTexture.hpp"
|
||||
|
||||
namespace urde
|
||||
{
|
||||
class CGuiTextPane;
|
||||
class CGuiWidget;
|
||||
class CGuiModel;
|
||||
class CFinalInput;
|
||||
class CScanDisplay
|
||||
{
|
||||
friend class CHudDecoInterfaceScan;
|
||||
public:
|
||||
class CDataDot
|
||||
{
|
||||
public:
|
||||
enum class EDotState
|
||||
{
|
||||
Zero,
|
||||
One
|
||||
};
|
||||
private:
|
||||
EDotState x0_ = EDotState::Zero;
|
||||
zeus::CVector2f x4_;
|
||||
zeus::CVector2f xc_;
|
||||
zeus::CVector2f x14_;
|
||||
float x1c_ = 0.f;
|
||||
float x20_ = 0.f;
|
||||
float x24_ = 0.f;
|
||||
float x28_ = 0.f;
|
||||
public:
|
||||
CDataDot() = default;
|
||||
void Update(float);
|
||||
void Draw(const zeus::CColor&, float) const;
|
||||
float GetTransitionFactor() const;
|
||||
void StartTransitionTo(const zeus::CVector2f&, float);
|
||||
void SetDestPosition(const zeus::CVector2f&);
|
||||
void SetDesiredAlpha(float);
|
||||
void SetDotState(EDotState);
|
||||
void SetAlpha(float);
|
||||
zeus::CVector2f GetCurrPosition() const;
|
||||
EDotState GetDotState() const;
|
||||
};
|
||||
|
||||
struct SBucketBackground
|
||||
{
|
||||
};
|
||||
|
||||
private:
|
||||
u32 xc_;
|
||||
TUniqueId x10_;
|
||||
float x1a8_;
|
||||
|
||||
public:
|
||||
CScanDisplay() = default;
|
||||
void ProcessInput(const CFinalInput& input);
|
||||
void StartScan(TUniqueId id, const CScannableObjectInfo& scanInfo, CGuiTextPane* message,
|
||||
CGuiTextPane* scrollMessage, CGuiWidget* textGroup, CGuiModel* xmark,
|
||||
CGuiModel* abutton, CGuiModel* dash, float scanTime);
|
||||
void StopScan();
|
||||
void InitializeFrame(float);
|
||||
void Update(float, float);
|
||||
void SetBackgroundBucketOccluded(s32, float);
|
||||
bool PanelCoversBucketBackground(CScannableObjectInfo::EPanelType, s32);
|
||||
void Draw() const;
|
||||
void SetBaseOrientation(const zeus::CQuaternion&);
|
||||
void SetDebugCameraOptions(float, float, float);
|
||||
void SetPanelTranslationX(float);
|
||||
void GetDownloadStartTime(s32) const;
|
||||
void GetDownloadFraction(s32, float) const;
|
||||
void GetScanState() const;
|
||||
void ScanTarget() const;
|
||||
};
|
||||
}
|
||||
#endif // __URDE_CSCANDISPLAY_HPP__
|
||||
Reference in New Issue
Block a user