diff --git a/apps/openmw/mwworld/weather.cpp b/apps/openmw/mwworld/weather.cpp index 46991c440..7111edd7d 100644 --- a/apps/openmw/mwworld/weather.cpp +++ b/apps/openmw/mwworld/weather.cpp @@ -832,17 +832,14 @@ bool WeatherManager::readRecord(ESM::ESMReader& reader, uint32_t type) mQueuedWeather = state.mQueuedWeather; mRegions.clear(); - std::map::iterator it = state.mRegions.begin(); - if(it == state.mRegions.end()) - { - // When loading an imported save, the region modifiers aren't currently being set, so just reset them. - importRegions(); - } - else + importRegions(); + + for(std::map::iterator it = state.mRegions.begin(); it != state.mRegions.end(); ++it) { - for(; it != state.mRegions.end(); ++it) + std::map::iterator found = mRegions.find(it->first); + if (found != mRegions.end()) { - mRegions.insert(std::make_pair(it->first, RegionWeather(it->second))); + found->second = RegionWeather(it->second); } } }