2018-10-07 03:42:33 +00:00
|
|
|
#pragma once
|
2015-11-02 18:45:39 +00:00
|
|
|
|
2019-09-29 12:44:37 +00:00
|
|
|
#include "DataSpec/DNACommon/Tweaks/ITweakGame.hpp"
|
|
|
|
|
|
|
|
namespace hecl {
|
|
|
|
class CVar;
|
2021-02-28 04:45:23 +00:00
|
|
|
} // namespace hecl
|
2015-11-02 18:45:39 +00:00
|
|
|
|
2018-12-08 05:30:43 +00:00
|
|
|
namespace DataSpec::DNAMP1 {
|
2015-11-02 18:45:39 +00:00
|
|
|
|
2021-02-28 04:45:23 +00:00
|
|
|
#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
|
|
|
|
|
2018-12-08 05:30:43 +00:00
|
|
|
struct CTweakGame final : ITweakGame {
|
|
|
|
AT_DECL_DNA_YAML
|
|
|
|
String<-1> x4_worldPrefix;
|
2019-08-04 00:02:53 +00:00
|
|
|
String<-1> x14_defaultRoom;
|
2018-12-08 05:30:43 +00:00
|
|
|
Value<float> x24_fov;
|
|
|
|
Value<bool> x28_unknown1;
|
|
|
|
Value<bool> x29_unknown2;
|
|
|
|
Value<bool> x2a_unknown3;
|
|
|
|
Value<bool> x2b_splashScreensDisabled;
|
|
|
|
Value<float> x2c_unknown5;
|
|
|
|
Value<float> x30_pressStartDelay;
|
|
|
|
Value<float> x34_wavecapIntensityNormal;
|
|
|
|
Value<float> x38_wavecapIntensityPoison;
|
|
|
|
Value<float> x3c_wavecapIntensityLava;
|
|
|
|
Value<float> x40_rippleIntensityNormal;
|
2020-11-01 23:04:13 +00:00
|
|
|
Value<float> x44_rippleIntensityPoison;
|
2018-12-08 05:30:43 +00:00
|
|
|
Value<float> x48_rippleIntensityLava;
|
|
|
|
Value<float> x4c_fluidEnvBumpScale;
|
|
|
|
Value<float> x50_waterFogDistanceBase;
|
|
|
|
Value<float> x54_waterFogDistanceRange;
|
|
|
|
Value<float> x58_gravityWaterFogDistanceBase;
|
|
|
|
Value<float> x5c_gravityWaterFogDistanceRange;
|
|
|
|
Value<float> x60_hardmodeDamageMult;
|
|
|
|
Value<float> x64_hardmodeWeaponMult;
|
2015-11-02 18:45:39 +00:00
|
|
|
|
2019-08-10 02:32:48 +00:00
|
|
|
std::string_view GetWorldPrefix() const override { return x4_worldPrefix; }
|
2019-08-04 00:02:53 +00:00
|
|
|
std::string_view GetDefaultRoom() const { return x14_defaultRoom; }
|
2019-08-10 02:32:48 +00:00
|
|
|
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; }
|
2020-11-01 23:04:13 +00:00
|
|
|
float GetRippleIntensityPoison() const override { return x44_rippleIntensityPoison; }
|
2019-08-10 02:32:48 +00:00
|
|
|
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; }
|
2018-12-08 05:30:43 +00:00
|
|
|
CTweakGame() = default;
|
|
|
|
CTweakGame(athena::io::IStreamReader& in) {
|
|
|
|
this->read(in);
|
2019-04-16 08:00:46 +00:00
|
|
|
#ifdef NDEBUG
|
2018-12-08 05:30:43 +00:00
|
|
|
x2b_splashScreensDisabled = false;
|
2019-04-16 08:00:46 +00:00
|
|
|
#endif
|
2018-12-08 05:30:43 +00:00
|
|
|
}
|
2018-01-15 16:00:20 +00:00
|
|
|
|
2019-08-10 02:32:48 +00:00
|
|
|
void initCVars(hecl::CVarManager* mgr) override;
|
2021-02-28 04:45:23 +00:00
|
|
|
|
2019-09-29 12:44:37 +00:00
|
|
|
private:
|
2020-11-01 23:04:13 +00:00
|
|
|
void _tweakListener(hecl::CVar* cv);
|
2015-11-02 18:45:39 +00:00
|
|
|
};
|
2018-12-08 05:30:43 +00:00
|
|
|
} // namespace DataSpec::DNAMP1
|