[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