slackbuilds_ponce/games/glest/patches/glest-home-directory.patch
2010-05-13 00:26:25 +02:00

143 lines
4.5 KiB
Diff

--- source/glest_game/ai/ai_interface.h 2009-04-15 11:17:19.000000000 +0400
+++ source/glest_game/ai/ai_interface.h 2009-04-15 12:25:04.000000000 +0400
@@ -84,7 +84,11 @@
bool isFreeCells(const Vec2i &pos, int size, Field field);
private:
- string getLogFilename() const {return "ai"+intToStr(factionIndex)+".log";}
+ string getLogFilename() const {
+ string logfn=getenv("HOME");
+ logfn+="/.glest/ai"+intToStr(factionIndex)+".log";
+ return logfn;
+ }
};
}}//end namespace
--- source/glest_game/ai/ai_rule.cpp 2009-04-15 11:17:19.000000000 +0400
+++ source/glest_game/ai/ai_rule.cpp 2009-04-15 11:19:02.000000000 +0400
@@ -17,6 +17,8 @@
#include "unit.h"
#include "leak_dumper.h"
+#include <limits.h>
+
using Shared::Graphics::Vec2i;
namespace Glest{ namespace Game{
--- source/glest_game/game/game.cpp 2009-04-15 11:17:19.000000000 +0400
+++ source/glest_game/game/game.cpp 2009-04-15 12:21:29.000000000 +0400
@@ -443,7 +443,8 @@
}
else if(key=='E'){
for(int i=0; i<100; ++i){
- string path= "screens/screen" + intToStr(i) + ".tga";
+ string path=getenv("HOME");
+ path+="/.glest/screens/screen" + intToStr(i) + ".tga";
FILE *f= fopen(path.c_str(), "rb");
if(f==NULL){
--- source/glest_game/main/main.cpp 2009-04-15 11:17:19.000000000 +0400
+++ source/glest_game/main/main.cpp 2009-04-15 12:32:04.000000000 +0400
@@ -114,6 +114,17 @@
// =====================================================
int glestMain(int argc, char** argv){
+ if (!getenv("HOME"))
+ throw runtime_error("HOME external variable is not set");
+
+ char path[PATH_MAX];
+ snprintf(path, PATH_MAX, "%s/.glest", getenv("HOME"));
+ mkdir(path, 0750);
+
+ snprintf(path, PATH_MAX, "%s/.glest/screens", getenv("HOME"));
+ mkdir(path, 0750);
+
+ chdir("/usr/share/glest");
MainWindow *mainWindow= NULL;
Program *program= NULL;
--- source/glest_game/main/program.cpp 2009-04-15 11:17:19.000000000 +0400
+++ source/glest_game/main/program.cpp 2009-04-15 12:11:51.000000000 +0400
@@ -196,9 +196,11 @@
updateTimer.init(GameConstants::updateFps, maxTimes);
updateCameraTimer.init(GameConstants::cameraFps, maxTimes);
- //log start
- Logger &logger= Logger::getInstance();
- logger.setFile("glest.log");
+ //log start
+ char path[PATH_MAX];
+ snprintf(path, PATH_MAX, "%s/.glest/glest.log", getenv("HOME"));
+ Logger &logger= Logger::getInstance();
+ logger.setFile(path);
logger.clear();
//lang
--- source/shared_lib/sources/util/leak_dumper.cpp 2009-04-15 11:17:19.000000000 +0400
+++ source/shared_lib/sources/util/leak_dumper.cpp 2009-04-15 12:04:49.000000000 +0400
@@ -52,7 +52,9 @@
}
AllocRegistry::~AllocRegistry(){
- dump("leak_dump.log");
+ char path[PATH_MAX];
+ snprintf(path, PATH_MAX, "%s/.glest/leak_dump.log", getenv("HOME"));
+ dump(path);
}
void AllocRegistry::allocate(AllocInfo info){
--- source/shared_lib/sources/util/profiler.cpp 2009-04-15 11:17:19.000000000 +0400
+++ source/shared_lib/sources/util/profiler.cpp 2009-04-15 12:01:52.000000000 +0400
@@ -71,9 +71,11 @@
Profiler::~Profiler(){
rootSection->stop();
- FILE *f= fopen("profiler.log", "w");
+ char path[PATH_MAX];
+ snprintf(path, PATH_MAX, "%s/.glest/profiler.log", getenv("HOME"));
+ FILE *f= fopen(path, "w");
if(f==NULL)
- throw runtime_error("Can not open file: profiler.log");
+ throw runtime_error("Can not open file: %s",path);
fprintf(f, "Profiler Results\n\n");
--- source/shared_lib/sources/util/properties.cpp 2009-04-15 11:17:19.000000000 +0400
+++ source/shared_lib/sources/util/properties.cpp 2009-04-15 13:09:33.000000000 +0400
@@ -15,6 +15,9 @@
#include <stdexcept>
#include <cstring>
+#include <limits.h>
+#include <stdlib.h>
+
#include "conversion.h"
#include "leak_dumper.h"
@@ -34,9 +37,13 @@
this->path= path;
- fileStream.open(path.c_str(), ios_base::in);
+ char str[PATH_MAX];
+ snprintf(str, PATH_MAX, "%s/.glest/%s", getenv("HOME"), path.c_str());
+ fileStream.open(str, ios_base::in);
if(fileStream.fail()){
- throw runtime_error("Can't open propertyMap file: " + path);
+ fileStream.open(path.c_str(), ios_base::in); // use defaults
+ if(fileStream.fail())
+ throw runtime_error("Can't open propertyMap file: " + path + " cwd: "+ getenv("PWD"));
}
propertyMap.clear();
@@ -71,7 +78,9 @@
void Properties::save(const string &path){
ofstream fileStream;
- fileStream.open(path.c_str(), ios_base::out | ios_base::trunc);
+ char str[PATH_MAX];
+ snprintf(str, PATH_MAX, "%s/.glest/%s", getenv("HOME"), path.c_str());
+ fileStream.open(str, ios_base::out | ios_base::trunc);
fileStream << "; === propertyMap File === \n";
fileStream << '\n';