diff options
author | Chuck Miller <chuck@miller-server.(none)> | 2008-12-06 01:09:44 -0500 |
---|---|---|
committer | Chuck Miller <chuck@miller-server.(none)> | 2008-12-06 01:09:44 -0500 |
commit | a841518cd56f96171cbe7d0c80fd31470d84ab11 (patch) | |
tree | 4f5dd5f33a7157d2d43edbdeda2be68eeb411a22 | |
parent | 9bdfd39c3b7101f8175049336bff412c38adb2ba (diff) | |
download | manaserv-a841518cd56f96171cbe7d0c80fd31470d84ab11.tar.gz manaserv-a841518cd56f96171cbe7d0c80fd31470d84ab11.tar.bz2 manaserv-a841518cd56f96171cbe7d0c80fd31470d84ab11.tar.xz manaserv-a841518cd56f96171cbe7d0c80fd31470d84ab11.zip |
Fixes map warp issues, and has a better starting location
-rw-r--r-- | src/account-server/accounthandler.cpp | 4 | ||||
-rw-r--r-- | src/game-server/mapmanager.cpp | 11 | ||||
-rw-r--r-- | src/game-server/mapmanager.hpp | 5 | ||||
-rw-r--r-- | src/game-server/mapreader.cpp | 8 |
4 files changed, 22 insertions, 6 deletions
diff --git a/src/account-server/accounthandler.cpp b/src/account-server/accounthandler.cpp index 372fc678..0b81787b 100644 --- a/src/account-server/accounthandler.cpp +++ b/src/account-server/accounthandler.cpp @@ -566,8 +566,8 @@ static void handleCharacterCreateMessage(AccountClient &computer, MessageIn &msg newCharacter->setHairStyle(hairStyle); newCharacter->setHairColor(hairColor); newCharacter->setMapId(Configuration::getValue("defaultMap", 1)); - Point startingPos(Configuration::getValue("startX", 512), - Configuration::getValue("startY", 512)); + Point startingPos(Configuration::getValue("startX", 1024), + Configuration::getValue("startY", 1024)); newCharacter->setPosition(startingPos); acc->addCharacter(newCharacter); diff --git a/src/game-server/mapmanager.cpp b/src/game-server/mapmanager.cpp index 47a6a4a8..68372ed9 100644 --- a/src/game-server/mapmanager.cpp +++ b/src/game-server/mapmanager.cpp @@ -103,6 +103,17 @@ MapComposite *MapManager::getMap(int mapId) return (i != maps.end()) ? i->second : NULL; } +MapComposite *MapManager::getMap(std::string const &mapName) +{ + Maps::iterator i; + for (i = maps.begin(); i != maps.end(); ++i) + { + if (i->second->getName() == mapName) + return i->second; + } + return NULL; +} + void MapManager::raiseActive(int mapId) { Maps::iterator i = maps.find(mapId); diff --git a/src/game-server/mapmanager.hpp b/src/game-server/mapmanager.hpp index 82cad2d1..e3fde61a 100644 --- a/src/game-server/mapmanager.hpp +++ b/src/game-server/mapmanager.hpp @@ -49,6 +49,11 @@ namespace MapManager MapComposite *getMap(int mapId); /** + * Returns the requested map + */ + MapComposite *getMap(std::string const &mapName); + + /** * Returns all the maps. */ Maps const &getMaps(); diff --git a/src/game-server/mapreader.cpp b/src/game-server/mapreader.cpp index 5d5979d6..9caddc24 100644 --- a/src/game-server/mapreader.cpp +++ b/src/game-server/mapreader.cpp @@ -170,7 +170,7 @@ Map* MapReader::readMap(xmlNodePtr node, std::string const &path, if (objType == "WARP") { - int destMapId = -1; + std::string destMapName = std::string(); int destX = -1; int destY = -1; @@ -189,7 +189,7 @@ Map* MapReader::readMap(xmlNodePtr node, std::string const &path, value = utils::toupper(value); if (value == "DEST_MAP") { - destMapId = getObjectProperty(propertyNode, -1); + destMapName = getObjectProperty(propertyNode, std::string()); } else if (value == "DEST_X") { @@ -203,9 +203,9 @@ Map* MapReader::readMap(xmlNodePtr node, std::string const &path, } } - if (destMapId != -1 && destX != -1 && destY != -1) + if (destMapName != "" && destX != -1 && destY != -1) { - MapComposite *destMap = MapManager::getMap(destMapId); + MapComposite *destMap = MapManager::getMap(destMapName); if (destMap) { things.push_back(new TriggerArea( |