aboutsummaryrefslogtreecommitdiff
path: root/engines/cine/object.cpp
diff options
context:
space:
mode:
authorFilippos Karapetis2007-12-08 02:24:12 +0000
committerFilippos Karapetis2007-12-08 02:24:12 +0000
commitc488384f194c13a04c99e536d98f1be1db57fdd4 (patch)
tree496d6dd0c8c2430cacae622200d6de625f0ec47b /engines/cine/object.cpp
parent0522c55faf3837f8e018a270e62f01b4d13b9683 (diff)
downloadscummvm-rg350-c488384f194c13a04c99e536d98f1be1db57fdd4.tar.gz
scummvm-rg350-c488384f194c13a04c99e536d98f1be1db57fdd4.tar.bz2
scummvm-rg350-c488384f194c13a04c99e536d98f1be1db57fdd4.zip
Cleanup and simplification
svn-id: r29754
Diffstat (limited to 'engines/cine/object.cpp')
-rw-r--r--engines/cine/object.cpp141
1 files changed, 11 insertions, 130 deletions
diff --git a/engines/cine/object.cpp b/engines/cine/object.cpp
index a549abff89..5b1ad6f96f 100644
--- a/engines/cine/object.cpp
+++ b/engines/cine/object.cpp
@@ -213,65 +213,12 @@ void setupObject(byte objIdx, uint16 param1, uint16 param2, uint16 param3, uint1
}
void subObjectParam(byte objIdx, byte paramIdx, int16 newValue) {
- paramIdx--;
-
- assert(paramIdx <= 5);
-
- switch (paramIdx) {
- case 0:
- objectTable[objIdx].x -= newValue;
- break;
- case 1:
- objectTable[objIdx].y -= newValue;
- break;
- case 2:
- objectTable[objIdx].mask -= newValue;
-
- if (!removeOverlayElement(objIdx, 0)) {
- loadOverlayElement(objIdx, 0);
- }
- break;
- case 3:
- objectTable[objIdx].frame -= newValue;
- break;
- case 4:
- objectTable[objIdx].costume -= newValue;
- break;
- case 5:
- objectTable[objIdx].part -= newValue;
- break;
- }
+ addObjectParam(objIdx, paramIdx, -newValue);
}
void addObjectParam(byte objIdx, byte paramIdx, int16 newValue) {
- paramIdx--;
-
- assert(paramIdx <= 5);
-
- switch (paramIdx) {
- case 0:
- objectTable[objIdx].x += newValue;
- break;
- case 1:
- objectTable[objIdx].y += newValue;
- break;
- case 2:
- objectTable[objIdx].mask += newValue;
-
- if (!removeOverlayElement(objIdx, 0)) {
- loadOverlayElement(objIdx, 0);
- }
- break;
- case 3:
- objectTable[objIdx].frame += newValue;
- break;
- case 4:
- objectTable[objIdx].costume += newValue;
- break;
- case 5:
- objectTable[objIdx].part += newValue;
- break;
- }
+ int16 currentValue = getObjectParam(objIdx, paramIdx);
+ modifyObjectParam(objIdx, paramIdx, currentValue + newValue);
}
void modifyObjectParam(byte objIdx, byte paramIdx, int16 newValue) {
@@ -311,80 +258,14 @@ void modifyObjectParam(byte objIdx, byte paramIdx, int16 newValue) {
byte compareObjectParam(byte objIdx, byte type, int16 value) {
byte compareResult = 0;
-
- switch (type - 1) {
- case 0:
- if (objectTable[objIdx].x == value) {
- compareResult |= kCmpEQ;
- }
-
- if (objectTable[objIdx].x > value) {
- compareResult |= kCmpGT;
- }
-
- if (objectTable[objIdx].x < value) {
- compareResult |= kCmpLT;
- }
-
- break;
- case 1:
- if (objectTable[objIdx].y == value) {
- compareResult |= kCmpEQ;
- }
-
- if (objectTable[objIdx].y > value) {
- compareResult |= kCmpGT;
- }
-
- if (objectTable[objIdx].y < value) {
- compareResult |= kCmpLT;
- }
-
- break;
- case 2:
- if (objectTable[objIdx].mask == value) {
- compareResult |= kCmpEQ;
- }
-
- if (objectTable[objIdx].mask > value) {
- compareResult |= kCmpGT;
- }
-
- if (objectTable[objIdx].mask < value) {
- compareResult |= kCmpLT;
- }
-
- break;
- case 3:
- if (objectTable[objIdx].frame == value) {
- compareResult |= kCmpEQ;
- }
-
- if (objectTable[objIdx].frame > value) {
- compareResult |= kCmpGT;
- }
-
- if (objectTable[objIdx].frame < value) {
- compareResult |= kCmpLT;
- }
-
- break;
- case 4:
- if (objectTable[objIdx].costume == value) {
- compareResult |= kCmpEQ;
- }
-
- if (objectTable[objIdx].costume > value) {
- compareResult |= kCmpGT;
- }
-
- if (objectTable[objIdx].costume < value) {
- compareResult |= kCmpLT;
- }
-
- break;
- default:
- error("Unsupported compare type: %d in compareObjectParam", type - 1);
+ int16 objectParam = getObjectParam(objIdx, type);
+
+ if (objectParam > value) {
+ compareResult |= kCmpGT;
+ } else if (objectParam < value) {
+ compareResult |= kCmpLT;
+ } else {
+ compareResult |= kCmpEQ;
}
return compareResult;