summaryrefslogtreecommitdiff
path: root/games/glest/patches
diff options
context:
space:
mode:
Diffstat (limited to 'games/glest/patches')
-rw-r--r--games/glest/patches/g3d_viewer.patch277
-rw-r--r--games/glest/patches/glest-3.2.2-glibc210.patch10
-rw-r--r--games/glest/patches/glest-home-directory.patch143
-rw-r--r--games/glest/patches/glest-xerces-c.patch41
4 files changed, 471 insertions, 0 deletions
diff --git a/games/glest/patches/g3d_viewer.patch b/games/glest/patches/g3d_viewer.patch
new file mode 100644
index 0000000000..279f602be9
--- /dev/null
+++ b/games/glest/patches/g3d_viewer.patch
@@ -0,0 +1,277 @@
+Index: source/g3d_viewer/main.cpp
+===================================================================
+--- source/g3d_viewer/main.cpp (Revision 191)
++++ source/g3d_viewer/main.cpp (Arbeitskopie)
+@@ -2,7 +2,6 @@
+
+ #include <stdexcept>
+
+-#include "graphics_factory_basic_gl.h"
+ #include "graphics_interface.h"
+ #include "util.h"
+
+@@ -11,8 +10,15 @@
+ using namespace Shared::Graphics::Gl;
+ using namespace Shared::Util;
+
+-using namespace std;
++using std::exception;
+
++#if (wxUSE_UNICODE == 1)
++#define STRCONV(x) wxConvUTF8.cMB2WC(x)
++#else
++#define STRCONV(x) x
++#endif
++
++
+ namespace Shared{ namespace G3dViewer{
+
+ // ===============================================
+@@ -24,7 +30,7 @@
+
+ MainWindow::MainWindow(const string &modelPath):
+ wxFrame(
+- NULL, -1, winHeader.c_str(),
++ NULL, -1, STRCONV(winHeader.c_str()),
+ wxPoint(Renderer::windowX, Renderer::windowY),
+ wxSize(Renderer::windowW, Renderer::windowH))
+ {
+@@ -37,38 +43,33 @@
+
+ glCanvas = new GlCanvas(this);
+
+- glCanvas->SetCurrent();
+-
+- renderer->init();
+-
+-
+ menu= new wxMenuBar();
+
+ //menu
+ menuFile= new wxMenu();
+- menuFile->Append(miFileLoad, "Load");
+- menu->Append(menuFile, "File");
++ menuFile->Append(miFileLoad, wxT("Load"));
++ menu->Append(menuFile, wxT("File"));
+
+ //mode
+ menuMode= new wxMenu();
+- menuMode->AppendCheckItem(miModeNormals, "Normals");
+- menuMode->AppendCheckItem(miModeWireframe, "Wireframe");
+- menuMode->AppendCheckItem(miModeGrid, "Grid");
+- menu->Append(menuMode, "Mode");
++ menuMode->AppendCheckItem(miModeNormals, wxT("Normals"));
++ menuMode->AppendCheckItem(miModeWireframe, wxT("Wireframe"));
++ menuMode->AppendCheckItem(miModeGrid, wxT("Grid"));
++ menu->Append(menuMode, wxT("Mode"));
+
+ //mode
+ menuSpeed= new wxMenu();
+- menuSpeed->Append(miSpeedSlower, "Slower");
+- menuSpeed->Append(miSpeedFaster, "Faster");
+- menu->Append(menuSpeed, "Speed");
++ menuSpeed->Append(miSpeedSlower, wxT("Slower"));
++ menuSpeed->Append(miSpeedFaster, wxT("Faster"));
++ menu->Append(menuSpeed, wxT("Speed"));
+
+ //custom color
+ menuCustomColor= new wxMenu();
+- menuCustomColor->AppendCheckItem(miColorRed, "Red");
+- menuCustomColor->AppendCheckItem(miColorBlue, "Blue");
+- menuCustomColor->AppendCheckItem(miColorYellow, "Yellow");
+- menuCustomColor->AppendCheckItem(miColorGreen, "Green");
+- menu->Append(menuCustomColor, "Custom Color");
++ menuCustomColor->AppendCheckItem(miColorRed, wxT("Red"));
++ menuCustomColor->AppendCheckItem(miColorBlue, wxT("Blue"));
++ menuCustomColor->AppendCheckItem(miColorYellow, wxT("Yellow"));
++ menuCustomColor->AppendCheckItem(miColorGreen, wxT("Green"));
++ menu->Append(menuCustomColor, wxT("Custom Color"));
+
+ menuMode->Check(miModeGrid, true);
+ menuCustomColor->Check(miColorRed, true);
+@@ -88,13 +89,6 @@
+
+ timer = new wxTimer(this);
+ timer->Start(40);
+-
+- if(!modelPath.empty()){
+- Model *tmpModel= new ModelGl();
+- renderer->loadTheModel(tmpModel, modelPath);
+- model= tmpModel;
+- GetStatusBar()->SetStatusText(getModelInfo().c_str());
+- }
+ }
+
+ MainWindow::~MainWindow(){
+@@ -104,6 +98,17 @@
+ delete glCanvas;
+ }
+
++void MainWindow::init(){
++ glCanvas->SetCurrent();
++ renderer->init();
++ if(!modelPath.empty()){
++ Model *tmpModel= new ModelGl();
++ renderer->loadTheModel(tmpModel, modelPath);
++ model= tmpModel;
++ GetStatusBar()->SetStatusText(STRCONV(getModelInfo().c_str()));
++ }
++}
++
+ void MainWindow::onPaint(wxPaintEvent &event){
+ renderer->reset(GetClientSize().x, GetClientSize().y, playerColor);
+ renderer->transform(rotX, rotY, zoom);
+@@ -141,13 +146,14 @@
+ void MainWindow::onMenuFileLoad(wxCommandEvent &event){
+ string fileName;
+ wxFileDialog fileDialog(this);
+- fileDialog.SetWildcard("G3D files (*.g3d)|*.g3d");
++ fileDialog.SetWildcard(wxT("G3D files (*.g3d)|*.g3d"));
+ if(fileDialog.ShowModal()==wxID_OK){
+ delete model;
+ Model *tmpModel= new ModelGl();
+- renderer->loadTheModel(tmpModel, fileDialog.GetPath().c_str());
++ fileName = wxFNCONV(fileDialog.GetPath());
++ renderer->loadTheModel(tmpModel, fileName);
+ model= tmpModel;
+- GetStatusBar()->SetStatusText(getModelInfo().c_str());
++ GetStatusBar()->SetStatusText(wxString(getModelInfo().c_str(), wxConvUTF8));
+ }
+ }
+
+@@ -252,7 +258,7 @@
+ // =====================================================
+
+ GlCanvas::GlCanvas(MainWindow * mainWindow):
+- wxGLCanvas(mainWindow, -1)
++ wxGLCanvas(mainWindow, -1, wxDefaultPosition)
+ {
+ this->mainWindow = mainWindow;
+ }
+@@ -261,13 +267,8 @@
+ mainWindow->onMouseMove(event);
+ }
+
+-void GlCanvas::onPaint(wxPaintEvent &event){
+- mainWindow->onPaint(event);
+-}
+-
+ BEGIN_EVENT_TABLE(GlCanvas, wxGLCanvas)
+ EVT_MOTION(GlCanvas::onMouseMove)
+- EVT_PAINT(GlCanvas::onPaint)
+ END_EVENT_TABLE()
+
+ // ===============================================
+@@ -277,11 +278,12 @@
+ bool App::OnInit(){
+ string modelPath;
+ if(argc==2){
+- modelPath= argv[1];
++ modelPath = wxFNCONV(argv[1]);
+ }
+
+ mainWindow= new MainWindow(modelPath);
+ mainWindow->Show();
++ mainWindow->init();
+ return true;
+ }
+
+@@ -290,9 +292,9 @@
+ return wxApp::MainLoop();
+ }
+ catch(const exception &e){
+- wxMessageDialog(NULL, e.what(), "Exception", wxOK | wxICON_ERROR).ShowModal();
+- return 0;
++ wxMessageDialog(NULL, STRCONV(e.what()), wxT("Exception"), wxOK | wxICON_ERROR).ShowModal();
+ }
++ return 0;
+ }
+
+ int App::OnExit(){
+Index: source/g3d_viewer/main.h
+===================================================================
+--- source/g3d_viewer/main.h (Revision 191)
++++ source/g3d_viewer/main.h (Arbeitskopie)
+@@ -7,12 +7,13 @@
+ #include <wx/timer.h>
+ #include <wx/glcanvas.h>
+
++#include "graphics_factory_basic_gl.h"
+ #include "renderer.h"
+ #include "util.h"
+ #include "window.h"
+
+-using Shared::Platform::Window;
+-using Shared::Platform::MouseState;
++//using Shared::Platform::Window;
++//using Shared::Platform::MouseState;
+
+ using std::string;
+
+@@ -70,6 +71,8 @@
+ MainWindow(const string &modelPath);
+ ~MainWindow();
+
++ void init();
++
+ void Notify();
+
+ void onPaint(wxPaintEvent &event);
+Index: mk/linux/Jamfile
+===================================================================
+--- mk/linux/Jamfile (Revision 191)
++++ mk/linux/Jamfile (Arbeitskopie)
+@@ -26,7 +26,7 @@
+ }
+
+ Library glestlib : $(LIB_SOURCES) ;
+-ExternalLibs glestlib : SDL GL GLU XERCES VORBIS VORBISFILE OGG OPENAL LUA ;
++ExternalLibs glestlib : SDL GL GLU XERCES VORBISFILE OPENAL LUA ;
+ IncludeDir glestlib : $(LIB_INCLUDE_DIRS) ;
+
+ #### Game ####
+@@ -55,7 +55,7 @@
+
+ Application glest : $(GLEST_SOURCES) ;
+ LinkWith glest : glestlib ;
+-ExternalLibs glest : SDL GL GLU XERCES VORBIS VORBISFILE OGG OPENAL LUA ;
++ExternalLibs glest : SDL GL GLU XERCES VORBISFILE OPENAL LUA ;
+ IncludeDir glest : ../shared_lib/include/$(LIB_INCLUDE_DIRS) $(GLEST_DIRS) ;
+
+ #### Editor ####
+@@ -69,7 +69,22 @@
+
+ Application glest_editor : $(GLEST_MAP_SOURCES) ;
+ LinkWith glest_editor : glestlib ;
+- ExternalLibs glest_editor : SDL GL GLU XERCES VORBIS VORBISFILE OGG OPENAL WX ;
++ ExternalLibs glest_editor : SDL GL GLU XERCES VORBISFILE OPENAL WX ;
+ IncludeDir glest_editor : ../shared_lib/include/$(LIB_INCLUDE_DIRS) $(GLEST_MAP_DIRS) ;
+ }
+
++### Viewer ###
++if $(WX_AVAILABLE) = "yes" {
++ SubDir TOP g3d_viewer ;
++
++ GLEST_VIEWER_DIRS = . ;
++ for i in $(GLEST_DIRS) {
++ GLEST_VIEWER_SOURCES += [ Wildcard $(i) : *.cpp *.h ] ;
++ }
++
++ Application glest_g3dviewer : $(GLEST_VIEWER_SOURCES) ;
++ LinkWith glest_g3dviewer : glestlib ;
++ ExternalLibs glest_g3dviewer : SDL GL GLU XERCES VORBISFILE OPENAL WX ;
++ IncludeDir glest_g3dviewer : ../shared_lib/include/$(LIB_INCLUDE_DIRS) $(GLEST_VIEWER_DIRS) ;
++}
++
+Index: mk/linux/autogen.sh
+===================================================================
+--- mk/linux/autogen.sh (Revision 191)
++++ mk/linux/autogen.sh (Arbeitskopie)
+@@ -34,4 +34,6 @@
+ if [ ! -d glest_map_editor ]; then
+ ln -sf ../../source/glest_map_editor .
+ fi
+-
++if [ ! -d g3d_viewer ]; then
++ ln -sf ../../source/g3d_viewer .
++fi
diff --git a/games/glest/patches/glest-3.2.2-glibc210.patch b/games/glest/patches/glest-3.2.2-glibc210.patch
new file mode 100644
index 0000000000..31e3ff183b
--- /dev/null
+++ b/games/glest/patches/glest-3.2.2-glibc210.patch
@@ -0,0 +1,10 @@
+--- source/shared_lib/sources/platform/posix/socket.cpp
++++ source/shared_lib/sources/platform/posix/socket.cpp
+@@ -10,6 +10,7 @@
+
+ #include <cstring>
+ #include <cstdlib>
++#include <cstdio>
+ #include <stdexcept>
+ #include <sstream>
+ #if defined(HAVE_SYS_IOCTL_H)
diff --git a/games/glest/patches/glest-home-directory.patch b/games/glest/patches/glest-home-directory.patch
new file mode 100644
index 0000000000..a92002ab60
--- /dev/null
+++ b/games/glest/patches/glest-home-directory.patch
@@ -0,0 +1,143 @@
+--- 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';
diff --git a/games/glest/patches/glest-xerces-c.patch b/games/glest/patches/glest-xerces-c.patch
new file mode 100644
index 0000000000..f7582060b3
--- /dev/null
+++ b/games/glest/patches/glest-xerces-c.patch
@@ -0,0 +1,41 @@
+--- source/shared_lib/sources/xml/xml_parser.cpp.old 2008-02-16 16:01:28.000000000 +0300
++++ source/shared_lib/sources/xml/xml_parser.cpp 2009-03-19 18:28:08.000000000 +0300
+@@ -87,10 +87,17 @@
+
+ try{
+ ErrorHandler errorHandler;
++#if XERCES_VERSION_MAJOR < 3
+ DOMBuilder *parser= (static_cast<DOMImplementationLS*>(implementation))->createDOMBuilder(DOMImplementationLS::MODE_SYNCHRONOUS, 0);
+ parser->setErrorHandler(&errorHandler);
+ parser->setFeature(XMLUni::fgXercesSchemaFullChecking, true);
+ parser->setFeature(XMLUni::fgDOMValidation, true);
++#else
++ DOMLSParser *parser = (static_cast<DOMImplementationLS*>(implementation))->createLSParser(DOMImplementationLS::MODE_SYNCHRONOUS, 0);
++ DOMConfiguration *config = parser->getDomConfig();
++ config->setParameter(XMLUni::fgXercesSchemaFullChecking, true);
++ config->setParameter(XMLUni::fgDOMValidate, true);
++#endif
+ DOMDocument *document= parser->parseURI(path.c_str());
+
+ if(document==NULL){
+@@ -119,9 +126,20 @@
+ }
+
+ LocalFileFormatTarget file(path.c_str());
++#if XERCES_VERSION_MAJOR < 3
+ DOMWriter* writer = implementation->createDOMWriter();
+ writer->setFeature(XMLUni::fgDOMWRTFormatPrettyPrint, true);
+ writer->writeNode(&file, *document);
++#else
++ DOMLSSerializer *serializer = implementation->createLSSerializer();
++ DOMLSOutput* output=implementation->createLSOutput();
++ DOMConfiguration* config=serializer->getDomConfig();
++ config->setParameter(XMLUni::fgDOMWRTFormatPrettyPrint,true);
++ output->setByteStream(&file);
++ serializer->write(document,output);
++ output->release();
++ serializer->release();
++#endif
+ document->release();
+ }
+ catch(const DOMException &e){