mirror of https://github.com/AxioDL/metaforce.git
More loader imps
This commit is contained in:
parent
89e836bdac
commit
27bee1cc35
|
@ -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:
|
||||||
|
|
|
@ -0,0 +1,12 @@
|
||||||
|
#include "CDamageInfo.hpp"
|
||||||
|
#include "CDamageVulnerability.hpp"
|
||||||
|
|
||||||
|
namespace urde
|
||||||
|
{
|
||||||
|
|
||||||
|
float CDamageInfo::GetRadiusDamage(const CDamageVulnerability& dVuln)
|
||||||
|
{
|
||||||
|
return 0.f;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -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);
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
#include "CHUDMemoParms.hpp"
|
|
@ -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
|
|
@ -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)
|
||||||
|
|
|
@ -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)
|
||||||
|
{}
|
||||||
|
|
||||||
|
}
|
|
@ -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
|
|
@ -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)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -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
|
|
@ -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,
|
||||||
|
|
Loading…
Reference in New Issue