aboutsummaryrefslogtreecommitdiff
path: root/engines/kyra/script_lol.cpp
diff options
context:
space:
mode:
authorFlorian Kagerer2009-05-30 12:30:13 +0000
committerFlorian Kagerer2009-05-30 12:30:13 +0000
commitf42b07706104112b2a0480e2894dc2bf02a90a88 (patch)
tree37c13b0335f03352aa65d37e26c6c8a6611b6ebf /engines/kyra/script_lol.cpp
parent33a924e766627e97caf926f6699860cc1a45e839 (diff)
downloadscummvm-rg350-f42b07706104112b2a0480e2894dc2bf02a90a88.tar.gz
scummvm-rg350-f42b07706104112b2a0480e2894dc2bf02a90a88.tar.bz2
scummvm-rg350-f42b07706104112b2a0480e2894dc2bf02a90a88.zip
LOL: - added English floppy version to detection
- implemented opcode required for Yvel woods svn-id: r41027
Diffstat (limited to 'engines/kyra/script_lol.cpp')
-rw-r--r--engines/kyra/script_lol.cpp13
1 files changed, 12 insertions, 1 deletions
diff --git a/engines/kyra/script_lol.cpp b/engines/kyra/script_lol.cpp
index c0292425cd..188ba681ee 100644
--- a/engines/kyra/script_lol.cpp
+++ b/engines/kyra/script_lol.cpp
@@ -1791,6 +1791,17 @@ int LoLEngine::olol_assignCustomSfx(EMCState *script) {
return 0;
}
+int LoLEngine::olol_findAssignedMonster(EMCState *script) {
+ debugC(3, kDebugLevelScriptFuncs, "LoLEngine::olol_findAssignedMonster(%p) (%d, %d)", (const void *)script, stackPos(0), stackPos(1));
+ uint16 o = stackPos(1) == -1 ? _levelBlockProperties[stackPos(0)].assignedObjects : findObject(stackPos(1))->nextAssignedObject;
+ while (o) {
+ if (o & 0x8000)
+ return o & 0x7fff;
+ o = findObject(o)->nextAssignedObject;
+ }
+ return -1;
+}
+
int LoLEngine::olol_checkBlockForMonster(EMCState *script) {
debugC(3, kDebugLevelScriptFuncs, "LoLEngine::olol_checkBlockForMonster(%p) (%d, %d)", (const void *)script, stackPos(0), stackPos(1));
uint16 block = stackPos(0);
@@ -2511,7 +2522,7 @@ void LoLEngine::setupOpcodeTable() {
// 0x94
Opcode(olol_assignCustomSfx);
OpcodeUnImpl();
- OpcodeUnImpl();
+ Opcode(olol_findAssignedMonster);
Opcode(olol_checkBlockForMonster);
// 0x98