mirror of
https://github.com/AxioDL/metaforce.git
synced 2025-12-10 03:47:42 +00:00
Various movement and HUD bug fixes
This commit is contained in:
@@ -5,7 +5,7 @@ namespace urde
|
||||
{
|
||||
|
||||
CEffect::CEffect(TUniqueId uid, const CEntityInfo& info, bool active, std::string_view name, const zeus::CTransform& xf)
|
||||
: CActor(uid, active, name, info, xf, CModelData::CModelDataNull(), CMaterialList(EMaterialTypes::Unknown),
|
||||
: CActor(uid, active, name, info, xf, CModelData::CModelDataNull(), CMaterialList(EMaterialTypes::NoStepLogic),
|
||||
CActorParameters::None(), kInvalidUniqueId)
|
||||
{
|
||||
}
|
||||
|
||||
@@ -10,7 +10,7 @@ CFishCloud::CFishCloud(TUniqueId uid, bool active, std::string_view name, const
|
||||
float f7, float f8, float f9, float f10, float f11, float f12, float f13, u32 w2,
|
||||
const zeus::CColor& color, bool b1, float f14, CAssetId part1, u32 w3, CAssetId part2, u32 w4,
|
||||
CAssetId part3, u32 w5, CAssetId part4, u32 w6, u32 w7, bool b2, bool b3)
|
||||
: CActor(uid, active, name, info, xf, std::move(mData), {EMaterialTypes::Unknown},
|
||||
: CActor(uid, active, name, info, xf, std::move(mData), {EMaterialTypes::NoStepLogic},
|
||||
CActorParameters::None(), kInvalidUniqueId)
|
||||
{
|
||||
|
||||
|
||||
@@ -2016,7 +2016,7 @@ void CMorphBall::CollidedWith(TUniqueId id, const CCollisionInfoList& list, CSta
|
||||
|
||||
zeus::CVector3f vel = x0_player.GetVelocity();
|
||||
float velMag = vel.magnitude();
|
||||
EMaterialTypes wakeMaterial = EMaterialTypes::Unknown;
|
||||
EMaterialTypes wakeMaterial = EMaterialTypes::NoStepLogic;
|
||||
if (velMag > 7.f && x0_player.GetFluidCounter() == 0)
|
||||
{
|
||||
bool hitWall = false;
|
||||
@@ -2037,7 +2037,7 @@ void CMorphBall::CollidedWith(TUniqueId id, const CCollisionInfoList& list, CSta
|
||||
}
|
||||
}
|
||||
|
||||
if (wakeMaterial == EMaterialTypes::Unknown)
|
||||
if (wakeMaterial == EMaterialTypes::NoStepLogic)
|
||||
{
|
||||
if (info.GetMaterialLeft().HasMaterial(EMaterialTypes::Floor))
|
||||
{
|
||||
@@ -2063,7 +2063,7 @@ void CMorphBall::CollidedWith(TUniqueId id, const CCollisionInfoList& list, CSta
|
||||
tmpMaterial = EMaterialTypes::Phazon;
|
||||
|
||||
wakeMaterial = tmpMaterial;
|
||||
if (tmpMaterial != EMaterialTypes::Unknown)
|
||||
if (tmpMaterial != EMaterialTypes::NoStepLogic)
|
||||
{
|
||||
int mappedIdx = skWakeEffectMap[int(tmpMaterial)];
|
||||
if (mappedIdx == 0) // Phazon
|
||||
@@ -2098,7 +2098,7 @@ void CMorphBall::CollidedWith(TUniqueId id, const CCollisionInfoList& list, CSta
|
||||
}
|
||||
}
|
||||
|
||||
if (wakeMaterial == EMaterialTypes::Unknown && x1c0c_wakeEffectIdx != -1)
|
||||
if (wakeMaterial == EMaterialTypes::NoStepLogic && x1c0c_wakeEffectIdx != -1)
|
||||
x1bc8_wakeEffectGens[int(wakeMaterial)]->SetParticleEmission(false);
|
||||
|
||||
x1954_isProjectile = false;
|
||||
|
||||
@@ -1762,9 +1762,6 @@ void CPlayer::ProcessInput(const CFinalInput& input, CStateManager& mgr)
|
||||
if (input.ControllerIdx() != 0)
|
||||
return;
|
||||
|
||||
if (input.PLTrigger())
|
||||
Teleport(zeus::CTransform::Translate(-73.1577f, 155.273f, 0.f), mgr, true);
|
||||
|
||||
if (x2f8_morphBallState != EPlayerMorphBallState::Morphed)
|
||||
UpdateScanningState(input, mgr, input.DeltaTime());
|
||||
|
||||
@@ -5774,9 +5771,8 @@ float CPlayer::ForwardInput(const CFinalInput& input, float turnInput) const
|
||||
zeus::CVector3f velFlat = x138_velocity;
|
||||
velFlat.z = 0.f;
|
||||
if (x3dc_inFreeLook || x3dd_lookButtonHeld)
|
||||
if (x258_movementState != EPlayerMovementState::OnGround)
|
||||
if (std::fabs(velFlat.magnitude()) < 0.00001f)
|
||||
return 0.f;
|
||||
if (x258_movementState == EPlayerMovementState::OnGround || std::fabs(velFlat.magnitude()) < 0.00001f)
|
||||
return 0.f;
|
||||
}
|
||||
|
||||
return zeus::clamp(-1.f, forwards - backwards * g_tweakPlayer->GetBackwardsForceMultiplier(), 1.f);
|
||||
|
||||
@@ -8,7 +8,7 @@ namespace urde
|
||||
{
|
||||
CScriptAiJumpPoint::CScriptAiJumpPoint(TUniqueId uid, std::string_view name, const CEntityInfo& info,
|
||||
zeus::CTransform& xf, bool active, float f1)
|
||||
: CActor(uid, active, name, info, xf, CModelData::CModelDataNull(), CMaterialList(EMaterialTypes::Unknown),
|
||||
: CActor(uid, active, name, info, xf, CModelData::CModelDataNull(), CMaterialList(EMaterialTypes::NoStepLogic),
|
||||
CActorParameters::None(), kInvalidUniqueId)
|
||||
, xe8_(f1)
|
||||
{
|
||||
|
||||
@@ -14,7 +14,7 @@ CScriptCameraHint::CScriptCameraHint(TUniqueId uid, std::string_view name, const
|
||||
float fov, float attitudeRange, float azimuthRange, float anglePerSecond,
|
||||
float clampVelRange, float f9, float elevation, float f11,
|
||||
float clampVelTime, float controlInterpDur)
|
||||
: CActor(uid, active, name, info, xf, CModelData::CModelDataNull(), CMaterialList(EMaterialTypes::Unknown),
|
||||
: CActor(uid, active, name, info, xf, CModelData::CModelDataNull(), CMaterialList(EMaterialTypes::NoStepLogic),
|
||||
CActorParameters::None(), kInvalidUniqueId), xe8_priority(priority),
|
||||
xec_hint(overrideFlags, behaviour, minDist, maxDist, backwardsDist, lookAtOffset, chaseLookAtOffset, ballToCam,
|
||||
fov, attitudeRange, azimuthRange, anglePerSecond, clampVelRange, f9, elevation, f11, clampVelTime,
|
||||
|
||||
@@ -8,7 +8,7 @@ namespace urde
|
||||
|
||||
CScriptCameraWaypoint::CScriptCameraWaypoint(TUniqueId uid, std::string_view name, const CEntityInfo& info,
|
||||
const zeus::CTransform& xf, bool active, float hfov, u32 w1)
|
||||
: CActor(uid, active, name, info, xf, CModelData::CModelDataNull(), CMaterialList(EMaterialTypes::Unknown),
|
||||
: CActor(uid, active, name, info, xf, CModelData::CModelDataNull(), CMaterialList(EMaterialTypes::NoStepLogic),
|
||||
CActorParameters::None(), kInvalidUniqueId)
|
||||
, xe8_hfov(hfov)
|
||||
, xec_(w1)
|
||||
|
||||
@@ -8,7 +8,7 @@ namespace urde
|
||||
CScriptCoverPoint::CScriptCoverPoint(TUniqueId uid, std::string_view name, const CEntityInfo &info,
|
||||
zeus::CTransform xf, bool active, u32 flags, bool crouch, float horizontalAngle, float verticalAngle, float coverTime)
|
||||
: CActor(uid, active, name, info, xf, CModelData::CModelDataNull(),
|
||||
CMaterialList(EMaterialTypes::Unknown), CActorParameters::None(), kInvalidUniqueId),
|
||||
CMaterialList(EMaterialTypes::NoStepLogic), CActorParameters::None(), kInvalidUniqueId),
|
||||
xe8_flags(flags),
|
||||
xf4_coverTime(coverTime)
|
||||
{
|
||||
|
||||
@@ -6,7 +6,7 @@ namespace urde
|
||||
|
||||
CScriptDebugCameraWaypoint::CScriptDebugCameraWaypoint(TUniqueId uid, std::string_view name, const CEntityInfo& info,
|
||||
const zeus::CTransform& xf, u32 w1)
|
||||
: CActor(uid, true, name, info, xf, CModelData::CModelDataNull(), {EMaterialTypes::Unknown},
|
||||
: CActor(uid, true, name, info, xf, CModelData::CModelDataNull(), {EMaterialTypes::NoStepLogic},
|
||||
CActorParameters::None(), kInvalidUniqueId), xe8_w1(w1)
|
||||
{
|
||||
}
|
||||
|
||||
@@ -31,7 +31,7 @@ CScriptPlatform::CScriptPlatform(TUniqueId uid, std::string_view name, const CEn
|
||||
{
|
||||
CActor::SetMaterialFilter(CMaterialFilter::MakeIncludeExclude(
|
||||
CMaterialList(EMaterialTypes::Solid),
|
||||
CMaterialList(EMaterialTypes::NoStaticCollision, EMaterialTypes::Twenty, EMaterialTypes::Platform)));
|
||||
CMaterialList(EMaterialTypes::NoStaticCollision, EMaterialTypes::NoPlatformCollision, EMaterialTypes::Platform)));
|
||||
if (x304_treeGroupContainer)
|
||||
x314_treeGroup = std::make_unique<CCollidableOBBTreeGroup>(x304_treeGroupContainer->GetObj(), x68_material);
|
||||
}
|
||||
|
||||
@@ -10,7 +10,7 @@ namespace urde
|
||||
|
||||
CScriptPlayerHint::CScriptPlayerHint(TUniqueId uid, std::string_view name, const CEntityInfo& info,
|
||||
const zeus::CTransform& xf, bool active, u32 priority, u32 overrideFlags)
|
||||
: CActor(uid, active, name, info, xf, CModelData::CModelDataNull(), {EMaterialTypes::Unknown},
|
||||
: CActor(uid, active, name, info, xf, CModelData::CModelDataNull(), {EMaterialTypes::NoStepLogic},
|
||||
CActorParameters::None(), kInvalidUniqueId), x100_priority(priority), x104_overrideFlags(overrideFlags)
|
||||
{}
|
||||
|
||||
|
||||
@@ -14,7 +14,7 @@ CScriptSound::CScriptSound(TUniqueId uid, std::string_view name, const CEntityIn
|
||||
u16 soundId, bool active, float maxDist, float distComp, float startDelay, u32 minVol,
|
||||
u32 vol, u32 w3, u32 prio, u32 pan, u32 w6, bool looped, bool nonEmitter, bool autoStart,
|
||||
bool occlusionTest, bool acoustics, bool worldSfx, bool allowDuplicates, s32 pitch)
|
||||
: CActor(uid, active, name, info, xf, CModelData::CModelDataNull(), CMaterialList(EMaterialTypes::Unknown),
|
||||
: CActor(uid, active, name, info, xf, CModelData::CModelDataNull(), CMaterialList(EMaterialTypes::NoStepLogic),
|
||||
CActorParameters::None(), kInvalidUniqueId)
|
||||
, xfc_startDelay(startDelay)
|
||||
, x100_soundId(CSfxManager::TranslateSFXID(soundId))
|
||||
|
||||
@@ -8,7 +8,7 @@ namespace urde
|
||||
CScriptSpiderBallAttractionSurface::CScriptSpiderBallAttractionSurface(
|
||||
TUniqueId uid, std::string_view name, const CEntityInfo& info,
|
||||
const zeus::CTransform& xf, const zeus::CVector3f& scale, bool active)
|
||||
: CActor(uid, active, name, info, xf, CModelData::CModelDataNull(), {EMaterialTypes::Unknown},
|
||||
: CActor(uid, active, name, info, xf, CModelData::CModelDataNull(), {EMaterialTypes::NoStepLogic},
|
||||
CActorParameters::None(), kInvalidUniqueId), xe8_scale(scale),
|
||||
xf4_aabb(zeus::CAABox(scale * -0.5f, scale * 0.5f).getTransformedAABox(xf.getRotation()))
|
||||
{
|
||||
|
||||
@@ -7,7 +7,7 @@ namespace urde
|
||||
{
|
||||
CScriptSpiderBallWaypoint::CScriptSpiderBallWaypoint(TUniqueId uid, std::string_view name, const CEntityInfo& info,
|
||||
const zeus::CTransform& xf, bool active, u32 w1)
|
||||
: CActor(uid, active, name, info, xf, CModelData::CModelDataNull(), CMaterialList(EMaterialTypes::Unknown),
|
||||
: CActor(uid, active, name, info, xf, CModelData::CModelDataNull(), CMaterialList(EMaterialTypes::NoStepLogic),
|
||||
CActorParameters::None(), kInvalidUniqueId)
|
||||
, xe8_(w1)
|
||||
{
|
||||
|
||||
@@ -7,7 +7,7 @@ namespace urde
|
||||
|
||||
CScriptTargetingPoint::CScriptTargetingPoint(TUniqueId uid, std::string_view name, const CEntityInfo& info,
|
||||
const zeus::CTransform& xf, bool active)
|
||||
: CActor(uid, active, name, info, xf, CModelData::CModelDataNull(), CMaterialList(EMaterialTypes::Unknown),
|
||||
: CActor(uid, active, name, info, xf, CModelData::CModelDataNull(), CMaterialList(EMaterialTypes::NoStepLogic),
|
||||
CActorParameters::None(), kInvalidUniqueId)
|
||||
{
|
||||
}
|
||||
|
||||
@@ -148,9 +148,10 @@ void CScriptTrigger::UpdateInhabitants(float dt, CStateManager& mgr)
|
||||
}
|
||||
else
|
||||
{
|
||||
TUniqueId tmpId = it->GetObjectId();
|
||||
xe8_inhabitants.erase(it);
|
||||
sendExited = true;
|
||||
if (mgr.GetPlayer().GetUniqueId() == it->GetObjectId() && x148_28_playerTriggerProc)
|
||||
if (mgr.GetPlayer().GetUniqueId() == tmpId && x148_28_playerTriggerProc)
|
||||
{
|
||||
x148_28_playerTriggerProc = false;
|
||||
if (x148_29_didPhazonDamage)
|
||||
@@ -168,8 +169,9 @@ void CScriptTrigger::UpdateInhabitants(float dt, CStateManager& mgr)
|
||||
}
|
||||
else
|
||||
{
|
||||
TUniqueId tmpId = it->GetObjectId();
|
||||
xe8_inhabitants.erase(it);
|
||||
if (mgr.GetPlayer().GetUniqueId() == it->GetObjectId() && x148_28_playerTriggerProc)
|
||||
if (mgr.GetPlayer().GetUniqueId() == tmpId && x148_28_playerTriggerProc)
|
||||
{
|
||||
x148_28_playerTriggerProc = false;
|
||||
if (x148_29_didPhazonDamage)
|
||||
|
||||
@@ -13,7 +13,7 @@ CScriptVisorFlare::CScriptVisorFlare(TUniqueId uid, std::string_view name, const
|
||||
bool b1, float f1, float f2, float f3, u32 w1, u32 w2,
|
||||
const std::vector<CVisorFlare::CFlareDef>& flares)
|
||||
: CActor(uid, active, name, info, zeus::CTransform::Translate(pos), CModelData::CModelDataNull(),
|
||||
CMaterialList(EMaterialTypes::Unknown), CActorParameters::None(), kInvalidUniqueId),
|
||||
CMaterialList(EMaterialTypes::NoStepLogic), CActorParameters::None(), kInvalidUniqueId),
|
||||
xe8_flare(blendMode, b1, f1, f2, f3, w1, w2, flares)
|
||||
{
|
||||
xe6_27_renderVisorFlags = 2;
|
||||
|
||||
Reference in New Issue
Block a user