mirror of
				https://github.com/OpenMW/openmw.git
				synced 2025-10-30 02:56:44 +00:00 
			
		
		
		
	Merge remote-tracking branch 'glorf/fallbacks-next' into next
This commit is contained in:
		
						commit
						19c3b5516d
					
				
					 7 changed files with 62 additions and 88 deletions
				
			
		|  | @ -46,6 +46,7 @@ namespace MWRender | ||||||
| 
 | 
 | ||||||
| namespace MWWorld | namespace MWWorld | ||||||
| { | { | ||||||
|  |     class Fallback; | ||||||
|     class CellStore; |     class CellStore; | ||||||
|     class Player; |     class Player; | ||||||
|     class LocalScripts; |     class LocalScripts; | ||||||
|  | @ -103,7 +104,7 @@ namespace MWBase | ||||||
| 
 | 
 | ||||||
|             virtual void getTriangleBatchCount(unsigned int &triangles, unsigned int &batches) = 0; |             virtual void getTriangleBatchCount(unsigned int &triangles, unsigned int &batches) = 0; | ||||||
| 
 | 
 | ||||||
|             virtual std::string getFallback (const std::string& key) const = 0; |             virtual MWWorld::Fallback *getFallback () = 0; | ||||||
| 
 | 
 | ||||||
|             virtual MWWorld::Player& getPlayer() = 0; |             virtual MWWorld::Player& getPlayer() = 0; | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -12,6 +12,7 @@ | ||||||
| #include "../mwbase/environment.hpp" | #include "../mwbase/environment.hpp" | ||||||
| #include "../mwbase/soundmanager.hpp" | #include "../mwbase/soundmanager.hpp" | ||||||
| #include "../mwbase/mechanicsmanager.hpp" | #include "../mwbase/mechanicsmanager.hpp" | ||||||
|  | #include "../mwworld/fallback.hpp" | ||||||
| 
 | 
 | ||||||
| namespace | namespace | ||||||
| { | { | ||||||
|  | @ -23,14 +24,13 @@ namespace | ||||||
|     }; |     }; | ||||||
| 
 | 
 | ||||||
|     const ESM::Class::Specialization mSpecializations[3]={ESM::Class::Combat, ESM::Class::Magic, ESM::Class::Stealth}; // The specialization for each answer
 |     const ESM::Class::Specialization mSpecializations[3]={ESM::Class::Combat, ESM::Class::Magic, ESM::Class::Stealth}; // The specialization for each answer
 | ||||||
| 
 |  | ||||||
|     Step sGenerateClassSteps(int number) { |     Step sGenerateClassSteps(int number) { | ||||||
|         MWBase::World *world = MWBase::Environment::get().getWorld(); |  | ||||||
|         number++; |         number++; | ||||||
|         Step step = {world->getFallback("Question_"+boost::lexical_cast<std::string>(number)+"_Question"), |         MWWorld::Fallback* fallback=MWBase::Environment::get().getWorld()->getFallback(); | ||||||
|         {world->getFallback("Question_"+boost::lexical_cast<std::string>(number)+"_AnswerOne"), |         Step step = {fallback->getFallbackString("Question_"+boost::lexical_cast<std::string>(number)+"_Question"), | ||||||
|         world->getFallback("Question_"+boost::lexical_cast<std::string>(number)+"_AnswerTwo"), |         {fallback->getFallbackString("Question_"+boost::lexical_cast<std::string>(number)+"_AnswerOne"), | ||||||
|         world->getFallback("Question_"+boost::lexical_cast<std::string>(number)+"_AnswerThree")}, |         fallback->getFallbackString("Question_"+boost::lexical_cast<std::string>(number)+"_AnswerTwo"), | ||||||
|  |         fallback->getFallbackString("Question_"+boost::lexical_cast<std::string>(number)+"_AnswerThree")}, | ||||||
|         "vo\\misc\\chargen qa"+boost::lexical_cast<std::string>(number)+".wav" |         "vo\\misc\\chargen qa"+boost::lexical_cast<std::string>(number)+".wav" | ||||||
|         }; |         }; | ||||||
|         return step; |         return step; | ||||||
|  |  | ||||||
|  | @ -9,6 +9,7 @@ | ||||||
| #include "../mwworld/player.hpp" | #include "../mwworld/player.hpp" | ||||||
| #include "../mwworld/class.hpp" | #include "../mwworld/class.hpp" | ||||||
| #include "../mwworld/esmstore.hpp" | #include "../mwworld/esmstore.hpp" | ||||||
|  | #include "../mwworld/fallback.hpp" | ||||||
| 
 | 
 | ||||||
| #include "../mwmechanics/creaturestats.hpp" | #include "../mwmechanics/creaturestats.hpp" | ||||||
| #include "../mwmechanics/npcstats.hpp" | #include "../mwmechanics/npcstats.hpp" | ||||||
|  | @ -138,9 +139,9 @@ namespace MWGui | ||||||
| 
 | 
 | ||||||
|         std::string levelupdescription; |         std::string levelupdescription; | ||||||
|         if(level>20) |         if(level>20) | ||||||
|             levelupdescription=world->getFallback("Level_Up_Default"); |             levelupdescription=world->getFallback()->getFallbackString("Level_Up_Default"); | ||||||
|         else |         else | ||||||
|             levelupdescription=world->getFallback("Level_Up_Level"+boost::lexical_cast<std::string>(level)); |             levelupdescription=world->getFallback()->getFallbackString("Level_Up_Level"+boost::lexical_cast<std::string>(level)); | ||||||
| 
 | 
 | ||||||
|         mLevelDescription->setCaption (levelupdescription); |         mLevelDescription->setCaption (levelupdescription); | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -21,6 +21,8 @@ | ||||||
| #include "../mwbase/environment.hpp" | #include "../mwbase/environment.hpp" | ||||||
| #include "../mwbase/world.hpp" | #include "../mwbase/world.hpp" | ||||||
| 
 | 
 | ||||||
|  | #include "../mwworld/fallback.hpp" | ||||||
|  | 
 | ||||||
| #include "renderconst.hpp" | #include "renderconst.hpp" | ||||||
| #include "renderingmanager.hpp" | #include "renderingmanager.hpp" | ||||||
| 
 | 
 | ||||||
|  | @ -266,11 +268,12 @@ void SkyManager::create() | ||||||
|     mLightning->setVisible (false); |     mLightning->setVisible (false); | ||||||
|     mLightning->setDiffuseColour (ColourValue(3,3,3)); |     mLightning->setDiffuseColour (ColourValue(3,3,3)); | ||||||
| 
 | 
 | ||||||
|     mSecunda = new Moon("secunda_texture", 0.5, Vector3(-0.4, 0.4, 0.5), mRootNode, "openmw_moon"); |     MWWorld::Fallback* fallback=MWBase::Environment::get().getWorld()->getFallback(); | ||||||
|  |     mSecunda = new Moon("secunda_texture", /*0.5*/fallback->getFallbackFloat("Moons_Secunda_Size")/100, Vector3(-0.4, 0.4, 0.5), mRootNode, "openmw_moon"); | ||||||
|     mSecunda->setType(Moon::Type_Secunda); |     mSecunda->setType(Moon::Type_Secunda); | ||||||
|     mSecunda->setRenderQueue(RQG_SkiesEarly+4); |     mSecunda->setRenderQueue(RQG_SkiesEarly+4); | ||||||
| 
 | 
 | ||||||
|     mMasser = new Moon("masser_texture", 0.75, Vector3(-0.4, 0.4, 0.5), mRootNode, "openmw_moon"); |     mMasser = new Moon("masser_texture", /*0.75*/fallback->getFallbackFloat("Moons_Masser_Size")/100, Vector3(-0.4, 0.4, 0.5), mRootNode, "openmw_moon"); | ||||||
|     mMasser->setRenderQueue(RQG_SkiesEarly+3); |     mMasser->setRenderQueue(RQG_SkiesEarly+3); | ||||||
|     mMasser->setType(Moon::Type_Masser); |     mMasser->setType(Moon::Type_Masser); | ||||||
| 
 | 
 | ||||||
|  | @ -368,7 +371,7 @@ int SkyManager::getSecundaPhase() const | ||||||
| void SkyManager::update(float duration) | void SkyManager::update(float duration) | ||||||
| { | { | ||||||
|     if (!mEnabled) return; |     if (!mEnabled) return; | ||||||
| 
 |     MWWorld::Fallback* fallback=MWBase::Environment::get().getWorld()->getFallback(); | ||||||
|     mCamera->getParentSceneNode ()->needUpdate (); |     mCamera->getParentSceneNode ()->needUpdate (); | ||||||
|     mRootNode->setPosition(mCamera->getDerivedPosition()); |     mRootNode->setPosition(mCamera->getDerivedPosition()); | ||||||
| 
 | 
 | ||||||
|  | @ -381,7 +384,7 @@ void SkyManager::update(float duration) | ||||||
|     mMasser->setPhase( static_cast<Moon::Phase>( (int) ((mDay % 32)/4.f)) ); |     mMasser->setPhase( static_cast<Moon::Phase>( (int) ((mDay % 32)/4.f)) ); | ||||||
|     mSecunda->setPhase ( static_cast<Moon::Phase>( (int) ((mDay % 32)/4.f)) ); |     mSecunda->setPhase ( static_cast<Moon::Phase>( (int) ((mDay % 32)/4.f)) ); | ||||||
| 
 | 
 | ||||||
|     mSecunda->setColour ( mMoonRed ? ColourValue(1.0, 0.0784, 0.0784) : ColourValue(1,1,1,1)); |     mSecunda->setColour ( mMoonRed ? fallback->getFallbackColour("Moons_Script_Color") : ColourValue(1,1,1,1)); | ||||||
|     mMasser->setColour (ColourValue(1,1,1,1)); |     mMasser->setColour (ColourValue(1,1,1,1)); | ||||||
| 
 | 
 | ||||||
|     if (mSunEnabled) |     if (mSunEnabled) | ||||||
|  |  | ||||||
|  | @ -107,64 +107,14 @@ WeatherManager::WeatherManager(MWRender::RenderingManager* rendering,MWWorld::Fa | ||||||
|     blight.mAmbientLoopSoundID = "blight"; |     blight.mAmbientLoopSoundID = "blight"; | ||||||
|     setFallbackWeather(blight,"blight"); |     setFallbackWeather(blight,"blight"); | ||||||
| 
 | 
 | ||||||
|     /*
 |  | ||||||
|     Weather snow; |     Weather snow; | ||||||
|     snow.mCloudTexture = "tx_bm_sky_snow.dds"; |     snow.mCloudTexture = "tx_bm_sky_snow.dds"; | ||||||
|     snow.mCloudsMaximumPercent = 1.0; |     setFallbackWeather(snow, "snow"); | ||||||
|     snow.mTransitionDelta = 0.014; |  | ||||||
|     snow.mSkySunriseColor = clr(196, 91, 91); |  | ||||||
|     snow.mSkyDayColor = clr(153, 158, 166); |  | ||||||
|     snow.mSkySunsetColor = clr(96, 115, 134); |  | ||||||
|     snow.mSkyNightColor = clr(31, 35, 39); |  | ||||||
|     snow.mFogSunriseColor = clr(106, 91, 91); |  | ||||||
|     snow.mFogDayColor = clr(153, 158, 166); |  | ||||||
|     snow.mFogSunsetColor = clr(96, 115, 134); |  | ||||||
|     snow.mFogNightColor = clr(31, 35, 39); |  | ||||||
|     snow.mAmbientSunriseColor = clr(92, 84, 84); |  | ||||||
|     snow.mAmbientDayColor = clr(93, 96, 105); |  | ||||||
|     snow.mAmbientSunsetColor = clr(70, 79, 87); |  | ||||||
|     snow.mAmbientNightColor = clr(49, 58, 68); |  | ||||||
|     snow.mSunSunriseColor = clr(141, 109, 109); |  | ||||||
|     snow.mSunDayColor = clr(163, 169, 183); |  | ||||||
|     snow.mSunSunsetColor = clr(101, 121, 141); |  | ||||||
|     snow.mSunNightColor = clr(55, 66, 77); |  | ||||||
|     snow.mSunDiscSunsetColor = clr(128, 128, 128); |  | ||||||
|     snow.mLandFogDayDepth = 1.0; |  | ||||||
|     snow.mLandFogNightDepth = 1.2; |  | ||||||
|     snow.mWindSpeed = 0; |  | ||||||
|     snow.mCloudSpeed = 1.5; |  | ||||||
|     snow.mGlareView = 0; |  | ||||||
|     mWeatherSettings["snow"] = snow; |  | ||||||
| 
 | 
 | ||||||
|     Weather blizzard; |     Weather blizzard; | ||||||
|     blizzard.mCloudTexture = "tx_bm_sky_blizzard.dds"; |     blizzard.mCloudTexture = "tx_bm_sky_blizzard.dds"; | ||||||
|     blizzard.mCloudsMaximumPercent = 1.0; |  | ||||||
|     blizzard.mTransitionDelta = 0.030; |  | ||||||
|     blizzard.mSkySunriseColor = clr(91, 99, 106); |  | ||||||
|     blizzard.mSkyDayColor = clr(121, 133, 145); |  | ||||||
|     blizzard.mSkySunsetColor = clr(108, 115, 121); |  | ||||||
|     blizzard.mSkyNightColor = clr(27, 29, 31); |  | ||||||
|     blizzard.mFogSunriseColor = clr(91, 99, 106); |  | ||||||
|     blizzard.mFogDayColor = clr(121, 133, 145); |  | ||||||
|     blizzard.mFogSunsetColor = clr(108, 115, 121); |  | ||||||
|     blizzard.mFogNightColor = clr(21, 24, 28); |  | ||||||
|     blizzard.mAmbientSunriseColor = clr(84, 88, 92); |  | ||||||
|     blizzard.mAmbientDayColor = clr(93, 96, 105); |  | ||||||
|     blizzard.mAmbientSunsetColor = clr(83, 77, 75); |  | ||||||
|     blizzard.mAmbientNightColor = clr(53, 62, 70); |  | ||||||
|     blizzard.mSunSunriseColor = clr(114, 128, 146); |  | ||||||
|     blizzard.mSunDayColor = clr(163, 169, 183); |  | ||||||
|     blizzard.mSunSunsetColor = clr(106, 114, 136); |  | ||||||
|     blizzard.mSunNightColor = clr(57, 66, 74); |  | ||||||
|     blizzard.mSunDiscSunsetColor = clr(128, 128, 128); |  | ||||||
|     blizzard.mLandFogDayDepth = 2.8; |  | ||||||
|     blizzard.mLandFogNightDepth = 3.0; |  | ||||||
|     blizzard.mWindSpeed = 0.9; |  | ||||||
|     blizzard.mCloudSpeed = 7.5; |  | ||||||
|     blizzard.mGlareView = 0; |  | ||||||
|     blizzard.mAmbientLoopSoundID = "BM Blizzard"; |     blizzard.mAmbientLoopSoundID = "BM Blizzard"; | ||||||
|     mWeatherSettings["blizzard"] = blizzard; |     setFallbackWeather(blizzard,"blizzard"); | ||||||
|     */ |  | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void WeatherManager::setWeather(const String& weather, bool instant) | void WeatherManager::setWeather(const String& weather, bool instant) | ||||||
|  | @ -463,34 +413,53 @@ void WeatherManager::update(float duration) | ||||||
|             mRendering->getSkyManager()->masserEnable(); |             mRendering->getSkyManager()->masserEnable(); | ||||||
|             mRendering->getSkyManager()->secundaEnable(); |             mRendering->getSkyManager()->secundaEnable(); | ||||||
| 
 | 
 | ||||||
|             float hour_fade; |             float secunda_hour_fade; | ||||||
|             if (mHour >= 7.f && mHour <= 14.f) |             float secunda_fadeout_start=mFallback->getFallbackFloat("Moons_Secunda_Fade_Out_Start"); | ||||||
|                 hour_fade = 1-(mHour-7)/3.f; |             float secunda_fadein_start=mFallback->getFallbackFloat("Moons_Secunda_Fade_In_Start"); | ||||||
|             else if (mHour >= 14 && mHour <= 15.f) |             float secunda_fadein_finish=mFallback->getFallbackFloat("Moons_Secunda_Fade_In_Finish"); | ||||||
|                 hour_fade = mHour-14; | 
 | ||||||
|             else |             if (mHour >= secunda_fadeout_start && mHour <= secunda_fadein_start) | ||||||
|                 hour_fade = 1; |                 secunda_hour_fade = 1-(mHour-secunda_fadeout_start)/3.f; | ||||||
|  |             else if (mHour >= secunda_fadein_start && mHour <= secunda_fadein_finish) | ||||||
|  |                 secunda_hour_fade = mHour-secunda_fadein_start; | ||||||
|  |             else | ||||||
|  |                 secunda_hour_fade = 1; | ||||||
|  | 
 | ||||||
|  |             float masser_hour_fade; | ||||||
|  |             float masser_fadeout_start=mFallback->getFallbackFloat("Moons_Masser_Fade_Out_Start"); | ||||||
|  |             float masser_fadein_start=mFallback->getFallbackFloat("Moons_Masser_Fade_In_Start"); | ||||||
|  |             float masser_fadein_finish=mFallback->getFallbackFloat("Moons_Masser_Fade_In_Finish"); | ||||||
|  |             if (mHour >= masser_fadeout_start && mHour <= masser_fadein_start) | ||||||
|  |                 masser_hour_fade = 1-(mHour-masser_fadeout_start)/3.f; | ||||||
|  |             else if (mHour >= masser_fadein_start && mHour <= masser_fadein_finish) | ||||||
|  |                 masser_hour_fade = mHour-masser_fadein_start; | ||||||
|  |             else | ||||||
|  |                 masser_hour_fade = 1; | ||||||
| 
 | 
 | ||||||
|             float secunda_angle_fade; |  | ||||||
|             float masser_angle_fade; |  | ||||||
|             float angle = moonHeight*90.f; |             float angle = moonHeight*90.f; | ||||||
| 
 | 
 | ||||||
|             if (angle >= 30 && angle <= 50) |             float secunda_angle_fade; | ||||||
|                 secunda_angle_fade = (angle-30)/20.f; |             float secunda_end_angle=mFallback->getFallbackFloat("Moons_Secunda_Fade_End_Angle"); | ||||||
|             else if (angle <30) |             float secunda_start_angle=mFallback->getFallbackFloat("Moons_Secunda_Fade_Start_Angle"); | ||||||
|  |             if (angle >= secunda_end_angle && angle <= secunda_start_angle) | ||||||
|  |                 secunda_angle_fade = (angle-secunda_end_angle)/20.f; | ||||||
|  |             else if (angle < secunda_end_angle) | ||||||
|                 secunda_angle_fade = 0.f; |                 secunda_angle_fade = 0.f; | ||||||
|             else |             else | ||||||
|                 secunda_angle_fade = 1.f; |                 secunda_angle_fade = 1.f; | ||||||
| 
 | 
 | ||||||
|             if (angle >= 40 && angle <= 50) |             float masser_angle_fade; | ||||||
|                 masser_angle_fade = (angle-40)/10.f; |             float masser_end_angle=mFallback->getFallbackFloat("Moons_Masser_Fade_End_Angle"); | ||||||
|             else if (angle <40) |             float masser_start_angle=mFallback->getFallbackFloat("Moons_Masser_Fade_Start_Angle"); | ||||||
|  |             if (angle >= masser_end_angle && angle <= masser_start_angle) | ||||||
|  |                 masser_angle_fade = (angle-masser_end_angle)/10.f; | ||||||
|  |             else if (angle < masser_end_angle) | ||||||
|                 masser_angle_fade = 0.f; |                 masser_angle_fade = 0.f; | ||||||
|             else |             else | ||||||
|                 masser_angle_fade = 1.f; |                 masser_angle_fade = 1.f; | ||||||
| 
 | 
 | ||||||
|             masser_angle_fade *= hour_fade; |             masser_angle_fade *= masser_hour_fade; | ||||||
|             secunda_angle_fade *= hour_fade; |             secunda_angle_fade *= secunda_hour_fade; | ||||||
| 
 | 
 | ||||||
|             mRendering->getSkyManager()->setMasserFade(masser_angle_fade); |             mRendering->getSkyManager()->setMasserFade(masser_angle_fade); | ||||||
|             mRendering->getSkyManager()->setSecundaFade(secunda_angle_fade); |             mRendering->getSkyManager()->setSecundaFade(secunda_angle_fade); | ||||||
|  |  | ||||||
|  | @ -154,11 +154,6 @@ namespace MWWorld | ||||||
|             mRendering->skyDisable(); |             mRendering->skyDisable(); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     std::string World::getFallback (const std::string& key) const |  | ||||||
|     { |  | ||||||
|         return mFallback.getFallbackString(key); |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     World::World (OEngine::Render::OgreRenderer& renderer, |     World::World (OEngine::Render::OgreRenderer& renderer, | ||||||
|         const Files::Collections& fileCollections, |         const Files::Collections& fileCollections, | ||||||
|         const std::vector<std::string>& master, const std::vector<std::string>& plugins, |         const std::vector<std::string>& master, const std::vector<std::string>& plugins, | ||||||
|  | @ -267,6 +262,11 @@ namespace MWWorld | ||||||
|         return 0; |         return 0; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  |     MWWorld::Fallback *World::getFallback () | ||||||
|  |     { | ||||||
|  |         return &mFallback; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|     Ptr::CellStore *World::getExterior (int x, int y) |     Ptr::CellStore *World::getExterior (int x, int y) | ||||||
|     { |     { | ||||||
|         return mCells.getExterior (x, y); |         return mCells.getExterior (x, y); | ||||||
|  |  | ||||||
|  | @ -133,7 +133,7 @@ namespace MWWorld | ||||||
| 
 | 
 | ||||||
|             virtual void getTriangleBatchCount(unsigned int &triangles, unsigned int &batches); |             virtual void getTriangleBatchCount(unsigned int &triangles, unsigned int &batches); | ||||||
| 
 | 
 | ||||||
|             virtual std::string getFallback (const std::string& key) const; |             virtual Fallback *getFallback (); | ||||||
| 
 | 
 | ||||||
|             virtual Player& getPlayer(); |             virtual Player& getPlayer(); | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue