[Scummvm-cvs-logs] scummvm master -> c3712f9a73eb7511c2a5bea20aa61ea21d3258f4

dreammaster dreammaster at scummvm.org
Sat May 30 16:09:00 CEST 2015


This automated email contains information about 6 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
0ca72189fd TSAGE: Beginnings of game & scene classes for Sherlock Holmes Logo display
3fea1f4993 TSAGE: Implemented scene logic for Sherlock Logo
08dc811baa TSAGE: Implemented game startup code for Sherlock Logo
0141dd1af3 TSAGE: Showing background of Sherlock Logo scene
bb9586de9e TSAGE: Fixes for display of Sherlock Logo scene
c3712f9a73 Merge branch 'sherlock_logo'


Commit: 0ca72189fd7bef87892839461e59fe94fc239ced
    https://github.com/scummvm/scummvm/commit/0ca72189fd7bef87892839461e59fe94fc239ced
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2015-05-19T23:16:31-04:00

Commit Message:
TSAGE: Beginnings of game & scene classes for Sherlock Holmes Logo display

Changed paths:
  A engines/tsage/sherlock/sherlock_logo.cpp
  A engines/tsage/sherlock/sherlock_logo.h
    engines/tsage/detection_tables.h
    engines/tsage/globals.cpp
    engines/tsage/module.mk
    engines/tsage/tsage.h



diff --git a/engines/tsage/detection_tables.h b/engines/tsage/detection_tables.h
index da283a2..1ff0cde 100644
--- a/engines/tsage/detection_tables.h
+++ b/engines/tsage/detection_tables.h
@@ -185,6 +185,22 @@ static const tSageGameDescription gameDescriptions[] = {
 		GType_Ringworld2,
 		GF_CD | GF_ALT_REGIONS | GF_DEMO
 	},
+
+	// The Lost Files of Sherlock Holmes - The Case of the Serrated Scalpel (Logo)
+	{
+		{
+			"sherlock1",
+			"Logo",
+			AD_ENTRY1s("sf3.rlb", "c8e1a82c67c3caf57368eadde13dc15f", 0),
+			Common::EN_ANY,
+			Common::kPlatformDOS,
+			ADGF_NO_FLAGS,
+			GUIO0()
+		},
+		GType_Sherlock1,
+		GF_FLOPPY
+	},
+
 	{ AD_TABLE_END_MARKER, 0, 0 }
 };
 
diff --git a/engines/tsage/globals.cpp b/engines/tsage/globals.cpp
index e75febf..3b78af3 100644
--- a/engines/tsage/globals.cpp
+++ b/engines/tsage/globals.cpp
@@ -27,6 +27,7 @@
 #include "tsage/ringworld/ringworld_logic.h"
 #include "tsage/ringworld2/ringworld2_logic.h"
 #include "tsage/ringworld2/ringworld2_scenes0.h"
+#include "tsage/sherlock/sherlock_logo.h"
 #include "tsage/staticres.h"
 
 namespace TsAGE {
@@ -156,6 +157,12 @@ Globals::Globals() : _dialogCenter(160, 140), _gfxManagerInstance(_screenSurface
 		_game = new Ringworld2::Ringworld2Game();
 		_sceneHandler = new Ringworld2::SceneHandlerExt();
 		break;
+
+	case GType_Sherlock1:
+		_inventory = nullptr;
+		_sceneHandler = new SceneHandler();
+		_game = new Sherlock::SherlockLogo();
+		break;
 	}
 
 }
diff --git a/engines/tsage/module.mk b/engines/tsage/module.mk
index d62f398..e23b157 100644
--- a/engines/tsage/module.mk
+++ b/engines/tsage/module.mk
@@ -47,6 +47,7 @@ MODULE_OBJS := \
 	ringworld2/ringworld2_vampire.o \
 	saveload.o \
 	scenes.o \
