metaforce/Runtime/CScanDisplay.hpp

72 lines
1.9 KiB
C++

#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 CScanDisplay
{
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
{
};
public:
CScanDisplay() = default;
void StartScan(TUniqueId, const CScannableObjectInfo&, CGuiTextPane*, CGuiWidget*, float);
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__