mirror of
https://github.com/AxioDL/metaforce.git
synced 2025-06-09 11:53:29 +00:00
Additional CPlayer implementations
This commit is contained in:
parent
086ff76474
commit
8e8ce66799
@ -10,11 +10,32 @@ namespace DataSpec
|
|||||||
struct ITweakPlayer : ITweak
|
struct ITweakPlayer : ITweak
|
||||||
{
|
{
|
||||||
virtual float GetMaxTranslationalAcceleration(int s) const=0;
|
virtual float GetMaxTranslationalAcceleration(int s) const=0;
|
||||||
|
virtual float GetMaxRotationalAcceleration(int s) const=0;
|
||||||
virtual float GetPlayerTranslationFriction(int s) const=0;
|
virtual float GetPlayerTranslationFriction(int s) const=0;
|
||||||
|
virtual float GetPlayerRotationFriction(int s) const=0;
|
||||||
|
virtual float GetPlayerRotationMaxSpeed(int s) const=0;
|
||||||
virtual float GetPlayerTranslationMaxSpeed(int s) const=0;
|
virtual float GetPlayerTranslationMaxSpeed(int s) const=0;
|
||||||
virtual float GetNormalGravAccel() const=0;
|
virtual float GetNormalGravAccel() const=0;
|
||||||
virtual float GetFluidGravAccel() const=0;
|
virtual float GetFluidGravAccel() const=0;
|
||||||
|
virtual float GetVerticalJumpAccel() const=0;
|
||||||
|
virtual float GetHorizontalJumpAccel() const=0;
|
||||||
|
virtual float GetVerticalDoubleJumpAccel() const=0;
|
||||||
|
virtual float GetHorizontalDoubleJumpAccel() const=0;
|
||||||
|
virtual float GetWaterJumpFactor() const=0;
|
||||||
|
virtual float GetLavaJumpFactor() const=0;
|
||||||
|
virtual float GetPhazonJumpFactor() const=0;
|
||||||
|
virtual float GetAllowedJumpTime() const=0;
|
||||||
|
virtual float GetAllowedDoubleJumpTime() const=0;
|
||||||
|
virtual float GetMinDoubleJumpWindow() const=0;
|
||||||
|
virtual float GetMaxDoubleJumpWindow() const=0;
|
||||||
|
virtual float GetMinJumpTime() const=0;
|
||||||
|
virtual float GetMinDoubleJumpTime() const=0;
|
||||||
|
virtual float GetAllowedLedgeTime() const=0;
|
||||||
|
virtual float GetDoubleJumpImpulse() const=0;
|
||||||
|
virtual float GetBackwardsForceMultiplier() const=0;
|
||||||
virtual float GetEyeOffset() const=0;
|
virtual float GetEyeOffset() const=0;
|
||||||
|
virtual float GetTurnSpeedMultiplier() const=0;
|
||||||
|
virtual float GetFreeLookTurnSpeedMultiplier() const=0;
|
||||||
virtual float GetFreeLookSpeed() const=0;
|
virtual float GetFreeLookSpeed() const=0;
|
||||||
virtual float GetFreeLookSnapSpeed() const=0;
|
virtual float GetFreeLookSnapSpeed() const=0;
|
||||||
virtual float GetFreeLookCenteredThresholdAngle() const=0;
|
virtual float GetFreeLookCenteredThresholdAngle() const=0;
|
||||||
@ -33,10 +54,19 @@ struct ITweakPlayer : ITweak
|
|||||||
virtual float GetOrbitNearX() const=0;
|
virtual float GetOrbitNearX() const=0;
|
||||||
virtual float GetOrbitNearZ() const=0;
|
virtual float GetOrbitNearZ() const=0;
|
||||||
virtual float GetOrbitZRange() const=0;
|
virtual float GetOrbitZRange() const=0;
|
||||||
|
virtual bool GetDashEnabled() const=0;
|
||||||
|
virtual bool GetDashOnButtonRelease() const=0;
|
||||||
|
virtual float GetDashButtonHoldCancelTime() const=0;
|
||||||
|
virtual float GetDashStrafeInputThreshold() const=0;
|
||||||
|
virtual float GetSidewaysDoubleJumpImpulse() const=0;
|
||||||
|
virtual float GetSidewaysVerticalDoubleJumpAccel() const=0;
|
||||||
|
virtual float GetSidewaysHorizontalDoubleJumpAccel() const=0;
|
||||||
virtual float GetScanningRange() const=0; // x218
|
virtual float GetScanningRange() const=0; // x218
|
||||||
virtual bool GetScanRetention() const=0;
|
virtual bool GetScanRetention() const=0;
|
||||||
virtual bool GetScanFreezesGame() const=0; // x21c_25
|
virtual bool GetScanFreezesGame() const=0; // x21c_25
|
||||||
virtual bool GetOrbitWhileScanning() const=0;
|
virtual bool GetOrbitWhileScanning() const=0;
|
||||||
|
virtual bool GetFallingDoubleJump() const=0;
|
||||||
|
virtual bool GetImpulseDoubleJump() const=0;
|
||||||
virtual bool GetFiringCancelsCameraPitch() const=0;
|
virtual bool GetFiringCancelsCameraPitch() const=0;
|
||||||
virtual bool GetAssistedAimingIgnoreHorizontal() const=0;
|
virtual bool GetAssistedAimingIgnoreHorizontal() const=0;
|
||||||
virtual bool GetAssistedAimingIgnoreVertical() const=0;
|
virtual bool GetAssistedAimingIgnoreVertical() const=0;
|
||||||
@ -48,7 +78,8 @@ struct ITweakPlayer : ITweak
|
|||||||
virtual float GetAimAssistHorizontalAngle() const=0;
|
virtual float GetAimAssistHorizontalAngle() const=0;
|
||||||
virtual float GetAimAssistVerticalAngle() const=0;
|
virtual float GetAimAssistVerticalAngle() const=0;
|
||||||
virtual float GetScanningFrameSenseRange() const=0;
|
virtual float GetScanningFrameSenseRange() const=0;
|
||||||
virtual bool GetEnableFreeLook() const=0;
|
virtual bool GetMoveDuringFreeLook() const=0;
|
||||||
|
virtual bool GetHoldButtonsForFreeLook() const=0;
|
||||||
virtual bool GetTwoButtonsForFreeLook() const=0;
|
virtual bool GetTwoButtonsForFreeLook() const=0;
|
||||||
virtual bool GetAimWhenOrbitingPoint() const=0;
|
virtual bool GetAimWhenOrbitingPoint() const=0;
|
||||||
virtual bool GetStayInFreeLookWhileFiring() const=0;
|
virtual bool GetStayInFreeLookWhileFiring() const=0;
|
||||||
@ -57,8 +88,8 @@ struct ITweakPlayer : ITweak
|
|||||||
virtual float GetPlayerHeight() const=0; // x26c
|
virtual float GetPlayerHeight() const=0; // x26c
|
||||||
virtual float GetPlayerXYHalfExtent() const=0; // x270
|
virtual float GetPlayerXYHalfExtent() const=0; // x270
|
||||||
virtual bool GetFreeLookTurnsPlayer() const=0; // x228_24
|
virtual bool GetFreeLookTurnsPlayer() const=0; // x228_24
|
||||||
virtual float GetX274() const=0; // x274
|
virtual float GetStepUpHeight() const=0; // x274
|
||||||
virtual float GetX278() const=0; // x278
|
virtual float GetStepDownHeight() const=0; // x278
|
||||||
virtual float GetPlayerBallHalfExtent() const=0; // x27c
|
virtual float GetPlayerBallHalfExtent() const=0; // x27c
|
||||||
virtual float GetOrbitDistanceMax() const=0;
|
virtual float GetOrbitDistanceMax() const=0;
|
||||||
virtual float GetGrappleSwingLength() const=0;
|
virtual float GetGrappleSwingLength() const=0;
|
||||||
|
@ -67,10 +67,10 @@ struct Water : IScriptObject
|
|||||||
UniqueID32 splashParticle1;
|
UniqueID32 splashParticle1;
|
||||||
UniqueID32 splashParticle2;
|
UniqueID32 splashParticle2;
|
||||||
UniqueID32 splashParticle3;
|
UniqueID32 splashParticle3;
|
||||||
UniqueID32 particle4;
|
UniqueID32 visorRunoffParticle;
|
||||||
UniqueID32 particle5;
|
UniqueID32 unmorphVisorRunoffParticle;
|
||||||
Value<atUint32> unkSfx;
|
|
||||||
Value<atUint32> visorRunoffSfx;
|
Value<atUint32> visorRunoffSfx;
|
||||||
|
Value<atUint32> unmorphVisorRunoffSfx;
|
||||||
Value<atUint32> splashSfx1;
|
Value<atUint32> splashSfx1;
|
||||||
Value<atUint32> splashSfx2;
|
Value<atUint32> splashSfx2;
|
||||||
Value<atUint32> splashSfx3;
|
Value<atUint32> splashSfx3;
|
||||||
@ -163,15 +163,15 @@ struct Water : IScriptObject
|
|||||||
PAK::Entry* ent = (PAK::Entry*)pakRouter.lookupEntry(splashParticle3);
|
PAK::Entry* ent = (PAK::Entry*)pakRouter.lookupEntry(splashParticle3);
|
||||||
ent->name = name + "_splashParticle3";
|
ent->name = name + "_splashParticle3";
|
||||||
}
|
}
|
||||||
if (particle4)
|
if (visorRunoffParticle)
|
||||||
{
|
{
|
||||||
PAK::Entry* ent = (PAK::Entry*)pakRouter.lookupEntry(particle4);
|
PAK::Entry* ent = (PAK::Entry*)pakRouter.lookupEntry(visorRunoffParticle);
|
||||||
ent->name = name + "_part4";
|
ent->name = name + "_visorRunoffParticle";
|
||||||
}
|
}
|
||||||
if (particle5)
|
if (unmorphVisorRunoffParticle)
|
||||||
{
|
{
|
||||||
PAK::Entry* ent = (PAK::Entry*)pakRouter.lookupEntry(particle5);
|
PAK::Entry* ent = (PAK::Entry*)pakRouter.lookupEntry(unmorphVisorRunoffParticle);
|
||||||
ent->name = name + "_part5";
|
ent->name = name + "_unmorphVisorRunoffParticle";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -187,8 +187,8 @@ struct Water : IScriptObject
|
|||||||
g_curSpec->flattenDependencies(splashParticle1, pathsOut);
|
g_curSpec->flattenDependencies(splashParticle1, pathsOut);
|
||||||
g_curSpec->flattenDependencies(splashParticle2, pathsOut);
|
g_curSpec->flattenDependencies(splashParticle2, pathsOut);
|
||||||
g_curSpec->flattenDependencies(splashParticle3, pathsOut);
|
g_curSpec->flattenDependencies(splashParticle3, pathsOut);
|
||||||
g_curSpec->flattenDependencies(particle4, pathsOut);
|
g_curSpec->flattenDependencies(visorRunoffParticle, pathsOut);
|
||||||
g_curSpec->flattenDependencies(particle5, pathsOut);
|
g_curSpec->flattenDependencies(unmorphVisorRunoffParticle, pathsOut);
|
||||||
}
|
}
|
||||||
|
|
||||||
zeus::CAABox getVISIAABB(hecl::BlenderToken& btok) const
|
zeus::CAABox getVISIAABB(hecl::BlenderToken& btok) const
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -12,38 +12,38 @@ struct CTweakPlayer : ITweakPlayer
|
|||||||
{
|
{
|
||||||
Delete _d;
|
Delete _d;
|
||||||
Value<float> x4_maxTranslationalAcceleration[8];
|
Value<float> x4_maxTranslationalAcceleration[8];
|
||||||
Value<float> x24_[8];
|
Value<float> x24_maxRotationalAcceleration[8];
|
||||||
Value<float> x44_translationFriction[8];
|
Value<float> x44_translationFriction[8];
|
||||||
Value<float> x64_[8];
|
Value<float> x64_rotationFriction[8];
|
||||||
Value<float> x84_[8];
|
Value<float> x84_rotationMaxSpeed[8];
|
||||||
Value<float> xa4_translationMaxSpeed[8];
|
Value<float> xa4_translationMaxSpeed[8];
|
||||||
Value<float> xc4_normalGravAccel;
|
Value<float> xc4_normalGravAccel;
|
||||||
Value<float> xc8_fluidGravAccel;
|
Value<float> xc8_fluidGravAccel;
|
||||||
Value<float> xcc_;
|
Value<float> xcc_verticalJumpAccel;
|
||||||
Value<float> xd0_;
|
Value<float> xd0_horizontalJumpAccel;
|
||||||
Value<float> xd4_;
|
Value<float> xd4_verticalDoubleJumpAccel;
|
||||||
Value<float> xd8_;
|
Value<float> xd8_horizontalDoubleJumpAccel;
|
||||||
Value<float> xdc_;
|
Value<float> xdc_waterJumpFactor;
|
||||||
Value<float> xe0_;
|
Value<float> xe0_;
|
||||||
Value<float> xe4_;
|
Value<float> xe4_lavaJumpFactor;
|
||||||
Value<float> xe8_;
|
Value<float> xe8_;
|
||||||
Value<float> xec_;
|
Value<float> xec_phazonJumpFactor;
|
||||||
Value<float> xf0_;
|
Value<float> xf0_;
|
||||||
Value<float> xf4_;
|
Value<float> xf4_allowedJumpTime;
|
||||||
Value<float> xf8_;
|
Value<float> xf8_allowedDoubleJumpTime;
|
||||||
Value<float> xfc_;
|
Value<float> xfc_minDoubleJumpWindow;
|
||||||
Value<float> x100_;
|
Value<float> x100_maxDoubleJumpWindow;
|
||||||
Value<float> x104_;
|
Value<float> x104_;
|
||||||
Value<float> x108_;
|
Value<float> x108_minJumpTime;
|
||||||
Value<float> x10c_;
|
Value<float> x10c_minDoubleJumpTime;
|
||||||
Value<float> x110_;
|
Value<float> x110_allowedLedgeTime;
|
||||||
Value<float> x114_;
|
Value<float> x114_doubleJumpImpulse;
|
||||||
Value<float> x118_;
|
Value<float> x118_backwardsForceMultiplier;
|
||||||
Value<float> x11c_;
|
Value<float> x11c_;
|
||||||
Value<float> x120_;
|
Value<float> x120_;
|
||||||
Value<float> x124_eyeOffset;
|
Value<float> x124_eyeOffset;
|
||||||
Value<float> x128_;
|
Value<float> x128_turnSpeedMultiplier;
|
||||||
Value<float> x12c_;
|
Value<float> x12c_freeLookTurnSpeedMultiplier;
|
||||||
Value<float> x130_horizontalFreeLookAngleVel;
|
Value<float> x130_horizontalFreeLookAngleVel;
|
||||||
Value<float> x134_verticalFreeLookAngleVel;
|
Value<float> x134_verticalFreeLookAngleVel;
|
||||||
Value<float> x138_freeLookSpeed;
|
Value<float> x138_freeLookSpeed;
|
||||||
@ -84,13 +84,13 @@ struct CTweakPlayer : ITweakPlayer
|
|||||||
Value<float> x1f4_;
|
Value<float> x1f4_;
|
||||||
Value<float> x1f8_;
|
Value<float> x1f8_;
|
||||||
Value<float> x1fc_;
|
Value<float> x1fc_;
|
||||||
Value<bool> x200_24_ : 1;
|
Value<bool> x200_24_dashEnabled : 1;
|
||||||
Value<bool> x200_25_ : 1;
|
Value<bool> x200_25_dashOnButtonRelease : 1;
|
||||||
Value<float> x204_;
|
Value<float> x204_dashButtonHoldCancelTime;
|
||||||
Value<float> x208_;
|
Value<float> x208_dashStrafeInputThreshold;
|
||||||
Value<float> x20c_;
|
Value<float> x20c_sidewaysDoubleJumpImpulse;
|
||||||
Value<float> x210_;
|
Value<float> x210_sidewaysVerticalDoubleJumpAccel;
|
||||||
Value<float> x214_;
|
Value<float> x214_sidewaysHorizontalDoubleJumpAccel;
|
||||||
Value<float> x218_scanningRange;
|
Value<float> x218_scanningRange;
|
||||||
Value<bool> x21c_24_scanRetention : 1;
|
Value<bool> x21c_24_scanRetention : 1;
|
||||||
Value<bool> x21c_25_scanFreezesGame : 1;
|
Value<bool> x21c_25_scanFreezesGame : 1;
|
||||||
@ -100,8 +100,8 @@ struct CTweakPlayer : ITweakPlayer
|
|||||||
Value<bool> x228_24_freelookTurnsPlayer : 1;
|
Value<bool> x228_24_freelookTurnsPlayer : 1;
|
||||||
Value<bool> x228_25_ : 1;
|
Value<bool> x228_25_ : 1;
|
||||||
Value<bool> x228_26_ : 1;
|
Value<bool> x228_26_ : 1;
|
||||||
Value<bool> x228_27_ : 1;
|
Value<bool> x228_27_moveDuringFreeLook : 1;
|
||||||
Value<bool> x228_28_enableFreeLook : 1;
|
Value<bool> x228_28_holdButtonsForFreeLook : 1;
|
||||||
Value<bool> x228_29_twoButtonsForFreeLook : 1;
|
Value<bool> x228_29_twoButtonsForFreeLook : 1;
|
||||||
Value<bool> x228_30_ : 1;
|
Value<bool> x228_30_ : 1;
|
||||||
Value<bool> x228_31_ : 1;
|
Value<bool> x228_31_ : 1;
|
||||||
@ -113,8 +113,8 @@ struct CTweakPlayer : ITweakPlayer
|
|||||||
Value<bool> x229_29_ : 1;
|
Value<bool> x229_29_ : 1;
|
||||||
Value<bool> x229_30_gunButtonTogglesHolster : 1;
|
Value<bool> x229_30_gunButtonTogglesHolster : 1;
|
||||||
Value<bool> x229_31_gunNotFiringHolstersGun : 1;
|
Value<bool> x229_31_gunNotFiringHolstersGun : 1;
|
||||||
Value<bool> x22a_24_ : 1;
|
Value<bool> x22a_24_fallingDoubleJump : 1;
|
||||||
Value<bool> x22a_25_ : 1;
|
Value<bool> x22a_25_impulseDoubleJump : 1;
|
||||||
Value<bool> x22a_26_firingCancelsCameraPitch : 1;
|
Value<bool> x22a_26_firingCancelsCameraPitch : 1;
|
||||||
Value<bool> x22a_27_assistedAimingIgnoreHorizontal : 1;
|
Value<bool> x22a_27_assistedAimingIgnoreHorizontal : 1;
|
||||||
Value<bool> x22a_28_assistedAimingIgnoreVertical : 1;
|
Value<bool> x22a_28_assistedAimingIgnoreVertical : 1;
|
||||||
@ -136,8 +136,8 @@ struct CTweakPlayer : ITweakPlayer
|
|||||||
Value<float> x268_aimAssistVerticalAngle;
|
Value<float> x268_aimAssistVerticalAngle;
|
||||||
Value<float> x26c_playerHeight;
|
Value<float> x26c_playerHeight;
|
||||||
Value<float> x270_playerXYHalfExtent;
|
Value<float> x270_playerXYHalfExtent;
|
||||||
Value<float> x274_;
|
Value<float> x274_stepUpHeight;
|
||||||
Value<float> x278_;
|
Value<float> x278_stepDownHeight;
|
||||||
Value<float> x27c_playerBallHalfExtent;
|
Value<float> x27c_playerBallHalfExtent;
|
||||||
Value<float> x280_;
|
Value<float> x280_;
|
||||||
Value<float> x284_;
|
Value<float> x284_;
|
||||||
@ -176,11 +176,32 @@ struct CTweakPlayer : ITweakPlayer
|
|||||||
Value<float> x304_gravityDamageReduction;
|
Value<float> x304_gravityDamageReduction;
|
||||||
Value<float> x308_phazonDamageReduction;
|
Value<float> x308_phazonDamageReduction;
|
||||||
float GetMaxTranslationalAcceleration(int s) const { return x4_maxTranslationalAcceleration[s]; }
|
float GetMaxTranslationalAcceleration(int s) const { return x4_maxTranslationalAcceleration[s]; }
|
||||||
|
float GetMaxRotationalAcceleration(int s) const { return x24_maxRotationalAcceleration[s]; }
|
||||||
float GetPlayerTranslationFriction(int s) const { return x44_translationFriction[s]; }
|
float GetPlayerTranslationFriction(int s) const { return x44_translationFriction[s]; }
|
||||||
|
float GetPlayerRotationFriction(int s) const { return x64_rotationFriction[s]; }
|
||||||
|
float GetPlayerRotationMaxSpeed(int s) const { return x84_rotationMaxSpeed[s]; }
|
||||||
float GetPlayerTranslationMaxSpeed(int s) const { return xa4_translationMaxSpeed[s]; }
|
float GetPlayerTranslationMaxSpeed(int s) const { return xa4_translationMaxSpeed[s]; }
|
||||||
float GetNormalGravAccel() const { return xc4_normalGravAccel; }
|
float GetNormalGravAccel() const { return xc4_normalGravAccel; }
|
||||||
float GetFluidGravAccel() const { return xc8_fluidGravAccel; }
|
float GetFluidGravAccel() const { return xc8_fluidGravAccel; }
|
||||||
|
float GetVerticalJumpAccel() const { return xcc_verticalJumpAccel; }
|
||||||
|
float GetHorizontalJumpAccel() const { return xd0_horizontalJumpAccel; }
|
||||||
|
float GetVerticalDoubleJumpAccel() const { return xd4_verticalDoubleJumpAccel; }
|
||||||
|
float GetHorizontalDoubleJumpAccel() const { return xd8_horizontalDoubleJumpAccel; }
|
||||||
|
float GetWaterJumpFactor() const { return xdc_waterJumpFactor; }
|
||||||
|
float GetLavaJumpFactor() const { return xe4_lavaJumpFactor; }
|
||||||
|
float GetPhazonJumpFactor() const { return xec_phazonJumpFactor; }
|
||||||
|
float GetAllowedJumpTime() const { return xf4_allowedJumpTime; }
|
||||||
|
float GetAllowedDoubleJumpTime() const { return xf8_allowedDoubleJumpTime; }
|
||||||
|
float GetMinDoubleJumpWindow() const { return xfc_minDoubleJumpWindow; }
|
||||||
|
float GetMaxDoubleJumpWindow() const { return x100_maxDoubleJumpWindow; }
|
||||||
|
float GetMinJumpTime() const { return x108_minJumpTime; }
|
||||||
|
float GetMinDoubleJumpTime() const { return x10c_minDoubleJumpTime; }
|
||||||
|
float GetAllowedLedgeTime() const { return x110_allowedLedgeTime; }
|
||||||
|
float GetDoubleJumpImpulse() const { return x114_doubleJumpImpulse; }
|
||||||
|
float GetBackwardsForceMultiplier() const { return x118_backwardsForceMultiplier; }
|
||||||
float GetEyeOffset() const { return x124_eyeOffset; }
|
float GetEyeOffset() const { return x124_eyeOffset; }
|
||||||
|
float GetTurnSpeedMultiplier() const { return x128_turnSpeedMultiplier; }
|
||||||
|
float GetFreeLookTurnSpeedMultiplier() const { return x12c_freeLookTurnSpeedMultiplier; }
|
||||||
float GetFreeLookSpeed() const { return x138_freeLookSpeed; }
|
float GetFreeLookSpeed() const { return x138_freeLookSpeed; }
|
||||||
float GetFreeLookSnapSpeed() const { return x13c_freeLookSnapSpeed; }
|
float GetFreeLookSnapSpeed() const { return x13c_freeLookSnapSpeed; }
|
||||||
float GetFreeLookCenteredThresholdAngle() const { return x144_freeLookCenteredThresholdAngle; }
|
float GetFreeLookCenteredThresholdAngle() const { return x144_freeLookCenteredThresholdAngle; }
|
||||||
@ -199,17 +220,27 @@ struct CTweakPlayer : ITweakPlayer
|
|||||||
float GetOrbitNearX() const { return x1d8_orbitNearX; }
|
float GetOrbitNearX() const { return x1d8_orbitNearX; }
|
||||||
float GetOrbitNearZ() const { return x1dc_orbitNearZ; }
|
float GetOrbitNearZ() const { return x1dc_orbitNearZ; }
|
||||||
float GetOrbitZRange() const { return x1ec_orbitZRange; }
|
float GetOrbitZRange() const { return x1ec_orbitZRange; }
|
||||||
|
bool GetDashEnabled() const { return x200_24_dashEnabled; }
|
||||||
|
bool GetDashOnButtonRelease() const { return x200_25_dashOnButtonRelease; }
|
||||||
|
float GetDashButtonHoldCancelTime() const { return x204_dashButtonHoldCancelTime; }
|
||||||
|
float GetDashStrafeInputThreshold() const { return x208_dashStrafeInputThreshold; }
|
||||||
|
float GetSidewaysDoubleJumpImpulse() const { return x20c_sidewaysDoubleJumpImpulse; }
|
||||||
|
float GetSidewaysVerticalDoubleJumpAccel() const { return x210_sidewaysVerticalDoubleJumpAccel; }
|
||||||
|
float GetSidewaysHorizontalDoubleJumpAccel() const { return x214_sidewaysHorizontalDoubleJumpAccel; }
|
||||||
float GetScanningRange() const { return x218_scanningRange; }
|
float GetScanningRange() const { return x218_scanningRange; }
|
||||||
bool GetScanRetention() const { return x21c_24_scanRetention; }
|
bool GetScanRetention() const { return x21c_24_scanRetention; }
|
||||||
bool GetScanFreezesGame() const { return x21c_25_scanFreezesGame; }
|
bool GetScanFreezesGame() const { return x21c_25_scanFreezesGame; }
|
||||||
bool GetOrbitWhileScanning() const { return x21c_26_orbitWhileScanning; }
|
bool GetOrbitWhileScanning() const { return x21c_26_orbitWhileScanning; }
|
||||||
float GetScanningFrameSenseRange() const { return x224_scanningFrameSenseRange; }
|
float GetScanningFrameSenseRange() const { return x224_scanningFrameSenseRange; }
|
||||||
bool GetEnableFreeLook() const { return x228_28_enableFreeLook; }
|
bool GetMoveDuringFreeLook() const { return x228_27_moveDuringFreeLook; }
|
||||||
|
bool GetHoldButtonsForFreeLook() const { return x228_28_holdButtonsForFreeLook; }
|
||||||
bool GetTwoButtonsForFreeLook() const { return x228_29_twoButtonsForFreeLook; }
|
bool GetTwoButtonsForFreeLook() const { return x228_29_twoButtonsForFreeLook; }
|
||||||
bool GetAimWhenOrbitingPoint() const { return x229_25_aimWhenOrbitingPoint; }
|
bool GetAimWhenOrbitingPoint() const { return x229_25_aimWhenOrbitingPoint; }
|
||||||
bool GetStayInFreeLookWhileFiring() const { return x229_26_stayInFreeLookWhileFiring; }
|
bool GetStayInFreeLookWhileFiring() const { return x229_26_stayInFreeLookWhileFiring; }
|
||||||
bool GetGunButtonTogglesHolster() const { return x229_30_gunButtonTogglesHolster; }
|
bool GetGunButtonTogglesHolster() const { return x229_30_gunButtonTogglesHolster; }
|
||||||
bool GetGunNotFiringHolstersGun() const { return x229_31_gunNotFiringHolstersGun; }
|
bool GetGunNotFiringHolstersGun() const { return x229_31_gunNotFiringHolstersGun; }
|
||||||
|
bool GetFallingDoubleJump() const { return x22a_24_fallingDoubleJump; }
|
||||||
|
bool GetImpulseDoubleJump() const { return x22a_25_impulseDoubleJump; }
|
||||||
bool GetFiringCancelsCameraPitch() const { return x22a_26_firingCancelsCameraPitch; }
|
bool GetFiringCancelsCameraPitch() const { return x22a_26_firingCancelsCameraPitch; }
|
||||||
bool GetAssistedAimingIgnoreHorizontal() const { return x22a_27_assistedAimingIgnoreHorizontal; }
|
bool GetAssistedAimingIgnoreHorizontal() const { return x22a_27_assistedAimingIgnoreHorizontal; }
|
||||||
bool GetAssistedAimingIgnoreVertical() const { return x22a_28_assistedAimingIgnoreVertical; }
|
bool GetAssistedAimingIgnoreVertical() const { return x22a_28_assistedAimingIgnoreVertical; }
|
||||||
@ -222,8 +253,8 @@ struct CTweakPlayer : ITweakPlayer
|
|||||||
float GetAimAssistVerticalAngle() const { return x268_aimAssistVerticalAngle; }
|
float GetAimAssistVerticalAngle() const { return x268_aimAssistVerticalAngle; }
|
||||||
float GetPlayerHeight() const { return x26c_playerHeight; }
|
float GetPlayerHeight() const { return x26c_playerHeight; }
|
||||||
float GetPlayerXYHalfExtent() const { return x270_playerXYHalfExtent; }
|
float GetPlayerXYHalfExtent() const { return x270_playerXYHalfExtent; }
|
||||||
float GetX274() const { return x274_; }
|
float GetStepUpHeight() const { return x274_stepUpHeight; }
|
||||||
float GetX278() const { return x278_; }
|
float GetStepDownHeight() const { return x278_stepDownHeight; }
|
||||||
float GetPlayerBallHalfExtent() const { return x27c_playerBallHalfExtent; }
|
float GetPlayerBallHalfExtent() const { return x27c_playerBallHalfExtent; }
|
||||||
float GetOrbitDistanceMax() const { return x2a0_orbitDistanceMax; }
|
float GetOrbitDistanceMax() const { return x2a0_orbitDistanceMax; }
|
||||||
float GetGrappleSwingLength() const { return x2a4_grappleSwingLength; }
|
float GetGrappleSwingLength() const { return x2a4_grappleSwingLength; }
|
||||||
|
@ -217,7 +217,7 @@ CPlayerState::EPlayerVisor CPlayerState::GetActiveVisor(const CStateManager& sta
|
|||||||
return (cam ? x14_currentVisor : EPlayerVisor::Combat);
|
return (cam ? x14_currentVisor : EPlayerVisor::Combat);
|
||||||
}
|
}
|
||||||
|
|
||||||
void CPlayerState::UpdateStaticInterference(CStateManager& stateMgr, const float& dt)
|
void CPlayerState::UpdateStaticInterference(CStateManager& stateMgr, float dt)
|
||||||
{
|
{
|
||||||
x188_staticIntf.Update(stateMgr, dt);
|
x188_staticIntf.Update(stateMgr, dt);
|
||||||
}
|
}
|
||||||
|
@ -145,7 +145,7 @@ public:
|
|||||||
EPlayerVisor GetCurrentVisor() const { return x14_currentVisor; }
|
EPlayerVisor GetCurrentVisor() const { return x14_currentVisor; }
|
||||||
EPlayerVisor GetTransitioningVisor() const { return x18_transitioningVisor; }
|
EPlayerVisor GetTransitioningVisor() const { return x18_transitioningVisor; }
|
||||||
EPlayerVisor GetActiveVisor(const CStateManager& stateMgr) const;
|
EPlayerVisor GetActiveVisor(const CStateManager& stateMgr) const;
|
||||||
void UpdateStaticInterference(CStateManager& stateMgr, const float& dt);
|
void UpdateStaticInterference(CStateManager& stateMgr, float dt);
|
||||||
void IncreaseScanTime(u32 time, float val);
|
void IncreaseScanTime(u32 time, float val);
|
||||||
void SetScanTime(CAssetId res, float time);
|
void SetScanTime(CAssetId res, float time);
|
||||||
float GetScanTime(CAssetId time) const;
|
float GetScanTime(CAssetId time) const;
|
||||||
|
@ -1314,7 +1314,7 @@ void CStateManager::KnockBackPlayer(CPlayer& player, const zeus::CVector3f& pos,
|
|||||||
{
|
{
|
||||||
usePower = power * 1000.f;
|
usePower = power * 1000.f;
|
||||||
CPlayer::ESurfaceRestraints surface =
|
CPlayer::ESurfaceRestraints surface =
|
||||||
player.x2b0_ == 2 ? player.x2ac_surfaceRestraint : CPlayer::ESurfaceRestraints::Four;
|
player.x2b0_outOfWaterTicks == 2 ? player.x2ac_surfaceRestraint : CPlayer::ESurfaceRestraints::Water;
|
||||||
if (surface != CPlayer::ESurfaceRestraints::Normal &&
|
if (surface != CPlayer::ESurfaceRestraints::Normal &&
|
||||||
player.GetOrbitState() == CPlayer::EPlayerOrbitState::Zero)
|
player.GetOrbitState() == CPlayer::EPlayerOrbitState::Zero)
|
||||||
usePower /= 7.f;
|
usePower /= 7.f;
|
||||||
@ -1331,7 +1331,7 @@ void CStateManager::KnockBackPlayer(CPlayer& player, const zeus::CVector3f& pos,
|
|||||||
usePower *= (1.f - 0.5f * zeus::CVector3f::getAngleDiff(pos, negVel) / M_PIF);
|
usePower *= (1.f - 0.5f * zeus::CVector3f::getAngleDiff(pos, negVel) / M_PIF);
|
||||||
player.ApplyImpulseWR(pos * usePower, zeus::CAxisAngle::sIdentity);
|
player.ApplyImpulseWR(pos * usePower, zeus::CAxisAngle::sIdentity);
|
||||||
player.UseCollisionImpulses();
|
player.UseCollisionImpulses();
|
||||||
player.x2d4_ = 0.25f;
|
player.x2d4_accelerationChangeTimer = 0.25f;
|
||||||
|
|
||||||
float newVel = player.x138_velocity.magnitude();
|
float newVel = player.x138_velocity.magnitude();
|
||||||
if (newVel > maxVel)
|
if (newVel > maxVel)
|
||||||
@ -2229,16 +2229,16 @@ void CStateManager::CreateStandardGameObjects()
|
|||||||
{
|
{
|
||||||
float height = g_tweakPlayer->GetPlayerHeight();
|
float height = g_tweakPlayer->GetPlayerHeight();
|
||||||
float xyHe = g_tweakPlayer->GetPlayerXYHalfExtent();
|
float xyHe = g_tweakPlayer->GetPlayerXYHalfExtent();
|
||||||
float unk1 = g_tweakPlayer->GetX274();
|
float stepUp = g_tweakPlayer->GetStepUpHeight();
|
||||||
float unk2 = g_tweakPlayer->GetX278();
|
float stepDown = g_tweakPlayer->GetStepDownHeight();
|
||||||
float unk3 = g_tweakPlayer->GetPlayerBallHalfExtent();
|
float ballRadius = g_tweakPlayer->GetPlayerBallHalfExtent();
|
||||||
zeus::CAABox pBounds = {{-xyHe, -xyHe, 0.f}, {xyHe, xyHe, height}};
|
zeus::CAABox pBounds = {{-xyHe, -xyHe, 0.f}, {xyHe, xyHe, height}};
|
||||||
auto q = zeus::CQuaternion::fromAxisAngle(zeus::CVector3f{0.f, 0.f, 1.f}, zeus::degToRad(129.6f));
|
auto q = zeus::CQuaternion::fromAxisAngle(zeus::CVector3f{0.f, 0.f, 1.f}, zeus::degToRad(129.6f));
|
||||||
x84c_player.reset(new CPlayer(
|
x84c_player.reset(new CPlayer(
|
||||||
AllocateUniqueId(), zeus::CTransform(q), pBounds,
|
AllocateUniqueId(), zeus::CTransform(q), pBounds,
|
||||||
g_tweakPlayerRes->xc4_ballTransitionsANCS,
|
g_tweakPlayerRes->xc4_ballTransitionsANCS,
|
||||||
zeus::CVector3f{1.65f, 1.65f, 1.65f}, 200.f, unk1, unk2,
|
zeus::CVector3f{1.65f, 1.65f, 1.65f}, 200.f, stepUp, stepDown,
|
||||||
unk3, CMaterialList(EMaterialTypes::Player,
|
ballRadius, CMaterialList(EMaterialTypes::Player,
|
||||||
EMaterialTypes::Solid, EMaterialTypes::GroundCollider)));
|
EMaterialTypes::Solid, EMaterialTypes::GroundCollider)));
|
||||||
AddObject(*x84c_player);
|
AddObject(*x84c_player);
|
||||||
x870_cameraManager->CreateStandardCameras(*this);
|
x870_cameraManager->CreateStandardCameras(*this);
|
||||||
|
@ -241,7 +241,7 @@ void CCameraManager::ThinkCameras(float dt, CStateManager& mgr)
|
|||||||
TUniqueId camId = GetLastCameraId();
|
TUniqueId camId = GetLastCameraId();
|
||||||
const CGameCamera* cam = TCastToConstPtr<CGameCamera>(mgr.GetObjectById(camId));
|
const CGameCamera* cam = TCastToConstPtr<CGameCamera>(mgr.GetObjectById(camId));
|
||||||
|
|
||||||
if (cam)
|
if (cam != nullptr)
|
||||||
x3bc_curFov = cam->GetFov();
|
x3bc_curFov = cam->GetFov();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -294,9 +294,9 @@ void CCameraManager::ProcessInput(const CFinalInput& input, CStateManager& state
|
|||||||
{
|
{
|
||||||
for (CEntity* ent : stateMgr.GetCameraObjectList())
|
for (CEntity* ent : stateMgr.GetCameraObjectList())
|
||||||
{
|
{
|
||||||
if (!ent)
|
if (ent == nullptr)
|
||||||
continue;
|
continue;
|
||||||
CGameCamera& cam = static_cast<CGameCamera&>(*ent);
|
auto& cam = static_cast<CGameCamera&>(*ent);
|
||||||
if (input.ControllerIdx() != cam.x16c_controllerIdx)
|
if (input.ControllerIdx() != cam.x16c_controllerIdx)
|
||||||
continue;
|
continue;
|
||||||
cam.ProcessInput(input, stateMgr);
|
cam.ProcessInput(input, stateMgr);
|
||||||
@ -318,4 +318,11 @@ void CCameraManager::LeaveBallCamera(CStateManager& mgr, TUniqueId newCamId)
|
|||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
float CCameraManager::GetCameraBobMagnitude() const
|
||||||
|
{
|
||||||
|
return 1.f - zeus::clamp(-1.f, zeus::clamp(-1.f,
|
||||||
|
x7c_fpCamera->GetTransform().basis[1].dot(zeus::CVector3f::skUp), 1.f) /
|
||||||
|
std::cos(2.f * M_PIF / 12.f), 1.f);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -128,6 +128,7 @@ public:
|
|||||||
void SetupBallCamera(CStateManager& mgr);
|
void SetupBallCamera(CStateManager& mgr);
|
||||||
void LeaveBallCamera(CStateManager& mgr, TUniqueId newCamId);
|
void LeaveBallCamera(CStateManager& mgr, TUniqueId newCamId);
|
||||||
int GetFluidCounter() const { return x74_fluidCounter; }
|
int GetFluidCounter() const { return x74_fluidCounter; }
|
||||||
|
float GetCameraBobMagnitude() const;
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -12,7 +12,7 @@ u16 CFluidPlaneShader::Cache::MakeCacheKey(const SFluidPlaneShaderInfo& info)
|
|||||||
switch (info.m_type)
|
switch (info.m_type)
|
||||||
{
|
{
|
||||||
case CFluidPlane::EFluidType::NormalWater:
|
case CFluidPlane::EFluidType::NormalWater:
|
||||||
case CFluidPlane::EFluidType::Three:
|
case CFluidPlane::EFluidType::PhazonFluid:
|
||||||
case CFluidPlane::EFluidType::Four:
|
case CFluidPlane::EFluidType::Four:
|
||||||
if (info.m_hasLightmap)
|
if (info.m_hasLightmap)
|
||||||
{
|
{
|
||||||
@ -52,7 +52,7 @@ u16 CFluidPlaneShader::Cache::MakeCacheKey(const SFluidPlaneShaderInfo& info)
|
|||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case CFluidPlane::EFluidType::Five:
|
case CFluidPlane::EFluidType::ThickLava:
|
||||||
ret |= 3;
|
ret |= 3;
|
||||||
|
|
||||||
if (info.m_hasBumpMap)
|
if (info.m_hasBumpMap)
|
||||||
|
@ -207,7 +207,7 @@ static void _BuildShader(std::string& finalVS, std::string& finalFS, int& nextTe
|
|||||||
switch (info.m_type)
|
switch (info.m_type)
|
||||||
{
|
{
|
||||||
case CFluidPlane::EFluidType::NormalWater:
|
case CFluidPlane::EFluidType::NormalWater:
|
||||||
case CFluidPlane::EFluidType::Three:
|
case CFluidPlane::EFluidType::PhazonFluid:
|
||||||
case CFluidPlane::EFluidType::Four:
|
case CFluidPlane::EFluidType::Four:
|
||||||
if (info.m_hasLightmap)
|
if (info.m_hasLightmap)
|
||||||
{
|
{
|
||||||
@ -415,7 +415,7 @@ static void _BuildShader(std::string& finalVS, std::string& finalFS, int& nextTe
|
|||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case CFluidPlane::EFluidType::Five:
|
case CFluidPlane::EFluidType::ThickLava:
|
||||||
// 0: Tex0TCG, Tex0, GX_COLOR0A0
|
// 0: Tex0TCG, Tex0, GX_COLOR0A0
|
||||||
// ZERO, TEX, KONST, RAS
|
// ZERO, TEX, KONST, RAS
|
||||||
// Output reg prev
|
// Output reg prev
|
||||||
|
@ -211,7 +211,7 @@ CFluidPlaneShader::BuildShader(boo::MetalDataFactory::Context& ctx, const SFluid
|
|||||||
switch (info.m_type)
|
switch (info.m_type)
|
||||||
{
|
{
|
||||||
case CFluidPlane::EFluidType::NormalWater:
|
case CFluidPlane::EFluidType::NormalWater:
|
||||||
case CFluidPlane::EFluidType::Three:
|
case CFluidPlane::EFluidType::PhazonFluid:
|
||||||
case CFluidPlane::EFluidType::Four:
|
case CFluidPlane::EFluidType::Four:
|
||||||
if (info.m_hasLightmap)
|
if (info.m_hasLightmap)
|
||||||
{
|
{
|
||||||
@ -419,7 +419,7 @@ CFluidPlaneShader::BuildShader(boo::MetalDataFactory::Context& ctx, const SFluid
|
|||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case CFluidPlane::EFluidType::Five:
|
case CFluidPlane::EFluidType::ThickLava:
|
||||||
// 0: Tex0TCG, Tex0, GX_COLOR0A0
|
// 0: Tex0TCG, Tex0, GX_COLOR0A0
|
||||||
// ZERO, TEX, KONST, RAS
|
// ZERO, TEX, KONST, RAS
|
||||||
// Output reg prev
|
// Output reg prev
|
||||||
|
@ -620,7 +620,7 @@ void CSamusHud::UpdateVisorAndBeamMenus(float dt, const CStateManager& mgr)
|
|||||||
CPlayerGun& gun = *player.GetPlayerGun();
|
CPlayerGun& gun = *player.GetPlayerGun();
|
||||||
CPlayerState& playerState = *mgr.GetPlayerState();
|
CPlayerState& playerState = *mgr.GetPlayerState();
|
||||||
|
|
||||||
float beamInterp = zeus::clamp(0.f, gun.GetGunMorph().x18_, 1.f);
|
float beamInterp = zeus::clamp(0.f, gun.GetHoloTransitionFactor(), 1.f);
|
||||||
float visorInterp = playerState.GetVisorTransitionFactor();
|
float visorInterp = playerState.GetVisorTransitionFactor();
|
||||||
|
|
||||||
if (x2a8_beamMenu)
|
if (x2a8_beamMenu)
|
||||||
|
@ -134,7 +134,7 @@ public:
|
|||||||
{
|
{
|
||||||
if (this->size() < N)
|
if (this->size() < N)
|
||||||
{
|
{
|
||||||
this->push_back(t);
|
this->insert(this->begin(), t);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -68,6 +68,11 @@ float CPlayerGun::GetBeamVelocity() const
|
|||||||
return 10.f;
|
return 10.f;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void CPlayerGun::Update(float grappleSwingT, float cameraBobT, float dt, CStateManager& mgr)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
void CPlayerGun::PreRender(const CStateManager& mgr, const zeus::CFrustum& frustum, const zeus::CVector3f& camPos)
|
void CPlayerGun::PreRender(const CStateManager& mgr, const zeus::CFrustum& frustum, const zeus::CVector3f& camPos)
|
||||||
{
|
{
|
||||||
|
|
||||||
@ -83,4 +88,9 @@ void CPlayerGun::AddToRenderer(const zeus::CFrustum& frustum, const CStateManage
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TUniqueId CPlayerGun::DropPowerBomb(CStateManager& mgr)
|
||||||
|
{
|
||||||
|
return {};
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -32,8 +32,12 @@ public:
|
|||||||
Inactive,
|
Inactive,
|
||||||
Active
|
Active
|
||||||
};
|
};
|
||||||
|
enum class EBWeapon
|
||||||
|
{
|
||||||
|
|
||||||
|
};
|
||||||
private:
|
private:
|
||||||
struct CGunMorph
|
class CGunMorph
|
||||||
{
|
{
|
||||||
float x0_ = 0.f;
|
float x0_ = 0.f;
|
||||||
float x4_;
|
float x4_;
|
||||||
@ -41,7 +45,7 @@ private:
|
|||||||
float xc_ = 0.1f;
|
float xc_ = 0.1f;
|
||||||
float x10_;
|
float x10_;
|
||||||
float x14_ = 2.f;
|
float x14_ = 2.f;
|
||||||
float x18_ = 1.f;
|
float x18_transitionFactor = 1.f;
|
||||||
u32 x1c_ = 2;
|
u32 x1c_ = 2;
|
||||||
u32 x20_ = 1;
|
u32 x20_ = 1;
|
||||||
|
|
||||||
@ -52,18 +56,25 @@ private:
|
|||||||
bool x24_24_ : 1;
|
bool x24_24_ : 1;
|
||||||
bool x24_25_ : 1;
|
bool x24_25_ : 1;
|
||||||
};
|
};
|
||||||
u8 _dummy = 0;
|
u32 _dummy = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
public:
|
||||||
CGunMorph(float a, float b)
|
CGunMorph(float a, float b)
|
||||||
: x4_(a), x10_(std::fabs(b)) {}
|
: x4_(a), x10_(std::fabs(b)) {}
|
||||||
|
float GetTransitionFactor() const { return x18_transitionFactor; }
|
||||||
|
};
|
||||||
|
|
||||||
|
class CMotionState
|
||||||
|
{
|
||||||
|
static const float kGunExtendDistance;
|
||||||
};
|
};
|
||||||
|
|
||||||
CActorLights x0_lights;
|
CActorLights x0_lights;
|
||||||
u32 x2e0_ = 0;
|
u32 x2e0_ = 0;
|
||||||
u32 x2e4_ = 0;
|
u32 x2e4_ = 0;
|
||||||
u32 x2e8_ = 0;
|
u32 x2e8_ = 0;
|
||||||
u32 x2ec_ = 0;
|
u32 x2ec_firing = 0;
|
||||||
u32 x2f0_ = 0;
|
u32 x2f0_ = 0;
|
||||||
u32 x2f4_ = 0;
|
u32 x2f4_ = 0;
|
||||||
u32 x2f8_ = 1;
|
u32 x2f8_ = 1;
|
||||||
@ -221,6 +232,7 @@ public:
|
|||||||
u32 GetSelectedBeam() const { return x310_selectedBeam; }
|
u32 GetSelectedBeam() const { return x310_selectedBeam; }
|
||||||
u32 GetPendingSelectedBeam() const { return x314_pendingSelectedBeam; }
|
u32 GetPendingSelectedBeam() const { return x314_pendingSelectedBeam; }
|
||||||
const CGunMorph& GetGunMorph() const { return x678_morph; }
|
const CGunMorph& GetGunMorph() const { return x678_morph; }
|
||||||
|
float GetHoloTransitionFactor() const { return x678_morph.GetTransitionFactor(); }
|
||||||
void SetTransform(const zeus::CTransform& xf) { x3e8_xf = xf; }
|
void SetTransform(const zeus::CTransform& xf) { x3e8_xf = xf; }
|
||||||
void SetAssistAimTransform(const zeus::CTransform& xf) { x478_assistAimXf = xf; }
|
void SetAssistAimTransform(const zeus::CTransform& xf) { x478_assistAimXf = xf; }
|
||||||
CGrappleArm& GetGrappleArm() { return *x740_grappleArm; }
|
CGrappleArm& GetGrappleArm() { return *x740_grappleArm; }
|
||||||
@ -229,9 +241,12 @@ public:
|
|||||||
void ResetIdle(CStateManager& mgr);
|
void ResetIdle(CStateManager& mgr);
|
||||||
void CancelFiring(CStateManager& mgr);
|
void CancelFiring(CStateManager& mgr);
|
||||||
float GetBeamVelocity() const;
|
float GetBeamVelocity() const;
|
||||||
|
void Update(float grappleSwingT, float cameraBobT, float dt, CStateManager& mgr);
|
||||||
void PreRender(const CStateManager& mgr, const zeus::CFrustum& frustum, const zeus::CVector3f& camPos);
|
void PreRender(const CStateManager& mgr, const zeus::CFrustum& frustum, const zeus::CVector3f& camPos);
|
||||||
void Render(const CStateManager& mgr, const zeus::CVector3f& pos, const CModelFlags& flags) const;
|
void Render(const CStateManager& mgr, const zeus::CVector3f& pos, const CModelFlags& flags) const;
|
||||||
void AddToRenderer(const zeus::CFrustum& frustum, const CStateManager& mgr) const;
|
void AddToRenderer(const zeus::CFrustum& frustum, const CStateManager& mgr) const;
|
||||||
|
bool GetFiring() const { return x2ec_firing != 0; }
|
||||||
|
TUniqueId DropPowerBomb(CStateManager& mgr);
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -45,11 +45,11 @@ float CFluidPlane::CalculateRippleIntensity(float baseI) const
|
|||||||
case EFluidType::Lava:
|
case EFluidType::Lava:
|
||||||
mul = g_tweakGame->GetRippleIntensityLava();
|
mul = g_tweakGame->GetRippleIntensityLava();
|
||||||
break;
|
break;
|
||||||
case EFluidType::Three:
|
case EFluidType::PhazonFluid:
|
||||||
case EFluidType::Four:
|
case EFluidType::Four:
|
||||||
mul = 0.8f;
|
mul = 0.8f;
|
||||||
break;
|
break;
|
||||||
case EFluidType::Five:
|
case EFluidType::ThickLava:
|
||||||
mul = 1.f;
|
mul = 1.f;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -23,9 +23,9 @@ public:
|
|||||||
NormalWater,
|
NormalWater,
|
||||||
PoisonWater,
|
PoisonWater,
|
||||||
Lava,
|
Lava,
|
||||||
Three,
|
PhazonFluid,
|
||||||
Four,
|
Four,
|
||||||
Five
|
ThickLava
|
||||||
};
|
};
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
@ -1310,7 +1310,7 @@ void CFluidPlaneCPU::Render(const CStateManager& mgr, float alpha, const zeus::C
|
|||||||
blueShift = 1;
|
blueShift = 1;
|
||||||
break;
|
break;
|
||||||
case EFluidType::Lava:
|
case EFluidType::Lava:
|
||||||
case EFluidType::Five:
|
case EFluidType::ThickLava:
|
||||||
wavecapIntensityScale = g_tweakGame->GetWavecapIntensityLava();
|
wavecapIntensityScale = g_tweakGame->GetWavecapIntensityLava();
|
||||||
blueShift = 8;
|
blueShift = 8;
|
||||||
greenShift = 8;
|
greenShift = 8;
|
||||||
|
@ -159,6 +159,7 @@ public:
|
|||||||
bool GetX187c() const { return x187c_; }
|
bool GetX187c() const { return x187c_; }
|
||||||
void SetDamageTimer(float t) { x191c_damageTimer = t; }
|
void SetDamageTimer(float t) { x191c_damageTimer = t; }
|
||||||
void Stop() {}
|
void Stop() {}
|
||||||
|
void StopSounds() {}
|
||||||
|
|
||||||
CModelData& GetMorphballModelData() const { return *x58_ballModel; }
|
CModelData& GetMorphballModelData() const { return *x58_ballModel; }
|
||||||
u32 GetMorphballModelShader() const { return x5c_ballModelShader; }
|
u32 GetMorphballModelShader() const { return x5c_ballModelShader; }
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -125,12 +125,12 @@ public:
|
|||||||
enum class ESurfaceRestraints
|
enum class ESurfaceRestraints
|
||||||
{
|
{
|
||||||
Normal,
|
Normal,
|
||||||
One,
|
InAir,
|
||||||
Ice,
|
Ice,
|
||||||
MudSlow,
|
MudSlow,
|
||||||
Four,
|
Water,
|
||||||
Fluid2Or5,
|
Lava,
|
||||||
Fluid3,
|
PhazonFluid,
|
||||||
SnakeWeed
|
SnakeWeed
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -210,18 +210,18 @@ private:
|
|||||||
CPlayerEnergyDrain x274_energyDrain = CPlayerEnergyDrain(4);
|
CPlayerEnergyDrain x274_energyDrain = CPlayerEnergyDrain(4);
|
||||||
float x288_startingJumpTimeout = 0.f;
|
float x288_startingJumpTimeout = 0.f;
|
||||||
float x28c_sjTimer = 0.f;
|
float x28c_sjTimer = 0.f;
|
||||||
float x290_ = 0.f;
|
float x290_minJumpTimeout = 0.f;
|
||||||
float x294_jumpCameraPitchTimer = 0.f;
|
float x294_jumpCameraPitchTimer = 0.f;
|
||||||
u32 x298_jumpPresses = 0;
|
u32 x298_jumpPresses = 0;
|
||||||
float x29c_spaceJumpCameraPitchTimer = 0.f;
|
float x29c_spaceJumpCameraPitchTimer = 0.f;
|
||||||
float x2a0_ = 0.f;
|
float x2a0_ = 0.f;
|
||||||
bool x2a4_cancelCameraPitch = false;
|
bool x2a4_cancelCameraPitch = false;
|
||||||
float x2a8_ = 1000.f;
|
float x2a8_timeSinceJump = 1000.f;
|
||||||
ESurfaceRestraints x2ac_surfaceRestraint = ESurfaceRestraints::Normal;
|
ESurfaceRestraints x2ac_surfaceRestraint = ESurfaceRestraints::Normal;
|
||||||
u32 x2b0_ = 2;
|
u32 x2b0_outOfWaterTicks = 2;
|
||||||
rstl::reserved_vector<float, 6> x2b4_;
|
rstl::reserved_vector<float, 6> x2b4_accelerationTable;
|
||||||
u32 x2d0_ = 3;
|
u32 x2d0_curAcceleration = 3;
|
||||||
float x2d4_ = 0.f;
|
float x2d4_accelerationChangeTimer = 0.f;
|
||||||
zeus::CAABox x2d8_fpBounds;
|
zeus::CAABox x2d8_fpBounds;
|
||||||
float x2f0_ballTransHeight = 0.f;
|
float x2f0_ballTransHeight = 0.f;
|
||||||
EPlayerCameraState x2f4_cameraState = EPlayerCameraState::Zero;
|
EPlayerCameraState x2f4_cameraState = EPlayerCameraState::Zero;
|
||||||
@ -246,16 +246,16 @@ private:
|
|||||||
bool x374_orbitLockEstablished = false;
|
bool x374_orbitLockEstablished = false;
|
||||||
float x378_ = 0.f;
|
float x378_ = 0.f;
|
||||||
bool x37c_sidewaysDashing = false;
|
bool x37c_sidewaysDashing = false;
|
||||||
float x380_ = 0.f;
|
float x380_strafeInputAtDash = 0.f;
|
||||||
float x384_ = 0.f;
|
float x384_dashTimer = 0.f;
|
||||||
float x388_ = 0.f;
|
float x388_dashButtonHoldTime = 0.f;
|
||||||
bool x38c_ = false;
|
bool x38c_doneSidewaysDashing = false;
|
||||||
u32 x390_orbitSource = 2;
|
u32 x390_orbitSource = 2;
|
||||||
bool x394_orbitingEnemy = false;
|
bool x394_orbitingEnemy = false;
|
||||||
float x398_ = 1.5f;
|
float x398_dashSpeedMultiplier = 1.5f;
|
||||||
bool x39c_ = false;
|
bool x39c_noStrafeDashBlend = false;
|
||||||
float x3a0_ = 0.5f;
|
float x3a0_dashDuration = 0.5f;
|
||||||
float x3a4_ = 0.449f;
|
float x3a4_strafeDashBlendDuration = 0.449f;
|
||||||
EPlayerScanState x3a8_scanState = EPlayerScanState::NotScanning;
|
EPlayerScanState x3a8_scanState = EPlayerScanState::NotScanning;
|
||||||
float x3ac_scanningTime = 0.f;
|
float x3ac_scanningTime = 0.f;
|
||||||
float x3b0_curScanTime = 0.f;
|
float x3b0_curScanTime = 0.f;
|
||||||
@ -268,8 +268,8 @@ private:
|
|||||||
float x3d4_ = 0.f;
|
float x3d4_ = 0.f;
|
||||||
float x3d8_grappleJumpTimeout = 0.f;
|
float x3d8_grappleJumpTimeout = 0.f;
|
||||||
bool x3dc_inFreeLook = false;
|
bool x3dc_inFreeLook = false;
|
||||||
bool x3dd_freeLookPitchAngleCalculated = false;
|
bool x3dd_lookButtonHeld = false;
|
||||||
bool x3de_lookControlHeld = false;
|
bool x3de_lookAnalogHeld = false;
|
||||||
float x3e0_curFreeLookCenteredTime = 0.f;
|
float x3e0_curFreeLookCenteredTime = 0.f;
|
||||||
float x3e4_freeLookYawAngle = 0.f;
|
float x3e4_freeLookYawAngle = 0.f;
|
||||||
float x3e8_horizFreeLookAngleVel = 0.f;
|
float x3e8_horizFreeLookAngleVel = 0.f;
|
||||||
@ -285,7 +285,7 @@ private:
|
|||||||
EGunHolsterState x498_gunHolsterState = EGunHolsterState::Drawn;
|
EGunHolsterState x498_gunHolsterState = EGunHolsterState::Drawn;
|
||||||
float x49c_gunHolsterRemTime;
|
float x49c_gunHolsterRemTime;
|
||||||
std::unique_ptr<CFailsafeTest> x4a0_failsafeTest;
|
std::unique_ptr<CFailsafeTest> x4a0_failsafeTest;
|
||||||
u32 x4a4_ = 0;
|
TReservedAverage<float, 20> x4a4_;
|
||||||
float x4f8_ = 0.f;
|
float x4f8_ = 0.f;
|
||||||
float x4fc_ = 0.f;
|
float x4fc_ = 0.f;
|
||||||
zeus::CVector3f x500_ = x34_transform.basis[1];
|
zeus::CVector3f x500_ = x34_transform.basis[1];
|
||||||
@ -305,6 +305,7 @@ private:
|
|||||||
float x578_morphDuration = 0.f;
|
float x578_morphDuration = 0.f;
|
||||||
u32 x57c_ = 0;
|
u32 x57c_ = 0;
|
||||||
u32 x580_ = 0;
|
u32 x580_ = 0;
|
||||||
|
int x584_ = -1;
|
||||||
float x588_alpha = 1.f;
|
float x588_alpha = 1.f;
|
||||||
float x58c_ = 0.f;
|
float x58c_ = 0.f;
|
||||||
bool x590_ = true;
|
bool x590_ = true;
|
||||||
@ -312,9 +313,9 @@ private:
|
|||||||
TReservedAverage<zeus::CTransform, 4> x658_transitionModelXfs;
|
TReservedAverage<zeus::CTransform, 4> x658_transitionModelXfs;
|
||||||
TReservedAverage<float, 4> x71c_transitionModelAlphas;
|
TReservedAverage<float, 4> x71c_transitionModelAlphas;
|
||||||
std::vector<std::unique_ptr<CModelData>> x730_transitionModels;
|
std::vector<std::unique_ptr<CModelData>> x730_transitionModels;
|
||||||
float x740_ = 0.f;
|
float x740_staticOutTimer = 0.f;
|
||||||
float x744_ = 0.f;
|
float x744_staticOutSpeed = 0.f;
|
||||||
float x748_ = 0.f;
|
float x748_staticInSpeed = 0.f;
|
||||||
float x74c_visorStaticAlpha = 1.f;
|
float x74c_visorStaticAlpha = 1.f;
|
||||||
float x750_frozenTimeout = 0.f;
|
float x750_frozenTimeout = 0.f;
|
||||||
s32 x754_iceBreakJumps = 0;
|
s32 x754_iceBreakJumps = 0;
|
||||||
@ -326,20 +327,23 @@ private:
|
|||||||
std::unique_ptr<CPlayerCameraBob> x76c_cameraBob;
|
std::unique_ptr<CPlayerCameraBob> x76c_cameraBob;
|
||||||
CSfxHandle x770_damageLoopSfx;
|
CSfxHandle x770_damageLoopSfx;
|
||||||
float x774_samusVoiceTimeout = 0.f;
|
float x774_samusVoiceTimeout = 0.f;
|
||||||
u32 x778_ = 0;
|
CSfxHandle x778_dashSfx;
|
||||||
CSfxHandle x77c_samusVoiceSfx;
|
CSfxHandle x77c_samusVoiceSfx;
|
||||||
int x780_samusVoicePriority = 0;
|
int x780_samusVoicePriority = 0;
|
||||||
float x784_ = 0.f;
|
float x784_ = 0.f;
|
||||||
u16 x788_damageLoopSfxId = 0;
|
u16 x788_damageLoopSfxId = 0;
|
||||||
float x78c_footstepSfxTimer = 0.f;
|
float x78c_footstepSfxTimer = 0.f;
|
||||||
EFootstepSfx x790_footstepSfxSel = EFootstepSfx::None;
|
EFootstepSfx x790_footstepSfxSel = EFootstepSfx::None;
|
||||||
zeus::CVector3f x794_;
|
zeus::CVector3f x794_lastVelocity;
|
||||||
CVisorSteam x7a0_visorSteam = CVisorSteam(0.f, 0.f, 0.f, CAssetId()/*kInvalidAssetId*/);
|
CVisorSteam x7a0_visorSteam = CVisorSteam(0.f, 0.f, 0.f, CAssetId()/*kInvalidAssetId*/);
|
||||||
CAssetId x7cc_;
|
CAssetId x7cc_;
|
||||||
CAnimRes x7d0_animRes;
|
CAnimRes x7d0_animRes;
|
||||||
|
zeus::CVector3f x7d8_beamScale;
|
||||||
|
bool x7e4_ = true;
|
||||||
|
u32 x7e8_ = 0;
|
||||||
CPlayerState::EBeamId x7ec_beam = CPlayerState::EBeamId::Power;
|
CPlayerState::EBeamId x7ec_beam = CPlayerState::EBeamId::Power;
|
||||||
std::unique_ptr<CModelData> x7f0_ballTransitionBeamModel;
|
std::unique_ptr<CModelData> x7f0_ballTransitionBeamModel;
|
||||||
zeus::CTransform x7f4_;
|
zeus::CTransform x7f4_gunWorldXf;
|
||||||
float x824_ = 0.f;
|
float x824_ = 0.f;
|
||||||
float x828_waterLevelOnPlayer = 0.f;
|
float x828_waterLevelOnPlayer = 0.f;
|
||||||
bool x82c_inLava = false;
|
bool x82c_inLava = false;
|
||||||
@ -365,7 +369,7 @@ private:
|
|||||||
bool x9c5_24_ : 1;
|
bool x9c5_24_ : 1;
|
||||||
bool x9c5_25_splashUpdated : 1;
|
bool x9c5_25_splashUpdated : 1;
|
||||||
bool x9c5_26_ : 1;
|
bool x9c5_26_ : 1;
|
||||||
bool x9c5_27_ : 1;
|
bool x9c5_27_camSubmerged : 1;
|
||||||
bool x9c5_28_slidingOnWall : 1;
|
bool x9c5_28_slidingOnWall : 1;
|
||||||
bool x9c5_29_hitWall : 1;
|
bool x9c5_29_hitWall : 1;
|
||||||
bool x9c5_30_ : 1;
|
bool x9c5_30_ : 1;
|
||||||
@ -394,7 +398,7 @@ private:
|
|||||||
float x9f4_deathTime = 0.f;
|
float x9f4_deathTime = 0.f;
|
||||||
float x9f8_ = 0.f;
|
float x9f8_ = 0.f;
|
||||||
float x9fc_ = 0.f;
|
float x9fc_ = 0.f;
|
||||||
TUniqueId xa00_ = kInvalidUniqueId;
|
TUniqueId xa00_deathPowerBomb = kInvalidUniqueId;
|
||||||
float xa04_ = 0.f;
|
float xa04_ = 0.f;
|
||||||
CAssetId xa08_steamTextureId;
|
CAssetId xa08_steamTextureId;
|
||||||
CAssetId xa0c_iceTextureId;
|
CAssetId xa0c_iceTextureId;
|
||||||
@ -406,7 +410,7 @@ private:
|
|||||||
float xa24_radarZRadiusOverride = 1.f;
|
float xa24_radarZRadiusOverride = 1.f;
|
||||||
float xa28_ = 0.f;
|
float xa28_ = 0.f;
|
||||||
u32 xa2c_ = 2;
|
u32 xa2c_ = 2;
|
||||||
float xa30_ = 4.f;
|
float xa30_samusExhaustedVoiceTimer = 4.f;
|
||||||
|
|
||||||
void StartLandingControlFreeze();
|
void StartLandingControlFreeze();
|
||||||
void EndLandingControlFreeze();
|
void EndLandingControlFreeze();
|
||||||
@ -414,12 +418,17 @@ private:
|
|||||||
bool CheckSubmerged() const;
|
bool CheckSubmerged() const;
|
||||||
void UpdateSubmerged(CStateManager& mgr);
|
void UpdateSubmerged(CStateManager& mgr);
|
||||||
void InitializeBallTransition();
|
void InitializeBallTransition();
|
||||||
|
float UpdateCameraBob(float dt, CStateManager& mgr);
|
||||||
|
float GetAcceleration() const;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
CPlayer(TUniqueId, const zeus::CTransform&, const zeus::CAABox&, CAssetId w1, const zeus::CVector3f&, float, float,
|
CPlayer(TUniqueId, const zeus::CTransform&, const zeus::CAABox&, CAssetId w1, const zeus::CVector3f&, float, float,
|
||||||
float, float, const CMaterialList&);
|
float, float, const CMaterialList&);
|
||||||
|
|
||||||
bool IsTransparent() const;
|
bool IsTransparent() const;
|
||||||
|
void UpdateMorphBallTransition(float dt, CStateManager& mgr);
|
||||||
|
void UpdateGunAlpha();
|
||||||
|
void UpdatePlayerSounds();
|
||||||
void Update(float, CStateManager& mgr);
|
void Update(float, CStateManager& mgr);
|
||||||
void PostUpdate(float, CStateManager& mgr);
|
void PostUpdate(float, CStateManager& mgr);
|
||||||
bool StartSamusVoiceSfx(u16 sfx, float vol, int prio);
|
bool StartSamusVoiceSfx(u16 sfx, float vol, int prio);
|
||||||
@ -472,6 +481,14 @@ public:
|
|||||||
void Freeze(CStateManager& stateMgr, CAssetId steamTxtr, u16 sfx, CAssetId iceTxtr);
|
void Freeze(CStateManager& stateMgr, CAssetId steamTxtr, u16 sfx, CAssetId iceTxtr);
|
||||||
bool GetFrozenState() const;
|
bool GetFrozenState() const;
|
||||||
void UpdateFrozenState(const CFinalInput& input, CStateManager& mgr);
|
void UpdateFrozenState(const CFinalInput& input, CStateManager& mgr);
|
||||||
|
void UpdateStepCameraZBias(float dt);
|
||||||
|
void UpdateWaterSurfaceCameraBias(CStateManager& mgr);
|
||||||
|
void UpdatePhazonCameraShake(float dt, CStateManager& mgr);
|
||||||
|
void UpdatePhazonDamage(float dt, CStateManager& mgr);
|
||||||
|
void UpdatePlayerHints(CStateManager& mgr);
|
||||||
|
void UpdateBombJumpStuff();
|
||||||
|
void UpdateTransitionFilter(float dt, CStateManager& mgr);
|
||||||
|
void UpdatePlayerControlDirection(float dt, CStateManager& mgr);
|
||||||
void Think(float, CStateManager&);
|
void Think(float, CStateManager&);
|
||||||
void PreThink(float, CStateManager&);
|
void PreThink(float, CStateManager&);
|
||||||
void AcceptScriptMsg(EScriptObjectMessage, TUniqueId, CStateManager&);
|
void AcceptScriptMsg(EScriptObjectMessage, TUniqueId, CStateManager&);
|
||||||
@ -571,7 +588,12 @@ public:
|
|||||||
float TurnInput(const CFinalInput& input) const;
|
float TurnInput(const CFinalInput& input) const;
|
||||||
float StrafeInput(const CFinalInput& input) const;
|
float StrafeInput(const CFinalInput& input) const;
|
||||||
float ForwardInput(const CFinalInput& input, float) const;
|
float ForwardInput(const CFinalInput& input, float) const;
|
||||||
void ComputeMovement(const CFinalInput& input, CStateManager& mgr, float);
|
zeus::CVector3f CalculateLeftStickEdgePosition(float strafeInput, float forwardInput) const;
|
||||||
|
bool SidewaysDashAllowed(float strafeInput, float forwardInput,
|
||||||
|
const CFinalInput& input, CStateManager& mgr) const;
|
||||||
|
void FinishSidewaysDash();
|
||||||
|
void ComputeDash(const CFinalInput& input, float dt, CStateManager& mgr);
|
||||||
|
void ComputeMovement(const CFinalInput& input, CStateManager& mgr, float dt);
|
||||||
float GetWeight() const;
|
float GetWeight() const;
|
||||||
zeus::CVector3f GetDampedClampedVelocityWR() const;
|
zeus::CVector3f GetDampedClampedVelocityWR() const;
|
||||||
const CVisorSteam& GetVisorSteam() const { return x7a0_visorSteam; }
|
const CVisorSteam& GetVisorSteam() const { return x7a0_visorSteam; }
|
||||||
@ -604,7 +626,7 @@ public:
|
|||||||
float GetMorphTime() const { return x574_morphTime; }
|
float GetMorphTime() const { return x574_morphTime; }
|
||||||
float GetMorphDuration() const { return x578_morphDuration; }
|
float GetMorphDuration() const { return x578_morphDuration; }
|
||||||
bool IsInFreeLook() const { return x3dc_inFreeLook; }
|
bool IsInFreeLook() const { return x3dc_inFreeLook; }
|
||||||
bool IsLookControlHeld() const { return x3de_lookControlHeld; }
|
bool IsLookControlHeld() const { return x3de_lookAnalogHeld; }
|
||||||
CPlayerGun* GetPlayerGun() const { return x490_gun.get(); }
|
CPlayerGun* GetPlayerGun() const { return x490_gun.get(); }
|
||||||
CMorphBall* GetMorphBall() const { return x768_morphball.get(); }
|
CMorphBall* GetMorphBall() const { return x768_morphball.get(); }
|
||||||
CPlayerCameraBob* GetCameraBob() const { return x76c_cameraBob.get(); }
|
CPlayerCameraBob* GetCameraBob() const { return x76c_cameraBob.get(); }
|
||||||
|
@ -158,7 +158,7 @@ void CPlayerCameraBob::Update(float dt, CStateManager& mgr)
|
|||||||
if (std::fabs(x6c_) < 0.0049f && std::fabs(x70_landingTranslation) < 0.0049f && std::fabs(x78_) < 0.0049f)
|
if (std::fabs(x6c_) < 0.0049f && std::fabs(x70_landingTranslation) < 0.0049f && std::fabs(x78_) < 0.0049f)
|
||||||
{
|
{
|
||||||
x28_applyLandingTrans = false;
|
x28_applyLandingTrans = false;
|
||||||
x28_applyLandingTrans = 0.f;
|
x70_landingTranslation = 0.f;
|
||||||
x78_ = 0.f;
|
x78_ = 0.f;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -171,7 +171,7 @@ void CPlayerCameraBob::Update(float dt, CStateManager& mgr)
|
|||||||
x70_landingTranslation *= f1;
|
x70_landingTranslation *= f1;
|
||||||
x78_ *= f1;
|
x78_ *= f1;
|
||||||
x104_ *= f1;
|
x104_ *= f1;
|
||||||
if (mgr.GetPlayer().x38c_)
|
if (mgr.GetPlayer().x38c_doneSidewaysDashing)
|
||||||
{
|
{
|
||||||
x70_landingTranslation *= 0.2f;
|
x70_landingTranslation *= 0.2f;
|
||||||
x78_ *= 0.2f;
|
x78_ *= 0.2f;
|
||||||
@ -217,7 +217,7 @@ void CPlayerCameraBob::CalculateMovingTranslation(float& x, float& y) const
|
|||||||
else
|
else
|
||||||
x = ((fX / xc_)) * (x14_ * x4_vec.x);
|
x = ((fX / xc_)) * (x14_ * x4_vec.x);
|
||||||
|
|
||||||
float sY = float(std::sin(std::fmod((M_PI * fX) / xc_, M_PI)));
|
auto sY = float(std::sin(std::fmod((M_PI * fX) / xc_, M_PI)));
|
||||||
y = (1.f - sY) * (x14_ * x4_vec.y) * 0.5f + (0.5f * -((sY * sY) - 1.f) * (x14_ * x4_vec.y));
|
y = (1.f - sY) * (x14_ * x4_vec.y) * 0.5f + (0.5f * -((sY * sY) - 1.f) * (x14_ * x4_vec.y));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -27,20 +27,23 @@ CScriptWater::CScriptWater(CStateManager& mgr, TUniqueId uid, const std::string&
|
|||||||
float turbFreqMin, float turbPhaseMax, float turbPhaseMin, float turbAmplitudeMax,
|
float turbFreqMin, float turbPhaseMax, float turbPhaseMin, float turbAmplitudeMax,
|
||||||
float turbAmplitudeMin, const zeus::CColor& splashColor, const zeus::CColor& unkColor,
|
float turbAmplitudeMin, const zeus::CColor& splashColor, const zeus::CColor& unkColor,
|
||||||
CAssetId splashParticle1, CAssetId splashParticle2, CAssetId splashParticle3,
|
CAssetId splashParticle1, CAssetId splashParticle2, CAssetId splashParticle3,
|
||||||
CAssetId particle4, CAssetId particle5, s32 unkSfx, s32 visorRunoffSfx, s32 splashSfx1,
|
CAssetId visorRunoffParticle, CAssetId unmorphVisorRunoffparticle, s32 visorRunoffSfx,
|
||||||
s32 splashSfx2, s32 splashSfx3, float tileSize, u32 tileSubdivisions, float specularMin,
|
s32 unmorphVisorRunoffSfx, s32 splashSfx1, s32 splashSfx2, s32 splashSfx3, float tileSize,
|
||||||
float specularMax, float reflectionSize, float rippleIntensity, float reflectionBlend,
|
u32 tileSubdivisions, float specularMin, float specularMax, float reflectionSize,
|
||||||
float fogBias, float fogMagnitude, float fogSpeed, const zeus::CColor& fogColor,
|
float rippleIntensity, float reflectionBlend, float fogBias, float fogMagnitude,
|
||||||
CAssetId lightmapId, float unitsPerLightmapTexel, float alphaInTime, float alphaOutTime,
|
float fogSpeed, const zeus::CColor& fogColor, CAssetId lightmapId,
|
||||||
u32, u32, bool, s32, s32, std::unique_ptr<u32[]>&& u32Arr)
|
float unitsPerLightmapTexel, float alphaInTime, float alphaOutTime, u32, u32, bool, s32,
|
||||||
|
s32, std::unique_ptr<u32[]>&& u32Arr)
|
||||||
: CScriptTrigger(uid, name, info, pos, box, dInfo, orientedForce, triggerFlags, active, false, false),
|
: CScriptTrigger(uid, name, info, pos, box, dInfo, orientedForce, triggerFlags, active, false, false),
|
||||||
x1b8_positionMorphed(pos), x1c4_extentMorphed(box.max - box.min), x1d0_morphInTime(morphInTime), x1d4_positionOrig(pos),
|
x1b8_positionMorphed(pos), x1c4_extentMorphed(box.max - box.min), x1d0_morphInTime(morphInTime), x1d4_positionOrig(pos),
|
||||||
x1e0_extentOrig(box.max - box.min), x1ec_damageOrig(dInfo.GetDamage()), x1f0_damageMorphed(dInfo.GetDamage()),
|
x1e0_extentOrig(box.max - box.min), x1ec_damageOrig(dInfo.GetDamage()), x1f0_damageMorphed(dInfo.GetDamage()),
|
||||||
x1f4_morphOutTime(morphOutTime), x214_fogBias(fogBias), x218_fogMagnitude(fogMagnitude), x21c_origFogBias(fogBias),
|
x1f4_morphOutTime(morphOutTime), x214_fogBias(fogBias), x218_fogMagnitude(fogMagnitude), x21c_origFogBias(fogBias),
|
||||||
x220_origFogMagnitude(fogMagnitude), x224_fogSpeed(fogSpeed), x228_fogColor(fogColor),
|
x220_origFogMagnitude(fogMagnitude), x224_fogSpeed(fogSpeed), x228_fogColor(fogColor),
|
||||||
x22c_splashParticle1Id(splashParticle1), x230_splashParticle2Id(splashParticle2),
|
x22c_splashParticle1Id(splashParticle1), x230_splashParticle2Id(splashParticle2),
|
||||||
x234_splashParticle3Id(splashParticle3), x238_particle4Id(particle4), x24c_particle5Id(particle5),
|
x234_splashParticle3Id(splashParticle3), x238_visorRunoffParticleId(visorRunoffParticle),
|
||||||
x260_unkSfx(CSfxManager::TranslateSFXID(unkSfx)), x262_visorRunoffSfx(CSfxManager::TranslateSFXID(visorRunoffSfx)),
|
x24c_unmorphVisorRunoffParticleId(unmorphVisorRunoffparticle),
|
||||||
|
x260_visorRunoffSfx(CSfxManager::TranslateSFXID(visorRunoffSfx)),
|
||||||
|
x262_unmorphVisorRunoffSfx(CSfxManager::TranslateSFXID(unmorphVisorRunoffSfx)),
|
||||||
x2a4_splashColor(splashColor), x2a8_unkColor(unkColor), x2ac_alphaInTime(alphaInTime), x2b0_alphaOutTime(alphaOutTime),
|
x2a4_splashColor(splashColor), x2a8_unkColor(unkColor), x2ac_alphaInTime(alphaInTime), x2b0_alphaOutTime(alphaOutTime),
|
||||||
x2b4_alphaInRecip((alphaInTime != 0.f) ? 1.f / alphaInTime : 0.f),
|
x2b4_alphaInRecip((alphaInTime != 0.f) ? 1.f / alphaInTime : 0.f),
|
||||||
x2b8_alphaOutRecip((alphaOutTime != 0.f) ? 1.f / alphaOutTime : 0.f), x2bc_alpha(alpha), x2c0_tileSize(tileSize)
|
x2b8_alphaOutRecip((alphaOutTime != 0.f) ? 1.f / alphaOutTime : 0.f), x2bc_alpha(alpha), x2c0_tileSize(tileSize)
|
||||||
@ -69,10 +72,10 @@ CScriptWater::CScriptWater(CStateManager& mgr, TUniqueId uid, const std::string&
|
|||||||
x264_splashEffects[1].emplace(g_SimplePool->GetObj({FOURCC('PART'), x230_splashParticle2Id}));
|
x264_splashEffects[1].emplace(g_SimplePool->GetObj({FOURCC('PART'), x230_splashParticle2Id}));
|
||||||
if (x234_splashParticle3Id.IsValid())
|
if (x234_splashParticle3Id.IsValid())
|
||||||
x264_splashEffects[2].emplace(g_SimplePool->GetObj({FOURCC('PART'), x234_splashParticle3Id}));
|
x264_splashEffects[2].emplace(g_SimplePool->GetObj({FOURCC('PART'), x234_splashParticle3Id}));
|
||||||
if (x238_particle4Id.IsValid())
|
if (x238_visorRunoffParticleId.IsValid())
|
||||||
x23c_.emplace(g_SimplePool->GetObj({FOURCC('PART'), x238_particle4Id}));
|
x23c_visorRunoffEffect.emplace(g_SimplePool->GetObj({FOURCC('PART'), x238_visorRunoffParticleId}));
|
||||||
if (x24c_particle5Id.IsValid())
|
if (x24c_unmorphVisorRunoffParticleId.IsValid())
|
||||||
x250_visorRunoffEffect.emplace(g_SimplePool->GetObj({FOURCC('PART'), x24c_particle5Id}));
|
x250_unmorphVisorRunoffEffect.emplace(g_SimplePool->GetObj({FOURCC('PART'), x24c_unmorphVisorRunoffParticleId}));
|
||||||
x298_splashSounds.push_back(CSfxManager::TranslateSFXID(splashSfx1));
|
x298_splashSounds.push_back(CSfxManager::TranslateSFXID(splashSfx1));
|
||||||
x298_splashSounds.push_back(CSfxManager::TranslateSFXID(splashSfx2));
|
x298_splashSounds.push_back(CSfxManager::TranslateSFXID(splashSfx2));
|
||||||
x298_splashSounds.push_back(CSfxManager::TranslateSFXID(splashSfx3));
|
x298_splashSounds.push_back(CSfxManager::TranslateSFXID(splashSfx3));
|
||||||
|
@ -34,12 +34,12 @@ private:
|
|||||||
CAssetId x22c_splashParticle1Id;
|
CAssetId x22c_splashParticle1Id;
|
||||||
CAssetId x230_splashParticle2Id;
|
CAssetId x230_splashParticle2Id;
|
||||||
CAssetId x234_splashParticle3Id;
|
CAssetId x234_splashParticle3Id;
|
||||||
CAssetId x238_particle4Id;
|
CAssetId x238_visorRunoffParticleId;
|
||||||
std::experimental::optional<TLockedToken<CGenDescription>> x23c_;
|
std::experimental::optional<TLockedToken<CGenDescription>> x23c_visorRunoffEffect;
|
||||||
CAssetId x24c_particle5Id;
|
CAssetId x24c_unmorphVisorRunoffParticleId;
|
||||||
std::experimental::optional<TLockedToken<CGenDescription>> x250_visorRunoffEffect;
|
std::experimental::optional<TLockedToken<CGenDescription>> x250_unmorphVisorRunoffEffect;
|
||||||
u16 x260_unkSfx;
|
u16 x260_visorRunoffSfx;
|
||||||
u16 x262_visorRunoffSfx;
|
u16 x262_unmorphVisorRunoffSfx;
|
||||||
rstl::reserved_vector<std::experimental::optional<TLockedToken<CGenDescription>>, 3> x264_splashEffects;
|
rstl::reserved_vector<std::experimental::optional<TLockedToken<CGenDescription>>, 3> x264_splashEffects;
|
||||||
rstl::reserved_vector<u16, 3> x298_splashSounds;
|
rstl::reserved_vector<u16, 3> x298_splashSounds;
|
||||||
zeus::CColor x2a4_splashColor;
|
zeus::CColor x2a4_splashColor;
|
||||||
@ -88,12 +88,12 @@ public:
|
|||||||
float turbFreqMin, float turbPhaseMax, float turbPhaseMin, float turbAmplitudeMax,
|
float turbFreqMin, float turbPhaseMax, float turbPhaseMin, float turbAmplitudeMax,
|
||||||
float turbAmplitudeMin, const zeus::CColor& splashColor, const zeus::CColor& unkColor,
|
float turbAmplitudeMin, const zeus::CColor& splashColor, const zeus::CColor& unkColor,
|
||||||
CAssetId splashParticle1, CAssetId splashParticle2, CAssetId splashParticle3,
|
CAssetId splashParticle1, CAssetId splashParticle2, CAssetId splashParticle3,
|
||||||
CAssetId particle4, CAssetId particle5, s32 unkSfx, s32 visorRunoffSfx, s32 splashSfx1,
|
CAssetId visorRunoffParticle, CAssetId unmorphVisorRunoffparticle, s32 visorRunoffSfx,
|
||||||
s32 splashSfx2, s32 splashSfx3, float tileSize, u32 tileSubdivisions, float specularMin,
|
s32 unmorphVisorRunoffSfx, s32 splashSfx1, s32 splashSfx2, s32 splashSfx3, float tileSize,
|
||||||
float specularMax, float reflectionSize, float rippleIntensity, float reflectionBlend,
|
u32 tileSubdivisions, float specularMin, float specularMax, float reflectionSize,
|
||||||
float fogBias, float fogMagnitude, float fogSpeed, const zeus::CColor& fogColor,
|
float rippleIntensity, float reflectionBlend, float fogBias, float fogMagnitude, float fogSpeed,
|
||||||
CAssetId lightmapId, float unitsPerLightmapTexel, float alphaInTime, float alphaOutTime,
|
const zeus::CColor& fogColor, CAssetId lightmapId, float unitsPerLightmapTexel, float alphaInTime,
|
||||||
u32, u32, bool, s32, s32, std::unique_ptr<u32[]>&& u32Arr);
|
float alphaOutTime, u32, u32, bool, s32, s32, std::unique_ptr<u32[]>&& u32Arr);
|
||||||
|
|
||||||
void Think(float, CStateManager&);
|
void Think(float, CStateManager&);
|
||||||
void AcceptScriptMsg(EScriptObjectMessage, TUniqueId, CStateManager&);
|
void AcceptScriptMsg(EScriptObjectMessage, TUniqueId, CStateManager&);
|
||||||
@ -121,8 +121,11 @@ public:
|
|||||||
const zeus::CFrustum& GetFrustumPlanes() const { return x150_frustum; }
|
const zeus::CFrustum& GetFrustumPlanes() const { return x150_frustum; }
|
||||||
CFluidPlaneCPU& GetFluidPlane() const { return *x1b4_fluidPlane; }
|
CFluidPlaneCPU& GetFluidPlane() const { return *x1b4_fluidPlane; }
|
||||||
const std::experimental::optional<TLockedToken<CGenDescription>>& GetVisorRunoffEffect() const
|
const std::experimental::optional<TLockedToken<CGenDescription>>& GetVisorRunoffEffect() const
|
||||||
{ return x250_visorRunoffEffect; }
|
{ return x23c_visorRunoffEffect; }
|
||||||
u16 GetVisorRunoffSfx() const { return x262_visorRunoffSfx; }
|
u16 GetVisorRunoffSfx() const { return x260_visorRunoffSfx; }
|
||||||
|
const std::experimental::optional<TLockedToken<CGenDescription>>& GetUnmorphVisorRunoffEffect() const
|
||||||
|
{ return x250_unmorphVisorRunoffEffect; }
|
||||||
|
u16 GetUnmorphVisorRunoffSfx() const { return x262_unmorphVisorRunoffSfx; }
|
||||||
const CScriptWater* GetNextConnectedWater(const CStateManager& mgr) const;
|
const CScriptWater* GetNextConnectedWater(const CStateManager& mgr) const;
|
||||||
u8 GetPatchRenderFlags(int x, int y) const { return x2e0_patchIntersects[y * x2d0_patchDimX + x]; }
|
u8 GetPatchRenderFlags(int x, int y) const { return x2e0_patchIntersects[y * x2d0_patchDimX + x]; }
|
||||||
int GetPatchDimensionX() const { return x2d0_patchDimX; }
|
int GetPatchDimensionX() const { return x2d0_patchDimX; }
|
||||||
|
@ -1238,10 +1238,10 @@ CEntity* ScriptLoader::LoadWater(CStateManager& mgr, CInputStream& in, int propC
|
|||||||
CAssetId splashParticle1 = in.readUint32Big();
|
CAssetId splashParticle1 = in.readUint32Big();
|
||||||
CAssetId splashParticle2 = in.readUint32Big();
|
CAssetId splashParticle2 = in.readUint32Big();
|
||||||
CAssetId splashParticle3 = in.readUint32Big();
|
CAssetId splashParticle3 = in.readUint32Big();
|
||||||
CAssetId particle4 = in.readUint32Big();
|
CAssetId visorRunoffParticle = in.readUint32Big();
|
||||||
CAssetId particle5 = in.readUint32Big();
|
CAssetId unmorphVisorRunoffParticle = in.readUint32Big();
|
||||||
u32 unkSfx = in.readUint32Big();
|
|
||||||
u32 visorRunoffSfx = in.readUint32Big();
|
u32 visorRunoffSfx = in.readUint32Big();
|
||||||
|
u32 unmorphVisorRunoffSfx = in.readUint32Big();
|
||||||
u32 splashSfx1 = in.readUint32Big();
|
u32 splashSfx1 = in.readUint32Big();
|
||||||
u32 splashSfx2 = in.readUint32Big();
|
u32 splashSfx2 = in.readUint32Big();
|
||||||
u32 splashSfx3 = in.readUint32Big();
|
u32 splashSfx3 = in.readUint32Big();
|
||||||
@ -1293,10 +1293,11 @@ CEntity* ScriptLoader::LoadWater(CStateManager& mgr, CInputStream& in, int propC
|
|||||||
displaySurface, patternMap1, patternMap2, colorMap, bumpMap, envMap, envBumpMap, {}, bumpLightDir, bumpScale,
|
displaySurface, patternMap1, patternMap2, colorMap, bumpMap, envMap, envBumpMap, {}, bumpLightDir, bumpScale,
|
||||||
morphInTime, morphOutTime, active, fluidType, b4, alpha, uvMotion, turbSpeed, turbDistance, turbFreqMax,
|
morphInTime, morphOutTime, active, fluidType, b4, alpha, uvMotion, turbSpeed, turbDistance, turbFreqMax,
|
||||||
turbFreqMin, turbPhaseMax, turbPhaseMin, turbAmplitudeMax, turbAmplitudeMin, splashColor, unkColor,
|
turbFreqMin, turbPhaseMax, turbPhaseMin, turbAmplitudeMax, turbAmplitudeMin, splashColor, unkColor,
|
||||||
splashParticle1, splashParticle2, splashParticle3, particle4, particle5, unkSfx, visorRunoffSfx, splashSfx1,
|
splashParticle1, splashParticle2, splashParticle3, visorRunoffParticle, unmorphVisorRunoffParticle,
|
||||||
splashSfx2, splashSfx3, tileSize, tileSubdivisions, specularMin, specularMax, reflectionSize, rippleIntensity,
|
visorRunoffSfx, unmorphVisorRunoffSfx, splashSfx1, splashSfx2, splashSfx3, tileSize, tileSubdivisions,
|
||||||
reflectionBlend, fogBias, fogMagnitude, fogSpeed, fogColor, lightmap, unitsPerLightmapTexel, alphaInTime,
|
specularMin, specularMax, reflectionSize, rippleIntensity, reflectionBlend, fogBias, fogMagnitude, fogSpeed,
|
||||||
alphaOutTime, w21, w22, b5, bitVal0, bitVal1, std::move(bitset));
|
fogColor, lightmap, unitsPerLightmapTexel, alphaInTime, alphaOutTime, w21, w22, b5, bitVal0, bitVal1,
|
||||||
|
std::move(bitset));
|
||||||
}
|
}
|
||||||
|
|
||||||
CEntity* ScriptLoader::LoadWarWasp(CStateManager& mgr, CInputStream& in, int propCount, const CEntityInfo& info)
|
CEntity* ScriptLoader::LoadWarWasp(CStateManager& mgr, CInputStream& in, int propCount, const CEntityInfo& info)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user