games-arcade/savagewheels: fix broken patch
authorSam Jorna <wraeth@gentoo.org>
Fri, 6 May 2016 14:09:21 +0000 (00:09 +1000)
committerSam Jorna <wraeth@gentoo.org>
Fri, 6 May 2016 14:09:51 +0000 (00:09 +1000)
Line endings in patch got mangled when originally added.

Gentoo-bug: 582268
Package-Manager: portage-2.2.28

games-arcade/savagewheels/files/savagewheels-1.6.0-linux_dirs.patch

index b4076579f9a6223f45337891a9b2fd475b25daa7..13ca8019ff9f61aa665ea053ae76bb17ad488698 100644 (file)
 --- 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
-  */
- #include "Main.h"
-+const char *sys_datadir;
-+const char *usr_cfgdir;
-+const char *usr_datadir;
-+
-+char *ART_FILE;
-+char *BINDINGS_FILE;
-+
- int main( int argc, char *argv[] )
- {
-       bool hardware_support = true;
-       /*
-        * Start the game in a window by default.
+  * 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.
-        * This is probably due to some video drivers. I was so far able to reproduce it on
-        * ATI Mobility type of video cards.
-        */
-       bool fullscreen = false;
-+      String tmp;
- #ifdef LINUX_BUILD
-+      sys_datadir = getenv("SAVAGEWHEELS_SYS_DATADIR");
-+      if (sys_datadir == NULL)
-+      {
-+          fprintf(stderr, "SAVAGEWHEELS_SYS_DATADIR not set.\n");
-+          return 1;
-+      }
-+      sys_datadir = strdup(sys_datadir);
-+
-+      usr_cfgdir = getenv("SAVAGEWHEELS_USR_CONFDIR");
-+      if (usr_cfgdir == NULL)
-+      {
-+          fprintf(stderr, "SAVAGEWHEELS_USR_CONFDIR not set.\n");
-+          return 1;
-+      }
-+      usr_cfgdir = strdup(usr_cfgdir);
-+
-+      usr_datadir = getenv("SAVAGEWHEELS_USR_DATADIR");
-+      if (usr_datadir == NULL)
-+      {
-+          fprintf(stderr, "SAVAGEWHEELS_USR_DATADIR not set.\n");
-+          return 1;
-+      }
-+      usr_datadir = strdup(usr_datadir);
-+
-+      if (sys_datadir == NULL || usr_cfgdir == NULL || usr_datadir == NULL)
-+      {
-+          fprintf(stderr, "Insufficient memory.  Execution aborted.\n");
-+          return 1;
-+      }
-+
-       setenv("SDL_VIDEO_CENTERED", "1", 1);
- #else
-+      sys_datadir = usr_cfgdir = usr_datadir = "./";
-       _putenv("SDL_VIDEO_CENTERED=1");
- #endif
-+      int len;
-+      len = snprintf(NULL, 0, "%s/graphics/gfxdata.kdf", sys_datadir);
-+      if (len < 0)
-+      {
-+              fprintf(stderr,
-+                      "Unable to store '%s/graphics/gfxdata.kdf': %s\n",
-+                      sys_datadir, strerror(errno));
-+              return 1;
-+      }
-+      if (len == INT_MAX)
-+      {
-+              fprintf(stderr, "Unable to store '%s/graphics/gfxdata.kdf': "
-+                      "Path too log\n", sys_datadir);
-+              return 1;
-+      }
-+      ART_FILE = new (std::nothrow) char[len + 1];
-+      if (ART_FILE == NULL)
-+      {
-+              fprintf(stderr, "Insufficent memory.  Execution aborted.\n");
-+              return 1;
-+      }
-+      sprintf(ART_FILE, "%s/graphics/gfxdata.kdf", sys_datadir);
-+
-+      len = snprintf(NULL, 0, "%s/bindings.xml", usr_cfgdir);
-+      if (len < 0)
-+      {
-+              fprintf(stderr,
-+                      "Unable to store '%s/bindings.xml': %s\n", usr_cfgdir,
-+                      strerror(errno));
-+              return 1;
-+      }
-+      if (len == INT_MAX)
-+      {
-+              fprintf(stderr, "Unable to store '%s/bindings.xml': "
-+                      "Path too log\n", usr_cfgdir);
-+              return 1;
-+      }
-+      BINDINGS_FILE = new (std::nothrow) char[len + 1];
-+      if (BINDINGS_FILE == NULL)
-+      {
-+              fprintf(stderr, "Insufficent memory.  Execution aborted.\n");
-+              return 1;
-+      }
-+      sprintf(BINDINGS_FILE, "%s/bindings.xml", usr_cfgdir);
-       if (argc > 1) {
-               for (int i = 1; i < argc; i++) {
-                       if (!strncmp(argv[i], "-wnd", 4)) {
-                               fullscreen = false;
+        * 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 @@
-       
-       /*
-        * Load & Start Game
-        */
-         
--      OpenLog("debug.html");
-+      tmp = String(usr_datadir).append("/debug.html");
-+      OpenLog(tmp.c_str());
-       
-       CGame game;
-       game.Execute(fullscreen, hardware_support);
-       game.Close();
+       \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>
- #include <cmath>
- #include <cstdarg>
- #include <cassert>
- #include <exception>
-+#include <cerrno>
- #include <ctime>
- #include <sys/stat.h>
- #include <sys/types.h>
- #include <sys/timeb.h>
+ #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 @@
- // --- version
- #include "Config.h"
- // --- global game defines
--#define ART_FILE      "graphics/gfxdata.kdf"
--#define BINDINGS_FILE "bindings.xml"
- #define LOAD_OK         (-1)
- #define LOAD_FAILED     (0)
- #define HRESULT(x)    ( (x) == NULL : LOAD_OK ? LOAD_FAILED )
- #define NLPTR_SURF    0 //((SDL_Surface *)NULL)
\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
- typedef std::string                   String;
- typedef std::ostringstream    OutputSStream;
-+extern const char *sys_datadir;
-+extern const char *usr_cfgdir;
-+extern const char *usr_datadir;
-+
-+extern char *ART_FILE;
-+extern char *BINDINGS_FILE;
- //#include "pstdint.h" // portable types
- #include "Utils.h"
- #include "CKdf.h"
- #include "CSdl.h"
- #include "CSwv_module.h"
+ #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()
 --- 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()
- ///////////////////////////////////////////////////////////////////////
- bool CGame::LoadGame()
- {
-       char buf[255];
-       int  i = 0;
-+      String tmp (sys_datadir);
-       AppendToLog( LOG_DASH );
-       AppendToLog("Loading Game...");
-       // global screen rect
+ ///////////////////////////////////////////////////////////////////////\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() );
-       UpdateSplash();  // UPDATESPLASH... 
-       // search for vehicles
--      if ( Swv.SearchAndLoad( "autos" ) != SWV_SUCCESS ) return false;
-+      tmp.resize(strlen(sys_datadir));
-+      tmp.append("/autos");
-+      if ( Swv.SearchAndLoad( tmp.c_str() ) != SWV_SUCCESS )
-+              return false;
-       // check for vehicle number
-       if ( Swv.GetVehicles() < 4 ) 
-       {
-               AppendToLog( "Not enough vehicles in the /auto dir!" );
+       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;
- #else
-       
-       SDL_Surface *sdl_surf = NULL;
--      char filename_buf[255];
--      sprintf( filename_buf, "../%s", filename );
--
-       if ( ( sdl_surf = SDL_LoadBMP( filename_buf )) == NULL )
-       {
-               LOG("...failed to load graphics from : " << filename_buf );
-               return NULL;
-       }
+       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()
- // Desc: Load all ingame sounds
- //////////////////////////////////////////////////////////////////////
- bool CSounds::Initialize( CSdl *pSdl )
- {
--      ASSERT( _sdl != NULL );
-+      ASSERT( pSdl != NULL );
-       this->_sdl = pSdl;
- #if defined(WITH_FMOD) || defined(WITH_SDLMIXER)
-+      String tmp (sys_datadir);
--#define LOAD_SOUND( container, name, buffered ) if ( (sounds[container] = _sdl->LoadSound( name, buffered )) == -1 ) { \
--      LOG( "Failed to load " << name << " ! "); \
--      return false; }
-+#define LOAD_SOUND( container, name, buffered)                                        \
-+      do {                                                                    \
-+              tmp.append("/").append(name);                                   \
-+              sounds[container] =                                             \
-+                      _sdl->LoadSound( tmp.c_str(), buffered );               \
-+              if ( sounds[container] == -1 ) {                                \
-+                      LOG( "Failed to load " << name << " ! " );              \
-+                      return false;                                           \
-+              }                                                               \
-+              tmp.resize(strlen(sys_datadir));                                \
-+      } while(0)
--#define LOAD_MUSIC( container, name ) if ( (music[container] = _sdl->LoadSound( name, false, true )) == -1 ) { \
--      LOG( "Failed to load music " << name << " ! "); \
--      return false; }
-+#define LOAD_MUSIC( container, name)                                          \
-+      do {                                                                    \
-+              tmp.append("/").append(name);                                   \
-+              music[container] =                                              \
-+                      _sdl->LoadSound( tmp.c_str(), false, true );            \
-+              if ( music[container] == -1 ) {                                 \
-+                      LOG( "Failed to load music " << name << " ! " );        \
-+                      return false;                                           \
-+              }                                                               \
-+              tmp.resize(strlen(sys_datadir));                                \
-+      } while(0)
-       LOAD_SOUND( SND_CRASHLIGHT1, "sound/crash3.wav", true );
-       LOAD_SOUND( SND_CRASHLIGHT2, "sound/crash2.wav", true );
-       LOAD_SOUND( SND_CRASHLIGHT3, "sound/crash1.wav", true );
-       LOAD_SOUND( SND_EXPLOSION1, "sound/exp.wav", true );
+ // 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
- //                            << " size (KB): " << swv_file->pfiles[i].length
- //                            << " name: " << swv_file->pfiles[i].filename);
- //    }
-       
--      // set module filename
--      sprintf( swv_file->filename, "%s", filename );
-       if ( fp != NULL )
-         fclose( fp );
-       return SWV_SUCCESS;
+ //            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 +1336,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 )
- {
-       SDL_Surface  *sdl_surf  = NULL;                                         // temp surface
-       FILE             *fp            = NULL;                                         // file pointer
-       SDL_RWops        *sdl_rw        = NULL;                                         // sdl_read_write_operations
-+      String tmp;
--      if ( ( fp = fopen( filename, "rb")) == NULL ) 
-+#ifdef LINUX_BUILD
-+      if ( filename[0] != '/' )
-+      {
-+          tmp = String(sys_datadir).append("/autos/").append(filename);
-+      }
-+      else
-+      {
-+              tmp = String(filename);
-+      }
-+#else
-+      tmp = String(filename);
-+#endif
-+      if ( ( fp = fopen( tmp.c_str(), "rb")) == NULL ) 
-       {
-               LOG("...failed to open file : " << filename );
-               return NULL;
-       }
+@@ -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 )
-         return;
-       FILE *fp = NULL;
-       char  header[3] = { 'S', 'W', 'P' };
-+      String strPref(String(usr_cfgdir) + "/pref");
--      if ( ( fp = fopen( "pref", "wb" ) ) == NULL )
-+      if ( ( fp = fopen( strPref.c_str(), "wb" ) ) == NULL )
-       {
-               AppendToLog( "Error writing to /pref file !" );
-               return;
-       }
+       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
-@@ -1167,12 +1168,13 @@ void CMainMenu::SaveSettings()
- void CMainMenu::LoadSettings()
- {
-       FILE  *fp = NULL;
-       char  header[3];
-       bool  success = true;
-+      String strPref(String(usr_cfgdir) + "/pref");
--      if ( ( fp = fopen( "pref", "rb" ) ) == NULL )
-+      if ( ( fp = fopen( strPref.c_str(), "wb" ) ) == NULL )
-       {
-               AppendToLog( "Error opening /pref file !" );
-               success = false;
-       }
+@@ -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