summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/global_config.cpp72
-rw-r--r--core/global_config.h3
-rw-r--r--doc/base/classes.xml2
-rw-r--r--editor/editor_file_system.cpp48
-rw-r--r--editor/project_manager.cpp42
-rw-r--r--editor/project_settings.cpp3
-rw-r--r--main/main.cpp23
7 files changed, 45 insertions, 148 deletions
diff --git a/core/global_config.cpp b/core/global_config.cpp
index f9a0877c23..5ce9a088b8 100644
--- a/core/global_config.cpp
+++ b/core/global_config.cpp
@@ -53,11 +53,6 @@ String GlobalConfig::get_resource_path() const {
return resource_path;
};
-String GlobalConfig::get_project_file_name() const {
-
- return project_file_name;
-}
-
String GlobalConfig::localize_path(const String &p_path) const {
if (resource_path == "")
@@ -241,43 +236,13 @@ bool GlobalConfig::_load_resource_pack(const String &p_pack) {
return true;
}
-static String _find_project_file(DirAccess *p_diraccess, bool p_res = false) {
- p_diraccess->list_dir_begin();
- String ret = "";
- while (true) {
- bool isdir;
- String file = p_diraccess->get_next(&isdir);
- if (file == "")
- break;
-
- if (!isdir) {
- if (file.get_extension() == "godot") {
-
- if (p_res) {
- ret = "res://" + file;
- } else {
- ret = p_diraccess->get_current_dir() + "/" + file;
- }
- }
- }
- }
- p_diraccess->list_dir_end();
- return ret;
-}
-
-static String _find_project_file() {
- DirAccess *dir = DirAccess::create(DirAccess::ACCESS_RESOURCES);
- String ret = _find_project_file(dir, true);
- memdelete(dir);
- return ret;
-}
-
Error GlobalConfig::setup(const String &p_path, const String &p_main_pack) {
//If looking for files in network, just use network!
+
if (FileAccessNetworkClient::get_singleton()) {
- String gdproj = _find_project_file();
- if (_load_settings(gdproj) == OK || _load_settings_binary("res://godot.cfb") == OK) {
+
+ if (_load_settings("res://godot.cfg") == OK || _load_settings_binary("res://godot.cfb") == OK) {
_load_settings("res://override.cfg");
}
@@ -293,8 +258,8 @@ Error GlobalConfig::setup(const String &p_path, const String &p_main_pack) {
bool ok = _load_resource_pack(p_main_pack);
ERR_FAIL_COND_V(!ok, ERR_CANT_OPEN);
- String gdproj = _find_project_file();
- if (_load_settings(gdproj) == OK || _load_settings_binary("res://godot.cfb") == OK) {
+
+ if (_load_settings("res://godot.cfg") == OK || _load_settings_binary("res://godot.cfb") == OK) {
//load override from location of the main pack
_load_settings(p_main_pack.get_base_dir().plus_file("override.cfg"));
}
@@ -307,8 +272,7 @@ Error GlobalConfig::setup(const String &p_path, const String &p_main_pack) {
if (_load_resource_pack(exec_path.get_basename() + ".pck")) {
- String gdproj = _find_project_file();
- if (_load_settings(gdproj) == OK || _load_settings_binary("res://godot.cfb") == OK) {
+ if (_load_settings("res://godot.cfg") == OK || _load_settings_binary("res://godot.cfb") == OK) {
//load override from location of executable
_load_settings(exec_path.get_base_dir().plus_file("override.cfg"));
}
@@ -328,15 +292,15 @@ Error GlobalConfig::setup(const String &p_path, const String &p_main_pack) {
// data.pck and data.zip are deprecated and no longer supported, apologies.
// make sure this is loaded from the resource path
- String gdproj = _find_project_file();
- if (_load_settings(gdproj) == OK || _load_settings_binary("res://godot.cfb") == OK) {
+
+ if (_load_settings("res://godot.cfg") == OK || _load_settings_binary("res://godot.cfb") == OK) {
_load_settings("res://override.cfg");
}
return OK;
}
- //Nothing was found, try to find a *.godot somewhere!
+ //Nothing was found, try to find a godot.cfg somewhere!
DirAccess *d = DirAccess::create(DirAccess::ACCESS_FILESYSTEM);
ERR_FAIL_COND_V(!d, ERR_CANT_CREATE);
@@ -349,8 +313,8 @@ Error GlobalConfig::setup(const String &p_path, const String &p_main_pack) {
while (true) {
//try to load settings in ascending through dirs shape!
- String gdproj = _find_project_file(d);
- if (_load_settings(gdproj) == OK || _load_settings_binary(current_dir + "/godot.cfb") == OK) {
+
+ if (_load_settings(current_dir + "/godot.cfg") == OK || _load_settings_binary(current_dir + "/godot.cfb") == OK) {
_load_settings(current_dir + "/override.cfg");
candidate = current_dir;
@@ -464,7 +428,6 @@ Error GlobalConfig::_load_settings(const String p_path) {
err = VariantParser::parse_tag_assign_eof(&stream, lines, error_text, next_tag, assign, value, NULL, true);
if (err == ERR_FILE_EOF) {
memdelete(f);
- project_file_name = p_path.get_file();
return OK;
} else if (err != OK) {
ERR_PRINTS("GlobalConfig::load - " + p_path + ":" + itos(lines) + " error: " + error_text);
@@ -486,7 +449,6 @@ Error GlobalConfig::_load_settings(const String p_path) {
}
}
- project_file_name = p_path.get_file();
memdelete(f);
return OK;
@@ -512,12 +474,7 @@ void GlobalConfig::clear(const String &p_name) {
Error GlobalConfig::save() {
- if (project_file_name.empty()) {
- String name = ((String)get("application/name")).replace(" ", "_");
- return save_custom(get_resource_path() + "/" + name + ".godot");
- } else {
- return save_custom(get_resource_path() + "/" + project_file_name);
- }
+ return save_custom(get_resource_path() + "/godot.cfg");
}
Error GlobalConfig::_save_settings_binary(const String &p_file, const Map<String, List<String> > &props, const CustomMap &p_custom) {
@@ -526,7 +483,7 @@ Error GlobalConfig::_save_settings_binary(const String &p_file, const Map<String
FileAccess *file = FileAccess::open(p_file, FileAccess::WRITE, &err);
if (err != OK) {
- ERR_EXPLAIN("Couldn't save godot.cfb at " + p_file);
+ ERR_EXPLAIN("Coudln't save godot.cfb at " + p_file);
ERR_FAIL_COND_V(err, err)
}
@@ -591,7 +548,7 @@ Error GlobalConfig::_save_settings_text(const String &p_file, const Map<String,
FileAccess *file = FileAccess::open(p_file, FileAccess::WRITE, &err);
if (err) {
- ERR_EXPLAIN("Couldn't save project file - " + p_file);
+ ERR_EXPLAIN("Coudln't save godot.cfg - " + p_file);
ERR_FAIL_COND_V(err, err)
}
@@ -871,7 +828,6 @@ void GlobalConfig::_bind_methods() {
ClassDB::bind_method(D_METHOD("clear", "name"), &GlobalConfig::clear);
ClassDB::bind_method(D_METHOD("localize_path", "path"), &GlobalConfig::localize_path);
ClassDB::bind_method(D_METHOD("globalize_path", "path"), &GlobalConfig::globalize_path);
- ClassDB::bind_method(D_METHOD("get_project_file_name"), &GlobalConfig::get_project_file_name);
ClassDB::bind_method(D_METHOD("save"), &GlobalConfig::save);
ClassDB::bind_method(D_METHOD("has_singleton", "name"), &GlobalConfig::has_singleton);
ClassDB::bind_method(D_METHOD("get_singleton", "name"), &GlobalConfig::get_singleton_object);
diff --git a/core/global_config.h b/core/global_config.h
index 5148c4377e..d0f64dc23c 100644
--- a/core/global_config.h
+++ b/core/global_config.h
@@ -111,8 +111,6 @@ protected:
void _add_property_info_bind(const Dictionary &p_info);
- String project_file_name;
-
protected:
static void _bind_methods();
@@ -126,7 +124,6 @@ public:
Variant property_get_revert(const String &p_name);
String get_resource_path() const;
- String get_project_file_name() const;
static GlobalConfig *get_singleton();
diff --git a/doc/base/classes.xml b/doc/base/classes.xml
index 6f6a094927..96b311e788 100644
--- a/doc/base/classes.xml
+++ b/doc/base/classes.xml
@@ -16455,7 +16455,7 @@
Contains global variables accessible from everywhere.
</brief_description>
<description>
- Contains global variables accessible from everywhere. Use the normal [Object] API, such as "Globals.get(variable)", "Globals.set(variable,value)" or "Globals.has(variable)" to access them. Variables stored in the project file (*.godot) are also loaded into globals, making this object very useful for reading custom game configuration options.
+ Contains global variables accessible from everywhere. Use the normal [Object] API, such as "Globals.get(variable)", "Globals.set(variable,value)" or "Globals.has(variable)" to access them. Variables stored in godot.cfg are also loaded into globals, making this object very useful for reading custom game configuration options.
</description>
<methods>
<method name="add_property_info">
diff --git a/editor/editor_file_system.cpp b/editor/editor_file_system.cpp
index 3fb2923696..2612a2af16 100644
--- a/editor/editor_file_system.cpp
+++ b/editor/editor_file_system.cpp
@@ -487,22 +487,6 @@ bool EditorFileSystem::_check_missing_imported_files(const String &p_path) {
return true;
}
-static bool _find_project(const String &p_path) {
- DirAccess *dir_access = DirAccess::create_for_path(p_path);
- bool ret = false;
- while (true) {
- bool is_dir;
- String file = dir_access->get_next(&is_dir);
- if (file == "")
- break;
- if (file.ends_with(".godot")) {
- ret = true;
- }
- }
- memdelete(dir_access);
- return ret;
-}
-
void EditorFileSystem::_scan_new_dir(EditorFileSystemDirectory *p_dir, DirAccess *da, const ScanProgress &p_progress) {
List<String> dirs;
@@ -525,9 +509,8 @@ void EditorFileSystem::_scan_new_dir(EditorFileSystemDirectory *p_dir, DirAccess
if (f.begins_with(".")) //ignore hidden and . / ..
continue;
- if (_find_project(cd.plus_file(f))) {
+ if (FileAccess::exists(cd.plus_file(f).plus_file("godot.cfg"))) // skip if another project inside this
continue;
- }
dirs.push_back(f);
@@ -693,35 +676,34 @@ void EditorFileSystem::_scan_fs_changes(EditorFileSystemDirectory *p_dir, const
while (true) {
bool isdir;
- String file = da->get_next(&isdir);
- if (file == "")
+ String f = da->get_next(&isdir);
+ if (f == "")
break;
if (isdir) {
- if (file.begins_with(".")) //ignore hidden and . / ..
+ if (f.begins_with(".")) //ignore hidden and . / ..
continue;
- int idx = p_dir->find_dir_index(file);
+ int idx = p_dir->find_dir_index(f);
if (idx == -1) {
- if (_find_project(cd.plus_file(file))) {
+ if (FileAccess::exists(cd.plus_file(f).plus_file("godot.cfg"))) // skip if another project inside this
continue;
- }
EditorFileSystemDirectory *efd = memnew(EditorFileSystemDirectory);
efd->parent = p_dir;
- efd->name = file;
+ efd->name = f;
DirAccess *d = DirAccess::create(DirAccess::ACCESS_RESOURCES);
- d->change_dir(cd.plus_file(file));
+ d->change_dir(cd.plus_file(f));
_scan_new_dir(efd, d, p_progress.get_sub(1, 1));
memdelete(d);
ItemAction ia;
ia.action = ItemAction::ACTION_DIR_ADD;
ia.dir = p_dir;
- ia.file = file;
+ ia.file = f;
ia.new_dir = efd;
scan_actions.push_back(ia);
} else {
@@ -729,16 +711,16 @@ void EditorFileSystem::_scan_fs_changes(EditorFileSystemDirectory *p_dir, const
}
} else {
- String ext = file.get_extension().to_lower();
+ String ext = f.get_extension().to_lower();
if (!valid_extensions.has(ext))
continue; //invalid
- int idx = p_dir->find_file_index(file);
+ int idx = p_dir->find_file_index(f);
if (idx == -1) {
//never seen this file, add actition to add it
EditorFileSystemDirectory::FileInfo *fi = memnew(EditorFileSystemDirectory::FileInfo);
- fi->file = file;
+ fi->file = f;
String path = cd.plus_file(fi->file);
fi->modified_time = FileAccess::get_modified_time(path);
@@ -749,7 +731,7 @@ void EditorFileSystem::_scan_fs_changes(EditorFileSystemDirectory *p_dir, const
ItemAction ia;
ia.action = ItemAction::ACTION_FILE_ADD;
ia.dir = p_dir;
- ia.file = file;
+ ia.file = f;
ia.new_file = fi;
scan_actions.push_back(ia);
}
@@ -757,14 +739,14 @@ void EditorFileSystem::_scan_fs_changes(EditorFileSystemDirectory *p_dir, const
if (import_extensions.has(ext)) {
//if it can be imported, and it was added, it needs to be reimported
print_line("REIMPORT: file was not found before, reimport");
- print_line("at dir: " + p_dir->get_path() + " file: " + file);
+ print_line("at dir: " + p_dir->get_path() + " file: " + f);
for (int i = 0; i < p_dir->files.size(); i++) {
print_line(itos(i) + ": " + p_dir->files[i]->file);
}
ItemAction ia;
ia.action = ItemAction::ACTION_FILE_REIMPORT;
ia.dir = p_dir;
- ia.file = file;
+ ia.file = f;
scan_actions.push_back(ia);
}
diff --git a/editor/project_manager.cpp b/editor/project_manager.cpp
index 1a4a36fa18..f2c04fe785 100644
--- a/editor/project_manager.cpp
+++ b/editor/project_manager.cpp
@@ -50,19 +50,6 @@
#include "scene/gui/tool_button.h"
#include "version.h"
-static String _find_project_file(DirAccess *p_da) {
- p_da->list_dir_begin();
- while (true) {
- String f = p_da->get_next();
- if (f == "")
- break;
- if (f.get_extension() == "godot")
- return p_da->get_current_dir() + "/" + f;
- }
- p_da->list_dir_end();
- return "";
-}
-
class NewProjectDialog : public ConfirmationDialog {
GDCLASS(NewProjectDialog, ConfirmationDialog);
@@ -105,18 +92,18 @@ private:
if (mode != MODE_IMPORT) {
- if (_find_project_file(d) != "") {
+ if (d->file_exists("godot.cfg")) {
- error->set_text(TTR("Invalid project path, *.godot must not exist."));
+ error->set_text(TTR("Invalid project path, godot.cfg must not exist."));
memdelete(d);
return "";
}
} else {
- if (valid_path != "" && _find_project_file(d) == "") {
+ if (valid_path != "" && !d->file_exists("godot.cfg")) {
- error->set_text(TTR("Invalid project path, *.godot must exist."));
+ error->set_text(TTR("Invalid project path, godot.cfg must exist."));
memdelete(d);
return "";
}
@@ -149,7 +136,7 @@ private:
String p = p_path;
if (mode == MODE_IMPORT) {
- if (p.get_extension() == "godot") {
+ if (p.ends_with("godot.cfg")) {
p = p.get_base_dir();
}
@@ -175,7 +162,7 @@ private:
fdialog->set_mode(FileDialog::MODE_OPEN_FILE);
fdialog->clear_filters();
- fdialog->add_filter("*.godot ; " _MKSTR(VERSION_NAME) " Project");
+ fdialog->add_filter("godot.cfg ; " _MKSTR(VERSION_NAME) " Project");
} else {
fdialog->set_mode(FileDialog::MODE_OPEN_DIR);
}
@@ -199,9 +186,9 @@ private:
} else {
if (mode == MODE_NEW) {
- FileAccess *f = FileAccess::open(dir.plus_file("/" + project_name->get_text().replace(" ", "_") + ".godot"), FileAccess::WRITE);
+ FileAccess *f = FileAccess::open(dir.plus_file("/godot.cfg"), FileAccess::WRITE);
if (!f) {
- error->set_text(TTR("Couldn't create *.godot project file in project path."));
+ error->set_text(TTR("Couldn't create godot.cfg in project path."));
} else {
f->store_line("; Engine configuration file.");
@@ -754,17 +741,10 @@ void ProjectManager::_load_recent_projects() {
continue;
String project = _name.get_slice("/", 1);
- DirAccess *dir_access = DirAccess::create(DirAccess::ACCESS_FILESYSTEM);
- if (dir_access->change_dir(path) != OK) {
- EditorSettings::get_singleton()->erase(_name);
- continue;
- }
- String conf = _find_project_file(dir_access);
- memdelete(dir_access);
+ String conf = path.plus_file("godot.cfg");
bool favorite = (_name.begins_with("favorite_projects/")) ? true : false;
uint64_t last_modified = 0;
-
if (FileAccess::exists(conf)) {
last_modified = FileAccess::get_modified_time(conf);
@@ -1026,7 +1006,7 @@ void ProjectManager::_scan_dir(DirAccess *da, float pos, float total, List<Strin
while (n != String()) {
if (da->current_is_dir() && !n.begins_with(".")) {
subdirs.push_front(n);
- } else if (n.get_extension() == "godot") {
+ } else if (n == "godot.cfg") {
r_projects->push_back(da->get_current_dir());
}
n = da->get_next();
@@ -1137,7 +1117,7 @@ void ProjectManager::_files_dropped(PoolStringArray p_files, int p_screen) {
dir->list_dir_begin();
String file = dir->get_next();
while (confirm && file != String()) {
- if (!dir->current_is_dir() && file.get_extension() == "godot") {
+ if (!dir->current_is_dir() && file.ends_with("godot.cfg")) {
confirm = false;
}
file = dir->get_next();
diff --git a/editor/project_settings.cpp b/editor/project_settings.cpp
index 7d9ee91f35..858b9403a7 100644
--- a/editor/project_settings.cpp
+++ b/editor/project_settings.cpp
@@ -1168,8 +1168,7 @@ void ProjectSettings::_bind_methods() {
ProjectSettings::ProjectSettings(EditorData *p_data) {
singleton = this;
- String project_file = "(" + GlobalConfig::get_singleton()->get_project_file_name() + ")";
- set_title(TTR("Project Settings " + project_file));
+ set_title(TTR("Project Settings (godot.cfg)"));
set_resizable(true);
undo_redo = &p_data->get_undo_redo();
data = p_data;
diff --git a/main/main.cpp b/main/main.cpp
index 377d15f5f4..ad7ca84d6b 100644
--- a/main/main.cpp
+++ b/main/main.cpp
@@ -129,7 +129,7 @@ void Main::print_help(const char *p_binary) {
OS::get_singleton()->print(VERSION_FULL_NAME " (c) 2008-2017 Juan Linietsky, Ariel Manzur.\n");
OS::get_singleton()->print("Usage: %s [options] [scene]\n", p_binary);
OS::get_singleton()->print("Options:\n");
- OS::get_singleton()->print("\t-path [dir] : Path to a game, containing *.godot\n");
+ OS::get_singleton()->print("\t-path [dir] : Path to a game, containing godot.cfg\n");
#ifdef TOOLS_ENABLED
OS::get_singleton()->print("\t-e,-editor : Bring up the editor instead of running the scene.\n");
#endif
@@ -447,23 +447,6 @@ Error Main::setup(const char *execpath, int argc, char *argv[], bool p_second_ph
} else {
goto error;
}
- } else if (I->get().ends_with(".godot")) {
- String path;
- String file = I->get();
- int sep = MAX(file.find_last("/"), file.find_last("\\"));
- if (sep == -1)
- path = ".";
- else {
- path = file.substr(0, sep);
- }
- if (OS::get_singleton()->set_cwd(path) == OK) {
-
- } else {
- game_path = path;
- }
-#ifdef TOOLS_ENABLED
- editor = true;
-#endif
} else if (I->get() == "-bp") { // /breakpoints
if (I->next()) {
@@ -690,7 +673,7 @@ Error Main::setup(const char *execpath, int argc, char *argv[], bool p_second_ph
else
input_map->load_from_globals(); //keys for game
- if (video_driver == "") // specified in *.godot
+ if (video_driver == "") // specified in godot.cfg
video_driver = GLOBAL_DEF("display/driver/name", Variant((const char *)OS::get_singleton()->get_video_driver_name(0)));
if (!force_res && use_custom_res && globals->has("display/window/width"))
@@ -742,7 +725,7 @@ Error Main::setup(const char *execpath, int argc, char *argv[], bool p_second_ph
/* Determine Video Driver */
- if (audio_driver == "") { // specified in *.godot
+ if (audio_driver == "") { // specified in godot.cfg
audio_driver = GLOBAL_DEF("audio/driver", OS::get_singleton()->get_audio_driver_name(0));
}