Get rid of the prefix game definition and path nonsense
This commit is contained in:
parent
806a6fd08c
commit
13aa866ef3
4 changed files with 3 additions and 82 deletions
|
@ -332,7 +332,8 @@ void streams_init()
|
||||||
|
|
||||||
void paths_init()
|
void paths_init()
|
||||||
{
|
{
|
||||||
g_strSettingsPath = environment_get_home_path();
|
//g_strSettingsPath = environment_get_home_path();
|
||||||
|
g_strSettingsPath = environment_get_app_path();
|
||||||
|
|
||||||
Q_mkdir(g_strSettingsPath.c_str());
|
Q_mkdir(g_strSettingsPath.c_str());
|
||||||
|
|
||||||
|
|
|
@ -204,72 +204,7 @@ static qSHGetKnownFolderPath_t *qSHGetKnownFolderPath;
|
||||||
|
|
||||||
void HomePaths_Realise()
|
void HomePaths_Realise()
|
||||||
{
|
{
|
||||||
do {
|
g_qeglobals.m_userEnginePath = EnginePath_get();
|
||||||
const char *prefix = g_pGameDescription->getKeyValue("prefix");
|
|
||||||
if (!string_empty(prefix)) {
|
|
||||||
StringOutputStream path(256);
|
|
||||||
|
|
||||||
#if GDEF_OS_MACOS
|
|
||||||
path.clear();
|
|
||||||
path << DirectoryCleaned( g_get_home_dir() ) << "Library/Application Support" << ( prefix + 1 ) << "/";
|
|
||||||
if ( file_is_directory( path.c_str() ) ) {
|
|
||||||
g_qeglobals.m_userEnginePath = path.c_str();
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
path.clear();
|
|
||||||
path << DirectoryCleaned( g_get_home_dir() ) << prefix << "/";
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if GDEF_OS_WINDOWS
|
|
||||||
TCHAR mydocsdir[MAX_PATH + 1];
|
|
||||||
wchar_t *mydocsdirw;
|
|
||||||
HMODULE shfolder = LoadLibrary( "shfolder.dll" );
|
|
||||||
if ( shfolder ) {
|
|
||||||
qSHGetKnownFolderPath = (qSHGetKnownFolderPath_t *) GetProcAddress( shfolder, "SHGetKnownFolderPath" );
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
qSHGetKnownFolderPath = NULL;
|
|
||||||
}
|
|
||||||
CoInitializeEx( NULL, COINIT_APARTMENTTHREADED );
|
|
||||||
if ( qSHGetKnownFolderPath && qSHGetKnownFolderPath( qFOLDERID_SavedGames, qKF_FLAG_CREATE | qKF_FLAG_NO_ALIAS, NULL, &mydocsdirw ) == S_OK ) {
|
|
||||||
memset( mydocsdir, 0, sizeof( mydocsdir ) );
|
|
||||||
wcstombs( mydocsdir, mydocsdirw, sizeof( mydocsdir ) - 1 );
|
|
||||||
CoTaskMemFree( mydocsdirw );
|
|
||||||
path.clear();
|
|
||||||
path << DirectoryCleaned( mydocsdir ) << ( prefix + 1 ) << "/";
|
|
||||||
if ( file_is_directory( path.c_str() ) ) {
|
|
||||||
g_qeglobals.m_userEnginePath = path.c_str();
|
|
||||||
CoUninitialize();
|
|
||||||
FreeLibrary( shfolder );
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
CoUninitialize();
|
|
||||||
if ( shfolder ) {
|
|
||||||
FreeLibrary( shfolder );
|
|
||||||
}
|
|
||||||
if ( SHGetFolderPath( NULL, CSIDL_PERSONAL, NULL, 0, mydocsdir ) ) {
|
|
||||||
path.clear();
|
|
||||||
path << DirectoryCleaned( mydocsdir ) << "My Games/" << ( prefix + 1 ) << "/";
|
|
||||||
// win32: only add it if it already exists
|
|
||||||
if ( file_is_directory( path.c_str() ) ) {
|
|
||||||
g_qeglobals.m_userEnginePath = path.c_str();
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if GDEF_OS_POSIX
|
|
||||||
path.clear();
|
|
||||||
path << DirectoryCleaned(g_get_home_dir()) << prefix << "/";
|
|
||||||
g_qeglobals.m_userEnginePath = path.c_str();
|
|
||||||
break;
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
g_qeglobals.m_userEnginePath = EnginePath_get();
|
|
||||||
} while (0);
|
|
||||||
|
|
||||||
Q_mkdir(g_qeglobals.m_userEnginePath.c_str());
|
Q_mkdir(g_qeglobals.m_userEnginePath.c_str());
|
||||||
|
|
||||||
{
|
{
|
||||||
|
|
|
@ -86,13 +86,6 @@ void QE_InitVFS()
|
||||||
|
|
||||||
// if we have a mod dir
|
// if we have a mod dir
|
||||||
if (!string_equal(gamename, basegame)) {
|
if (!string_equal(gamename, basegame)) {
|
||||||
// ~/.<gameprefix>/<fs_game>
|
|
||||||
if (userRoot && !g_disableHomePath) {
|
|
||||||
StringOutputStream userGamePath(256);
|
|
||||||
userGamePath << userRoot << gamename << '/';
|
|
||||||
GlobalFileSystem().initDirectory(userGamePath.c_str());
|
|
||||||
}
|
|
||||||
|
|
||||||
// <fs_basepath>/<fs_game>
|
// <fs_basepath>/<fs_game>
|
||||||
if (!g_disableEnginePath) {
|
if (!g_disableEnginePath) {
|
||||||
StringOutputStream globalGamePath(256);
|
StringOutputStream globalGamePath(256);
|
||||||
|
@ -101,13 +94,6 @@ void QE_InitVFS()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// ~/.<gameprefix>/<fs_main>
|
|
||||||
if (userRoot && !g_disableHomePath) {
|
|
||||||
StringOutputStream userBasePath(256);
|
|
||||||
userBasePath << userRoot << basegame << '/';
|
|
||||||
GlobalFileSystem().initDirectory(userBasePath.c_str());
|
|
||||||
}
|
|
||||||
|
|
||||||
// <fs_basepath>/<fs_main>
|
// <fs_basepath>/<fs_main>
|
||||||
if (!g_disableEnginePath) {
|
if (!g_disableEnginePath) {
|
||||||
StringOutputStream globalBasePath(256);
|
StringOutputStream globalBasePath(256);
|
||||||
|
|
|
@ -9,7 +9,6 @@
|
||||||
engine_win32="nuclide.bat"
|
engine_win32="nuclide.bat"
|
||||||
engine_linux="nuclide"
|
engine_linux="nuclide"
|
||||||
engine_macos="Nuclide.app"
|
engine_macos="Nuclide.app"
|
||||||
prefix=".tw"
|
|
||||||
basegame="platform"
|
basegame="platform"
|
||||||
basegamename="Nuclide"
|
basegamename="Nuclide"
|
||||||
unknowngamename="Game dir"
|
unknowngamename="Game dir"
|
||||||
|
|
Loading…
Reference in a new issue