[Scummvm-cvs-logs] SF.net SVN: scummvm:[53947] scummvm/trunk/engines/gob
drmccoy at users.sourceforge.net
drmccoy at users.sourceforge.net
Sat Oct 30 19:25:30 CEST 2010
Revision: 53947
http://scummvm.svn.sourceforge.net/scummvm/?rev=53947&view=rev
Author: drmccoy
Date: 2010-10-30 17:25:29 +0000 (Sat, 30 Oct 2010)
Log Message:
-----------
GOB: Unify Map_v1::/Map_v2::getPass()/setPass()
Modified Paths:
--------------
scummvm/trunk/engines/gob/map.cpp
scummvm/trunk/engines/gob/map.h
scummvm/trunk/engines/gob/map_v1.cpp
Modified: scummvm/trunk/engines/gob/map.cpp
===================================================================
--- scummvm/trunk/engines/gob/map.cpp 2010-10-30 17:24:52 UTC (rev 53946)
+++ scummvm/trunk/engines/gob/map.cpp 2010-10-30 17:25:29 UTC (rev 53947)
@@ -76,6 +76,30 @@
delete[] _wayPoints;
}
+int8 Map::getPass(int x, int y, int width) const {
+ if (!_passMap)
+ return 0;
+
+ if ((x < 0) || (y < 0) || (x >= _mapWidth) || (y >= _mapHeight))
+ return 0;
+
+ if (width == -1)
+ width = _passWidth;
+ return _passMap[y * width + x];
+}
+
+void Map::setPass(int x, int y, int8 pass, int width) {
+ if (!_passMap)
+ return;
+
+ if ((x < 0) || (y < 0) || (x >= _mapWidth) || (y >= _mapHeight))
+ return;
+
+ if (width == -1)
+ width = _passWidth;
+ _passMap[y * width + x] = pass;
+}
+
void Map::placeItem(int16 x, int16 y, int16 id) {
if ((getItem(x, y) & 0xFF00) != 0)
setItem(x, y, (getItem(x, y) & 0xFF00) | id);
Modified: scummvm/trunk/engines/gob/map.h
===================================================================
--- scummvm/trunk/engines/gob/map.h 2010-10-30 17:24:52 UTC (rev 53946)
+++ scummvm/trunk/engines/gob/map.h 2010-10-30 17:25:29 UTC (rev 53947)
@@ -103,6 +103,12 @@
ItemPos _itemPoses[40];
char _sourceFile[15];
+ Map(GobEngine *vm);
+ virtual ~Map();
+
+ int8 getPass(int x, int y, int width = -1) const;
+ void setPass(int x, int y, int8 pass, int width = -1);
+
void findNearestWalkable(int16 &gobDestX, int16 &gobDestY,
int16 mouseX, int16 mouseY);
@@ -120,17 +126,11 @@
virtual int16 getItem(int x, int y) = 0;
virtual void setItem(int x, int y, int16 item) = 0;
- virtual int8 getPass(int x, int y, int heightOff = -1) = 0;
- virtual void setPass(int x, int y, int8 pass, int heightOff = -1) = 0;
-
virtual void loadMapObjects(const char *avjFile) = 0;
virtual void findNearestToGob(Mult::Mult_Object *obj) = 0;
virtual void findNearestToDest(Mult::Mult_Object *obj) = 0;
virtual void optimizePoints(Mult::Mult_Object *obj, int16 x, int16 y) = 0;
- Map(GobEngine *vm);
- virtual ~Map();
-
protected:
bool _loadFromAvo;
@@ -167,26 +167,6 @@
_itemsMap[y][x] = item;
}
- virtual int8 getPass(int x, int y, int heightOff = -1) {
- if (!_passMap)
- return 0;
-
- if ((x < 0) || (y < 0) || (x >= _mapWidth) || (y >= _mapHeight))
- return 0;
-
- return _passMap[y * _mapWidth + x];
- }
-
- virtual void setPass(int x, int y, int8 pass, int heightOff = -1) {
- if (!_passMap)
- return;
-
- if ((x < 0) || (y < 0) || (x >= _mapWidth) || (y >= _mapHeight))
- return;
-
- _passMap[y * _mapWidth + x] = pass;
- }
-
Map_v1(GobEngine *vm);
virtual ~Map_v1();
@@ -205,30 +185,6 @@
virtual void findNearestToDest(Mult::Mult_Object *obj);
virtual void optimizePoints(Mult::Mult_Object *obj, int16 x, int16 y);
- virtual int8 getPass(int x, int y, int heightOff = -1) {
- if (!_passMap)
- return 0;
-
- if ((x < 0) || (y < 0) || (x >= _mapWidth) || (y >= _mapHeight))
- return 0;
-
- if (heightOff == -1)
- heightOff = _passWidth;
- return _passMap[y * heightOff + x];
- }
-
- virtual void setPass(int x, int y, int8 pass, int heightOff = -1) {
- if (!_passMap)
- return;
-
- if ((x < 0) || (y < 0) || (x >= _mapWidth) || (y >= _mapHeight))
- return;
-
- if (heightOff == -1)
- heightOff = _passWidth;
- _passMap[y * heightOff + x] = pass;
- }
-
Map_v2(GobEngine *vm);
virtual ~Map_v2();
Modified: scummvm/trunk/engines/gob/map_v1.cpp
===================================================================
--- scummvm/trunk/engines/gob/map_v1.cpp 2010-10-30 17:24:52 UTC (rev 53946)
+++ scummvm/trunk/engines/gob/map_v1.cpp 2010-10-30 17:25:29 UTC (rev 53947)
@@ -44,7 +44,8 @@
if (_passMap || _itemsMap)
return;
- _mapWidth = 26;
+ _passWidth = 26;
+ _mapWidth = 26;
_mapHeight = 28;
_passMap = new int8[_mapHeight * _mapWidth];
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