From bb9586de9e0da450bbc18119bbcd82975f146c27 Mon Sep 17 00:00:00 2001 From: Paul Gilbert Date: Sat, 30 May 2015 09:40:04 -0400 Subject: TSAGE: Fixes for display of Sherlock Logo scene --- engines/tsage/core.cpp | 2 +- engines/tsage/graphics.cpp | 3 ++- engines/tsage/sherlock/sherlock_logo.cpp | 33 ++++++++++++++++++++++---------- engines/tsage/sherlock/sherlock_logo.h | 1 - 4 files changed, 26 insertions(+), 13 deletions(-) (limited to 'engines/tsage') diff --git a/engines/tsage/core.cpp b/engines/tsage/core.cpp index e8fef014c0..c1c4c27e32 100644 --- a/engines/tsage/core.cpp +++ b/engines/tsage/core.cpp @@ -2806,7 +2806,7 @@ void SceneObject::updateScreen() { srcRect.right = ((srcRect.right + 3) / 4) * 4; srcRect.clip(g_globals->_sceneManager._scene->_sceneBounds); - if (g_vm->getGameID() != GType_Ringworld) { + if (g_vm->getGameID() != GType_Ringworld && g_vm->getGameID() != GType_Sherlock1) { if (T2_GLOBALS._uiElements._visible) srcRect.bottom = MIN(srcRect.bottom, T2_GLOBALS._interfaceY); } diff --git a/engines/tsage/graphics.cpp b/engines/tsage/graphics.cpp index ce24c76290..156503fb51 100644 --- a/engines/tsage/graphics.cpp +++ b/engines/tsage/graphics.cpp @@ -1289,7 +1289,8 @@ void GfxManager::setDefaults() { _font._edgeSize = Common::Point(1, 1); _font._colors = g_globals->_fontColors; - _font.setFontNumber(g_globals->_gfxFontNumber); + if (g_globals->_gfxFontNumber >= 0) + _font.setFontNumber(g_globals->_gfxFontNumber); } void GfxManager::activate() { diff --git a/engines/tsage/sherlock/sherlock_logo.cpp b/engines/tsage/sherlock/sherlock_logo.cpp index 13594c8de0..437fdc6d94 100644 --- a/engines/tsage/sherlock/sherlock_logo.cpp +++ b/engines/tsage/sherlock/sherlock_logo.cpp @@ -29,6 +29,9 @@ namespace TsAGE { namespace Sherlock { void SherlockLogo::start() { + GLOBALS._gfxFontNumber = -1; + GLOBALS.gfxManager().setDefaults(); + // Start the demo's single scene g_globals->_sceneManager.changeScene(1); @@ -85,6 +88,7 @@ void SherlockLogoScene::Action1::signal() { switch (_actionIndex++) { case 0: + // Load scene palette GLOBALS._scenePalette.loadPalette(1111); GLOBALS._scenePalette.loadPalette(1); GLOBALS._scenePalette.refresh(); @@ -92,10 +96,12 @@ void SherlockLogoScene::Action1::signal() { break; case 1: + // Fade in the spotlight background GLOBALS._scenePalette.addFader(scene._palette1._palette, 256, 6, this); break; case 2: + // First half of square, circle, and triangle bouncing scene._object1.postInit(); scene._object1.setVisage("0016.vis"); scene._object1._strip = 1; @@ -107,20 +113,22 @@ void SherlockLogoScene::Action1::signal() { break; case 3: + // Remainder of bouncing square, circle, and triangle coming to rest scene._object1._strip = 2; - scene._object1._strip = 1; + scene._object1._frame = 1; scene._object1.changeZoom(100); - scene._object1.animate(ANIM_MODE_4, 4, 11, 1, this); + scene._object1.animate(ANIM_MODE_4, 11, 1, this); break; case 4: + // Fade out background without fading out the shapes GLOBALS._scenePalette.addFader(scene._palette2._palette, 256, 6, this); break; case 5: - scene._rect1 = Rect(0, 26, 312, 190); + scene._backSurface.fillRect(scene._sceneBounds, 0); scene._gfxManager2.activate(); - scene._gfxManager2.fillRect(scene._rect1, 0); + scene._gfxManager2.fillRect(scene._sceneBounds, 0); scene._gfxManager2.deactivate(); //word_2B4AA = 3; setDelay(10); @@ -133,6 +141,7 @@ void SherlockLogoScene::Action1::signal() { break; case 7: + // Animation of shapes expanding upwards to form larger EA logo scene._object1.setVisage("0012.vis"); scene._object1._strip = 1; scene._object1._frame = 1; @@ -148,6 +157,7 @@ void SherlockLogoScene::Action1::signal() { break; case 9: + // Show 'Electronic Arts' company name scene._object2.postInit(nullptr); scene._object2.setVisage("0014.vis"); scene._object2._strip = 1; @@ -159,13 +169,14 @@ void SherlockLogoScene::Action1::signal() { break; case 10: + // Remainder of steps is positioning and sizing hand cursorin an arc scene._object3.postInit(); - scene._object2.setVisage("0018.vis"); - scene._object2._strip = 1; - scene._object2._frame = 1; - scene._object2.setPosition(Common::Point(33, 91)); - scene._object2.changeZoom(100); - scene._object2.animate(ANIM_MODE_NONE, nullptr); + scene._object3.setVisage("0018.vis"); + scene._object3._strip = 1; + scene._object3._frame = 1; + scene._object3.setPosition(Common::Point(33, 91)); + scene._object3.changeZoom(100); + scene._object3.animate(ANIM_MODE_NONE, nullptr); setDelay(5); break; @@ -242,6 +253,7 @@ void SherlockLogoScene::Action1::signal() { break; case 23: + // Show a highlighting of the company name scene._object3.hide(); scene._object4.show(); scene._object4.setPosition(Common::Point(155, 94)); @@ -316,6 +328,7 @@ void SherlockLogoScene::postInit(SceneObjectList *OwnerList) { loadScene(10); Scene::postInit(OwnerList); + _palette1.loadPalette(1111); _palette1.loadPalette(10); _palette2.loadPalette(1111); _palette2.loadPalette(1); diff --git a/engines/tsage/sherlock/sherlock_logo.h b/engines/tsage/sherlock/sherlock_logo.h index fcc96386e0..95fc0e272f 100644 --- a/engines/tsage/sherlock/sherlock_logo.h +++ b/engines/tsage/sherlock/sherlock_logo.h @@ -65,7 +65,6 @@ public: ScenePalette _palette1, _palette2, _palette3; Object _object1, _object2, _object3, _object4; Action1 _action1; - Rect _rect1; GfxManager _gfxManager2; virtual void postInit(SceneObjectList *OwnerList = NULL); -- cgit v1.2.3