diff options
author | Jonathan Gray | 2003-02-17 10:14:43 +0000 |
---|---|---|
committer | Jonathan Gray | 2003-02-17 10:14:43 +0000 |
commit | e909c6b86d681a1b7ce221cf2d84fca94b51751a (patch) | |
tree | 74bc61c589c76080cc2c826c0a249ad02f8cade8 /scumm/script_v6.cpp | |
parent | ecd84d8585f32a51981a54174ee38b182bcf0d1d (diff) | |
download | scummvm-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.cpp | 26 |
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; |