add command line options:
-global-Key Value -gamename.game-Key Value and use it in netradiant.sh on OS X to detect whether NetRadiant.app is located in a subdir of a Nexuiz install. If it is, automatically select this game dir. git-svn-id: svn://svn.icculus.org/netradiant/trunk@202 61c419a2-8eb2-4b30-bcec-8cead039b335
This commit is contained in:
parent
469e4fc146
commit
03c2a5a99f
|
|
@ -6,7 +6,7 @@
|
||||||
name="Nexuiz"
|
name="Nexuiz"
|
||||||
enginepath_win32="C:/Program Files/Nexuiz/"
|
enginepath_win32="C:/Program Files/Nexuiz/"
|
||||||
enginepath_linux="/usr/share/games/nexuiz/"
|
enginepath_linux="/usr/share/games/nexuiz/"
|
||||||
enginepath_macos="../../../../.."
|
enginepath_macos="/Applications/Nexuiz"
|
||||||
engine_win32="nexuiz-sdl.exe"
|
engine_win32="nexuiz-sdl.exe"
|
||||||
engine_linux="nexuiz-sdl"
|
engine_linux="nexuiz-sdl"
|
||||||
engine_macos="Nexuiz.app"
|
engine_macos="Nexuiz.app"
|
||||||
|
|
|
||||||
|
|
@ -26,4 +26,7 @@ void environment_init(int argc, char* argv[]);
|
||||||
const char* environment_get_home_path();
|
const char* environment_get_home_path();
|
||||||
const char* environment_get_app_path();
|
const char* environment_get_app_path();
|
||||||
|
|
||||||
|
extern int g_argc;
|
||||||
|
extern char** g_argv;
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
|
|
@ -92,6 +92,7 @@ public:
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
m_cache.erase(name);
|
||||||
m_cache.insert(PreferenceCache::value_type(name, value));
|
m_cache.insert(PreferenceCache::value_type(name, value));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -26,6 +26,7 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
//
|
//
|
||||||
|
|
||||||
#include "preferences.h"
|
#include "preferences.h"
|
||||||
|
#include "environment.h"
|
||||||
|
|
||||||
#include "debugging/debugging.h"
|
#include "debugging/debugging.h"
|
||||||
|
|
||||||
|
|
@ -187,17 +188,31 @@ CGameDescription *g_pGameDescription; ///< shortcut to g_GamesDialog.m_pCurrentD
|
||||||
|
|
||||||
const char* const PREFERENCES_VERSION = "1.0";
|
const char* const PREFERENCES_VERSION = "1.0";
|
||||||
|
|
||||||
bool Preferences_Load(PreferenceDictionary& preferences, const char* filename)
|
bool Preferences_Load(PreferenceDictionary& preferences, const char* filename, const char *cmdline_prefix)
|
||||||
{
|
{
|
||||||
|
bool ret = false;
|
||||||
TextFileInputStream file(filename);
|
TextFileInputStream file(filename);
|
||||||
if(!file.failed())
|
if(!file.failed())
|
||||||
{
|
{
|
||||||
XMLStreamParser parser(file);
|
XMLStreamParser parser(file);
|
||||||
XMLPreferenceDictionaryImporter importer(preferences, PREFERENCES_VERSION);
|
XMLPreferenceDictionaryImporter importer(preferences, PREFERENCES_VERSION);
|
||||||
parser.exportXML(importer);
|
parser.exportXML(importer);
|
||||||
return true;
|
ret = true;
|
||||||
}
|
}
|
||||||
return false;
|
|
||||||
|
int l = strlen(cmdline_prefix);
|
||||||
|
for(int i = 1; i < g_argc - 1; ++i)
|
||||||
|
{
|
||||||
|
if(g_argv[i][0] == '-')
|
||||||
|
{
|
||||||
|
if(!strncmp(g_argv[i]+1, cmdline_prefix, l))
|
||||||
|
if(g_argv[i][l+1] == '-')
|
||||||
|
preferences.importPref(g_argv[i]+l+2, g_argv[i+1]);
|
||||||
|
++i;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Preferences_Save(PreferenceDictionary& preferences, const char* filename)
|
bool Preferences_Save(PreferenceDictionary& preferences, const char* filename)
|
||||||
|
|
@ -259,7 +274,7 @@ void CGameDialog::LoadPrefs()
|
||||||
|
|
||||||
globalOutputStream() << "loading global preferences from " << makeQuoted(strGlobalPref.c_str()) << "\n";
|
globalOutputStream() << "loading global preferences from " << makeQuoted(strGlobalPref.c_str()) << "\n";
|
||||||
|
|
||||||
if(!Preferences_Load(g_global_preferences, strGlobalPref.c_str()))
|
if(!Preferences_Load(g_global_preferences, strGlobalPref.c_str(), "global"))
|
||||||
{
|
{
|
||||||
globalOutputStream() << "failed to load global preferences from " << strGlobalPref.c_str() << "\n";
|
globalOutputStream() << "failed to load global preferences from " << strGlobalPref.c_str() << "\n";
|
||||||
}
|
}
|
||||||
|
|
@ -948,7 +963,7 @@ void Preferences_Load()
|
||||||
|
|
||||||
globalOutputStream() << "loading local preferences from " << g_Preferences.m_inipath->str << "\n";
|
globalOutputStream() << "loading local preferences from " << g_Preferences.m_inipath->str << "\n";
|
||||||
|
|
||||||
if(!Preferences_Load(g_preferences, g_Preferences.m_inipath->str))
|
if(!Preferences_Load(g_preferences, g_Preferences.m_inipath->str, g_GamesDialog.m_sGameFile.c_str()))
|
||||||
{
|
{
|
||||||
globalOutputStream() << "failed to load local preferences from " << g_Preferences.m_inipath->str << "\n";
|
globalOutputStream() << "failed to load local preferences from " << g_Preferences.m_inipath->str << "\n";
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -7,8 +7,33 @@ MY_DIRECTORY="${MY_DIRECTORY%/*}" # cut off Contents
|
||||||
#export DYLD_LIBRARY_PATH="$MY_DIRECTORY/Contents/MacOS"
|
#export DYLD_LIBRARY_PATH="$MY_DIRECTORY/Contents/MacOS"
|
||||||
|
|
||||||
cd "$MY_DIRECTORY/Contents/MacOS/install"
|
cd "$MY_DIRECTORY/Contents/MacOS/install"
|
||||||
if [ -x /usr/bin/open-x11 ]; then
|
|
||||||
exec /usr/bin/open-x11 ./radiant.ppc
|
# autodetect nexuiz installs
|
||||||
else
|
NEX_DIRECTORY="/${MY_DIRECTORY%/*}"
|
||||||
exec ./radiant.ppc
|
while :; do
|
||||||
|
if [ -z "$NEX_DIRECTORY" ]; then
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
if [ -f "$NEX_DIRECTORY/data/common-spog.pk3" ]; then
|
||||||
|
if [ -d "$NEX_DIRECTORY/Nexuiz.app" ]; then
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
NEX_DIRECTORY=${NEX_DIRECTORY%/*}
|
||||||
|
done
|
||||||
|
case "$NEX_DIRECTORY" in
|
||||||
|
//*)
|
||||||
|
NEX_DIRECTORY=${NEX_DIRECTORY#/}
|
||||||
|
set -- -global-gamefile nexuiz.game -nexuiz.game-EnginePath "$NEX_DIRECTORY/"
|
||||||
|
# -global-gamePrompt false?
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
set --
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
if [ -x /usr/bin/open-x11 ]; then
|
||||||
|
exec /usr/bin/open-x11 ./radiant.ppc "$@"
|
||||||
|
else
|
||||||
|
exec ./radiant.ppc "$@"
|
||||||
fi
|
fi
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user