aboutsummaryrefslogtreecommitdiff
path: root/engines/titanic/game_manager.cpp
diff options
context:
space:
mode:
authorPaul Gilbert2016-03-19 07:48:23 -0400
committerPaul Gilbert2016-03-19 07:48:23 -0400
commit3a42c8ca449248dfc67a98f3bedd65c237d06fa0 (patch)
tree0d0975ff322a16d9c2e22e9274dd2f7408df986b /engines/titanic/game_manager.cpp
parentabb9a549c86b9c83925cd41f02b27e3e88162b9b (diff)
downloadscummvm-rg350-3a42c8ca449248dfc67a98f3bedd65c237d06fa0.tar.gz
scummvm-rg350-3a42c8ca449248dfc67a98f3bedd65c237d06fa0.tar.bz2
scummvm-rg350-3a42c8ca449248dfc67a98f3bedd65c237d06fa0.zip
TITANIC: Added various preLoad methods
Diffstat (limited to 'engines/titanic/game_manager.cpp')
-rw-r--r--engines/titanic/game_manager.cpp19
1 files changed, 16 insertions, 3 deletions
diff --git a/engines/titanic/game_manager.cpp b/engines/titanic/game_manager.cpp
index a2732d8b1c..b181edcaeb 100644
--- a/engines/titanic/game_manager.cpp
+++ b/engines/titanic/game_manager.cpp
@@ -48,7 +48,7 @@ CGameManager::CGameManager(CProjectItem *project, CGameView *gameView):
_inputHandler(this), _inputTranslator(&_inputHandler),
_gameState(this), _sound(this), _musicRoom(this),
_field30(0), _field34(0), _field4C(0),
- _dragItem(nullptr), _field54(0), _tickCount1(0), _tickCount2(0) {
+ _dragItem(nullptr), _field54(0), _lastDiskTicksCount(0), _tickCount2(0) {
_videoSurface1 = nullptr;
_videoSurface2 = CScreenManager::_screenManagerPtr->createSurface(600, 340);
@@ -65,6 +65,15 @@ void CGameManager::load(SimpleFile *file) {
_sound.load(file);
}
+void CGameManager::preLoad() {
+ updateDiskTicksCount();
+ _list.destroyContents();
+ _field34 = 0;
+
+ _trueTalkManager.preLoad();
+ _sound.preLoad();
+}
+
void CGameManager::postLoad(CProjectItem *project) {
if (_gameView) {
_gameView->postLoad();
@@ -77,11 +86,11 @@ void CGameManager::postLoad(CProjectItem *project) {
}
// Signal to anything interested that the game has been loaded
- CLoadSuccessMsg msg(_tickCount1 - _tickCount2);
+ CLoadSuccessMsg msg(_lastDiskTicksCount - _tickCount2);
msg.execute(project, nullptr, MSGFLAG_SCAN);
// Signal to any registered list items
- _list.postLoad(_tickCount1, _project);
+ _list.postLoad(_lastDiskTicksCount, _project);
// Signal the true talk manager and sound
_trueTalkManager.postLoad();
@@ -100,4 +109,8 @@ void CGameManager::update() {
warning("TODO: CGameManager::update");
}
+void CGameManager::updateDiskTicksCount() {
+ _lastDiskTicksCount = g_vm->_events->getTicksCount();
+}
+
} // End of namespace Titanic