diff --git a/src/client/creatures.cpp b/src/client/creatures.cpp index 230c0d34..9a9b2fb0 100644 --- a/src/client/creatures.cpp +++ b/src/client/creatures.cpp @@ -111,8 +111,8 @@ void Spawn::save(TiXmlElement* node) const Position& placePos = pair.first; assert(placePos.isValid()); - creatureNode->SetAttribute("x", c.x - placePos.x); - creatureNode->SetAttribute("y", c.y - placePos.y); + creatureNode->SetAttribute("x", placePos.x - c.x); + creatureNode->SetAttribute("y", placePos.y - c.y); creatureNode->SetAttribute("z", placePos.z); node->LinkEndChild(creatureNode); diff --git a/src/client/mapio.cpp b/src/client/mapio.cpp index 690a097e..5ab77884 100644 --- a/src/client/mapio.cpp +++ b/src/client/mapio.cpp @@ -109,7 +109,7 @@ void Map::loadOtbm(const std::string& fileName) uint32 flags = TILESTATE_NONE; Position pos = basePos + nodeTile->getPoint(); - if(type == OTBM_HOUSETILE) { + if(type == OTBM_HOUSETILE) { uint32 hId = nodeTile->getU32(); TilePtr tile = getOrCreateTile(pos); if(!(house = g_houses.getHouse(hId))) { @@ -136,9 +136,6 @@ void Map::loadOtbm(const std::string& fileName) if((_flags & TILESTATE_REFRESH) == TILESTATE_REFRESH) flags |= TILESTATE_REFRESH; - - if((_flags & TILESTATE_HOUSE) == TILESTATE_HOUSE) - flags |= TILESTATE_HOUSE; break; } case OTBM_ATTR_ITEM: { @@ -179,9 +176,9 @@ void Map::loadOtbm(const std::string& fileName) } if(const TilePtr& tile = getTile(pos)) { - if(tile->hasFlag(TILESTATE_HOUSE)) - tile->setFlags(tile->getFlags() & ~TILESTATE_HOUSE); - tile->setFlags((tileflags_t)flags); + if(house) + tile->setFlag(TILESTATE_HOUSE); + tile->setFlag(flags); } } } else if(mapDataType == OTBM_TOWNS) {