[Scummvm-cvs-logs] scummvm master -> 175e8e00fa79f0580efc33d54f02a70a856dce4e

Strangerke Strangerke at scummvm.org
Mon Jan 16 00:24:31 CET 2012


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:
175e8e00fa TSAGE: R2R - Scene 1550: Implement subA4D14()


Commit: 175e8e00fa79f0580efc33d54f02a70a856dce4e
    https://github.com/scummvm/scummvm/commit/175e8e00fa79f0580efc33d54f02a70a856dce4e
Author: Strangerke (strangerke at scummvm.org)
Date: 2012-01-15T15:24:02-08:00

Commit Message:
TSAGE: R2R - Scene 1550: Implement subA4D14()

Changed paths:
    engines/tsage/ringworld2/ringworld2_scenes1.cpp
    engines/tsage/ringworld2/ringworld2_scenes1.h



diff --git a/engines/tsage/ringworld2/ringworld2_scenes1.cpp b/engines/tsage/ringworld2/ringworld2_scenes1.cpp
index 7e39957..3510920 100644
--- a/engines/tsage/ringworld2/ringworld2_scenes1.cpp
+++ b/engines/tsage/ringworld2/ringworld2_scenes1.cpp
@@ -3056,8 +3056,188 @@ void Scene1550::saveCharacter(int characterIndex) {
 	SceneExt::saveCharacter(characterIndex);
 }
 
