diff --git a/DataSpec/DNACommon/Tweaks/ITweak.hpp b/DataSpec/DNACommon/Tweaks/ITweak.hpp index 7a3f04709..fb732c492 100644 --- a/DataSpec/DNACommon/Tweaks/ITweak.hpp +++ b/DataSpec/DNACommon/Tweaks/ITweak.hpp @@ -2,12 +2,6 @@ #include "DataSpec/DNACommon/DNACommon.hpp" -namespace hecl { -class CVarManager; -} namespace DataSpec { -struct ITweak : BigDNA { - - virtual void initCVars(hecl::CVarManager*) {} -}; +struct ITweak : BigDNA {}; } // namespace DataSpec diff --git a/DataSpec/DNACommon/Tweaks/ITweakAutoMapper.hpp b/DataSpec/DNACommon/Tweaks/ITweakAutoMapper.hpp index eaf9397a6..0f38c8b7f 100644 --- a/DataSpec/DNACommon/Tweaks/ITweakAutoMapper.hpp +++ b/DataSpec/DNACommon/Tweaks/ITweakAutoMapper.hpp @@ -4,60 +4,5 @@ namespace DataSpec { struct ITweakAutoMapper : public ITweak { - virtual bool GetShowOneMiniMapArea() const = 0; - virtual bool GetScaleMoveSpeedWithCamDist() const = 0; - virtual float GetCamDist() const = 0; - virtual float GetMinCamDist() const = 0; - virtual float GetMaxCamDist() const = 0; - virtual float GetMinCamRotateX() const = 0; - virtual float GetMaxCamRotateX() const = 0; - virtual float GetCamAngle() const = 0; - virtual const zeus::CColor& GetAutomapperWidgetColor() const = 0; - virtual float GetMiniCamDist() const = 0; - virtual float GetMiniCamXAngle() const = 0; - virtual float GetMiniCamAngle() const = 0; - virtual const zeus::CColor& GetAutomapperWidgetMiniColor() const = 0; - virtual const zeus::CColor& GetSurfaceVisitedColor() const = 0; - virtual const zeus::CColor& GetOutlineVisitedColor() const = 0; - virtual const zeus::CColor& GetSurfaceUnvisitedColor() const = 0; - virtual const zeus::CColor& GetOutlineUnvisitedColor() const = 0; - virtual const zeus::CColor& GetSurfaceSelectVisitedColor() const = 0; - virtual const zeus::CColor& GetOutlineSelectVisitedColor() const = 0; - virtual float GetMapSurfaceNormColorLinear() const = 0; - virtual float GetMapSurfaceNormColorConstant() const = 0; - virtual float GetOpenMapScreenTime() const = 0; - virtual float GetCloseMapScreenTime() const = 0; - virtual float GetHintPanTime() const = 0; - virtual float GetCamZoomUnitsPerFrame() const = 0; - virtual float GetCamRotateDegreesPerFrame() const = 0; - virtual float GetBaseMapScreenCameraMoveSpeed() const = 0; - virtual const zeus::CColor& GetSurfaceSelectUnvisitedColor() const = 0; - virtual const zeus::CColor& GetOutlineSelectUnvisitedColor() const = 0; - virtual float GetMiniAlphaSurfaceVisited() const = 0; - virtual float GetAlphaSurfaceVisited() const = 0; - virtual float GetMiniAlphaOutlineVisited() const = 0; - virtual float GetAlphaOutlineVisited() const = 0; - virtual float GetMiniAlphaSurfaceUnvisited() const = 0; - virtual float GetAlphaSurfaceUnvisited() const = 0; - virtual float GetMiniAlphaOutlineUnvisited() const = 0; - virtual float GetAlphaOutlineUnvisited() const = 0; - virtual const zeus::CVector3f& GetDoorCenter() const = 0; - virtual float GetMiniMapViewportWidth() const = 0; - virtual float GetMiniMapViewportHeight() const = 0; - virtual float GetMiniMapCamDistScale() const = 0; - virtual float GetMapPlaneScaleX() const = 0; - virtual float GetMapPlaneScaleZ() const = 0; - virtual float GetUniverseCamDist() const = 0; - virtual float GetMinUniverseCamDist() const = 0; - virtual float GetMaxUniverseCamDist() const = 0; - virtual float GetSwitchToFromUniverseTime() const = 0; - virtual float GetCamPanUnitsPerFrame() const = 0; - virtual float GetAutomapperScaleX() const = 0; - virtual float GetAutomapperScaleZ() const = 0; - virtual float GetCamVerticalOffset() const = 0; - virtual const zeus::CColor& GetMiniMapSamusModColor() const = 0; - virtual const zeus::CColor& GetAreaFlashPulseColor() const = 0; - virtual const zeus::CColor& GetDoorColor(int idx) const = 0; - virtual const zeus::CColor& GetOpenDoorColor() const = 0; }; } // namespace DataSpec diff --git a/DataSpec/DNACommon/Tweaks/ITweakGame.hpp b/DataSpec/DNACommon/Tweaks/ITweakGame.hpp index 75364b2e8..494f92043 100644 --- a/DataSpec/DNACommon/Tweaks/ITweakGame.hpp +++ b/DataSpec/DNACommon/Tweaks/ITweakGame.hpp @@ -4,23 +4,5 @@ namespace DataSpec { -struct ITweakGame : ITweak { - virtual std::string_view GetWorldPrefix() const = 0; - virtual bool GetSplashScreensDisabled() const = 0; - virtual float GetFirstPersonFOV() const = 0; - virtual float GetPressStartDelay() const = 0; - virtual float GetWavecapIntensityNormal() const = 0; - virtual float GetWavecapIntensityPoison() const = 0; - virtual float GetWavecapIntensityLava() const = 0; - virtual float GetRippleIntensityNormal() const = 0; - virtual float GetRippleIntensityPoison() const = 0; - virtual float GetRippleIntensityLava() const = 0; - virtual float GetFluidEnvBumpScale() const = 0; - virtual float GetWaterFogDistanceBase() const = 0; - virtual float GetWaterFogDistanceRange() const = 0; - virtual float GetGravityWaterFogDistanceBase() const = 0; - virtual float GetGravityWaterFogDistanceRange() const = 0; - virtual float GetHardModeDamageMultiplier() const = 0; - virtual float GetHardModeWeaponMultiplier() const = 0; -}; +struct ITweakGame : ITweak {}; } // namespace DataSpec diff --git a/DataSpec/DNACommon/Tweaks/ITweakGui.hpp b/DataSpec/DNACommon/Tweaks/ITweakGui.hpp index 9ea42cd27..5f3b260e7 100644 --- a/DataSpec/DNACommon/Tweaks/ITweakGui.hpp +++ b/DataSpec/DNACommon/Tweaks/ITweakGui.hpp @@ -7,135 +7,7 @@ namespace DataSpec { struct ITweakGui : ITweak { enum class EHudVisMode : atUint32 { Zero, One, Two, Three }; - enum class EHelmetVisMode : atUint32 { ReducedUpdate, NotVisible, Deco, HelmetDeco, GlowHelmetDeco, HelmetOnly }; - - virtual float GetMapAlphaInterpolant() const = 0; - virtual float GetPauseBlurFactor() const = 0; - virtual float GetRadarXYRadius() const = 0; - virtual float GetRadarZRadius() const = 0; - virtual float GetRadarZCloseRadius() const = 0; - virtual float GetEnergyBarFilledSpeed() const = 0; - virtual float GetEnergyBarShadowSpeed() const = 0; - virtual float GetEnergyBarDrainDelay() const = 0; - virtual bool GetEnergyBarAlwaysResetDelay() const = 0; - virtual float GetHudDamagePracticalsGainConstant() const = 0; - virtual float GetHudDamagePracticalsGainLinear() const = 0; - virtual float GetHudDamagePracticalsInitConstant() const = 0; - virtual float GetHudDamagePracticalsInitLinear() const = 0; - virtual float GetHudDamageLightSpotAngle() const = 0; - virtual float GetDamageLightAngleC() const = 0; - virtual float GetDamageLightAngleL() const = 0; - virtual float GetDamageLightAngleQ() const = 0; - virtual atVec3f GetDamageLightPreTranslate() const = 0; - virtual atVec3f GetDamageLightCenterTranslate() const = 0; - virtual float GetDamageLightXfXAngle() const = 0; - virtual float GetDamageLightXfZAngle() const = 0; - virtual float GetHudDecoShakeTranslateVelConstant() const = 0; - virtual float GetHudDecoShakeTranslateVelLinear() const = 0; - virtual float GetMaxDecoDamageShakeTranslate() const = 0; - virtual float GetDecoDamageShakeDeceleration() const = 0; - virtual float GetDecoShakeGainConstant() const = 0; - virtual float GetDecoShakeGainLinear() const = 0; - virtual float GetDecoShakeInitConstant() const = 0; - virtual float GetDecoShakeInitLinear() const = 0; - virtual float GetMaxDecoDamageShakeRotate() const = 0; - virtual atUint32 GetHudCamFovTweak() const = 0; - virtual atUint32 GetHudCamYTweak() const = 0; - virtual atUint32 GetHudCamZTweak() const = 0; - virtual float GetBeamVisorMenuAnimTime() const = 0; - virtual float GetVisorBeamMenuItemActiveScale() const = 0; - virtual float GetVisorBeamMenuItemInactiveScale() const = 0; - virtual float GetVisorBeamMenuItemTranslate() const = 0; - virtual float GetThreatRange() const = 0; - virtual float GetRadarScopeCoordRadius() const = 0; - virtual float GetRadarPlayerPaintRadius() const = 0; - virtual float GetRadarEnemyPaintRadius() const = 0; - virtual float GetMissileArrowVisTime() const = 0; - virtual EHudVisMode GetHudVisMode() const = 0; - virtual EHelmetVisMode GetHelmetVisMode() const = 0; - virtual atUint32 GetEnableAutoMapper() const = 0; - virtual atUint32 GetEnableTargetingManager() const = 0; - virtual atUint32 GetEnablePlayerVisor() const = 0; - virtual float GetThreatWarningFraction() const = 0; - virtual float GetMissileWarningFraction() const = 0; - virtual float GetFreeLookFadeTime() const = 0; - virtual float GetFreeLookSfxPitchScale() const = 0; - virtual bool GetNoAbsoluteFreeLookSfxPitch() const = 0; - virtual float GetFaceReflectionOrthoWidth() const = 0; - virtual float GetFaceReflectionOrthoHeight() const = 0; - virtual float GetFaceReflectionDistance() const = 0; - virtual float GetFaceReflectionHeight() const = 0; - virtual float GetFaceReflectionAspect() const = 0; - virtual float GetMissileWarningPulseTime() const = 0; - virtual float GetExplosionLightFalloffMultConstant() const = 0; - virtual float GetExplosionLightFalloffMultLinear() const = 0; - virtual float GetExplosionLightFalloffMultQuadratic() const = 0; - virtual float GetHudDamagePeakFactor() const = 0; - virtual float GetHudDamageFilterGainConstant() const = 0; - virtual float GetHudDamageFilterGainLinear() const = 0; - virtual float GetHudDamageFilterInitConstant() const = 0; - virtual float GetHudDamageFilterInitLinear() const = 0; - virtual float GetEnergyDrainModPeriod() const = 0; - virtual bool GetEnergyDrainSinusoidalPulse() const = 0; - virtual bool GetEnergyDrainFilterAdditive() const = 0; - virtual float GetHudDamagePulseDuration() const = 0; - virtual float GetHudDamageColorGain() const = 0; - virtual float GetHudDecoShakeTranslateGain() const = 0; - virtual float GetHudLagOffsetScale() const = 0; - virtual float GetScanAppearanceDuration() const = 0; - virtual float GetScanPaneFlashFactor() const = 0; - virtual float GetScanPaneFadeInTime() const = 0; - virtual float GetScanPaneFadeOutTime() const = 0; - virtual float GetBallViewportYReduction() const = 0; - virtual float GetScanWindowIdleWidth() const = 0; - virtual float GetScanWindowIdleHeight() const = 0; - virtual float GetScanWindowActiveWidth() const = 0; - virtual float GetScanWindowActiveHeight() const = 0; - virtual float GetScanWindowMagnification() const = 0; - virtual float GetScanWindowScanningAspect() const = 0; - virtual float GetScanSpeed(int idx) const = 0; - virtual float GetXrayBlurScaleLinear() const = 0; - virtual float GetXrayBlurScaleQuadratic() const = 0; - virtual float GetScanSidesAngle() const = 0; - virtual float GetScanSidesXScale() const = 0; - virtual float GetScanSidesPositionEnd() const = 0; - virtual float GetScanSidesDuration() const = 0; - virtual float GetScanSidesStartTime() const = 0; - virtual float GetScanSidesEndTime() const = 0; - virtual float GetScanDataDotRadius() const = 0; - virtual float GetScanDataDotPosRandMagnitude() const = 0; - virtual float GetScanDataDotSeekDurationMin() const = 0; - virtual float GetScanDataDotSeekDurationMax() const = 0; - virtual float GetScanDataDotHoldDurationMin() const = 0; - virtual float GetScanDataDotHoldDurationMax() const = 0; - virtual float GetScanSidesPositionStart() const = 0; - virtual bool GetShowAutomapperInMorphball() const = 0; - virtual bool GetLatchArticleText() const = 0; - virtual float GetWorldTransManagerCharsPerSfx() const = 0; - virtual atUint32 GetXRayFogMode() const = 0; - virtual float GetXRayFogNearZ() const = 0; - virtual float GetXRayFogFarZ() const = 0; - virtual const zeus::CColor& GetXRayFogColor() const = 0; - virtual float GetThermalVisorLevel() const = 0; - virtual const zeus::CColor& GetThermalVisorColor() const = 0; - virtual const zeus::CColor& GetVisorHudLightAdd(int v) const = 0; - virtual const zeus::CColor& GetVisorHudLightMultiply(int v) const = 0; - virtual const zeus::CColor& GetHudReflectivityLightColor() const = 0; - virtual float GetHudLightAttMulConstant() const = 0; - virtual float GetHudLightAttMulLinear() const = 0; - virtual float GetHudLightAttMulQuadratic() const = 0; - virtual std::string_view GetCreditsTable() const = 0; - virtual std::string_view GetCreditsFont() const = 0; - virtual std::string_view GetJapaneseCreditsFont() const = 0; - virtual const zeus::CColor& GetCreditsTextFontColor() const = 0; - virtual const zeus::CColor& GetCreditsTextBorderColor() const = 0; - - static float FaceReflectionDistanceDebugValueToActualValue(float v) { return 0.015f * v + 0.2f; } - static float FaceReflectionHeightDebugValueToActualValue(float v) { return 0.005f * v - 0.05f; } - static float FaceReflectionAspectDebugValueToActualValue(float v) { return 0.05f * v + 1.f; } - static float FaceReflectionOrthoWidthDebugValueToActualValue(float v) { return 0.007f * v + 0.02f; } - static float FaceReflectionOrthoHeightDebugValueToActualValue(float v) { return 0.007f * v + 0.02f; } }; } // namespace DataSpec diff --git a/DataSpec/DNACommon/Tweaks/ITweakPlayer.hpp b/DataSpec/DNACommon/Tweaks/ITweakPlayer.hpp index ca5592846..220cb5e8e 100644 --- a/DataSpec/DNACommon/Tweaks/ITweakPlayer.hpp +++ b/DataSpec/DNACommon/Tweaks/ITweakPlayer.hpp @@ -5,140 +5,6 @@ namespace DataSpec { -struct ITweakPlayer : ITweak { - virtual float GetMaxTranslationalAcceleration(int s) const = 0; - virtual float GetMaxRotationalAcceleration(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 GetNormalGravAccel() 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 GetWaterBallJumpFactor() const = 0; - virtual float GetLavaJumpFactor() const = 0; - virtual float GetLavaBallJumpFactor() const = 0; - virtual float GetPhazonJumpFactor() const = 0; - virtual float GetPhazonBallJumpFactor() 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 GetBombJumpRadius() const = 0; - virtual float GetBombJumpHeight() const = 0; - virtual float GetEyeOffset() const = 0; - virtual float GetTurnSpeedMultiplier() const = 0; - virtual float GetFreeLookTurnSpeedMultiplier() const = 0; - virtual float GetFreeLookSpeed() const = 0; - virtual float GetFreeLookSnapSpeed() const = 0; - virtual float GetFreeLookCenteredThresholdAngle() const = 0; - virtual float GetFreeLookCenteredTime() const = 0; - virtual float GetOrbitModeTimer() const = 0; - virtual float GetOrbitUpperAngle() const = 0; - virtual float GetOrbitLowerAngle() const = 0; - virtual float GetOrbitHorizAngle() const = 0; - virtual float GetOrbitMaxTargetDistance() const = 0; - virtual float GetOrbitMaxLockDistance() const = 0; - virtual float GetOrbitDistanceThreshold() const = 0; - virtual uint32_t GetOrbitScreenBoxHalfExtentX(int zone) const = 0; - virtual uint32_t GetOrbitScreenBoxHalfExtentY(int zone) const = 0; - virtual uint32_t GetOrbitScreenBoxCenterX(int zone) const = 0; - virtual uint32_t GetOrbitScreenBoxCenterY(int zone) const = 0; - virtual uint32_t GetOrbitZoneIdealX(int zone) const = 0; - virtual uint32_t GetOrbitZoneIdealY(int zone) const = 0; - virtual float GetOrbitNearX() const = 0; - virtual float GetOrbitNearZ() const = 0; - virtual float GetOrbitFixedOffsetZDiff() 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 bool GetScanRetention() const = 0; - virtual bool GetScanFreezesGame() const = 0; // x21c_25 - virtual bool GetOrbitWhileScanning() const = 0; - virtual bool GetFallingDoubleJump() const = 0; - virtual bool GetImpulseDoubleJump() const = 0; - virtual bool GetFiringCancelsCameraPitch() const = 0; - virtual bool GetAssistedAimingIgnoreHorizontal() const = 0; - virtual bool GetAssistedAimingIgnoreVertical() const = 0; - virtual float GetAimMaxDistance() const = 0; - virtual float GetAimThresholdDistance() const = 0; - virtual float GetAimBoxWidth() const = 0; - virtual float GetAimBoxHeight() const = 0; - virtual float GetAimTargetTimer() const = 0; - virtual float GetAimAssistHorizontalAngle() const = 0; - virtual float GetAimAssistVerticalAngle() const = 0; - virtual float GetScanMaxTargetDistance() const = 0; - virtual float GetScanMaxLockDistance() const = 0; - virtual bool GetMoveDuringFreeLook() const = 0; - virtual bool GetHoldButtonsForFreeLook() const = 0; - virtual bool GetTwoButtonsForFreeLook() const = 0; - virtual bool GetAimWhenOrbitingPoint() const = 0; - virtual bool GetStayInFreeLookWhileFiring() const = 0; - virtual bool GetOrbitFixedOffset() const = 0; - virtual bool GetGunButtonTogglesHolster() const = 0; - virtual bool GetGunNotFiringHolstersGun() const = 0; - virtual float GetPlayerHeight() const = 0; // x26c - virtual float GetPlayerXYHalfExtent() const = 0; // x270 - virtual bool GetFreeLookTurnsPlayer() const = 0; // x228_24 - virtual float GetStepUpHeight() const = 0; // x274 - virtual float GetStepDownHeight() const = 0; // x278 - virtual float GetPlayerBallHalfExtent() const = 0; // x27c - virtual float GetOrbitDistanceMax() const = 0; - virtual float GetGrappleSwingLength() const = 0; - virtual float GetGrappleSwingPeriod() const = 0; - virtual float GetGrapplePullSpeedMin() const = 0; - virtual float GetMaxGrappleLockedTurnAlignDistance() const = 0; - virtual float GetGrapplePullSpeedProportion() const = 0; - virtual float GetGrapplePullSpeedMax() const = 0; - virtual float GetGrappleLookCenterSpeed() const = 0; - virtual float GetMaxGrappleTurnSpeed() const = 0; - virtual float GetGrappleJumpForce() const = 0; - virtual float GetGrappleReleaseTime() const = 0; - virtual uint32_t GetGrappleJumpMode() const = 0; - virtual bool GetOrbitReleaseBreaksGrapple() const = 0; - virtual bool GetInvertGrappleTurn() const = 0; - virtual float GetGrappleBeamSpeed() const = 0; - virtual float GetGrappleBeamXWaveAmplitude() const = 0; - virtual float GetGrappleBeamZWaveAmplitude() const = 0; - virtual float GetGrappleBeamAnglePhaseDelta() const = 0; - virtual float GetHorizontalFreeLookAngleVel() const = 0; - virtual float GetVerticalFreeLookAngleVel() const = 0; // x134 - virtual float GetOrbitCameraSpeed() const = 0; // x184 - virtual float GetOrbitPreventionTime() const = 0; - virtual float GetJumpCameraPitchDownStart() const = 0; // x288 - virtual float GetJumpCameraPitchDownFull() const = 0; // x28c - virtual float GetJumpCameraPitchDownAngle() const = 0; // x290 - virtual float GetFallCameraPitchDownStart() const = 0; // x294 - virtual float GetFallCameraPitchDownFull() const = 0; // x298 - virtual float GetFallCameraPitchDownAngle() const = 0; // x29c - virtual float GetFirstPersonCameraSpeed() const = 0; // x280 - virtual float GetGrappleCameraSpeed() const = 0; // x2b0 - virtual float GetFreeLookDampenFactor() const = 0; // x14c - virtual float GetLeftLogicalThreshold() const = 0; - virtual float GetRightLogicalThreshold() const = 0; - virtual float GetOrbitMinDistance(int type) const = 0; - virtual float GetOrbitNormalDistance(int type) const = 0; - virtual float GetOrbitMaxDistance(int type) const = 0; - virtual float GetFrozenTimeout() const = 0; - virtual uint32_t GetIceBreakJumpCount() const = 0; - virtual float GetVariaDamageReduction() const = 0; - virtual float GetGravityDamageReduction() const = 0; - virtual float GetPhazonDamageReduction() const = 0; -}; +struct ITweakPlayer : ITweak {}; } // namespace DataSpec diff --git a/DataSpec/DNACommon/Tweaks/ITweakPlayerControl.hpp b/DataSpec/DNACommon/Tweaks/ITweakPlayerControl.hpp index 6f523e10c..58b9c5c39 100644 --- a/DataSpec/DNACommon/Tweaks/ITweakPlayerControl.hpp +++ b/DataSpec/DNACommon/Tweaks/ITweakPlayerControl.hpp @@ -4,8 +4,6 @@ namespace DataSpec { -struct ITweakPlayerControl : ITweak { - virtual atUint32 GetMapping(atUint32) const = 0; -}; +struct ITweakPlayerControl : ITweak {}; } // namespace DataSpec diff --git a/DataSpec/DNACommon/Tweaks/ITweakPlayerGun.hpp b/DataSpec/DNACommon/Tweaks/ITweakPlayerGun.hpp index 9f9ffa00f..1a4c3fbca 100644 --- a/DataSpec/DNACommon/Tweaks/ITweakPlayerGun.hpp +++ b/DataSpec/DNACommon/Tweaks/ITweakPlayerGun.hpp @@ -43,30 +43,5 @@ struct SWeaponInfo : BigDNA { struct ITweakPlayerGun : ITweak { AT_DECL_DNA_YAML - virtual float GetUpLookAngle() const = 0; - virtual float GetDownLookAngle() const = 0; - virtual float GetVerticalSpread() const = 0; - virtual float GetHorizontalSpread() const = 0; - virtual float GetHighVerticalSpread() const = 0; - virtual float GetHighHorizontalSpread() const = 0; - virtual float GetLowVerticalSpread() const = 0; - virtual float GetLowHorizontalSpread() const = 0; - virtual float GetAimVerticalSpeed() const = 0; // x24 - virtual float GetAimHorizontalSpeed() const = 0; // x28 - virtual float GetBombFuseTime() const = 0; // x2c - virtual float GetBombDropDelayTime() const = 0; // x30 - virtual float GetHoloHoldTime() const = 0; // x34 - virtual float GetGunTransformTime() const = 0; // x38 - virtual float GetGunHolsterTime() const = 0; - virtual float GetGunNotFiringTime() const = 0; - virtual float GetFixedVerticalAim() const = 0; - virtual float GetGunExtendDistance() const = 0; - virtual const zeus::CVector3f& GetGunPosition() const = 0; - virtual const zeus::CVector3f& GetGrapplingArmPosition() const = 0; - virtual float GetRichochetDamage(atUint32) const = 0; - virtual const SWeaponInfo& GetBeamInfo(atInt32 beam) const = 0; - virtual const SComboShotParam& GetComboShotInfo(atInt32 beam) const = 0; - virtual const SShotParam& GetBombInfo() const = 0; - virtual const SShotParam& GetPowerBombInfo() const = 0; }; } // namespace DataSpec diff --git a/DataSpec/DNAMP1/CMakeLists.txt b/DataSpec/DNAMP1/CMakeLists.txt index 4b16eaaca..9c28078fc 100644 --- a/DataSpec/DNAMP1/CMakeLists.txt +++ b/DataSpec/DNAMP1/CMakeLists.txt @@ -60,10 +60,9 @@ set(DNAMP1_SOURCES FRME.cpp SCAN.cpp DeafBabe.cpp - Tweaks/CTweakAutoMapper.cpp Tweaks/CTweakPlayer.cpp Tweaks/CTweakTargeting.cpp Tweaks/CTweakBall.cpp - Tweaks/CTweakGame.cpp) + ) dataspec_add_list(DNAMP1 DNAMP1_SOURCES) diff --git a/DataSpec/DNAMP1/Tweaks/CTweakAutoMapper.hpp b/DataSpec/DNAMP1/Tweaks/CTweakAutoMapper.hpp index 291e237ed..a0f9e6609 100644 --- a/DataSpec/DNAMP1/Tweaks/CTweakAutoMapper.hpp +++ b/DataSpec/DNAMP1/Tweaks/CTweakAutoMapper.hpp @@ -79,67 +79,5 @@ struct CTweakAutoMapper final : public ITweakAutoMapper { Vector x104_doorColors; DNAColor x118_doorBorderColor; DNAColor x11c_openDoorColor; - - CTweakAutoMapper() = default; - CTweakAutoMapper(athena::io::IStreamReader& r) { this->read(r); } - bool GetShowOneMiniMapArea() const override { return x4_24_showOneMiniMapArea; } - bool GetScaleMoveSpeedWithCamDist() const override { return x4_26_scaleMoveSpeedWithCamDist; } - float GetCamDist() const override { return x8_camDist; } - float GetMinCamDist() const override { return xc_minCamDist; } - float GetMaxCamDist() const override { return x10_maxCamDist; } - float GetMinCamRotateX() const override { return x14_minCamRotateX; } - float GetMaxCamRotateX() const override { return x18_maxCamRotateX; } - float GetCamAngle() const override { return x1c_camAngle; } - const zeus::CColor& GetAutomapperWidgetColor() const override { return x24_automapperWidgetColor; } - float GetMiniCamDist() const override { return x28_miniCamDist; } - float GetMiniCamXAngle() const override { return x2c_miniCamXAngle; } - float GetMiniCamAngle() const override { return x30_miniCamAngle; } - const zeus::CColor& GetAutomapperWidgetMiniColor() const override { return x38_automapperWidgetMiniColor; } - const zeus::CColor& GetSurfaceVisitedColor() const override { return x3c_surfColorVisited; } - const zeus::CColor& GetOutlineVisitedColor() const override { return x40_outlineColorVisited; } - const zeus::CColor& GetSurfaceUnvisitedColor() const override { return x44_surfColorUnvisited; } - const zeus::CColor& GetOutlineUnvisitedColor() const override { return x48_outlineColorUnvisited; } - const zeus::CColor& GetSurfaceSelectVisitedColor() const override { return x4c_surfaceSelectColorVisited; } - const zeus::CColor& GetOutlineSelectVisitedColor() const override { return x50_outlineSelectColorVisited; } - float GetMapSurfaceNormColorLinear() const override { return x54_mapSurfaceNormColorLinear; } - float GetMapSurfaceNormColorConstant() const override { return x58_mapSurfaceNormColorConstant; } - float GetOpenMapScreenTime() const override { return x64_openMapScreenTime; } - float GetCloseMapScreenTime() const override { return x68_closeMapScreenTime; } - float GetHintPanTime() const override { return x6c_hintPanTime; } - float GetCamZoomUnitsPerFrame() const override { return x70_zoomUnitsPerFrame; } - float GetCamRotateDegreesPerFrame() const override { return x74_rotateDegPerFrame; } - float GetBaseMapScreenCameraMoveSpeed() const override { return x78_baseMapScreenCameraMoveSpeed; } - const zeus::CColor& GetSurfaceSelectUnvisitedColor() const override { return x7c_surfaceSelectColorUnvisited; } - const zeus::CColor& GetOutlineSelectUnvisitedColor() const override { return x80_outlineSelectColorUnvisited; } - float GetMiniAlphaSurfaceVisited() const override { return x84_miniAlphaSurfaceVisited; } - float GetAlphaSurfaceVisited() const override { return x88_alphaSurfaceVisited; } - float GetMiniAlphaOutlineVisited() const override { return x8c_miniAlphaOutlineVisited; } - float GetAlphaOutlineVisited() const override { return x90_alphaOutlineVisited; } - float GetMiniAlphaSurfaceUnvisited() const override { return x94_miniAlphaSurfaceUnvisited; } - float GetAlphaSurfaceUnvisited() const override { return x98_alphaSurfaceUnvisited; } - float GetMiniAlphaOutlineUnvisited() const override { return x9c_miniAlphaOutlineUnvisited; } - float GetAlphaOutlineUnvisited() const override { return xa0_alphaOutlineUnvisited; } - const zeus::CVector3f& GetDoorCenter() const override { return xa4_doorCenter; } - float GetMiniMapViewportWidth() const override { return xb8_miniMapViewportWidth; } - float GetMiniMapViewportHeight() const override { return xbc_miniMapViewportHeight; } - float GetMiniMapCamDistScale() const override { return xc0_miniMapCamDistScale; } - float GetMapPlaneScaleX() const override { return xc4_mapPlaneScaleX; } - float GetMapPlaneScaleZ() const override { return xc8_mapPlaneScaleZ; } - float GetUniverseCamDist() const override { return xd0_universeCamDist; } - float GetMinUniverseCamDist() const override { return xd4_minUniverseCamDist; } - float GetMaxUniverseCamDist() const override { return xd8_maxUniverseCamDist; } - float GetSwitchToFromUniverseTime() const override { return xdc_switchToFromUniverseTime; } - float GetCamPanUnitsPerFrame() const override { return xe0_camPanUnitsPerFrame; } - float GetAutomapperScaleX() const override { return xe4_automapperScaleX; } - float GetAutomapperScaleZ() const override { return xe8_automapperScaleZ; } - float GetCamVerticalOffset() const override { return xec_camVerticalOffset; } - const zeus::CColor& GetMiniMapSamusModColor() const override { return xf0_miniMapSamusModColor; } - const zeus::CColor& GetAreaFlashPulseColor() const override { return xf4_areaFlashPulseColor; } - const zeus::CColor& GetDoorColor(int idx) const override { return x104_doorColors[idx]; } - const zeus::CColor& GetOpenDoorColor() const override { return x11c_openDoorColor; } - void initCVars(hecl::CVarManager*) override; - -private: - void _tweakListener(hecl::CVar* cv); }; } // namespace DataSpec::DNAMP1 diff --git a/DataSpec/DNAMP1/Tweaks/CTweakGame.hpp b/DataSpec/DNAMP1/Tweaks/CTweakGame.hpp index af30301ef..da813167b 100644 --- a/DataSpec/DNAMP1/Tweaks/CTweakGame.hpp +++ b/DataSpec/DNAMP1/Tweaks/CTweakGame.hpp @@ -54,36 +54,5 @@ struct CTweakGame final : ITweakGame { Value x5c_gravityWaterFogDistanceRange; Value x60_hardmodeDamageMult; Value x64_hardmodeWeaponMult; - - std::string_view GetWorldPrefix() const override { return x4_worldPrefix; } - std::string_view GetDefaultRoom() const { return x14_defaultRoom; } - bool GetSplashScreensDisabled() const override { return x2b_splashScreensDisabled; } - float GetFirstPersonFOV() const override { return x24_fov; } - float GetPressStartDelay() const override { return x30_pressStartDelay; } - float GetWavecapIntensityNormal() const override { return x34_wavecapIntensityNormal; } - float GetWavecapIntensityPoison() const override { return x38_wavecapIntensityPoison; } - float GetWavecapIntensityLava() const override { return x3c_wavecapIntensityLava; } - float GetRippleIntensityNormal() const override { return x40_rippleIntensityNormal; } - float GetRippleIntensityPoison() const override { return x44_rippleIntensityPoison; } - float GetRippleIntensityLava() const override { return x48_rippleIntensityLava; } - float GetFluidEnvBumpScale() const override { return x4c_fluidEnvBumpScale; } - float GetWaterFogDistanceBase() const override { return x50_waterFogDistanceBase; } - float GetWaterFogDistanceRange() const override { return x54_waterFogDistanceRange; } - float GetGravityWaterFogDistanceBase() const override { return x58_gravityWaterFogDistanceBase; } - float GetGravityWaterFogDistanceRange() const override { return x5c_gravityWaterFogDistanceRange; } - float GetHardModeDamageMultiplier() const override { return x60_hardmodeDamageMult; } - float GetHardModeWeaponMultiplier() const override { return x64_hardmodeWeaponMult; } - CTweakGame() = default; - CTweakGame(athena::io::IStreamReader& in) { - this->read(in); -#ifdef NDEBUG - x2b_splashScreensDisabled = false; -#endif - } - - void initCVars(hecl::CVarManager* mgr) override; - -private: - void _tweakListener(hecl::CVar* cv); }; } // namespace DataSpec::DNAMP1 diff --git a/DataSpec/DNAMP1/Tweaks/CTweakGui.hpp b/DataSpec/DNAMP1/Tweaks/CTweakGui.hpp index 557b97527..e6d6eac15 100644 --- a/DataSpec/DNAMP1/Tweaks/CTweakGui.hpp +++ b/DataSpec/DNAMP1/Tweaks/CTweakGui.hpp @@ -1,6 +1,6 @@ #pragma once -#include "../../DNACommon/Tweaks/ITweakGui.hpp" +#include "DataSpec/DNACommon/Tweaks/ITweakGui.hpp" namespace DataSpec::DNAMP1 { struct CTweakGui final : ITweakGui { @@ -182,157 +182,6 @@ struct CTweakGui final : ITweakGui { Value x364_; CTweakGui() = default; - CTweakGui(athena::io::IStreamReader& r) { - this->read(r); - FixupValues(); - } - - float GetMapAlphaInterpolant() const override { return x8_mapAlphaInterp; } - float GetPauseBlurFactor() const override { return xc_pauseBlurFactor; } - float GetRadarXYRadius() const override { return x10_radarXYRadius; } - float GetRadarZRadius() const override { return x24_radarZRadius; } - float GetRadarZCloseRadius() const override { return x28_radarZCloseRadius; } - float GetEnergyBarFilledSpeed() const override { return x34_energyBarFilledSpeed; } - float GetEnergyBarShadowSpeed() const override { return x38_energyBarShadowSpeed; } - float GetEnergyBarDrainDelay() const override { return x3c_energyBarDrainDelay; } - bool GetEnergyBarAlwaysResetDelay() const override { return x40_energyBarAlwaysResetDelay; } - float GetHudDamagePracticalsGainConstant() const override { return x44_hudDamagePracticalsGainConstant; } - float GetHudDamagePracticalsGainLinear() const override { return x48_hudDamagePracticalsGainLinear; } - float GetHudDamagePracticalsInitConstant() const override { return x4c_hudDamagePracticalsInitConstant; } - float GetHudDamagePracticalsInitLinear() const override { return x50_hudDamagePracticalsInitLinear; } - float GetHudDamageLightSpotAngle() const override { return x54_hudDamageLightSpotAngle; } - float GetDamageLightAngleC() const override { return x58_damageLightAngleC; } - float GetDamageLightAngleL() const override { return x5c_damageLightAngleL; } - float GetDamageLightAngleQ() const override { return x60_damageLightAngleQ; } - atVec3f GetDamageLightPreTranslate() const override { return x64_damageLightPreTranslate; } - atVec3f GetDamageLightCenterTranslate() const override { return x70_damageLightCenterTranslate; } - float GetDamageLightXfXAngle() const override { return x7c_damageLightXfXAngle; } - float GetDamageLightXfZAngle() const override { return x80_damageLightXfZAngle; } - float GetHudDecoShakeTranslateVelConstant() const override { return x84_hudDecoShakeTranslateVelConstant; } - float GetHudDecoShakeTranslateVelLinear() const override { return x88_hudDecoShakeTranslateVelLinear; } - float GetMaxDecoDamageShakeTranslate() const override { return x8c_maxDecoDamageShakeTranslate; } - float GetDecoDamageShakeDeceleration() const override { return x90_decoDamageShakeDeceleration; } - float GetDecoShakeGainConstant() const override { return x94_decoShakeGainConstant; } - float GetDecoShakeGainLinear() const override { return x98_decoShakeGainLinear; } - float GetDecoShakeInitConstant() const override { return x9c_decoShakeInitConstant; } - float GetDecoShakeInitLinear() const override { return xa0_decoShakeInitLinear; } - float GetMaxDecoDamageShakeRotate() const override { return xa4_maxDecoDamageShakeRotate; } - atUint32 GetHudCamFovTweak() const override { return xa8_hudCamFovTweak; } - atUint32 GetHudCamYTweak() const override { return xac_hudCamYTweak; } - atUint32 GetHudCamZTweak() const override { return xb0_hudCamZTweak; } - float GetBeamVisorMenuAnimTime() const override { return xc0_beamVisorMenuAnimTime; } - float GetVisorBeamMenuItemActiveScale() const override { return xc4_visorBeamMenuItemActiveScale; } - float GetVisorBeamMenuItemInactiveScale() const override { return xc8_visorBeamMenuItemInactiveScale; } - float GetVisorBeamMenuItemTranslate() const override { return xcc_visorBeamMenuItemTranslate; } - float GetThreatRange() const override { return xe4_threatRange; } - float GetRadarScopeCoordRadius() const override { return xe8_radarScopeCoordRadius; } - float GetRadarPlayerPaintRadius() const override { return xec_radarPlayerPaintRadius; } - float GetRadarEnemyPaintRadius() const override { return xf0_radarEnemyPaintRadius; } - float GetMissileArrowVisTime() const override { return xf4_missileArrowVisTime; } - EHudVisMode GetHudVisMode() const override { return xf8_hudVisMode; } - EHelmetVisMode GetHelmetVisMode() const override { return xfc_helmetVisMode; } - atUint32 GetEnableAutoMapper() const override { return x100_enableAutoMapper; } - atUint32 GetEnableTargetingManager() const override { return x108_enableTargetingManager; } - atUint32 GetEnablePlayerVisor() const override { return x10c_enablePlayerVisor; } - float GetThreatWarningFraction() const override { return x110_threatWarningFraction; } - float GetMissileWarningFraction() const override { return x114_missileWarningFraction; } - float GetFreeLookFadeTime() const override { return x118_freeLookFadeTime; } - float GetFreeLookSfxPitchScale() const override { return x12c_freeLookSfxPitchScale; } - bool GetNoAbsoluteFreeLookSfxPitch() const override { return x130_noAbsoluteFreeLookSfxPitch; } - float GetFaceReflectionOrthoWidth() const override { return x13c_faceReflectionOrthoWidth; } - float GetFaceReflectionOrthoHeight() const override { return x140_faceReflectionOrthoHeight; } - float GetFaceReflectionDistance() const override { return x144_faceReflectionDistance; } - float GetFaceReflectionHeight() const override { return x148_faceReflectionHeight; } - float GetFaceReflectionAspect() const override { return x14c_faceReflectionAspect; } - float GetMissileWarningPulseTime() const override { return x1a0_missileWarningPulseTime; } - float GetExplosionLightFalloffMultConstant() const override { return x1a4_explosionLightFalloffMultConstant; } - float GetExplosionLightFalloffMultLinear() const override { return x1a8_explosionLightFalloffMultLinear; } - float GetExplosionLightFalloffMultQuadratic() const override { return x1ac_explosionLightFalloffMultQuadratic; } - float GetHudDamagePeakFactor() const override { return x1b4_hudDamagePeakFactor; } - float GetHudDamageFilterGainConstant() const override { return x1b8_hudDamageFilterGainConstant; } - float GetHudDamageFilterGainLinear() const override { return x1bc_hudDamageFilterGainLinear; } - float GetHudDamageFilterInitConstant() const override { return x1c0_hudDamageFilterInitConstant; } - float GetHudDamageFilterInitLinear() const override { return x1c4_hudDamageFilterInitLinear; } - float GetEnergyDrainModPeriod() const override { return x1c8_energyDrainModPeriod; } - bool GetEnergyDrainSinusoidalPulse() const override { return x1cc_energyDrainSinusoidalPulse; } - bool GetEnergyDrainFilterAdditive() const override { return x1cd_energyDrainFilterAdditive; } - float GetHudDamagePulseDuration() const override { return x1d0_hudDamagePulseDuration; } - float GetHudDamageColorGain() const override { return x1d4_hudDamageColorGain; } - float GetHudDecoShakeTranslateGain() const override { return x1d8_hudDecoShakeTranslateGain; } - float GetHudLagOffsetScale() const override { return x1dc_hudLagOffsetScale; } - float GetXrayBlurScaleLinear() const override { return x204_xrayBlurScaleLinear; } - float GetXrayBlurScaleQuadratic() const override { return x208_xrayBlurScaleQuadratic; } - float GetScanSidesAngle() const override { return x210_scanSidesAngle; } - float GetScanSidesXScale() const override { return x214_scanSidesXScale; } - float GetScanSidesPositionEnd() const override { return x218_scanSidesPositionEnd; } - float GetScanSidesDuration() const override { return x220_scanSidesDuration; } - float GetScanSidesStartTime() const override { return x224_scanSidesStartTime; } - float GetScanSidesEndTime() const override { return x228_scanSidesEndTime; } - float GetScanDataDotRadius() const override { return x22c_scanDataDotRadius; } - float GetScanDataDotPosRandMagnitude() const override { return x230_scanDataDotPosRandMag; } - float GetScanDataDotSeekDurationMin() const override { return x234_scanDataDotSeekDurationMin; } - float GetScanDataDotSeekDurationMax() const override { return x238_scanDataDotSeekDurationMax; } - float GetScanDataDotHoldDurationMin() const override { return x23c_scanDataDotHoldDurationMin; } - float GetScanDataDotHoldDurationMax() const override { return x240_scanDataDotHoldDurationMax; } - float GetScanAppearanceDuration() const override { return x244_scanAppearanceDuration; } - float GetScanPaneFlashFactor() const override { return x248_scanPaneFlashFactor; } - float GetScanPaneFadeInTime() const override { return x24c_scanPaneFadeInTime; } - float GetScanPaneFadeOutTime() const override { return x250_scanPaneFadeOutTime; } - float GetBallViewportYReduction() const override { return x254_ballViewportYReduction; } - float GetScanWindowIdleWidth() const override { return x258_scanWindowIdleW; } - float GetScanWindowIdleHeight() const override { return x25c_scanWindowIdleH; } - float GetScanWindowActiveWidth() const override { return x260_scanWindowActiveW; } - float GetScanWindowActiveHeight() const override { return x264_scanWindowActiveH; } - float GetScanWindowMagnification() const override { return x268_scanWindowMagnification; } - float GetScanWindowScanningAspect() const override { return x26c_scanWindowScanningAspect; } - float GetScanSidesPositionStart() const override { return x270_scanSidesPositionStart; } - bool GetShowAutomapperInMorphball() const override { return x274_showAutomapperInMorphball; } - bool GetLatchArticleText() const override { return x275_latchArticleText; } - float GetWorldTransManagerCharsPerSfx() const override { return x278_wtMgrCharsPerSfx; } - atUint32 GetXRayFogMode() const override { return x27c_xrayFogMode; } - float GetXRayFogNearZ() const override { return x280_xrayFogNearZ; } - float GetXRayFogFarZ() const override { return x284_xrayFogFarZ; } - const zeus::CColor& GetXRayFogColor() const override { return x288_xrayFogColor; } - float GetThermalVisorLevel() const override { return x28c_thermalVisorLevel; } - const zeus::CColor& GetThermalVisorColor() const override { return x290_thermalVisorColor; } - const zeus::CColor& GetVisorHudLightAdd(int v) const override { return x294_hudLightAddPerVisor[v]; } - const zeus::CColor& GetVisorHudLightMultiply(int v) const override { return x2a4_hudLightMultiplyPerVisor[v]; } - const zeus::CColor& GetHudReflectivityLightColor() const override { return x2b4_hudReflectivityLightColor; } - float GetHudLightAttMulConstant() const override { return x2b8_hudLightAttMulConstant; } - float GetHudLightAttMulLinear() const override { return x2bc_hudLightAttMulLinear; } - float GetHudLightAttMulQuadratic() const override { return x2c0_hudLightAttMulQuadratic; } - std::string_view GetCreditsTable() const override { return x2d0_creditsTable; } - std::string_view GetCreditsFont() const override { return x2e0_creditsFont; } - std::string_view GetJapaneseCreditsFont() const override { return x2f0_japaneseCreditsFont; } - const zeus::CColor& GetCreditsTextFontColor() const override { return x300_; } - const zeus::CColor& GetCreditsTextBorderColor() const override { return x304_; } - - float GetScanSpeed(int idx) const override { - if (idx < 0 || size_t(idx) >= x2c4_scanSpeeds.size()) - return 0.f; - return x2c4_scanSpeeds[idx]; - } - - void FixupValues() { - xd8_ = zeus::degToRad(xd8_); - xdc_ = zeus::degToRad(xdc_); - - x200_ = zeus::CColor(x1f4_ * 0.25f, x1f8_ * 0.25f, x1fc_ * 0.25f, 1.f); - - x210_scanSidesAngle = zeus::degToRad(x210_scanSidesAngle); - x228_scanSidesEndTime = x220_scanSidesDuration + x224_scanSidesStartTime; - - if (x27c_xrayFogMode == 1) - x27c_xrayFogMode = 2; - else if (x27c_xrayFogMode == 2) - x27c_xrayFogMode = 4; - else if (x27c_xrayFogMode == 3) - x27c_xrayFogMode = 5; - else - x27c_xrayFogMode = 0; - - x84_hudDecoShakeTranslateVelConstant *= 2.0f; - } }; } // namespace DataSpec::DNAMP1 diff --git a/DataSpec/DNAMP1/Tweaks/CTweakPlayer.cpp b/DataSpec/DNAMP1/Tweaks/CTweakPlayer.cpp index e3fbea5c7..d16e5edaf 100644 --- a/DataSpec/DNAMP1/Tweaks/CTweakPlayer.cpp +++ b/DataSpec/DNAMP1/Tweaks/CTweakPlayer.cpp @@ -1,261 +1,7 @@ -#include "CTweakPlayer.hpp" +#include "DataSpec/DNAMP1/Tweaks/CTweakPlayer.hpp" #include "zeus/Math.hpp" -#include -#include - -#define DEFINE_CVAR_GLOBAL(name) \ - constexpr std::string_view sk##name = std::string_view("tweak.player." #name); \ - hecl::CVar* tw_##name = nullptr; - -#define CREATE_CVAR(name, help, value, flags) \ - tw_##name = mgr->findOrMakeCVar(sk##name, help, value, flags); \ - if (tw_##name->wasDeserialized()) { \ - tw_##name->toValue(value); \ - } \ - tw_##name->addListener([this](hecl::CVar* cv) { _tweakListener(cv); }); - -#define CREATE_CVAR_BITFIELD(name, help, value, flags) \ - { \ - bool tmp = value; \ - CREATE_CVAR(name, help, tmp, flags) \ - } - -#define UPDATE_CVAR(name, cv, value) \ - if ((cv) == tw_##name) { \ - (cv)->toValue(value); \ - return; \ - } - -#define UPDATE_CVAR_BITFIELD(name, cv, value) \ - { \ - bool tmp = value; \ - UPDATE_CVAR(name, cv, tmp) \ - (value) = tmp; \ - } - namespace DataSpec::DNAMP1 { -namespace { -static constexpr hecl::CVar::EFlags skDefaultFlags = - hecl::CVar::EFlags::Game | hecl::CVar::EFlags::Cheat | hecl::CVar::EFlags::Archive; -DEFINE_CVAR_GLOBAL(MaxTranslationAccelerationNormal); -DEFINE_CVAR_GLOBAL(MaxTranslationAccelerationAir); -DEFINE_CVAR_GLOBAL(MaxTranslationAccelerationIce); -DEFINE_CVAR_GLOBAL(MaxTranslationAccelerationOrganic); -DEFINE_CVAR_GLOBAL(MaxTranslationAccelerationWater); -DEFINE_CVAR_GLOBAL(MaxTranslationAccelerationLava); -DEFINE_CVAR_GLOBAL(MaxTranslationAccelerationPhazon); -DEFINE_CVAR_GLOBAL(MaxTranslationAccelerationShrubbery); -DEFINE_CVAR_GLOBAL(MaxRotationAccelerationNormal); -DEFINE_CVAR_GLOBAL(MaxRotationAccelerationAir); -DEFINE_CVAR_GLOBAL(MaxRotationAccelerationIce); -DEFINE_CVAR_GLOBAL(MaxRotationAccelerationOrganic); -DEFINE_CVAR_GLOBAL(MaxRotationAccelerationWater); -DEFINE_CVAR_GLOBAL(MaxRotationAccelerationLava); -DEFINE_CVAR_GLOBAL(MaxRotationAccelerationPhazon); -DEFINE_CVAR_GLOBAL(MaxRotationAccelerationShrubbery); -DEFINE_CVAR_GLOBAL(TranslationFrictionNormal); -DEFINE_CVAR_GLOBAL(TranslationFrictionAir); -DEFINE_CVAR_GLOBAL(TranslationFrictionIce); -DEFINE_CVAR_GLOBAL(TranslationFrictionOrganic); -DEFINE_CVAR_GLOBAL(TranslationFrictionWater); -DEFINE_CVAR_GLOBAL(TranslationFrictionLava); -DEFINE_CVAR_GLOBAL(TranslationFrictionPhazon); -DEFINE_CVAR_GLOBAL(TranslationFrictionShrubbery); -DEFINE_CVAR_GLOBAL(RotationFrictionNormal); -DEFINE_CVAR_GLOBAL(RotationFrictionAir); -DEFINE_CVAR_GLOBAL(RotationFrictionIce); -DEFINE_CVAR_GLOBAL(RotationFrictionOrganic); -DEFINE_CVAR_GLOBAL(RotationFrictionWater); -DEFINE_CVAR_GLOBAL(RotationFrictionLava); -DEFINE_CVAR_GLOBAL(RotationFrictionPhazon); -DEFINE_CVAR_GLOBAL(RotationFrictionShrubbery); -DEFINE_CVAR_GLOBAL(RotationMaxSpeedNormal); -DEFINE_CVAR_GLOBAL(RotationMaxSpeedAir); -DEFINE_CVAR_GLOBAL(RotationMaxSpeedIce); -DEFINE_CVAR_GLOBAL(RotationMaxSpeedOrganic); -DEFINE_CVAR_GLOBAL(RotationMaxSpeedWater); -DEFINE_CVAR_GLOBAL(RotationMaxSpeedLava); -DEFINE_CVAR_GLOBAL(RotationMaxSpeedPhazon); -DEFINE_CVAR_GLOBAL(RotationMaxSpeedShrubbery); -DEFINE_CVAR_GLOBAL(TranslationMaxSpeedNormal); -DEFINE_CVAR_GLOBAL(TranslationMaxSpeedAir); -DEFINE_CVAR_GLOBAL(TranslationMaxSpeedIce); -DEFINE_CVAR_GLOBAL(TranslationMaxSpeedOrganic); -DEFINE_CVAR_GLOBAL(TranslationMaxSpeedWater); -DEFINE_CVAR_GLOBAL(TranslationMaxSpeedLava); -DEFINE_CVAR_GLOBAL(TranslationMaxSpeedPhazon); -DEFINE_CVAR_GLOBAL(TranslationMaxSpeedShrubbery); -DEFINE_CVAR_GLOBAL(NormalGravityAcceleration); -DEFINE_CVAR_GLOBAL(FluidGravityAcceleration); -DEFINE_CVAR_GLOBAL(VerticalJumpAcceleration); -DEFINE_CVAR_GLOBAL(HorizontalJumpAcceleration); -DEFINE_CVAR_GLOBAL(VerticalDoubleJumpAcceleration); -DEFINE_CVAR_GLOBAL(HorizontalDoubleJumpAcceleration); -DEFINE_CVAR_GLOBAL(WaterJumpFactor); -DEFINE_CVAR_GLOBAL(WaterBallJumpFactor); -DEFINE_CVAR_GLOBAL(LavaJumpFactor); -DEFINE_CVAR_GLOBAL(LavaBallJumpFactor); -DEFINE_CVAR_GLOBAL(PhazonJumpFactor); -DEFINE_CVAR_GLOBAL(PhazonBallJumpFactor); -DEFINE_CVAR_GLOBAL(AllowedJumpTime); -DEFINE_CVAR_GLOBAL(AllowedDoubleJumpTime); -DEFINE_CVAR_GLOBAL(MinDoubleJumpWindow); -DEFINE_CVAR_GLOBAL(MaxDoubleJumpWindow) -// DEFINE_CVAR_GLOBAL(); // x104_ -DEFINE_CVAR_GLOBAL(MinJumpTime); -DEFINE_CVAR_GLOBAL(MinDoubleJumpTime); -DEFINE_CVAR_GLOBAL(AllowedLedgeTime); -DEFINE_CVAR_GLOBAL(DoubleJumpImpulse); -DEFINE_CVAR_GLOBAL(BackwardsForceMultiplier); -DEFINE_CVAR_GLOBAL(BombJumpRadius); -DEFINE_CVAR_GLOBAL(BombJumpHeight); -DEFINE_CVAR_GLOBAL(EyeOffset); -DEFINE_CVAR_GLOBAL(TurnSpeedMultiplier); -DEFINE_CVAR_GLOBAL(FreeLookTurnSpeedMultiplier); -DEFINE_CVAR_GLOBAL(HorizontalFreeLookAngleVelocity); -DEFINE_CVAR_GLOBAL(VerticalFreeLookAngleVelocity); -DEFINE_CVAR_GLOBAL(FreeLookSpeed); -DEFINE_CVAR_GLOBAL(FreeLookSnapSpeed); -// DEFINE_CVAR_GLOBAL(); // x140_ -DEFINE_CVAR_GLOBAL(FreeLookCenteredThresholdAngle); -DEFINE_CVAR_GLOBAL(FreeLookCenteredTime); -DEFINE_CVAR_GLOBAL(FreeLookDampenFactor); -DEFINE_CVAR_GLOBAL(LeftDivisor); -DEFINE_CVAR_GLOBAL(RightDivisor); -DEFINE_CVAR_GLOBAL(OrbitMinDistanceClose); -DEFINE_CVAR_GLOBAL(OrbitMinDistanceFar); -DEFINE_CVAR_GLOBAL(OrbitMinDistanceDefault); -DEFINE_CVAR_GLOBAL(OrbitNormalDistanceClose); -DEFINE_CVAR_GLOBAL(OrbitNormalDistanceFar); -DEFINE_CVAR_GLOBAL(OrbitNormalDistanceDefault); -DEFINE_CVAR_GLOBAL(OrbitMaxDistanceClose); -DEFINE_CVAR_GLOBAL(OrbitMaxDistanceFar); -DEFINE_CVAR_GLOBAL(OrbitMaxDistanceDefault); -// DEFINE_CVAR_GLOBAL(); // x17c_ -DEFINE_CVAR_GLOBAL(OrbitmodeTimer); -DEFINE_CVAR_GLOBAL(OrbitCameraSpeed); -DEFINE_CVAR_GLOBAL(OrbitUpperAngle); -DEFINE_CVAR_GLOBAL(OrbitLowerAngle); -DEFINE_CVAR_GLOBAL(OrbitHorizontalAngle); -// DEFINE_CVAR_GLOBAL(); // x194_ -// DEFINE_CVAR_GLOBAL(); // x198_ -DEFINE_CVAR_GLOBAL(OrbitMaxTargetDistance); -DEFINE_CVAR_GLOBAL(OrbitMaxLockDistance); -DEFINE_CVAR_GLOBAL(OrbitDistanceThreshold); -DEFINE_CVAR_GLOBAL(OrbitScreenTargetingBoxHalfExtentX); -DEFINE_CVAR_GLOBAL(OrbitScreenScanBoxHalfExtentX); -DEFINE_CVAR_GLOBAL(OrbitScreenTargetingBoxHalfExtentY); -DEFINE_CVAR_GLOBAL(OrbitScreenScanBoxHalfExtentY); -DEFINE_CVAR_GLOBAL(OrbitScreenTargetingBoxCenterX); -DEFINE_CVAR_GLOBAL(OrbitScreenScanBoxCenterX); -DEFINE_CVAR_GLOBAL(OrbitScreenTargetingBoxCenterY); -DEFINE_CVAR_GLOBAL(OrbitScreenScanBoxCenterY); -DEFINE_CVAR_GLOBAL(OrbitZoneTargetingIdealX); -DEFINE_CVAR_GLOBAL(OrbitZoneScanIdealX); -DEFINE_CVAR_GLOBAL(OrbitZoneTargetingIdealY); -DEFINE_CVAR_GLOBAL(OrbitZoneScanIdealY); -DEFINE_CVAR_GLOBAL(OrbitNearX); -DEFINE_CVAR_GLOBAL(OrbitNearZ); -// DEFINE_CVAR_GLOBAL(); // x1e0_ -// DEFINE_CVAR_GLOBAL(); // x1e4_ -DEFINE_CVAR_GLOBAL(OrbitFixedOffsetZDiff); -DEFINE_CVAR_GLOBAL(OrbitZRange); -// DEFINE_CVAR_GLOBAL(); // x1f0_ -// DEFINE_CVAR_GLOBAL(); // x1f4_ -// DEFINE_CVAR_GLOBAL(); // x1f8_ -DEFINE_CVAR_GLOBAL(OrbitPreventionTime); -DEFINE_CVAR_GLOBAL(DashEnabled); -DEFINE_CVAR_GLOBAL(DashOnButtonRelease); -DEFINE_CVAR_GLOBAL(DashButtonHoldCancelTime); -DEFINE_CVAR_GLOBAL(DashStrafeInputThreshold); -DEFINE_CVAR_GLOBAL(SidewaysDoubleJumpImpulse); -DEFINE_CVAR_GLOBAL(SidewaysVerticalDoubleJumpAccel); -DEFINE_CVAR_GLOBAL(SidewaysHorizontalDoubleJumpAccel); -DEFINE_CVAR_GLOBAL(ScanningRange); -DEFINE_CVAR_GLOBAL(ScanRetention); -DEFINE_CVAR_GLOBAL(ScanFreezesGame); -DEFINE_CVAR_GLOBAL(OrbitWhileScanning); -DEFINE_CVAR_GLOBAL(ScanMaxTargetDistance); -DEFINE_CVAR_GLOBAL(ScanMaxLockDistance) -DEFINE_CVAR_GLOBAL(FreeLookTurnsPlayer); -// DEFINE_CVAR_GLOBAL(); // x228_25_ -// DEFINE_CVAR_GLOBAL(); // x228_26_ -DEFINE_CVAR_GLOBAL(MoveDuringFreelook); -DEFINE_CVAR_GLOBAL(HoldButtonsForFreeLook); -// DEFINE_CVAR_GLOBAL(); // x228_30_ -// DEFINE_CVAR_GLOBAL(); // x228_31_ -// DEFINE_CVAR_GLOBAL(); // x229_24_ -DEFINE_CVAR_GLOBAL(AimWhenOrbitingPoint); -DEFINE_CVAR_GLOBAL(StayInFreeLookWhileFiring); -// DEFINE_CVAR_GLOBAL(); // x229_27_ -// DEFINE_CVAR_GLOBAL(); // x229_28_ -DEFINE_CVAR_GLOBAL(OrbitFixedOffset); -DEFINE_CVAR_GLOBAL(GunButtonTogglesHolster); -DEFINE_CVAR_GLOBAL(GunNotFiringHolstersGun); -DEFINE_CVAR_GLOBAL(FallingDoubleJump); -DEFINE_CVAR_GLOBAL(ImpulseDoubleJump); -DEFINE_CVAR_GLOBAL(FiringCancelsCameraPitch); -DEFINE_CVAR_GLOBAL(AssistedAimingIgnoreHorizontal); -DEFINE_CVAR_GLOBAL(AssistedAimingIgnoreVertical); -// DEFINE_CVAR_GLOBAL(); // x22c -// DEFINE_CVAR_GLOBAL(); // x230_ -DEFINE_CVAR_GLOBAL(AimMaxDistance); -// DEFINE_CVAR_GLOBAL(); // x238_ -// DEFINE_CVAR_GLOBAL(); // x23c_ -// DEFINE_CVAR_GLOBAL(); // x240_ -// DEFINE_CVAR_GLOBAL(); // x244_ -// DEFINE_CVAR_GLOBAL(); // x248_ -DEFINE_CVAR_GLOBAL(AimThresholdDistance); -// DEFINE_CVAR_GLOBAL(); // x250_ -// DEFINE_CVAR_GLOBAL(); // x254_ -DEFINE_CVAR_GLOBAL(AimBoxWidth); -DEFINE_CVAR_GLOBAL(AimBoxHeight); -DEFINE_CVAR_GLOBAL(AimTargetTimer); -DEFINE_CVAR_GLOBAL(AimAssistHorizontalAngle); -DEFINE_CVAR_GLOBAL(AimAssistVerticalAngle); -DEFINE_CVAR_GLOBAL(PlayerHeight); -DEFINE_CVAR_GLOBAL(PlayerXYHalfExtent); -DEFINE_CVAR_GLOBAL(StepUpHeight); -DEFINE_CVAR_GLOBAL(StepDownHeight); -DEFINE_CVAR_GLOBAL(PlayerBallHalfExtent); -DEFINE_CVAR_GLOBAL(FirstPersonCameraSpeed); -// DEFINE_CVAR_GLOBAL(); // x284_ -DEFINE_CVAR_GLOBAL(JumpCameraPitchDownStart); -DEFINE_CVAR_GLOBAL(JumpCameraPitchDownFull); -DEFINE_CVAR_GLOBAL(JumpCameraPitchDownAngle); -DEFINE_CVAR_GLOBAL(FallCameraPitchDownStart); -DEFINE_CVAR_GLOBAL(FallCameraPitchDownFull); -DEFINE_CVAR_GLOBAL(FallCameraPitchDownAngle); -DEFINE_CVAR_GLOBAL(OrbitDistanceMax); -DEFINE_CVAR_GLOBAL(GrappleSwingLength); -DEFINE_CVAR_GLOBAL(GrappleSwingPeriod); -DEFINE_CVAR_GLOBAL(GrapplePullSpeedMin); -DEFINE_CVAR_GLOBAL(GrappleCameraSpeed); -DEFINE_CVAR_GLOBAL(MaxGrappleLockedTurnAlignDistance); -DEFINE_CVAR_GLOBAL(GrapplePullSpeedProportion); -DEFINE_CVAR_GLOBAL(GrapplePullSpeedMax); -DEFINE_CVAR_GLOBAL(GrappleLookCenterSpeed); -DEFINE_CVAR_GLOBAL(MaxGrappleTurnSpeed); -DEFINE_CVAR_GLOBAL(GrappleJumpForce); -DEFINE_CVAR_GLOBAL(GrappleReleaseTime); -DEFINE_CVAR_GLOBAL(GrappleJumpMode); -DEFINE_CVAR_GLOBAL(OrbitReleaseBreaksGrapple); -DEFINE_CVAR_GLOBAL(InvertGrappleTurn); -DEFINE_CVAR_GLOBAL(GrappleBeamSpeed); -DEFINE_CVAR_GLOBAL(GrappleBeamXWaveAmplitude); -DEFINE_CVAR_GLOBAL(GrappleBeamZWaveAmplitude); -DEFINE_CVAR_GLOBAL(GrappleBeamAnglePhaseDelta); -// DEFINE_CVAR_GLOBAL(); // x2e8_ -// DEFINE_CVAR_GLOBAL(); // x2ec_ -// DEFINE_CVAR_GLOBAL(); // x2f0_ -// DEFINE_CVAR_GLOBAL(); // x2f4_ -DEFINE_CVAR_GLOBAL(FrozenTimeout); -DEFINE_CVAR_GLOBAL(IceBreakJumpCount); -DEFINE_CVAR_GLOBAL(VariaDamageReduction); -DEFINE_CVAR_GLOBAL(GravityDamageReduction); -DEFINE_CVAR_GLOBAL(PhazonDamageReduction); -} // namespace template <> void CTweakPlayer::Enumerate(athena::io::IStreamReader& __dna_reader) { /* x4_maxTranslationalAcceleration[0] */ @@ -2121,536 +1867,9 @@ void CTweakPlayer::Enumerate(athena::io::YAMLDocWriter& __dna __dna_docout.writeFloat("x308_phazonDamageReduction", x308_phazonDamageReduction); } -void CTweakPlayer::FixupValues() { - x130_horizontalFreeLookAngleVel = zeus::degToRad(x130_horizontalFreeLookAngleVel); - x134_verticalFreeLookAngleVel = zeus::degToRad(x134_verticalFreeLookAngleVel); - x138_freeLookSpeed = zeus::degToRad(x138_freeLookSpeed); - x13c_freeLookSnapSpeed = zeus::degToRad(x13c_freeLookSnapSpeed); - x140_ = zeus::degToRad(x140_); - x144_freeLookCenteredThresholdAngle = zeus::degToRad(x144_freeLookCenteredThresholdAngle); - x23c_ = zeus::degToRad(x23c_); - x240_ = zeus::degToRad(x240_); - x244_ = zeus::degToRad(x244_); - x248_ = zeus::degToRad(x248_); - x250_ = zeus::degToRad(x250_); - x264_aimAssistHorizontalAngle = zeus::degToRad(x264_aimAssistHorizontalAngle); - x268_aimAssistVerticalAngle = zeus::degToRad(x268_aimAssistVerticalAngle); - x17c_ = zeus::degToRad(x17c_); - x184_orbitCameraSpeed = zeus::degToRad(x184_orbitCameraSpeed); - x188_orbitUpperAngle = zeus::degToRad(x188_orbitUpperAngle); - x18c_orbitLowerAngle = zeus::degToRad(x18c_orbitLowerAngle); - x190_orbitHorizAngle = zeus::degToRad(x190_orbitHorizAngle); - x194_ = zeus::degToRad(x194_); - x198_ = zeus::degToRad(x198_); - x1f0_ = zeus::degToRad(x1f0_); - x1f4_ = zeus::degToRad(x1f4_); - x2b0_grappleCameraSpeed = zeus::degToRad(x2b0_grappleCameraSpeed); - x2c0_grappleLookCenterSpeed = zeus::degToRad(x2c0_grappleLookCenterSpeed); - x280_firstPersonCameraSpeed = zeus::degToRad(x280_firstPersonCameraSpeed); - x284_ = zeus::degToRad(x284_); - x290_jumpCameraPitchDownAngle = zeus::degToRad(x290_jumpCameraPitchDownAngle); - x29c_fallCameraPitchDownAngle = zeus::degToRad(x29c_fallCameraPitchDownAngle); -} - std::string_view CTweakPlayer::DNAType() { return "DataSpec::DNAMP1::CTweakPlayer"sv; } template <> void CTweakPlayer::Enumerate(size_t& __isz) { __isz += 785; } - -void CTweakPlayer::_tweakListener(hecl::CVar* cv) { - UPDATE_CVAR(MaxTranslationAccelerationNormal, cv, x4_maxTranslationalAcceleration[0]); - UPDATE_CVAR(MaxTranslationAccelerationAir, cv, x4_maxTranslationalAcceleration[1]); - UPDATE_CVAR(MaxTranslationAccelerationIce, cv, x4_maxTranslationalAcceleration[2]); - UPDATE_CVAR(MaxTranslationAccelerationOrganic, cv, x4_maxTranslationalAcceleration[3]); - UPDATE_CVAR(MaxTranslationAccelerationWater, cv, x4_maxTranslationalAcceleration[4]); - UPDATE_CVAR(MaxTranslationAccelerationLava, cv, x4_maxTranslationalAcceleration[5]); - UPDATE_CVAR(MaxTranslationAccelerationPhazon, cv, x4_maxTranslationalAcceleration[6]); - UPDATE_CVAR(MaxRotationAccelerationShrubbery, cv, x24_maxRotationalAcceleration[7]); - UPDATE_CVAR(MaxRotationAccelerationNormal, cv, x24_maxRotationalAcceleration[0]); - UPDATE_CVAR(MaxRotationAccelerationAir, cv, x24_maxRotationalAcceleration[1]); - UPDATE_CVAR(MaxRotationAccelerationIce, cv, x24_maxRotationalAcceleration[2]); - UPDATE_CVAR(MaxRotationAccelerationOrganic, cv, x24_maxRotationalAcceleration[3]); - UPDATE_CVAR(MaxRotationAccelerationWater, cv, x24_maxRotationalAcceleration[4]); - UPDATE_CVAR(MaxRotationAccelerationLava, cv, x24_maxRotationalAcceleration[5]); - UPDATE_CVAR(MaxRotationAccelerationPhazon, cv, x24_maxRotationalAcceleration[6]); - UPDATE_CVAR(MaxRotationAccelerationShrubbery, cv, x24_maxRotationalAcceleration[7]); - UPDATE_CVAR(TranslationFrictionNormal, cv, x44_translationFriction[0]); - UPDATE_CVAR(TranslationFrictionAir, cv, x44_translationFriction[1]); - UPDATE_CVAR(TranslationFrictionIce, cv, x44_translationFriction[2]); - UPDATE_CVAR(TranslationFrictionOrganic, cv, x44_translationFriction[3]); - UPDATE_CVAR(TranslationFrictionWater, cv, x44_translationFriction[4]); - UPDATE_CVAR(TranslationFrictionLava, cv, x44_translationFriction[5]); - UPDATE_CVAR(TranslationFrictionPhazon, cv, x44_translationFriction[6]); - UPDATE_CVAR(TranslationFrictionShrubbery, cv, x44_translationFriction[7]); - UPDATE_CVAR(RotationFrictionNormal, cv, x44_translationFriction[2]); - UPDATE_CVAR(RotationFrictionIce, cv, x44_translationFriction[2]); - UPDATE_CVAR(RotationFrictionOrganic, cv, x44_translationFriction[3]); - UPDATE_CVAR(RotationFrictionWater, cv, x44_translationFriction[4]); - UPDATE_CVAR(RotationFrictionLava, cv, x44_translationFriction[5]); - UPDATE_CVAR(RotationFrictionPhazon, cv, x44_translationFriction[6]); - UPDATE_CVAR(RotationFrictionShrubbery, cv, x44_translationFriction[7]); - UPDATE_CVAR(RotationMaxSpeedNormal, cv, x84_rotationMaxSpeed[2]); - UPDATE_CVAR(RotationMaxSpeedIce, cv, x84_rotationMaxSpeed[2]); - UPDATE_CVAR(RotationMaxSpeedOrganic, cv, x84_rotationMaxSpeed[3]); - UPDATE_CVAR(RotationMaxSpeedWater, cv, x84_rotationMaxSpeed[4]); - UPDATE_CVAR(RotationMaxSpeedLava, cv, x84_rotationMaxSpeed[5]); - UPDATE_CVAR(RotationMaxSpeedPhazon, cv, x84_rotationMaxSpeed[6]); - UPDATE_CVAR(RotationMaxSpeedShrubbery, cv, x84_rotationMaxSpeed[7]); - UPDATE_CVAR(TranslationMaxSpeedNormal, cv, xa4_translationMaxSpeed[2]); - UPDATE_CVAR(TranslationMaxSpeedIce, cv, xa4_translationMaxSpeed[2]); - UPDATE_CVAR(TranslationMaxSpeedOrganic, cv, xa4_translationMaxSpeed[3]); - UPDATE_CVAR(TranslationMaxSpeedWater, cv, xa4_translationMaxSpeed[4]); - UPDATE_CVAR(TranslationMaxSpeedLava, cv, xa4_translationMaxSpeed[5]); - UPDATE_CVAR(TranslationMaxSpeedPhazon, cv, xa4_translationMaxSpeed[6]); - UPDATE_CVAR(TranslationMaxSpeedShrubbery, cv, xa4_translationMaxSpeed[7]); - UPDATE_CVAR(NormalGravityAcceleration, cv, xc4_normalGravAccel); - UPDATE_CVAR(FluidGravityAcceleration, cv, xc8_fluidGravAccel); - UPDATE_CVAR(VerticalJumpAcceleration, cv, xcc_verticalJumpAccel); - UPDATE_CVAR(HorizontalJumpAcceleration, cv, xd0_horizontalJumpAccel); - UPDATE_CVAR(VerticalDoubleJumpAcceleration, cv, xd4_verticalDoubleJumpAccel); - UPDATE_CVAR(HorizontalDoubleJumpAcceleration, cv, xd8_horizontalDoubleJumpAccel); - UPDATE_CVAR(WaterJumpFactor, cv, xdc_waterJumpFactor); - UPDATE_CVAR(WaterBallJumpFactor, cv, xe0_waterBallJumpFactor); - UPDATE_CVAR(LavaJumpFactor, cv, xe4_lavaJumpFactor); - UPDATE_CVAR(LavaBallJumpFactor, cv, xe8_lavaBallJumpFactor); - UPDATE_CVAR(PhazonJumpFactor, cv, xec_phazonJumpFactor); - UPDATE_CVAR(PhazonBallJumpFactor, cv, xf0_phazonBallJumpFactor); - UPDATE_CVAR(AllowedJumpTime, cv, xf4_allowedJumpTime); - UPDATE_CVAR(AllowedDoubleJumpTime, cv, xf8_allowedDoubleJumpTime); - UPDATE_CVAR(MinDoubleJumpWindow, cv, xfc_minDoubleJumpWindow); - UPDATE_CVAR(MaxDoubleJumpWindow, cv, x100_maxDoubleJumpWindow); - // UPDATE_CVAR(); // x104_ - UPDATE_CVAR(MinJumpTime, cv, x108_minJumpTime); - UPDATE_CVAR(MinDoubleJumpTime, cv, x10c_minDoubleJumpTime); - UPDATE_CVAR(AllowedLedgeTime, cv, x110_allowedLedgeTime); - UPDATE_CVAR(DoubleJumpImpulse, cv, x114_doubleJumpImpulse); - UPDATE_CVAR(BackwardsForceMultiplier, cv, x118_backwardsForceMultiplier); - UPDATE_CVAR(BombJumpRadius, cv, x11c_bombJumpRadius); - UPDATE_CVAR(BombJumpHeight, cv, x120_bombJumpHeight); - UPDATE_CVAR(EyeOffset, cv, x124_eyeOffset); - UPDATE_CVAR(TurnSpeedMultiplier, cv, x128_turnSpeedMultiplier); - UPDATE_CVAR(FreeLookTurnSpeedMultiplier, cv, x12c_freeLookTurnSpeedMultiplier); - UPDATE_CVAR(HorizontalFreeLookAngleVelocity, cv, x130_horizontalFreeLookAngleVel); - UPDATE_CVAR(VerticalFreeLookAngleVelocity, cv, x134_verticalFreeLookAngleVel); - UPDATE_CVAR(FreeLookSpeed, cv, x138_freeLookSpeed); - UPDATE_CVAR(FreeLookSnapSpeed, cv, x13c_freeLookSnapSpeed); - // UPDATE_CVAR(); // x140_ - UPDATE_CVAR(FreeLookCenteredThresholdAngle, cv, x144_freeLookCenteredThresholdAngle); - UPDATE_CVAR(FreeLookCenteredTime, cv, x148_freeLookCenteredTime); - UPDATE_CVAR(FreeLookDampenFactor, cv, x14c_freeLookDampenFactor); - UPDATE_CVAR(LeftDivisor, cv, x150_leftDiv); - UPDATE_CVAR(RightDivisor, cv, x154_rightDiv); - UPDATE_CVAR(OrbitMinDistanceClose, cv, x158_orbitMinDistance[0]); - UPDATE_CVAR(OrbitMinDistanceFar, cv, x158_orbitMinDistance[1]); - UPDATE_CVAR(OrbitMinDistanceDefault, cv, x158_orbitMinDistance[2]); - UPDATE_CVAR(OrbitNormalDistanceClose, cv, x164_orbitNormalDistance[0]); - UPDATE_CVAR(OrbitNormalDistanceFar, cv, x164_orbitNormalDistance[1]); - UPDATE_CVAR(OrbitNormalDistanceDefault, cv, x164_orbitNormalDistance[2]); - UPDATE_CVAR(OrbitMaxDistanceClose, cv, x170_orbitMaxDistance[0]); - UPDATE_CVAR(OrbitMaxDistanceFar, cv, x170_orbitMaxDistance[1]); - UPDATE_CVAR(OrbitMaxDistanceDefault, cv, x170_orbitMaxDistance[2]); - // UPDATE_CVAR(); // x17c_ - UPDATE_CVAR(OrbitmodeTimer, cv, x180_orbitModeTimer); - UPDATE_CVAR(OrbitCameraSpeed, cv, x184_orbitCameraSpeed); - UPDATE_CVAR(OrbitUpperAngle, cv, x188_orbitUpperAngle); - UPDATE_CVAR(OrbitLowerAngle, cv, x18c_orbitLowerAngle); - UPDATE_CVAR(OrbitHorizontalAngle, cv, x190_orbitHorizAngle); - // UPDATE_CVAR(); // x194_ - // UPDATE_CVAR(); // x198_ - UPDATE_CVAR(OrbitMaxTargetDistance, cv, x19c_orbitMaxTargetDistance); - UPDATE_CVAR(OrbitMaxLockDistance, cv, x1a0_orbitMaxLockDistance); - UPDATE_CVAR(OrbitDistanceThreshold, cv, x1a4_orbitDistanceThreshold); - UPDATE_CVAR(OrbitScreenTargetingBoxHalfExtentX, cv, x1a8_orbitScreenBoxHalfExtentX[0]); - UPDATE_CVAR(OrbitScreenScanBoxHalfExtentX, cv, x1a8_orbitScreenBoxHalfExtentX[1]); - UPDATE_CVAR(OrbitScreenTargetingBoxHalfExtentY, cv, x1b0_orbitScreenBoxHalfExtentY[0]); - UPDATE_CVAR(OrbitScreenScanBoxHalfExtentY, cv, x1b0_orbitScreenBoxHalfExtentY[1]); - UPDATE_CVAR(OrbitScreenTargetingBoxCenterX, cv, x1b8_orbitScreenBoxCenterX[0]); - UPDATE_CVAR(OrbitScreenScanBoxCenterX, cv, x1b8_orbitScreenBoxCenterX[1]); - UPDATE_CVAR(OrbitScreenTargetingBoxCenterY, cv, x1c0_orbitScreenBoxCenterY[0]); - UPDATE_CVAR(OrbitScreenScanBoxCenterY, cv, x1c0_orbitScreenBoxCenterY[1]); - UPDATE_CVAR(OrbitZoneTargetingIdealX, cv, x1c8_orbitZoneIdealX[0]); - UPDATE_CVAR(OrbitZoneScanIdealX, cv, x1c8_orbitZoneIdealX[1]); - UPDATE_CVAR(OrbitZoneTargetingIdealY, cv, x1d0_orbitZoneIdealY[0]); - UPDATE_CVAR(OrbitZoneScanIdealY, cv, x1d0_orbitZoneIdealY[1]); - UPDATE_CVAR(OrbitNearX, cv, x1d8_orbitNearX); - UPDATE_CVAR(OrbitNearZ, cv, x1dc_orbitNearZ); - // UPDATE_CVAR(); // x1e0_ - // UPDATE_CVAR(); // x1e4_ - UPDATE_CVAR(OrbitFixedOffsetZDiff, cv, x1e8_orbitFixedOffsetZDiff); - UPDATE_CVAR(OrbitZRange, cv, x1ec_orbitZRange); - // UPDATE_CVAR(); // x1f0_ - // UPDATE_CVAR(); // x1f4_ - // UPDATE_CVAR(); // x1f8_ - UPDATE_CVAR(OrbitPreventionTime, cv, x1fc_orbitPreventionTime); - UPDATE_CVAR_BITFIELD(DashEnabled, cv, x200_24_dashEnabled); - UPDATE_CVAR_BITFIELD(DashOnButtonRelease, cv, x200_25_dashOnButtonRelease); - UPDATE_CVAR(DashButtonHoldCancelTime, cv, x204_dashButtonHoldCancelTime); - UPDATE_CVAR(DashStrafeInputThreshold, cv, x208_dashStrafeInputThreshold); - UPDATE_CVAR(SidewaysDoubleJumpImpulse, cv, x20c_sidewaysDoubleJumpImpulse); - UPDATE_CVAR(SidewaysVerticalDoubleJumpAccel, cv, x210_sidewaysVerticalDoubleJumpAccel); - UPDATE_CVAR(SidewaysHorizontalDoubleJumpAccel, cv, x214_sidewaysHorizontalDoubleJumpAccel); - UPDATE_CVAR(ScanningRange, cv, x218_scanningRange); - UPDATE_CVAR_BITFIELD(ScanRetention, cv, x21c_24_scanRetention); - UPDATE_CVAR_BITFIELD(ScanFreezesGame, cv, x21c_25_scanFreezesGame); - UPDATE_CVAR_BITFIELD(OrbitWhileScanning, cv, x21c_26_orbitWhileScanning); - UPDATE_CVAR(ScanMaxTargetDistance, cv, x220_scanMaxTargetDistance); - UPDATE_CVAR(ScanMaxLockDistance, cv, x224_scanMaxLockDistance); - UPDATE_CVAR_BITFIELD(FreeLookTurnsPlayer, cv, x228_24_freelookTurnsPlayer); - // UPDATE_CVAR_BITFIELD(); // x228_25_ - // UPDATE_CVAR_BITFIELD(); // x228_26_ - UPDATE_CVAR_BITFIELD(MoveDuringFreelook, cv, x228_27_moveDuringFreeLook); - UPDATE_CVAR_BITFIELD(HoldButtonsForFreeLook, cv, x228_28_holdButtonsForFreeLook); - // UPDATE_CVAR_BITFIELD(); // x228_30_ - // UPDATE_CVAR_BITFIELD(); // x228_31_ - // UPDATE_CVAR_BITFIELD(); // x229_24_ - UPDATE_CVAR_BITFIELD(AimWhenOrbitingPoint, cv, x229_25_aimWhenOrbitingPoint); - UPDATE_CVAR_BITFIELD(StayInFreeLookWhileFiring, cv, x229_26_stayInFreeLookWhileFiring); - // UPDATE_CVAR_BITFIELD(); // x229_27_ - // UPDATE_CVAR_BITFIELD(); // x229_28_ - UPDATE_CVAR_BITFIELD(OrbitFixedOffset, cv, x229_29_orbitFixedOffset); - UPDATE_CVAR_BITFIELD(GunButtonTogglesHolster, cv, x229_30_gunButtonTogglesHolster); - UPDATE_CVAR_BITFIELD(GunNotFiringHolstersGun, cv, x229_31_gunNotFiringHolstersGun); - UPDATE_CVAR_BITFIELD(FallingDoubleJump, cv, x22a_24_fallingDoubleJump); - UPDATE_CVAR_BITFIELD(ImpulseDoubleJump, cv, x22a_25_impulseDoubleJump); - UPDATE_CVAR_BITFIELD(FiringCancelsCameraPitch, cv, x22a_26_firingCancelsCameraPitch); - UPDATE_CVAR_BITFIELD(AssistedAimingIgnoreHorizontal, cv, x22a_27_assistedAimingIgnoreHorizontal); - UPDATE_CVAR_BITFIELD(AssistedAimingIgnoreVertical, cv, x22a_28_assistedAimingIgnoreVertical); - // UPDATE_CVAR(); // x22c - // UPDATE_CVAR(); // x230_ - UPDATE_CVAR(AimMaxDistance, cv, x234_aimMaxDistance); - // UPDATE_CVAR(); // x238_ - // UPDATE_CVAR(); // x23c_ - // UPDATE_CVAR(); // x240_ - // UPDATE_CVAR(); // x244_ - // UPDATE_CVAR(); // x248_ - UPDATE_CVAR(AimThresholdDistance, cv, x24c_aimThresholdDistance); - // UPDATE_CVAR(); // x250_ - // UPDATE_CVAR(); // x254_ - UPDATE_CVAR(AimBoxWidth, cv, x258_aimBoxWidth); - UPDATE_CVAR(AimBoxHeight, cv, x25c_aimBoxHeight); - UPDATE_CVAR(AimTargetTimer, cv, x260_aimTargetTimer); - UPDATE_CVAR(AimAssistHorizontalAngle, cv, x264_aimAssistHorizontalAngle); - UPDATE_CVAR(AimAssistVerticalAngle, cv, x268_aimAssistVerticalAngle); - UPDATE_CVAR(PlayerHeight, cv, x26c_playerHeight); - UPDATE_CVAR(PlayerXYHalfExtent, cv, x270_playerXYHalfExtent); - UPDATE_CVAR(StepUpHeight, cv, x274_stepUpHeight); - UPDATE_CVAR(StepDownHeight, cv, x278_stepDownHeight); - UPDATE_CVAR(PlayerBallHalfExtent, cv, x27c_playerBallHalfExtent); - UPDATE_CVAR(FirstPersonCameraSpeed, cv, x280_firstPersonCameraSpeed); - // UPDATE_CVAR(); // x284_ - UPDATE_CVAR(JumpCameraPitchDownStart, cv, x288_jumpCameraPitchDownStart); - UPDATE_CVAR(JumpCameraPitchDownFull, cv, x28c_jumpCameraPitchDownFull); - UPDATE_CVAR(JumpCameraPitchDownAngle, cv, x290_jumpCameraPitchDownAngle); - UPDATE_CVAR(FallCameraPitchDownStart, cv, x294_fallCameraPitchDownStart); - UPDATE_CVAR(FallCameraPitchDownFull, cv, x298_fallCameraPitchDownFull); - UPDATE_CVAR(FallCameraPitchDownAngle, cv, x29c_fallCameraPitchDownAngle); - UPDATE_CVAR(OrbitDistanceMax, cv, x2a0_orbitDistanceMax); - UPDATE_CVAR(GrappleSwingLength, cv, x2a4_grappleSwingLength); - UPDATE_CVAR(GrappleSwingPeriod, cv, x2a8_grappleSwingPeriod); - UPDATE_CVAR(GrapplePullSpeedMin, cv, x2ac_grapplePullSpeedMin); - UPDATE_CVAR(GrappleCameraSpeed, cv, x2b0_grappleCameraSpeed); - UPDATE_CVAR(MaxGrappleLockedTurnAlignDistance, cv, x2b4_maxGrappleLockedTurnAlignDistance); - UPDATE_CVAR(GrapplePullSpeedProportion, cv, x2b8_grapplePullSpeedProportion); - UPDATE_CVAR(GrapplePullSpeedMax, cv, x2bc_grapplePullSpeedMax); - UPDATE_CVAR(GrappleLookCenterSpeed, cv, x2c0_grappleLookCenterSpeed); - UPDATE_CVAR(MaxGrappleTurnSpeed, cv, x2c4_maxGrappleTurnSpeed); - UPDATE_CVAR(GrappleJumpForce, cv, x2c8_grappleJumpForce); - UPDATE_CVAR(GrappleReleaseTime, cv, x2cc_grappleReleaseTime); - UPDATE_CVAR(GrappleJumpMode, cv, x2d0_grappleJumpMode); - UPDATE_CVAR(OrbitReleaseBreaksGrapple, cv, x2d4_orbitReleaseBreaksGrapple); - UPDATE_CVAR(InvertGrappleTurn, cv, x2d5_invertGrappleTurn); - UPDATE_CVAR(GrappleBeamSpeed, cv, x2d8_grappleBeamSpeed); - UPDATE_CVAR(GrappleBeamXWaveAmplitude, cv, x2dc_grappleBeamXWaveAmplitude); - UPDATE_CVAR(GrappleBeamZWaveAmplitude, cv, x2e0_grappleBeamZWaveAmplitude); - UPDATE_CVAR(GrappleBeamAnglePhaseDelta, cv, x2e4_grappleBeamAnglePhaseDelta); - // UPDATE_CVAR(); // x2e8_ - // UPDATE_CVAR(); // x2ec_ - // UPDATE_CVAR(); // x2f0_ - // UPDATE_CVAR(); // x2f4_ - UPDATE_CVAR(FrozenTimeout, cv, x2f8_frozenTimeout); - UPDATE_CVAR(IceBreakJumpCount, cv, x2fc_iceBreakJumpCount); - UPDATE_CVAR(VariaDamageReduction, cv, x300_variaDamageReduction); - UPDATE_CVAR(GravityDamageReduction, cv, x304_gravityDamageReduction); - UPDATE_CVAR(PhazonDamageReduction, cv, x308_phazonDamageReduction); -} - -void CTweakPlayer::initCVars(hecl::CVarManager* mgr) { - CREATE_CVAR(MaxTranslationAccelerationNormal, - "Max translation acceleration allowed to the player under normal circumstances", - x4_maxTranslationalAcceleration[0], skDefaultFlags); - CREATE_CVAR(MaxTranslationAccelerationAir, "Max translation acceleration allowed to the player while in air", - x4_maxTranslationalAcceleration[1], skDefaultFlags); - CREATE_CVAR(MaxTranslationAccelerationIce, "Max translation acceleration allowed to the player while on ice surfaces", - x4_maxTranslationalAcceleration[2], skDefaultFlags); - CREATE_CVAR(MaxTranslationAccelerationOrganic, - "Max translation acceleration allowed to the player while on organic surfaces", - x4_maxTranslationalAcceleration[3], skDefaultFlags); - CREATE_CVAR(MaxTranslationAccelerationWater, "Max translation acceleration allowed to the player while in water", - x4_maxTranslationalAcceleration[4], skDefaultFlags); - CREATE_CVAR(MaxTranslationAccelerationLava, "Max translation acceleration allowed to the player while in lava", - x4_maxTranslationalAcceleration[5], skDefaultFlags); - CREATE_CVAR(MaxTranslationAccelerationPhazon, "Max translation acceleration allowed to the player while in phazon", - x4_maxTranslationalAcceleration[6], skDefaultFlags); - CREATE_CVAR(MaxTranslationAccelerationShrubbery, - "Max translation acceleration allowed to the player while in shrubbery", - x4_maxTranslationalAcceleration[7], skDefaultFlags); - CREATE_CVAR(MaxRotationAccelerationNormal, - "Max rotation acceleration allowed to the player under normal circumstances", - x24_maxRotationalAcceleration[0], skDefaultFlags); - CREATE_CVAR(MaxRotationAccelerationAir, "Max rotation acceleration allowed to the player while in air", - x24_maxRotationalAcceleration[1], skDefaultFlags); - CREATE_CVAR(MaxRotationAccelerationIce, "Max rotation acceleration allowed to the player while on ice surfaces", - x24_maxRotationalAcceleration[2], skDefaultFlags); - CREATE_CVAR(MaxRotationAccelerationOrganic, - "Max rotation acceleration allowed to the player while on organic surfaces", - x24_maxRotationalAcceleration[3], skDefaultFlags); - CREATE_CVAR(MaxRotationAccelerationWater, "Max rotation acceleration allowed to the player while in water", - x24_maxRotationalAcceleration[4], skDefaultFlags); - CREATE_CVAR(MaxRotationAccelerationLava, "Max rotation acceleration allowed to the player while in lava", - x24_maxRotationalAcceleration[5], skDefaultFlags); - CREATE_CVAR(MaxRotationAccelerationPhazon, "Max rotation acceleration allowed to the player while in phazon", - x24_maxRotationalAcceleration[6], skDefaultFlags); - CREATE_CVAR(MaxRotationAccelerationShrubbery, "Max rotation acceleration allowed to the player while in shrubbery", - x24_maxRotationalAcceleration[7], skDefaultFlags); - CREATE_CVAR(TranslationFrictionNormal, "Translation friction allowed to the player under normal circumstances", - x44_translationFriction[0], skDefaultFlags); - CREATE_CVAR(TranslationFrictionAir, "Translation friction allowed to the player while in air", - x44_translationFriction[1], skDefaultFlags); - CREATE_CVAR(TranslationFrictionIce, "Translation friction allowed to the player while on ice surfaces", - x44_translationFriction[2], skDefaultFlags); - CREATE_CVAR(TranslationFrictionOrganic, "Translation friction allowed to the player while on organic surfaces", - x44_translationFriction[3], skDefaultFlags); - CREATE_CVAR(TranslationFrictionWater, "Translation friction allowed to the player while in water", - x44_translationFriction[4], skDefaultFlags); - CREATE_CVAR(TranslationFrictionLava, "Translation friction allowed to the player while in lava", - x44_translationFriction[5], skDefaultFlags); - CREATE_CVAR(TranslationFrictionPhazon, "Translation friction allowed to the player while in phazon", - x44_translationFriction[6], skDefaultFlags); - CREATE_CVAR(TranslationFrictionShrubbery, "Translation friction allowed to the player while in shrubbery", - x44_translationFriction[7], skDefaultFlags); - CREATE_CVAR(RotationFrictionNormal, "Rotation friction allowed to the player under normal circumstances", - x44_translationFriction[0], skDefaultFlags); - CREATE_CVAR(RotationFrictionAir, "Rotation friction allowed to the player while in air", x44_translationFriction[1], - skDefaultFlags); - CREATE_CVAR(RotationFrictionIce, "Rotation friction allowed to the player while on ice surfaces", - x44_translationFriction[2], skDefaultFlags); - CREATE_CVAR(RotationFrictionOrganic, "Rotation friction allowed to the player while on organic surfaces", - x44_translationFriction[3], skDefaultFlags); - CREATE_CVAR(RotationFrictionWater, "Rotation friction allowed to the player while in water", - x44_translationFriction[4], skDefaultFlags); - CREATE_CVAR(RotationFrictionLava, "Rotation friction allowed to the player while in lava", x44_translationFriction[5], - skDefaultFlags); - CREATE_CVAR(RotationFrictionPhazon, "Rotation friction allowed to the player while in phazon", - x44_translationFriction[6], skDefaultFlags); - CREATE_CVAR(RotationFrictionShrubbery, "Rotation friction allowed to the player while in shrubbery", - x44_translationFriction[7], skDefaultFlags); - CREATE_CVAR(RotationMaxSpeedNormal, "Rotation max speed allowed to the player under normal circumstances", - x84_rotationMaxSpeed[0], skDefaultFlags); - CREATE_CVAR(RotationMaxSpeedAir, "Rotation max speed allowed to the player while in air", x84_rotationMaxSpeed[1], - skDefaultFlags); - CREATE_CVAR(RotationMaxSpeedIce, "Rotation max speed allowed to the player while on ice surfaces", - x84_rotationMaxSpeed[2], skDefaultFlags); - CREATE_CVAR(RotationMaxSpeedOrganic, "Rotation max speed allowed to the player while on organic surfaces", - x84_rotationMaxSpeed[3], skDefaultFlags); - CREATE_CVAR(RotationMaxSpeedWater, "Rotation max speed allowed to the player while in water", x84_rotationMaxSpeed[4], - skDefaultFlags); - CREATE_CVAR(RotationMaxSpeedLava, "Rotation max speed allowed to the player while in lava", x84_rotationMaxSpeed[5], - skDefaultFlags); - CREATE_CVAR(RotationMaxSpeedPhazon, "Rotation max speed allowed to the player while in phazon", - x84_rotationMaxSpeed[6], skDefaultFlags); - CREATE_CVAR(RotationMaxSpeedShrubbery, "Rotation max speed allowed to the player while in shrubbery", - x84_rotationMaxSpeed[7], skDefaultFlags); - CREATE_CVAR(TranslationMaxSpeedNormal, "Translation max speed allowed to the player under normal circumstances", - xa4_translationMaxSpeed[0], skDefaultFlags); - CREATE_CVAR(TranslationMaxSpeedNormal, "Translation max speed allowed to the player under normal circumstances", - xa4_translationMaxSpeed[1], skDefaultFlags); - CREATE_CVAR(TranslationMaxSpeedIce, "Translation max speed allowed to the player while on ice surfaces", - xa4_translationMaxSpeed[2], skDefaultFlags); - CREATE_CVAR(TranslationMaxSpeedOrganic, "Translation max speed allowed to the player while on organic surfaces", - xa4_translationMaxSpeed[3], skDefaultFlags); - CREATE_CVAR(TranslationMaxSpeedWater, "Translation max speed allowed to the player while in water", - xa4_translationMaxSpeed[4], skDefaultFlags); - CREATE_CVAR(TranslationMaxSpeedLava, "Translation max speed allowed to the player while in lava", - xa4_translationMaxSpeed[5], skDefaultFlags); - CREATE_CVAR(TranslationMaxSpeedPhazon, "Translation max speed allowed to the player while in phazon", - xa4_translationMaxSpeed[6], skDefaultFlags); - CREATE_CVAR(TranslationMaxSpeedShrubbery, "Translation max speed allowed to the player while in shrubbery", - xa4_translationMaxSpeed[7], skDefaultFlags); - CREATE_CVAR(NormalGravityAcceleration, "Gravity applied to the player under normal circumstances", - xc4_normalGravAccel, skDefaultFlags); - CREATE_CVAR(FluidGravityAcceleration, "Gravity applied to the player while in water", xc8_fluidGravAccel, - skDefaultFlags); - CREATE_CVAR(VerticalJumpAcceleration, "Vertical acceleration applied while jumping", xcc_verticalJumpAccel, - skDefaultFlags); - CREATE_CVAR(HorizontalJumpAcceleration, "Horizontal acceleration while jumping", xd0_horizontalJumpAccel, - skDefaultFlags); - CREATE_CVAR(VerticalDoubleJumpAcceleration, "Vertical acceleration while double jumping", xd4_verticalDoubleJumpAccel, - skDefaultFlags); - CREATE_CVAR(HorizontalDoubleJumpAcceleration, "Horizontal acceleration while double jumping", - xd8_horizontalDoubleJumpAccel, skDefaultFlags); - CREATE_CVAR(WaterJumpFactor, "Jump Factor while in water", xdc_waterJumpFactor, skDefaultFlags); - CREATE_CVAR(WaterBallJumpFactor, "Jump Factor while morphed in water", xe0_waterBallJumpFactor, skDefaultFlags); - CREATE_CVAR(LavaJumpFactor, "Jump Factor while in lava", xe4_lavaJumpFactor, skDefaultFlags); - CREATE_CVAR(LavaBallJumpFactor, "Jump Factor while morphed in lava", xe8_lavaBallJumpFactor, skDefaultFlags); - CREATE_CVAR(PhazonJumpFactor, "Jump Factor while in phazon", xec_phazonJumpFactor, skDefaultFlags); - CREATE_CVAR(PhazonBallJumpFactor, "Jump Factor while morphed in phazon", xf0_phazonBallJumpFactor, skDefaultFlags); - CREATE_CVAR(AllowedJumpTime, "", xf4_allowedJumpTime, skDefaultFlags); - CREATE_CVAR(AllowedDoubleJumpTime, "", xf8_allowedDoubleJumpTime, skDefaultFlags); - CREATE_CVAR(MinDoubleJumpWindow, "", xfc_minDoubleJumpWindow, skDefaultFlags); - CREATE_CVAR(MaxDoubleJumpWindow, "", x100_maxDoubleJumpWindow, skDefaultFlags); - // CREATE_CVAR(); // x104_ - CREATE_CVAR(MinJumpTime, "", x108_minJumpTime, skDefaultFlags); - CREATE_CVAR(MinDoubleJumpTime, "", x10c_minDoubleJumpTime, skDefaultFlags); - CREATE_CVAR(AllowedLedgeTime, "", x110_allowedLedgeTime, skDefaultFlags); - CREATE_CVAR(DoubleJumpImpulse, "", x114_doubleJumpImpulse, skDefaultFlags); - CREATE_CVAR(BackwardsForceMultiplier, "", x118_backwardsForceMultiplier, skDefaultFlags); - CREATE_CVAR(BombJumpRadius, "", x11c_bombJumpRadius, skDefaultFlags); - CREATE_CVAR(BombJumpHeight, "", x120_bombJumpHeight, skDefaultFlags); - CREATE_CVAR(EyeOffset, "", x124_eyeOffset, skDefaultFlags); - CREATE_CVAR(TurnSpeedMultiplier, "", x128_turnSpeedMultiplier, skDefaultFlags); - CREATE_CVAR(FreeLookTurnSpeedMultiplier, "", x12c_freeLookTurnSpeedMultiplier, skDefaultFlags); - CREATE_CVAR(HorizontalFreeLookAngleVelocity, "", x130_horizontalFreeLookAngleVel, skDefaultFlags); - CREATE_CVAR(VerticalFreeLookAngleVelocity, "", x134_verticalFreeLookAngleVel, skDefaultFlags); - CREATE_CVAR(FreeLookSpeed, "", x138_freeLookSpeed, skDefaultFlags); - CREATE_CVAR(FreeLookSnapSpeed, "", x13c_freeLookSnapSpeed, skDefaultFlags); - // CREATE_CVAR(); // x140_ - CREATE_CVAR(FreeLookCenteredThresholdAngle, "", x144_freeLookCenteredThresholdAngle, skDefaultFlags); - CREATE_CVAR(FreeLookCenteredTime, "", x148_freeLookCenteredTime, skDefaultFlags); - CREATE_CVAR(FreeLookDampenFactor, "", x14c_freeLookDampenFactor, skDefaultFlags); - CREATE_CVAR(LeftDivisor, "", x150_leftDiv, skDefaultFlags); - CREATE_CVAR(RightDivisor, "", x154_rightDiv, skDefaultFlags); - CREATE_CVAR(OrbitMinDistanceClose, "", x158_orbitMinDistance[0], skDefaultFlags); - CREATE_CVAR(OrbitMinDistanceFar, "", x158_orbitMinDistance[1], skDefaultFlags); - CREATE_CVAR(OrbitMinDistanceDefault, "", x158_orbitMinDistance[2], skDefaultFlags); - CREATE_CVAR(OrbitNormalDistanceClose, "", x164_orbitNormalDistance[0], skDefaultFlags); - CREATE_CVAR(OrbitNormalDistanceFar, "", x164_orbitNormalDistance[1], skDefaultFlags); - CREATE_CVAR(OrbitNormalDistanceDefault, "", x164_orbitNormalDistance[2], skDefaultFlags); - CREATE_CVAR(OrbitMaxDistanceClose, "", x170_orbitMaxDistance[0], skDefaultFlags); - CREATE_CVAR(OrbitMaxDistanceFar, "", x170_orbitMaxDistance[1], skDefaultFlags); - CREATE_CVAR(OrbitMaxDistanceDefault, "", x170_orbitMaxDistance[2], skDefaultFlags); - // CREATE_CVAR(); // x17c_ - CREATE_CVAR(OrbitmodeTimer, "", x180_orbitModeTimer, skDefaultFlags); - CREATE_CVAR(OrbitCameraSpeed, "", x184_orbitCameraSpeed, skDefaultFlags); - CREATE_CVAR(OrbitUpperAngle, "", x184_orbitCameraSpeed, skDefaultFlags); - CREATE_CVAR(OrbitLowerAngle, "", x184_orbitCameraSpeed, skDefaultFlags); - CREATE_CVAR(OrbitHorizontalAngle, "", x184_orbitCameraSpeed, skDefaultFlags); - // CREATE_CVAR(); // x194_ - // CREATE_CVAR(); // x198_ - CREATE_CVAR(OrbitMaxTargetDistance, "", x19c_orbitMaxTargetDistance, skDefaultFlags); - CREATE_CVAR(OrbitMaxLockDistance, "", x1a0_orbitMaxLockDistance, skDefaultFlags); - CREATE_CVAR(OrbitDistanceThreshold, "", x1a4_orbitDistanceThreshold, skDefaultFlags); - CREATE_CVAR(OrbitScreenTargetingBoxHalfExtentX, "", x1a8_orbitScreenBoxHalfExtentX[0], skDefaultFlags); - CREATE_CVAR(OrbitScreenScanBoxHalfExtentX, "", x1a8_orbitScreenBoxHalfExtentX[1], skDefaultFlags); - CREATE_CVAR(OrbitScreenTargetingBoxHalfExtentY, "", x1b0_orbitScreenBoxHalfExtentY[0], skDefaultFlags); - CREATE_CVAR(OrbitScreenScanBoxHalfExtentY, "", x1b0_orbitScreenBoxHalfExtentY[1], skDefaultFlags); - CREATE_CVAR(OrbitScreenTargetingBoxCenterX, "", x1b8_orbitScreenBoxCenterX[0], skDefaultFlags); - CREATE_CVAR(OrbitScreenScanBoxCenterX, "", x1b8_orbitScreenBoxCenterX[1], skDefaultFlags); - CREATE_CVAR(OrbitScreenTargetingBoxCenterY, "", x1c0_orbitScreenBoxCenterY[0], skDefaultFlags); - CREATE_CVAR(OrbitScreenScanBoxCenterY, "", x1c0_orbitScreenBoxCenterY[1], skDefaultFlags); - CREATE_CVAR(OrbitZoneTargetingIdealX, "", x1c8_orbitZoneIdealX[0], skDefaultFlags); - CREATE_CVAR(OrbitZoneScanIdealX, "", x1c8_orbitZoneIdealX[1], skDefaultFlags); - CREATE_CVAR(OrbitZoneTargetingIdealY, "", x1d0_orbitZoneIdealY[0], skDefaultFlags); - CREATE_CVAR(OrbitZoneScanIdealY, "", x1d0_orbitZoneIdealY[1], skDefaultFlags); - CREATE_CVAR(OrbitNearX, "", x1d8_orbitNearX, skDefaultFlags); - CREATE_CVAR(OrbitNearZ, "", x1dc_orbitNearZ, skDefaultFlags); - // CREATE_CVAR(); // x1e0_ - // CREATE_CVAR(); // x1e4_ - CREATE_CVAR(OrbitFixedOffsetZDiff, "", x1e8_orbitFixedOffsetZDiff, skDefaultFlags); - CREATE_CVAR(OrbitZRange, "", x1ec_orbitZRange, skDefaultFlags); - // CREATE_CVAR(); // x1f0_ - // CREATE_CVAR(); // x1f4_ - // CREATE_CVAR(); // x1f8_ - CREATE_CVAR(OrbitPreventionTime, "", x1fc_orbitPreventionTime, skDefaultFlags); - CREATE_CVAR_BITFIELD(DashEnabled, "", x200_24_dashEnabled, skDefaultFlags); - CREATE_CVAR_BITFIELD(DashOnButtonRelease, "", x200_25_dashOnButtonRelease, skDefaultFlags); - CREATE_CVAR(DashButtonHoldCancelTime, "", x204_dashButtonHoldCancelTime, skDefaultFlags); - CREATE_CVAR(DashStrafeInputThreshold, "", x208_dashStrafeInputThreshold, skDefaultFlags); - CREATE_CVAR(SidewaysDoubleJumpImpulse, "", x20c_sidewaysDoubleJumpImpulse, skDefaultFlags); - CREATE_CVAR(SidewaysVerticalDoubleJumpAccel, "", x210_sidewaysVerticalDoubleJumpAccel, skDefaultFlags); - CREATE_CVAR(SidewaysHorizontalDoubleJumpAccel, "", x214_sidewaysHorizontalDoubleJumpAccel, skDefaultFlags); - CREATE_CVAR(ScanningRange, "", x218_scanningRange, skDefaultFlags); - CREATE_CVAR_BITFIELD(ScanRetention, "", x21c_24_scanRetention, skDefaultFlags); - CREATE_CVAR_BITFIELD(ScanFreezesGame, "", x21c_25_scanFreezesGame, skDefaultFlags); - CREATE_CVAR_BITFIELD(OrbitWhileScanning, "", x21c_26_orbitWhileScanning, skDefaultFlags); - CREATE_CVAR(ScanMaxTargetDistance, "", x220_scanMaxTargetDistance, skDefaultFlags); - CREATE_CVAR(ScanMaxLockDistance, "", x224_scanMaxLockDistance, skDefaultFlags); - CREATE_CVAR_BITFIELD(FreeLookTurnsPlayer, "", x228_24_freelookTurnsPlayer, skDefaultFlags); - // CREATE_CVAR_BITFIELD(); // x228_25_ - // CREATE_CVAR_BITFIELD(); // x228_26_ - CREATE_CVAR_BITFIELD(MoveDuringFreelook, "", x228_27_moveDuringFreeLook, skDefaultFlags); - CREATE_CVAR_BITFIELD(HoldButtonsForFreeLook, "", x228_28_holdButtonsForFreeLook, skDefaultFlags); - // CREATE_CVAR_BITFIELD(); // x228_30_ - // CREATE_CVAR_BITFIELD(); // x228_31_ - // CREATE_CVAR(); // x229_24_ - CREATE_CVAR_BITFIELD(AimWhenOrbitingPoint, "", x229_25_aimWhenOrbitingPoint, skDefaultFlags); - CREATE_CVAR_BITFIELD(StayInFreeLookWhileFiring, "", x229_26_stayInFreeLookWhileFiring, skDefaultFlags); - // CREATE_CVAR_BITFIELD(); // x229_27_ - // CREATE_CVAR_BITFIELD(); // x229_28_ - CREATE_CVAR_BITFIELD(OrbitFixedOffset, "", x229_29_orbitFixedOffset, skDefaultFlags); - CREATE_CVAR_BITFIELD(GunButtonTogglesHolster, "", x229_30_gunButtonTogglesHolster, skDefaultFlags); - CREATE_CVAR_BITFIELD(GunNotFiringHolstersGun, "", x229_31_gunNotFiringHolstersGun, skDefaultFlags); - CREATE_CVAR_BITFIELD(FallingDoubleJump, "", x22a_24_fallingDoubleJump, skDefaultFlags); - CREATE_CVAR_BITFIELD(ImpulseDoubleJump, "", x22a_25_impulseDoubleJump, skDefaultFlags); - CREATE_CVAR_BITFIELD(FiringCancelsCameraPitch, "", x22a_26_firingCancelsCameraPitch, skDefaultFlags); - CREATE_CVAR_BITFIELD(AssistedAimingIgnoreHorizontal, "", x22a_27_assistedAimingIgnoreHorizontal, skDefaultFlags); - CREATE_CVAR_BITFIELD(AssistedAimingIgnoreVertical, "", x22a_28_assistedAimingIgnoreVertical, skDefaultFlags); - // CREATE_CVAR(); // x22c - // CREATE_CVAR(); // x230_ - CREATE_CVAR(AimMaxDistance, "", x234_aimMaxDistance, skDefaultFlags); - // CREATE_CVAR(); // x238_ - // CREATE_CVAR(); // x23c_ - // CREATE_CVAR(); // x240_ - // CREATE_CVAR(); // x244_ - // CREATE_CVAR(); // x248_ - CREATE_CVAR(AimThresholdDistance, "", x24c_aimThresholdDistance, skDefaultFlags); - // CREATE_CVAR(); // x250_ - // CREATE_CVAR(); // x254_ - CREATE_CVAR(AimBoxWidth, "", x258_aimBoxWidth, skDefaultFlags); - CREATE_CVAR(AimBoxHeight, "", x25c_aimBoxHeight, skDefaultFlags); - CREATE_CVAR(AimTargetTimer, "", x260_aimTargetTimer, skDefaultFlags); - CREATE_CVAR(AimAssistHorizontalAngle, "", x264_aimAssistHorizontalAngle, skDefaultFlags); - CREATE_CVAR(AimAssistVerticalAngle, "", x268_aimAssistVerticalAngle, skDefaultFlags); - CREATE_CVAR(PlayerHeight, "", x26c_playerHeight, skDefaultFlags); - CREATE_CVAR(PlayerXYHalfExtent, "", x270_playerXYHalfExtent, skDefaultFlags); - CREATE_CVAR(StepUpHeight, "", x274_stepUpHeight, skDefaultFlags); - CREATE_CVAR(StepDownHeight, "", x278_stepDownHeight, skDefaultFlags); - CREATE_CVAR(PlayerBallHalfExtent, "", x27c_playerBallHalfExtent, skDefaultFlags); - CREATE_CVAR(FirstPersonCameraSpeed, "", x280_firstPersonCameraSpeed, skDefaultFlags); - // CREATE_CVAR(); // x284_ - CREATE_CVAR(JumpCameraPitchDownStart, "", x288_jumpCameraPitchDownStart, skDefaultFlags); - CREATE_CVAR(JumpCameraPitchDownFull, "", x28c_jumpCameraPitchDownFull, skDefaultFlags); - CREATE_CVAR(JumpCameraPitchDownAngle, "", x290_jumpCameraPitchDownAngle, skDefaultFlags); - CREATE_CVAR(FallCameraPitchDownStart, "", x294_fallCameraPitchDownStart, skDefaultFlags); - CREATE_CVAR(FallCameraPitchDownFull, "", x298_fallCameraPitchDownFull, skDefaultFlags); - CREATE_CVAR(FallCameraPitchDownAngle, "", x29c_fallCameraPitchDownAngle, skDefaultFlags); - CREATE_CVAR(OrbitDistanceMax, "", x2a0_orbitDistanceMax, skDefaultFlags); - CREATE_CVAR(GrappleSwingLength, "", x2a4_grappleSwingLength, skDefaultFlags); - CREATE_CVAR(GrappleSwingPeriod, "", x2a8_grappleSwingPeriod, skDefaultFlags); - CREATE_CVAR(GrapplePullSpeedMin, "", x2ac_grapplePullSpeedMin, skDefaultFlags); - CREATE_CVAR(GrappleCameraSpeed, "", x2b0_grappleCameraSpeed, skDefaultFlags); - CREATE_CVAR(MaxGrappleLockedTurnAlignDistance, "", x2b4_maxGrappleLockedTurnAlignDistance, skDefaultFlags); - CREATE_CVAR(GrapplePullSpeedProportion, "", x2b8_grapplePullSpeedProportion, skDefaultFlags); - CREATE_CVAR(GrapplePullSpeedMax, "", x2bc_grapplePullSpeedMax, skDefaultFlags); - CREATE_CVAR(GrappleLookCenterSpeed, "", x2c0_grappleLookCenterSpeed, skDefaultFlags); - CREATE_CVAR(MaxGrappleTurnSpeed, "", x2c4_maxGrappleTurnSpeed, skDefaultFlags); - CREATE_CVAR(GrappleJumpForce, "", x2c8_grappleJumpForce, skDefaultFlags); - CREATE_CVAR(GrappleReleaseTime, "", x2cc_grappleReleaseTime, skDefaultFlags); - CREATE_CVAR(GrappleJumpMode, "", x2d0_grappleJumpMode, skDefaultFlags); - CREATE_CVAR(OrbitReleaseBreaksGrapple, "", x2d4_orbitReleaseBreaksGrapple, skDefaultFlags); - CREATE_CVAR(InvertGrappleTurn, "", x2d5_invertGrappleTurn, skDefaultFlags); - CREATE_CVAR(GrappleBeamSpeed, "", x2d8_grappleBeamSpeed, skDefaultFlags); - CREATE_CVAR(GrappleBeamXWaveAmplitude, "", x2dc_grappleBeamXWaveAmplitude, skDefaultFlags); - CREATE_CVAR(GrappleBeamZWaveAmplitude, "", x2e0_grappleBeamZWaveAmplitude, skDefaultFlags); - CREATE_CVAR(GrappleBeamAnglePhaseDelta, "", x2e4_grappleBeamAnglePhaseDelta, skDefaultFlags); - // CREATE_CVAR(); // x2e8_ - // CREATE_CVAR(); // x2ec_ - // CREATE_CVAR(); // x2f0_ - // CREATE_CVAR(); // x2f4_ - CREATE_CVAR(FrozenTimeout, "", x2f8_frozenTimeout, skDefaultFlags); - CREATE_CVAR(IceBreakJumpCount, "", x2fc_iceBreakJumpCount, skDefaultFlags); - CREATE_CVAR(VariaDamageReduction, "", x300_variaDamageReduction, skDefaultFlags); - CREATE_CVAR(GravityDamageReduction, "", x304_gravityDamageReduction, skDefaultFlags); - CREATE_CVAR(PhazonDamageReduction, "", x308_phazonDamageReduction, skDefaultFlags); -} } // namespace DataSpec::DNAMP1 diff --git a/DataSpec/DNAMP1/Tweaks/CTweakPlayer.hpp b/DataSpec/DNAMP1/Tweaks/CTweakPlayer.hpp index a68a1c9af..e5983db64 100644 --- a/DataSpec/DNAMP1/Tweaks/CTweakPlayer.hpp +++ b/DataSpec/DNAMP1/Tweaks/CTweakPlayer.hpp @@ -174,148 +174,6 @@ struct CTweakPlayer final : ITweakPlayer { Value x300_variaDamageReduction; Value x304_gravityDamageReduction; Value x308_phazonDamageReduction; - float GetMaxTranslationalAcceleration(int s) const override { return x4_maxTranslationalAcceleration[s]; } - float GetMaxRotationalAcceleration(int s) const override { return x24_maxRotationalAcceleration[s]; } - float GetPlayerTranslationFriction(int s) const override { return x44_translationFriction[s]; } - float GetPlayerRotationFriction(int s) const override { return x64_rotationFriction[s]; } - float GetPlayerRotationMaxSpeed(int s) const override { return x84_rotationMaxSpeed[s]; } - float GetPlayerTranslationMaxSpeed(int s) const override { return xa4_translationMaxSpeed[s]; } - float GetNormalGravAccel() const override { return xc4_normalGravAccel; } - float GetFluidGravAccel() const override { return xc8_fluidGravAccel; } - float GetVerticalJumpAccel() const override { return xcc_verticalJumpAccel; } - float GetHorizontalJumpAccel() const override { return xd0_horizontalJumpAccel; } - float GetVerticalDoubleJumpAccel() const override { return xd4_verticalDoubleJumpAccel; } - float GetHorizontalDoubleJumpAccel() const override { return xd8_horizontalDoubleJumpAccel; } - float GetWaterJumpFactor() const override { return xdc_waterJumpFactor; } - float GetWaterBallJumpFactor() const override { return xe0_waterBallJumpFactor; } - float GetLavaJumpFactor() const override { return xe4_lavaJumpFactor; } - float GetLavaBallJumpFactor() const override { return xe8_lavaBallJumpFactor; } - float GetPhazonJumpFactor() const override { return xec_phazonJumpFactor; } - float GetPhazonBallJumpFactor() const override { return xf0_phazonBallJumpFactor; } - float GetAllowedJumpTime() const override { return xf4_allowedJumpTime; } - float GetAllowedDoubleJumpTime() const override { return xf8_allowedDoubleJumpTime; } - float GetMinDoubleJumpWindow() const override { return xfc_minDoubleJumpWindow; } - float GetMaxDoubleJumpWindow() const override { return x100_maxDoubleJumpWindow; } - float GetMinJumpTime() const override { return x108_minJumpTime; } - float GetMinDoubleJumpTime() const override { return x10c_minDoubleJumpTime; } - float GetAllowedLedgeTime() const override { return x110_allowedLedgeTime; } - float GetDoubleJumpImpulse() const override { return x114_doubleJumpImpulse; } - float GetBackwardsForceMultiplier() const override { return x118_backwardsForceMultiplier; } - float GetBombJumpRadius() const override { return x11c_bombJumpRadius; } - float GetBombJumpHeight() const override { return x120_bombJumpHeight; } - float GetEyeOffset() const override { return x124_eyeOffset; } - float GetTurnSpeedMultiplier() const override { return x128_turnSpeedMultiplier; } - float GetFreeLookTurnSpeedMultiplier() const override { return x12c_freeLookTurnSpeedMultiplier; } - float GetFreeLookSpeed() const override { return x138_freeLookSpeed; } - float GetFreeLookSnapSpeed() const override { return x13c_freeLookSnapSpeed; } - float GetFreeLookCenteredThresholdAngle() const override { return x144_freeLookCenteredThresholdAngle; } - float GetFreeLookCenteredTime() const override { return x148_freeLookCenteredTime; } - float GetOrbitModeTimer() const override { return x180_orbitModeTimer; } - float GetOrbitUpperAngle() const override { return x188_orbitUpperAngle; } - float GetOrbitLowerAngle() const override { return x18c_orbitLowerAngle; } - float GetOrbitHorizAngle() const override { return x190_orbitHorizAngle; } - float GetOrbitMaxTargetDistance() const override { return x19c_orbitMaxTargetDistance; } - float GetOrbitMaxLockDistance() const override { return x1a0_orbitMaxLockDistance; } - float GetOrbitDistanceThreshold() const override { return x1a4_orbitDistanceThreshold; } - uint32_t GetOrbitScreenBoxHalfExtentX(int zone) const override { return x1a8_orbitScreenBoxHalfExtentX[zone]; } - uint32_t GetOrbitScreenBoxHalfExtentY(int zone) const override { return x1b0_orbitScreenBoxHalfExtentY[zone]; } - uint32_t GetOrbitScreenBoxCenterX(int zone) const override { return x1b8_orbitScreenBoxCenterX[zone]; } - uint32_t GetOrbitScreenBoxCenterY(int zone) const override { return x1c0_orbitScreenBoxCenterY[zone]; } - uint32_t GetOrbitZoneIdealX(int zone) const override { return x1c8_orbitZoneIdealX[zone]; } - uint32_t GetOrbitZoneIdealY(int zone) const override { return x1d0_orbitZoneIdealY[zone]; } - float GetOrbitNearX() const override { return x1d8_orbitNearX; } - float GetOrbitNearZ() const override { return x1dc_orbitNearZ; } - float GetOrbitFixedOffsetZDiff() const override { return x1e8_orbitFixedOffsetZDiff; } - float GetOrbitZRange() const override { return x1ec_orbitZRange; } - bool GetDashEnabled() const override { return x200_24_dashEnabled; } - bool GetDashOnButtonRelease() const override { return x200_25_dashOnButtonRelease; } - float GetDashButtonHoldCancelTime() const override { return x204_dashButtonHoldCancelTime; } - float GetDashStrafeInputThreshold() const override { return x208_dashStrafeInputThreshold; } - float GetSidewaysDoubleJumpImpulse() const override { return x20c_sidewaysDoubleJumpImpulse; } - float GetSidewaysVerticalDoubleJumpAccel() const override { return x210_sidewaysVerticalDoubleJumpAccel; } - float GetSidewaysHorizontalDoubleJumpAccel() const override { return x214_sidewaysHorizontalDoubleJumpAccel; } - float GetScanningRange() const override { return x218_scanningRange; } - bool GetScanRetention() const override { return x21c_24_scanRetention; } - bool GetScanFreezesGame() const override { return x21c_25_scanFreezesGame; } - bool GetOrbitWhileScanning() const override { return x21c_26_orbitWhileScanning; } - float GetScanMaxTargetDistance() const override { return x220_scanMaxTargetDistance; } - float GetScanMaxLockDistance() const override { return x224_scanMaxLockDistance; } - bool GetMoveDuringFreeLook() const override { return x228_27_moveDuringFreeLook; } - bool GetHoldButtonsForFreeLook() const override { return x228_28_holdButtonsForFreeLook; } - bool GetTwoButtonsForFreeLook() const override { return x228_29_twoButtonsForFreeLook; } - bool GetAimWhenOrbitingPoint() const override { return x229_25_aimWhenOrbitingPoint; } - bool GetStayInFreeLookWhileFiring() const override { return x229_26_stayInFreeLookWhileFiring; } - bool GetOrbitFixedOffset() const override { return x229_29_orbitFixedOffset; } - bool GetGunButtonTogglesHolster() const override { return x229_30_gunButtonTogglesHolster; } - bool GetGunNotFiringHolstersGun() const override { return x229_31_gunNotFiringHolstersGun; } - bool GetFallingDoubleJump() const override { return x22a_24_fallingDoubleJump; } - bool GetImpulseDoubleJump() const override { return x22a_25_impulseDoubleJump; } - bool GetFiringCancelsCameraPitch() const override { return x22a_26_firingCancelsCameraPitch; } - bool GetAssistedAimingIgnoreHorizontal() const override { return x22a_27_assistedAimingIgnoreHorizontal; } - bool GetAssistedAimingIgnoreVertical() const override { return x22a_28_assistedAimingIgnoreVertical; } - float GetAimMaxDistance() const override { return x234_aimMaxDistance; } - float GetAimThresholdDistance() const override { return x24c_aimThresholdDistance; } - float GetAimBoxWidth() const override { return x258_aimBoxWidth; } - float GetAimBoxHeight() const override { return x25c_aimBoxHeight; } - float GetAimTargetTimer() const override { return x260_aimTargetTimer; } - float GetAimAssistHorizontalAngle() const override { return x264_aimAssistHorizontalAngle; } - float GetAimAssistVerticalAngle() const override { return x268_aimAssistVerticalAngle; } - float GetPlayerHeight() const override { return x26c_playerHeight; } - float GetPlayerXYHalfExtent() const override { return x270_playerXYHalfExtent; } - float GetStepUpHeight() const override { return x274_stepUpHeight; } - float GetStepDownHeight() const override { return x278_stepDownHeight; } - float GetPlayerBallHalfExtent() const override { return x27c_playerBallHalfExtent; } - float GetOrbitDistanceMax() const override { return x2a0_orbitDistanceMax; } - float GetGrappleSwingLength() const override { return x2a4_grappleSwingLength; } - float GetGrappleSwingPeriod() const override { return x2a8_grappleSwingPeriod; } - float GetGrapplePullSpeedMin() const override { return x2ac_grapplePullSpeedMin; } - float GetMaxGrappleLockedTurnAlignDistance() const override { return x2b4_maxGrappleLockedTurnAlignDistance; } - float GetGrapplePullSpeedProportion() const override { return x2b8_grapplePullSpeedProportion; } - float GetGrapplePullSpeedMax() const override { return x2bc_grapplePullSpeedMax; } - float GetGrappleLookCenterSpeed() const override { return x2c0_grappleLookCenterSpeed; } - float GetMaxGrappleTurnSpeed() const override { return x2c4_maxGrappleTurnSpeed; } - float GetGrappleJumpForce() const override { return x2c8_grappleJumpForce; } - float GetGrappleReleaseTime() const override { return x2cc_grappleReleaseTime; } - uint32_t GetGrappleJumpMode() const override { return x2d0_grappleJumpMode; } - bool GetOrbitReleaseBreaksGrapple() const override { return x2d4_orbitReleaseBreaksGrapple; } - bool GetInvertGrappleTurn() const override { return x2d5_invertGrappleTurn; } - float GetGrappleBeamSpeed() const override { return x2d8_grappleBeamSpeed; } - float GetGrappleBeamXWaveAmplitude() const override { return x2dc_grappleBeamXWaveAmplitude; } - float GetGrappleBeamZWaveAmplitude() const override { return x2e0_grappleBeamZWaveAmplitude; } - float GetGrappleBeamAnglePhaseDelta() const override { return x2e4_grappleBeamAnglePhaseDelta; } - float GetHorizontalFreeLookAngleVel() const override { return x130_horizontalFreeLookAngleVel; } - float GetVerticalFreeLookAngleVel() const override { return x134_verticalFreeLookAngleVel; } - float GetOrbitCameraSpeed() const override { return x184_orbitCameraSpeed; } - float GetOrbitPreventionTime() const override { return x1fc_orbitPreventionTime; } - bool GetFreeLookTurnsPlayer() const override { return x228_24_freelookTurnsPlayer; } - float GetJumpCameraPitchDownStart() const override { return x288_jumpCameraPitchDownStart; } - float GetJumpCameraPitchDownFull() const override { return x28c_jumpCameraPitchDownFull; } - float GetJumpCameraPitchDownAngle() const override { return x290_jumpCameraPitchDownAngle; } - float GetFallCameraPitchDownStart() const override { return x294_fallCameraPitchDownStart; } - float GetFallCameraPitchDownFull() const override { return x298_fallCameraPitchDownFull; } - float GetFallCameraPitchDownAngle() const override { return x29c_fallCameraPitchDownAngle; } - float GetFirstPersonCameraSpeed() const override { return x280_firstPersonCameraSpeed; } - float GetGrappleCameraSpeed() const override { return x2b0_grappleCameraSpeed; } - float GetFreeLookDampenFactor() const override { return x14c_freeLookDampenFactor; } - float GetLeftLogicalThreshold() const override { return x150_leftDiv; } - float GetRightLogicalThreshold() const override { return x154_rightDiv; } - float GetOrbitMinDistance(int type) const override { return x158_orbitMinDistance[type]; } - float GetOrbitNormalDistance(int type) const override { return x164_orbitNormalDistance[type]; } - float GetOrbitMaxDistance(int type) const override { return x170_orbitMaxDistance[type]; } - float GetFrozenTimeout() const override { return x2f8_frozenTimeout; } - uint32_t GetIceBreakJumpCount() const override { return x2fc_iceBreakJumpCount; } - float GetVariaDamageReduction() const override { return x300_variaDamageReduction; } - float GetGravityDamageReduction() const override { return x304_gravityDamageReduction; } - float GetPhazonDamageReduction() const override { return x308_phazonDamageReduction; } - CTweakPlayer() = default; - CTweakPlayer(athena::io::IStreamReader& reader) { - read(reader); - FixupValues(); - } - - void FixupValues(); - void initCVars(hecl::CVarManager* mgr) override; - void _tweakListener(hecl::CVar* cv); }; } // namespace DataSpec::DNAMP1 diff --git a/DataSpec/DNAMP1/Tweaks/CTweakPlayerControl.hpp b/DataSpec/DNAMP1/Tweaks/CTweakPlayerControl.hpp index 8488bcaaf..44968f908 100644 --- a/DataSpec/DNAMP1/Tweaks/CTweakPlayerControl.hpp +++ b/DataSpec/DNAMP1/Tweaks/CTweakPlayerControl.hpp @@ -7,9 +7,6 @@ namespace DataSpec::DNAMP1 { struct CTweakPlayerControl final : ITweakPlayerControl { AT_DECL_DNA_YAML Vector m_mappings; - atUint32 GetMapping(atUint32 command) const override { return m_mappings[command]; } - CTweakPlayerControl() = default; - CTweakPlayerControl(athena::io::IStreamReader& reader) { this->read(reader); } }; } // namespace DataSpec::DNAMP1 diff --git a/DataSpec/DNAMP1/Tweaks/CTweakPlayerGun.hpp b/DataSpec/DNAMP1/Tweaks/CTweakPlayerGun.hpp index e9f821187..937fbde1d 100644 --- a/DataSpec/DNAMP1/Tweaks/CTweakPlayerGun.hpp +++ b/DataSpec/DNAMP1/Tweaks/CTweakPlayerGun.hpp @@ -33,77 +33,5 @@ struct CTweakPlayerGun final : ITweakPlayerGun { SWeaponInfo xa8_beams[5]; SComboShotParam x1f0_combos[5]; // Originally rstl::prereserved_vector Value x280_ricochetData[6]; // Originally rstl::prereserved_vector, extended to 6 to capture - // PhazonBeam's value - CTweakPlayerGun() = default; - CTweakPlayerGun(athena::io::IStreamReader& r) { - this->read(r); - x44_fixedVerticalAim = zeus::degToRad(x44_fixedVerticalAim); - } - - float GetUpLookAngle() const override { return x4_upLookAngle; } - float GetDownLookAngle() const override { return x8_downLookAngle; } - float GetVerticalSpread() const override { return xc_verticalSpread; } - float GetHorizontalSpread() const override { return x10_horizontalSpread; } - float GetHighVerticalSpread() const override { return x14_highVerticalSpread; } - float GetHighHorizontalSpread() const override { return x18_highHorizontalSpread; } - float GetLowVerticalSpread() const override { return x1c_lowVerticalSpread; } - float GetLowHorizontalSpread() const override { return x20_lowHorizontalSpread; } - float GetAimVerticalSpeed() const override { return x24_aimVerticalSpeed; } - float GetAimHorizontalSpeed() const override { return x28_aimHorizontalSpeed; } - float GetBombFuseTime() const override { return x2c_bombFuseTime; } - float GetBombDropDelayTime() const override { return x30_bombDropDelayTime; } - float GetHoloHoldTime() const override { return x34_holoHoldTime; } - float GetGunTransformTime() const override { return x38_gunTransformTime; } - float GetGunHolsterTime() const override { return x3c_gunHolsterTime; } - float GetGunNotFiringTime() const override { return x40_gunNotFiringTime; } - float GetFixedVerticalAim() const override { return x44_fixedVerticalAim; } - float GetGunExtendDistance() const override { return x48_gunExtendDistance; } - const zeus::CVector3f& GetGunPosition() const override { return x4c_gunPosition; } - const zeus::CVector3f& GetGrapplingArmPosition() const override { return x64_grapplingArmPosition; } - float GetRichochetDamage(atUint32 type) const override { - switch (type) { - case 0: // Power - return x280_ricochetData[0]; - case 1: // Ice - return x280_ricochetData[1]; - case 2: // Wave - return x280_ricochetData[2]; - case 3: // Plasma - return x280_ricochetData[3]; - case 6: // Missile - return x280_ricochetData[4]; - case 8: // Phazon - /* Note: In order to return the same value as retail we have to do a bit of a hack - * Retro accidentally forgot to load in PhazonBeam's richochet value, as a result, it loads the - * pointer to CTweakParticle's vtable. - */ -#if MP_v1088 - - return float(0x803D9CC4); -#else - return x280_ricochetData[5]; -#endif - default: - return 1.f; - } - } - - const SWeaponInfo& GetBeamInfo(atInt32 beam) const override { - if (beam < 0 || beam >= 5) { - return xa8_beams[0]; - } - return xa8_beams[beam]; - } - - const SComboShotParam& GetComboShotInfo(atInt32 beam) const override { - if (beam < 0 || beam >= 5) { - return x1f0_combos[0]; - } - return x1f0_combos[beam]; - } - - const SShotParam& GetBombInfo() const override { return x70_bomb; } - const SShotParam& GetPowerBombInfo() const override { return x8c_powerBomb; } - const SShotParam& GetMissileInfo() const { return x1d4_missile; } }; } // namespace DataSpec::DNAMP1 diff --git a/DataSpec/DNAMP1/Tweaks/CTweakTargeting.hpp b/DataSpec/DNAMP1/Tweaks/CTweakTargeting.hpp index ed0fc2963..fd3bafce8 100644 --- a/DataSpec/DNAMP1/Tweaks/CTweakTargeting.hpp +++ b/DataSpec/DNAMP1/Tweaks/CTweakTargeting.hpp @@ -56,12 +56,12 @@ struct AT_SPECIALIZE_PARMS(true, false) CTweakTargeting final : public ITweakTar Value xf0_outerBeamSquaresScale; DNAColor xf4_outerBeamSquareColor; Value xf8_outerBeamSquareAngleCount; - struct UnkVec : BigDNA { + struct SSquareAngles : BigDNA { AT_DECL_DNA Value count; - Vector floats; + Vector angles; }; - Vector xf8_outerBeamSquareAngles; + Vector xf8_outerBeamSquareAngles; Value x108_chargeGaugeAngleCount; Vector x108_chargeGaugeAngles; Value x118_chargeGaugeScale; @@ -243,7 +243,7 @@ struct AT_SPECIALIZE_PARMS(true, false) CTweakTargeting final : public ITweakTar const zeus::CColor& GetInnerBeamColorIce() const override { return xdc_innerBeamColorIce; } const zeus::CColor& GetInnerBeamColorWave() const override { return xe0_innerBeamColorWave; } const zeus::CColor& GetInnerBeamColorPlasma() const override { return xe4_innerBeamColorPlasma; } - const float* GetOuterBeamSquareAngles(int i) const override { return xf8_outerBeamSquareAngles[i].floats.data(); } + const float* GetOuterBeamSquareAngles(int i) const override { return xf8_outerBeamSquareAngles[i].angles.data(); } float GetChargeGaugeAngle(int i) const override { return x108_chargeGaugeAngles[i]; } float GetChargeGaugeScale() const override { return x118_chargeGaugeScale; } const zeus::CColor& GetChargeGaugeNonFullColor() const override { return x11c_chargeGaugeNonFullColor; } diff --git a/Runtime/Audio/CAudioGroupSet.hpp b/Runtime/Audio/CAudioGroupSet.hpp index 4bbaf333e..444b547c7 100644 --- a/Runtime/Audio/CAudioGroupSet.hpp +++ b/Runtime/Audio/CAudioGroupSet.hpp @@ -5,7 +5,7 @@ #include "Runtime/CFactoryMgr.hpp" #include "Runtime/CToken.hpp" -#include "Runtime/IOStreams.hpp" +#include "Runtime/Streams/IOStreams.hpp" #include "Runtime/IObj.hpp" #include "Runtime/RetroTypes.hpp" diff --git a/Runtime/Audio/CMidiManager.cpp b/Runtime/Audio/CMidiManager.cpp index e996c957c..4ec45837a 100644 --- a/Runtime/Audio/CMidiManager.cpp +++ b/Runtime/Audio/CMidiManager.cpp @@ -1,6 +1,6 @@ #include "Runtime/Audio/CMidiManager.hpp" -#include "Runtime/CInputStream.hpp" +#include "Runtime/Streams/CInputStream.hpp" namespace metaforce { @@ -40,7 +40,7 @@ CMidiManager::CMidiData::CMidiData(CInputStream& in) { in.ReadLong(); x0_setupId = in.ReadLong(); x2_groupId = in.ReadLong(); - x4_agscId = in.ReadLong(); + x4_agscId = in.Get(); u32 length = in.ReadLong(); x8_arrData.reset(new u8[length]); in.ReadBytes(reinterpret_cast(x8_arrData.get()), length); diff --git a/Runtime/Audio/CSfxManager.cpp b/Runtime/Audio/CSfxManager.cpp index c6d94329d..f3d3f5d7c 100644 --- a/Runtime/Audio/CSfxManager.cpp +++ b/Runtime/Audio/CSfxManager.cpp @@ -1,5 +1,5 @@ #include "Runtime/Audio/CSfxManager.hpp" -#include "Runtime/CInputStream.hpp" +#include "Runtime/Streams/CInputStream.hpp" #include "Runtime/CSimplePool.hpp" diff --git a/Runtime/AutoMapper/CAutoMapper.cpp b/Runtime/AutoMapper/CAutoMapper.cpp index f863f1806..33fb25fbe 100644 --- a/Runtime/AutoMapper/CAutoMapper.cpp +++ b/Runtime/AutoMapper/CAutoMapper.cpp @@ -1604,7 +1604,7 @@ CAssetId CAutoMapper::GetAreaHintDescriptionString(CAssetId mreaId) { } } } - return -1; + return {}; } void CAutoMapper::OnNewInGameGuiState(EInGameGuiState state, CStateManager& mgr) { diff --git a/Runtime/AutoMapper/CAutoMapper.hpp b/Runtime/AutoMapper/CAutoMapper.hpp index c564518a2..723552541 100644 --- a/Runtime/AutoMapper/CAutoMapper.hpp +++ b/Runtime/AutoMapper/CAutoMapper.hpp @@ -108,11 +108,11 @@ public: SAutoMapperHintStep(PanToArea, TAreaId areaId) : x0_type(Type::PanToArea), x4_areaId(areaId) {} SAutoMapperHintStep(PanToWorld, CAssetId worldId) : x0_type(Type::PanToWorld), x4_worldId(worldId) {} - SAutoMapperHintStep(SwitchToUniverse) : x0_type(Type::SwitchToUniverse), x4_worldId(0) {} + SAutoMapperHintStep(SwitchToUniverse) : x0_type(Type::SwitchToUniverse), x4_worldId(CAssetId()) {} SAutoMapperHintStep(SwitchToWorld, CAssetId worldId) : x0_type(Type::SwitchToWorld), x4_worldId(worldId) {} SAutoMapperHintStep(ShowBeacon, float val) : x0_type(Type::ShowBeacon), x4_float(val) {} - SAutoMapperHintStep(ZoomIn) : x0_type(Type::ZoomIn), x4_worldId(0) {} - SAutoMapperHintStep(ZoomOut) : x0_type(Type::ZoomOut), x4_worldId(0) {} + SAutoMapperHintStep(ZoomIn) : x0_type(Type::ZoomIn), x4_worldId(CAssetId()) {} + SAutoMapperHintStep(ZoomOut) : x0_type(Type::ZoomOut), x4_worldId(CAssetId()) {} }; struct SAutoMapperHintLocation { diff --git a/Runtime/AutoMapper/CMapArea.cpp b/Runtime/AutoMapper/CMapArea.cpp index ea017cd14..0b99daf0e 100644 --- a/Runtime/AutoMapper/CMapArea.cpp +++ b/Runtime/AutoMapper/CMapArea.cpp @@ -97,7 +97,7 @@ void CMapArea::PostConstruct() { float z; std::memcpy(&z, tmp + 8, sizeof(float)); - m_verts.emplace_back(hecl::SBig(x), hecl::SBig(y), hecl::SBig(z)); + m_verts.emplace_back(CBasics::SwapBytes(x), CBasics::SwapBytes(y), CBasics::SwapBytes(z)); tmp += 12; } diff --git a/Runtime/AutoMapper/CMapUniverse.cpp b/Runtime/AutoMapper/CMapUniverse.cpp index f1673f1a4..329738b06 100644 --- a/Runtime/AutoMapper/CMapUniverse.cpp +++ b/Runtime/AutoMapper/CMapUniverse.cpp @@ -15,7 +15,7 @@ CMapUniverse::CMapUniverse(CInputStream& in, u32 version) : x0_hexagonId(in.Get< } CMapUniverse::CMapWorldData::CMapWorldData(CInputStream& in, u32 version) -: x0_label(in.Get()), x10_worldAssetId(in.ReadLong()) { +: x0_label(in.Get()), x10_worldAssetId(in) { x14_transform = in.Get(); const u32 worldCount = in.ReadLong(); x44_hexagonXfs.reserve(worldCount); diff --git a/Runtime/AutoMapper/CMapWorld.cpp b/Runtime/AutoMapper/CMapWorld.cpp index 9ccede18d..612e15fd0 100644 --- a/Runtime/AutoMapper/CMapWorld.cpp +++ b/Runtime/AutoMapper/CMapWorld.cpp @@ -280,7 +280,7 @@ CMapWorld::CMapWorld(CInputStream& in) { x0_areas.reserve(areaCount); x20_traversed.resize(areaCount); for (u32 i = 0; i < areaCount; ++i) { - CAssetId mapaId = in.ReadLong(); + CAssetId mapaId = in.Get(); x0_areas.emplace_back(mapaId, EMapAreaList::Unloaded, x0_areas.empty() ? nullptr : &x0_areas.back()); } x10_listHeads[2] = &x0_areas.back(); diff --git a/Runtime/AutoMapper/CMapWorldInfo.hpp b/Runtime/AutoMapper/CMapWorldInfo.hpp index 642dfef99..7e6fdf614 100644 --- a/Runtime/AutoMapper/CMapWorldInfo.hpp +++ b/Runtime/AutoMapper/CMapWorldInfo.hpp @@ -4,7 +4,7 @@ #include #include "RetroTypes.hpp" -#include "IOStreams.hpp" +#include "Runtime/Streams/IOStreams.hpp" namespace metaforce { class CWorldSaveGameInfo; diff --git a/Runtime/CFactoryMgr.hpp b/Runtime/CFactoryMgr.hpp index 0f5b3e8b3..689dc719a 100644 --- a/Runtime/CFactoryMgr.hpp +++ b/Runtime/CFactoryMgr.hpp @@ -3,7 +3,7 @@ #include #include "Runtime/IFactory.hpp" -#include "Runtime/IOStreams.hpp" +#include "Runtime/Streams/IOStreams.hpp" #include "Runtime/RetroTypes.hpp" namespace metaforce { diff --git a/Runtime/CGameHintInfo.cpp b/Runtime/CGameHintInfo.cpp index 02172e1fa..822c183de 100644 --- a/Runtime/CGameHintInfo.cpp +++ b/Runtime/CGameHintInfo.cpp @@ -17,7 +17,7 @@ CGameHintInfo::CGameHint::CGameHint(CInputStream& in, s32 version) : x0_name(in.Get()) , x10_immediateTime(in.ReadFloat()) , x14_normalTime(in.ReadFloat()) -, x18_stringId(in.ReadLong()) +, x18_stringId(in.Get()) , x1c_textTime(3.f * float(version <= 0 ? 1 : in.ReadLong())) { u32 locationCount = in.ReadLong(); x20_locations.reserve(locationCount); @@ -26,10 +26,10 @@ CGameHintInfo::CGameHint::CGameHint(CInputStream& in, s32 version) } CGameHintInfo::SHintLocation::SHintLocation(CInputStream& in, s32) -: x0_mlvlId(in.ReadLong()) -, x4_mreaId(in.ReadLong()) +: x0_mlvlId(in.Get()) +, x4_mreaId(in.Get()) , x8_areaId(in.ReadLong()) -, xc_stringId(in.ReadLong()) {} +, xc_stringId(in.Get()) {} int CGameHintInfo::FindHintIndex(std::string_view str) { const std::vector& gameHints = g_MemoryCardSys->GetHints(); diff --git a/Runtime/CGameOptions.cpp b/Runtime/CGameOptions.cpp index e7a366479..de25fdf50 100644 --- a/Runtime/CGameOptions.cpp +++ b/Runtime/CGameOptions.cpp @@ -384,19 +384,19 @@ void CGameOptions::SetControls(int controls) { } constexpr std::array, 5> CStickToDPadRemap{{ - {0x2A13C23E, 0xF13452F8}, - {0xA91A7703, 0xC042EC91}, - {0x12A12131, 0x5F556002}, - {0xA9798329, 0xB306E26F}, - {0xCD7B1ACA, 0x8ADA8184}, + {0x2A13C23Eu, 0xF13452F8u}, + {0xA91A7703u, 0xC042EC91u}, + {0x12A12131u, 0x5F556002u}, + {0xA9798329u, 0xB306E26Fu}, + {0xCD7B1ACAu, 0x8ADA8184u}, }}; constexpr std::array, 5> CStickOutlineToDPadRemap{{ - {0x1A29C0E6, 0xF13452F8}, - {0x5D9F9796, 0xC042EC91}, - {0x951546A8, 0x5F556002}, - {0x7946C4C5, 0xB306E26F}, - {0x409AA72E, 0x8ADA8184}, + {0x1A29C0E6u, 0xF13452F8u}, + {0x5D9F9796u, 0xC042EC91u}, + {0x951546A8u, 0x5F556002u}, + {0x7946C4C5u, 0xB306E26Fu}, + {0x409AA72Eu, 0x8ADA8184u}, }}; void CGameOptions::ResetControllerAssets(int controls) { diff --git a/Runtime/CGameState.cpp b/Runtime/CGameState.cpp index 012b679a3..5d6f163aa 100644 --- a/Runtime/CGameState.cpp +++ b/Runtime/CGameState.cpp @@ -4,7 +4,7 @@ #include "Runtime/CWorldSaveGameInfo.hpp" #include "Runtime/CSimplePool.hpp" #include "Runtime/GameGlobalObjects.hpp" -#include "Runtime/IOStreams.hpp" +#include "Runtime/Streams/IOStreams.hpp" #include "Runtime/MP1/MP1.hpp" #include @@ -122,7 +122,7 @@ CGameState::GameFileStateInfo CGameState::LoadGameFileState(const u8* data) { ret.xc_health = playerState.GetHealthInfo().GetHP(); u32 itemPercent; - if (origMLVL == 0x158EFE17) + if (origMLVL == 0x158EFE17u) itemPercent = 0; else itemPercent = playerState.CalculateItemCollectionRate() * 100 / playerState.GetPickupTotal(); diff --git a/Runtime/CMakeLists.txt b/Runtime/CMakeLists.txt index 1a85d9f78..986f9d63a 100644 --- a/Runtime/CMakeLists.txt +++ b/Runtime/CMakeLists.txt @@ -70,14 +70,29 @@ set(RUNTIME_SOURCES_B ${PARTICLE_SOURCES} ${WORLD_SOURCES} ${WEAPON_SOURCES} - ITweak.hpp + Tweaks/ITweak.hpp + Tweaks/ITweakAutoMapper.hpp + Tweaks/ITweakBall.hpp + Tweaks/ITweakGame.hpp + Tweaks/ITweakGui.hpp + Tweaks/ITweakGuiColors.hpp + Tweaks/ITweakGunRes.hpp + Tweaks/ITweakParticle.hpp + Tweaks/ITweakPlayer.hpp + Tweaks/ITweakPlayerControl.hpp + Tweaks/ITweakPlayerGun.hpp Tweaks/ITweakPlayerGun.cpp + Tweaks/ITweakPlayerRes.hpp + Tweaks/ITweakSlideShow.hpp + Tweaks/ITweakTargeting.hpp IMain.hpp CStopwatch.hpp - CMemoryStreamOut.hpp CMemoryStreamOut.cpp - CInputStream.hpp CInputStream.cpp - COutputStream.hpp COutputStream.cpp - CMemoryInStream.hpp - CZipInputStream.hpp CZipInputStream.cpp + Streams/IOStreams.hpp Streams/IOStreams.cpp + Streams/CMemoryStreamOut.hpp Streams/CMemoryStreamOut.cpp + Streams/CInputStream.hpp Streams/CInputStream.cpp + Streams/COutputStream.hpp Streams/COutputStream.cpp + Streams/CMemoryInStream.hpp + Streams/CZipInputStream.hpp Streams/CZipInputStream.cpp + Streams/ContainerReaders.hpp CGameAllocator.hpp CGameAllocator.cpp CMemoryCardSys.hpp CMemoryCardSys.cpp CScannableObjectInfo.hpp CScannableObjectInfo.cpp @@ -115,7 +130,6 @@ set(RUNTIME_SOURCES_B CFactoryMgr.hpp CFactoryMgr.cpp CPakFile.hpp CPakFile.cpp CStringExtras.hpp CStringExtras.cpp - IOStreams.hpp IOStreams.cpp CMainFlowBase.hpp CMainFlowBase.cpp CMFGameBase.hpp CInGameTweakManagerBase.hpp diff --git a/Runtime/CMayaSpline.cpp b/Runtime/CMayaSpline.cpp index ce42e11aa..583877a01 100644 --- a/Runtime/CMayaSpline.cpp +++ b/Runtime/CMayaSpline.cpp @@ -1,6 +1,6 @@ #include "Runtime/CMayaSpline.hpp" -#include "Runtime/CInputStream.hpp" +#include "Runtime/Streams/CInputStream.hpp" namespace metaforce { void ValidateTangent(zeus::CVector2f& tangent) { diff --git a/Runtime/CMemoryCardSys.cpp b/Runtime/CMemoryCardSys.cpp index 31a49efff..9a7a28831 100644 --- a/Runtime/CMemoryCardSys.cpp +++ b/Runtime/CMemoryCardSys.cpp @@ -225,7 +225,7 @@ void CMemoryCardSys::CCardFileInfo::BuildCardBuffer() { WriteIconData(w); memmove(x104_cardBuffer.data() + bannerSz, xf4_saveBuffer.data(), xf4_saveBuffer.size()); reinterpret_cast(*x104_cardBuffer.data()) = - hecl::SBig(CCRC32::Calculate(x104_cardBuffer.data() + 4, x104_cardBuffer.size() - 4)); + CBasics::SwapBytes(CCRC32::Calculate(x104_cardBuffer.data() + 4, x104_cardBuffer.size() - 4)); xf4_saveBuffer.clear(); } diff --git a/Runtime/CMemoryCardSys.hpp b/Runtime/CMemoryCardSys.hpp index eec4cec22..c6f9b48d0 100644 --- a/Runtime/CMemoryCardSys.hpp +++ b/Runtime/CMemoryCardSys.hpp @@ -6,7 +6,7 @@ #include #include "Runtime/CGameHintInfo.hpp" -#include "Runtime/CMemoryStreamOut.hpp" +#include "Runtime/Streams/CMemoryStreamOut.hpp" #include "Runtime/CToken.hpp" #include "Runtime/CWorldSaveGameInfo.hpp" #include "Runtime/GuiSys/CStringTable.hpp" diff --git a/Runtime/CPakFile.cpp b/Runtime/CPakFile.cpp index 068d804df..ba921a4b6 100644 --- a/Runtime/CPakFile.cpp +++ b/Runtime/CPakFile.cpp @@ -36,7 +36,7 @@ void CPakFile::LoadResourceTable(CInputStream& r) { u32 flags = r.ReadLong(); FourCC fcc; r.ReadBytes(reinterpret_cast(&fcc), 4); - CAssetId id = r.ReadLong(); + CAssetId id = r.Get(); u32 size = r.ReadLong(); u32 offset = r.ReadLong(); if (fcc == FOURCC('MLVL')) diff --git a/Runtime/CPlayerState.cpp b/Runtime/CPlayerState.cpp index 667e470e6..45313cc83 100644 --- a/Runtime/CPlayerState.cpp +++ b/Runtime/CPlayerState.cpp @@ -7,7 +7,7 @@ #include "Runtime/CMemoryCardSys.hpp" #include "Runtime/CStateManager.hpp" #include "Runtime/GameGlobalObjects.hpp" -#include "Runtime/IOStreams.hpp" +#include "Runtime/Streams/IOStreams.hpp" #include "Runtime/Camera/CCameraManager.hpp" #include "Runtime/Camera/CFirstPersonCamera.hpp" #include "TCastTo.hpp" // Generated file, do not modify include path diff --git a/Runtime/CPlayerState.hpp b/Runtime/CPlayerState.hpp index db9ce26b1..adc268e0d 100644 --- a/Runtime/CPlayerState.hpp +++ b/Runtime/CPlayerState.hpp @@ -4,7 +4,7 @@ #include #include "Runtime/CStaticInterference.hpp" -#include "Runtime/IOStreams.hpp" +#include "Runtime/Streams/IOStreams.hpp" #include "Runtime/RetroTypes.hpp" #include "Runtime/rstl.hpp" #include "Runtime/World/CHealthInfo.hpp" diff --git a/Runtime/CResFactory.cpp b/Runtime/CResFactory.cpp index e0d446f36..459988fde 100644 --- a/Runtime/CResFactory.cpp +++ b/Runtime/CResFactory.cpp @@ -65,7 +65,7 @@ void CResFactory::BuildAsync(const SObjectTag& tag, const CVParamTransfer& xfer, if (search == m_loadMap.end()) { SLoadingData data(tag, target, xfer, x4_loader.GetResourceCompression(tag), selfRef); data.x14_resSize = x4_loader.ResourceSize(tag); - if (data.x14_resSize) { + if (data.x14_resSize != 0) { data.x10_loadBuffer = std::unique_ptr(new u8[data.x14_resSize]); data.x8_dvdReq = x4_loader.LoadResourceAsync(tag, data.x10_loadBuffer.get()); AddToLoadList(std::move(data)); @@ -107,9 +107,9 @@ void CResFactory::CancelBuild(const SObjectTag& tag) { void CResFactory::LoadPersistentResources(CSimplePool& sp) { const auto& paks = x4_loader.GetPaks(); - for (auto it = paks.begin(); it != paks.end(); ++it) { - if (!(*it)->IsWorldPak()) { - for (const CAssetId& id : (*it)->GetDepList()) { + for (const auto & pak : paks) { + if (!pak->IsWorldPak()) { + for (const CAssetId& id : pak->GetDepList()) { SObjectTag tag(GetResourceTypeById(id), id); m_nonWorldTokens.push_back(sp.GetObj(tag)); m_nonWorldTokens.back().Lock(); diff --git a/Runtime/CResLoader.hpp b/Runtime/CResLoader.hpp index 17fdc0e0d..b9cc41d82 100644 --- a/Runtime/CResLoader.hpp +++ b/Runtime/CResLoader.hpp @@ -7,7 +7,7 @@ #include #include "Runtime/CPakFile.hpp" -#include "Runtime/IOStreams.hpp" +#include "Runtime/Streams/IOStreams.hpp" #include "Runtime/RetroTypes.hpp" namespace metaforce { diff --git a/Runtime/CScannableObjectInfo.cpp b/Runtime/CScannableObjectInfo.cpp index 838fe5a48..9cdbb1928 100644 --- a/Runtime/CScannableObjectInfo.cpp +++ b/Runtime/CScannableObjectInfo.cpp @@ -35,7 +35,7 @@ CScannableObjectInfo::CScannableObjectInfo(CInputStream& in, CAssetId resId) : x void CScannableObjectInfo::Load(CInputStream& in, u32 version) { in.ReadLong(); in.ReadLong(); - x4_stringId = in.ReadLong(); + x4_stringId = in.Get(); if (version < 4) { x8_totalDownloadTime = in.ReadFloat(); } else { @@ -53,7 +53,7 @@ void CScannableObjectInfo::Load(CInputStream& in, u32 version) { } CScannableObjectInfo::SBucket::SBucket(CInputStream& in, u32 version) { - x0_texture = in.ReadLong(); + x0_texture = in.Get(); x4_appearanceRange = in.ReadFloat(); x8_imagePos = in.ReadLong(); if (version > 1) { diff --git a/Runtime/CScriptMailbox.hpp b/Runtime/CScriptMailbox.hpp index db02b3078..658a1b100 100644 --- a/Runtime/CScriptMailbox.hpp +++ b/Runtime/CScriptMailbox.hpp @@ -2,7 +2,7 @@ #include -#include "Runtime/IOStreams.hpp" +#include "Runtime/Streams/IOStreams.hpp" #include "Runtime/RetroTypes.hpp" #include "Runtime/World/ScriptObjectSupport.hpp" diff --git a/Runtime/CStringExtras.cpp b/Runtime/CStringExtras.cpp index 6d50ab1b0..ee2ee01e4 100644 --- a/Runtime/CStringExtras.cpp +++ b/Runtime/CStringExtras.cpp @@ -1,5 +1,5 @@ #include "Runtime/CStringExtras.hpp" -#include "Runtime/CInputStream.hpp" +#include "Runtime/Streams/CInputStream.hpp" namespace metaforce { std::string CStringExtras::ReadString(CInputStream& in) { diff --git a/Runtime/CWorldSaveGameInfo.cpp b/Runtime/CWorldSaveGameInfo.cpp index aec5b9cf9..43200231c 100644 --- a/Runtime/CWorldSaveGameInfo.cpp +++ b/Runtime/CWorldSaveGameInfo.cpp @@ -46,7 +46,7 @@ CWorldSaveGameInfo::CWorldSaveGameInfo(CInputStream& in) { x44_scans.reserve(scanCount); for (u32 i = 0; i < scanCount; ++i) { SScanState& st = x44_scans.emplace_back(); - st.x0_id = in.ReadLong(); + st.x0_id = in.Get(); st.x4_category = EScanCategory(in.ReadLong()); } } diff --git a/Runtime/Camera/CCameraFilter.cpp b/Runtime/Camera/CCameraFilter.cpp index f6028b113..e77d87b51 100644 --- a/Runtime/Camera/CCameraFilter.cpp +++ b/Runtime/Camera/CCameraFilter.cpp @@ -100,7 +100,7 @@ void CCameraFilterPass::SetFilter(EFilterType type, EFilterShape shape, float template void CCameraFilterPass::DisableFilter(float time) { - SetFilter(EFilterType::Passthru, x8_shape, time, zeus::skWhite, -1); + SetFilter(EFilterType::Passthru, x8_shape, time, zeus::skWhite, {}); } template diff --git a/Runtime/Camera/CFirstPersonCamera.cpp b/Runtime/Camera/CFirstPersonCamera.cpp index 70eec0884..85b6464f5 100644 --- a/Runtime/Camera/CFirstPersonCamera.cpp +++ b/Runtime/Camera/CFirstPersonCamera.cpp @@ -16,7 +16,7 @@ CFirstPersonCamera::CFirstPersonCamera(TUniqueId uid, const zeus::CTransform& xf nearz, farz, aspect, watchedObj, false, 0) , x188_orbitCameraSpeed(orbitCameraSpeed) , x190_gunFollowXf(xf) { - DataSpec::DNAMP1::tw_FieldOfView->addListener([this](hecl::CVar* cv) { _fovListener(cv); }); + MP1::tw_FieldOfView->addListener([this](hecl::CVar* cv) { _fovListener(cv); }); } void CFirstPersonCamera::Accept(IVisitor& visitor) { visitor.Visit(this); } diff --git a/Runtime/Character/CAdditiveAnimPlayback.hpp b/Runtime/Character/CAdditiveAnimPlayback.hpp index 80baee67d..27fb1ae68 100644 --- a/Runtime/Character/CAdditiveAnimPlayback.hpp +++ b/Runtime/Character/CAdditiveAnimPlayback.hpp @@ -2,7 +2,7 @@ #include #include "Runtime/RetroTypes.hpp" -#include "Runtime/CInputStream.hpp" +#include "Runtime/Streams/CInputStream.hpp" namespace metaforce { class CAdditiveAnimationInfo; diff --git a/Runtime/Character/CAnimData.cpp b/Runtime/Character/CAnimData.cpp index 151744995..c598a3f77 100644 --- a/Runtime/Character/CAnimData.cpp +++ b/Runtime/Character/CAnimData.cpp @@ -483,7 +483,7 @@ float CAnimData::GetAnimationDuration(int animIn) const { std::set prims; anim->GetUniquePrimitives(prims); - SObjectTag tag{FOURCC('ANIM'), 0}; + SObjectTag tag{FOURCC('ANIM'), {}}; float durAccum = 0.f; for (const CPrimitive& prim : prims) { tag.id = prim.GetAnimResId(); @@ -586,7 +586,7 @@ void CAnimData::PrimitiveSetToTokenVector(const std::set& primSet, s bool preLock) { tokensOut.reserve(primSet.size()); - SObjectTag tag{FOURCC('ANIM'), 0}; + SObjectTag tag{FOURCC('ANIM'), {}}; for (const CPrimitive& prim : primSet) { tag.id = prim.GetAnimResId(); tokensOut.push_back(g_SimplePool->GetObj(tag)); @@ -817,7 +817,7 @@ float CAnimData::GetAverageVelocity(int animIn) const { std::set prims; anim->GetUniquePrimitives(prims); - SObjectTag tag{FOURCC('ANIM'), 0}; + SObjectTag tag{FOURCC('ANIM'), {}}; float velAccum = 0.f; float durAccum = 0.f; for (const CPrimitive& prim : prims) { diff --git a/Runtime/Character/CAnimSource.cpp b/Runtime/Character/CAnimSource.cpp index fc9e18281..689bf6380 100644 --- a/Runtime/Character/CAnimSource.cpp +++ b/Runtime/Character/CAnimSource.cpp @@ -108,7 +108,7 @@ CAnimSource::CAnimSource(CInputStream& in, IObjectStore& store) , x20_rotationChannels(ReadIndexTable(in)) , x30_translationChannels(ReadIndexTable(in)) , x40_data(RotationAndOffsetStorage::CRotationAndOffsetVectors(in), x10_frameCount) -, x54_evntId(in.ReadLong()) { +, x54_evntId(in) { if (x54_evntId.IsValid()) { x58_evntData = store.GetObj({SBIG('EVNT'), x54_evntId}); x58_evntData.GetObj(); diff --git a/Runtime/Character/CAnimation.hpp b/Runtime/Character/CAnimation.hpp index 696d7e1cb..1c04f40e6 100644 --- a/Runtime/Character/CAnimation.hpp +++ b/Runtime/Character/CAnimation.hpp @@ -3,7 +3,7 @@ #include #include -#include "Runtime/IOStreams.hpp" +#include "Runtime/Streams/IOStreams.hpp" #include "Runtime/Character/CMetaAnimFactory.hpp" namespace metaforce { diff --git a/Runtime/Character/CAnimationSet.cpp b/Runtime/Character/CAnimationSet.cpp index 68f5be3ee..135658004 100644 --- a/Runtime/Character/CAnimationSet.cpp +++ b/Runtime/Character/CAnimationSet.cpp @@ -38,8 +38,8 @@ CAnimationSet::CAnimationSet(CInputStream& in) : x0_tableCount(in.ReadShort()) { u32 animResourcesCount = in.ReadLong(); x50_animRes.reserve(animResourcesCount); for (u32 i = 0; i < animResourcesCount; ++i) { - CAssetId anim = in.ReadLong(); - CAssetId evnt = in.ReadLong(); + CAssetId anim = in.Get(); + CAssetId evnt = in.Get(); x50_animRes.emplace_back(anim, evnt); } } diff --git a/Runtime/Character/CAnimationSet.hpp b/Runtime/Character/CAnimationSet.hpp index 18cdd5e0a..10688dcc0 100644 --- a/Runtime/Character/CAnimationSet.hpp +++ b/Runtime/Character/CAnimationSet.hpp @@ -4,7 +4,7 @@ #include #include -#include "Runtime/IOStreams.hpp" +#include "Runtime/Streams/IOStreams.hpp" #include "Runtime/RetroTypes.hpp" #include "Runtime/Character/CAdditiveAnimPlayback.hpp" #include "Runtime/Character/CAnimation.hpp" diff --git a/Runtime/Character/CCharAnimTime.hpp b/Runtime/Character/CCharAnimTime.hpp index 0f38dc46e..e1ec7991f 100644 --- a/Runtime/Character/CCharAnimTime.hpp +++ b/Runtime/Character/CCharAnimTime.hpp @@ -1,6 +1,6 @@ #pragma once -#include "Runtime/IOStreams.hpp" +#include "Runtime/Streams/IOStreams.hpp" #undef min #undef max diff --git a/Runtime/Character/CCharLayoutInfo.hpp b/Runtime/Character/CCharLayoutInfo.hpp index 1678f3281..70641e8b8 100644 --- a/Runtime/Character/CCharLayoutInfo.hpp +++ b/Runtime/Character/CCharLayoutInfo.hpp @@ -6,7 +6,7 @@ #include #include "Runtime/CFactoryMgr.hpp" -#include "Runtime/IOStreams.hpp" +#include "Runtime/Streams/IOStreams.hpp" #include "Runtime/Character/CSegId.hpp" #include "Runtime/Character/CSegIdList.hpp" #include "Runtime/Character/TSegIdMap.hpp" diff --git a/Runtime/Character/CCharacterInfo.cpp b/Runtime/Character/CCharacterInfo.cpp index 0ce8908a9..02b965a0e 100644 --- a/Runtime/Character/CCharacterInfo.cpp +++ b/Runtime/Character/CCharacterInfo.cpp @@ -1,5 +1,5 @@ #include "Runtime/Character/CCharacterInfo.hpp" -#include "Runtime/IOStreams.hpp" +#include "Runtime/Streams/IOStreams.hpp" namespace metaforce { @@ -47,9 +47,9 @@ static std::vector>> MakeAnim CCharacterInfo::CCharacterInfo(CInputStream& in) : x0_tableCount(in.ReadShort()) , x4_name(in.Get()) -, x14_cmdl(in.ReadLong()) -, x18_cskr(in.ReadLong()) -, x1c_cinf(in.ReadLong()) +, x14_cmdl(in) +, x18_cskr(in) +, x1c_cinf(in) , x20_animInfo(MakeAnimInfoVector(in)) , x30_pasDatabase(in) , x44_partRes(in, x0_tableCount) @@ -80,8 +80,8 @@ CCharacterInfo::CCharacterInfo(CInputStream& in) } if (x0_tableCount > 3) { - xa8_cmdlOverlay = in.ReadLong(); - xac_cskrOverlay = in.ReadLong(); + xa8_cmdlOverlay = in.Get(); + xac_cskrOverlay = in.Get(); } if (x0_tableCount > 4) { diff --git a/Runtime/Character/CCharacterInfo.hpp b/Runtime/Character/CCharacterInfo.hpp index 81dd92902..0ba54758c 100644 --- a/Runtime/Character/CCharacterInfo.hpp +++ b/Runtime/Character/CCharacterInfo.hpp @@ -4,7 +4,7 @@ #include #include -#include "Runtime/IOStreams.hpp" +#include "Runtime/Streams/IOStreams.hpp" #include "Runtime/RetroTypes.hpp" #include "Runtime/Character/CEffectComponent.hpp" #include "Runtime/Character/CPASDatabase.hpp" @@ -41,8 +41,8 @@ private: std::vector> x88_aabbs; std::vector>> x98_effects; - CAssetId xa8_cmdlOverlay = 0; - CAssetId xac_cskrOverlay = 0; + CAssetId xa8_cmdlOverlay; + CAssetId xac_cskrOverlay; std::vector xb0_animIdxs; diff --git a/Runtime/Character/CCharacterSet.hpp b/Runtime/Character/CCharacterSet.hpp index 2addb1bc7..fc1fc4ec3 100644 --- a/Runtime/Character/CCharacterSet.hpp +++ b/Runtime/Character/CCharacterSet.hpp @@ -2,7 +2,7 @@ #include -#include "Runtime/IOStreams.hpp" +#include "Runtime/Streams/IOStreams.hpp" #include "Runtime/GCNTypes.hpp" #include "Runtime/Character/CCharacterInfo.hpp" diff --git a/Runtime/Character/CEffectComponent.hpp b/Runtime/Character/CEffectComponent.hpp index 856d33ab1..b691680ed 100644 --- a/Runtime/Character/CEffectComponent.hpp +++ b/Runtime/Character/CEffectComponent.hpp @@ -2,7 +2,7 @@ #include -#include "Runtime/IOStreams.hpp" +#include "Runtime/Streams/IOStreams.hpp" #include "Runtime/RetroTypes.hpp" #include "Runtime/Character/CParticleData.hpp" diff --git a/Runtime/Character/CFBStreamedCompression.cpp b/Runtime/Character/CFBStreamedCompression.cpp index 4b18c7afb..f1aaade56 100644 --- a/Runtime/Character/CFBStreamedCompression.cpp +++ b/Runtime/Character/CFBStreamedCompression.cpp @@ -24,7 +24,7 @@ void WriteValue(u8* data, T value) { CFBStreamedCompression::CFBStreamedCompression(CInputStream& in, IObjectStore& objStore, bool pc) : m_pc(pc) { x0_scratchSize = in.ReadLong(); - x4_evnt = in.ReadLong(); + x4_evnt = in.Get(); xc_rotsAndOffs = GetRotationsAndOffsets(x0_scratchSize / 4 + 1, in); diff --git a/Runtime/Character/CHalfTransition.hpp b/Runtime/Character/CHalfTransition.hpp index 6d6150fb3..f653ff1cf 100644 --- a/Runtime/Character/CHalfTransition.hpp +++ b/Runtime/Character/CHalfTransition.hpp @@ -3,7 +3,7 @@ #include #include "Runtime/GCNTypes.hpp" -#include "Runtime/IOStreams.hpp" +#include "Runtime/Streams/IOStreams.hpp" #include "Runtime/Character/IMetaTrans.hpp" namespace metaforce { diff --git a/Runtime/Character/CMetaAnimBlend.hpp b/Runtime/Character/CMetaAnimBlend.hpp index 8b9997465..ef1d7de9b 100644 --- a/Runtime/Character/CMetaAnimBlend.hpp +++ b/Runtime/Character/CMetaAnimBlend.hpp @@ -2,7 +2,7 @@ #include -#include "Runtime/IOStreams.hpp" +#include "Runtime/Streams/IOStreams.hpp" #include "Runtime/Character/IMetaAnim.hpp" namespace metaforce { diff --git a/Runtime/Character/CMetaAnimFactory.hpp b/Runtime/Character/CMetaAnimFactory.hpp index 8f2d423ee..ea43d0683 100644 --- a/Runtime/Character/CMetaAnimFactory.hpp +++ b/Runtime/Character/CMetaAnimFactory.hpp @@ -2,7 +2,7 @@ #include -#include "Runtime/IOStreams.hpp" +#include "Runtime/Streams/IOStreams.hpp" #include "Runtime/Character/IMetaAnim.hpp" namespace metaforce { diff --git a/Runtime/Character/CMetaAnimPhaseBlend.hpp b/Runtime/Character/CMetaAnimPhaseBlend.hpp index df612b3c2..d798f745d 100644 --- a/Runtime/Character/CMetaAnimPhaseBlend.hpp +++ b/Runtime/Character/CMetaAnimPhaseBlend.hpp @@ -2,7 +2,7 @@ #include -#include "Runtime/IOStreams.hpp" +#include "Runtime/Streams/IOStreams.hpp" #include "Runtime/Character/IMetaAnim.hpp" namespace metaforce { diff --git a/Runtime/Character/CMetaAnimPlay.hpp b/Runtime/Character/CMetaAnimPlay.hpp index 0508ea1ee..2134bdfc4 100644 --- a/Runtime/Character/CMetaAnimPlay.hpp +++ b/Runtime/Character/CMetaAnimPlay.hpp @@ -1,6 +1,6 @@ #pragma once -#include "Runtime/IOStreams.hpp" +#include "Runtime/Streams/IOStreams.hpp" #include "Runtime/Character/CPrimitive.hpp" #include "Runtime/Character/IMetaAnim.hpp" diff --git a/Runtime/Character/CMetaAnimRandom.hpp b/Runtime/Character/CMetaAnimRandom.hpp index 272c01bb6..cf59ebfdc 100644 --- a/Runtime/Character/CMetaAnimRandom.hpp +++ b/Runtime/Character/CMetaAnimRandom.hpp @@ -4,7 +4,7 @@ #include #include -#include "Runtime/IOStreams.hpp" +#include "Runtime/Streams/IOStreams.hpp" #include "Runtime/Character/IMetaAnim.hpp" namespace metaforce { diff --git a/Runtime/Character/CMetaAnimSequence.hpp b/Runtime/Character/CMetaAnimSequence.hpp index f937cce8c..a4d176b9c 100644 --- a/Runtime/Character/CMetaAnimSequence.hpp +++ b/Runtime/Character/CMetaAnimSequence.hpp @@ -3,7 +3,7 @@ #include #include -#include "Runtime/IOStreams.hpp" +#include "Runtime/Streams/IOStreams.hpp" #include "Runtime/Character/IMetaAnim.hpp" namespace metaforce { diff --git a/Runtime/Character/CMetaTransFactory.hpp b/Runtime/Character/CMetaTransFactory.hpp index 503c8331f..b3a80159c 100644 --- a/Runtime/Character/CMetaTransFactory.hpp +++ b/Runtime/Character/CMetaTransFactory.hpp @@ -2,7 +2,7 @@ #include -#include "Runtime/IOStreams.hpp" +#include "Runtime/Streams/IOStreams.hpp" #include "Runtime/Character/IMetaTrans.hpp" namespace metaforce { diff --git a/Runtime/Character/CMetaTransMetaAnim.hpp b/Runtime/Character/CMetaTransMetaAnim.hpp index 55400a798..201bef08f 100644 --- a/Runtime/Character/CMetaTransMetaAnim.hpp +++ b/Runtime/Character/CMetaTransMetaAnim.hpp @@ -2,7 +2,7 @@ #include -#include "Runtime/IOStreams.hpp" +#include "Runtime/Streams/IOStreams.hpp" #include "Runtime/Character/IMetaAnim.hpp" #include "Runtime/Character/IMetaTrans.hpp" diff --git a/Runtime/Character/CMetaTransPhaseTrans.hpp b/Runtime/Character/CMetaTransPhaseTrans.hpp index 08fd2ba98..695824d0a 100644 --- a/Runtime/Character/CMetaTransPhaseTrans.hpp +++ b/Runtime/Character/CMetaTransPhaseTrans.hpp @@ -1,6 +1,6 @@ #pragma once -#include "Runtime/IOStreams.hpp" +#include "Runtime/Streams/IOStreams.hpp" #include "Runtime/Character/CCharAnimTime.hpp" #include "Runtime/Character/IMetaTrans.hpp" diff --git a/Runtime/Character/CMetaTransSnap.hpp b/Runtime/Character/CMetaTransSnap.hpp index 091b73f68..5a000bae4 100644 --- a/Runtime/Character/CMetaTransSnap.hpp +++ b/Runtime/Character/CMetaTransSnap.hpp @@ -1,6 +1,6 @@ #pragma once -#include "Runtime/IOStreams.hpp" +#include "Runtime/Streams/IOStreams.hpp" #include "Runtime/Character/IMetaTrans.hpp" namespace metaforce { diff --git a/Runtime/Character/CMetaTransTrans.hpp b/Runtime/Character/CMetaTransTrans.hpp index 5a0b0f2a7..a2e5def1c 100644 --- a/Runtime/Character/CMetaTransTrans.hpp +++ b/Runtime/Character/CMetaTransTrans.hpp @@ -1,6 +1,6 @@ #pragma once -#include "Runtime/IOStreams.hpp" +#include "Runtime/Streams/IOStreams.hpp" #include "Runtime/Character/CCharAnimTime.hpp" #include "Runtime/Character/IMetaTrans.hpp" diff --git a/Runtime/Character/CModelData.hpp b/Runtime/Character/CModelData.hpp index 304dbfe82..54b1060b0 100644 --- a/Runtime/Character/CModelData.hpp +++ b/Runtime/Character/CModelData.hpp @@ -23,7 +23,7 @@ struct CModelFlags; struct SAdvancementDeltas; class CStaticRes { - CAssetId x0_cmdlId = 0; + CAssetId x0_cmdlId; zeus::CVector3f x4_scale; public: diff --git a/Runtime/Character/CPASAnimInfo.hpp b/Runtime/Character/CPASAnimInfo.hpp index bcf3f17fd..ff10e4edd 100644 --- a/Runtime/Character/CPASAnimInfo.hpp +++ b/Runtime/Character/CPASAnimInfo.hpp @@ -1,6 +1,6 @@ #pragma once -#include "Runtime/IOStreams.hpp" +#include "Runtime/Streams/IOStreams.hpp" #include "Runtime/rstl.hpp" #include "Runtime/Character/CPASAnimParm.hpp" diff --git a/Runtime/Character/CPASAnimState.hpp b/Runtime/Character/CPASAnimState.hpp index 98c258acc..c32329f14 100644 --- a/Runtime/Character/CPASAnimState.hpp +++ b/Runtime/Character/CPASAnimState.hpp @@ -3,7 +3,7 @@ #include #include -#include "Runtime/IOStreams.hpp" +#include "Runtime/Streams/IOStreams.hpp" #include "Runtime/Character/CharacterCommon.hpp" #include "Runtime/Character/CPASAnimInfo.hpp" #include "Runtime/Character/CPASParmInfo.hpp" diff --git a/Runtime/Character/CPASDatabase.hpp b/Runtime/Character/CPASDatabase.hpp index ddd7d786d..377de5fab 100644 --- a/Runtime/Character/CPASDatabase.hpp +++ b/Runtime/Character/CPASDatabase.hpp @@ -4,7 +4,7 @@ #include #include -#include "Runtime/IOStreams.hpp" +#include "Runtime/Streams/IOStreams.hpp" #include "Runtime/Character/CPASAnimState.hpp" namespace metaforce { diff --git a/Runtime/Character/CPASParmInfo.hpp b/Runtime/Character/CPASParmInfo.hpp index 6b10b5dd0..2254be364 100644 --- a/Runtime/Character/CPASParmInfo.hpp +++ b/Runtime/Character/CPASParmInfo.hpp @@ -1,6 +1,6 @@ #pragma once -#include "Runtime/IOStreams.hpp" +#include "Runtime/Streams/IOStreams.hpp" #include "Runtime/Character/CPASAnimParm.hpp" namespace metaforce { diff --git a/Runtime/Character/CPOINode.hpp b/Runtime/Character/CPOINode.hpp index c7e2bdbff..1ff7dd796 100644 --- a/Runtime/Character/CPOINode.hpp +++ b/Runtime/Character/CPOINode.hpp @@ -3,7 +3,7 @@ #include #include -#include "Runtime/IOStreams.hpp" +#include "Runtime/Streams/IOStreams.hpp" #include "Runtime/Character/CCharAnimTime.hpp" namespace metaforce { diff --git a/Runtime/Character/CParticleData.hpp b/Runtime/Character/CParticleData.hpp index 80f14dbd7..c74836b2e 100644 --- a/Runtime/Character/CParticleData.hpp +++ b/Runtime/Character/CParticleData.hpp @@ -2,7 +2,7 @@ #include -#include "Runtime/IOStreams.hpp" +#include "Runtime/Streams/IOStreams.hpp" #include "Runtime/RetroTypes.hpp" #include diff --git a/Runtime/Character/CPrimitive.cpp b/Runtime/Character/CPrimitive.cpp index feb436ce0..8963e19f4 100644 --- a/Runtime/Character/CPrimitive.cpp +++ b/Runtime/Character/CPrimitive.cpp @@ -3,7 +3,7 @@ namespace metaforce { CPrimitive::CPrimitive(CInputStream& in) { - x0_animId = in.ReadLong(); + x0_animId = in.Get(); x4_animIdx = in.ReadLong(); x8_animName = in.Get(); } diff --git a/Runtime/Character/CPrimitive.hpp b/Runtime/Character/CPrimitive.hpp index 0fcf01c49..4ea7eefda 100644 --- a/Runtime/Character/CPrimitive.hpp +++ b/Runtime/Character/CPrimitive.hpp @@ -2,7 +2,7 @@ #include -#include "Runtime/IOStreams.hpp" +#include "Runtime/Streams/IOStreams.hpp" #include "Runtime/RetroTypes.hpp" namespace metaforce { diff --git a/Runtime/Character/CSegId.hpp b/Runtime/Character/CSegId.hpp index 2611e60ba..8b3d83828 100644 --- a/Runtime/Character/CSegId.hpp +++ b/Runtime/Character/CSegId.hpp @@ -1,6 +1,6 @@ #pragma once -#include "Runtime/IOStreams.hpp" +#include "Runtime/Streams/IOStreams.hpp" #include "Runtime/RetroTypes.hpp" namespace metaforce { diff --git a/Runtime/Character/CSegIdList.hpp b/Runtime/Character/CSegIdList.hpp index 8ff76daa3..079973e6d 100644 --- a/Runtime/Character/CSegIdList.hpp +++ b/Runtime/Character/CSegIdList.hpp @@ -2,7 +2,7 @@ #include -#include "Runtime/IOStreams.hpp" +#include "Runtime/Streams/IOStreams.hpp" #include "Runtime/Character/CSegId.hpp" namespace metaforce { diff --git a/Runtime/Character/CSkinBank.hpp b/Runtime/Character/CSkinBank.hpp index 843a12c1e..8d0236cd7 100644 --- a/Runtime/Character/CSkinBank.hpp +++ b/Runtime/Character/CSkinBank.hpp @@ -2,7 +2,7 @@ #include -#include "Runtime/IOStreams.hpp" +#include "Runtime/Streams/IOStreams.hpp" #include "Runtime/Character/CSegId.hpp" namespace metaforce { diff --git a/Runtime/Character/CTransition.hpp b/Runtime/Character/CTransition.hpp index 8a062f03f..c79209a1b 100644 --- a/Runtime/Character/CTransition.hpp +++ b/Runtime/Character/CTransition.hpp @@ -3,7 +3,7 @@ #include #include -#include "Runtime/IOStreams.hpp" +#include "Runtime/Streams/IOStreams.hpp" #include "Runtime/Character/CMetaTransFactory.hpp" namespace metaforce { diff --git a/Runtime/Collision/CAreaOctTree.cpp b/Runtime/Collision/CAreaOctTree.cpp index 11804b718..7b700b963 100644 --- a/Runtime/Collision/CAreaOctTree.cpp +++ b/Runtime/Collision/CAreaOctTree.cpp @@ -1,7 +1,8 @@ #include "Runtime/Collision/CAreaOctTree.hpp" +#include "Runtime/CBasics.hpp" #include "Runtime/Collision/CMaterialFilter.hpp" -#include "IOStreams.hpp" +#include "Runtime/Streams/IOStreams.hpp" #include #include @@ -479,27 +480,27 @@ CAreaOctTree::Node CAreaOctTree::Node::GetChild(int idx) const { void CAreaOctTree::SwapTreeNode(u8* ptr, Node::ETreeType type) { if (type == Node::ETreeType::Branch) { u16* typeBits = reinterpret_cast(ptr); - *typeBits = hecl::SBig(*typeBits); + *typeBits = CBasics::SwapBytes(*typeBits); u32* offsets = reinterpret_cast(ptr + 4); for (int i = 0; i < 8; ++i) { Node::ETreeType ctype = Node::ETreeType((*typeBits >> (2 * i)) & 0x3); - offsets[i] = hecl::SBig(offsets[i]); + offsets[i] = CBasics::SwapBytes(offsets[i]); SwapTreeNode(ptr + offsets[i] + 36, ctype); } } else if (type == Node::ETreeType::Leaf) { float* aabb = reinterpret_cast(ptr); - aabb[0] = hecl::SBig(aabb[0]); - aabb[1] = hecl::SBig(aabb[1]); - aabb[2] = hecl::SBig(aabb[2]); - aabb[3] = hecl::SBig(aabb[3]); - aabb[4] = hecl::SBig(aabb[4]); - aabb[5] = hecl::SBig(aabb[5]); + aabb[0] = CBasics::SwapBytes(aabb[0]); + aabb[1] = CBasics::SwapBytes(aabb[1]); + aabb[2] = CBasics::SwapBytes(aabb[2]); + aabb[3] = CBasics::SwapBytes(aabb[3]); + aabb[4] = CBasics::SwapBytes(aabb[4]); + aabb[5] = CBasics::SwapBytes(aabb[5]); u16* countIdxs = reinterpret_cast(ptr + 24); - *countIdxs = hecl::SBig(*countIdxs); + *countIdxs = CBasics::SwapBytes(*countIdxs); for (u16 i = 0; i < *countIdxs; ++i) - countIdxs[i + 1] = hecl::SBig(countIdxs[i + 1]); + countIdxs[i + 1] = CBasics::SwapBytes(countIdxs[i + 1]); } } @@ -525,16 +526,16 @@ CAreaOctTree::CAreaOctTree(const zeus::CAABox& aabb, Node::ETreeType treeType, c SwapTreeNode(const_cast(x20_treeBuf), treeType); for (u32 i = 0; i < matCount; ++i) - const_cast(x28_materials)[i] = hecl::SBig(x28_materials[i]); + const_cast(x28_materials)[i] = CBasics::SwapBytes(x28_materials[i]); for (u32 i = 0; i < edgeCount; ++i) const_cast(x3c_edges)[i].swapBig(); for (u32 i = 0; i < polyCount; ++i) - const_cast(x44_polyEdges)[i] = hecl::SBig(x44_polyEdges[i]); + const_cast(x44_polyEdges)[i] = CBasics::SwapBytes(x44_polyEdges[i]); for (u32 i = 0; i < vertCount * 3; ++i) - const_cast(x4c_verts)[i] = hecl::SBig(x4c_verts[i]); + const_cast(x4c_verts)[i] = CBasics::SwapBytes(x4c_verts[i]); } std::unique_ptr CAreaOctTree::MakeFromMemory(const u8* buf, unsigned int size) { @@ -549,37 +550,37 @@ std::unique_ptr CAreaOctTree::MakeFromMemory(const u8* buf, unsign const u8* treeBuf = cur; cur += treeSize; - u32 matCount = hecl::SBig(*reinterpret_cast(cur)); + u32 matCount = CBasics::SwapBytes(*reinterpret_cast(cur)); cur += 4; const u32* matBuf = reinterpret_cast(cur); cur += 4 * matCount; - u32 vertMatsCount = hecl::SBig(*reinterpret_cast(cur)); + u32 vertMatsCount = CBasics::SwapBytes(*reinterpret_cast(cur)); cur += 4; const u8* vertMatsBuf = cur; cur += vertMatsCount; - u32 edgeMatsCount = hecl::SBig(*reinterpret_cast(cur)); + u32 edgeMatsCount = CBasics::SwapBytes(*reinterpret_cast(cur)); cur += 4; const u8* edgeMatsBuf = cur; cur += edgeMatsCount; - u32 polyMatsCount = hecl::SBig(*reinterpret_cast(cur)); + u32 polyMatsCount = CBasics::SwapBytes(*reinterpret_cast(cur)); cur += 4; const u8* polyMatsBuf = cur; cur += polyMatsCount; - u32 edgeCount = hecl::SBig(*reinterpret_cast(cur)); + u32 edgeCount = CBasics::SwapBytes(*reinterpret_cast(cur)); cur += 4; const CCollisionEdge* edgeBuf = reinterpret_cast(cur); cur += edgeCount * sizeof(edgeCount); - u32 polyCount = hecl::SBig(*reinterpret_cast(cur)); + u32 polyCount = CBasics::SwapBytes(*reinterpret_cast(cur)); cur += 4; const u16* polyBuf = reinterpret_cast(cur); cur += polyCount * 2; - u32 vertCount = hecl::SBig(*reinterpret_cast(cur)); + u32 vertCount = CBasics::SwapBytes(*reinterpret_cast(cur)); cur += 4; const float* vertBuf = reinterpret_cast(cur); diff --git a/Runtime/Collision/CCollidableOBBTreeGroup.hpp b/Runtime/Collision/CCollidableOBBTreeGroup.hpp index 27e43045b..8b445d69f 100644 --- a/Runtime/Collision/CCollidableOBBTreeGroup.hpp +++ b/Runtime/Collision/CCollidableOBBTreeGroup.hpp @@ -4,7 +4,7 @@ #include #include "Runtime/CFactoryMgr.hpp" -#include "Runtime/IOStreams.hpp" +#include "Runtime/Streams/IOStreams.hpp" #include "Runtime/Collision/COBBTree.hpp" #include "Runtime/Collision/CCollisionPrimitive.hpp" diff --git a/Runtime/Collision/CCollisionEdge.cpp b/Runtime/Collision/CCollisionEdge.cpp index 368a6c359..aa107b558 100644 --- a/Runtime/Collision/CCollisionEdge.cpp +++ b/Runtime/Collision/CCollisionEdge.cpp @@ -1,5 +1,5 @@ #include "Runtime/Collision/CCollisionEdge.hpp" -#include "Runtime/CInputStream.hpp" +#include "Runtime/Streams/CInputStream.hpp" namespace metaforce { CCollisionEdge::CCollisionEdge(CInputStream& in) { diff --git a/Runtime/Collision/CCollisionResponseData.hpp b/Runtime/Collision/CCollisionResponseData.hpp index 351f367c4..4901e0c69 100644 --- a/Runtime/Collision/CCollisionResponseData.hpp +++ b/Runtime/Collision/CCollisionResponseData.hpp @@ -5,7 +5,7 @@ #include "Runtime/CFactoryMgr.hpp" #include "Runtime/CToken.hpp" -#include "Runtime/IOStreams.hpp" +#include "Runtime/Streams/IOStreams.hpp" #include "Runtime/IObj.hpp" #include "Runtime/RetroTypes.hpp" #include "Runtime/Collision/CMaterialList.hpp" diff --git a/Runtime/GameGlobalObjects.hpp b/Runtime/GameGlobalObjects.hpp index 7902647aa..d2774abbe 100644 --- a/Runtime/GameGlobalObjects.hpp +++ b/Runtime/GameGlobalObjects.hpp @@ -3,35 +3,37 @@ #define USE_DOWNCAST_TWEAKS 1 #if USE_DOWNCAST_TWEAKS -#include "../DataSpec/DNAMP1/Tweaks/CTweakGame.hpp" -#include "../DataSpec/DNAMP1/Tweaks/CTweakPlayer.hpp" -#include "../DataSpec/DNAMP1/Tweaks/CTweakPlayerControl.hpp" -#include "../DataSpec/DNAMP1/Tweaks/CTweakPlayerGun.hpp" -#include "../DataSpec/DNAMP1/Tweaks/CTweakGunRes.hpp" -#include "../DataSpec/DNAMP1/Tweaks/CTweakPlayerRes.hpp" -#include "../DataSpec/DNAMP1/Tweaks/CTweakGui.hpp" -#include "../DataSpec/DNAMP1/Tweaks/CTweakSlideShow.hpp" -#include "../DataSpec/DNAMP1/Tweaks/CTweakGui.hpp" -#include "../DataSpec/DNAMP1/Tweaks/CTweakTargeting.hpp" -#include "../DataSpec/DNAMP1/Tweaks/CTweakAutoMapper.hpp" -#include "../DataSpec/DNAMP1/Tweaks/CTweakParticle.hpp" -#include "../DataSpec/DNAMP1/Tweaks/CTweakBall.hpp" -#include "../DataSpec/DNAMP1/Tweaks/CTweakGuiColors.hpp" +#include "Runtime/MP1/Tweaks/CTweakAutoMapper.hpp" +#include "Runtime/MP1/Tweaks/CTweakBall.hpp" +#include "Runtime/MP1/Tweaks/CTweakGame.hpp" +#include "Runtime/MP1/Tweaks/CTweakGui.hpp" +#include "Runtime/MP1/Tweaks/CTweakGui.hpp" +#include "Runtime/MP1/Tweaks/CTweakGuiColors.hpp" +#include "Runtime/MP1/Tweaks/CTweakGunRes.hpp" +#include "Runtime/MP1/Tweaks/CTweakParticle.hpp" +#include "Runtime/MP1/Tweaks/CTweakPlayer.hpp" +#include "Runtime/MP1/Tweaks/CTweakPlayerControl.hpp" +#include "Runtime/MP1/Tweaks/CTweakPlayerGun.hpp" +#include "Runtime/MP1/Tweaks/CTweakPlayerRes.hpp" +#include "Runtime/MP1/Tweaks/CTweakSlideShow.hpp" +#include "Runtime/MP1/Tweaks/CTweakTargeting.hpp" +#include "Runtime/MP1/Tweaks/CTweakGuiColors.hpp" +#include "Runtime/MP1/Tweaks/CTweakTargeting.hpp" #else -#include "../DataSpec/DNACommon/Tweaks/ITweakGame.hpp" -#include "../DataSpec/DNACommon/Tweaks/ITweakPlayer.hpp" -#include "../DataSpec/DNACommon/Tweaks/ITweakPlayerControl.hpp" -#include "../DataSpec/DNACommon/Tweaks/ITweakPlayerGun.hpp" -#include "../DataSpec/DNACommon/Tweaks/ITweakGunRes.hpp" -#include "../DataSpec/DNACommon/Tweaks/ITweakPlayerRes.hpp" -#include "../DataSpec/DNACommon/Tweaks/ITweakGui.hpp" -#include "../DataSpec/DNACommon/Tweaks/ITweakSlideShow.hpp" -#include "../DataSpec/DNACommon/Tweaks/ITweakGui.hpp" -#include "../DataSpec/DNACommon/Tweaks/ITweakTargeting.hpp" -#include "../DataSpec/DNACommon/Tweaks/ITweakAutoMapper.hpp" -#include "../DataSpec/DNACommon/Tweaks/ITweakParticle.hpp" -#include "../DataSpec/DNACommon/Tweaks/ITweakBall.hpp" -#include "../DataSpec/DNACommon/Tweaks/ITweakGuiColors.hpp" +#include "Runtime/Tweaks/ITweakAutoMapper.hpp" +#include "Runtime/Tweaks/ITweakBall.hpp" +#include "Runtime/Tweaks/ITweakGame.hpp" +#include "Runtime/Tweaks/ITweakGui.hpp" +#include "Runtime/Tweaks/ITweakGui.hpp" +#include "Runtime/Tweaks/ITweakGuiColors.hpp" +#include "Runtime/Tweaks/ITweakGunRes.hpp" +#include "Runtime/Tweaks/ITweakParticle.hpp" +#include "Runtime/Tweaks/ITweakPlayer.hpp" +#include "Runtime/Tweaks/ITweakPlayerControl.hpp" +#include "Runtime/Tweaks/ITweakPlayerGun.hpp" +#include "Runtime/Tweaks/ITweakPlayerRes.hpp" +#include "Runtime/Tweaks/ITweakSlideShow.hpp" +#include "Runtime/Tweaks/ITweakTargeting.hpp" #endif #include "Runtime/CTextureCache.hpp" @@ -55,32 +57,34 @@ extern class CInputGenerator* g_InputGenerator; extern class CStateManager* g_StateManager; #if USE_DOWNCAST_TWEAKS -using ITweakGame = DataSpec::DNAMP1::CTweakGame; -using ITweakPlayer = DataSpec::DNAMP1::CTweakPlayer; -using ITweakPlayerControl = DataSpec::DNAMP1::CTweakPlayerControl; -using ITweakPlayerGun = DataSpec::DNAMP1::CTweakPlayerGun; -using ITweakGunRes = DataSpec::DNAMP1::CTweakGunRes; -using ITweakAutoMapper = DataSpec::DNAMP1::CTweakAutoMapper; -using ITweakGui = DataSpec::DNAMP1::CTweakGui; -using ITweakSlideShow = DataSpec::DNAMP1::CTweakSlideShow; -using ITweakParticle = DataSpec::DNAMP1::CTweakParticle; -using ITweakBall = DataSpec::DNAMP1::CTweakBall; -using ITweakGuiColors = DataSpec::DNAMP1::CTweakGuiColors; +using ITweakGame = metaforce::MP1::CTweakGame; +using ITweakPlayer = metaforce::MP1::CTweakPlayer; +using ITweakPlayerControl = metaforce::MP1::CTweakPlayerControl; +using ITweakPlayerGun = metaforce::MP1::CTweakPlayerGun; +using ITweakGunRes = metaforce::MP1::CTweakGunRes; +using ITweakAutoMapper = metaforce::MP1::CTweakAutoMapper; +using ITweakGui = metaforce::MP1::CTweakGui; +using ITweakSlideShow = metaforce::MP1::CTweakSlideShow; +using ITweakParticle = metaforce::MP1::CTweakParticle; +using ITweakBall = metaforce::MP1::CTweakBall; +using ITweakGuiColors = metaforce::MP1::CTweakGuiColors; +using ITweakPlayerRes = metaforce::MP1::CTweakPlayerRes; +using ITweakTargeting = metaforce::MP1::CTweakTargeting; #else -using ITweakGame = DataSpec::ITweakGame; -using ITweakPlayer = DataSpec::ITweakPlayer; -using ITweakPlayerControl = DataSpec::ITweakPlayerControl; -using ITweakPlayerGun = DataSpec::ITweakPlayerGun; -using ITweakGunRes = DataSpec::ITweakGunRes; -using ITweakAutoMapper = DataSpec::ITweakAutoMapper; -using ITweakGui = DataSpec::ITweakGui; -using ITweakSlideShow = DataSpec::ITweakSlideShow; -using ITweakParticle = DataSpec::ITweakParticle; -using ITweakBall = DataSpec::ITweakBall; -using ITweakGuiColors = DataSpec::ITweakGuiColors; +using ITweakGame = metaforce::Tweaks::ITweakGame; +using ITweakPlayer = metaforce::Tweaks::ITweakPlayer; +using ITweakPlayerControl = metaforce::Tweaks::ITweakPlayerControl; +using ITweakPlayerGun = metaforce::Tweaks::ITweakPlayerGun; +using ITweakGunRes = metaforce::Tweaks::ITweakGunRes; +using ITweakAutoMapper = metaforce::Tweaks::ITweakAutoMapper; +using ITweakGui = metaforce::Tweaks::ITweakGui; +using ITweakSlideShow = metaforce::Tweaks::ITweakSlideShow; +using ITweakParticle = metaforce::Tweaks::ITweakParticle; +using ITweakBall = metaforce::Tweaks::ITweakBall; +using ITweakGuiColors = metaforce::Tweaks::ITweakGuiColors; +using ITweakPlayerRes = metaforce::Tweaks::ITweakPlayerRes; +using ITweakTargeting = metaforce::Tweaks::ITweakTargeting; #endif -using ITweakPlayerRes = DataSpec::ITweakPlayerRes; -using ITweakTargeting = DataSpec::ITweakTargeting; extern ITweakGame* g_tweakGame; extern ITweakPlayer* g_tweakPlayer; diff --git a/Runtime/Graphics/CModelBoo.cpp b/Runtime/Graphics/CModelBoo.cpp index 39afbb727..4f24b4658 100644 --- a/Runtime/Graphics/CModelBoo.cpp +++ b/Runtime/Graphics/CModelBoo.cpp @@ -1,5 +1,6 @@ #include "Runtime/Graphics/CModel.hpp" +#include "Runtime/CBasics.hpp" #include "Runtime/CSimplePool.hpp" #include "Runtime/GameGlobalObjects.hpp" #include "Runtime/Character/CSkinRules.hpp" @@ -13,7 +14,6 @@ #include #include -#include #include #include @@ -1118,7 +1118,7 @@ static const u8* MemoryFromPartData(const u8*& dataCur, const u32*& secSizeCur) else ret = nullptr; - dataCur += hecl::SBig(*secSizeCur); + dataCur += CBasics::SwapBytes(*secSizeCur); ++secSizeCur; return ret; } @@ -1160,20 +1160,20 @@ CModel::CModel(std::unique_ptr&& in, u32 /* dataLen */, IObjectStore* stor x38_lastFrame = CGraphics::GetFrameCounter() - 2; std::unique_ptr data = std::move(in); - u32 version = hecl::SBig(*reinterpret_cast(data.get() + 0x4)); - m_flags = hecl::SBig(*reinterpret_cast(data.get() + 0x8)); + u32 version = CBasics::SwapBytes(*reinterpret_cast(data.get() + 0x4)); + m_flags = CBasics::SwapBytes(*reinterpret_cast(data.get() + 0x8)); if (version != 0x10002) { Log.report(logvisor::Error, FMT_STRING("invalid CMDL for loading with boo")); return; } - u32 secCount = hecl::SBig(*reinterpret_cast(data.get() + 0x24)); - u32 matSetCount = hecl::SBig(*reinterpret_cast(data.get() + 0x28)); + u32 secCount = CBasics::SwapBytes(*reinterpret_cast(data.get() + 0x24)); + u32 matSetCount = CBasics::SwapBytes(*reinterpret_cast(data.get() + 0x28)); x18_matSets.reserve(matSetCount); const u8* dataCur = data.get() + ROUND_UP_32(0x2c + secCount * 4); const u32* secSizeCur = reinterpret_cast(data.get() + 0x2c); for (u32 i = 0; i < matSetCount; ++i) { - const u32 matSetSz = hecl::SBig(*secSizeCur); + const u32 matSetSz = CBasics::SwapBytes(*secSizeCur); const u8* sec = MemoryFromPartData(dataCur, secSizeCur); SShader& shader = x18_matSets.emplace_back(i); athena::io::MemoryReader r(sec, matSetSz); @@ -1182,7 +1182,7 @@ CModel::CModel(std::unique_ptr&& in, u32 /* dataLen */, IObjectStore* stor } { - u32 hmdlSz = hecl::SBig(*secSizeCur); + u32 hmdlSz = CBasics::SwapBytes(*secSizeCur); const u8* hmdlMetadata = MemoryFromPartData(dataCur, secSizeCur); athena::io::MemoryReader r(hmdlMetadata, hmdlSz); m_hmdlMeta.read(r); @@ -1218,10 +1218,10 @@ CModel::CModel(std::unique_ptr&& in, u32 /* dataLen */, IObjectStore* stor // return true; // } BooTrace); - const u32 surfCount = hecl::SBig(*reinterpret_cast(surfInfo)); + const u32 surfCount = CBasics::SwapBytes(*reinterpret_cast(surfInfo)); x8_surfaces.reserve(surfCount); for (u32 i = 0; i < surfCount; ++i) { - const u32 surfSz = hecl::SBig(*secSizeCur); + const u32 surfSz = CBasics::SwapBytes(*secSizeCur); const u8* sec = MemoryFromPartData(dataCur, secSizeCur); CBooSurface& surf = x8_surfaces.emplace_back(); surf.selfIdx = i; @@ -1230,8 +1230,8 @@ CModel::CModel(std::unique_ptr&& in, u32 /* dataLen */, IObjectStore* stor } const float* aabbPtr = reinterpret_cast(data.get() + 0xc); - m_aabb = zeus::CAABox(hecl::SBig(aabbPtr[0]), hecl::SBig(aabbPtr[1]), hecl::SBig(aabbPtr[2]), hecl::SBig(aabbPtr[3]), - hecl::SBig(aabbPtr[4]), hecl::SBig(aabbPtr[5])); + m_aabb = zeus::CAABox(CBasics::SwapBytes(aabbPtr[0]), CBasics::SwapBytes(aabbPtr[1]), CBasics::SwapBytes(aabbPtr[2]), CBasics::SwapBytes(aabbPtr[3]), + CBasics::SwapBytes(aabbPtr[4]), CBasics::SwapBytes(aabbPtr[5])); x28_modelInst = MakeNewInstance(0, false); } diff --git a/Runtime/Graphics/CPVSAreaSet.cpp b/Runtime/Graphics/CPVSAreaSet.cpp index cf51a1a2a..fd5bfc4bf 100644 --- a/Runtime/Graphics/CPVSAreaSet.cpp +++ b/Runtime/Graphics/CPVSAreaSet.cpp @@ -1,5 +1,5 @@ #include "Runtime/Graphics/CPVSAreaSet.hpp" -#include "IOStreams.hpp" +#include "Runtime/Streams/IOStreams.hpp" namespace metaforce { diff --git a/Runtime/Graphics/CPVSVisOctree.cpp b/Runtime/Graphics/CPVSVisOctree.cpp index 643407584..5f04fa6e4 100644 --- a/Runtime/Graphics/CPVSVisOctree.cpp +++ b/Runtime/Graphics/CPVSVisOctree.cpp @@ -1,5 +1,5 @@ #include "Runtime/Graphics/CPVSVisOctree.hpp" -#include "IOStreams.hpp" +#include "Runtime/Streams/IOStreams.hpp" #include diff --git a/Runtime/Graphics/CTexture.hpp b/Runtime/Graphics/CTexture.hpp index 7c2a87a02..9637d8141 100644 --- a/Runtime/Graphics/CTexture.hpp +++ b/Runtime/Graphics/CTexture.hpp @@ -6,7 +6,7 @@ #include "Runtime/CFactoryMgr.hpp" #include "Runtime/GCNTypes.hpp" #include "Runtime/IObj.hpp" -#include "Runtime/IOStreams.hpp" +#include "Runtime/Streams/IOStreams.hpp" #include "Runtime/Graphics/CGraphics.hpp" //#include diff --git a/Runtime/Graphics/CTextureBoo.cpp b/Runtime/Graphics/CTextureBoo.cpp index b91255ecf..dae5cbf5f 100644 --- a/Runtime/Graphics/CTextureBoo.cpp +++ b/Runtime/Graphics/CTextureBoo.cpp @@ -2,11 +2,12 @@ #include +#include "Runtime/CBasics.hpp" #include "Runtime/CSimplePool.hpp" -#include "Runtime/CToken.hpp" -#include "Runtime/Graphics/CGraphics.hpp" #include "Runtime/CTextureCache.hpp" +#include "Runtime/CToken.hpp" #include "Runtime/GameGlobalObjects.hpp" +#include "Runtime/Graphics/CGraphics.hpp" namespace metaforce { namespace { @@ -507,8 +508,8 @@ void CTexture::BuildDXT1FromGCN(CInputStream& in, aurora::zstring_view label) { std::array source; in.Get(reinterpret_cast(source.data()), sizeof(source)); for (size_t x = 0; x < source.size(); ++x) { - target[x].color1 = hecl::SBig(source[x].color1); - target[x].color2 = hecl::SBig(source[x].color2); + target[x].color1 = CBasics::SwapBytes(source[x].color1); + target[x].color2 = CBasics::SwapBytes(source[x].color2); for (size_t i = 0; i < 4; ++i) { std::array ind; const u8 packed = source[x].lines[i]; @@ -551,7 +552,7 @@ void CTexture::BuildC8(const void* data, size_t length, aurora::zstring_view lab if (texelCount > length) Log.report(logvisor::Fatal, FMT_STRING("insufficient TXTR length ({}/{})"), length, texelCount); - uint32_t nentries = hecl::SBig(*reinterpret_cast(data)); + uint32_t nentries = CBasics::SwapBytes(*reinterpret_cast(data)); const u8* paletteTexels = reinterpret_cast(data) + 4; const u8* texels = reinterpret_cast(data) + 4 + nentries * 4; m_paletteTex = aurora::gfx::new_static_texture_2d(nentries, 1, 1, aurora::gfx::TextureFormat::RGBA8, @@ -581,7 +582,7 @@ void CTexture::BuildC8Font(const void* data, EFontType ftype, aurora::zstring_vi break; } - const uint32_t nentries = hecl::SBig(*reinterpret_cast(data)); + const uint32_t nentries = CBasics::SwapBytes(*reinterpret_cast(data)); const u8* texels = reinterpret_cast(data) + 4 + nentries * 4; auto buf = std::make_unique(texelCount * layerCount); @@ -823,9 +824,9 @@ std::unique_ptr CTexture::BuildMemoryCardTex(u32& sizeOut, ETexelFormat& f const RGBA8* source = sourceMip + (x6_h - (baseY + y) - 1) * w + baseX; for (int x = 0; x < 4; ++x) { if (source[x].a == 0xff) { - *texel++ = hecl::SBig(u16((source[x].r >> 3 << 10) | (source[x].g >> 3 << 5) | (source[x].b >> 3))); + *texel++ = CBasics::SwapBytes(u16((source[x].r >> 3 << 10) | (source[x].g >> 3 << 5) | (source[x].b >> 3))); } else { - *texel++ = hecl::SBig(u16((source[x].r >> 4 << 8) | (source[x].g >> 4 << 4) | (source[x].b >> 4) | + *texel++ = CBasics::SwapBytes(u16((source[x].r >> 4 << 8) | (source[x].g >> 4 << 4) | (source[x].b >> 4) | (source[x].a >> 5 << 12))); } } @@ -843,7 +844,7 @@ std::unique_ptr CTexture::BuildMemoryCardTex(u32& sizeOut, ETexelFormat& f int w = x4_w; int h = x6_h; const u8* data = m_otex.get() + 12; - u32 nentries = hecl::SBig(*reinterpret_cast(data)); + u32 nentries = CBasics::SwapBytes(*reinterpret_cast(data)); const RGBA8* paletteTexels = reinterpret_cast(data + 4); const u8* sourceMip = data + 4 + nentries * 4; @@ -854,9 +855,9 @@ std::unique_ptr CTexture::BuildMemoryCardTex(u32& sizeOut, ETexelFormat& f } else { const RGBA8& colorIn = paletteTexels[i]; if (colorIn.a == 0xff) { - color = hecl::SBig(u16((colorIn.r >> 3 << 10) | (colorIn.g >> 3 << 5) | (colorIn.b >> 3) | 0x8000)); + color = CBasics::SwapBytes(u16((colorIn.r >> 3 << 10) | (colorIn.g >> 3 << 5) | (colorIn.b >> 3) | 0x8000)); } else { - color = hecl::SBig( + color = CBasics::SwapBytes( u16((colorIn.r >> 4 << 8) | (colorIn.g >> 4 << 4) | (colorIn.b >> 4) | (colorIn.a >> 5 << 12))); } } diff --git a/Runtime/GuiSys/CAuiEnergyBarT01.cpp b/Runtime/GuiSys/CAuiEnergyBarT01.cpp index d255a729b..10e474b98 100644 --- a/Runtime/GuiSys/CAuiEnergyBarT01.cpp +++ b/Runtime/GuiSys/CAuiEnergyBarT01.cpp @@ -142,7 +142,7 @@ void CAuiEnergyBarT01::SetMaxEnergy(float maxEnergy) { std::shared_ptr CAuiEnergyBarT01::Create(CGuiFrame* frame, CInputStream& in, CSimplePool* sp) { CGuiWidgetParms parms = ReadWidgetHeader(frame, in); - CAssetId tex = in.ReadLong(); + CAssetId tex = in.Get(); std::shared_ptr ret = std::make_shared(parms, sp, tex); ret->ParseBaseInfo(frame, in, parms); return ret; diff --git a/Runtime/GuiSys/CAuiImagePane.cpp b/Runtime/GuiSys/CAuiImagePane.cpp index 43252d022..f823d1846 100644 --- a/Runtime/GuiSys/CAuiImagePane.cpp +++ b/Runtime/GuiSys/CAuiImagePane.cpp @@ -29,7 +29,7 @@ std::shared_ptr CAuiImagePane::Create(CGuiFrame* frame, CInputStream for (u32 i = 0; i < uvCount; ++i) uvs.push_back(in.Get()); std::shared_ptr ret = - std::make_shared(parms, sp, -1, -1, std::move(coords), std::move(uvs), true); + std::make_shared(parms, sp, CAssetId(), CAssetId(), std::move(coords), std::move(uvs), true); ret->ParseBaseInfo(frame, in, parms); return ret; } diff --git a/Runtime/GuiSys/CGuiSys.hpp b/Runtime/GuiSys/CGuiSys.hpp index 5ce5036d8..01549976e 100644 --- a/Runtime/GuiSys/CGuiSys.hpp +++ b/Runtime/GuiSys/CGuiSys.hpp @@ -5,7 +5,7 @@ #include #include -#include "Runtime/IOStreams.hpp" +#include "Runtime/Streams/IOStreams.hpp" #include "Runtime/GuiSys/CSaveableState.hpp" #include diff --git a/Runtime/GuiSys/CGuiWidget.hpp b/Runtime/GuiSys/CGuiWidget.hpp index add4c810a..26a81889f 100644 --- a/Runtime/GuiSys/CGuiWidget.hpp +++ b/Runtime/GuiSys/CGuiWidget.hpp @@ -5,7 +5,7 @@ #include #include "Runtime/GCNTypes.hpp" -#include "Runtime/IOStreams.hpp" +#include "Runtime/Streams/IOStreams.hpp" #include "Runtime/GuiSys/CGuiObject.hpp" #include diff --git a/Runtime/GuiSys/CHudEnergyInterface.cpp b/Runtime/GuiSys/CHudEnergyInterface.cpp index abfeab6bd..f1587be8f 100644 --- a/Runtime/GuiSys/CHudEnergyInterface.cpp +++ b/Runtime/GuiSys/CHudEnergyInterface.cpp @@ -37,8 +37,8 @@ CHudEnergyInterface::CHudEnergyInterface(CGuiFrame& selHud, float tankEnergy, in x2c_energybart01_energybar->SetCoordFunc(CoordFuncs[size_t(hudType)]); x2c_energybart01_energybar->SetTesselation(Tesselations[size_t(hudType)]); - ITweakGuiColors::VisorEnergyBarColors barColors = g_tweakGuiColors->GetVisorEnergyBarColors(int(hudType)); - ITweakGuiColors::VisorEnergyInitColors initColors = g_tweakGuiColors->GetVisorEnergyInitColors(int(hudType)); + ITweakGuiColors::SVisorEnergyBarColors barColors = g_tweakGuiColors->GetVisorEnergyBarColors(int(hudType)); + ITweakGuiColors::SVisorEnergyInitColors initColors = g_tweakGuiColors->GetVisorEnergyInitColors(int(hudType)); x20_textpane_energydigits->TextSupport().SetFontColor(initColors.digitsFont); x20_textpane_energydigits->TextSupport().SetOutlineColor(initColors.digitsOutline); @@ -100,7 +100,7 @@ void CHudEnergyInterface::Update(float dt, float energyLowPulse) { x20_textpane_energydigits->TextSupport().SetText(string); } - ITweakGuiColors::VisorEnergyBarColors barColors = g_tweakGuiColors->GetVisorEnergyBarColors(int(x0_hudType)); + ITweakGuiColors::SVisorEnergyBarColors barColors = g_tweakGuiColors->GetVisorEnergyBarColors(int(x0_hudType)); zeus::CColor emptyColor = x1c_27_energyLow ? g_tweakGuiColors->GetEnergyBarEmptyLowEnergy() : barColors.empty; zeus::CColor filledColor = x1c_27_energyLow ? g_tweakGuiColors->GetEnergyBarFilledLowEnergy() : barColors.filled; zeus::CColor shadowColor = x1c_27_energyLow ? g_tweakGuiColors->GetEnergyBarShadowLowEnergy() : barColors.shadow; diff --git a/Runtime/GuiSys/CRasterFont.hpp b/Runtime/GuiSys/CRasterFont.hpp index 23c71fd32..cd848d533 100644 --- a/Runtime/GuiSys/CRasterFont.hpp +++ b/Runtime/GuiSys/CRasterFont.hpp @@ -6,7 +6,7 @@ #include "Runtime/CToken.hpp" #include "Runtime/GCNTypes.hpp" -#include "Runtime/IOStreams.hpp" +#include "Runtime/Streams/IOStreams.hpp" #include "Runtime/Graphics/CTexture.hpp" #include diff --git a/Runtime/GuiSys/CStringTable.cpp b/Runtime/GuiSys/CStringTable.cpp index eacefba90..8857670ba 100644 --- a/Runtime/GuiSys/CStringTable.cpp +++ b/Runtime/GuiSys/CStringTable.cpp @@ -1,7 +1,7 @@ #include "Runtime/GuiSys/CStringTable.hpp" #include "Runtime/CBasics.hpp" -#include "Runtime/CInputStream.hpp" +#include "Runtime/Streams/CInputStream.hpp" #include "Runtime/CToken.hpp" #include diff --git a/Runtime/ITweak.hpp b/Runtime/ITweak.hpp deleted file mode 100644 index 160d9a046..000000000 --- a/Runtime/ITweak.hpp +++ /dev/null @@ -1,8 +0,0 @@ -#pragma once - -namespace metaforce { -class ITweak { -public: - virtual ~ITweak() = default; -}; -} // namespace metaforce diff --git a/Runtime/MP1/CArtifactDoll.cpp b/Runtime/MP1/CArtifactDoll.cpp index 8107a458b..2e013a848 100644 --- a/Runtime/MP1/CArtifactDoll.cpp +++ b/Runtime/MP1/CArtifactDoll.cpp @@ -31,18 +31,18 @@ constexpr std::array ArtifactPieceModels{ }; constexpr std::array ArtifactHeadScans{ - 0x32C9DDCE, // Truth - 0xB45DAF60, // Strength - 0x7F017CC5, // Elder - 0x62044C7D, // Wild - 0xA9589FD8, // Lifegiver - 0x2FCCED76, // Warrior - 0xE4903ED3, // Chozo - 0x15C68C06, // Nature - 0xDE9A5FA3, // Sun - 0xFBBE9D9A, // World - 0x30E24E3F, // Spirit - 0xB6763C91 // Newborn + 0x32C9DDCEu, // Truth + 0xB45DAF60u, // Strength + 0x7F017CC5u, // Elder + 0x62044C7Du, // Wild + 0xA9589FD8u, // Lifegiver + 0x2FCCED76u, // Warrior + 0xE4903ED3u, // Chozo + 0x15C68C06u, // Nature + 0xDE9A5FA3u, // Sun + 0xFBBE9D9Au, // World + 0x30E24E3Fu, // Spirit + 0xB6763C91u // Newborn }; constexpr zeus::CColor ArtifactPreColor{0.4f, 0.68f, 0.88f, 0.8f}; @@ -70,7 +70,7 @@ int CArtifactDoll::GetArtifactHeadScanIndex(CAssetId scanId) { CAssetId CArtifactDoll::GetArtifactHeadScanFromItemType(CPlayerState::EItemType item) { if (item < CPlayerState::EItemType::Truth || item > CPlayerState::EItemType::Newborn) { - return -1; + return {}; } return ArtifactHeadScans[size_t(item) - 29]; diff --git a/Runtime/MP1/CFrontEndUI.cpp b/Runtime/MP1/CFrontEndUI.cpp index 094d49125..c1da61542 100644 --- a/Runtime/MP1/CFrontEndUI.cpp +++ b/Runtime/MP1/CFrontEndUI.cpp @@ -67,7 +67,7 @@ constexpr std::array FEMovies{{ {"Video/08_GBA_fileselect.thp", false}, }}; -constexpr SObjectTag g_DefaultWorldTag = {FOURCC('MLVL'), 0x158efe17}; +constexpr SObjectTag g_DefaultWorldTag = {FOURCC('MLVL'), 0x158efe17u}; constexpr std::array AudioFadeTimeA{ 0.44f, diff --git a/Runtime/MP1/CInGameGuiManager.cpp b/Runtime/MP1/CInGameGuiManager.cpp index 546c1934e..2245b5f75 100644 --- a/Runtime/MP1/CInGameGuiManager.cpp +++ b/Runtime/MP1/CInGameGuiManager.cpp @@ -631,7 +631,7 @@ void CInGameGuiManager::PauseGame(CStateManager& stateMgr, EInGameGuiState state } void CInGameGuiManager::StartFadeIn() { - xf8_camFilter.SetFilter(EFilterType::Multiply, EFilterShape::Fullscreen, 0.f, zeus::skBlack, -1); + xf8_camFilter.SetFilter(EFilterType::Multiply, EFilterShape::Fullscreen, 0.f, zeus::skBlack, {}); xf8_camFilter.DisableFilter(0.5f); } diff --git a/Runtime/MP1/CInGameGuiManager.hpp b/Runtime/MP1/CInGameGuiManager.hpp index 2173ee038..5fd86f9f4 100644 --- a/Runtime/MP1/CInGameGuiManager.hpp +++ b/Runtime/MP1/CInGameGuiManager.hpp @@ -5,7 +5,7 @@ #include #include -#include "DataSpec/DNACommon/Tweaks/ITweakGui.hpp" +#include "Runtime/Tweaks/ITweakGui.hpp" #include "Runtime/CDependencyGroup.hpp" #include "Runtime/CRandom16.hpp" @@ -43,8 +43,8 @@ class CSamusHud; class CInGameGuiManager { public: - using EHelmetVisMode = DataSpec::ITweakGui::EHelmetVisMode; - using EHudVisMode = DataSpec::ITweakGui::EHudVisMode; + using EHelmetVisMode = Tweaks::ITweakGui::EHelmetVisMode; + using EHudVisMode = Tweaks::ITweakGui::EHudVisMode; private: enum class ELoadPhase { LoadDepsGroup = 0, PreLoadDeps, LoadDeps, Done }; diff --git a/Runtime/MP1/CLogBookScreen.cpp b/Runtime/MP1/CLogBookScreen.cpp index 88c2b63aa..208ba2abe 100644 --- a/Runtime/MP1/CLogBookScreen.cpp +++ b/Runtime/MP1/CLogBookScreen.cpp @@ -212,7 +212,7 @@ void CLogBookScreen::UpdateBodyText() { void CLogBookScreen::UpdateBodyImagesAndText() { const CScannableObjectInfo* scan = x1f0_curViewScans[x1c_rightSel].first.GetObj(); for (CAuiImagePane* pane : xf0_imagePanes) { - pane->SetTextureID0(-1, g_SimplePool); + pane->SetTextureID0({}, g_SimplePool); pane->SetAnimationParms(zeus::skZero2f, 0.f, 0.f); } diff --git a/Runtime/MP1/CMFGame.cpp b/Runtime/MP1/CMFGame.cpp index 7fe8de7b0..d9ef3997a 100644 --- a/Runtime/MP1/CMFGame.cpp +++ b/Runtime/MP1/CMFGame.cpp @@ -273,10 +273,10 @@ CMFGameLoader::CMFGameLoader() : CMFGameLoaderBase("CMFGameLoader") { break; } - if (g_GameState->CurrentWorldAssetId() == 0x158EFE17 && g_GameState->CurrentWorldState().GetCurrentAreaId() == 0) { + if (g_GameState->CurrentWorldAssetId() == 0x158EFE17u && g_GameState->CurrentWorldState().GetCurrentAreaId() == 0) { const SObjectTag* strgTag = g_ResFactory->GetResourceIdByName("STRG_IntroLevelLoad"); if (strgTag) - g_GameState->GetWorldTransitionManager()->EnableTransition(-1, strgTag->id, 0, false, 0.1f, 16.f, 1.f); + g_GameState->GetWorldTransitionManager()->EnableTransition({}, strgTag->id, 0, false, 0.1f, 16.f, 1.f); } } diff --git a/Runtime/MP1/CMakeLists.txt b/Runtime/MP1/CMakeLists.txt index 910dd755f..e43c01e42 100644 --- a/Runtime/MP1/CMakeLists.txt +++ b/Runtime/MP1/CMakeLists.txt @@ -7,6 +7,19 @@ add_subdirectory(World) #endif () set(MP1_SOURCES + Tweaks/CTweakAutoMapper.hpp Tweaks/CTweakAutoMapper.cpp + Tweaks/CTweakBall.hpp Tweaks/CTweakBall.cpp + Tweaks/CTweakGame.hpp Tweaks/CTweakGame.cpp + Tweaks/CTweakGui.hpp Tweaks/CTweakGui.cpp + Tweaks/CTweakGuiColors.hpp Tweaks/CTweakGuiColors.cpp + Tweaks/CTweakGunRes.hpp Tweaks/CTweakGunRes.cpp + Tweaks/CTweakParticle.hpp Tweaks/CTweakParticle.cpp + Tweaks/CTweakPlayer.hpp Tweaks/CTweakPlayer.cpp + Tweaks/CTweakPlayerControl.hpp Tweaks/CTweakPlayerControl.cpp + Tweaks/CTweakPlayerGun.hpp Tweaks/CTweakPlayerGun.cpp + Tweaks/CTweakPlayerRes.hpp Tweaks/CTweakPlayerRes.cpp + Tweaks/CTweakSlideShow.hpp Tweaks/CTweakSlideShow.cpp + Tweaks/CTweakTargeting.hpp Tweaks/CTweakTargeting.cpp CTweaks.hpp CTweaks.cpp CInGameTweakManager.hpp CGBASupport.hpp CGBASupport.cpp diff --git a/Runtime/MP1/CMemoryCardDriver.cpp b/Runtime/MP1/CMemoryCardDriver.cpp index 203e0bddb..fbcc9675b 100644 --- a/Runtime/MP1/CMemoryCardDriver.cpp +++ b/Runtime/MP1/CMemoryCardDriver.cpp @@ -43,7 +43,7 @@ ECardResult CMemoryCardDriver::SFileInfo::FileRead() { if (x24_saveFileData.empty()) { return ECardResult::CRC_MISMATCH; } - u32 existingCrc = hecl::SBig(*reinterpret_cast(x24_saveFileData.data())); + u32 existingCrc = CBasics::SwapBytes(*reinterpret_cast(x24_saveFileData.data())); u32 newCrc = CCRC32::Calculate(x24_saveFileData.data() + 4, x24_saveFileData.size() - 4); if (existingCrc == newCrc) { u32 saveDataOff; diff --git a/Runtime/MP1/CPlayerVisor.cpp b/Runtime/MP1/CPlayerVisor.cpp index 97d43b57f..bd0e18671 100644 --- a/Runtime/MP1/CPlayerVisor.cpp +++ b/Runtime/MP1/CPlayerVisor.cpp @@ -479,7 +479,7 @@ void CPlayerVisor::UpdateCurrentVisor(float transFactor) { case CPlayerState::EPlayerVisor::Scan: { zeus::CColor dimColor = zeus::CColor::lerp(g_tweakGuiColors->GetScanVisorHudLightMultiply(), zeus::skWhite, 1.f - transFactor); - x64_scanDim.SetFilter(EFilterType::Multiply, EFilterShape::Fullscreen, 0.f, dimColor, -1); + x64_scanDim.SetFilter(EFilterType::Multiply, EFilterShape::Fullscreen, 0.f, dimColor, CAssetId()); break; } default: @@ -501,7 +501,7 @@ void CPlayerVisor::FinishTransitionIn() { case CPlayerState::EPlayerVisor::Scan: { zeus::CColor dimColor = zeus::CColor::lerp(g_tweakGuiColors->GetScanVisorScreenDimColor(), g_tweakGuiColors->GetScanVisorHudLightMultiply(), x2c_scanDimInterp); - x64_scanDim.SetFilter(EFilterType::Multiply, EFilterShape::Fullscreen, 0.f, dimColor, -1); + x64_scanDim.SetFilter(EFilterType::Multiply, EFilterShape::Fullscreen, 0.f, dimColor, {}); if (!x5c_visorLoopSfx) x5c_visorLoopSfx = CSfxManager::SfxStart(SFXui_visor_scan_lp, x24_visorSfxVol, 0.f, false, 0x7f, true, kInvalidAreaId); @@ -527,7 +527,7 @@ void CPlayerVisor::BeginTransitionIn(const CStateManager&) { break; case CPlayerState::EPlayerVisor::Scan: CSfxManager::SfxStart(SFXui_into_visor, x24_visorSfxVol, 0.f, false, 0x7f, false, kInvalidAreaId); - x64_scanDim.SetFilter(EFilterType::Multiply, EFilterShape::Fullscreen, 0.f, zeus::skWhite, -1); + x64_scanDim.SetFilter(EFilterType::Multiply, EFilterShape::Fullscreen, 0.f, zeus::skWhite, {}); break; case CPlayerState::EPlayerVisor::Thermal: CSfxManager::SfxStart(SFXui_into_visor, x24_visorSfxVol, 0.f, false, 0x7f, false, kInvalidAreaId); @@ -618,7 +618,7 @@ void CPlayerVisor::Update(float dt, const CStateManager& mgr) { } else if (curVisor == CPlayerState::EPlayerVisor::Scan) { zeus::CColor dimColor = zeus::CColor::lerp(g_tweakGuiColors->GetScanVisorScreenDimColor(), g_tweakGuiColors->GetScanVisorHudLightMultiply(), x2c_scanDimInterp); - x64_scanDim.SetFilter(EFilterType::Multiply, EFilterShape::Fullscreen, 0.f, dimColor, -1); + x64_scanDim.SetFilter(EFilterType::Multiply, EFilterShape::Fullscreen, 0.f, dimColor, {}); } } diff --git a/Runtime/MP1/CSamusHud.cpp b/Runtime/MP1/CSamusHud.cpp index f331b89f7..66a90b85e 100644 --- a/Runtime/MP1/CSamusHud.cpp +++ b/Runtime/MP1/CSamusHud.cpp @@ -865,7 +865,7 @@ void CSamusHud::UpdateHudDynamicLights(float dt, const CStateManager& mgr) { } } -void CSamusHud::UpdateHudDamage(float dt, const CStateManager& mgr, DataSpec::ITweakGui::EHelmetVisMode helmetVis) { +void CSamusHud::UpdateHudDamage(float dt, const CStateManager& mgr, Tweaks::ITweakGui::EHelmetVisMode helmetVis) { CPlayer& player = mgr.GetPlayer(); if (player.WasDamaged() && mgr.GetGameState() == CStateManager::EGameState::Running) x3e8_damageTIme += dt; @@ -1008,7 +1008,7 @@ void CSamusHud::UpdateStaticInterference(float dt, const CStateManager& mgr) { if (x510_staticInterp > 0.f) { zeus::CColor color = zeus::skWhite; color.a() = x510_staticInterp; - x51c_camFilter2.SetFilter(EFilterType::Blend, EFilterShape::RandomStatic, 0.f, color, -1); + x51c_camFilter2.SetFilter(EFilterType::Blend, EFilterShape::RandomStatic, 0.f, color, {}); } else { x51c_camFilter2.DisableFilter(0.f); } @@ -1191,7 +1191,7 @@ void CSamusHud::Update(float dt, const CStateManager& mgr, CInGameGuiManager::EH UpdateStaticInterference(dt, mgr); - if (helmetVis != DataSpec::ITweakGui::EHelmetVisMode::ReducedUpdate) { + if (helmetVis != Tweaks::ITweakGui::EHelmetVisMode::ReducedUpdate) { if (x2bc_nextState != EHudState::None) { UpdateEnergy(dt, mgr, false); UpdateFreeLook(dt, mgr); diff --git a/Runtime/MP1/CSamusHud.hpp b/Runtime/MP1/CSamusHud.hpp index f8ca033bb..70350a87c 100644 --- a/Runtime/MP1/CSamusHud.hpp +++ b/Runtime/MP1/CSamusHud.hpp @@ -193,7 +193,7 @@ class CSamusHud { int FindEmptyHudLightSlot(const CLight& light) const; zeus::CColor GetVisorHudLightColor(const zeus::CColor& color, const CStateManager& mgr) const; void UpdateHudDynamicLights(float dt, const CStateManager& mgr); - void UpdateHudDamage(float dt, const CStateManager& mgr, DataSpec::ITweakGui::EHelmetVisMode helmetVis); + void UpdateHudDamage(float dt, const CStateManager& mgr, Tweaks::ITweakGui::EHelmetVisMode helmetVis); void UpdateStaticSfx(CSfxHandle& handle, float& cycleTimer, u16 sfxId, float dt, float oldStaticInterp, float staticThreshold); void UpdateStaticInterference(float dt, const CStateManager& mgr); diff --git a/Runtime/MP1/CSlideShow.cpp b/Runtime/MP1/CSlideShow.cpp index 0e39f11a3..f827c7d7d 100644 --- a/Runtime/MP1/CSlideShow.cpp +++ b/Runtime/MP1/CSlideShow.cpp @@ -30,7 +30,7 @@ CSlideShow::CSlideShow() : CIOWin("SlideShow"), x130_(g_tweakSlideShow->GetX54() xf8_stickTextures.reserve(18); x108_buttonTextures.reserve(8); - SObjectTag txtrTag(FOURCC('TXTR'), 0); + SObjectTag txtrTag(FOURCC('TXTR'), CAssetId()); for (const auto& lStickId : g_tweakPlayerRes->x24_lStick) { txtrTag.id = lStickId; xf8_stickTextures.emplace_back(g_SimplePool->GetObj(txtrTag)); diff --git a/Runtime/MP1/CTweaks.cpp b/Runtime/MP1/CTweaks.cpp index 1bfdd8820..899fb32df 100644 --- a/Runtime/MP1/CTweaks.cpp +++ b/Runtime/MP1/CTweaks.cpp @@ -1,18 +1,18 @@ #include "Runtime/MP1/CTweaks.hpp" -#include "DataSpec/DNAMP1/Tweaks/CTweakGame.hpp" -#include "DataSpec/DNAMP1/Tweaks/CTweakPlayer.hpp" -#include "DataSpec/DNAMP1/Tweaks/CTweakPlayerControl.hpp" -#include "DataSpec/DNAMP1/Tweaks/CTweakGunRes.hpp" -#include "DataSpec/DNAMP1/Tweaks/CTweakPlayerRes.hpp" -#include "DataSpec/DNAMP1/Tweaks/CTweakSlideShow.hpp" -#include "DataSpec/DNAMP1/Tweaks/CTweakAutoMapper.hpp" -#include "DataSpec/DNAMP1/Tweaks/CTweakTargeting.hpp" -#include "DataSpec/DNAMP1/Tweaks/CTweakGui.hpp" -#include "DataSpec/DNAMP1/Tweaks/CTweakParticle.hpp" -#include "DataSpec/DNAMP1/Tweaks/CTweakBall.hpp" -#include "DataSpec/DNAMP1/Tweaks/CTweakGuiColors.hpp" -#include "DataSpec/DNAMP1/Tweaks/CTweakPlayerGun.hpp" +#include "Runtime/MP1/Tweaks/CTweakGame.hpp" +#include "Runtime/MP1/Tweaks/CTweakPlayer.hpp" +#include "Runtime/MP1/Tweaks/CTweakPlayerControl.hpp" +#include "Runtime/MP1/Tweaks/CTweakGunRes.hpp" +#include "Runtime/MP1/Tweaks/CTweakPlayerRes.hpp" +#include "Runtime/MP1/Tweaks/CTweakSlideShow.hpp" +#include "Runtime/MP1/Tweaks/CTweakAutoMapper.hpp" +#include "Runtime/MP1/Tweaks/CTweakTargeting.hpp" +#include "Runtime/MP1/Tweaks/CTweakGui.hpp" +#include "Runtime/MP1/Tweaks/CTweakParticle.hpp" +#include "Runtime/MP1/Tweaks/CTweakBall.hpp" +#include "Runtime/MP1/Tweaks/CTweakGuiColors.hpp" +#include "Runtime/MP1/Tweaks/CTweakPlayerGun.hpp" #include "Runtime/IMain.hpp" #include "Runtime/GameGlobalObjects.hpp" @@ -26,7 +26,6 @@ namespace metaforce::MP1 { static logvisor::Module Log("MP1::CTweaks"); void CTweaks::RegisterTweaks(hecl::CVarManager* cvarMgr) { -#if 0 // TODO: Migrate tweaks into metaforce std::optional strm; const SObjectTag* tag; @@ -34,14 +33,14 @@ void CTweaks::RegisterTweaks(hecl::CVarManager* cvarMgr) { tag = g_ResFactory->GetResourceIdByName("Particle"); strm.emplace(g_ResFactory->LoadResourceSync(*tag).release(), g_ResFactory->ResourceSize(*tag), CMemoryInStream::EOwnerShip::Owned); - g_tweakParticle = new DataSpec::DNAMP1::CTweakParticle(*strm); + g_tweakParticle = new MP1::CTweakParticle(*strm); g_tweakParticle->initCVars(cvarMgr); /* Player */ tag = g_ResFactory->GetResourceIdByName("Player"); strm.emplace(g_ResFactory->LoadResourceSync(*tag).release(), g_ResFactory->ResourceSize(*tag), CMemoryInStream::EOwnerShip::Owned); - g_tweakPlayer = new DataSpec::DNAMP1::CTweakPlayer(*strm); + g_tweakPlayer = new MP1::CTweakPlayer(*strm); g_tweakPlayer->initCVars(cvarMgr); /* CameraBob */ @@ -54,48 +53,42 @@ void CTweaks::RegisterTweaks(hecl::CVarManager* cvarMgr) { tag = g_ResFactory->GetResourceIdByName("Ball"); strm.emplace(g_ResFactory->LoadResourceSync(*tag).release(), g_ResFactory->ResourceSize(*tag), CMemoryInStream::EOwnerShip::Owned); - g_tweakBall = new DataSpec::DNAMP1::CTweakBall(*strm); + g_tweakBall = new MP1::CTweakBall(*strm); g_tweakBall->initCVars(cvarMgr); /* PlayerGun */ tag = g_ResFactory->GetResourceIdByName("PlayerGun"); strm.emplace(g_ResFactory->LoadResourceSync(*tag).release(), g_ResFactory->ResourceSize(*tag), CMemoryInStream::EOwnerShip::Owned); - g_tweakPlayerGun = new DataSpec::DNAMP1::CTweakPlayerGun(*strm); + g_tweakPlayerGun = new MP1::CTweakPlayerGun(*strm); g_tweakPlayerGun->initCVars(cvarMgr); /* Targeting */ tag = g_ResFactory->GetResourceIdByName("Targeting"); u8* Args = g_ResFactory->LoadResourceSync(*tag).release(); u32 size = g_ResFactory->ResourceSize(*tag); - strm.emplace(Args, size, true); - if (g_Main->IsTrilogy() || g_Main->IsPAL() || g_Main->IsJapanese()) { - g_tweakTargeting = new DataSpec::DNAMP1::CTweakTargeting(*strm); - g_tweakTargeting->initCVars(cvarMgr); - } else { - g_tweakTargeting = new DataSpec::DNAMP1::CTweakTargeting(*strm); - g_tweakTargeting->initCVars(cvarMgr); - } - + strm.emplace(Args, size, CMemoryInStream::EOwnerShip::Owned); + g_tweakTargeting = new MP1::CTweakTargeting(*strm, g_Main->IsTrilogy() || g_Main->IsPAL() || g_Main->IsJapanese()); + g_tweakTargeting->initCVars(cvarMgr); /* Game */ tag = g_ResFactory->GetResourceIdByName("Game"); strm.emplace(g_ResFactory->LoadResourceSync(*tag).release(), g_ResFactory->ResourceSize(*tag), CMemoryInStream::EOwnerShip::Owned); - g_tweakGame = new DataSpec::DNAMP1::CTweakGame(*strm); + g_tweakGame = new MP1::CTweakGame(*strm); g_tweakGame->initCVars(cvarMgr); /* GuiColors */ tag = g_ResFactory->GetResourceIdByName("GuiColors"); strm.emplace(g_ResFactory->LoadResourceSync(*tag).release(), g_ResFactory->ResourceSize(*tag), CMemoryInStream::EOwnerShip::Owned); - g_tweakGuiColors = new DataSpec::DNAMP1::CTweakGuiColors(*strm); + g_tweakGuiColors = new MP1::CTweakGuiColors(*strm); g_tweakGuiColors->initCVars(cvarMgr); /* AutoMapper */ tag = g_ResFactory->GetResourceIdByName("AutoMapper"); strm.emplace(g_ResFactory->LoadResourceSync(*tag).release(), g_ResFactory->ResourceSize(*tag), CMemoryInStream::EOwnerShip::Owned); - g_tweakAutoMapper = new DataSpec::DNAMP1::CTweakAutoMapper(*strm); + g_tweakAutoMapper = new MP1::CTweakAutoMapper(*strm); CMappableObject::ReadAutoMapperTweaks(*g_tweakAutoMapper); g_tweakAutoMapper->initCVars(cvarMgr); @@ -103,20 +96,20 @@ void CTweaks::RegisterTweaks(hecl::CVarManager* cvarMgr) { tag = g_ResFactory->GetResourceIdByName("Gui"); strm.emplace(g_ResFactory->LoadResourceSync(*tag).release(), g_ResFactory->ResourceSize(*tag), CMemoryInStream::EOwnerShip::Owned); - g_tweakGui = new DataSpec::DNAMP1::CTweakGui(*strm); + g_tweakGui = new MP1::CTweakGui(*strm); g_tweakPlayerGun->initCVars(cvarMgr); /* PlayerControls */ tag = g_ResFactory->GetResourceIdByName("PlayerControls"); strm.emplace(g_ResFactory->LoadResourceSync(*tag).release(), g_ResFactory->ResourceSize(*tag), CMemoryInStream::EOwnerShip::Owned); - g_tweakPlayerControl = new DataSpec::DNAMP1::CTweakPlayerControl(*strm); + g_tweakPlayerControl = new MP1::CTweakPlayerControl(*strm); /* PlayerControls2 */ tag = g_ResFactory->GetResourceIdByName("PlayerControls2"); strm.emplace(g_ResFactory->LoadResourceSync(*tag).release(), g_ResFactory->ResourceSize(*tag), CMemoryInStream::EOwnerShip::Owned); - g_tweakPlayerControlAlt = new DataSpec::DNAMP1::CTweakPlayerControl(*strm); + g_tweakPlayerControlAlt = new MP1::CTweakPlayerControl(*strm); g_currentPlayerControl = g_tweakPlayerControl; @@ -124,34 +117,26 @@ void CTweaks::RegisterTweaks(hecl::CVarManager* cvarMgr) { tag = g_ResFactory->GetResourceIdByName("SlideShow"); strm.emplace(g_ResFactory->LoadResourceSync(*tag).release(), g_ResFactory->ResourceSize(*tag), CMemoryInStream::EOwnerShip::Owned); - g_tweakSlideShow = new DataSpec::DNAMP1::CTweakSlideShow(*strm); + g_tweakSlideShow = new MP1::CTweakSlideShow(*strm); g_tweakSlideShow->initCVars(cvarMgr); -#endif } void CTweaks::RegisterResourceTweaks(hecl::CVarManager* cvarMgr) { -#if 0 // TODO: Migrate tweaks into metaforce std::optional strm; const SObjectTag* tag = g_ResFactory->GetResourceIdByName("GunRes"); strm.emplace(g_ResFactory->LoadResourceSync(*tag).release(), g_ResFactory->ResourceSize(*tag), CMemoryInStream::EOwnerShip::Owned); - g_tweakGunRes = new DataSpec::DNAMP1::CTweakGunRes(*strm); + g_tweakGunRes = new MP1::CTweakGunRes(*strm); g_tweakGunRes->ResolveResources(*g_ResFactory); g_tweakGunRes->initCVars(cvarMgr); tag = g_ResFactory->GetResourceIdByName("PlayerRes"); strm.emplace(g_ResFactory->LoadResourceSync(*tag).release(), g_ResFactory->ResourceSize(*tag), CMemoryInStream::EOwnerShip::Owned); - if (g_Main->IsTrilogy() || g_Main->IsPAL() || g_Main->IsJapanese()) { - g_tweakPlayerRes = new DataSpec::DNAMP1::CTweakPlayerRes(*strm); - } else { - g_tweakPlayerRes = new DataSpec::DNAMP1::CTweakPlayerRes(*strm); - } - + g_tweakPlayerRes = new MP1::CTweakPlayerRes(*strm, g_Main->IsTrilogy() || g_Main->IsPAL() || g_Main->IsJapanese()); g_tweakPlayerRes->ResolveResources(*g_ResFactory); g_tweakPlayerRes->initCVars(cvarMgr); -#endif } } // namespace metaforce::MP1 diff --git a/Runtime/MP1/MP1.hpp b/Runtime/MP1/MP1.hpp index 3b88c403d..98a5d99ed 100644 --- a/Runtime/MP1/MP1.hpp +++ b/Runtime/MP1/MP1.hpp @@ -7,7 +7,7 @@ #include "Runtime/IMain.hpp" #include "Runtime/MP1/CTweaks.hpp" #include "Runtime/MP1/CPlayMovie.hpp" -#include "Runtime/IOStreams.hpp" +#include "Runtime/Streams/IOStreams.hpp" #include "Runtime/CBasics.hpp" #include "Runtime/CMemoryCardSys.hpp" #include "Runtime/CResFactory.hpp" diff --git a/DataSpec/DNAMP1/Tweaks/CTweakAutoMapper.cpp b/Runtime/MP1/Tweaks/CTweakAutoMapper.cpp similarity index 78% rename from DataSpec/DNAMP1/Tweaks/CTweakAutoMapper.cpp rename to Runtime/MP1/Tweaks/CTweakAutoMapper.cpp index ae93c7c1e..6701d4673 100644 --- a/DataSpec/DNAMP1/Tweaks/CTweakAutoMapper.cpp +++ b/Runtime/MP1/Tweaks/CTweakAutoMapper.cpp @@ -1,10 +1,11 @@ -#include "DataSpec/DNAMP1/Tweaks/CTweakAutoMapper.hpp" +#include "Runtime/MP1/Tweaks/CTweakAutoMapper.hpp" +#include "Runtime/Streams/IOStreams.hpp" #include #include #define PREFIX(v) std::string_view("tweak.automap." #v) -namespace DataSpec::DNAMP1 { +namespace metaforce::MP1 { namespace { constexpr std::string_view skShowOneMiniMapArea = PREFIX(ShowOneMiniMapArea); constexpr std::string_view skScaleMoveSpeedWithCamDist = PREFIX(ScaleMoveSpeedWithCamDist); @@ -48,6 +49,73 @@ hecl::CVar* tw_mapSurfaceNormColorLinear = nullptr; hecl::CVar* tw_mapSurfaceNormColorConstant = nullptr; } // namespace +CTweakAutoMapper::CTweakAutoMapper(CInputStream& in) { + x4_24_showOneMiniMapArea = in.ReadBool(); + x4_25_ = in.ReadBool(); + x4_26_scaleMoveSpeedWithCamDist = in.ReadBool(); + x8_camDist = in.ReadFloat(); + xc_minCamDist = in.ReadFloat(); + x10_maxCamDist = in.ReadFloat(); + x14_minCamRotateX = in.ReadFloat(); + x18_maxCamRotateX = in.ReadFloat(); + x1c_camAngle = in.ReadFloat(); + x20_ = in.ReadFloat(); + x24_automapperWidgetColor = in.Get(); + x28_miniCamDist = in.ReadFloat(); + x2c_miniCamXAngle = in.ReadFloat(); + x30_miniCamAngle = in.ReadFloat(); + x34_ = in.ReadFloat(); + x38_automapperWidgetMiniColor = in.Get(); + x3c_surfColorVisited = in.Get(); + x40_outlineColorVisited = in.Get(); + x44_surfColorUnvisited = in.Get(); + x48_outlineColorUnvisited = in.Get(); + x4c_surfaceSelectColorVisited = in.Get(); + x50_outlineSelectColorVisited = in.Get(); + x54_mapSurfaceNormColorLinear = in.ReadFloat(); + x58_mapSurfaceNormColorConstant = in.ReadFloat(); + x5c_ = in.ReadFloat(); + x64_openMapScreenTime = in.ReadFloat(); + x68_closeMapScreenTime = in.ReadFloat(); + x6c_hintPanTime = in.ReadFloat(); + x70_zoomUnitsPerFrame = in.ReadFloat(); + x74_rotateDegPerFrame = in.ReadFloat(); + x78_baseMapScreenCameraMoveSpeed = in.ReadFloat(); + x7c_surfaceSelectColorUnvisited = in.Get(); + x80_outlineSelectColorUnvisited = in.Get(); + x84_miniAlphaSurfaceVisited = in.ReadFloat(); + x88_alphaSurfaceVisited = in.ReadFloat(); + x8c_miniAlphaOutlineVisited = in.ReadFloat(); + x90_alphaOutlineVisited = in.ReadFloat(); + x94_miniAlphaSurfaceUnvisited = in.ReadFloat(); + x98_alphaSurfaceUnvisited = in.ReadFloat(); + x9c_miniAlphaOutlineUnvisited = in.ReadFloat(); + xa0_alphaOutlineUnvisited = in.ReadFloat(); + xa4_doorCenter = in.Get(); + xb0_ = in.ReadFloat(); + xb4_ = in.ReadFloat(); + xb8_miniMapViewportWidth = in.ReadFloat(); + xbc_miniMapViewportHeight = in.ReadFloat(); + xc0_miniMapCamDistScale = in.ReadFloat(); + xc4_mapPlaneScaleX = in.ReadFloat(); + xc8_mapPlaneScaleZ = in.ReadFloat(); + xcc_ = in.ReadBool(); + xd0_universeCamDist = in.ReadFloat(); + xd4_minUniverseCamDist = in.ReadFloat(); + xd8_maxUniverseCamDist = in.ReadFloat(); + xdc_switchToFromUniverseTime = in.ReadFloat(); + xe0_camPanUnitsPerFrame = in.ReadFloat(); + xe4_automapperScaleX = in.ReadFloat(); + xe8_automapperScaleZ = in.ReadFloat(); + xec_camVerticalOffset = in.ReadFloat(); + xf0_miniMapSamusModColor = in.Get(); + xf4_areaFlashPulseColor = in.Get(); + xf8_ = in.Get(); + xfc_ = in.Get(); + read_reserved_vector(x100_doorColors, in); + x118_doorBorderColor = in.Get(); + x11c_openDoorColor = in.Get(); +} void CTweakAutoMapper::_tweakListener(hecl::CVar* cv) { if (cv == tw_showOneMiniMapArea) { x4_24_showOneMiniMapArea = cv->toBoolean(); @@ -174,4 +242,4 @@ void CTweakAutoMapper::initCVars(hecl::CVarManager* mgr) { hecl::CVar::EFlags::Game | hecl::CVar::EFlags::Color | hecl::CVar::EFlags::Gui | hecl::CVar::EFlags::Archive); } -} // namespace DataSpec::DNAMP1 \ No newline at end of file +} // namespace metaforce::MP1 \ No newline at end of file diff --git a/Runtime/MP1/Tweaks/CTweakAutoMapper.hpp b/Runtime/MP1/Tweaks/CTweakAutoMapper.hpp new file mode 100644 index 000000000..e9eb143fa --- /dev/null +++ b/Runtime/MP1/Tweaks/CTweakAutoMapper.hpp @@ -0,0 +1,143 @@ +#pragma once + +#include "Runtime/Tweaks/ITweakAutoMapper.hpp" + +#include "Runtime/rstl.hpp" + +namespace hecl { +class CVar; +} + +namespace metaforce::MP1 { +struct CTweakAutoMapper final : public Tweaks::ITweakAutoMapper { + bool x4_24_showOneMiniMapArea;// : 1; + bool x4_25_;// : 1; + bool x4_26_scaleMoveSpeedWithCamDist;// : 1; + float x8_camDist ; + float xc_minCamDist ; + float x10_maxCamDist; + float x14_minCamRotateX; + float x18_maxCamRotateX; + float x1c_camAngle; + float x20_; + zeus::CColor x24_automapperWidgetColor; + float x28_miniCamDist; + float x2c_miniCamXAngle; + float x30_miniCamAngle; + float x34_; + zeus::CColor x38_automapperWidgetMiniColor; + zeus::CColor x3c_surfColorVisited; + zeus::CColor x40_outlineColorVisited; + zeus::CColor x44_surfColorUnvisited; + zeus::CColor x48_outlineColorUnvisited; + zeus::CColor x4c_surfaceSelectColorVisited; + zeus::CColor x50_outlineSelectColorVisited; + float x54_mapSurfaceNormColorLinear; + float x58_mapSurfaceNormColorConstant; + float x5c_; + float x60_ = 0.4f; + float x64_openMapScreenTime; + float x68_closeMapScreenTime; + float x6c_hintPanTime; + float x70_zoomUnitsPerFrame; + float x74_rotateDegPerFrame; + float x78_baseMapScreenCameraMoveSpeed; + zeus::CColor x7c_surfaceSelectColorUnvisited; + zeus::CColor x80_outlineSelectColorUnvisited; + float x84_miniAlphaSurfaceVisited; + float x88_alphaSurfaceVisited; + float x8c_miniAlphaOutlineVisited; + float x90_alphaOutlineVisited; + float x94_miniAlphaSurfaceUnvisited; + float x98_alphaSurfaceUnvisited; + float x9c_miniAlphaOutlineUnvisited; + float xa0_alphaOutlineUnvisited; + /* Originally 4 separate floats */ + zeus::CVector3f xa4_doorCenter; + float xb0_; + float xb4_; + float xb8_miniMapViewportWidth; + float xbc_miniMapViewportHeight; + float xc0_miniMapCamDistScale; + float xc4_mapPlaneScaleX; + float xc8_mapPlaneScaleZ; + bool xcc_; + float xd0_universeCamDist; + float xd4_minUniverseCamDist; + float xd8_maxUniverseCamDist; + float xdc_switchToFromUniverseTime; + float xe0_camPanUnitsPerFrame; + float xe4_automapperScaleX; + float xe8_automapperScaleZ; + float xec_camVerticalOffset; + zeus::CColor xf0_miniMapSamusModColor; + zeus::CColor xf4_areaFlashPulseColor; + zeus::CColor xf8_; + zeus::CColor xfc_; + rstl::reserved_vector x100_doorColors; + zeus::CColor x118_doorBorderColor; + zeus::CColor x11c_openDoorColor; + + CTweakAutoMapper() = default; + CTweakAutoMapper(CInputStream& r); + bool GetShowOneMiniMapArea() const override { return x4_24_showOneMiniMapArea; } + bool GetScaleMoveSpeedWithCamDist() const override { return x4_26_scaleMoveSpeedWithCamDist; } + float GetCamDist() const override { return x8_camDist; } + float GetMinCamDist() const override { return xc_minCamDist; } + float GetMaxCamDist() const override { return x10_maxCamDist; } + float GetMinCamRotateX() const override { return x14_minCamRotateX; } + float GetMaxCamRotateX() const override { return x18_maxCamRotateX; } + float GetCamAngle() const override { return x1c_camAngle; } + const zeus::CColor& GetAutomapperWidgetColor() const override { return x24_automapperWidgetColor; } + float GetMiniCamDist() const override { return x28_miniCamDist; } + float GetMiniCamXAngle() const override { return x2c_miniCamXAngle; } + float GetMiniCamAngle() const override { return x30_miniCamAngle; } + const zeus::CColor& GetAutomapperWidgetMiniColor() const override { return x38_automapperWidgetMiniColor; } + const zeus::CColor& GetSurfaceVisitedColor() const override { return x3c_surfColorVisited; } + const zeus::CColor& GetOutlineVisitedColor() const override { return x40_outlineColorVisited; } + const zeus::CColor& GetSurfaceUnvisitedColor() const override { return x44_surfColorUnvisited; } + const zeus::CColor& GetOutlineUnvisitedColor() const override { return x48_outlineColorUnvisited; } + const zeus::CColor& GetSurfaceSelectVisitedColor() const override { return x4c_surfaceSelectColorVisited; } + const zeus::CColor& GetOutlineSelectVisitedColor() const override { return x50_outlineSelectColorVisited; } + float GetMapSurfaceNormColorLinear() const override { return x54_mapSurfaceNormColorLinear; } + float GetMapSurfaceNormColorConstant() const override { return x58_mapSurfaceNormColorConstant; } + float GetOpenMapScreenTime() const override { return x64_openMapScreenTime; } + float GetCloseMapScreenTime() const override { return x68_closeMapScreenTime; } + float GetHintPanTime() const override { return x6c_hintPanTime; } + float GetCamZoomUnitsPerFrame() const override { return x70_zoomUnitsPerFrame; } + float GetCamRotateDegreesPerFrame() const override { return x74_rotateDegPerFrame; } + float GetBaseMapScreenCameraMoveSpeed() const override { return x78_baseMapScreenCameraMoveSpeed; } + const zeus::CColor& GetSurfaceSelectUnvisitedColor() const override { return x7c_surfaceSelectColorUnvisited; } + const zeus::CColor& GetOutlineSelectUnvisitedColor() const override { return x80_outlineSelectColorUnvisited; } + float GetMiniAlphaSurfaceVisited() const override { return x84_miniAlphaSurfaceVisited; } + float GetAlphaSurfaceVisited() const override { return x88_alphaSurfaceVisited; } + float GetMiniAlphaOutlineVisited() const override { return x8c_miniAlphaOutlineVisited; } + float GetAlphaOutlineVisited() const override { return x90_alphaOutlineVisited; } + float GetMiniAlphaSurfaceUnvisited() const override { return x94_miniAlphaSurfaceUnvisited; } + float GetAlphaSurfaceUnvisited() const override { return x98_alphaSurfaceUnvisited; } + float GetMiniAlphaOutlineUnvisited() const override { return x9c_miniAlphaOutlineUnvisited; } + float GetAlphaOutlineUnvisited() const override { return xa0_alphaOutlineUnvisited; } + const zeus::CVector3f& GetDoorCenter() const override { return xa4_doorCenter; } + float GetMiniMapViewportWidth() const override { return xb8_miniMapViewportWidth; } + float GetMiniMapViewportHeight() const override { return xbc_miniMapViewportHeight; } + float GetMiniMapCamDistScale() const override { return xc0_miniMapCamDistScale; } + float GetMapPlaneScaleX() const override { return xc4_mapPlaneScaleX; } + float GetMapPlaneScaleZ() const override { return xc8_mapPlaneScaleZ; } + float GetUniverseCamDist() const override { return xd0_universeCamDist; } + float GetMinUniverseCamDist() const override { return xd4_minUniverseCamDist; } + float GetMaxUniverseCamDist() const override { return xd8_maxUniverseCamDist; } + float GetSwitchToFromUniverseTime() const override { return xdc_switchToFromUniverseTime; } + float GetCamPanUnitsPerFrame() const override { return xe0_camPanUnitsPerFrame; } + float GetAutomapperScaleX() const override { return xe4_automapperScaleX; } + float GetAutomapperScaleZ() const override { return xe8_automapperScaleZ; } + float GetCamVerticalOffset() const override { return xec_camVerticalOffset; } + const zeus::CColor& GetMiniMapSamusModColor() const override { return xf0_miniMapSamusModColor; } + const zeus::CColor& GetAreaFlashPulseColor() const override { return xf4_areaFlashPulseColor; } + const zeus::CColor& GetDoorColor(int idx) const override { return x100_doorColors[idx]; } + const zeus::CColor& GetOpenDoorColor() const override { return x11c_openDoorColor; } + void initCVars(hecl::CVarManager*) override; + +private: + void _tweakListener(hecl::CVar* cv); +}; +} // namespace DataSpec::DNAMP1 diff --git a/Runtime/MP1/Tweaks/CTweakBall.cpp b/Runtime/MP1/Tweaks/CTweakBall.cpp new file mode 100644 index 000000000..8c66ac43e --- /dev/null +++ b/Runtime/MP1/Tweaks/CTweakBall.cpp @@ -0,0 +1,462 @@ +#include "Runtime/MP1/Tweaks/CTweakBall.hpp" +#include "Runtime/Streams/IOStreams.hpp" + +namespace metaforce::MP1 { +CTweakBall::CTweakBall(CInputStream& in) { + LoadTweaks(in); + x6c_ = -x6c_; + x70_ = -x70_; + x74_ballCameraAnglePerSecond = zeus::degToRad(x74_ballCameraAnglePerSecond); + x90_ = zeus::degToRad(x90_); + xe4_ballGravity = -xe4_ballGravity; + xe8_ballWaterGravity = -xe8_ballWaterGravity; + x15c_ = zeus::degToRad(x15c_); + x16c_ = zeus::degToRad(x16c_); + x174_ = zeus::degToRad(x174_); + x17c_ballCameraChaseDampenAngle = zeus::degToRad(x17c_ballCameraChaseDampenAngle); + x184_ballCameraChaseYawSpeed = zeus::degToRad(x184_ballCameraChaseYawSpeed); + x188_ballCameraChaseAnglePerSecond = zeus::degToRad(x188_ballCameraChaseAnglePerSecond); + x1a8_ballCameraBoostDampenAngle = zeus::degToRad(x1a8_ballCameraBoostDampenAngle); + x1b0_ballCameraBoostYawSpeed = zeus::degToRad(x1b0_ballCameraBoostYawSpeed); + x1b4_ballCameraBoostAnglePerSecond = zeus::degToRad(x1b4_ballCameraBoostAnglePerSecond); + x1ec_maxLeanAngle = zeus::degToRad(x1ec_maxLeanAngle); +} + +void CTweakBall::LoadTweaks(CInputStream& in) { + /* x4_maxTranslationAcceleration[0] */ + x4_maxTranslationAcceleration[0] = in.ReadFloat(); + /* x4_maxTranslationAcceleration[1] */ + x4_maxTranslationAcceleration[1] = in.ReadFloat(); + /* x4_maxTranslationAcceleration[2] */ + x4_maxTranslationAcceleration[2] = in.ReadFloat(); + /* x4_maxTranslationAcceleration[3] */ + x4_maxTranslationAcceleration[3] = in.ReadFloat(); + /* x4_maxTranslationAcceleration[4] */ + x4_maxTranslationAcceleration[4] = in.ReadFloat(); + /* x4_maxTranslationAcceleration[5] */ + x4_maxTranslationAcceleration[5] = in.ReadFloat(); + /* x4_maxTranslationAcceleration[6] */ + x4_maxTranslationAcceleration[6] = in.ReadFloat(); + /* x4_maxTranslationAcceleration[7] */ + x4_maxTranslationAcceleration[7] = in.ReadFloat(); + /* x24_translationFriction[0] */ + x24_translationFriction[0] = in.ReadFloat(); + /* x24_translationFriction[1] */ + x24_translationFriction[1] = in.ReadFloat(); + /* x24_translationFriction[2] */ + x24_translationFriction[2] = in.ReadFloat(); + /* x24_translationFriction[3] */ + x24_translationFriction[3] = in.ReadFloat(); + /* x24_translationFriction[4] */ + x24_translationFriction[4] = in.ReadFloat(); + /* x24_translationFriction[5] */ + x24_translationFriction[5] = in.ReadFloat(); + /* x24_translationFriction[6] */ + x24_translationFriction[6] = in.ReadFloat(); + /* x24_translationFriction[7] */ + x24_translationFriction[7] = in.ReadFloat(); + /* x44_translationMaxSpeed[0] */ + x44_translationMaxSpeed[0] = in.ReadFloat(); + /* x44_translationMaxSpeed[1] */ + x44_translationMaxSpeed[1] = in.ReadFloat(); + /* x44_translationMaxSpeed[2] */ + x44_translationMaxSpeed[2] = in.ReadFloat(); + /* x44_translationMaxSpeed[3] */ + x44_translationMaxSpeed[3] = in.ReadFloat(); + /* x44_translationMaxSpeed[4] */ + x44_translationMaxSpeed[4] = in.ReadFloat(); + /* x44_translationMaxSpeed[5] */ + x44_translationMaxSpeed[5] = in.ReadFloat(); + /* x44_translationMaxSpeed[6] */ + x44_translationMaxSpeed[6] = in.ReadFloat(); + /* x44_translationMaxSpeed[7] */ + x44_translationMaxSpeed[7] = in.ReadFloat(); + /* x64_ */ + x64_ = in.ReadFloat(); + /* x68_ */ + x68_ = in.ReadFloat(); + /* x6c_ */ + x6c_ = in.ReadFloat(); + /* x70_ */ + x70_ = in.ReadFloat(); + /* xc4_ballForwardBrakingAcceleration[0] */ + xc4_ballForwardBrakingAcceleration[0] = in.ReadFloat(); + /* xc4_ballForwardBrakingAcceleration[1] */ + xc4_ballForwardBrakingAcceleration[1] = in.ReadFloat(); + /* xc4_ballForwardBrakingAcceleration[2] */ + xc4_ballForwardBrakingAcceleration[2] = in.ReadFloat(); + /* xc4_ballForwardBrakingAcceleration[3] */ + xc4_ballForwardBrakingAcceleration[3] = in.ReadFloat(); + /* xc4_ballForwardBrakingAcceleration[4] */ + xc4_ballForwardBrakingAcceleration[4] = in.ReadFloat(); + /* xc4_ballForwardBrakingAcceleration[5] */ + xc4_ballForwardBrakingAcceleration[5] = in.ReadFloat(); + /* xc4_ballForwardBrakingAcceleration[6] */ + xc4_ballForwardBrakingAcceleration[6] = in.ReadFloat(); + /* xc4_ballForwardBrakingAcceleration[7] */ + xc4_ballForwardBrakingAcceleration[7] = in.ReadFloat(); + /* xe4_ballGravity */ + xe4_ballGravity = in.ReadFloat(); + /* xe8_ballWaterGravity */ + xe8_ballWaterGravity = in.ReadFloat(); + /* x14c_ */ + x14c_ = in.ReadFloat(); + /* x150_ */ + x150_ = in.ReadFloat(); + /* x158_ */ + x158_ = in.ReadFloat(); + /* x1dc_minimumAlignmentSpeed */ + x1dc_minimumAlignmentSpeed = in.ReadFloat(); + /* x1e0_tireness */ + x1e0_tireness = in.ReadFloat(); + /* x1ec_maxLeanAngle */ + x1ec_maxLeanAngle = in.ReadFloat(); + /* x1f0_tireToMarbleThresholdSpeed */ + x1f0_tireToMarbleThresholdSpeed = in.ReadFloat(); + /* x1f4_marbleToTireThresholdSpeed */ + x1f4_marbleToTireThresholdSpeed = in.ReadFloat(); + /* x1f8_forceToLeanGain */ + x1f8_forceToLeanGain = in.ReadFloat(); + /* x1fc_leanTrackingGain */ + x1fc_leanTrackingGain = in.ReadFloat(); + /* x74_ballCameraAnglePerSecond */ + x74_ballCameraAnglePerSecond = in.ReadFloat(); + /* x78_ballCameraOffset */ + x78_ballCameraOffset = in.Get(); + /* x84_ballCameraMinSpeedDistance */ + x84_ballCameraMinSpeedDistance = in.ReadFloat(); + /* x88_ballCameraMaxSpeedDistance */ + x88_ballCameraMaxSpeedDistance = in.ReadFloat(); + /* x8c_ballCameraBackwardsDistance */ + x8c_ballCameraBackwardsDistance = in.ReadFloat(); + /* x90_ */ + x90_ = in.ReadFloat(); + /* x94_ballCameraSpringConstant */ + x94_ballCameraSpringConstant = in.ReadFloat(); + /* x98_ballCameraSpringMax */ + x98_ballCameraSpringMax = in.ReadFloat(); + /* x9c_ballCameraSpringTardis */ + x9c_ballCameraSpringTardis = in.ReadFloat(); + /* xa0_ballCameraCentroidSpringConstant */ + xa0_ballCameraCentroidSpringConstant = in.ReadFloat(); + /* xa4_ballCameraCentroidSpringMax */ + xa4_ballCameraCentroidSpringMax = in.ReadFloat(); + /* xa8_ballCameraCentroidSpringTardis */ + xa8_ballCameraCentroidSpringTardis = in.ReadFloat(); + /* xac_ballCameraCentroidDistanceSpringConstant */ + xac_ballCameraCentroidDistanceSpringConstant = in.ReadFloat(); + /* xb0_ballCameraCentroidDistanceSpringMax */ + xb0_ballCameraCentroidDistanceSpringMax = in.ReadFloat(); + /* xb4_ballCameraCentroidDistanceSpringTardis */ + xb4_ballCameraCentroidDistanceSpringTardis = in.ReadFloat(); + /* xb8_ballCameraLookAtSpringConstant */ + xb8_ballCameraLookAtSpringConstant = in.ReadFloat(); + /* xbc_ballCameraLookAtSpringMax */ + xbc_ballCameraLookAtSpringMax = in.ReadFloat(); + /* xc0_ballCameraLookAtSpringTardis */ + xc0_ballCameraLookAtSpringTardis = in.ReadFloat(); + /* x154_ */ + x154_ = in.ReadFloat(); + /* x15c_ */ + x15c_ = in.ReadFloat(); + /* x160_ */ + x160_ = in.ReadFloat(); + /* x164_ */ + x164_ = in.ReadFloat(); + /* x168_ */ + x168_ = in.ReadFloat(); + /* x16c_ */ + x16c_ = in.ReadFloat(); + /* x170_conservativeDoorCamDistance */ + x170_conservativeDoorCamDistance = in.ReadFloat(); + /* x174_ */ + x174_ = in.ReadFloat(); + /* x178_ballCameraChaseElevation */ + x178_ballCameraChaseElevation = in.ReadFloat(); + /* x17c_ballCameraChaseDampenAngle */ + x17c_ballCameraChaseDampenAngle = in.ReadFloat(); + /* x180_ballCameraChaseDistance */ + x180_ballCameraChaseDistance = in.ReadFloat(); + /* x184_ballCameraChaseYawSpeed */ + x184_ballCameraChaseYawSpeed = in.ReadFloat(); + /* x188_ballCameraChaseAnglePerSecond */ + x188_ballCameraChaseAnglePerSecond = in.ReadFloat(); + /* x18c_ballCameraChaseLookAtOffset */ + x18c_ballCameraChaseLookAtOffset = in.Get(); + /* x198_ballCameraChaseSpringConstant */ + x198_ballCameraChaseSpringConstant = in.ReadFloat(); + /* x19c_ballCameraChaseSpringMax */ + x19c_ballCameraChaseSpringMax = in.ReadFloat(); + /* x1a0_ballCameraChaseSpringTardis */ + x1a0_ballCameraChaseSpringTardis = in.ReadFloat(); + /* x1a4_ballCameraBoostElevation */ + x1a4_ballCameraBoostElevation = in.ReadFloat(); + /* x1a8_ballCameraBoostDampenAngle */ + x1a8_ballCameraBoostDampenAngle = in.ReadFloat(); + /* x1ac_ballCameraBoostDistance */ + x1ac_ballCameraBoostDistance = in.ReadFloat(); + /* x1b0_ballCameraBoostYawSpeed */ + x1b0_ballCameraBoostYawSpeed = in.ReadFloat(); + /* x1b4_ballCameraBoostAnglePerSecond */ + x1b4_ballCameraBoostAnglePerSecond = in.ReadFloat(); + /* x1b8_ballCameraBoostLookAtOffset */ + x1b8_ballCameraBoostLookAtOffset = in.Get(); + /* x1c4_ballCameraBoostSpringConstant */ + x1c4_ballCameraBoostSpringConstant = in.ReadFloat(); + /* x1c8_ballCameraBoostSpringMax */ + x1c8_ballCameraBoostSpringMax = in.ReadFloat(); + /* x1cc_ballCameraBoostSpringTardis */ + x1cc_ballCameraBoostSpringTardis = in.ReadFloat(); + /* x1d0_ballCameraControlDistance */ + x1d0_ballCameraControlDistance = in.ReadFloat(); + /* x1d4_ */ + x1d4_ = in.ReadFloat(); + /* x1d8_ */ + x1d8_ = in.ReadFloat(); + /* x1e4_leftStickDivisor */ + x1e4_leftStickDivisor = in.ReadFloat(); + /* x1e8_rightStickDivisor */ + x1e8_rightStickDivisor = in.ReadFloat(); + /* x200_ */ + x200_ = in.ReadFloat(); + /* x204_ballTouchRadius */ + x204_ballTouchRadius = in.ReadFloat(); + /* x20c_boostBallDrainTime */ + x20c_boostBallDrainTime = in.ReadFloat(); + /* x218_boostBallMinChargeTime */ + x218_boostBallMinChargeTime = in.ReadFloat(); + /* x21c_boostBallMinRelativeSpeedForDamage */ + x21c_boostBallMinRelativeSpeedForDamage = in.ReadFloat(); + /* x220_boostBallChargeTime0 */ + x220_boostBallChargeTime0 = in.ReadFloat(); + /* x224_boostBallChargeTime1 */ + x224_boostBallChargeTime1 = in.ReadFloat(); + /* x210_boostBallMaxChargeTime */ + x228_boostBallChargeTime2 = x210_boostBallMaxChargeTime = in.ReadFloat(); + /* x22c_boostBallIncrementalSpeed0 */ + x22c_boostBallIncrementalSpeed0 = in.ReadFloat(); + /* x230_boostBallIncrementalSpeed1 */ + x230_boostBallIncrementalSpeed1 = in.ReadFloat(); + /* x234_boostBallIncrementalSpeed2 */ + x234_boostBallIncrementalSpeed2 = in.ReadFloat(); +} + +void CTweakBall::PutTo(COutputStream& out) { + /* x4_maxTranslationAcceleration[0] */ + out.Put(x4_maxTranslationAcceleration[0]); + /* x4_maxTranslationAcceleration[1] */ + out.Put(x4_maxTranslationAcceleration[1]); + /* x4_maxTranslationAcceleration[2] */ + out.Put(x4_maxTranslationAcceleration[2]); + /* x4_maxTranslationAcceleration[3] */ + out.Put(x4_maxTranslationAcceleration[3]); + /* x4_maxTranslationAcceleration[4] */ + out.Put(x4_maxTranslationAcceleration[4]); + /* x4_maxTranslationAcceleration[5] */ + out.Put(x4_maxTranslationAcceleration[5]); + /* x4_maxTranslationAcceleration[6] */ + out.Put(x4_maxTranslationAcceleration[6]); + /* x4_maxTranslationAcceleration[7] */ + out.Put(x4_maxTranslationAcceleration[7]); + /* x24_translationFriction[0] */ + out.Put(x24_translationFriction[0]); + /* x24_translationFriction[1] */ + out.Put(x24_translationFriction[1]); + /* x24_translationFriction[2] */ + out.Put(x24_translationFriction[2]); + /* x24_translationFriction[3] */ + out.Put(x24_translationFriction[3]); + /* x24_translationFriction[4] */ + out.Put(x24_translationFriction[4]); + /* x24_translationFriction[5] */ + out.Put(x24_translationFriction[5]); + /* x24_translationFriction[6] */ + out.Put(x24_translationFriction[6]); + /* x24_translationFriction[7] */ + out.Put(x24_translationFriction[7]); + /* x44_translationMaxSpeed[0] */ + out.Put(x44_translationMaxSpeed[0]); + /* x44_translationMaxSpeed[1] */ + out.Put(x44_translationMaxSpeed[1]); + /* x44_translationMaxSpeed[2] */ + out.Put(x44_translationMaxSpeed[2]); + /* x44_translationMaxSpeed[3] */ + out.Put(x44_translationMaxSpeed[3]); + /* x44_translationMaxSpeed[4] */ + out.Put(x44_translationMaxSpeed[4]); + /* x44_translationMaxSpeed[5] */ + out.Put(x44_translationMaxSpeed[5]); + /* x44_translationMaxSpeed[6] */ + out.Put(x44_translationMaxSpeed[6]); + /* x44_translationMaxSpeed[7] */ + out.Put(x44_translationMaxSpeed[7]); + /* x64_ */ + out.Put(x64_); + /* x68_ */ + out.Put(x68_); + /* x6c_ */ + out.Put(x6c_); + /* x70_ */ + out.Put(x70_); + /* xc4_ballForwardBrakingAcceleration[0] */ + out.Put(xc4_ballForwardBrakingAcceleration[0]); + /* xc4_ballForwardBrakingAcceleration[1] */ + out.Put(xc4_ballForwardBrakingAcceleration[1]); + /* xc4_ballForwardBrakingAcceleration[2] */ + out.Put(xc4_ballForwardBrakingAcceleration[2]); + /* xc4_ballForwardBrakingAcceleration[3] */ + out.Put(xc4_ballForwardBrakingAcceleration[3]); + /* xc4_ballForwardBrakingAcceleration[4] */ + out.Put(xc4_ballForwardBrakingAcceleration[4]); + /* xc4_ballForwardBrakingAcceleration[5] */ + out.Put(xc4_ballForwardBrakingAcceleration[5]); + /* xc4_ballForwardBrakingAcceleration[6] */ + out.Put(xc4_ballForwardBrakingAcceleration[6]); + /* xc4_ballForwardBrakingAcceleration[7] */ + out.Put(xc4_ballForwardBrakingAcceleration[7]); + /* xe4_ballGravity */ + out.Put(xe4_ballGravity); + /* xe8_ballWaterGravity */ + out.Put(xe8_ballWaterGravity); + /* x14c_ */ + out.Put(x14c_); + /* x150_ */ + out.Put(x150_); + /* x158_ */ + out.Put(x158_); + /* x1dc_minimumAlignmentSpeed */ + out.Put(x1dc_minimumAlignmentSpeed); + /* x1e0_tireness */ + out.Put(x1e0_tireness); + /* x1ec_maxLeanAngle */ + out.Put(x1ec_maxLeanAngle); + /* x1f0_tireToMarbleThresholdSpeed */ + out.Put(x1f0_tireToMarbleThresholdSpeed); + /* x1f4_marbleToTireThresholdSpeed */ + out.Put(x1f4_marbleToTireThresholdSpeed); + /* x1f8_forceToLeanGain */ + out.Put(x1f8_forceToLeanGain); + /* x1fc_leanTrackingGain */ + out.Put(x1fc_leanTrackingGain); + /* x74_ballCameraAnglePerSecond */ + out.Put(x74_ballCameraAnglePerSecond); + /* x78_ballCameraOffset */ + out.Put(x78_ballCameraOffset); + /* x84_ballCameraMinSpeedDistance */ + out.Put(x84_ballCameraMinSpeedDistance); + /* x88_ballCameraMaxSpeedDistance */ + out.Put(x88_ballCameraMaxSpeedDistance); + /* x8c_ballCameraBackwardsDistance */ + out.Put(x8c_ballCameraBackwardsDistance); + /* x90_ */ + out.Put(x90_); + /* x94_ballCameraSpringConstant */ + out.Put(x94_ballCameraSpringConstant); + /* x98_ballCameraSpringMax */ + out.Put(x98_ballCameraSpringMax); + /* x9c_ballCameraSpringTardis */ + out.Put(x9c_ballCameraSpringTardis); + /* xa0_ballCameraCentroidSpringConstant */ + out.Put(xa0_ballCameraCentroidSpringConstant); + /* xa4_ballCameraCentroidSpringMax */ + out.Put(xa4_ballCameraCentroidSpringMax); + /* xa8_ballCameraCentroidSpringTardis */ + out.Put(xa8_ballCameraCentroidSpringTardis); + /* xac_ballCameraCentroidDistanceSpringConstant */ + out.Put(xac_ballCameraCentroidDistanceSpringConstant); + /* xb0_ballCameraCentroidDistanceSpringMax */ + out.Put(xb0_ballCameraCentroidDistanceSpringMax); + /* xb4_ballCameraCentroidDistanceSpringTardis */ + out.Put(xb4_ballCameraCentroidDistanceSpringTardis); + /* xb8_ballCameraLookAtSpringConstant */ + out.Put(xb8_ballCameraLookAtSpringConstant); + /* xbc_ballCameraLookAtSpringMax */ + out.Put(xbc_ballCameraLookAtSpringMax); + /* xc0_ballCameraLookAtSpringTardis */ + out.Put(xc0_ballCameraLookAtSpringTardis); + /* x154_ */ + out.Put(x154_); + /* x15c_ */ + out.Put(x15c_); + /* x160_ */ + out.Put(x160_); + /* x164_ */ + out.Put(x164_); + /* x168_ */ + out.Put(x168_); + /* x16c_ */ + out.Put(x16c_); + /* x170_conservativeDoorCamDistance */ + out.Put(x170_conservativeDoorCamDistance); + /* x174_ */ + out.Put(x174_); + /* x178_ballCameraChaseElevation */ + out.Put(x178_ballCameraChaseElevation); + /* x17c_ballCameraChaseDampenAngle */ + out.Put(x17c_ballCameraChaseDampenAngle); + /* x180_ballCameraChaseDistance */ + out.Put(x180_ballCameraChaseDistance); + /* x184_ballCameraChaseYawSpeed */ + out.Put(x184_ballCameraChaseYawSpeed); + /* x188_ballCameraChaseAnglePerSecond */ + out.Put(x188_ballCameraChaseAnglePerSecond); + /* x18c_ballCameraChaseLookAtOffset */ + out.Put(x18c_ballCameraChaseLookAtOffset); + /* x198_ballCameraChaseSpringConstant */ + out.Put(x198_ballCameraChaseSpringConstant); + /* x19c_ballCameraChaseSpringMax */ + out.Put(x19c_ballCameraChaseSpringMax); + /* x1a0_ballCameraChaseSpringTardis */ + out.Put(x1a0_ballCameraChaseSpringTardis); + /* x1a4_ballCameraBoostElevation */ + out.Put(x1a4_ballCameraBoostElevation); + /* x1a8_ballCameraBoostDampenAngle */ + out.Put(x1a8_ballCameraBoostDampenAngle); + /* x1ac_ballCameraBoostDistance */ + out.Put(x1ac_ballCameraBoostDistance); + /* x1b0_ballCameraBoostYawSpeed */ + out.Put(x1b0_ballCameraBoostYawSpeed); + /* x1b4_ballCameraBoostAnglePerSecond */ + out.Put(x1b4_ballCameraBoostAnglePerSecond); + /* x1b8_ballCameraBoostLookAtOffset */ + out.Put(x1b8_ballCameraBoostLookAtOffset); + /* x1c4_ballCameraBoostSpringConstant */ + out.Put(x1c4_ballCameraBoostSpringConstant); + /* x1c8_ballCameraBoostSpringMax */ + out.Put(x1c8_ballCameraBoostSpringMax); + /* x1cc_ballCameraBoostSpringTardis */ + out.Put(x1cc_ballCameraBoostSpringTardis); + /* x1d0_ballCameraControlDistance */ + out.Put(x1d0_ballCameraControlDistance); + /* x1d4_ */ + out.Put(x1d4_); + /* x1d8_ */ + out.Put(x1d8_); + /* x1e4_leftStickDivisor */ + out.Put(x1e4_leftStickDivisor); + /* x1e8_rightStickDivisor */ + out.Put(x1e8_rightStickDivisor); + /* x200_ */ + out.Put(x200_); + /* x204_ballTouchRadius */ + out.Put(x204_ballTouchRadius); + /* x20c_boostBallDrainTime */ + out.Put(x20c_boostBallDrainTime); + /* x218_boostBallMinChargeTime */ + out.Put(x218_boostBallMinChargeTime); + /* x21c_boostBallMinRelativeSpeedForDamage */ + out.Put(x21c_boostBallMinRelativeSpeedForDamage); + /* x220_boostBallChargeTime0 */ + out.Put(x220_boostBallChargeTime0); + /* x224_boostBallChargeTime1 */ + out.Put(x224_boostBallChargeTime1); + /* x210_boostBallMaxChargeTime */ + out.Put(x210_boostBallMaxChargeTime); + /* x22c_boostBallIncrementalSpeed0 */ + out.Put(x22c_boostBallIncrementalSpeed0); + /* x230_boostBallIncrementalSpeed1 */ + out.Put(x230_boostBallIncrementalSpeed1); + /* x234_boostBallIncrementalSpeed2 */ + out.Put(x234_boostBallIncrementalSpeed2); +} +} // namespace metaforce::MP1 diff --git a/Runtime/MP1/Tweaks/CTweakBall.hpp b/Runtime/MP1/Tweaks/CTweakBall.hpp new file mode 100644 index 000000000..6a9c0f092 --- /dev/null +++ b/Runtime/MP1/Tweaks/CTweakBall.hpp @@ -0,0 +1,199 @@ +#pragma once + +#include "Runtime/Tweaks/ITweakBall.hpp" +#include "zeus/CVector3f.hpp" + +namespace metaforce::MP1 { +struct CTweakBall final : public Tweaks::ITweakBall { + float x4_maxTranslationAcceleration[8]; + float x24_translationFriction[8]; + float x44_translationMaxSpeed[8]; + float x64_; + float x68_; + float x6c_; + float x70_; + float x74_ballCameraAnglePerSecond; + zeus::CVector3f x78_ballCameraOffset; + float x84_ballCameraMinSpeedDistance; + float x88_ballCameraMaxSpeedDistance; + float x8c_ballCameraBackwardsDistance; + float x90_; + float x94_ballCameraSpringConstant; + float x98_ballCameraSpringMax; + float x9c_ballCameraSpringTardis; + float xa0_ballCameraCentroidSpringConstant; + float xa4_ballCameraCentroidSpringMax; + float xa8_ballCameraCentroidSpringTardis; + float xac_ballCameraCentroidDistanceSpringConstant; + float xb0_ballCameraCentroidDistanceSpringMax; + float xb4_ballCameraCentroidDistanceSpringTardis; + float xb8_ballCameraLookAtSpringConstant; + float xbc_ballCameraLookAtSpringMax; + float xc0_ballCameraLookAtSpringTardis; + float xc4_ballForwardBrakingAcceleration[8]; + float xe4_ballGravity; + float xe8_ballWaterGravity; + float xec_ = 10000.f; + float xf0_ = 1000.f; + float xf4_ = 40000.f; + float xf8_ = 40000.f; + float xfc_ = 40000.f; + float x100_ = 40000.f; + float x104_ = 40000.f; + float x108_ = 40000.f; + float x10c_ = 10000.f; + float x110_ = 1000.f; + float x114_ = 40000.f; + float x118_ = 40000.f; + float x11c_ = 40000.f; + float x120_ = 40000.f; + float x124_ = 40000.f; + float x128_ = 40000.f; + float x12c_ballSlipFactor[8] = {10000.f, 10000.f, 1000.f, 10000.f, 2000.f, 2000.f, 2000.f, 2000.f}; + float x14c_; + float x150_; + float x158_; + float x154_; + float x15c_; + float x160_; + float x164_; + float x168_; + float x16c_; + float x170_conservativeDoorCamDistance; + float x174_; + float x178_ballCameraChaseElevation; + float x17c_ballCameraChaseDampenAngle; + float x180_ballCameraChaseDistance; + float x184_ballCameraChaseYawSpeed; + float x188_ballCameraChaseAnglePerSecond; + zeus::CVector3f x18c_ballCameraChaseLookAtOffset; + float x198_ballCameraChaseSpringConstant; + float x19c_ballCameraChaseSpringMax; + float x1a0_ballCameraChaseSpringTardis; + float x1a4_ballCameraBoostElevation; + float x1a8_ballCameraBoostDampenAngle; + float x1ac_ballCameraBoostDistance; + float x1b0_ballCameraBoostYawSpeed; + float x1b4_ballCameraBoostAnglePerSecond; + zeus::CVector3f x1b8_ballCameraBoostLookAtOffset; + float x1c4_ballCameraBoostSpringConstant; + float x1c8_ballCameraBoostSpringMax; + float x1cc_ballCameraBoostSpringTardis; + float x1d0_ballCameraControlDistance; + float x1d4_; + float x1d8_; + float x1dc_minimumAlignmentSpeed; + float x1e0_tireness; + float x1ec_maxLeanAngle; + float x1f0_tireToMarbleThresholdSpeed; + float x1f4_marbleToTireThresholdSpeed; + float x1f8_forceToLeanGain; + float x1fc_leanTrackingGain; + float x1e4_leftStickDivisor; + float x1e8_rightStickDivisor; + float x200_; + float x204_ballTouchRadius; + float x208_; + float x20c_boostBallDrainTime; + float x218_boostBallMinChargeTime; + float x21c_boostBallMinRelativeSpeedForDamage; + float x220_boostBallChargeTime0; + float x224_boostBallChargeTime1; + float x228_boostBallChargeTime2; + float x210_boostBallMaxChargeTime; + float x22c_boostBallIncrementalSpeed0; + float x230_boostBallIncrementalSpeed1; + float x234_boostBallIncrementalSpeed2; + + CTweakBall() = default; + CTweakBall(CInputStream& r); + float GetMaxBallTranslationAcceleration(int s) const override { return x4_maxTranslationAcceleration[s]; } + float GetBallTranslationFriction(int s) const override { return x24_translationFriction[s]; } + float GetBallTranslationMaxSpeed(int s) const override { return x44_translationMaxSpeed[s]; } + float GetBallCameraElevation() const override { return 2.736f; } + float GetBallCameraAnglePerSecond() const override { return x74_ballCameraAnglePerSecond; } + const zeus::CVector3f& GetBallCameraOffset() const override { return x78_ballCameraOffset; } + float GetBallCameraMinSpeedDistance() const override { return x84_ballCameraMinSpeedDistance; } + float GetBallCameraMaxSpeedDistance() const override { return x88_ballCameraMaxSpeedDistance; } + float GetBallCameraBackwardsDistance() const override { return x8c_ballCameraBackwardsDistance; } + float GetBallCameraSpringConstant() const override { return x94_ballCameraSpringConstant; } + float GetBallCameraSpringMax() const override { return x98_ballCameraSpringMax; } + float GetBallCameraSpringTardis() const override { return x9c_ballCameraSpringTardis; } + float GetBallCameraCentroidSpringConstant() const override { return xa0_ballCameraCentroidSpringConstant; } + float GetBallCameraCentroidSpringMax() const override { return xa4_ballCameraCentroidSpringMax; } + float GetBallCameraCentroidSpringTardis() const override { return xa8_ballCameraCentroidSpringTardis; } + float GetBallCameraCentroidDistanceSpringConstant() const override { + return xac_ballCameraCentroidDistanceSpringConstant; + } + float GetBallCameraCentroidDistanceSpringMax() const override { return xb0_ballCameraCentroidDistanceSpringMax; } + float GetBallCameraCentroidDistanceSpringTardis() const override { + return xb4_ballCameraCentroidDistanceSpringTardis; + } + float GetBallCameraLookAtSpringConstant() const override { return xb8_ballCameraLookAtSpringConstant; } + float GetBallCameraLookAtSpringMax() const override { return xbc_ballCameraLookAtSpringMax; } + float GetBallCameraLookAtSpringTardis() const override { return xc0_ballCameraLookAtSpringTardis; } + float GetBallForwardBrakingAcceleration(int s) const override { return xc4_ballForwardBrakingAcceleration[s]; } + float GetBallGravity() const override { return xe4_ballGravity; } + float GetBallWaterGravity() const override { return xe8_ballWaterGravity; } + float GetBallSlipFactor(int s) const override { return x12c_ballSlipFactor[s]; } + float GetConservativeDoorCameraDistance() const override { return x170_conservativeDoorCamDistance; } + float GetBallCameraChaseElevation() const override { return x178_ballCameraChaseElevation; } + float GetBallCameraChaseDampenAngle() const override { return x17c_ballCameraChaseDampenAngle; } + float GetBallCameraChaseDistance() const override { return x180_ballCameraChaseDistance; } + float GetBallCameraChaseYawSpeed() const override { return x184_ballCameraChaseYawSpeed; } + float GetBallCameraChaseAnglePerSecond() const override { return x188_ballCameraChaseAnglePerSecond; } + const zeus::CVector3f& GetBallCameraChaseLookAtOffset() const override { return x18c_ballCameraChaseLookAtOffset; } + float GetBallCameraChaseSpringConstant() const override { return x198_ballCameraChaseSpringConstant; } + float GetBallCameraChaseSpringMax() const override { return x19c_ballCameraChaseSpringMax; } + float GetBallCameraChaseSpringTardis() const override { return x1a0_ballCameraChaseSpringTardis; } + float GetBallCameraBoostElevation() const override { return x1a4_ballCameraBoostElevation; } + float GetBallCameraBoostDampenAngle() const override { return x1a8_ballCameraBoostDampenAngle; } + float GetBallCameraBoostDistance() const override { return x1ac_ballCameraBoostDistance; } + float GetBallCameraBoostYawSpeed() const override { return x1b0_ballCameraBoostYawSpeed; } + float GetBallCameraBoostAnglePerSecond() const override { return x1b4_ballCameraBoostAnglePerSecond; } + const zeus::CVector3f& GetBallCameraBoostLookAtOffset() const override { return x1b8_ballCameraBoostLookAtOffset; } + float GetBallCameraBoostSpringConstant() const override { return x1c4_ballCameraBoostSpringConstant; } + float GetBallCameraBoostSpringMax() const override { return x1c8_ballCameraBoostSpringMax; } + float GetBallCameraBoostSpringTardis() const override { return x1cc_ballCameraBoostSpringTardis; } + float GetBallCameraControlDistance() const override { return x1d0_ballCameraControlDistance; } + float GetMinimumAlignmentSpeed() const override { return x1dc_minimumAlignmentSpeed; } + float GetTireness() const override { return x1e0_tireness; } + float GetMaxLeanAngle() const override { return x1ec_maxLeanAngle; } + float GetTireToMarbleThresholdSpeed() const override { return x1f0_tireToMarbleThresholdSpeed; } + float GetMarbleToTireThresholdSpeed() const override { return x1f4_marbleToTireThresholdSpeed; } + float GetForceToLeanGain() const override { return x1f8_forceToLeanGain; } + float GetLeanTrackingGain() const override { return x1fc_leanTrackingGain; } + float GetLeftStickDivisor() const override { return x1e4_leftStickDivisor; } + float GetRightStickDivisor() const override { return x1e8_rightStickDivisor; } + float GetBallTouchRadius() const override { return x204_ballTouchRadius; } + float GetBoostBallDrainTime() const override { return x20c_boostBallDrainTime; } + float GetBoostBallMaxChargeTime() const override { return x210_boostBallMaxChargeTime; } + float GetBoostBallMinChargeTime() const override { return x218_boostBallMinChargeTime; } + float GetBoostBallMinRelativeSpeedForDamage() const override { return x21c_boostBallMinRelativeSpeedForDamage; } + float GetBoostBallChargeTimeTable(int i) const override { + switch (i) { + default: + case 0: + return x220_boostBallChargeTime0; + case 1: + return x224_boostBallChargeTime1; + case 2: + return x228_boostBallChargeTime2; + } + } + float GetBoostBallIncrementalSpeedTable(int i) const override { + switch (i) { + default: + case 0: + return x22c_boostBallIncrementalSpeed0; + case 1: + return x230_boostBallIncrementalSpeed1; + case 2: + return x234_boostBallIncrementalSpeed2; + } + } + + void LoadTweaks(CInputStream& in); + void PutTo(COutputStream& out); +}; +} // namespace metaforce::MP1 diff --git a/DataSpec/DNAMP1/Tweaks/CTweakGame.cpp b/Runtime/MP1/Tweaks/CTweakGame.cpp similarity index 83% rename from DataSpec/DNAMP1/Tweaks/CTweakGame.cpp rename to Runtime/MP1/Tweaks/CTweakGame.cpp index 8b30dbfa1..dc1a8db77 100644 --- a/DataSpec/DNAMP1/Tweaks/CTweakGame.cpp +++ b/Runtime/MP1/Tweaks/CTweakGame.cpp @@ -1,6 +1,8 @@ -#include "DataSpec/DNAMP1/Tweaks/CTweakGame.hpp" +#include "Runtime/MP1/Tweaks/CTweakGame.hpp" #include "Runtime/Camera/CCameraManager.hpp" +#include "Runtime/Streams/CInputStream.hpp" + #include #include @@ -34,7 +36,35 @@ (value) = tmp; \ } -namespace DataSpec::DNAMP1 { +namespace metaforce::MP1 { + +CTweakGame::CTweakGame(CInputStream& in) { + x4_worldPrefix = in.Get(); + x14_defaultRoom = in.Get(); + x24_fov = in.ReadFloat(); + x28_unknown1 = in.ReadBool(); + x29_unknown2 = in.ReadBool(); + x2a_unknown3 = in.ReadBool(); + x2b_splashScreensDisabled = in.ReadBool(); + x2c_unknown5 = in.ReadFloat(); + x30_pressStartDelay = in.ReadFloat(); + x34_wavecapIntensityNormal = in.ReadFloat(); + x38_wavecapIntensityPoison = in.ReadFloat(); + x3c_wavecapIntensityLava = in.ReadFloat(); + x40_rippleIntensityNormal = in.ReadFloat(); + x44_rippleIntensityPoison = in.ReadFloat(); + x48_rippleIntensityLava = in.ReadFloat(); + x4c_fluidEnvBumpScale = in.ReadFloat(); + x50_waterFogDistanceBase = in.ReadFloat(); + x54_waterFogDistanceRange = in.ReadFloat(); + x58_gravityWaterFogDistanceBase = in.ReadFloat(); + x5c_gravityWaterFogDistanceRange = in.ReadFloat(); + x60_hardmodeDamageMult = in.ReadFloat(); + x64_hardmodeWeaponMult = in.ReadFloat(); +#ifdef NDEBUG + x2b_splashScreensDisabled = false; +#endif +} DEFINE_CVAR_GLOBAL(WorldPrefix); DEFINE_CVAR_GLOBAL(FieldOfView); @@ -94,4 +124,4 @@ void CTweakGame::initCVars(hecl::CVarManager* mgr) { CREATE_CVAR(HardModeDamageMult, "", x60_hardmodeDamageMult, skDefaultFlags); CREATE_CVAR(HardModeWeaponMult, "", x64_hardmodeWeaponMult, skDefaultFlags); } -} // namespace DataSpec::DNAMP1 +} // namespace metaforce::MP1 diff --git a/Runtime/MP1/Tweaks/CTweakGame.hpp b/Runtime/MP1/Tweaks/CTweakGame.hpp new file mode 100644 index 000000000..5eb15c8f1 --- /dev/null +++ b/Runtime/MP1/Tweaks/CTweakGame.hpp @@ -0,0 +1,86 @@ +#pragma once + +#include "Runtime/Tweaks/ITweakGame.hpp" + +namespace hecl { +class CVar; +} // namespace hecl + +namespace metaforce { +class CInputStream; +namespace MP1 { + +#define DEFINE_CVAR_GLOBAL(name) extern hecl::CVar* tw_##name; + +DEFINE_CVAR_GLOBAL(WorldPrefix); +DEFINE_CVAR_GLOBAL(FieldOfView); +DEFINE_CVAR_GLOBAL(SplashScreensDisabled); +DEFINE_CVAR_GLOBAL(PressStartDelay); +DEFINE_CVAR_GLOBAL(WavecapIntensityNormal); +DEFINE_CVAR_GLOBAL(WavecapIntensityPoison); +DEFINE_CVAR_GLOBAL(WavecapIntensityLava); +DEFINE_CVAR_GLOBAL(RippleIntensityNormal); +DEFINE_CVAR_GLOBAL(RippleIntensityPoison); +DEFINE_CVAR_GLOBAL(RippleIntensityLava); +DEFINE_CVAR_GLOBAL(FluidEnvBumpScale); +DEFINE_CVAR_GLOBAL(WaterFogDistanceBase); +DEFINE_CVAR_GLOBAL(WaterFogDistanceRange); +DEFINE_CVAR_GLOBAL(GravityWaterFogDistanceBase); +DEFINE_CVAR_GLOBAL(GravityWaterFogDistanceRange); +DEFINE_CVAR_GLOBAL(HardModeDamageMult); +DEFINE_CVAR_GLOBAL(HardModeWeaponMult); + +#undef DEFINE_CVAR_GLOBAL + +struct CTweakGame final : Tweaks::ITweakGame { + std::string x4_worldPrefix; + std::string x14_defaultRoom; + float x24_fov{}; + bool x28_unknown1{}; + bool x29_unknown2{}; + bool x2a_unknown3{}; + bool x2b_splashScreensDisabled{}; + float x2c_unknown5{}; + float x30_pressStartDelay{}; + float x34_wavecapIntensityNormal{}; + float x38_wavecapIntensityPoison{}; + float x3c_wavecapIntensityLava{}; + float x40_rippleIntensityNormal{}; + float x44_rippleIntensityPoison{}; + float x48_rippleIntensityLava{}; + float x4c_fluidEnvBumpScale{}; + float x50_waterFogDistanceBase{}; + float x54_waterFogDistanceRange{}; + float x58_gravityWaterFogDistanceBase{}; + float x5c_gravityWaterFogDistanceRange{}; + float x60_hardmodeDamageMult{}; + float x64_hardmodeWeaponMult{}; + + std::string_view GetWorldPrefix() const override { return x4_worldPrefix; } + std::string_view GetDefaultRoom() const { return x14_defaultRoom; } + bool GetSplashScreensDisabled() const override { return x2b_splashScreensDisabled; } + float GetFirstPersonFOV() const override { return x24_fov; } + float GetPressStartDelay() const override { return x30_pressStartDelay; } + float GetWavecapIntensityNormal() const override { return x34_wavecapIntensityNormal; } + float GetWavecapIntensityPoison() const override { return x38_wavecapIntensityPoison; } + float GetWavecapIntensityLava() const override { return x3c_wavecapIntensityLava; } + float GetRippleIntensityNormal() const override { return x40_rippleIntensityNormal; } + float GetRippleIntensityPoison() const override { return x44_rippleIntensityPoison; } + float GetRippleIntensityLava() const override { return x48_rippleIntensityLava; } + float GetFluidEnvBumpScale() const override { return x4c_fluidEnvBumpScale; } + float GetWaterFogDistanceBase() const override { return x50_waterFogDistanceBase; } + float GetWaterFogDistanceRange() const override { return x54_waterFogDistanceRange; } + float GetGravityWaterFogDistanceBase() const override { return x58_gravityWaterFogDistanceBase; } + float GetGravityWaterFogDistanceRange() const override { return x5c_gravityWaterFogDistanceRange; } + float GetHardModeDamageMultiplier() const override { return x60_hardmodeDamageMult; } + float GetHardModeWeaponMultiplier() const override { return x64_hardmodeWeaponMult; } + CTweakGame() = default; + CTweakGame(CInputStream& in); + + void initCVars(hecl::CVarManager* mgr) override; + +private: + void _tweakListener(hecl::CVar* cv); +}; +} // namespace MP1 +} // namespace metaforce diff --git a/Runtime/MP1/Tweaks/CTweakGui.cpp b/Runtime/MP1/Tweaks/CTweakGui.cpp new file mode 100644 index 000000000..3e47593af --- /dev/null +++ b/Runtime/MP1/Tweaks/CTweakGui.cpp @@ -0,0 +1,183 @@ +#include "Runtime/MP1/Tweaks/CTweakGui.hpp" +#include "Runtime/Streams/IOStreams.hpp" + +namespace metaforce::MP1 { +CTweakGui::CTweakGui(CInputStream& in) +: x4_(in.ReadBool()) +, x8_mapAlphaInterp(in.ReadFloat()) +, xc_pauseBlurFactor(in.ReadFloat()) +, x10_radarXYRadius(in.ReadFloat()) +, x14_(in.ReadFloat()) +, x18_(in.ReadFloat()) +, x1c_(in.ReadFloat()) +, x20_(in.ReadFloat()) +, x24_radarZRadius(in.ReadFloat()) +, x28_radarZCloseRadius(in.ReadFloat()) +, x30_(in.ReadFloat()) +, x34_energyBarFilledSpeed(in.ReadFloat()) +, x38_energyBarShadowSpeed(in.ReadFloat()) +, x3c_energyBarDrainDelay(in.ReadFloat()) +, x40_energyBarAlwaysResetDelay(in.ReadBool()) +, x44_hudDamagePracticalsGainConstant(in.ReadFloat()) +, x48_hudDamagePracticalsGainLinear(in.ReadFloat()) +, x4c_hudDamagePracticalsInitConstant(in.ReadFloat()) +, x50_hudDamagePracticalsInitLinear(in.ReadFloat()) +, x54_hudDamageLightSpotAngle(in.ReadFloat()) +, x58_damageLightAngleC(in.ReadFloat()) +, x5c_damageLightAngleL(in.ReadFloat()) +, x60_damageLightAngleQ(in.ReadFloat()) +, x64_damageLightPreTranslate(in.Get()) +, x70_damageLightCenterTranslate(in.Get()) +, x7c_damageLightXfXAngle(in.ReadFloat()) +, x80_damageLightXfZAngle(in.ReadFloat()) +, x84_hudDecoShakeTranslateVelConstant(in.ReadFloat()) +, x88_hudDecoShakeTranslateVelLinear(in.ReadFloat()) +, x8c_maxDecoDamageShakeTranslate(in.ReadFloat()) +, x90_decoDamageShakeDeceleration(in.ReadFloat()) +, x94_decoShakeGainConstant(in.ReadFloat()) +, x98_decoShakeGainLinear(in.ReadFloat()) +, x9c_decoShakeInitConstant(in.ReadFloat()) +, xa0_decoShakeInitLinear(in.ReadFloat()) +, xa4_maxDecoDamageShakeRotate(in.ReadFloat()) +, xa8_hudCamFovTweak(in.ReadLong()) +, xac_hudCamYTweak(in.ReadLong()) +, xb0_hudCamZTweak(in.ReadLong()) +, xb4_(in.ReadFloat()) +, xb8_(in.ReadFloat()) +, xbc_(in.ReadFloat()) +, xc0_beamVisorMenuAnimTime(in.ReadFloat()) +, xc4_visorBeamMenuItemActiveScale(in.ReadFloat()) +, xc8_visorBeamMenuItemInactiveScale(in.ReadFloat()) +, xcc_visorBeamMenuItemTranslate(in.ReadFloat()) +, xd0_(in.ReadFloat()) +, xd4_(in.ReadLong()) +, xd8_(in.ReadFloat()) +, xdc_(in.ReadFloat()) +, xe0_(in.ReadFloat()) +, xe4_threatRange(in.ReadFloat()) +, xe8_radarScopeCoordRadius(in.ReadFloat()) +, xec_radarPlayerPaintRadius(in.ReadFloat()) +, xf0_radarEnemyPaintRadius(in.ReadFloat()) +, xf4_missileArrowVisTime(in.ReadFloat()) +, xf8_hudVisMode(EHudVisMode(in.ReadLong())) +, xfc_helmetVisMode(EHelmetVisMode(in.ReadLong())) +, x100_enableAutoMapper(in.ReadLong()) +, x104_(in.ReadLong()) +, x108_enableTargetingManager(in.ReadLong()) +, x10c_enablePlayerVisor(in.ReadLong()) +, x110_threatWarningFraction(in.ReadFloat()) +, x114_missileWarningFraction(in.ReadFloat()) +, x118_freeLookFadeTime(in.ReadFloat()) +, x11c_(in.ReadFloat()) +, x120_(in.ReadFloat()) +, x124_(in.ReadFloat()) +, x128_(in.ReadFloat()) +, x12c_freeLookSfxPitchScale(in.ReadFloat()) +, x130_noAbsoluteFreeLookSfxPitch(in.ReadBool()) +, x134_(in.ReadFloat()) +, x138_(in.ReadFloat()) +, x13c_faceReflectionOrthoWidth(in.ReadLong()) +, x140_faceReflectionOrthoHeight(in.ReadLong()) +, x144_faceReflectionDistance(in.ReadLong()) +, x148_faceReflectionHeight(in.ReadLong()) +, x14c_faceReflectionAspect(in.ReadLong()) +, x150_(in.Get()) +, x160_(in.Get()) +, x170_(in.Get()) +, x180_(in.Get()) +, x190_(in.Get()) +, x1a0_missileWarningPulseTime(in.ReadFloat()) +, x1a4_explosionLightFalloffMultConstant(in.ReadFloat()) +, x1a8_explosionLightFalloffMultLinear(in.ReadFloat()) +, x1ac_explosionLightFalloffMultQuadratic(in.ReadFloat()) +, x1b0_(in.ReadFloat()) +, x1b4_hudDamagePeakFactor(in.ReadFloat()) +, x1b8_hudDamageFilterGainConstant(in.ReadFloat()) +, x1bc_hudDamageFilterGainLinear(in.ReadFloat()) +, x1c0_hudDamageFilterInitConstant(in.ReadFloat()) +, x1c4_hudDamageFilterInitLinear(in.ReadFloat()) +, x1c8_energyDrainModPeriod(in.ReadFloat()) +, x1cc_energyDrainSinusoidalPulse(in.ReadBool()) +, x1cd_energyDrainFilterAdditive(in.ReadBool()) +, x1d0_hudDamagePulseDuration(in.ReadFloat()) +, x1d4_hudDamageColorGain(in.ReadFloat()) +, x1d8_hudDecoShakeTranslateGain(in.ReadFloat()) +, x1dc_hudLagOffsetScale(in.ReadFloat()) +, x1e0_(in.ReadFloat()) +, x1e4_(in.ReadFloat()) +, x1e8_(in.ReadFloat()) +, x1ec_(in.ReadFloat()) +, x1f0_(in.ReadFloat()) +, x1f4_(in.ReadFloat()) +, x1f8_(in.ReadFloat()) +, x1fc_(in.ReadFloat()) +, x20c_(in.ReadFloat()) +, x210_scanSidesAngle(in.ReadFloat()) +, x214_scanSidesXScale(in.ReadFloat()) +, x218_scanSidesPositionEnd(in.ReadFloat()) +, x21c_(in.ReadFloat()) +, x220_scanSidesDuration(in.ReadFloat()) +, x224_scanSidesStartTime(in.ReadFloat()) +, x22c_scanDataDotRadius(in.ReadFloat()) +, x230_scanDataDotPosRandMag(in.ReadFloat()) +, x234_scanDataDotSeekDurationMin(in.ReadFloat()) +, x238_scanDataDotSeekDurationMax(in.ReadFloat()) +, x23c_scanDataDotHoldDurationMin(in.ReadFloat()) +, x240_scanDataDotHoldDurationMax(in.ReadFloat()) +, x244_scanAppearanceDuration(in.ReadFloat()) +, x248_scanPaneFlashFactor(in.ReadFloat()) +, x24c_scanPaneFadeInTime(in.ReadFloat()) +, x250_scanPaneFadeOutTime(in.ReadFloat()) +, x254_ballViewportYReduction(in.ReadFloat()) +, x258_scanWindowIdleW(in.ReadFloat()) +, x25c_scanWindowIdleH(in.ReadFloat()) +, x260_scanWindowActiveW(in.ReadFloat()) +, x264_scanWindowActiveH(in.ReadFloat()) +, x268_scanWindowMagnification(in.ReadFloat()) +, x26c_scanWindowScanningAspect(in.ReadFloat()) +, x270_scanSidesPositionStart(in.ReadFloat()) +, x274_showAutomapperInMorphball(in.ReadBool()) +, x278_wtMgrCharsPerSfx(in.ReadFloat()) +, x27c_xrayFogMode(in.ReadLong()) +, x280_xrayFogNearZ(in.ReadFloat()) +, x284_xrayFogFarZ(in.ReadFloat()) +, x288_xrayFogColor(in.Get()) +, x28c_thermalVisorLevel(in.ReadFloat()) +, x290_thermalVisorColor(in.Get()) { + for (u32 i = 0; i < 4; ++i) { + x294_hudLightAddPerVisor[i] = in.Get(); + } + for (u32 i = 0; i < 4; ++i) { + x2a4_hudLightMultiplyPerVisor[i] = in.Get(); + } + + x2b4_hudReflectivityLightColor = in.Get(); + x2b8_hudLightAttMulConstant = in.ReadFloat(); + x2bc_hudLightAttMulLinear = in.ReadFloat(); + x2c0_hudLightAttMulQuadratic = in.ReadFloat(); + read_reserved_vector(x2c4_scanSpeeds, in); + x2d0_creditsTable = in.Get(); + x2e0_creditsFont = in.Get(); + x2f0_japaneseCreditsFont = in.Get(); + x300_ = in.Get(); + x304_ = in.Get(); + x308_ = in.ReadFloat(); + x30c_ = in.ReadFloat(); + x310_ = in.ReadFloat(); + x314_ = in.Get(); + x324_ = in.Get(); + x334_ = in.Get(); + x344_ = in.Get(); + x348_ = in.Get(); + x34c_ = in.Get(); + x350_ = in.Get(); + x354_ = in.Get(); + x358_ = in.Get(); + x35c_ = in.ReadFloat(); + x360_ = in.ReadFloat(); + x364_ = in.ReadFloat(); + + FixupValues(); +} + +} // namespace metaforce::MP1 \ No newline at end of file diff --git a/Runtime/MP1/Tweaks/CTweakGui.hpp b/Runtime/MP1/Tweaks/CTweakGui.hpp new file mode 100644 index 000000000..c4a7df872 --- /dev/null +++ b/Runtime/MP1/Tweaks/CTweakGui.hpp @@ -0,0 +1,332 @@ +#pragma once + +#include "Runtime/Tweaks/ITweakGui.hpp" +#include "rstl.hpp" + +namespace metaforce::MP1 { +struct CTweakGui final : Tweaks::ITweakGui { + bool x4_{}; + float x8_mapAlphaInterp{}; + float xc_pauseBlurFactor{}; + float x10_radarXYRadius{}; + float x14_{}; + float x18_{}; + float x1c_{}; + float x20_{}; + float x24_radarZRadius{}; + float x28_radarZCloseRadius{}; + u32 x2c_ = 0; + float x30_{}; + float x34_energyBarFilledSpeed{}; + float x38_energyBarShadowSpeed{}; + float x3c_energyBarDrainDelay{}; + bool x40_energyBarAlwaysResetDelay{}; + float x44_hudDamagePracticalsGainConstant{}; + float x48_hudDamagePracticalsGainLinear{}; + float x4c_hudDamagePracticalsInitConstant{}; + float x50_hudDamagePracticalsInitLinear{}; + float x54_hudDamageLightSpotAngle{}; + float x58_damageLightAngleC{}; + float x5c_damageLightAngleL{}; + float x60_damageLightAngleQ{}; + zeus::CVector3f x64_damageLightPreTranslate; + zeus::CVector3f x70_damageLightCenterTranslate; + float x7c_damageLightXfXAngle{}; + float x80_damageLightXfZAngle{}; + float x84_hudDecoShakeTranslateVelConstant{}; + float x88_hudDecoShakeTranslateVelLinear{}; + float x8c_maxDecoDamageShakeTranslate{}; + float x90_decoDamageShakeDeceleration{}; + float x94_decoShakeGainConstant{}; + float x98_decoShakeGainLinear{}; + float x9c_decoShakeInitConstant{}; + float xa0_decoShakeInitLinear{}; + float xa4_maxDecoDamageShakeRotate{}; + u32 xa8_hudCamFovTweak{}; + u32 xac_hudCamYTweak{}; + u32 xb0_hudCamZTweak{}; + float xb4_{}; + float xb8_{}; + float xbc_{}; + float xc0_beamVisorMenuAnimTime{}; + float xc4_visorBeamMenuItemActiveScale{}; + float xc8_visorBeamMenuItemInactiveScale{}; + float xcc_visorBeamMenuItemTranslate{}; + float xd0_{}; + u32 xd4_{}; + float xd8_{}; + float xdc_{}; + float xe0_{}; + float xe4_threatRange{}; + float xe8_radarScopeCoordRadius{}; + float xec_radarPlayerPaintRadius{}; + float xf0_radarEnemyPaintRadius{}; + float xf4_missileArrowVisTime{}; + EHudVisMode xf8_hudVisMode; + EHelmetVisMode xfc_helmetVisMode; + u32 x100_enableAutoMapper{}; + u32 x104_{}; + u32 x108_enableTargetingManager{}; + u32 x10c_enablePlayerVisor{}; + float x110_threatWarningFraction{}; + float x114_missileWarningFraction{}; + float x118_freeLookFadeTime{}; + float x11c_{}; + float x120_{}; + float x124_{}; + float x128_{}; + float x12c_freeLookSfxPitchScale{}; + bool x130_noAbsoluteFreeLookSfxPitch{}; + float x134_{}; + float x138_{}; + u32 x13c_faceReflectionOrthoWidth{}; + u32 x140_faceReflectionOrthoHeight{}; + u32 x144_faceReflectionDistance{}; + u32 x148_faceReflectionHeight{}; + u32 x14c_faceReflectionAspect{}; + std::string x150_; + std::string x160_; + std::string x170_; + std::string x180_; + std::string x190_; + float x1a0_missileWarningPulseTime{}; + float x1a4_explosionLightFalloffMultConstant{}; + float x1a8_explosionLightFalloffMultLinear{}; + float x1ac_explosionLightFalloffMultQuadratic{}; + float x1b0_{}; + float x1b4_hudDamagePeakFactor{}; + float x1b8_hudDamageFilterGainConstant{}; + float x1bc_hudDamageFilterGainLinear{}; + float x1c0_hudDamageFilterInitConstant{}; + float x1c4_hudDamageFilterInitLinear{}; + float x1c8_energyDrainModPeriod{}; + bool x1cc_energyDrainSinusoidalPulse{}; + bool x1cd_energyDrainFilterAdditive{}; + float x1d0_hudDamagePulseDuration{}; + float x1d4_hudDamageColorGain{}; + float x1d8_hudDecoShakeTranslateGain{}; + float x1dc_hudLagOffsetScale{}; + float x1e0_{}; + float x1e4_{}; + float x1e8_{}; + float x1ec_{}; + float x1f0_{}; + float x1f4_{}; + float x1f8_{}; + float x1fc_{}; + zeus::CColor x200_; + float x204_xrayBlurScaleLinear = 0.0014f; + float x208_xrayBlurScaleQuadratic = 0.0000525f; + float x20c_{}; + float x210_scanSidesAngle{}; + float x214_scanSidesXScale{}; + float x218_scanSidesPositionEnd{}; + float x21c_{}; + float x220_scanSidesDuration{}; + float x224_scanSidesStartTime{}; + float x228_scanSidesEndTime{}; + float x22c_scanDataDotRadius{}; + float x230_scanDataDotPosRandMag{}; + float x234_scanDataDotSeekDurationMin{}; + float x238_scanDataDotSeekDurationMax{}; + float x23c_scanDataDotHoldDurationMin{}; + float x240_scanDataDotHoldDurationMax{}; + float x244_scanAppearanceDuration{}; + float x248_scanPaneFlashFactor{}; + float x24c_scanPaneFadeInTime{}; + float x250_scanPaneFadeOutTime{}; + float x254_ballViewportYReduction{}; + float x258_scanWindowIdleW{}; + float x25c_scanWindowIdleH{}; + float x260_scanWindowActiveW{}; + float x264_scanWindowActiveH{}; + float x268_scanWindowMagnification{}; + float x26c_scanWindowScanningAspect{}; + float x270_scanSidesPositionStart{}; + bool x274_showAutomapperInMorphball{}; + bool x275_latchArticleText = true; + float x278_wtMgrCharsPerSfx{}; + u32 x27c_xrayFogMode{}; + float x280_xrayFogNearZ{}; + float x284_xrayFogFarZ{}; + zeus::CColor x288_xrayFogColor; + float x28c_thermalVisorLevel{}; + zeus::CColor x290_thermalVisorColor; + std::array x294_hudLightAddPerVisor; + std::array x2a4_hudLightMultiplyPerVisor; + zeus::CColor x2b4_hudReflectivityLightColor; + float x2b8_hudLightAttMulConstant{}; + float x2bc_hudLightAttMulLinear{}; + float x2c0_hudLightAttMulQuadratic{}; + rstl::reserved_vector x2c4_scanSpeeds; + std::string x2d0_creditsTable; + std::string x2e0_creditsFont; + std::string x2f0_japaneseCreditsFont; + zeus::CColor x300_; + zeus::CColor x304_; + float x308_{}; + float x30c_{}; + float x310_{}; + std::string x314_; + std::string x324_; + std::string x334_; + zeus::CColor x344_; + zeus::CColor x348_; + zeus::CColor x34c_; + zeus::CColor x350_; + zeus::CColor x354_; + zeus::CColor x358_; + float x35c_{}; + float x360_{}; + float x364_{}; + + CTweakGui() = default; + CTweakGui(CInputStream& r); + float GetMapAlphaInterpolant() const override { return x8_mapAlphaInterp; } + float GetPauseBlurFactor() const override { return xc_pauseBlurFactor; } + float GetRadarXYRadius() const override { return x10_radarXYRadius; } + float GetRadarZRadius() const override { return x24_radarZRadius; } + float GetRadarZCloseRadius() const override { return x28_radarZCloseRadius; } + float GetEnergyBarFilledSpeed() const override { return x34_energyBarFilledSpeed; } + float GetEnergyBarShadowSpeed() const override { return x38_energyBarShadowSpeed; } + float GetEnergyBarDrainDelay() const override { return x3c_energyBarDrainDelay; } + bool GetEnergyBarAlwaysResetDelay() const override { return x40_energyBarAlwaysResetDelay; } + float GetHudDamagePracticalsGainConstant() const override { return x44_hudDamagePracticalsGainConstant; } + float GetHudDamagePracticalsGainLinear() const override { return x48_hudDamagePracticalsGainLinear; } + float GetHudDamagePracticalsInitConstant() const override { return x4c_hudDamagePracticalsInitConstant; } + float GetHudDamagePracticalsInitLinear() const override { return x50_hudDamagePracticalsInitLinear; } + float GetHudDamageLightSpotAngle() const override { return x54_hudDamageLightSpotAngle; } + float GetDamageLightAngleC() const override { return x58_damageLightAngleC; } + float GetDamageLightAngleL() const override { return x5c_damageLightAngleL; } + float GetDamageLightAngleQ() const override { return x60_damageLightAngleQ; } + zeus::CVector3f GetDamageLightPreTranslate() const override { return x64_damageLightPreTranslate; } + zeus::CVector3f GetDamageLightCenterTranslate() const override { return x70_damageLightCenterTranslate; } + float GetDamageLightXfXAngle() const override { return x7c_damageLightXfXAngle; } + float GetDamageLightXfZAngle() const override { return x80_damageLightXfZAngle; } + float GetHudDecoShakeTranslateVelConstant() const override { return x84_hudDecoShakeTranslateVelConstant; } + float GetHudDecoShakeTranslateVelLinear() const override { return x88_hudDecoShakeTranslateVelLinear; } + float GetMaxDecoDamageShakeTranslate() const override { return x8c_maxDecoDamageShakeTranslate; } + float GetDecoDamageShakeDeceleration() const override { return x90_decoDamageShakeDeceleration; } + float GetDecoShakeGainConstant() const override { return x94_decoShakeGainConstant; } + float GetDecoShakeGainLinear() const override { return x98_decoShakeGainLinear; } + float GetDecoShakeInitConstant() const override { return x9c_decoShakeInitConstant; } + float GetDecoShakeInitLinear() const override { return xa0_decoShakeInitLinear; } + float GetMaxDecoDamageShakeRotate() const override { return xa4_maxDecoDamageShakeRotate; } + u32 GetHudCamFovTweak() const override { return xa8_hudCamFovTweak; } + u32 GetHudCamYTweak() const override { return xac_hudCamYTweak; } + u32 GetHudCamZTweak() const override { return xb0_hudCamZTweak; } + float GetBeamVisorMenuAnimTime() const override { return xc0_beamVisorMenuAnimTime; } + float GetVisorBeamMenuItemActiveScale() const override { return xc4_visorBeamMenuItemActiveScale; } + float GetVisorBeamMenuItemInactiveScale() const override { return xc8_visorBeamMenuItemInactiveScale; } + float GetVisorBeamMenuItemTranslate() const override { return xcc_visorBeamMenuItemTranslate; } + float GetThreatRange() const override { return xe4_threatRange; } + float GetRadarScopeCoordRadius() const override { return xe8_radarScopeCoordRadius; } + float GetRadarPlayerPaintRadius() const override { return xec_radarPlayerPaintRadius; } + float GetRadarEnemyPaintRadius() const override { return xf0_radarEnemyPaintRadius; } + float GetMissileArrowVisTime() const override { return xf4_missileArrowVisTime; } + EHudVisMode GetHudVisMode() const override { return xf8_hudVisMode; } + EHelmetVisMode GetHelmetVisMode() const override { return xfc_helmetVisMode; } + u32 GetEnableAutoMapper() const override { return x100_enableAutoMapper; } + u32 GetEnableTargetingManager() const override { return x108_enableTargetingManager; } + u32 GetEnablePlayerVisor() const override { return x10c_enablePlayerVisor; } + float GetThreatWarningFraction() const override { return x110_threatWarningFraction; } + float GetMissileWarningFraction() const override { return x114_missileWarningFraction; } + float GetFreeLookFadeTime() const override { return x118_freeLookFadeTime; } + float GetFreeLookSfxPitchScale() const override { return x12c_freeLookSfxPitchScale; } + bool GetNoAbsoluteFreeLookSfxPitch() const override { return x130_noAbsoluteFreeLookSfxPitch; } + float GetFaceReflectionOrthoWidth() const override { return x13c_faceReflectionOrthoWidth; } + float GetFaceReflectionOrthoHeight() const override { return x140_faceReflectionOrthoHeight; } + float GetFaceReflectionDistance() const override { return x144_faceReflectionDistance; } + float GetFaceReflectionHeight() const override { return x148_faceReflectionHeight; } + float GetFaceReflectionAspect() const override { return x14c_faceReflectionAspect; } + float GetMissileWarningPulseTime() const override { return x1a0_missileWarningPulseTime; } + float GetExplosionLightFalloffMultConstant() const override { return x1a4_explosionLightFalloffMultConstant; } + float GetExplosionLightFalloffMultLinear() const override { return x1a8_explosionLightFalloffMultLinear; } + float GetExplosionLightFalloffMultQuadratic() const override { return x1ac_explosionLightFalloffMultQuadratic; } + float GetHudDamagePeakFactor() const override { return x1b4_hudDamagePeakFactor; } + float GetHudDamageFilterGainConstant() const override { return x1b8_hudDamageFilterGainConstant; } + float GetHudDamageFilterGainLinear() const override { return x1bc_hudDamageFilterGainLinear; } + float GetHudDamageFilterInitConstant() const override { return x1c0_hudDamageFilterInitConstant; } + float GetHudDamageFilterInitLinear() const override { return x1c4_hudDamageFilterInitLinear; } + float GetEnergyDrainModPeriod() const override { return x1c8_energyDrainModPeriod; } + bool GetEnergyDrainSinusoidalPulse() const override { return x1cc_energyDrainSinusoidalPulse; } + bool GetEnergyDrainFilterAdditive() const override { return x1cd_energyDrainFilterAdditive; } + float GetHudDamagePulseDuration() const override { return x1d0_hudDamagePulseDuration; } + float GetHudDamageColorGain() const override { return x1d4_hudDamageColorGain; } + float GetHudDecoShakeTranslateGain() const override { return x1d8_hudDecoShakeTranslateGain; } + float GetHudLagOffsetScale() const override { return x1dc_hudLagOffsetScale; } + float GetXrayBlurScaleLinear() const override { return x204_xrayBlurScaleLinear; } + float GetXrayBlurScaleQuadratic() const override { return x208_xrayBlurScaleQuadratic; } + float GetScanSidesAngle() const override { return x210_scanSidesAngle; } + float GetScanSidesXScale() const override { return x214_scanSidesXScale; } + float GetScanSidesPositionEnd() const override { return x218_scanSidesPositionEnd; } + float GetScanSidesDuration() const override { return x220_scanSidesDuration; } + float GetScanSidesStartTime() const override { return x224_scanSidesStartTime; } + float GetScanSidesEndTime() const override { return x228_scanSidesEndTime; } + float GetScanDataDotRadius() const override { return x22c_scanDataDotRadius; } + float GetScanDataDotPosRandMagnitude() const override { return x230_scanDataDotPosRandMag; } + float GetScanDataDotSeekDurationMin() const override { return x234_scanDataDotSeekDurationMin; } + float GetScanDataDotSeekDurationMax() const override { return x238_scanDataDotSeekDurationMax; } + float GetScanDataDotHoldDurationMin() const override { return x23c_scanDataDotHoldDurationMin; } + float GetScanDataDotHoldDurationMax() const override { return x240_scanDataDotHoldDurationMax; } + float GetScanAppearanceDuration() const override { return x244_scanAppearanceDuration; } + float GetScanPaneFlashFactor() const override { return x248_scanPaneFlashFactor; } + float GetScanPaneFadeInTime() const override { return x24c_scanPaneFadeInTime; } + float GetScanPaneFadeOutTime() const override { return x250_scanPaneFadeOutTime; } + float GetBallViewportYReduction() const override { return x254_ballViewportYReduction; } + float GetScanWindowIdleWidth() const override { return x258_scanWindowIdleW; } + float GetScanWindowIdleHeight() const override { return x25c_scanWindowIdleH; } + float GetScanWindowActiveWidth() const override { return x260_scanWindowActiveW; } + float GetScanWindowActiveHeight() const override { return x264_scanWindowActiveH; } + float GetScanWindowMagnification() const override { return x268_scanWindowMagnification; } + float GetScanWindowScanningAspect() const override { return x26c_scanWindowScanningAspect; } + float GetScanSidesPositionStart() const override { return x270_scanSidesPositionStart; } + bool GetShowAutomapperInMorphball() const override { return x274_showAutomapperInMorphball; } + bool GetLatchArticleText() const override { return x275_latchArticleText; } + float GetWorldTransManagerCharsPerSfx() const override { return x278_wtMgrCharsPerSfx; } + u32 GetXRayFogMode() const override { return x27c_xrayFogMode; } + float GetXRayFogNearZ() const override { return x280_xrayFogNearZ; } + float GetXRayFogFarZ() const override { return x284_xrayFogFarZ; } + const zeus::CColor& GetXRayFogColor() const override { return x288_xrayFogColor; } + float GetThermalVisorLevel() const override { return x28c_thermalVisorLevel; } + const zeus::CColor& GetThermalVisorColor() const override { return x290_thermalVisorColor; } + const zeus::CColor& GetVisorHudLightAdd(int v) const override { return x294_hudLightAddPerVisor[v]; } + const zeus::CColor& GetVisorHudLightMultiply(int v) const override { return x2a4_hudLightMultiplyPerVisor[v]; } + const zeus::CColor& GetHudReflectivityLightColor() const override { return x2b4_hudReflectivityLightColor; } + float GetHudLightAttMulConstant() const override { return x2b8_hudLightAttMulConstant; } + float GetHudLightAttMulLinear() const override { return x2bc_hudLightAttMulLinear; } + float GetHudLightAttMulQuadratic() const override { return x2c0_hudLightAttMulQuadratic; } + std::string_view GetCreditsTable() const override { return x2d0_creditsTable; } + std::string_view GetCreditsFont() const override { return x2e0_creditsFont; } + std::string_view GetJapaneseCreditsFont() const override { return x2f0_japaneseCreditsFont; } + const zeus::CColor& GetCreditsTextFontColor() const override { return x300_; } + const zeus::CColor& GetCreditsTextBorderColor() const override { return x304_; } + + float GetScanSpeed(int idx) const override { + if (idx < 0 || size_t(idx) >= x2c4_scanSpeeds.size()) + return 0.f; + return x2c4_scanSpeeds[idx]; + } + + void FixupValues() { + xd8_ = zeus::degToRad(xd8_); + xdc_ = zeus::degToRad(xdc_); + + x200_ = zeus::CColor(x1f4_ * 0.25f, x1f8_ * 0.25f, x1fc_ * 0.25f, 1.f); + + x210_scanSidesAngle = zeus::degToRad(x210_scanSidesAngle); + x228_scanSidesEndTime = x220_scanSidesDuration + x224_scanSidesStartTime; + + if (x27c_xrayFogMode == 1) + x27c_xrayFogMode = 2; + else if (x27c_xrayFogMode == 2) + x27c_xrayFogMode = 4; + else if (x27c_xrayFogMode == 3) + x27c_xrayFogMode = 5; + else + x27c_xrayFogMode = 0; + + x84_hudDecoShakeTranslateVelConstant *= 2.0f; + } +}; +} // namespace metaforce::MP1 diff --git a/Runtime/MP1/Tweaks/CTweakGuiColors.cpp b/Runtime/MP1/Tweaks/CTweakGuiColors.cpp new file mode 100644 index 000000000..6a06505ff --- /dev/null +++ b/Runtime/MP1/Tweaks/CTweakGuiColors.cpp @@ -0,0 +1,132 @@ +#include "Runtime/MP1/Tweaks/CTweakGuiColors.hpp" +#include "Runtime/Streams/IOStreams.hpp" + + +namespace metaforce::MP1 { + +CTweakGuiColors::SPerVisorColors::SPerVisorColors(CInputStream& in) { + x0_energyBarFilled = in.Get(); + x4_energyBarEmpty = in.Get(); + x8_energyBarShadow = in.Get(); + xc_energyTankFilled = in.Get(); + x10_energyTankEmpty = in.Get(); + x14_energyDigitsFont = in.Get(); + x18_energyDigitsOutline = in.Get(); +} + +CTweakGuiColors::CTweakGuiColors(CInputStream& in) { + x4_pauseBlurFilterColor = in.Get(); + x8_radarStuffColor = in.Get(); + xc_radarPlayerPaintColor = in.Get(); + x10_radarEnemyPaintColor = in.Get(); + x14_hudMessageFill = in.Get(); + x18_hudMessageOutline = in.Get(); + x1c_hudFrameColor = in.Get(); + x20_ = in.Get(); + x24_ = in.Get(); + x28_missileIconColorActive = in.Get(); + x2c_visorBeamMenuItemActive = in.Get(); + x30_visorBeamMenuColorInactive = in.Get(); + x34_energyBarFilledLowEnergy = in.Get(); + x38_energyBarShadowLowEnergy = in.Get(); + x3c_energyBarEmptyLowEnergy = in.Get(); + x40_hudDamageLightColor = in.Get(); + x44_ = in.Get(); + x48_ = in.Get(); + x4c_visorMenuTextFont = in.Get(); + x50_visorMenuTextOutline = in.Get(); + x54_beamMenuTextFont = in.Get(); + x58_beamMenuTextOutline = in.Get(); + x5c_energyWarningFont = in.Get(); + x60_threatWarningFont = in.Get(); + x64_missileWarningFont = in.Get(); + x68_threatBarFilled = in.Get(); + x6c_threatBarShadow = in.Get(); + x70_threatBarEmpty = in.Get(); + x74_missileBarFilled = in.Get(); + x78_missileBarShadow = in.Get(); + x7c_missileBarEmpty = in.Get(); + x80_threatIconColor = in.Get(); + x84_ = in.Get(); + x88_tickDecoColor = in.Get(); + x8c_helmetLightColor = in.Get(); + x90_threatIconSafeColor = in.Get(); + x94_missileIconColorInactive = in.Get(); + x98_missileIconColorChargedCanAlt = in.Get(); + x9c_missileIconColorChargedNoAlt = in.Get(); + xa0_missileIconColorDepleteAlt = in.Get(); + xa4_ = in.Get(); + xa8_ = in.Get(); + xac_ = in.Get(); + xb0_visorBeamMenuLozColor = in.Get(); + xb4_energyWarningOutline = in.Get(); + xb8_threatWarningOutline = in.Get(); + xbc_missileWarningOutline = in.Get(); + xc0_ = in.Get(); + xc4_damageAmbientColor = in.Get(); + xc8_scanFrameInactiveColor = in.Get(); + xcc_scanFrameActiveColor = in.Get(); + xd0_scanFrameImpulseColor = in.Get(); + xd4_scanVisorHudLightMultiply = in.Get(); + xd8_scanVisorScreenDimColor = in.Get(); + xdc_thermalVisorHudLightMultiply = in.Get(); + xe0_energyDrainFilterColor = in.Get(); + xe4_damageAmbientPulseColor = in.Get(); + xe8_energyBarFlashColor = in.Get(); + xec_ = in.Get(); + xf0_ = in.Get(); + xf4_ = in.Get(); + xf8_ = in.Get(); + xfc_ = in.Get(); + x100_xrayEnergyDecoColor = in.Get(); + x104_ = in.Get(); + x108_ = in.Get(); + x10c_ = in.Get(); + x110_ = in.Get(); + x114_ = in.Get(); + x118_ = in.Get(); + x11c_ = in.Get(); + x120_ = in.Get(); + x124_ = in.Get(); + x128_ = in.Get(); + x12c_ = in.Get(); + x130_ = in.Get(); + x134_ = in.Get(); + x138_scanDataDotColor = in.Get(); + x13c_powerBombDigitAvailableFont = in.Get(); + x140_powerBombDigitAvailableOutline = in.Get(); + x144_ = in.Get(); + x148_ballBombFilled = in.Get(); + x14c_ballBombEmpty = in.Get(); + x150_powerBombIconAvailable = in.Get(); + x154_ = in.Get(); + x158_ballEnergyDeco = in.Get(); + x15c_ballBombDeco = in.Get(); + x160_powerBombDigitDepletedFont = in.Get(); + x164_powerBombDigitDepletedOutline = in.Get(); + x168_powerBombIconUnavailable = in.Get(); + x16c_ = in.Get(); + x170_ = in.Get(); + x174_scanDisplayImagePaneColor = in.Get(); + x178_ = in.Get(); + x17c_threatIconWarningColor = in.Get(); + x180_hudCounterFill = in.Get(); + x184_hudCounterOutline = in.Get(); + x188_scanIconCriticalColor = in.Get(); + x18c_scanIconCriticalDimColor = in.Get(); + x190_scanIconNoncriticalColor = in.Get(); + x194_scanIconNoncriticalDimColor = in.Get(); + x198_scanReticuleColor = in.Get(); + x19c_threatDigitsFont = in.Get(); + x1a0_threatDigitsOutline = in.Get(); + x1a4_missileDigitsFont = in.Get(); + x1a8_missileDigitsOutline = in.Get(); + x1ac_thermalDecoColor = in.Get(); + x1b0_thermalOutlinesColor = in.Get(); + x1b4_ = in.Get(); + x1b8_thermalLockColor = in.Get(); + x1bc_pauseItemAmber = in.Get(); + x1c0_pauseItemBlue = in.Get(); + read_reserved_vector(x1c4_perVisorColors, in); +} +} \ No newline at end of file diff --git a/Runtime/MP1/Tweaks/CTweakGuiColors.hpp b/Runtime/MP1/Tweaks/CTweakGuiColors.hpp new file mode 100644 index 000000000..7f6d79a7e --- /dev/null +++ b/Runtime/MP1/Tweaks/CTweakGuiColors.hpp @@ -0,0 +1,226 @@ +#pragma once + +#include "Runtime/Tweaks/ITweakGuiColors.hpp" +#include "Runtime/rstl.hpp" + +namespace metaforce::MP1 { +struct CTweakGuiColors final : public Tweaks::ITweakGuiColors { + zeus::CColor x4_pauseBlurFilterColor; + zeus::CColor x8_radarStuffColor; + zeus::CColor xc_radarPlayerPaintColor; + zeus::CColor x10_radarEnemyPaintColor; + zeus::CColor x14_hudMessageFill; + zeus::CColor x18_hudMessageOutline; + zeus::CColor x1c_hudFrameColor; + zeus::CColor x20_; + zeus::CColor x24_; + zeus::CColor x28_missileIconColorActive; + zeus::CColor x2c_visorBeamMenuItemActive; + zeus::CColor x30_visorBeamMenuColorInactive; + zeus::CColor x34_energyBarFilledLowEnergy; + zeus::CColor x38_energyBarShadowLowEnergy; + zeus::CColor x3c_energyBarEmptyLowEnergy; + zeus::CColor x40_hudDamageLightColor; + zeus::CColor x44_; + zeus::CColor x48_; + zeus::CColor x4c_visorMenuTextFont; + zeus::CColor x50_visorMenuTextOutline; + zeus::CColor x54_beamMenuTextFont; + zeus::CColor x58_beamMenuTextOutline; + zeus::CColor x5c_energyWarningFont; + zeus::CColor x60_threatWarningFont; + zeus::CColor x64_missileWarningFont; + zeus::CColor x68_threatBarFilled; + zeus::CColor x6c_threatBarShadow; + zeus::CColor x70_threatBarEmpty; + zeus::CColor x74_missileBarFilled; + zeus::CColor x78_missileBarShadow; + zeus::CColor x7c_missileBarEmpty; + zeus::CColor x80_threatIconColor; + zeus::CColor x84_; + zeus::CColor x88_tickDecoColor; + zeus::CColor x8c_helmetLightColor; + zeus::CColor x90_threatIconSafeColor; + zeus::CColor x94_missileIconColorInactive; + zeus::CColor x98_missileIconColorChargedCanAlt; + zeus::CColor x9c_missileIconColorChargedNoAlt; + zeus::CColor xa0_missileIconColorDepleteAlt; + zeus::CColor xa4_; + zeus::CColor xa8_; + zeus::CColor xac_; + zeus::CColor xb0_visorBeamMenuLozColor; + zeus::CColor xb4_energyWarningOutline; + zeus::CColor xb8_threatWarningOutline; + zeus::CColor xbc_missileWarningOutline; + zeus::CColor xc0_; + zeus::CColor xc4_damageAmbientColor; + zeus::CColor xc8_scanFrameInactiveColor; + zeus::CColor xcc_scanFrameActiveColor; + zeus::CColor xd0_scanFrameImpulseColor; + zeus::CColor xd4_scanVisorHudLightMultiply; + zeus::CColor xd8_scanVisorScreenDimColor; + zeus::CColor xdc_thermalVisorHudLightMultiply; + zeus::CColor xe0_energyDrainFilterColor; + zeus::CColor xe4_damageAmbientPulseColor; + zeus::CColor xe8_energyBarFlashColor; + zeus::CColor xec_; + zeus::CColor xf0_; + zeus::CColor xf4_; + zeus::CColor xf8_; + zeus::CColor xfc_; + zeus::CColor x100_xrayEnergyDecoColor; + zeus::CColor x104_; + zeus::CColor x108_; + zeus::CColor x10c_; + zeus::CColor x110_; + zeus::CColor x114_; + zeus::CColor x118_; + zeus::CColor x11c_; + zeus::CColor x120_; + zeus::CColor x124_; + zeus::CColor x128_; + zeus::CColor x12c_; + zeus::CColor x130_; + zeus::CColor x134_; + zeus::CColor x138_scanDataDotColor; + zeus::CColor x13c_powerBombDigitAvailableFont; + zeus::CColor x140_powerBombDigitAvailableOutline; + zeus::CColor x144_; + zeus::CColor x148_ballBombFilled; + zeus::CColor x14c_ballBombEmpty; + zeus::CColor x150_powerBombIconAvailable; + zeus::CColor x154_; + zeus::CColor x158_ballEnergyDeco; + zeus::CColor x15c_ballBombDeco; + zeus::CColor x160_powerBombDigitDepletedFont; + zeus::CColor x164_powerBombDigitDepletedOutline; + zeus::CColor x168_powerBombIconUnavailable; + zeus::CColor x16c_; + zeus::CColor x170_; + zeus::CColor x174_scanDisplayImagePaneColor; + zeus::CColor x178_; + zeus::CColor x17c_threatIconWarningColor; + zeus::CColor x180_hudCounterFill; + zeus::CColor x184_hudCounterOutline; + zeus::CColor x188_scanIconCriticalColor; + zeus::CColor x18c_scanIconCriticalDimColor; + zeus::CColor x190_scanIconNoncriticalColor; + zeus::CColor x194_scanIconNoncriticalDimColor; + zeus::CColor x198_scanReticuleColor; + zeus::CColor x19c_threatDigitsFont; + zeus::CColor x1a0_threatDigitsOutline; + zeus::CColor x1a4_missileDigitsFont; + zeus::CColor x1a8_missileDigitsOutline; + zeus::CColor x1ac_thermalDecoColor; + zeus::CColor x1b0_thermalOutlinesColor; + zeus::CColor x1b4_; + zeus::CColor x1b8_thermalLockColor; + zeus::CColor x1bc_pauseItemAmber; + zeus::CColor x1c0_pauseItemBlue; + struct SPerVisorColors { + zeus::CColor x0_energyBarFilled; + zeus::CColor x4_energyBarEmpty; + zeus::CColor x8_energyBarShadow; + zeus::CColor xc_energyTankFilled; + zeus::CColor x10_energyTankEmpty; + zeus::CColor x14_energyDigitsFont; + zeus::CColor x18_energyDigitsOutline; + explicit SPerVisorColors() = default; + explicit SPerVisorColors(CInputStream& in); + }; + /* Combat, Scan, XRay, Thermal, Ball */ + rstl::reserved_vector x1c4_perVisorColors{}; + + CTweakGuiColors() = default; + CTweakGuiColors(CInputStream& r); + const zeus::CColor& GetPauseBlurFilterColor() const override { return x4_pauseBlurFilterColor; } + const zeus::CColor& GetRadarStuffColor() const override { return x8_radarStuffColor; } + const zeus::CColor& GetRadarPlayerPaintColor() const override { return xc_radarPlayerPaintColor; } + const zeus::CColor& GetRadarEnemyPaintColor() const override { return x10_radarEnemyPaintColor; } + const zeus::CColor& GetHudMessageFill() const override { return x14_hudMessageFill; } + const zeus::CColor& GetHudMessageOutline() const override { return x18_hudMessageOutline; } + const zeus::CColor& GetHudFrameColor() const override { return x1c_hudFrameColor; } + const zeus::CColor& GetMissileIconColorActive() const override { return x28_missileIconColorActive; } + const zeus::CColor& GetVisorBeamMenuItemActive() const override { return x2c_visorBeamMenuItemActive; } + const zeus::CColor& GetVisorBeamMenuItemInactive() const override { return x30_visorBeamMenuColorInactive; } + const zeus::CColor& GetEnergyBarFilledLowEnergy() const override { return x34_energyBarFilledLowEnergy; } + const zeus::CColor& GetEnergyBarShadowLowEnergy() const override { return x38_energyBarShadowLowEnergy; } + const zeus::CColor& GetEnergyBarEmptyLowEnergy() const override { return x3c_energyBarEmptyLowEnergy; } + const zeus::CColor& GetHudDamageLightColor() const override { return x40_hudDamageLightColor; } + const zeus::CColor& GetVisorMenuTextFont() const override { return x4c_visorMenuTextFont; } + const zeus::CColor& GetVisorMenuTextOutline() const override { return x50_visorMenuTextOutline; } + const zeus::CColor& GetBeamMenuTextFont() const override { return x54_beamMenuTextFont; } + const zeus::CColor& GetBeamMenuTextOutline() const override { return x58_beamMenuTextOutline; } + const zeus::CColor& GetEnergyWarningFont() const override { return x5c_energyWarningFont; } + const zeus::CColor& GetThreatWarningFont() const override { return x60_threatWarningFont; } + const zeus::CColor& GetMissileWarningFont() const override { return x64_missileWarningFont; } + const zeus::CColor& GetThreatBarFilled() const override { return x68_threatBarFilled; } + const zeus::CColor& GetThreatBarShadow() const override { return x6c_threatBarShadow; } + const zeus::CColor& GetThreatBarEmpty() const override { return x70_threatBarEmpty; } + const zeus::CColor& GetMissileBarFilled() const override { return x74_missileBarFilled; } + const zeus::CColor& GetMissileBarShadow() const override { return x78_missileBarShadow; } + const zeus::CColor& GetMissileBarEmpty() const override { return x7c_missileBarEmpty; } + const zeus::CColor& GetThreatIconColor() const override { return x80_threatIconColor; } + const zeus::CColor& GetTickDecoColor() const override { return x88_tickDecoColor; } + const zeus::CColor& GetHelmetLightColor() const override { return x8c_helmetLightColor; } + const zeus::CColor& GetThreatIconSafeColor() const override { return x90_threatIconSafeColor; } + const zeus::CColor& GetMissileIconColorInactive() const override { return x94_missileIconColorInactive; } + const zeus::CColor& GetMissileIconColorChargedCanAlt() const override { return x98_missileIconColorChargedCanAlt; } + const zeus::CColor& GetMissileIconColorChargedNoAlt() const override { return x9c_missileIconColorChargedNoAlt; } + const zeus::CColor& GetMissileIconColorDepleteAlt() const override { return xa0_missileIconColorDepleteAlt; } + const zeus::CColor& GetVisorBeamMenuLozColor() const override { return xb0_visorBeamMenuLozColor; } + const zeus::CColor& GetEnergyWarningOutline() const override { return xb4_energyWarningOutline; } + const zeus::CColor& GetThreatWarningOutline() const override { return xb8_threatWarningOutline; } + const zeus::CColor& GetMissileWarningOutline() const override { return xbc_missileWarningOutline; } + const zeus::CColor& GetDamageAmbientColor() const override { return xc4_damageAmbientColor; } + const zeus::CColor& GetScanFrameInactiveColor() const override { return xc8_scanFrameInactiveColor; } + const zeus::CColor& GetScanFrameActiveColor() const override { return xcc_scanFrameActiveColor; } + const zeus::CColor& GetScanFrameImpulseColor() const override { return xd0_scanFrameImpulseColor; } + const zeus::CColor& GetScanVisorHudLightMultiply() const override { return xd4_scanVisorHudLightMultiply; } + const zeus::CColor& GetScanVisorScreenDimColor() const override { return xd8_scanVisorScreenDimColor; } + const zeus::CColor& GetThermalVisorHudLightMultiply() const override { return xdc_thermalVisorHudLightMultiply; } + const zeus::CColor& GetEnergyDrainFilterColor() const override { return xe0_energyDrainFilterColor; } + const zeus::CColor& GetDamageAmbientPulseColor() const override { return xe4_damageAmbientPulseColor; } + const zeus::CColor& GetEnergyBarFlashColor() const override { return xe8_energyBarFlashColor; } + const zeus::CColor& GetXRayEnergyDecoColor() const override { return x100_xrayEnergyDecoColor; } + const zeus::CColor& GetScanDataDotColor() const override { return x138_scanDataDotColor; } + const zeus::CColor& GetPowerBombDigitAvailableFont() const override { return x13c_powerBombDigitAvailableFont; } + const zeus::CColor& GetPowerBombDigitAvailableOutline() const override { return x140_powerBombDigitAvailableOutline; } + const zeus::CColor& GetBallBombFilledColor() const override { return x148_ballBombFilled; } + const zeus::CColor& GetBallBombEmptyColor() const override { return x14c_ballBombEmpty; } + const zeus::CColor& GetPowerBombIconAvailableColor() const override { return x150_powerBombIconAvailable; } + const zeus::CColor& GetBallBombEnergyColor() const override { return x158_ballEnergyDeco; } + const zeus::CColor& GetBallBombDecoColor() const override { return x15c_ballBombDeco; } + const zeus::CColor& GetPowerBombDigitDelpetedFont() const override { return x160_powerBombDigitDepletedFont; } + const zeus::CColor& GetPowerBombDigitDelpetedOutline() const override { return x164_powerBombDigitDepletedOutline; } + const zeus::CColor& GetPowerBombIconDepletedColor() const override { return x168_powerBombIconUnavailable; } + const zeus::CColor& GetScanDisplayImagePaneColor() const override { return x174_scanDisplayImagePaneColor; } + const zeus::CColor& GetThreatIconWarningColor() const override { return x17c_threatIconWarningColor; } + const zeus::CColor& GetHudCounterFill() const override { return x180_hudCounterFill; } + const zeus::CColor& GetHudCounterOutline() const override { return x184_hudCounterOutline; } + const zeus::CColor& GetScanIconCriticalColor() const override { return x188_scanIconCriticalColor; } + const zeus::CColor& GetScanIconCriticalDimColor() const override { return x18c_scanIconCriticalDimColor; } + const zeus::CColor& GetScanIconNoncriticalColor() const override { return x190_scanIconNoncriticalColor; } + const zeus::CColor& GetScanIconNoncriticalDimColor() const override { return x194_scanIconNoncriticalDimColor; } + const zeus::CColor& GetScanReticuleColor() const override { return x198_scanReticuleColor; } + const zeus::CColor& GetThreatDigitsFont() const override { return x19c_threatDigitsFont; } + const zeus::CColor& GetThreatDigitsOutline() const override { return x1a0_threatDigitsOutline; } + const zeus::CColor& GetMissileDigitsFont() const override { return x1a4_missileDigitsFont; } + const zeus::CColor& GetMissileDigitsOutline() const override { return x1a8_missileDigitsOutline; } + const zeus::CColor& GetThermalDecoColor() const override { return x1ac_thermalDecoColor; } + const zeus::CColor& GetThermalOutlinesColor() const override { return x1b0_thermalOutlinesColor; } + const zeus::CColor& GetThermalLockColor() const override { return x1b8_thermalLockColor; } + const zeus::CColor& GetPauseItemAmberColor() const override { return x1bc_pauseItemAmber; } + const zeus::CColor& GetPauseItemBlueColor() const override { return x1c0_pauseItemBlue; } + + SVisorEnergyInitColors GetVisorEnergyInitColors(int idx) const override { + const SPerVisorColors& colors = x1c4_perVisorColors[idx]; + return {colors.xc_energyTankFilled, colors.x10_energyTankEmpty, colors.x14_energyDigitsFont, + colors.x18_energyDigitsOutline}; + } + SVisorEnergyBarColors GetVisorEnergyBarColors(int idx) const override { + const SPerVisorColors& colors = x1c4_perVisorColors[idx]; + return {colors.x0_energyBarFilled, colors.x4_energyBarEmpty, colors.x8_energyBarShadow}; + } +}; +} // namespace metaforce::MP1 diff --git a/Runtime/MP1/Tweaks/CTweakGunRes.cpp b/Runtime/MP1/Tweaks/CTweakGunRes.cpp new file mode 100644 index 000000000..2a2453c0f --- /dev/null +++ b/Runtime/MP1/Tweaks/CTweakGunRes.cpp @@ -0,0 +1,48 @@ +#include "Runtime/MP1/Tweaks/CTweakGunRes.hpp" + +namespace metaforce::MP1 { +CTweakGunRes::CTweakGunRes(CInputStream& in) { + m_gunMotion = in.Get(); + m_grappleArm = in.Get(); + m_rightHand = in.Get(); + m_powerBeam = in.Get(); + m_iceBeam = in.Get(); + m_waveBeam = in.Get(); + m_plasmaBeam = in.Get(); + m_phazonBeam = in.Get(); + m_holoTransition = in.Get(); + m_bombSet = in.Get(); + m_bombExplode = in.Get(); + m_powerBombExplode = in.Get(); + m_powerBeamWp = in.Get(); + m_powerBallWp = in.Get(); + m_iceBeamWp = in.Get(); + m_iceBallWp = in.Get(); + m_waveBeamWp = in.Get(); + m_waveBallWp = in.Get(); + m_plasmaBeamWp = in.Get(); + m_plasmaBallWp = in.Get(); + m_phazonBeamWp = in.Get(); + m_phazonBallWp = in.Get(); + m_powerMuzzle = in.Get(); + m_iceMuzzle = in.Get(); + m_waveMuzzle = in.Get(); + m_plasmaMuzzle = in.Get(); + m_phazonMuzzle = in.Get(); + m_powerCharge = in.Get(); + m_iceCharge = in.Get(); + m_waveCharge = in.Get(); + m_plasmaCharge = in.Get(); + m_phazonCharge = in.Get(); + m_powerAuxMuzzle = in.Get(); + m_iceAuxMuzzle = in.Get(); + m_waveAuxMuzzle = in.Get(); + m_plasmaAuxMuzzle = in.Get(); + m_phazonAuxMuzzle = in.Get(); + m_grappleSegment = in.Get(); + m_grappleClaw = in.Get(); + m_grappleHit = in.Get(); + m_grappleMuzzle = in.Get(); + m_grappleSwoosh = in.Get(); +} +} // namespace metaforce::MP1 \ No newline at end of file diff --git a/Runtime/MP1/Tweaks/CTweakGunRes.hpp b/Runtime/MP1/Tweaks/CTweakGunRes.hpp new file mode 100644 index 000000000..2b05be76f --- /dev/null +++ b/Runtime/MP1/Tweaks/CTweakGunRes.hpp @@ -0,0 +1,90 @@ +#pragma once + +#include "Runtime/Tweaks/ITweakGunRes.hpp" + +namespace metaforce::MP1 { + +struct CTweakGunRes final : Tweaks::ITweakGunRes { + std::string m_gunMotion; + std::string m_grappleArm; + std::string m_rightHand; + + std::string m_powerBeam; + std::string m_iceBeam; + std::string m_waveBeam; + std::string m_plasmaBeam; + std::string m_phazonBeam; + + std::string m_holoTransition; + + std::string m_bombSet; + std::string m_bombExplode; + std::string m_powerBombExplode; + + std::string m_powerBeamWp; + std::string m_powerBallWp; + std::string m_iceBeamWp; + std::string m_iceBallWp; + std::string m_waveBeamWp; + std::string m_waveBallWp; + std::string m_plasmaBeamWp; + std::string m_plasmaBallWp; + std::string m_phazonBeamWp; + std::string m_phazonBallWp; + + std::string m_powerMuzzle; + std::string m_iceMuzzle; + std::string m_waveMuzzle; + std::string m_plasmaMuzzle; + std::string m_phazonMuzzle; + + std::string m_powerCharge; + std::string m_iceCharge; + std::string m_waveCharge; + std::string m_plasmaCharge; + std::string m_phazonCharge; + + std::string m_powerAuxMuzzle; + std::string m_iceAuxMuzzle; + std::string m_waveAuxMuzzle; + std::string m_plasmaAuxMuzzle; + std::string m_phazonAuxMuzzle; + + std::string m_grappleSegment; + std::string m_grappleClaw; + std::string m_grappleHit; + std::string m_grappleMuzzle; + std::string m_grappleSwoosh; + + const std::string& GetGunMotion() const override { return m_gunMotion; } + const std::string& GetGrappleArm() const override { return m_grappleArm; } + const std::string& GetRightHand() const override { return m_rightHand; } + + const std::string& GetPowerBeam() const override { return m_powerBeam; } + const std::string& GetIceBeam() const override { return m_iceBeam; } + const std::string& GetWaveBeam() const override { return m_waveBeam; } + const std::string& GetPlasmaBeam() const override { return m_plasmaBeam; } + const std::string& GetPhazonBeam() const override { return m_phazonBeam; } + + const std::string& GetHoloTransition() const override { return m_holoTransition; } + + const std::string& GetBombSet() const override { return m_bombSet; } + const std::string& GetBombExplode() const override { return m_bombExplode; } + const std::string& GetPowerBombExplode() const override { return m_powerBombExplode; } + + const std::string& GetWeapon(size_t idx, bool ball) const override { return (&m_powerBeamWp)[idx * 2 + ball]; } + const std::string& GetMuzzleParticle(size_t idx) const override { return (&m_powerMuzzle)[idx]; } + const std::string& GetChargeParticle(size_t idx) const override { return (&m_powerCharge)[idx]; } + const std::string& GetAuxMuzzleParticle(size_t idx) const override { return (&m_powerAuxMuzzle)[idx]; } + + const std::string& GetGrappleSegmentParticle() const override { return m_grappleSegment; } + const std::string& GetGrappleClawParticle() const override { return m_grappleClaw; } + const std::string& GetGrappleHitParticle() const override { return m_grappleHit; } + const std::string& GetGrappleMuzzleParticle() const override { return m_grappleMuzzle; } + const std::string& GetGrappleSwooshParticle() const override { return m_grappleSwoosh; } + + CTweakGunRes() = default; + CTweakGunRes(CInputStream& in); +}; + +} // namespace metaforce::MP1 diff --git a/Runtime/MP1/Tweaks/CTweakParticle.cpp b/Runtime/MP1/Tweaks/CTweakParticle.cpp new file mode 100644 index 000000000..e86cb7b09 --- /dev/null +++ b/Runtime/MP1/Tweaks/CTweakParticle.cpp @@ -0,0 +1,10 @@ +#include "Runtime/MP1/Tweaks/CTweakParticle.hpp" +#include "Runtime/Streams/IOStreams.hpp" + +namespace metaforce::MP1 { +CTweakParticle::CTweakParticle(CInputStream& in) { + m_particle = in.Get(); + m_powerBeam = in.Get(); + m_genThrust = in.Get(); +} +} // namespace metaforce::MP1 \ No newline at end of file diff --git a/Runtime/MP1/Tweaks/CTweakParticle.hpp b/Runtime/MP1/Tweaks/CTweakParticle.hpp new file mode 100644 index 000000000..c6f86aea1 --- /dev/null +++ b/Runtime/MP1/Tweaks/CTweakParticle.hpp @@ -0,0 +1,16 @@ +#pragma once + +#include "Runtime/Tweaks/ITweakParticle.hpp" + +namespace metaforce::MP1 { + +struct CTweakParticle final : Tweaks::ITweakParticle { + std::string m_particle; + std::string m_powerBeam; + std::string m_genThrust; + + CTweakParticle() = default; + CTweakParticle(CInputStream& reader); +}; + +} // namespace DataSpec::DNAMP1 diff --git a/Runtime/MP1/Tweaks/CTweakPlayer.cpp b/Runtime/MP1/Tweaks/CTweakPlayer.cpp new file mode 100644 index 000000000..d5d6eff9c --- /dev/null +++ b/Runtime/MP1/Tweaks/CTweakPlayer.cpp @@ -0,0 +1,1667 @@ +#include "Runtime/MP1/Tweaks/CTweakPlayer.hpp" + +#include "Runtime/Streams/IOStreams.hpp" + +#include "zeus/Math.hpp" + +#include +#include + +#define DEFINE_CVAR_GLOBAL(name) \ + constexpr std::string_view sk##name = std::string_view("tweak.player." #name); \ + hecl::CVar* tw_##name = nullptr; + +#define CREATE_CVAR(name, help, value, flags) \ + tw_##name = mgr->findOrMakeCVar(sk##name, help, value, flags); \ + if (tw_##name->wasDeserialized()) { \ + tw_##name->toValue(value); \ + } \ + tw_##name->addListener([this](hecl::CVar* cv) { _tweakListener(cv); }); + +#define CREATE_CVAR_BITFIELD(name, help, value, flags) \ + { \ + bool tmp = value; \ + CREATE_CVAR(name, help, tmp, flags) \ + } + +#define UPDATE_CVAR(name, cv, value) \ + if ((cv) == tw_##name) { \ + (cv)->toValue(value); \ + return; \ + } + +#define UPDATE_CVAR_BITFIELD(name, cv, value) \ + { \ + bool tmp = value; \ + UPDATE_CVAR(name, cv, tmp) \ + (value) = tmp; \ + } + +namespace metaforce::MP1 { +namespace { +static constexpr hecl::CVar::EFlags skDefaultFlags = + hecl::CVar::EFlags::Game | hecl::CVar::EFlags::Cheat | hecl::CVar::EFlags::Archive; +DEFINE_CVAR_GLOBAL(MaxTranslationAccelerationNormal); +DEFINE_CVAR_GLOBAL(MaxTranslationAccelerationAir); +DEFINE_CVAR_GLOBAL(MaxTranslationAccelerationIce); +DEFINE_CVAR_GLOBAL(MaxTranslationAccelerationOrganic); +DEFINE_CVAR_GLOBAL(MaxTranslationAccelerationWater); +DEFINE_CVAR_GLOBAL(MaxTranslationAccelerationLava); +DEFINE_CVAR_GLOBAL(MaxTranslationAccelerationPhazon); +DEFINE_CVAR_GLOBAL(MaxTranslationAccelerationShrubbery); +DEFINE_CVAR_GLOBAL(MaxRotationAccelerationNormal); +DEFINE_CVAR_GLOBAL(MaxRotationAccelerationAir); +DEFINE_CVAR_GLOBAL(MaxRotationAccelerationIce); +DEFINE_CVAR_GLOBAL(MaxRotationAccelerationOrganic); +DEFINE_CVAR_GLOBAL(MaxRotationAccelerationWater); +DEFINE_CVAR_GLOBAL(MaxRotationAccelerationLava); +DEFINE_CVAR_GLOBAL(MaxRotationAccelerationPhazon); +DEFINE_CVAR_GLOBAL(MaxRotationAccelerationShrubbery); +DEFINE_CVAR_GLOBAL(TranslationFrictionNormal); +DEFINE_CVAR_GLOBAL(TranslationFrictionAir); +DEFINE_CVAR_GLOBAL(TranslationFrictionIce); +DEFINE_CVAR_GLOBAL(TranslationFrictionOrganic); +DEFINE_CVAR_GLOBAL(TranslationFrictionWater); +DEFINE_CVAR_GLOBAL(TranslationFrictionLava); +DEFINE_CVAR_GLOBAL(TranslationFrictionPhazon); +DEFINE_CVAR_GLOBAL(TranslationFrictionShrubbery); +DEFINE_CVAR_GLOBAL(RotationFrictionNormal); +DEFINE_CVAR_GLOBAL(RotationFrictionAir); +DEFINE_CVAR_GLOBAL(RotationFrictionIce); +DEFINE_CVAR_GLOBAL(RotationFrictionOrganic); +DEFINE_CVAR_GLOBAL(RotationFrictionWater); +DEFINE_CVAR_GLOBAL(RotationFrictionLava); +DEFINE_CVAR_GLOBAL(RotationFrictionPhazon); +DEFINE_CVAR_GLOBAL(RotationFrictionShrubbery); +DEFINE_CVAR_GLOBAL(RotationMaxSpeedNormal); +DEFINE_CVAR_GLOBAL(RotationMaxSpeedAir); +DEFINE_CVAR_GLOBAL(RotationMaxSpeedIce); +DEFINE_CVAR_GLOBAL(RotationMaxSpeedOrganic); +DEFINE_CVAR_GLOBAL(RotationMaxSpeedWater); +DEFINE_CVAR_GLOBAL(RotationMaxSpeedLava); +DEFINE_CVAR_GLOBAL(RotationMaxSpeedPhazon); +DEFINE_CVAR_GLOBAL(RotationMaxSpeedShrubbery); +DEFINE_CVAR_GLOBAL(TranslationMaxSpeedNormal); +DEFINE_CVAR_GLOBAL(TranslationMaxSpeedAir); +DEFINE_CVAR_GLOBAL(TranslationMaxSpeedIce); +DEFINE_CVAR_GLOBAL(TranslationMaxSpeedOrganic); +DEFINE_CVAR_GLOBAL(TranslationMaxSpeedWater); +DEFINE_CVAR_GLOBAL(TranslationMaxSpeedLava); +DEFINE_CVAR_GLOBAL(TranslationMaxSpeedPhazon); +DEFINE_CVAR_GLOBAL(TranslationMaxSpeedShrubbery); +DEFINE_CVAR_GLOBAL(NormalGravityAcceleration); +DEFINE_CVAR_GLOBAL(FluidGravityAcceleration); +DEFINE_CVAR_GLOBAL(VerticalJumpAcceleration); +DEFINE_CVAR_GLOBAL(HorizontalJumpAcceleration); +DEFINE_CVAR_GLOBAL(VerticalDoubleJumpAcceleration); +DEFINE_CVAR_GLOBAL(HorizontalDoubleJumpAcceleration); +DEFINE_CVAR_GLOBAL(WaterJumpFactor); +DEFINE_CVAR_GLOBAL(WaterBallJumpFactor); +DEFINE_CVAR_GLOBAL(LavaJumpFactor); +DEFINE_CVAR_GLOBAL(LavaBallJumpFactor); +DEFINE_CVAR_GLOBAL(PhazonJumpFactor); +DEFINE_CVAR_GLOBAL(PhazonBallJumpFactor); +DEFINE_CVAR_GLOBAL(AllowedJumpTime); +DEFINE_CVAR_GLOBAL(AllowedDoubleJumpTime); +DEFINE_CVAR_GLOBAL(MinDoubleJumpWindow); +DEFINE_CVAR_GLOBAL(MaxDoubleJumpWindow) +// DEFINE_CVAR_GLOBAL(); // x104_ +DEFINE_CVAR_GLOBAL(MinJumpTime); +DEFINE_CVAR_GLOBAL(MinDoubleJumpTime); +DEFINE_CVAR_GLOBAL(AllowedLedgeTime); +DEFINE_CVAR_GLOBAL(DoubleJumpImpulse); +DEFINE_CVAR_GLOBAL(BackwardsForceMultiplier); +DEFINE_CVAR_GLOBAL(BombJumpRadius); +DEFINE_CVAR_GLOBAL(BombJumpHeight); +DEFINE_CVAR_GLOBAL(EyeOffset); +DEFINE_CVAR_GLOBAL(TurnSpeedMultiplier); +DEFINE_CVAR_GLOBAL(FreeLookTurnSpeedMultiplier); +DEFINE_CVAR_GLOBAL(HorizontalFreeLookAngleVelocity); +DEFINE_CVAR_GLOBAL(VerticalFreeLookAngleVelocity); +DEFINE_CVAR_GLOBAL(FreeLookSpeed); +DEFINE_CVAR_GLOBAL(FreeLookSnapSpeed); +// DEFINE_CVAR_GLOBAL(); // x140_ +DEFINE_CVAR_GLOBAL(FreeLookCenteredThresholdAngle); +DEFINE_CVAR_GLOBAL(FreeLookCenteredTime); +DEFINE_CVAR_GLOBAL(FreeLookDampenFactor); +DEFINE_CVAR_GLOBAL(LeftDivisor); +DEFINE_CVAR_GLOBAL(RightDivisor); +DEFINE_CVAR_GLOBAL(OrbitMinDistanceClose); +DEFINE_CVAR_GLOBAL(OrbitMinDistanceFar); +DEFINE_CVAR_GLOBAL(OrbitMinDistanceDefault); +DEFINE_CVAR_GLOBAL(OrbitNormalDistanceClose); +DEFINE_CVAR_GLOBAL(OrbitNormalDistanceFar); +DEFINE_CVAR_GLOBAL(OrbitNormalDistanceDefault); +DEFINE_CVAR_GLOBAL(OrbitMaxDistanceClose); +DEFINE_CVAR_GLOBAL(OrbitMaxDistanceFar); +DEFINE_CVAR_GLOBAL(OrbitMaxDistanceDefault); +// DEFINE_CVAR_GLOBAL(); // x17c_ +DEFINE_CVAR_GLOBAL(OrbitmodeTimer); +DEFINE_CVAR_GLOBAL(OrbitCameraSpeed); +DEFINE_CVAR_GLOBAL(OrbitUpperAngle); +DEFINE_CVAR_GLOBAL(OrbitLowerAngle); +DEFINE_CVAR_GLOBAL(OrbitHorizontalAngle); +// DEFINE_CVAR_GLOBAL(); // x194_ +// DEFINE_CVAR_GLOBAL(); // x198_ +DEFINE_CVAR_GLOBAL(OrbitMaxTargetDistance); +DEFINE_CVAR_GLOBAL(OrbitMaxLockDistance); +DEFINE_CVAR_GLOBAL(OrbitDistanceThreshold); +DEFINE_CVAR_GLOBAL(OrbitScreenTargetingBoxHalfExtentX); +DEFINE_CVAR_GLOBAL(OrbitScreenScanBoxHalfExtentX); +DEFINE_CVAR_GLOBAL(OrbitScreenTargetingBoxHalfExtentY); +DEFINE_CVAR_GLOBAL(OrbitScreenScanBoxHalfExtentY); +DEFINE_CVAR_GLOBAL(OrbitScreenTargetingBoxCenterX); +DEFINE_CVAR_GLOBAL(OrbitScreenScanBoxCenterX); +DEFINE_CVAR_GLOBAL(OrbitScreenTargetingBoxCenterY); +DEFINE_CVAR_GLOBAL(OrbitScreenScanBoxCenterY); +DEFINE_CVAR_GLOBAL(OrbitZoneTargetingIdealX); +DEFINE_CVAR_GLOBAL(OrbitZoneScanIdealX); +DEFINE_CVAR_GLOBAL(OrbitZoneTargetingIdealY); +DEFINE_CVAR_GLOBAL(OrbitZoneScanIdealY); +DEFINE_CVAR_GLOBAL(OrbitNearX); +DEFINE_CVAR_GLOBAL(OrbitNearZ); +// DEFINE_CVAR_GLOBAL(); // x1e0_ +// DEFINE_CVAR_GLOBAL(); // x1e4_ +DEFINE_CVAR_GLOBAL(OrbitFixedOffsetZDiff); +DEFINE_CVAR_GLOBAL(OrbitZRange); +// DEFINE_CVAR_GLOBAL(); // x1f0_ +// DEFINE_CVAR_GLOBAL(); // x1f4_ +// DEFINE_CVAR_GLOBAL(); // x1f8_ +DEFINE_CVAR_GLOBAL(OrbitPreventionTime); +DEFINE_CVAR_GLOBAL(DashEnabled); +DEFINE_CVAR_GLOBAL(DashOnButtonRelease); +DEFINE_CVAR_GLOBAL(DashButtonHoldCancelTime); +DEFINE_CVAR_GLOBAL(DashStrafeInputThreshold); +DEFINE_CVAR_GLOBAL(SidewaysDoubleJumpImpulse); +DEFINE_CVAR_GLOBAL(SidewaysVerticalDoubleJumpAccel); +DEFINE_CVAR_GLOBAL(SidewaysHorizontalDoubleJumpAccel); +DEFINE_CVAR_GLOBAL(ScanningRange); +DEFINE_CVAR_GLOBAL(ScanRetention); +DEFINE_CVAR_GLOBAL(ScanFreezesGame); +DEFINE_CVAR_GLOBAL(OrbitWhileScanning); +DEFINE_CVAR_GLOBAL(ScanMaxTargetDistance); +DEFINE_CVAR_GLOBAL(ScanMaxLockDistance) +DEFINE_CVAR_GLOBAL(FreeLookTurnsPlayer); +// DEFINE_CVAR_GLOBAL(); // x228_25_ +// DEFINE_CVAR_GLOBAL(); // x228_26_ +DEFINE_CVAR_GLOBAL(MoveDuringFreelook); +DEFINE_CVAR_GLOBAL(HoldButtonsForFreeLook); +// DEFINE_CVAR_GLOBAL(); // x228_30_ +// DEFINE_CVAR_GLOBAL(); // x228_31_ +// DEFINE_CVAR_GLOBAL(); // x229_24_ +DEFINE_CVAR_GLOBAL(AimWhenOrbitingPoint); +DEFINE_CVAR_GLOBAL(StayInFreeLookWhileFiring); +// DEFINE_CVAR_GLOBAL(); // x229_27_ +// DEFINE_CVAR_GLOBAL(); // x229_28_ +DEFINE_CVAR_GLOBAL(OrbitFixedOffset); +DEFINE_CVAR_GLOBAL(GunButtonTogglesHolster); +DEFINE_CVAR_GLOBAL(GunNotFiringHolstersGun); +DEFINE_CVAR_GLOBAL(FallingDoubleJump); +DEFINE_CVAR_GLOBAL(ImpulseDoubleJump); +DEFINE_CVAR_GLOBAL(FiringCancelsCameraPitch); +DEFINE_CVAR_GLOBAL(AssistedAimingIgnoreHorizontal); +DEFINE_CVAR_GLOBAL(AssistedAimingIgnoreVertical); +// DEFINE_CVAR_GLOBAL(); // x22c +// DEFINE_CVAR_GLOBAL(); // x230_ +DEFINE_CVAR_GLOBAL(AimMaxDistance); +// DEFINE_CVAR_GLOBAL(); // x238_ +// DEFINE_CVAR_GLOBAL(); // x23c_ +// DEFINE_CVAR_GLOBAL(); // x240_ +// DEFINE_CVAR_GLOBAL(); // x244_ +// DEFINE_CVAR_GLOBAL(); // x248_ +DEFINE_CVAR_GLOBAL(AimThresholdDistance); +// DEFINE_CVAR_GLOBAL(); // x250_ +// DEFINE_CVAR_GLOBAL(); // x254_ +DEFINE_CVAR_GLOBAL(AimBoxWidth); +DEFINE_CVAR_GLOBAL(AimBoxHeight); +DEFINE_CVAR_GLOBAL(AimTargetTimer); +DEFINE_CVAR_GLOBAL(AimAssistHorizontalAngle); +DEFINE_CVAR_GLOBAL(AimAssistVerticalAngle); +DEFINE_CVAR_GLOBAL(PlayerHeight); +DEFINE_CVAR_GLOBAL(PlayerXYHalfExtent); +DEFINE_CVAR_GLOBAL(StepUpHeight); +DEFINE_CVAR_GLOBAL(StepDownHeight); +DEFINE_CVAR_GLOBAL(PlayerBallHalfExtent); +DEFINE_CVAR_GLOBAL(FirstPersonCameraSpeed); +// DEFINE_CVAR_GLOBAL(); // x284_ +DEFINE_CVAR_GLOBAL(JumpCameraPitchDownStart); +DEFINE_CVAR_GLOBAL(JumpCameraPitchDownFull); +DEFINE_CVAR_GLOBAL(JumpCameraPitchDownAngle); +DEFINE_CVAR_GLOBAL(FallCameraPitchDownStart); +DEFINE_CVAR_GLOBAL(FallCameraPitchDownFull); +DEFINE_CVAR_GLOBAL(FallCameraPitchDownAngle); +DEFINE_CVAR_GLOBAL(OrbitDistanceMax); +DEFINE_CVAR_GLOBAL(GrappleSwingLength); +DEFINE_CVAR_GLOBAL(GrappleSwingPeriod); +DEFINE_CVAR_GLOBAL(GrapplePullSpeedMin); +DEFINE_CVAR_GLOBAL(GrappleCameraSpeed); +DEFINE_CVAR_GLOBAL(MaxGrappleLockedTurnAlignDistance); +DEFINE_CVAR_GLOBAL(GrapplePullSpeedProportion); +DEFINE_CVAR_GLOBAL(GrapplePullSpeedMax); +DEFINE_CVAR_GLOBAL(GrappleLookCenterSpeed); +DEFINE_CVAR_GLOBAL(MaxGrappleTurnSpeed); +DEFINE_CVAR_GLOBAL(GrappleJumpForce); +DEFINE_CVAR_GLOBAL(GrappleReleaseTime); +DEFINE_CVAR_GLOBAL(GrappleJumpMode); +DEFINE_CVAR_GLOBAL(OrbitReleaseBreaksGrapple); +DEFINE_CVAR_GLOBAL(InvertGrappleTurn); +DEFINE_CVAR_GLOBAL(GrappleBeamSpeed); +DEFINE_CVAR_GLOBAL(GrappleBeamXWaveAmplitude); +DEFINE_CVAR_GLOBAL(GrappleBeamZWaveAmplitude); +DEFINE_CVAR_GLOBAL(GrappleBeamAnglePhaseDelta); +// DEFINE_CVAR_GLOBAL(); // x2e8_ +// DEFINE_CVAR_GLOBAL(); // x2ec_ +// DEFINE_CVAR_GLOBAL(); // x2f0_ +// DEFINE_CVAR_GLOBAL(); // x2f4_ +DEFINE_CVAR_GLOBAL(FrozenTimeout); +DEFINE_CVAR_GLOBAL(IceBreakJumpCount); +DEFINE_CVAR_GLOBAL(VariaDamageReduction); +DEFINE_CVAR_GLOBAL(GravityDamageReduction); +DEFINE_CVAR_GLOBAL(PhazonDamageReduction); +} // namespace + +CTweakPlayer::CTweakPlayer(CInputStream& in) { + /* x4_maxTranslationalAcceleration[0] */ + x4_maxTranslationalAcceleration[0] = in.ReadFloat(); + /* x4_maxTranslationalAcceleration[1] */ + x4_maxTranslationalAcceleration[1] = in.ReadFloat(); + /* x4_maxTranslationalAcceleration[2] */ + x4_maxTranslationalAcceleration[2] = in.ReadFloat(); + /* x4_maxTranslationalAcceleration[3] */ + x4_maxTranslationalAcceleration[3] = in.ReadFloat(); + /* x4_maxTranslationalAcceleration[4] */ + x4_maxTranslationalAcceleration[4] = in.ReadFloat(); + /* x4_maxTranslationalAcceleration[5] */ + x4_maxTranslationalAcceleration[5] = in.ReadFloat(); + /* x4_maxTranslationalAcceleration[6] */ + x4_maxTranslationalAcceleration[6] = in.ReadFloat(); + /* x4_maxTranslationalAcceleration[7] */ + x4_maxTranslationalAcceleration[7] = in.ReadFloat(); + /* x24_maxRotationalAcceleration[0] */ + x24_maxRotationalAcceleration[0] = in.ReadFloat(); + /* x24_maxRotationalAcceleration[1] */ + x24_maxRotationalAcceleration[1] = in.ReadFloat(); + /* x24_maxRotationalAcceleration[2] */ + x24_maxRotationalAcceleration[2] = in.ReadFloat(); + /* x24_maxRotationalAcceleration[3] */ + x24_maxRotationalAcceleration[3] = in.ReadFloat(); + /* x24_maxRotationalAcceleration[4] */ + x24_maxRotationalAcceleration[4] = in.ReadFloat(); + /* x24_maxRotationalAcceleration[5] */ + x24_maxRotationalAcceleration[5] = in.ReadFloat(); + /* x24_maxRotationalAcceleration[6] */ + x24_maxRotationalAcceleration[6] = in.ReadFloat(); + /* x24_maxRotationalAcceleration[7] */ + x24_maxRotationalAcceleration[7] = in.ReadFloat(); + /* x44_translationFriction[0] */ + x44_translationFriction[0] = in.ReadFloat(); + /* x44_translationFriction[1] */ + x44_translationFriction[1] = in.ReadFloat(); + /* x44_translationFriction[2] */ + x44_translationFriction[2] = in.ReadFloat(); + /* x44_translationFriction[3] */ + x44_translationFriction[3] = in.ReadFloat(); + /* x44_translationFriction[4] */ + x44_translationFriction[4] = in.ReadFloat(); + /* x44_translationFriction[5] */ + x44_translationFriction[5] = in.ReadFloat(); + /* x44_translationFriction[6] */ + x44_translationFriction[6] = in.ReadFloat(); + /* x44_translationFriction[7] */ + x44_translationFriction[7] = in.ReadFloat(); + /* x64_rotationFriction[0] */ + x64_rotationFriction[0] = in.ReadFloat(); + /* x64_rotationFriction[1] */ + x64_rotationFriction[1] = in.ReadFloat(); + /* x64_rotationFriction[2] */ + x64_rotationFriction[2] = in.ReadFloat(); + /* x64_rotationFriction[3] */ + x64_rotationFriction[3] = in.ReadFloat(); + /* x64_rotationFriction[4] */ + x64_rotationFriction[4] = in.ReadFloat(); + /* x64_rotationFriction[5] */ + x64_rotationFriction[5] = in.ReadFloat(); + /* x64_rotationFriction[6] */ + x64_rotationFriction[6] = in.ReadFloat(); + /* x64_rotationFriction[7] */ + x64_rotationFriction[7] = in.ReadFloat(); + /* x84_rotationMaxSpeed[0] */ + x84_rotationMaxSpeed[0] = in.ReadFloat(); + /* x84_rotationMaxSpeed[1] */ + x84_rotationMaxSpeed[1] = in.ReadFloat(); + /* x84_rotationMaxSpeed[2] */ + x84_rotationMaxSpeed[2] = in.ReadFloat(); + /* x84_rotationMaxSpeed[3] */ + x84_rotationMaxSpeed[3] = in.ReadFloat(); + /* x84_rotationMaxSpeed[4] */ + x84_rotationMaxSpeed[4] = in.ReadFloat(); + /* x84_rotationMaxSpeed[5] */ + x84_rotationMaxSpeed[5] = in.ReadFloat(); + /* x84_rotationMaxSpeed[6] */ + x84_rotationMaxSpeed[6] = in.ReadFloat(); + /* x84_rotationMaxSpeed[7] */ + x84_rotationMaxSpeed[7] = in.ReadFloat(); + /* xa4_translationMaxSpeed[0] */ + xa4_translationMaxSpeed[0] = in.ReadFloat(); + /* xa4_translationMaxSpeed[1] */ + xa4_translationMaxSpeed[1] = in.ReadFloat(); + /* xa4_translationMaxSpeed[2] */ + xa4_translationMaxSpeed[2] = in.ReadFloat(); + /* xa4_translationMaxSpeed[3] */ + xa4_translationMaxSpeed[3] = in.ReadFloat(); + /* xa4_translationMaxSpeed[4] */ + xa4_translationMaxSpeed[4] = in.ReadFloat(); + /* xa4_translationMaxSpeed[5] */ + xa4_translationMaxSpeed[5] = in.ReadFloat(); + /* xa4_translationMaxSpeed[6] */ + xa4_translationMaxSpeed[6] = in.ReadFloat(); + /* xa4_translationMaxSpeed[7] */ + xa4_translationMaxSpeed[7] = in.ReadFloat(); + /* xc4_normalGravAccel */ + xc4_normalGravAccel = in.ReadFloat(); + /* xc8_fluidGravAccel */ + xc8_fluidGravAccel = in.ReadFloat(); + /* xcc_verticalJumpAccel */ + xcc_verticalJumpAccel = in.ReadFloat(); + /* xd0_horizontalJumpAccel */ + xd0_horizontalJumpAccel = in.ReadFloat(); + /* xd4_verticalDoubleJumpAccel */ + xd4_verticalDoubleJumpAccel = in.ReadFloat(); + /* xd8_horizontalDoubleJumpAccel */ + xd8_horizontalDoubleJumpAccel = in.ReadFloat(); + /* xdc_waterJumpFactor */ + xdc_waterJumpFactor = in.ReadFloat(); + /* xe0_waterBallJumpFactor */ + xe0_waterBallJumpFactor = in.ReadFloat(); + /* xe4_lavaJumpFactor */ + xe4_lavaJumpFactor = in.ReadFloat(); + /* xe8_lavaBallJumpFactor */ + xe8_lavaBallJumpFactor = in.ReadFloat(); + /* xec_phazonJumpFactor */ + xec_phazonJumpFactor = in.ReadFloat(); + /* xf0_phazonBallJumpFactor */ + xf0_phazonBallJumpFactor = in.ReadFloat(); + /* xf4_allowedJumpTime */ + xf4_allowedJumpTime = in.ReadFloat(); + /* xf8_allowedDoubleJumpTime */ + xf8_allowedDoubleJumpTime = in.ReadFloat(); + /* xfc_minDoubleJumpWindow */ + xfc_minDoubleJumpWindow = in.ReadFloat(); + /* x100_maxDoubleJumpWindow */ + x100_maxDoubleJumpWindow = in.ReadFloat(); + /* x104_ */ + x104_ = in.ReadFloat(); + /* x108_minJumpTime */ + x108_minJumpTime = in.ReadFloat(); + /* x10c_minDoubleJumpTime */ + x10c_minDoubleJumpTime = in.ReadFloat(); + /* x110_allowedLedgeTime */ + x110_allowedLedgeTime = in.ReadFloat(); + /* x114_doubleJumpImpulse */ + x114_doubleJumpImpulse = in.ReadFloat(); + /* x118_backwardsForceMultiplier */ + x118_backwardsForceMultiplier = in.ReadFloat(); + /* x11c_bombJumpRadius */ + x11c_bombJumpRadius = in.ReadFloat(); + /* x120_bombJumpHeight */ + x120_bombJumpHeight = in.ReadFloat(); + /* x124_eyeOffset */ + x124_eyeOffset = in.ReadFloat(); + /* x128_turnSpeedMultiplier */ + x128_turnSpeedMultiplier = in.ReadFloat(); + /* x12c_freeLookTurnSpeedMultiplier */ + x12c_freeLookTurnSpeedMultiplier = in.ReadFloat(); + /* x130_horizontalFreeLookAngleVel */ + x130_horizontalFreeLookAngleVel = in.ReadFloat(); + /* x134_verticalFreeLookAngleVel */ + x134_verticalFreeLookAngleVel = in.ReadFloat(); + /* x138_freeLookSpeed */ + x138_freeLookSpeed = in.ReadFloat(); + /* x13c_freeLookSnapSpeed */ + x13c_freeLookSnapSpeed = in.ReadFloat(); + /* x140_ */ + x140_ = in.ReadFloat(); + /* x144_freeLookCenteredThresholdAngle */ + x144_freeLookCenteredThresholdAngle = in.ReadFloat(); + /* x148_freeLookCenteredTime */ + x148_freeLookCenteredTime = in.ReadFloat(); + /* x14c_freeLookDampenFactor */ + x14c_freeLookDampenFactor = in.ReadFloat(); + /* x150_leftDiv */ + x150_leftDiv = in.ReadFloat(); + /* x154_rightDiv */ + x154_rightDiv = in.ReadFloat(); + /* x228_24_freelookTurnsPlayer */ + x228_24_freelookTurnsPlayer = in.ReadBool(); + /* x228_25_ */ + x228_25_ = in.ReadBool(); + /* x228_26_ */ + x228_26_ = in.ReadBool(); + /* x228_27_moveDuringFreeLook */ + x228_27_moveDuringFreeLook = in.ReadBool(); + /* x228_28_holdButtonsForFreeLook */ + x228_28_holdButtonsForFreeLook = in.ReadBool(); + /* x228_29_twoButtonsForFreeLook */ + x228_29_twoButtonsForFreeLook = in.ReadBool(); + /* x228_30_ */ + x228_30_ = in.ReadBool(); + /* x228_31_ */ + x228_31_ = in.ReadBool(); + /* x229_24_ */ + x229_24_ = in.ReadBool(); + /* x229_25_aimWhenOrbitingPoint */ + x229_25_aimWhenOrbitingPoint = in.ReadBool(); + /* x229_26_stayInFreeLookWhileFiring */ + x229_26_stayInFreeLookWhileFiring = in.ReadBool(); + /* x229_27_ */ + x229_27_ = in.ReadBool(); + /* x229_28_ */ + x229_28_ = in.ReadBool(); + /* x229_29_orbitFixedOffset */ + x229_29_orbitFixedOffset = in.ReadBool(); + /* x229_30_gunButtonTogglesHolster */ + x229_30_gunButtonTogglesHolster = in.ReadBool(); + /* x229_31_gunNotFiringHolstersGun */ + x229_31_gunNotFiringHolstersGun = in.ReadBool(); + /* x22a_24_fallingDoubleJump */ + x22a_24_fallingDoubleJump = in.ReadBool(); + /* x22a_25_impulseDoubleJump */ + x22a_25_impulseDoubleJump = in.ReadBool(); + /* x22a_26_firingCancelsCameraPitch */ + x22a_26_firingCancelsCameraPitch = in.ReadBool(); + /* x22a_27_assistedAimingIgnoreHorizontal */ + x22a_27_assistedAimingIgnoreHorizontal = in.ReadBool(); + /* x22a_28_assistedAimingIgnoreVertical */ + x22a_28_assistedAimingIgnoreVertical = in.ReadBool(); + /* x22c_ */ + x22c_ = in.ReadFloat(); + /* x230_ */ + x230_ = in.ReadFloat(); + /* x234_aimMaxDistance */ + x234_aimMaxDistance = in.ReadFloat(); + /* x238_ */ + x238_ = in.ReadFloat(); + /* x23c_ */ + x23c_ = in.ReadFloat(); + /* x240_ */ + x240_ = in.ReadFloat(); + /* x244_ */ + x244_ = in.ReadFloat(); + /* x248_ */ + x248_ = in.ReadFloat(); + /* x24c_aimThresholdDistance */ + x24c_aimThresholdDistance = in.ReadFloat(); + /* x250_ */ + x250_ = in.ReadFloat(); + /* x254_ */ + x254_ = in.ReadFloat(); + /* x258_aimBoxWidth */ + x258_aimBoxWidth = in.ReadFloat(); + /* x25c_aimBoxHeight */ + x25c_aimBoxHeight = in.ReadFloat(); + /* x260_aimTargetTimer */ + x260_aimTargetTimer = in.ReadFloat(); + /* x264_aimAssistHorizontalAngle */ + x264_aimAssistHorizontalAngle = in.ReadFloat(); + /* x268_aimAssistVerticalAngle */ + x268_aimAssistVerticalAngle = in.ReadFloat(); + /* x158_orbitMinDistance[0] */ + x158_orbitMinDistance[0] = in.ReadFloat(); + /* x164_orbitNormalDistance[0] */ + x164_orbitNormalDistance[0] = in.ReadFloat(); + /* x170_orbitMaxDistance[0] */ + x170_orbitMaxDistance[0] = in.ReadFloat(); + /* x158_orbitMinDistance[1] */ + x158_orbitMinDistance[1] = in.ReadFloat(); + /* x164_orbitNormalDistance[1] */ + x164_orbitNormalDistance[1] = in.ReadFloat(); + /* x170_orbitMaxDistance[1] */ + x170_orbitMaxDistance[1] = in.ReadFloat(); + /* x158_orbitMinDistance[2] */ + x158_orbitMinDistance[2] = in.ReadFloat(); + /* x164_orbitNormalDistance[2] */ + x164_orbitNormalDistance[2] = in.ReadFloat(); + /* x170_orbitMaxDistance[2] */ + x170_orbitMaxDistance[2] = in.ReadFloat(); + /* x17c_ */ + x17c_ = in.ReadFloat(); + /* x180_orbitModeTimer */ + x180_orbitModeTimer = in.ReadFloat(); + /* x184_orbitCameraSpeed */ + x184_orbitCameraSpeed = in.ReadFloat(); + /* x188_orbitUpperAngle */ + x188_orbitUpperAngle = in.ReadFloat(); + /* x18c_orbitLowerAngle */ + x18c_orbitLowerAngle = in.ReadFloat(); + /* x190_orbitHorizAngle */ + x190_orbitHorizAngle = in.ReadFloat(); + /* x194_ */ + x194_ = in.ReadFloat(); + /* x198_ */ + x198_ = in.ReadFloat(); + /* x19c_orbitMaxTargetDistance */ + x19c_orbitMaxTargetDistance = in.ReadFloat(); + /* x1a0_orbitMaxLockDistance */ + x1a0_orbitMaxLockDistance = in.ReadFloat(); + /* x1a4_orbitDistanceThreshold */ + x1a4_orbitDistanceThreshold = in.ReadFloat(); + /* x1a8_orbitScreenBoxHalfExtentX[0] */ + x1a8_orbitScreenBoxHalfExtentX[0] = in.ReadLong(); + /* x1b0_orbitScreenBoxHalfExtentY[0] */ + x1b0_orbitScreenBoxHalfExtentY[0] = in.ReadLong(); + /* x1b8_orbitScreenBoxCenterX[0] */ + x1b8_orbitScreenBoxCenterX[0] = in.ReadLong(); + /* x1c0_orbitScreenBoxCenterY[0] */ + x1c0_orbitScreenBoxCenterY[0] = in.ReadLong(); + /* x1c8_orbitZoneIdealX[0] */ + x1c8_orbitZoneIdealX[0] = in.ReadLong(); + /* x1d0_orbitZoneIdealY[0] */ + x1d0_orbitZoneIdealY[0] = in.ReadLong(); + /* x1a8_orbitScreenBoxHalfExtentX[1] */ + x1a8_orbitScreenBoxHalfExtentX[1] = in.ReadLong(); + /* x1b0_orbitScreenBoxHalfExtentY[1] */ + x1b0_orbitScreenBoxHalfExtentY[1] = in.ReadLong(); + /* x1b8_orbitScreenBoxCenterX[1] */ + x1b8_orbitScreenBoxCenterX[1] = in.ReadLong(); + /* x1c0_orbitScreenBoxCenterY[1] */ + x1c0_orbitScreenBoxCenterY[1] = in.ReadLong(); + /* x1c8_orbitZoneIdealX[1] */ + x1c8_orbitZoneIdealX[1] = in.ReadLong(); + /* x1d0_orbitZoneIdealY[1] */ + x1d0_orbitZoneIdealY[1] = in.ReadLong(); + /* x1d8_orbitNearX */ + x1d8_orbitNearX = in.ReadFloat(); + /* x1dc_orbitNearZ */ + x1dc_orbitNearZ = in.ReadFloat(); + /* x1e0_ */ + x1e0_ = in.ReadFloat(); + /* x1e4_ */ + x1e4_ = in.ReadFloat(); + /* x1e8_orbitFixedOffsetZDiff */ + x1e8_orbitFixedOffsetZDiff = in.ReadFloat(); + /* x1ec_orbitZRange */ + x1ec_orbitZRange = in.ReadFloat(); + /* x1f0_ */ + x1f0_ = in.ReadFloat(); + /* x1f4_ */ + x1f4_ = in.ReadFloat(); + /* x1f8_ */ + x1f8_ = in.ReadFloat(); + /* x1fc_orbitPreventionTime */ + x1fc_orbitPreventionTime = in.ReadFloat(); + /* x200_24_dashEnabled */ + x200_24_dashEnabled = in.ReadBool(); + /* x200_25_dashOnButtonRelease */ + x200_25_dashOnButtonRelease = in.ReadBool(); + /* x204_dashButtonHoldCancelTime */ + x204_dashButtonHoldCancelTime = in.ReadFloat(); + /* x208_dashStrafeInputThreshold */ + x208_dashStrafeInputThreshold = in.ReadFloat(); + /* x20c_sidewaysDoubleJumpImpulse */ + x20c_sidewaysDoubleJumpImpulse = in.ReadFloat(); + /* x210_sidewaysVerticalDoubleJumpAccel */ + x210_sidewaysVerticalDoubleJumpAccel = in.ReadFloat(); + /* x214_sidewaysHorizontalDoubleJumpAccel */ + x214_sidewaysHorizontalDoubleJumpAccel = in.ReadFloat(); + /* x218_scanningRange */ + x218_scanningRange = in.ReadFloat(); + /* x21c_24_scanRetention */ + x21c_24_scanRetention = in.ReadBool(); + /* x21c_25_scanFreezesGame */ + x21c_25_scanFreezesGame = in.ReadBool(); + /* x21c_26_orbitWhileScanning */ + x21c_26_orbitWhileScanning = in.ReadBool(); + /* x220_scanMaxTargetDistance */ + x220_scanMaxTargetDistance = in.ReadFloat(); + /* x224_scanMaxLockDistance */ + x224_scanMaxLockDistance = in.ReadFloat(); + /* x2a0_orbitDistanceMax */ + x2a0_orbitDistanceMax = in.ReadFloat(); + /* x2a4_grappleSwingLength */ + x2a4_grappleSwingLength = in.ReadFloat(); + /* x2a8_grappleSwingPeriod */ + x2a8_grappleSwingPeriod = in.ReadFloat(); + /* x2ac_grapplePullSpeedMin */ + x2ac_grapplePullSpeedMin = in.ReadFloat(); + /* x2b0_grappleCameraSpeed */ + x2b0_grappleCameraSpeed = in.ReadFloat(); + /* x2b4_maxGrappleLockedTurnAlignDistance */ + x2b4_maxGrappleLockedTurnAlignDistance = in.ReadFloat(); + /* x2b8_grapplePullSpeedProportion */ + x2b8_grapplePullSpeedProportion = in.ReadFloat(); + /* x2bc_grapplePullSpeedMax */ + x2bc_grapplePullSpeedMax = in.ReadFloat(); + /* x2c0_grappleLookCenterSpeed */ + x2c0_grappleLookCenterSpeed = in.ReadFloat(); + /* x2c4_maxGrappleTurnSpeed */ + x2c4_maxGrappleTurnSpeed = in.ReadFloat(); + /* x2c8_grappleJumpForce */ + x2c8_grappleJumpForce = in.ReadFloat(); + /* x2cc_grappleReleaseTime */ + x2cc_grappleReleaseTime = in.ReadFloat(); + /* x2d0_grappleJumpMode */ + x2d0_grappleJumpMode = in.ReadLong(); + /* x2d4_orbitReleaseBreaksGrapple */ + x2d4_orbitReleaseBreaksGrapple = in.ReadBool(); + /* x2d5_invertGrappleTurn */ + x2d5_invertGrappleTurn = in.ReadBool(); + /* x2d8_grappleBeamSpeed */ + x2d8_grappleBeamSpeed = in.ReadFloat(); + /* x2dc_grappleBeamXWaveAmplitude */ + x2dc_grappleBeamXWaveAmplitude = in.ReadFloat(); + /* x2e0_grappleBeamZWaveAmplitude */ + x2e0_grappleBeamZWaveAmplitude = in.ReadFloat(); + /* x2e4_grappleBeamAnglePhaseDelta */ + x2e4_grappleBeamAnglePhaseDelta = in.ReadFloat(); + /* x26c_playerHeight */ + x26c_playerHeight = in.ReadFloat(); + /* x270_playerXYHalfExtent */ + x270_playerXYHalfExtent = in.ReadFloat(); + /* x274_stepUpHeight */ + x274_stepUpHeight = in.ReadFloat(); + /* x278_stepDownHeight */ + x278_stepDownHeight = in.ReadFloat(); + /* x27c_playerBallHalfExtent */ + x27c_playerBallHalfExtent = in.ReadFloat(); + /* x280_ */ + x280_firstPersonCameraSpeed = in.ReadFloat(); + /* x284_ */ + x284_ = in.ReadFloat(); + /* x288_jumpCameraPitchDownStart */ + x288_jumpCameraPitchDownStart = in.ReadFloat(); + /* x28c_jumpCameraPitchDownFull */ + x28c_jumpCameraPitchDownFull = in.ReadFloat(); + /* x290_jumpCameraPitchDownAngle */ + x290_jumpCameraPitchDownAngle = in.ReadFloat(); + /* x294_fallCameraPitchDownStart */ + x294_fallCameraPitchDownStart = in.ReadFloat(); + /* x298_fallCameraPitchDownFull */ + x298_fallCameraPitchDownFull = in.ReadFloat(); + /* x29c_fallCameraPitchDownAngle */ + x29c_fallCameraPitchDownAngle = in.ReadFloat(); + /* x2e8_ */ + x2e8_ = in.ReadFloat(); + /* x2ec_ */ + x2ec_ = in.ReadFloat(); + /* x2f0_ */ + x2f0_ = in.ReadFloat(); + /* x2f4_ */ + x2f4_ = in.ReadBool(); + /* x2f8_frozenTimeout */ + x2f8_frozenTimeout = in.ReadFloat(); + /* x2fc_iceBreakJumpCount */ + x2fc_iceBreakJumpCount = in.ReadLong(); + /* x300_variaDamageReduction */ + x300_variaDamageReduction = in.ReadFloat(); + /* x304_gravityDamageReduction */ + x304_gravityDamageReduction = in.ReadFloat(); + /* x308_phazonDamageReduction */ + x308_phazonDamageReduction = in.ReadFloat(); +} + +void CTweakPlayer::PutTo(COutputStream& out) { + /* x4_maxTranslationalAcceleration[0] */ + out.Put(x4_maxTranslationalAcceleration[0]); + /* x4_maxTranslationalAcceleration[1] */ + out.Put(x4_maxTranslationalAcceleration[1]); + /* x4_maxTranslationalAcceleration[2] */ + out.Put(x4_maxTranslationalAcceleration[2]); + /* x4_maxTranslationalAcceleration[3] */ + out.Put(x4_maxTranslationalAcceleration[3]); + /* x4_maxTranslationalAcceleration[4] */ + out.Put(x4_maxTranslationalAcceleration[4]); + /* x4_maxTranslationalAcceleration[5] */ + out.Put(x4_maxTranslationalAcceleration[5]); + /* x4_maxTranslationalAcceleration[6] */ + out.Put(x4_maxTranslationalAcceleration[6]); + /* x4_maxTranslationalAcceleration[7] */ + out.Put(x4_maxTranslationalAcceleration[7]); + /* x24_maxRotationalAcceleration[0] */ + out.Put(x24_maxRotationalAcceleration[0]); + /* x24_maxRotationalAcceleration[1] */ + out.Put(x24_maxRotationalAcceleration[1]); + /* x24_maxRotationalAcceleration[2] */ + out.Put(x24_maxRotationalAcceleration[2]); + /* x24_maxRotationalAcceleration[3] */ + out.Put(x24_maxRotationalAcceleration[3]); + /* x24_maxRotationalAcceleration[4] */ + out.Put(x24_maxRotationalAcceleration[4]); + /* x24_maxRotationalAcceleration[5] */ + out.Put(x24_maxRotationalAcceleration[5]); + /* x24_maxRotationalAcceleration[6] */ + out.Put(x24_maxRotationalAcceleration[6]); + /* x24_maxRotationalAcceleration[7] */ + out.Put(x24_maxRotationalAcceleration[7]); + /* x44_translationFriction[0] */ + out.Put(x44_translationFriction[0]); + /* x44_translationFriction[1] */ + out.Put(x44_translationFriction[1]); + /* x44_translationFriction[2] */ + out.Put(x44_translationFriction[2]); + /* x44_translationFriction[3] */ + out.Put(x44_translationFriction[3]); + /* x44_translationFriction[4] */ + out.Put(x44_translationFriction[4]); + /* x44_translationFriction[5] */ + out.Put(x44_translationFriction[5]); + /* x44_translationFriction[6] */ + out.Put(x44_translationFriction[6]); + /* x44_translationFriction[7] */ + out.Put(x44_translationFriction[7]); + /* x64_rotationFriction[0] */ + out.Put(x64_rotationFriction[0]); + /* x64_rotationFriction[1] */ + out.Put(x64_rotationFriction[1]); + /* x64_rotationFriction[2] */ + out.Put(x64_rotationFriction[2]); + /* x64_rotationFriction[3] */ + out.Put(x64_rotationFriction[3]); + /* x64_rotationFriction[4] */ + out.Put(x64_rotationFriction[4]); + /* x64_rotationFriction[5] */ + out.Put(x64_rotationFriction[5]); + /* x64_rotationFriction[6] */ + out.Put(x64_rotationFriction[6]); + /* x64_rotationFriction[7] */ + out.Put(x64_rotationFriction[7]); + /* x84_rotationMaxSpeed[0] */ + out.Put(x84_rotationMaxSpeed[0]); + /* x84_rotationMaxSpeed[1] */ + out.Put(x84_rotationMaxSpeed[1]); + /* x84_rotationMaxSpeed[2] */ + out.Put(x84_rotationMaxSpeed[2]); + /* x84_rotationMaxSpeed[3] */ + out.Put(x84_rotationMaxSpeed[3]); + /* x84_rotationMaxSpeed[4] */ + out.Put(x84_rotationMaxSpeed[4]); + /* x84_rotationMaxSpeed[5] */ + out.Put(x84_rotationMaxSpeed[5]); + /* x84_rotationMaxSpeed[6] */ + out.Put(x84_rotationMaxSpeed[6]); + /* x84_rotationMaxSpeed[7] */ + out.Put(x84_rotationMaxSpeed[7]); + /* xa4_translationMaxSpeed[0] */ + out.Put(xa4_translationMaxSpeed[0]); + /* xa4_translationMaxSpeed[1] */ + out.Put(xa4_translationMaxSpeed[1]); + /* xa4_translationMaxSpeed[2] */ + out.Put(xa4_translationMaxSpeed[2]); + /* xa4_translationMaxSpeed[3] */ + out.Put(xa4_translationMaxSpeed[3]); + /* xa4_translationMaxSpeed[4] */ + out.Put(xa4_translationMaxSpeed[4]); + /* xa4_translationMaxSpeed[5] */ + out.Put(xa4_translationMaxSpeed[5]); + /* xa4_translationMaxSpeed[6] */ + out.Put(xa4_translationMaxSpeed[6]); + /* xa4_translationMaxSpeed[7] */ + out.Put(xa4_translationMaxSpeed[7]); + /* xc4_normalGravAccel */ + out.Put(xc4_normalGravAccel); + /* xc8_fluidGravAccel */ + out.Put(xc8_fluidGravAccel); + /* xcc_verticalJumpAccel */ + out.Put(xcc_verticalJumpAccel); + /* xd0_horizontalJumpAccel */ + out.Put(xd0_horizontalJumpAccel); + /* xd4_verticalDoubleJumpAccel */ + out.Put(xd4_verticalDoubleJumpAccel); + /* xd8_horizontalDoubleJumpAccel */ + out.Put(xd8_horizontalDoubleJumpAccel); + /* xdc_waterJumpFactor */ + out.Put(xdc_waterJumpFactor); + /* xe0_waterBallJumpFactor */ + out.Put(xe0_waterBallJumpFactor); + /* xe4_lavaJumpFactor */ + out.Put(xe4_lavaJumpFactor); + /* xe8_lavaBallJumpFactor */ + out.Put(xe8_lavaBallJumpFactor); + /* xec_phazonJumpFactor */ + out.Put(xec_phazonJumpFactor); + /* xf0_phazonBallJumpFactor */ + out.Put(xf0_phazonBallJumpFactor); + /* xf4_allowedJumpTime */ + out.Put(xf4_allowedJumpTime); + /* xf8_allowedDoubleJumpTime */ + out.Put(xf8_allowedDoubleJumpTime); + /* xfc_minDoubleJumpWindow */ + out.Put(xfc_minDoubleJumpWindow); + /* x100_maxDoubleJumpWindow */ + out.Put(x100_maxDoubleJumpWindow); + /* x104_ */ + out.Put(x104_); + /* x108_minJumpTime */ + out.Put(x108_minJumpTime); + /* x10c_minDoubleJumpTime */ + out.Put(x10c_minDoubleJumpTime); + /* x110_allowedLedgeTime */ + out.Put(x110_allowedLedgeTime); + /* x114_doubleJumpImpulse */ + out.Put(x114_doubleJumpImpulse); + /* x118_backwardsForceMultiplier */ + out.Put(x118_backwardsForceMultiplier); + /* x11c_bombJumpRadius */ + out.Put(x11c_bombJumpRadius); + /* x120_bombJumpHeight */ + out.Put(x120_bombJumpHeight); + /* x124_eyeOffset */ + out.Put(x124_eyeOffset); + /* x128_turnSpeedMultiplier */ + out.Put(x128_turnSpeedMultiplier); + /* x12c_freeLookTurnSpeedMultiplier */ + out.Put(x12c_freeLookTurnSpeedMultiplier); + /* x130_horizontalFreeLookAngleVel */ + out.Put(x130_horizontalFreeLookAngleVel); + /* x134_verticalFreeLookAngleVel */ + out.Put(x134_verticalFreeLookAngleVel); + /* x138_freeLookSpeed */ + out.Put(x138_freeLookSpeed); + /* x13c_freeLookSnapSpeed */ + out.Put(x13c_freeLookSnapSpeed); + /* x140_ */ + out.Put(x140_); + /* x144_freeLookCenteredThresholdAngle */ + out.Put(x144_freeLookCenteredThresholdAngle); + /* x148_freeLookCenteredTime */ + out.Put(x148_freeLookCenteredTime); + /* x14c_freeLookDampenFactor */ + out.Put(x14c_freeLookDampenFactor); + /* x150_leftDiv */ + out.Put(x150_leftDiv); + /* x154_rightDiv */ + out.Put(x154_rightDiv); + /* x228_24_freelookTurnsPlayer */ + out.Put(x228_24_freelookTurnsPlayer); + /* x228_25_ */ + out.Put(x228_25_); + /* x228_26_ */ + out.Put(x228_26_); + /* x228_27_moveDuringFreeLook */ + out.Put(x228_27_moveDuringFreeLook); + /* x228_28_holdButtonsForFreeLook */ + out.Put(x228_28_holdButtonsForFreeLook); + /* x228_29_twoButtonsForFreeLook */ + out.Put(x228_29_twoButtonsForFreeLook); + /* x228_30_ */ + out.Put(x228_30_); + /* x228_31_ */ + out.Put(x228_31_); + /* x229_24_ */ + out.Put(x229_24_); + /* x229_25_aimWhenOrbitingPoint */ + out.Put(x229_25_aimWhenOrbitingPoint); + /* x229_26_stayInFreeLookWhileFiring */ + out.Put(x229_26_stayInFreeLookWhileFiring); + /* x229_27_ */ + out.Put(x229_27_); + /* x229_28_ */ + out.Put(x229_28_); + /* x229_29_orbitFixedOffset */ + out.Put(x229_29_orbitFixedOffset); + /* x229_30_gunButtonTogglesHolster */ + out.Put(x229_30_gunButtonTogglesHolster); + /* x229_31_gunNotFiringHolstersGun */ + out.Put(x229_31_gunNotFiringHolstersGun); + /* x22a_24_fallingDoubleJump */ + out.Put(x22a_24_fallingDoubleJump); + /* x22a_25_impulseDoubleJump */ + out.Put(x22a_25_impulseDoubleJump); + /* x22a_26_firingCancelsCameraPitch */ + out.Put(x22a_26_firingCancelsCameraPitch); + /* x22a_27_assistedAimingIgnoreHorizontal */ + out.Put(x22a_27_assistedAimingIgnoreHorizontal); + /* x22a_28_assistedAimingIgnoreVertical */ + out.Put(x22a_28_assistedAimingIgnoreVertical); + /* x22c_ */ + out.Put(x22c_); + /* x230_ */ + out.Put(x230_); + /* x234_aimMaxDistance */ + out.Put(x234_aimMaxDistance); + /* x238_ */ + out.Put(x238_); + /* x23c_ */ + out.Put(x23c_); + /* x240_ */ + out.Put(x240_); + /* x244_ */ + out.Put(x244_); + /* x248_ */ + out.Put(x248_); + /* x24c_aimThresholdDistance */ + out.Put(x24c_aimThresholdDistance); + /* x250_ */ + out.Put(x250_); + /* x254_ */ + out.Put(x254_); + /* x258_aimBoxWidth */ + out.Put(x258_aimBoxWidth); + /* x25c_aimBoxHeight */ + out.Put(x25c_aimBoxHeight); + /* x260_aimTargetTimer */ + out.Put(x260_aimTargetTimer); + /* x264_aimAssistHorizontalAngle */ + out.Put(x264_aimAssistHorizontalAngle); + /* x268_aimAssistVerticalAngle */ + out.Put(x268_aimAssistVerticalAngle); + /* x158_orbitMinDistance[0] */ + out.Put(x158_orbitMinDistance[0]); + /* x164_orbitNormalDistance[0] */ + out.Put(x164_orbitNormalDistance[0]); + /* x170_orbitMaxDistance[0] */ + out.Put(x170_orbitMaxDistance[0]); + /* x158_orbitMinDistance[1] */ + out.Put(x158_orbitMinDistance[1]); + /* x164_orbitNormalDistance[1] */ + out.Put(x164_orbitNormalDistance[1]); + /* x170_orbitMaxDistance[1] */ + out.Put(x170_orbitMaxDistance[1]); + /* x158_orbitMinDistance[2] */ + out.Put(x158_orbitMinDistance[2]); + /* x164_orbitNormalDistance[2] */ + out.Put(x164_orbitNormalDistance[2]); + /* x170_orbitMaxDistance[2] */ + out.Put(x170_orbitMaxDistance[2]); + /* x17c_ */ + out.Put(x17c_); + /* x180_orbitModeTimer */ + out.Put(x180_orbitModeTimer); + /* x184_orbitCameraSpeed */ + out.Put(x184_orbitCameraSpeed); + /* x188_orbitUpperAngle */ + out.Put(x188_orbitUpperAngle); + /* x18c_orbitLowerAngle */ + out.Put(x18c_orbitLowerAngle); + /* x190_orbitHorizAngle */ + out.Put(x190_orbitHorizAngle); + /* x194_ */ + out.Put(x194_); + /* x198_ */ + out.Put(x198_); + /* x19c_orbitMaxTargetDistance */ + out.Put(x19c_orbitMaxTargetDistance); + /* x1a0_orbitMaxLockDistance */ + out.Put(x1a0_orbitMaxLockDistance); + /* x1a4_orbitDistanceThreshold */ + out.Put(x1a4_orbitDistanceThreshold); + /* x1a8_orbitScreenBoxHalfExtentX[0] */ + out.Put(x1a8_orbitScreenBoxHalfExtentX[0]); + /* x1b0_orbitScreenBoxHalfExtentY[0] */ + out.Put(x1b0_orbitScreenBoxHalfExtentY[0]); + /* x1b8_orbitScreenBoxCenterX[0] */ + out.Put(x1b8_orbitScreenBoxCenterX[0]); + /* x1c0_orbitScreenBoxCenterY[0] */ + out.Put(x1c0_orbitScreenBoxCenterY[0]); + /* x1c8_orbitZoneIdealX[0] */ + out.Put(x1c8_orbitZoneIdealX[0]); + /* x1d0_orbitZoneIdealY[0] */ + out.Put(x1d0_orbitZoneIdealY[0]); + /* x1a8_orbitScreenBoxHalfExtentX[1] */ + out.Put(x1a8_orbitScreenBoxHalfExtentX[1]); + /* x1b0_orbitScreenBoxHalfExtentY[1] */ + out.Put(x1b0_orbitScreenBoxHalfExtentY[1]); + /* x1b8_orbitScreenBoxCenterX[1] */ + out.Put(x1b8_orbitScreenBoxCenterX[1]); + /* x1c0_orbitScreenBoxCenterY[1] */ + out.Put(x1c0_orbitScreenBoxCenterY[1]); + /* x1c8_orbitZoneIdealX[1] */ + out.Put(x1c8_orbitZoneIdealX[1]); + /* x1d0_orbitZoneIdealY[1] */ + out.Put(x1d0_orbitZoneIdealY[1]); + /* x1d8_orbitNearX */ + out.Put(x1d8_orbitNearX); + /* x1dc_orbitNearZ */ + out.Put(x1dc_orbitNearZ); + /* x1e0_ */ + out.Put(x1e0_); + /* x1e4_ */ + out.Put(x1e4_); + /* x1e8_orbitFixedOffsetZDiff */ + out.Put(x1e8_orbitFixedOffsetZDiff); + /* x1ec_orbitZRange */ + out.Put(x1ec_orbitZRange); + /* x1f0_ */ + out.Put(x1f0_); + /* x1f4_ */ + out.Put(x1f4_); + /* x1f8_ */ + out.Put(x1f8_); + /* x1fc_orbitPreventionTime */ + out.Put(x1fc_orbitPreventionTime); + /* x200_24_dashEnabled */ + out.Put(x200_24_dashEnabled); + /* x200_25_dashOnButtonRelease */ + out.Put(x200_25_dashOnButtonRelease); + /* x204_dashButtonHoldCancelTime */ + out.Put(x204_dashButtonHoldCancelTime); + /* x208_dashStrafeInputThreshold */ + out.Put(x208_dashStrafeInputThreshold); + /* x20c_sidewaysDoubleJumpImpulse */ + out.Put(x20c_sidewaysDoubleJumpImpulse); + /* x210_sidewaysVerticalDoubleJumpAccel */ + out.Put(x210_sidewaysVerticalDoubleJumpAccel); + /* x214_sidewaysHorizontalDoubleJumpAccel */ + out.Put(x214_sidewaysHorizontalDoubleJumpAccel); + /* x218_scanningRange */ + out.Put(x218_scanningRange); + /* x21c_24_scanRetention */ + out.Put(x21c_24_scanRetention); + /* x21c_25_scanFreezesGame */ + out.Put(x21c_25_scanFreezesGame); + /* x21c_26_orbitWhileScanning */ + out.Put(x21c_26_orbitWhileScanning); + /* x220_scanMaxTargetDistance */ + out.Put(x220_scanMaxTargetDistance); + /* x224_scanMaxLockDistance */ + out.Put(x224_scanMaxLockDistance); + /* x2a0_orbitDistanceMax */ + out.Put(x2a0_orbitDistanceMax); + /* x2a4_grappleSwingLength */ + out.Put(x2a4_grappleSwingLength); + /* x2a8_grappleSwingPeriod */ + out.Put(x2a8_grappleSwingPeriod); + /* x2ac_grapplePullSpeedMin */ + out.Put(x2ac_grapplePullSpeedMin); + /* x2b0_grappleCameraSpeed */ + out.Put(x2b0_grappleCameraSpeed); + /* x2b4_maxGrappleLockedTurnAlignDistance */ + out.Put(x2b4_maxGrappleLockedTurnAlignDistance); + /* x2b8_grapplePullSpeedProportion */ + out.Put(x2b8_grapplePullSpeedProportion); + /* x2bc_grapplePullSpeedMax */ + out.Put(x2bc_grapplePullSpeedMax); + /* x2c0_grappleLookCenterSpeed */ + out.Put(x2c0_grappleLookCenterSpeed); + /* x2c4_maxGrappleTurnSpeed */ + out.Put(x2c4_maxGrappleTurnSpeed); + /* x2c8_grappleJumpForce */ + out.Put(x2c8_grappleJumpForce); + /* x2cc_grappleReleaseTime */ + out.Put(x2cc_grappleReleaseTime); + /* x2d0_grappleJumpMode */ + out.Put(x2d0_grappleJumpMode); + /* x2d4_orbitReleaseBreaksGrapple */ + out.Put(x2d4_orbitReleaseBreaksGrapple); + /* x2d5_invertGrappleTurn */ + out.Put(x2d5_invertGrappleTurn); + /* x2d8_grappleBeamSpeed */ + out.Put(x2d8_grappleBeamSpeed); + /* x2dc_grappleBeamXWaveAmplitude */ + out.Put(x2dc_grappleBeamXWaveAmplitude); + /* x2e0_grappleBeamZWaveAmplitude */ + out.Put(x2e0_grappleBeamZWaveAmplitude); + /* x2e4_grappleBeamAnglePhaseDelta */ + out.Put(x2e4_grappleBeamAnglePhaseDelta); + /* x26c_playerHeight */ + out.Put(x26c_playerHeight); + /* x270_playerXYHalfExtent */ + out.Put(x270_playerXYHalfExtent); + /* x274_stepUpHeight */ + out.Put(x274_stepUpHeight); + /* x278_stepDownHeight */ + out.Put(x278_stepDownHeight); + /* x27c_playerBallHalfExtent */ + out.Put(x27c_playerBallHalfExtent); + /* x280_ */ + out.Put(x280_firstPersonCameraSpeed); + /* x284_ */ + out.Put(x284_); + /* x288_jumpCameraPitchDownStart */ + out.Put(x288_jumpCameraPitchDownStart); + /* x28c_jumpCameraPitchDownFull */ + out.Put(x28c_jumpCameraPitchDownFull); + /* x290_jumpCameraPitchDownAngle */ + out.Put(x290_jumpCameraPitchDownAngle); + /* x294_fallCameraPitchDownStart */ + out.Put(x294_fallCameraPitchDownStart); + /* x298_fallCameraPitchDownFull */ + out.Put(x298_fallCameraPitchDownFull); + /* x29c_fallCameraPitchDownAngle */ + out.Put(x29c_fallCameraPitchDownAngle); + /* x2e8_ */ + out.Put(x2e8_); + /* x2ec_ */ + out.Put(x2ec_); + /* x2f0_ */ + out.Put(x2f0_); + /* x2f4_ */ + out.Put(x2f4_); + /* x2f8_frozenTimeout */ + out.Put(x2f8_frozenTimeout); + /* x2fc_iceBreakJumpCount */ + out.Put(x2fc_iceBreakJumpCount); + /* x300_variaDamageReduction */ + out.Put(x300_variaDamageReduction); + /* x304_gravityDamageReduction */ + out.Put(x304_gravityDamageReduction); + /* x308_phazonDamageReduction */ + out.Put(x308_phazonDamageReduction); +} + +void CTweakPlayer::FixupValues() { + x130_horizontalFreeLookAngleVel = zeus::degToRad(x130_horizontalFreeLookAngleVel); + x134_verticalFreeLookAngleVel = zeus::degToRad(x134_verticalFreeLookAngleVel); + x138_freeLookSpeed = zeus::degToRad(x138_freeLookSpeed); + x13c_freeLookSnapSpeed = zeus::degToRad(x13c_freeLookSnapSpeed); + x140_ = zeus::degToRad(x140_); + x144_freeLookCenteredThresholdAngle = zeus::degToRad(x144_freeLookCenteredThresholdAngle); + x23c_ = zeus::degToRad(x23c_); + x240_ = zeus::degToRad(x240_); + x244_ = zeus::degToRad(x244_); + x248_ = zeus::degToRad(x248_); + x250_ = zeus::degToRad(x250_); + x264_aimAssistHorizontalAngle = zeus::degToRad(x264_aimAssistHorizontalAngle); + x268_aimAssistVerticalAngle = zeus::degToRad(x268_aimAssistVerticalAngle); + x17c_ = zeus::degToRad(x17c_); + x184_orbitCameraSpeed = zeus::degToRad(x184_orbitCameraSpeed); + x188_orbitUpperAngle = zeus::degToRad(x188_orbitUpperAngle); + x18c_orbitLowerAngle = zeus::degToRad(x18c_orbitLowerAngle); + x190_orbitHorizAngle = zeus::degToRad(x190_orbitHorizAngle); + x194_ = zeus::degToRad(x194_); + x198_ = zeus::degToRad(x198_); + x1f0_ = zeus::degToRad(x1f0_); + x1f4_ = zeus::degToRad(x1f4_); + x2b0_grappleCameraSpeed = zeus::degToRad(x2b0_grappleCameraSpeed); + x2c0_grappleLookCenterSpeed = zeus::degToRad(x2c0_grappleLookCenterSpeed); + x280_firstPersonCameraSpeed = zeus::degToRad(x280_firstPersonCameraSpeed); + x284_ = zeus::degToRad(x284_); + x290_jumpCameraPitchDownAngle = zeus::degToRad(x290_jumpCameraPitchDownAngle); + x29c_fallCameraPitchDownAngle = zeus::degToRad(x29c_fallCameraPitchDownAngle); +} + +void CTweakPlayer::_tweakListener(hecl::CVar* cv) { + UPDATE_CVAR(MaxTranslationAccelerationNormal, cv, x4_maxTranslationalAcceleration[0]); + UPDATE_CVAR(MaxTranslationAccelerationAir, cv, x4_maxTranslationalAcceleration[1]); + UPDATE_CVAR(MaxTranslationAccelerationIce, cv, x4_maxTranslationalAcceleration[2]); + UPDATE_CVAR(MaxTranslationAccelerationOrganic, cv, x4_maxTranslationalAcceleration[3]); + UPDATE_CVAR(MaxTranslationAccelerationWater, cv, x4_maxTranslationalAcceleration[4]); + UPDATE_CVAR(MaxTranslationAccelerationLava, cv, x4_maxTranslationalAcceleration[5]); + UPDATE_CVAR(MaxTranslationAccelerationPhazon, cv, x4_maxTranslationalAcceleration[6]); + UPDATE_CVAR(MaxRotationAccelerationShrubbery, cv, x24_maxRotationalAcceleration[7]); + UPDATE_CVAR(MaxRotationAccelerationNormal, cv, x24_maxRotationalAcceleration[0]); + UPDATE_CVAR(MaxRotationAccelerationAir, cv, x24_maxRotationalAcceleration[1]); + UPDATE_CVAR(MaxRotationAccelerationIce, cv, x24_maxRotationalAcceleration[2]); + UPDATE_CVAR(MaxRotationAccelerationOrganic, cv, x24_maxRotationalAcceleration[3]); + UPDATE_CVAR(MaxRotationAccelerationWater, cv, x24_maxRotationalAcceleration[4]); + UPDATE_CVAR(MaxRotationAccelerationLava, cv, x24_maxRotationalAcceleration[5]); + UPDATE_CVAR(MaxRotationAccelerationPhazon, cv, x24_maxRotationalAcceleration[6]); + UPDATE_CVAR(MaxRotationAccelerationShrubbery, cv, x24_maxRotationalAcceleration[7]); + UPDATE_CVAR(TranslationFrictionNormal, cv, x44_translationFriction[0]); + UPDATE_CVAR(TranslationFrictionAir, cv, x44_translationFriction[1]); + UPDATE_CVAR(TranslationFrictionIce, cv, x44_translationFriction[2]); + UPDATE_CVAR(TranslationFrictionOrganic, cv, x44_translationFriction[3]); + UPDATE_CVAR(TranslationFrictionWater, cv, x44_translationFriction[4]); + UPDATE_CVAR(TranslationFrictionLava, cv, x44_translationFriction[5]); + UPDATE_CVAR(TranslationFrictionPhazon, cv, x44_translationFriction[6]); + UPDATE_CVAR(TranslationFrictionShrubbery, cv, x44_translationFriction[7]); + UPDATE_CVAR(RotationFrictionNormal, cv, x44_translationFriction[2]); + UPDATE_CVAR(RotationFrictionIce, cv, x44_translationFriction[2]); + UPDATE_CVAR(RotationFrictionOrganic, cv, x44_translationFriction[3]); + UPDATE_CVAR(RotationFrictionWater, cv, x44_translationFriction[4]); + UPDATE_CVAR(RotationFrictionLava, cv, x44_translationFriction[5]); + UPDATE_CVAR(RotationFrictionPhazon, cv, x44_translationFriction[6]); + UPDATE_CVAR(RotationFrictionShrubbery, cv, x44_translationFriction[7]); + UPDATE_CVAR(RotationMaxSpeedNormal, cv, x84_rotationMaxSpeed[2]); + UPDATE_CVAR(RotationMaxSpeedIce, cv, x84_rotationMaxSpeed[2]); + UPDATE_CVAR(RotationMaxSpeedOrganic, cv, x84_rotationMaxSpeed[3]); + UPDATE_CVAR(RotationMaxSpeedWater, cv, x84_rotationMaxSpeed[4]); + UPDATE_CVAR(RotationMaxSpeedLava, cv, x84_rotationMaxSpeed[5]); + UPDATE_CVAR(RotationMaxSpeedPhazon, cv, x84_rotationMaxSpeed[6]); + UPDATE_CVAR(RotationMaxSpeedShrubbery, cv, x84_rotationMaxSpeed[7]); + UPDATE_CVAR(TranslationMaxSpeedNormal, cv, xa4_translationMaxSpeed[2]); + UPDATE_CVAR(TranslationMaxSpeedIce, cv, xa4_translationMaxSpeed[2]); + UPDATE_CVAR(TranslationMaxSpeedOrganic, cv, xa4_translationMaxSpeed[3]); + UPDATE_CVAR(TranslationMaxSpeedWater, cv, xa4_translationMaxSpeed[4]); + UPDATE_CVAR(TranslationMaxSpeedLava, cv, xa4_translationMaxSpeed[5]); + UPDATE_CVAR(TranslationMaxSpeedPhazon, cv, xa4_translationMaxSpeed[6]); + UPDATE_CVAR(TranslationMaxSpeedShrubbery, cv, xa4_translationMaxSpeed[7]); + UPDATE_CVAR(NormalGravityAcceleration, cv, xc4_normalGravAccel); + UPDATE_CVAR(FluidGravityAcceleration, cv, xc8_fluidGravAccel); + UPDATE_CVAR(VerticalJumpAcceleration, cv, xcc_verticalJumpAccel); + UPDATE_CVAR(HorizontalJumpAcceleration, cv, xd0_horizontalJumpAccel); + UPDATE_CVAR(VerticalDoubleJumpAcceleration, cv, xd4_verticalDoubleJumpAccel); + UPDATE_CVAR(HorizontalDoubleJumpAcceleration, cv, xd8_horizontalDoubleJumpAccel); + UPDATE_CVAR(WaterJumpFactor, cv, xdc_waterJumpFactor); + UPDATE_CVAR(WaterBallJumpFactor, cv, xe0_waterBallJumpFactor); + UPDATE_CVAR(LavaJumpFactor, cv, xe4_lavaJumpFactor); + UPDATE_CVAR(LavaBallJumpFactor, cv, xe8_lavaBallJumpFactor); + UPDATE_CVAR(PhazonJumpFactor, cv, xec_phazonJumpFactor); + UPDATE_CVAR(PhazonBallJumpFactor, cv, xf0_phazonBallJumpFactor); + UPDATE_CVAR(AllowedJumpTime, cv, xf4_allowedJumpTime); + UPDATE_CVAR(AllowedDoubleJumpTime, cv, xf8_allowedDoubleJumpTime); + UPDATE_CVAR(MinDoubleJumpWindow, cv, xfc_minDoubleJumpWindow); + UPDATE_CVAR(MaxDoubleJumpWindow, cv, x100_maxDoubleJumpWindow); + // UPDATE_CVAR(); // x104_ + UPDATE_CVAR(MinJumpTime, cv, x108_minJumpTime); + UPDATE_CVAR(MinDoubleJumpTime, cv, x10c_minDoubleJumpTime); + UPDATE_CVAR(AllowedLedgeTime, cv, x110_allowedLedgeTime); + UPDATE_CVAR(DoubleJumpImpulse, cv, x114_doubleJumpImpulse); + UPDATE_CVAR(BackwardsForceMultiplier, cv, x118_backwardsForceMultiplier); + UPDATE_CVAR(BombJumpRadius, cv, x11c_bombJumpRadius); + UPDATE_CVAR(BombJumpHeight, cv, x120_bombJumpHeight); + UPDATE_CVAR(EyeOffset, cv, x124_eyeOffset); + UPDATE_CVAR(TurnSpeedMultiplier, cv, x128_turnSpeedMultiplier); + UPDATE_CVAR(FreeLookTurnSpeedMultiplier, cv, x12c_freeLookTurnSpeedMultiplier); + UPDATE_CVAR(HorizontalFreeLookAngleVelocity, cv, x130_horizontalFreeLookAngleVel); + UPDATE_CVAR(VerticalFreeLookAngleVelocity, cv, x134_verticalFreeLookAngleVel); + UPDATE_CVAR(FreeLookSpeed, cv, x138_freeLookSpeed); + UPDATE_CVAR(FreeLookSnapSpeed, cv, x13c_freeLookSnapSpeed); + // UPDATE_CVAR(); // x140_ + UPDATE_CVAR(FreeLookCenteredThresholdAngle, cv, x144_freeLookCenteredThresholdAngle); + UPDATE_CVAR(FreeLookCenteredTime, cv, x148_freeLookCenteredTime); + UPDATE_CVAR(FreeLookDampenFactor, cv, x14c_freeLookDampenFactor); + UPDATE_CVAR(LeftDivisor, cv, x150_leftDiv); + UPDATE_CVAR(RightDivisor, cv, x154_rightDiv); + UPDATE_CVAR(OrbitMinDistanceClose, cv, x158_orbitMinDistance[0]); + UPDATE_CVAR(OrbitMinDistanceFar, cv, x158_orbitMinDistance[1]); + UPDATE_CVAR(OrbitMinDistanceDefault, cv, x158_orbitMinDistance[2]); + UPDATE_CVAR(OrbitNormalDistanceClose, cv, x164_orbitNormalDistance[0]); + UPDATE_CVAR(OrbitNormalDistanceFar, cv, x164_orbitNormalDistance[1]); + UPDATE_CVAR(OrbitNormalDistanceDefault, cv, x164_orbitNormalDistance[2]); + UPDATE_CVAR(OrbitMaxDistanceClose, cv, x170_orbitMaxDistance[0]); + UPDATE_CVAR(OrbitMaxDistanceFar, cv, x170_orbitMaxDistance[1]); + UPDATE_CVAR(OrbitMaxDistanceDefault, cv, x170_orbitMaxDistance[2]); + // UPDATE_CVAR(); // x17c_ + UPDATE_CVAR(OrbitmodeTimer, cv, x180_orbitModeTimer); + UPDATE_CVAR(OrbitCameraSpeed, cv, x184_orbitCameraSpeed); + UPDATE_CVAR(OrbitUpperAngle, cv, x188_orbitUpperAngle); + UPDATE_CVAR(OrbitLowerAngle, cv, x18c_orbitLowerAngle); + UPDATE_CVAR(OrbitHorizontalAngle, cv, x190_orbitHorizAngle); + // UPDATE_CVAR(); // x194_ + // UPDATE_CVAR(); // x198_ + UPDATE_CVAR(OrbitMaxTargetDistance, cv, x19c_orbitMaxTargetDistance); + UPDATE_CVAR(OrbitMaxLockDistance, cv, x1a0_orbitMaxLockDistance); + UPDATE_CVAR(OrbitDistanceThreshold, cv, x1a4_orbitDistanceThreshold); + UPDATE_CVAR(OrbitScreenTargetingBoxHalfExtentX, cv, x1a8_orbitScreenBoxHalfExtentX[0]); + UPDATE_CVAR(OrbitScreenScanBoxHalfExtentX, cv, x1a8_orbitScreenBoxHalfExtentX[1]); + UPDATE_CVAR(OrbitScreenTargetingBoxHalfExtentY, cv, x1b0_orbitScreenBoxHalfExtentY[0]); + UPDATE_CVAR(OrbitScreenScanBoxHalfExtentY, cv, x1b0_orbitScreenBoxHalfExtentY[1]); + UPDATE_CVAR(OrbitScreenTargetingBoxCenterX, cv, x1b8_orbitScreenBoxCenterX[0]); + UPDATE_CVAR(OrbitScreenScanBoxCenterX, cv, x1b8_orbitScreenBoxCenterX[1]); + UPDATE_CVAR(OrbitScreenTargetingBoxCenterY, cv, x1c0_orbitScreenBoxCenterY[0]); + UPDATE_CVAR(OrbitScreenScanBoxCenterY, cv, x1c0_orbitScreenBoxCenterY[1]); + UPDATE_CVAR(OrbitZoneTargetingIdealX, cv, x1c8_orbitZoneIdealX[0]); + UPDATE_CVAR(OrbitZoneScanIdealX, cv, x1c8_orbitZoneIdealX[1]); + UPDATE_CVAR(OrbitZoneTargetingIdealY, cv, x1d0_orbitZoneIdealY[0]); + UPDATE_CVAR(OrbitZoneScanIdealY, cv, x1d0_orbitZoneIdealY[1]); + UPDATE_CVAR(OrbitNearX, cv, x1d8_orbitNearX); + UPDATE_CVAR(OrbitNearZ, cv, x1dc_orbitNearZ); + // UPDATE_CVAR(); // x1e0_ + // UPDATE_CVAR(); // x1e4_ + UPDATE_CVAR(OrbitFixedOffsetZDiff, cv, x1e8_orbitFixedOffsetZDiff); + UPDATE_CVAR(OrbitZRange, cv, x1ec_orbitZRange); + // UPDATE_CVAR(); // x1f0_ + // UPDATE_CVAR(); // x1f4_ + // UPDATE_CVAR(); // x1f8_ + UPDATE_CVAR(OrbitPreventionTime, cv, x1fc_orbitPreventionTime); + UPDATE_CVAR_BITFIELD(DashEnabled, cv, x200_24_dashEnabled); + UPDATE_CVAR_BITFIELD(DashOnButtonRelease, cv, x200_25_dashOnButtonRelease); + UPDATE_CVAR(DashButtonHoldCancelTime, cv, x204_dashButtonHoldCancelTime); + UPDATE_CVAR(DashStrafeInputThreshold, cv, x208_dashStrafeInputThreshold); + UPDATE_CVAR(SidewaysDoubleJumpImpulse, cv, x20c_sidewaysDoubleJumpImpulse); + UPDATE_CVAR(SidewaysVerticalDoubleJumpAccel, cv, x210_sidewaysVerticalDoubleJumpAccel); + UPDATE_CVAR(SidewaysHorizontalDoubleJumpAccel, cv, x214_sidewaysHorizontalDoubleJumpAccel); + UPDATE_CVAR(ScanningRange, cv, x218_scanningRange); + UPDATE_CVAR_BITFIELD(ScanRetention, cv, x21c_24_scanRetention); + UPDATE_CVAR_BITFIELD(ScanFreezesGame, cv, x21c_25_scanFreezesGame); + UPDATE_CVAR_BITFIELD(OrbitWhileScanning, cv, x21c_26_orbitWhileScanning); + UPDATE_CVAR(ScanMaxTargetDistance, cv, x220_scanMaxTargetDistance); + UPDATE_CVAR(ScanMaxLockDistance, cv, x224_scanMaxLockDistance); + UPDATE_CVAR_BITFIELD(FreeLookTurnsPlayer, cv, x228_24_freelookTurnsPlayer); + // UPDATE_CVAR_BITFIELD(); // x228_25_ + // UPDATE_CVAR_BITFIELD(); // x228_26_ + UPDATE_CVAR_BITFIELD(MoveDuringFreelook, cv, x228_27_moveDuringFreeLook); + UPDATE_CVAR_BITFIELD(HoldButtonsForFreeLook, cv, x228_28_holdButtonsForFreeLook); + // UPDATE_CVAR_BITFIELD(); // x228_30_ + // UPDATE_CVAR_BITFIELD(); // x228_31_ + // UPDATE_CVAR_BITFIELD(); // x229_24_ + UPDATE_CVAR_BITFIELD(AimWhenOrbitingPoint, cv, x229_25_aimWhenOrbitingPoint); + UPDATE_CVAR_BITFIELD(StayInFreeLookWhileFiring, cv, x229_26_stayInFreeLookWhileFiring); + // UPDATE_CVAR_BITFIELD(); // x229_27_ + // UPDATE_CVAR_BITFIELD(); // x229_28_ + UPDATE_CVAR_BITFIELD(OrbitFixedOffset, cv, x229_29_orbitFixedOffset); + UPDATE_CVAR_BITFIELD(GunButtonTogglesHolster, cv, x229_30_gunButtonTogglesHolster); + UPDATE_CVAR_BITFIELD(GunNotFiringHolstersGun, cv, x229_31_gunNotFiringHolstersGun); + UPDATE_CVAR_BITFIELD(FallingDoubleJump, cv, x22a_24_fallingDoubleJump); + UPDATE_CVAR_BITFIELD(ImpulseDoubleJump, cv, x22a_25_impulseDoubleJump); + UPDATE_CVAR_BITFIELD(FiringCancelsCameraPitch, cv, x22a_26_firingCancelsCameraPitch); + UPDATE_CVAR_BITFIELD(AssistedAimingIgnoreHorizontal, cv, x22a_27_assistedAimingIgnoreHorizontal); + UPDATE_CVAR_BITFIELD(AssistedAimingIgnoreVertical, cv, x22a_28_assistedAimingIgnoreVertical); + // UPDATE_CVAR(); // x22c + // UPDATE_CVAR(); // x230_ + UPDATE_CVAR(AimMaxDistance, cv, x234_aimMaxDistance); + // UPDATE_CVAR(); // x238_ + // UPDATE_CVAR(); // x23c_ + // UPDATE_CVAR(); // x240_ + // UPDATE_CVAR(); // x244_ + // UPDATE_CVAR(); // x248_ + UPDATE_CVAR(AimThresholdDistance, cv, x24c_aimThresholdDistance); + // UPDATE_CVAR(); // x250_ + // UPDATE_CVAR(); // x254_ + UPDATE_CVAR(AimBoxWidth, cv, x258_aimBoxWidth); + UPDATE_CVAR(AimBoxHeight, cv, x25c_aimBoxHeight); + UPDATE_CVAR(AimTargetTimer, cv, x260_aimTargetTimer); + UPDATE_CVAR(AimAssistHorizontalAngle, cv, x264_aimAssistHorizontalAngle); + UPDATE_CVAR(AimAssistVerticalAngle, cv, x268_aimAssistVerticalAngle); + UPDATE_CVAR(PlayerHeight, cv, x26c_playerHeight); + UPDATE_CVAR(PlayerXYHalfExtent, cv, x270_playerXYHalfExtent); + UPDATE_CVAR(StepUpHeight, cv, x274_stepUpHeight); + UPDATE_CVAR(StepDownHeight, cv, x278_stepDownHeight); + UPDATE_CVAR(PlayerBallHalfExtent, cv, x27c_playerBallHalfExtent); + UPDATE_CVAR(FirstPersonCameraSpeed, cv, x280_firstPersonCameraSpeed); + // UPDATE_CVAR(); // x284_ + UPDATE_CVAR(JumpCameraPitchDownStart, cv, x288_jumpCameraPitchDownStart); + UPDATE_CVAR(JumpCameraPitchDownFull, cv, x28c_jumpCameraPitchDownFull); + UPDATE_CVAR(JumpCameraPitchDownAngle, cv, x290_jumpCameraPitchDownAngle); + UPDATE_CVAR(FallCameraPitchDownStart, cv, x294_fallCameraPitchDownStart); + UPDATE_CVAR(FallCameraPitchDownFull, cv, x298_fallCameraPitchDownFull); + UPDATE_CVAR(FallCameraPitchDownAngle, cv, x29c_fallCameraPitchDownAngle); + UPDATE_CVAR(OrbitDistanceMax, cv, x2a0_orbitDistanceMax); + UPDATE_CVAR(GrappleSwingLength, cv, x2a4_grappleSwingLength); + UPDATE_CVAR(GrappleSwingPeriod, cv, x2a8_grappleSwingPeriod); + UPDATE_CVAR(GrapplePullSpeedMin, cv, x2ac_grapplePullSpeedMin); + UPDATE_CVAR(GrappleCameraSpeed, cv, x2b0_grappleCameraSpeed); + UPDATE_CVAR(MaxGrappleLockedTurnAlignDistance, cv, x2b4_maxGrappleLockedTurnAlignDistance); + UPDATE_CVAR(GrapplePullSpeedProportion, cv, x2b8_grapplePullSpeedProportion); + UPDATE_CVAR(GrapplePullSpeedMax, cv, x2bc_grapplePullSpeedMax); + UPDATE_CVAR(GrappleLookCenterSpeed, cv, x2c0_grappleLookCenterSpeed); + UPDATE_CVAR(MaxGrappleTurnSpeed, cv, x2c4_maxGrappleTurnSpeed); + UPDATE_CVAR(GrappleJumpForce, cv, x2c8_grappleJumpForce); + UPDATE_CVAR(GrappleReleaseTime, cv, x2cc_grappleReleaseTime); + UPDATE_CVAR(GrappleJumpMode, cv, x2d0_grappleJumpMode); + UPDATE_CVAR(OrbitReleaseBreaksGrapple, cv, x2d4_orbitReleaseBreaksGrapple); + UPDATE_CVAR(InvertGrappleTurn, cv, x2d5_invertGrappleTurn); + UPDATE_CVAR(GrappleBeamSpeed, cv, x2d8_grappleBeamSpeed); + UPDATE_CVAR(GrappleBeamXWaveAmplitude, cv, x2dc_grappleBeamXWaveAmplitude); + UPDATE_CVAR(GrappleBeamZWaveAmplitude, cv, x2e0_grappleBeamZWaveAmplitude); + UPDATE_CVAR(GrappleBeamAnglePhaseDelta, cv, x2e4_grappleBeamAnglePhaseDelta); + // UPDATE_CVAR(); // x2e8_ + // UPDATE_CVAR(); // x2ec_ + // UPDATE_CVAR(); // x2f0_ + // UPDATE_CVAR(); // x2f4_ + UPDATE_CVAR(FrozenTimeout, cv, x2f8_frozenTimeout); + UPDATE_CVAR(IceBreakJumpCount, cv, x2fc_iceBreakJumpCount); + UPDATE_CVAR(VariaDamageReduction, cv, x300_variaDamageReduction); + UPDATE_CVAR(GravityDamageReduction, cv, x304_gravityDamageReduction); + UPDATE_CVAR(PhazonDamageReduction, cv, x308_phazonDamageReduction); +} + +void CTweakPlayer::initCVars(hecl::CVarManager* mgr) { + CREATE_CVAR(MaxTranslationAccelerationNormal, + "Max translation acceleration allowed to the player under normal circumstances", + x4_maxTranslationalAcceleration[0], skDefaultFlags); + CREATE_CVAR(MaxTranslationAccelerationAir, "Max translation acceleration allowed to the player while in air", + x4_maxTranslationalAcceleration[1], skDefaultFlags); + CREATE_CVAR(MaxTranslationAccelerationIce, "Max translation acceleration allowed to the player while on ice surfaces", + x4_maxTranslationalAcceleration[2], skDefaultFlags); + CREATE_CVAR(MaxTranslationAccelerationOrganic, + "Max translation acceleration allowed to the player while on organic surfaces", + x4_maxTranslationalAcceleration[3], skDefaultFlags); + CREATE_CVAR(MaxTranslationAccelerationWater, "Max translation acceleration allowed to the player while in water", + x4_maxTranslationalAcceleration[4], skDefaultFlags); + CREATE_CVAR(MaxTranslationAccelerationLava, "Max translation acceleration allowed to the player while in lava", + x4_maxTranslationalAcceleration[5], skDefaultFlags); + CREATE_CVAR(MaxTranslationAccelerationPhazon, "Max translation acceleration allowed to the player while in phazon", + x4_maxTranslationalAcceleration[6], skDefaultFlags); + CREATE_CVAR(MaxTranslationAccelerationShrubbery, + "Max translation acceleration allowed to the player while in shrubbery", + x4_maxTranslationalAcceleration[7], skDefaultFlags); + CREATE_CVAR(MaxRotationAccelerationNormal, + "Max rotation acceleration allowed to the player under normal circumstances", + x24_maxRotationalAcceleration[0], skDefaultFlags); + CREATE_CVAR(MaxRotationAccelerationAir, "Max rotation acceleration allowed to the player while in air", + x24_maxRotationalAcceleration[1], skDefaultFlags); + CREATE_CVAR(MaxRotationAccelerationIce, "Max rotation acceleration allowed to the player while on ice surfaces", + x24_maxRotationalAcceleration[2], skDefaultFlags); + CREATE_CVAR(MaxRotationAccelerationOrganic, + "Max rotation acceleration allowed to the player while on organic surfaces", + x24_maxRotationalAcceleration[3], skDefaultFlags); + CREATE_CVAR(MaxRotationAccelerationWater, "Max rotation acceleration allowed to the player while in water", + x24_maxRotationalAcceleration[4], skDefaultFlags); + CREATE_CVAR(MaxRotationAccelerationLava, "Max rotation acceleration allowed to the player while in lava", + x24_maxRotationalAcceleration[5], skDefaultFlags); + CREATE_CVAR(MaxRotationAccelerationPhazon, "Max rotation acceleration allowed to the player while in phazon", + x24_maxRotationalAcceleration[6], skDefaultFlags); + CREATE_CVAR(MaxRotationAccelerationShrubbery, "Max rotation acceleration allowed to the player while in shrubbery", + x24_maxRotationalAcceleration[7], skDefaultFlags); + CREATE_CVAR(TranslationFrictionNormal, "Translation friction allowed to the player under normal circumstances", + x44_translationFriction[0], skDefaultFlags); + CREATE_CVAR(TranslationFrictionAir, "Translation friction allowed to the player while in air", + x44_translationFriction[1], skDefaultFlags); + CREATE_CVAR(TranslationFrictionIce, "Translation friction allowed to the player while on ice surfaces", + x44_translationFriction[2], skDefaultFlags); + CREATE_CVAR(TranslationFrictionOrganic, "Translation friction allowed to the player while on organic surfaces", + x44_translationFriction[3], skDefaultFlags); + CREATE_CVAR(TranslationFrictionWater, "Translation friction allowed to the player while in water", + x44_translationFriction[4], skDefaultFlags); + CREATE_CVAR(TranslationFrictionLava, "Translation friction allowed to the player while in lava", + x44_translationFriction[5], skDefaultFlags); + CREATE_CVAR(TranslationFrictionPhazon, "Translation friction allowed to the player while in phazon", + x44_translationFriction[6], skDefaultFlags); + CREATE_CVAR(TranslationFrictionShrubbery, "Translation friction allowed to the player while in shrubbery", + x44_translationFriction[7], skDefaultFlags); + CREATE_CVAR(RotationFrictionNormal, "Rotation friction allowed to the player under normal circumstances", + x44_translationFriction[0], skDefaultFlags); + CREATE_CVAR(RotationFrictionAir, "Rotation friction allowed to the player while in air", x44_translationFriction[1], + skDefaultFlags); + CREATE_CVAR(RotationFrictionIce, "Rotation friction allowed to the player while on ice surfaces", + x44_translationFriction[2], skDefaultFlags); + CREATE_CVAR(RotationFrictionOrganic, "Rotation friction allowed to the player while on organic surfaces", + x44_translationFriction[3], skDefaultFlags); + CREATE_CVAR(RotationFrictionWater, "Rotation friction allowed to the player while in water", + x44_translationFriction[4], skDefaultFlags); + CREATE_CVAR(RotationFrictionLava, "Rotation friction allowed to the player while in lava", x44_translationFriction[5], + skDefaultFlags); + CREATE_CVAR(RotationFrictionPhazon, "Rotation friction allowed to the player while in phazon", + x44_translationFriction[6], skDefaultFlags); + CREATE_CVAR(RotationFrictionShrubbery, "Rotation friction allowed to the player while in shrubbery", + x44_translationFriction[7], skDefaultFlags); + CREATE_CVAR(RotationMaxSpeedNormal, "Rotation max speed allowed to the player under normal circumstances", + x84_rotationMaxSpeed[0], skDefaultFlags); + CREATE_CVAR(RotationMaxSpeedAir, "Rotation max speed allowed to the player while in air", x84_rotationMaxSpeed[1], + skDefaultFlags); + CREATE_CVAR(RotationMaxSpeedIce, "Rotation max speed allowed to the player while on ice surfaces", + x84_rotationMaxSpeed[2], skDefaultFlags); + CREATE_CVAR(RotationMaxSpeedOrganic, "Rotation max speed allowed to the player while on organic surfaces", + x84_rotationMaxSpeed[3], skDefaultFlags); + CREATE_CVAR(RotationMaxSpeedWater, "Rotation max speed allowed to the player while in water", x84_rotationMaxSpeed[4], + skDefaultFlags); + CREATE_CVAR(RotationMaxSpeedLava, "Rotation max speed allowed to the player while in lava", x84_rotationMaxSpeed[5], + skDefaultFlags); + CREATE_CVAR(RotationMaxSpeedPhazon, "Rotation max speed allowed to the player while in phazon", + x84_rotationMaxSpeed[6], skDefaultFlags); + CREATE_CVAR(RotationMaxSpeedShrubbery, "Rotation max speed allowed to the player while in shrubbery", + x84_rotationMaxSpeed[7], skDefaultFlags); + CREATE_CVAR(TranslationMaxSpeedNormal, "Translation max speed allowed to the player under normal circumstances", + xa4_translationMaxSpeed[0], skDefaultFlags); + CREATE_CVAR(TranslationMaxSpeedNormal, "Translation max speed allowed to the player under normal circumstances", + xa4_translationMaxSpeed[1], skDefaultFlags); + CREATE_CVAR(TranslationMaxSpeedIce, "Translation max speed allowed to the player while on ice surfaces", + xa4_translationMaxSpeed[2], skDefaultFlags); + CREATE_CVAR(TranslationMaxSpeedOrganic, "Translation max speed allowed to the player while on organic surfaces", + xa4_translationMaxSpeed[3], skDefaultFlags); + CREATE_CVAR(TranslationMaxSpeedWater, "Translation max speed allowed to the player while in water", + xa4_translationMaxSpeed[4], skDefaultFlags); + CREATE_CVAR(TranslationMaxSpeedLava, "Translation max speed allowed to the player while in lava", + xa4_translationMaxSpeed[5], skDefaultFlags); + CREATE_CVAR(TranslationMaxSpeedPhazon, "Translation max speed allowed to the player while in phazon", + xa4_translationMaxSpeed[6], skDefaultFlags); + CREATE_CVAR(TranslationMaxSpeedShrubbery, "Translation max speed allowed to the player while in shrubbery", + xa4_translationMaxSpeed[7], skDefaultFlags); + CREATE_CVAR(NormalGravityAcceleration, "Gravity applied to the player under normal circumstances", + xc4_normalGravAccel, skDefaultFlags); + CREATE_CVAR(FluidGravityAcceleration, "Gravity applied to the player while in water", xc8_fluidGravAccel, + skDefaultFlags); + CREATE_CVAR(VerticalJumpAcceleration, "Vertical acceleration applied while jumping", xcc_verticalJumpAccel, + skDefaultFlags); + CREATE_CVAR(HorizontalJumpAcceleration, "Horizontal acceleration while jumping", xd0_horizontalJumpAccel, + skDefaultFlags); + CREATE_CVAR(VerticalDoubleJumpAcceleration, "Vertical acceleration while double jumping", xd4_verticalDoubleJumpAccel, + skDefaultFlags); + CREATE_CVAR(HorizontalDoubleJumpAcceleration, "Horizontal acceleration while double jumping", + xd8_horizontalDoubleJumpAccel, skDefaultFlags); + CREATE_CVAR(WaterJumpFactor, "Jump Factor while in water", xdc_waterJumpFactor, skDefaultFlags); + CREATE_CVAR(WaterBallJumpFactor, "Jump Factor while morphed in water", xe0_waterBallJumpFactor, skDefaultFlags); + CREATE_CVAR(LavaJumpFactor, "Jump Factor while in lava", xe4_lavaJumpFactor, skDefaultFlags); + CREATE_CVAR(LavaBallJumpFactor, "Jump Factor while morphed in lava", xe8_lavaBallJumpFactor, skDefaultFlags); + CREATE_CVAR(PhazonJumpFactor, "Jump Factor while in phazon", xec_phazonJumpFactor, skDefaultFlags); + CREATE_CVAR(PhazonBallJumpFactor, "Jump Factor while morphed in phazon", xf0_phazonBallJumpFactor, skDefaultFlags); + CREATE_CVAR(AllowedJumpTime, "", xf4_allowedJumpTime, skDefaultFlags); + CREATE_CVAR(AllowedDoubleJumpTime, "", xf8_allowedDoubleJumpTime, skDefaultFlags); + CREATE_CVAR(MinDoubleJumpWindow, "", xfc_minDoubleJumpWindow, skDefaultFlags); + CREATE_CVAR(MaxDoubleJumpWindow, "", x100_maxDoubleJumpWindow, skDefaultFlags); + // CREATE_CVAR(); // x104_ + CREATE_CVAR(MinJumpTime, "", x108_minJumpTime, skDefaultFlags); + CREATE_CVAR(MinDoubleJumpTime, "", x10c_minDoubleJumpTime, skDefaultFlags); + CREATE_CVAR(AllowedLedgeTime, "", x110_allowedLedgeTime, skDefaultFlags); + CREATE_CVAR(DoubleJumpImpulse, "", x114_doubleJumpImpulse, skDefaultFlags); + CREATE_CVAR(BackwardsForceMultiplier, "", x118_backwardsForceMultiplier, skDefaultFlags); + CREATE_CVAR(BombJumpRadius, "", x11c_bombJumpRadius, skDefaultFlags); + CREATE_CVAR(BombJumpHeight, "", x120_bombJumpHeight, skDefaultFlags); + CREATE_CVAR(EyeOffset, "", x124_eyeOffset, skDefaultFlags); + CREATE_CVAR(TurnSpeedMultiplier, "", x128_turnSpeedMultiplier, skDefaultFlags); + CREATE_CVAR(FreeLookTurnSpeedMultiplier, "", x12c_freeLookTurnSpeedMultiplier, skDefaultFlags); + CREATE_CVAR(HorizontalFreeLookAngleVelocity, "", x130_horizontalFreeLookAngleVel, skDefaultFlags); + CREATE_CVAR(VerticalFreeLookAngleVelocity, "", x134_verticalFreeLookAngleVel, skDefaultFlags); + CREATE_CVAR(FreeLookSpeed, "", x138_freeLookSpeed, skDefaultFlags); + CREATE_CVAR(FreeLookSnapSpeed, "", x13c_freeLookSnapSpeed, skDefaultFlags); + // CREATE_CVAR(); // x140_ + CREATE_CVAR(FreeLookCenteredThresholdAngle, "", x144_freeLookCenteredThresholdAngle, skDefaultFlags); + CREATE_CVAR(FreeLookCenteredTime, "", x148_freeLookCenteredTime, skDefaultFlags); + CREATE_CVAR(FreeLookDampenFactor, "", x14c_freeLookDampenFactor, skDefaultFlags); + CREATE_CVAR(LeftDivisor, "", x150_leftDiv, skDefaultFlags); + CREATE_CVAR(RightDivisor, "", x154_rightDiv, skDefaultFlags); + CREATE_CVAR(OrbitMinDistanceClose, "", x158_orbitMinDistance[0], skDefaultFlags); + CREATE_CVAR(OrbitMinDistanceFar, "", x158_orbitMinDistance[1], skDefaultFlags); + CREATE_CVAR(OrbitMinDistanceDefault, "", x158_orbitMinDistance[2], skDefaultFlags); + CREATE_CVAR(OrbitNormalDistanceClose, "", x164_orbitNormalDistance[0], skDefaultFlags); + CREATE_CVAR(OrbitNormalDistanceFar, "", x164_orbitNormalDistance[1], skDefaultFlags); + CREATE_CVAR(OrbitNormalDistanceDefault, "", x164_orbitNormalDistance[2], skDefaultFlags); + CREATE_CVAR(OrbitMaxDistanceClose, "", x170_orbitMaxDistance[0], skDefaultFlags); + CREATE_CVAR(OrbitMaxDistanceFar, "", x170_orbitMaxDistance[1], skDefaultFlags); + CREATE_CVAR(OrbitMaxDistanceDefault, "", x170_orbitMaxDistance[2], skDefaultFlags); + // CREATE_CVAR(); // x17c_ + CREATE_CVAR(OrbitmodeTimer, "", x180_orbitModeTimer, skDefaultFlags); + CREATE_CVAR(OrbitCameraSpeed, "", x184_orbitCameraSpeed, skDefaultFlags); + CREATE_CVAR(OrbitUpperAngle, "", x184_orbitCameraSpeed, skDefaultFlags); + CREATE_CVAR(OrbitLowerAngle, "", x184_orbitCameraSpeed, skDefaultFlags); + CREATE_CVAR(OrbitHorizontalAngle, "", x184_orbitCameraSpeed, skDefaultFlags); + // CREATE_CVAR(); // x194_ + // CREATE_CVAR(); // x198_ + CREATE_CVAR(OrbitMaxTargetDistance, "", x19c_orbitMaxTargetDistance, skDefaultFlags); + CREATE_CVAR(OrbitMaxLockDistance, "", x1a0_orbitMaxLockDistance, skDefaultFlags); + CREATE_CVAR(OrbitDistanceThreshold, "", x1a4_orbitDistanceThreshold, skDefaultFlags); + CREATE_CVAR(OrbitScreenTargetingBoxHalfExtentX, "", x1a8_orbitScreenBoxHalfExtentX[0], skDefaultFlags); + CREATE_CVAR(OrbitScreenScanBoxHalfExtentX, "", x1a8_orbitScreenBoxHalfExtentX[1], skDefaultFlags); + CREATE_CVAR(OrbitScreenTargetingBoxHalfExtentY, "", x1b0_orbitScreenBoxHalfExtentY[0], skDefaultFlags); + CREATE_CVAR(OrbitScreenScanBoxHalfExtentY, "", x1b0_orbitScreenBoxHalfExtentY[1], skDefaultFlags); + CREATE_CVAR(OrbitScreenTargetingBoxCenterX, "", x1b8_orbitScreenBoxCenterX[0], skDefaultFlags); + CREATE_CVAR(OrbitScreenScanBoxCenterX, "", x1b8_orbitScreenBoxCenterX[1], skDefaultFlags); + CREATE_CVAR(OrbitScreenTargetingBoxCenterY, "", x1c0_orbitScreenBoxCenterY[0], skDefaultFlags); + CREATE_CVAR(OrbitScreenScanBoxCenterY, "", x1c0_orbitScreenBoxCenterY[1], skDefaultFlags); + CREATE_CVAR(OrbitZoneTargetingIdealX, "", x1c8_orbitZoneIdealX[0], skDefaultFlags); + CREATE_CVAR(OrbitZoneScanIdealX, "", x1c8_orbitZoneIdealX[1], skDefaultFlags); + CREATE_CVAR(OrbitZoneTargetingIdealY, "", x1d0_orbitZoneIdealY[0], skDefaultFlags); + CREATE_CVAR(OrbitZoneScanIdealY, "", x1d0_orbitZoneIdealY[1], skDefaultFlags); + CREATE_CVAR(OrbitNearX, "", x1d8_orbitNearX, skDefaultFlags); + CREATE_CVAR(OrbitNearZ, "", x1dc_orbitNearZ, skDefaultFlags); + // CREATE_CVAR(); // x1e0_ + // CREATE_CVAR(); // x1e4_ + CREATE_CVAR(OrbitFixedOffsetZDiff, "", x1e8_orbitFixedOffsetZDiff, skDefaultFlags); + CREATE_CVAR(OrbitZRange, "", x1ec_orbitZRange, skDefaultFlags); + // CREATE_CVAR(); // x1f0_ + // CREATE_CVAR(); // x1f4_ + // CREATE_CVAR(); // x1f8_ + CREATE_CVAR(OrbitPreventionTime, "", x1fc_orbitPreventionTime, skDefaultFlags); + CREATE_CVAR_BITFIELD(DashEnabled, "", x200_24_dashEnabled, skDefaultFlags); + CREATE_CVAR_BITFIELD(DashOnButtonRelease, "", x200_25_dashOnButtonRelease, skDefaultFlags); + CREATE_CVAR(DashButtonHoldCancelTime, "", x204_dashButtonHoldCancelTime, skDefaultFlags); + CREATE_CVAR(DashStrafeInputThreshold, "", x208_dashStrafeInputThreshold, skDefaultFlags); + CREATE_CVAR(SidewaysDoubleJumpImpulse, "", x20c_sidewaysDoubleJumpImpulse, skDefaultFlags); + CREATE_CVAR(SidewaysVerticalDoubleJumpAccel, "", x210_sidewaysVerticalDoubleJumpAccel, skDefaultFlags); + CREATE_CVAR(SidewaysHorizontalDoubleJumpAccel, "", x214_sidewaysHorizontalDoubleJumpAccel, skDefaultFlags); + CREATE_CVAR(ScanningRange, "", x218_scanningRange, skDefaultFlags); + CREATE_CVAR_BITFIELD(ScanRetention, "", x21c_24_scanRetention, skDefaultFlags); + CREATE_CVAR_BITFIELD(ScanFreezesGame, "", x21c_25_scanFreezesGame, skDefaultFlags); + CREATE_CVAR_BITFIELD(OrbitWhileScanning, "", x21c_26_orbitWhileScanning, skDefaultFlags); + CREATE_CVAR(ScanMaxTargetDistance, "", x220_scanMaxTargetDistance, skDefaultFlags); + CREATE_CVAR(ScanMaxLockDistance, "", x224_scanMaxLockDistance, skDefaultFlags); + CREATE_CVAR_BITFIELD(FreeLookTurnsPlayer, "", x228_24_freelookTurnsPlayer, skDefaultFlags); + // CREATE_CVAR_BITFIELD(); // x228_25_ + // CREATE_CVAR_BITFIELD(); // x228_26_ + CREATE_CVAR_BITFIELD(MoveDuringFreelook, "", x228_27_moveDuringFreeLook, skDefaultFlags); + CREATE_CVAR_BITFIELD(HoldButtonsForFreeLook, "", x228_28_holdButtonsForFreeLook, skDefaultFlags); + // CREATE_CVAR_BITFIELD(); // x228_30_ + // CREATE_CVAR_BITFIELD(); // x228_31_ + // CREATE_CVAR(); // x229_24_ + CREATE_CVAR_BITFIELD(AimWhenOrbitingPoint, "", x229_25_aimWhenOrbitingPoint, skDefaultFlags); + CREATE_CVAR_BITFIELD(StayInFreeLookWhileFiring, "", x229_26_stayInFreeLookWhileFiring, skDefaultFlags); + // CREATE_CVAR_BITFIELD(); // x229_27_ + // CREATE_CVAR_BITFIELD(); // x229_28_ + CREATE_CVAR_BITFIELD(OrbitFixedOffset, "", x229_29_orbitFixedOffset, skDefaultFlags); + CREATE_CVAR_BITFIELD(GunButtonTogglesHolster, "", x229_30_gunButtonTogglesHolster, skDefaultFlags); + CREATE_CVAR_BITFIELD(GunNotFiringHolstersGun, "", x229_31_gunNotFiringHolstersGun, skDefaultFlags); + CREATE_CVAR_BITFIELD(FallingDoubleJump, "", x22a_24_fallingDoubleJump, skDefaultFlags); + CREATE_CVAR_BITFIELD(ImpulseDoubleJump, "", x22a_25_impulseDoubleJump, skDefaultFlags); + CREATE_CVAR_BITFIELD(FiringCancelsCameraPitch, "", x22a_26_firingCancelsCameraPitch, skDefaultFlags); + CREATE_CVAR_BITFIELD(AssistedAimingIgnoreHorizontal, "", x22a_27_assistedAimingIgnoreHorizontal, skDefaultFlags); + CREATE_CVAR_BITFIELD(AssistedAimingIgnoreVertical, "", x22a_28_assistedAimingIgnoreVertical, skDefaultFlags); + // CREATE_CVAR(); // x22c + // CREATE_CVAR(); // x230_ + CREATE_CVAR(AimMaxDistance, "", x234_aimMaxDistance, skDefaultFlags); + // CREATE_CVAR(); // x238_ + // CREATE_CVAR(); // x23c_ + // CREATE_CVAR(); // x240_ + // CREATE_CVAR(); // x244_ + // CREATE_CVAR(); // x248_ + CREATE_CVAR(AimThresholdDistance, "", x24c_aimThresholdDistance, skDefaultFlags); + // CREATE_CVAR(); // x250_ + // CREATE_CVAR(); // x254_ + CREATE_CVAR(AimBoxWidth, "", x258_aimBoxWidth, skDefaultFlags); + CREATE_CVAR(AimBoxHeight, "", x25c_aimBoxHeight, skDefaultFlags); + CREATE_CVAR(AimTargetTimer, "", x260_aimTargetTimer, skDefaultFlags); + CREATE_CVAR(AimAssistHorizontalAngle, "", x264_aimAssistHorizontalAngle, skDefaultFlags); + CREATE_CVAR(AimAssistVerticalAngle, "", x268_aimAssistVerticalAngle, skDefaultFlags); + CREATE_CVAR(PlayerHeight, "", x26c_playerHeight, skDefaultFlags); + CREATE_CVAR(PlayerXYHalfExtent, "", x270_playerXYHalfExtent, skDefaultFlags); + CREATE_CVAR(StepUpHeight, "", x274_stepUpHeight, skDefaultFlags); + CREATE_CVAR(StepDownHeight, "", x278_stepDownHeight, skDefaultFlags); + CREATE_CVAR(PlayerBallHalfExtent, "", x27c_playerBallHalfExtent, skDefaultFlags); + CREATE_CVAR(FirstPersonCameraSpeed, "", x280_firstPersonCameraSpeed, skDefaultFlags); + // CREATE_CVAR(); // x284_ + CREATE_CVAR(JumpCameraPitchDownStart, "", x288_jumpCameraPitchDownStart, skDefaultFlags); + CREATE_CVAR(JumpCameraPitchDownFull, "", x28c_jumpCameraPitchDownFull, skDefaultFlags); + CREATE_CVAR(JumpCameraPitchDownAngle, "", x290_jumpCameraPitchDownAngle, skDefaultFlags); + CREATE_CVAR(FallCameraPitchDownStart, "", x294_fallCameraPitchDownStart, skDefaultFlags); + CREATE_CVAR(FallCameraPitchDownFull, "", x298_fallCameraPitchDownFull, skDefaultFlags); + CREATE_CVAR(FallCameraPitchDownAngle, "", x29c_fallCameraPitchDownAngle, skDefaultFlags); + CREATE_CVAR(OrbitDistanceMax, "", x2a0_orbitDistanceMax, skDefaultFlags); + CREATE_CVAR(GrappleSwingLength, "", x2a4_grappleSwingLength, skDefaultFlags); + CREATE_CVAR(GrappleSwingPeriod, "", x2a8_grappleSwingPeriod, skDefaultFlags); + CREATE_CVAR(GrapplePullSpeedMin, "", x2ac_grapplePullSpeedMin, skDefaultFlags); + CREATE_CVAR(GrappleCameraSpeed, "", x2b0_grappleCameraSpeed, skDefaultFlags); + CREATE_CVAR(MaxGrappleLockedTurnAlignDistance, "", x2b4_maxGrappleLockedTurnAlignDistance, skDefaultFlags); + CREATE_CVAR(GrapplePullSpeedProportion, "", x2b8_grapplePullSpeedProportion, skDefaultFlags); + CREATE_CVAR(GrapplePullSpeedMax, "", x2bc_grapplePullSpeedMax, skDefaultFlags); + CREATE_CVAR(GrappleLookCenterSpeed, "", x2c0_grappleLookCenterSpeed, skDefaultFlags); + CREATE_CVAR(MaxGrappleTurnSpeed, "", x2c4_maxGrappleTurnSpeed, skDefaultFlags); + CREATE_CVAR(GrappleJumpForce, "", x2c8_grappleJumpForce, skDefaultFlags); + CREATE_CVAR(GrappleReleaseTime, "", x2cc_grappleReleaseTime, skDefaultFlags); + CREATE_CVAR(GrappleJumpMode, "", x2d0_grappleJumpMode, skDefaultFlags); + CREATE_CVAR(OrbitReleaseBreaksGrapple, "", x2d4_orbitReleaseBreaksGrapple, skDefaultFlags); + CREATE_CVAR(InvertGrappleTurn, "", x2d5_invertGrappleTurn, skDefaultFlags); + CREATE_CVAR(GrappleBeamSpeed, "", x2d8_grappleBeamSpeed, skDefaultFlags); + CREATE_CVAR(GrappleBeamXWaveAmplitude, "", x2dc_grappleBeamXWaveAmplitude, skDefaultFlags); + CREATE_CVAR(GrappleBeamZWaveAmplitude, "", x2e0_grappleBeamZWaveAmplitude, skDefaultFlags); + CREATE_CVAR(GrappleBeamAnglePhaseDelta, "", x2e4_grappleBeamAnglePhaseDelta, skDefaultFlags); + // CREATE_CVAR(); // x2e8_ + // CREATE_CVAR(); // x2ec_ + // CREATE_CVAR(); // x2f0_ + // CREATE_CVAR(); // x2f4_ + CREATE_CVAR(FrozenTimeout, "", x2f8_frozenTimeout, skDefaultFlags); + CREATE_CVAR(IceBreakJumpCount, "", x2fc_iceBreakJumpCount, skDefaultFlags); + CREATE_CVAR(VariaDamageReduction, "", x300_variaDamageReduction, skDefaultFlags); + CREATE_CVAR(GravityDamageReduction, "", x304_gravityDamageReduction, skDefaultFlags); + CREATE_CVAR(PhazonDamageReduction, "", x308_phazonDamageReduction, skDefaultFlags); +} +} // namespace DataSpec::DNAMP1 diff --git a/Runtime/MP1/Tweaks/CTweakPlayer.hpp b/Runtime/MP1/Tweaks/CTweakPlayer.hpp new file mode 100644 index 000000000..a02189bda --- /dev/null +++ b/Runtime/MP1/Tweaks/CTweakPlayer.hpp @@ -0,0 +1,317 @@ +#pragma once + +#include "Runtime/Tweaks/ITweakPlayer.hpp" + +namespace hecl { +class CVar; +} + +namespace metaforce::MP1 { + +struct CTweakPlayer final : Tweaks::ITweakPlayer { + float x4_maxTranslationalAcceleration[8]{}; + float x24_maxRotationalAcceleration[8]{}; + float x44_translationFriction[8]{}; + float x64_rotationFriction[8]{}; + float x84_rotationMaxSpeed[8]{}; + float xa4_translationMaxSpeed[8]{}; + float xc4_normalGravAccel{}; + float xc8_fluidGravAccel{}; + float xcc_verticalJumpAccel{}; + float xd0_horizontalJumpAccel{}; + float xd4_verticalDoubleJumpAccel{}; + float xd8_horizontalDoubleJumpAccel{}; + float xdc_waterJumpFactor{}; + float xe0_waterBallJumpFactor{}; + float xe4_lavaJumpFactor{}; + float xe8_lavaBallJumpFactor{}; + float xec_phazonJumpFactor{}; + float xf0_phazonBallJumpFactor{}; + float xf4_allowedJumpTime{}; + float xf8_allowedDoubleJumpTime{}; + float xfc_minDoubleJumpWindow{}; + float x100_maxDoubleJumpWindow{}; + float x104_{}; + float x108_minJumpTime{}; + float x10c_minDoubleJumpTime{}; + float x110_allowedLedgeTime{}; + float x114_doubleJumpImpulse{}; + float x118_backwardsForceMultiplier{}; + float x11c_bombJumpRadius{}; + float x120_bombJumpHeight{}; + float x124_eyeOffset{}; + float x128_turnSpeedMultiplier{}; + float x12c_freeLookTurnSpeedMultiplier{}; + float x130_horizontalFreeLookAngleVel{}; + float x134_verticalFreeLookAngleVel{}; + float x138_freeLookSpeed{}; + float x13c_freeLookSnapSpeed{}; + float x140_{}; + float x144_freeLookCenteredThresholdAngle{}; + float x148_freeLookCenteredTime{}; + float x14c_freeLookDampenFactor{}; + float x150_leftDiv{}; + float x154_rightDiv{}; + float x158_orbitMinDistance[3]{}; + float x164_orbitNormalDistance[3]{}; + float x170_orbitMaxDistance[3]{}; + float x17c_{}; + float x180_orbitModeTimer{}; + float x184_orbitCameraSpeed{}; + float x188_orbitUpperAngle{}; + float x18c_orbitLowerAngle{}; + float x190_orbitHorizAngle{}; + float x194_{}; + float x198_{}; + float x19c_orbitMaxTargetDistance{}; + float x1a0_orbitMaxLockDistance{}; + float x1a4_orbitDistanceThreshold{}; + u32 x1a8_orbitScreenBoxHalfExtentX[2]{}; + u32 x1b0_orbitScreenBoxHalfExtentY[2]{}; + u32 x1b8_orbitScreenBoxCenterX[2]{}; + u32 x1c0_orbitScreenBoxCenterY[2]{}; + u32 x1c8_orbitZoneIdealX[2]{}; + u32 x1d0_orbitZoneIdealY[2]{}; + float x1d8_orbitNearX{}; + float x1dc_orbitNearZ{}; + float x1e0_{}; + float x1e4_{}; + float x1e8_orbitFixedOffsetZDiff{}; + float x1ec_orbitZRange{}; + float x1f0_{}; + float x1f4_{}; + float x1f8_{}; + float x1fc_orbitPreventionTime{}; + bool x200_24_dashEnabled : 1{}; + bool x200_25_dashOnButtonRelease : 1{}; + float x204_dashButtonHoldCancelTime{}; + float x208_dashStrafeInputThreshold{}; + float x20c_sidewaysDoubleJumpImpulse{}; + float x210_sidewaysVerticalDoubleJumpAccel{}; + float x214_sidewaysHorizontalDoubleJumpAccel{}; + float x218_scanningRange{}; + bool x21c_24_scanRetention : 1{}; + bool x21c_25_scanFreezesGame : 1{}; + bool x21c_26_orbitWhileScanning : 1{}; + float x220_scanMaxTargetDistance{}; + float x224_scanMaxLockDistance{}; + bool x228_24_freelookTurnsPlayer : 1{}; + bool x228_25_ : 1{}; + bool x228_26_ : 1{}; + bool x228_27_moveDuringFreeLook : 1{}; + bool x228_28_holdButtonsForFreeLook : 1{}; + bool x228_29_twoButtonsForFreeLook : 1{}; + bool x228_30_ : 1{}; + bool x228_31_ : 1{}; + bool x229_24_ : 1{}; + bool x229_25_aimWhenOrbitingPoint : 1{}; + bool x229_26_stayInFreeLookWhileFiring : 1{}; + bool x229_27_ : 1{}; + bool x229_28_ : 1{}; + bool x229_29_orbitFixedOffset : 1{}; + bool x229_30_gunButtonTogglesHolster : 1{}; + bool x229_31_gunNotFiringHolstersGun : 1{}; + bool x22a_24_fallingDoubleJump : 1{}; + bool x22a_25_impulseDoubleJump : 1{}; + bool x22a_26_firingCancelsCameraPitch : 1{}; + bool x22a_27_assistedAimingIgnoreHorizontal : 1{}; + bool x22a_28_assistedAimingIgnoreVertical : 1{}; + float x22c_{}; + float x230_{}; + float x234_aimMaxDistance{}; + float x238_{}; + float x23c_{}; + float x240_{}; + float x244_{}; + float x248_{}; + float x24c_aimThresholdDistance{}; + float x250_{}; + float x254_{}; + float x258_aimBoxWidth{}; + float x25c_aimBoxHeight{}; + float x260_aimTargetTimer{}; + float x264_aimAssistHorizontalAngle{}; + float x268_aimAssistVerticalAngle{}; + float x26c_playerHeight{}; + float x270_playerXYHalfExtent{}; + float x274_stepUpHeight{}; + float x278_stepDownHeight{}; + float x27c_playerBallHalfExtent{}; + float x280_firstPersonCameraSpeed{}; + float x284_{}; + float x288_jumpCameraPitchDownStart{}; + float x28c_jumpCameraPitchDownFull{}; + float x290_jumpCameraPitchDownAngle{}; + float x294_fallCameraPitchDownStart{}; + float x298_fallCameraPitchDownFull{}; + float x29c_fallCameraPitchDownAngle{}; + float x2a0_orbitDistanceMax{}; + float x2a4_grappleSwingLength{}; + float x2a8_grappleSwingPeriod{}; + float x2ac_grapplePullSpeedMin{}; + float x2b0_grappleCameraSpeed{}; + float x2b4_maxGrappleLockedTurnAlignDistance{}; + float x2b8_grapplePullSpeedProportion{}; + float x2bc_grapplePullSpeedMax{}; + float x2c0_grappleLookCenterSpeed{}; + float x2c4_maxGrappleTurnSpeed{}; + float x2c8_grappleJumpForce{}; + float x2cc_grappleReleaseTime{}; + u32 x2d0_grappleJumpMode{}; + bool x2d4_orbitReleaseBreaksGrapple{}; + bool x2d5_invertGrappleTurn{}; + float x2d8_grappleBeamSpeed{}; + float x2dc_grappleBeamXWaveAmplitude{}; + float x2e0_grappleBeamZWaveAmplitude{}; + float x2e4_grappleBeamAnglePhaseDelta{}; + float x2e8_{}; + float x2ec_{}; + float x2f0_{}; + bool x2f4_{}; + float x2f8_frozenTimeout{}; + u32 x2fc_iceBreakJumpCount{}; + float x300_variaDamageReduction{}; + float x304_gravityDamageReduction{}; + float x308_phazonDamageReduction{}; + float GetMaxTranslationalAcceleration(int s) const override { return x4_maxTranslationalAcceleration[s]; } + float GetMaxRotationalAcceleration(int s) const override { return x24_maxRotationalAcceleration[s]; } + float GetPlayerTranslationFriction(int s) const override { return x44_translationFriction[s]; } + float GetPlayerRotationFriction(int s) const override { return x64_rotationFriction[s]; } + float GetPlayerRotationMaxSpeed(int s) const override { return x84_rotationMaxSpeed[s]; } + float GetPlayerTranslationMaxSpeed(int s) const override { return xa4_translationMaxSpeed[s]; } + float GetNormalGravAccel() const override { return xc4_normalGravAccel; } + float GetFluidGravAccel() const override { return xc8_fluidGravAccel; } + float GetVerticalJumpAccel() const override { return xcc_verticalJumpAccel; } + float GetHorizontalJumpAccel() const override { return xd0_horizontalJumpAccel; } + float GetVerticalDoubleJumpAccel() const override { return xd4_verticalDoubleJumpAccel; } + float GetHorizontalDoubleJumpAccel() const override { return xd8_horizontalDoubleJumpAccel; } + float GetWaterJumpFactor() const override { return xdc_waterJumpFactor; } + float GetWaterBallJumpFactor() const override { return xe0_waterBallJumpFactor; } + float GetLavaJumpFactor() const override { return xe4_lavaJumpFactor; } + float GetLavaBallJumpFactor() const override { return xe8_lavaBallJumpFactor; } + float GetPhazonJumpFactor() const override { return xec_phazonJumpFactor; } + float GetPhazonBallJumpFactor() const override { return xf0_phazonBallJumpFactor; } + float GetAllowedJumpTime() const override { return xf4_allowedJumpTime; } + float GetAllowedDoubleJumpTime() const override { return xf8_allowedDoubleJumpTime; } + float GetMinDoubleJumpWindow() const override { return xfc_minDoubleJumpWindow; } + float GetMaxDoubleJumpWindow() const override { return x100_maxDoubleJumpWindow; } + float GetMinJumpTime() const override { return x108_minJumpTime; } + float GetMinDoubleJumpTime() const override { return x10c_minDoubleJumpTime; } + float GetAllowedLedgeTime() const override { return x110_allowedLedgeTime; } + float GetDoubleJumpImpulse() const override { return x114_doubleJumpImpulse; } + float GetBackwardsForceMultiplier() const override { return x118_backwardsForceMultiplier; } + float GetBombJumpRadius() const override { return x11c_bombJumpRadius; } + float GetBombJumpHeight() const override { return x120_bombJumpHeight; } + float GetEyeOffset() const override { return x124_eyeOffset; } + float GetTurnSpeedMultiplier() const override { return x128_turnSpeedMultiplier; } + float GetFreeLookTurnSpeedMultiplier() const override { return x12c_freeLookTurnSpeedMultiplier; } + float GetFreeLookSpeed() const override { return x138_freeLookSpeed; } + float GetFreeLookSnapSpeed() const override { return x13c_freeLookSnapSpeed; } + float GetFreeLookCenteredThresholdAngle() const override { return x144_freeLookCenteredThresholdAngle; } + float GetFreeLookCenteredTime() const override { return x148_freeLookCenteredTime; } + float GetOrbitModeTimer() const override { return x180_orbitModeTimer; } + float GetOrbitUpperAngle() const override { return x188_orbitUpperAngle; } + float GetOrbitLowerAngle() const override { return x18c_orbitLowerAngle; } + float GetOrbitHorizAngle() const override { return x190_orbitHorizAngle; } + float GetOrbitMaxTargetDistance() const override { return x19c_orbitMaxTargetDistance; } + float GetOrbitMaxLockDistance() const override { return x1a0_orbitMaxLockDistance; } + float GetOrbitDistanceThreshold() const override { return x1a4_orbitDistanceThreshold; } + uint32_t GetOrbitScreenBoxHalfExtentX(int zone) const override { return x1a8_orbitScreenBoxHalfExtentX[zone]; } + uint32_t GetOrbitScreenBoxHalfExtentY(int zone) const override { return x1b0_orbitScreenBoxHalfExtentY[zone]; } + uint32_t GetOrbitScreenBoxCenterX(int zone) const override { return x1b8_orbitScreenBoxCenterX[zone]; } + uint32_t GetOrbitScreenBoxCenterY(int zone) const override { return x1c0_orbitScreenBoxCenterY[zone]; } + uint32_t GetOrbitZoneIdealX(int zone) const override { return x1c8_orbitZoneIdealX[zone]; } + uint32_t GetOrbitZoneIdealY(int zone) const override { return x1d0_orbitZoneIdealY[zone]; } + float GetOrbitNearX() const override { return x1d8_orbitNearX; } + float GetOrbitNearZ() const override { return x1dc_orbitNearZ; } + float GetOrbitFixedOffsetZDiff() const override { return x1e8_orbitFixedOffsetZDiff; } + float GetOrbitZRange() const override { return x1ec_orbitZRange; } + bool GetDashEnabled() const override { return x200_24_dashEnabled; } + bool GetDashOnButtonRelease() const override { return x200_25_dashOnButtonRelease; } + float GetDashButtonHoldCancelTime() const override { return x204_dashButtonHoldCancelTime; } + float GetDashStrafeInputThreshold() const override { return x208_dashStrafeInputThreshold; } + float GetSidewaysDoubleJumpImpulse() const override { return x20c_sidewaysDoubleJumpImpulse; } + float GetSidewaysVerticalDoubleJumpAccel() const override { return x210_sidewaysVerticalDoubleJumpAccel; } + float GetSidewaysHorizontalDoubleJumpAccel() const override { return x214_sidewaysHorizontalDoubleJumpAccel; } + float GetScanningRange() const override { return x218_scanningRange; } + bool GetScanRetention() const override { return x21c_24_scanRetention; } + bool GetScanFreezesGame() const override { return x21c_25_scanFreezesGame; } + bool GetOrbitWhileScanning() const override { return x21c_26_orbitWhileScanning; } + float GetScanMaxTargetDistance() const override { return x220_scanMaxTargetDistance; } + float GetScanMaxLockDistance() const override { return x224_scanMaxLockDistance; } + bool GetMoveDuringFreeLook() const override { return x228_27_moveDuringFreeLook; } + bool GetHoldButtonsForFreeLook() const override { return x228_28_holdButtonsForFreeLook; } + bool GetTwoButtonsForFreeLook() const override { return x228_29_twoButtonsForFreeLook; } + bool GetAimWhenOrbitingPoint() const override { return x229_25_aimWhenOrbitingPoint; } + bool GetStayInFreeLookWhileFiring() const override { return x229_26_stayInFreeLookWhileFiring; } + bool GetOrbitFixedOffset() const override { return x229_29_orbitFixedOffset; } + bool GetGunButtonTogglesHolster() const override { return x229_30_gunButtonTogglesHolster; } + bool GetGunNotFiringHolstersGun() const override { return x229_31_gunNotFiringHolstersGun; } + bool GetFallingDoubleJump() const override { return x22a_24_fallingDoubleJump; } + bool GetImpulseDoubleJump() const override { return x22a_25_impulseDoubleJump; } + bool GetFiringCancelsCameraPitch() const override { return x22a_26_firingCancelsCameraPitch; } + bool GetAssistedAimingIgnoreHorizontal() const override { return x22a_27_assistedAimingIgnoreHorizontal; } + bool GetAssistedAimingIgnoreVertical() const override { return x22a_28_assistedAimingIgnoreVertical; } + float GetAimMaxDistance() const override { return x234_aimMaxDistance; } + float GetAimThresholdDistance() const override { return x24c_aimThresholdDistance; } + float GetAimBoxWidth() const override { return x258_aimBoxWidth; } + float GetAimBoxHeight() const override { return x25c_aimBoxHeight; } + float GetAimTargetTimer() const override { return x260_aimTargetTimer; } + float GetAimAssistHorizontalAngle() const override { return x264_aimAssistHorizontalAngle; } + float GetAimAssistVerticalAngle() const override { return x268_aimAssistVerticalAngle; } + float GetPlayerHeight() const override { return x26c_playerHeight; } + float GetPlayerXYHalfExtent() const override { return x270_playerXYHalfExtent; } + float GetStepUpHeight() const override { return x274_stepUpHeight; } + float GetStepDownHeight() const override { return x278_stepDownHeight; } + float GetPlayerBallHalfExtent() const override { return x27c_playerBallHalfExtent; } + float GetOrbitDistanceMax() const override { return x2a0_orbitDistanceMax; } + float GetGrappleSwingLength() const override { return x2a4_grappleSwingLength; } + float GetGrappleSwingPeriod() const override { return x2a8_grappleSwingPeriod; } + float GetGrapplePullSpeedMin() const override { return x2ac_grapplePullSpeedMin; } + float GetMaxGrappleLockedTurnAlignDistance() const override { return x2b4_maxGrappleLockedTurnAlignDistance; } + float GetGrapplePullSpeedProportion() const override { return x2b8_grapplePullSpeedProportion; } + float GetGrapplePullSpeedMax() const override { return x2bc_grapplePullSpeedMax; } + float GetGrappleLookCenterSpeed() const override { return x2c0_grappleLookCenterSpeed; } + float GetMaxGrappleTurnSpeed() const override { return x2c4_maxGrappleTurnSpeed; } + float GetGrappleJumpForce() const override { return x2c8_grappleJumpForce; } + float GetGrappleReleaseTime() const override { return x2cc_grappleReleaseTime; } + uint32_t GetGrappleJumpMode() const override { return x2d0_grappleJumpMode; } + bool GetOrbitReleaseBreaksGrapple() const override { return x2d4_orbitReleaseBreaksGrapple; } + bool GetInvertGrappleTurn() const override { return x2d5_invertGrappleTurn; } + float GetGrappleBeamSpeed() const override { return x2d8_grappleBeamSpeed; } + float GetGrappleBeamXWaveAmplitude() const override { return x2dc_grappleBeamXWaveAmplitude; } + float GetGrappleBeamZWaveAmplitude() const override { return x2e0_grappleBeamZWaveAmplitude; } + float GetGrappleBeamAnglePhaseDelta() const override { return x2e4_grappleBeamAnglePhaseDelta; } + float GetHorizontalFreeLookAngleVel() const override { return x130_horizontalFreeLookAngleVel; } + float GetVerticalFreeLookAngleVel() const override { return x134_verticalFreeLookAngleVel; } + float GetOrbitCameraSpeed() const override { return x184_orbitCameraSpeed; } + float GetOrbitPreventionTime() const override { return x1fc_orbitPreventionTime; } + bool GetFreeLookTurnsPlayer() const override { return x228_24_freelookTurnsPlayer; } + float GetJumpCameraPitchDownStart() const override { return x288_jumpCameraPitchDownStart; } + float GetJumpCameraPitchDownFull() const override { return x28c_jumpCameraPitchDownFull; } + float GetJumpCameraPitchDownAngle() const override { return x290_jumpCameraPitchDownAngle; } + float GetFallCameraPitchDownStart() const override { return x294_fallCameraPitchDownStart; } + float GetFallCameraPitchDownFull() const override { return x298_fallCameraPitchDownFull; } + float GetFallCameraPitchDownAngle() const override { return x29c_fallCameraPitchDownAngle; } + float GetFirstPersonCameraSpeed() const override { return x280_firstPersonCameraSpeed; } + float GetGrappleCameraSpeed() const override { return x2b0_grappleCameraSpeed; } + float GetFreeLookDampenFactor() const override { return x14c_freeLookDampenFactor; } + float GetLeftLogicalThreshold() const override { return x150_leftDiv; } + float GetRightLogicalThreshold() const override { return x154_rightDiv; } + float GetOrbitMinDistance(int type) const override { return x158_orbitMinDistance[type]; } + float GetOrbitNormalDistance(int type) const override { return x164_orbitNormalDistance[type]; } + float GetOrbitMaxDistance(int type) const override { return x170_orbitMaxDistance[type]; } + float GetFrozenTimeout() const override { return x2f8_frozenTimeout; } + uint32_t GetIceBreakJumpCount() const override { return x2fc_iceBreakJumpCount; } + float GetVariaDamageReduction() const override { return x300_variaDamageReduction; } + float GetGravityDamageReduction() const override { return x304_gravityDamageReduction; } + float GetPhazonDamageReduction() const override { return x308_phazonDamageReduction; } + CTweakPlayer() = default; + CTweakPlayer(CInputStream& in); + void PutTo(COutputStream& out); + void FixupValues(); + void initCVars(hecl::CVarManager* mgr) override; + void _tweakListener(hecl::CVar* cv); +}; + +} // namespace DataSpec::DNAMP1 diff --git a/Runtime/MP1/Tweaks/CTweakPlayerControl.cpp b/Runtime/MP1/Tweaks/CTweakPlayerControl.cpp new file mode 100644 index 000000000..95d901fbd --- /dev/null +++ b/Runtime/MP1/Tweaks/CTweakPlayerControl.cpp @@ -0,0 +1,10 @@ +#include "Runtime/MP1/Tweaks/CTweakPlayerControl.hpp" +#include "Runtime/Streams/IOStreams.hpp" + +namespace metaforce::MP1 { +CTweakPlayerControl::CTweakPlayerControl(CInputStream& in) { + for (u32 i = 0; i < m_mappings.size(); ++i) { + m_mappings[i] = ControlMapper::EFunctionList(in.ReadLong()); + } +} +} \ No newline at end of file diff --git a/Runtime/MP1/Tweaks/CTweakPlayerControl.hpp b/Runtime/MP1/Tweaks/CTweakPlayerControl.hpp new file mode 100644 index 000000000..b6160ebf7 --- /dev/null +++ b/Runtime/MP1/Tweaks/CTweakPlayerControl.hpp @@ -0,0 +1,13 @@ +#pragma once + +#include "Runtime/Tweaks/ITweakPlayerControl.hpp" + +namespace metaforce::MP1 { +struct CTweakPlayerControl final : Tweaks::ITweakPlayerControl { + std::array m_mappings; + [[nodiscard]] ControlMapper::EFunctionList GetMapping(atUint32 command) const override { return m_mappings[command]; } + CTweakPlayerControl() = default; + CTweakPlayerControl(CInputStream& reader); +}; + +} // namespace metaforce::MP1 diff --git a/Runtime/MP1/Tweaks/CTweakPlayerGun.cpp b/Runtime/MP1/Tweaks/CTweakPlayerGun.cpp new file mode 100644 index 000000000..97a43ab5a --- /dev/null +++ b/Runtime/MP1/Tweaks/CTweakPlayerGun.cpp @@ -0,0 +1,42 @@ +#include "Runtime/MP1/Tweaks/CTweakPlayerGun.hpp" +#include "Runtime/Streams/IOStreams.hpp" + +namespace metaforce::MP1 { +CTweakPlayerGun::CTweakPlayerGun(CInputStream& in) { + x4_upLookAngle = in.ReadFloat(); + x8_downLookAngle = in.ReadFloat(); + xc_verticalSpread = in.ReadFloat(); + x10_horizontalSpread = in.ReadFloat(); + x14_highVerticalSpread = in.ReadFloat(); + x18_highHorizontalSpread = in.ReadFloat(); + x1c_lowVerticalSpread = in.ReadFloat(); + x20_lowHorizontalSpread = in.ReadFloat(); + x24_aimVerticalSpeed = in.ReadFloat(); + x28_aimHorizontalSpeed = in.ReadFloat(); + x2c_bombFuseTime = in.ReadFloat(); + x30_bombDropDelayTime = in.ReadFloat(); + x34_holoHoldTime = in.ReadFloat(); + x38_gunTransformTime = in.ReadFloat(); + x3c_gunHolsterTime = in.ReadFloat(); + x40_gunNotFiringTime = in.ReadFloat(); + x44_fixedVerticalAim = in.ReadFloat(); + x48_gunExtendDistance = in.ReadFloat(); + x4c_gunPosition = in.Get(); + x58_ = in.Get(); + x64_grapplingArmPosition = in.Get(); + x70_bomb = in.Get(); + x8c_powerBomb = in.Get(); + x1d4_missile = in.Get(); + for (auto& beam : xa8_beams) { + beam = in.Get(); + } + for (auto& combo : x1f0_combos) { + combo = in.Get(); + } + + for (float& r : x280_ricochetData) { + r = in.ReadFloat(); + } + x44_fixedVerticalAim = zeus::degToRad(x44_fixedVerticalAim); +} +} // namespace metaforce::MP1 \ No newline at end of file diff --git a/Runtime/MP1/Tweaks/CTweakPlayerGun.hpp b/Runtime/MP1/Tweaks/CTweakPlayerGun.hpp new file mode 100644 index 000000000..97e809efc --- /dev/null +++ b/Runtime/MP1/Tweaks/CTweakPlayerGun.hpp @@ -0,0 +1,103 @@ +#pragma once + +#include "Runtime/Tweaks/ITweakPlayerGun.hpp" + +namespace metaforce::MP1 { +struct CTweakPlayerGun final : Tweaks::ITweakPlayerGun { + float x4_upLookAngle; + float x8_downLookAngle; + float xc_verticalSpread; + float x10_horizontalSpread; + float x14_highVerticalSpread; + float x18_highHorizontalSpread; + float x1c_lowVerticalSpread; + float x20_lowHorizontalSpread; + float x24_aimVerticalSpeed; + float x28_aimHorizontalSpeed; + float x2c_bombFuseTime; + float x30_bombDropDelayTime; + float x34_holoHoldTime; + float x38_gunTransformTime; + float x3c_gunHolsterTime; + float x40_gunNotFiringTime; + float x44_fixedVerticalAim; + float x48_gunExtendDistance; + zeus::CVector3f x4c_gunPosition; + zeus::CVector3f x58_; + zeus::CVector3f x64_grapplingArmPosition; + SShotParam x70_bomb; + SShotParam x8c_powerBomb; + SShotParam x1d4_missile; + SWeaponInfo xa8_beams[5]; + SComboShotParam x1f0_combos[5]; // Originally rstl::reserved_vector + float x280_ricochetData[6]; // Originally rstl::reserved_vector, extended to 6 to capture + // PhazonBeam's value + CTweakPlayerGun() = default; + CTweakPlayerGun(CInputStream& in); + float GetUpLookAngle() const override { return x4_upLookAngle; } + float GetDownLookAngle() const override { return x8_downLookAngle; } + float GetVerticalSpread() const override { return xc_verticalSpread; } + float GetHorizontalSpread() const override { return x10_horizontalSpread; } + float GetHighVerticalSpread() const override { return x14_highVerticalSpread; } + float GetHighHorizontalSpread() const override { return x18_highHorizontalSpread; } + float GetLowVerticalSpread() const override { return x1c_lowVerticalSpread; } + float GetLowHorizontalSpread() const override { return x20_lowHorizontalSpread; } + float GetAimVerticalSpeed() const override { return x24_aimVerticalSpeed; } + float GetAimHorizontalSpeed() const override { return x28_aimHorizontalSpeed; } + float GetBombFuseTime() const override { return x2c_bombFuseTime; } + float GetBombDropDelayTime() const override { return x30_bombDropDelayTime; } + float GetHoloHoldTime() const override { return x34_holoHoldTime; } + float GetGunTransformTime() const override { return x38_gunTransformTime; } + float GetGunHolsterTime() const override { return x3c_gunHolsterTime; } + float GetGunNotFiringTime() const override { return x40_gunNotFiringTime; } + float GetFixedVerticalAim() const override { return x44_fixedVerticalAim; } + float GetGunExtendDistance() const override { return x48_gunExtendDistance; } + const zeus::CVector3f& GetGunPosition() const override { return x4c_gunPosition; } + const zeus::CVector3f& GetGrapplingArmPosition() const override { return x64_grapplingArmPosition; } + float GetRichochetDamage(atUint32 type) const override { + switch (type) { + case 0: // Power + return x280_ricochetData[0]; + case 1: // Ice + return x280_ricochetData[1]; + case 2: // Wave + return x280_ricochetData[2]; + case 3: // Plasma + return x280_ricochetData[3]; + case 6: // Missile + return x280_ricochetData[4]; + case 8: // Phazon + /* Note: In order to return the same value as retail we have to do a bit of a hack + * Retro accidentally forgot to load in PhazonBeam's richochet value, as a result, it loads the + * pointer to CTweakParticle's vtable. + */ +#if MP_v1088 + + return float(0x803D9CC4); +#else + return x280_ricochetData[5]; +#endif + default: + return 1.f; + } + } + + const SWeaponInfo& GetBeamInfo(atInt32 beam) const override { + if (beam < 0 || beam >= 5) { + return xa8_beams[0]; + } + return xa8_beams[beam]; + } + + const SComboShotParam& GetComboShotInfo(atInt32 beam) const override { + if (beam < 0 || beam >= 5) { + return x1f0_combos[0]; + } + return x1f0_combos[beam]; + } + + const SShotParam& GetBombInfo() const override { return x70_bomb; } + const SShotParam& GetPowerBombInfo() const override { return x8c_powerBomb; } + const SShotParam& GetMissileInfo() const { return x1d4_missile; } +}; +} // namespace DataSpec::DNAMP1 diff --git a/Runtime/MP1/Tweaks/CTweakPlayerRes.cpp b/Runtime/MP1/Tweaks/CTweakPlayerRes.cpp new file mode 100644 index 000000000..a019766ff --- /dev/null +++ b/Runtime/MP1/Tweaks/CTweakPlayerRes.cpp @@ -0,0 +1,72 @@ +#include "Runtime/MP1/Tweaks/CTweakPlayerRes.hpp" + +namespace metaforce::MP1 { +CTweakPlayerRes::CTweakPlayerRes(CInputStream& in, bool hasNewFields) { + m_saveStationIcon = in.Get(); + m_missileStationIcon = in.Get(); + m_elevatorIcon = in.Get(); + + m_minesBreakFirstTopIcon = in.Get(); + m_minesBreakFirstBottomIcon = in.Get(); + m_minesBreakSecondTopIcon = in.Get(); + m_minesBreakSecondBottomIcon = in.Get(); + + /* ADDED IN JP/PAL/TRILOGY */ + if (hasNewFields) { + m_mapArrowDown = in.Get(); + m_mapArrowUp = in.Get(); + } + /* END */ + + m_lStickN = in.Get(); + m_lStickU = in.Get(); + m_lStickUL = in.Get(); + m_lStickL = in.Get(); + m_lStickDL = in.Get(); + m_lStickD = in.Get(); + m_lStickDR = in.Get(); + m_lStickR = in.Get(); + m_lStickUR = in.Get(); + + m_cStickN = in.Get(); + m_cStickU = in.Get(); + m_cStickUL = in.Get(); + m_cStickL = in.Get(); + m_cStickDL = in.Get(); + m_cStickD = in.Get(); + m_cStickDR = in.Get(); + m_cStickR = in.Get(); + m_cStickUR = in.Get(); + + m_lTriggerOut = in.Get(); + m_lTriggerIn = in.Get(); + m_rTriggerOut = in.Get(); + m_rTriggerIn = in.Get(); + + m_startButtonOut = in.Get(); + m_startButtonIn = in.Get(); + m_aButtonOut = in.Get(); + m_aButtonIn = in.Get(); + m_bButtonOut = in.Get(); + m_bButtonIn = in.Get(); + m_xButtonOut = in.Get(); + m_xButtonIn = in.Get(); + m_yButtonOut = in.Get(); + m_yButtonIn = in.Get(); + + m_ballTransitionsANCS = in.Get(); + m_ballTransitionsPower = in.Get(); + m_ballTransitionsIce = in.Get(); + m_ballTransitionsWave = in.Get(); + m_ballTransitionsPlasma = in.Get(); + m_ballTransitionsPhazon = in.Get(); + + m_cinePower = in.Get(); + m_cineIce = in.Get(); + m_cineWave = in.Get(); + m_cinePlasma = in.Get(); + m_cinePhazon = in.Get(); + + m_cinematicMoveOutofIntoPlayerDistance = in.ReadFloat(); +} +} // namespace metaforce::MP1 \ No newline at end of file diff --git a/Runtime/MP1/Tweaks/CTweakPlayerRes.hpp b/Runtime/MP1/Tweaks/CTweakPlayerRes.hpp new file mode 100644 index 000000000..806389a74 --- /dev/null +++ b/Runtime/MP1/Tweaks/CTweakPlayerRes.hpp @@ -0,0 +1,104 @@ +#pragma once + +#include "Runtime/Tweaks/ITweakPlayerRes.hpp" + +namespace metaforce::MP1 { + +struct CTweakPlayerRes final : Tweaks::ITweakPlayerRes { + std::string m_saveStationIcon; + std::string m_missileStationIcon; + std::string m_elevatorIcon; + + std::string m_minesBreakFirstTopIcon; + std::string m_minesBreakFirstBottomIcon; + std::string m_minesBreakSecondTopIcon; + std::string m_minesBreakSecondBottomIcon; + + /* ADDED IN PAL/TRILOGY */ + std::string m_mapArrowDown; + std::string m_mapArrowUp; + /* END */ + + std::string m_lStickN; + std::string m_lStickU; + std::string m_lStickUL; + std::string m_lStickL; + std::string m_lStickDL; + std::string m_lStickD; + std::string m_lStickDR; + std::string m_lStickR; + std::string m_lStickUR; + + std::string m_cStickN; + std::string m_cStickU; + std::string m_cStickUL; + std::string m_cStickL; + std::string m_cStickDL; + std::string m_cStickD; + std::string m_cStickDR; + std::string m_cStickR; + std::string m_cStickUR; + + std::string m_lTriggerOut; + std::string m_lTriggerIn; + std::string m_rTriggerOut; + std::string m_rTriggerIn; + + std::string m_startButtonOut; + std::string m_startButtonIn; + std::string m_aButtonOut; + std::string m_aButtonIn; + std::string m_bButtonOut; + std::string m_bButtonIn; + std::string m_xButtonOut; + std::string m_xButtonIn; + std::string m_yButtonOut; + std::string m_yButtonIn; + + std::string m_ballTransitionsANCS; + std::string m_ballTransitionsPower; + std::string m_ballTransitionsIce; + std::string m_ballTransitionsWave; + std::string m_ballTransitionsPlasma; + std::string m_ballTransitionsPhazon; + + std::string m_cinePower; + std::string m_cineIce; + std::string m_cineWave; + std::string m_cinePlasma; + std::string m_cinePhazon; + + float m_cinematicMoveOutofIntoPlayerDistance; + + std::string_view _GetSaveStationIcon() const override { return m_saveStationIcon; } + std::string_view _GetMissileStationIcon() const override { return m_missileStationIcon; } + std::string_view _GetElevatorIcon() const override { return m_elevatorIcon; } + + std::string_view _GetMinesBreakFirstTopIcon() const override { return m_minesBreakFirstTopIcon; } + std::string_view _GetMinesBreakFirstBottomIcon() const override { return m_minesBreakFirstBottomIcon; } + std::string_view _GetMinesBreakSecondTopIcon() const override { return m_minesBreakSecondTopIcon; } + std::string_view _GetMinesBreakSecondBottomIcon() const override { return m_minesBreakSecondBottomIcon; } + + std::string_view _GetLStick(size_t idx) const override { return (&m_lStickN)[idx]; } + std::string_view _GetCStick(size_t idx) const override { return (&m_cStickN)[idx]; } + + std::string_view _GetLTrigger(size_t idx) const override { return (&m_lTriggerOut)[idx]; } + std::string_view _GetRTrigger(size_t idx) const override { return (&m_rTriggerOut)[idx]; } + std::string_view _GetStartButton(size_t idx) const override { return (&m_startButtonOut)[idx]; } + std::string_view _GetAButton(size_t idx) const override { return (&m_aButtonOut)[idx]; } + std::string_view _GetBButton(size_t idx) const override { return (&m_bButtonOut)[idx]; } + std::string_view _GetXButton(size_t idx) const override { return (&m_xButtonOut)[idx]; } + std::string_view _GetYButton(size_t idx) const override { return (&m_yButtonOut)[idx]; } + + std::string_view _GetBallTransitionsANCS() const override { return m_ballTransitionsANCS; } + + std::string_view _GetBallTransitionBeamRes(size_t idx) const override { return (&m_ballTransitionsPower)[idx]; } + std::string_view _GetBeamCineModel(size_t idx) const override { return (&m_cinePower)[idx]; } + + float _GetCinematicMoveOutofIntoPlayerDistance() const override { return m_cinematicMoveOutofIntoPlayerDistance; } + + CTweakPlayerRes() = default; + CTweakPlayerRes(CInputStream& in, bool hasNewFields); +}; + +} // namespace DataSpec::DNAMP1 diff --git a/Runtime/MP1/Tweaks/CTweakSlideShow.cpp b/Runtime/MP1/Tweaks/CTweakSlideShow.cpp new file mode 100644 index 000000000..9f4923d6d --- /dev/null +++ b/Runtime/MP1/Tweaks/CTweakSlideShow.cpp @@ -0,0 +1,23 @@ +#include "Runtime/MP1/Tweaks/CTweakSlideShow.hpp" +#include "Runtime/Streams/IOStreams.hpp" + +namespace metaforce::MP1 { +CTweakSlideShow::CTweakSlideShow(CInputStream& in) { + x4_pakName = in.Get(); + x14_fontAssetName = in.Get(); + x24_fontColor = in.Get(); + x28_outlineColor = in.Get(); + x2c_scanPercentInterval = in.ReadFloat(); + x30_ = in.ReadFloat(); + x34_ = in.ReadFloat(); + x38_ = in.ReadFloat(); + x3c_ = in.ReadFloat(); + x40_ = in.Get(); + x44_ = in.ReadFloat(); + x48_ = in.ReadFloat(); + x4c_ = in.ReadFloat(); + x50_ = in.ReadFloat(); + x54_ = in.ReadFloat(); + x58_ = in.ReadFloat(); +} +} // namespace metaforce::MP1 \ No newline at end of file diff --git a/Runtime/MP1/Tweaks/CTweakSlideShow.hpp b/Runtime/MP1/Tweaks/CTweakSlideShow.hpp new file mode 100644 index 000000000..6960a7c27 --- /dev/null +++ b/Runtime/MP1/Tweaks/CTweakSlideShow.hpp @@ -0,0 +1,36 @@ +#pragma once + +#include "Runtime/Tweaks/ITweakSlideShow.hpp" +#include "zeus/CColor.hpp" + +namespace metaforce::MP1 { + +struct CTweakSlideShow final : Tweaks::ITweakSlideShow { + std::string x4_pakName; + std::string x14_fontAssetName; + zeus::CColor x24_fontColor; + zeus::CColor x28_outlineColor; + float x2c_scanPercentInterval; + float x30_; + float x34_; + float x38_; + float x3c_; + zeus::CColor x40_; + float x44_; + float x48_; + float x4c_; + float x50_; + float x54_; + float x58_; + + CTweakSlideShow() = default; + CTweakSlideShow(CInputStream& in); + + std::string_view GetFont() const override { return x14_fontAssetName; } + const zeus::CColor& GetFontColor() const override { return x24_fontColor; } + const zeus::CColor& GetOutlineColor() const override { return x28_outlineColor; } + float GetScanPercentInterval() const override { return x2c_scanPercentInterval; } + float GetX54() const override { return x54_; } +}; + +} // namespace DataSpec::DNAMP1 diff --git a/Runtime/MP1/Tweaks/CTweakTargeting.cpp b/Runtime/MP1/Tweaks/CTweakTargeting.cpp new file mode 100644 index 000000000..43c56a90f --- /dev/null +++ b/Runtime/MP1/Tweaks/CTweakTargeting.cpp @@ -0,0 +1,150 @@ +#include "Runtime/MP1/Tweaks/CTweakTargeting.hpp" +#include "Runtime/Streams/IOStreams.hpp" + +namespace metaforce::MP1 { +CTweakTargeting::CTweakTargeting(CInputStream& in, bool hasNewFields) { + x4_targetRadiusMode = in.ReadLong(); + x8_currLockOnExitDuration = in.ReadFloat(); + xc_currLockOnEnterDuration = in.ReadFloat(); + x10_currLockOnSwitchDuration = in.ReadFloat(); + x14_lockConfirmScale = in.ReadFloat(); + x18_nextLockOnEnterDuration = in.ReadFloat(); + x1c_nextLockOnExitDuration = in.ReadFloat(); + x20_nextLockOnSwitchDuration = in.ReadFloat(); + x24_seekerScale = in.ReadFloat(); + x28_seekerAngleSpeed = in.ReadFloat(); + x2c_xrayRetAngleSpeed = in.ReadFloat(); + x30_ = in.Get(); + x3c_ = in.Get(); + x48_ = in.ReadFloat(); + x4c_ = in.ReadFloat(); + x50_orbitPointZOffset = in.ReadFloat(); + x54_orbitPointInTime = in.ReadFloat(); + x58_orbitPointOutTime = in.ReadFloat(); + x5c_ = in.ReadFloat(); + x60_ = in.Get(); + x6c_ = in.Get(); + x78_ = in.Get(); + x84_ = in.Get(); + x90_ = in.ReadFloat(); + x94_ = in.ReadFloat(); + x98_ = in.ReadFloat(); + x9c_ = in.ReadFloat(); + xa0_ = in.ReadFloat(); + xa4_ = in.ReadFloat(); + xa8_ = in.ReadFloat(); + xac_ = in.ReadFloat(); + xb0_thermalReticuleColor = in.Get(); + xb4_targetFlowerScale = in.ReadFloat(); + xb8_targetFlowerColor = in.Get(); + xbc_missileBracketDuration = in.ReadFloat(); + xc0_missileBracketScaleStart = in.ReadFloat(); + xc4_missileBracketScaleEnd = in.ReadFloat(); + xc8_missileBracketScaleDuration = in.ReadFloat(); + xcc_missileBracketColor = in.Get(); + xd0_LockonDuration = in.ReadFloat(); + xd4_innerBeamScale = in.ReadFloat(); + xd8_innerBeamColorPower = in.Get(); + xdc_innerBeamColorIce = in.Get(); + xe0_innerBeamColorWave = in.Get(); + xe4_innerBeamColorPlasma = in.Get(); + xe8_chargeGaugeOvershootOffset = in.ReadFloat(); + xec_chargeGaugeOvershootDuration = in.ReadFloat(); + xf0_outerBeamSquaresScale = in.ReadFloat(); + xf4_outerBeamSquareColor = in.Get(); + u32 outerBeamCount = in.ReadLong(); + xf8_outerBeamSquareAngles.resize(outerBeamCount); + for (u32 i = 0; i < outerBeamCount; ++i) { + read_reserved_vector(xf8_outerBeamSquareAngles[i], in); + } + read_reserved_vector(x108_chargeGaugeAngles, in); + x118_chargeGaugeScale = in.ReadFloat(); + x11c_chargeGaugeNonFullColor = in.Get(); + x120_chargeTickCount = in.ReadLong(); + x124_chargeTickAnglePitch = in.ReadFloat(); + x128_lockFireScale = in.ReadFloat(); + x12c_lockFireDuration = in.ReadFloat(); + x130_lockFireColor = in.Get(); + x134_lockDaggerScaleStart = in.ReadFloat(); + x138_lockDaggerScaleEnd = in.ReadFloat(); + x13c_lockDaggerColor = in.Get(); + x140_lockDaggerAngle0 = in.ReadFloat(); + x144_lockDaggerAngle1 = in.ReadFloat(); + x148_lockDaggerAngle2 = in.ReadFloat(); + x14c_lockConfirmColor = in.Get(); + x150_seekerColor = in.Get(); + x154_lockConfirmClampMin = in.ReadFloat(); + x158_lockConfirmClampMax = in.ReadFloat(); + x15c_targetFlowerClampMin = in.ReadFloat(); + x160_targetFlowerClampMax = in.ReadFloat(); + x164_seekerClampMin = in.ReadFloat(); + x168_seekerClampMax = in.ReadFloat(); + x16c_missileBracketClampMin = in.ReadFloat(); + x170_missileBracketClampMax = in.ReadFloat(); + x174_innerBeamClampMin = in.ReadFloat(); + x178_innerBeamClampMax = in.ReadFloat(); + x17c_chargeGaugeClampMin = in.ReadFloat(); + x180_chargeGaugeClampMax = in.ReadFloat(); + x184_lockFireClampMin = in.ReadFloat(); + x188_lockFireClampMax = in.ReadFloat(); + x18c_lockDaggerClampMin = in.ReadFloat(); + x190_lockDaggerClampMax = in.ReadFloat(); + x194_grappleSelectScale = in.ReadFloat(); + x198_grappleScale = in.ReadFloat(); + x19c_grappleClampMin = in.ReadFloat(); + x1a0_grappleClampMax = in.ReadFloat(); + x1a4_grapplePointSelectColor = in.Get(); + x1a8_grapplePointColor = in.Get(); + x1ac_lockedGrapplePointSelectColor = in.Get(); + x1b0_grappleMinClampScale = in.ReadFloat(); + x1b4_chargeGaugePulseColorHigh = in.Get(); + x1b8_fullChargeFadeDuration = in.ReadFloat(); + x1bc_orbitPointColor = in.Get(); + x1c0_crosshairsColor = in.Get(); + x1c4_crosshairsScaleDur = in.ReadFloat(); + x1c8_drawOrbitPoint = in.ReadBool(); + x1cc_chargeGaugePulseColorLow = in.Get(); + x1d0_chargeGaugePulsePeriod = in.ReadFloat(); + x1d4_ = in.Get(); + x1d8_ = in.Get(); + x1dc_ = in.Get(); + x1e0_ = in.ReadFloat(); + x1e4_ = in.ReadFloat(); + x1e8_ = in.ReadFloat(); + x1ec_ = in.ReadFloat(); + x1f0_ = in.ReadFloat(); + x1f4_ = in.ReadFloat(); + x1f8_ = in.ReadFloat(); + x1fc_ = in.ReadFloat(); + x200_ = in.ReadFloat(); + x204_ = in.ReadFloat(); + x208_ = in.ReadFloat(); + x20c_reticuleClampMin = in.ReadFloat(); + x210_reticuleClampMax = in.ReadFloat(); + x214_xrayRetRingColor = in.Get(); + x218_reticuleScale = in.ReadFloat(); + x21c_scanTargetClampMin = in.ReadFloat(); + x220_scanTargetClampMax = in.ReadFloat(); + x224_angularLagSpeed = in.ReadFloat(); + + if (hasNewFields) { + x218_ = in.ReadFloat(); + x21c_ = in.ReadFloat(); + } + + x124_chargeTickAnglePitch = -zeus::degToRad(x124_chargeTickAnglePitch); + x140_lockDaggerAngle0 = zeus::degToRad(x140_lockDaggerAngle0); + x144_lockDaggerAngle1 = zeus::degToRad(x144_lockDaggerAngle1); + x148_lockDaggerAngle2 = zeus::degToRad(x148_lockDaggerAngle2); + x208_ = zeus::degToRad(x208_); + for (int i = 0; i < 4; ++i) { + for (float& f : xf8_outerBeamSquareAngles[i]) { + f = zeus::degToRad(f); + } + } + for (int i = 0; i < 4; ++i) { + x108_chargeGaugeAngles[i] = zeus::degToRad(x108_chargeGaugeAngles[i]); + } +} + +} // namespace metaforce::MP1 \ No newline at end of file diff --git a/Runtime/MP1/Tweaks/CTweakTargeting.hpp b/Runtime/MP1/Tweaks/CTweakTargeting.hpp new file mode 100644 index 000000000..b85df050e --- /dev/null +++ b/Runtime/MP1/Tweaks/CTweakTargeting.hpp @@ -0,0 +1,282 @@ +#pragma once + +#include "Runtime/Tweaks/ITweakTargeting.hpp" +#include "Runtime/rstl.hpp" + +namespace metaforce::MP1 { +struct CTweakTargeting final : public Tweaks::ITweakTargeting { + u32 x4_targetRadiusMode{}; + float x8_currLockOnExitDuration{}; + float xc_currLockOnEnterDuration{}; + float x10_currLockOnSwitchDuration{}; + float x14_lockConfirmScale{}; + float x18_nextLockOnEnterDuration{}; + float x1c_nextLockOnExitDuration{}; + float x20_nextLockOnSwitchDuration{}; + float x24_seekerScale{}; + float x28_seekerAngleSpeed{}; + float x2c_xrayRetAngleSpeed{}; + zeus::CVector3f x30_; + zeus::CVector3f x3c_; + float x48_{}; + float x4c_{}; + float x50_orbitPointZOffset{}; + float x54_orbitPointInTime{}; + float x58_orbitPointOutTime{}; + float x5c_{}; + zeus::CVector3f x60_; + zeus::CVector3f x6c_; + zeus::CVector3f x78_; + zeus::CVector3f x84_; + float x90_{}; + float x94_{}; + float x98_{}; + float x9c_{}; + float xa0_{}; + float xa4_{}; + float xa8_{}; + float xac_{}; + zeus::CColor xb0_thermalReticuleColor; + float xb4_targetFlowerScale{}; + zeus::CColor xb8_targetFlowerColor; + float xbc_missileBracketDuration{}; + float xc0_missileBracketScaleStart{}; + float xc4_missileBracketScaleEnd{}; + float xc8_missileBracketScaleDuration{}; + zeus::CColor xcc_missileBracketColor; + float xd0_LockonDuration{}; + float xd4_innerBeamScale{}; + zeus::CColor xd8_innerBeamColorPower; + zeus::CColor xdc_innerBeamColorIce; + zeus::CColor xe0_innerBeamColorWave; + zeus::CColor xe4_innerBeamColorPlasma; + float xe8_chargeGaugeOvershootOffset{}; + float xec_chargeGaugeOvershootDuration{}; + float xf0_outerBeamSquaresScale{}; + zeus::CColor xf4_outerBeamSquareColor; + rstl::reserved_vector, 4> xf8_outerBeamSquareAngles; + rstl::reserved_vector x108_chargeGaugeAngles{}; + float x118_chargeGaugeScale{}; + zeus::CColor x11c_chargeGaugeNonFullColor; + u32 x120_chargeTickCount{}; + float x124_chargeTickAnglePitch{}; + float x128_lockFireScale{}; + float x12c_lockFireDuration{}; + zeus::CColor x130_lockFireColor; + float x134_lockDaggerScaleStart{}; + float x138_lockDaggerScaleEnd{}; + zeus::CColor x13c_lockDaggerColor; + float x140_lockDaggerAngle0{}; + float x144_lockDaggerAngle1{}; + float x148_lockDaggerAngle2{}; + zeus::CColor x14c_lockConfirmColor; + zeus::CColor x150_seekerColor; + float x154_lockConfirmClampMin{}; + float x158_lockConfirmClampMax{}; + float x15c_targetFlowerClampMin{}; + float x160_targetFlowerClampMax{}; + float x164_seekerClampMin{}; + float x168_seekerClampMax{}; + float x16c_missileBracketClampMin{}; + float x170_missileBracketClampMax{}; + float x174_innerBeamClampMin{}; + float x178_innerBeamClampMax{}; + float x17c_chargeGaugeClampMin{}; + float x180_chargeGaugeClampMax{}; + float x184_lockFireClampMin{}; + float x188_lockFireClampMax{}; + float x18c_lockDaggerClampMin{}; + float x190_lockDaggerClampMax{}; + float x194_grappleSelectScale{}; + float x198_grappleScale{}; + float x19c_grappleClampMin{}; + float x1a0_grappleClampMax{}; + zeus::CColor x1a4_grapplePointSelectColor; + zeus::CColor x1a8_grapplePointColor; + zeus::CColor x1ac_lockedGrapplePointSelectColor; + float x1b0_grappleMinClampScale{}; + zeus::CColor x1b4_chargeGaugePulseColorHigh; + float x1b8_fullChargeFadeDuration{}; + zeus::CColor x1bc_orbitPointColor; + zeus::CColor x1c0_crosshairsColor; + float x1c4_crosshairsScaleDur{}; + bool x1c8_drawOrbitPoint{}; + zeus::CColor x1cc_chargeGaugePulseColorLow; + float x1d0_chargeGaugePulsePeriod{}; + zeus::CColor x1d4_; + zeus::CColor x1d8_; + zeus::CColor x1dc_; + float x1e0_{}; + float x1e4_{}; + float x1e8_{}; + float x1ec_{}; + float x1f0_{}; + float x1f4_{}; + float x1f8_{}; + float x1fc_{}; + float x200_{}; + float x204_{}; + float x208_{}; + float x20c_reticuleClampMin{}; + float x210_reticuleClampMax{}; + zeus::CColor x214_xrayRetRingColor; + float x218_reticuleScale{}; + float x21c_scanTargetClampMin{}; + float x220_scanTargetClampMax{}; + float x224_angularLagSpeed{}; + + // RS5 + float x218_{}; + float x21c_{}; + bool x224_ = true; + bool x225_ = false; + bool x226_ = true; + bool x227_ = true; + bool x22c_ = true; + bool x22d_ = false; + bool x22e_ = true; + bool x22f_ = true; + bool x234_ = true; + bool x235_ = false; + bool x236_ = true; + bool x237_ = true; + zeus::CVector3f x23c_ = zeus::skZero3f; + + float x2c8_ = 0.25f; + float x2cc_ = 0.35f; + zeus::CColor x2d0_ = (zeus::Comp32)0xb6e6ffff; + float x2d4_ = 0.39215687f; + zeus::CColor x2d8_ = (zeus::Comp32)0xa82a00ff; + float x2dc_ = 0.78431374f; + zeus::CVector3f x2e0_ = zeus::CVector3f(0.f, 0.f, 0.46f); + float x2ec_ = 0.25f; + float x2f0_ = 0.25f; + float x2f4_ = 120.f; + float x2f8_ = 0.25f; + float x2fc_ = 3.5f; + float x300_ = 0.35f; + zeus::CColor x304_ = (zeus::Comp32)0xa82a00ff; + float x308_ = 0.78431374f; + zeus::CColor x30c_ = (zeus::Comp32)0x89d6ffff; + float x310_ = 0.5019608f; + float x314_ = 11.25f; + float x318_ = 0.25f; + float x31c_ = 0.125f; + zeus::CColor x320_ = (zeus::Comp32)0xffca28ff; + float x324_ = 0.78431374f; + zeus::CColor x328_ = (zeus::Comp32)0x89d6ffff; + float x32c_ = 0.19607843f; + float x330_ = 0.f; + float x334_ = 0.25f; + float x338_ = 3.f; + float x33c_ = 0.25f; + float x340_ = 0.25f; + float x344_ = 0.25f; + float x348_ = 0.25f; + float x34c_ = 45.f; + float x350_ = 0.5f; + float x354_ = 0.65f; + float x358_ = 1.5f; + float x35c_ = 0.18f; + float x360_ = 0.15f; + float x364_ = 0.25f; + zeus::CColor x368_ = static_cast(0x56c1fb9f); + zeus::CColor x36c_ = static_cast(0x49c3f6a0); + zeus::CColor x370_ = static_cast(0x49c3f631); + zeus::CColor x374_ = static_cast(0xff8930ff); + zeus::CColor x378_ = static_cast(0xff2f28ff); + zeus::CColor x37c_ = static_cast(0x93e9ffff); + zeus::CColor x380_ = static_cast(0xff6b60ff); + + CTweakTargeting() = default; + CTweakTargeting(CInputStream& r, bool hasNewFields); + u32 GetTargetRadiusMode() const override { return x4_targetRadiusMode; } + float GetCurrLockOnExitDuration() const override { return x8_currLockOnExitDuration; } + float GetCurrLockOnEnterDuration() const override { return xc_currLockOnEnterDuration; } + float GetCurrLockOnSwitchDuration() const override { return x10_currLockOnSwitchDuration; } + float GetLockConfirmScale() const override { return x14_lockConfirmScale; } + float GetNextLockOnEnterDuration() const override { return x18_nextLockOnEnterDuration; } + float GetNextLockOnExitDuration() const override { return x1c_nextLockOnExitDuration; } + float GetNextLockOnSwitchDuration() const override { return x20_nextLockOnSwitchDuration; } + float GetSeekerScale() const override { return x24_seekerScale; } + float GetSeekerAngleSpeed() const override { return x28_seekerAngleSpeed; } + float GetXRayRetAngleSpeed() const override { return x2c_xrayRetAngleSpeed; } + float GetOrbitPointZOffset() const override { return x50_orbitPointZOffset; } + float GetOrbitPointInTime() const override { return x54_orbitPointInTime; } + float GetOrbitPointOutTime() const override { return x58_orbitPointOutTime; } + const zeus::CColor& GetThermalReticuleColor() const override { return xb0_thermalReticuleColor; } + float GetTargetFlowerScale() const override { return xb4_targetFlowerScale; } + const zeus::CColor& GetTargetFlowerColor() const override { return xb8_targetFlowerColor; } + float GetMissileBracketDuration() const override { return xbc_missileBracketDuration; } + float GetMissileBracketScaleStart() const override { return xc0_missileBracketScaleStart; } + float GetMissileBracketScaleEnd() const override { return xc4_missileBracketScaleEnd; } + float GetMissileBracketScaleDuration() const override { return xc8_missileBracketScaleDuration; } + const zeus::CColor& GetMissileBracketColor() const override { return xcc_missileBracketColor; } + float GetChargeGaugeOvershootOffset() const override { return xe8_chargeGaugeOvershootOffset; } + float GetChargeGaugeOvershootDuration() const override { return xec_chargeGaugeOvershootDuration; } + float GetOuterBeamSquaresScale() const override { return xf0_outerBeamSquaresScale; } + const zeus::CColor& GetOuterBeamSquareColor() const override { return xf4_outerBeamSquareColor; } + float GetLockonDuration() const override { return xd0_LockonDuration; } + float GetInnerBeamScale() const override { return xd4_innerBeamScale; } + const zeus::CColor& GetInnerBeamColorPower() const override { return xd8_innerBeamColorPower; } + const zeus::CColor& GetInnerBeamColorIce() const override { return xdc_innerBeamColorIce; } + const zeus::CColor& GetInnerBeamColorWave() const override { return xe0_innerBeamColorWave; } + const zeus::CColor& GetInnerBeamColorPlasma() const override { return xe4_innerBeamColorPlasma; } + const float* GetOuterBeamSquareAngles(int i) const override { return xf8_outerBeamSquareAngles[i].data(); } + float GetChargeGaugeAngle(int i) const override { return x108_chargeGaugeAngles[i]; } + float GetChargeGaugeScale() const override { return x118_chargeGaugeScale; } + const zeus::CColor& GetChargeGaugeNonFullColor() const override { return x11c_chargeGaugeNonFullColor; } + u32 GetChargeTickCount() const override { return x120_chargeTickCount; } + float GetChargeTickAnglePitch() const override { return x124_chargeTickAnglePitch; } + float GetLockFireScale() const override { return x128_lockFireScale; } + float GetLockFireDuration() const override { return x12c_lockFireDuration; } + const zeus::CColor& GetLockFireColor() const override { return x130_lockFireColor; } + float GetLockDaggerScaleStart() const override { return x134_lockDaggerScaleStart; } + float GetLockDaggerScaleEnd() const override { return x138_lockDaggerScaleEnd; } + const zeus::CColor& GetLockDaggerColor() const override { return x13c_lockDaggerColor; } + float GetLockDaggerAngle0() const override { return x140_lockDaggerAngle0; } + float GetLockDaggerAngle1() const override { return x144_lockDaggerAngle1; } + float GetLockDaggerAngle2() const override { return x148_lockDaggerAngle2; } + const zeus::CColor& GetLockConfirmColor() const override { return x14c_lockConfirmColor; } + const zeus::CColor& GetSeekerColor() const override { return x150_seekerColor; } + float GetLockConfirmClampMin() const override { return x154_lockConfirmClampMin; } + float GetLockConfirmClampMax() const override { return x158_lockConfirmClampMax; } + float GetTargetFlowerClampMin() const override { return x15c_targetFlowerClampMin; } + float GetTargetFlowerClampMax() const override { return x160_targetFlowerClampMax; } + float GetSeekerClampMin() const override { return x164_seekerClampMin; } + float GetSeekerClampMax() const override { return x168_seekerClampMax; } + float GetMissileBracketClampMin() const override { return x16c_missileBracketClampMin; } + float GetMissileBracketClampMax() const override { return x170_missileBracketClampMax; } + float GetInnerBeamClampMin() const override { return x174_innerBeamClampMin; } + float GetInnerBeamClampMax() const override { return x178_innerBeamClampMax; } + float GetChargeGaugeClampMin() const override { return x17c_chargeGaugeClampMin; } + float GetChargeGaugeClampMax() const override { return x180_chargeGaugeClampMax; } + float GetLockFireClampMin() const override { return x184_lockFireClampMin; } + float GetLockFireClampMax() const override { return x188_lockFireClampMax; } + float GetLockDaggerClampMin() const override { return x18c_lockDaggerClampMin; } + float GetLockDaggerClampMax() const override { return x190_lockDaggerClampMax; } + float GetGrappleSelectScale() const override { return x194_grappleSelectScale; } + float GetGrappleScale() const override { return x198_grappleScale; } + float GetGrappleClampMin() const override { return x19c_grappleClampMin; } + float GetGrappleClampMax() const override { return x1a0_grappleClampMax; } + const zeus::CColor& GetGrapplePointSelectColor() const override { return x1a4_grapplePointSelectColor; } + const zeus::CColor& GetGrapplePointColor() const override { return x1a8_grapplePointColor; } + const zeus::CColor& GetLockedGrapplePointSelectColor() const override { return x1ac_lockedGrapplePointSelectColor; } + float GetGrappleMinClampScale() const override { return x1b0_grappleMinClampScale; } + const zeus::CColor& GetChargeGaugePulseColorHigh() const override { return x1b4_chargeGaugePulseColorHigh; } + float GetFullChargeFadeDuration() const override { return x1b8_fullChargeFadeDuration; } + const zeus::CColor& GetOrbitPointColor() const override { return x1bc_orbitPointColor; } + const zeus::CColor& GetCrosshairsColor() const override { return x1c0_crosshairsColor; } + float GetCrosshairsScaleDuration() const override { return x1c4_crosshairsScaleDur; } + bool DrawOrbitPoint() const override { return x1c8_drawOrbitPoint; } + const zeus::CColor& GetChargeGaugePulseColorLow() const override { return x1cc_chargeGaugePulseColorLow; } + float GetChargeGaugePulsePeriod() const override { return x1d0_chargeGaugePulsePeriod; } + float GetReticuleClampMin() const override { return x20c_reticuleClampMin; } + float GetReticuleClampMax() const override { return x210_reticuleClampMax; } + const zeus::CColor& GetXRayRetRingColor() const override { return x214_xrayRetRingColor; } + float GetReticuleScale() const override { return x218_reticuleScale; } + float GetScanTargetClampMin() const override { return x21c_scanTargetClampMin; } + float GetScanTargetClampMax() const override { return x220_scanTargetClampMax; } + float GetAngularLagSpeed() const override { return x224_angularLagSpeed; } +}; +} // namespace metaforce::MP1 diff --git a/Runtime/MP1/World/CActorContraption.cpp b/Runtime/MP1/World/CActorContraption.cpp index 56377156c..3edd42ab3 100644 --- a/Runtime/MP1/World/CActorContraption.cpp +++ b/Runtime/MP1/World/CActorContraption.cpp @@ -94,7 +94,7 @@ CFlameThrower* MP1::CActorContraption::CreateFlameThrower(std::string_view name, const CFlameInfo flameInfo(6, 6, x308_flameFxId, 20, 0.5f, 1.f, 1.f); auto* ret = new CFlameThrower(x300_flameThrowerGen, name, EWeaponType::Missile, flameInfo, zeus::CTransform(), EMaterialTypes::CollisionActor, x30c_dInfo, id, GetAreaId(), GetUniqueId(), - EProjectileAttrib::None, -1, -1, -1); + EProjectileAttrib::None, CAssetId(), -1, CAssetId()); x2e8_children.emplace_back(id, name); diff --git a/Runtime/MP1/World/CMetroidPrimeExo.cpp b/Runtime/MP1/World/CMetroidPrimeExo.cpp index bab65f4c0..ff860a60e 100644 --- a/Runtime/MP1/World/CMetroidPrimeExo.cpp +++ b/Runtime/MP1/World/CMetroidPrimeExo.cpp @@ -145,13 +145,13 @@ std::array, 14> skSomeValues2{{ } // namespace SPrimeStruct2B::SPrimeStruct2B(CInputStream& in) : x0_propertyCount(in.ReadLong()) -, x4_particle1(in.ReadLong()) -, x8_particle2(in.ReadLong()) -, xc_particle3(in.ReadLong()) +, x4_particle1(in.Get()) +, x8_particle2(in.Get()) +, xc_particle3(in.Get()) , x10_dInfo(in) , x2c_(in.ReadFloat()) , x30_(in.ReadFloat()) -, x34_texture(in.ReadLong()) +, x34_texture(in.Get()) , x38_(CSfxManager::TranslateSFXID(u16(in.ReadLong()))) , x3a_(CSfxManager::TranslateSFXID(u16(in.ReadLong()))) {} @@ -220,21 +220,21 @@ SPrimeExoParameters::SPrimeExoParameters(CInputStream& in) , x27c_(LoadCameraShakeData(in)) , x350_(LoadCameraShakeData(in)) , x424_(in) -, x460_particle1(in.ReadLong()) +, x460_particle1(in.Get()) , x464_(LoadPrimeStruct4s(in)) -, x708_wpsc1(in.ReadLong()) +, x708_wpsc1(in.Get()) , x70c_dInfo1(in) , x728_shakeData1(LoadCameraShakeData(in)) -, x7fc_wpsc2(in.ReadLong()) +, x7fc_wpsc2(in.Get()) , x800_dInfo2(in) , x81c_shakeData2(LoadCameraShakeData(in)) , x8f0_(in) , x92c_(in) , x948_(LoadCameraShakeData(in)) -, xa1c_particle2(in.ReadLong()) -, xa20_swoosh(in.ReadLong()) -, xa24_particle3(in.ReadLong()) -, xa28_particle4(in.ReadLong()) +, xa1c_particle2(in.Get()) +, xa20_swoosh(in.Get()) +, xa24_particle3(in.Get()) +, xa28_particle4(in.Get()) , xa2c_(LoadPrimeStruct6s(in)) {} SPrimeExoRoomParameters::SPrimeExoRoomParameters(CInputStream& in) { diff --git a/Runtime/MP1/World/CMetroidPrimeProjectile.cpp b/Runtime/MP1/World/CMetroidPrimeProjectile.cpp index 23ab8512a..3c96b62f0 100644 --- a/Runtime/MP1/World/CMetroidPrimeProjectile.cpp +++ b/Runtime/MP1/World/CMetroidPrimeProjectile.cpp @@ -7,12 +7,12 @@ namespace metaforce::MP1 { SPrimeProjectileInfo::SPrimeProjectileInfo(CInputStream& in) : x0_propertyCount(in.ReadLong()) -, x4_particle(g_SimplePool->GetObj(SObjectTag{FOURCC('PART'), in.ReadLong()})) +, x4_particle(g_SimplePool->GetObj(SObjectTag{FOURCC('PART'), CAssetId(in)})) , xc_dInfo(in) , x28_(in.ReadFloat()) , x2c_(in.ReadFloat()) , x30_(in.ReadFloat()) -, x34_texture(in.ReadLong()) { +, x34_texture(in) { x38_24_ = in.ReadBool(); x38_25_ = in.ReadBool(); x38_26_ = in.ReadBool(); diff --git a/Runtime/Particle/CDecalDataFactory.hpp b/Runtime/Particle/CDecalDataFactory.hpp index f4676af8d..528ce5232 100644 --- a/Runtime/Particle/CDecalDataFactory.hpp +++ b/Runtime/Particle/CDecalDataFactory.hpp @@ -5,7 +5,7 @@ #include "Runtime/CFactoryMgr.hpp" #include "Runtime/CToken.hpp" #include "Runtime/IObj.hpp" -#include "Runtime/IOStreams.hpp" +#include "Runtime/Streams/IOStreams.hpp" #include "Runtime/RetroTypes.hpp" #include "Runtime/Particle/CDecalDescription.hpp" diff --git a/Runtime/Particle/CDecalManager.cpp b/Runtime/Particle/CDecalManager.cpp index 4880c4dc4..3526c0ca8 100644 --- a/Runtime/Particle/CDecalManager.cpp +++ b/Runtime/Particle/CDecalManager.cpp @@ -12,7 +12,7 @@ bool CDecalManager::m_PoolInitialized = false; s32 CDecalManager::m_FreeIndex = 63; float CDecalManager::m_DeltaTimeSinceLastDecalCreation = 0.f; s32 CDecalManager::m_LastDecalCreatedIndex = -1; -CAssetId CDecalManager::m_LastDecalCreatedAssetId = -1; +CAssetId CDecalManager::m_LastDecalCreatedAssetId = {}; rstl::reserved_vector CDecalManager::m_DecalPool; rstl::reserved_vector CDecalManager::m_ActiveIndexList; @@ -29,7 +29,7 @@ void CDecalManager::Initialize() { m_PoolInitialized = true; m_DeltaTimeSinceLastDecalCreation = 0.f; m_LastDecalCreatedIndex = -1; - m_LastDecalCreatedAssetId = -1; + m_LastDecalCreatedAssetId = {}; /* Compile shaders */ CDecalShaders::Initialize(); diff --git a/Runtime/Particle/CParticleDataFactory.cpp b/Runtime/Particle/CParticleDataFactory.cpp index 83b131520..3adf387e2 100644 --- a/Runtime/Particle/CParticleDataFactory.cpp +++ b/Runtime/Particle/CParticleDataFactory.cpp @@ -706,7 +706,7 @@ std::unique_ptr CParticleDataFactory::GetIntElement(CInputStream& i std::unique_ptr CParticleDataFactory::GetGeneratorDesc(CInputStream& in, CSimplePool* resPool) { std::vector tracker; tracker.reserve(8); - return CreateGeneratorDescription(in, tracker, 0, resPool); + return CreateGeneratorDescription(in, tracker, {}, resPool); } std::unique_ptr CParticleDataFactory::CreateGeneratorDescription(CInputStream& in, diff --git a/Runtime/Particle/CParticleDataFactory.hpp b/Runtime/Particle/CParticleDataFactory.hpp index b5ea0e839..b6dd56fac 100644 --- a/Runtime/Particle/CParticleDataFactory.hpp +++ b/Runtime/Particle/CParticleDataFactory.hpp @@ -5,7 +5,7 @@ #include "Runtime/CFactoryMgr.hpp" #include "Runtime/CToken.hpp" -#include "Runtime/IOStreams.hpp" +#include "Runtime/Streams/IOStreams.hpp" #include "Runtime/IObj.hpp" #include "Runtime/RetroTypes.hpp" #include "Runtime/Graphics/CModel.hpp" diff --git a/Runtime/Particle/CParticleElectricDataFactory.hpp b/Runtime/Particle/CParticleElectricDataFactory.hpp index 692a12741..4364b49a6 100644 --- a/Runtime/Particle/CParticleElectricDataFactory.hpp +++ b/Runtime/Particle/CParticleElectricDataFactory.hpp @@ -4,7 +4,7 @@ #include "Runtime/CFactoryMgr.hpp" #include "Runtime/CToken.hpp" -#include "Runtime/IOStreams.hpp" +#include "Runtime/Streams/IOStreams.hpp" #include "Runtime/IObj.hpp" #include "Runtime/RetroTypes.hpp" diff --git a/Runtime/Particle/CParticleSwooshDataFactory.hpp b/Runtime/Particle/CParticleSwooshDataFactory.hpp index d6d4a88fc..da3fb76ec 100644 --- a/Runtime/Particle/CParticleSwooshDataFactory.hpp +++ b/Runtime/Particle/CParticleSwooshDataFactory.hpp @@ -4,7 +4,7 @@ #include "Runtime/CFactoryMgr.hpp" #include "Runtime/CToken.hpp" -#include "Runtime/IOStreams.hpp" +#include "Runtime/Streams/IOStreams.hpp" #include "Runtime/IObj.hpp" #include "Runtime/RetroTypes.hpp" diff --git a/Runtime/Particle/CProjectileWeaponDataFactory.hpp b/Runtime/Particle/CProjectileWeaponDataFactory.hpp index 1ec523057..b3653875a 100644 --- a/Runtime/Particle/CProjectileWeaponDataFactory.hpp +++ b/Runtime/Particle/CProjectileWeaponDataFactory.hpp @@ -4,7 +4,7 @@ #include "Runtime/CFactoryMgr.hpp" #include "Runtime/CToken.hpp" -#include "Runtime/IOStreams.hpp" +#include "Runtime/Streams/IOStreams.hpp" #include "Runtime/IObj.hpp" #include "Runtime/RetroTypes.hpp" diff --git a/Runtime/Particle/CSpawnSystemKeyframeData.hpp b/Runtime/Particle/CSpawnSystemKeyframeData.hpp index b7b02bb18..19d551f45 100644 --- a/Runtime/Particle/CSpawnSystemKeyframeData.hpp +++ b/Runtime/Particle/CSpawnSystemKeyframeData.hpp @@ -4,7 +4,7 @@ #include #include "Runtime/CToken.hpp" -#include "Runtime/IOStreams.hpp" +#include "Runtime/Streams/IOStreams.hpp" #include "Runtime/RetroTypes.hpp" namespace metaforce { diff --git a/Runtime/Particle/IElement.hpp b/Runtime/Particle/IElement.hpp index 9111f7b7c..f87b83861 100644 --- a/Runtime/Particle/IElement.hpp +++ b/Runtime/Particle/IElement.hpp @@ -3,7 +3,7 @@ #include #include "Runtime/GCNTypes.hpp" -#include "Runtime/IOStreams.hpp" +#include "Runtime/Streams/IOStreams.hpp" #include #include diff --git a/Runtime/RetroTypes.cpp b/Runtime/RetroTypes.cpp index c05f36c11..b07b11747 100644 --- a/Runtime/RetroTypes.cpp +++ b/Runtime/RetroTypes.cpp @@ -1,5 +1,5 @@ #include "Runtime/RetroTypes.hpp" -#include "Runtime/IOStreams.hpp" +#include "Runtime/Streams/IOStreams.hpp" #include "Runtime/GameGlobalObjects.hpp" #include "Runtime/IMain.hpp" @@ -9,19 +9,19 @@ namespace metaforce { logvisor::Module Log("metaforce::RetroTypes::CAssetId"); SObjectTag::SObjectTag(CInputStream& in) { - in.Get(reinterpret_cast(&type), 4); + in.ReadBytes(reinterpret_cast(&type), 4); id = in.Get(); } void SObjectTag::ReadMLVL(CInputStream& in) { id = in.Get(); - in.Get(reinterpret_cast(&type), 4); + in.ReadBytes(reinterpret_cast(&type), 4); } CAssetId::CAssetId(CInputStream& in) { if (g_Main != nullptr) { if (g_Main->GetExpectedIdSize() == sizeof(u32)) { - Assign(in.ReadLong()); + Assign(u32(in.ReadLong())); } else if (g_Main->GetExpectedIdSize() == sizeof(u64)) { Assign(in.ReadLongLong()); } else { @@ -32,7 +32,7 @@ CAssetId::CAssetId(CInputStream& in) { } } -void CAssetId::PutTo(COutputStream& out) { +void CAssetId::PutTo(COutputStream& out) const { if (g_Main != nullptr) { if (g_Main->GetExpectedIdSize() == sizeof(u32)) { out.Put(u32(id)); diff --git a/Runtime/RetroTypes.hpp b/Runtime/RetroTypes.hpp index 27746d15a..51897b976 100644 --- a/Runtime/RetroTypes.hpp +++ b/Runtime/RetroTypes.hpp @@ -196,13 +196,14 @@ class CAssetId { public: constexpr CAssetId() noexcept = default; + constexpr CAssetId(u32 v) noexcept { Assign(u32(v)); } constexpr CAssetId(u64 v) noexcept { Assign(v); } explicit CAssetId(CInputStream& in); [[nodiscard]] constexpr bool IsValid() const noexcept { return id != UINT64_MAX; } [[nodiscard]] constexpr u64 Value() const noexcept { return id; } constexpr void Assign(u64 v) noexcept { id = (v == UINT32_MAX ? UINT64_MAX : (v == 0 ? UINT64_MAX : v)); } constexpr void Reset() noexcept { id = UINT64_MAX; } - void PutTo(COutputStream& out); + void PutTo(COutputStream& out) const; [[nodiscard]] constexpr bool operator==(CAssetId other) const noexcept { return id == other.id; } [[nodiscard]] constexpr bool operator!=(CAssetId other) const noexcept { return !operator==(other); } [[nodiscard]] constexpr bool operator<(CAssetId other) const noexcept { return id < other.id; } diff --git a/Runtime/CInputStream.cpp b/Runtime/Streams/CInputStream.cpp similarity index 97% rename from Runtime/CInputStream.cpp rename to Runtime/Streams/CInputStream.cpp index 2c0b450bf..f6853ca23 100644 --- a/Runtime/CInputStream.cpp +++ b/Runtime/Streams/CInputStream.cpp @@ -14,7 +14,7 @@ static u32 min_containing_bytes(u32 v) { CInputStream::CInputStream(s32 len) : xc_len(len), x10_ptr(new u8[len]), x14_owned(true) {} CInputStream::CInputStream(const void* ptr, u32 len, bool owned) -: x8_blockLen(len), xc_len(len), x10_ptr(reinterpret_cast(ptr)), x14_owned(owned) {} +: x8_blockLen(len), xc_len(len), x10_ptr(reinterpret_cast(const_cast(ptr))), x14_owned(owned) {} CInputStream::~CInputStream() { if (x14_owned) { @@ -23,7 +23,7 @@ CInputStream::~CInputStream() { } bool CInputStream::InternalReadNext() { - x8_blockLen = Read(const_cast(x10_ptr), xc_len); + x8_blockLen = Read(x10_ptr, xc_len); x4_blockOffset = 0; return x8_blockLen != 0; } diff --git a/Runtime/CInputStream.hpp b/Runtime/Streams/CInputStream.hpp similarity index 94% rename from Runtime/CInputStream.hpp rename to Runtime/Streams/CInputStream.hpp index 21298e33a..8742061aa 100644 --- a/Runtime/CInputStream.hpp +++ b/Runtime/Streams/CInputStream.hpp @@ -7,7 +7,7 @@ class CInputStream { u32 x4_blockOffset = 0; u32 x8_blockLen = 0; u32 xc_len = 0; - const u8* x10_ptr = nullptr; + u8* x10_ptr = nullptr; bool x14_owned = false; u32 x18_readPosition = 0; u32 x1c_bitWord = 0; @@ -46,7 +46,7 @@ public: double ReadDouble(); void Get(u8* dest, u32 len); - template + template T Get() { return cinput_stream_helper(*this); } @@ -54,7 +54,7 @@ public: static u32 GetBitCount(u32 val); }; -template +template T cinput_stream_helper(CInputStream& in) { return T(in); } diff --git a/Runtime/CMemoryInStream.hpp b/Runtime/Streams/CMemoryInStream.hpp similarity index 84% rename from Runtime/CMemoryInStream.hpp rename to Runtime/Streams/CMemoryInStream.hpp index 3bb0e7ef1..7eda43ab1 100644 --- a/Runtime/CMemoryInStream.hpp +++ b/Runtime/Streams/CMemoryInStream.hpp @@ -1,5 +1,5 @@ #pragma once -#include "../../metaforce/Runtime/CInputStream.hpp" +#include "CInputStream.hpp" namespace metaforce { class CMemoryInStream final : public CInputStream { diff --git a/Runtime/CMemoryStreamOut.cpp b/Runtime/Streams/CMemoryStreamOut.cpp similarity index 100% rename from Runtime/CMemoryStreamOut.cpp rename to Runtime/Streams/CMemoryStreamOut.cpp diff --git a/Runtime/CMemoryStreamOut.hpp b/Runtime/Streams/CMemoryStreamOut.hpp similarity index 90% rename from Runtime/CMemoryStreamOut.hpp rename to Runtime/Streams/CMemoryStreamOut.hpp index 88ef2d20a..1cb115ed6 100644 --- a/Runtime/CMemoryStreamOut.hpp +++ b/Runtime/Streams/CMemoryStreamOut.hpp @@ -1,5 +1,5 @@ #pragma once -#include "Runtime/COutputStream.hpp" +#include "COutputStream.hpp" namespace metaforce { class CMemoryStreamOut final : public COutputStream { diff --git a/Runtime/COutputStream.cpp b/Runtime/Streams/COutputStream.cpp similarity index 100% rename from Runtime/COutputStream.cpp rename to Runtime/Streams/COutputStream.cpp diff --git a/Runtime/COutputStream.hpp b/Runtime/Streams/COutputStream.hpp similarity index 100% rename from Runtime/COutputStream.hpp rename to Runtime/Streams/COutputStream.hpp diff --git a/Runtime/CZipInputStream.cpp b/Runtime/Streams/CZipInputStream.cpp similarity index 59% rename from Runtime/CZipInputStream.cpp rename to Runtime/Streams/CZipInputStream.cpp index 337792f9a..3f6cbb715 100644 --- a/Runtime/CZipInputStream.cpp +++ b/Runtime/Streams/CZipInputStream.cpp @@ -14,21 +14,14 @@ CZipInputStream::CZipInputStream(std::unique_ptr&& strm) CZipInputStream::~CZipInputStream() { inflateEnd(x30_zstrm.get()); } u32 CZipInputStream::Read(void* buf, u32 len) { - x30_zstrm->next_out = static_cast(buf); + x30_zstrm->next_out = static_cast(buf); x30_zstrm->avail_out = len; - x30_zstrm->total_out = 0; - while (x30_zstrm->avail_out != 0) { - if (x30_zstrm->avail_in == 0) { - u32 readSz = x28_strm->ReadBytes(x24_compBuf.get(), 4096); - x30_zstrm->avail_in = readSz; - x30_zstrm->next_in = x24_compBuf.get(); - } - int inflateRet = inflate(x30_zstrm.get(), Z_NO_FLUSH); - if (inflateRet != Z_OK) { - break; - } + if (x30_zstrm->avail_in == 0) { + x30_zstrm->avail_in = x28_strm->ReadBytes(x24_compBuf.get(),4096); + x30_zstrm->next_in = x24_compBuf.get(); } - return x30_zstrm->total_out; + inflate(x30_zstrm.get(), Z_NO_FLUSH); + return len - x30_zstrm->avail_out; } } // namespace metaforce \ No newline at end of file diff --git a/Runtime/CZipInputStream.hpp b/Runtime/Streams/CZipInputStream.hpp similarity index 100% rename from Runtime/CZipInputStream.hpp rename to Runtime/Streams/CZipInputStream.hpp diff --git a/Runtime/Streams/ContainerReaders.hpp b/Runtime/Streams/ContainerReaders.hpp new file mode 100644 index 000000000..1080dfb2f --- /dev/null +++ b/Runtime/Streams/ContainerReaders.hpp @@ -0,0 +1,14 @@ +#pragma once + +#include "Runtime/rstl.hpp" +#include "Runtime/Streams/CInputStream.hpp" +namespace metaforce { +template +void read_reserved_vector(rstl::reserved_vector& v, CInputStream& in) { + u32 count = in.ReadLong(); + v.resize(count); + for (u32 i = 0; i < count; ++i) { + v[i] = in.Get(); + } +} +} // namespace metaforce \ No newline at end of file diff --git a/Runtime/IOStreams.cpp b/Runtime/Streams/IOStreams.cpp similarity index 86% rename from Runtime/IOStreams.cpp rename to Runtime/Streams/IOStreams.cpp index 4ded1d7a4..b5f7233ba 100644 --- a/Runtime/IOStreams.cpp +++ b/Runtime/Streams/IOStreams.cpp @@ -1,7 +1,8 @@ -#include "Runtime/IOStreams.hpp" -#include +#include "Runtime/Streams/IOStreams.hpp" +#include "zeus/zeus.hpp" namespace metaforce { +// Input template <> zeus::CVector2f cinput_stream_helper(CInputStream& in) { zeus::CVector2f ret; @@ -93,4 +94,17 @@ zeus::CMatrix4f cinput_stream_helper(CInputStream& in) { ret.m[3] = in.Get(); return ret.transposed(); } + +template +rstl::reserved_vector cinput_stream_helper(CInputStream& in) { + return rstl::reserved_vector(in); +} + +// Output +template<> +void coutput_stream_helper(const zeus::CVector3f& v, COutputStream& out) { + out.Put(v.x()); + out.Put(v.y()); + out.Put(v.z()); +} } // namespace metaforce diff --git a/Runtime/IOStreams.hpp b/Runtime/Streams/IOStreams.hpp similarity index 72% rename from Runtime/IOStreams.hpp rename to Runtime/Streams/IOStreams.hpp index 3e079d211..92d080f9a 100644 --- a/Runtime/IOStreams.hpp +++ b/Runtime/Streams/IOStreams.hpp @@ -1,8 +1,10 @@ #pragma once -#include "Runtime/CMemoryInStream.hpp" -#include "Runtime/CMemoryStreamOut.hpp" -#include "Runtime/CZipInputStream.hpp" +#include "Runtime/Streams/CMemoryInStream.hpp" +#include "Runtime/Streams/CMemoryStreamOut.hpp" +#include "Runtime/Streams/CZipInputStream.hpp" +#include "Runtime/Streams/ContainerReaders.hpp" +#include "Runtime/rstl.hpp" namespace zeus { class CVector2f; @@ -15,7 +17,7 @@ class CAABox; class COBBox; class CQuaternion; class CColor; -} +} // namespace zeus namespace metaforce { // Custom helpers for input/output template <> @@ -38,4 +40,8 @@ template <> zeus::CMatrix3f cinput_stream_helper(CInputStream& in); template <> zeus::CMatrix4f cinput_stream_helper(CInputStream& in); -} \ No newline at end of file + +template <> +void coutput_stream_helper(const zeus::CVector3f& v, COutputStream& out); + +} // namespace metaforce \ No newline at end of file diff --git a/Runtime/Tweaks/ITweak.hpp b/Runtime/Tweaks/ITweak.hpp new file mode 100644 index 000000000..1ea92dcb5 --- /dev/null +++ b/Runtime/Tweaks/ITweak.hpp @@ -0,0 +1,19 @@ +#pragma once + +// Gonna need these in all the tweaks anyway, so we'll include them here +#include "zeus/zeus.hpp" +#include "Runtime/GCNTypes.hpp" + +namespace hecl { +class CVarManager; +} + +namespace metaforce { +class CInputStream; +class COutputStream; +class ITweak { +public: + virtual ~ITweak() = default; + virtual void initCVars(hecl::CVarManager*) {} +}; +} // namespace metaforce diff --git a/Runtime/Tweaks/ITweakAutoMapper.hpp b/Runtime/Tweaks/ITweakAutoMapper.hpp new file mode 100644 index 000000000..1d5c4b74c --- /dev/null +++ b/Runtime/Tweaks/ITweakAutoMapper.hpp @@ -0,0 +1,62 @@ +#pragma once + +#include "Runtime/Tweaks/ITweak.hpp" +namespace metaforce::Tweaks { +struct ITweakAutoMapper : public ITweak { + virtual bool GetShowOneMiniMapArea() const = 0; + virtual bool GetScaleMoveSpeedWithCamDist() const = 0; + virtual float GetCamDist() const = 0; + virtual float GetMinCamDist() const = 0; + virtual float GetMaxCamDist() const = 0; + virtual float GetMinCamRotateX() const = 0; + virtual float GetMaxCamRotateX() const = 0; + virtual float GetCamAngle() const = 0; + virtual const zeus::CColor& GetAutomapperWidgetColor() const = 0; + virtual float GetMiniCamDist() const = 0; + virtual float GetMiniCamXAngle() const = 0; + virtual float GetMiniCamAngle() const = 0; + virtual const zeus::CColor& GetAutomapperWidgetMiniColor() const = 0; + virtual const zeus::CColor& GetSurfaceVisitedColor() const = 0; + virtual const zeus::CColor& GetOutlineVisitedColor() const = 0; + virtual const zeus::CColor& GetSurfaceUnvisitedColor() const = 0; + virtual const zeus::CColor& GetOutlineUnvisitedColor() const = 0; + virtual const zeus::CColor& GetSurfaceSelectVisitedColor() const = 0; + virtual const zeus::CColor& GetOutlineSelectVisitedColor() const = 0; + virtual float GetMapSurfaceNormColorLinear() const = 0; + virtual float GetMapSurfaceNormColorConstant() const = 0; + virtual float GetOpenMapScreenTime() const = 0; + virtual float GetCloseMapScreenTime() const = 0; + virtual float GetHintPanTime() const = 0; + virtual float GetCamZoomUnitsPerFrame() const = 0; + virtual float GetCamRotateDegreesPerFrame() const = 0; + virtual float GetBaseMapScreenCameraMoveSpeed() const = 0; + virtual const zeus::CColor& GetSurfaceSelectUnvisitedColor() const = 0; + virtual const zeus::CColor& GetOutlineSelectUnvisitedColor() const = 0; + virtual float GetMiniAlphaSurfaceVisited() const = 0; + virtual float GetAlphaSurfaceVisited() const = 0; + virtual float GetMiniAlphaOutlineVisited() const = 0; + virtual float GetAlphaOutlineVisited() const = 0; + virtual float GetMiniAlphaSurfaceUnvisited() const = 0; + virtual float GetAlphaSurfaceUnvisited() const = 0; + virtual float GetMiniAlphaOutlineUnvisited() const = 0; + virtual float GetAlphaOutlineUnvisited() const = 0; + virtual const zeus::CVector3f& GetDoorCenter() const = 0; + virtual float GetMiniMapViewportWidth() const = 0; + virtual float GetMiniMapViewportHeight() const = 0; + virtual float GetMiniMapCamDistScale() const = 0; + virtual float GetMapPlaneScaleX() const = 0; + virtual float GetMapPlaneScaleZ() const = 0; + virtual float GetUniverseCamDist() const = 0; + virtual float GetMinUniverseCamDist() const = 0; + virtual float GetMaxUniverseCamDist() const = 0; + virtual float GetSwitchToFromUniverseTime() const = 0; + virtual float GetCamPanUnitsPerFrame() const = 0; + virtual float GetAutomapperScaleX() const = 0; + virtual float GetAutomapperScaleZ() const = 0; + virtual float GetCamVerticalOffset() const = 0; + virtual const zeus::CColor& GetMiniMapSamusModColor() const = 0; + virtual const zeus::CColor& GetAreaFlashPulseColor() const = 0; + virtual const zeus::CColor& GetDoorColor(int idx) const = 0; + virtual const zeus::CColor& GetOpenDoorColor() const = 0; +}; +} // namespace DataSpec diff --git a/Runtime/Tweaks/ITweakBall.hpp b/Runtime/Tweaks/ITweakBall.hpp new file mode 100644 index 000000000..fcd814bd9 --- /dev/null +++ b/Runtime/Tweaks/ITweakBall.hpp @@ -0,0 +1,69 @@ +#pragma once + +#include "Runtime/Tweaks/ITweak.hpp" + +namespace metaforce::Tweaks { +struct ITweakBall : ITweak { + virtual float GetMaxBallTranslationAcceleration(int s) const = 0; + virtual float GetBallTranslationFriction(int s) const = 0; + virtual float GetBallTranslationMaxSpeed(int s) const = 0; + virtual float GetBallCameraElevation() const = 0; + virtual float GetBallCameraAnglePerSecond() const = 0; + virtual const zeus::CVector3f& GetBallCameraOffset() const = 0; + virtual float GetBallCameraMinSpeedDistance() const = 0; + virtual float GetBallCameraMaxSpeedDistance() const = 0; + virtual float GetBallCameraBackwardsDistance() const = 0; + virtual float GetBallCameraSpringConstant() const = 0; + virtual float GetBallCameraSpringMax() const = 0; + virtual float GetBallCameraSpringTardis() const = 0; + virtual float GetBallCameraCentroidSpringConstant() const = 0; + virtual float GetBallCameraCentroidSpringMax() const = 0; + virtual float GetBallCameraCentroidSpringTardis() const = 0; + virtual float GetBallCameraCentroidDistanceSpringConstant() const = 0; + virtual float GetBallCameraCentroidDistanceSpringMax() const = 0; + virtual float GetBallCameraCentroidDistanceSpringTardis() const = 0; + virtual float GetBallCameraLookAtSpringConstant() const = 0; + virtual float GetBallCameraLookAtSpringMax() const = 0; + virtual float GetBallCameraLookAtSpringTardis() const = 0; + virtual float GetBallForwardBrakingAcceleration(int s) const = 0; + virtual float GetBallGravity() const = 0; + virtual float GetBallWaterGravity() const = 0; + virtual float GetBallSlipFactor(int s) const = 0; + virtual float GetConservativeDoorCameraDistance() const = 0; + virtual float GetBallCameraChaseElevation() const = 0; + virtual float GetBallCameraChaseDampenAngle() const = 0; + virtual float GetBallCameraChaseDistance() const = 0; + virtual float GetBallCameraChaseYawSpeed() const = 0; + virtual float GetBallCameraChaseAnglePerSecond() const = 0; + virtual const zeus::CVector3f& GetBallCameraChaseLookAtOffset() const = 0; + virtual float GetBallCameraChaseSpringConstant() const = 0; + virtual float GetBallCameraChaseSpringMax() const = 0; + virtual float GetBallCameraChaseSpringTardis() const = 0; + virtual float GetBallCameraBoostElevation() const = 0; + virtual float GetBallCameraBoostDampenAngle() const = 0; + virtual float GetBallCameraBoostDistance() const = 0; + virtual float GetBallCameraBoostYawSpeed() const = 0; + virtual float GetBallCameraBoostAnglePerSecond() const = 0; + virtual const zeus::CVector3f& GetBallCameraBoostLookAtOffset() const = 0; + virtual float GetBallCameraBoostSpringConstant() const = 0; + virtual float GetBallCameraBoostSpringMax() const = 0; + virtual float GetBallCameraBoostSpringTardis() const = 0; + virtual float GetMinimumAlignmentSpeed() const = 0; + virtual float GetTireness() const = 0; + virtual float GetMaxLeanAngle() const = 0; + virtual float GetTireToMarbleThresholdSpeed() const = 0; + virtual float GetMarbleToTireThresholdSpeed() const = 0; + virtual float GetForceToLeanGain() const = 0; + virtual float GetLeanTrackingGain() const = 0; + virtual float GetBallCameraControlDistance() const = 0; + virtual float GetLeftStickDivisor() const = 0; + virtual float GetRightStickDivisor() const = 0; + virtual float GetBallTouchRadius() const = 0; + virtual float GetBoostBallDrainTime() const = 0; + virtual float GetBoostBallMaxChargeTime() const = 0; + virtual float GetBoostBallMinChargeTime() const = 0; + virtual float GetBoostBallMinRelativeSpeedForDamage() const = 0; + virtual float GetBoostBallChargeTimeTable(int i) const = 0; + virtual float GetBoostBallIncrementalSpeedTable(int i) const = 0; +}; +} // namespace metaforce diff --git a/Runtime/Tweaks/ITweakGame.hpp b/Runtime/Tweaks/ITweakGame.hpp new file mode 100644 index 000000000..078cbc1d1 --- /dev/null +++ b/Runtime/Tweaks/ITweakGame.hpp @@ -0,0 +1,26 @@ +#pragma once + +#include "Runtime/Tweaks/ITweak.hpp" + +namespace metaforce::Tweaks { + +struct ITweakGame : ITweak { + virtual std::string_view GetWorldPrefix() const = 0; + virtual bool GetSplashScreensDisabled() const = 0; + virtual float GetFirstPersonFOV() const = 0; + virtual float GetPressStartDelay() const = 0; + virtual float GetWavecapIntensityNormal() const = 0; + virtual float GetWavecapIntensityPoison() const = 0; + virtual float GetWavecapIntensityLava() const = 0; + virtual float GetRippleIntensityNormal() const = 0; + virtual float GetRippleIntensityPoison() const = 0; + virtual float GetRippleIntensityLava() const = 0; + virtual float GetFluidEnvBumpScale() const = 0; + virtual float GetWaterFogDistanceBase() const = 0; + virtual float GetWaterFogDistanceRange() const = 0; + virtual float GetGravityWaterFogDistanceBase() const = 0; + virtual float GetGravityWaterFogDistanceRange() const = 0; + virtual float GetHardModeDamageMultiplier() const = 0; + virtual float GetHardModeWeaponMultiplier() const = 0; +}; +} // namespace metaforce diff --git a/Runtime/Tweaks/ITweakGui.hpp b/Runtime/Tweaks/ITweakGui.hpp new file mode 100644 index 000000000..0a3f5916e --- /dev/null +++ b/Runtime/Tweaks/ITweakGui.hpp @@ -0,0 +1,140 @@ +#pragma once + +#include "Runtime/Tweaks/ITweak.hpp" + +namespace metaforce::Tweaks { + +struct ITweakGui : ITweak { + enum class EHudVisMode : atUint32 { Zero, One, Two, Three }; + + enum class EHelmetVisMode : atUint32 { ReducedUpdate, NotVisible, Deco, HelmetDeco, GlowHelmetDeco, HelmetOnly }; + + virtual float GetMapAlphaInterpolant() const = 0; + virtual float GetPauseBlurFactor() const = 0; + virtual float GetRadarXYRadius() const = 0; + virtual float GetRadarZRadius() const = 0; + virtual float GetRadarZCloseRadius() const = 0; + virtual float GetEnergyBarFilledSpeed() const = 0; + virtual float GetEnergyBarShadowSpeed() const = 0; + virtual float GetEnergyBarDrainDelay() const = 0; + virtual bool GetEnergyBarAlwaysResetDelay() const = 0; + virtual float GetHudDamagePracticalsGainConstant() const = 0; + virtual float GetHudDamagePracticalsGainLinear() const = 0; + virtual float GetHudDamagePracticalsInitConstant() const = 0; + virtual float GetHudDamagePracticalsInitLinear() const = 0; + virtual float GetHudDamageLightSpotAngle() const = 0; + virtual float GetDamageLightAngleC() const = 0; + virtual float GetDamageLightAngleL() const = 0; + virtual float GetDamageLightAngleQ() const = 0; + virtual zeus::CVector3f GetDamageLightPreTranslate() const = 0; + virtual zeus::CVector3f GetDamageLightCenterTranslate() const = 0; + virtual float GetDamageLightXfXAngle() const = 0; + virtual float GetDamageLightXfZAngle() const = 0; + virtual float GetHudDecoShakeTranslateVelConstant() const = 0; + virtual float GetHudDecoShakeTranslateVelLinear() const = 0; + virtual float GetMaxDecoDamageShakeTranslate() const = 0; + virtual float GetDecoDamageShakeDeceleration() const = 0; + virtual float GetDecoShakeGainConstant() const = 0; + virtual float GetDecoShakeGainLinear() const = 0; + virtual float GetDecoShakeInitConstant() const = 0; + virtual float GetDecoShakeInitLinear() const = 0; + virtual float GetMaxDecoDamageShakeRotate() const = 0; + virtual u32 GetHudCamFovTweak() const = 0; + virtual u32 GetHudCamYTweak() const = 0; + virtual u32 GetHudCamZTweak() const = 0; + virtual float GetBeamVisorMenuAnimTime() const = 0; + virtual float GetVisorBeamMenuItemActiveScale() const = 0; + virtual float GetVisorBeamMenuItemInactiveScale() const = 0; + virtual float GetVisorBeamMenuItemTranslate() const = 0; + virtual float GetThreatRange() const = 0; + virtual float GetRadarScopeCoordRadius() const = 0; + virtual float GetRadarPlayerPaintRadius() const = 0; + virtual float GetRadarEnemyPaintRadius() const = 0; + virtual float GetMissileArrowVisTime() const = 0; + virtual EHudVisMode GetHudVisMode() const = 0; + virtual EHelmetVisMode GetHelmetVisMode() const = 0; + virtual u32 GetEnableAutoMapper() const = 0; + virtual u32 GetEnableTargetingManager() const = 0; + virtual u32 GetEnablePlayerVisor() const = 0; + virtual float GetThreatWarningFraction() const = 0; + virtual float GetMissileWarningFraction() const = 0; + virtual float GetFreeLookFadeTime() const = 0; + virtual float GetFreeLookSfxPitchScale() const = 0; + virtual bool GetNoAbsoluteFreeLookSfxPitch() const = 0; + virtual float GetFaceReflectionOrthoWidth() const = 0; + virtual float GetFaceReflectionOrthoHeight() const = 0; + virtual float GetFaceReflectionDistance() const = 0; + virtual float GetFaceReflectionHeight() const = 0; + virtual float GetFaceReflectionAspect() const = 0; + virtual float GetMissileWarningPulseTime() const = 0; + virtual float GetExplosionLightFalloffMultConstant() const = 0; + virtual float GetExplosionLightFalloffMultLinear() const = 0; + virtual float GetExplosionLightFalloffMultQuadratic() const = 0; + virtual float GetHudDamagePeakFactor() const = 0; + virtual float GetHudDamageFilterGainConstant() const = 0; + virtual float GetHudDamageFilterGainLinear() const = 0; + virtual float GetHudDamageFilterInitConstant() const = 0; + virtual float GetHudDamageFilterInitLinear() const = 0; + virtual float GetEnergyDrainModPeriod() const = 0; + virtual bool GetEnergyDrainSinusoidalPulse() const = 0; + virtual bool GetEnergyDrainFilterAdditive() const = 0; + virtual float GetHudDamagePulseDuration() const = 0; + virtual float GetHudDamageColorGain() const = 0; + virtual float GetHudDecoShakeTranslateGain() const = 0; + virtual float GetHudLagOffsetScale() const = 0; + virtual float GetScanAppearanceDuration() const = 0; + virtual float GetScanPaneFlashFactor() const = 0; + virtual float GetScanPaneFadeInTime() const = 0; + virtual float GetScanPaneFadeOutTime() const = 0; + virtual float GetBallViewportYReduction() const = 0; + virtual float GetScanWindowIdleWidth() const = 0; + virtual float GetScanWindowIdleHeight() const = 0; + virtual float GetScanWindowActiveWidth() const = 0; + virtual float GetScanWindowActiveHeight() const = 0; + virtual float GetScanWindowMagnification() const = 0; + virtual float GetScanWindowScanningAspect() const = 0; + virtual float GetScanSpeed(int idx) const = 0; + virtual float GetXrayBlurScaleLinear() const = 0; + virtual float GetXrayBlurScaleQuadratic() const = 0; + virtual float GetScanSidesAngle() const = 0; + virtual float GetScanSidesXScale() const = 0; + virtual float GetScanSidesPositionEnd() const = 0; + virtual float GetScanSidesDuration() const = 0; + virtual float GetScanSidesStartTime() const = 0; + virtual float GetScanSidesEndTime() const = 0; + virtual float GetScanDataDotRadius() const = 0; + virtual float GetScanDataDotPosRandMagnitude() const = 0; + virtual float GetScanDataDotSeekDurationMin() const = 0; + virtual float GetScanDataDotSeekDurationMax() const = 0; + virtual float GetScanDataDotHoldDurationMin() const = 0; + virtual float GetScanDataDotHoldDurationMax() const = 0; + virtual float GetScanSidesPositionStart() const = 0; + virtual bool GetShowAutomapperInMorphball() const = 0; + virtual bool GetLatchArticleText() const = 0; + virtual float GetWorldTransManagerCharsPerSfx() const = 0; + virtual u32 GetXRayFogMode() const = 0; + virtual float GetXRayFogNearZ() const = 0; + virtual float GetXRayFogFarZ() const = 0; + virtual const zeus::CColor& GetXRayFogColor() const = 0; + virtual float GetThermalVisorLevel() const = 0; + virtual const zeus::CColor& GetThermalVisorColor() const = 0; + virtual const zeus::CColor& GetVisorHudLightAdd(int v) const = 0; + virtual const zeus::CColor& GetVisorHudLightMultiply(int v) const = 0; + virtual const zeus::CColor& GetHudReflectivityLightColor() const = 0; + virtual float GetHudLightAttMulConstant() const = 0; + virtual float GetHudLightAttMulLinear() const = 0; + virtual float GetHudLightAttMulQuadratic() const = 0; + virtual std::string_view GetCreditsTable() const = 0; + virtual std::string_view GetCreditsFont() const = 0; + virtual std::string_view GetJapaneseCreditsFont() const = 0; + virtual const zeus::CColor& GetCreditsTextFontColor() const = 0; + virtual const zeus::CColor& GetCreditsTextBorderColor() const = 0; + + static float FaceReflectionDistanceDebugValueToActualValue(float v) { return 0.015f * v + 0.2f; } + static float FaceReflectionHeightDebugValueToActualValue(float v) { return 0.005f * v - 0.05f; } + static float FaceReflectionAspectDebugValueToActualValue(float v) { return 0.05f * v + 1.f; } + static float FaceReflectionOrthoWidthDebugValueToActualValue(float v) { return 0.007f * v + 0.02f; } + static float FaceReflectionOrthoHeightDebugValueToActualValue(float v) { return 0.007f * v + 0.02f; } +}; + +} // namespace DataSpec diff --git a/Runtime/Tweaks/ITweakGuiColors.hpp b/Runtime/Tweaks/ITweakGuiColors.hpp new file mode 100644 index 000000000..c446f7da2 --- /dev/null +++ b/Runtime/Tweaks/ITweakGuiColors.hpp @@ -0,0 +1,102 @@ +#pragma once + +#include "Runtime/Tweaks/ITweak.hpp" + +namespace metaforce::Tweaks { +struct ITweakGuiColors : ITweak { + struct SVisorEnergyInitColors { + const zeus::CColor& tankFilled; + const zeus::CColor& tankEmpty; + const zeus::CColor& digitsFont; + const zeus::CColor& digitsOutline; + }; + + struct SVisorEnergyBarColors { + const zeus::CColor& filled; + const zeus::CColor& empty; + const zeus::CColor& shadow; + }; + + virtual const zeus::CColor& GetPauseBlurFilterColor() const = 0; + virtual const zeus::CColor& GetRadarStuffColor() const = 0; + virtual const zeus::CColor& GetRadarPlayerPaintColor() const = 0; + virtual const zeus::CColor& GetRadarEnemyPaintColor() const = 0; + virtual const zeus::CColor& GetHudMessageFill() const = 0; + virtual const zeus::CColor& GetHudMessageOutline() const = 0; + virtual const zeus::CColor& GetHudFrameColor() const = 0; + virtual const zeus::CColor& GetMissileIconColorActive() const = 0; + virtual const zeus::CColor& GetVisorBeamMenuItemActive() const = 0; + virtual const zeus::CColor& GetVisorBeamMenuItemInactive() const = 0; + virtual const zeus::CColor& GetEnergyBarFilledLowEnergy() const = 0; + virtual const zeus::CColor& GetEnergyBarShadowLowEnergy() const = 0; + virtual const zeus::CColor& GetEnergyBarEmptyLowEnergy() const = 0; + virtual const zeus::CColor& GetHudDamageLightColor() const = 0; + virtual const zeus::CColor& GetVisorMenuTextFont() const = 0; + virtual const zeus::CColor& GetVisorMenuTextOutline() const = 0; + virtual const zeus::CColor& GetBeamMenuTextFont() const = 0; + virtual const zeus::CColor& GetBeamMenuTextOutline() const = 0; + virtual const zeus::CColor& GetEnergyWarningFont() const = 0; + virtual const zeus::CColor& GetThreatWarningFont() const = 0; + virtual const zeus::CColor& GetMissileWarningFont() const = 0; + virtual const zeus::CColor& GetThreatBarFilled() const = 0; + virtual const zeus::CColor& GetThreatBarShadow() const = 0; + virtual const zeus::CColor& GetThreatBarEmpty() const = 0; + virtual const zeus::CColor& GetMissileBarFilled() const = 0; + virtual const zeus::CColor& GetMissileBarShadow() const = 0; + virtual const zeus::CColor& GetMissileBarEmpty() const = 0; + virtual const zeus::CColor& GetThreatIconColor() const = 0; + virtual const zeus::CColor& GetTickDecoColor() const = 0; + virtual const zeus::CColor& GetHelmetLightColor() const = 0; + virtual const zeus::CColor& GetThreatIconSafeColor() const = 0; + virtual const zeus::CColor& GetMissileIconColorInactive() const = 0; + virtual const zeus::CColor& GetMissileIconColorChargedCanAlt() const = 0; + virtual const zeus::CColor& GetMissileIconColorChargedNoAlt() const = 0; + virtual const zeus::CColor& GetMissileIconColorDepleteAlt() const = 0; + virtual const zeus::CColor& GetVisorBeamMenuLozColor() const = 0; + virtual const zeus::CColor& GetEnergyWarningOutline() const = 0; + virtual const zeus::CColor& GetThreatWarningOutline() const = 0; + virtual const zeus::CColor& GetMissileWarningOutline() const = 0; + virtual const zeus::CColor& GetDamageAmbientColor() const = 0; + virtual const zeus::CColor& GetScanFrameInactiveColor() const = 0; + virtual const zeus::CColor& GetScanFrameActiveColor() const = 0; + virtual const zeus::CColor& GetScanFrameImpulseColor() const = 0; + virtual const zeus::CColor& GetScanVisorHudLightMultiply() const = 0; + virtual const zeus::CColor& GetScanVisorScreenDimColor() const = 0; + virtual const zeus::CColor& GetThermalVisorHudLightMultiply() const = 0; + virtual const zeus::CColor& GetEnergyDrainFilterColor() const = 0; + virtual const zeus::CColor& GetDamageAmbientPulseColor() const = 0; + virtual const zeus::CColor& GetEnergyBarFlashColor() const = 0; + virtual const zeus::CColor& GetXRayEnergyDecoColor() const = 0; + virtual const zeus::CColor& GetScanDataDotColor() const = 0; + virtual const zeus::CColor& GetPowerBombDigitAvailableFont() const = 0; + virtual const zeus::CColor& GetPowerBombDigitAvailableOutline() const = 0; + virtual const zeus::CColor& GetBallBombFilledColor() const = 0; + virtual const zeus::CColor& GetBallBombEmptyColor() const = 0; + virtual const zeus::CColor& GetPowerBombIconAvailableColor() const = 0; + virtual const zeus::CColor& GetBallBombEnergyColor() const = 0; + virtual const zeus::CColor& GetBallBombDecoColor() const = 0; + virtual const zeus::CColor& GetPowerBombDigitDelpetedFont() const = 0; + virtual const zeus::CColor& GetPowerBombDigitDelpetedOutline() const = 0; + virtual const zeus::CColor& GetPowerBombIconDepletedColor() const = 0; + virtual const zeus::CColor& GetScanDisplayImagePaneColor() const = 0; + virtual const zeus::CColor& GetThreatIconWarningColor() const = 0; + virtual const zeus::CColor& GetHudCounterFill() const = 0; + virtual const zeus::CColor& GetHudCounterOutline() const = 0; + virtual const zeus::CColor& GetScanIconCriticalColor() const = 0; + virtual const zeus::CColor& GetScanIconCriticalDimColor() const = 0; + virtual const zeus::CColor& GetScanIconNoncriticalColor() const = 0; + virtual const zeus::CColor& GetScanIconNoncriticalDimColor() const = 0; + virtual const zeus::CColor& GetScanReticuleColor() const = 0; + virtual const zeus::CColor& GetThreatDigitsFont() const = 0; + virtual const zeus::CColor& GetThreatDigitsOutline() const = 0; + virtual const zeus::CColor& GetMissileDigitsFont() const = 0; + virtual const zeus::CColor& GetMissileDigitsOutline() const = 0; + virtual const zeus::CColor& GetThermalDecoColor() const = 0; + virtual const zeus::CColor& GetThermalOutlinesColor() const = 0; + virtual const zeus::CColor& GetThermalLockColor() const = 0; + virtual const zeus::CColor& GetPauseItemAmberColor() const = 0; + virtual const zeus::CColor& GetPauseItemBlueColor() const = 0; + virtual SVisorEnergyInitColors GetVisorEnergyInitColors(int idx) const = 0; + virtual SVisorEnergyBarColors GetVisorEnergyBarColors(int idx) const = 0; +}; +} // namespace DataSpec diff --git a/Runtime/Tweaks/ITweakGunRes.hpp b/Runtime/Tweaks/ITweakGunRes.hpp new file mode 100644 index 000000000..7becd4a99 --- /dev/null +++ b/Runtime/Tweaks/ITweakGunRes.hpp @@ -0,0 +1,142 @@ +#pragma once + +#include + +#include "Runtime/Tweaks/ITweak.hpp" +#include "Runtime/IFactory.hpp" +#include "Runtime/CPlayerState.hpp" + +namespace metaforce::Tweaks { + +struct ITweakGunRes : ITweak { + using ResId = metaforce::CAssetId; + using EBeamId = metaforce::CPlayerState::EBeamId; + + ResId x4_gunMotion; + ResId x8_grappleArm; + ResId xc_rightHand; + + ResId x10_powerBeam; + ResId x14_iceBeam; + ResId x18_waveBeam; + ResId x1c_plasmaBeam; + ResId x20_phazonBeam; + + ResId x24_holoTransition; + + ResId x28_bombSet; + ResId x2c_bombExplode; + ResId x30_powerBombExplode; + + /* Power, Ice, Wave, Plasma, Phazon / Beam, Ball */ + using WeaponPair = std::array; + std::array x34_weapons; + std::array x84_muzzle; + std::array x94_charge; + std::array xa4_auxMuzzle; + + ResId xb4_grappleSegment; + ResId xb8_grappleClaw; + ResId xbc_grappleHit; + ResId xc0_grappleMuzzle; + ResId xc4_grappleSwoosh; + + ResId GetBeamModel(EBeamId beam) const { + auto b = int(beam); + if (b < 0 || b > 4) + b = 0; + switch (EBeamId(b)) { + default: + case EBeamId::Power: + return x10_powerBeam; + case EBeamId::Ice: + return x14_iceBeam; + case EBeamId::Wave: + return x18_waveBeam; + case EBeamId::Plasma: + return x1c_plasmaBeam; + case EBeamId::Phazon: + return x20_phazonBeam; + } + } + + const WeaponPair& GetWeaponPair(EBeamId beam) const { + const auto b = int(beam); + if (b < 0 || b > 4) { + return x34_weapons[0]; + } + return x34_weapons[b]; + } + + void ResolveResources(const metaforce::IFactory& factory) { + x4_gunMotion = factory.GetResourceIdByName(GetGunMotion())->id; + x8_grappleArm = factory.GetResourceIdByName(GetGrappleArm())->id; + xc_rightHand = factory.GetResourceIdByName(GetRightHand())->id; + + x10_powerBeam = factory.GetResourceIdByName(GetPowerBeam())->id; + x14_iceBeam = factory.GetResourceIdByName(GetIceBeam())->id; + x18_waveBeam = factory.GetResourceIdByName(GetWaveBeam())->id; + x1c_plasmaBeam = factory.GetResourceIdByName(GetPlasmaBeam())->id; + x20_phazonBeam = factory.GetResourceIdByName(GetPhazonBeam())->id; + + x24_holoTransition = factory.GetResourceIdByName(GetHoloTransition())->id; + + x28_bombSet = factory.GetResourceIdByName(GetBombSet())->id; + x2c_bombExplode = factory.GetResourceIdByName(GetBombExplode())->id; + x30_powerBombExplode = factory.GetResourceIdByName(GetPowerBombExplode())->id; + + for (size_t i = 0; i < x34_weapons.size(); ++i) { + for (size_t j = 0; j < x34_weapons[i].size(); ++j) { + x34_weapons[i][j] = factory.GetResourceIdByName(GetWeapon(i, j != 0))->id; + } + } + + for (size_t i = 0; i < x84_muzzle.size(); ++i) { + x84_muzzle[i] = factory.GetResourceIdByName(GetMuzzleParticle(i))->id; + } + + for (size_t i = 0; i < x94_charge.size(); ++i) { + x94_charge[i] = factory.GetResourceIdByName(GetChargeParticle(i))->id; + } + + for (size_t i = 0; i < xa4_auxMuzzle.size(); ++i) { + xa4_auxMuzzle[i] = factory.GetResourceIdByName(GetAuxMuzzleParticle(i))->id; + } + + xb4_grappleSegment = factory.GetResourceIdByName(GetGrappleSegmentParticle())->id; + xb8_grappleClaw = factory.GetResourceIdByName(GetGrappleClawParticle())->id; + xbc_grappleHit = factory.GetResourceIdByName(GetGrappleHitParticle())->id; + xc0_grappleMuzzle = factory.GetResourceIdByName(GetGrappleMuzzleParticle())->id; + xc4_grappleSwoosh = factory.GetResourceIdByName(GetGrappleSwooshParticle())->id; + } + +protected: + virtual const std::string& GetGunMotion() const = 0; + virtual const std::string& GetGrappleArm() const = 0; + virtual const std::string& GetRightHand() const = 0; + + virtual const std::string& GetPowerBeam() const = 0; + virtual const std::string& GetIceBeam() const = 0; + virtual const std::string& GetWaveBeam() const = 0; + virtual const std::string& GetPlasmaBeam() const = 0; + virtual const std::string& GetPhazonBeam() const = 0; + + virtual const std::string& GetHoloTransition() const = 0; + + virtual const std::string& GetBombSet() const = 0; + virtual const std::string& GetBombExplode() const = 0; + virtual const std::string& GetPowerBombExplode() const = 0; + + virtual const std::string& GetWeapon(size_t idx, bool ball) const = 0; + virtual const std::string& GetMuzzleParticle(size_t idx) const = 0; + virtual const std::string& GetChargeParticle(size_t idx) const = 0; + virtual const std::string& GetAuxMuzzleParticle(size_t idx) const = 0; + + virtual const std::string& GetGrappleSegmentParticle() const = 0; + virtual const std::string& GetGrappleClawParticle() const = 0; + virtual const std::string& GetGrappleHitParticle() const = 0; + virtual const std::string& GetGrappleMuzzleParticle() const = 0; + virtual const std::string& GetGrappleSwooshParticle() const = 0; +}; + +} // namespace metaforce diff --git a/Runtime/Tweaks/ITweakParticle.hpp b/Runtime/Tweaks/ITweakParticle.hpp new file mode 100644 index 000000000..fafb8d838 --- /dev/null +++ b/Runtime/Tweaks/ITweakParticle.hpp @@ -0,0 +1,9 @@ +#pragma once + +#include "Runtime/Tweaks/ITweak.hpp" + +namespace metaforce::Tweaks { + +struct ITweakParticle : ITweak {}; + +} // namespace DataSpec diff --git a/Runtime/Tweaks/ITweakPlayer.hpp b/Runtime/Tweaks/ITweakPlayer.hpp new file mode 100644 index 000000000..c8f487420 --- /dev/null +++ b/Runtime/Tweaks/ITweakPlayer.hpp @@ -0,0 +1,144 @@ +#pragma once + +#include "Runtime/Tweaks/ITweak.hpp" +#include "zeus/CAABox.hpp" + +namespace metaforce::Tweaks { + +struct ITweakPlayer : ITweak { + virtual float GetMaxTranslationalAcceleration(int s) const = 0; + virtual float GetMaxRotationalAcceleration(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 GetNormalGravAccel() 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 GetWaterBallJumpFactor() const = 0; + virtual float GetLavaJumpFactor() const = 0; + virtual float GetLavaBallJumpFactor() const = 0; + virtual float GetPhazonJumpFactor() const = 0; + virtual float GetPhazonBallJumpFactor() 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 GetBombJumpRadius() const = 0; + virtual float GetBombJumpHeight() const = 0; + virtual float GetEyeOffset() const = 0; + virtual float GetTurnSpeedMultiplier() const = 0; + virtual float GetFreeLookTurnSpeedMultiplier() const = 0; + virtual float GetFreeLookSpeed() const = 0; + virtual float GetFreeLookSnapSpeed() const = 0; + virtual float GetFreeLookCenteredThresholdAngle() const = 0; + virtual float GetFreeLookCenteredTime() const = 0; + virtual float GetOrbitModeTimer() const = 0; + virtual float GetOrbitUpperAngle() const = 0; + virtual float GetOrbitLowerAngle() const = 0; + virtual float GetOrbitHorizAngle() const = 0; + virtual float GetOrbitMaxTargetDistance() const = 0; + virtual float GetOrbitMaxLockDistance() const = 0; + virtual float GetOrbitDistanceThreshold() const = 0; + virtual u32 GetOrbitScreenBoxHalfExtentX(int zone) const = 0; + virtual u32 GetOrbitScreenBoxHalfExtentY(int zone) const = 0; + virtual u32 GetOrbitScreenBoxCenterX(int zone) const = 0; + virtual u32 GetOrbitScreenBoxCenterY(int zone) const = 0; + virtual u32 GetOrbitZoneIdealX(int zone) const = 0; + virtual u32 GetOrbitZoneIdealY(int zone) const = 0; + virtual float GetOrbitNearX() const = 0; + virtual float GetOrbitNearZ() const = 0; + virtual float GetOrbitFixedOffsetZDiff() 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 bool GetScanRetention() const = 0; + virtual bool GetScanFreezesGame() const = 0; // x21c_25 + virtual bool GetOrbitWhileScanning() const = 0; + virtual bool GetFallingDoubleJump() const = 0; + virtual bool GetImpulseDoubleJump() const = 0; + virtual bool GetFiringCancelsCameraPitch() const = 0; + virtual bool GetAssistedAimingIgnoreHorizontal() const = 0; + virtual bool GetAssistedAimingIgnoreVertical() const = 0; + virtual float GetAimMaxDistance() const = 0; + virtual float GetAimThresholdDistance() const = 0; + virtual float GetAimBoxWidth() const = 0; + virtual float GetAimBoxHeight() const = 0; + virtual float GetAimTargetTimer() const = 0; + virtual float GetAimAssistHorizontalAngle() const = 0; + virtual float GetAimAssistVerticalAngle() const = 0; + virtual float GetScanMaxTargetDistance() const = 0; + virtual float GetScanMaxLockDistance() const = 0; + virtual bool GetMoveDuringFreeLook() const = 0; + virtual bool GetHoldButtonsForFreeLook() const = 0; + virtual bool GetTwoButtonsForFreeLook() const = 0; + virtual bool GetAimWhenOrbitingPoint() const = 0; + virtual bool GetStayInFreeLookWhileFiring() const = 0; + virtual bool GetOrbitFixedOffset() const = 0; + virtual bool GetGunButtonTogglesHolster() const = 0; + virtual bool GetGunNotFiringHolstersGun() const = 0; + virtual float GetPlayerHeight() const = 0; // x26c + virtual float GetPlayerXYHalfExtent() const = 0; // x270 + virtual bool GetFreeLookTurnsPlayer() const = 0; // x228_24 + virtual float GetStepUpHeight() const = 0; // x274 + virtual float GetStepDownHeight() const = 0; // x278 + virtual float GetPlayerBallHalfExtent() const = 0; // x27c + virtual float GetOrbitDistanceMax() const = 0; + virtual float GetGrappleSwingLength() const = 0; + virtual float GetGrappleSwingPeriod() const = 0; + virtual float GetGrapplePullSpeedMin() const = 0; + virtual float GetMaxGrappleLockedTurnAlignDistance() const = 0; + virtual float GetGrapplePullSpeedProportion() const = 0; + virtual float GetGrapplePullSpeedMax() const = 0; + virtual float GetGrappleLookCenterSpeed() const = 0; + virtual float GetMaxGrappleTurnSpeed() const = 0; + virtual float GetGrappleJumpForce() const = 0; + virtual float GetGrappleReleaseTime() const = 0; + virtual u32 GetGrappleJumpMode() const = 0; + virtual bool GetOrbitReleaseBreaksGrapple() const = 0; + virtual bool GetInvertGrappleTurn() const = 0; + virtual float GetGrappleBeamSpeed() const = 0; + virtual float GetGrappleBeamXWaveAmplitude() const = 0; + virtual float GetGrappleBeamZWaveAmplitude() const = 0; + virtual float GetGrappleBeamAnglePhaseDelta() const = 0; + virtual float GetHorizontalFreeLookAngleVel() const = 0; + virtual float GetVerticalFreeLookAngleVel() const = 0; // x134 + virtual float GetOrbitCameraSpeed() const = 0; // x184 + virtual float GetOrbitPreventionTime() const = 0; + virtual float GetJumpCameraPitchDownStart() const = 0; // x288 + virtual float GetJumpCameraPitchDownFull() const = 0; // x28c + virtual float GetJumpCameraPitchDownAngle() const = 0; // x290 + virtual float GetFallCameraPitchDownStart() const = 0; // x294 + virtual float GetFallCameraPitchDownFull() const = 0; // x298 + virtual float GetFallCameraPitchDownAngle() const = 0; // x29c + virtual float GetFirstPersonCameraSpeed() const = 0; // x280 + virtual float GetGrappleCameraSpeed() const = 0; // x2b0 + virtual float GetFreeLookDampenFactor() const = 0; // x14c + virtual float GetLeftLogicalThreshold() const = 0; + virtual float GetRightLogicalThreshold() const = 0; + virtual float GetOrbitMinDistance(int type) const = 0; + virtual float GetOrbitNormalDistance(int type) const = 0; + virtual float GetOrbitMaxDistance(int type) const = 0; + virtual float GetFrozenTimeout() const = 0; + virtual u32 GetIceBreakJumpCount() const = 0; + virtual float GetVariaDamageReduction() const = 0; + virtual float GetGravityDamageReduction() const = 0; + virtual float GetPhazonDamageReduction() const = 0; +}; + +} // namespace DataSpec diff --git a/Runtime/Tweaks/ITweakPlayerControl.hpp b/Runtime/Tweaks/ITweakPlayerControl.hpp new file mode 100644 index 000000000..9f55d6083 --- /dev/null +++ b/Runtime/Tweaks/ITweakPlayerControl.hpp @@ -0,0 +1,12 @@ +#pragma once + +#include "Runtime/Tweaks/ITweak.hpp" +#include "Runtime/Input/ControlMapper.hpp" + +namespace metaforce::Tweaks { + +struct ITweakPlayerControl : ITweak { + [[nodiscard]] virtual ControlMapper::EFunctionList GetMapping(atUint32) const = 0; +}; + +} // namespace DataSpec diff --git a/Runtime/Tweaks/ITweakPlayerGun.cpp b/Runtime/Tweaks/ITweakPlayerGun.cpp new file mode 100644 index 000000000..8148f573b --- /dev/null +++ b/Runtime/Tweaks/ITweakPlayerGun.cpp @@ -0,0 +1,14 @@ +#include "Runtime/Tweaks/ITweakPlayerGun.hpp" +#include "Runtime/Streams/IOStreams.hpp" + +namespace metaforce { +SShotParam::SShotParam(CInputStream& in) +: x0_weaponType(in.ReadLong()) +, x8_damage(in.ReadFloat()) +, xc_radiusDamage(in.ReadFloat()) +, x10_radius(in.ReadFloat()) +, x14_knockback(in.ReadFloat()) {} + +SWeaponInfo::SWeaponInfo(CInputStream& in) +: x0_coolDown(in.ReadFloat()), x4_normal(in.Get()), x20_charged(in.Get()) {} +} // namespace metaforce \ No newline at end of file diff --git a/Runtime/Tweaks/ITweakPlayerGun.hpp b/Runtime/Tweaks/ITweakPlayerGun.hpp new file mode 100644 index 000000000..ac0e384ba --- /dev/null +++ b/Runtime/Tweaks/ITweakPlayerGun.hpp @@ -0,0 +1,73 @@ +#pragma once + +#include "Runtime/Tweaks/ITweak.hpp" + +namespace metaforce { +/* Same as CDamageInfo */ +struct SShotParam { + atInt32 x0_weaponType = -1; + bool x4_24_charged : 1; + bool x4_25_combo : 1; + bool x4_26_instaKill : 1; + float x8_damage = 0.f; + float xc_radiusDamage = 0.f; + float x10_radius = 0.f; + float x14_knockback = 0.f; + bool x18_24_noImmunity : 1; + SShotParam() { + x4_24_charged = false; + x4_25_combo = false; + x4_26_instaKill = false; + x18_24_noImmunity = false; + } + explicit SShotParam(CInputStream& in); +}; + +struct SComboShotParam : SShotParam { + SComboShotParam() { x4_25_combo = true; } + explicit SComboShotParam(CInputStream& in) : SShotParam(in) { x4_25_combo = true; } +}; + +struct SChargedShotParam : SShotParam { + SChargedShotParam() { x4_24_charged = true; } + explicit SChargedShotParam(CInputStream& in) : SShotParam(in) { x4_24_charged = true; } +}; + +struct SWeaponInfo { + float x0_coolDown = 0.1f; + SShotParam x4_normal; + SChargedShotParam x20_charged; + SWeaponInfo() = default; + explicit SWeaponInfo(CInputStream& in); +}; + +namespace Tweaks { +struct ITweakPlayerGun : ITweak { + virtual float GetUpLookAngle() const = 0; + virtual float GetDownLookAngle() const = 0; + virtual float GetVerticalSpread() const = 0; + virtual float GetHorizontalSpread() const = 0; + virtual float GetHighVerticalSpread() const = 0; + virtual float GetHighHorizontalSpread() const = 0; + virtual float GetLowVerticalSpread() const = 0; + virtual float GetLowHorizontalSpread() const = 0; + virtual float GetAimVerticalSpeed() const = 0; // x24 + virtual float GetAimHorizontalSpeed() const = 0; // x28 + virtual float GetBombFuseTime() const = 0; // x2c + virtual float GetBombDropDelayTime() const = 0; // x30 + virtual float GetHoloHoldTime() const = 0; // x34 + virtual float GetGunTransformTime() const = 0; // x38 + virtual float GetGunHolsterTime() const = 0; + virtual float GetGunNotFiringTime() const = 0; + virtual float GetFixedVerticalAim() const = 0; + virtual float GetGunExtendDistance() const = 0; + virtual const zeus::CVector3f& GetGunPosition() const = 0; + virtual const zeus::CVector3f& GetGrapplingArmPosition() const = 0; + virtual float GetRichochetDamage(atUint32) const = 0; + virtual const SWeaponInfo& GetBeamInfo(atInt32 beam) const = 0; + virtual const SComboShotParam& GetComboShotInfo(atInt32 beam) const = 0; + virtual const SShotParam& GetBombInfo() const = 0; + virtual const SShotParam& GetPowerBombInfo() const = 0; +}; +} // namespace Tweaks +} // namespace metaforce diff --git a/Runtime/Tweaks/ITweakPlayerRes.hpp b/Runtime/Tweaks/ITweakPlayerRes.hpp new file mode 100644 index 000000000..2a09913cf --- /dev/null +++ b/Runtime/Tweaks/ITweakPlayerRes.hpp @@ -0,0 +1,176 @@ +#pragma once + +#include + +#include "Runtime/Tweaks/ITweak.hpp" +#include "Runtime/IFactory.hpp" +#include "Runtime/CPlayerState.hpp" + +namespace metaforce::Tweaks { + +struct ITweakPlayerRes : ITweak { + using ResId = metaforce::CAssetId; + using EBeamId = metaforce::CPlayerState::EBeamId; + + ResId x4_saveStationIcon; + ResId x8_missileStationIcon; + ResId xc_elevatorIcon; + + ResId x10_minesBreakFirstTopIcon; + ResId x14_minesBreakFirstBottomIcon; + ResId x18_minesBreakSecondTopIcon; + ResId x1c_minesBreakSecondBottomIcon; + + ResId rs5_mapArrowUp; + ResId rs5_mapArrowDown; + + /* N, U, UL, L, DL, D, DR, R, UR */ + std::array x24_lStick; + std::array x4c_cStick; + + /* Out, In */ + std::array x74_lTrigger; + std::array x80_rTrigger; + std::array x8c_startButton; + std::array x98_aButton; + std::array xa4_bButton; + std::array xb0_xButton; + std::array xbc_yButton; + + ResId xc4_ballTransitionsANCS; + + /* Power, Ice, Wave, Plasma, Phazon */ + std::array xc8_ballTransitions; + std::array xdc_cineGun; + + float xf0_cinematicMoveOutofIntoPlayerDistance; + + ResId GetBeamBallTransitionModel(EBeamId beam) const { + auto b = size_t(beam); + if (b >= xc8_ballTransitions.size()) { + b = 0; + } + switch (EBeamId(b)) { + case EBeamId::Power: + default: + return xc8_ballTransitions[0]; + case EBeamId::Ice: + return xc8_ballTransitions[1]; + case EBeamId::Wave: + return xc8_ballTransitions[2]; + case EBeamId::Plasma: + return xc8_ballTransitions[3]; + case EBeamId::Phazon: + return xc8_ballTransitions[4]; + } + } + + ResId GetBeamCineModel(EBeamId beam) const { + auto b = size_t(beam); + if (b >= xdc_cineGun.size()) { + b = 0; + } + switch (EBeamId(b)) { + case EBeamId::Power: + default: + return xdc_cineGun[0]; + case EBeamId::Ice: + return xdc_cineGun[1]; + case EBeamId::Wave: + return xdc_cineGun[2]; + case EBeamId::Plasma: + return xdc_cineGun[3]; + case EBeamId::Phazon: + return xdc_cineGun[4]; + } + } + + void ResolveResources(const metaforce::IFactory& factory) { + x4_saveStationIcon = factory.GetResourceIdByName(_GetSaveStationIcon())->id; + x8_missileStationIcon = factory.GetResourceIdByName(_GetMissileStationIcon())->id; + xc_elevatorIcon = factory.GetResourceIdByName(_GetElevatorIcon())->id; + + x10_minesBreakFirstTopIcon = factory.GetResourceIdByName(_GetMinesBreakFirstTopIcon())->id; + x14_minesBreakFirstBottomIcon = factory.GetResourceIdByName(_GetMinesBreakFirstBottomIcon())->id; + x18_minesBreakSecondTopIcon = factory.GetResourceIdByName(_GetMinesBreakSecondTopIcon())->id; + x1c_minesBreakSecondBottomIcon = factory.GetResourceIdByName(_GetMinesBreakSecondBottomIcon())->id; + + for (size_t i = 0; i < x24_lStick.size(); ++i) { + x24_lStick[i] = factory.GetResourceIdByName(_GetLStick(i))->id; + } + + for (size_t i = 0; i < x4c_cStick.size(); ++i) { + x4c_cStick[i] = factory.GetResourceIdByName(_GetCStick(i))->id; + } + + for (size_t i = 0; i < x74_lTrigger.size(); ++i) { + x74_lTrigger[i] = factory.GetResourceIdByName(_GetLTrigger(i))->id; + } + + for (size_t i = 0; i < x80_rTrigger.size(); ++i) { + x80_rTrigger[i] = factory.GetResourceIdByName(_GetRTrigger(i))->id; + } + + for (size_t i = 0; i < x8c_startButton.size(); ++i) { + x8c_startButton[i] = factory.GetResourceIdByName(_GetStartButton(i))->id; + } + + for (size_t i = 0; i < x98_aButton.size(); ++i) { + x98_aButton[i] = factory.GetResourceIdByName(_GetAButton(i))->id; + } + + for (size_t i = 0; i < xa4_bButton.size(); ++i) { + xa4_bButton[i] = factory.GetResourceIdByName(_GetBButton(i))->id; + } + + for (size_t i = 0; i < xb0_xButton.size(); ++i) { + xb0_xButton[i] = factory.GetResourceIdByName(_GetXButton(i))->id; + } + + for (size_t i = 0; i < xbc_yButton.size(); ++i) { + xbc_yButton[i] = factory.GetResourceIdByName(_GetYButton(i))->id; + } + + xc4_ballTransitionsANCS = factory.GetResourceIdByName(_GetBallTransitionsANCS())->id; + + for (size_t i = 0; i < xc8_ballTransitions.size(); ++i) { + xc8_ballTransitions[i] = factory.GetResourceIdByName(_GetBallTransitionBeamRes(i))->id; + } + + for (size_t i = 0; i < xdc_cineGun.size(); ++i) { + xdc_cineGun[i] = factory.GetResourceIdByName(_GetBeamCineModel(i))->id; + } + + xf0_cinematicMoveOutofIntoPlayerDistance = _GetCinematicMoveOutofIntoPlayerDistance(); + } + +protected: + virtual std::string_view _GetSaveStationIcon() const = 0; + virtual std::string_view _GetMissileStationIcon() const = 0; + virtual std::string_view _GetElevatorIcon() const = 0; + + virtual std::string_view _GetMinesBreakFirstTopIcon() const = 0; + virtual std::string_view _GetMinesBreakFirstBottomIcon() const = 0; + virtual std::string_view _GetMinesBreakSecondTopIcon() const = 0; + virtual std::string_view _GetMinesBreakSecondBottomIcon() const = 0; + + virtual std::string_view _GetLStick(size_t idx) const = 0; + virtual std::string_view _GetCStick(size_t idx) const = 0; + + virtual std::string_view _GetLTrigger(size_t idx) const = 0; + virtual std::string_view _GetRTrigger(size_t idx) const = 0; + virtual std::string_view _GetStartButton(size_t idx) const = 0; + virtual std::string_view _GetAButton(size_t idx) const = 0; + virtual std::string_view _GetBButton(size_t idx) const = 0; + virtual std::string_view _GetXButton(size_t idx) const = 0; + virtual std::string_view _GetYButton(size_t idx) const = 0; + + virtual std::string_view _GetBallTransitionsANCS() const = 0; + + virtual std::string_view _GetBallTransitionBeamRes(size_t idx) const = 0; + virtual std::string_view _GetBeamCineModel(size_t idx) const = 0; + + virtual float _GetCinematicMoveOutofIntoPlayerDistance() const = 0; +}; + +} // namespace DataSpec diff --git a/Runtime/Tweaks/ITweakSlideShow.hpp b/Runtime/Tweaks/ITweakSlideShow.hpp new file mode 100644 index 000000000..4f9f8080d --- /dev/null +++ b/Runtime/Tweaks/ITweakSlideShow.hpp @@ -0,0 +1,15 @@ +#pragma once + +#include "Runtime/Tweaks/ITweak.hpp" + +namespace metaforce::Tweaks { + +struct ITweakSlideShow : ITweak { + virtual std::string_view GetFont() const = 0; + virtual const zeus::CColor& GetFontColor() const = 0; + virtual const zeus::CColor& GetOutlineColor() const = 0; + virtual float GetScanPercentInterval() const = 0; + virtual float GetX54() const = 0; +}; + +} // namespace DataSpec diff --git a/Runtime/Tweaks/ITweakTargeting.hpp b/Runtime/Tweaks/ITweakTargeting.hpp new file mode 100644 index 000000000..03510f9a0 --- /dev/null +++ b/Runtime/Tweaks/ITweakTargeting.hpp @@ -0,0 +1,96 @@ +#pragma once + +#include "Runtime/Tweaks/ITweak.hpp" + +namespace metaforce::Tweaks { +struct ITweakTargeting : public ITweak { + virtual atUint32 GetTargetRadiusMode() const = 0; + virtual float GetCurrLockOnExitDuration() const = 0; + virtual float GetCurrLockOnEnterDuration() const = 0; + virtual float GetCurrLockOnSwitchDuration() const = 0; + virtual float GetLockConfirmScale() const = 0; + virtual float GetNextLockOnEnterDuration() const = 0; + virtual float GetNextLockOnExitDuration() const = 0; + virtual float GetNextLockOnSwitchDuration() const = 0; + virtual float GetSeekerScale() const = 0; + virtual float GetSeekerAngleSpeed() const = 0; + virtual float GetXRayRetAngleSpeed() const = 0; + virtual float GetOrbitPointZOffset() const = 0; + virtual float GetOrbitPointInTime() const = 0; + virtual float GetOrbitPointOutTime() const = 0; + virtual const zeus::CColor& GetThermalReticuleColor() const = 0; + virtual float GetTargetFlowerScale() const = 0; + virtual const zeus::CColor& GetTargetFlowerColor() const = 0; + virtual float GetMissileBracketDuration() const = 0; + virtual float GetMissileBracketScaleStart() const = 0; + virtual float GetMissileBracketScaleEnd() const = 0; + virtual float GetMissileBracketScaleDuration() const = 0; + virtual const zeus::CColor& GetMissileBracketColor() const = 0; + virtual float GetChargeGaugeOvershootOffset() const = 0; + virtual float GetChargeGaugeOvershootDuration() const = 0; + virtual float GetOuterBeamSquaresScale() const = 0; + virtual const zeus::CColor& GetOuterBeamSquareColor() const = 0; + virtual float GetLockonDuration() const = 0; + virtual float GetInnerBeamScale() const = 0; + virtual const zeus::CColor& GetInnerBeamColorPower() const = 0; + virtual const zeus::CColor& GetInnerBeamColorIce() const = 0; + virtual const zeus::CColor& GetInnerBeamColorWave() const = 0; + virtual const zeus::CColor& GetInnerBeamColorPlasma() const = 0; + virtual const float* GetOuterBeamSquareAngles(int i) const = 0; + virtual float GetChargeGaugeAngle(int i) const = 0; + virtual float GetChargeGaugeScale() const = 0; + virtual const zeus::CColor& GetChargeGaugeNonFullColor() const = 0; + virtual atUint32 GetChargeTickCount() const = 0; + virtual float GetChargeTickAnglePitch() const = 0; + virtual float GetLockFireScale() const = 0; + virtual float GetLockFireDuration() const = 0; + virtual const zeus::CColor& GetLockFireColor() const = 0; + virtual float GetLockDaggerScaleStart() const = 0; + virtual float GetLockDaggerScaleEnd() const = 0; + virtual const zeus::CColor& GetLockDaggerColor() const = 0; + virtual float GetLockDaggerAngle0() const = 0; + virtual float GetLockDaggerAngle1() const = 0; + virtual float GetLockDaggerAngle2() const = 0; + virtual const zeus::CColor& GetLockConfirmColor() const = 0; + virtual const zeus::CColor& GetSeekerColor() const = 0; + virtual float GetLockConfirmClampMin() const = 0; + virtual float GetLockConfirmClampMax() const = 0; + virtual float GetTargetFlowerClampMin() const = 0; + virtual float GetTargetFlowerClampMax() const = 0; + virtual float GetSeekerClampMin() const = 0; + virtual float GetSeekerClampMax() const = 0; + virtual float GetMissileBracketClampMin() const = 0; + virtual float GetMissileBracketClampMax() const = 0; + virtual float GetInnerBeamClampMin() const = 0; + virtual float GetInnerBeamClampMax() const = 0; + virtual float GetChargeGaugeClampMin() const = 0; + virtual float GetChargeGaugeClampMax() const = 0; + virtual float GetLockFireClampMin() const = 0; + virtual float GetLockFireClampMax() const = 0; + virtual float GetLockDaggerClampMin() const = 0; + virtual float GetLockDaggerClampMax() const = 0; + virtual float GetGrappleSelectScale() const = 0; + virtual float GetGrappleScale() const = 0; + virtual float GetGrappleClampMin() const = 0; + virtual float GetGrappleClampMax() const = 0; + virtual const zeus::CColor& GetGrapplePointSelectColor() const = 0; + virtual const zeus::CColor& GetGrapplePointColor() const = 0; + virtual const zeus::CColor& GetLockedGrapplePointSelectColor() const = 0; + virtual float GetGrappleMinClampScale() const = 0; + virtual const zeus::CColor& GetChargeGaugePulseColorHigh() const = 0; + virtual float GetFullChargeFadeDuration() const = 0; + virtual const zeus::CColor& GetOrbitPointColor() const = 0; + virtual const zeus::CColor& GetCrosshairsColor() const = 0; + virtual float GetCrosshairsScaleDuration() const = 0; + virtual bool DrawOrbitPoint() const = 0; + virtual const zeus::CColor& GetChargeGaugePulseColorLow() const = 0; + virtual float GetChargeGaugePulsePeriod() const = 0; + virtual float GetReticuleClampMin() const = 0; + virtual float GetReticuleClampMax() const = 0; + virtual const zeus::CColor& GetXRayRetRingColor() const = 0; + virtual float GetReticuleScale() const = 0; + virtual float GetScanTargetClampMin() const = 0; + virtual float GetScanTargetClampMax() const = 0; + virtual float GetAngularLagSpeed() const = 0; +}; +} // namespace DataSpec diff --git a/Runtime/Weapon/CBeamInfo.hpp b/Runtime/Weapon/CBeamInfo.hpp index 80426dc45..f3db6fcb6 100644 --- a/Runtime/Weapon/CBeamInfo.hpp +++ b/Runtime/Weapon/CBeamInfo.hpp @@ -1,6 +1,6 @@ #pragma once -#include "Runtime/IOStreams.hpp" +#include "Runtime/Streams/IOStreams.hpp" #include "Runtime/RetroTypes.hpp" #include @@ -34,10 +34,10 @@ public: explicit CBeamInfo(CInputStream& in) : x0_(in.ReadLong()) , x4_beamAttributes(in.ReadLong()) - , x8_contactFxId(in.ReadLong()) - , xc_pulseFxId(in.ReadLong()) - , x10_textureId(in.ReadLong()) - , x14_glowTextureId(in.ReadLong()) + , x8_contactFxId(in) + , xc_pulseFxId(in) + , x10_textureId(in) + , x14_glowTextureId(in) , x18_length(in.ReadFloat()) , x1c_radius(in.ReadFloat()) , x20_expansionSpeed(in.ReadFloat()) diff --git a/Runtime/Weapon/CFlameInfo.hpp b/Runtime/Weapon/CFlameInfo.hpp index 3606f0e43..f2cde66b9 100644 --- a/Runtime/Weapon/CFlameInfo.hpp +++ b/Runtime/Weapon/CFlameInfo.hpp @@ -1,7 +1,7 @@ #pragma once #include "Runtime/Weapon/CGameProjectile.hpp" -#include "Runtime/IOStreams.hpp" +#include "Runtime/Streams/IOStreams.hpp" namespace metaforce { class CFlameInfo { diff --git a/Runtime/Weapon/CGunWeapon.cpp b/Runtime/Weapon/CGunWeapon.cpp index 7d179c288..100ec9eb6 100644 --- a/Runtime/Weapon/CGunWeapon.cpp +++ b/Runtime/Weapon/CGunWeapon.cpp @@ -565,11 +565,11 @@ CDamageInfo CGunWeapon::GetDamageInfo(CStateManager& mgr, EChargeState chargeSta return GetShotDamageInfo(wInfo.x4_normal, mgr); } else { SShotParam param = wInfo.x20_charged; - param.damage *= chargeFactor; - param.radiusDamage *= chargeFactor; - param.radius *= chargeFactor; - param.knockback *= chargeFactor; - param.noImmunity = false; + param.x8_damage *= chargeFactor; + param.xc_radiusDamage *= chargeFactor; + param.x10_radius *= chargeFactor; + param.x14_knockback *= chargeFactor; + param.x18_24_noImmunity = false; return GetShotDamageInfo(param, mgr); } } diff --git a/Runtime/Weapon/CGunWeapon.hpp b/Runtime/Weapon/CGunWeapon.hpp index 39ab12f20..6a2fa3aae 100644 --- a/Runtime/Weapon/CGunWeapon.hpp +++ b/Runtime/Weapon/CGunWeapon.hpp @@ -9,7 +9,6 @@ #include "Runtime/CPlayerState.hpp" #include "Runtime/CStateManager.hpp" #include "Runtime/CToken.hpp" -#include "Runtime/rstl.hpp" #include "Runtime/Character/CAnimCharacterSet.hpp" #include "Runtime/Collision/CMaterialList.hpp" #include "Runtime/Particle/CElementGen.hpp" @@ -19,6 +18,7 @@ #include "Runtime/Weapon/CWeaponMgr.hpp" #include "Runtime/Weapon/WeaponCommon.hpp" #include "Runtime/World/CDamageInfo.hpp" +#include "Runtime/rstl.hpp" #include @@ -29,10 +29,6 @@ struct CModelFlags; enum class EChargeState { Normal, Charged }; -using SWeaponInfo = DataSpec::SWeaponInfo; -using SShotParam = DataSpec::SShotParam; -using SChargedShotParam = DataSpec::SChargedShotParam; - class CVelocityInfo { friend class CGunWeapon; rstl::reserved_vector x0_vel; diff --git a/Runtime/Weapon/CPowerBomb.cpp b/Runtime/Weapon/CPowerBomb.cpp index 472aeeb7f..f90883520 100644 --- a/Runtime/Weapon/CPowerBomb.cpp +++ b/Runtime/Weapon/CPowerBomb.cpp @@ -56,7 +56,7 @@ void CPowerBomb::Think(float dt, CStateManager& mgr) { CWeapon::Think(dt, mgr); if (x158_24_canStartFilter) { if (x15c_curTime > 1.f && !x158_25_filterEnabled) { - mgr.GetCameraFilterPass(6).SetFilter(EFilterType::Add, EFilterShape::Fullscreen, 1.5f, kFadeColor, -1); + mgr.GetCameraFilterPass(6).SetFilter(EFilterType::Add, EFilterShape::Fullscreen, 1.5f, kFadeColor, {}); x158_25_filterEnabled = true; } diff --git a/Runtime/Weapon/WeaponCommon.cpp b/Runtime/Weapon/WeaponCommon.cpp index e20c4bbf9..5c23f3c50 100644 --- a/Runtime/Weapon/WeaponCommon.cpp +++ b/Runtime/Weapon/WeaponCommon.cpp @@ -19,8 +19,8 @@ void primitive_set_to_token_vector(const CAnimData& animData, const std::set #include -#include "DataSpec/DNACommon/Tweaks/ITweakPlayerGun.hpp" +#include "Runtime/Tweaks/ITweakPlayerGun.hpp" #include "Runtime/CPlayerState.hpp" #include "Runtime/RetroTypes.hpp" diff --git a/Runtime/World/CAnimationParameters.hpp b/Runtime/World/CAnimationParameters.hpp index 9c7de3bd3..310717fb4 100644 --- a/Runtime/World/CAnimationParameters.hpp +++ b/Runtime/World/CAnimationParameters.hpp @@ -1,7 +1,7 @@ #pragma once #include "Runtime/RetroTypes.hpp" -#include "Runtime/CInputStream.hpp" +#include "Runtime/Streams/CInputStream.hpp" namespace metaforce { @@ -15,7 +15,7 @@ public: CAnimationParameters(CAssetId ancs, u32 charIdx, u32 defaultAnim) : x0_ancs(ancs), x4_charIdx(charIdx), x8_defaultAnim(defaultAnim) {} explicit CAnimationParameters(CInputStream& in) - : x0_ancs(in.ReadLong()), x4_charIdx(in.ReadLong()), x8_defaultAnim(in.ReadLong()) {} + : x0_ancs(in.Get()), x4_charIdx(in.ReadLong()), x8_defaultAnim(in.ReadLong()) {} CAssetId GetACSFile() const { return x0_ancs; } u32 GetCharacter() const { return x4_charIdx; } diff --git a/Runtime/World/CDamageInfo.cpp b/Runtime/World/CDamageInfo.cpp index 7e7228173..b1e60fc54 100644 --- a/Runtime/World/CDamageInfo.cpp +++ b/Runtime/World/CDamageInfo.cpp @@ -6,21 +6,22 @@ namespace metaforce { -CDamageInfo::CDamageInfo(const DataSpec::SShotParam& other) -: x0_weaponMode(CWeaponMode(EWeaponType(other.weaponType), other.charged, other.combo, other.instaKill)) -, x8_damage(other.damage) -, xc_radiusDamage(other.radiusDamage) -, x10_radius(other.radius) -, x14_knockback(other.knockback) -, x18_24_noImmunity(other.noImmunity) {} +CDamageInfo::CDamageInfo(const SShotParam& other) +: x0_weaponMode(CWeaponMode(EWeaponType(other.x0_weaponType), other.x4_24_charged, other.x4_25_combo, other.x4_26_instaKill)) +, x8_damage(other.x8_damage) +, xc_radiusDamage(other.xc_radiusDamage) +, x10_radius(other.x10_radius) +, x14_knockback(other.x14_knockback) +, x18_24_noImmunity(other.x18_24_noImmunity) {} -CDamageInfo& CDamageInfo::operator=(const DataSpec::SShotParam& other) { - x0_weaponMode = CWeaponMode(EWeaponType(other.weaponType), other.charged, other.combo, other.instaKill); - x8_damage = other.damage; - xc_radiusDamage = other.radiusDamage; - x10_radius = other.radius; - x14_knockback = other.knockback; - x18_24_noImmunity = other.noImmunity; +CDamageInfo& CDamageInfo::operator=(const SShotParam& other) { + x0_weaponMode = + CWeaponMode(EWeaponType(other.x0_weaponType), other.x4_24_charged, other.x4_25_combo, other.x4_26_instaKill); + x8_damage = other.x8_damage; + xc_radiusDamage = other.xc_radiusDamage; + x10_radius = other.x10_radius; + x14_knockback = other.x14_knockback; + x18_24_noImmunity = other.x18_24_noImmunity; return *this; } diff --git a/Runtime/World/CDamageInfo.hpp b/Runtime/World/CDamageInfo.hpp index 2ea087dbb..c0f568682 100644 --- a/Runtime/World/CDamageInfo.hpp +++ b/Runtime/World/CDamageInfo.hpp @@ -4,11 +4,8 @@ #include "Runtime/Weapon/CWeaponMgr.hpp" #include "Runtime/Weapon/CWeaponMode.hpp" -namespace DataSpec { -struct SShotParam; -} - namespace metaforce { +struct SShotParam; class CDamageVulnerability; class CDamageInfo { CWeaponMode x0_weaponMode; @@ -38,8 +35,8 @@ public: constexpr CDamageInfo& operator=(CDamageInfo&&) = default; CDamageInfo(const CDamageInfo&, float); - explicit CDamageInfo(const DataSpec::SShotParam& other); - CDamageInfo& operator=(const DataSpec::SShotParam& other); + explicit CDamageInfo(const SShotParam& other); + CDamageInfo& operator=(const SShotParam& other); const CWeaponMode& GetWeaponMode() const { return x0_weaponMode; } void SetWeaponMode(const CWeaponMode& mode) { x0_weaponMode = mode; } diff --git a/Runtime/World/CGameArea.cpp b/Runtime/World/CGameArea.cpp index 8f27f16d1..1f1f040de 100644 --- a/Runtime/World/CGameArea.cpp +++ b/Runtime/World/CGameArea.cpp @@ -29,19 +29,19 @@ CAreaRenderOctTree::CAreaRenderOctTree(const u8* buf) : x0_buf(buf) { x30_bitmaps = reinterpret_cast(x0_buf + 64); u32 wc = x14_bitmapWordCount * x8_bitmapCount; for (u32 i = 0; i < wc; ++i) - const_cast(x30_bitmaps)[i] = hecl::SBig(x30_bitmaps[i]); + const_cast(x30_bitmaps)[i] = CBasics::SwapBytes(x30_bitmaps[i]); x34_indirectionTable = x30_bitmaps + wc; x38_entries = reinterpret_cast(x34_indirectionTable + x10_nodeCount); for (u32 i = 0; i < x10_nodeCount; ++i) { - const_cast(x34_indirectionTable)[i] = hecl::SBig(x34_indirectionTable[i]); + const_cast(x34_indirectionTable)[i] = CBasics::SwapBytes(x34_indirectionTable[i]); Node* n = reinterpret_cast(const_cast(x38_entries) + x34_indirectionTable[i]); - n->x0_bitmapIdx = hecl::SBig(n->x0_bitmapIdx); - n->x2_flags = hecl::SBig(n->x2_flags); + n->x0_bitmapIdx = CBasics::SwapBytes(n->x0_bitmapIdx); + n->x2_flags = CBasics::SwapBytes(n->x2_flags); if (n->x2_flags) { u32 childCount = n->GetChildCount(); for (u32 c = 0; c < childCount; ++c) - n->x4_children[c] = hecl::SBig(n->x4_children[c]); + n->x4_children[c] = CBasics::SwapBytes(n->x4_children[c]); } } } @@ -300,10 +300,10 @@ std::pair, s32> GetScriptingMemoryAlways(const IGameArea& } CDummyGameArea::CDummyGameArea(CInputStream& in, int idx, int mlvlVersion) { - x8_nameSTRG = in.ReadLong(); + x8_nameSTRG = in.Get(); x14_transform = in.Get(); zeus::CAABox aabb = in.Get(); - xc_mrea = in.ReadLong(); + xc_mrea = in.Get(); if (mlvlVersion > 15) { x10_areaId = in.ReadLong(); } else { @@ -349,12 +349,12 @@ CAssetId CDummyGameArea::IGetStringTableAssetId() const { return x8_nameSTRG; } const zeus::CTransform& CDummyGameArea::IGetTM() const { return x14_transform; } CGameArea::CGameArea(CInputStream& in, int idx, int mlvlVersion) : x4_selfIdx(idx) { - x8_nameSTRG = in.ReadLong(); + x8_nameSTRG = in.Get(); xc_transform = in.Get(); x3c_invTransform = xc_transform.inverse(); x6c_aabb = in.Get(); - x84_mrea = in.ReadLong(); + x84_mrea = in.Get(); if (mlvlVersion > 15) x88_areaId = in.ReadLong(); else @@ -717,7 +717,7 @@ bool CGameArea::StartStreamingMainArea() { u32 totalSz = 0; u32 secCount = GetNumPartSizes(); for (u32 i = 0; i < secCount; ++i) - totalSz += hecl::SBig(reinterpret_cast(x110_mreaSecBufs[1].first.get())[i]); + totalSz += CBasics::SwapBytes(reinterpret_cast(x110_mreaSecBufs[1].first.get())[i]); AllocNewAreaData(x128_mreaDataOffset, totalSz); @@ -727,7 +727,7 @@ bool CGameArea::StartStreamingMainArea() { u32 curOff = 0; for (u32 i = 0; i < secCount; ++i) { - u32 size = hecl::SBig(reinterpret_cast(x110_mreaSecBufs[1].first.get())[i]); + u32 size = CBasics::SwapBytes(reinterpret_cast(x110_mreaSecBufs[1].first.get())[i]); m_resolvedBufs.emplace_back(x110_mreaSecBufs[2].first.get() + curOff, size); curOff += size; } @@ -753,7 +753,7 @@ void CGameArea::ReloadAllUnloadedTextures() {} u32 CGameArea::GetNumPartSizes() const { u32 value{}; std::memcpy(&value, x110_mreaSecBufs[0].first.get() + 60, sizeof(u32)); - return hecl::SBig(value); + return CBasics::SwapBytes(value); } void CGameArea::AllocNewAreaData(int offset, int size) { @@ -926,7 +926,7 @@ void CGameArea::PostConstructArea() { /* Models */ x12c_postConstructed->x4c_insts.resize(header.modelCount); for (u32 i = 0; i < header.modelCount; ++i) { - u32 surfCount = hecl::SBig(*reinterpret_cast((secIt + 4)->first)); + u32 surfCount = CBasics::SwapBytes(*reinterpret_cast((secIt + 4)->first)); secIt += 5 + surfCount; sec += 5 + surfCount; } @@ -998,7 +998,7 @@ void CGameArea::PostConstructArea() { /* Pathfinding section */ if (header.version > 9) { CMemoryInStream r(secIt->first, secIt->second, CMemoryInStream::EOwnerShip::NotOwned); - CAssetId pathId = r.ReadLong(); + CAssetId pathId = r.Get(); x12c_postConstructed->x10ac_pathToken = g_SimplePool->GetObj(SObjectTag{FOURCC('PATH'), pathId}); x12c_postConstructed->x10bc_pathArea = x12c_postConstructed->x10ac_pathToken.GetObj(); x12c_postConstructed->x10bc_pathArea->SetTransform(xc_transform); @@ -1081,7 +1081,7 @@ void CGameArea::FillInStaticGeometry(bool textures) { // ibo = ctx.newStaticBuffer(boo::BufferUse::Index, secIt->first, 4, inst.m_hmdlMeta.indexCount); ++secIt; - const u32 surfCount = hecl::SBig(*reinterpret_cast(secIt->first)); + const u32 surfCount = CBasics::SwapBytes(*reinterpret_cast(secIt->first)); inst.m_surfaces.reserve(surfCount); // inst.m_shaders.reserve(surfCount); ++secIt; diff --git a/Runtime/World/CHUDMemoParms.hpp b/Runtime/World/CHUDMemoParms.hpp index 2cd22bc0b..876c0213f 100644 --- a/Runtime/World/CHUDMemoParms.hpp +++ b/Runtime/World/CHUDMemoParms.hpp @@ -1,6 +1,6 @@ #pragma once -#include "Runtime/IOStreams.hpp" +#include "Runtime/Streams/IOStreams.hpp" namespace metaforce { diff --git a/Runtime/World/CHealthInfo.cpp b/Runtime/World/CHealthInfo.cpp index 54806ea22..dd027af1a 100644 --- a/Runtime/World/CHealthInfo.cpp +++ b/Runtime/World/CHealthInfo.cpp @@ -1,6 +1,6 @@ #include "Runtime/World/CHealthInfo.hpp" -#include "Runtime/CInputStream.hpp" +#include "Runtime/Streams/CInputStream.hpp" namespace metaforce { CHealthInfo::CHealthInfo(CInputStream& in) { diff --git a/Runtime/World/CPathFindArea.cpp b/Runtime/World/CPathFindArea.cpp index 9829d29b1..525ae61b5 100644 --- a/Runtime/World/CPathFindArea.cpp +++ b/Runtime/World/CPathFindArea.cpp @@ -89,8 +89,9 @@ void CPFOpenList::Clear() { void CPFOpenList::Push(CPFRegion* reg) { x0_bitSet.Add(reg->GetIndex()); CPFRegion* other = x40_region.Data()->GetOpenMore(); - while (other != &x40_region && reg->Data()->GetCost() > other->Data()->GetCost()) + while (other != &x40_region && reg->Data()->GetCost() > other->Data()->GetCost()) { other = other->Data()->GetOpenMore(); + } other->Data()->GetOpenLess()->Data()->SetOpenMore(reg); reg->Data()->SetOpenLess(other->Data()->GetOpenLess()); other->Data()->SetOpenLess(reg); diff --git a/Runtime/World/CPathFindRegion.hpp b/Runtime/World/CPathFindRegion.hpp index 51b5e1416..16cd66657 100644 --- a/Runtime/World/CPathFindRegion.hpp +++ b/Runtime/World/CPathFindRegion.hpp @@ -3,7 +3,7 @@ #include #include "RetroTypes.hpp" -#include "IOStreams.hpp" +#include "Runtime/Streams/IOStreams.hpp" #include #include diff --git a/Runtime/World/CPatternedInfo.cpp b/Runtime/World/CPatternedInfo.cpp index 57b839d5a..9a18bfdb1 100644 --- a/Runtime/World/CPatternedInfo.cpp +++ b/Runtime/World/CPatternedInfo.cpp @@ -32,7 +32,7 @@ CPatternedInfo::CPatternedInfo(CInputStream& in, u32 pcount) , xe8_deathSfx(CSfxManager::TranslateSFXID(in.ReadLong())) , xec_animParams(in) , xf8_active(in.ReadBool()) -, xfc_stateMachineId(in.ReadLong()) +, xfc_stateMachineId(in.Get()) , x100_intoFreezeDur(in.ReadFloat()) , x104_outofFreezeDur(in.ReadFloat()) , x108_freezeDur(in.ReadFloat()) diff --git a/Runtime/World/CScriptGunTurret.cpp b/Runtime/World/CScriptGunTurret.cpp index c483bacda..7dc1d397e 100644 --- a/Runtime/World/CScriptGunTurret.cpp +++ b/Runtime/World/CScriptGunTurret.cpp @@ -125,14 +125,14 @@ CScriptGunTurretData::CScriptGunTurretData(CInputStream& in, s32 propCount) , x6c_frozenEffectRes(in.Get()) , x70_chargingEffectRes(in.Get()) , x74_panningEffectRes(in.Get()) -, x78_visorEffectRes(propCount >= 44 ? in.Get() : -1) +, x78_visorEffectRes(propCount >= 44 ? in.Get() : CAssetId()) , x7c_trackingSoundId(CSfxManager::TranslateSFXID(u16(in.ReadLong()))) , x7e_lockOnSoundId(CSfxManager::TranslateSFXID(u16(in.ReadLong()))) , x80_unfreezeSoundId(CSfxManager::TranslateSFXID(u16(in.ReadLong()))) , x82_stopClankSoundId(CSfxManager::TranslateSFXID(u16(in.ReadLong()))) , x84_chargingSoundId(CSfxManager::TranslateSFXID(u16(in.ReadLong()))) , x86_visorSoundId(propCount >= 45 ? CSfxManager::TranslateSFXID(u16(in.ReadLong())) : u16(0xFFFF)) -, x88_extensionModelResId(in.ReadLong()) +, x88_extensionModelResId(in.Get()) , x8c_extensionDropDownDist(in.ReadFloat()) , x90_numInitialShots(in.ReadLong()) , x94_initialShotTableIndex(in.ReadLong()) diff --git a/Runtime/World/CStateMachine.hpp b/Runtime/World/CStateMachine.hpp index b2600f39d..3b9cccd4e 100644 --- a/Runtime/World/CStateMachine.hpp +++ b/Runtime/World/CStateMachine.hpp @@ -4,7 +4,7 @@ #include "Runtime/CToken.hpp" #include "Runtime/GCNTypes.hpp" -#include "Runtime/IOStreams.hpp" +#include "Runtime/Streams/IOStreams.hpp" #include "Runtime/IObj.hpp" #include "Runtime/IObjFactory.hpp" #include "Runtime/World/CAiFuncMap.hpp" diff --git a/Runtime/World/CWorld.cpp b/Runtime/World/CWorld.cpp index 36c9d8c8f..cf13f89b1 100644 --- a/Runtime/World/CWorld.cpp +++ b/Runtime/World/CWorld.cpp @@ -117,10 +117,10 @@ bool CDummyWorld::ICheckWorldComplete() { CMemoryInStream r(x34_loadBuf.get(), x38_bufSz, CMemoryInStream::EOwnerShip::NotOwned); r.ReadLong(); int version = r.ReadLong(); - x10_strgId = r.ReadLong(); + x10_strgId = r.Get(); if (version >= 15) - x14_savwId = r.ReadLong(); + x14_savwId = r.Get(); if (version >= 12) r.ReadLong(); if (version >= 17) @@ -133,7 +133,7 @@ bool CDummyWorld::ICheckWorldComplete() { for (u32 i = 0; i < areaCount; ++i) x18_areas.emplace_back(r, i, version); - x28_mapWorldId = r.ReadLong(); + x28_mapWorldId = r.Get(); if (x4_loadMap) x2c_mapWorld = g_SimplePool->GetObj(SObjectTag{FOURCC('MAPW'), x28_mapWorldId}); @@ -306,12 +306,12 @@ bool CWorld::CheckWorldComplete(CStateManager* mgr, TAreaId id, CAssetId mreaId) CMemoryInStream r(x40_loadBuf.get(), x44_bufSz, CMemoryInStream::EOwnerShip::NotOwned); r.ReadLong(); int version = r.ReadLong(); - xc_strgId = r.ReadLong(); + xc_strgId = r.Get(); if (version >= 15) - x10_savwId = r.ReadLong(); + x10_savwId = r.Get(); if (version >= 12) { - CAssetId skyboxId = r.ReadLong(); + CAssetId skyboxId = r.Get(); if (skyboxId.IsValid() && mgr) x94_skyboxWorld = g_SimplePool->GetObj(SObjectTag{FOURCC('CMDL'), skyboxId}); } @@ -336,7 +336,7 @@ bool CWorld::CheckWorldComplete(CStateManager* mgr, TAreaId id, CAssetId mreaId) for (std::unique_ptr& area : x18_areas) MoveToChain(area.get(), EChain::Deallocated); - x24_mapwId = r.ReadLong(); + x24_mapwId = r.Get(); x28_mapWorld = g_SimplePool->GetObj(SObjectTag{FOURCC('MAPW'), x24_mapwId}); if (mgr) { @@ -350,7 +350,7 @@ bool CWorld::CheckWorldComplete(CStateManager* mgr, TAreaId id, CAssetId mreaId) x74_soundGroupData.reserve(audioGroupCount); for (u32 i = 0; i < audioGroupCount; ++i) { int grpId = r.ReadLong(); - CAssetId agscId = r.ReadLong(); + CAssetId agscId = r.Get(); x74_soundGroupData.emplace_back(grpId, agscId); } } @@ -543,7 +543,7 @@ void CWorld::CycleLoadPauseState() { } } -bool CWorld::ICheckWorldComplete() { return CheckWorldComplete(nullptr, kInvalidAreaId, -1); } +bool CWorld::ICheckWorldComplete() { return CheckWorldComplete(nullptr, kInvalidAreaId, {}); } std::string CWorld::IGetDefaultAudioTrack() const { return x84_defAudioTrack; } diff --git a/Runtime/World/CWorldLight.cpp b/Runtime/World/CWorldLight.cpp index 07034b7b6..0a96da65f 100644 --- a/Runtime/World/CWorldLight.cpp +++ b/Runtime/World/CWorldLight.cpp @@ -1,5 +1,5 @@ #include "Runtime/World/CWorldLight.hpp" -#include "Runtime/IOStreams.hpp" +#include "Runtime/Streams/IOStreams.hpp" #include diff --git a/Runtime/World/IGameArea.cpp b/Runtime/World/IGameArea.cpp index 283f16f0a..ade7a91cf 100644 --- a/Runtime/World/IGameArea.cpp +++ b/Runtime/World/IGameArea.cpp @@ -1,5 +1,5 @@ #include "Runtime/World/IGameArea.hpp" -#include "Runtime/IOStreams.hpp" +#include "Runtime/Streams/IOStreams.hpp" namespace metaforce { IGameArea::Dock::Dock(metaforce::CInputStream& in, const zeus::CTransform& xf) { diff --git a/Runtime/World/ScriptLoader.cpp b/Runtime/World/ScriptLoader.cpp index 235da747c..d5eecdc1f 100644 --- a/Runtime/World/ScriptLoader.cpp +++ b/Runtime/World/ScriptLoader.cpp @@ -129,7 +129,7 @@ namespace metaforce { static logvisor::Module Log("metaforce::ScriptLoader"); -constexpr SObjectTag MorphballDoorANCS = {FOURCC('ANCS'), 0x1F9DA858}; +constexpr SObjectTag MorphballDoorANCS = {FOURCC('ANCS'), 0x1F9DA858u}; constexpr int skElitePiratePropCount = 41; @@ -221,10 +221,10 @@ CActorParameters ScriptLoader::LoadActorParameters(CInputStream& in) { if (propCount > 5) sParams = LoadScannableParameters(in); - CAssetId xrayModel = in.ReadLong(); - CAssetId xraySkin = in.ReadLong(); - CAssetId infraModel = in.ReadLong(); - CAssetId infraSkin = in.ReadLong(); + CAssetId xrayModel = in.Get(); + CAssetId xraySkin = in.Get(); + CAssetId infraModel = in.Get(); + CAssetId infraSkin = in.Get(); bool globalTimeProvider = true; if (propCount > 7) @@ -290,7 +290,7 @@ CVisorParameters ScriptLoader::LoadVisorParameters(CInputStream& in) { CScannableParameters ScriptLoader::LoadScannableParameters(CInputStream& in) { u32 propCount = in.ReadLong(); if (propCount == 1) - return CScannableParameters(in.ReadLong()); + return CScannableParameters(in.Get()); return CScannableParameters(); } @@ -334,7 +334,7 @@ CLightParameters ScriptLoader::LoadLightParameters(CInputStream& in) { } CAnimationParameters ScriptLoader::LoadAnimationParameters(CInputStream& in) { - CAssetId ancs = in.ReadLong(); + CAssetId ancs = in.Get(); s32 charIdx = in.ReadLong(); u32 defaultAnim = in.ReadLong(); return CAnimationParameters(ancs, charIdx, defaultAnim); @@ -398,7 +398,7 @@ CEntity* ScriptLoader::LoadActor(CStateManager& mgr, CInputStream& in, int propC CDamageVulnerability dVuln(in); - CAssetId staticId = in.ReadLong(); + CAssetId staticId = in.Get(); CAnimationParameters aParms = LoadAnimationParameters(in); CActorParameters actParms = LoadActorParameters(in); @@ -623,7 +623,7 @@ CEntity* ScriptLoader::LoadPlatform(CStateManager& mgr, CInputStream& in, int pr float speed = in.ReadFloat(); bool active = in.ReadBool(); - CAssetId dclnId = in.ReadLong(); + CAssetId dclnId = in.Get(); CHealthInfo hInfo(in); @@ -896,7 +896,7 @@ CEntity* ScriptLoader::LoadPickup(CStateManager& mgr, CInputStream& in, int prop float possibility = in.ReadFloat(); float lifeTime = in.ReadFloat(); float fadeInTime = in.ReadFloat(); - CAssetId staticModel = in.ReadLong(); + CAssetId staticModel = in.Get(); CAnimationParameters animParms = LoadAnimationParameters(in); CActorParameters actorParms = LoadActorParameters(in); bool active = in.ReadBool(); @@ -983,7 +983,7 @@ CEntity* ScriptLoader::LoadBeetle(CStateManager& mgr, CInputStream& in, int prop float unused = in.ReadFloat(); CDamageVulnerability tailVuln(in); CDamageVulnerability platingVuln(in); - CAssetId tailModel = in.ReadLong(); + CAssetId tailModel = in.Get(); MP1::CBeetle::EEntranceType entranceType = MP1::CBeetle::EEntranceType(in.ReadLong()); float initialAttackDelay = in.ReadFloat(); float retreatTime = in.ReadFloat(); @@ -1015,7 +1015,7 @@ CEntity* ScriptLoader::LoadHUDMemo(CStateManager& mgr, CInputStream& in, int pro if (propCount == 6) { displayType = CScriptHUDMemo::EDisplayType(in.ReadLong()); } - const CAssetId message = in.ReadLong(); + const CAssetId message = in.Get(); const bool active = in.ReadBool(); return new CScriptHUDMemo(mgr.AllocateUniqueId(), name, info, hParms, displayType, message, active); @@ -1105,9 +1105,9 @@ CEntity* ScriptLoader::LoadDamageableTrigger(CStateManager& mgr, CInputStream& i CDamageVulnerability dVuln(in); u32 triggerFlags = in.ReadLong(); triggerFlags = TransformDamagableTriggerFlags(mgr, info.GetAreaId(), triggerFlags); - CAssetId patternTex1 = in.ReadLong(); - CAssetId patternTex2 = in.ReadLong(); - CAssetId colorTex = in.ReadLong(); + CAssetId patternTex1 = in.Get(); + CAssetId patternTex2 = in.Get(); + CAssetId colorTex = in.Get(); CScriptDamageableTrigger::ECanOrbit canOrbit = CScriptDamageableTrigger::ECanOrbit(in.ReadBool()); bool active = in.ReadBool(); CVisorParameters vParms = LoadVisorParameters(in); @@ -1128,9 +1128,9 @@ CEntity* ScriptLoader::LoadDebris(CStateManager& mgr, CInputStream& in, int prop const float duration = in.ReadFloat(); const auto scaleType = CScriptDebris::EScaleType(in.ReadLong()); const bool randomAngImpulse = in.ReadBool(); - const CAssetId model = in.ReadLong(); + const CAssetId model = in.Get(); const CActorParameters aParams = LoadActorParameters(in); - const CAssetId particleId = in.ReadLong(); + const CAssetId particleId = in.Get(); const zeus::CVector3f particleScale = in.Get(); const bool b1 = in.ReadBool(); const bool active = in.ReadBool(); @@ -1190,12 +1190,12 @@ CEntity* ScriptLoader::LoadWater(CStateManager& mgr, CInputStream& in, int propC ETriggerFlags::DetectProjectiles6 | ETriggerFlags::DetectProjectiles7; bool thermalCold = in.ReadBool(); bool displaySurface = in.ReadBool(); - CAssetId patternMap1 = in.ReadLong(); - CAssetId patternMap2 = in.ReadLong(); - CAssetId colorMap = in.ReadLong(); - CAssetId bumpMap = in.ReadLong(); - CAssetId _envMap = in.ReadLong(); - CAssetId _envBumpMap = in.ReadLong(); + CAssetId patternMap1 = in.Get(); + CAssetId patternMap2 = in.Get(); + CAssetId colorMap = in.Get(); + CAssetId bumpMap = in.Get(); + CAssetId _envMap = in.Get(); + CAssetId _envBumpMap = in.Get(); zeus::CVector3f _bumpLightDir =in.Get(); zeus::CVector3f bumpLightDir = _bumpLightDir; @@ -1221,11 +1221,11 @@ CEntity* ScriptLoader::LoadWater(CStateManager& mgr, CInputStream& in, int propC float turbAmplitudeMin = in.ReadFloat(); zeus::CColor splashColor = in.Get(); zeus::CColor insideFogColor = in.Get(); - CAssetId splashParticle1 = in.ReadLong(); - CAssetId splashParticle2 = in.ReadLong(); - CAssetId splashParticle3 = in.ReadLong(); - CAssetId visorRunoffParticle = in.ReadLong(); - CAssetId unmorphVisorRunoffParticle = in.ReadLong(); + CAssetId splashParticle1 = in.Get(); + CAssetId splashParticle2 = in.Get(); + CAssetId splashParticle3 = in.Get(); + CAssetId visorRunoffParticle = in.Get(); + CAssetId unmorphVisorRunoffParticle = in.Get(); u32 visorRunoffSfx = in.ReadLong(); u32 unmorphVisorRunoffSfx = in.ReadLong(); u32 splashSfx1 = in.ReadLong(); @@ -1242,7 +1242,7 @@ CEntity* ScriptLoader::LoadWater(CStateManager& mgr, CInputStream& in, int propC float fogMagnitude = in.ReadFloat(); float fogSpeed = in.ReadFloat(); zeus::CColor fogColor = in.Get(); - CAssetId lightmap = in.ReadLong(); + CAssetId lightmap = in.Get(); float unitsPerLightmapTexel = in.ReadFloat(); float alphaInTime = in.ReadFloat(); float alphaOutTime = in.ReadFloat(); @@ -1301,9 +1301,9 @@ CEntity* ScriptLoader::LoadWarWasp(CStateManager& mgr, CInputStream& in, int pro CActorParameters actorParms = LoadActorParameters(in); CPatterned::EColliderType collider = CPatterned::EColliderType(in.ReadBool()); CDamageInfo damageInfo1(in); - CAssetId projectileWeapon = in.ReadLong(); + CAssetId projectileWeapon = in.Get(); CDamageInfo projectileDamage(in); - CAssetId projectileVisorParticle = in.ReadLong(); + CAssetId projectileVisorParticle = in.Get(); u32 projectileVisorSfx = in.ReadLong(); const CAnimationParameters& aParms = pInfo.GetAnimationParameters(); @@ -2115,23 +2115,23 @@ CEntity* ScriptLoader::LoadDebrisExtended(CStateManager& mgr, CInputStream& in, zeus::CVector3f localOffset = in.Get(); - CAssetId model = in.ReadLong(); + CAssetId model = in.Get(); CActorParameters aParam = LoadActorParameters(in); - CAssetId particle1 = in.ReadLong(); + CAssetId particle1 = in.Get(); zeus::CVector3f particle1Scale = in.Get(); bool particle1GlobalTranslation = in.ReadBool(); bool deferDeleteTillParticle1Done = in.ReadBool(); CScriptDebris::EOrientationType particle1Or = CScriptDebris::EOrientationType(in.ReadLong()); - CAssetId particle2 = in.ReadLong(); + CAssetId particle2 = in.Get(); zeus::CVector3f particle2Scale = in.Get(); bool particle2GlobalTranslation = in.ReadBool(); bool deferDeleteTillParticle2Done = in.ReadBool(); CScriptDebris::EOrientationType particle2Or = CScriptDebris::EOrientationType(in.ReadLong()); - CAssetId particle3 = in.ReadLong(); + CAssetId particle3 = in.Get(); /*zeus::CVector3f particle3Scale =*/(void) in.Get(); /* Not actually used, go figure */ CScriptDebris::EOrientationType particle3Or = CScriptDebris::EOrientationType(in.ReadLong()); @@ -2346,7 +2346,7 @@ CEntity* ScriptLoader::LoadAreaAttributes(CStateManager& mgr, CInputStream& in, float thermalHeat = in.ReadFloat(); float xrayFogDistance = in.ReadFloat(); float worldLightingLevel = in.ReadFloat(); - CAssetId skybox = in.ReadLong(); + CAssetId skybox = in.Get(); EPhazonType phazonType = EPhazonType(in.ReadLong()); return new CScriptAreaAttributes(mgr.AllocateUniqueId(), info, showSkybox, fxType, envFxDensity, thermalHeat, @@ -2382,13 +2382,13 @@ CEntity* ScriptLoader::LoadFishCloud(CStateManager& mgr, CInputStream& in, int p zeus::CColor color = in.Get(); bool killable = in.ReadBool(); float weaponKillRadius = in.ReadFloat(); - CAssetId part1 = in.ReadLong(); + CAssetId part1 = in.Get(); u32 partCount1 = in.ReadLong(); - CAssetId part2 = in.ReadLong(); + CAssetId part2 = in.Get(); u32 partCount2 = in.ReadLong(); - CAssetId part3 = in.ReadLong(); + CAssetId part3 = in.Get(); u32 partCount3 = in.ReadLong(); - CAssetId part4 = in.ReadLong(); + CAssetId part4 = in.Get(); u32 partCount4 = in.ReadLong(); u32 deathSfx = in.ReadLong(); bool repelFromThreats = in.ReadBool(); @@ -2458,17 +2458,17 @@ CEntity* ScriptLoader::LoadWorldTeleporter(CStateManager& mgr, CInputStream& in, std::string name = mgr.HashInstanceName(in); bool active = in.ReadBool(); - CAssetId worldId = in.ReadLong(); - CAssetId areaId = in.ReadLong(); + CAssetId worldId = in.Get(); + CAssetId areaId = in.Get(); if (propCount == 4) return new CScriptWorldTeleporter(mgr.AllocateUniqueId(), name, info, active, worldId, areaId); CAnimationParameters animParms = LoadAnimationParameters(in); zeus::CVector3f playerScale = in.Get(); - CAssetId platformModel = in.ReadLong(); + CAssetId platformModel = in.Get(); zeus::CVector3f platformScale = in.Get(); - CAssetId backgroundModel = in.ReadLong(); + CAssetId backgroundModel = in.Get(); zeus::CVector3f backgroundScale = in.Get(); bool upElevator = in.ReadBool(); @@ -2476,8 +2476,8 @@ CEntity* ScriptLoader::LoadWorldTeleporter(CStateManager& mgr, CInputStream& in, u8 volume = (propCount < 13 ? u8(127) : u8(in.ReadLong())); u8 panning = (propCount < 14 ? u8(64) : u8(in.ReadLong())); bool showText = (propCount < 15 ? false : in.ReadBool()); - CAssetId fontId = (propCount < 16 ? CAssetId() : in.ReadLong()); - CAssetId stringId = (propCount < 17 ? CAssetId() : in.ReadLong()); + CAssetId fontId = (propCount < 16 ? CAssetId() : in.Get()); + CAssetId stringId = (propCount < 17 ? CAssetId() : in.Get()); bool fadeWhite = (propCount < 18 ? false : in.ReadBool()); float charFadeInTime = (propCount < 19 ? 0.1f : in.ReadFloat()); float charsPerSecond = (propCount < 20 ? 16.f : in.ReadFloat()); @@ -3170,7 +3170,7 @@ CEntity* ScriptLoader::LoadActorContraption(CStateManager& mgr, CInputStream& in CDamageVulnerability dVuln(in); CAnimationParameters animParams(in); CActorParameters actParams = LoadActorParameters(in); - CAssetId flameFxId = in.ReadLong(); + CAssetId flameFxId = in.Get(); CDamageInfo dInfo(in); bool active = in.ReadBool(); @@ -3257,8 +3257,8 @@ CEntity* ScriptLoader::LoadGeemer(CStateManager& mgr, CInputStream& in, int prop actHead.x10_transform, std::move(mData), pInfo, EBodyType::WallWalker, 0.f, advanceWpRadius, f2, alignAngVel, f4, 0.2f, 0.4f, 0.f, 0.f, 0.f, 0.f, 0.f, 1.f, forwardMoveWeight, 0.f, 0.f, playerObstructionMinDist, haltDelay, false, CWallWalker::EWalkerType::Geemer, - CDamageVulnerability::NormalVulnerabilty(), CDamageInfo(), haltSfx, getUpSfx, crouchSfx, -1, - -1, 0.f, actParms); + CDamageVulnerability::NormalVulnerabilty(), CDamageInfo(), haltSfx, getUpSfx, crouchSfx, {}, + {}, 0.f, actParms); } CEntity* ScriptLoader::LoadSpindleCamera(CStateManager& mgr, CInputStream& in, int propCount, const CEntityInfo& info) { @@ -3458,8 +3458,8 @@ CEntity* ScriptLoader::LoadIceZoomer(CStateManager& mgr, CInputStream& in, int p float f4 = in.ReadFloat(); float playerObstructionMinDist = in.ReadFloat(); float moveFowardWeight = in.ReadFloat(); - CAssetId modelRes(in.ReadLong()); - CAssetId skinRes(in.ReadLong()); + CAssetId modelRes(in.Get()); + CAssetId skinRes(in.Get()); CDamageVulnerability dVuln(in); float iceZoomerJointHP = in.ReadFloat(); diff --git a/Runtime/World/ScriptLoader.hpp b/Runtime/World/ScriptLoader.hpp index c85134f92..23ec63d54 100644 --- a/Runtime/World/ScriptLoader.hpp +++ b/Runtime/World/ScriptLoader.hpp @@ -1,6 +1,6 @@ #pragma once -#include "Runtime/IOStreams.hpp" +#include "Runtime/Streams/IOStreams.hpp" #include #include