diff options
author | Travis Howell | 2005-04-09 09:57:54 +0000 |
---|---|---|
committer | Travis Howell | 2005-04-09 09:57:54 +0000 |
commit | db43946f05b299bfc480bca391106e9750f04c6a (patch) | |
tree | 34f7eefab508cd1b5c4be43677d5396f2c7abdbb | |
parent | 866e0c8613375f997619b051f5ed81ff94ecd2a2 (diff) | |
download | scummvm-rg350-db43946f05b299bfc480bca391106e9750f04c6a.tar.gz scummvm-rg350-db43946f05b299bfc480bca391106e9750f04c6a.tar.bz2 scummvm-rg350-db43946f05b299bfc480bca391106e9750f04c6a.zip |
Add flObject lock/unlock support for HE games.
svn-id: r17474
-rw-r--r-- | scumm/script_v7he.cpp | 23 | ||||
-rw-r--r-- | scumm/script_v8.cpp | 4 |
2 files changed, 18 insertions, 9 deletions
diff --git a/scumm/script_v7he.cpp b/scumm/script_v7he.cpp index f3127a5314..ec5561edcc 100644 --- a/scumm/script_v7he.cpp +++ b/scumm/script_v7he.cpp @@ -510,10 +510,11 @@ void ScummEngine_v70he::o70_getActorRoom() { } void ScummEngine_v70he::o70_resourceRoutines() { - int resid, op; - op = fetchScriptByte(); + int objidx, resid, subOp; - switch (op) { + subOp = fetchScriptByte(); + + switch (subOp) { case 100: // SO_LOAD_SCRIPT resid = pop(); ensureResourceLoaded(rtScript, resid); @@ -607,7 +608,7 @@ void ScummEngine_v70he::o70_resourceRoutines() { case 122: case 123: case 203: - debug(5,"stub queueload (%d) resource %d", op, pop()); + debug(5,"stub queueload (%d) resource %d", subOp, pop()); break; case 159: resid = pop(); @@ -627,17 +628,25 @@ void ScummEngine_v70he::o70_resourceRoutines() { break; case 233: resid = pop(); - debug(5,"stub o70_resourceRoutines lock object %d", resid); + objidx = getObjectIndex(resid); + if (objidx == -1) + break; + res.lock(rtFlObject, _objs[objidx].fl_object_index); + debug(0,"stub o70_resourceRoutines lock object %d", resid); break; case 235: resid = pop(); - debug(5,"stub o70_resourceRoutines unlock object %d", resid); + objidx = getObjectIndex(resid); + if (objidx == -1) + break; + res.unlock(rtFlObject, _objs[objidx].fl_object_index); + debug(0,"stub o70_resourceRoutines unlock object %d", resid); break; case 239: // Used in airport break; default: - debug(1,"o70_resourceRoutines: default case %d", op); + debug(1,"o70_resourceRoutines: default case %d", subOp); } } diff --git a/scumm/script_v8.cpp b/scumm/script_v8.cpp index cd3e6d7f7e..6e29b88fff 100644 --- a/scumm/script_v8.cpp +++ b/scumm/script_v8.cpp @@ -1214,13 +1214,13 @@ void ScummEngine_v8::o8_kernelSetFunctions() { case 11: { // lockObject int objidx = getObjectIndex(args[1]); assert(objidx != -1); - res.lock(rtFlObject, objidx); + res.lock(rtFlObject, _objs[objidx].fl_object_index); break; } case 12: { // unlockObject int objidx = getObjectIndex(args[1]); assert(objidx != -1); - res.unlock(rtFlObject, objidx); + res.unlock(rtFlObject, _objs[objidx].fl_object_index); break; } case 13: // remapCostume |