-void Scene1550::SceneActor1550::subA4D14(int arg1, int arg2) {
-	warning("Scene1550::subA4D14(%d, %d);", arg1, arg2);
+void Scene1550::SceneActor1550::subA4D14(int frameNumber, int strip) {
+	Scene1550 *scene = (Scene1550 *)R2_GLOBALS._sceneManager._scene;
+
+	postInit();
+	if (scene->_field414 == 2)
+		setup(1551, strip, frameNumber);
+	else
+		setup(1554, strip, frameNumber);
+
+	switch (strip) {
+	case 0:
+		switch (frameNumber - 1) {
+		case 0:
+			setup(1551, 1, 1);
+			setPosition(Common::Point(30, 67));
+			break;
+		case 1:
+			setup(1560, 1, 5);
+			setPosition(Common::Point(141, 54));
+			break;
+		case 2:
+			setup(1560, 2, 5);
+			setPosition(Common::Point(178, 54));
+			break;
+		case 3:
+			setup(1560, 2, 1);
+			setPosition(Common::Point(289, 67));
+			break;
+		case 4:
+			setup(1560, 2, 2);
+			setPosition(Common::Point(298, 132));
+			break;
+		case 5:
+			setup(1560, 1, 2);
+			setPosition(Common::Point(21, 132));
+			break;
+		case 6:
+			setup(1560, 2, 4);
+			setPosition(Common::Point(285, 123));
+			break;
+		case 7:
+			setup(1560, 1, 3);
+			setPosition(Common::Point(30, 111));
+			break;
+		case 8:
+			setup(1560, 2, 3);
+			setPosition(Common::Point(289, 111));
+			break;
+		case 9:
+			setup(1560, 1, 4);
+			setPosition(Common::Point(34, 123));
+			break;
+		default:
+			break;
+		}
+		fixPriority(1);
+		break;
+	case 1:
+		if (frameNumber == 3) {
+			setup(1553, 3, 1);
+			setPosition(Common::Point(48, 44));
+			fixPriority(2);
+		} else {
+			fixPriority(1);
+			setPosition(Common::Point(32, 17));
+		}
+
+		switch (frameNumber) {
+		case 2:
+			setDetails(1550, 3, -1, -1, 2, (SceneItem *) NULL);
+			break;
+		case 3:
+			setDetails(1550, 6, -1, -1, 2, (SceneItem *) NULL);
+			break;
+		default:
+			setDetails(1550, 72, -1, -1, 2, (SceneItem *) NULL);
+			break;
+		}
+		break;
+	case 2:
+		fixPriority(1);
+		switch (frameNumber) {
+		case 4:
+			setup(1553, 4, 1);
+			setPosition(Common::Point(48, 168));
+			break;
+		case 5:
+			setup(1553, 3, 2);
+			setPosition(Common::Point(20, 168));
+			fixPriority(250);
+			break;
+		default:
+			setPosition(Common::Point(28, 116));
+			break;
+		}
+
+		switch (frameNumber) {
+		case 2:
+			setDetails(1550, 3, -1, -1, 2, (SceneItem *) NULL);
+			break;
+		case 4:
+			setDetails(1550, 6, -1, -1, 2, (SceneItem *) NULL);
+			break;
+		case 5:
+			setDetails(1550, 6, -1, -1, 2, (SceneItem *) NULL);
+			break;
+		default:
+			setDetails(1550, 72, -1, -1, 2, (SceneItem *) NULL);
+			break;
+		}
+		break;
+	case 3:
+		switch (frameNumber) {
+		case 2:
+			fixPriority(2);
+			if (scene->_field414 == 2)
+				setup(1553, 2, 1);
+			else 
+				setup(1556, 2, 1);
+			setPosition(Common::Point(160, 44));
+			break;
+		case 3:
+			fixPriority(2);
+			setup(1553, 5, 1);
+			setPosition(Common::Point(178, 44));
+			break;
+		default:
+			fixPriority(1);
+			setPosition(Common::Point(160, 17));
+			break;
+		}
+
+		if (frameNumber == 1)
+			setDetails(1550, 3, -1, -1, 2, (SceneItem *) NULL);
+		else
+			setDetails(1550, 6, -1, -1, 2, (SceneItem *) NULL);
+		break;
+	case 4:
+		if (frameNumber == 2) {
+			fixPriority(250);
+			if (scene->_field414 == 2)
+				setup(1553, 1, 1);
+			else
+				setup(1556, 1, 1);
+		} else {
+			fixPriority(2);
+		}
+		
+		if (frameNumber != 1)
+			setDetails(1550, 6, -1, -1, 2, (SceneItem *) NULL);
+
+		setPosition(Common::Point(160, 168));
+		break;
+	case 5:
+		fixPriority(1);
+		setPosition(Common::Point(287, 17));
+
+		switch (frameNumber) {
+		case 2:
+			setDetails(1550, 3, -1, -1, 2, (SceneItem *) NULL);
+			break;
+		case 3:
+			setDetails(1550, 6, -1, -1, 2, (SceneItem *) NULL);
+			break;
+		default:
+			setDetails(1550, 72, -1, -1, 2, (SceneItem *) NULL);
+			break;
+		}
+		break;
+	case 6:
+		fixPriority(1);
+		setPosition(Common::Point(291, 116));
+
+		if (frameNumber == 2)
+			setDetails(1550, 3, -1, -1, 2, (SceneItem *) NULL);
+		else
+			setDetails(1550, 72, -1, -1, 2, (SceneItem *) NULL);
+		break;
+	default:
+		break;
+	}
+
 }
 
 void Scene1550::subA2B2F() {
diff --git a/engines/tsage/ringworld2/ringworld2_scenes1.h b/engines/tsage/ringworld2/ringworld2_scenes1.h
index 5ec6c7f..aa39545 100644
--- a/engines/tsage/ringworld2/ringworld2_scenes1.h
+++ b/engines/tsage/ringworld2/ringworld2_scenes1.h
@@ -229,7 +229,7 @@ public:
 class Scene1550 : public SceneExt {
 	class SceneActor1550 : public SceneActor {
 	public:
-		void subA4D14(int arg1, int arg2);
+		void subA4D14(int frameNumber, int strip);
 	};
 
 	class UnkObj15501 : public SceneActor {






More information about the Scummvm-git-logs mailing list