mirror of
https://github.com/AxioDL/metaforce.git
synced 2025-12-08 22:27:43 +00:00
Initial CScriptPlatform imps, minor cleanup, and RandomStatic GLSL fixes
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
#include "CScriptPlatform.hpp"
|
||||
#include "Collision/CMaterialList.hpp"
|
||||
#include "Collision/CCollidableOBBTreeGroup.hpp"
|
||||
#include "TCastTo.hpp"
|
||||
|
||||
namespace urde
|
||||
@@ -17,18 +18,31 @@ static CMaterialList MakePlatformMaterialList()
|
||||
|
||||
CScriptPlatform::CScriptPlatform(TUniqueId uid, const std::string& name, const CEntityInfo& info,
|
||||
const zeus::CTransform& xf, CModelData&& mData, const CActorParameters& actParms,
|
||||
const zeus::CAABox& aabb, float, bool, float, bool active, const CHealthInfo& hInfo,
|
||||
const CDamageVulnerability& dInfo,
|
||||
const rstl::optional_object<TLockedToken<CCollidableOBBTreeGroup>>& dcln, bool, u32,
|
||||
u32)
|
||||
const zeus::CAABox& aabb, float f1, bool, float f2, bool active,
|
||||
const CHealthInfo& hInfo, const CDamageVulnerability& dVuln,
|
||||
const rstl::optional_object<TLockedToken<CCollidableOBBTreeGroupContainer>>& dcln,
|
||||
bool, u32, u32)
|
||||
: CPhysicsActor(uid, active, name, info, xf, std::move(mData), MakePlatformMaterialList(), aabb, SMoverData(15000.f),
|
||||
actParms, 0.3f, 0.1f)
|
||||
, x28c_(hInfo)
|
||||
, x294_(hInfo)
|
||||
, x29c_(dVuln)
|
||||
, x304_treeGroupContainer(dcln)
|
||||
{
|
||||
CActor::SetMaterialFilter(CMaterialFilter::MakeIncludeExclude(
|
||||
CMaterialList(EMaterialTypes::Solid),
|
||||
CMaterialList(EMaterialTypes::ThirtyEight, EMaterialTypes::Twenty, EMaterialTypes::Platform)));
|
||||
if (x304_treeGroupContainer)
|
||||
x314_treeGroup = std::make_unique<CCollidableOBBTreeGroup>(x304_treeGroupContainer->GetObj(), x68_material);
|
||||
}
|
||||
|
||||
void CScriptPlatform::Accept(IVisitor& visitor)
|
||||
{
|
||||
visitor.Visit(this);
|
||||
}
|
||||
void CScriptPlatform::Accept(IVisitor& visitor) { visitor.Visit(this); }
|
||||
|
||||
rstl::optional_object<zeus::CAABox> CScriptPlatform::GetTouchBounds() const
|
||||
{
|
||||
if (x314_treeGroup)
|
||||
return {x314_treeGroup->CalculateAABox(GetTransform())};
|
||||
|
||||
return {CPhysicsActor::GetBoundingBox()};
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user