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

Strangerke Strangerke at scummvm.org
Sun Dec 11 23:35:18 CET 2011


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

Summary:
cbe97db8f0 TSAGE: R2R - Implement scene 2500


Commit: cbe97db8f076e5a09b7f57791ddd44bfaae616ef
    https://github.com/scummvm/scummvm/commit/cbe97db8f076e5a09b7f57791ddd44bfaae616ef
Author: Strangerke (strangerke at scummvm.org)
Date: 2011-12-11T14:34:27-08:00

Commit Message:
TSAGE: R2R - Implement scene 2500

Changed paths:
    engines/tsage/ringworld2/ringworld2_logic.cpp
    engines/tsage/ringworld2/ringworld2_scenes2.cpp
    engines/tsage/ringworld2/ringworld2_scenes2.h
    engines/tsage/ringworld2/ringworld2_speakers.cpp
    engines/tsage/ringworld2/ringworld2_speakers.h



diff --git a/engines/tsage/ringworld2/ringworld2_logic.cpp b/engines/tsage/ringworld2/ringworld2_logic.cpp
index cb85a9d..dca3dce 100644
--- a/engines/tsage/ringworld2/ringworld2_logic.cpp
+++ b/engines/tsage/ringworld2/ringworld2_logic.cpp
@@ -122,9 +122,11 @@ Scene *Ringworld2Game::createScene(int sceneNumber) {
 		// Maze: Another bedroom
 		return new Scene2450();
 	case 2455:
-		// Mze: Inside crevasse
+		// Maze: Inside crevasse
 		return new Scene2455();
 	case 2500:
+		// Maze: Large Cave
+		return new Scene2500();
 	case 2525:
 	case 2530:
 	case 2535:
diff --git a/engines/tsage/ringworld2/ringworld2_scenes2.cpp b/engines/tsage/ringworld2/ringworld2_scenes2.cpp
index aeee3cd..18fd6e6 100644
--- a/engines/tsage/ringworld2/ringworld2_scenes2.cpp
+++ b/engines/tsage/ringworld2/ringworld2_scenes2.cpp
@@ -2398,6 +2398,110 @@ void Scene2455::signal() {
 	}
 }
 
