forked from teamnwah/openmw-tes3coop
Play company logo movie
This commit is contained in:
parent
5906d795c0
commit
f2cd37edd0
7 changed files with 19 additions and 25 deletions
|
@ -362,14 +362,9 @@ void OMW::Engine::prepareEngine (Settings::Manager & settings)
|
||||||
// Create sound system
|
// Create sound system
|
||||||
mEnvironment.setSoundManager (new MWSound::SoundManager(mUseSound));
|
mEnvironment.setSoundManager (new MWSound::SoundManager(mUseSound));
|
||||||
|
|
||||||
// TODO: play pre-load intro videos. Need to find a way to have them receive input.
|
std::string logo = mFallbackMap["Movies_Company_Logo"];
|
||||||
// Make videoplayer a MyGUI widget?
|
if (!logo.empty())
|
||||||
/*
|
window->playVideo(logo, 1);
|
||||||
{
|
|
||||||
MWRender::VideoPlayer player(mOgre->getScene(), mOgre->getWindow());
|
|
||||||
player.playVideo("mw_logo.bik", 1);
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
// Create the world
|
// Create the world
|
||||||
mEnvironment.setWorld( new MWWorld::World (*mOgre, mFileCollections, mContentFiles,
|
mEnvironment.setWorld( new MWWorld::World (*mOgre, mFileCollections, mContentFiles,
|
||||||
|
@ -453,10 +448,9 @@ void OMW::Engine::go()
|
||||||
// Is there an ini setting for this filename or something?
|
// Is there an ini setting for this filename or something?
|
||||||
MWBase::Environment::get().getSoundManager()->streamMusic("Special/morrowind title.mp3");
|
MWBase::Environment::get().getSoundManager()->streamMusic("Special/morrowind title.mp3");
|
||||||
|
|
||||||
// TODO: there are other intro videos, too. They need to be imported from Morrowind.ini.
|
std::string logo = mFallbackMap["Movies_Morrowind_Logo"];
|
||||||
// Unfortunately those must play BEFORE any loading is done, which will currently not work.
|
if (!logo.empty())
|
||||||
// The videoplayer is created by World, so all content files must be loaded first...
|
MWBase::Environment::get().getWindowManager()->playVideo(logo, true);
|
||||||
MWBase::Environment::get().getWindowManager()->playVideo("mw_logo.bik", true);
|
|
||||||
}
|
}
|
||||||
catch (...) {}
|
catch (...) {}
|
||||||
}
|
}
|
||||||
|
|
|
@ -25,7 +25,7 @@ namespace MWBase
|
||||||
|
|
||||||
virtual ~InputManager() {}
|
virtual ~InputManager() {}
|
||||||
|
|
||||||
virtual void update(float dt, bool loading) = 0;
|
virtual void update(float dt, bool disableControls, bool disableEvents=false) = 0;
|
||||||
|
|
||||||
virtual void changeInputMode(bool guiMode) = 0;
|
virtual void changeInputMode(bool guiMode) = 0;
|
||||||
|
|
||||||
|
|
|
@ -226,7 +226,7 @@ namespace MWGui
|
||||||
}
|
}
|
||||||
mSceneMgr->setSpecialCaseRenderQueueMode(Ogre::SceneManager::SCRQM_EXCLUDE);
|
mSceneMgr->setSpecialCaseRenderQueueMode(Ogre::SceneManager::SCRQM_EXCLUDE);
|
||||||
|
|
||||||
MWBase::Environment::get().getInputManager()->update(0, true);
|
MWBase::Environment::get().getInputManager()->update(0, true, true);
|
||||||
|
|
||||||
// First, swap buffers from last draw, then, queue an update of the
|
// First, swap buffers from last draw, then, queue an update of the
|
||||||
// window contents, but don't swap buffers (which would have
|
// window contents, but don't swap buffers (which would have
|
||||||
|
|
|
@ -1437,7 +1437,7 @@ namespace MWGui
|
||||||
|
|
||||||
while (mVideoWidget->update())
|
while (mVideoWidget->update())
|
||||||
{
|
{
|
||||||
MWBase::Environment::get().getInputManager()->update(0, false);
|
MWBase::Environment::get().getInputManager()->update(0, true, false);
|
||||||
|
|
||||||
mRendering->getWindow()->update();
|
mRendering->getWindow()->update();
|
||||||
}
|
}
|
||||||
|
|
|
@ -96,12 +96,12 @@ namespace MWInput
|
||||||
: mOgre(ogre)
|
: mOgre(ogre)
|
||||||
, mPlayer(NULL)
|
, mPlayer(NULL)
|
||||||
, mEngine(engine)
|
, mEngine(engine)
|
||||||
, mMouseLookEnabled(true)
|
, mMouseLookEnabled(false)
|
||||||
, mMouseX(ogre.getWindow()->getWidth ()/2.f)
|
, mMouseX(ogre.getWindow()->getWidth ()/2.f)
|
||||||
, mMouseY(ogre.getWindow()->getHeight ()/2.f)
|
, mMouseY(ogre.getWindow()->getHeight ()/2.f)
|
||||||
, mMouseWheel(0)
|
, mMouseWheel(0)
|
||||||
, mDragDrop(false)
|
, mDragDrop(false)
|
||||||
, mGuiCursorEnabled(false)
|
, mGuiCursorEnabled(true)
|
||||||
, mUserFile(userFile)
|
, mUserFile(userFile)
|
||||||
, mUserFileExists(userFileExists)
|
, mUserFileExists(userFileExists)
|
||||||
, mInvertY (Settings::Manager::getBool("invert y axis", "Input"))
|
, mInvertY (Settings::Manager::getBool("invert y axis", "Input"))
|
||||||
|
@ -256,18 +256,21 @@ namespace MWInput
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void InputManager::update(float dt, bool loading)
|
void InputManager::update(float dt, bool disableControls, bool disableEvents)
|
||||||
{
|
{
|
||||||
mInputManager->setMouseVisible(MWBase::Environment::get().getWindowManager()->getCursorVisible());
|
mInputManager->setMouseVisible(MWBase::Environment::get().getWindowManager()->getCursorVisible());
|
||||||
|
|
||||||
mInputManager->capture(loading);
|
mInputManager->capture(disableEvents);
|
||||||
// inject some fake mouse movement to force updating MyGUI's widget states
|
// inject some fake mouse movement to force updating MyGUI's widget states
|
||||||
MyGUI::InputManager::getInstance().injectMouseMove( int(mMouseX), int(mMouseY), mMouseWheel);
|
MyGUI::InputManager::getInstance().injectMouseMove( int(mMouseX), int(mMouseY), mMouseWheel);
|
||||||
|
|
||||||
// update values of channels (as a result of pressed keys)
|
// update values of channels (as a result of pressed keys)
|
||||||
if (!loading)
|
if (!disableControls)
|
||||||
mInputBinder->update(dt);
|
mInputBinder->update(dt);
|
||||||
|
|
||||||
|
if (disableControls)
|
||||||
|
return;
|
||||||
|
|
||||||
bool grab = !MWBase::Environment::get().getWindowManager()->containsMode(MWGui::GM_MainMenu)
|
bool grab = !MWBase::Environment::get().getWindowManager()->containsMode(MWGui::GM_MainMenu)
|
||||||
&& MWBase::Environment::get().getWindowManager()->getMode() != MWGui::GM_Console;
|
&& MWBase::Environment::get().getWindowManager()->getMode() != MWGui::GM_Console;
|
||||||
|
|
||||||
|
@ -288,9 +291,6 @@ namespace MWInput
|
||||||
mInputManager->warpMouse(mMouseX, mMouseY);
|
mInputManager->warpMouse(mMouseX, mMouseY);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (loading)
|
|
||||||
return;
|
|
||||||
|
|
||||||
// Disable movement in Gui mode
|
// Disable movement in Gui mode
|
||||||
if (MWBase::Environment::get().getWindowManager()->isGuiMode()
|
if (MWBase::Environment::get().getWindowManager()->isGuiMode()
|
||||||
|| MWBase::Environment::get().getStateManager()->getState() != MWBase::StateManager::State_Running)
|
|| MWBase::Environment::get().getStateManager()->getState() != MWBase::StateManager::State_Running)
|
||||||
|
|
|
@ -68,7 +68,7 @@ namespace MWInput
|
||||||
/// Clear all savegame-specific data
|
/// Clear all savegame-specific data
|
||||||
virtual void clear();
|
virtual void clear();
|
||||||
|
|
||||||
virtual void update(float dt, bool loading);
|
virtual void update(float dt, bool disableControls, bool disableEvents=false);
|
||||||
|
|
||||||
void setPlayer (MWWorld::Player* player) { mPlayer = player; }
|
void setPlayer (MWWorld::Player* player) { mPlayer = player; }
|
||||||
|
|
||||||
|
|
|
@ -9,6 +9,6 @@
|
||||||
<Layer name="Popup" overlapped="true" peek="true"/>
|
<Layer name="Popup" overlapped="true" peek="true"/>
|
||||||
<Layer name="DragAndDrop" overlapped="false" peek="false"/>
|
<Layer name="DragAndDrop" overlapped="false" peek="false"/>
|
||||||
<Layer name="LoadingScreen" overlapped="false" peek="true"/>
|
<Layer name="LoadingScreen" overlapped="false" peek="true"/>
|
||||||
<Layer name="Overlay" overlapped="false" peek="false"/>
|
<Layer name="Overlay" overlapped="false" peek="true"/>
|
||||||
<Layer name="Pointer" overlapped="false" peek="false"/>
|
<Layer name="Pointer" overlapped="false" peek="false"/>
|
||||||
</MyGUI>
|
</MyGUI>
|
||||||
|
|
Loading…
Reference in a new issue