[Scummvm-cvs-logs] CVS: scummvm/sky autoroute.cpp,1.5,1.6
Robert G?ffringmann
lavosspawn at users.sourceforge.net
Sun Apr 27 18:06:13 CEST 2003
Update of /cvsroot/scummvm/scummvm/sky
In directory sc8-pr-cvs1:/tmp/cvs-serv31204/sky
Modified Files:
autoroute.cpp
Log Message:
fixed bug about checkBlock return value
Index: autoroute.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/sky/autoroute.cpp,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -d -r1.5 -r1.6
--- autoroute.cpp 27 Apr 2003 22:15:35 -0000 1.5
+++ autoroute.cpp 28 Apr 2003 01:05:55 -0000 1.6
@@ -40,15 +40,21 @@
uint16 SkyAutoRoute::checkBlock(uint16 *blockPos) {
- uint16 fieldVal, retVal = 0;
+ uint16 fieldVal, retVal = 0xFFFF;
fieldVal = blockPos[1]; // field to the right
if ((!(fieldVal & 0x8000)) && (fieldVal != 0)) retVal = fieldVal;
fieldVal = (blockPos - 1)[0]; // field to the left
- if ((!(fieldVal & 0x8000)) && (fieldVal != 0) && (fieldVal > retVal)) retVal = fieldVal;
+ if ((!(fieldVal & 0x8000)) && (fieldVal != 0)) {
+ if ((fieldVal > retVal) || (retVal == 0xFFFF)) retVal = fieldVal;
+ }
fieldVal = (blockPos + ROUTE_GRID_WIDTH)[0]; // upper field
- if ((!(fieldVal & 0x8000)) && (fieldVal != 0) && (fieldVal > retVal)) retVal = fieldVal;
+ if ((!(fieldVal & 0x8000)) && (fieldVal != 0)) {
+ if ((fieldVal > retVal) || (retVal == 0xFFFF)) retVal = fieldVal;
+ }
fieldVal = (blockPos - ROUTE_GRID_WIDTH)[0]; // upper field
- if ((!(fieldVal & 0x8000)) && (fieldVal != 0) && (fieldVal > retVal)) retVal = fieldVal;
+ if ((!(fieldVal & 0x8000)) && (fieldVal != 0)) {
+ if ((fieldVal > retVal) || (retVal == 0xFFFF)) retVal = fieldVal;
+ }
return retVal;
}
@@ -231,9 +237,9 @@
if (!routeSrcCalc[0]) {
// block wasn't yet done
blockRet = checkBlock(routeSrcCalc);
- if (blockRet > 0) {
+ if (blockRet != 0xFFFF) {
// this block is accessible
- routeSrcCalc[0] = blockRet;
+ routeSrcCalc[0] = blockRet+1;
gridChanged = true;
}
}
More information about the Scummvm-git-logs
mailing list