Merge pull request #17048 from hpvb/fix-17028

Allow running with a custom resource without a main scene
This commit is contained in:
Rémi Verschelde 2018-02-26 19:38:07 +01:00 committed by GitHub
commit 636e48b707
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 16 additions and 15 deletions

View File

@ -349,6 +349,7 @@ Error Main::setup(const char *execpath, int argc, char *argv[], bool p_second_ph
Vector<String> breakpoints;
bool use_custom_res = true;
bool force_res = false;
bool found_project = false;
packed_data = PackedData::get_singleton();
if (!packed_data)
@ -760,7 +761,9 @@ Error Main::setup(const char *execpath, int argc, char *argv[], bool p_second_ph
#endif
if (globals->setup(game_path, main_pack, upwards) != OK) {
if (globals->setup(game_path, main_pack, upwards) == OK) {
found_project = true;
} else {
#ifdef TOOLS_ENABLED
editor = false;
@ -768,15 +771,6 @@ Error Main::setup(const char *execpath, int argc, char *argv[], bool p_second_ph
OS::get_singleton()->print("Error: Could not load game path '%s'.\n", game_path.ascii().get_data());
goto error;
#endif
} else if (String(GLOBAL_DEF("application/run/main_scene", "")) == "") {
#ifdef TOOLS_ENABLED
if (!editor) {
#endif
OS::get_singleton()->print("Error: Can't run project: no main scene defined.\n");
goto error;
#ifdef TOOLS_ENABLED
}
#endif
}
@ -801,14 +795,21 @@ Error Main::setup(const char *execpath, int argc, char *argv[], bool p_second_ph
if (!project_manager) {
// Determine if the project manager should be requested
project_manager =
main_args.size() == 0 &&
!ProjectSettings::get_singleton()->has_setting("application/run/main_loop_type") &&
(!ProjectSettings::get_singleton()->has_setting("application/run/main_scene") ||
String(ProjectSettings::get_singleton()->get("application/run/main_scene")) == "");
project_manager = main_args.size() == 0 && !found_project;
}
#endif
if (main_args.size() == 0 && String(GLOBAL_DEF("application/run/main_scene", "")) == "") {
#ifdef TOOLS_ENABLED
if (!editor && !project_manager) {
#endif
OS::get_singleton()->print("Error: Can't run project: no main scene defined.\n");
goto error;
#ifdef TOOLS_ENABLED
}
#endif
}
if (editor || project_manager) {
use_custom_res = false;
input_map->load_default(); //keys for editor