summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkrzys-h <krzys_h@interia.pl>2014-11-01 14:02:39 +0100
committerkrzys-h <krzys_h@interia.pl>2014-11-01 14:02:39 +0100
commit11a874207935f86248c0b9034a11b415ee14b1cf (patch)
tree410cf2842bd79638c4c7cfd36edd76c6efebb4a4
parentf7f9ac08b3cec00ab4793333ab6824b7829d6890 (diff)
downloadcolobot-11a874207935f86248c0b9034a11b415ee14b1cf.tar.gz
colobot-11a874207935f86248c0b9034a11b415ee14b1cf.tar.bz2
colobot-11a874207935f86248c0b9034a11b415ee14b1cf.zip
#335, #348, #352
I don't know what I'm doing anymore :/ I should set up dev envrioment on Windows so I don't have to commit every time I want somebody on Windows to test if my changes work
-rw-r--r--src/object/robotmain.cpp9
-rw-r--r--src/ui/maindialog.cpp8
-rw-r--r--src/ui/studio.cpp5
3 files changed, 15 insertions, 7 deletions
diff --git a/src/object/robotmain.cpp b/src/object/robotmain.cpp
index cc330f6..2c9384c 100644
--- a/src/object/robotmain.cpp
+++ b/src/object/robotmain.cpp
@@ -32,6 +32,7 @@
#include "common/profile.h"
#include "common/restext.h"
+#include "common/resources/resourcemanager.h"
#include "common/resources/inputstream.h"
#include "graphics/engine/camera.h"
@@ -5482,8 +5483,10 @@ void CRobotMain::LoadFileScript(CObject *obj, const char* filename, int objRank,
std::string fnstr = filename;
+ std::string savedir = CResourceManager::GetSaveLocation()+"/";
boost::replace_all(fnstr, "\\", "/");
- boost::replace_all(fnstr, m_dialog->GetSavegameDir(), m_dialog->GetPHYSFSSavegameDir()); //TODO: Refactor to get physfs path here
+ boost::replace_all(savedir, "\\", "/");
+ boost::replace_all(fnstr, savedir, ""); //TODO: Refactor to get physfs path here
//TODO: Refactor to std::string
char fn[MAX_FNAME];
strcpy(fn, fnstr.c_str());
@@ -5554,8 +5557,10 @@ void CRobotMain::SaveFileScript(CObject *obj, const char* filename, int objRank)
if (type == OBJECT_HUMAN) return;
std::string fnstr = filename;
+ std::string savedir = CResourceManager::GetSaveLocation()+"/";
boost::replace_all(fnstr, "\\", "/");
- boost::replace_all(fnstr, m_dialog->GetSavegameDir(), m_dialog->GetPHYSFSSavegameDir()); //TODO: Refactor to get physfs path here
+ boost::replace_all(savedir, "\\", "/");
+ boost::replace_all(fnstr, savedir, ""); //TODO: Refactor to get physfs path here
//TODO: Refactor to std::string
char fn[MAX_FNAME];
strcpy(fn, fnstr.c_str());
diff --git a/src/ui/maindialog.cpp b/src/ui/maindialog.cpp
index 32fa6e8..4b1c8f2 100644
--- a/src/ui/maindialog.cpp
+++ b/src/ui/maindialog.cpp
@@ -4166,8 +4166,10 @@ void CMainDialog::IOUpdateList()
return;
std::string filename = (m_saveList.at(sel) / "screen.png").make_preferred().string();
+ std::string savedir = CResourceManager::GetSaveLocation()+"/";
boost::replace_all(filename, "\\", "/");
- boost::replace_all(filename, GetSavegameDir(), GetPHYSFSSavegameDir()); //TODO: Refactor everything to PHYSFS, see issue #334
+ boost::replace_all(savedir, "\\", "/");
+ boost::replace_all(filename, savedir, ""); //TODO: Refactor everything to PHYSFS, see issue #334
filename = "../"+filename;
if ( m_phase == PHASE_WRITE || m_phase == PHASE_WRITEs )
{
@@ -6002,9 +6004,7 @@ bool CMainDialog::GetSceneSoluce()
std::string CMainDialog::GetSavegameDir()
{
- std::string out = CResourceManager::GetSaveLocation()+"/"+m_savegameDir;
- boost::replace_all(out, "\\", "/");
- return out;
+ return CResourceManager::GetSaveLocation()+"/"+m_savegameDir;
}
//TODO: Use PHYSFS everywhere
diff --git a/src/ui/studio.cpp b/src/ui/studio.cpp
index 93fd050..efdbbbc 100644
--- a/src/ui/studio.cpp
+++ b/src/ui/studio.cpp
@@ -1546,7 +1546,10 @@ std::string CStudio::SearchDirectory(bool bCreate, bool physfsReady)
std::string dir2 = dir;
if(physfsReady) {
- boost::replace_all(dir2, CResourceManager::GetSaveLocation()+"/", "");
+ std::string savedir = CResourceManager::GetSaveLocation()+"/";
+ boost::replace_all(dir2, "\\", "/");
+ boost::replace_all(savedir, "\\", "/");
+ boost::replace_all(dir2, savedir, "");
}
return dir2;
}