[Scummvm-cvs-logs] SF.net SVN: scummvm:[53946] scummvm/trunk/engines/gob

drmccoy at users.sourceforge.net drmccoy at users.sourceforge.net
Sat Oct 30 19:24:53 CEST 2010


Revision: 53946
          http://scummvm.svn.sourceforge.net/scummvm/?rev=53946&view=rev
Author:   drmccoy
Date:     2010-10-30 17:24:52 +0000 (Sat, 30 Oct 2010)

Log Message:
-----------
GOB: Minor map cleanup

- Move enum Direction out of class Map
- Convert kLeft et al into a proper enum RelativeDirection

Modified Paths:
--------------
    scummvm/trunk/engines/gob/goblin_v1.cpp
    scummvm/trunk/engines/gob/goblin_v2.cpp
    scummvm/trunk/engines/gob/goblin_v4.cpp
    scummvm/trunk/engines/gob/map.cpp
    scummvm/trunk/engines/gob/map.h

Modified: scummvm/trunk/engines/gob/goblin_v1.cpp
===================================================================
--- scummvm/trunk/engines/gob/goblin_v1.cpp	2010-10-30 16:04:43 UTC (rev 53945)
+++ scummvm/trunk/engines/gob/goblin_v1.cpp	2010-10-30 17:24:52 UTC (rev 53946)
@@ -176,7 +176,7 @@
 		nextAct = (int16) _vm->_map->getDirection(_vm->_map->_curGoblinX,
 				_vm->_map->_curGoblinY, _vm->_map->_destX, _vm->_map->_destY);
 
