diff options
Diffstat (limited to 'src/map.cpp')
-rw-r--r-- | src/map.cpp | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/map.cpp b/src/map.cpp index 7d9800d..0c4f9d6 100644 --- a/src/map.cpp +++ b/src/map.cpp | |||
@@ -42,6 +42,8 @@ Map::Map(std::string_view filename, Renderer& renderer) { | |||
42 | for (const tmx::Property& property : tileset.getTile(maptile.ID)->properties) { | 42 | for (const tmx::Property& property : tileset.getTile(maptile.ID)->properties) { |
43 | if (property.getName() == "solid" && property.getBoolValue()) { | 43 | if (property.getName() == "solid" && property.getBoolValue()) { |
44 | tile.blocked = true; | 44 | tile.blocked = true; |
45 | } else if (property.getName() == "runSound") { | ||
46 | tile.step = stepTypeFromString(property.getStringValue()); | ||
45 | } | 47 | } |
46 | } | 48 | } |
47 | 49 | ||
@@ -64,3 +66,15 @@ bool Map::isBlocked(int x, int y) const { | |||
64 | 66 | ||
65 | return false; | 67 | return false; |
66 | } | 68 | } |
69 | |||
70 | StepType Map::getStepType(int x, int y) const { | ||
71 | int i = x + y * mapSize_.w(); | ||
72 | |||
73 | for (const std::vector<Tile>& layer : layers_) { | ||
74 | if (layer.at(i).step != StepType::none) { | ||
75 | return layer.at(i).step; | ||
76 | } | ||
77 | } | ||
78 | |||
79 | return StepType::none; | ||
80 | } | ||