mirror of
https://github.com/TES3MP/openmw-tes3mp.git
synced 2025-01-29 22:45:34 +00:00
Implement fStromWindSpeed (Fixes #2764)
This commit is contained in:
parent
87a089d6b6
commit
f12619b86a
3 changed files with 12 additions and 7 deletions
|
@ -66,6 +66,10 @@ void WeatherManager::setFallbackWeather(Weather& weather,const std::string& name
|
|||
weather.mGlareView = mFallback->getFallbackFloat("Weather_"+upper+"_Glare_View");
|
||||
weather.mCloudTexture = mFallback->getFallbackString("Weather_"+upper+"_Cloud_Texture");
|
||||
|
||||
static const float fStromWindSpeed = mStore->get<ESM::GameSetting>().find("fStromWindSpeed")->getFloat();
|
||||
|
||||
weather.mIsStorm = weather.mWindSpeed > fStromWindSpeed;
|
||||
|
||||
bool usesPrecip = mFallback->getFallbackBool("Weather_"+upper+"_Using_Precip");
|
||||
if (usesPrecip)
|
||||
weather.mRainEffect = "meshes\\raindrop.nif";
|
||||
|
@ -79,7 +83,6 @@ Rain Height Max=700 ?
|
|||
Rain Threshold=0.6 ?
|
||||
Max Raindrops=650 ?
|
||||
*/
|
||||
weather.mIsStorm = (name == "ashstorm" || name == "blight");
|
||||
|
||||
mWeatherSettings[name] = weather;
|
||||
}
|
||||
|
@ -112,8 +115,8 @@ float WeatherManager::calculateAngleFade (const std::string& moonName, float ang
|
|||
return 1.f;
|
||||
}
|
||||
|
||||
WeatherManager::WeatherManager(MWRender::RenderingManager* rendering,MWWorld::Fallback* fallback) :
|
||||
mHour(14), mWindSpeed(0.f), mIsStorm(false), mStormDirection(0,1,0), mFallback(fallback),
|
||||
WeatherManager::WeatherManager(MWRender::RenderingManager* rendering, MWWorld::Fallback* fallback, MWWorld::ESMStore* store) :
|
||||
mHour(14), mWindSpeed(0.f), mIsStorm(false), mStormDirection(0,1,0), mFallback(fallback), mStore(store),
|
||||
mRendering(rendering), mCurrentWeather("clear"), mNextWeather(""), mFirstUpdate(true),
|
||||
mRemainingTransitionTime(0), mThunderFlash(0), mThunderChance(0), mThunderChanceNeeded(50),
|
||||
mTimePassed(0), mWeatherUpdateTime(0), mThunderSoundDelay(0)
|
||||
|
|
|
@ -156,7 +156,8 @@ namespace MWWorld
|
|||
class WeatherManager
|
||||
{
|
||||
public:
|
||||
WeatherManager(MWRender::RenderingManager*,MWWorld::Fallback* fallback);
|
||||
// Have to pass fallback and Store, can't use singleton since World isn't fully constructed yet at the time
|
||||
WeatherManager(MWRender::RenderingManager*, MWWorld::Fallback* fallback, MWWorld::ESMStore* store);
|
||||
~WeatherManager();
|
||||
|
||||
/**
|
||||
|
@ -210,6 +211,7 @@ namespace MWWorld
|
|||
std::string mPlayingSoundID;
|
||||
|
||||
MWWorld::Fallback* mFallback;
|
||||
MWWorld::ESMStore* mStore;
|
||||
void setFallbackWeather(Weather& weather,const std::string& name);
|
||||
MWRender::RenderingManager* mRendering;
|
||||
|
||||
|
|
|
@ -163,8 +163,6 @@ namespace MWWorld
|
|||
mProjectileManager.reset(new ProjectileManager(rootNode, resourceSystem, mPhysics));
|
||||
mRendering = new MWRender::RenderingManager(viewer, rootNode, resourceSystem, &mFallback);
|
||||
|
||||
mWeatherManager = new MWWorld::WeatherManager(mRendering,&mFallback);
|
||||
|
||||
mEsm.resize(contentFiles.size());
|
||||
Loading::Listener* listener = MWBase::Environment::get().getWindowManager()->getLoadingScreen();
|
||||
listener->loadingOn();
|
||||
|
@ -193,6 +191,8 @@ namespace MWWorld
|
|||
|
||||
mGlobalVariables.fill (mStore);
|
||||
|
||||
mWeatherManager = new MWWorld::WeatherManager(mRendering,&mFallback,&mStore);
|
||||
|
||||
mWorldScene = new Scene(*mRendering, mPhysics);
|
||||
}
|
||||
|
||||
|
@ -265,7 +265,7 @@ namespace MWWorld
|
|||
// we don't want old weather to persist on a new game
|
||||
delete mWeatherManager;
|
||||
mWeatherManager = 0;
|
||||
mWeatherManager = new MWWorld::WeatherManager(mRendering,&mFallback);
|
||||
mWeatherManager = new MWWorld::WeatherManager(mRendering,&mFallback,&mStore);
|
||||
|
||||
if (!mStartupScript.empty())
|
||||
MWBase::Environment::get().getWindowManager()->executeInConsole(mStartupScript);
|
||||
|
|
Loading…
Reference in a new issue