mirror of
https://github.com/AxioDL/metaforce.git
synced 2025-12-09 01:47:42 +00:00
Initial CMetroidPrimeEssence behavior
This commit is contained in:
@@ -428,8 +428,8 @@ void CScriptPlayerActor::Render(CStateManager& mgr) {
|
||||
const float radius = zeus::clamp(0.25f, (6.f - vecFromCam.magnitude()) / 6.f, 2.f);
|
||||
const float offsetX = std::sin(x34c_phazonOffsetAngle);
|
||||
const float offsetY = std::sin(x34c_phazonOffsetAngle) * 0.5f;
|
||||
g_Renderer->DrawPhazonSuitIndirectEffect(zeus::CColor(0.1f, 1.f), x338_phazonIndirectTexture, zeus::skWhite,
|
||||
radius, 0.05f, offsetX, offsetY);
|
||||
//g_Renderer->DrawPhazonSuitIndirectEffect(zeus::CColor(0.1f, 1.f), x338_phazonIndirectTexture, zeus::skWhite,
|
||||
// radius, 0.05f, offsetX, offsetY);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -154,7 +154,7 @@ public:
|
||||
static CEntity* LoadBurrower(CStateManager& mgr, CInputStream& in, int propCount, const CEntityInfo& info);
|
||||
static CEntity* LoadBeam(CStateManager& mgr, CInputStream& in, int propCount, const CEntityInfo& info);
|
||||
static CEntity* LoadWorldLightFader(CStateManager& mgr, CInputStream& in, int propCount, const CEntityInfo& info);
|
||||
static CEntity* LoadMetroidPrimeStage2(CStateManager& mgr, CInputStream& in, int propCount, const CEntityInfo& info);
|
||||
static CEntity* LoadMetroidPrimeEssence(CStateManager& mgr, CInputStream& in, int propCount, const CEntityInfo& info);
|
||||
static CEntity* LoadMetroidPrimeStage1(CStateManager& mgr, CInputStream& in, int propCount, const CEntityInfo& info);
|
||||
static CEntity* LoadMazeNode(CStateManager& mgr, CInputStream& in, int propCount, const CEntityInfo& info);
|
||||
static CEntity* LoadOmegaPirate(CStateManager& mgr, CInputStream& in, int propCount, const CEntityInfo& info);
|
||||
|
||||
Reference in New Issue
Block a user