Added "self contained" mode for Steam installation and similar. Editor looks for a file ._sc_ in the directory where the executable is, if it's present, all the editor settings (including the export templates) are read from editor_data/ inside that directory

This commit is contained in:
Ariel Manzur 2016-02-19 04:41:08 -03:00
parent 336f69b214
commit c0e7155591

View file

@ -165,13 +165,22 @@ void EditorSettings::create() {
return; //pointless return; //pointless
DirAccess *dir=NULL; DirAccess *dir=NULL;
Object *object;
Variant meta; Variant meta;
String config_path; String config_path;
String config_dir; String config_dir;
String config_file="editor_settings.xml"; String config_file="editor_settings.xml";
String exe_path = OS::get_singleton()->get_executable_path().get_base_dir();
DirAccess* d = DirAccess::create_for_path(exe_path);
if (d->file_exists(exe_path + "/._sc_")) {
// editor is self contained
config_path = exe_path;
config_dir = "editor_data";
} else {
if (OS::get_singleton()->has_environment("APPDATA")) { if (OS::get_singleton()->has_environment("APPDATA")) {
// Most likely under windows, save here // Most likely under windows, save here
config_path=OS::get_singleton()->get_environment("APPDATA"); config_path=OS::get_singleton()->get_environment("APPDATA");
@ -181,6 +190,7 @@ void EditorSettings::create() {
config_path=OS::get_singleton()->get_environment("HOME"); config_path=OS::get_singleton()->get_environment("HOME");
config_dir="."+String(_MKSTR(VERSION_SHORT_NAME)).to_lower(); config_dir="."+String(_MKSTR(VERSION_SHORT_NAME)).to_lower();
} }
};
ObjectTypeDB::register_type<EditorSettings>(); //otherwise it can't be unserialized ObjectTypeDB::register_type<EditorSettings>(); //otherwise it can't be unserialized
String config_file_path; String config_file_path;