+	sherlock/sherlock_logo.o \
 	sound.o \
 	staticres.o \
 	tsage.o \
diff --git a/engines/tsage/sherlock/sherlock_logo.cpp b/engines/tsage/sherlock/sherlock_logo.cpp
new file mode 100644
index 0000000..cca6982
--- /dev/null
+++ b/engines/tsage/sherlock/sherlock_logo.cpp
@@ -0,0 +1,149 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "tsage/sherlock/sherlock_logo.h"
+#include "tsage/scenes.h"
+#include "tsage/tsage.h"
+
+namespace TsAGE {
+
+namespace Sherlock {
+
+void SherlockLogo::start() {
+	// Start the demo's single scene
+	g_globals->_sceneManager.changeScene(1);
+
+	g_globals->_events.setCursor(CURSOR_NONE);
+}
+
+Scene *SherlockLogo::createScene(int sceneNumber) {
+	// The demo only has a single scene, so ignore the scene number and always return it
+	return new SherlockLogoScene();
+}
+
+bool SherlockLogo::canLoadGameStateCurrently() {
+	return false;
+}
+
+bool SherlockLogo::canSaveGameStateCurrently() {
+	return false;
+}
+
+void SherlockLogo::processEvent(Event &event) {
+	if (event.eventType == EVENT_BUTTON_DOWN || (event.eventType == EVENT_KEYPRESS &&
+			event.kbd.keycode == Common::KEYCODE_ESCAPE))
+		quitGame();
+}
+
+void SherlockLogo::quitGame() {
+	g_vm->quitGame();
+}
+
+/*--------------------------------------------------------------------------*/
+
+void SherlockLogoScene::Action1::signal() {
+	SherlockLogoScene &scene = *(SherlockLogoScene *)GLOBALS._sceneManager._scene;
+
+	switch (_actionIndex++) {
+	case 0:
+		GLOBALS._scenePalette.loadPalette(1111);
+		GLOBALS._scenePalette.loadPalette(1);
+		GLOBALS._scenePalette.refresh();
+		setDelay(1);
+		break;
+
+	case 1:
+		GLOBALS._scenePalette.addFader(scene._palette1._palette, 256, 6, this);
+		break;
+
+	case 2:
+		scene._object1.postInit();
+		scene._object1.setVisage("0016.vis");
+		scene._object1._strip = 1;
+		scene._object1._frame = 1;
+		scene._object1.setPosition(Common::Point(169, 107));
+		scene._object1.changeZoom(100);
+		scene._object1._numFrames = 7;
+		scene._object1.animate(ANIM_MODE_5, this);
+		break;
+
+	case 3:
+		scene._object1._strip = 2;
+		scene._object1._strip = 1;
+		scene._object1.changeZoom(100);
+		scene._object1.animate(ANIM_MODE_4, 4, 11, 1, this);
+		break;
+
+	case 4:
+		GLOBALS._scenePalette.addFader(scene._palette2._palette, 256, 6, this);
+		break;
+
+	case 5:
+		scene._rect1 = Rect(0, 26, 312, 190);
+		scene._gfxManager2.activate();
+		scene._gfxManager2.fillRect(scene._rect1, 0);
+		scene._gfxManager2.deactivate();
+		//word_2B4AA = 3;
+
+		setDelay(10);
+		break;
+
+	case 6:
+		GLOBALS._scenePalette.loadPalette(12);
+		GLOBALS._scenePalette.refresh();
+		break;
+
+	// TODO
+
+	default:
+		break;
+	}
+}
+
+/*--------------------------------------------------------------------------*/
+
+void SherlockLogoScene::postInit(SceneObjectList *OwnerList) {
+	loadScene(10);
+	Scene::postInit(OwnerList);
+
+	_palette1.loadPalette(10);
+	_palette2.loadPalette(1111);
+	_palette2.loadPalette(1);
+	_palette3.loadPalette(1111);
+	_palette3.loadPalette(14);
+
+	_object4.postInit();
+	_object4.setVisage("0019.vis");
+	_object4._strip = 1;
+	_object4._frame = 1;
+	_object4.setPosition(Common::Point(155, 94));
+	_object4.changeZoom(100);
+	_object4.animate(ANIM_MODE_NONE, nullptr);
+	_object4.hide();
+
+	setAction(&_action1);
+}
+
+
+} // End of namespace Sherlock
+
+} // End of namespace TsAGE
diff --git a/engines/tsage/sherlock/sherlock_logo.h b/engines/tsage/sherlock/sherlock_logo.h
new file mode 100644
index 0000000..947ea08
--- /dev/null
+++ b/engines/tsage/sherlock/sherlock_logo.h
@@ -0,0 +1,73 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TSAGE_SHERLOCK_LOGO_H
+#define TSAGE_SHERLOCK_LOGO_H
+
+#include "common/scummsys.h"
+#include "tsage/events.h"
+#include "tsage/core.h"
+#include "tsage/scenes.h"
+#include "tsage/globals.h"
+#include "tsage/sound.h"
+
+namespace TsAGE {
+
+namespace Sherlock {
+
+using namespace TsAGE;
+
+class Object : public SceneObject {
+public:
+	void setVisage(const Common::String &name) {}
+};
+
+class SherlockLogo: public Game {
+public:
+	virtual void start();
+	virtual Scene *createScene(int sceneNumber);
+	virtual void quitGame();
+	virtual void processEvent(Event &event);
+	virtual bool canSaveGameStateCurrently();
+	virtual bool canLoadGameStateCurrently();
+};
+
+class SherlockLogoScene: public Scene {
+	class Action1 : public Action {
+	public:
+		virtual void signal();
+	};
+public:
+	ScenePalette _palette1, _palette2, _palette3;
+	Object _object1, _object2, _object3, _object4;
+	Action1 _action1;
+	Rect _rect1;
+	GfxManager _gfxManager2;
+
+	virtual void postInit(SceneObjectList *OwnerList = NULL);
+};
+
+} // End of namespace Sherlock
+
+} // End of namespace TsAGE
+
+#endif
diff --git a/engines/tsage/tsage.h b/engines/tsage/tsage.h
index ea4f5da..667a8da 100644
--- a/engines/tsage/tsage.h
+++ b/engines/tsage/tsage.h
@@ -42,7 +42,8 @@ namespace TsAGE {
 enum {
 	GType_Ringworld = 0,
 	GType_BlueForce = 1,
-	GType_Ringworld2 = 2
+	GType_Ringworld2 = 2,
+	GType_Sherlock1 = 5
 };
 
 enum {


Commit: 3fea1f49937410c671d3155eb785fc382a08757d
    https://github.com/scummvm/scummvm/commit/3fea1f49937410c671d3155eb785fc382a08757d
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2015-05-20T22:20:52-04:00

Commit Message:
TSAGE: Implemented scene logic for Sherlock Logo

Changed paths:
    engines/tsage/sherlock/sherlock_logo.cpp
    engines/tsage/sherlock/sherlock_logo.h



diff --git a/engines/tsage/sherlock/sherlock_logo.cpp b/engines/tsage/sherlock/sherlock_logo.cpp
index cca6982..e2c5629 100644
--- a/engines/tsage/sherlock/sherlock_logo.cpp
+++ b/engines/tsage/sherlock/sherlock_logo.cpp
@@ -103,18 +103,189 @@ void SherlockLogoScene::Action1::signal() {
 		scene._gfxManager2.fillRect(scene._rect1, 0);
 		scene._gfxManager2.deactivate();
 		//word_2B4AA = 3;
-
 		setDelay(10);
 		break;
 
 	case 6:
 		GLOBALS._scenePalette.loadPalette(12);
 		GLOBALS._scenePalette.refresh();
+		setDelay(1);
+		break;
+
+	case 7:
+		scene._object1.setVisage("0012.vis");
+		scene._object1._strip = 1;
+		scene._object1._frame = 1;
+		scene._object1.changeZoom(100);
+		scene._object1.setPosition(Common::Point(170, 142));
+		scene._object1._numFrames = 7;
+		scene._object1.animate(ANIM_MODE_5, nullptr);
+		ADD_MOVER(scene._object1, 158, 71);
+		break;
+
+	case 8:
+		GLOBALS._scenePalette.addFader(scene._palette3._palette, 256, 40, this);
+		break;
+
+	case 9:
+		scene._object2.postInit(nullptr);
+		scene._object2.setVisage("0014.vis");
+		scene._object2._strip = 1;
+		scene._object2._frame = 1;
+		scene._object2.setPosition(Common::Point(152, 98));
+		scene._object2.changeZoom(100);
+		scene._object2.animate(ANIM_MODE_NONE, nullptr);
+		setDelay(120);
+		break;
+
+	case 10:
+		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);
+		setDelay(5);
+		break;
+
+	case 11:
+		scene._object3._frame = 2;
+		scene._object3.setPosition(Common::Point(44, 124));
+		setDelay(5);
+		break;
+
+	case 12:
+		scene._object3._frame = 3;
+		scene._object3.setPosition(Common::Point(64, 153));
+		setDelay(5);
+		break;
+
+	case 13:
+		scene._object3._frame = 4;
+		scene._object3.setPosition(Common::Point(87, 174));
+		setDelay(5);
+		break;
+
+	case 14:
+		scene._object3._frame = 5;
+		scene._object3.setPosition(Common::Point(114, 191));
+		setDelay(5);
+		break;
+
+	case 15:
+		scene._object3._frame = 6;
+		scene._object3.setPosition(Common::Point(125, 184));
+		setDelay(5);
+		break;
+
+	case 16:
+		scene._object3._frame = 7;
+		scene._object3.setPosition(Common::Point(154, 187));
+		setDelay(5);
+		break;
+
+	case 17:
+		scene._object3._frame = 8;
+		scene._object3.setPosition(Common::Point(181, 182));
+		setDelay(5);
+		break;
+
+	case 18:
+		scene._object3._frame = 9;
+		scene._object3.setPosition(Common::Point(191, 167));
+		setDelay(5);
+		break;
+
+	case 19:
+		scene._object3._frame = 10;
+		scene._object3.setPosition(Common::Point(190, 150));
+		setDelay(5);
 		break;
 
-	// TODO
+	case 20:
+		scene._object3._frame = 11;
+		scene._object3.setPosition(Common::Point(182, 139));
+		setDelay(5);
+		break;
+
+	case 21:
+		scene._object3._frame = 11;
+		scene._object3.setPosition(Common::Point(170, 130));
+		setDelay(5);
+		break;
+
+	case 22:
+		scene._object3._frame = 11;
+		scene._object3.setPosition(Common::Point(158, 121));
+		setDelay(8);
+		break;
+
+	case 23:
+		scene._object3.hide();
+		scene._object4.show();
+		scene._object4.setPosition(Common::Point(155, 94));
+		setDelay(8);
+		break;
+
+	case 24:
+		scene._object4._frame = 2;
+		scene._object4.setPosition(Common::Point(155, 94));
+		setDelay(8);
+		break;
+
+	case 25:
+		scene._object2.remove();
+		setDelay(1);
+		break;
+
+	case 26:
+		scene._object4._frame = 3;
+		scene._object4.setPosition(Common::Point(155, 94));
+		setDelay(8);
+		break;
+
+	case 27:
+		scene._object4._frame = 4;
+		scene._object4.setPosition(Common::Point(155, 94));
+		setDelay(8);
+		break;
+		break;
+
+	case 28:
+		scene._object4._frame = 5;
+		scene._object4.setPosition(Common::Point(155, 94));
+		setDelay(8);
+		break;
+		break;
+
+	case 29:
+		scene._object4._frame = 6;
+		scene._object4.setPosition(Common::Point(155, 94));
+		setDelay(8);
+		break;
+		break;
+
+	case 30:
+		scene._object4._frame = 7;
+		scene._object4.setPosition(Common::Point(155, 94));
+		setDelay(8);
+		break;
+		break;
+
+	case 31:
+		scene._object4._frame = 8;
+		scene._object4.setPosition(Common::Point(155, 94));
+		setDelay(8);
+		break;
+
+	case 32:
+		setDelay(180);
+		break;
 
 	default:
+		scene.finish();
+		remove();
 		break;
 	}
 }
