aboutsummaryrefslogtreecommitdiff
path: root/engines/tsage
diff options
context:
space:
mode:
authorPaul Gilbert2015-05-30 09:40:04 -0400
committerPaul Gilbert2015-05-30 09:40:04 -0400
commitbb9586de9e0da450bbc18119bbcd82975f146c27 (patch)
treeb1cf7b753730fdfeaa8b8c6b493a32bad8256c9b /engines/tsage
parent0141dd1af3ac63801d3fcb80d200b8a4719ba55f (diff)
downloadscummvm-rg350-bb9586de9e0da450bbc18119bbcd82975f146c27.tar.gz
scummvm-rg350-bb9586de9e0da450bbc18119bbcd82975f146c27.tar.bz2
scummvm-rg350-bb9586de9e0da450bbc18119bbcd82975f146c27.zip
TSAGE: Fixes for display of Sherlock Logo scene
Diffstat (limited to 'engines/tsage')
-rw-r--r--engines/tsage/core.cpp2
-rw-r--r--engines/tsage/graphics.cpp3
-rw-r--r--engines/tsage/sherlock/sherlock_logo.cpp33
-rw-r--r--engines/tsage/sherlock/sherlock_logo.h1
4 files changed, 26 insertions, 13 deletions
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<int16>(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);