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

Initial CMetroidPrimeEssence behavior

This commit is contained in:
2020-09-19 15:08:07 -07:00
parent 130c60ccc8
commit 543a24ea9e
7 changed files with 750 additions and 8 deletions

View File

@@ -31,6 +31,7 @@
#include "Runtime/MP1/World/CDrone.hpp"
#include "Runtime/MP1/World/CMetroid.hpp"
#include "Runtime/MP1/World/CMetroidBeta.hpp"
#include "Runtime/MP1/World/CMetroidPrimeEssence.hpp"
#include "Runtime/MP1/World/CMetroidPrimeRelay.hpp"
#include "Runtime/MP1/World/CNewIntroBoss.hpp"
#include "Runtime/MP1/World/COmegaPirate.hpp"
@@ -3693,10 +3694,32 @@ CEntity* ScriptLoader::LoadWorldLightFader(CStateManager& mgr, CInputStream& in,
0.f, zeus::skZero2f, false, active, 0.f, 0.f, f1, f2);
}
CEntity* ScriptLoader::LoadMetroidPrimeStage2(CStateManager& mgr, CInputStream& in, int propCount,
const CEntityInfo& info) {
return nullptr;
}
CEntity* ScriptLoader::LoadMetroidPrimeEssence(CStateManager& mgr, CInputStream& in, int propCount,
const CEntityInfo& info) {
if (!EnsurePropertyCount(propCount, 11, "MetroidPrimeEssence")) {
return nullptr;
}
SScaledActorHead aHead = LoadScaledActorHead(in, mgr);
auto [valid, pInfoPropCount] = CPatternedInfo::HasCorrectParameterCount(in);
if (!valid) {
return nullptr;
}
CPatternedInfo pInfo{in, pInfoPropCount};
CActorParameters actParms = LoadActorParameters(in);
CAssetId particle1{in};
CDamageInfo dInfo{in};
CAssetId electric{in};
u32 w3 = in.readUint32Big();
CAssetId particle2{in};
const CAnimationParameters& animParms = pInfo.GetAnimationParameters();
CModelData mData{CAnimRes(animParms.GetACSFile(), animParms.GetCharacter(), aHead.x40_scale,
animParms.GetInitialAnimation(), true)};
return new MP1::CMetroidPrimeEssence(mgr.AllocateUniqueId(), aHead.x0_name, info, aHead.x10_transform,
std::move(mData), pInfo, actParms, particle1, dInfo, aHead.x40_scale.y(),
electric, w3, particle2);
};
CEntity* ScriptLoader::LoadMetroidPrimeStage1(CStateManager& mgr, CInputStream& in, int propCount,
const CEntityInfo& info) {