aboutsummaryrefslogtreecommitdiff
path: root/scumm/script_v6.cpp
diff options
context:
space:
mode:
authorJonathan Gray2003-02-17 10:14:43 +0000
committerJonathan Gray2003-02-17 10:14:43 +0000
commite909c6b86d681a1b7ce221cf2d84fca94b51751a (patch)
tree74bc61c589c76080cc2c826c0a249ad02f8cade8 /scumm/script_v6.cpp
parentecd84d8585f32a51981a54174ee38b182bcf0d1d (diff)
downloadscummvm-rg350-e909c6b86d681a1b7ce221cf2d84fca94b51751a.tar.gz
scummvm-rg350-e909c6b86d681a1b7ce221cf2d84fca94b51751a.tar.bz2
scummvm-rg350-e909c6b86d681a1b7ce221cf2d84fca94b51751a.zip
unstub stopTalking as the relevant function stopTalk() already exists in scummvm, add an attempt at findAllObjects that is hopefully not totally wrong, puttmoon now crashes on finding an AKOS block when it is expecting COST, some surgery may be required as all the AKOS stuff seems to be wrapped up in GF_AFTER_V7
svn-id: r6614
Diffstat (limited to 'scumm/script_v6.cpp')
-rw-r--r--scumm/script_v6.cpp26
1 files changed, 24 insertions, 2 deletions
diff --git a/scumm/script_v6.cpp b/scumm/script_v6.cpp
index b3ab94add2..372da5f4e2 100644
--- a/scumm/script_v6.cpp
+++ b/scumm/script_v6.cpp
@@ -319,7 +319,7 @@ void Scumm_v6::setupOpcodes()
OPCODE(o6_invalid),
/* DC */
OPCODE(o6_invalid),
- OPCODE(o6_invalid),
+ OPCODE(o6_findAllObjects),
OPCODE(o6_deleteFile),
OPCODE(o6_invalid),
/* E0 */
@@ -2902,7 +2902,7 @@ void Scumm_v6::o6_stampObject() {
}
void Scumm_v6::o6_stopTalking() {
- warning("o6_stopTalking: stub");
+ stopTalk();
}
void Scumm_v6::o6_openFile() {
@@ -2927,6 +2927,28 @@ void Scumm_v6::o6_deleteFile() {
_scriptPointer += len + 1;
}
+void Scumm_v6::o6_findAllObjects() {
+ // FIXME is this even remotely correct?
+ // see http://users.bigpond.net.au/tgray2/findallobjects.txt
+ // for asm
+ int a = pop();
+ int i = 1;
+
+ warning("stub o6_findAllObjects(%d)", a);
+ if (a != _currentRoom)
+ warning("o6_findAllObjects: current room is not %d", a);
+ writeVar(0, 0);
+ defineArray(0, 5, 0, _numLocalObjects);
+ defineArray(0, 0, 0, _numLocalObjects);
+
+ while(i < _numLocalObjects) {
+ writeArray(0, 0, i, _objs[i].obj_nr);
+ i++;
+ }
+
+ push(readVar(0));
+}
+
void Scumm_v6::decodeParseString(int m, int n)
{
byte b;