aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStrangerke2012-02-12 16:14:25 +0100
committerStrangerke2012-02-12 16:14:25 +0100
commit0ba3335674dcd88d34d1d2ab8453658191d31c38 (patch)
treea6dc199d88e6bab56e431171f94246f00198408e
parent15bbe3bff18178b0b66fb73a33782813f9e96999 (diff)
downloadscummvm-rg350-0ba3335674dcd88d34d1d2ab8453658191d31c38.tar.gz
scummvm-rg350-0ba3335674dcd88d34d1d2ab8453658191d31c38.tar.bz2
scummvm-rg350-0ba3335674dcd88d34d1d2ab8453658191d31c38.zip
TSAGE: R2R - Scene 1337: Implement 2 functions used by AI
-rw-r--r--engines/tsage/ringworld2/ringworld2_scenes1.cpp150
1 files changed, 148 insertions, 2 deletions
diff --git a/engines/tsage/ringworld2/ringworld2_scenes1.cpp b/engines/tsage/ringworld2/ringworld2_scenes1.cpp
index 4395e5c386..0c95ee3f25 100644
--- a/engines/tsage/ringworld2/ringworld2_scenes1.cpp
+++ b/engines/tsage/ringworld2/ringworld2_scenes1.cpp
@@ -4124,7 +4124,151 @@ int Scene1337::subC27F9(int arg1) {
}
void Scene1337::subC2835(int arg1) {
- warning("STUBBED Scene1337::subC2835()");
+ int i;
+ bool found = false;
+ switch (arg1) {
+ case 0:
+ for (i = 0; i <= 3; i++) {
+ if (subC27F9(_arrunkObj1337[arg1]._arr1[i]._field34) != -1) {
+ found = true;
+ break;
+ }
+ }
+
+ if (found)
+ break;
+
+ for (i = 0; i <= 3; i++) {
+ if (subC27B5(_arrunkObj1337[arg1]._arr1[i]._field34) != -1) {
+ found = true;
+ break;
+ }
+ }
+
+ if (found)
+ break;
+
+ for (i = 0; i <= 3; i++) {
+ if ((_arrunkObj1337[arg1]._arr1[i]._field34 > 1) && (_arrunkObj1337[arg1]._arr1[i]._field34 <= 9)) {
+ found = true;
+ break;
+ }
+ }
+
+ if (found)
+ break;
+
+ for (i = 0; i <= 3; i++) {
+ if ((_arrunkObj1337[arg1]._arr1[i]._field34 >= 26) && (_arrunkObj1337[arg1]._arr1[i]._field34 <= 33)) {
+ found = true;
+ break;
+ }
+ }
+
+ if (found)
+ break;
+
+ for (i = 0; i <= 3; i++) {
+ if (_arrunkObj1337[arg1]._arr1[i]._field34 == 1) {
+ found = true;
+ break;
+ }
+ }
+
+ if (found)
+ break;
+
+ for (i = 0; i <= 3; i++) {
+ if (_arrunkObj1337[arg1]._arr1[i]._field34 == 25) {
+ found = true;
+ break;
+ }
+ }
+
+ if (found)
+ break;
+
+ for (i = 0; i <= 3; i++) {
+ if (_arrunkObj1337[arg1]._arr1[i]._field34 == 13) {
+ found = true;
+ break;
+ }
+ }
+ break;
+ case 1:
+ for (i = 0; i <= 3; i++) {
+ if ((_arrunkObj1337[arg1]._arr1[i]._field34 >= 26) && (_arrunkObj1337[arg1]._arr1[i]._field34 <= 33)) {
+ found = true;
+ break;
+ }
+ }
+
+ if (found)
+ break;
+
+ for (i = 0; i <= 3; i++) {
+ if (_arrunkObj1337[arg1]._arr1[i]._field34 == 1) {
+ found = true;
+ break;
+ }
+ }
+
+ if (found)
+ break;
+
+ for (i = 0; i <= 3; i++) {
+ if ((_arrunkObj1337[arg1]._arr1[i]._field34 > 1) && (_arrunkObj1337[arg1]._arr1[i]._field34 <= 9)) {
+ found = true;
+ break;
+ }
+ }
+
+ if (found)
+ break;
+
+ for (i = 0; i <= 3; i++) {
+ if (subC27F9(_arrunkObj1337[arg1]._arr1[i]._field34) != -1) {
+ found = true;
+ break;
+ }
+ }
+
+ if (found)
+ break;
+
+ for (i = 0; i <= 3; i++) {
+ if (subC27B5(_arrunkObj1337[arg1]._arr1[i]._field34) != -1) {
+ found = true;
+ break;
+ }
+ }
+
+ if (found)
+ break;
+
+ for (i = 0; i <= 3; i++) {
+ if (_arrunkObj1337[arg1]._arr1[i]._field34 == 25) {
+ found = true;
+ break;
+ }
+ }
+
+ if (found)
+ break;
+
+ for (i = 0; i <= 3; i++) {
+ if (_arrunkObj1337[arg1]._arr1[i]._field34 == 13) {
+ found = true;
+ break;
+ }
+ }
+
+ break;
+ default:
+ return;
+ }
+
+ subC4A39(&_arrunkObj1337[arg1]._arr1[i]);
}
int Scene1337::subC2BF8(unkObj1337sub1 *subObj1, Common::Point *pt) {
@@ -4184,7 +4328,9 @@ void Scene1337::subC358E(unkObj1337sub1 *subObj1) {
}
void Scene1337::subC4A39(unkObj1337sub1 *subObj) {
- warning("STUBBED Scene1337::subC4A39()");
+ _field3EF0 = subObj;
+
+ _item1.setAction(&_action5);
}
void Scene1337::subC4CD2() {