mirror of
https://github.com/OpenMW/openmw.git
synced 2025-03-03 02:09:41 +00:00
Show wallpaper when loading a savegame
This commit is contained in:
parent
d2ad2e0f31
commit
577ed3943b
4 changed files with 12 additions and 21 deletions
|
@ -11,6 +11,7 @@
|
|||
|
||||
#include "../mwbase/environment.hpp"
|
||||
#include "../mwbase/world.hpp"
|
||||
#include "../mwbase/statemanager.hpp"
|
||||
|
||||
#include "../mwbase/windowmanager.hpp"
|
||||
#include "../mwbase/inputmanager.hpp"
|
||||
|
@ -26,7 +27,6 @@ namespace MWGui
|
|||
, WindowBase("openmw_loading_screen.layout")
|
||||
, mLastRenderTime(0.f)
|
||||
, mLastWallpaperChangeTime(0.f)
|
||||
, mFirstLoad(true)
|
||||
, mProgress(0)
|
||||
, mVSyncWasEnabled(false)
|
||||
{
|
||||
|
@ -77,7 +77,11 @@ namespace MWGui
|
|||
mWindow->setVSyncEnabled(false);
|
||||
#endif
|
||||
|
||||
if (!mFirstLoad)
|
||||
bool showWallpaper = (MWBase::Environment::get().getStateManager()->getState()
|
||||
== MWBase::StateManager::State_NoGame);
|
||||
|
||||
|
||||
if (!showWallpaper)
|
||||
{
|
||||
mBackgroundImage->setImageTexture("");
|
||||
int width = mWindow->getWidth();
|
||||
|
@ -103,12 +107,12 @@ namespace MWGui
|
|||
|
||||
setVisible(true);
|
||||
|
||||
if (mFirstLoad)
|
||||
if (showWallpaper)
|
||||
{
|
||||
changeWallpaper();
|
||||
}
|
||||
|
||||
MWBase::Environment::get().getWindowManager()->pushGuiMode(mFirstLoad ? GM_LoadingWallpaper : GM_Loading);
|
||||
MWBase::Environment::get().getWindowManager()->pushGuiMode(showWallpaper ? GM_LoadingWallpaper : GM_Loading);
|
||||
}
|
||||
|
||||
void LoadingScreen::loadingOff()
|
||||
|
@ -188,11 +192,6 @@ namespace MWGui
|
|||
draw();
|
||||
}
|
||||
|
||||
void LoadingScreen::removeWallpaper()
|
||||
{
|
||||
mFirstLoad = false;
|
||||
}
|
||||
|
||||
void LoadingScreen::draw()
|
||||
{
|
||||
const float loadingScreenFps = 20.f;
|
||||
|
@ -201,7 +200,10 @@ namespace MWGui
|
|||
{
|
||||
mLastRenderTime = mTimer.getMilliseconds ();
|
||||
|
||||
if (mFirstLoad && mTimer.getMilliseconds () > mLastWallpaperChangeTime + 5000*1)
|
||||
bool showWallpaper = (MWBase::Environment::get().getStateManager()->getState()
|
||||
== MWBase::StateManager::State_NoGame);
|
||||
|
||||
if (showWallpaper && mTimer.getMilliseconds () > mLastWallpaperChangeTime + 5000*1)
|
||||
{
|
||||
mLastWallpaperChangeTime = mTimer.getMilliseconds ();
|
||||
changeWallpaper();
|
||||
|
|
|
@ -29,8 +29,6 @@ namespace MWGui
|
|||
|
||||
virtual void setVisible(bool visible);
|
||||
|
||||
virtual void removeWallpaper();
|
||||
|
||||
LoadingScreen(Ogre::SceneManager* sceneMgr, Ogre::RenderWindow* rw);
|
||||
virtual ~LoadingScreen();
|
||||
|
||||
|
@ -42,8 +40,6 @@ namespace MWGui
|
|||
void updateWindow(Ogre::RenderWindow* rw) { mWindow = rw; }
|
||||
|
||||
private:
|
||||
bool mFirstLoad;
|
||||
|
||||
Ogre::SceneManager* mSceneMgr;
|
||||
Ogre::RenderWindow* mWindow;
|
||||
|
||||
|
|
|
@ -347,8 +347,6 @@ namespace MWWorld
|
|||
MWBase::Environment::get().getWorld()->adjustSky();
|
||||
|
||||
mCellChanged = true;
|
||||
|
||||
loadingListener->removeWallpaper();
|
||||
}
|
||||
|
||||
//We need the ogre renderer and a scene node.
|
||||
|
@ -449,8 +447,6 @@ namespace MWWorld
|
|||
|
||||
mCellChanged = true;
|
||||
MWBase::Environment::get().getWorld ()->getFader ()->fadeIn(0.5);
|
||||
|
||||
loadingListener->removeWallpaper();
|
||||
}
|
||||
|
||||
void Scene::changeToExteriorCell (const ESM::Position& position)
|
||||
|
|
|
@ -18,9 +18,6 @@ namespace Loading
|
|||
virtual void setProgressRange (size_t range) = 0;
|
||||
virtual void setProgress (size_t value) = 0;
|
||||
virtual void increaseProgress (size_t increase = 1) = 0;
|
||||
|
||||
/// Indicate the scene is now ready to be shown
|
||||
virtual void removeWallpaper() = 0;
|
||||
};
|
||||
|
||||
// Used for stopping a loading sequence when the object goes out of scope
|
||||
|
|
Loading…
Reference in a new issue