Fix houses and monsters

master
BrunoDCC 11 years ago
parent ab1cc8c890
commit 4bfe9b640e

@ -111,8 +111,8 @@ void Spawn::save(TiXmlElement* node)
const Position& placePos = pair.first; const Position& placePos = pair.first;
assert(placePos.isValid()); assert(placePos.isValid());
creatureNode->SetAttribute("x", c.x - placePos.x); creatureNode->SetAttribute("x", placePos.x - c.x);
creatureNode->SetAttribute("y", c.y - placePos.y); creatureNode->SetAttribute("y", placePos.y - c.y);
creatureNode->SetAttribute("z", placePos.z); creatureNode->SetAttribute("z", placePos.z);
node->LinkEndChild(creatureNode); node->LinkEndChild(creatureNode);

@ -109,7 +109,7 @@ void Map::loadOtbm(const std::string& fileName)
uint32 flags = TILESTATE_NONE; uint32 flags = TILESTATE_NONE;
Position pos = basePos + nodeTile->getPoint(); Position pos = basePos + nodeTile->getPoint();
if(type == OTBM_HOUSETILE) { if(type == OTBM_HOUSETILE) {
uint32 hId = nodeTile->getU32(); uint32 hId = nodeTile->getU32();
TilePtr tile = getOrCreateTile(pos); TilePtr tile = getOrCreateTile(pos);
if(!(house = g_houses.getHouse(hId))) { if(!(house = g_houses.getHouse(hId))) {
@ -136,9 +136,6 @@ void Map::loadOtbm(const std::string& fileName)
if((_flags & TILESTATE_REFRESH) == TILESTATE_REFRESH) if((_flags & TILESTATE_REFRESH) == TILESTATE_REFRESH)
flags |= TILESTATE_REFRESH; flags |= TILESTATE_REFRESH;
if((_flags & TILESTATE_HOUSE) == TILESTATE_HOUSE)
flags |= TILESTATE_HOUSE;
break; break;
} }
case OTBM_ATTR_ITEM: { case OTBM_ATTR_ITEM: {
@ -179,9 +176,9 @@ void Map::loadOtbm(const std::string& fileName)
} }
if(const TilePtr& tile = getTile(pos)) { if(const TilePtr& tile = getTile(pos)) {
if(tile->hasFlag(TILESTATE_HOUSE)) if(house)
tile->setFlags(tile->getFlags() & ~TILESTATE_HOUSE); tile->setFlag(TILESTATE_HOUSE);
tile->setFlags((tileflags_t)flags); tile->setFlag(flags);
} }
} }
} else if(mapDataType == OTBM_TOWNS) { } else if(mapDataType == OTBM_TOWNS) {

Loading…
Cancel
Save