LOL: - added English floppy version to detection

- implemented opcode required for Yvel woods

svn-id: r41027
This commit is contained in:
Florian Kagerer 2009-05-30 12:30:13 +00:00
parent 33a924e766
commit f42b077061
3 changed files with 29 additions and 1 deletions

View File

@ -1004,6 +1004,22 @@ const KYRAGameDescription adGameDescs[] = {
LOL_FLOPPY_CMP_FLAGS
},
{
{
"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",

View File

@ -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);

View File

@ -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