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 | } |