@@ -143,6 +314,9 @@ void SherlockLogoScene::postInit(SceneObjectList *OwnerList) {
 	setAction(&_action1);
 }
 
+void SherlockLogoScene::finish() {
+	g_vm->quitGame();
+}
 
 } // End of namespace Sherlock
 
diff --git a/engines/tsage/sherlock/sherlock_logo.h b/engines/tsage/sherlock/sherlock_logo.h
index 947ea08..1f3eb15 100644
--- a/engines/tsage/sherlock/sherlock_logo.h
+++ b/engines/tsage/sherlock/sherlock_logo.h
@@ -64,6 +64,7 @@ public:
 	GfxManager _gfxManager2;
 
 	virtual void postInit(SceneObjectList *OwnerList = NULL);
+	void finish();
 };
 
 } // End of namespace Sherlock


Commit: 08dc811baa587e40af720eeb3e2fe98d4dbd22d7
    https://github.com/scummvm/scummvm/commit/08dc811baa587e40af720eeb3e2fe98d4dbd22d7
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2015-05-21T18:48:21-04:00

Commit Message:
TSAGE: Implemented game startup code for Sherlock Logo

Changed paths:
    engines/tsage/detection.cpp
    engines/tsage/detection_tables.h
    engines/tsage/globals.cpp
    engines/tsage/sherlock/sherlock_logo.cpp
    engines/tsage/sherlock/sherlock_logo.h
    engines/tsage/tsage.cpp



