summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/actormanager.cpp7
-rw-r--r--src/being/being.cpp20
-rw-r--r--src/configmanager.cpp17
-rw-r--r--src/dirs.cpp36
-rw-r--r--src/fs/files.cpp11
-rw-r--r--src/fs/paths.cpp15
-rw-r--r--src/game.cpp4
-rw-r--r--src/gui/theme.cpp6
-rw-r--r--src/gui/widgets/setupitem.cpp5
-rw-r--r--src/gui/windows/cutinwindow.cpp3
-rw-r--r--src/gui/windows/didyouknowwindow.cpp2
-rw-r--r--src/gui/windows/helpwindow.cpp2
-rw-r--r--src/gui/windows/minimap.cpp4
-rw-r--r--src/gui/windows/serverdialog.cpp4
-rw-r--r--src/gui/windows/updaterwindow.cpp99
-rw-r--r--src/resources/db/emotedb.cpp16
-rw-r--r--src/resources/db/horsedb.cpp8
-rw-r--r--src/resources/iteminfo.cpp3
-rw-r--r--src/resources/map/map.cpp8
-rw-r--r--src/resources/mapreader.cpp6
-rw-r--r--src/resources/sprite/spritedef.cpp2
-rw-r--r--src/resources/wallpaper.cpp2
-rw-r--r--src/soundmanager.cpp11
-rw-r--r--src/statuseffect.cpp4
24 files changed, 144 insertions, 151 deletions
diff --git a/src/actormanager.cpp b/src/actormanager.cpp
index 35be95159..13cbeb286 100644
--- a/src/actormanager.cpp
+++ b/src/actormanager.cpp
@@ -2146,10 +2146,9 @@ void ActorManager::updateNameId(const std::string &name,
std::string dir;
if (beingId != BeingId_zero)
{
- dir = settings.usersIdDir;
- dir.append(idStr);
- dir.append("/");
- dir.append(stringToHexPath(name));
+ dir = pathJoin(settings.usersIdDir,
+ idStr,
+ stringToHexPath(name));
Files::saveTextFile(dir,
"info.txt",
(name + "\n").append(dateStr));
diff --git a/src/being/being.cpp b/src/being/being.cpp
index 333e60d12..45aa67bac 100644
--- a/src/being/being.cpp
+++ b/src/being/being.cpp
@@ -2671,7 +2671,7 @@ void Being::setSpriteId(const unsigned int slot,
if (!filename.empty())
{
equipmentSprite = AnimatedSprite::delayedLoad(
- paths.getStringValue("sprites").append(filename));
+ pathJoin(paths.getStringValue("sprites"), filename));
}
if (equipmentSprite)
@@ -2776,7 +2776,7 @@ void Being::setSpriteColor(const unsigned int slot,
if (!filename.empty())
{
equipmentSprite = AnimatedSprite::delayedLoad(
- paths.getStringValue("sprites").append(
+ pathJoin(paths.getStringValue("sprites"),
combineDye(filename, color)));
}
@@ -2856,7 +2856,7 @@ void Being::setSpriteColorId(const unsigned int slot,
{
color = info.getDyeColorsString(colorId);
equipmentSprite = AnimatedSprite::delayedLoad(
- paths.getStringValue("sprites").append(
+ pathJoin(paths.getStringValue("sprites"),
combineDye(filename, color)));
}
@@ -2942,7 +2942,7 @@ void Being::setSpriteCards(const unsigned int slot,
color = info.getDyeColorsString(colorId);
equipmentSprite = AnimatedSprite::delayedLoad(
- paths.getStringValue("sprites").append(
+ pathJoin(paths.getStringValue("sprites"),
combineDye(filename, color)));
}
@@ -3034,7 +3034,7 @@ void Being::setTempSprite(const unsigned int slot,
color = info.getDyeColorsString(colorId);
equipmentSprite = AnimatedSprite::delayedLoad(
- paths.getStringValue("sprites").append(
+ pathJoin(paths.getStringValue("sprites"),
combineDye(filename, color)));
}
@@ -3107,7 +3107,7 @@ void Being::setHairTempSprite(const unsigned int slot,
color = info.getDyeColorsString(colorId);
equipmentSprite = AnimatedSprite::delayedLoad(
- paths.getStringValue("sprites").append(
+ pathJoin(paths.getStringValue("sprites"),
combineDye(filename, color)));
}
@@ -3179,7 +3179,7 @@ void Being::setSpriteColor(const unsigned int slot,
if (!filename.empty())
{
equipmentSprite = AnimatedSprite::delayedLoad(
- paths.getStringValue("sprites").append(
+ pathJoin(paths.getStringValue("sprites"),
combineDye(filename, color)));
}
@@ -3445,7 +3445,7 @@ void Being::setGender(const GenderT gender) restrict2
if (!filename.empty())
{
equipmentSprite = AnimatedSprite::delayedLoad(
- paths.getStringValue("sprites").append(
+ pathJoin(paths.getStringValue("sprites"),
combineDye(filename, beingSlot.color)));
}
@@ -4557,7 +4557,7 @@ std::string Being::loadComment(const std::string &restrict name,
return "";
}
- str.append(stringToHexPath(name)).append("/comment.txt");
+ str = pathJoin(str, stringToHexPath(name), "comment.txt");
if (Files::existsLocal(str))
{
StringVect lines;
@@ -4594,7 +4594,7 @@ void Being::saveComment(const std::string &restrict name,
default:
return;
}
- dir.append(stringToHexPath(name));
+ dir = pathJoin(dir, stringToHexPath(name));
Files::saveTextFile(dir,
"comment.txt",
(name + "\n").append(comment));
diff --git a/src/configmanager.cpp b/src/configmanager.cpp
index f1232235a..eb65d14f3 100644
--- a/src/configmanager.cpp
+++ b/src/configmanager.cpp
@@ -173,8 +173,7 @@ void ConfigManager::initConfiguration()
void ConfigManager::backupConfig(const std::string &name)
{
- const std::string fileName3 = std::string(settings.configDir).append(
- "/").append(name);
+ const std::string fileName3 = pathJoin(settings.configDir, name);
StringVect arr;
if (Files::existsLocal(fileName3) == false)
{
@@ -188,11 +187,8 @@ void ConfigManager::backupConfig(const std::string &name)
return;
arr.clear();
- const std::string tmpName = std::string(
- settings.configDir).append(
- "/").append(
- name).append(
- ".tmp");
+ const std::string tmpName = pathJoin(settings.configDir,
+ name).append(".tmp");
Files::copyFile(fileName3, tmpName);
if (Files::loadTextFileLocal(tmpName, arr) == false ||
arr.size() == 0)
@@ -203,11 +199,8 @@ void ConfigManager::backupConfig(const std::string &name)
arr.clear();
}
- const std::string confName = std::string(
- settings.configDir).append(
- "/").append(
- name).append(
- ".bak");
+ const std::string confName = pathJoin(settings.configDir,
+ name).append(".bak");
const int maxFileIndex = 5;
::remove((confName + toString(maxFileIndex)).c_str());
for (int f = maxFileIndex; f > 1; f --)
diff --git a/src/dirs.cpp b/src/dirs.cpp
index d72881545..85383543a 100644
--- a/src/dirs.cpp
+++ b/src/dirs.cpp
@@ -103,8 +103,8 @@ void extractAssets()
logger->log("error: APPDIR is not set!");
return;
}
- const std::string fileName = std::string(getenv(
- "APPDIR")).append("/data.zip");
+ const std::string fileName = pathJoin(getenv("APPDIR"),
+ "data.zip");
logger->log("Extracting asset into: " + fileName);
uint8_t *buf = new uint8_t[1000000];
@@ -132,8 +132,8 @@ void extractAssets()
}
fclose(file);
- const std::string fileName2 = std::string(getenv(
- "APPDIR")).append("/locale.zip");
+ const std::string fileName2 = pathJoin(getenv("APPDIR"),
+ "locale.zip");
FILE *const file2 = fopen(fileName2.c_str(), "w");
SDL_RWops *const rw = SDL_RWFromFile("manaplus-locale.zip", "r");
if (rw)
@@ -177,12 +177,8 @@ void Dirs::extractDataDir()
resetProgress();
extractAssets();
- const std::string zipName = std::string(getenv(
- "APPDIR")).append(
- "/data.zip");
- const std::string dirName = std::string(getenv(
- "APPDIR")).append(
- "/data");
+ const std::string zipName = pathJoin(getenv("APPDIR"), "data.zip");
+ const std::string dirName = pathJoin(getenv("APPDIR"), "data");
Files::extractZip(zipName, "data", dirName);
Files::extractLocale();
#endif // defined(ANDROID) && defined(USE_SDL2)
@@ -397,18 +393,21 @@ void Dirs::initConfigDir()
}
else
{
- settings.configDir.append("/mana/").append(branding.getValue(
- "appShort", "mana"));
+ settings.configDir = pathJoin(settings.configDir,
+ "mana",
+ branding.getValue("appShort", "mana"));
}
#elif defined __ANDROID__
- settings.configDir = getSdStoragePath() + branding.getValue(
- "appShort", "ManaPlus").append("/config");
+ settings.configDir = pathJoin(getSdStoragePath(),
+ branding.getValue("appShort", "ManaPlus"),
+ "config");
#elif defined __native_client__
settings.configDir = pathJoin(_nacl_dir, "config");
#else // __APPLE__
- settings.configDir = std::string(VirtFs::getUserDir()).append(
- "/.config/mana/").append(branding.getValue("appShort", "mana"));
+ settings.configDir = pathJoin(VirtFs::getUserDir(),
+ ".config/mana",
+ branding.getValue("appShort", "mana"));
#endif // __APPLE__
logger->log("Generating config dir: " + settings.configDir);
@@ -440,10 +439,7 @@ void Dirs::initUpdatesDir()
if (settings.updateHost.length() < 2)
{
if (settings.updatesDir.empty())
- {
- settings.updatesDir = std::string("updates/").append(
- settings.serverName);
- }
+ settings.updatesDir = pathJoin("updates", settings.serverName);
return;
}
diff --git a/src/fs/files.cpp b/src/fs/files.cpp
index dbbf248d2..215076b99 100644
--- a/src/fs/files.cpp
+++ b/src/fs/files.cpp
@@ -44,15 +44,14 @@ void Files::extractLocale()
{
// in future need also remove all locales in local dir
- const std::string fileName2 = std::string(getenv(
- "APPDIR")).append("/locale.zip");
+ const std::string fileName2 = pathJoin(getenv("APPDIR"), "locale.zip");
VirtFs::mountZip(fileName2, Append_false);
const std::string localDir = std::string(getenv("APPDIR")).append("/");
VirtList *const rootDirs = VirtFs::enumerateFiles("locale");
FOR_EACH (StringVectCIter, i, rootDirs->names)
{
- const std::string dir = std::string("locale/").append(*i);
+ const std::string dir = pathJoin("locale", *i);
if (VirtFs::isDirectory(dir))
{
const std::string moFile = dir + "/LC_MESSAGES/manaplus.mo";
@@ -112,8 +111,8 @@ void Files::copyVirtFsDir(const std::string &restrict inDir,
VirtList *const files = VirtFs::enumerateFiles(inDir);
FOR_EACH (StringVectCIter, i, files->names)
{
- const std::string file = std::string(inDir).append("/").append(*i);
- const std::string outDir2 = std::string(outDir).append("/").append(*i);
+ const std::string file = pathJoin(inDir, *i);
+ const std::string outDir2 = pathJoin(outDir, *i);
if (VirtFs::isDirectory(file))
copyVirtFsDir(file, outDir2);
else
@@ -257,7 +256,7 @@ void Files::saveTextFile(std::string path,
if (!mkdir_r(path.c_str()))
{
std::ofstream file;
- std::string fileName = path.append("/").append(name);
+ std::string fileName = pathJoin(path, name);
file.open(fileName.c_str(), std::ios::out);
if (file.is_open())
{
diff --git a/src/fs/paths.cpp b/src/fs/paths.cpp
index a5941f084..e5fcdd7d3 100644
--- a/src/fs/paths.cpp
+++ b/src/fs/paths.cpp
@@ -191,12 +191,12 @@ std::string getPicturesDir()
std::string file;
if (!xdg)
{
- file = std::string(VirtFs::getUserDir()).append(
- "/.config/user-dirs.dirs");
+ file = pathJoin(VirtFs::getUserDir(),
+ ".config/user-dirs.dirs");
}
else
{
- file = std::string(xdg).append("/user-dirs.dirs");
+ file = pathJoin(xdg, "user-dirs.dirs");
}
StringVect arr;
@@ -212,16 +212,13 @@ std::string getPicturesDir()
replaceAll(str, "$HOME/", VirtFs::getUserDir());
str = getRealPath(str);
if (str.empty())
- str = std::string(VirtFs::getUserDir()).append("Desktop");
+ str = pathJoin(VirtFs::getUserDir(), "Desktop");
return str;
}
}
-
- return std::string(VirtFs::getUserDir()).append("Desktop");
-#else // WIN32
-
- return std::string(VirtFs::getUserDir()).append("Desktop");
#endif // WIN32
+
+ return pathJoin(VirtFs::getUserDir(), "Desktop");
}
std::string getHomePath()
diff --git a/src/game.cpp b/src/game.cpp
index 9b4542e93..a00c6cfea 100644
--- a/src/game.cpp
+++ b/src/game.cpp
@@ -1053,9 +1053,9 @@ void Game::changeMap(const std::string &mapPath)
mMapName = mapPath;
- std::string fullMap = paths.getValue("maps", "maps/").append(
+ std::string fullMap = pathJoin(paths.getValue("maps", "maps/"),
mMapName).append(".tmx");
- std::string realFullMap = paths.getValue("maps", "maps/").append(
+ std::string realFullMap = pathJoin(paths.getValue("maps", "maps/"),
MapDB::getMapName(mMapName)).append(".tmx");
if (!VirtFs::exists(realFullMap))
diff --git a/src/gui/theme.cpp b/src/gui/theme.cpp
index b68fa011d..f369c95b3 100644
--- a/src/gui/theme.cpp
+++ b/src/gui/theme.cpp
@@ -644,13 +644,13 @@ std::string Theme::resolveThemePath(const std::string &path)
}
// Try the theme
- file = getThemePath().append("/").append(file);
+ file = pathJoin(getThemePath(), file);
if (VirtFs::exists(file))
- return getThemePath().append("/").append(path);
+ return pathJoin(getThemePath(), path);
// Backup
- return branding.getStringValue("guiPath").append(path);
+ return pathJoin(branding.getStringValue("guiPath"), path);
}
Image *Theme::getImageFromTheme(const std::string &path)
diff --git a/src/gui/widgets/setupitem.cpp b/src/gui/widgets/setupitem.cpp
index 37621770b..2ebd2ef19 100644
--- a/src/gui/widgets/setupitem.cpp
+++ b/src/gui/widgets/setupitem.cpp
@@ -1167,8 +1167,9 @@ void SetupItemSound::action(const ActionEvent &event)
{
if (mSlider && mSlider->getSelected())
{
- soundManager.playGuiSfx(branding.getStringValue("systemsounds")
- .append(mSlider->getSelectedString()).append(".ogg"));
+ soundManager.playGuiSfx(pathJoin(branding.getStringValue(
+ "systemsounds"),
+ mSlider->getSelectedString()).append(".ogg"));
}
}
else
diff --git a/src/gui/windows/cutinwindow.cpp b/src/gui/windows/cutinwindow.cpp
index f965a77ee..79bc1e1e9 100644
--- a/src/gui/windows/cutinwindow.cpp
+++ b/src/gui/windows/cutinwindow.cpp
@@ -84,8 +84,7 @@ void CutInWindow::show(const std::string &name,
else
{
mImage = AnimatedSprite::load(
- std::string(paths.getStringValue("cutInsDir")).append(
- "/").append(
+ pathJoin(paths.getStringValue("cutInsDir"),
name).append(
".xml"));
if (mImage)
diff --git a/src/gui/windows/didyouknowwindow.cpp b/src/gui/windows/didyouknowwindow.cpp
index 43251f2dd..f5a01b42d 100644
--- a/src/gui/windows/didyouknowwindow.cpp
+++ b/src/gui/windows/didyouknowwindow.cpp
@@ -171,7 +171,7 @@ void DidYouKnowWindow::loadFile(const int num)
helpPath = paths.getStringValue("help");
StringVect lines;
- TranslationManager::translateFile(helpPath.append(file).append(".txt"),
+ TranslationManager::translateFile(pathJoin(helpPath, file).append(".txt"),
translator, lines);
for (size_t i = 0, sz = lines.size(); i < sz; ++i)
diff --git a/src/gui/windows/helpwindow.cpp b/src/gui/windows/helpwindow.cpp
index 769082516..d0aa30b42 100644
--- a/src/gui/windows/helpwindow.cpp
+++ b/src/gui/windows/helpwindow.cpp
@@ -149,7 +149,7 @@ void HelpWindow::loadFile(std::string file)
helpPath = paths.getStringValue("help");
StringVect lines;
- TranslationManager::translateFile(helpPath.append(file).append(".txt"),
+ TranslationManager::translateFile(pathJoin(helpPath, file).append(".txt"),
translator, lines);
for (size_t i = 0, sz = lines.size(); i < sz; ++i)
diff --git a/src/gui/windows/minimap.cpp b/src/gui/windows/minimap.cpp
index 2a2d6830a..5d4d867bf 100644
--- a/src/gui/windows/minimap.cpp
+++ b/src/gui/windows/minimap.cpp
@@ -176,7 +176,7 @@ void Minimap::setMap(const Map *const map)
}
else
{
- std::string tempname = paths.getStringValue("minimaps").append(
+ std::string tempname = pathJoin(paths.getStringValue("minimaps"),
map->getFilename()).append(".png");
std::string minimapName = map->getProperty("minimap");
@@ -187,7 +187,7 @@ void Minimap::setMap(const Map *const map)
if (minimapName.empty())
{
tempname = pathJoin("graphics/minimaps",
- std::string(map->getFilename()).append(".png"));
+ map->getFilename()).append(".png");
if (VirtFs::exists(tempname))
minimapName = tempname;
}
diff --git a/src/gui/windows/serverdialog.cpp b/src/gui/windows/serverdialog.cpp
index d04deb0fb..7c4af2291 100644
--- a/src/gui/windows/serverdialog.cpp
+++ b/src/gui/windows/serverdialog.cpp
@@ -440,7 +440,7 @@ void ServerDialog::downloadServerList()
mDownload = new Net::Download(this, listFile,
&downloadUpdate, false, false, true);
- mDownload->setFile(std::string(mDir).append("/").append(
+ mDownload->setFile(pathJoin(mDir,
branding.getStringValue("onlineServerFile")));
if (!listFile2.empty())
mDownload->addMirror(listFile2);
@@ -478,7 +478,7 @@ static void loadHostsGroup(XmlNodeConstPtr node,
void ServerDialog::loadServers(const bool addNew)
{
- XML::Document doc(std::string(mDir).append("/").append(
+ XML::Document doc(pathJoin(mDir,
branding.getStringValue("onlineServerFile")),
UseVirtFs_false,
SkipError_false);
diff --git a/src/gui/windows/updaterwindow.cpp b/src/gui/windows/updaterwindow.cpp
index 6ef065eed..c99674072 100644
--- a/src/gui/windows/updaterwindow.cpp
+++ b/src/gui/windows/updaterwindow.cpp
@@ -51,6 +51,7 @@
#include "utils/delete2.h"
#include "utils/gettext.h"
+#include "utils/stringutils.h"
#include <sys/stat.h>
@@ -596,7 +597,7 @@ void UpdaterWindow::download()
else
{
mDownload = new Net::Download(this,
- std::string(mUpdateHost).append("/").append(mCurrentFile),
+ pathJoin(mUpdateHost, mCurrentFile),
&updateProgress,
false, false, mValidateXml);
@@ -613,8 +614,8 @@ void UpdaterWindow::download()
const std::vector<std::string> &mirrors = settings.updateMirrors;
FOR_EACH (std::vector<std::string>::const_iterator, it, mirrors)
{
- mDownload->addMirror(std::string(*it).append(
- "/").append(mCurrentFile));
+ mDownload->addMirror(pathJoin(*it,
+ mCurrentFile));
}
}
}
@@ -627,13 +628,13 @@ void UpdaterWindow::download()
{
if (mDownloadStatus == UpdateDownloadStatus::UPDATE_RESOURCES)
{
- mDownload->setFile(std::string(mUpdatesDir).append("/").append(
- mCurrentFile), mCurrentChecksum);
+ mDownload->setFile(pathJoin(mUpdatesDir, mCurrentFile),
+ mCurrentChecksum);
}
else
{
- mDownload->setFile(std::string(mUpdatesDir).append(
- "/").append(mCurrentFile));
+ mDownload->setFile(pathJoin(mUpdatesDir,
+ mCurrentFile));
}
}
@@ -650,15 +651,15 @@ void UpdaterWindow::loadUpdates()
{
if (mUpdateFiles.empty())
{ // updates not downloaded
- mUpdateFiles = loadXMLFile(std::string(mUpdatesDir).append(
- "/").append(xmlUpdateFile), false);
+ mUpdateFiles = loadXMLFile(pathJoin(mUpdatesDir, xmlUpdateFile),
+ false);
if (mUpdateFiles.empty())
{
logger->log("Warning this server does not have a"
" %s file falling back to %s", xmlUpdateFile.c_str(),
txtUpdateFile.c_str());
- mUpdateFiles = loadTxtFile(std::string(mUpdatesDir).append(
- "/").append(txtUpdateFile));
+ mUpdateFiles = loadTxtFile(pathJoin(mUpdatesDir,
+ txtUpdateFile));
}
}
@@ -681,15 +682,16 @@ void UpdaterWindow::loadUpdates()
void UpdaterWindow::loadLocalUpdates(const std::string &dir)
{
std::vector<UpdateFile> updateFiles = loadXMLFile(
- std::string(dir).append("/").append(xmlUpdateFile), false);
+ pathJoin(dir, xmlUpdateFile),
+ false);
if (updateFiles.empty())
{
logger->log("Warning this server does not have a"
" %s file falling back to %s", xmlUpdateFile.c_str(),
txtUpdateFile.c_str());
- updateFiles = loadTxtFile(std::string(dir).append(
- "/").append(txtUpdateFile));
+ updateFiles = loadTxtFile(pathJoin(dir,
+ txtUpdateFile));
}
const std::string fixPath = dir + "/fix";
@@ -713,12 +715,13 @@ void UpdaterWindow::loadLocalUpdates(const std::string &dir)
void UpdaterWindow::unloadUpdates(const std::string &dir)
{
std::vector<UpdateFile> updateFiles = loadXMLFile(
- std::string(dir).append("/").append(xmlUpdateFile), true);
+ pathJoin(dir, xmlUpdateFile),
+ true);
if (updateFiles.empty())
{
- updateFiles = loadTxtFile(std::string(dir).append(
- "/").append(txtUpdateFile));
+ updateFiles = loadTxtFile(pathJoin(dir,
+ txtUpdateFile));
}
const std::string fixPath = dir + "/fix";
@@ -738,7 +741,8 @@ void UpdaterWindow::loadManaPlusUpdates(const std::string &dir)
{
std::string fixPath = dir + "/fix";
std::vector<UpdateFile> updateFiles = loadXMLFile(
- std::string(fixPath).append("/").append(xmlUpdateFile), false);
+ pathJoin(fixPath, xmlUpdateFile),
+ false);
for (unsigned int updateIndex = 0,
fsz = CAST_U32(updateFiles.size());
@@ -752,8 +756,8 @@ void UpdaterWindow::loadManaPlusUpdates(const std::string &dir)
if (strStartWith(name, "manaplus_"))
{
struct stat statbuf;
- std::string fileName = std::string(fixPath).append(
- "/").append(name);
+ std::string fileName = pathJoin(fixPath,
+ name);
if (!stat(fileName.c_str(), &statbuf))
{
VirtFs::mountZip(fileName,
@@ -767,7 +771,8 @@ void UpdaterWindow::unloadManaPlusUpdates(const std::string &dir)
{
const std::string fixPath = dir + "/fix";
const std::vector<UpdateFile> updateFiles = loadXMLFile(
- std::string(fixPath).append("/").append(xmlUpdateFile), true);
+ pathJoin(fixPath, xmlUpdateFile),
+ true);
for (unsigned int updateIndex = 0,
fsz = CAST_U32(updateFiles.size());
@@ -778,8 +783,8 @@ void UpdaterWindow::unloadManaPlusUpdates(const std::string &dir)
if (strStartWith(name, "manaplus_"))
{
struct stat statbuf;
- const std::string file = std::string(
- fixPath).append("/").append(name);
+ const std::string file = pathJoin(
+ fixPath, name);
if (!stat(file.c_str(), &statbuf))
VirtFs::unmountZip(file);
}
@@ -791,11 +796,11 @@ void UpdaterWindow::addUpdateFile(const std::string &restrict path,
const std::string &restrict file,
const Append append)
{
- const std::string tmpPath = std::string(path).append("/").append(file);
+ const std::string tmpPath = pathJoin(path, file);
if (append == Append_false)
VirtFs::mountZip(tmpPath, append);
- const std::string fixFile = std::string(fixPath).append("/").append(file);
+ const std::string fixFile = pathJoin(fixPath, file);
struct stat statbuf;
if (!stat(fixFile.c_str(), &statbuf))
VirtFs::mountZip(fixFile, append);
@@ -808,9 +813,8 @@ void UpdaterWindow::removeUpdateFile(const std::string &restrict path,
const std::string &restrict fixPath,
const std::string &restrict file)
{
- VirtFs::unmountZip(
- std::string(path).append("/").append(file));
- const std::string fixFile = std::string(fixPath).append("/").append(file);
+ VirtFs::unmountZip(pathJoin(path, file));
+ const std::string fixFile = pathJoin(fixPath, file);
struct stat statbuf;
if (!stat(fixFile.c_str(), &statbuf))
VirtFs::unmountZip(fixFile);
@@ -883,7 +887,7 @@ void UpdaterWindow::logic()
loadPatch();
mUpdateHost = updateServer2 + mUpdateServerPath;
- mUpdatesDir.append("/fix");
+ mUpdatesDir = pathJoin(mUpdatesDir, "fix");
mCurrentFile = xmlUpdateFile;
mValidateXml = true;
mStoreInMemory = false;
@@ -897,8 +901,9 @@ void UpdaterWindow::logic()
{
if (mCurrentFile == xmlUpdateFile)
{
- mUpdateFiles = loadXMLFile(std::string(mUpdatesDir).append(
- "/").append(xmlUpdateFile), true);
+ mUpdateFiles = loadXMLFile(pathJoin(
+ mUpdatesDir, xmlUpdateFile),
+ true);
if (mUpdateFiles.empty())
{
@@ -920,8 +925,8 @@ void UpdaterWindow::logic()
else if (mCurrentFile == txtUpdateFile)
{
mValidateXml = true;
- mUpdateFiles = loadTxtFile(std::string(mUpdatesDir).append(
- "/").append(txtUpdateFile));
+ mUpdateFiles = loadTxtFile(pathJoin(mUpdatesDir,
+ txtUpdateFile));
}
mStoreInMemory = false;
mDownloadStatus = UpdateDownloadStatus::UPDATE_RESOURCES;
@@ -945,12 +950,12 @@ void UpdaterWindow::logic()
std::stringstream ss(checksum);
ss >> std::hex >> mCurrentChecksum;
- std::ifstream temp((std::string(mUpdatesDir).append(
- "/").append(mCurrentFile)).c_str());
+ std::ifstream temp(pathJoin(mUpdatesDir,
+ mCurrentFile).c_str());
mValidateXml = false;
- if (!temp.is_open() || !validateFile(std::string(
- mUpdatesDir).append("/").append(mCurrentFile),
+ if (!temp.is_open() || !validateFile(pathJoin(
+ mUpdatesDir, mCurrentFile),
mCurrentChecksum))
{
temp.close();
@@ -988,8 +993,9 @@ void UpdaterWindow::logic()
{
if (mCurrentFile == xmlUpdateFile)
{
- mTempUpdateFiles = loadXMLFile(std::string(
- mUpdatesDir).append("/").append(xmlUpdateFile), true);
+ mTempUpdateFiles = loadXMLFile(pathJoin(
+ mUpdatesDir, xmlUpdateFile),
+ true);
}
mUpdateIndexOffset = mUpdateIndex;
mUpdateIndex = 0;
@@ -1013,11 +1019,11 @@ void UpdaterWindow::logic()
std::stringstream ss(checksum);
ss >> std::hex >> mCurrentChecksum;
- std::ifstream temp((std::string(mUpdatesDir).append(
- "/").append(mCurrentFile)).c_str());
+ std::ifstream temp((pathJoin(mUpdatesDir,
+ mCurrentFile)).c_str());
- if (!temp.is_open() || !validateFile(std::string(
- mUpdatesDir).append("/").append(mCurrentFile),
+ if (!temp.is_open() || !validateFile(pathJoin(
+ mUpdatesDir, mCurrentFile),
mCurrentChecksum))
{
temp.close();
@@ -1118,7 +1124,8 @@ void UpdaterWindow::loadMods(const std::string &dir,
}
std::vector<UpdateFile> updateFiles2 = loadXMLFile(
- std::string(fixPath).append("/").append(xmlUpdateFile), true);
+ pathJoin(fixPath, xmlUpdateFile),
+ true);
for (unsigned int updateIndex = 0,
fsz = CAST_U32(updateFiles2.size());
@@ -1136,8 +1143,8 @@ void UpdaterWindow::loadMods(const std::string &dir,
if (it != modsList.end())
{
struct stat statbuf;
- std::string fileName = std::string(fixPath).append(
- "/").append(name);
+ std::string fileName = pathJoin(fixPath,
+ name);
if (!stat(fileName.c_str(), &statbuf))
{
VirtFs::mountZip(fileName,
diff --git a/src/resources/db/emotedb.cpp b/src/resources/db/emotedb.cpp
index 8fddc0a19..7d9e47e8b 100644
--- a/src/resources/db/emotedb.cpp
+++ b/src/resources/db/emotedb.cpp
@@ -50,8 +50,8 @@ void EmoteDB::load()
unload();
EmoteSprite *const unknownSprite = new EmoteSprite;
- unknownSprite->sprite = AnimatedSprite::load(paths.getStringValue(
- "sprites").append(paths.getStringValue(
+ unknownSprite->sprite = AnimatedSprite::load(pathJoin(paths.getStringValue(
+ "sprites"), paths.getStringValue(
"spriteErrorFile")));
unknownSprite->name = "unknown";
unknownSprite->id = 0;
@@ -126,9 +126,9 @@ void EmoteDB::loadXmlFile(const std::string &fileName,
if (xmlNameEqual(spriteNode, "sprite"))
{
EmoteSprite *const currentSprite = new EmoteSprite;
- currentSprite->sprite = AnimatedSprite::load(
- paths.getStringValue("sprites").append(std::string(
- XmlChildContent(spriteNode))),
+ currentSprite->sprite = AnimatedSprite::load(pathJoin(
+ paths.getStringValue("sprites"),
+ XmlChildContent(spriteNode)),
XML::getProperty(spriteNode, "variant", 0));
currentSprite->name = XML::langProperty(
spriteNode, "name", "");
@@ -199,9 +199,9 @@ void EmoteDB::loadSpecialXmlFile(const std::string &fileName,
if (xmlNameEqual(spriteNode, "sprite"))
{
EmoteSprite *const currentSprite = new EmoteSprite;
- currentSprite->sprite = AnimatedSprite::load(
- paths.getStringValue("sprites").append(std::string(
- XmlChildContent(spriteNode))),
+ currentSprite->sprite = AnimatedSprite::load(pathJoin(
+ paths.getStringValue("sprites"),
+ XmlChildContent(spriteNode)),
XML::getProperty(spriteNode, "variant", 0));
currentSprite->name = XML::langProperty(
spriteNode, "name", "");
diff --git a/src/resources/db/horsedb.cpp b/src/resources/db/horsedb.cpp
index 1eab6ada7..a6b395d3f 100644
--- a/src/resources/db/horsedb.cpp
+++ b/src/resources/db/horsedb.cpp
@@ -43,8 +43,8 @@ namespace
#define loadSprite(name) \
{ \
SpriteReference *const currentSprite = new SpriteReference; \
- currentSprite->sprite = paths.getStringValue("sprites").append( \
- std::string(XmlChildContent(spriteNode))); \
+ currentSprite->sprite = pathJoin(paths.getStringValue("sprites"), \
+ XmlChildContent(spriteNode)); \
currentSprite->variant = XML::getProperty( \
spriteNode, "variant", 0); \
currentInfo->name.push_back(currentSprite); \
@@ -62,13 +62,13 @@ void HorseDB::load()
unload();
SpriteReference *currentSprite = new SpriteReference;
- currentSprite->sprite = paths.getStringValue("sprites").append(
+ currentSprite->sprite = pathJoin(paths.getStringValue("sprites"),
paths.getStringValue("spriteErrorFile"));
currentSprite->variant = 0;
mUnknown.downSprites.push_back(currentSprite);
currentSprite = new SpriteReference;
- currentSprite->sprite = paths.getStringValue("sprites").append(
+ currentSprite->sprite = pathJoin(paths.getStringValue("sprites"),
paths.getStringValue("spriteErrorFile"));
currentSprite->variant = 0;
mUnknown.upSprites.push_back(currentSprite);
diff --git a/src/resources/iteminfo.cpp b/src/resources/iteminfo.cpp
index 6c0363e6c..75e166a0d 100644
--- a/src/resources/iteminfo.cpp
+++ b/src/resources/iteminfo.cpp
@@ -152,7 +152,8 @@ void ItemInfo::addSound(const ItemSoundEvent::Type event,
const std::string &filename, const int delay)
{
mSounds[event].push_back(SoundInfo(
- paths.getStringValue("sfx").append(filename), delay));
+ pathJoin(paths.getStringValue("sfx"), filename),
+ delay));
}
const SoundInfo &ItemInfo::getSound(const ItemSoundEvent::Type event) const
diff --git a/src/resources/map/map.cpp b/src/resources/map/map.cpp
index b7e5d1fca..c24e3752e 100644
--- a/src/resources/map/map.cpp
+++ b/src/resources/map/map.cpp
@@ -1135,8 +1135,8 @@ void Map::addExtraLayer() restrict2
BLOCK_END("Map::addExtraLayer")
return;
}
- const std::string mapFileName = getUserMapDirectory().append(
- "/extralayer.txt");
+ const std::string mapFileName = pathJoin(getUserMapDirectory(),
+ "extralayer.txt");
logger->log("loading extra layer: " + mapFileName);
struct stat statbuf;
if (!stat(mapFileName.c_str(), &statbuf) && S_ISREG(statbuf.st_mode))
@@ -1208,8 +1208,8 @@ void Map::saveExtraLayer() const restrict2
logger->log1("No special layer");
return;
}
- const std::string mapFileName = getUserMapDirectory().append(
- "/extralayer.txt");
+ const std::string mapFileName = pathJoin(getUserMapDirectory(),
+ "extralayer.txt");
logger->log("saving extra layer: " + mapFileName);
if (mkdir_r(getUserMapDirectory().c_str()))
diff --git a/src/resources/mapreader.cpp b/src/resources/mapreader.cpp
index 307364457..84dff3140 100644
--- a/src/resources/mapreader.cpp
+++ b/src/resources/mapreader.cpp
@@ -337,8 +337,8 @@ Map *MapReader::readMap(XmlNodePtrConst node, const std::string &path)
const int tileh = XML::getProperty(node, "tileheight", -1);
const bool showWarps = config.getBoolValue("warpParticle");
- const std::string warpPath = paths.getStringValue("particles")
- .append(paths.getStringValue("portalEffectFile"));
+ const std::string warpPath = pathJoin(paths.getStringValue("particles"),
+ paths.getStringValue("portalEffectFile"));
if (tilew < 0 || tileh < 0)
{
@@ -1280,7 +1280,7 @@ void MapReader::updateMusic(Map *const map)
if (p != std::string::npos)
name = name.substr(0, p);
name.append(".ogg");
- if (VirtFs::exists(paths.getStringValue("music").append(name)))
+ if (VirtFs::exists(pathJoin(paths.getStringValue("music"), name)))
map->setProperty("music", name);
}
diff --git a/src/resources/sprite/spritedef.cpp b/src/resources/sprite/spritedef.cpp
index 59ac9d9f4..2b79c3806 100644
--- a/src/resources/sprite/spritedef.cpp
+++ b/src/resources/sprite/spritedef.cpp
@@ -105,7 +105,7 @@ SpriteDef *SpriteDef::load(const std::string &animationFile,
{
reportAlways("Error, failed to parse sprite %s",
animationFile.c_str());
- const std::string errorFile = paths.getStringValue("sprites").append(
+ const std::string errorFile = pathJoin(paths.getStringValue("sprites"),
paths.getStringValue("spriteErrorFile"));
BLOCK_END("SpriteDef::load")
doc->decRef();
diff --git a/src/resources/wallpaper.cpp b/src/resources/wallpaper.cpp
index 79cb6bbbd..9b12946d4 100644
--- a/src/resources/wallpaper.cpp
+++ b/src/resources/wallpaper.cpp
@@ -156,7 +156,7 @@ std::string Wallpaper::getWallpaper(const int width, const int height)
// Return the backup file if everything else failed...
if (haveBackup)
- return std::string(wallpaperPath).append(wallpaperFile);
+ return pathJoin(wallpaperPath, wallpaperFile);
// Return an empty string if everything else failed
return std::string();
diff --git a/src/soundmanager.cpp b/src/soundmanager.cpp
index ba455f65f..7d085fff4 100644
--- a/src/soundmanager.cpp
+++ b/src/soundmanager.cpp
@@ -325,7 +325,8 @@ void SoundManager::setSfxVolume(const int volume)
static SDLMusic *loadMusic(const std::string &fileName,
const SkipError skipError)
{
- const std::string path = paths.getStringValue("music").append(fileName);
+ const std::string path = pathJoin(paths.getStringValue("music"),
+ fileName);
if (!VirtFs::exists(path))
{
if (skipError == SkipError_false)
@@ -460,7 +461,7 @@ void SoundManager::playSfx(const std::string &path,
}
else
{
- tmpPath = paths.getValue("sfx", "sfx/").append(path);
+ tmpPath = pathJoin(paths.getValue("sfx", "sfx"), path);
}
SoundEffect *const sample = Loader::getSoundEffect(tmpPath);
if (sample)
@@ -493,8 +494,8 @@ void SoundManager::playGuiSound(const std::string &name)
const std::string sound = config.getStringValue(name);
if (sound == "(no sound)")
return;
- playGuiSfx(branding.getStringValue("systemsounds").append(
- sound).append(".ogg"));
+ playGuiSfx(pathJoin(branding.getStringValue("systemsounds"),
+ std::string(sound).append(".ogg")));
}
void SoundManager::playGuiSfx(const std::string &path)
@@ -510,7 +511,7 @@ void SoundManager::playGuiSfx(const std::string &path)
if (!path.compare(0, 4, "sfx/"))
tmpPath = path;
else
- tmpPath = paths.getValue("sfx", "sfx/").append(path);
+ tmpPath = pathJoin(paths.getValue("sfx", "sfx"), path);
SoundEffect *const sample = Loader::getSoundEffect(tmpPath);
if (sample)
{
diff --git a/src/statuseffect.cpp b/src/statuseffect.cpp
index 5143086df..4a26fc78c 100644
--- a/src/statuseffect.cpp
+++ b/src/statuseffect.cpp
@@ -92,8 +92,8 @@ AnimatedSprite *StatusEffect::getIcon() const
}
else
{
- return AnimatedSprite::load(paths.getStringValue(
- "sprites").append(mIcon));
+ return AnimatedSprite::load(pathJoin(paths.getStringValue("sprites"),
+ mIcon));
}
}