From 11a874207935f86248c0b9034a11b415ee14b1cf Mon Sep 17 00:00:00 2001 From: krzys-h Date: Sat, 1 Nov 2014 14:02:39 +0100 Subject: #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 --- src/object/robotmain.cpp | 9 +++++++-- src/ui/maindialog.cpp | 8 ++++---- src/ui/studio.cpp | 5 ++++- 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; } -- cgit v1.2.3-1-g7c22