diff options
author | Bjørn Lindeijer <bjorn@lindeijer.nl> | 2009-01-30 01:34:16 +0100 |
---|---|---|
committer | Bjørn Lindeijer <bjorn@lindeijer.nl> | 2009-02-09 20:00:07 +0100 |
commit | 1b1050da1c7b84cc72b7efbb2229294975be9e10 (patch) | |
tree | 68d15ccb015d58aeb5797ffd06efca3e55997c24 /src/engine.cpp | |
parent | 0d4142a891cd228da24ee3aa3bbd7dc622da5b75 (diff) | |
parent | 955a7613d1fe116fe5e1da07a222b6849b3c885c (diff) | |
download | mana-client-1b1050da1c7b84cc72b7efbb2229294975be9e10.tar.gz mana-client-1b1050da1c7b84cc72b7efbb2229294975be9e10.tar.bz2 mana-client-1b1050da1c7b84cc72b7efbb2229294975be9e10.tar.xz mana-client-1b1050da1c7b84cc72b7efbb2229294975be9e10.zip |
Merged with Aethyra master as of 2009-01-27
Conflicts:
Almost everywhere.
Diffstat (limited to 'src/engine.cpp')
-rw-r--r-- | src/engine.cpp | 41 |
1 files changed, 26 insertions, 15 deletions
diff --git a/src/engine.cpp b/src/engine.cpp index 7a76e1b0..29b8921a 100644 --- a/src/engine.cpp +++ b/src/engine.cpp @@ -19,13 +19,12 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -#include "engine.h" - #include <list> #include "being.h" #include "beingmanager.h" #include "configuration.h" +#include "engine.h" #include "flooritemmanager.h" #include "game.h" #include "graphics.h" @@ -82,28 +81,40 @@ void Engine::changeMap(const std::string &mapPath) map_path = "maps/" + mapPath.substr(0, mapPath.rfind(".")) + ".tmx"; ResourceManager *resman = ResourceManager::getInstance(); if (!resman->exists(map_path)) - { map_path += ".gz"; - } // Attempt to load the new map Map *newMap = MapReader::readMap(map_path); - if (!newMap) { + if (!newMap) logger->error("Could not find map file"); - } // Notify the minimap and beingManager about the map change Image *mapImage = NULL; if (newMap->hasProperty("minimap")) { mapImage = resman->getImage(newMap->getProperty("minimap")); - } - if (newMap->hasProperty("name")) - { - minimap->setCaption(newMap->getProperty("name")); - } else { - minimap->setCaption("Map"); + + // Set the title for the Minimap + if (newMap->hasProperty("mapname")) + minimap->setCaption(newMap->getProperty("mapname")); + else if (newMap->hasProperty("name")) + minimap->setCaption(newMap->getProperty("name")); + else + { + minimap->setCaption("Unknown"); + logger->log("WARNING: Map file '%s' defines a minimap image but " + "does not define a 'mapname' property", + map_path.c_str()); + } + + // How many pixels equal one tile. .5 (which is the TMW default) is + // 2 tiles to a pixel, while 1 is 1 tile to 1 pixel + if (newMap->hasProperty("minimapproportion")) + minimap->setProportion(atof( + newMap->getProperty("minimapproportion").c_str())); + else + minimap->setProportion(0.5); } minimap->setMapImage(mapImage); beingManager->setMap(newMap); @@ -116,16 +127,16 @@ void Engine::changeMap(const std::string &mapPath) // Start playing new music file when necessary std::string oldMusic = ""; - if (mCurrentMap) { + if (mCurrentMap) + { oldMusic = mCurrentMap->getProperty("music"); delete mCurrentMap; } std::string newMusic = newMap->getProperty("music"); - if (newMusic != oldMusic) { + if (newMusic != oldMusic) sound.playMusic(newMusic, -1); - } mCurrentMap = newMap; mMapName = mapPath; |