More loader imps

This commit is contained in:
Phillip Stephens 2016-05-20 02:17:51 -07:00
parent 89e836bdac
commit 27bee1cc35
11 changed files with 150 additions and 5 deletions

View File

@ -12,8 +12,10 @@ namespace MP1
class CBeetle : public CPatterned class CBeetle : public CPatterned
{ {
public: public:
enum EEntranceType enum class EEntranceType : u32
{ {
FacePlayer,
UseOrientation
}; };
private: private:
public: public:

View File

@ -0,0 +1,12 @@
#include "CDamageInfo.hpp"
#include "CDamageVulnerability.hpp"
namespace urde
{
float CDamageInfo::GetRadiusDamage(const CDamageVulnerability& dVuln)
{
return 0.f;
}
}

View File

@ -7,6 +7,7 @@
namespace urde namespace urde
{ {
class CDamageVulnerability;
class CDamageInfo class CDamageInfo
{ {
EWeaponType x0_type = EWeaponType::None; EWeaponType x0_type = EWeaponType::None;
@ -20,8 +21,8 @@ class CDamageInfo
}; };
u8 _dummy = 0; u8 _dummy = 0;
}; };
float x8_damage1; float x8_damage;
float xc_damage2; float xc_radiusDamage;
float x10_radius; float x10_radius;
float x14_knockback; float x14_knockback;
bool x18_ = false; bool x18_ = false;
@ -31,11 +32,14 @@ public:
{ {
in.readUint32Big(); in.readUint32Big();
x0_type = EWeaponType(in.readUint32Big()); x0_type = EWeaponType(in.readUint32Big());
x8_damage1 = in.readFloatBig(); x8_damage = in.readFloatBig();
xc_damage2 = x8_damage1; xc_radiusDamage = x8_damage;
x10_radius = in.readFloatBig(); x10_radius = in.readFloatBig();
x14_knockback = in.readFloatBig(); x14_knockback = in.readFloatBig();
} }
float GetRadiusDamage() const { return xc_radiusDamage; }
float GetRadiusDamage(const CDamageVulnerability& dVuln);
}; };
} }

View File

@ -0,0 +1 @@
#include "CHUDMemoParms.hpp"

View File

@ -0,0 +1,22 @@
#ifndef CHUDMEMOPARMS_HPP
#define CHUDMEMOPARMS_HPP
#include "IOStreams.hpp"
namespace urde
{
class CHUDMemoParms
{
float x0_;
bool x4_;
bool x5_ = false;
bool x6_ = false;
public:
CHUDMemoParms(CInputStream& in)
: x0_(in.readFloatBig()),
x4_(in.readBool())
{}
};
}
#endif // CHUDMEMOPARMS_HPP

View File

@ -40,6 +40,8 @@ set(WORLD_SOURCES
CScriptMemoryRelay.hpp CScriptMemoryRelay.cpp CScriptMemoryRelay.hpp CScriptMemoryRelay.cpp
CScriptRandomRelay.hpp CScriptRandomRelay.cpp CScriptRandomRelay.hpp CScriptRandomRelay.cpp
CScriptRelay.hpp CScriptRelay.cpp CScriptRelay.hpp CScriptRelay.cpp
CScriptHUDMemo.hpp CScriptHUDMemo.cpp
CScriptCameraFilterKeyframe.hpp CScriptCameraFilterKeyframe.cpp
CScriptDamageableTrigger.hpp CScriptDamageableTrigger.cpp CScriptDamageableTrigger.hpp CScriptDamageableTrigger.cpp
CScriptActorRotate.hpp CScriptActorRotate.cpp CScriptActorRotate.hpp CScriptActorRotate.cpp
CScriptSpecialFunction.hpp CScriptSpecialFunction.cpp CScriptSpecialFunction.hpp CScriptSpecialFunction.cpp
@ -55,6 +57,7 @@ set(WORLD_SOURCES
CPatternedInfo.hpp CPatternedInfo.cpp CPatternedInfo.hpp CPatternedInfo.cpp
CHealthInfo.hpp CHealthInfo.cpp CHealthInfo.hpp CHealthInfo.cpp
CPatterned.hpp CPatterned.cpp CPatterned.hpp CPatterned.cpp
CHUDMemoParms.hpp CHUDMemoParms.cpp
CFluidPlane.hpp) CFluidPlane.hpp)
runtime_add_list(World WORLD_SOURCES) runtime_add_list(World WORLD_SOURCES)

View File

@ -0,0 +1,11 @@
#include "CScriptCameraFilterKeyframe.hpp"
namespace urde
{
CScriptCameraFilterKeyframe::CScriptCameraFilterKeyframe(TUniqueId uid, const std::string &name, const CEntityInfo& info,
u32, u32, u32, u32, const zeus::CColor&, float, float,
u32, bool active)
: CEntity(uid, info, active, name)
{}
}

View File