diff --git a/engines/tsage/detection.cpp b/engines/tsage/detection.cpp
index 9d61b4d..3889679 100644
--- a/engines/tsage/detection.cpp
+++ b/engines/tsage/detection.cpp
@@ -62,6 +62,7 @@ static const PlainGameDescriptor tSageGameTitles[] = {
 	{ "ringworld", "Ringworld: Revenge of the Patriarch" },
 	{ "blueforce", "Blue Force" },
 	{ "ringworld2", "Return to Ringworld" },
+	{ "sherlock-logo", "The Lost Files of Sherlock Holmes (Logo)" },
 	{ 0, 0 }
 };
 
diff --git a/engines/tsage/detection_tables.h b/engines/tsage/detection_tables.h
index 1ff0cde..1dfc3e6 100644
--- a/engines/tsage/detection_tables.h
+++ b/engines/tsage/detection_tables.h
@@ -189,9 +189,9 @@ static const tSageGameDescription gameDescriptions[] = {
 	// The Lost Files of Sherlock Holmes - The Case of the Serrated Scalpel (Logo)
 	{
 		{
-			"sherlock1",
-			"Logo",
-			AD_ENTRY1s("sf3.rlb", "c8e1a82c67c3caf57368eadde13dc15f", 0),
+			"sherlock-logo",
+			"",
+			AD_ENTRY1s("sf3.rlb", "153f9b93eda4e95578e31be30e69b5e5", 50419),
 			Common::EN_ANY,
 			Common::kPlatformDOS,
 			ADGF_NO_FLAGS,
diff --git a/engines/tsage/globals.cpp b/engines/tsage/globals.cpp
index 3b78af3..1be3e2b 100644
--- a/engines/tsage/globals.cpp
+++ b/engines/tsage/globals.cpp
@@ -160,7 +160,7 @@ Globals::Globals() : _dialogCenter(160, 140), _gfxManagerInstance(_screenSurface
 
 	case GType_Sherlock1:
 		_inventory = nullptr;
-		_sceneHandler = new SceneHandler();
+		_sceneHandler = new Sherlock::SherlockSceneHandler();
 		_game = new Sherlock::SherlockLogo();
 		break;
 	}
diff --git a/engines/tsage/sherlock/sherlock_logo.cpp b/engines/tsage/sherlock/sherlock_logo.cpp
index e2c5629..58cefe5 100644
--- a/engines/tsage/sherlock/sherlock_logo.cpp
+++ b/engines/tsage/sherlock/sherlock_logo.cpp
@@ -60,6 +60,19 @@ void SherlockLogo::quitGame() {
 
 /*--------------------------------------------------------------------------*/
 
+void SherlockSceneHandler::postInit(SceneObjectList *OwnerList) {
+	_delayTicks = 2;
+
+	GLOBALS._soundManager.postInit();
+	GLOBALS._soundManager.buildDriverList(true);
+	GLOBALS._soundManager.installConfigDrivers();
+
+	GLOBALS._sceneManager.setNewScene(10);
+	GLOBALS._game->start();
+}
+
+/*--------------------------------------------------------------------------*/
+
 void SherlockLogoScene::Action1::signal() {
 	SherlockLogoScene &scene = *(SherlockLogoScene *)GLOBALS._sceneManager._scene;
 
diff --git a/engines/tsage/sherlock/sherlock_logo.h b/engines/tsage/sherlock/sherlock_logo.h
index 1f3eb15..c9fb50e 100644
--- a/engines/tsage/sherlock/sherlock_logo.h
+++ b/engines/tsage/sherlock/sherlock_logo.h
@@ -51,6 +51,11 @@ public:
 	virtual bool canLoadGameStateCurrently();
 };
 
+class SherlockSceneHandler : public SceneHandler {
+public:
+	virtual void postInit(SceneObjectList *OwnerList);
+};
+
 class SherlockLogoScene: public Scene {
 	class Action1 : public Action {
 	public:
diff --git a/engines/tsage/tsage.cpp b/engines/tsage/tsage.cpp
index 0b882d5..4412d06 100644
--- a/engines/tsage/tsage.cpp
+++ b/engines/tsage/tsage.cpp
@@ -44,11 +44,12 @@ TSageEngine::TSageEngine(OSystem *system, const tSageGameDescription *gameDesc)
 			_debugger = new DemoDebugger();
 		else
 			_debugger = new RingworldDebugger();
-	}
-	else if (g_vm->getGameID() == GType_BlueForce)
+	} else if (g_vm->getGameID() == GType_BlueForce)
 		_debugger = new BlueForceDebugger();
 	else if (g_vm->getGameID() == GType_Ringworld2)
 		_debugger = new Ringworld2Debugger();
+	else if (g_vm->getGameID() == GType_Sherlock1)
+		_debugger = new DemoDebugger();
 }
 
 Common::Error TSageEngine::init() {
@@ -110,6 +111,11 @@ void TSageEngine::initialize() {
 
 		// Reset all global variables
 		R2_GLOBALS.reset();
+	} else if (g_vm->getGameID() == GType_Sherlock1) {
+		g_resourceManager->addLib("SF3.RLB");
+		g_globals = new Globals();
+	
+		return;
 	}
 
 	g_globals->gfxManager().setDefaults();


Commit: 0141dd1af3ac63801d3fcb80d200b8a4719ba55f
    https://github.com/scummvm/scummvm/commit/0141dd1af3ac63801d3fcb80d200b8a4719ba55f
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2015-05-29T23:31:23-04:00

Commit Message:
TSAGE: Showing background of Sherlock Logo scene

Changed paths:
    engines/tsage/core.cpp
    engines/tsage/sherlock/sherlock_logo.cpp
    engines/tsage/sherlock/sherlock_logo.h



diff --git a/engines/tsage/core.cpp b/engines/tsage/core.cpp
index 3105a90..e8fef01 100644
--- a/engines/tsage/core.cpp
+++ b/engines/tsage/core.cpp
@@ -1521,7 +1521,7 @@ void ScenePalette::changeBackground(const Rect &bounds, FadeMode fadeMode) {
 	}
 
 	Rect tempRect = bounds;
-	if (g_vm->getGameID() != GType_Ringworld)
+	if (g_vm->getGameID() != GType_Ringworld && g_vm->getGameID() != GType_Sherlock1)
 		tempRect.setHeight(T2_GLOBALS._interfaceY);
 
 	g_globals->_screenSurface.copyFrom(g_globals->_sceneManager._scene->_backSurface,
diff --git a/engines/tsage/sherlock/sherlock_logo.cpp b/engines/tsage/sherlock/sherlock_logo.cpp
index 58cefe5..13594c8 100644
--- a/engines/tsage/sherlock/sherlock_logo.cpp
+++ b/engines/tsage/sherlock/sherlock_logo.cpp
@@ -73,6 +73,13 @@ void SherlockSceneHandler::postInit(SceneObjectList *OwnerList) {
 
 /*--------------------------------------------------------------------------*/
 
+void Object::setVisage(const Common::String &name) {
+	int visageNum = atoi(name.c_str());
+	SceneObject::setVisage(visageNum);
+}
+
+/*--------------------------------------------------------------------------*/
+
 void SherlockLogoScene::Action1::signal() {
 	SherlockLogoScene &scene = *(SherlockLogoScene *)GLOBALS._sceneManager._scene;
 
diff --git a/engines/tsage/sherlock/sherlock_logo.h b/engines/tsage/sherlock/sherlock_logo.h
index c9fb50e..fcc9638 100644
--- a/engines/tsage/sherlock/sherlock_logo.h
+++ b/engines/tsage/sherlock/sherlock_logo.h
@@ -38,7 +38,7 @@ using namespace TsAGE;
 
 class Object : public SceneObject {
 public:
-	void setVisage(const Common::String &name) {}
+	void setVisage(const Common::String &name);
 };
 
 class SherlockLogo: public Game {


Commit: bb9586de9e0da450bbc18119bbcd82975f146c27
    https://github.com/scummvm/scummvm/commit/bb9586de9e0da450bbc18119bbcd82975f146c27
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2015-05-30T09:40:04-04:00

Commit Message:
TSAGE: Fixes for display of Sherlock Logo scene

Changed paths:
    engines/tsage/core.cpp
    engines/tsage/graphics.cpp
    engines/tsage/sherlock/sherlock_logo.cpp
    engines/tsage/sherlock/sherlock_logo.h



diff --git a/engines/tsage/core.cpp b/engines/tsage/core.cpp
index e8fef01..c1c4c27 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 ce24c76..156503f 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 13594c8..437fdc6 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 fcc9638..95fc0e2 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);


Commit: c3712f9a73eb7511c2a5bea20aa61ea21d3258f4
    https://github.com/scummvm/scummvm/commit/c3712f9a73eb7511c2a5bea20aa61ea21d3258f4
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2015-05-30T10:01:33-04:00

Commit Message:
Merge branch 'sherlock_logo'

Changed paths:
  A engines/tsage/sherlock/sherlock_logo.cpp
  A engines/tsage/sherlock/sherlock_logo.h
    engines/tsage/core.cpp
    engines/tsage/detection.cpp
    engines/tsage/detection_tables.h
    engines/tsage/globals.cpp
    engines/tsage/graphics.cpp
    engines/tsage/module.mk
    engines/tsage/tsage.cpp
    engines/tsage/tsage.h









More information about the Scummvm-git-logs mailing list