#ifndef _DNAMP1_CTWEAKGUI_HPP_ #define _DNAMP1_CTWEAKGUI_HPP_ #include "../../DNACommon/Tweaks/ITweakGui.hpp" namespace DataSpec::DNAMP1 { struct CTweakGui final : ITweakGui { AT_DECL_DNA_YAML Value x4_; Value x8_mapAlphaInterp; Value xc_pauseBlurFactor; Value x10_radarXYRadius; Value x14_; Value x18_; Value x1c_; Value x20_; Value x24_radarZRadius; Value x28_radarZCloseRadius; atUint32 x2c_ = 0; Value x30_; Value x34_energyBarFilledSpeed; Value x38_energyBarShadowSpeed; Value x3c_energyBarDrainDelay; Value x40_energyBarAlwaysResetDelay; Value x44_hudDamagePracticalsGainConstant; Value x48_hudDamagePracticalsGainLinear; Value x4c_hudDamagePracticalsInitConstant; Value x50_hudDamagePracticalsInitLinear; Value x54_hudDamageLightSpotAngle; Value x58_damageLightAngleC; Value x5c_damageLightAngleL; Value x60_damageLightAngleQ; Value x64_damageLightPreTranslate; Value x70_damageLightCenterTranslate; Value x7c_damageLightXfXAngle; Value x80_damageLightXfZAngle; Value x84_hudDecoShakeTranslateVelConstant; Value x88_hudDecoShakeTranslateVelLinear; Value x8c_maxDecoDamageShakeTranslate; Value x90_decoDamageShakeDeceleration; Value x94_decoShakeGainConstant; Value x98_decoShakeGainLinear; Value x9c_decoShakeInitConstant; Value xa0_decoShakeInitLinear; Value xa4_maxDecoDamageShakeRotate; Value xa8_hudCamFovTweak; Value xac_hudCamYTweak; Value xb0_hudCamZTweak; Value xb4_; Value xb8_; Value xbc_; Value xc0_beamVisorMenuAnimTime; Value xc4_visorBeamMenuItemActiveScale; Value xc8_visorBeamMenuItemInactiveScale; Value xcc_visorBeamMenuItemTranslate; Value xd0_; Value xd4_; Value xd8_; Value xdc_; Value xe0_; Value xe4_threatRange; Value xe8_radarScopeCoordRadius; Value xec_radarPlayerPaintRadius; Value xf0_radarEnemyPaintRadius; Value xf4_missileArrowVisTime; Value xf8_hudVisMode; Value xfc_helmetVisMode; Value x100_enableAutoMapper; Value x104_; Value x108_enableTargetingManager; Value x10c_enablePlayerVisor; Value x110_threatWarningFraction; Value x114_missileWarningFraction; Value x118_freeLookFadeTime; Value x11c_; Value x120_; Value x124_; Value x128_; Value x12c_freeLookSfxPitchScale; Value x130_noAbsoluteFreeLookSfxPitch; Value x134_; Value x138_; Value x13c_faceReflectionOrthoWidth; Value x140_faceReflectionOrthoHeight; Value x144_faceReflectionDistance; Value x148_faceReflectionHeight; Value x14c_faceReflectionAspect; String<-1> x150_; String<-1> x160_; String<-1> x170_; String<-1> x180_; String<-1> x190_; Value x1a0_missileWarningPulseTime; Value x1a4_explosionLightFalloffMultConstant; Value x1a8_explosionLightFalloffMultLinear; Value x1ac_explosionLightFalloffMultQuadratic; Value x1b0_; Value x1b4_hudDamagePeakFactor; Value x1b8_hudDamageFilterGainConstant; Value x1bc_hudDamageFilterGainLinear; Value x1c0_hudDamageFilterInitConstant; Value x1c4_hudDamageFilterInitLinear; Value x1c8_energyDrainModPeriod; Value x1cc_energyDrainSinusoidalPulse; Value x1cd_energyDrainFilterAdditive; Value x1d0_hudDamagePulseDuration; Value x1d4_hudDamageColorGain; Value x1d8_hudDecoShakeTranslateGain; Value x1dc_hudLagOffsetScale; Value x1e0_; Value x1e4_; Value x1e8_; Value x1ec_; Value x1f0_; Value x1f4_; Value x1f8_; Value x1fc_; zeus::CColor x200_; float x204_xrayBlurScaleLinear = 0.0014f; float x208_xrayBlurScaleQuadratic = 0.0000525f; Value x20c_; Value x210_scanSidesAngle; Value x214_scanSidesXScale; Value x218_scanSidesPositionEnd; Value x21c_; Value x220_scanSidesDuration; Value x224_scanSidesStartTime; float x228_scanSidesEndTime; Value x22c_scanDataDotRadius; Value x230_scanDataDotPosRandMag; Value x234_scanDataDotSeekDurationMin; Value x238_scanDataDotSeekDurationMax; Value x23c_scanDataDotHoldDurationMin; Value x240_scanDataDotHoldDurationMax; Value x244_scanAppearanceDuration; Value x248_scanPaneFlashFactor; Value x24c_scanPaneFadeInTime; Value x250_scanPaneFadeOutTime; Value x254_ballViewportYReduction; Value x258_scanWindowIdleW; Value x25c_scanWindowIdleH; Value x260_scanWindowActiveW; Value x264_scanWindowActiveH; Value x268_scanWindowMagnification; Value x26c_scanWindowScanningAspect; Value x270_scanSidesPositionStart; Value x274_showAutomapperInMorphball; bool x275_latchArticleText = true; Value x278_wtMgrCharsPerSfx; Value x27c_xrayFogMode; Value x280_xrayFogNearZ; Value x284_xrayFogFarZ; DNAColor x288_xrayFogColor; Value x28c_thermalVisorLevel; DNAColor x290_thermalVisorColor; DNAColor x294_hudLightAddPerVisor[4]; DNAColor x2a4_hudLightMultiplyPerVisor[4]; DNAColor x2b4_hudReflectivityLightColor; Value x2b8_hudLightAttMulConstant; Value x2bc_hudLightAttMulLinear; Value x2c0_hudLightAttMulQuadratic; Value m_scanSpeedsCount; Vector x2c4_scanSpeeds; String<-1> x2d0_; String<-1> x2e0_; String<-1> x2f0_; DNAColor x300_; DNAColor x304_; Value x308_; Value x30c_; Value x310_; String<-1> x314_; String<-1> x324_; String<-1> x334_; DNAColor x344_; DNAColor x348_; DNAColor x34c_; DNAColor x350_; DNAColor x354_; DNAColor x358_; Value x35c_; Value x360_; Value x364_; CTweakGui() = default; CTweakGui(athena::io::IStreamReader& r) { this->read(r); FixupValues(); } float GetMapAlphaInterpolant() const { return x8_mapAlphaInterp; } float GetPauseBlurFactor() const { return xc_pauseBlurFactor; } float GetRadarXYRadius() const { return x10_radarXYRadius; } float GetRadarZRadius() const { return x24_radarZRadius; } float GetRadarZCloseRadius() const { return x28_radarZCloseRadius; } float GetEnergyBarFilledSpeed() const { return x34_energyBarFilledSpeed; } float GetEnergyBarShadowSpeed() const { return x38_energyBarShadowSpeed; } float GetEnergyBarDrainDelay() const { return x3c_energyBarDrainDelay; } bool GetEnergyBarAlwaysResetDelay() const { return x40_energyBarAlwaysResetDelay; } float GetHudDamagePracticalsGainConstant() const { return x44_hudDamagePracticalsGainConstant; } float GetHudDamagePracticalsGainLinear() const { return x48_hudDamagePracticalsGainLinear; } float GetHudDamagePracticalsInitConstant() const { return x4c_hudDamagePracticalsInitConstant; } float GetHudDamagePracticalsInitLinear() const { return x50_hudDamagePracticalsInitLinear; } float GetHudDamageLightSpotAngle() const { return x54_hudDamageLightSpotAngle; } float GetDamageLightAngleC() const { return x58_damageLightAngleC; } float GetDamageLightAngleL() const { return x5c_damageLightAngleL; } float GetDamageLightAngleQ() const { return x60_damageLightAngleQ; } atVec3f GetDamageLightPreTranslate() const { return x64_damageLightPreTranslate; } atVec3f GetDamageLightCenterTranslate() const { return x70_damageLightCenterTranslate; } float GetDamageLightXfXAngle() const { return x7c_damageLightXfXAngle; } float GetDamageLightXfZAngle() const { return x80_damageLightXfZAngle; } float GetHudDecoShakeTranslateVelConstant() const { return x84_hudDecoShakeTranslateVelConstant; } float GetHudDecoShakeTranslateVelLinear() const { return x88_hudDecoShakeTranslateVelLinear; } float GetMaxDecoDamageShakeTranslate() const { return x8c_maxDecoDamageShakeTranslate; } float GetDecoDamageShakeDeceleration() const { return x90_decoDamageShakeDeceleration; } float GetDecoShakeGainConstant() const { return x94_decoShakeGainConstant; } float GetDecoShakeGainLinear() const { return x98_decoShakeGainLinear; } float GetDecoShakeInitConstant() const { return x9c_decoShakeInitConstant; } float GetDecoShakeInitLinear() const { return xa0_decoShakeInitLinear; } float GetMaxDecoDamageShakeRotate() const { return xa4_maxDecoDamageShakeRotate; } atUint32 GetHudCamFovTweak() const { return xa8_hudCamFovTweak; } atUint32 GetHudCamYTweak() const { return xac_hudCamYTweak; } atUint32 GetHudCamZTweak() const { return xb0_hudCamZTweak; } float GetBeamVisorMenuAnimTime() const { return xc0_beamVisorMenuAnimTime; } float GetVisorBeamMenuItemActiveScale() const { return xc4_visorBeamMenuItemActiveScale; } float GetVisorBeamMenuItemInactiveScale() const { return xc8_visorBeamMenuItemInactiveScale; } float GetVisorBeamMenuItemTranslate() const { return xcc_visorBeamMenuItemTranslate; } float GetThreatRange() const { return xe4_threatRange; } float GetRadarScopeCoordRadius() const { return xe8_radarScopeCoordRadius; } float GetRadarPlayerPaintRadius() const { return xec_radarPlayerPaintRadius; } float GetRadarEnemyPaintRadius() const { return xf0_radarEnemyPaintRadius; } float GetMissileArrowVisTime() const { return xf4_missileArrowVisTime; } EHudVisMode GetHudVisMode() const { return xf8_hudVisMode; } EHelmetVisMode GetHelmetVisMode() const { return xfc_helmetVisMode; } atUint32 GetEnableAutoMapper() const { return x100_enableAutoMapper; } atUint32 GetEnableTargetingManager() const { return x108_enableTargetingManager; } atUint32 GetEnablePlayerVisor() const { return x10c_enablePlayerVisor; } float GetThreatWarningFraction() const { return x110_threatWarningFraction; } float GetMissileWarningFraction() const { return x114_missileWarningFraction; } float GetFreeLookFadeTime() const { return x118_freeLookFadeTime; } float GetFreeLookSfxPitchScale() const { return x12c_freeLookSfxPitchScale; } bool GetNoAbsoluteFreeLookSfxPitch() const { return x130_noAbsoluteFreeLookSfxPitch; } float GetFaceReflectionOrthoWidth() const { return x13c_faceReflectionOrthoWidth; } float GetFaceReflectionOrthoHeight() const { return x140_faceReflectionOrthoHeight; } float GetFaceReflectionDistance() const { return x144_faceReflectionDistance; } float GetFaceReflectionHeight() const { return x148_faceReflectionHeight; } float GetFaceReflectionAspect() const { return x14c_faceReflectionAspect; } float GetMissileWarningPulseTime() const { return x1a0_missileWarningPulseTime; } float GetExplosionLightFalloffMultConstant() const { return x1a4_explosionLightFalloffMultConstant; } float GetExplosionLightFalloffMultLinear() const { return x1a8_explosionLightFalloffMultLinear; } float GetExplosionLightFalloffMultQuadratic() const { return x1ac_explosionLightFalloffMultQuadratic; } float GetHudDamagePeakFactor() const { return x1b4_hudDamagePeakFactor; } float GetHudDamageFilterGainConstant() const { return x1b8_hudDamageFilterGainConstant; } float GetHudDamageFilterGainLinear() const { return x1bc_hudDamageFilterGainLinear; } float GetHudDamageFilterInitConstant() const { return x1c0_hudDamageFilterInitConstant; } float GetHudDamageFilterInitLinear() const { return x1c4_hudDamageFilterInitLinear; } float GetEnergyDrainModPeriod() const { return x1c8_energyDrainModPeriod; } bool GetEnergyDrainSinusoidalPulse() const { return x1cc_energyDrainSinusoidalPulse; } bool GetEnergyDrainFilterAdditive() const { return x1cd_energyDrainFilterAdditive; } float GetHudDamagePulseDuration() const { return x1d0_hudDamagePulseDuration; } float GetHudDamageColorGain() const { return x1d4_hudDamageColorGain; } float GetHudDecoShakeTranslateGain() const { return x1d8_hudDecoShakeTranslateGain; } float GetHudLagOffsetScale() const { return x1dc_hudLagOffsetScale; } float GetXrayBlurScaleLinear() const { return x204_xrayBlurScaleLinear; } float GetXrayBlurScaleQuadratic() const { return x208_xrayBlurScaleQuadratic; } float GetScanSidesAngle() const { return x210_scanSidesAngle; } float GetScanSidesXScale() const { return x214_scanSidesXScale; } float GetScanSidesPositionEnd() const { return x218_scanSidesPositionEnd; } float GetScanSidesDuration() const { return x220_scanSidesDuration; } float GetScanSidesStartTime() const { return x224_scanSidesStartTime; } float GetScanSidesEndTime() const { return x228_scanSidesEndTime; } float GetScanDataDotRadius() const { return x22c_scanDataDotRadius; } float GetScanDataDotPosRandMagnitude() const { return x230_scanDataDotPosRandMag; } float GetScanDataDotSeekDurationMin() const { return x234_scanDataDotSeekDurationMin; } float GetScanDataDotSeekDurationMax() const { return x238_scanDataDotSeekDurationMax; } float GetScanDataDotHoldDurationMin() const { return x23c_scanDataDotHoldDurationMin; } float GetScanDataDotHoldDurationMax() const { return x240_scanDataDotHoldDurationMax; } float GetScanAppearanceDuration() const { return x244_scanAppearanceDuration; } float GetScanPaneFlashFactor() const { return x248_scanPaneFlashFactor; } float GetScanPaneFadeInTime() const { return x24c_scanPaneFadeInTime; } float GetScanPaneFadeOutTime() const { return x250_scanPaneFadeOutTime; } float GetBallViewportYReduction() const { return x254_ballViewportYReduction; } float GetScanWindowIdleWidth() const { return x258_scanWindowIdleW; } float GetScanWindowIdleHeight() const { return x25c_scanWindowIdleH; } float GetScanWindowActiveWidth() const { return x260_scanWindowActiveW; } float GetScanWindowActiveHeight() const { return x264_scanWindowActiveH; } float GetScanWindowMagnification() const { return x268_scanWindowMagnification; } float GetScanWindowScanningAspect() const { return x26c_scanWindowScanningAspect; } float GetScanSidesPositionStart() const { return x270_scanSidesPositionStart; } bool GetShowAutomapperInMorphball() const { return x274_showAutomapperInMorphball; } bool GetLatchArticleText() const { return x275_latchArticleText; } float GetWorldTransManagerCharsPerSfx() const { return x278_wtMgrCharsPerSfx; } atUint32 GetXRayFogMode() const { return x27c_xrayFogMode; } float GetXRayFogNearZ() const { return x280_xrayFogNearZ; } float GetXRayFogFarZ() const { return x284_xrayFogFarZ; } const zeus::CColor& GetXRayFogColor() const { return x288_xrayFogColor; } float GetThermalVisorLevel() const { return x28c_thermalVisorLevel; } const zeus::CColor& GetThermalVisorColor() const { return x290_thermalVisorColor; } const zeus::CColor& GetVisorHudLightAdd(int v) const { return x294_hudLightAddPerVisor[v]; } const zeus::CColor& GetVisorHudLightMultiply(int v) const { return x2a4_hudLightMultiplyPerVisor[v]; } const zeus::CColor& GetHudReflectivityLightColor() const { return x2b4_hudReflectivityLightColor; } float GetHudLightAttMulConstant() const { return x2b8_hudLightAttMulConstant; } float GetHudLightAttMulLinear() const { return x2bc_hudLightAttMulLinear; } float GetHudLightAttMulQuadratic() const { return x2c0_hudLightAttMulQuadratic; } float GetScanSpeed(int idx) const { if (idx < 0 || 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; } }; } #endif // _DNAMP1_CTWEAKGUI_HPP_