diff options
author | Andrei Karas <akaras@inbox.ru> | 2016-08-07 18:23:39 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2016-08-07 18:23:39 +0300 |
commit | b1753d59caa299c668b9c269e87f96c46e0ab33a (patch) | |
tree | d333a7de5b6e9ddde85540d5b5a87eabd747fac1 /src/resources | |
parent | 1740b281aa32ba2c30a2a6203f7748af6a21fd39 (diff) | |
download | manaplus-b1753d59caa299c668b9c269e87f96c46e0ab33a.tar.gz manaplus-b1753d59caa299c668b9c269e87f96c46e0ab33a.tar.bz2 manaplus-b1753d59caa299c668b9c269e87f96c46e0ab33a.tar.xz manaplus-b1753d59caa299c668b9c269e87f96c46e0ab33a.zip |
Add player wall collision type (5).
Diffstat (limited to 'src/resources')
-rw-r--r-- | src/resources/map/map.cpp | 7 | ||||
-rw-r--r-- | src/resources/map/map.h | 3 | ||||
-rw-r--r-- | src/resources/mapreader.cpp | 3 |
3 files changed, 12 insertions, 1 deletions
diff --git a/src/resources/map/map.cpp b/src/resources/map/map.cpp index e86c0c2a4..073adb2ed 100644 --- a/src/resources/map/map.cpp +++ b/src/resources/map/map.cpp @@ -591,6 +591,7 @@ void Map::drawCollision(Graphics *restrict const graphics, fillCollision(BlockMask::AIR, AIR_COLLISION_HIGHLIGHT); fillCollision(BlockMask::WATER, WATER_COLLISION_HIGHLIGHT); fillCollision(BlockMask::GROUNDTOP, GROUNDTOP_COLLISION_HIGHLIGHT); + fillCollision(BlockMask::PLAYERWALL, COLLISION_HIGHLIGHT); } } } @@ -709,6 +710,9 @@ void Map::addBlockMask(const int x, const int y, case BlockType::GROUNDTOP: mMetaTiles[tileNum].blockmask |= BlockMask::GROUNDTOP; break; + case BlockType::PLAYERWALL: + mMetaTiles[tileNum].blockmask |= BlockMask::PLAYERWALL; + break; default: case BlockType::NONE: case BlockType::NB_BLOCKTYPES: @@ -742,6 +746,9 @@ void Map::setBlockMask(const int x, const int y, case BlockType::GROUNDTOP: mMetaTiles[tileNum].blockmask = BlockMask::GROUNDTOP; break; + case BlockType::PLAYERWALL: + mMetaTiles[tileNum].blockmask = BlockMask::PLAYERWALL; + break; default: case BlockType::NONE: case BlockType::NB_BLOCKTYPES: diff --git a/src/resources/map/map.h b/src/resources/map/map.h index c658b9b30..5abc9c964 100644 --- a/src/resources/map/map.h +++ b/src/resources/map/map.h @@ -77,7 +77,8 @@ class Map final : public Properties, COLLISION_AIR = 2, // air units can walk COLLISION_WATER = 3, // water units can walk COLLISION_GROUNDTOP = 4, // no collision (chair, bed, etc) - COLLISION_MAX = 5 // count index + COLLISION_PLAYER_WALL = 5, // full collision for player + COLLISION_MAX = 6 // count index }; /** diff --git a/src/resources/mapreader.cpp b/src/resources/mapreader.cpp index d1cf92396..51040a5e7 100644 --- a/src/resources/mapreader.cpp +++ b/src/resources/mapreader.cpp @@ -575,6 +575,9 @@ inline static void setTile(Map *const map, case Map::COLLISION_GROUNDTOP: map->addBlockMask(x, y, BlockType::GROUNDTOP); break; + case Map::COLLISION_PLAYER_WALL: + map->addBlockMask(x, y, BlockType::PLAYERWALL); + break; default: break; } |