2016-04-20 21:44:18 +00:00
|
|
|
#ifndef __URDE_CSCRIPTPLATFORM_HPP__
|
|
|
|
#define __URDE_CSCRIPTPLATFORM_HPP__
|
|
|
|
|
|
|
|
#include "CPhysicsActor.hpp"
|
|
|
|
#include "optional.hpp"
|
|
|
|
#include "CToken.hpp"
|
2017-06-11 05:49:27 +00:00
|
|
|
#include "CHealthInfo.hpp"
|
|
|
|
#include "CDamageVulnerability.hpp"
|
2016-04-20 21:44:18 +00:00
|
|
|
|
|
|
|
namespace urde
|
|
|
|
{
|
|
|
|
class CCollidableOBBTreeGroup;
|
2017-06-11 05:49:27 +00:00
|
|
|
class CCollidableOBBTreeGroupContainer;
|
|
|
|
|
|
|
|
struct SRiders
|
|
|
|
{
|
|
|
|
TUniqueId x0_uid;
|
|
|
|
u32 x4_;
|
|
|
|
zeus::CTransform x8_transform;
|
|
|
|
};
|
2016-04-20 21:44:18 +00:00
|
|
|
|
|
|
|
class CScriptPlatform : public CPhysicsActor
|
|
|
|
{
|
2017-06-11 05:49:27 +00:00
|
|
|
u32 x254_;
|
|
|
|
TUniqueId x258_ = kInvalidUniqueId;
|
|
|
|
TUniqueId x25a_ = kInvalidUniqueId;
|
|
|
|
float x25c_;
|
|
|
|
float x260_;
|
|
|
|
float x264_;
|
|
|
|
float x268_;
|
|
|
|
float x26c_;
|
|
|
|
zeus::CVector3f x270_;
|
|
|
|
zeus::CQuaternion x27c_;
|
|
|
|
CHealthInfo x28c_;
|
|
|
|
CHealthInfo x294_;
|
|
|
|
CDamageVulnerability x29c_;
|
|
|
|
rstl::optional_object<TLockedToken<CCollidableOBBTreeGroupContainer>> x304_treeGroupContainer;
|
|
|
|
std::unique_ptr<CCollidableOBBTreeGroup> x314_treeGroup;
|
|
|
|
std::vector<SRiders> x318_riders;
|
2018-02-12 05:30:21 +00:00
|
|
|
std::vector<SRiders> x328_slaves1;
|
|
|
|
std::vector<SRiders> x338_slaves2;
|
2017-06-11 05:49:27 +00:00
|
|
|
float x348_;
|
|
|
|
u32 x34c_;
|
|
|
|
u32 x350_;
|
|
|
|
TUniqueId x354_;
|
|
|
|
union
|
|
|
|
{
|
|
|
|
struct
|
|
|
|
{
|
|
|
|
bool x356_24_ : 1;
|
|
|
|
bool x356_25_ : 1;
|
|
|
|
bool x356_26_ : 1;
|
|
|
|
bool x356_27_ : 1;
|
|
|
|
bool x356_28_ : 1;
|
|
|
|
bool x356_29_ : 1;
|
|
|
|
bool x356_30_ : 1;
|
|
|
|
bool x356_31_ : 1;
|
|
|
|
};
|
|
|
|
u32 x356_dummy = 0;
|
|
|
|
};
|
|
|
|
|
2016-04-20 21:44:18 +00:00
|
|
|
public:
|
2017-11-13 06:19:18 +00:00
|
|
|
CScriptPlatform(TUniqueId, std::string_view name, const CEntityInfo& info, const zeus::CTransform& xf,
|
2016-09-02 15:26:29 +00:00
|
|
|
CModelData&& mData, const CActorParameters& actParms, const zeus::CAABox& aabb, float, bool, float,
|
|
|
|
bool, const CHealthInfo& hInfo, const CDamageVulnerability& dInfo,
|
2017-06-11 05:49:27 +00:00
|
|
|
const rstl::optional_object<TLockedToken<CCollidableOBBTreeGroupContainer>>& dcln, bool, u32, u32);
|
2017-01-15 03:07:01 +00:00
|
|
|
|
|
|
|
void Accept(IVisitor& visitor);
|
2017-06-11 05:49:27 +00:00
|
|
|
rstl::optional_object<zeus::CAABox> GetTouchBounds() const;
|
2017-06-18 01:58:13 +00:00
|
|
|
bool IsRider(TUniqueId id) const;
|
2018-02-12 05:30:21 +00:00
|
|
|
bool IsSlave(TUniqueId id) const;
|
|
|
|
std::vector<SRiders>& GetX328() { return x328_slaves1; }
|
|
|
|
const std::vector<SRiders>& GetX328() const { return x328_slaves1; }
|
|
|
|
std::vector<SRiders>& GetX338() { return x338_slaves2; }
|
|
|
|
const std::vector<SRiders>& GetX338() const { return x338_slaves2; }
|
2017-08-29 13:17:52 +00:00
|
|
|
void AddSlave(TUniqueId, CStateManager&) {}
|
2018-02-11 05:27:00 +00:00
|
|
|
bool HasComplexCollision() const { return x314_treeGroup.operator bool(); }
|
2016-04-20 21:44:18 +00:00
|
|
|
};
|
|
|
|
}
|
|
|
|
|
|
|
|
#endif // __URDE_CSCRIPTPLATFORM_HPP__
|