diff --git a/config/objects/moddables.json b/config/objects/moddables.json index 2bc7041cd..dc903f6d4 100644 --- a/config/objects/moddables.json +++ b/config/objects/moddables.json @@ -157,7 +157,7 @@ "base" : { "base" : { "visitableFrom" : [ "---", "+++", "+++" ], - "mask" : [ "VVV", "VAV" ] + "mask" : [ "VVV", "VVV", "VAV" ] } }, "types" : { diff --git a/lib/mapObjects/ObjectTemplate.cpp b/lib/mapObjects/ObjectTemplate.cpp index ccb272705..ec8d9908c 100644 --- a/lib/mapObjects/ObjectTemplate.cpp +++ b/lib/mapObjects/ObjectTemplate.cpp @@ -249,7 +249,11 @@ void ObjectTemplate::readJson(const JsonNode &node) usedTiles[mask.size() - 1 - i][line.size() - 1 - j] = charToTile(line[j]); } - printPriority = node["zIndex"].Float(); + const JsonNode zindex = node["zIndex"]; + if (!zindex.isNull()) + printPriority = node["zIndex"].Float(); + else + printPriority = 0; //default value } ui32 ObjectTemplate::getWidth() const @@ -332,7 +336,7 @@ int3 ObjectTemplate::getBlockMapOffset() const return int3(w, h, 0); } } - return int3(-1,-1,-1); + return int3(0,0,0); } bool ObjectTemplate::isVisitableFrom(si8 X, si8 Y) const diff --git a/lib/rmg/CRmgTemplateZone.cpp b/lib/rmg/CRmgTemplateZone.cpp index 361ddb54b..cec665777 100644 --- a/lib/rmg/CRmgTemplateZone.cpp +++ b/lib/rmg/CRmgTemplateZone.cpp @@ -801,12 +801,10 @@ bool CRmgTemplateZone::createTreasurePile(CMapGenerator* gen, int3 &pos, float m oiptr->maxPerZone--; if (!oiptr->maxPerZone) possibleObjects.erase(oiptr); - //TODO //update treasure pile area int3 visitablePos = info.nextTreasurePos; - //TODO: actually we need to check is object is either !blockVisit or removable after visit - this means object below can be accessed if (oi.templ.isVisitableFromTop()) info.visitableFromTopPositions.insert(visitablePos); //can be accessed from any direction else