summaryrefslogtreecommitdiff
path: root/src/qcommon
diff options
context:
space:
mode:
Diffstat (limited to 'src/qcommon')
-rw-r--r--src/qcommon/common.c2
-rw-r--r--src/qcommon/files.c16
-rw-r--r--src/qcommon/qcommon.h7
3 files changed, 24 insertions, 1 deletions
diff --git a/src/qcommon/common.c b/src/qcommon/common.c
index e2aa156c..3d3cd38d 100644
--- a/src/qcommon/common.c
+++ b/src/qcommon/common.c
@@ -244,6 +244,8 @@ void QDECL Com_Error( int code, const char *fmt, ... ) {
static int errorCount;
int currentTime;
+ Cvar_Set( "com_errorCode", va( "%i", code ) );
+
// when we are running automated scripts, make sure we
// know if anything failed
if ( com_buildScript && com_buildScript->integer ) {
diff --git a/src/qcommon/files.c b/src/qcommon/files.c
index 94e2152e..f896929f 100644
--- a/src/qcommon/files.c
+++ b/src/qcommon/files.c
@@ -235,6 +235,12 @@ typedef struct searchpath_s {
static char fs_gamedir[MAX_OSPATH]; // this will be a single file name with no separators
static cvar_t *fs_debug;
static cvar_t *fs_homepath;
+
+#ifdef MACOS_X
+// Also search the .app bundle for .pk3 files
+static cvar_t *fs_apppath;
+#endif
+
static cvar_t *fs_basepath;
static cvar_t *fs_basegame;
static cvar_t *fs_gamedirvar;
@@ -2386,7 +2392,7 @@ Sets fs_gamedir, adds the directory to the head of the path,
then loads the zip headers
================
*/
-static void FS_AddGameDirectory( const char *path, const char *dir ) {
+void FS_AddGameDirectory( const char *path, const char *dir ) {
searchpath_t *sp;
int i;
searchpath_t *search;
@@ -2713,6 +2719,14 @@ static void FS_Startup( const char *gameName )
FS_AddGameDirectory( fs_basepath->string, gameName );
}
// fs_homepath is somewhat particular to *nix systems, only add if relevant
+
+ #ifdef MACOS_X
+ fs_apppath = Cvar_Get ("fs_apppath", Sys_DefaultAppPath(), CVAR_INIT );
+ // Make MacOSX also include the base path included with the .app bundle
+ if (fs_apppath->string[0])
+ FS_AddGameDirectory(fs_apppath->string, gameName);
+ #endif
+
// NOTE: same filtering below for mods and basegame
if (fs_homepath->string[0] && Q_stricmp(fs_homepath->string,fs_basepath->string)) {
FS_AddGameDirectory ( fs_homepath->string, gameName );
diff --git a/src/qcommon/qcommon.h b/src/qcommon/qcommon.h
index d6273d8a..e6612453 100644
--- a/src/qcommon/qcommon.h
+++ b/src/qcommon/qcommon.h
@@ -539,6 +539,8 @@ qboolean FS_ConditionalRestart( int checksumFeed );
void FS_Restart( int checksumFeed );
// shutdown and restart the filesystem so changes to fs_gamedir can take effect
+void FS_AddGameDirectory( const char *path, const char *dir );
+
char **FS_ListFiles( const char *directory, const char *extension, int *numfiles );
// directory should not have either a leading or trailing /
// if extension is "/", only subdirectories will be returned
@@ -1016,6 +1018,11 @@ void Sys_Mkdir( const char *path );
char *Sys_Cwd( void );
void Sys_SetDefaultInstallPath(const char *path);
char *Sys_DefaultInstallPath(void);
+
+#ifdef MACOS_X
+char *Sys_DefaultAppPath(void);
+#endif
+
void Sys_SetDefaultHomePath(const char *path);
char *Sys_DefaultHomePath(void);
const char *Sys_Dirname( char *path );