diff options
author | Kelly Rauchenberger <fefferburbia@gmail.com> | 2021-03-05 18:53:06 -0500 |
---|---|---|
committer | Kelly Rauchenberger <fefferburbia@gmail.com> | 2021-03-05 18:53:06 -0500 |
commit | 937875c4e1432b418f0f5051759e02c8d4c9ffa4 (patch) | |
tree | bfb08ae9f8e4619dc213e20739b4fbce682ae0d0 /src/map.cpp | |
parent | cd72ba5481705072b893d728e2f80931b5cca580 (diff) | |
download | tanetane-937875c4e1432b418f0f5051759e02c8d4c9ffa4.tar.gz tanetane-937875c4e1432b418f0f5051759e02c8d4c9ffa4.tar.bz2 tanetane-937875c4e1432b418f0f5051759e02c8d4c9ffa4.zip |
Added the mask sprite layer
This layer is below the normal sprite layer. Sprites on it are only rendered within the area of a zone that is defined per-map.
Diffstat (limited to 'src/map.cpp')
-rw-r--r-- | src/map.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/map.cpp b/src/map.cpp index c3ac828..8d0ada6 100644 --- a/src/map.cpp +++ b/src/map.cpp | |||
@@ -71,12 +71,20 @@ Map::Map(std::string_view name) : name_(name) { | |||
71 | } else if (layer->getType() == tmx::Layer::Type::Object) { | 71 | } else if (layer->getType() == tmx::Layer::Type::Object) { |
72 | const auto& objectLayer = layer->getLayerAs<tmx::ObjectGroup>(); | 72 | const auto& objectLayer = layer->getLayerAs<tmx::ObjectGroup>(); |
73 | 73 | ||
74 | bool masked = false; | ||
75 | for (const tmx::Property& property : objectLayer.getProperties()) { | ||
76 | if (property.getName() == "masked" && property.getBoolValue()) { | ||
77 | masked = true; | ||
78 | } | ||
79 | } | ||
80 | |||
74 | for (const tmx::Object& object : objectLayer.getObjects()) { | 81 | for (const tmx::Object& object : objectLayer.getObjects()) { |
75 | if (object.getType() == "sprite") { | 82 | if (object.getType() == "sprite") { |
76 | Prototype p; | 83 | Prototype p; |
77 | p.name = object.getName(); | 84 | p.name = object.getName(); |
78 | p.pos.x() = object.getPosition().x; | 85 | p.pos.x() = object.getPosition().x; |
79 | p.pos.y() = object.getPosition().y; | 86 | p.pos.y() = object.getPosition().y; |
87 | p.masked = masked; | ||
80 | 88 | ||
81 | for (const tmx::Property& property : object.getProperties()) { | 89 | for (const tmx::Property& property : object.getProperties()) { |
82 | if (property.getName() == "collisionOffsetX") { | 90 | if (property.getName() == "collisionOffsetX") { |
@@ -159,6 +167,8 @@ Map::Map(std::string_view name) : name_(name) { | |||
159 | for (const tmx::Property& property : mapfile.getProperties()) { | 167 | for (const tmx::Property& property : mapfile.getProperties()) { |
160 | if (property.getName() == "music") { | 168 | if (property.getName() == "music") { |
161 | music_ = property.getStringValue(); | 169 | music_ = property.getStringValue(); |
170 | } else if (property.getName() == "maskZone") { | ||
171 | maskZone_ = property.getStringValue(); | ||
162 | } | 172 | } |
163 | } | 173 | } |
164 | } | 174 | } |