2
0
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:
2017-06-10 22:49:27 -07:00
parent 2d2a3dcf1c
commit 46c70ecf11
7 changed files with 92 additions and 19 deletions

View File

@@ -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()};
}
}