aboutsummaryrefslogtreecommitdiff
path: root/engines/cine/object.cpp
diff options
context:
space:
mode:
authorKari Salminen2008-06-30 03:33:08 +0000
committerKari Salminen2008-06-30 03:33:08 +0000
commitecbf8d54ad78dac70f7838e7546196b3bb232c5a (patch)
tree04eeca7305da1aff0383c265d14b6f6a27deac6c /engines/cine/object.cpp
parent2779b851ab4328bce306b58e49df515bca58f1ab (diff)
downloadscummvm-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.cpp17
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: