2018-10-07 03:42:33 +00:00
|
|
|
#pragma once
|
2017-03-01 03:42:06 +00:00
|
|
|
|
|
|
|
#include "RetroTypes.hpp"
|
|
|
|
#include "zeus/CAABox.hpp"
|
|
|
|
#include "Collision/CJointCollisionDescription.hpp"
|
|
|
|
|
|
|
|
namespace urde
|
|
|
|
{
|
2017-03-26 04:12:06 +00:00
|
|
|
class CMaterialList;
|
2017-03-01 03:42:06 +00:00
|
|
|
class CAnimData;
|
|
|
|
class CCollisionActor;
|
|
|
|
class CStateManager;
|
|
|
|
class CCollisionActorManager
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
enum class EUpdateOptions
|
|
|
|
{
|
2018-11-10 02:47:07 +00:00
|
|
|
Zero,
|
|
|
|
One
|
2017-03-01 03:42:06 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
private:
|
|
|
|
std::vector<CJointCollisionDescription> x0_jointDescriptions;
|
2018-11-10 02:47:07 +00:00
|
|
|
TUniqueId x10_ownerId;
|
|
|
|
bool x12_;
|
2017-05-07 06:55:01 +00:00
|
|
|
bool x13_ = false;
|
2018-11-10 02:47:07 +00:00
|
|
|
bool x14_ = true;
|
2017-03-01 03:42:06 +00:00
|
|
|
public:
|
|
|
|
CCollisionActorManager(CStateManager&, TUniqueId, TAreaId, const std::vector<CJointCollisionDescription>&, bool);
|
|
|
|
|
|
|
|
void Update(float, CStateManager&, EUpdateOptions) const;
|
|
|
|
void Destroy(CStateManager&) const;
|
|
|
|
void SetActive(CStateManager&, bool);
|
2017-03-26 04:12:06 +00:00
|
|
|
void AddMaterial(CStateManager&, const CMaterialList&);
|
2017-03-01 03:42:06 +00:00
|
|
|
|
|
|
|
u32 GetNumCollisionActors() const;
|
2017-03-13 01:07:03 +00:00
|
|
|
CJointCollisionDescription GetCollisionDescFromIndex(u32) const;
|
2017-03-01 03:42:06 +00:00
|
|
|
zeus::CTransform GetWRLocatorTransform(const CAnimData&, CSegId, const zeus::CTransform&, const zeus::CTransform&);
|
|
|
|
};
|
|
|
|
}
|