+/*--------------------------------------------------------------------------
+ * Scene 2500 - Maze: Large Cave
+ *
+ *--------------------------------------------------------------------------*/
+
+void Scene2500::Exit1::changeScene() {
+	Scene2500 *scene = (Scene2500 *)R2_GLOBALS._sceneManager._scene;
+
+	_enabled = false;
+	R2_GLOBALS._events.setCursor(CURSOR_ARROW);
+	R2_GLOBALS._player.disableControl();
+	scene->_sceneMode = 11;
+
+	Common::Point pt(20, 105);
+	NpcMover *mover = new NpcMover();
+	R2_GLOBALS._player.addMover(mover, &pt, scene);
+}
+
+void Scene2500::postInit(SceneObjectList *OwnerList) {
+	loadScene(2500);
+	SceneExt::postInit();
+
+	if (R2_GLOBALS._player._oldCharacterScene[R2_GLOBALS._player._characterIndex] == 3100)
+		R2_GLOBALS._v58CE2 = 0;
+
+	_stripManager.addSpeaker(&_quinnSpeaker);
+	_stripManager.addSpeaker(&_seekerSpeaker);
+	_stripManager.addSpeaker(&_mirandaSpeaker);
+	_stripManager.addSpeaker(&_webbsterSpeaker);
+
+	if (R2_GLOBALS._sceneManager._previousScene == -1)
+		R2_GLOBALS._sceneManager._previousScene = 2000;
+
+	_exit1.setDetails(Rect(30, 50, 85, 105), EXITCURSOR_W, 2000);
+	_exit1.setDest(Common::Point(84, 104));
+	R2_GLOBALS._player.postInit();
+	R2_GLOBALS._player.animate(ANIM_MODE_1, NULL);
+
+	if (R2_GLOBALS._player._characterIndex == 1) {
+		R2_GLOBALS._player.setVisage(11);
+		R2_GLOBALS._player._moveDiff = Common::Point(2, 1);
+	} else {
+		R2_GLOBALS._player.setVisage(21);
+		R2_GLOBALS._player._moveDiff = Common::Point(3, 2);
+	}
+
+	if (R2_GLOBALS._player._characterScene[1] == R2_GLOBALS._player._characterScene[2]) {
+		_actor1.postInit();
+		if (R2_GLOBALS._player._characterIndex == 1) {
+			_actor1.setup(21, 3, 1);
+			_actor1.setDetails(9002, 1, -1, -1, 1, NULL);
+		} else {
+			_actor1.setup(2008, 3, 1);
+			_actor1.changeZoom(50);
+			_actor1.setDetails(9001, 0, -1, -1, 1, NULL);
+		}
+		_actor1.setPosition(Common::Point(141, 94));
+	}
+
+	_item1.setDetails(Rect(0, 0, 320, 200), 2430, 0, -1, -1, 1, NULL);
+	R2_GLOBALS._player.disableControl();
+
+	if (R2_GLOBALS._player._oldCharacterScene[R2_GLOBALS._player._characterIndex] == 2000) {
+		_sceneMode = 10;
+		R2_GLOBALS._player.setPosition(Common::Point(20, 105));
+		Common::Point pt(95, 105);
+		NpcMover *mover = new NpcMover();
+		R2_GLOBALS._player.addMover(mover, &pt, this);
+	} else if (R2_GLOBALS._player._oldCharacterScene[R2_GLOBALS._player._characterIndex] == 3100) {
+		_sceneMode = 2500;
+		_actor2.postInit();
+		_actor3.postInit();
+		setAction(&_sequenceManager, this, 2500, &R2_GLOBALS._player, &_actor2, &_actor3, NULL);
+	} else {
+		R2_GLOBALS._player.setPosition(Common::Point(160, 150));
+		R2_GLOBALS._player.setStrip(3);
+		R2_GLOBALS._player.enableControl();
+	}
+	R2_GLOBALS._player._oldCharacterScene[R2_GLOBALS._player._characterIndex] = 2500;
+}
+
+void Scene2500::signal() {
+	switch (_sceneMode) {
+	case 11:
+		g_globals->_sceneManager.changeScene(2000);
+		break;
+	case 20:
+		R2_GLOBALS._player.disableControl();
+		_sceneMode = 2501;
+		setAction(&_sequenceManager, this, 2501, &R2_GLOBALS._player, &_actor2, &_actor3, NULL);
+		break;
+	case 2500:
+		_sceneMode = 20;
+		R2_GLOBALS._events.setCursor(CURSOR_CROSSHAIRS);
+		_stripManager.start(900, this);
+		break;
+	case 2501:
+		g_globals->_sceneManager.changeScene(1000);
+		break;
+	default:
+		R2_GLOBALS._player.enableControl();
+		break;
+	}
+}
 
 } // End of namespace Ringworld2
 } // End of namespace TsAGE
diff --git a/engines/tsage/ringworld2/ringworld2_scenes2.h b/engines/tsage/ringworld2/ringworld2_scenes2.h
index 81e8f58..82898a4 100644
--- a/engines/tsage/ringworld2/ringworld2_scenes2.h
+++ b/engines/tsage/ringworld2/ringworld2_scenes2.h
@@ -361,6 +361,28 @@ public:
 	virtual void remove();
 	virtual void signal();
 };
+
+class Scene2500 : public SceneExt {
+	class Exit1 : public SceneExit {
+	public:
+		virtual void changeScene();
+	};
+public:
+	SpeakerQuinn2500 _quinnSpeaker;
+	SpeakerSeeker2500 _seekerSpeaker;
+	SpeakerMiranda2500 _mirandaSpeaker;
+	SpeakerWebbster2500 _webbsterSpeaker;
+	NamedHotspot _item1;
+	SceneActor _actor1;
+	SceneActor _actor2;
+	SceneActor _actor3;
+	Exit1 _exit1;
+	SequenceManager _sequenceManager;
+
+	virtual void postInit(SceneObjectList *OwnerList = NULL);
+	virtual void signal();
+};
+
 } // End of namespace Ringworld2
 } // End of namespace TsAGE
 
