Rip out any observer stuff for home directories
This commit is contained in:
parent
859744cd1f
commit
750b916448
6 changed files with 0 additions and 135 deletions
|
@ -143,15 +143,9 @@ void gamedetect()
|
||||||
}
|
}
|
||||||
|
|
||||||
namespace {
|
namespace {
|
||||||
CopiedString home_path;
|
|
||||||
CopiedString app_path;
|
CopiedString app_path;
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *environment_get_home_path()
|
|
||||||
{
|
|
||||||
return home_path.c_str();
|
|
||||||
}
|
|
||||||
|
|
||||||
const char *environment_get_app_path()
|
const char *environment_get_app_path()
|
||||||
{
|
{
|
||||||
return app_path.c_str();
|
return app_path.c_str();
|
||||||
|
@ -162,7 +156,6 @@ bool portable_app_setup()
|
||||||
StringOutputStream confdir(256);
|
StringOutputStream confdir(256);
|
||||||
confdir << app_path.c_str() << "settings/";
|
confdir << app_path.c_str() << "settings/";
|
||||||
if (file_exists(confdir.c_str())) {
|
if (file_exists(confdir.c_str())) {
|
||||||
home_path = confdir.c_str();
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
@ -234,12 +227,6 @@ void environment_init(int argc, char const *argv[])
|
||||||
ASSERT_MESSAGE(!string_empty(app_path.c_str()), "failed to deduce app path");
|
ASSERT_MESSAGE(!string_empty(app_path.c_str()), "failed to deduce app path");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!portable_app_setup()) {
|
|
||||||
StringOutputStream home(256);
|
|
||||||
home << DirectoryCleaned(g_get_user_data_dir()) << "worldspawn/";
|
|
||||||
Q_mkdir(home.c_str());
|
|
||||||
home_path = home.c_str();
|
|
||||||
}
|
|
||||||
gamedetect();
|
gamedetect();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -263,21 +250,6 @@ void environment_init( int argc, char const* argv[] ){
|
||||||
StringOutputStream app( 256 );
|
StringOutputStream app( 256 );
|
||||||
app << PathCleaned( filename );
|
app << PathCleaned( filename );
|
||||||
app_path = app.c_str();
|
app_path = app.c_str();
|
||||||
|
|
||||||
if ( !portable_app_setup() ) {
|
|
||||||
char *appdata = getenv( "APPDATA" );
|
|
||||||
StringOutputStream home( 256 );
|
|
||||||
if ( !appdata || string_empty( appdata ) ) {
|
|
||||||
ERROR_MESSAGE( "Application Data folder not available.\n"
|
|
||||||
"WorldSpawn will use C:\\ for user preferences.\n" );
|
|
||||||
home << "C:";
|
|
||||||
} else {
|
|
||||||
home << PathCleaned( appdata );
|
|
||||||
}
|
|
||||||
home << "/WorldSpawnSettings/";
|
|
||||||
Q_mkdir( home.c_str() );
|
|
||||||
home_path = home.c_str();
|
|
||||||
}
|
|
||||||
gamedetect();
|
gamedetect();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -181,89 +181,12 @@ VFSModuleObserver g_VFSModuleObserver;
|
||||||
|
|
||||||
void VFS_Construct()
|
void VFS_Construct()
|
||||||
{
|
{
|
||||||
Radiant_attachHomePathsObserver(g_VFSModuleObserver);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void VFS_Destroy()
|
void VFS_Destroy()
|
||||||
{
|
{
|
||||||
Radiant_detachHomePathsObserver(g_VFSModuleObserver);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Home Paths
|
|
||||||
|
|
||||||
#if GDEF_OS_WINDOWS
|
|
||||||
#include <shlobj.h>
|
|
||||||
#include <objbase.h>
|
|
||||||
const GUID qFOLDERID_SavedGames = {0x4C5C32FF, 0xBB9D, 0x43b0, {0xB5, 0xB4, 0x2D, 0x72, 0xE5, 0x4E, 0xAA, 0xA4}};
|
|
||||||
#define qREFKNOWNFOLDERID GUID
|
|
||||||
#define qKF_FLAG_CREATE 0x8000
|
|
||||||
#define qKF_FLAG_NO_ALIAS 0x1000
|
|
||||||
typedef HRESULT ( WINAPI qSHGetKnownFolderPath_t )( qREFKNOWNFOLDERID rfid, DWORD dwFlags, HANDLE hToken, PWSTR *ppszPath );
|
|
||||||
static qSHGetKnownFolderPath_t *qSHGetKnownFolderPath;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
void HomePaths_Realise()
|
|
||||||
{
|
|
||||||
g_qeglobals.m_userEnginePath = EnginePath_get();
|
|
||||||
Q_mkdir(g_qeglobals.m_userEnginePath.c_str());
|
|
||||||
|
|
||||||
{
|
|
||||||
StringOutputStream path(256);
|
|
||||||
path << g_qeglobals.m_userEnginePath.c_str() << gamename_get() << '/';
|
|
||||||
g_qeglobals.m_userGamePath = path.c_str();
|
|
||||||
}
|
|
||||||
ASSERT_MESSAGE(!string_empty(g_qeglobals.m_userGamePath.c_str()), "HomePaths_Realise: user-game-path is empty");
|
|
||||||
Q_mkdir(g_qeglobals.m_userGamePath.c_str());
|
|
||||||
}
|
|
||||||
|
|
||||||
ModuleObservers g_homePathObservers;
|
|
||||||
|
|
||||||
void Radiant_attachHomePathsObserver(ModuleObserver &observer)
|
|
||||||
{
|
|
||||||
g_homePathObservers.attach(observer);
|
|
||||||
}
|
|
||||||
|
|
||||||
void Radiant_detachHomePathsObserver(ModuleObserver &observer)
|
|
||||||
{
|
|
||||||
g_homePathObservers.detach(observer);
|
|
||||||
}
|
|
||||||
|
|
||||||
class HomePathsModuleObserver : public ModuleObserver {
|
|
||||||
std::size_t m_unrealised;
|
|
||||||
public:
|
|
||||||
HomePathsModuleObserver() : m_unrealised(1)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
void realise()
|
|
||||||
{
|
|
||||||
if (--m_unrealised == 0) {
|
|
||||||
HomePaths_Realise();
|
|
||||||
g_homePathObservers.realise();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void unrealise()
|
|
||||||
{
|
|
||||||
if (++m_unrealised == 1) {
|
|
||||||
g_homePathObservers.unrealise();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
HomePathsModuleObserver g_HomePathsModuleObserver;
|
|
||||||
|
|
||||||
void HomePaths_Construct()
|
|
||||||
{
|
|
||||||
Radiant_attachEnginePathObserver(g_HomePathsModuleObserver);
|
|
||||||
}
|
|
||||||
|
|
||||||
void HomePaths_Destroy()
|
|
||||||
{
|
|
||||||
Radiant_detachEnginePathObserver(g_HomePathsModuleObserver);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// Engine Path
|
// Engine Path
|
||||||
|
|
||||||
CopiedString g_strEnginePath;
|
CopiedString g_strEnginePath;
|
||||||
|
@ -390,7 +313,6 @@ struct EnginePath {
|
||||||
};
|
};
|
||||||
|
|
||||||
bool g_disableEnginePath = false;
|
bool g_disableEnginePath = false;
|
||||||
bool g_disableHomePath = false;
|
|
||||||
|
|
||||||
void Paths_constructPreferences(PreferencesPage &page)
|
void Paths_constructPreferences(PreferencesPage &page)
|
||||||
{
|
{
|
||||||
|
@ -400,11 +322,6 @@ void Paths_constructPreferences(PreferencesPage &page)
|
||||||
"", "Do not use Engine Path",
|
"", "Do not use Engine Path",
|
||||||
g_disableEnginePath
|
g_disableEnginePath
|
||||||
);
|
);
|
||||||
|
|
||||||
page.appendCheckBox(
|
|
||||||
"", "Do not use Home Path",
|
|
||||||
g_disableHomePath
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void Paths_constructPage(PreferenceGroup &group)
|
void Paths_constructPage(PreferenceGroup &group)
|
||||||
|
@ -3436,7 +3353,6 @@ void MainFrame_Construct()
|
||||||
GlobalPreferenceSystem().registerPreference("EnginePath", make_property_string(g_strEnginePath));
|
GlobalPreferenceSystem().registerPreference("EnginePath", make_property_string(g_strEnginePath));
|
||||||
|
|
||||||
GlobalPreferenceSystem().registerPreference("DisableEnginePath", make_property_string(g_disableEnginePath));
|
GlobalPreferenceSystem().registerPreference("DisableEnginePath", make_property_string(g_disableEnginePath));
|
||||||
GlobalPreferenceSystem().registerPreference("DisableHomePath", make_property_string(g_disableHomePath));
|
|
||||||
|
|
||||||
g_Layout_enablePluginToolbar.useLatched();
|
g_Layout_enablePluginToolbar.useLatched();
|
||||||
|
|
||||||
|
|
|
@ -229,7 +229,6 @@ const char *EnginePath_get();
|
||||||
const char *QERApp_GetGamePath();
|
const char *QERApp_GetGamePath();
|
||||||
|
|
||||||
extern bool g_disableEnginePath;
|
extern bool g_disableEnginePath;
|
||||||
extern bool g_disableHomePath;
|
|
||||||
|
|
||||||
extern CopiedString g_strAppPath;
|
extern CopiedString g_strAppPath;
|
||||||
|
|
||||||
|
@ -289,14 +288,6 @@ void VFS_Construct();
|
||||||
|
|
||||||
void VFS_Destroy();
|
void VFS_Destroy();
|
||||||
|
|
||||||
void HomePaths_Construct();
|
|
||||||
|
|
||||||
void HomePaths_Destroy();
|
|
||||||
|
|
||||||
void Radiant_attachHomePathsObserver(ModuleObserver &observer);
|
|
||||||
|
|
||||||
void Radiant_detachHomePathsObserver(ModuleObserver &observer);
|
|
||||||
|
|
||||||
|
|
||||||
void MainFrame_Construct();
|
void MainFrame_Construct();
|
||||||
|
|
||||||
|
|
|
@ -1645,8 +1645,6 @@ bool Map_ImportFile(const char *filename)
|
||||||
output.push_string((type && *type) ? type : "quake3");
|
output.push_string((type && *type) ? type : "quake3");
|
||||||
output.push_string(" -fs_basepath \"");
|
output.push_string(" -fs_basepath \"");
|
||||||
output.push_string(EnginePath_get());
|
output.push_string(EnginePath_get());
|
||||||
output.push_string("\" -fs_homepath \"");
|
|
||||||
output.push_string(g_qeglobals.m_userEnginePath.c_str());
|
|
||||||
output.push_string("\"");
|
output.push_string("\"");
|
||||||
|
|
||||||
// extra switches
|
// extra switches
|
||||||
|
@ -1654,10 +1652,6 @@ bool Map_ImportFile(const char *filename)
|
||||||
output.push_string(" -fs_nobasepath ");
|
output.push_string(" -fs_nobasepath ");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (g_disableHomePath) {
|
|
||||||
output.push_string(" -fs_nohomepath ");
|
|
||||||
}
|
|
||||||
|
|
||||||
output.push_string(" -fs_game ");
|
output.push_string(" -fs_game ");
|
||||||
output.push_string(gamename_get());
|
output.push_string(gamename_get());
|
||||||
output.push_string(" -convert -format ");
|
output.push_string(" -convert -format ");
|
||||||
|
@ -2353,11 +2347,9 @@ void Map_Construct()
|
||||||
PreferencesDialog_addSettingsPreferences(makeCallbackF(Map_constructPreferences));
|
PreferencesDialog_addSettingsPreferences(makeCallbackF(Map_constructPreferences));
|
||||||
|
|
||||||
GlobalEntityClassManager().attach(g_MapEntityClasses);
|
GlobalEntityClassManager().attach(g_MapEntityClasses);
|
||||||
Radiant_attachHomePathsObserver(g_MapModuleObserver);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void Map_Destroy()
|
void Map_Destroy()
|
||||||
{
|
{
|
||||||
Radiant_detachHomePathsObserver(g_MapModuleObserver);
|
|
||||||
GlobalEntityClassManager().detach(g_MapEntityClasses);
|
GlobalEntityClassManager().detach(g_MapEntityClasses);
|
||||||
}
|
}
|
||||||
|
|
|
@ -242,7 +242,6 @@ public:
|
||||||
GlobalFiletypes().addType("sound", "wav", filetype_t("PCM sound files", "*.wav"));
|
GlobalFiletypes().addType("sound", "wav", filetype_t("PCM sound files", "*.wav"));
|
||||||
|
|
||||||
Selection_construct();
|
Selection_construct();
|
||||||
HomePaths_Construct();
|
|
||||||
VFS_Construct();
|
VFS_Construct();
|
||||||
Grid_construct();
|
Grid_construct();
|
||||||
MultiMon_Construct();
|
MultiMon_Construct();
|
||||||
|
@ -298,7 +297,6 @@ public:
|
||||||
MultiMon_Destroy();
|
MultiMon_Destroy();
|
||||||
Grid_destroy();
|
Grid_destroy();
|
||||||
VFS_Destroy();
|
VFS_Destroy();
|
||||||
HomePaths_Destroy();
|
|
||||||
Selection_destroy();
|
Selection_destroy();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
|
@ -165,10 +165,6 @@ void bsp_init()
|
||||||
ExtraQ3map2Args.push_string(" -fs_nobasepath ");
|
ExtraQ3map2Args.push_string(" -fs_nobasepath ");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (g_disableHomePath) {
|
|
||||||
ExtraQ3map2Args.push_string(" -fs_nohomepath ");
|
|
||||||
}
|
|
||||||
|
|
||||||
build_set_variable("ExtraQ3map2Args", ExtraQ3map2Args.c_str());
|
build_set_variable("ExtraQ3map2Args", ExtraQ3map2Args.c_str());
|
||||||
|
|
||||||
const char *mapname = Map_Name(g_map);
|
const char *mapname = Map_Name(g_map);
|
||||||
|
|
Loading…
Reference in a new issue