summaryrefslogtreecommitdiff
path: root/main/main.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'main/main.cpp')
-rw-r--r--main/main.cpp16
1 files changed, 16 insertions, 0 deletions
diff --git a/main/main.cpp b/main/main.cpp
index c34d3da618..724f8206d0 100644
--- a/main/main.cpp
+++ b/main/main.cpp
@@ -65,6 +65,7 @@
#include "scene/resources/packed_scene.h"
#include "servers/arvr_server.h"
#include "servers/audio_server.h"
+#include "servers/camera_server.h"
#include "servers/physics_2d_server.h"
#include "servers/physics_server.h"
#include "servers/register_server_types.h"
@@ -97,6 +98,7 @@ static MessageQueue *message_queue = NULL;
// Initialized in setup2()
static AudioServer *audio_server = NULL;
+static CameraServer *camera_server = NULL;
static ARVRServer *arvr_server = NULL;
static PhysicsServer *physics_server = NULL;
static Physics2DServer *physics_2d_server = NULL;
@@ -1318,6 +1320,8 @@ Error Main::setup2(Thread::ID p_main_tid_override) {
register_platform_apis();
register_module_types();
+ camera_server = CameraServer::create();
+
initialize_physics();
register_server_singletons();
@@ -1517,6 +1521,9 @@ bool Main::start() {
ERR_FAIL_COND_V_MSG(script_res.is_null(), false, "Can't load script: " + script);
if (check_only) {
+ if (!script_res->is_valid()) {
+ OS::get_singleton()->set_exit_code(1);
+ }
return false;
}
@@ -2087,6 +2094,11 @@ void Main::cleanup() {
ERR_FAIL_COND(!_start_success);
+ if (script_debugger) {
+ // Flush any remaining messages
+ script_debugger->idle_poll();
+ }
+
ResourceLoader::remove_custom_loaders();
ResourceSaver::remove_custom_savers();
@@ -2134,6 +2146,10 @@ void Main::cleanup() {
memdelete(audio_server);
}
+ if (camera_server) {
+ memdelete(camera_server);
+ }
+
OS::get_singleton()->finalize();
finalize_physics();