-		if (nextAct == Map::kDirNone)
+		if (nextAct == kDirNone)
 			_pathExistence = 0;
 	} else if (_pathExistence == 3) {
 		_vm->_map->_curGoblinX = _gobPositions[_currentGoblin].x;
@@ -238,11 +238,11 @@
 		nextAct = 0x4DC8;
 
 	switch (nextAct) {
-	case Map::kDirW:
+	case kDirW:
 		gobDesc->nextState = rotateState(gobDesc->curLookDir, 0);
 		break;
 
-	case Map::kDirE:
+	case kDirE:
 		gobDesc->nextState = rotateState(gobDesc->curLookDir, 4);
 		break;
 
@@ -254,7 +254,7 @@
 		gobDesc->nextState = 23;
 		break;
 
-	case Map::kDirN:
+	case kDirN:
 		if ((_vm->_map->getPass(_vm->_map->_curGoblinX, _vm->_map->_curGoblinY - 1) == 6) &&
 		    (_currentGoblin != 1)) {
 			_pathExistence = 0;
@@ -275,7 +275,7 @@
 		gobDesc->nextState = rotateState(gobDesc->curLookDir, 2);
 		break;
 
-	case Map::kDirS:
+	case kDirS:
 		if ((_vm->_map->getPass(_vm->_map->_curGoblinX, _vm->_map->_curGoblinY + 1) == 6) &&
 		    (_currentGoblin != 1)) {
 			_pathExistence = 0;
@@ -296,7 +296,7 @@
 		gobDesc->nextState = rotateState(gobDesc->curLookDir, 6);
 		break;
 
-	case Map::kDirSE:
+	case kDirSE:
 		if ((_vm->_map->getPass(_vm->_map->_curGoblinX + 1, _vm->_map->_curGoblinY + 1) == 6) &&
 		    (_currentGoblin != 1)) {
 			_pathExistence = 0;
@@ -310,7 +310,7 @@
 		gobDesc->nextState = rotateState(gobDesc->curLookDir, 4);
 		break;
 
-	case Map::kDirSW:
+	case kDirSW:
 		if ((_vm->_map->getPass(_vm->_map->_curGoblinX - 1, _vm->_map->_curGoblinY + 1) == 6) &&
 		    (_currentGoblin != 1)) {
 			_pathExistence = 0;
@@ -324,7 +324,7 @@
 		gobDesc->nextState = rotateState(gobDesc->curLookDir, 0);
 		break;
 
-	case Map::kDirNW:
+	case kDirNW:
 		if ((_vm->_map->getPass(_vm->_map->_curGoblinX - 1, _vm->_map->_curGoblinY - 1) == 6) &&
 		    (_currentGoblin != 1)) {
 			_pathExistence = 0;
@@ -338,7 +338,7 @@
 		gobDesc->nextState = rotateState(gobDesc->curLookDir, 0);
 		break;
 
-	case Map::kDirNE:
+	case kDirNE:
 		if ((_vm->_map->getPass(_vm->_map->_curGoblinX + 1, _vm->_map->_curGoblinY - 1) == 6) &&
 		    (_currentGoblin != 1)) {
 			_pathExistence = 0;

Modified: scummvm/trunk/engines/gob/goblin_v2.cpp
===================================================================
--- scummvm/trunk/engines/gob/goblin_v2.cpp	2010-10-30 16:04:43 UTC (rev 53945)
+++ scummvm/trunk/engines/gob/goblin_v2.cpp	2010-10-30 17:24:52 UTC (rev 53946)
@@ -142,12 +142,12 @@
 	animData->destY = gobDestY;
 	animData->order = gobY;
 
-	Map::Direction dir = Map::kDirNone;
+	Direction dir = kDirNone;
 
 	if (animData->pathExistence == 1) {
 
 		dir = _vm->_map->getDirection(gobX, gobY, destX, destY);
-		if (dir == Map::kDirNone)
+		if (dir == kDirNone)
 			animData->pathExistence = 0;
 		if ((gobX == gobDestX) && (gobY == gobDestY))
 			animData->pathExistence = 4;
@@ -218,7 +218,7 @@
 	obj->gobDestY  = gobDestY;
 
 	switch (dir) {
-	case Map::kDirNW:
+	case kDirNW:
 		animData->nextState = 1;
 		if (_vm->_map->_screenWidth == 640) {
 			if (_vm->_map->getPass(obj->goblinX, obj->goblinY) == 10)
@@ -228,7 +228,7 @@
 		}
 		break;
 
-	case Map::kDirN:
+	case kDirN:
 		animData->nextState =
 			(animData->curLookDir == 2) ? 2 : rotateState(animData->curLookDir, 2);
 		if (_vm->_map->_screenWidth == 640) {
@@ -248,7 +248,7 @@
 		}
 		break;
 
-	case Map::kDirNE:
+	case kDirNE:
 		animData->nextState = 3;
 		if (_vm->_map->_screenWidth == 640) {
 			if (_vm->_map->getPass(obj->goblinX, obj->goblinY) == 10)
@@ -258,15 +258,15 @@
 		}
 		break;
 
-	case Map::kDirW:
+	case kDirW:
 		animData->nextState = rotateState(animData->curLookDir, 0);
 		break;
 
-	case Map::kDirE:
+	case kDirE:
 		animData->nextState = rotateState(animData->curLookDir, 4);
 		break;
 
-	case Map::kDirSW:
+	case kDirSW:
 		animData->nextState = 7;
 		if (_vm->_map->_screenWidth == 640) {
 			if (_vm->_map->getPass(obj->goblinX, obj->goblinY) == 10)
@@ -276,7 +276,7 @@
 		}
 		break;
 
-	case Map::kDirS:
+	case kDirS:
 		animData->nextState =
 			(animData->curLookDir == 6) ? 6 : rotateState(animData->curLookDir, 6);
 		if (_vm->_map->_screenWidth == 640) {
@@ -287,7 +287,7 @@
 		}
 		break;
 
-	case Map::kDirSE:
+	case kDirSE:
 		animData->nextState = 5;
 		if (_vm->_map->_screenWidth == 640) {
 			if (_vm->_map->getPass(obj->goblinX, obj->goblinY) == 10)

Modified: scummvm/trunk/engines/gob/goblin_v4.cpp
===================================================================
--- scummvm/trunk/engines/gob/goblin_v4.cpp	2010-10-30 16:04:43 UTC (rev 53945)
+++ scummvm/trunk/engines/gob/goblin_v4.cpp	2010-10-30 17:24:52 UTC (rev 53946)
@@ -125,18 +125,18 @@
 
 	if (_vm->_map->_widthByte == 4) {
 		switch (dir) {
-		case Map::kDirNW:
-			animData->nextState = turnState(animData->state, Map::kDirNW);
+		case kDirNW:
+			animData->nextState = turnState(animData->state, kDirNW);
 			if ((_vm->_map->getPass(obj->goblinX, obj->goblinY) == 10) &&
 					(animData->nextState == 1))
 				animData->nextState = 40;
 			if (_vm->_map->getPass(obj->goblinX - 1, obj->goblinY - 2) != 10)
-				animData->nextState = turnState(animData->state, Map::kDirNW);
+				animData->nextState = turnState(animData->state, kDirNW);
 			break;
 
-		case Map::kDirN:
+		case kDirN:
 			animData->nextState =
-				(animData->curLookDir == 2) ? 2 : turnState(animData->state, Map::kDirN);
+				(animData->curLookDir == 2) ? 2 : turnState(animData->state, kDirN);
 			if (_vm->_map->getPass(obj->goblinX, obj->goblinY) == 10) {
 				if (_vm->_map->getPass(obj->goblinX - 1, obj->goblinY - 2) != 10) {
 					if (_vm->_map->getPass(obj->goblinX + 1, obj->goblinY - 2) == 10)
@@ -154,35 +154,35 @@
 				animData->nextState = 26;
 			break;
 
-		case Map::kDirNE:
-			animData->nextState = turnState(animData->state, Map::kDirNE);
+		case kDirNE:
+			animData->nextState = turnState(animData->state, kDirNE);
 			if ((_vm->_map->getPass(obj->goblinX, obj->goblinY) == 10) &&
 			    (animData->nextState == 3))
 				animData->nextState = 42;
 			if (_vm->_map->getPass(obj->goblinX + 1, obj->goblinY - 2) != 10)
-				animData->nextState = turnState(animData->state, Map::kDirNE);
+				animData->nextState = turnState(animData->state, kDirNE);
 			break;
 
-		case Map::kDirW:
-			animData->nextState = turnState(animData->state, Map::kDirW);
+		case kDirW:
+			animData->nextState = turnState(animData->state, kDirW);
 			break;
 
-		case Map::kDirE:
-			animData->nextState = turnState(animData->state, Map::kDirE);
+		case kDirE:
+			animData->nextState = turnState(animData->state, kDirE);
 			break;
 
-		case Map::kDirSW:
-			animData->nextState = turnState(animData->state, Map::kDirSW);
+		case kDirSW:
+			animData->nextState = turnState(animData->state, kDirSW);
 			if ((_vm->_map->getPass(obj->goblinX, obj->goblinY) == 10) &&
 			    (animData->nextState == 7))
 				animData->nextState = 41;
 			if (_vm->_map->getPass(obj->goblinX - 1, obj->goblinY) != 10)
-				animData->nextState = turnState(animData->state, Map::kDirSW);
+				animData->nextState = turnState(animData->state, kDirSW);
 			break;
 
-		case Map::kDirS:
+		case kDirS:
 			animData->nextState =
-				(animData->curLookDir == 6) ? 6 : turnState(animData->state, Map::kDirS);
+				(animData->curLookDir == 6) ? 6 : turnState(animData->state, kDirS);
 			if (_vm->_map->getPass(obj->goblinX, obj->goblinY) == 10) {
 				if (_vm->_map->getPass(obj->goblinX - 1, obj->goblinY + 2) != 10) {
 					if (_vm->_map->getPass(obj->goblinX + 1, obj->goblinY + 2) == 10)
@@ -201,13 +201,13 @@
 				animData->nextState = 27;
 			break;
 
-		case Map::kDirSE:
-			animData->nextState = turnState(animData->state, Map::kDirSE);
+		case kDirSE:
+			animData->nextState = turnState(animData->state, kDirSE);
 			if ((_vm->_map->getPass(obj->goblinX, obj->goblinY) == 10) &&
 			    (animData->nextState == 5))
 				animData->nextState = 43;
 			if (_vm->_map->getPass(obj->goblinX + 1, obj->goblinY) != 10)
-				animData->nextState = turnState(animData->state, Map::kDirSE);
+				animData->nextState = turnState(animData->state, kDirSE);
 			break;
 
 		default:
@@ -260,7 +260,7 @@
 		}
 	} else {
 		switch (dir) {
-		case Map::kDirNW:
+		case kDirNW:
 			animData->nextState = 1;
 			if (_vm->_map->_screenWidth == 640) {
 				if (_vm->_map->getPass(obj->goblinX, obj->goblinY) == 10)
@@ -270,7 +270,7 @@
 			}
 			break;
 
-		case Map::kDirN:
+		case kDirN:
 			animData->nextState =
 				(animData->curLookDir == 2) ? 2 : rotateState(animData->curLookDir, 2);
 			if (_vm->_map->_screenWidth == 640) {
@@ -289,7 +289,7 @@
 			}
 			break;
 
-		case Map::kDirNE:
+		case kDirNE:
 			animData->nextState =	3;
 			if (_vm->_map->_screenWidth == 640) {
 				if (_vm->_map->getPass(obj->goblinX, obj->goblinY) == 10)
@@ -299,15 +299,15 @@
 			}
 			break;
 
-		case Map::kDirW:
+		case kDirW:
 			animData->nextState = rotateState(animData->curLookDir, 0);
 			break;
 
-		case Map::kDirE:
+		case kDirE:
 			animData->nextState = rotateState(animData->curLookDir, 4);
 			break;
 
-		case Map::kDirSW:
+		case kDirSW:
 			animData->nextState = 7;
 			if (_vm->_map->_screenWidth == 640) {
 				if (_vm->_map->getPass(obj->goblinX, obj->goblinY) == 10)
@@ -317,7 +317,7 @@
 			}
 			break;
 
-		case Map::kDirS:
+		case kDirS:
 			animData->nextState =
 				(animData->curLookDir == 6) ? 6 : rotateState(animData->curLookDir, 6);
 			if (_vm->_map->_screenWidth == 640) {
@@ -328,7 +328,7 @@
 			}
 			break;
 
-		case Map::kDirSE:
+		case kDirSE:
 			animData->nextState = 5;
 			if (_vm->_map->_screenWidth == 640) {
 				if (_vm->_map->getPass(obj->goblinX, obj->goblinY) == 10)
@@ -589,35 +589,35 @@
 	}
 
 	switch (dir) {
-	case Map::kDirNW:
+	case kDirNW:
 		cx = 1;
 		break;
 
-	case Map::kDirN:
+	case kDirN:
 		cx = 2;
 		break;
 
-	case Map::kDirNE:
+	case kDirNE:
 		cx = 3;
 		break;
 
-	case Map::kDirW:
+	case kDirW:
 		cx = 0;
 		break;
 
-	case Map::kDirE:
+	case kDirE:
 		cx = 4;
 		break;
 
-	case Map::kDirSW:
+	case kDirSW:
 		cx = 7;
 		break;
 
-	case Map::kDirS:
+	case kDirS:
 		cx = 6;
 		break;
 
-	case Map::kDirSE:
+	case kDirSE:
 		cx = 5;
 		break;
 	}

Modified: scummvm/trunk/engines/gob/map.cpp
===================================================================
--- scummvm/trunk/engines/gob/map.cpp	2010-10-30 16:04:43 UTC (rev 53945)
+++ scummvm/trunk/engines/gob/map.cpp	2010-10-30 17:24:52 UTC (rev 53946)
@@ -83,14 +83,7 @@
 		setItem(x, y, (getItem(x, y) & 0x00FF) | (id << 8));
 }
 
-enum {
-	kLeft  = (1 << 0),
-	kUp    = (1 << 1),
-	kRight = (1 << 2),
-	kDown  = (1 << 3)
-};
-
-Map::Direction Map::getDirection(int16 x0, int16 y0, int16 x1, int16 y1) {
+Direction Map::getDirection(int16 x0, int16 y0, int16 x1, int16 y1) {
 	if ((x0 == x1) && (y0 == y1))
 		// Already at the destination
 		return kDirNone;
@@ -99,36 +92,36 @@
 		// Destination out of range
 		return kDirNone;
 
-	int16 dir = 0;
+	RelativeDirection relDir = kRelDirNone;
 
 	// Find the direct direction we want to move
 	if (y1 > y0)
-		dir |= kDown;
+		relDir = kRelDirDown;
 	else if (y1 < y0)
-		dir |= kUp;
+		relDir = kRelDirUp;
 
 	if (x1 > x0)
-		dir |= kRight;
+		relDir = (RelativeDirection)(relDir | kRelDirRight);
 	else if (x1 < x0)
-		dir |= kLeft;
+		relDir = (RelativeDirection)(relDir | kRelDirLeft);
 
 
 	// Are we on ladders and can continue the ladder in the wanted direction?
-	if ((getPass(x0, y0) == 3) && (dir & kUp  ) && (getPass(x0, y0 - 1) != 0))
+	if ((getPass(x0, y0) == 3) && (relDir & kRelDirUp  ) && (getPass(x0, y0 - 1) != 0))
 		return kDirN;
 
-	if ((getPass(x0, y0) == 3) && (dir & kDown) && (getPass(x0, y0 + 1) != 0))
+	if ((getPass(x0, y0) == 3) && (relDir & kRelDirDown) && (getPass(x0, y0 + 1) != 0))
 		return kDirS;
 
-	if ((getPass(x0, y0) == 6) && (dir & kUp  ) && (getPass(x0, y0 - 1) != 0))
+	if ((getPass(x0, y0) == 6) && (relDir & kRelDirUp  ) && (getPass(x0, y0 - 1) != 0))
 		return kDirN;
 
-	if ((getPass(x0, y0) == 6) && (dir & kDown) && (getPass(x0, y0 + 1) != 0))
+	if ((getPass(x0, y0) == 6) && (relDir & kRelDirDown) && (getPass(x0, y0 + 1) != 0))
 		return kDirS;
 
 
 	// Want to go left
-	if (dir == kLeft) {
+	if (relDir == kRelDirLeft) {
 		if (getPass(x0 - 1, y0) != 0)
 			// Can go west
 			return kDirW;
@@ -138,7 +131,7 @@
 	}
 
 	// Want to go left
-	if (dir == kRight) {
+	if (relDir == kRelDirRight) {
 		if (getPass(x0 + 1, y0) != 0)
 			// Can go east
 			return kDirE;
@@ -149,7 +142,7 @@
 
 
 	// Want to go up
-	if (dir == kUp) {
+	if (relDir == kRelDirUp) {
 		if (getPass(x0    , y0 - 1) != 0)
 			// Can go north
 			return kDirN;
@@ -167,7 +160,7 @@
 	}
 
 	// Want to go down
-	if (dir == kDown) {
+	if (relDir == kRelDirDown) {
 		if (getPass(x0    , y0 + 1) != 0)
 			// Can go south
 			return kDirS;
@@ -186,7 +179,7 @@
 
 
 	// Want to go up and right
-	if (dir == (kRight | kUp)) {
+	if (relDir == kRelDirRightUp) {
 		if (getPass(x0 + 1, y0 - 1) != 0)
 			// Can go north-east
 			return kDirNE;
@@ -204,7 +197,7 @@
 	}
 
 	// Want to go down and right
-	if (dir == (kRight | kDown)) {
+	if (relDir == kRelDirRightDown) {
 		if (getPass(x0 + 1, y0 + 1) != 0)
 			// Can go south-east
 			return kDirSE;
@@ -222,7 +215,7 @@
 	}
 
 	// Want to go up and left
-	if (dir == (kLeft | kUp)) {
+	if (relDir == kRelDirLeftUp) {
 		if (getPass(x0 - 1, y0 - 1) != 0)
 			// Can go north-west
 			return kDirNW;
@@ -240,7 +233,7 @@
 	}
 
 	// Want to go left and down
-	if (dir == (kLeft | kDown)) {
+	if (relDir == kRelDirLeftDown) {
 		if (getPass(x0 - 1, y0 + 1) != 0)
 			// Can go south-west
 			return kDirSW;

Modified: scummvm/trunk/engines/gob/map.h
===================================================================
--- scummvm/trunk/engines/gob/map.h	2010-10-30 16:04:43 UTC (rev 53945)
+++ scummvm/trunk/engines/gob/map.h	2010-10-30 17:24:52 UTC (rev 53946)
@@ -30,22 +30,35 @@
 
 namespace Gob {
 
+enum RelativeDirection {
+	kRelDirNone  = 0 ,
+
+	kRelDirLeft  = (1 << 0),
+	kRelDirUp    = (1 << 1),
+	kRelDirRight = (1 << 2),
+	kRelDirDown  = (1 << 3),
+
+	kRelDirLeftUp    = kRelDirLeft  | kRelDirUp,
+	kRelDirLeftDown  = kRelDirLeft  | kRelDirDown,
+	kRelDirRightUp   = kRelDirRight | kRelDirUp,
+	kRelDirRightDown = kRelDirRight | kRelDirDown
+};
+
 // The same numeric values are also used for the arrow keys.
+enum Direction {
+	kDirNone = 0x0000,
+	kDirNW   = 0x4700,
+	kDirN    = 0x4800,
+	kDirNE   = 0x4900,
+	kDirW    = 0x4B00,
+	kDirE    = 0x4D00,
+	kDirSW   = 0x4F00,
+	kDirS    = 0x5000,
+	kDirSE   = 0x5100
+};
 
 class Map {
 public:
-	enum Direction {
-		kDirNone = 0x0000,
-		kDirNW   = 0x4700,
-		kDirN    = 0x4800,
-		kDirNE   = 0x4900,
-		kDirW    = 0x4B00,
-		kDirE    = 0x4D00,
-		kDirSW   = 0x4F00,
-		kDirS    = 0x5000,
-		kDirSE   = 0x5100
-	};
-
 #include "common/pack-start.h"	// START STRUCT PACKING
 
 	struct Point {


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