aboutsummaryrefslogtreecommitdiff
path: root/engines
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
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')
-rw-r--r--engines/kyra/detection.cpp16
-rw-r--r--engines/kyra/lol.h1
-rw-r--r--engines/kyra/script_lol.cpp13
3 files changed, 29 insertions, 1 deletions
diff --git a/engines/kyra/detection.cpp b/engines/kyra/detection.cpp
index 0c05df5970..f72d58d1c6 100644
--- a/engines/kyra/detection.cpp
+++ b/engines/kyra/detection.cpp
@@ -1009,6 +1009,22 @@ const KYRAGameDescription adGameDescs[] = {
"lol",
"Extracted",
{
+ { "GENERAL.PAK", 0, "2aaa30e120c08af87196820e9dd4bf73", -1 },
+ { "CHAPTER7.PAK", 0, "eb92bf7ebb4e890add1233a6b0c810ff", -1 },
+ { 0, 0, 0, 0 }
+ },
+ Common::EN_ANY,
+ Common::kPlatformPC,
+ ADGF_NO_FLAGS
+ },
+ LOL_FLOPPY_FLAGS
+ },
+
+ {
+ {
+ "lol",
+ "Extracted",
+ {
{ "GENERAL.PAK", 0, "996e66e81054d36249907a1d8158da3d", -1 },
{ "CHAPTER7.PAK", 0, "cabee57f00d6d84b65a732b6868a4959", -1 },
{ 0, 0, 0, 0 }
diff --git a/engines/kyra/lol.h b/engines/kyra/lol.h
index 90bd8643f5..803b17e9c6 100644
--- a/engines/kyra/lol.h
+++ b/engines/kyra/lol.h
@@ -730,6 +730,7 @@ private:
int olol_prepareSpecialScene(EMCState *script);
int olol_restoreAfterSpecialScene(EMCState *script);
int olol_assignCustomSfx(EMCState *script);
+ int olol_findAssignedMonster(EMCState *script);
int olol_checkBlockForMonster(EMCState *script);
int olol_transformRegion(EMCState *script);
int olol_calcCoordinatesAddDirectionOffset(EMCState *script);
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