diff --git a/extern/CommonLibSSE-NG b/extern/CommonLibSSE-NG index 5ec15342d1..530bbc73e5 160000 --- a/extern/CommonLibSSE-NG +++ b/extern/CommonLibSSE-NG @@ -1 +1 @@ -Subproject commit 5ec15342d1cb92914fe1b9300944bb371e214697 +Subproject commit 530bbc73e514251ce96be899375d59f6ccd9fe9f diff --git a/src/WeatherEditor/Weather/PrecipitationWidget.cpp b/src/WeatherEditor/Weather/PrecipitationWidget.cpp index 35042d8af2..2bed7a1c12 100644 --- a/src/WeatherEditor/Weather/PrecipitationWidget.cpp +++ b/src/WeatherEditor/Weather/PrecipitationWidget.cpp @@ -4,6 +4,7 @@ #include "Globals.h" #include "RE/B/BSShaderManager.h" #include "RE/N/NiSourceTexture.h" +#include "Utils/Game.h" void PrecipitationWidget::DrawWidget() { @@ -166,8 +167,6 @@ void PrecipitationWidget::LoadFromGameSettings() if (!precipitation) return; - auto& runtime = precipitation->GetRuntimeData(); - settings.gravityVelocity = precipitation->GetSettingValue(RE::BGSShaderParticleGeometryData::DataID::kGravityVelocity).f; settings.rotationVelocity = precipitation->GetSettingValue(RE::BGSShaderParticleGeometryData::DataID::kRotationVelocity).f; settings.particleSizeX = precipitation->GetSettingValue(RE::BGSShaderParticleGeometryData::DataID::kParticleSizeX).f; @@ -180,7 +179,8 @@ void PrecipitationWidget::LoadFromGameSettings() settings.particleType = precipitation->GetSettingValue(RE::BGSShaderParticleGeometryData::DataID::kParticleType).i; settings.boxSize = precipitation->GetSettingValue(RE::BGSShaderParticleGeometryData::DataID::kBoxSize).f; settings.particleDensity = precipitation->GetSettingValue(RE::BGSShaderParticleGeometryData::DataID::kParticleDensity).f; - settings.particleTexture = runtime.particleTexture.textureName.c_str(); + GET_INSTANCE_MEMBER(particleTexture, precipitation) + settings.particleTexture = particleTexture.textureName.c_str(); } void PrecipitationWidget::SaveSettings() @@ -206,21 +206,22 @@ void PrecipitationWidget::ApplyChanges() if (!precipitation) return; - auto& runtime = precipitation->GetRuntimeData(); - - runtime.data[static_cast(RE::BGSShaderParticleGeometryData::DataID::kGravityVelocity)].f = settings.gravityVelocity; - runtime.data[static_cast(RE::BGSShaderParticleGeometryData::DataID::kRotationVelocity)].f = settings.rotationVelocity; - runtime.data[static_cast(RE::BGSShaderParticleGeometryData::DataID::kParticleSizeX)].f = settings.particleSizeX; - runtime.data[static_cast(RE::BGSShaderParticleGeometryData::DataID::kParticleSizeY)].f = settings.particleSizeY; - runtime.data[static_cast(RE::BGSShaderParticleGeometryData::DataID::kCenterOffsetMin)].f = settings.centerOffsetMin; - runtime.data[static_cast(RE::BGSShaderParticleGeometryData::DataID::kCenterOffsetMax)].f = settings.centerOffsetMax; - runtime.data[static_cast(RE::BGSShaderParticleGeometryData::DataID::kStartRotationRange)].f = settings.startRotationRange; - runtime.data[static_cast(RE::BGSShaderParticleGeometryData::DataID::kNumSubtexturesX)].i = settings.numSubtexturesX; - runtime.data[static_cast(RE::BGSShaderParticleGeometryData::DataID::kNumSubtexturesY)].i = settings.numSubtexturesY; - runtime.data[static_cast(RE::BGSShaderParticleGeometryData::DataID::kParticleType)].i = settings.particleType; - runtime.data[static_cast(RE::BGSShaderParticleGeometryData::DataID::kBoxSize)].f = settings.boxSize; - runtime.data[static_cast(RE::BGSShaderParticleGeometryData::DataID::kParticleDensity)].f = settings.particleDensity; - runtime.particleTexture.textureName = settings.particleTexture.c_str(); + using DataID = RE::BGSShaderParticleGeometryData::DataID; + + precipitation->GetSettingRef(DataID::kGravityVelocity).f = settings.gravityVelocity; + precipitation->GetSettingRef(DataID::kRotationVelocity).f = settings.rotationVelocity; + precipitation->GetSettingRef(DataID::kParticleSizeX).f = settings.particleSizeX; + precipitation->GetSettingRef(DataID::kParticleSizeY).f = settings.particleSizeY; + precipitation->GetSettingRef(DataID::kCenterOffsetMin).f = settings.centerOffsetMin; + precipitation->GetSettingRef(DataID::kCenterOffsetMax).f = settings.centerOffsetMax; + precipitation->GetSettingRef(DataID::kStartRotationRange).f = settings.startRotationRange; + precipitation->GetSettingRef(DataID::kNumSubtexturesX).i = settings.numSubtexturesX; + precipitation->GetSettingRef(DataID::kNumSubtexturesY).i = settings.numSubtexturesY; + precipitation->GetSettingRef(DataID::kParticleType).i = settings.particleType; + precipitation->GetSettingRef(DataID::kBoxSize).f = settings.boxSize; + precipitation->GetSettingRef(DataID::kParticleDensity).f = settings.particleDensity; + GET_INSTANCE_MEMBER(particleTexture, precipitation) + particleTexture.textureName = settings.particleTexture.c_str(); ApplyLiveParticleTexture(settings.particleTexture); Widget::ForceCurrentWeatherReinit(); }