diff --git a/engines/tsage/ringworld2/ringworld2_speakers.cpp b/engines/tsage/ringworld2/ringworld2_speakers.cpp
index 29a564e6..7f39e3d 100644
--- a/engines/tsage/ringworld2/ringworld2_speakers.cpp
+++ b/engines/tsage/ringworld2/ringworld2_speakers.cpp
@@ -682,6 +682,57 @@ SpeakerCaretaker2450::SpeakerCaretaker2450() {
 	_numFrames = 0;
 }
 
-} // End of namespace Ringworld2
+/*--------------------------------------------------------------------------*/
+
+SpeakerQuinn2500::SpeakerQuinn2500() {
+	_speakerName = "QUINN";
+	_color1 = 60;
+	_color2 = 0;
+	_fieldF6 = 0;
+	_textWidth = 300;
+	_hideObjects = false;
+	_object2 = NULL;
+	_displayMode = 1;
+	_numFrames = 0;
+}
+
+SpeakerSeeker2500::SpeakerSeeker2500() {
+	_speakerName = "SEEKER";
+	_color1 = 35;
+	_color2 = 0;
+	_fieldF6 = 0;
+	_textWidth = 300;
+	_hideObjects = false;
+	_object2 = NULL;
+	_displayMode = 1;
+	_numFrames = 0;
+}
+
+SpeakerMiranda2500::SpeakerMiranda2500() {
+	// Not in uppercase in the original
+	_speakerName = "Miranda";
+	_color1 = 154;
+	_color2 = 0;
+	_fieldF6 = 0;
+	_textWidth = 300;
+	_hideObjects = false;
+	_object2 = NULL;
+	_displayMode = 1;
+	_numFrames = 0;
+}
 
+SpeakerWebbster2500::SpeakerWebbster2500() {
+	// Not in uppercase in the original
+	_speakerName = "Webbster";
+	_color1 = 27;
+	_color2 = 0;
+	_fieldF6 = 0;
+	_textWidth = 300;
+	_hideObjects = false;
+	_object2 = NULL;
+	_displayMode = 1;
+	_numFrames = 0;
+}
+
+} // End of namespace Ringworld2
 } // End of namespace TsAGE
diff --git a/engines/tsage/ringworld2/ringworld2_speakers.h b/engines/tsage/ringworld2/ringworld2_speakers.h
index 1a7f951..e6a805f 100644
--- a/engines/tsage/ringworld2/ringworld2_speakers.h
+++ b/engines/tsage/ringworld2/ringworld2_speakers.h
@@ -175,6 +175,34 @@ public:
 
 	virtual Common::String getClassName() { return "SpeakerCaretaker2450"; }
 };
+
+class SpeakerQuinn2500 : public VisualSpeaker {
+public:
+	SpeakerQuinn2500();
+
+	virtual Common::String getClassName() { return "SpeakerQuinn2500"; }
+};
+
+class SpeakerSeeker2500 : public VisualSpeaker {
+public:
+	SpeakerSeeker2500();
+
+	virtual Common::String getClassName() { return "SpeakerSeeker2500"; }
+};
+
+class SpeakerMiranda2500 : public VisualSpeaker {
+public:
+	SpeakerMiranda2500();
+
+	virtual Common::String getClassName() { return "SpeakerMiranda2500"; }
+};
+
+class SpeakerWebbster2500 : public VisualSpeaker {
+public:
+	SpeakerWebbster2500();
+
+	virtual Common::String getClassName() { return "SpeakerWebbster2500"; }
+};
 } // End of namespace Ringworld2
 } // End of namespace TsAGE
 






More information about the Scummvm-git-logs mailing list