diff options
author | Kari Salminen | 2008-06-30 03:33:08 +0000 |
---|---|---|
committer | Kari Salminen | 2008-06-30 03:33:08 +0000 |
commit | ecbf8d54ad78dac70f7838e7546196b3bb232c5a (patch) | |
tree | 04eeca7305da1aff0383c265d14b6f6a27deac6c /engines/cine/object.cpp | |
parent | 2779b851ab4328bce306b58e49df515bca58f1ab (diff) | |
download | scummvm-rg350-ecbf8d54ad78dac70f7838e7546196b3bb232c5a.tar.gz scummvm-rg350-ecbf8d54ad78dac70f7838e7546196b3bb232c5a.tar.bz2 scummvm-rg350-ecbf8d54ad78dac70f7838e7546196b3bb232c5a.zip |
Implemented resetGfxEntityEntry and made it used where appropriate (The function wasn't very easy to reverse engineer so it may have flaws still, but let's hope it doesn't ;-)).
svn-id: r32848
Diffstat (limited to 'engines/cine/object.cpp')
-rw-r--r-- | engines/cine/object.cpp | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/engines/cine/object.cpp b/engines/cine/object.cpp index 57a328eef9..61fecb55f8 100644 --- a/engines/cine/object.cpp +++ b/engines/cine/object.cpp @@ -179,8 +179,12 @@ void setupObject(byte objIdx, uint16 param1, uint16 param2, uint16 param3, uint1 objectTable[objIdx].mask = param3; objectTable[objIdx].frame = param4; - if (removeOverlay(objIdx, 0)) { - addOverlay(objIdx, 0); + if (g_cine->getGameType() == Cine::GType_OS) { + resetGfxEntityEntry(objIdx); + } else { // Future Wars + if (removeOverlay(objIdx, 0)) { + addOverlay(objIdx, 0); + } } } @@ -208,9 +212,12 @@ void modifyObjectParam(byte objIdx, byte paramIdx, int16 newValue) { case 3: objectTable[objIdx].mask = newValue; - // TODO: Check this part against disassembly - if (removeOverlay(objIdx, 0)) { - addOverlay(objIdx, 0); + if (g_cine->getGameType() == Cine::GType_OS) { // Operation Stealth specific + resetGfxEntityEntry(objIdx); + } else { // Future Wars specific + if (removeOverlay(objIdx, 0)) { + addOverlay(objIdx, 0); + } } break; case 4: |