2018-10-07 03:42:33 +00:00
|
|
|
#pragma once
|
2017-04-02 03:03:37 +00:00
|
|
|
|
2019-09-22 21:52:05 +00:00
|
|
|
#include "Runtime/RetroTypes.hpp"
|
|
|
|
#include "Runtime/GuiSys/CHudInterface.hpp"
|
|
|
|
#include <zeus/CVector3f.hpp>
|
2017-04-03 05:37:54 +00:00
|
|
|
|
2018-12-08 05:30:43 +00:00
|
|
|
namespace urde {
|
2019-09-22 21:52:05 +00:00
|
|
|
class CAuiEnergyBarT01;
|
|
|
|
class CAuiMeter;
|
2017-04-03 05:37:54 +00:00
|
|
|
class CGuiFrame;
|
|
|
|
class CGuiTextPane;
|
2019-09-22 21:52:05 +00:00
|
|
|
class CGuiWidget;
|
2017-04-02 03:03:37 +00:00
|
|
|
|
2018-12-08 05:30:43 +00:00
|
|
|
class CHudEnergyInterface {
|
|
|
|
EHudType x0_hudType;
|
|
|
|
float x4_energyLowFader = 0.f;
|
|
|
|
float x8_flashMag = 0.f;
|
|
|
|
float xc_tankEnergy;
|
|
|
|
int x10_totalEnergyTanks;
|
|
|
|
int x14_numTanksFilled;
|
|
|
|
float x18_cachedBarEnergy = 0.f;
|
|
|
|
union {
|
|
|
|
struct {
|
|
|
|
bool x1c_24_ : 1;
|
|
|
|
bool x1c_25_ : 1;
|
|
|
|
bool x1c_26_barDirty : 1;
|
|
|
|
bool x1c_27_energyLow : 1;
|
2017-04-03 05:37:54 +00:00
|
|
|
};
|
2018-12-08 05:30:43 +00:00
|
|
|
u16 _dummy = 0;
|
|
|
|
};
|
|
|
|
CGuiTextPane* x20_textpane_energydigits;
|
|
|
|
CAuiMeter* x24_meter_energytanks;
|
|
|
|
CGuiTextPane* x28_textpane_energywarning;
|
|
|
|
CAuiEnergyBarT01* x2c_energybart01_energybar;
|
|
|
|
|
2017-04-03 05:37:54 +00:00
|
|
|
public:
|
2018-12-08 05:30:43 +00:00
|
|
|
CHudEnergyInterface(CGuiFrame& selHud, float tankEnergy, int totalEnergyTanks, int numTanksFilled, bool energyLow,
|
|
|
|
EHudType hudType);
|
|
|
|
void Update(float dt, float energyLowPulse);
|
|
|
|
void SetEnergyLow(bool energyLow);
|
|
|
|
void SetFlashMagnitude(float mag);
|
|
|
|
void SetNumFilledEnergyTanks(int numTanksFilled);
|
|
|
|
void SetNumTotalEnergyTanks(int totalEnergyTanks);
|
|
|
|
void SetCurrEnergy(float tankEnergy, bool wrapped);
|
|
|
|
static std::pair<zeus::CVector3f, zeus::CVector3f> CombatEnergyCoordFunc(float t);
|
|
|
|
static std::pair<zeus::CVector3f, zeus::CVector3f> XRayEnergyCoordFunc(float t);
|
|
|
|
static std::pair<zeus::CVector3f, zeus::CVector3f> ThermalEnergyCoordFunc(float t);
|
|
|
|
static std::pair<zeus::CVector3f, zeus::CVector3f> BallEnergyCoordFunc(float t);
|
2017-04-02 03:03:37 +00:00
|
|
|
};
|
|
|
|
|
2018-12-08 05:30:43 +00:00
|
|
|
} // namespace urde
|