metaforce/Runtime/World/CActorParameters.hpp

66 lines
1.9 KiB
C++
Raw Normal View History

2016-04-18 01:58:13 +00:00
#ifndef __URDE_CACTORPARAMETERS_HPP__
#define __URDE_CACTORPARAMETERS_HPP__
#include "CLightParameters.hpp"
#include "CScannableParameters.hpp"
#include "CVisorParameters.hpp"
namespace urde
{
class CActorParameters
{
2016-04-19 00:17:49 +00:00
friend class ScriptLoader;
CLightParameters x0_lightParms;
2016-04-18 01:58:13 +00:00
CScannableParameters x40_scanParms;
std::pair<ResId, ResId> x44_xrayAssets = {};
std::pair<ResId, ResId> x4c_thermalAssets = {};
CVisorParameters x54_visorParms;
union
{
struct
{
bool x58_24_ : 1;
bool x58_25_thermalHeat : 1;
bool x58_26_ : 1;
bool x58_27_ : 1;
};
u32 _dummy = 0;
};
2017-02-28 07:31:14 +00:00
float x5c_ = 0.f;
float x60_ = 0.f;
float x64_ = 0.f;
2016-04-18 01:58:13 +00:00
public:
CActorParameters() : x58_24_(true), x58_25_thermalHeat(false), x58_26_(false), x58_27_(false) {}
2016-04-18 01:58:13 +00:00
CActorParameters(const CLightParameters& lightParms, const CScannableParameters& scanParms,
const std::pair<ResId, ResId>& xrayAssets, const std::pair<ResId, ResId>& thermalAssets,
const CVisorParameters& visorParms, bool b1, bool thermalHeat, bool c, bool d)
: x0_lightParms(lightParms)
, x40_scanParms(scanParms)
, x44_xrayAssets(xrayAssets)
, x4c_thermalAssets(thermalAssets)
, x54_visorParms(visorParms)
, x58_24_(b1)
, x58_25_thermalHeat(thermalHeat)
, x58_26_(c)
, x58_27_(d)
{
}
CActorParameters Scannable(const CScannableParameters& sParms) const
{
CActorParameters aParms = *this;
aParms.x40_scanParms = sParms;
return aParms;
}
static CActorParameters None() { return CActorParameters(); }
2016-04-22 20:22:45 +00:00
2016-05-03 08:27:28 +00:00
void SetVisorParameters(const CVisorParameters& vParams) { x54_visorParms = vParams; }
const CVisorParameters& GetVisorParameters() const { return x54_visorParms; }
const CLightParameters& GetLightParameters() const { return x0_lightParms; }
2016-04-18 01:58:13 +00:00
};
}
#endif // __URDE_CACTORPARAMETERS_HPP__