+++ /dev/null
---- savagewheels-1.6.0/CMakeLists.txt.old 2016-04-02 16:45:40.416146450 -0700
-+++ savagewheels-1.6.0/CMakeLists.txt 2016-04-02 16:57:14.930931857 -0700
-@@ -9,22 +9,33 @@ set(APP_VER_PATCH "0")
-
- ### check for required libs
- find_package(SDL REQUIRED)
-
- ### Install targets (see: http://www.cmake.org/Wiki/CMake_RPATH_handling)
--if (NOT INSTALL_DIR)
-- set(INSTALL_DIR "./")
-+if (UNIX)
-+ include (GNUInstallDirs)
-+else()
-+ if (NOT INSTALL_DIR)
-+ set(INSTALL_DIR "./")
-+ endif()
-+ set(CMAKE_INSTALL_BINDIR "${INSTALL_DIR}")
-+ set(CMAKE_INSTALL_SBINDIR "${INSTALL_DIR}")
-+ set(CMAKE_INSTALL_LIBEXECDIR "${INSTALL_DIR}")
-+ set(CMAKE_INSTALL_SYSCONFDIR "${INSTALL_DIR}")
-+ set(CMAKE_INSTALL_SHAREDSTATEDIR "${INSTALL_DIR}")
-+ set(CMAKE_INSTALL_LOCALSTATEDIR "${INSTALL_DIR}")
-+ set(CMAKE_INSTALL_LIBDIR "${INSTALL_DIR}")
-+ set(CMAKE_INSTALL_INCLUDEDIR "${INSTALL_DIR}")
-+ set(CMAKE_INSTALL_OLDINCLUDEDIR "${INSTALL_DIR}")
-+ set(CMAKE_INSTALL_DATAROOTDIR "${INSTALL_DIR}")
-+ set(CMAKE_INSTALL_DATADIR "${INSTALL_DIR}")
-+ set(CMAKE_INSTALL_INFODIR "${INSTALL_DIR}")
-+ set(CMAKE_INSTALL_LOCALEDIR "${INSTALL_DIR}")
-+ set(CMAKE_INSTALL_MANDIR "${INSTALL_DIR}")
-+ set(CMAKE_INSTALL_DOCDIR "${INSTALL_DIR}")
- endif()
-
--# when building, don't use the install RPATH already
--# (but later on when installing)
--SET(CMAKE_BUILD_WITH_INSTALL_RPATH FALSE)
--
--# add the automatically determined parts of the RPATH
--SET(CMAKE_INSTALL_RPATH "${INSTALL_DIR}/")
--SET(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
--
- ### sources
- include_directories(src/)
- include_directories(tinyxml/)
-
- set(
-@@ -113,11 +124,11 @@ if (SOUND STREQUAL "NO")
- message(STATUS "Found SOUND=NO option. Compiling without sound support!")
- elseif(SOUND STREQUAL "FMOD")
- # FModEx API
-
- # check if path to FMod is defined
-- if(NOT DEFINED ${FMOD_PATH})
-+ if(NOT DEFINED FMOD_PATH)
- set(FMOD_PATH "${CMAKE_CURRENT_SOURCE_DIR}/libs/fmod/api")
- endif()
-
- add_definitions(-I${FMOD_PATH}/inc)
- link_directories(${FMOD_PATH}/lib)
-@@ -164,17 +175,19 @@ elseif(SOUND STREQUAL "FMOD")
- else()
- message(STATUS "Found FModEx lib at ${FMOD_LIBRARY}. Found FModEx DLL at ${FMOD_LIBRARY_SO_PATH}.")
-
- add_definitions(-DWITH_FMOD)
-
-- add_custom_command(TARGET savagewheels POST_BUILD
-- COMMAND ${CMAKE_COMMAND} -E copy_if_different
-- ${FMOD_LIBRARY_SO_PATH}
-- $<TARGET_FILE_DIR:savagewheels>)
--
-- INSTALL(FILES "${CMAKE_CURRENT_BINARY_DIR}/${FMOD_SO_NAME}"
-- DESTINATION ${INSTALL_DIR})
-+ if (WIN32)
-+ add_custom_command(TARGET savagewheels POST_BUILD
-+ COMMAND "${CMAKE_COMMAND}" -E copy_if_different
-+ "${FMOD_LIBRARY_SO_PATH}"
-+ "$<TARGET_FILE_DIR:savagewheels>")
-+
-+ INSTALL(FILES "${CMAKE_CURRENT_BINARY_DIR}/${FMOD_SO_NAME}"
-+ DESTINATION "${INSTALL_DIR}")
-+ endif()
- endif()
-
- else()
- # SDL_mixer API
- find_package(SDL_mixer REQUIRED)
-@@ -234,19 +247,36 @@ endif()
- ### Configure compile time header file
- configure_file (
- "${PROJECT_SOURCE_DIR}/Config.h.in"
- "${PROJECT_SOURCE_DIR}/src/Config.h")
-
--INSTALL(TARGETS savagewheels RUNTIME DESTINATION ${INSTALL_DIR})
--INSTALL(PROGRAMS "${CMAKE_CURRENT_SOURCE_DIR}/run.sh" DESTINATION ${INSTALL_DIR})
-+
-+INSTALL(TARGETS savagewheels RUNTIME DESTINATION "${CMAKE_INSTALL_LIBEXECDIR}")
-+if (WIN32 AND NOT UNIX)
-+ INSTALL(PROGRAMS "${CMAKE_CURRENT_SOURCE_DIR}/run.sh" DESTINATION "${INSTALL_DIR}")
-+else()
-+ configure_file( "${CMAKE_CURRENT_SOURCE_DIR}/savagewheels.in"
-+ "${CMAKE_CURRENT_BINARY_DIR}/savagewheels.sh"
-+ @ONLY)
-+ INSTALL(PROGRAMS "${CMAKE_CURRENT_BINARY_DIR}/savagewheels.sh"
-+ DESTINATION "${CMAKE_INSTALL_BINDIR}" RENAME savagewheels)
-+endif()
-+
- INSTALL(FILES
- "${CMAKE_CURRENT_SOURCE_DIR}/README.md"
- "${CMAKE_CURRENT_SOURCE_DIR}/HISTORY"
- "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE"
-+ "${CMAKE_CURRENT_SOURCE_DIR}/bin/LICENSE.mikmod.txt"
-+ "${CMAKE_CURRENT_SOURCE_DIR}/bin/Readme.html"
-+ "${CMAKE_CURRENT_SOURCE_DIR}/bin/README-SDL_mixer.txt"
-+ "${CMAKE_CURRENT_SOURCE_DIR}/bin/README-SDL.txt"
-- DESTINATION ${INSTALL_DIR})
-+ DESTINATION "${CMAKE_INSTALL_DOCDIR}")
--INSTALL(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/bin/"
-- DESTINATION ${INSTALL_DIR}
-+INSTALL(FILES
-+ "${CMAKE_CURRENT_SOURCE_DIR}/bin/bindings.xml"
-+ DESTINATION "${CMAKE_INSTALL_DATADIR}")
-+INSTALL(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/bin/help"
-+ DESTINATION "${CMAKE_INSTALL_DOCDIR}/help"
- PATTERN "debug.html" EXCLUDE
- PATTERN "pref" EXCLUDE)
-
- ### build a CPack driven installer package
- include (InstallRequiredSystemLibraries)
+++ /dev/null
---- savagewheels-1.6.0/src/Main.cpp.old 2016-04-14 21:18:38.115071742 -0700
-+++ savagewheels-1.6.0/src/Main.cpp 2016-04-14 22:01:42.375422000 -0700
-@@ -43,10 +43,17 @@
- * Alpha Release: 29.06.2003\r
- */\r
- \r
- #include "Main.h"\r
- \r
-+const char *sys_datadir;\r
-+const char *usr_cfgdir;\r
-+const char *usr_datadir;\r
-+\r
-+char *ART_FILE;\r
-+char *BINDINGS_FILE;\r
-+\r
- int main( int argc, char *argv[] )\r
- {\r
- bool hardware_support = true;\r
- /*\r
- * Start the game in a window by default.\r
-@@ -57,16 +64,92 @@ int main( int argc, char *argv[] )
- * Linux Note: Running the game in fullscreen would sometimes crash the gfx manager.\r
- * This is probably due to some video drivers. I was so far able to reproduce it on\r
- * ATI Mobility type of video cards.\r
- */\r
- bool fullscreen = false;\r
-+ String tmp;\r
- \r
- #ifdef LINUX_BUILD\r
-+ sys_datadir = getenv("SAVAGEWHEELS_SYS_DATADIR");\r
-+ if (sys_datadir == NULL)\r
-+ {\r
-+ fprintf(stderr, "SAVAGEWHEELS_SYS_DATADIR not set.\n");\r
-+ return 1;\r
-+ }\r
-+ sys_datadir = strdup(sys_datadir);\r
-+\r
-+ usr_cfgdir = getenv("SAVAGEWHEELS_USR_CONFDIR");\r
-+ if (usr_cfgdir == NULL)\r
-+ {\r
-+ fprintf(stderr, "SAVAGEWHEELS_USR_CONFDIR not set.\n");\r
-+ return 1;\r
-+ }\r
-+ usr_cfgdir = strdup(usr_cfgdir);\r
-+\r
-+ usr_datadir = getenv("SAVAGEWHEELS_USR_DATADIR");\r
-+ if (usr_datadir == NULL)\r
-+ {\r
-+ fprintf(stderr, "SAVAGEWHEELS_USR_DATADIR not set.\n");\r
-+ return 1;\r
-+ }\r
-+ usr_datadir = strdup(usr_datadir);\r
-+\r
-+ if (sys_datadir == NULL || usr_cfgdir == NULL || usr_datadir == NULL)\r
-+ {\r
-+ fprintf(stderr, "Insufficient memory. Execution aborted.\n");\r
-+ return 1;\r
-+ }\r
-+\r
- setenv("SDL_VIDEO_CENTERED", "1", 1);\r
- #else\r
-+ sys_datadir = usr_cfgdir = usr_datadir = "./";\r
- _putenv("SDL_VIDEO_CENTERED=1");\r
- #endif\r
-+ int len;\r
-+ len = snprintf(NULL, 0, "%s/graphics/gfxdata.kdf", sys_datadir);\r
-+ if (len < 0)\r
-+ {\r
-+ fprintf(stderr,\r
-+ "Unable to store '%s/graphics/gfxdata.kdf': %s\n",\r
-+ sys_datadir, strerror(errno));\r
-+ return 1;\r
-+ }\r
-+ if (len == INT_MAX)\r
-+ {\r
-+ fprintf(stderr, "Unable to store '%s/graphics/gfxdata.kdf': "\r
-+ "Path too log\n", sys_datadir);\r
-+ return 1;\r
-+ }\r
-+ ART_FILE = new (std::nothrow) char[len + 1];\r
-+ if (ART_FILE == NULL)\r
-+ {\r
-+ fprintf(stderr, "Insufficent memory. Execution aborted.\n");\r
-+ return 1;\r
-+ }\r
-+ sprintf(ART_FILE, "%s/graphics/gfxdata.kdf", sys_datadir);\r
-+\r
-+ len = snprintf(NULL, 0, "%s/bindings.xml", usr_cfgdir);\r
-+ if (len < 0)\r
-+ {\r
-+ fprintf(stderr,\r
-+ "Unable to store '%s/bindings.xml': %s\n", usr_cfgdir,\r
-+ strerror(errno));\r
-+ return 1;\r
-+ }\r
-+ if (len == INT_MAX)\r
-+ {\r
-+ fprintf(stderr, "Unable to store '%s/bindings.xml': "\r
-+ "Path too log\n", usr_cfgdir);\r
-+ return 1;\r
-+ }\r
-+ BINDINGS_FILE = new (std::nothrow) char[len + 1];\r
-+ if (BINDINGS_FILE == NULL)\r
-+ {\r
-+ fprintf(stderr, "Insufficent memory. Execution aborted.\n");\r
-+ return 1;\r
-+ }\r
-+ sprintf(BINDINGS_FILE, "%s/bindings.xml", usr_cfgdir);\r
- \r
- if (argc > 1) {\r
- for (int i = 1; i < argc; i++) {\r
- if (!strncmp(argv[i], "-wnd", 4)) {\r
- fullscreen = false;\r
-@@ -104,11 +187,12 @@
- \r
- /*\r
- * Load & Start Game\r
- */\r
- \r
-- OpenLog("debug.html");\r
-+ tmp = String(usr_datadir).append("/debug.html");\r
-+ OpenLog(tmp.c_str());\r
- \r
- CGame game;\r
- game.Execute(fullscreen, hardware_support);\r
- game.Close();\r
- \r
---- savagewheels-1.6.0/src/Main.h.old 2016-04-14 21:20:27.443522441 -0700
-+++ savagewheels-1.6.0/src/Main.h 2016-04-14 21:56:22.449964486 -0700
-@@ -35,10 +35,11 @@
- #include <cstdlib>\r
- #include <cmath>\r
- #include <cstdarg>\r
- #include <cassert>\r
- #include <exception>\r
-+#include <cerrno>\r
- \r
- #include <ctime>\r
- #include <sys/stat.h>\r
- #include <sys/types.h>\r
- #include <sys/timeb.h>\r
-@@ -84,12 +85,10 @@
- \r
- // --- version\r
- #include "Config.h"\r
- \r
- // --- global game defines\r
--#define ART_FILE "graphics/gfxdata.kdf"\r
--#define BINDINGS_FILE "bindings.xml"\r
- #define LOAD_OK (-1)\r
- #define LOAD_FAILED (0)\r
- #define HRESULT(x) ( (x) == NULL : LOAD_OK ? LOAD_FAILED )\r
- #define NLPTR_SURF 0 //((SDL_Surface *)NULL)\r
- \r
-@@ -100,10 +99,16 @@
- #endif\r
- \r
- typedef std::string String;\r
- typedef std::ostringstream OutputSStream;\r
- \r
-+extern const char *sys_datadir;\r
-+extern const char *usr_cfgdir;\r
-+extern const char *usr_datadir;\r
-+\r
-+extern char *ART_FILE;\r
-+extern char *BINDINGS_FILE;\r
- //#include "pstdint.h" // portable types\r
- #include "Utils.h"\r
- #include "CKdf.h"\r
- #include "CSdl.h"\r
- #include "CSwv_module.h"\r
---- savagewheels-1.6.0/src/Utils.cpp.old 2016-04-15 19:28:21.757879157 -0700
-+++ savagewheels-1.6.0/src/Utils.cpp 2016-04-15 19:28:28.478786779 -0700
-@@ -261,11 +261,11 @@ inline String GetFormattedTime()
- bool OpenLog ( const char* filename )
- {
- String time( GetFormattedTime() );
-
- // open debug file
-- debug_file.open ( "debug.html", std::ios::out ); //ios::ate );
-+ debug_file.open ( filename, std::ios::out ); //ios::ate );
- if ( ! debug_file.good() )
- return false;
-
- debug_file << "<html><head><title>Savage Wheels Log File</title></head><body><h1>Savage Wheels V" << VER_MAJ << "." << VER_MIN << " - Log File</h1>";
- debug_file << "<hr/><pre>";
---- savagewheels-1.6.0/src/CGame.cpp.old 2016-04-15 20:43:37.479330001 -0700
-+++ savagewheels-1.6.0/src/CGame.cpp 2016-04-15 21:04:48.044721904 -0700
-@@ -116,10 +116,11 @@ void CGame::Close()
- ///////////////////////////////////////////////////////////////////////\r
- bool CGame::LoadGame()\r
- {\r
- char buf[255];\r
- int i = 0;\r
-+ String tmp (sys_datadir);\r
- \r
- AppendToLog( LOG_DASH );\r
- AppendToLog("Loading Game...");\r
- \r
- // global screen rect\r
-@@ -161,11 +162,14 @@ bool CGame::LoadGame()
- srand( (unsigned)SDL_GetTicks() );\r
- \r
- UpdateSplash(); // UPDATESPLASH... \r
- \r
- // search for vehicles\r
-- if ( Swv.SearchAndLoad( "autos" ) != SWV_SUCCESS ) return false;\r
-+ tmp.resize(strlen(sys_datadir));\r
-+ tmp.append("/autos");\r
-+ if ( Swv.SearchAndLoad( tmp.c_str() ) != SWV_SUCCESS )\r
-+ return false;\r
- \r
- // check for vehicle number\r
- if ( Swv.GetVehicles() < 4 ) \r
- {\r
- AppendToLog( "Not enough vehicles in the /auto dir!" );\r
---- savagewheels-1.6.0/src/CSdl.cpp.old 2016-04-16 16:00:56.600502348 -0700
-+++ savagewheels-1.6.0/src/CSdl.cpp 2016-04-16 16:01:16.152226435 -0700
-@@ -1298,13 +1298,10 @@
- return NULL;\r
- #else\r
- \r
- SDL_Surface *sdl_surf = NULL;\r
- \r
-- char filename_buf[255];\r
-- sprintf( filename_buf, "../%s", filename );\r
--\r
- if ( ( sdl_surf = SDL_LoadBMP( filename_buf )) == NULL )\r
- {\r
- LOG("...failed to load graphics from : " << filename_buf );\r
- return NULL;\r
- }\r
---- savagewheels-1.6.0/src/CSounds.cpp.old 2016-04-16 16:06:43.887600441 -0700
-+++ savagewheels-1.6.0/src/CSounds.cpp 2016-04-16 16:17:44.729332218 -0700
-@@ -46,22 +46,39 @@
- // Name: Initialize()\r
- // Desc: Load all ingame sounds\r
- //////////////////////////////////////////////////////////////////////\r
- bool CSounds::Initialize( CSdl *pSdl )\r
- {\r
-- ASSERT( _sdl != NULL );\r
-+ ASSERT( pSdl != NULL );\r
- this->_sdl = pSdl;\r
- \r
- #if defined(WITH_FMOD) || defined(WITH_SDLMIXER)\r
-+ String tmp (sys_datadir);\r
- \r
--#define LOAD_SOUND( container, name, buffered ) if ( (sounds[container] = _sdl->LoadSound( name, buffered )) == -1 ) { \\r
-- LOG( "Failed to load " << name << " ! "); \\r
-- return false; }\r
-+#define LOAD_SOUND( container, name, buffered) \\r
-+ do { \\r
-+ tmp.append("/").append(name); \\r
-+ sounds[container] = \\r
-+ _sdl->LoadSound( tmp.c_str(), buffered ); \\r
-+ if ( sounds[container] == -1 ) { \\r
-+ LOG( "Failed to load " << name << " ! " ); \\r
-+ return false; \\r
-+ } \\r
-+ tmp.resize(strlen(sys_datadir)); \\r
-+ } while(0)\r
- \r
--#define LOAD_MUSIC( container, name ) if ( (music[container] = _sdl->LoadSound( name, false, true )) == -1 ) { \\r
-- LOG( "Failed to load music " << name << " ! "); \\r
-- return false; }\r
-+#define LOAD_MUSIC( container, name) \\r
-+ do { \\r
-+ tmp.append("/").append(name); \\r
-+ music[container] = \\r
-+ _sdl->LoadSound( tmp.c_str(), false, true ); \\r
-+ if ( music[container] == -1 ) { \\r
-+ LOG( "Failed to load music " << name << " ! " ); \\r
-+ return false; \\r
-+ } \\r
-+ tmp.resize(strlen(sys_datadir)); \\r
-+ } while(0)\r
- \r
- LOAD_SOUND( SND_CRASHLIGHT1, "sound/crash3.wav", true );\r
- LOAD_SOUND( SND_CRASHLIGHT2, "sound/crash2.wav", true );\r
- LOAD_SOUND( SND_CRASHLIGHT3, "sound/crash1.wav", true );\r
- LOAD_SOUND( SND_EXPLOSION1, "sound/exp.wav", true );\r
---- savagewheels-1.6.0/src/CSwv_module.cpp.old 2016-04-16 20:58:04.366973388 -0700
-+++ savagewheels-1.6.0/src/CSwv_module.cpp 2016-04-16 20:58:13.026851358 -0700
-@@ -204,12 +204,10 @@ int CSwv_module::Load( char *filename, S
- // DBG("pos: " << swv_file->pfiles[i].pos\r
- // << " size (KB): " << swv_file->pfiles[i].length\r
- // << " name: " << swv_file->pfiles[i].filename);\r
- // }\r
- \r
-- // set module filename\r
-- sprintf( swv_file->filename, "%s", filename );\r
- \r
- if ( fp != NULL )\r
- fclose( fp );\r
- \r
- return SWV_SUCCESS;\r
---- savagewheels-1.6.0/src/CSdl.cpp.old 2016-04-16 21:02:07.680544534 -0700
-+++ savagewheels-1.6.0/src/CSdl.cpp 2016-04-16 21:06:59.400432874 -0700
-@@ -1336,12 +1339,25 @@ SDL_Surface* CSdl::LoadBitmap( const cha
- SDL_Surface* CSdl::LoadBitmap( const char *filename, int32_t file_offset, Uint32 file_size, Uint32 color_key, Uint16 alpha_value )\r
- {\r
- SDL_Surface *sdl_surf = NULL; // temp surface\r
- FILE *fp = NULL; // file pointer\r
- SDL_RWops *sdl_rw = NULL; // sdl_read_write_operations\r
-+ String tmp;\r
- \r
-- if ( ( fp = fopen( filename, "rb")) == NULL ) \r
-+#ifdef LINUX_BUILD\r
-+ if ( filename[0] != '/' )\r
-+ {\r
-+ tmp = String(sys_datadir).append("/autos/").append(filename);\r
-+ }\r
-+ else\r
-+ {\r
-+ tmp = String(filename);\r
-+ }\r
-+#else\r
-+ tmp = String(filename);\r
-+#endif\r
-+ if ( ( fp = fopen( tmp.c_str(), "rb")) == NULL ) \r
- {\r
- LOG("...failed to open file : " << filename );\r
- return NULL;\r
- }\r
- \r
---- savagewheels-1.6.0/src/CMainMenu.cpp.old 2016-04-16 22:13:23.442523534 -0700
-+++ savagewheels-1.6.0/src/CMainMenu.cpp 2016-04-16 22:13:17.701605381 -0700
-@@ -1121,12 +1121,13 @@ void CMainMenu::SaveSettings()
- if ( _game == NULL )\r
- return;\r
- \r
- FILE *fp = NULL;\r
- char header[3] = { 'S', 'W', 'P' };\r
-+ String strPref(String(usr_cfgdir) + "/pref");\r
- \r
-- if ( ( fp = fopen( "pref", "wb" ) ) == NULL )\r
-+ if ( ( fp = fopen( strPref.c_str(), "wb" ) ) == NULL )\r
- {\r
- AppendToLog( "Error writing to /pref file !" );\r
- return;\r
- }\r
- \r
---- savagewheels-1.6.0/src/CMainMenu.cpp.old 2016-04-17 07:38:09.417653268 -0700
-+++ savagewheels-1.6.0/src/CMainMenu.cpp 2016-04-17 07:38:24.277437113 -0700
-@@ -1168,12 +1167,13 @@ void CMainMenu::SaveSettings()
- void CMainMenu::LoadSettings()\r
- {\r
- FILE *fp = NULL;\r
- char header[3];\r
- bool success = true;\r
-+ String strPref(String(usr_cfgdir) + "/pref");\r
- \r
-- if ( ( fp = fopen( "pref", "rb" ) ) == NULL )\r
-+ if ( ( fp = fopen( strPref.c_str(), "wb" ) ) == NULL )\r
- {\r
- AppendToLog( "Error opening /pref file !" );\r
- success = false;\r
- }\r
- \r