[Scummvm-cvs-logs] scummvm master -> 93619b96d33619014a0ed18878410ade85295caa

Strangerke Strangerke at scummvm.org
Sun Feb 12 13:09:36 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:
93619b96d3 TSAGE: R2R - Scene 1337: Implement 7 functions used by AI


Commit: 93619b96d33619014a0ed18878410ade85295caa
    https://github.com/scummvm/scummvm/commit/93619b96d33619014a0ed18878410ade85295caa
Author: Strangerke (strangerke at scummvm.org)
Date: 2012-02-12T04:09:07-08:00

Commit Message:
TSAGE: R2R - Scene 1337: Implement 7 functions used by AI

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



diff --git a/engines/tsage/ringworld2/ringworld2_logic.cpp b/engines/tsage/ringworld2/ringworld2_logic.cpp
index 6a986d5..83ca51f 100644
--- a/engines/tsage/ringworld2/ringworld2_logic.cpp
+++ b/engines/tsage/ringworld2/ringworld2_logic.cpp
@@ -113,6 +113,7 @@ Scene *Ringworld2Game::createScene(int sceneNumber) {
 		return new Scene1100();
 	case 1200:
 		return new Scene1200();
+	case 1337:
 	case 1330:
 		// Card Game
 		return new Scene1337();
diff --git a/engines/tsage/ringworld2/ringworld2_scenes1.cpp b/engines/tsage/ringworld2/ringworld2_scenes1.cpp
index 7857363..4395e5c 100644
--- a/engines/tsage/ringworld2/ringworld2_scenes1.cpp
+++ b/engines/tsage/ringworld2/ringworld2_scenes1.cpp
@@ -4033,34 +4033,71 @@ bool Scene1337::subC264B(int arg1) {
 	}
 }
 
-int Scene1337::subC2687(int arg1) {
-	warning("STUBBED Scene1337::subC2687()");
-	return -1;
+bool Scene1337::subC2687(int arg1) {
+	switch (arg1) {
+	case 11:
+	// No break on purpose
+	case 14:
+	// No break on purpose
+	case 16:
+	// No break on purpose
+	case 24:
+		return true;
+	default:
+		return false;
+	}
 }
 
 int Scene1337::subC26CB(int arg1, int arg2) {
-	warning("STUBBED Scene1337::subC26CB()");
+	if ((_arrunkObj1337[arg1]._arr1[arg2]._field34 > 1) && (_arrunkObj1337[arg1]._arr1[arg2]._field34 <= 9)) {
+		return arg2;
+	}
+
 	return -1;
 }
 
 int Scene1337::subC2719(int arg1) {
-	warning("STUBBED Scene1337::subC2719()");
+	for (int i = 0; i <= 3; i++) {
+		if (_arrunkObj1337[arg1]._arr1[i]._field34 == 1)
+			return i;
+	}
+
 	return -1;
 }
 
 int Scene1337::subC274D(int arg1) {
-	warning("STUBBED Scene1337::subC274D()");
+	for (int i = 0; i <= 3; i++) {
+		if (_arrunkObj1337[arg1]._arr1[i]._field34 == 13)
+			return i;
+	}
+
 	return -1;
 }
 
 int Scene1337::subC2781(int arg1) {
-	warning("STUBBED Scene1337::subC2781()");
+	for (int i = 0; i <= 3; i++) {
+		if (_arrunkObj1337[arg1]._arr1[i]._field34 == 25)
+			return i;
+	}
+
 	return -1;
 }
 
 int Scene1337::subC27B5(int arg1) {
-	warning("STUBBED Scene1337::subC27B5()");
-	return -1;
+	switch (arg1) {
+	case 11:
+	// No break on purpose
+	case 14:
+	// No break on purpose
+	case 16:
+	// No break on purpose
+	case 24:
+		return arg1;
+		break;
+	default:
+		return -1;
+		break;
+	}
 }
 
 int Scene1337::subC27F9(int arg1) {
@@ -4128,7 +4165,10 @@ int Scene1337::subC3E92(int arg1) {
 }
 
 void Scene1337::subC340B(unkObj1337sub1 *subObj1, unkObj1337sub1 *subObj2) {
-	warning("STUBBED Scene1337::subC340B()");
+	_field3EF0 = subObj1;
+	_field3EF4 = subObj2;
+
+	_item1.setAction(&_action6);
 }
 
 void Scene1337::subC3456(unkObj1337sub1 *subObj1, unkObj1337sub1 *subObj2) {
@@ -4392,7 +4432,6 @@ void Scene1337::subCCF26() {
 }
 
 void Scene1337::subCF31D() {
-	warning("STUBBED Scene1337::subCF31D()");
 	int tmpVal = 1;
 	bool found;
 	int count;
@@ -4456,7 +4495,7 @@ void Scene1337::subCF31D() {
 
 		for (int j = 0; j <= 7; j++) {
 			if (_arrunkObj1337[1]._arr2[j]._field34 == 1) {
-				if (subC2687(_arrunkObj1337[1]._arr3[0]._field34) == 0) {
+				if (!subC2687(_arrunkObj1337[1]._arr3[0]._field34)) {
 					count = 0;
 					for (int k = 0; k <= 7; k++) {
 						if ((_arrunkObj1337[1]._arr2[k]._field34 > 1) && (_arrunkObj1337[1]._arr2[k]._field34 <= 9))
@@ -4480,7 +4519,7 @@ void Scene1337::subCF31D() {
 	tmpVal = subC2719(1);
 	if (tmpVal != -1) {
 		for (int i = 0; i <= 7; i++) {
-			if ((_arrunkObj1337[1]._arr2[i]._field34 == 0) && (subC2687(_arrunkObj1337[1]._arr3[0]._field34) == 0)) {
+			if ((_arrunkObj1337[1]._arr2[i]._field34 == 0) && (!subC2687(_arrunkObj1337[1]._arr3[0]._field34))) {
 				subC340B(&_arrunkObj1337[1]._arr1[tmpVal], &_arrunkObj1337[1]._arr2[i]);
 				found = true;
 			}
diff --git a/engines/tsage/ringworld2/ringworld2_scenes1.h b/engines/tsage/ringworld2/ringworld2_scenes1.h
index 1e67029..d23ce00 100644
--- a/engines/tsage/ringworld2/ringworld2_scenes1.h
+++ b/engines/tsage/ringworld2/ringworld2_scenes1.h
@@ -317,7 +317,7 @@ public:
 	void subC20F9();
 	void subC2586();
 	bool subC264B(int arg1);
-	int  subC2687(int arg1);
+	bool subC2687(int arg1);
 	int  subC26CB(int arg1, int arg2);
 	int  subC2719(int arg1);
 	int  subC274D(int arg1);






More information about the Scummvm-git-logs mailing list