[Scummvm-cvs-logs] SF.net SVN: scummvm: [21697] scummvm/trunk/engines/cine/script.cpp

eriktorbjorn at users.sourceforge.net eriktorbjorn at users.sourceforge.net
Sat Apr 8 10:20:02 CEST 2006


Revision: 21697
Author:   eriktorbjorn
Date:     2006-04-08 10:19:07 -0700 (Sat, 08 Apr 2006)
ViewCVS:  http://svn.sourceforge.net/scummvm/?rev=21697&view=rev

Log Message:
-----------
Made the "gotoIf" opcodes slightly easier to read.

Modified Paths:
--------------
    scummvm/trunk/engines/cine/script.cpp
Modified: scummvm/trunk/engines/cine/script.cpp
===================================================================
--- scummvm/trunk/engines/cine/script.cpp	2006-04-08 14:26:36 UTC (rev 21696)
+++ scummvm/trunk/engines/cine/script.cpp	2006-04-08 17:19:07 UTC (rev 21697)
@@ -34,6 +34,12 @@
 
 namespace Cine {
 
+enum {
+	kCmpEQ = (1 << 0),
+	kCmpGT = (1 << 1),
+	kCmpLT = (1 << 2)
+};
+
 prcLinkedListStruct *_currentScriptElement;
 byte *_currentScriptPtr;
 uint16 _currentScriptParams;
@@ -1017,15 +1023,15 @@
 	uint16 flag = 0;
 
 	if (a == b) {
-		flag |= 1;
+		flag |= kCmpEQ;
 	}
 
 	if (a > b) {
-		flag |= 2;
+		flag |= kCmpGT;
 	}
 
 	if (a < b) {
-		flag |= 4;
+		flag |= kCmpLT;
 	}
 
 	return flag;
@@ -1355,7 +1361,7 @@
 void o1_gotoIfSup() {
 	byte labelIdx = getNextByte();
 
-	if ((_currentScriptElement->compareResult & 2) && !(_currentScriptElement->compareResult & 1)) {
+	if (_currentScriptElement->compareResult == kCmpGT) {
 		assert(_currentScriptElement->stack[labelIdx] != -1);
 
 		DEBUG_SCRIPT(_currentLine, "if(>) goto %d (true)", labelIdx);
@@ -1368,7 +1374,7 @@
 void o1_gotoIfSupEqu() {
 	byte labelIdx = getNextByte();
 
-	if ((_currentScriptElement->compareResult & 2) || (_currentScriptElement->compareResult & 1)) {
+	if (_currentScriptElement->compareResult & (kCmpGT | kCmpEQ)) {
 		assert(_currentScriptElement->stack[labelIdx] != -1);
 
 		DEBUG_SCRIPT(_currentLine, "if(>=) goto %d (true)", labelIdx);
@@ -1381,7 +1387,7 @@
 void o1_gotoIfInf() {
 	byte labelIdx = getNextByte();
 
-	if ((_currentScriptElement->compareResult & 4) && !(_currentScriptElement->compareResult & 1)) {
+	if (_currentScriptElement->compareResult == kCmpLT) {
 		assert(_currentScriptElement->stack[labelIdx] != -1);
 
 		DEBUG_SCRIPT(_currentLine, "if(<) goto %d (true)", labelIdx);
@@ -1394,7 +1400,7 @@
 void o1_gotoIfInfEqu() {
 	byte labelIdx = getNextByte();
 
-	if ((_currentScriptElement->compareResult & 4) || (_currentScriptElement->compareResult & 1)) {
+	if (_currentScriptElement->compareResult & (kCmpLT | kCmpEQ)) {
 		assert(_currentScriptElement->stack[labelIdx] != -1);
 
 		DEBUG_SCRIPT(_currentLine, "if(<=) goto %d (true)", labelIdx);
@@ -1407,7 +1413,7 @@
 void o1_gotoIfEqu() {
 	byte labelIdx = getNextByte();
 
-	if (_currentScriptElement->compareResult & 1) {
+	if (_currentScriptElement->compareResult == kCmpEQ) {
 		assert(_currentScriptElement->stack[labelIdx] != -1);
 
 		DEBUG_SCRIPT(_currentLine, "if(==) goto %d (true)", labelIdx);
@@ -1420,7 +1426,7 @@
 void o1_gotoIfDiff() {
 	byte labelIdx = getNextByte();
 
-	if (!(_currentScriptElement->compareResult & 1)) {
+	if (_currentScriptElement->compareResult != kCmpEQ) {
 		assert(_currentScriptElement->stack[labelIdx] != -1);
 
 		DEBUG_SCRIPT(_currentLine, "if(!=) goto %d (true)", labelIdx);
@@ -1874,7 +1880,7 @@
 void o2_gotoIfSupNearest() {
 	byte labelIdx = getNextByte();
 
-	if ((_currentScriptElement->compareResult & 2) && !(_currentScriptElement->compareResult & 1)) {
+	if (_currentScriptElement->compareResult == kCmpGT) {
 		assert(_currentScriptElement->stack[labelIdx] != -1);
 
 		DEBUG_SCRIPT(_currentLine, "if(>) goto nearest %d (true)", labelIdx);
@@ -1887,7 +1893,7 @@
 void o2_gotoIfSupEquNearest() {
 	byte labelIdx = getNextByte();
 
-	if ((_currentScriptElement->compareResult & 2) || (_currentScriptElement->compareResult & 1)) {
+	if (_currentScriptElement->compareResult & (kCmpGT | kCmpEQ)) {
 		assert(_currentScriptElement->stack[labelIdx] != -1);
 
 		DEBUG_SCRIPT(_currentLine, "if(>=) goto nearest %d (true)", labelIdx);
@@ -1900,7 +1906,7 @@
 void o2_gotoIfInfNearest() {
 	byte labelIdx = getNextByte();
 
-	if ((_currentScriptElement->compareResult & 4) && !(_currentScriptElement->compareResult & 1)) {
+	if (_currentScriptElement->compareResult == kCmpLT) {
 		assert(_currentScriptElement->stack[labelIdx] != -1);
 
 		DEBUG_SCRIPT(_currentLine, "if(<) goto nearest %d (true)", labelIdx);
@@ -1913,7 +1919,7 @@
 void o2_gotoIfInfEquNearest() {
 	byte labelIdx = getNextByte();
 
-	if ((_currentScriptElement->compareResult & 4) || (_currentScriptElement->compareResult & 1)) {
+	if (_currentScriptElement->compareResult & (kCmpLT | kCmpEQ)) {
 		assert(_currentScriptElement->stack[labelIdx] != -1);
 
 		DEBUG_SCRIPT(_currentLine, "if(<=) goto nearest %d (true)", labelIdx);
@@ -1926,7 +1932,7 @@
 void o2_gotoIfEquNearest() {
 	byte labelIdx = getNextByte();
 
-	if (_currentScriptElement->compareResult & 1) {
+	if (_currentScriptElement->compareResult == kCmpEQ) {
 		assert(_currentScriptElement->stack[labelIdx] != -1);
 
 		DEBUG_SCRIPT(_currentLine, "if(==) goto nearest %d (true)", labelIdx);
@@ -1939,7 +1945,7 @@
 void o2_gotoIfDiffNearest() {
 	byte labelIdx = getNextByte();
 
-	if (!(_currentScriptElement->compareResult & 1)) {
+	if (_currentScriptElement->compareResult != kCmpEQ) {
 		assert(_currentScriptElement->stack[labelIdx] != -1);
 
 		DEBUG_SCRIPT(_currentLine, "if(!=) goto nearest %d (true)", labelIdx);


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