summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBlue Sans Douze <bluesansdouze@gmail.com>2010-01-23 17:31:21 +0100
committerBlue Sans Douze <bluesansdouze@gmail.com>2010-01-23 18:37:30 +0100
commit943166059f5e0b7403b00f5d5fc19bd72c706657 (patch)
tree4f05e25d6c4d2c30632938b9bdc29b24e0c46c18 /src
parent7fa3653824e7aacf15aa4fc14f2465addc831851 (diff)
downloadmana-client-943166059f5e0b7403b00f5d5fc19bd72c706657.tar.gz
mana-client-943166059f5e0b7403b00f5d5fc19bd72c706657.tar.bz2
mana-client-943166059f5e0b7403b00f5d5fc19bd72c706657.tar.xz
mana-client-943166059f5e0b7403b00f5d5fc19bd72c706657.zip
Autoload a minimap is no minimap info is given
Looks for "graphics/minimap/MAPID.png"
Diffstat (limited to 'src')
-rw-r--r--src/gui/minimap.cpp11
-rw-r--r--src/map.cpp12
-rw-r--r--src/map.h5
3 files changed, 27 insertions, 1 deletions
diff --git a/src/gui/minimap.cpp b/src/gui/minimap.cpp
index b8f8ef57..539bfbaa 100644
--- a/src/gui/minimap.cpp
+++ b/src/gui/minimap.cpp
@@ -78,6 +78,7 @@ void Minimap::setMap(Map *map)
{
// Set the title for the Minimap
std::string caption = "";
+ std::string minimapName;
if (map)
caption = map->getName();
@@ -96,8 +97,16 @@ void Minimap::setMap(Map *map)
if (map)
{
+ std::string tempname = "graphics/minimaps/"+(*map->getMapId())+".png";
+
ResourceManager *resman = ResourceManager::getInstance();
- mMapImage = resman->getImage(map->getProperty("minimap"));
+ minimapName = map->getProperty("minimap");
+ if (minimapName.empty() && resman->exists(tempname))
+ {
+ minimapName = tempname;
+ }
+ std::cout << "Minimap name : " << minimapName << std::endl;
+ mMapImage = resman->getImage(minimapName);
}
if (mMapImage)
diff --git a/src/map.cpp b/src/map.cpp
index 34064a64..5f411c47 100644
--- a/src/map.cpp
+++ b/src/map.cpp
@@ -583,6 +583,18 @@ const std::string &Map::getName() const
return getProperty("mapname");
}
+const std::string *Map::getMapId() const
+{
+ std::string fileName = getProperty("_filename");
+ int lastSlash = fileName.rfind("/") + 1;
+ int lastDot = fileName.rfind(".");
+
+ std::string *sub = new std::string(
+ fileName.substr(lastSlash, lastDot - lastSlash));
+
+ return sub;
+}
+
static int const basicCost = 100;
Path Map::findPath(int startX, int startY, int destX, int destY,
diff --git a/src/map.h b/src/map.h
index 9914b50f..82b9e842 100644
--- a/src/map.h
+++ b/src/map.h
@@ -267,6 +267,11 @@ class Map : public Properties
const std::string &getName() const;
/**
+ * Gives the map id based on filepath (ex: 009-1)
+ */
+ const std::string *getMapId() const;
+
+ /**
* Find a path from one location to the next.
*/
Path findPath(int startX, int startY, int destX, int destY,