diff options
author | Rémi Verschelde <rverschelde@gmail.com> | 2020-02-10 16:25:21 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-02-10 16:25:21 +0100 |
commit | 2dd73b1ffad10824a9f66e3ac04f4e2a7d51a85e (patch) | |
tree | 683288f29c949e731bcc34c62212ed7f184ba76a /main/main.cpp | |
parent | 1dd0eb4f339a9f0ae78077aaac3dafeafdf78279 (diff) | |
parent | 383c583a0b46b36ab9b0de57d0f3f7bdecb62fc8 (diff) | |
download | redot-engine-2dd73b1ffad10824a9f66e3ac04f4e2a7d51a85e.tar.gz |
Merge pull request #34776 from AndreaCatania/nav_pr
Integrated the new `NavigationServer` and `NavigationServer2D`
Diffstat (limited to 'main/main.cpp')
-rw-r--r-- | main/main.cpp | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/main/main.cpp b/main/main.cpp index 650a680d87..162d5568d4 100644 --- a/main/main.cpp +++ b/main/main.cpp @@ -66,6 +66,8 @@ #include "servers/arvr_server.h" #include "servers/audio_server.h" #include "servers/camera_server.h" +#include "servers/navigation_2d_server.h" +#include "servers/navigation_server.h" #include "servers/physics_2d_server.h" #include "servers/physics_server.h" #include "servers/register_server_types.h" @@ -103,6 +105,8 @@ static CameraServer *camera_server = NULL; static ARVRServer *arvr_server = NULL; static PhysicsServer *physics_server = NULL; static Physics2DServer *physics_2d_server = NULL; +static NavigationServer *navigation_server = NULL; +static Navigation2DServer *navigation_2d_server = NULL; // We error out if setup2() doesn't turn this true static bool _start_success = false; @@ -197,6 +201,19 @@ void finalize_physics() { memdelete(physics_2d_server); } +void initialize_navigation_server() { + ERR_FAIL_COND(navigation_server != NULL); + navigation_server = NavigationServerManager::new_default_server(); + navigation_2d_server = memnew(Navigation2DServer); +} + +void finalize_navigation_server() { + memdelete(navigation_server); + navigation_server = NULL; + memdelete(navigation_2d_server); + navigation_2d_server = NULL; +} + //#define DEBUG_INIT #ifdef DEBUG_INIT #define MAIN_PRINT(m_txt) print_line(m_txt) @@ -1356,6 +1373,7 @@ Error Main::setup2(Thread::ID p_main_tid_override) { camera_server = CameraServer::create(); initialize_physics(); + initialize_navigation_server(); register_server_singletons(); register_driver_types(); @@ -2011,6 +2029,8 @@ bool Main::iteration() { message_queue->flush(); + NavigationServer::get_singleton_mut()->step(frame_slice * time_scale); + PhysicsServer::get_singleton()->step(frame_slice * time_scale); Physics2DServer::get_singleton()->end_sync(); @@ -2202,6 +2222,7 @@ void Main::cleanup() { OS::get_singleton()->finalize(); finalize_physics(); + finalize_navigation_server(); if (packed_data) memdelete(packed_data); |