@ -0,0 +1,25 @@
#ifndef CSCRIPTCAMERAFILTERKEYFRAME_HPP
#define CSCRIPTCAMERAFILTERKEYFRAME_HPP
#include "CEntity.hpp"
#include "zeus/CColor.hpp"
namespace urde
{
class CScriptCameraFilterKeyframe : public CEntity
{
u32 x34_;
u32 x38_;
u32 x3c_;
u32 x40_;
zeus::CColor x44_;
float x48_;
float x4c_;
u32 x50_;
public:
CScriptCameraFilterKeyframe(TUniqueId, const std::string&, const CEntityInfo&, u32, u32, u32, u32, const zeus::CColor&,
float, float, u32, bool);
};
}
#endif // CSCRIPTCAMERAFILTERKEYFRAME_HPP

View File

@ -0,0 +1,12 @@
#include "CScriptHUDMemo.hpp"
namespace urde
{
CScriptHUDMemo::CScriptHUDMemo(TUniqueId uid, const std::string& name, const CEntityInfo& info, const CHUDMemoParms&,
CScriptHUDMemo::EDisplayType, ResId, bool active)
: CEntity(uid, info, active, name)
{
}
}

View File

@ -0,0 +1,25 @@
#ifndef CSCRIPTHUDMEMO_HPP
#define CSCRIPTHUDMEMO_HPP
#include "CEntity.hpp"
#include "CHUDMemoParms.hpp"
namespace urde
{
class CScriptHUDMemo : public CEntity
{
public:
enum class EDisplayType
{
StatusMessage,
MessageBox,
};
private:
public:
CScriptHUDMemo(TUniqueId, const std::string&, const CEntityInfo&, const CHUDMemoParms&,
CScriptHUDMemo::EDisplayType, ResId, bool);
};
}
#endif // CSCRIPTHUDMEMO_HPP

View File

@ -34,6 +34,8 @@
#include "CScriptMemoryRelay.hpp" #include "CScriptMemoryRelay.hpp"
#include "CScriptRandomRelay.hpp" #include "CScriptRandomRelay.hpp"
#include "CScriptRelay.hpp" #include "CScriptRelay.hpp"
#include "CScriptHUDMemo.hpp"
#include "CScriptCameraFilterKeyframe.hpp"
#include "CScriptDamageableTrigger.hpp" #include "CScriptDamageableTrigger.hpp"
#include "CScriptActorRotate.hpp" #include "CScriptActorRotate.hpp"
#include "CScriptSpecialFunction.hpp" #include "CScriptSpecialFunction.hpp"
@ -1012,11 +1014,37 @@ CEntity* ScriptLoader::LoadBeetle(CStateManager& mgr, CInputStream& in,
CEntity* ScriptLoader::LoadHUDMemo(CStateManager& mgr, CInputStream& in, CEntity* ScriptLoader::LoadHUDMemo(CStateManager& mgr, CInputStream& in,
int propCount, const CEntityInfo& info) int propCount, const CEntityInfo& info)
{ {
if (propCount != 5 && !EnsurePropertyCount(propCount, 6, "HUDMemo"))
return 0;
const std::string* name = mgr.HashInstanceName(in);
CHUDMemoParms hParms(in);
CScriptHUDMemo::EDisplayType displayType = CScriptHUDMemo::EDisplayType::MessageBox;
if (propCount == 6)
displayType = CScriptHUDMemo::EDisplayType(in.readUint32Big());
ResId message = in.readUint32Big();
bool active = in.readBool();
return new CScriptHUDMemo(mgr.AllocateUniqueId(), *name, info, hParms, displayType, message, active);
} }
CEntity* ScriptLoader::LoadCameraFilterKeyframe(CStateManager& mgr, CInputStream& in, CEntity* ScriptLoader::LoadCameraFilterKeyframe(CStateManager& mgr, CInputStream& in,
int propCount, const CEntityInfo& info) int propCount, const CEntityInfo& info)
{ {
if (!EnsurePropertyCount(propCount, 10, "CameraFilterKeyframe"))
return nullptr;
const std::string* name = mgr.HashInstanceName(in);
bool active = in.readBool();
u32 w1 = in.readUint32Big();
u32 w2 = in.readUint32Big();
u32 w3 = in.readUint32Big();
u32 w4 = in.readUint32Big();
zeus::CColor color;
color.readRGBABig(in);
float f1 = in.readFloatBig();
float f2 = in.readFloatBig();
u32 w5 = in.readUint32Big();
return new CScriptCameraFilterKeyframe(mgr.AllocateUniqueId(), *name, info, w1, w2, w3, w4, color, f1, f2, w5, active);
} }
CEntity* ScriptLoader::LoadCameraBlurKeyframe(CStateManager& mgr, CInputStream& in, CEntity* ScriptLoader::LoadCameraBlurKeyframe(CStateManager& mgr, CInputStream& in,