diff options
author | Paul Gilbert | 2016-08-19 23:41:19 -0400 |
---|---|---|
committer | Paul Gilbert | 2016-08-19 23:41:19 -0400 |
commit | 3c2c82fcd593e7b358f359de69070b6dd0e92150 (patch) | |
tree | 53251f5642b35626c606633cfe7baa1ce87b1fea /engines/titanic/game/end_game_credits.cpp | |
parent | 449d8a02e05754e889e13ff721ff2c0cb995c486 (diff) | |
download | scummvm-rg350-3c2c82fcd593e7b358f359de69070b6dd0e92150.tar.gz scummvm-rg350-3c2c82fcd593e7b358f359de69070b6dd0e92150.tar.bz2 scummvm-rg350-3c2c82fcd593e7b358f359de69070b6dd0e92150.zip |
TITANIC: Implemented more game classes
Diffstat (limited to 'engines/titanic/game/end_game_credits.cpp')
-rw-r--r-- | engines/titanic/game/end_game_credits.cpp | 51 |
1 files changed, 46 insertions, 5 deletions
diff --git a/engines/titanic/game/end_game_credits.cpp b/engines/titanic/game/end_game_credits.cpp index 2d1aa79b1d..4edcef0a17 100644 --- a/engines/titanic/game/end_game_credits.cpp +++ b/engines/titanic/game/end_game_credits.cpp @@ -24,23 +24,64 @@ namespace Titanic { -CEndGameCredits::CEndGameCredits() : CGameObject(), _fieldBC(0) { +BEGIN_MESSAGE_MAP(CEndGameCredits, CGameObject) + ON_MESSAGE(ActMsg) + ON_MESSAGE(EnterViewMsg) + ON_MESSAGE(MovieEndMsg) + ON_MESSAGE(TimerMsg) +END_MESSAGE_MAP() + +CEndGameCredits::CEndGameCredits() : CGameObject(), _flag(0), + _frameRange(0, 28) { } void CEndGameCredits::save(SimpleFile *file, int indent) { file->writeNumberLine(1, indent); - file->writeNumberLine(_fieldBC, indent); - file->writePoint(_pos1, indent); + file->writeNumberLine(_flag, indent); + file->writePoint(_frameRange, indent); CGameObject::save(file, indent); } void CEndGameCredits::load(SimpleFile *file) { file->readNumber(); - _fieldBC = file->readNumber(); - _pos1 = file->readPoint(); + _flag = file->readNumber(); + _frameRange = file->readPoint(); CGameObject::load(file); } +bool CEndGameCredits::ActMsg(CActMsg *msg) { + if (!_flag) { + if (msg->_action == "ExplodeCredits") + _frameRange = Point(0, 27); + if (msg->_action == "Credits") + _frameRange = Point(28, 46); + + changeView("TheEnd.Node 4.N"); + } + + return true; +} + +bool CEndGameCredits::EnterViewMsg(CEnterViewMsg *msg) { + playMovie(_frameRange.x, _frameRange.y, MOVIE_NOTIFY_OBJECT); + return true; +} + +bool CEndGameCredits::MovieEndMsg(CMovieEndMsg *msg) { + if (getMovieFrame() == 46) { + CVisibleMsg visibleMsg; + visibleMsg.execute("CreditsBackdrop"); + } + + return true; +} + +bool CEndGameCredits::TimerMsg(CTimerMsg *msg) { + CActMsg actMsg; + actMsg.execute("EndCreditsText"); + return true; +} + } // End of namespace Titanic |