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;
|
2017-11-24 08:23:28 +00:00
|
|
|
friend class CActor;
|
2017-02-21 03:29:28 +00:00
|
|
|
CLightParameters x0_lightParms;
|
2016-04-18 01:58:13 +00:00
|
|
|
CScannableParameters x40_scanParms;
|
2017-08-13 05:26:14 +00:00
|
|
|
std::pair<CAssetId, CAssetId> x44_xrayAssets = {};
|
|
|
|
std::pair<CAssetId, CAssetId> x4c_thermalAssets = {};
|
2016-04-18 01:58:13 +00:00
|
|
|
CVisorParameters x54_visorParms;
|
2017-05-10 10:03:29 +00:00
|
|
|
union
|
|
|
|
{
|
|
|
|
struct
|
|
|
|
{
|
2018-02-13 06:46:59 +00:00
|
|
|
bool x58_24_globalTimeProvider : 1;
|
2017-05-10 10:03:29 +00:00
|
|
|
bool x58_25_thermalHeat : 1;
|
2018-02-13 06:46:59 +00:00
|
|
|
bool x58_26_renderUnsorted : 1;
|
2017-11-24 08:23:28 +00:00
|
|
|
bool x58_27_noSortThermal : 1;
|
2017-05-10 10:03:29 +00:00
|
|
|
};
|
|
|
|
u32 _dummy = 0;
|
|
|
|
};
|
2017-02-28 07:31:14 +00:00
|
|
|
float x5c_ = 0.f;
|
|
|
|
float x60_ = 0.f;
|
2018-02-09 07:12:26 +00:00
|
|
|
float x64_thermalMag = 0.f;
|
2017-02-21 03:29:28 +00:00
|
|
|
|
2016-04-18 01:58:13 +00:00
|
|
|
public:
|
2018-02-13 06:46:59 +00:00
|
|
|
CActorParameters() : x58_24_globalTimeProvider(true), x58_25_thermalHeat(false),
|
|
|
|
x58_26_renderUnsorted(false), x58_27_noSortThermal(false) {}
|
2016-04-18 01:58:13 +00:00
|
|
|
CActorParameters(const CLightParameters& lightParms, const CScannableParameters& scanParms,
|
2018-02-13 06:46:59 +00:00
|
|
|
const std::pair<CAssetId, CAssetId>& xrayAssets,
|
|
|
|
const std::pair<CAssetId, CAssetId>& thermalAssets,
|
|
|
|
const CVisorParameters& visorParms, bool globalTimeProvider, bool thermalHeat,
|
|
|
|
bool renderUnsorted, bool noSortThermal)
|
2017-02-21 03:29:28 +00:00
|
|
|
: x0_lightParms(lightParms)
|
|
|
|
, x40_scanParms(scanParms)
|
|
|
|
, x44_xrayAssets(xrayAssets)
|
|
|
|
, x4c_thermalAssets(thermalAssets)
|
|
|
|
, x54_visorParms(visorParms)
|
2018-02-13 06:46:59 +00:00
|
|
|
, x58_24_globalTimeProvider(globalTimeProvider)
|
2017-05-10 10:03:29 +00:00
|
|
|
, x58_25_thermalHeat(thermalHeat)
|
2018-02-13 06:46:59 +00:00
|
|
|
, x58_26_renderUnsorted(renderUnsorted)
|
|
|
|
, x58_27_noSortThermal(noSortThermal)
|
2017-02-21 03:29:28 +00:00
|
|
|
{
|
|
|
|
}
|
2016-12-10 02:35:20 +00:00
|
|
|
CActorParameters Scannable(const CScannableParameters& sParms) const
|
|
|
|
{
|
|
|
|
CActorParameters aParms = *this;
|
|
|
|
aParms.x40_scanParms = sParms;
|
|
|
|
return aParms;
|
|
|
|
}
|
|
|
|
|
2017-02-21 03:29:28 +00:00
|
|
|
static CActorParameters None() { return CActorParameters(); }
|
2018-05-14 03:38:36 +00:00
|
|
|
CActorParameters HotInThermal(bool hot) const
|
|
|
|
{
|
|
|
|
CActorParameters ret = *this;
|
|
|
|
ret.x58_25_thermalHeat = hot;
|
|
|
|
return ret;
|
|
|
|
}
|
2016-05-03 08:27:28 +00:00
|
|
|
void SetVisorParameters(const CVisorParameters& vParams) { x54_visorParms = vParams; }
|
2017-02-21 03:29:28 +00:00
|
|
|
const CVisorParameters& GetVisorParameters() const { return x54_visorParms; }
|
|
|
|
const CLightParameters& GetLightParameters() const { return x0_lightParms; }
|
2017-08-25 06:18:09 +00:00
|
|
|
bool HasThermalHeat() const { return x58_25_thermalHeat; }
|
2016-04-18 01:58:13 +00:00
|
|
|
};
|
|
|
|
}
|
|
|
|
|
|
|
|
#endif // __URDE_CACTORPARAMETERS_HPP__
|