Add CameraWaypoint loader

This commit is contained in:
Jack Andersen 2016-04-23 15:10:47 -10:00
parent 4272e8207b
commit 9e652db6f0
5 changed files with 47 additions and 0 deletions

View File

@ -7,6 +7,7 @@ namespace urde
{
enum class EMaterialTypes
{
Zero = 0,
Six = 6,
Eight = 8,
Ten = 10,

View File

@ -29,6 +29,7 @@ add_library(RuntimeCommonWorld
CScriptWater.hpp CScriptWater.cpp
CScriptGrapplePoint.hpp CScriptGrapplePoint.cpp
CScriptAreaAttributes.hpp CScriptAreaAttributes.cpp
CScriptCameraWaypoint.hpp CScriptCameraWaypoint.cpp
CGrappleParameters.hpp
CActorParameters.hpp
CLightParameters.hpp

View File

@ -0,0 +1,15 @@
#include "CScriptCameraWaypoint.hpp"
#include "CActorParameters.hpp"
namespace urde
{
CScriptCameraWaypoint::CScriptCameraWaypoint(TUniqueId uid, const std::string& name, const CEntityInfo& info,
const zeus::CTransform& xf, bool active, float, u32)
: CActor(uid, active, name, info, xf, CModelData::CModelDataNull(), CMaterialList(EMaterialTypes::Zero),
CActorParameters::None(), kInvalidUniqueId)
{
}
}

View File

@ -0,0 +1,18 @@
#ifndef __URDE_CSCRIPTCAMERAWAYPOINT_HPP__
#define __URDE_CSCRIPTCAMERAWAYPOINT_HPP__
#include "CActor.hpp"
namespace urde
{
class CScriptCameraWaypoint : public CActor
{
public:
CScriptCameraWaypoint(TUniqueId uid, const std::string& name, const CEntityInfo& info,
const zeus::CTransform& xf, bool active, float, u32);
};
}
#endif // __URDE_CSCRIPTCAMERAWAYPOINT_HPP__

View File

@ -26,6 +26,7 @@
#include "CScriptGenerator.hpp"
#include "CScriptGrapplePoint.hpp"
#include "CScriptAreaAttributes.hpp"
#include "CScriptCameraWaypoint.hpp"
#include "Camera/CCinematicCamera.hpp"
#include "CSimplePool.hpp"
#include "Collision/CCollidableOBBTreeGroup.hpp"
@ -764,6 +765,17 @@ CEntity* ScriptLoader::LoadCamera(CStateManager& mgr, CInputStream& in,
CEntity* ScriptLoader::LoadCameraWaypoint(CStateManager& mgr, CInputStream& in,
int propCount, const CEntityInfo& info)
{
if (!EnsurePropertyCount(propCount, 6, "CameraWaypoint"))
return nullptr;
SActorHead head = LoadActorHead(in, mgr);
bool b1 = in.readBool();
float f1 = in.readFloatBig();
u32 w1 = in.readUint32Big();
return new CScriptCameraWaypoint(mgr.AllocateUniqueId(), head.x0_name, info,
head.x10_transform, b1, f1, w1);
}
CEntity* ScriptLoader::LoadNewIntroBoss(CStateManager& mgr, CInputStream& in,