#ifndef __URDE_CACTORPARAMETERS_HPP__ #define __URDE_CACTORPARAMETERS_HPP__ #include "CLightParameters.hpp" #include "CScannableParameters.hpp" #include "CVisorParameters.hpp" namespace urde { class CActorParameters { friend class ScriptLoader; CLightParameters x0_lightParms; CScannableParameters x40_scanParms; std::pair x44_xrayAssets = {}; std::pair x4c_thermalAssets = {}; CVisorParameters x54_visorParms; bool b1 : 1; bool b2 : 1; bool b3 : 1; bool b4 : 1; float x5c_ = 0.f; float x60_ = 0.f; float x64_ = 0.f; public: CActorParameters() : b1(true), b2(false), b3(false), b4(false) {} CActorParameters(const CLightParameters& lightParms, const CScannableParameters& scanParms, const std::pair& xrayAssets, const std::pair& thermalAssets, const CVisorParameters& visorParms, bool a, bool b, bool c, bool d) : x0_lightParms(lightParms) , x40_scanParms(scanParms) , x44_xrayAssets(xrayAssets) , x4c_thermalAssets(thermalAssets) , x54_visorParms(visorParms) , b1(a) , b2(b) , b3(c) , b4(d) { } CActorParameters Scannable(const CScannableParameters& sParms) const { CActorParameters aParms = *this; aParms.x40_scanParms = sParms; return aParms; } static CActorParameters None() { return CActorParameters(); } void SetVisorParameters(const CVisorParameters& vParams) { x54_visorParms = vParams; } const CVisorParameters& GetVisorParameters() const { return x54_visorParms; } const CLightParameters& GetLightParameters() const { return x0_lightParms; } }; } #endif // __URDE_CACTORPARAMETERS_HPP__