aboutsummaryrefslogtreecommitdiff
path: root/engines/xeen/map.cpp
diff options
context:
space:
mode:
authorPaul Gilbert2015-01-23 20:44:02 -0500
committerPaul Gilbert2015-01-23 20:44:02 -0500
commit749372e456ed8f1a4aee31ce23c4f4f7fd5644cc (patch)
tree918ebdfc2867a4e04492748fed9a9c31a619d123 /engines/xeen/map.cpp
parent2b51d324f3cc2a58f2a703c23030ee19ba85836b (diff)
downloadscummvm-rg350-749372e456ed8f1a4aee31ce23c4f4f7fd5644cc.tar.gz
scummvm-rg350-749372e456ed8f1a4aee31ce23c4f4f7fd5644cc.tar.bz2
scummvm-rg350-749372e456ed8f1a4aee31ce23c4f4f7fd5644cc.zip
XEEN: More script code and string input dialog
Diffstat (limited to 'engines/xeen/map.cpp')
-rw-r--r--engines/xeen/map.cpp10
1 files changed, 9 insertions, 1 deletions
diff --git a/engines/xeen/map.cpp b/engines/xeen/map.cpp
index 5c49e37f4c..7801a050bb 100644
--- a/engines/xeen/map.cpp
+++ b/engines/xeen/map.cpp
@@ -1367,6 +1367,14 @@ void Map::setCellSurfaceFlags(const Common::Point &pt, int bits) {
_mazeData[0]._cells[pt.y][pt.x]._surfaceId |= bits;
}
+void Map::setWall(const Common::Point &pt, Direction dir, int v) {
+ const int XOR_MASKS[4] = { 0xFFF, 0xF0FF, 0xFF0F, 0xFFF0 };
+ mazeLookup(pt, 0, 0);
+
+ MazeWallLayers &wallLayer = _mazeData[0]._wallData[pt.y][pt.x];
+ wallLayer._data &= XOR_MASKS[dir];
+ wallLayer._data |= v << WALL_SHIFTS[dir][2];
+}
int Map::getCell(int idx) {
int mapId = _vm->_party->_mazeId;
@@ -1489,7 +1497,7 @@ int Map::getCell(int idx) {
_currentSurfaceId = _mazeData[_mazeDataIndex]._cells[pt.y][pt.x]._surfaceId;
_currentWall = wallLayers;
- return (_currentWall._data >> WALL_NUMBERS[dir][idx]) & 0xF;
+ return (_currentWall._data >> WALL_SHIFTS[dir][idx]) & 0xF;
}
return _currentWall._data;