[Scummvm-cvs-logs] SF.net SVN: scummvm: [29754] scummvm/trunk/engines/cine/object.cpp
thebluegr at users.sourceforge.net
thebluegr at users.sourceforge.net
Sat Dec 8 03:24:13 CET 2007
Revision: 29754
http://scummvm.svn.sourceforge.net/scummvm/?rev=29754&view=rev
Author: thebluegr
Date: 2007-12-07 18:24:12 -0800 (Fri, 07 Dec 2007)
Log Message:
-----------
Cleanup and simplification
Modified Paths:
--------------
scummvm/trunk/engines/cine/object.cpp
Modified: scummvm/trunk/engines/cine/object.cpp
===================================================================
--- scummvm/trunk/engines/cine/object.cpp 2007-12-07 23:49:27 UTC (rev 29753)
+++ scummvm/trunk/engines/cine/object.cpp 2007-12-08 02:24:12 UTC (rev 29754)
@@ -213,65 +213,12 @@
}
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 @@
byte compareObjectParam(byte objIdx, byte type, int16 value) {
byte compareResult = 0;
+ int16 objectParam = getObjectParam(objIdx, type);
- 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);
+ if (objectParam > value) {
+ compareResult |= kCmpGT;
+ } else if (objectParam < value) {
+ compareResult |= kCmpLT;
+ } else {
+ compareResult |= kCmpEQ;
}
return compareResult;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Scummvm-git-logs
mailing list