2
0
mirror of https://github.com/AxioDL/metaforce.git synced 2025-12-09 05:07:43 +00:00

CPhazonPool: Initial structure

This commit is contained in:
2020-04-03 04:39:29 -04:00
parent 80b383b68f
commit c9f96d47d2
4 changed files with 73 additions and 5 deletions

View File

@@ -34,6 +34,7 @@
#include "Runtime/MP1/World/COmegaPirate.hpp"
#include "Runtime/MP1/World/CParasite.hpp"
#include "Runtime/MP1/World/CPhazonHealingNodule.hpp"
#include "Runtime/MP1/World/CPhazonPool.hpp"
#include "Runtime/MP1/World/CPuddleSpore.hpp"
#include "Runtime/MP1/World/CPuddleToadGamma.hpp"
#include "Runtime/MP1/World/CPuffer.hpp"
@@ -3668,15 +3669,29 @@ CEntity* ScriptLoader::LoadOmegaPirate(CStateManager& mgr, CInputStream& in, int
}
CEntity* ScriptLoader::LoadPhazonPool(CStateManager& mgr, CInputStream& in, int propCount, const CEntityInfo& info) {
if (!EnsurePropertyCount(propCount, 9, "PhazonHealingNodule")) {
if (!EnsurePropertyCount(propCount, 18, "PhazonPool")) {
return nullptr;
}
SScaledActorHead actHead = LoadScaledActorHead(in, mgr);
auto pair = CPatternedInfo::HasCorrectParameterCount(in);
if (!pair.first) {
return nullptr;
}
bool active = in.readBool();
CAssetId w1{in};
CAssetId w2{in};
CAssetId w3{in};
CAssetId w4{in};
u32 u1 = in.readUint32Big();
CDamageInfo dInfo{in};
zeus::CVector3f orientedForce{in.readVec3f()};
ETriggerFlags triggerFlags = static_cast<ETriggerFlags>(in.readUint32Big());
float f1 = in.readFloatBig();
float f2 = in.readFloatBig();
float f3 = in.readFloatBig();
bool b2 = in.readBool();
float f4 = in.readFloatBig();
return new MP1::CPhazonPool(mgr.AllocateUniqueId(), actHead.x0_name, info,
zeus::CTransform::Translate(actHead.x10_transform.origin), actHead.x40_scale, active, w1,
w2, w3, w4, u1, dInfo, orientedForce, triggerFlags, b2, f1, f2, f3, f4);
}
CEntity* ScriptLoader::LoadPhazonHealingNodule(CStateManager& mgr, CInputStream& in, int propCount,