summaryrefslogtreecommitdiffstats
path: root/main/main.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'main/main.cpp')
-rw-r--r--main/main.cpp20
1 files changed, 15 insertions, 5 deletions
diff --git a/main/main.cpp b/main/main.cpp
index cd9bd6d1d3..46b5909ce7 100644
--- a/main/main.cpp
+++ b/main/main.cpp
@@ -70,6 +70,7 @@
#include "servers/movie_writer/movie_writer.h"
#include "servers/movie_writer/movie_writer_mjpeg.h"
#include "servers/navigation_server_2d.h"
+#include "servers/navigation_server_2d_dummy.h"
#include "servers/navigation_server_3d.h"
#include "servers/navigation_server_3d_dummy.h"
#include "servers/physics_server_2d.h"
@@ -339,8 +340,14 @@ void initialize_navigation_server() {
navigation_server_3d->init();
// Init 2D Navigation Server
- navigation_server_2d = memnew(NavigationServer2D);
+ navigation_server_2d = NavigationServer2DManager::new_default_server();
+ if (!navigation_server_2d) {
+ WARN_PRINT_ONCE("No NavigationServer2D implementation has been registered! Falling back to a dummy implementation: navigation features will be unavailable.");
+ navigation_server_2d = memnew(NavigationServer2DDummy);
+ }
+
ERR_FAIL_NULL_MSG(navigation_server_2d, "Failed to initialize NavigationServer2D.");
+ navigation_server_2d->init();
}
void finalize_navigation_server() {
@@ -350,6 +357,7 @@ void finalize_navigation_server() {
navigation_server_3d = nullptr;
ERR_FAIL_NULL(navigation_server_2d);
+ navigation_server_2d->finish();
memdelete(navigation_server_2d);
navigation_server_2d = nullptr;
}
@@ -1018,13 +1026,11 @@ Error Main::setup(const char *execpath, int argc, char *argv[], bool p_second_ph
goto error;
}
} else if (I->get() == "-f" || I->get() == "--fullscreen") { // force fullscreen
-
init_fullscreen = true;
+ window_mode = DisplayServer::WINDOW_MODE_FULLSCREEN;
} else if (I->get() == "-m" || I->get() == "--maximized") { // force maximized window
-
init_maximized = true;
window_mode = DisplayServer::WINDOW_MODE_MAXIMIZED;
-
} else if (I->get() == "-w" || I->get() == "--windowed") { // force windowed window
init_windowed = true;
@@ -1605,6 +1611,7 @@ Error Main::setup(const char *execpath, int argc, char *argv[], bool p_second_ph
#ifdef TOOLS_ENABLED
if (editor) {
Engine::get_singleton()->set_editor_hint(true);
+ Engine::get_singleton()->set_extension_reloading_enabled(true);
}
#endif
@@ -1636,7 +1643,7 @@ Error Main::setup(const char *execpath, int argc, char *argv[], bool p_second_ph
if (editor) {
packed_data->set_disabled(true);
main_args.push_back("--editor");
- if (!init_windowed) {
+ if (!init_windowed && !init_fullscreen) {
init_maximized = true;
window_mode = DisplayServer::WINDOW_MODE_MAXIMIZED;
}
@@ -3490,6 +3497,9 @@ bool Main::iteration() {
// process all our active interfaces
XRServer::get_singleton()->_process();
+ NavigationServer2D::get_singleton()->sync();
+ NavigationServer3D::get_singleton()->sync();
+
for (int iters = 0; iters < advance.physics_steps; ++iters) {
if (Input::get_singleton()->is_using_input_buffering() && agile_input_event_flushing) {
Input::get_singleton()->flush_buffered_events();