mirror of https://github.com/AxioDL/metaforce.git
COmegaPirate: Stub
This commit is contained in:
parent
b43d4eaddc
commit
ffd94d1106
|
@ -1,6 +1,7 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include "Runtime/Character/CBoneTracking.hpp"
|
#include "Runtime/Character/CBoneTracking.hpp"
|
||||||
|
#include "Runtime/Collision/CCollisionActorManager.hpp"
|
||||||
#include "Runtime/Collision/CJointCollisionDescription.hpp"
|
#include "Runtime/Collision/CJointCollisionDescription.hpp"
|
||||||
#include "Runtime/MP1/World/CGrenadeLauncher.hpp"
|
#include "Runtime/MP1/World/CGrenadeLauncher.hpp"
|
||||||
#include "Runtime/MP1/World/CShockWave.hpp"
|
#include "Runtime/MP1/World/CShockWave.hpp"
|
||||||
|
@ -9,10 +10,7 @@
|
||||||
#include "Runtime/World/CPathFindSearch.hpp"
|
#include "Runtime/World/CPathFindSearch.hpp"
|
||||||
#include "Runtime/World/CPatterned.hpp"
|
#include "Runtime/World/CPatterned.hpp"
|
||||||
|
|
||||||
namespace urde {
|
namespace urde::MP1 {
|
||||||
class CCollisionActorManager;
|
|
||||||
class CGenDescription;
|
|
||||||
namespace MP1 {
|
|
||||||
class CElitePirateData {
|
class CElitePirateData {
|
||||||
private:
|
private:
|
||||||
float x0_tauntInterval;
|
float x0_tauntInterval;
|
||||||
|
@ -228,5 +226,4 @@ private:
|
||||||
bool IsClosestEnergyAttractor(const CStateManager& mgr, const rstl::reserved_vector<TUniqueId, 1024>& charNearList,
|
bool IsClosestEnergyAttractor(const CStateManager& mgr, const rstl::reserved_vector<TUniqueId, 1024>& charNearList,
|
||||||
const zeus::CVector3f& projectilePos) const;
|
const zeus::CVector3f& projectilePos) const;
|
||||||
};
|
};
|
||||||
} // namespace MP1
|
|
||||||
} // namespace urde
|
} // namespace urde
|
||||||
|
|
|
@ -27,6 +27,7 @@ set(MP1_WORLD_SOURCES
|
||||||
CMetroidPrimeProjectile.hpp CMetroidPrimeProjectile.cpp
|
CMetroidPrimeProjectile.hpp CMetroidPrimeProjectile.cpp
|
||||||
CMetroidPrimeRelay.hpp CMetroidPrimeRelay.cpp
|
CMetroidPrimeRelay.hpp CMetroidPrimeRelay.cpp
|
||||||
CNewIntroBoss.hpp CNewIntroBoss.cpp
|
CNewIntroBoss.hpp CNewIntroBoss.cpp
|
||||||
|
COmegaPirate.hpp COmegaPirate.cpp
|
||||||
CParasite.hpp CParasite.cpp
|
CParasite.hpp CParasite.cpp
|
||||||
CPuddleSpore.hpp CPuddleSpore.cpp
|
CPuddleSpore.hpp CPuddleSpore.cpp
|
||||||
CPuddleToadGamma.hpp CPuddleToadGamma.cpp
|
CPuddleToadGamma.hpp CPuddleToadGamma.cpp
|
||||||
|
|
|
@ -0,0 +1,12 @@
|
||||||
|
#include "Runtime/MP1/World/COmegaPirate.hpp"
|
||||||
|
|
||||||
|
namespace urde::MP1 {
|
||||||
|
COmegaPirate::CFlash::CFlash(TUniqueId uid, const CEntityInfo& info, const zeus::CVector3f& pos, CToken& p4, float p5)
|
||||||
|
: CActor(uid, true, "Omega Pirate Flash", info, zeus::CTransform::Translate(pos), CModelData::CModelDataNull(), {},
|
||||||
|
CActorParameters::None(), kInvalidUniqueId) {}
|
||||||
|
|
||||||
|
COmegaPirate::COmegaPirate(TUniqueId uid, std::string_view name, const CEntityInfo& info, const zeus::CTransform& xf,
|
||||||
|
CModelData&& mData, const CPatternedInfo& pInfo, const CActorParameters& actParms,
|
||||||
|
CElitePirateData data, CAssetId w1, CAssetId w2, CAssetId w3)
|
||||||
|
: CElitePirate(uid, name, info, xf, std::move(mData), pInfo, actParms, data) {}
|
||||||
|
} // namespace urde::MP1
|
|
@ -0,0 +1,24 @@
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "Runtime/MP1/World/CElitePirate.hpp"
|
||||||
|
|
||||||
|
namespace urde::MP1 {
|
||||||
|
class COmegaPirate : public CElitePirate {
|
||||||
|
private:
|
||||||
|
class CFlash : public CActor {
|
||||||
|
private:
|
||||||
|
CToken xe8_;
|
||||||
|
int xf0_;
|
||||||
|
float xf4_;
|
||||||
|
float xf8_;
|
||||||
|
float xfc_;
|
||||||
|
|
||||||
|
CFlash(TUniqueId uid, const CEntityInfo& info, const zeus::CVector3f& pos, CToken& p4, float p5);
|
||||||
|
};
|
||||||
|
|
||||||
|
public:
|
||||||
|
COmegaPirate(TUniqueId uid, std::string_view name, const CEntityInfo& info, const zeus::CTransform& xf,
|
||||||
|
CModelData&& mData, const CPatternedInfo& pInfo, const CActorParameters& actParms, CElitePirateData data,
|
||||||
|
CAssetId w1, CAssetId w2, CAssetId w3);
|
||||||
|
};
|
||||||
|
} // namespace urde::MP1
|
|
@ -31,6 +31,7 @@
|
||||||
#include "Runtime/MP1/World/CMetroidBeta.hpp"
|
#include "Runtime/MP1/World/CMetroidBeta.hpp"
|
||||||
#include "Runtime/MP1/World/CMetroidPrimeRelay.hpp"
|
#include "Runtime/MP1/World/CMetroidPrimeRelay.hpp"
|
||||||
#include "Runtime/MP1/World/CNewIntroBoss.hpp"
|
#include "Runtime/MP1/World/CNewIntroBoss.hpp"
|
||||||
|
#include "Runtime/MP1/World/COmegaPirate.hpp"
|
||||||
#include "Runtime/MP1/World/CParasite.hpp"
|
#include "Runtime/MP1/World/CParasite.hpp"
|
||||||
#include "Runtime/MP1/World/CPuddleSpore.hpp"
|
#include "Runtime/MP1/World/CPuddleSpore.hpp"
|
||||||
#include "Runtime/MP1/World/CPuddleToadGamma.hpp"
|
#include "Runtime/MP1/World/CPuddleToadGamma.hpp"
|
||||||
|
@ -127,6 +128,8 @@ static logvisor::Module Log("urde::ScriptLoader");
|
||||||
|
|
||||||
constexpr SObjectTag MorphballDoorANCS = {FOURCC('ANCS'), 0x1F9DA858};
|
constexpr SObjectTag MorphballDoorANCS = {FOURCC('ANCS'), 0x1F9DA858};
|
||||||
|
|
||||||
|
constexpr int skElitePiratePropCount = 41;
|
||||||
|
|
||||||
static bool EnsurePropertyCount(int count, int expected, const char* structName) {
|
static bool EnsurePropertyCount(int count, int expected, const char* structName) {
|
||||||
if (count < expected) {
|
if (count < expected) {
|
||||||
Log.report(logvisor::Warning, fmt("Insufficient number of props ({}/{}) for {} entity"), count, expected,
|
Log.report(logvisor::Warning, fmt("Insufficient number of props ({}/{}) for {} entity"), count, expected,
|
||||||
|
@ -1383,7 +1386,7 @@ CEntity* ScriptLoader::LoadFlyingPirate(CStateManager& mgr, CInputStream& in, in
|
||||||
}
|
}
|
||||||
|
|
||||||
CEntity* ScriptLoader::LoadElitePirate(CStateManager& mgr, CInputStream& in, int propCount, const CEntityInfo& info) {
|
CEntity* ScriptLoader::LoadElitePirate(CStateManager& mgr, CInputStream& in, int propCount, const CEntityInfo& info) {
|
||||||
if (!EnsurePropertyCount(propCount, 41, "ElitePirate"))
|
if (!EnsurePropertyCount(propCount, skElitePiratePropCount, "ElitePirate"))
|
||||||
return nullptr;
|
return nullptr;
|
||||||
|
|
||||||
SScaledActorHead actHead = LoadScaledActorHead(in, mgr);
|
SScaledActorHead actHead = LoadScaledActorHead(in, mgr);
|
||||||
|
@ -3622,7 +3625,33 @@ CEntity* ScriptLoader::LoadMazeNode(CStateManager& mgr, CInputStream& in, int pr
|
||||||
}
|
}
|
||||||
|
|
||||||
CEntity* ScriptLoader::LoadOmegaPirate(CStateManager& mgr, CInputStream& in, int propCount, const CEntityInfo& info) {
|
CEntity* ScriptLoader::LoadOmegaPirate(CStateManager& mgr, CInputStream& in, int propCount, const CEntityInfo& info) {
|
||||||
|
if (!EnsurePropertyCount(propCount, skElitePiratePropCount + 1, "OmegaPirate")) {
|
||||||
return nullptr;
|
return nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
|
#if 0
|
||||||
|
SScaledActorHead actHead = LoadScaledActorHead(in, mgr);
|
||||||
|
auto pair = CPatternedInfo::HasCorrectParameterCount(in);
|
||||||
|
if (!pair.first) {
|
||||||
|
return nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
|
CPatternedInfo pInfo(in, pair.second);
|
||||||
|
CActorParameters actParms = LoadActorParameters(in);
|
||||||
|
MP1::CElitePirateData elitePirateData(in, propCount);
|
||||||
|
|
||||||
|
if (!pInfo.GetAnimationParameters().GetACSFile().IsValid()) {
|
||||||
|
return nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
|
CModelData mData(CAnimRes(pInfo.GetAnimationParameters().GetACSFile(), pInfo.GetAnimationParameters().GetCharacter(),
|
||||||
|
actHead.x40_scale, pInfo.GetAnimationParameters().GetInitialAnimation(), true));
|
||||||
|
|
||||||
|
return new MP1::COmegaPirate(mgr.AllocateUniqueId(), actHead.x0_name, info, actHead.x10_transform, std::move(mData),
|
||||||
|
pInfo, actParms, elitePirateData, CAssetId(in), CAssetId(in), CAssetId(in));
|
||||||
|
#else
|
||||||
|
return nullptr;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
CEntity* ScriptLoader::LoadPhazonPool(CStateManager& mgr, CInputStream& in, int propCount, const CEntityInfo& info) {
|
CEntity* ScriptLoader::LoadPhazonPool(CStateManager& mgr, CInputStream& in, int propCount, const CEntityInfo& info) {
|
||||||
|
|
Loading…
Reference in New Issue