summaryrefslogtreecommitdiff
path: root/main
diff options
context:
space:
mode:
authorHein-Pieter van Braam <hp@tmm.cx>2018-02-26 17:16:29 +0100
committerHein-Pieter van Braam <hp@tmm.cx>2018-02-26 18:48:47 +0100
commitb4215c991aa6a43464dcb983e85d4374dea23c69 (patch)
treee913a1b5a28a3e6dd17b53baed4d5ebf9809e1c8 /main
parent7568a455397aeefc1e08600534ec4df279abab70 (diff)
Allow running with a custom resource without a main scene
After 3f8a4cc7193e964f716fde2cd28a946669e2d8d6 trying to run an individual scene on a project without a main scene fails. We move the check until after we've determined whether or not we're trying to run an individual scene. We also stop trying to show the project manager if any game pack is found at all, unless the user explicitly asks for the project manager to be shown.
Diffstat (limited to 'main')
-rw-r--r--main/main.cpp31
1 files changed, 16 insertions, 15 deletions
diff --git a/main/main.cpp b/main/main.cpp
index 5f336e17c5..efb5fa8dd9 100644
--- a/main/main.cpp
+++ b/main/main.cpp
@@ -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;
@@ -769,15 +772,6 @@ Error Main::setup(const char *execpath, int argc, char *argv[], bool p_second_ph
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
}
GLOBAL_DEF("logging/file_logging/enable_file_logging", false);
@@ -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