瀏覽代碼

Merge pull request #59911 from bruvzg/cppcheck_fixes

Rémi Verschelde 3 年之前
父節點
當前提交
ac591d9904
共有 100 個文件被更改,包括 528 次插入509 次删除
  1. 3 3
      core/debugger/engine_profiler.cpp
  2. 2 2
      core/debugger/local_debugger.cpp
  3. 6 5
      core/debugger/remote_debugger.cpp
  4. 2 2
      core/debugger/remote_debugger_peer.cpp
  5. 7 7
      core/debugger/remote_debugger_peer.h
  6. 1 1
      core/error/error_macros.cpp
  7. 1 1
      core/error/error_macros.h
  8. 8 8
      core/extension/native_extension.cpp
  9. 4 2
      core/input/input.cpp
  10. 3 3
      core/input/input.h
  11. 6 6
      core/input/input_event.cpp
  12. 1 1
      core/io/file_access_network.cpp
  13. 2 2
      core/io/file_access_pack.h
  14. 2 2
      core/io/file_access_zip.h
  15. 1 1
      core/io/ip.cpp
  16. 1 1
      core/io/packed_data_container.cpp
  17. 1 1
      core/io/translation_loader_po.cpp
  18. 1 1
      core/math/basis.cpp
  19. 1 1
      core/math/face3.cpp
  20. 1 1
      core/math/face3.h
  21. 13 12
      core/math/math_funcs.h
  22. 1 1
      core/object/ref_counted.h
  23. 1 1
      core/object/script_language.cpp
  24. 16 16
      core/object/script_language.h
  25. 2 2
      core/os/pool_allocator.cpp
  26. 1 1
      core/os/pool_allocator.h
  27. 1 1
      core/string/print_string.cpp
  28. 1 1
      core/string/print_string.h
  29. 2 2
      core/string/translation.cpp
  30. 1 1
      core/string/translation.h
  31. 4 4
      core/templates/command_queue_mt.h
  32. 1 1
      core/templates/thread_work_pool.h
  33. 8 8
      core/variant/callable_bind.cpp
  34. 16 16
      core/variant/callable_bind.h
  35. 6 6
      core/variant/variant_parser.h
  36. 36 36
      core/variant/variant_utility.cpp
  37. 1 1
      drivers/alsa/audio_driver_alsa.cpp
  38. 1 1
      drivers/alsamidi/midi_driver_alsamidi.cpp
  39. 4 4
      drivers/coreaudio/audio_driver_coreaudio.cpp
  40. 0 1
      drivers/gles3/rasterizer_canvas_gles3.cpp
  41. 3 5
      drivers/gles3/shader_gles3.cpp
  42. 3 3
      drivers/gles3/storage/material_storage.cpp
  43. 6 6
      drivers/pulseaudio/audio_driver_pulseaudio.cpp
  44. 8 8
      drivers/vulkan/rendering_device_vulkan.cpp
  45. 1 1
      drivers/wasapi/audio_driver_wasapi.cpp
  46. 1 1
      drivers/xaudio2/audio_driver_xaudio2.cpp
  47. 1 2
      editor/animation_bezier_editor.cpp
  48. 3 0
      editor/editor_asset_installer.cpp
  49. 1 1
      editor/editor_data.cpp
  50. 2 2
      editor/editor_log.cpp
  51. 3 3
      editor/editor_node.cpp
  52. 1 1
      editor/editor_node.h
  53. 3 2
      editor/editor_run.cpp
  54. 1 1
      editor/editor_settings.cpp
  55. 1 1
      editor/editor_settings.h
  56. 17 2
      editor/export_template_manager.cpp
  57. 2 2
      editor/fileserver/editor_file_server.cpp
  58. 2 2
      editor/find_in_files.cpp
  59. 1 1
      editor/plugins/animation_state_machine_editor.cpp
  60. 10 13
      editor/plugins/canvas_item_editor_plugin.cpp
  61. 2 2
      editor/plugins/material_editor_plugin.cpp
  62. 2 2
      editor/plugins/node_3d_editor_plugin.cpp
  63. 1 1
      editor/plugins/tiles/tiles_editor_plugin.cpp
  64. 2 4
      editor/plugins/visual_shader_editor_plugin.cpp
  65. 2 2
      editor/pot_generator.cpp
  66. 10 1
      editor/project_manager.cpp
  67. 1 1
      editor/project_settings_editor.cpp
  68. 1 1
      editor/scene_tree_dock.cpp
  69. 0 2
      main/main.cpp
  70. 1 1
      modules/basis_universal/register_types.cpp
  71. 1 1
      modules/gdscript/gdscript_parser.h
  72. 5 5
      modules/gdscript/gdscript_utility_functions.cpp
  73. 4 4
      modules/mbedtls/packet_peer_mbed_dtls.cpp
  74. 4 4
      modules/mbedtls/stream_peer_mbedtls.cpp
  75. 26 26
      modules/navigation/godot_navigation_server.h
  76. 1 1
      modules/noise/noise_texture.cpp
  77. 2 2
      modules/text_server_adv/script_iterator.cpp
  78. 22 26
      modules/text_server_adv/text_server_adv.cpp
  79. 13 17
      modules/text_server_fb/text_server_fb.cpp
  80. 1 1
      modules/theora/video_stream_theora.cpp
  81. 2 2
      modules/visual_script/visual_script_builtin_funcs.cpp
  82. 2 2
      modules/visual_script/visual_script_expression.cpp
  83. 14 14
      modules/visual_script/visual_script_flow_control.cpp
  84. 7 7
      modules/visual_script/visual_script_func_nodes.cpp
  85. 52 52
      modules/visual_script/visual_script_nodes.cpp
  86. 4 4
      modules/visual_script/visual_script_yield_nodes.cpp
  87. 9 9
      modules/webrtc/webrtc_peer_connection_js.h
  88. 9 9
      modules/websocket/emws_client.h
  89. 13 13
      modules/websocket/emws_peer.h
  90. 11 11
      modules/websocket/emws_server.h
  91. 8 8
      modules/websocket/remote_debugger_peer_websocket.h
  92. 9 9
      modules/websocket/wsl_client.h
  93. 5 5
      modules/websocket/wsl_peer.cpp
  94. 14 14
      modules/websocket/wsl_peer.h
  95. 2 2
      modules/websocket/wsl_server.cpp
  96. 11 11
      modules/websocket/wsl_server.h
  97. 2 2
      platform/android/audio_driver_opensl.cpp
  98. 2 2
      platform/android/display_server_android.cpp
  99. 10 4
      platform/android/export/export_plugin.cpp
  100. 1 1
      platform/android/export/gradle_export_util.cpp

+ 3 - 3
core/debugger/engine_profiler.cpp

@@ -55,13 +55,13 @@ Error EngineProfiler::bind(const String &p_name) {
 	EngineDebugger::Profiler prof(
 			this,
 			[](void *p_user, bool p_enable, const Array &p_opts) {
-				((EngineProfiler *)p_user)->toggle(p_enable, p_opts);
+				static_cast<EngineProfiler *>(p_user)->toggle(p_enable, p_opts);
 			},
 			[](void *p_user, const Array &p_data) {
-				((EngineProfiler *)p_user)->add(p_data);
+				static_cast<EngineProfiler *>(p_user)->add(p_data);
 			},
 			[](void *p_user, double p_frame_time, double p_idle_time, double p_physics_time, double p_physics_frame_time) {
-				((EngineProfiler *)p_user)->tick(p_frame_time, p_idle_time, p_physics_time, p_physics_frame_time);
+				static_cast<EngineProfiler *>(p_user)->tick(p_frame_time, p_idle_time, p_physics_time, p_physics_frame_time);
 			});
 	registration = p_name;
 	EngineDebugger::register_profiler(p_name, prof);

+ 2 - 2
core/debugger/local_debugger.cpp

@@ -369,11 +369,11 @@ LocalDebugger::LocalDebugger() {
 	Profiler scr_prof(
 			scripts_profiler,
 			[](void *p_user, bool p_enable, const Array &p_opts) {
-				((ScriptsProfiler *)p_user)->toggle(p_enable, p_opts);
+				static_cast<ScriptsProfiler *>(p_user)->toggle(p_enable, p_opts);
 			},
 			nullptr,
 			[](void *p_user, double p_frame_time, double p_idle_time, double p_physics_time, double p_physics_frame_time) {
-				((ScriptsProfiler *)p_user)->tick(p_frame_time, p_idle_time, p_physics_time, p_physics_frame_time);
+				static_cast<ScriptsProfiler *>(p_user)->tick(p_frame_time, p_idle_time, p_physics_time, p_physics_frame_time);
 			});
 	register_profiler("scripts", scr_prof);
 }

+ 6 - 5
core/debugger/remote_debugger.cpp

@@ -161,8 +161,9 @@ public:
 			if (!monitor_value.is_num()) {
 				ERR_PRINT("Value of custom monitor '" + String(custom_monitor_names[i]) + "' is not a number");
 				arr[i + max] = Variant();
+			} else {
+				arr[i + max] = monitor_value;
 			}
-			arr[i + max] = monitor_value;
 		}
 
 		EngineDebugger::get_singleton()->send_message("performance:profile_frame", arr);
@@ -189,7 +190,7 @@ void RemoteDebugger::_err_handler(void *p_this, const char *p_func, const char *
 		return; //ignore script errors, those go through debugger
 	}
 
-	RemoteDebugger *rd = (RemoteDebugger *)p_this;
+	RemoteDebugger *rd = static_cast<RemoteDebugger *>(p_this);
 	if (rd->flushing && Thread::get_caller_id() == rd->flush_thread) { // Can't handle recursive errors during flush.
 		return;
 	}
@@ -208,7 +209,7 @@ void RemoteDebugger::_err_handler(void *p_this, const char *p_func, const char *
 }
 
 void RemoteDebugger::_print_handler(void *p_this, const String &p_string, bool p_error) {
-	RemoteDebugger *rd = (RemoteDebugger *)p_this;
+	RemoteDebugger *rd = static_cast<RemoteDebugger *>(p_this);
 
 	if (rd->flushing && Thread::get_caller_id() == rd->flush_thread) { // Can't handle recursive prints during flush.
 		return;
@@ -656,12 +657,12 @@ RemoteDebugger::RemoteDebugger(Ref<RemoteDebuggerPeer> p_peer) {
 	// Core and profiler captures.
 	Capture core_cap(this,
 			[](void *p_user, const String &p_cmd, const Array &p_data, bool &r_captured) {
-				return ((RemoteDebugger *)p_user)->_core_capture(p_cmd, p_data, r_captured);
+				return static_cast<RemoteDebugger *>(p_user)->_core_capture(p_cmd, p_data, r_captured);
 			});
 	register_message_capture("core", core_cap);
 	Capture profiler_cap(this,
 			[](void *p_user, const String &p_cmd, const Array &p_data, bool &r_captured) {
-				return ((RemoteDebugger *)p_user)->_profiler_capture(p_cmd, p_data, r_captured);
+				return static_cast<RemoteDebugger *>(p_user)->_profiler_capture(p_cmd, p_data, r_captured);
 			});
 	register_message_capture("profiler", profiler_cap);
 

+ 2 - 2
core/debugger/remote_debugger_peer.cpp

@@ -162,7 +162,7 @@ Error RemoteDebuggerPeerTCP::connect_to_host(const String &p_host, uint16_t p_po
 	int port = p_port;
 
 	const int tries = 6;
-	int waits[tries] = { 1, 10, 100, 1000, 1000, 1000 };
+	const int waits[tries] = { 1, 10, 100, 1000, 1000, 1000 };
 
 	tcp_client->connect_to_host(ip, port);
 
@@ -192,7 +192,7 @@ Error RemoteDebuggerPeerTCP::connect_to_host(const String &p_host, uint16_t p_po
 void RemoteDebuggerPeerTCP::_thread_func(void *p_ud) {
 	// Update in time for 144hz monitors
 	const uint64_t min_tick = 6900;
-	RemoteDebuggerPeerTCP *peer = (RemoteDebuggerPeerTCP *)p_ud;
+	RemoteDebuggerPeerTCP *peer = static_cast<RemoteDebuggerPeerTCP *>(p_ud);
 	while (peer->running && peer->is_peer_connected()) {
 		uint64_t ticks_usec = OS::get_singleton()->get_ticks_usec();
 		peer->_poll();

+ 7 - 7
core/debugger/remote_debugger_peer.h

@@ -81,13 +81,13 @@ public:
 
 	Error connect_to_host(const String &p_host, uint16_t p_port);
 
-	void poll();
-	bool is_peer_connected();
-	bool has_message();
-	Array get_message();
-	Error put_message(const Array &p_arr);
-	int get_max_message_size() const;
-	void close();
+	void poll() override;
+	bool is_peer_connected() override;
+	bool has_message() override;
+	Array get_message() override;
+	Error put_message(const Array &p_arr) override;
+	int get_max_message_size() const override;
+	void close() override;
 
 	RemoteDebuggerPeerTCP(Ref<StreamPeerTCP> p_stream = Ref<StreamPeerTCP>());
 	~RemoteDebuggerPeerTCP();

+ 1 - 1
core/error/error_macros.cpp

@@ -50,7 +50,7 @@ void add_error_handler(ErrorHandlerList *p_handler) {
 	_global_unlock();
 }
 
-void remove_error_handler(ErrorHandlerList *p_handler) {
+void remove_error_handler(const ErrorHandlerList *p_handler) {
 	_global_lock();
 
 	ErrorHandlerList *prev = nullptr;

+ 1 - 1
core/error/error_macros.h

@@ -58,7 +58,7 @@ struct ErrorHandlerList {
 };
 
 void add_error_handler(ErrorHandlerList *p_handler);
-void remove_error_handler(ErrorHandlerList *p_handler);
+void remove_error_handler(const ErrorHandlerList *p_handler);
 
 // Functions used by the error macros.
 void _err_print_error(const char *p_function, const char *p_file, int p_line, const char *p_error, bool p_editor_notify = false, ErrorHandlerType p_type = ERR_HANDLER_ERROR);

+ 8 - 8
core/extension/native_extension.cpp

@@ -112,7 +112,7 @@ public:
 static GDNativeInterface gdnative_interface;
 
 void NativeExtension::_register_extension_class(const GDNativeExtensionClassLibraryPtr p_library, const char *p_class_name, const char *p_parent_class_name, const GDNativeExtensionClassCreationInfo *p_extension_funcs) {
-	NativeExtension *self = (NativeExtension *)p_library;
+	NativeExtension *self = static_cast<NativeExtension *>(p_library);
 
 	StringName class_name = p_class_name;
 	ERR_FAIL_COND_MSG(!String(class_name).is_valid_identifier(), "Attempt to register extension class '" + class_name + "', which is not a valid class identifier.");
@@ -163,7 +163,7 @@ void NativeExtension::_register_extension_class(const GDNativeExtensionClassLibr
 	ClassDB::register_extension_class(&extension->native_extension);
 }
 void NativeExtension::_register_extension_class_method(const GDNativeExtensionClassLibraryPtr p_library, const char *p_class_name, const GDNativeExtensionClassMethodInfo *p_method_info) {
-	NativeExtension *self = (NativeExtension *)p_library;
+	NativeExtension *self = static_cast<NativeExtension *>(p_library);
 
 	StringName class_name = p_class_name;
 	StringName method_name = p_method_info->name;
@@ -177,7 +177,7 @@ void NativeExtension::_register_extension_class_method(const GDNativeExtensionCl
 	ClassDB::bind_method_custom(class_name, method);
 }
 void NativeExtension::_register_extension_class_integer_constant(const GDNativeExtensionClassLibraryPtr p_library, const char *p_class_name, const char *p_enum_name, const char *p_constant_name, GDNativeInt p_constant_value) {
-	NativeExtension *self = (NativeExtension *)p_library;
+	NativeExtension *self = static_cast<NativeExtension *>(p_library);
 
 	StringName class_name = p_class_name;
 	ERR_FAIL_COND_MSG(!self->extension_classes.has(class_name), "Attempt to register extension constant '" + String(p_constant_name) + "' for unexisting class '" + class_name + "'.");
@@ -188,7 +188,7 @@ void NativeExtension::_register_extension_class_integer_constant(const GDNativeE
 }
 
 void NativeExtension::_register_extension_class_property(const GDNativeExtensionClassLibraryPtr p_library, const char *p_class_name, const GDNativePropertyInfo *p_info, const char *p_setter, const char *p_getter) {
-	NativeExtension *self = (NativeExtension *)p_library;
+	NativeExtension *self = static_cast<NativeExtension *>(p_library);
 
 	StringName class_name = p_class_name;
 	ERR_FAIL_COND_MSG(!self->extension_classes.has(class_name), "Attempt to register extension class property '" + String(p_info->name) + "' for unexisting class '" + class_name + "'.");
@@ -206,7 +206,7 @@ void NativeExtension::_register_extension_class_property(const GDNativeExtension
 }
 
 void NativeExtension::_register_extension_class_property_group(const GDNativeExtensionClassLibraryPtr p_library, const char *p_class_name, const char *p_group_name, const char *p_prefix) {
-	NativeExtension *self = (NativeExtension *)p_library;
+	NativeExtension *self = static_cast<NativeExtension *>(p_library);
 
 	StringName class_name = p_class_name;
 	ERR_FAIL_COND_MSG(!self->extension_classes.has(class_name), "Attempt to register extension class property group '" + String(p_group_name) + "' for unexisting class '" + class_name + "'.");
@@ -215,7 +215,7 @@ void NativeExtension::_register_extension_class_property_group(const GDNativeExt
 }
 
 void NativeExtension::_register_extension_class_property_subgroup(const GDNativeExtensionClassLibraryPtr p_library, const char *p_class_name, const char *p_subgroup_name, const char *p_prefix) {
-	NativeExtension *self = (NativeExtension *)p_library;
+	NativeExtension *self = static_cast<NativeExtension *>(p_library);
 
 	StringName class_name = p_class_name;
 	ERR_FAIL_COND_MSG(!self->extension_classes.has(class_name), "Attempt to register extension class property subgroup '" + String(p_subgroup_name) + "' for unexisting class '" + class_name + "'.");
@@ -224,7 +224,7 @@ void NativeExtension::_register_extension_class_property_subgroup(const GDNative
 }
 
 void NativeExtension::_register_extension_class_signal(const GDNativeExtensionClassLibraryPtr p_library, const char *p_class_name, const char *p_signal_name, const GDNativePropertyInfo *p_argument_info, GDNativeInt p_argument_count) {
-	NativeExtension *self = (NativeExtension *)p_library;
+	NativeExtension *self = static_cast<NativeExtension *>(p_library);
 
 	StringName class_name = p_class_name;
 	ERR_FAIL_COND_MSG(!self->extension_classes.has(class_name), "Attempt to register extension class signal '" + String(p_signal_name) + "' for unexisting class '" + class_name + "'.");
@@ -245,7 +245,7 @@ void NativeExtension::_register_extension_class_signal(const GDNativeExtensionCl
 }
 
 void NativeExtension::_unregister_extension_class(const GDNativeExtensionClassLibraryPtr p_library, const char *p_class_name) {
-	NativeExtension *self = (NativeExtension *)p_library;
+	NativeExtension *self = static_cast<NativeExtension *>(p_library);
 
 	StringName class_name = p_class_name;
 	ERR_FAIL_COND_MSG(!self->extension_classes.has(class_name), "Attempt to unregister unexisting extension class '" + class_name + "'.");

+ 4 - 2
core/input/input.cpp

@@ -772,6 +772,8 @@ void Input::action_press(const StringName &p_action, float p_strength) {
 	action.process_frame = Engine::get_singleton()->get_process_frames();
 	action.pressed = true;
 	action.strength = p_strength;
+	action.raw_strength = p_strength;
+	action.exact = true;
 
 	action_state[p_action] = action;
 }
@@ -783,6 +785,8 @@ void Input::action_release(const StringName &p_action) {
 	action.process_frame = Engine::get_singleton()->get_process_frames();
 	action.pressed = false;
 	action.strength = 0.f;
+	action.raw_strength = 0.f;
+	action.exact = true;
 
 	action_state[p_action] = action;
 }
@@ -1070,7 +1074,6 @@ void Input::_axis_event(int p_device, JoyAxis p_axis, float p_value) {
 
 Input::JoyEvent Input::_get_mapped_button_event(const JoyDeviceMapping &mapping, JoyButton p_button) {
 	JoyEvent event;
-	event.type = TYPE_MAX;
 
 	for (int i = 0; i < mapping.bindings.size(); i++) {
 		const JoyBinding binding = mapping.bindings[i];
@@ -1106,7 +1109,6 @@ Input::JoyEvent Input::_get_mapped_button_event(const JoyDeviceMapping &mapping,
 
 Input::JoyEvent Input::_get_mapped_axis_event(const JoyDeviceMapping &mapping, JoyAxis p_axis, float p_value) {
 	JoyEvent event;
-	event.type = TYPE_MAX;
 
 	for (int i = 0; i < mapping.bindings.size(); i++) {
 		const JoyBinding binding = mapping.bindings[i];

+ 3 - 3
core/input/input.h

@@ -157,9 +157,9 @@ private:
 	};
 
 	struct JoyEvent {
-		int type;
-		int index; // Can be either JoyAxis or JoyButton.
-		float value;
+		int type = TYPE_MAX;
+		int index = -1; // Can be either JoyAxis or JoyButton.
+		float value = 0.f;
 	};
 
 	struct JoyBinding {

+ 6 - 6
core/input/input_event.cpp

@@ -47,30 +47,30 @@ int InputEvent::get_device() const {
 }
 
 bool InputEvent::is_action(const StringName &p_action, bool p_exact_match) const {
-	return InputMap::get_singleton()->event_is_action(Ref<InputEvent>((InputEvent *)this), p_action, p_exact_match);
+	return InputMap::get_singleton()->event_is_action(Ref<InputEvent>(const_cast<InputEvent *>(this)), p_action, p_exact_match);
 }
 
 bool InputEvent::is_action_pressed(const StringName &p_action, bool p_allow_echo, bool p_exact_match) const {
 	bool pressed;
-	bool valid = InputMap::get_singleton()->event_get_action_status(Ref<InputEvent>((InputEvent *)this), p_action, p_exact_match, &pressed, nullptr, nullptr);
+	bool valid = InputMap::get_singleton()->event_get_action_status(Ref<InputEvent>(const_cast<InputEvent *>(this)), p_action, p_exact_match, &pressed, nullptr, nullptr);
 	return valid && pressed && (p_allow_echo || !is_echo());
 }
 
 bool InputEvent::is_action_released(const StringName &p_action, bool p_exact_match) const {
 	bool pressed;
-	bool valid = InputMap::get_singleton()->event_get_action_status(Ref<InputEvent>((InputEvent *)this), p_action, p_exact_match, &pressed, nullptr, nullptr);
+	bool valid = InputMap::get_singleton()->event_get_action_status(Ref<InputEvent>(const_cast<InputEvent *>(this)), p_action, p_exact_match, &pressed, nullptr, nullptr);
 	return valid && !pressed;
 }
 
 float InputEvent::get_action_strength(const StringName &p_action, bool p_exact_match) const {
 	float strength;
-	bool valid = InputMap::get_singleton()->event_get_action_status(Ref<InputEvent>((InputEvent *)this), p_action, p_exact_match, nullptr, &strength, nullptr);
+	bool valid = InputMap::get_singleton()->event_get_action_status(Ref<InputEvent>(const_cast<InputEvent *>(this)), p_action, p_exact_match, nullptr, &strength, nullptr);
 	return valid ? strength : 0.0f;
 }
 
 float InputEvent::get_action_raw_strength(const StringName &p_action, bool p_exact_match) const {
 	float raw_strength;
-	bool valid = InputMap::get_singleton()->event_get_action_status(Ref<InputEvent>((InputEvent *)this), p_action, p_exact_match, nullptr, nullptr, &raw_strength);
+	bool valid = InputMap::get_singleton()->event_get_action_status(Ref<InputEvent>(const_cast<InputEvent *>(this)), p_action, p_exact_match, nullptr, nullptr, &raw_strength);
 	return valid ? raw_strength : 0.0f;
 }
 
@@ -83,7 +83,7 @@ bool InputEvent::is_echo() const {
 }
 
 Ref<InputEvent> InputEvent::xformed_by(const Transform2D &p_xform, const Vector2 &p_local_ofs) const {
-	return Ref<InputEvent>((InputEvent *)this);
+	return Ref<InputEvent>(const_cast<InputEvent *>(this));
 }
 
 bool InputEvent::action_match(const Ref<InputEvent> &p_event, bool p_exact_match, float p_deadzone, bool *r_pressed, float *r_strength, float *r_raw_strength) const {

+ 1 - 1
core/io/file_access_network.cpp

@@ -165,7 +165,7 @@ void FileAccessNetworkClient::_thread_func() {
 }
 
 void FileAccessNetworkClient::_thread_func(void *s) {
-	FileAccessNetworkClient *self = (FileAccessNetworkClient *)s;
+	FileAccessNetworkClient *self = static_cast<FileAccessNetworkClient *>(s);
 
 	self->_thread_func();
 }

+ 2 - 2
core/io/file_access_pack.h

@@ -139,8 +139,8 @@ public:
 
 class PackedSourcePCK : public PackSource {
 public:
-	virtual bool try_open_pack(const String &p_path, bool p_replace_files, uint64_t p_offset);
-	virtual FileAccess *get_file(const String &p_path, PackedData::PackedFile *p_file);
+	virtual bool try_open_pack(const String &p_path, bool p_replace_files, uint64_t p_offset) override;
+	virtual FileAccess *get_file(const String &p_path, PackedData::PackedFile *p_file) override;
 };
 
 class FileAccessPack : public FileAccess {

+ 2 - 2
core/io/file_access_zip.h

@@ -67,8 +67,8 @@ public:
 
 	bool file_exists(String p_name) const;
 
-	virtual bool try_open_pack(const String &p_path, bool p_replace_files, uint64_t p_offset);
-	FileAccess *get_file(const String &p_path, PackedData::PackedFile *p_file);
+	virtual bool try_open_pack(const String &p_path, bool p_replace_files, uint64_t p_offset) override;
+	FileAccess *get_file(const String &p_path, PackedData::PackedFile *p_file) override;
 
 	static ZipArchive *get_singleton();
 

+ 1 - 1
core/io/ip.cpp

@@ -109,7 +109,7 @@ struct _IP_ResolverPrivate {
 	}
 
 	static void _thread_function(void *self) {
-		_IP_ResolverPrivate *ipr = (_IP_ResolverPrivate *)self;
+		_IP_ResolverPrivate *ipr = static_cast<_IP_ResolverPrivate *>(self);
 
 		while (!ipr->thread_abort) {
 			ipr->sem.wait();

+ 1 - 1
core/io/packed_data_container.cpp

@@ -105,7 +105,7 @@ Variant PackedDataContainer::_get_at_ofs(uint32_t p_ofs, const uint8_t *p_buf, b
 
 	if (type == TYPE_ARRAY || type == TYPE_DICT) {
 		Ref<PackedDataContainerRef> pdcr = memnew(PackedDataContainerRef);
-		Ref<PackedDataContainer> pdc = Ref<PackedDataContainer>((PackedDataContainer *)this);
+		Ref<PackedDataContainer> pdc = Ref<PackedDataContainer>(const_cast<PackedDataContainer *>(this));
 
 		pdcr->from = pdc;
 		pdcr->offset = p_ofs;

+ 1 - 1
core/io/translation_loader_po.cpp

@@ -98,7 +98,6 @@ RES TranslationLoaderPO::load_translation(FileAccess *f, Error *r_error) {
 			{
 				Vector<uint8_t> data;
 				f->seek(trans_table_offset + i * 8);
-				uint32_t str_start = 0;
 				uint32_t str_len = f->get_32();
 				uint32_t str_offset = f->get_32();
 
@@ -116,6 +115,7 @@ RES TranslationLoaderPO::load_translation(FileAccess *f, Error *r_error) {
 						translation->set_plural_rule(config.substr(p_start, p_end - p_start));
 					}
 				} else {
+					uint32_t str_start = 0;
 					Vector<String> plural_msg;
 					for (uint32_t j = 0; j < str_len + 1; j++) {
 						if (data[j] == 0x00) {

+ 1 - 1
core/math/basis.cpp

@@ -1002,7 +1002,7 @@ void Basis::rotate_sh(real_t *p_values) {
 	const static real_t s_scale_dst2 = s_c3 * s_c_scale_inv;
 	const static real_t s_scale_dst4 = s_c5 * s_c_scale_inv;
 
-	real_t src[9] = { p_values[0], p_values[1], p_values[2], p_values[3], p_values[4], p_values[5], p_values[6], p_values[7], p_values[8] };
+	const real_t src[9] = { p_values[0], p_values[1], p_values[2], p_values[3], p_values[4], p_values[5], p_values[6], p_values[7], p_values[8] };
 
 	real_t m00 = elements[0][0];
 	real_t m01 = elements[0][1];

+ 1 - 1
core/math/face3.cpp

@@ -208,7 +208,7 @@ bool Face3::intersects_aabb(const AABB &p_aabb) const {
 
 	/** TEST ALL EDGES **/
 
-	Vector3 edge_norms[3] = {
+	const Vector3 edge_norms[3] = {
 		vertex[0] - vertex[1],
 		vertex[1] - vertex[2],
 		vertex[2] - vertex[0],

+ 1 - 1
core/math/face3.h

@@ -133,7 +133,7 @@ bool Face3::intersects_aabb2(const AABB &p_aabb) const {
 
 #undef TEST_AXIS
 
-	Vector3 edge_norms[3] = {
+	const Vector3 edge_norms[3] = {
 		vertex[0] - vertex[1],
 		vertex[1] - vertex[2],
 		vertex[2] - vertex[0],

+ 13 - 12
core/math/math_funcs.h

@@ -473,16 +473,16 @@ public:
 		uint32_t x = ci.ui;
 		uint32_t sign = (unsigned short)(x >> 31);
 		uint32_t mantissa;
-		uint32_t exp;
+		uint32_t exponent;
 		uint16_t hf;
 
 		// get mantissa
 		mantissa = x & ((1 << 23) - 1);
 		// get exponent bits
-		exp = x & (0xFF << 23);
-		if (exp >= 0x47800000) {
+		exponent = x & (0xFF << 23);
+		if (exponent >= 0x47800000) {
 			// check if the original single precision float number is a NaN
-			if (mantissa && (exp == (0xFF << 23))) {
+			if (mantissa && (exponent == (0xFF << 23))) {
 				// we have a single precision NaN
 				mantissa = (1 << 23) - 1;
 			} else {
@@ -493,17 +493,18 @@ public:
 					(uint16_t)(mantissa >> 13);
 		}
 		// check if exponent is <= -15
-		else if (exp <= 0x38000000) {
-			/*// store a denorm half-float value or zero
-		exp = (0x38000000 - exp) >> 23;
-		mantissa >>= (14 + exp);
-
-		hf = (((uint16_t)sign) << 15) | (uint16_t)(mantissa);
-		*/
+		else if (exponent <= 0x38000000) {
+			/*
+			// store a denorm half-float value or zero
+			exponent = (0x38000000 - exponent) >> 23;
+			mantissa >>= (14 + exponent);
+
+			hf = (((uint16_t)sign) << 15) | (uint16_t)(mantissa);
+			*/
 			hf = 0; //denormals do not work for 3D, convert to zero
 		} else {
 			hf = (((uint16_t)sign) << 15) |
-					(uint16_t)((exp - 0x38000000) >> 13) |
+					(uint16_t)((exponent - 0x38000000) >> 13) |
 					(uint16_t)(mantissa >> 13);
 		}
 

+ 1 - 1
core/object/ref_counted.h

@@ -261,7 +261,7 @@ struct PtrToArg<Ref<T>> {
 	typedef Ref<T> EncodeT;
 
 	_FORCE_INLINE_ static void encode(Ref<T> p_val, const void *p_ptr) {
-		*(Ref<RefCounted> *)p_ptr = p_val;
+		*(const_cast<Ref<RefCounted> *>(reinterpret_cast<const Ref<RefCounted> *>(p_ptr))) = p_val;
 	}
 };
 

+ 1 - 1
core/object/script_language.cpp

@@ -144,7 +144,7 @@ void ScriptServer::register_language(ScriptLanguage *p_language) {
 	_languages[_language_count++] = p_language;
 }
 
-void ScriptServer::unregister_language(ScriptLanguage *p_language) {
+void ScriptServer::unregister_language(const ScriptLanguage *p_language) {
 	for (int i = 0; i < _language_count; i++) {
 		if (_languages[i] == p_language) {
 			_language_count--;

+ 16 - 16
core/object/script_language.h

@@ -68,7 +68,7 @@ public:
 	_FORCE_INLINE_ static int get_language_count() { return _language_count; }
 	static ScriptLanguage *get_language(int p_idx);
 	static void register_language(ScriptLanguage *p_language);
-	static void unregister_language(ScriptLanguage *p_language);
+	static void unregister_language(const ScriptLanguage *p_language);
 
 	static void set_reload_scripts_on_save(bool p_enable);
 	static bool is_reload_scripts_on_save_enabled();
@@ -438,34 +438,34 @@ class PlaceHolderScriptInstance : public ScriptInstance {
 	Ref<Script> script;
 
 public:
-	virtual bool set(const StringName &p_name, const Variant &p_value);
-	virtual bool get(const StringName &p_name, Variant &r_ret) const;
-	virtual void get_property_list(List<PropertyInfo> *p_properties) const;
-	virtual Variant::Type get_property_type(const StringName &p_name, bool *r_is_valid = nullptr) const;
+	virtual bool set(const StringName &p_name, const Variant &p_value) override;
+	virtual bool get(const StringName &p_name, Variant &r_ret) const override;
+	virtual void get_property_list(List<PropertyInfo> *p_properties) const override;
+	virtual Variant::Type get_property_type(const StringName &p_name, bool *r_is_valid = nullptr) const override;
 
-	virtual void get_method_list(List<MethodInfo> *p_list) const;
-	virtual bool has_method(const StringName &p_method) const;
+	virtual void get_method_list(List<MethodInfo> *p_list) const override;
+	virtual bool has_method(const StringName &p_method) const override;
 
-	virtual Variant callp(const StringName &p_method, const Variant **p_args, int p_argcount, Callable::CallError &r_error) {
+	virtual Variant callp(const StringName &p_method, const Variant **p_args, int p_argcount, Callable::CallError &r_error) override {
 		r_error.error = Callable::CallError::CALL_ERROR_INVALID_METHOD;
 		return Variant();
 	}
-	virtual void notification(int p_notification) {}
+	virtual void notification(int p_notification) override {}
 
-	virtual Ref<Script> get_script() const { return script; }
+	virtual Ref<Script> get_script() const override { return script; }
 
-	virtual ScriptLanguage *get_language() { return language; }
+	virtual ScriptLanguage *get_language() override { return language; }
 
-	Object *get_owner() { return owner; }
+	Object *get_owner() override { return owner; }
 
 	void update(const List<PropertyInfo> &p_properties, const Map<StringName, Variant> &p_values); //likely changed in editor
 
-	virtual bool is_placeholder() const { return true; }
+	virtual bool is_placeholder() const override { return true; }
 
-	virtual void property_set_fallback(const StringName &p_name, const Variant &p_value, bool *r_valid = nullptr);
-	virtual Variant property_get_fallback(const StringName &p_name, bool *r_valid = nullptr);
+	virtual void property_set_fallback(const StringName &p_name, const Variant &p_value, bool *r_valid = nullptr) override;
+	virtual Variant property_get_fallback(const StringName &p_name, bool *r_valid = nullptr) override;
 
-	virtual const Vector<Multiplayer::RPCConfig> get_rpc_methods() const { return Vector<Multiplayer::RPCConfig>(); }
+	virtual const Vector<Multiplayer::RPCConfig> get_rpc_methods() const override { return Vector<Multiplayer::RPCConfig>(); }
 
 	PlaceHolderScriptInstance(ScriptLanguage *p_language, Ref<Script> p_script, Object *p_owner);
 	~PlaceHolderScriptInstance();

+ 2 - 2
core/os/pool_allocator.cpp

@@ -149,7 +149,7 @@ void PoolAllocator::compact_up(int p_from) {
 	}
 }
 
-bool PoolAllocator::find_entry_index(EntryIndicesPos *p_map_pos, Entry *p_entry) {
+bool PoolAllocator::find_entry_index(EntryIndicesPos *p_map_pos, const Entry *p_entry) {
 	EntryArrayPos entry_pos = entry_max;
 
 	for (int i = 0; i < entry_count; i++) {
@@ -424,7 +424,7 @@ bool PoolAllocator::is_locked(ID p_mem) const {
 	}
 
 	mt_lock();
-	const Entry *e = ((PoolAllocator *)(this))->get_entry(p_mem);
+	const Entry *e = const_cast<PoolAllocator *>(this)->get_entry(p_mem);
 	if (!e) {
 		mt_unlock();
 		ERR_PRINT("!e");

+ 1 - 1
core/os/pool_allocator.h

@@ -108,7 +108,7 @@ private:
 	void compact_up(int p_from = 0);
 	bool get_free_entry(EntryArrayPos *p_pos);
 	bool find_hole(EntryArrayPos *p_pos, int p_for_size);
-	bool find_entry_index(EntryIndicesPos *p_map_pos, Entry *p_entry);
+	bool find_entry_index(EntryIndicesPos *p_map_pos, const Entry *p_entry);
 	Entry *get_entry(ID p_mem);
 	const Entry *get_entry(ID p_mem) const;
 

+ 1 - 1
core/string/print_string.cpp

@@ -45,7 +45,7 @@ void add_print_handler(PrintHandlerList *p_handler) {
 	_global_unlock();
 }
 
-void remove_print_handler(PrintHandlerList *p_handler) {
+void remove_print_handler(const PrintHandlerList *p_handler) {
 	_global_lock();
 
 	PrintHandlerList *prev = nullptr;

+ 1 - 1
core/string/print_string.h

@@ -54,7 +54,7 @@ String stringify_variants(Variant p_var, Args... p_args) {
 }
 
 void add_print_handler(PrintHandlerList *p_handler);
-void remove_print_handler(PrintHandlerList *p_handler);
+void remove_print_handler(const PrintHandlerList *p_handler);
 
 extern bool _print_line_enabled;
 extern bool _print_error_enabled;

+ 2 - 2
core/string/translation.cpp

@@ -891,7 +891,7 @@ String TranslationServer::wrap_with_fakebidi_characters(String &p_message) const
 	return res;
 }
 
-String TranslationServer::add_padding(String &p_message, int p_length) const {
+String TranslationServer::add_padding(const String &p_message, int p_length) const {
 	String res;
 	String prefix = pseudolocalization_prefix;
 	String suffix;
@@ -921,7 +921,7 @@ const char32_t *TranslationServer::get_accented_version(char32_t p_character) co
 }
 
 bool TranslationServer::is_placeholder(String &p_message, int p_index) const {
-	return p_message[p_index] == '%' && p_index < p_message.size() - 1 &&
+	return p_index < p_message.size() - 1 && p_message[p_index] == '%' &&
 			(p_message[p_index + 1] == 's' || p_message[p_index + 1] == 'c' || p_message[p_index + 1] == 'd' ||
 					p_message[p_index + 1] == 'o' || p_message[p_index + 1] == 'x' || p_message[p_index + 1] == 'X' || p_message[p_index + 1] == 'f');
 }

+ 1 - 1
core/string/translation.h

@@ -96,7 +96,7 @@ class TranslationServer : public Object {
 	String double_vowels(String &p_message) const;
 	String replace_with_accented_string(String &p_message) const;
 	String wrap_with_fakebidi_characters(String &p_message) const;
-	String add_padding(String &p_message, int p_length) const;
+	String add_padding(const String &p_message, int p_length) const;
 	const char32_t *get_accented_version(char32_t p_character) const;
 	bool is_placeholder(String &p_message, int p_index) const;
 

+ 4 - 4
core/templates/command_queue_mt.h

@@ -215,7 +215,7 @@
 		T *instance;                                                   \
 		M method;                                                      \
 		SEMIC_SEP_LIST(PARAM_DECL, N);                                 \
-		virtual void call() {                                          \
+		virtual void call() override {                                 \
 			(instance->*method)(COMMA_SEP_LIST(ARG, N));               \
 		}                                                              \
 	};
@@ -227,7 +227,7 @@
 		T *instance;                                                            \
 		M method;                                                               \
 		SEMIC_SEP_LIST(PARAM_DECL, N);                                          \
-		virtual void call() {                                                   \
+		virtual void call() override {                                          \
 			*ret = (instance->*method)(COMMA_SEP_LIST(ARG, N));                 \
 		}                                                                       \
 	};
@@ -238,7 +238,7 @@
 		T *instance;                                                   \
 		M method;                                                      \
 		SEMIC_SEP_LIST(PARAM_DECL, N);                                 \
-		virtual void call() {                                          \
+		virtual void call() override {                                 \
 			(instance->*method)(COMMA_SEP_LIST(ARG, N));               \
 		}                                                              \
 	};
@@ -313,7 +313,7 @@ class CommandQueueMT {
 	struct SyncCommand : public CommandBase {
 		SyncSemaphore *sync_sem = nullptr;
 
-		virtual void post() {
+		virtual void post() override {
 			sync_sem->sem.post();
 		}
 	};

+ 1 - 1
core/templates/thread_work_pool.h

@@ -52,7 +52,7 @@ class ThreadWorkPool {
 		C *instance;
 		M method;
 		U userdata;
-		virtual void work() {
+		virtual void work() override {
 			while (true) {
 				uint32_t work_index = index->fetch_add(1, std::memory_order_relaxed);
 				if (work_index >= max_elements) {

+ 8 - 8
core/variant/callable_bind.cpp

@@ -40,8 +40,8 @@ String CallableCustomBind::get_as_text() const {
 }
 
 bool CallableCustomBind::_equal_func(const CallableCustom *p_a, const CallableCustom *p_b) {
-	const CallableCustomBind *a = (const CallableCustomBind *)p_a;
-	const CallableCustomBind *b = (const CallableCustomBind *)p_b;
+	const CallableCustomBind *a = static_cast<const CallableCustomBind *>(p_a);
+	const CallableCustomBind *b = static_cast<const CallableCustomBind *>(p_b);
 
 	if (!(a->callable != b->callable)) {
 		return false;
@@ -55,8 +55,8 @@ bool CallableCustomBind::_equal_func(const CallableCustom *p_a, const CallableCu
 }
 
 bool CallableCustomBind::_less_func(const CallableCustom *p_a, const CallableCustom *p_b) {
-	const CallableCustomBind *a = (const CallableCustomBind *)p_a;
-	const CallableCustomBind *b = (const CallableCustomBind *)p_b;
+	const CallableCustomBind *a = static_cast<const CallableCustomBind *>(p_a);
+	const CallableCustomBind *b = static_cast<const CallableCustomBind *>(p_b);
 
 	if (a->callable < b->callable) {
 		return true;
@@ -117,8 +117,8 @@ String CallableCustomUnbind::get_as_text() const {
 }
 
 bool CallableCustomUnbind::_equal_func(const CallableCustom *p_a, const CallableCustom *p_b) {
-	const CallableCustomUnbind *a = (const CallableCustomUnbind *)p_a;
-	const CallableCustomUnbind *b = (const CallableCustomUnbind *)p_b;
+	const CallableCustomUnbind *a = static_cast<const CallableCustomUnbind *>(p_a);
+	const CallableCustomUnbind *b = static_cast<const CallableCustomUnbind *>(p_b);
 
 	if (!(a->callable != b->callable)) {
 		return false;
@@ -132,8 +132,8 @@ bool CallableCustomUnbind::_equal_func(const CallableCustom *p_a, const Callable
 }
 
 bool CallableCustomUnbind::_less_func(const CallableCustom *p_a, const CallableCustom *p_b) {
-	const CallableCustomUnbind *a = (const CallableCustomUnbind *)p_a;
-	const CallableCustomUnbind *b = (const CallableCustomUnbind *)p_b;
+	const CallableCustomUnbind *a = static_cast<const CallableCustomUnbind *>(p_a);
+	const CallableCustomUnbind *b = static_cast<const CallableCustomUnbind *>(p_b);
 
 	if (a->callable < b->callable) {
 		return true;

+ 16 - 16
core/variant/callable_bind.h

@@ -43,14 +43,14 @@ class CallableCustomBind : public CallableCustom {
 
 public:
 	//for every type that inherits, these must always be the same for this type
-	virtual uint32_t hash() const;
-	virtual String get_as_text() const;
-	virtual CompareEqualFunc get_compare_equal_func() const;
-	virtual CompareLessFunc get_compare_less_func() const;
-	virtual StringName get_method() const;
-	virtual ObjectID get_object() const; //must always be able to provide an object
-	virtual void call(const Variant **p_arguments, int p_argcount, Variant &r_return_value, Callable::CallError &r_call_error) const;
-	virtual const Callable *get_base_comparator() const;
+	virtual uint32_t hash() const override;
+	virtual String get_as_text() const override;
+	virtual CompareEqualFunc get_compare_equal_func() const override;
+	virtual CompareLessFunc get_compare_less_func() const override;
+	virtual StringName get_method() const override;
+	virtual ObjectID get_object() const override; //must always be able to provide an object
+	virtual void call(const Variant **p_arguments, int p_argcount, Variant &r_return_value, Callable::CallError &r_call_error) const override;
+	virtual const Callable *get_base_comparator() const override;
 
 	Callable get_callable() { return callable; }
 	Vector<Variant> get_binds() { return binds; }
@@ -68,14 +68,14 @@ class CallableCustomUnbind : public CallableCustom {
 
 public:
 	//for every type that inherits, these must always be the same for this type
-	virtual uint32_t hash() const;
-	virtual String get_as_text() const;
-	virtual CompareEqualFunc get_compare_equal_func() const;
-	virtual CompareLessFunc get_compare_less_func() const;
-	virtual StringName get_method() const;
-	virtual ObjectID get_object() const; //must always be able to provide an object
-	virtual void call(const Variant **p_arguments, int p_argcount, Variant &r_return_value, Callable::CallError &r_call_error) const;
-	virtual const Callable *get_base_comparator() const;
+	virtual uint32_t hash() const override;
+	virtual String get_as_text() const override;
+	virtual CompareEqualFunc get_compare_equal_func() const override;
+	virtual CompareLessFunc get_compare_less_func() const override;
+	virtual StringName get_method() const override;
+	virtual ObjectID get_object() const override; //must always be able to provide an object
+	virtual void call(const Variant **p_arguments, int p_argcount, Variant &r_return_value, Callable::CallError &r_call_error) const override;
+	virtual const Callable *get_base_comparator() const override;
 
 	Callable get_callable() { return callable; }
 	int get_unbinds() { return argcount; }

+ 6 - 6
core/variant/variant_parser.h

@@ -51,9 +51,9 @@ public:
 	struct StreamFile : public Stream {
 		FileAccess *f = nullptr;
 
-		virtual char32_t get_char();
-		virtual bool is_utf8() const;
-		virtual bool is_eof() const;
+		virtual char32_t get_char() override;
+		virtual bool is_utf8() const override;
+		virtual bool is_eof() const override;
 
 		StreamFile() {}
 	};
@@ -62,9 +62,9 @@ public:
 		String s;
 		int pos = 0;
 
-		virtual char32_t get_char();
-		virtual bool is_utf8() const;
-		virtual bool is_eof() const;
+		virtual char32_t get_char() override;
+		virtual bool is_utf8() const override;
+		virtual bool is_eof() const override;
 
 		StreamString() {}
 	};

+ 36 - 36
core/variant/variant_utility.cpp

@@ -470,20 +470,20 @@ struct VariantUtilityFunctions {
 			r_error.argument = 1;
 			return String();
 		}
-		String str;
+		String s;
 		for (int i = 0; i < p_arg_count; i++) {
 			String os = p_args[i]->operator String();
 
 			if (i == 0) {
-				str = os;
+				s = os;
 			} else {
-				str += os;
+				s += os;
 			}
 		}
 
 		r_error.error = Callable::CallError::CALL_OK;
 
-		return str;
+		return s;
 	}
 
 	static inline String error_string(Error error) {
@@ -495,98 +495,98 @@ struct VariantUtilityFunctions {
 	}
 
 	static inline void print(const Variant **p_args, int p_arg_count, Callable::CallError &r_error) {
-		String str;
+		String s;
 		for (int i = 0; i < p_arg_count; i++) {
 			String os = p_args[i]->operator String();
 
 			if (i == 0) {
-				str = os;
+				s = os;
 			} else {
-				str += os;
+				s += os;
 			}
 		}
 
-		print_line(str);
+		print_line(s);
 		r_error.error = Callable::CallError::CALL_OK;
 	}
 
 	static inline void print_verbose(const Variant **p_args, int p_arg_count, Callable::CallError &r_error) {
 		if (OS::get_singleton()->is_stdout_verbose()) {
-			String str;
+			String s;
 			for (int i = 0; i < p_arg_count; i++) {
 				String os = p_args[i]->operator String();
 
 				if (i == 0) {
-					str = os;
+					s = os;
 				} else {
-					str += os;
+					s += os;
 				}
 			}
 
 			// No need to use `print_verbose()` as this call already only happens
 			// when verbose mode is enabled. This avoids performing string argument concatenation
 			// when not needed.
-			print_line(str);
+			print_line(s);
 		}
 
 		r_error.error = Callable::CallError::CALL_OK;
 	}
 
 	static inline void printerr(const Variant **p_args, int p_arg_count, Callable::CallError &r_error) {
-		String str;
+		String s;
 		for (int i = 0; i < p_arg_count; i++) {
 			String os = p_args[i]->operator String();
 
 			if (i == 0) {
-				str = os;
+				s = os;
 			} else {
-				str += os;
+				s += os;
 			}
 		}
 
-		print_error(str);
+		print_error(s);
 		r_error.error = Callable::CallError::CALL_OK;
 	}
 
 	static inline void printt(const Variant **p_args, int p_arg_count, Callable::CallError &r_error) {
-		String str;
+		String s;
 		for (int i = 0; i < p_arg_count; i++) {
 			if (i) {
-				str += "\t";
+				s += "\t";
 			}
-			str += p_args[i]->operator String();
+			s += p_args[i]->operator String();
 		}
 
-		print_line(str);
+		print_line(s);
 		r_error.error = Callable::CallError::CALL_OK;
 	}
 
 	static inline void prints(const Variant **p_args, int p_arg_count, Callable::CallError &r_error) {
-		String str;
+		String s;
 		for (int i = 0; i < p_arg_count; i++) {
 			if (i) {
-				str += " ";
+				s += " ";
 			}
-			str += p_args[i]->operator String();
+			s += p_args[i]->operator String();
 		}
 
-		print_line(str);
+		print_line(s);
 		r_error.error = Callable::CallError::CALL_OK;
 	}
 
 	static inline void printraw(const Variant **p_args, int p_arg_count, Callable::CallError &r_error) {
-		String str;
+		String s;
 		for (int i = 0; i < p_arg_count; i++) {
 			String os = p_args[i]->operator String();
 
 			if (i == 0) {
-				str = os;
+				s = os;
 			} else {
-				str += os;
+				s += os;
 			}
 		}
 
-		OS::get_singleton()->print("%s", str.utf8().get_data());
+		OS::get_singleton()->print("%s", s.utf8().get_data());
 		r_error.error = Callable::CallError::CALL_OK;
 	}
 
@@ -595,18 +595,18 @@ struct VariantUtilityFunctions {
 			r_error.error = Callable::CallError::CALL_ERROR_TOO_FEW_ARGUMENTS;
 			r_error.argument = 1;
 		}
-		String str;
+		String s;
 		for (int i = 0; i < p_arg_count; i++) {
 			String os = p_args[i]->operator String();
 
 			if (i == 0) {
-				str = os;
+				s = os;
 			} else {
-				str += os;
+				s += os;
 			}
 		}
 
-		ERR_PRINT(str);
+		ERR_PRINT(s);
 		r_error.error = Callable::CallError::CALL_OK;
 	}
 
@@ -615,18 +615,18 @@ struct VariantUtilityFunctions {
 			r_error.error = Callable::CallError::CALL_ERROR_TOO_FEW_ARGUMENTS;
 			r_error.argument = 1;
 		}
-		String str;
+		String s;
 		for (int i = 0; i < p_arg_count; i++) {
 			String os = p_args[i]->operator String();
 
 			if (i == 0) {
-				str = os;
+				s = os;
 			} else {
-				str += os;
+				s += os;
 			}
 		}
 
-		WARN_PRINT(str);
+		WARN_PRINT(s);
 		r_error.error = Callable::CallError::CALL_OK;
 	}
 

+ 1 - 1
drivers/alsa/audio_driver_alsa.cpp

@@ -181,7 +181,7 @@ Error AudioDriverALSA::init() {
 }
 
 void AudioDriverALSA::thread_func(void *p_udata) {
-	AudioDriverALSA *ad = (AudioDriverALSA *)p_udata;
+	AudioDriverALSA *ad = static_cast<AudioDriverALSA *>(p_udata);
 
 	while (!ad->exit_thread) {
 		ad->lock();

+ 1 - 1
drivers/alsamidi/midi_driver_alsamidi.cpp

@@ -73,7 +73,7 @@ static int get_message_size(uint8_t message) {
 }
 
 void MIDIDriverALSAMidi::thread_func(void *p_udata) {
-	MIDIDriverALSAMidi *md = (MIDIDriverALSAMidi *)p_udata;
+	MIDIDriverALSAMidi *md = static_cast<MIDIDriverALSAMidi *>(p_udata);
 	uint64_t timestamp = 0;
 	uint8_t buffer[256];
 	int expected_size = 255;

+ 4 - 4
drivers/coreaudio/audio_driver_coreaudio.cpp

@@ -42,7 +42,7 @@
 OSStatus AudioDriverCoreAudio::input_device_address_cb(AudioObjectID inObjectID,
 		UInt32 inNumberAddresses, const AudioObjectPropertyAddress *inAddresses,
 		void *inClientData) {
-	AudioDriverCoreAudio *driver = (AudioDriverCoreAudio *)inClientData;
+	AudioDriverCoreAudio *driver = static_cast<AudioDriverCoreAudio *>(inClientData);
 
 	// If our selected device is the Default call set_device to update the
 	// kAudioOutputUnitProperty_CurrentDevice property
@@ -56,7 +56,7 @@ OSStatus AudioDriverCoreAudio::input_device_address_cb(AudioObjectID inObjectID,
 OSStatus AudioDriverCoreAudio::output_device_address_cb(AudioObjectID inObjectID,
 		UInt32 inNumberAddresses, const AudioObjectPropertyAddress *inAddresses,
 		void *inClientData) {
-	AudioDriverCoreAudio *driver = (AudioDriverCoreAudio *)inClientData;
+	AudioDriverCoreAudio *driver = static_cast<AudioDriverCoreAudio *>(inClientData);
 
 	// If our selected device is the Default call set_device to update the
 	// kAudioOutputUnitProperty_CurrentDevice property
@@ -168,7 +168,7 @@ OSStatus AudioDriverCoreAudio::output_callback(void *inRefCon,
 		const AudioTimeStamp *inTimeStamp,
 		UInt32 inBusNumber, UInt32 inNumberFrames,
 		AudioBufferList *ioData) {
-	AudioDriverCoreAudio *ad = (AudioDriverCoreAudio *)inRefCon;
+	AudioDriverCoreAudio *ad = static_cast<AudioDriverCoreAudio *>(inRefCon);
 
 	if (!ad->active || !ad->try_lock()) {
 		for (unsigned int i = 0; i < ioData->mNumberBuffers; i++) {
@@ -209,7 +209,7 @@ OSStatus AudioDriverCoreAudio::input_callback(void *inRefCon,
 		const AudioTimeStamp *inTimeStamp,
 		UInt32 inBusNumber, UInt32 inNumberFrames,
 		AudioBufferList *ioData) {
-	AudioDriverCoreAudio *ad = (AudioDriverCoreAudio *)inRefCon;
+	AudioDriverCoreAudio *ad = static_cast<AudioDriverCoreAudio *>(inRefCon);
 	if (!ad->active) {
 		return 0;
 	}

+ 0 - 1
drivers/gles3/rasterizer_canvas_gles3.cpp

@@ -363,7 +363,6 @@ void RasterizerCanvasGLES3::_render_item(RID p_render_target, const Item *p_item
 			state.instance_data_array[r_index].dst_rect[i] = 0.0;
 			state.instance_data_array[r_index].lights[i] = uint32_t(0);
 		}
-		state.instance_data_array[r_index].flags = base_flags;
 		state.instance_data_array[r_index].color_texture_pixel_size[0] = 0.0;
 		state.instance_data_array[r_index].color_texture_pixel_size[1] = 0.0;
 

+ 3 - 5
drivers/gles3/shader_gles3.cpp

@@ -554,11 +554,9 @@ void ShaderGLES3::_clear_version(Version *p_version) {
 
 	for (int i = 0; i < variant_count; i++) {
 		for (OAHashMap<uint64_t, Version::Specialization>::Iterator it = p_version->variants[i].iter(); it.valid; it = p_version->variants[i].next_iter(it)) {
-			if (it.valid) {
-				glDeleteShader(it.value->vert_id);
-				glDeleteShader(it.value->frag_id);
-				glDeleteProgram(it.value->id);
-			}
+			glDeleteShader(it.value->vert_id);
+			glDeleteShader(it.value->frag_id);
+			glDeleteProgram(it.value->id);
 		}
 	}
 

+ 3 - 3
drivers/gles3/storage/material_storage.cpp

@@ -576,10 +576,10 @@ void MaterialStorage::_update_material(Material *p_material) {
 	}
 
 	{
-		bool can_cast_shadow = false;
-		bool is_animated = false;
-
 		if (p_material->shader && p_material->shader->mode == RS::SHADER_SPATIAL) {
+			bool can_cast_shadow = false;
+			bool is_animated = false;
+
 			if (p_material->shader->spatial.blend_mode == Shader::Spatial::BLEND_MODE_MIX &&
 					(!p_material->shader->spatial.uses_alpha || p_material->shader->spatial.depth_draw_mode == Shader::Spatial::DEPTH_DRAW_ALPHA_PREPASS)) {
 				can_cast_shadow = true;

+ 6 - 6
drivers/pulseaudio/audio_driver_pulseaudio.cpp

@@ -41,7 +41,7 @@
 #endif
 
 void AudioDriverPulseAudio::pa_state_cb(pa_context *c, void *userdata) {
-	AudioDriverPulseAudio *ad = (AudioDriverPulseAudio *)userdata;
+	AudioDriverPulseAudio *ad = static_cast<AudioDriverPulseAudio *>(userdata);
 
 	switch (pa_context_get_state(c)) {
 		case PA_CONTEXT_TERMINATED:
@@ -65,7 +65,7 @@ void AudioDriverPulseAudio::pa_state_cb(pa_context *c, void *userdata) {
 }
 
 void AudioDriverPulseAudio::pa_sink_info_cb(pa_context *c, const pa_sink_info *l, int eol, void *userdata) {
-	AudioDriverPulseAudio *ad = (AudioDriverPulseAudio *)userdata;
+	AudioDriverPulseAudio *ad = static_cast<AudioDriverPulseAudio *>(userdata);
 
 	// If eol is set to a positive number, you're at the end of the list
 	if (eol > 0) {
@@ -84,7 +84,7 @@ void AudioDriverPulseAudio::pa_sink_info_cb(pa_context *c, const pa_sink_info *l
 }
 
 void AudioDriverPulseAudio::pa_source_info_cb(pa_context *c, const pa_source_info *l, int eol, void *userdata) {
-	AudioDriverPulseAudio *ad = (AudioDriverPulseAudio *)userdata;
+	AudioDriverPulseAudio *ad = static_cast<AudioDriverPulseAudio *>(userdata);
 
 	// If eol is set to a positive number, you're at the end of the list
 	if (eol > 0) {
@@ -104,7 +104,7 @@ void AudioDriverPulseAudio::pa_source_info_cb(pa_context *c, const pa_source_inf
 
 void AudioDriverPulseAudio::pa_server_info_cb(pa_context *c, const pa_server_info *i, void *userdata) {
 	ERR_FAIL_COND_MSG(!i, "PulseAudio server info is null.");
-	AudioDriverPulseAudio *ad = (AudioDriverPulseAudio *)userdata;
+	AudioDriverPulseAudio *ad = static_cast<AudioDriverPulseAudio *>(userdata);
 
 	ad->capture_default_device = i->default_source_name;
 	ad->default_device = i->default_sink_name;
@@ -588,7 +588,7 @@ AudioDriver::SpeakerMode AudioDriverPulseAudio::get_speaker_mode() const {
 }
 
 void AudioDriverPulseAudio::pa_sinklist_cb(pa_context *c, const pa_sink_info *l, int eol, void *userdata) {
-	AudioDriverPulseAudio *ad = (AudioDriverPulseAudio *)userdata;
+	AudioDriverPulseAudio *ad = static_cast<AudioDriverPulseAudio *>(userdata);
 
 	// If eol is set to a positive number, you're at the end of the list
 	if (eol > 0) {
@@ -771,7 +771,7 @@ void AudioDriverPulseAudio::capture_set_device(const String &p_name) {
 }
 
 void AudioDriverPulseAudio::pa_sourcelist_cb(pa_context *c, const pa_source_info *l, int eol, void *userdata) {
-	AudioDriverPulseAudio *ad = (AudioDriverPulseAudio *)userdata;
+	AudioDriverPulseAudio *ad = static_cast<AudioDriverPulseAudio *>(userdata);
 
 	// If eol is set to a positive number, you're at the end of the list
 	if (eol > 0) {

+ 8 - 8
drivers/vulkan/rendering_device_vulkan.cpp

@@ -1484,7 +1484,7 @@ Error RenderingDeviceVulkan::_staging_buffer_allocate(uint32_t p_amount, uint32_
 			//this is an old block, which was already processed, let's reuse
 			staging_buffer_blocks.write[staging_buffer_current].frame_used = frames_drawn;
 			staging_buffer_blocks.write[staging_buffer_current].fill_amount = 0;
-		} else if (staging_buffer_blocks[staging_buffer_current].frame_used > frames_drawn - frame_count) {
+		} else {
 			//this block may still be in use, let's not touch it unless we have to, so.. can we create a new one?
 			if ((uint64_t)staging_buffer_blocks.size() * staging_buffer_block_size < staging_buffer_max_size) {
 				//we are still allowed to create a new block, so let's do that and insert it for current pos
@@ -4965,8 +4965,8 @@ Vector<uint8_t> RenderingDeviceVulkan::shader_compile_binary_from_spirv(const Ve
 
 	Vector<uint8_t> ret;
 	ret.resize(total_size);
-	uint32_t offset = 0;
 	{
+		uint32_t offset = 0;
 		uint8_t *binptr = ret.ptrw();
 		binptr[0] = 'G';
 		binptr[1] = 'V';
@@ -5039,7 +5039,7 @@ RID RenderingDeviceVulkan::shader_create_from_bytecode(const Vector<uint8_t> &p_
 
 	uint32_t bin_data_size = decode_uint32(binptr + 8);
 
-	const RenderingDeviceVulkanShaderBinaryData &binary_data = *(const RenderingDeviceVulkanShaderBinaryData *)(binptr + 12);
+	const RenderingDeviceVulkanShaderBinaryData &binary_data = *(reinterpret_cast<const RenderingDeviceVulkanShaderBinaryData *>(binptr + 12));
 
 	Shader::PushConstant push_constant;
 	push_constant.push_constant_size = binary_data.push_constant_size;
@@ -5051,7 +5051,7 @@ RID RenderingDeviceVulkan::shader_create_from_bytecode(const Vector<uint8_t> &p_
 
 	bool is_compute = binary_data.is_compute;
 
-	uint32_t compute_local_size[3] = { binary_data.compute_local_size[0], binary_data.compute_local_size[1], binary_data.compute_local_size[2] };
+	const uint32_t compute_local_size[3] = { binary_data.compute_local_size[0], binary_data.compute_local_size[1], binary_data.compute_local_size[2] };
 
 	read_offset += sizeof(uint32_t) * 3 + bin_data_size;
 
@@ -5075,7 +5075,7 @@ RID RenderingDeviceVulkan::shader_create_from_bytecode(const Vector<uint8_t> &p_
 		ERR_FAIL_COND_V(read_offset + sizeof(uint32_t) >= binsize, RID());
 		uint32_t set_count = decode_uint32(binptr + read_offset);
 		read_offset += sizeof(uint32_t);
-		const RenderingDeviceVulkanShaderBinaryDataBinding *set_ptr = (const RenderingDeviceVulkanShaderBinaryDataBinding *)(binptr + read_offset);
+		const RenderingDeviceVulkanShaderBinaryDataBinding *set_ptr = reinterpret_cast<const RenderingDeviceVulkanShaderBinaryDataBinding *>(binptr + read_offset);
 		uint32_t set_size = set_count * sizeof(RenderingDeviceVulkanShaderBinaryDataBinding);
 		ERR_FAIL_COND_V(read_offset + set_size >= binsize, RID());
 
@@ -5147,7 +5147,7 @@ RID RenderingDeviceVulkan::shader_create_from_bytecode(const Vector<uint8_t> &p_
 	Vector<Shader::SpecializationConstant> specialization_constants;
 
 	for (uint32_t i = 0; i < binary_data.specialization_constant_count; i++) {
-		const RenderingDeviceVulkanShaderBinarySpecializationConstant &src_sc = *(const RenderingDeviceVulkanShaderBinarySpecializationConstant *)(binptr + read_offset);
+		const RenderingDeviceVulkanShaderBinarySpecializationConstant &src_sc = *(reinterpret_cast<const RenderingDeviceVulkanShaderBinarySpecializationConstant *>(binptr + read_offset));
 		Shader::SpecializationConstant sc;
 		sc.constant.int_value = src_sc.int_value;
 		sc.constant.type = PipelineSpecializationConstantType(src_sc.type);
@@ -6334,7 +6334,7 @@ RID RenderingDeviceVulkan::render_pipeline_create(RID p_shader, FramebufferForma
 	rasterization_state_create_info.depthClampEnable = p_rasterization_state.enable_depth_clamp;
 	rasterization_state_create_info.rasterizerDiscardEnable = p_rasterization_state.discard_primitives;
 	rasterization_state_create_info.polygonMode = (p_rasterization_state.wireframe ? VK_POLYGON_MODE_LINE : VK_POLYGON_MODE_FILL);
-	static VkCullModeFlags cull_mode[3] = {
+	static const VkCullModeFlags cull_mode[3] = {
 		VK_CULL_MODE_NONE,
 		VK_CULL_MODE_FRONT_BIT,
 		VK_CULL_MODE_BACK_BIT
@@ -6361,7 +6361,7 @@ RID RenderingDeviceVulkan::render_pipeline_create(RID p_shader, FramebufferForma
 	Vector<VkSampleMask> sample_mask;
 	if (p_multisample_state.sample_mask.size()) {
 		//use sample mask
-		int rasterization_sample_mask_expected_size[TEXTURE_SAMPLES_MAX] = {
+		const int rasterization_sample_mask_expected_size[TEXTURE_SAMPLES_MAX] = {
 			1, 2, 4, 8, 16, 32, 64
 		};
 		ERR_FAIL_COND_V(rasterization_sample_mask_expected_size[p_multisample_state.sample_count] != p_multisample_state.sample_mask.size(), RID());

+ 1 - 1
drivers/wasapi/audio_driver_wasapi.cpp

@@ -680,7 +680,7 @@ void AudioDriverWASAPI::write_sample(WORD format_tag, int bits_per_sample, BYTE
 }
 
 void AudioDriverWASAPI::thread_func(void *p_udata) {
-	AudioDriverWASAPI *ad = (AudioDriverWASAPI *)p_udata;
+	AudioDriverWASAPI *ad = static_cast<AudioDriverWASAPI *>(p_udata);
 	uint32_t avail_frames = 0;
 	uint32_t write_ofs = 0;
 

+ 1 - 1
drivers/xaudio2/audio_driver_xaudio2.cpp

@@ -84,7 +84,7 @@ Error AudioDriverXAudio2::init() {
 }
 
 void AudioDriverXAudio2::thread_func(void *p_udata) {
-	AudioDriverXAudio2 *ad = (AudioDriverXAudio2 *)p_udata;
+	AudioDriverXAudio2 *ad = static_cast<AudioDriverXAudio2 *>(p_udata);
 
 	while (!ad->exit_thread) {
 		if (!ad->active) {

+ 1 - 2
editor/animation_bezier_editor.cpp

@@ -146,11 +146,10 @@ void AnimationBezierTrackEdit::_draw_track(int p_track, const Color &p_color) {
 				int iterations = 10;
 				float low = 0;
 				float high = 1;
-				float middle;
 
 				//narrow high and low as much as possible
 				for (int k = 0; k < iterations; k++) {
-					middle = (low + high) / 2;
+					float middle = (low + high) / 2;
 
 					Vector2 interp = _bezier_interp(middle, start, out_handle, in_handle, end);
 

+ 3 - 0
editor/editor_asset_installer.cpp

@@ -259,6 +259,9 @@ void EditorAssetInstaller::ok_pressed() {
 		unz_file_info info;
 		char fname[16384];
 		ret = unzGetCurrentFileInfo(pkg, &info, fname, 16384, nullptr, 0, nullptr, 0);
+		if (ret != UNZ_OK) {
+			break;
+		}
 
 		String name = String::utf8(fname);
 

+ 1 - 1
editor/editor_data.cpp

@@ -824,7 +824,7 @@ void EditorData::save_edited_scene_state(EditorSelection *p_selection, EditorSel
 Dictionary EditorData::restore_edited_scene_state(EditorSelection *p_selection, EditorSelectionHistory *p_history) {
 	ERR_FAIL_INDEX_V(current_edited_scene, edited_scene.size(), Dictionary());
 
-	EditedScene &es = edited_scene.write[current_edited_scene];
+	const EditedScene &es = edited_scene.write[current_edited_scene];
 
 	p_history->current_elem_idx = es.history_current;
 	p_history->history = es.history_stored;

+ 2 - 2
editor/editor_log.cpp

@@ -38,7 +38,7 @@
 #include "scene/resources/font.h"
 
 void EditorLog::_error_handler(void *p_self, const char *p_func, const char *p_file, int p_line, const char *p_error, const char *p_errorexp, bool p_editor_notify, ErrorHandlerType p_type) {
-	EditorLog *self = (EditorLog *)p_self;
+	EditorLog *self = static_cast<EditorLog *>(p_self);
 	if (self->current != Thread::get_caller_id()) {
 		return;
 	}
@@ -216,7 +216,7 @@ void EditorLog::set_tool_button(Button *p_tool_button) {
 }
 
 void EditorLog::_undo_redo_cbk(void *p_self, const String &p_name) {
-	EditorLog *self = (EditorLog *)p_self;
+	EditorLog *self = static_cast<EditorLog *>(p_self);
 	self->add_message(p_name, EditorLog::MSG_TYPE_EDITOR);
 }
 

+ 3 - 3
editor/editor_node.cpp

@@ -3854,7 +3854,7 @@ void EditorNode::add_io_error(const String &p_error) {
 }
 
 void EditorNode::_load_error_notify(void *p_ud, const String &p_text) {
-	EditorNode *en = (EditorNode *)p_ud;
+	EditorNode *en = static_cast<EditorNode *>(p_ud);
 	en->load_errors->add_image(en->gui_base->get_theme_icon(SNAME("Error"), SNAME("EditorIcons")));
 	en->load_errors->add_text(p_text + "\n");
 	en->load_error_dialog->popup_centered_ratio(0.5);
@@ -4261,7 +4261,7 @@ void EditorNode::_copy_warning(const String &p_str) {
 
 void EditorNode::_dock_floating_close_request(Control *p_control) {
 	// Through the MarginContainer to the Window.
-	Window *window = (Window *)p_control->get_parent()->get_parent();
+	Window *window = static_cast<Window *>(p_control->get_parent()->get_parent());
 	int window_slot = window->get_meta("dock_slot");
 
 	p_control->get_parent()->remove_child(p_control);
@@ -5773,7 +5773,7 @@ static Node *_resource_get_edited_scene() {
 }
 
 void EditorNode::_print_handler(void *p_this, const String &p_string, bool p_error) {
-	EditorNode *en = (EditorNode *)p_this;
+	EditorNode *en = static_cast<EditorNode *>(p_this);
 	en->log->add_message(p_string, p_error ? EditorLog::MSG_TYPE_ERROR : EditorLog::MSG_TYPE_STD);
 }
 

+ 1 - 1
editor/editor_node.h

@@ -485,7 +485,7 @@ private:
 	static Vector<EditorNodeInitCallback> _init_callbacks;
 
 	static void _dependency_error_report(void *ud, const String &p_path, const String &p_dep, const String &p_type) {
-		EditorNode *en = (EditorNode *)ud;
+		EditorNode *en = static_cast<EditorNode *>(ud);
 		if (!en->dependency_errors.has(p_path)) {
 			en->dependency_errors[p_path] = Set<String>();
 		}

+ 3 - 2
editor/editor_run.cpp

@@ -110,9 +110,10 @@ Error EditorRun::run(const String &p_scene) {
 	}
 
 	int window_placement = EditorSettings::get_singleton()->get("run/window_placement/rect");
-	bool hidpi_proj = ProjectSettings::get_singleton()->get("display/window/dpi/allow_hidpi");
-	int display_scale = 1;
 	if (DisplayServer::get_singleton()->has_feature(DisplayServer::FEATURE_HIDPI)) {
+		bool hidpi_proj = ProjectSettings::get_singleton()->get("display/window/dpi/allow_hidpi");
+		int display_scale = 1;
+
 		if (OS::get_singleton()->is_hidpi_allowed()) {
 			if (hidpi_proj) {
 				display_scale = 1; // Both editor and project runs in hiDPI mode, do not scale.

+ 1 - 1
editor/editor_settings.cpp

@@ -1389,7 +1389,7 @@ float EditorSettings::get_auto_display_scale() const {
 
 // Shortcuts
 
-void EditorSettings::add_shortcut(const String &p_name, Ref<Shortcut> &p_shortcut) {
+void EditorSettings::add_shortcut(const String &p_name, const Ref<Shortcut> &p_shortcut) {
 	shortcuts[p_name] = p_shortcut;
 }
 

+ 1 - 1
editor/editor_settings.h

@@ -179,7 +179,7 @@ public:
 	String get_editor_layouts_config() const;
 	float get_auto_display_scale() const;
 
-	void add_shortcut(const String &p_name, Ref<Shortcut> &p_shortcut);
+	void add_shortcut(const String &p_name, const Ref<Shortcut> &p_shortcut);
 	bool is_shortcut(const String &p_name, const Ref<InputEvent> &p_event) const;
 	Ref<Shortcut> get_shortcut(const String &p_name) const;
 	void get_shortcut_list(List<String> *r_shortcuts);

+ 17 - 2
editor/export_template_manager.cpp

@@ -395,6 +395,9 @@ bool ExportTemplateManager::_install_file_selected(const String &p_file, bool p_
 		unz_file_info info;
 		char fname[16384];
 		ret = unzGetCurrentFileInfo(pkg, &info, fname, 16384, nullptr, 0, nullptr, 0);
+		if (ret != UNZ_OK) {
+			break;
+		}
 
 		String file = String::utf8(fname);
 		if (file.ends_with("version.txt")) {
@@ -404,6 +407,9 @@ bool ExportTemplateManager::_install_file_selected(const String &p_file, bool p_
 			// Read.
 			unzOpenCurrentFile(pkg);
 			ret = unzReadCurrentFile(pkg, data.ptrw(), data.size());
+			if (ret != UNZ_OK) {
+				break;
+			}
 			unzCloseCurrentFile(pkg);
 
 			String data_str;
@@ -455,7 +461,10 @@ bool ExportTemplateManager::_install_file_selected(const String &p_file, bool p_
 		// Get filename.
 		unz_file_info info;
 		char fname[16384];
-		unzGetCurrentFileInfo(pkg, &info, fname, 16384, nullptr, 0, nullptr, 0);
+		ret = unzGetCurrentFileInfo(pkg, &info, fname, 16384, nullptr, 0, nullptr, 0);
+		if (ret != UNZ_OK) {
+			break;
+		}
 
 		String file_path(String::utf8(fname).simplify_path());
 
@@ -471,7 +480,10 @@ bool ExportTemplateManager::_install_file_selected(const String &p_file, bool p_
 
 		// Read
 		unzOpenCurrentFile(pkg);
-		unzReadCurrentFile(pkg, data.ptrw(), data.size());
+		ret = unzReadCurrentFile(pkg, data.ptrw(), data.size());
+		if (ret != UNZ_OK) {
+			break;
+		}
 		unzCloseCurrentFile(pkg);
 
 		String base_dir = file_path.get_base_dir().trim_suffix("/");
@@ -697,6 +709,9 @@ Error ExportTemplateManager::install_android_template_from_file(const String &p_
 		unz_file_info info;
 		char fpath[16384];
 		ret = unzGetCurrentFileInfo(pkg, &info, fpath, 16384, nullptr, 0, nullptr, 0);
+		if (ret != UNZ_OK) {
+			break;
+		}
 
 		String path = String::utf8(fpath);
 		String base_dir = path.get_base_dir();

+ 2 - 2
editor/fileserver/editor_file_server.cpp

@@ -53,7 +53,7 @@ void EditorFileServer::_close_client(ClientData *cd) {
 }
 
 void EditorFileServer::_subthread_start(void *s) {
-	ClientData *cd = (ClientData *)s;
+	ClientData *cd = static_cast<ClientData *>(s);
 
 	cd->connection->set_no_delay(true);
 	uint8_t buf4[8];
@@ -259,7 +259,7 @@ void EditorFileServer::_subthread_start(void *s) {
 }
 
 void EditorFileServer::_thread_start(void *s) {
-	EditorFileServer *self = (EditorFileServer *)s;
+	EditorFileServer *self = static_cast<EditorFileServer *>(s);
 	while (!self->quit) {
 		if (self->cmd == CMD_ACTIVATE) {
 			self->server->listen(self->port);

+ 2 - 2
editor/find_in_files.cpp

@@ -449,7 +449,7 @@ Set<String> FindInFilesDialog::get_filter() const {
 	// Could check the _filters_preferences but it might not have been generated yet.
 	Set<String> filters;
 	for (int i = 0; i < _filters_container->get_child_count(); ++i) {
-		CheckBox *cb = (CheckBox *)_filters_container->get_child(i);
+		CheckBox *cb = static_cast<CheckBox *>(_filters_container->get_child(i));
 		if (cb->is_pressed()) {
 			filters.insert(cb->get_text());
 		}
@@ -489,7 +489,7 @@ void FindInFilesDialog::_on_folder_button_pressed() {
 
 void FindInFilesDialog::custom_action(const String &p_action) {
 	for (int i = 0; i < _filters_container->get_child_count(); ++i) {
-		CheckBox *cb = (CheckBox *)_filters_container->get_child(i);
+		CheckBox *cb = static_cast<CheckBox *>(_filters_container->get_child(i));
 		_filters_preferences[cb->get_text()] = cb->is_pressed();
 	}
 

+ 1 - 1
editor/plugins/animation_state_machine_editor.cpp

@@ -499,7 +499,7 @@ void AnimationNodeStateMachineEditor::_connection_draw(const Vector2 &p_from, co
 		accent.a *= 0.6;
 	}
 
-	Ref<Texture2D> icons[6] = {
+	const Ref<Texture2D> icons[6] = {
 		get_theme_icon(SNAME("TransitionImmediateBig"), SNAME("EditorIcons")),
 		get_theme_icon(SNAME("TransitionSyncBig"), SNAME("EditorIcons")),
 		get_theme_icon(SNAME("TransitionEndBig"), SNAME("EditorIcons")),

+ 10 - 13
editor/plugins/canvas_item_editor_plugin.cpp

@@ -860,7 +860,7 @@ void CanvasItemEditor::_commit_canvas_item_state(List<CanvasItem *> p_canvas_ite
 }
 
 void CanvasItemEditor::_snap_changed() {
-	((SnapDialog *)snap_dialog)->get_fields(grid_offset, grid_step, primary_grid_steps, snap_rotation_offset, snap_rotation_step, snap_scale_step);
+	static_cast<SnapDialog *>(snap_dialog)->get_fields(grid_offset, grid_step, primary_grid_steps, snap_rotation_offset, snap_rotation_step, snap_scale_step);
 	grid_step_multiplier = 0;
 	viewport->update();
 }
@@ -1504,7 +1504,7 @@ bool CanvasItemEditor::_gui_input_anchors(const Ref<InputEvent> &p_event) {
 						}
 					}
 
-					DragType dragger[] = {
+					const DragType dragger[] = {
 						DRAG_ANCHOR_TOP_LEFT,
 						DRAG_ANCHOR_TOP_RIGHT,
 						DRAG_ANCHOR_BOTTOM_RIGHT,
@@ -1635,14 +1635,14 @@ bool CanvasItemEditor::_gui_input_resize(const Ref<InputEvent> &p_event) {
 					Rect2 rect = canvas_item->_edit_get_rect();
 					Transform2D xform = transform * canvas_item->get_global_transform_with_canvas();
 
-					Vector2 endpoints[4] = {
+					const Vector2 endpoints[4] = {
 						xform.xform(rect.position),
 						xform.xform(rect.position + Vector2(rect.size.x, 0)),
 						xform.xform(rect.position + rect.size),
 						xform.xform(rect.position + Vector2(0, rect.size.y))
 					};
 
-					DragType dragger[] = {
+					const DragType dragger[] = {
 						DRAG_TOP_LEFT,
 						DRAG_TOP,
 						DRAG_TOP_RIGHT,
@@ -2318,7 +2318,6 @@ bool CanvasItemEditor::_gui_input_select(const Ref<InputEvent> &p_event) {
 
 			Vector<_SelectResult> selection = Vector<_SelectResult>();
 			// Retrieve the canvas items
-			selection = Vector<_SelectResult>();
 			_get_canvas_items_at_pos(click, selection);
 			if (!selection.is_empty()) {
 				canvas_item = selection[0].item;
@@ -2572,7 +2571,7 @@ void CanvasItemEditor::_gui_input_viewport(const Ref<InputEvent> &p_event) {
 
 void CanvasItemEditor::_update_cursor() {
 	// Compute an eventual rotation of the cursor
-	CursorShape rotation_array[4] = { CURSOR_HSIZE, CURSOR_BDIAGSIZE, CURSOR_VSIZE, CURSOR_FDIAGSIZE };
+	const CursorShape rotation_array[4] = { CURSOR_HSIZE, CURSOR_BDIAGSIZE, CURSOR_VSIZE, CURSOR_FDIAGSIZE };
 	int rotation_array_index = 0;
 
 	List<CanvasItem *> selection = _get_edited_canvas_items();
@@ -3150,7 +3149,6 @@ void CanvasItemEditor::_draw_control_helpers(Control *control) {
 
 		if (dragged_anchor >= 0) {
 			// Draw the 4 lines when dragged
-			bool anchor_snapped;
 			Color color_snapped = Color(0.64, 0.93, 0.67, 0.5);
 
 			Vector2 corners_pos[4];
@@ -3164,7 +3162,7 @@ void CanvasItemEditor::_draw_control_helpers(Control *control) {
 				real_t anchor_val = (i >= 2) ? ANCHOR_END - anchors_values[i] : anchors_values[i];
 				line_starts[i] = corners_pos[i].lerp(corners_pos[(i + 1) % 4], anchor_val);
 				line_ends[i] = corners_pos[(i + 3) % 4].lerp(corners_pos[(i + 2) % 4], anchor_val);
-				anchor_snapped = anchors_values[i] == 0.0 || anchors_values[i] == 0.5 || anchors_values[i] == 1.0;
+				bool anchor_snapped = anchors_values[i] == 0.0 || anchors_values[i] == 0.5 || anchors_values[i] == 1.0;
 				viewport->draw_line(line_starts[i], line_ends[i], anchor_snapped ? color_snapped : color_base, (i == dragged_anchor || (i + 3) % 4 == dragged_anchor) ? 2 : 1);
 			}
 
@@ -3328,7 +3326,7 @@ void CanvasItemEditor::_draw_selection() {
 		// Draw the selected items position / surrounding boxes
 		if (canvas_item->_edit_use_rect()) {
 			Rect2 rect = canvas_item->_edit_get_rect();
-			Vector2 endpoints[4] = {
+			const Vector2 endpoints[4] = {
 				xform.xform(rect.position),
 				xform.xform(rect.position + Vector2(rect.size.x, 0)),
 				xform.xform(rect.position + rect.size),
@@ -4103,7 +4101,7 @@ void CanvasItemEditor::_button_tool_select(int p_index) {
 }
 
 void CanvasItemEditor::_insert_animation_keys(bool p_location, bool p_rotation, bool p_scale, bool p_on_existing) {
-	Map<Node *, Object *> &selection = editor_selection->get_selection();
+	const Map<Node *, Object *> &selection = editor_selection->get_selection();
 
 	for (const KeyValue<Node *, Object *> &E : selection) {
 		CanvasItem *canvas_item = Object::cast_to<CanvasItem>(E.key);
@@ -4269,7 +4267,7 @@ void CanvasItemEditor::_popup_callback(int p_op) {
 			snap_config_menu->get_popup()->set_item_checked(idx, snap_pixel);
 		} break;
 		case SNAP_CONFIGURE: {
-			((SnapDialog *)snap_dialog)->set_fields(grid_offset, grid_step, primary_grid_steps, snap_rotation_offset, snap_rotation_step, snap_scale_step);
+			static_cast<SnapDialog *>(snap_dialog)->set_fields(grid_offset, grid_step, primary_grid_steps, snap_rotation_offset, snap_rotation_step, snap_scale_step);
 			snap_dialog->popup_centered(Size2(220, 160) * EDSCALE);
 		} break;
 		case SKELETON_SHOW_BONES: {
@@ -4414,7 +4412,7 @@ void CanvasItemEditor::_popup_callback(int p_op) {
 		case ANIM_COPY_POSE: {
 			pose_clipboard.clear();
 
-			Map<Node *, Object *> &selection = editor_selection->get_selection();
+			const Map<Node *, Object *> &selection = editor_selection->get_selection();
 
 			for (const KeyValue<Node *, Object *> &E : selection) {
 				CanvasItem *canvas_item = Object::cast_to<CanvasItem>(E.key);
@@ -5735,7 +5733,6 @@ void CanvasItemEditorViewport::drop_data(const Point2 &p_point, const Variant &p
 		if (root_node) {
 			target_node = root_node;
 		} else {
-			drop_pos = p_point;
 			target_node = nullptr;
 		}
 	}

+ 2 - 2
editor/plugins/material_editor_plugin.cpp

@@ -270,7 +270,7 @@ void EditorInspectorPluginMaterial::_undo_redo_inspector_callback(Object *p_undo
 		Texture2D *texture = Object::cast_to<Texture2D>(p_new_value);
 		if (texture) {
 			if (p_property == "roughness_texture") {
-				if (base_material->get_texture(StandardMaterial3D::TEXTURE_ROUGHNESS).is_null() && texture) {
+				if (base_material->get_texture(StandardMaterial3D::TEXTURE_ROUGHNESS).is_null()) {
 					undo_redo->add_do_property(p_edited, "roughness", 1.0);
 
 					bool valid = false;
@@ -280,7 +280,7 @@ void EditorInspectorPluginMaterial::_undo_redo_inspector_callback(Object *p_undo
 					}
 				}
 			} else if (p_property == "metallic_texture") {
-				if (base_material->get_texture(StandardMaterial3D::TEXTURE_METALLIC).is_null() && texture) {
+				if (base_material->get_texture(StandardMaterial3D::TEXTURE_METALLIC).is_null()) {
 					undo_redo->add_do_property(p_edited, "metallic", 1.0);
 
 					bool valid = false;

+ 2 - 2
editor/plugins/node_3d_editor_plugin.cpp

@@ -369,7 +369,7 @@ Transform3D Node3DEditorViewport::to_camera_transform(const Cursor &p_cursor) co
 }
 
 int Node3DEditorViewport::get_selected_count() const {
-	Map<Node *, Object *> &selection = editor_selection->get_selection();
+	const Map<Node *, Object *> &selection = editor_selection->get_selection();
 
 	int count = 0;
 
@@ -2467,7 +2467,7 @@ void Node3DEditorViewport::_notification(int p_what) {
 
 			_update_camera(delta);
 
-			Map<Node *, Object *> &selection = editor_selection->get_selection();
+			const Map<Node *, Object *> &selection = editor_selection->get_selection();
 
 			bool changed = false;
 			bool exist = false;

+ 1 - 1
editor/plugins/tiles/tiles_editor_plugin.cpp

@@ -56,7 +56,7 @@ void TilesEditorPlugin::_pattern_preview_done() {
 }
 
 void TilesEditorPlugin::_thread_func(void *ud) {
-	TilesEditorPlugin *te = (TilesEditorPlugin *)ud;
+	TilesEditorPlugin *te = static_cast<TilesEditorPlugin *>(ud);
 	te->_thread();
 }
 

+ 2 - 4
editor/plugins/visual_shader_editor_plugin.cpp

@@ -2061,10 +2061,8 @@ void VisualShaderEditor::_set_node_size(int p_type, int p_node, const Vector2 &p
 
 		if (!expression_node.is_null() && text_box) {
 			Size2 box_size = size;
-			if (gn != nullptr) {
-				if (box_size.x < 150 * EDSCALE || box_size.y < 0) {
-					box_size.x = gn->get_size().x;
-				}
+			if (box_size.x < 150 * EDSCALE || box_size.y < 0) {
+				box_size.x = gn->get_size().x;
 			}
 			box_size.x -= text_box->get_offset(SIDE_LEFT);
 			box_size.x -= 28 * EDSCALE;

+ 2 - 2
editor/pot_generator.cpp

@@ -46,8 +46,8 @@ void POTGenerator::_print_all_translation_strings() {
 			print_line("msgid: " + E.key());
 			print_line("context: " + v_md[i].ctx);
 			print_line("msgid_plural: " + v_md[i].plural);
-			for (Set<String>::Element *E = v_md[i].locations.front(); E; E = E->next()) {
-				print_line("location: " + E->get());
+			for (Set<String>::Element *F = v_md[i].locations.front(); F; F = F->next()) {
+				print_line("location: " + F->get());
 			}
 		}
 	}

+ 10 - 1
editor/project_manager.cpp

@@ -202,6 +202,9 @@ private:
 						unz_file_info info;
 						char fname[16384];
 						ret = unzGetCurrentFileInfo(pkg, &info, fname, 16384, nullptr, 0, nullptr, 0);
+						if (ret != UNZ_OK) {
+							break;
+						}
 
 						if (String::utf8(fname).ends_with("project.godot")) {
 							break;
@@ -534,6 +537,9 @@ private:
 						unz_file_info info;
 						char fname[16384];
 						ret = unzGetCurrentFileInfo(pkg, &info, fname, 16384, nullptr, 0, nullptr, 0);
+						if (ret != UNZ_OK) {
+							break;
+						}
 
 						String path = String::utf8(fname);
 
@@ -552,7 +558,10 @@ private:
 
 							//read
 							unzOpenCurrentFile(pkg);
-							unzReadCurrentFile(pkg, data.ptrw(), data.size());
+							ret = unzReadCurrentFile(pkg, data.ptrw(), data.size());
+							if (ret != UNZ_OK) {
+								break;
+							}
 							unzCloseCurrentFile(pkg);
 
 							FileAccess *f = FileAccess::open(dir.plus_file(rel_path), FileAccess::WRITE);

+ 1 - 1
editor/project_settings_editor.cpp

@@ -351,7 +351,7 @@ void ProjectSettingsEditor::_action_edited(const String &p_name, const Dictionar
 			undo_redo->create_action(TTR("Edit Input Action Event"));
 		} else if (event_count > old_event_count) {
 			undo_redo->create_action(TTR("Add Input Action Event"));
-		} else if (event_count < old_event_count) {
+		} else {
 			undo_redo->create_action(TTR("Remove Input Action Event"));
 		}
 

+ 1 - 1
editor/scene_tree_dock.cpp

@@ -2012,7 +2012,7 @@ void SceneTreeDock::_delete_confirm(bool p_cut) {
 
 	bool entire_scene = false;
 
-	for (Node *E : remove_list) {
+	for (const Node *E : remove_list) {
 		if (E == edited_scene) {
 			entire_scene = true;
 		}

+ 0 - 2
main/main.cpp

@@ -606,8 +606,6 @@ Error Main::setup(const char *execpath, int argc, char *argv[], bool p_second_ph
 		I = I->next();
 	}
 
-	I = args.front();
-
 	String display_driver = "";
 	String audio_driver = "";
 	String project_path = ".";

+ 1 - 1
modules/basis_universal/register_types.cpp

@@ -244,7 +244,7 @@ static Ref<Image> basis_universal_unpacker_ptr(const uint8_t *p_data, int p_size
 
 			bool ret = tr.transcode_image_level(ptr, size, 0, i, dst + ofs, level.m_total_blocks - i, format);
 			if (!ret) {
-				printf("failed! on level %i\n", i);
+				printf("failed! on level %u\n", i);
 				break;
 			};
 

+ 1 - 1
modules/gdscript/gdscript_parser.h

@@ -312,7 +312,7 @@ public:
 		bool is_constant = false;
 		Variant reduced_value;
 
-		virtual bool is_expression() const { return true; }
+		virtual bool is_expression() const override { return true; }
 		virtual ~ExpressionNode() {}
 
 	protected:

+ 5 - 5
modules/gdscript/gdscript_utility_functions.cpp

@@ -432,21 +432,21 @@ struct GDScriptUtilityFunctionsDefinitions {
 	}
 
 	static inline void print_debug(Variant *r_ret, const Variant **p_args, int p_arg_count, Callable::CallError &r_error) {
-		String str;
+		String s;
 		for (int i = 0; i < p_arg_count; i++) {
-			str += p_args[i]->operator String();
+			s += p_args[i]->operator String();
 		}
 
 		if (Thread::get_caller_id() == Thread::get_main_id()) {
 			ScriptLanguage *script = GDScriptLanguage::get_singleton();
 			if (script->debug_get_stack_level_count() > 0) {
-				str += "\n   At: " + script->debug_get_stack_level_source(0) + ":" + itos(script->debug_get_stack_level_line(0)) + ":" + script->debug_get_stack_level_function(0) + "()";
+				s += "\n   At: " + script->debug_get_stack_level_source(0) + ":" + itos(script->debug_get_stack_level_line(0)) + ":" + script->debug_get_stack_level_function(0) + "()";
 			}
 		} else {
-			str += "\n   At: Cannot retrieve debug info outside the main thread. Thread ID: " + itos(Thread::get_caller_id());
+			s += "\n   At: Cannot retrieve debug info outside the main thread. Thread ID: " + itos(Thread::get_caller_id());
 		}
 
-		print_line(str);
+		print_line(s);
 		*r_ret = Variant();
 	}
 

+ 4 - 4
modules/mbedtls/packet_peer_mbed_dtls.cpp

@@ -35,11 +35,11 @@
 #include "core/io/stream_peer_ssl.h"
 
 int PacketPeerMbedDTLS::bio_send(void *ctx, const unsigned char *buf, size_t len) {
-	if (buf == nullptr || len <= 0) {
+	if (buf == nullptr || len == 0) {
 		return 0;
 	}
 
-	PacketPeerMbedDTLS *sp = (PacketPeerMbedDTLS *)ctx;
+	PacketPeerMbedDTLS *sp = static_cast<PacketPeerMbedDTLS *>(ctx);
 
 	ERR_FAIL_COND_V(sp == nullptr, 0);
 
@@ -53,11 +53,11 @@ int PacketPeerMbedDTLS::bio_send(void *ctx, const unsigned char *buf, size_t len
 }
 
 int PacketPeerMbedDTLS::bio_recv(void *ctx, unsigned char *buf, size_t len) {
-	if (buf == nullptr || len <= 0) {
+	if (buf == nullptr || len == 0) {
 		return 0;
 	}
 
-	PacketPeerMbedDTLS *sp = (PacketPeerMbedDTLS *)ctx;
+	PacketPeerMbedDTLS *sp = static_cast<PacketPeerMbedDTLS *>(ctx);
 
 	ERR_FAIL_COND_V(sp == nullptr, 0);
 

+ 4 - 4
modules/mbedtls/stream_peer_mbedtls.cpp

@@ -34,11 +34,11 @@
 #include "core/io/stream_peer_tcp.h"
 
 int StreamPeerMbedTLS::bio_send(void *ctx, const unsigned char *buf, size_t len) {
-	if (buf == nullptr || len <= 0) {
+	if (buf == nullptr || len == 0) {
 		return 0;
 	}
 
-	StreamPeerMbedTLS *sp = (StreamPeerMbedTLS *)ctx;
+	StreamPeerMbedTLS *sp = static_cast<StreamPeerMbedTLS *>(ctx);
 
 	ERR_FAIL_COND_V(sp == nullptr, 0);
 
@@ -54,11 +54,11 @@ int StreamPeerMbedTLS::bio_send(void *ctx, const unsigned char *buf, size_t len)
 }
 
 int StreamPeerMbedTLS::bio_recv(void *ctx, unsigned char *buf, size_t len) {
-	if (buf == nullptr || len <= 0) {
+	if (buf == nullptr || len == 0) {
 		return 0;
 	}
 
-	StreamPeerMbedTLS *sp = (StreamPeerMbedTLS *)ctx;
+	StreamPeerMbedTLS *sp = static_cast<StreamPeerMbedTLS *>(ctx);
 
 	ERR_FAIL_COND_V(sp == nullptr, 0);
 

+ 26 - 26
modules/navigation/godot_navigation_server.h

@@ -45,16 +45,16 @@
 #define MERGE_INTERNAL(A, B) A##B
 #define MERGE(A, B) MERGE_INTERNAL(A, B)
 
-#define COMMAND_1(F_NAME, T_0, D_0)     \
-	virtual void F_NAME(T_0 D_0) const; \
+#define COMMAND_1(F_NAME, T_0, D_0)              \
+	virtual void F_NAME(T_0 D_0) const override; \
 	void MERGE(_cmd_, F_NAME)(T_0 D_0)
 
-#define COMMAND_2(F_NAME, T_0, D_0, T_1, D_1)    \
-	virtual void F_NAME(T_0 D_0, T_1 D_1) const; \
+#define COMMAND_2(F_NAME, T_0, D_0, T_1, D_1)             \
+	virtual void F_NAME(T_0 D_0, T_1 D_1) const override; \
 	void MERGE(_cmd_, F_NAME)(T_0 D_0, T_1 D_1)
 
-#define COMMAND_4_DEF(F_NAME, T_0, D_0, T_1, D_1, T_2, D_2, T_3, D_3, D_3_DEF) \
-	virtual void F_NAME(T_0 D_0, T_1 D_1, T_2 D_2, T_3 D_3 = D_3_DEF) const;   \
+#define COMMAND_4_DEF(F_NAME, T_0, D_0, T_1, D_1, T_2, D_2, T_3, D_3, D_3_DEF)        \
+	virtual void F_NAME(T_0 D_0, T_1 D_1, T_2 D_2, T_3 D_3 = D_3_DEF) const override; \
 	void MERGE(_cmd_, F_NAME)(T_0 D_0, T_1 D_1, T_2 D_2, T_3 D_3)
 
 class GodotNavigationServer;
@@ -85,38 +85,38 @@ public:
 
 	void add_command(SetCommand *command) const;
 
-	virtual RID map_create() const;
+	virtual RID map_create() const override;
 	COMMAND_2(map_set_active, RID, p_map, bool, p_active);
-	virtual bool map_is_active(RID p_map) const;
+	virtual bool map_is_active(RID p_map) const override;
 
 	COMMAND_2(map_set_up, RID, p_map, Vector3, p_up);
-	virtual Vector3 map_get_up(RID p_map) const;
+	virtual Vector3 map_get_up(RID p_map) const override;
 
 	COMMAND_2(map_set_cell_size, RID, p_map, real_t, p_cell_size);
-	virtual real_t map_get_cell_size(RID p_map) const;
+	virtual real_t map_get_cell_size(RID p_map) const override;
 
 	COMMAND_2(map_set_edge_connection_margin, RID, p_map, real_t, p_connection_margin);
-	virtual real_t map_get_edge_connection_margin(RID p_map) const;
+	virtual real_t map_get_edge_connection_margin(RID p_map) const override;
 
-	virtual Vector<Vector3> map_get_path(RID p_map, Vector3 p_origin, Vector3 p_destination, bool p_optimize, uint32_t p_layers = 1) const;
+	virtual Vector<Vector3> map_get_path(RID p_map, Vector3 p_origin, Vector3 p_destination, bool p_optimize, uint32_t p_layers = 1) const override;
 
-	virtual Vector3 map_get_closest_point_to_segment(RID p_map, const Vector3 &p_from, const Vector3 &p_to, const bool p_use_collision = false) const;
-	virtual Vector3 map_get_closest_point(RID p_map, const Vector3 &p_point) const;
-	virtual Vector3 map_get_closest_point_normal(RID p_map, const Vector3 &p_point) const;
-	virtual RID map_get_closest_point_owner(RID p_map, const Vector3 &p_point) const;
+	virtual Vector3 map_get_closest_point_to_segment(RID p_map, const Vector3 &p_from, const Vector3 &p_to, const bool p_use_collision = false) const override;
+	virtual Vector3 map_get_closest_point(RID p_map, const Vector3 &p_point) const override;
+	virtual Vector3 map_get_closest_point_normal(RID p_map, const Vector3 &p_point) const override;
+	virtual RID map_get_closest_point_owner(RID p_map, const Vector3 &p_point) const override;
 
-	virtual RID region_create() const;
+	virtual RID region_create() const override;
 	COMMAND_2(region_set_map, RID, p_region, RID, p_map);
 	COMMAND_2(region_set_layers, RID, p_region, uint32_t, p_layers);
-	virtual uint32_t region_get_layers(RID p_region) const;
+	virtual uint32_t region_get_layers(RID p_region) const override;
 	COMMAND_2(region_set_transform, RID, p_region, Transform3D, p_transform);
 	COMMAND_2(region_set_navmesh, RID, p_region, Ref<NavigationMesh>, p_nav_mesh);
-	virtual void region_bake_navmesh(Ref<NavigationMesh> r_mesh, Node *p_node) const;
-	virtual int region_get_connections_count(RID p_region) const;
-	virtual Vector3 region_get_connection_pathway_start(RID p_region, int p_connection_id) const;
-	virtual Vector3 region_get_connection_pathway_end(RID p_region, int p_connection_id) const;
+	virtual void region_bake_navmesh(Ref<NavigationMesh> r_mesh, Node *p_node) const override;
+	virtual int region_get_connections_count(RID p_region) const override;
+	virtual Vector3 region_get_connection_pathway_start(RID p_region, int p_connection_id) const override;
+	virtual Vector3 region_get_connection_pathway_end(RID p_region, int p_connection_id) const override;
 
-	virtual RID agent_create() const;
+	virtual RID agent_create() const override;
 	COMMAND_2(agent_set_map, RID, p_agent, RID, p_map);
 	COMMAND_2(agent_set_neighbor_dist, RID, p_agent, real_t, p_dist);
 	COMMAND_2(agent_set_max_neighbors, RID, p_agent, int, p_count);
@@ -127,15 +127,15 @@ public:
 	COMMAND_2(agent_set_target_velocity, RID, p_agent, Vector3, p_velocity);
 	COMMAND_2(agent_set_position, RID, p_agent, Vector3, p_position);
 	COMMAND_2(agent_set_ignore_y, RID, p_agent, bool, p_ignore);
-	virtual bool agent_is_map_changed(RID p_agent) const;
+	virtual bool agent_is_map_changed(RID p_agent) const override;
 	COMMAND_4_DEF(agent_set_callback, RID, p_agent, Object *, p_receiver, StringName, p_method, Variant, p_udata, Variant());
 
 	COMMAND_1(free, RID, p_object);
 
-	virtual void set_active(bool p_active) const;
+	virtual void set_active(bool p_active) const override;
 
 	void flush_queries();
-	virtual void process(real_t p_delta_time);
+	virtual void process(real_t p_delta_time) override;
 };
 
 #undef COMMAND_1

+ 1 - 1
modules/noise/noise_texture.cpp

@@ -119,7 +119,7 @@ void NoiseTexture::_thread_done(const Ref<Image> &p_image) {
 }
 
 void NoiseTexture::_thread_function(void *p_ud) {
-	NoiseTexture *tex = (NoiseTexture *)p_ud;
+	NoiseTexture *tex = static_cast<NoiseTexture *>(p_ud);
 	tex->call_deferred(SNAME("_thread_done"), tex->_generate_texture());
 }
 

+ 2 - 2
modules/text_server_adv/script_iterator.cpp

@@ -51,7 +51,7 @@ ScriptIterator::ScriptIterator(const String &p_string, int p_start, int p_length
 	}
 
 	int paren_size = PAREN_STACK_DEPTH;
-	ParenStackEntry *paren_stack = (ParenStackEntry *)memalloc(paren_size * sizeof(ParenStackEntry));
+	ParenStackEntry *paren_stack = static_cast<ParenStackEntry *>(memalloc(paren_size * sizeof(ParenStackEntry)));
 
 	int script_start;
 	int script_end = p_start;
@@ -77,7 +77,7 @@ ScriptIterator::ScriptIterator(const String &p_string, int p_start, int p_length
 					if (unlikely(paren_sp >= paren_size)) {
 						// If the stack is full, allocate more space to handle deeply nested parentheses. This is unlikely to happen with any real text.
 						paren_size += PAREN_STACK_DEPTH;
-						paren_stack = (ParenStackEntry *)memrealloc(paren_stack, paren_size * sizeof(ParenStackEntry));
+						paren_stack = static_cast<ParenStackEntry *>(memrealloc(paren_stack, paren_size * sizeof(ParenStackEntry)));
 					}
 					paren_stack[paren_sp].pair_index = ch;
 					paren_stack[paren_sp].script_code = script_code;

+ 22 - 26
modules/text_server_adv/text_server_adv.cpp

@@ -89,12 +89,12 @@ TextServerAdvanced::bmp_font_t *TextServerAdvanced::_bmp_font_create(TextServerA
 }
 
 void TextServerAdvanced::_bmp_font_destroy(void *p_data) {
-	bmp_font_t *bm_font = reinterpret_cast<bmp_font_t *>(p_data);
+	bmp_font_t *bm_font = static_cast<bmp_font_t *>(p_data);
 	memdelete(bm_font);
 }
 
 hb_bool_t TextServerAdvanced::_bmp_get_nominal_glyph(hb_font_t *p_font, void *p_font_data, hb_codepoint_t p_unicode, hb_codepoint_t *r_glyph, void *p_user_data) {
-	const bmp_font_t *bm_font = reinterpret_cast<const bmp_font_t *>(p_font_data);
+	const bmp_font_t *bm_font = static_cast<const bmp_font_t *>(p_font_data);
 
 	if (!bm_font->face) {
 		return false;
@@ -114,7 +114,7 @@ hb_bool_t TextServerAdvanced::_bmp_get_nominal_glyph(hb_font_t *p_font, void *p_
 }
 
 hb_position_t TextServerAdvanced::_bmp_get_glyph_h_advance(hb_font_t *p_font, void *p_font_data, hb_codepoint_t p_glyph, void *p_user_data) {
-	const bmp_font_t *bm_font = reinterpret_cast<const bmp_font_t *>(p_font_data);
+	const bmp_font_t *bm_font = static_cast<const bmp_font_t *>(p_font_data);
 
 	if (!bm_font->face) {
 		return 0;
@@ -128,7 +128,7 @@ hb_position_t TextServerAdvanced::_bmp_get_glyph_h_advance(hb_font_t *p_font, vo
 }
 
 hb_position_t TextServerAdvanced::_bmp_get_glyph_v_advance(hb_font_t *p_font, void *p_font_data, hb_codepoint_t p_glyph, void *p_user_data) {
-	const bmp_font_t *bm_font = reinterpret_cast<const bmp_font_t *>(p_font_data);
+	const bmp_font_t *bm_font = static_cast<const bmp_font_t *>(p_font_data);
 
 	if (!bm_font->face) {
 		return 0;
@@ -142,7 +142,7 @@ hb_position_t TextServerAdvanced::_bmp_get_glyph_v_advance(hb_font_t *p_font, vo
 }
 
 hb_position_t TextServerAdvanced::_bmp_get_glyph_h_kerning(hb_font_t *p_font, void *p_font_data, hb_codepoint_t p_left_glyph, hb_codepoint_t p_right_glyph, void *p_user_data) {
-	const bmp_font_t *bm_font = reinterpret_cast<const bmp_font_t *>(p_font_data);
+	const bmp_font_t *bm_font = static_cast<const bmp_font_t *>(p_font_data);
 
 	if (!bm_font->face) {
 		return 0;
@@ -156,7 +156,7 @@ hb_position_t TextServerAdvanced::_bmp_get_glyph_h_kerning(hb_font_t *p_font, vo
 }
 
 hb_bool_t TextServerAdvanced::_bmp_get_glyph_v_origin(hb_font_t *p_font, void *p_font_data, hb_codepoint_t p_glyph, hb_position_t *r_x, hb_position_t *r_y, void *p_user_data) {
-	const bmp_font_t *bm_font = reinterpret_cast<const bmp_font_t *>(p_font_data);
+	const bmp_font_t *bm_font = static_cast<const bmp_font_t *>(p_font_data);
 
 	if (!bm_font->face) {
 		return false;
@@ -173,7 +173,7 @@ hb_bool_t TextServerAdvanced::_bmp_get_glyph_v_origin(hb_font_t *p_font, void *p
 }
 
 hb_bool_t TextServerAdvanced::_bmp_get_glyph_extents(hb_font_t *p_font, void *p_font_data, hb_codepoint_t p_glyph, hb_glyph_extents_t *r_extents, void *p_user_data) {
-	const bmp_font_t *bm_font = reinterpret_cast<const bmp_font_t *>(p_font_data);
+	const bmp_font_t *bm_font = static_cast<const bmp_font_t *>(p_font_data);
 
 	if (!bm_font->face) {
 		return false;
@@ -192,7 +192,7 @@ hb_bool_t TextServerAdvanced::_bmp_get_glyph_extents(hb_font_t *p_font, void *p_
 }
 
 hb_bool_t TextServerAdvanced::_bmp_get_font_h_extents(hb_font_t *p_font, void *p_font_data, hb_font_extents_t *r_metrics, void *p_user_data) {
-	const bmp_font_t *bm_font = reinterpret_cast<const bmp_font_t *>(p_font_data);
+	const bmp_font_t *bm_font = static_cast<const bmp_font_t *>(p_font_data);
 
 	if (!bm_font->face) {
 		return false;
@@ -910,7 +910,7 @@ static msdfgen::Point2 ft_point2(const FT_Vector &vector) {
 }
 
 static int ft_move_to(const FT_Vector *to, void *user) {
-	MSContext *context = reinterpret_cast<MSContext *>(user);
+	MSContext *context = static_cast<MSContext *>(user);
 	if (!(context->contour && context->contour->edges.empty())) {
 		context->contour = &context->shape->addContour();
 	}
@@ -919,7 +919,7 @@ static int ft_move_to(const FT_Vector *to, void *user) {
 }
 
 static int ft_line_to(const FT_Vector *to, void *user) {
-	MSContext *context = reinterpret_cast<MSContext *>(user);
+	MSContext *context = static_cast<MSContext *>(user);
 	msdfgen::Point2 endpoint = ft_point2(*to);
 	if (endpoint != context->position) {
 		context->contour->addEdge(new msdfgen::LinearSegment(context->position, endpoint));
@@ -929,21 +929,21 @@ static int ft_line_to(const FT_Vector *to, void *user) {
 }
 
 static int ft_conic_to(const FT_Vector *control, const FT_Vector *to, void *user) {
-	MSContext *context = reinterpret_cast<MSContext *>(user);
+	MSContext *context = static_cast<MSContext *>(user);
 	context->contour->addEdge(new msdfgen::QuadraticSegment(context->position, ft_point2(*control), ft_point2(*to)));
 	context->position = ft_point2(*to);
 	return 0;
 }
 
 static int ft_cubic_to(const FT_Vector *control1, const FT_Vector *control2, const FT_Vector *to, void *user) {
-	MSContext *context = reinterpret_cast<MSContext *>(user);
+	MSContext *context = static_cast<MSContext *>(user);
 	context->contour->addEdge(new msdfgen::CubicSegment(context->position, ft_point2(*control1), ft_point2(*control2), ft_point2(*to)));
 	context->position = ft_point2(*to);
 	return 0;
 }
 
 void TextServerAdvanced::_generateMTSDF_threaded(uint32_t y, void *p_td) const {
-	MSDFThreadData *td = (MSDFThreadData *)p_td;
+	MSDFThreadData *td = static_cast<MSDFThreadData *>(p_td);
 
 	msdfgen::ShapeDistanceFinder<msdfgen::OverlappingContourCombiner<msdfgen::MultiAndTrueDistanceSelector>> distanceFinder(*td->shape);
 	int row = td->shape->inverseYAxis ? td->output->height() - y - 1 : y;
@@ -1860,9 +1860,7 @@ void TextServerAdvanced::font_set_fixed_size(const RID &p_font_rid, int64_t p_fi
 	ERR_FAIL_COND(!fd);
 
 	MutexLock lock(fd->mutex);
-	if (fd->fixed_size != p_fixed_size) {
-		fd->fixed_size = p_fixed_size;
-	}
+	fd->fixed_size = p_fixed_size;
 }
 
 int64_t TextServerAdvanced::font_get_fixed_size(const RID &p_font_rid) const {
@@ -1916,9 +1914,7 @@ void TextServerAdvanced::font_set_subpixel_positioning(const RID &p_font_rid, Te
 	ERR_FAIL_COND(!fd);
 
 	MutexLock lock(fd->mutex);
-	if (fd->subpixel_positioning != p_subpixel) {
-		fd->subpixel_positioning = p_subpixel;
-	}
+	fd->subpixel_positioning = p_subpixel;
 }
 
 TextServer::SubpixelPositioning TextServerAdvanced::font_get_subpixel_positioning(const RID &p_font_rid) const {
@@ -2574,10 +2570,10 @@ Dictionary TextServerAdvanced::font_get_glyph_contours(const RID &p_font_rid, in
 
 	ERR_FAIL_COND_V(!_ensure_cache_for_size(fd, size), Dictionary());
 
+#ifdef MODULE_FREETYPE_ENABLED
 	PackedVector3Array points;
 	PackedInt32Array contours;
-	bool orientation;
-#ifdef MODULE_FREETYPE_ENABLED
+
 	int32_t index = p_index & 0xffffff; // Remove subpixel shifts.
 
 	int error = FT_Load_Glyph(fd->cache[size]->face, index, FT_LOAD_NO_BITMAP | (fd->force_autohinter ? FT_LOAD_FORCE_AUTOHINT : 0));
@@ -2594,16 +2590,16 @@ Dictionary TextServerAdvanced::font_get_glyph_contours(const RID &p_font_rid, in
 	for (short i = 0; i < fd->cache[size]->face->glyph->outline.n_contours; i++) {
 		contours.push_back(fd->cache[size]->face->glyph->outline.contours[i]);
 	}
-	orientation = (FT_Outline_Get_Orientation(&fd->cache[size]->face->glyph->outline) == FT_ORIENTATION_FILL_RIGHT);
-#else
-	return Dictionary();
-#endif
+	bool orientation = (FT_Outline_Get_Orientation(&fd->cache[size]->face->glyph->outline) == FT_ORIENTATION_FILL_RIGHT);
 
 	Dictionary out;
 	out["points"] = points;
 	out["contours"] = contours;
 	out["orientation"] = orientation;
 	return out;
+#else
+	return Dictionary();
+#endif
 }
 
 Array TextServerAdvanced::font_get_kerning_list(const RID &p_font_rid, int64_t p_size) const {
@@ -3878,9 +3874,9 @@ double TextServerAdvanced::shaped_text_fit_to_width(const RID &p_shaped, double
 			}
 		}
 	}
-	double adv_remain = 0;
 	if ((space_count > 0) && ((p_jst_flags & JUSTIFICATION_WORD_BOUND) == JUSTIFICATION_WORD_BOUND)) {
 		double delta_width_per_space = (p_width - justification_width) / space_count;
+		double adv_remain = 0;
 		for (int i = start_pos; i <= end_pos; i++) {
 			Glyph &gl = sd->glyphs.write[i];
 			if (gl.count > 0) {

+ 13 - 17
modules/text_server_fb/text_server_fb.cpp

@@ -352,7 +352,7 @@ static msdfgen::Point2 ft_point2(const FT_Vector &vector) {
 }
 
 static int ft_move_to(const FT_Vector *to, void *user) {
-	MSContext *context = reinterpret_cast<MSContext *>(user);
+	MSContext *context = static_cast<MSContext *>(user);
 	if (!(context->contour && context->contour->edges.empty())) {
 		context->contour = &context->shape->addContour();
 	}
@@ -361,7 +361,7 @@ static int ft_move_to(const FT_Vector *to, void *user) {
 }
 
 static int ft_line_to(const FT_Vector *to, void *user) {
-	MSContext *context = reinterpret_cast<MSContext *>(user);
+	MSContext *context = static_cast<MSContext *>(user);
 	msdfgen::Point2 endpoint = ft_point2(*to);
 	if (endpoint != context->position) {
 		context->contour->addEdge(new msdfgen::LinearSegment(context->position, endpoint));
@@ -371,21 +371,21 @@ static int ft_line_to(const FT_Vector *to, void *user) {
 }
 
 static int ft_conic_to(const FT_Vector *control, const FT_Vector *to, void *user) {
-	MSContext *context = reinterpret_cast<MSContext *>(user);
+	MSContext *context = static_cast<MSContext *>(user);
 	context->contour->addEdge(new msdfgen::QuadraticSegment(context->position, ft_point2(*control), ft_point2(*to)));
 	context->position = ft_point2(*to);
 	return 0;
 }
 
 static int ft_cubic_to(const FT_Vector *control1, const FT_Vector *control2, const FT_Vector *to, void *user) {
-	MSContext *context = reinterpret_cast<MSContext *>(user);
+	MSContext *context = static_cast<MSContext *>(user);
 	context->contour->addEdge(new msdfgen::CubicSegment(context->position, ft_point2(*control1), ft_point2(*control2), ft_point2(*to)));
 	context->position = ft_point2(*to);
 	return 0;
 }
 
 void TextServerFallback::_generateMTSDF_threaded(uint32_t y, void *p_td) const {
-	MSDFThreadData *td = (MSDFThreadData *)p_td;
+	MSDFThreadData *td = static_cast<MSDFThreadData *>(p_td);
 
 	msdfgen::ShapeDistanceFinder<msdfgen::OverlappingContourCombiner<msdfgen::MultiAndTrueDistanceSelector>> distanceFinder(*td->shape);
 	int row = td->shape->inverseYAxis ? td->output->height() - y - 1 : y;
@@ -1021,9 +1021,7 @@ void TextServerFallback::font_set_fixed_size(const RID &p_font_rid, int64_t p_fi
 	ERR_FAIL_COND(!fd);
 
 	MutexLock lock(fd->mutex);
-	if (fd->fixed_size != p_fixed_size) {
-		fd->fixed_size = p_fixed_size;
-	}
+	fd->fixed_size = p_fixed_size;
 }
 
 int64_t TextServerFallback::font_get_fixed_size(const RID &p_font_rid) const {
@@ -1077,9 +1075,7 @@ void TextServerFallback::font_set_subpixel_positioning(const RID &p_font_rid, Te
 	ERR_FAIL_COND(!fd);
 
 	MutexLock lock(fd->mutex);
-	if (fd->subpixel_positioning != p_subpixel) {
-		fd->subpixel_positioning = p_subpixel;
-	}
+	fd->subpixel_positioning = p_subpixel;
 }
 
 TextServer::SubpixelPositioning TextServerFallback::font_get_subpixel_positioning(const RID &p_font_rid) const {
@@ -1721,10 +1717,10 @@ Dictionary TextServerFallback::font_get_glyph_contours(const RID &p_font_rid, in
 
 	ERR_FAIL_COND_V(!_ensure_cache_for_size(fd, size), Dictionary());
 
+#ifdef MODULE_FREETYPE_ENABLED
 	PackedVector3Array points;
 	PackedInt32Array contours;
-	bool orientation;
-#ifdef MODULE_FREETYPE_ENABLED
+
 	int32_t index = p_index & 0xffffff; // Remove subpixel shifts.
 
 	int error = FT_Load_Glyph(fd->cache[size]->face, FT_Get_Char_Index(fd->cache[size]->face, index), FT_LOAD_NO_BITMAP | (fd->force_autohinter ? FT_LOAD_FORCE_AUTOHINT : 0));
@@ -1741,16 +1737,16 @@ Dictionary TextServerFallback::font_get_glyph_contours(const RID &p_font_rid, in
 	for (short i = 0; i < fd->cache[size]->face->glyph->outline.n_contours; i++) {
 		contours.push_back(fd->cache[size]->face->glyph->outline.contours[i]);
 	}
-	orientation = (FT_Outline_Get_Orientation(&fd->cache[size]->face->glyph->outline) == FT_ORIENTATION_FILL_RIGHT);
-#else
-	return Dictionary();
-#endif
+	bool orientation = (FT_Outline_Get_Orientation(&fd->cache[size]->face->glyph->outline) == FT_ORIENTATION_FILL_RIGHT);
 
 	Dictionary out;
 	out["points"] = points;
 	out["contours"] = contours;
 	out["orientation"] = orientation;
 	return out;
+#else
+	return Dictionary();
+#endif
 }
 
 Array TextServerFallback::font_get_kerning_list(const RID &p_font_rid, int64_t p_size) const {

+ 1 - 1
modules/theora/video_stream_theora.cpp

@@ -627,7 +627,7 @@ int VideoStreamPlaybackTheora::get_mix_rate() const {
 #ifdef THEORA_USE_THREAD_STREAMING
 
 void VideoStreamPlaybackTheora::_streaming_thread(void *ud) {
-	VideoStreamPlaybackTheora *vs = (VideoStreamPlaybackTheora *)ud;
+	VideoStreamPlaybackTheora *vs = static_cast<VideoStreamPlaybackTheora *>(ud);
 
 	while (!vs->thread_exit) {
 		//just fill back the buffer

+ 2 - 2
modules/visual_script/visual_script_builtin_funcs.cpp

@@ -1185,11 +1185,11 @@ public:
 
 	VisualScriptBuiltinFunc::BuiltinFunc func;
 
-	//virtual int get_working_memory_size() const { return 0; }
+	//virtual int get_working_memory_size() const override { return 0; }
 	//virtual bool is_output_port_unsequenced(int p_idx) const { return false; }
 	//virtual bool get_output_port_unsequenced(int p_idx,Variant* r_value,Variant* p_working_mem,String &r_error) const { return true; }
 
-	virtual int step(const Variant **p_inputs, Variant **p_outputs, StartMode p_start_mode, Variant *p_working_mem, Callable::CallError &r_error, String &r_error_str) {
+	virtual int step(const Variant **p_inputs, Variant **p_outputs, StartMode p_start_mode, Variant *p_working_mem, Callable::CallError &r_error, String &r_error_str) override {
 		VisualScriptBuiltinFunc::exec_func(func, p_inputs, p_outputs[0], r_error, r_error_str);
 		return 0;
 	}

+ 2 - 2
modules/visual_script/visual_script_expression.cpp

@@ -1302,7 +1302,7 @@ public:
 	VisualScriptInstance *instance;
 	VisualScriptExpression *expression;
 
-	//virtual int get_working_memory_size() const { return 0; }
+	//virtual int get_working_memory_size() const override { return 0; }
 	//execute by parsing the tree directly
 	virtual bool _execute(const Variant **p_inputs, VisualScriptExpression::ENode *p_node, Variant &r_ret, String &r_error_str, Callable::CallError &ce) {
 		switch (p_node->type) {
@@ -1512,7 +1512,7 @@ public:
 		return false;
 	}
 
-	virtual int step(const Variant **p_inputs, Variant **p_outputs, StartMode p_start_mode, Variant *p_working_mem, Callable::CallError &r_error, String &r_error_str) {
+	virtual int step(const Variant **p_inputs, Variant **p_outputs, StartMode p_start_mode, Variant *p_working_mem, Callable::CallError &r_error, String &r_error_str) override {
 		if (!expression->root || expression->error_set) {
 			r_error_str = expression->error_str;
 			r_error.error = Callable::CallError::CALL_ERROR_INVALID_METHOD;

+ 14 - 14
modules/visual_script/visual_script_flow_control.cpp

@@ -123,11 +123,11 @@ public:
 	VisualScriptInstance *instance;
 	bool with_value;
 
-	virtual int get_working_memory_size() const { return 1; }
+	virtual int get_working_memory_size() const override { return 1; }
 	//virtual bool is_output_port_unsequenced(int p_idx) const { return false; }
 	//virtual bool get_output_port_unsequenced(int p_idx,Variant* r_value,Variant* p_working_mem,String &r_error) const { return true; }
 
-	virtual int step(const Variant **p_inputs, Variant **p_outputs, StartMode p_start_mode, Variant *p_working_mem, Callable::CallError &r_error, String &r_error_str) {
+	virtual int step(const Variant **p_inputs, Variant **p_outputs, StartMode p_start_mode, Variant *p_working_mem, Callable::CallError &r_error, String &r_error_str) override {
 		if (with_value) {
 			*p_working_mem = *p_inputs[0];
 			return STEP_EXIT_FUNCTION_BIT;
@@ -216,11 +216,11 @@ public:
 	VisualScriptCondition *node;
 	VisualScriptInstance *instance;
 
-	//virtual int get_working_memory_size() const { return 1; }
+	//virtual int get_working_memory_size() const override { return 1; }
 	//virtual bool is_output_port_unsequenced(int p_idx) const { return false; }
 	//virtual bool get_output_port_unsequenced(int p_idx,Variant* r_value,Variant* p_working_mem,String &r_error) const { return true; }
 
-	virtual int step(const Variant **p_inputs, Variant **p_outputs, StartMode p_start_mode, Variant *p_working_mem, Callable::CallError &r_error, String &r_error_str) {
+	virtual int step(const Variant **p_inputs, Variant **p_outputs, StartMode p_start_mode, Variant *p_working_mem, Callable::CallError &r_error, String &r_error_str) override {
 		if (p_start_mode == START_MODE_CONTINUE_SEQUENCE) {
 			return 2;
 		} else if (p_inputs[0]->operator bool()) {
@@ -296,11 +296,11 @@ public:
 	VisualScriptWhile *node;
 	VisualScriptInstance *instance;
 
-	//virtual int get_working_memory_size() const { return 1; }
+	//virtual int get_working_memory_size() const override { return 1; }
 	//virtual bool is_output_port_unsequenced(int p_idx) const { return false; }
 	//virtual bool get_output_port_unsequenced(int p_idx,Variant* r_value,Variant* p_working_mem,String &r_error) const { return true; }
 
-	virtual int step(const Variant **p_inputs, Variant **p_outputs, StartMode p_start_mode, Variant *p_working_mem, Callable::CallError &r_error, String &r_error_str) {
+	virtual int step(const Variant **p_inputs, Variant **p_outputs, StartMode p_start_mode, Variant *p_working_mem, Callable::CallError &r_error, String &r_error_str) override {
 		bool keep_going = p_inputs[0]->operator bool();
 
 		if (keep_going) {
@@ -379,11 +379,11 @@ public:
 	VisualScriptIterator *node;
 	VisualScriptInstance *instance;
 
-	virtual int get_working_memory_size() const { return 2; }
+	virtual int get_working_memory_size() const override { return 2; }
 	//virtual bool is_output_port_unsequenced(int p_idx) const { return false; }
 	//virtual bool get_output_port_unsequenced(int p_idx,Variant* r_value,Variant* p_working_mem,String &r_error) const { return true; }
 
-	virtual int step(const Variant **p_inputs, Variant **p_outputs, StartMode p_start_mode, Variant *p_working_mem, Callable::CallError &r_error, String &r_error_str) {
+	virtual int step(const Variant **p_inputs, Variant **p_outputs, StartMode p_start_mode, Variant *p_working_mem, Callable::CallError &r_error, String &r_error_str) override {
 		if (p_start_mode == START_MODE_BEGIN_SEQUENCE) {
 			p_working_mem[0] = *p_inputs[0];
 			bool valid;
@@ -512,11 +512,11 @@ public:
 	VisualScriptInstance *instance;
 	int steps;
 
-	virtual int get_working_memory_size() const { return 1; }
+	virtual int get_working_memory_size() const override { return 1; }
 	//virtual bool is_output_port_unsequenced(int p_idx) const { return false; }
 	//virtual bool get_output_port_unsequenced(int p_idx,Variant* r_value,Variant* p_working_mem,String &r_error) const { return true; }
 
-	virtual int step(const Variant **p_inputs, Variant **p_outputs, StartMode p_start_mode, Variant *p_working_mem, Callable::CallError &r_error, String &r_error_str) {
+	virtual int step(const Variant **p_inputs, Variant **p_outputs, StartMode p_start_mode, Variant *p_working_mem, Callable::CallError &r_error, String &r_error_str) override {
 		if (p_start_mode == START_MODE_BEGIN_SEQUENCE) {
 			p_working_mem[0] = 0;
 		}
@@ -599,11 +599,11 @@ public:
 	VisualScriptInstance *instance;
 	int case_count;
 
-	//virtual int get_working_memory_size() const { return 0; }
+	//virtual int get_working_memory_size() const override { return 0; }
 	//virtual bool is_output_port_unsequenced(int p_idx) const { return false; }
 	//virtual bool get_output_port_unsequenced(int p_idx,Variant* r_value,Variant* p_working_mem,String &r_error) const { return false; }
 
-	virtual int step(const Variant **p_inputs, Variant **p_outputs, StartMode p_start_mode, Variant *p_working_mem, Callable::CallError &r_error, String &r_error_str) {
+	virtual int step(const Variant **p_inputs, Variant **p_outputs, StartMode p_start_mode, Variant *p_working_mem, Callable::CallError &r_error, String &r_error_str) override {
 		if (p_start_mode == START_MODE_CONTINUE_SEQUENCE) {
 			return case_count; //exit
 		}
@@ -778,11 +778,11 @@ public:
 	StringName base_type;
 	String script;
 
-	//virtual int get_working_memory_size() const { return 0; }
+	//virtual int get_working_memory_size() const override { return 0; }
 	//virtual bool is_output_port_unsequenced(int p_idx) const { return false; }
 	//virtual bool get_output_port_unsequenced(int p_idx,Variant* r_value,Variant* p_working_mem,String &r_error) const { return false; }
 
-	virtual int step(const Variant **p_inputs, Variant **p_outputs, StartMode p_start_mode, Variant *p_working_mem, Callable::CallError &r_error, String &r_error_str) {
+	virtual int step(const Variant **p_inputs, Variant **p_outputs, StartMode p_start_mode, Variant *p_working_mem, Callable::CallError &r_error, String &r_error_str) override {
 		Object *obj = *p_inputs[0];
 
 		*p_outputs[0] = Variant();

+ 7 - 7
modules/visual_script/visual_script_func_nodes.cpp

@@ -730,7 +730,7 @@ public:
 	VisualScriptFunctionCall *node;
 	VisualScriptInstance *instance;
 
-	//virtual int get_working_memory_size() const { return 0; }
+	//virtual int get_working_memory_size() const override { return 0; }
 	//virtual bool is_output_port_unsequenced(int p_idx) const { return false; }
 	//virtual bool get_output_port_unsequenced(int p_idx,Variant* r_value,Variant* p_working_mem,String &r_error) const { return true; }
 
@@ -765,7 +765,7 @@ public:
 		return true;
 	}
 
-	virtual int step(const Variant **p_inputs, Variant **p_outputs, StartMode p_start_mode, Variant *p_working_mem, Callable::CallError &r_error, String &r_error_str) {
+	virtual int step(const Variant **p_inputs, Variant **p_outputs, StartMode p_start_mode, Variant *p_working_mem, Callable::CallError &r_error, String &r_error_str) override {
 		switch (call_mode) {
 			case VisualScriptFunctionCall::CALL_MODE_SELF: {
 				Object *object = instance->get_owner_ptr();
@@ -1468,7 +1468,7 @@ public:
 	StringName index;
 	bool needs_get;
 
-	//virtual int get_working_memory_size() const { return 0; }
+	//virtual int get_working_memory_size() const override { return 0; }
 	//virtual bool is_output_port_unsequenced(int p_idx) const { return false; }
 	//virtual bool get_output_port_unsequenced(int p_idx,Variant* r_value,Variant* p_working_mem,String &r_error) const { return true; }
 
@@ -1529,7 +1529,7 @@ public:
 		}
 	}
 
-	virtual int step(const Variant **p_inputs, Variant **p_outputs, StartMode p_start_mode, Variant *p_working_mem, Callable::CallError &r_error, String &r_error_str) {
+	virtual int step(const Variant **p_inputs, Variant **p_outputs, StartMode p_start_mode, Variant *p_working_mem, Callable::CallError &r_error, String &r_error_str) override {
 		switch (call_mode) {
 			case VisualScriptPropertySet::CALL_MODE_SELF: {
 				Object *object = instance->get_owner_ptr();
@@ -2155,7 +2155,7 @@ public:
 	VisualScriptPropertyGet *node;
 	VisualScriptInstance *instance;
 
-	virtual int step(const Variant **p_inputs, Variant **p_outputs, StartMode p_start_mode, Variant *p_working_mem, Callable::CallError &r_error, String &r_error_str) {
+	virtual int step(const Variant **p_inputs, Variant **p_outputs, StartMode p_start_mode, Variant *p_working_mem, Callable::CallError &r_error, String &r_error_str) override {
 		switch (call_mode) {
 			case VisualScriptPropertyGet::CALL_MODE_SELF: {
 				Object *object = instance->get_owner_ptr();
@@ -2367,11 +2367,11 @@ public:
 	int argcount;
 	StringName name;
 
-	//virtual int get_working_memory_size() const { return 0; }
+	//virtual int get_working_memory_size() const override { return 0; }
 	//virtual bool is_output_port_unsequenced(int p_idx) const { return false; }
 	//virtual bool get_output_port_unsequenced(int p_idx,Variant* r_value,Variant* p_working_mem,String &r_error) const { return true; }
 
-	virtual int step(const Variant **p_inputs, Variant **p_outputs, StartMode p_start_mode, Variant *p_working_mem, Callable::CallError &r_error, String &r_error_str) {
+	virtual int step(const Variant **p_inputs, Variant **p_outputs, StartMode p_start_mode, Variant *p_working_mem, Callable::CallError &r_error, String &r_error_str) override {
 		Object *obj = instance->get_owner_ptr();
 
 		obj->emit_signalp(name, p_inputs, argcount);

+ 52 - 52
modules/visual_script/visual_script_nodes.cpp

@@ -274,9 +274,9 @@ public:
 	VisualScriptFunction *node;
 	VisualScriptInstance *instance;
 
-	//virtual int get_working_memory_size() const { return 0; }
+	//virtual int get_working_memory_size() const override { return 0; }
 
-	virtual int step(const Variant **p_inputs, Variant **p_outputs, StartMode p_start_mode, Variant *p_working_mem, Callable::CallError &r_error, String &r_error_str) {
+	virtual int step(const Variant **p_inputs, Variant **p_outputs, StartMode p_start_mode, Variant *p_working_mem, Callable::CallError &r_error, String &r_error_str) override {
 		int ac = node->get_argument_count();
 
 		for (int i = 0; i < ac; i++) {
@@ -777,9 +777,9 @@ String VisualScriptComposeArray::get_text() const {
 class VisualScriptComposeArrayNode : public VisualScriptNodeInstance {
 public:
 	int input_count = 0;
-	virtual int get_working_memory_size() const { return 0; }
+	virtual int get_working_memory_size() const override { return 0; }
 
-	virtual int step(const Variant **p_inputs, Variant **p_outputs, StartMode p_start_mode, Variant *p_working_mem, Callable::CallError &r_error, String &r_error_str) {
+	virtual int step(const Variant **p_inputs, Variant **p_outputs, StartMode p_start_mode, Variant *p_working_mem, Callable::CallError &r_error, String &r_error_str) override {
 		if (input_count > 0) {
 			Array arr;
 			for (int i = 0; i < input_count; i++) {
@@ -1100,9 +1100,9 @@ public:
 	bool unary;
 	Variant::Operator op;
 
-	//virtual int get_working_memory_size() const { return 0; }
+	//virtual int get_working_memory_size() const override { return 0; }
 
-	virtual int step(const Variant **p_inputs, Variant **p_outputs, StartMode p_start_mode, Variant *p_working_mem, Callable::CallError &r_error, String &r_error_str) {
+	virtual int step(const Variant **p_inputs, Variant **p_outputs, StartMode p_start_mode, Variant *p_working_mem, Callable::CallError &r_error, String &r_error_str) override {
 		bool valid;
 		if (unary) {
 			Variant::evaluate(op, *p_inputs[0], Variant(), *p_outputs[0], valid);
@@ -1220,9 +1220,9 @@ void VisualScriptSelect::_bind_methods() {
 
 class VisualScriptNodeInstanceSelect : public VisualScriptNodeInstance {
 public:
-	//virtual int get_working_memory_size() const { return 0; }
+	//virtual int get_working_memory_size() const override { return 0; }
 
-	virtual int step(const Variant **p_inputs, Variant **p_outputs, StartMode p_start_mode, Variant *p_working_mem, Callable::CallError &r_error, String &r_error_str) {
+	virtual int step(const Variant **p_inputs, Variant **p_outputs, StartMode p_start_mode, Variant *p_working_mem, Callable::CallError &r_error, String &r_error_str) override {
 		bool cond = *p_inputs[0];
 		if (cond) {
 			*p_outputs[0] = *p_inputs[1];
@@ -1332,7 +1332,7 @@ public:
 	VisualScriptInstance *instance;
 	StringName variable;
 
-	virtual int step(const Variant **p_inputs, Variant **p_outputs, StartMode p_start_mode, Variant *p_working_mem, Callable::CallError &r_error, String &r_error_str) {
+	virtual int step(const Variant **p_inputs, Variant **p_outputs, StartMode p_start_mode, Variant *p_working_mem, Callable::CallError &r_error, String &r_error_str) override {
 		if (!instance->get_variable(variable, p_outputs[0])) {
 			r_error.error = Callable::CallError::CALL_ERROR_INVALID_METHOD;
 			r_error_str = RTR("VariableGet not found in script: ") + "'" + String(variable) + "'";
@@ -1442,9 +1442,9 @@ public:
 	VisualScriptInstance *instance;
 	StringName variable;
 
-	//virtual int get_working_memory_size() const { return 0; }
+	//virtual int get_working_memory_size() const override { return 0; }
 
-	virtual int step(const Variant **p_inputs, Variant **p_outputs, StartMode p_start_mode, Variant *p_working_mem, Callable::CallError &r_error, String &r_error_str) {
+	virtual int step(const Variant **p_inputs, Variant **p_outputs, StartMode p_start_mode, Variant *p_working_mem, Callable::CallError &r_error, String &r_error_str) override {
 		if (!instance->set_variable(variable, *p_inputs[0])) {
 			r_error.error = Callable::CallError::CALL_ERROR_INVALID_METHOD;
 			r_error_str = RTR("VariableSet not found in script: ") + "'" + String(variable) + "'";
@@ -1561,9 +1561,9 @@ void VisualScriptConstant::_bind_methods() {
 class VisualScriptNodeInstanceConstant : public VisualScriptNodeInstance {
 public:
 	Variant constant;
-	//virtual int get_working_memory_size() const { return 0; }
+	//virtual int get_working_memory_size() const override { return 0; }
 
-	virtual int step(const Variant **p_inputs, Variant **p_outputs, StartMode p_start_mode, Variant *p_working_mem, Callable::CallError &r_error, String &r_error_str) {
+	virtual int step(const Variant **p_inputs, Variant **p_outputs, StartMode p_start_mode, Variant *p_working_mem, Callable::CallError &r_error, String &r_error_str) override {
 		*p_outputs[0] = constant;
 		return 0;
 	}
@@ -1654,9 +1654,9 @@ void VisualScriptPreload::_bind_methods() {
 class VisualScriptNodeInstancePreload : public VisualScriptNodeInstance {
 public:
 	Ref<Resource> preload;
-	//virtual int get_working_memory_size() const { return 0; }
+	//virtual int get_working_memory_size() const override { return 0; }
 
-	virtual int step(const Variant **p_inputs, Variant **p_outputs, StartMode p_start_mode, Variant *p_working_mem, Callable::CallError &r_error, String &r_error_str) {
+	virtual int step(const Variant **p_inputs, Variant **p_outputs, StartMode p_start_mode, Variant *p_working_mem, Callable::CallError &r_error, String &r_error_str) override {
 		*p_outputs[0] = preload;
 		return 0;
 	}
@@ -1713,9 +1713,9 @@ String VisualScriptIndexGet::get_caption() const {
 
 class VisualScriptNodeInstanceIndexGet : public VisualScriptNodeInstance {
 public:
-	//virtual int get_working_memory_size() const { return 0; }
+	//virtual int get_working_memory_size() const override { return 0; }
 
-	virtual int step(const Variant **p_inputs, Variant **p_outputs, StartMode p_start_mode, Variant *p_working_mem, Callable::CallError &r_error, String &r_error_str) {
+	virtual int step(const Variant **p_inputs, Variant **p_outputs, StartMode p_start_mode, Variant *p_working_mem, Callable::CallError &r_error, String &r_error_str) override {
 		bool valid;
 		*p_outputs[0] = p_inputs[0]->get(*p_inputs[1], &valid);
 
@@ -1780,9 +1780,9 @@ String VisualScriptIndexSet::get_caption() const {
 
 class VisualScriptNodeInstanceIndexSet : public VisualScriptNodeInstance {
 public:
-	//virtual int get_working_memory_size() const { return 0; }
+	//virtual int get_working_memory_size() const override { return 0; }
 
-	virtual int step(const Variant **p_inputs, Variant **p_outputs, StartMode p_start_mode, Variant *p_working_mem, Callable::CallError &r_error, String &r_error_str) {
+	virtual int step(const Variant **p_inputs, Variant **p_outputs, StartMode p_start_mode, Variant *p_working_mem, Callable::CallError &r_error, String &r_error_str) override {
 		bool valid;
 		((Variant *)p_inputs[0])->set(*p_inputs[1], *p_inputs[2], &valid);
 
@@ -1852,9 +1852,9 @@ int VisualScriptGlobalConstant::get_global_constant() {
 class VisualScriptNodeInstanceGlobalConstant : public VisualScriptNodeInstance {
 public:
 	int index;
-	//virtual int get_working_memory_size() const { return 0; }
+	//virtual int get_working_memory_size() const override { return 0; }
 
-	virtual int step(const Variant **p_inputs, Variant **p_outputs, StartMode p_start_mode, Variant *p_working_mem, Callable::CallError &r_error, String &r_error_str) {
+	virtual int step(const Variant **p_inputs, Variant **p_outputs, StartMode p_start_mode, Variant *p_working_mem, Callable::CallError &r_error, String &r_error_str) override {
 		*p_outputs[0] = CoreConstants::get_global_constant_value(index);
 		return 0;
 	}
@@ -1965,9 +1965,9 @@ class VisualScriptNodeInstanceClassConstant : public VisualScriptNodeInstance {
 public:
 	int value;
 	bool valid;
-	//virtual int get_working_memory_size() const { return 0; }
+	//virtual int get_working_memory_size() const override { return 0; }
 
-	virtual int step(const Variant **p_inputs, Variant **p_outputs, StartMode p_start_mode, Variant *p_working_mem, Callable::CallError &r_error, String &r_error_str) {
+	virtual int step(const Variant **p_inputs, Variant **p_outputs, StartMode p_start_mode, Variant *p_working_mem, Callable::CallError &r_error, String &r_error_str) override {
 		if (!valid) {
 			r_error_str = "Invalid constant name, pick a valid class constant.";
 			r_error.error = Callable::CallError::CALL_ERROR_INVALID_METHOD;
@@ -2099,9 +2099,9 @@ class VisualScriptNodeInstanceBasicTypeConstant : public VisualScriptNodeInstanc
 public:
 	Variant value;
 	bool valid;
-	//virtual int get_working_memory_size() const { return 0; }
+	//virtual int get_working_memory_size() const override { return 0; }
 
-	virtual int step(const Variant **p_inputs, Variant **p_outputs, StartMode p_start_mode, Variant *p_working_mem, Callable::CallError &r_error, String &r_error_str) {
+	virtual int step(const Variant **p_inputs, Variant **p_outputs, StartMode p_start_mode, Variant *p_working_mem, Callable::CallError &r_error, String &r_error_str) override {
 		if (!valid) {
 			r_error_str = "Invalid constant name, pick a valid basic type constant.";
 			r_error.error = Callable::CallError::CALL_ERROR_INVALID_METHOD;
@@ -2228,9 +2228,9 @@ VisualScriptMathConstant::MathConstant VisualScriptMathConstant::get_math_consta
 class VisualScriptNodeInstanceMathConstant : public VisualScriptNodeInstance {
 public:
 	float value;
-	//virtual int get_working_memory_size() const { return 0; }
+	//virtual int get_working_memory_size() const override { return 0; }
 
-	virtual int step(const Variant **p_inputs, Variant **p_outputs, StartMode p_start_mode, Variant *p_working_mem, Callable::CallError &r_error, String &r_error_str) {
+	virtual int step(const Variant **p_inputs, Variant **p_outputs, StartMode p_start_mode, Variant *p_working_mem, Callable::CallError &r_error, String &r_error_str) override {
 		*p_outputs[0] = value;
 		return 0;
 	}
@@ -2322,9 +2322,9 @@ class VisualScriptNodeInstanceEngineSingleton : public VisualScriptNodeInstance
 public:
 	Object *singleton;
 
-	//virtual int get_working_memory_size() const { return 0; }
+	//virtual int get_working_memory_size() const override { return 0; }
 
-	virtual int step(const Variant **p_inputs, Variant **p_outputs, StartMode p_start_mode, Variant *p_working_mem, Callable::CallError &r_error, String &r_error_str) {
+	virtual int step(const Variant **p_inputs, Variant **p_outputs, StartMode p_start_mode, Variant *p_working_mem, Callable::CallError &r_error, String &r_error_str) override {
 		*p_outputs[0] = singleton;
 		return 0;
 	}
@@ -2433,9 +2433,9 @@ public:
 	VisualScriptInstance *instance;
 	NodePath path;
 
-	//virtual int get_working_memory_size() const { return 0; }
+	//virtual int get_working_memory_size() const override { return 0; }
 
-	virtual int step(const Variant **p_inputs, Variant **p_outputs, StartMode p_start_mode, Variant *p_working_mem, Callable::CallError &r_error, String &r_error_str) {
+	virtual int step(const Variant **p_inputs, Variant **p_outputs, StartMode p_start_mode, Variant *p_working_mem, Callable::CallError &r_error, String &r_error_str) override {
 		Node *node = Object::cast_to<Node>(instance->get_owner_ptr());
 		if (!node) {
 			r_error.error = Callable::CallError::CALL_ERROR_INVALID_METHOD;
@@ -2613,9 +2613,9 @@ public:
 	VisualScriptSceneTree *node;
 	VisualScriptInstance *instance;
 
-	//virtual int get_working_memory_size() const { return 0; }
+	//virtual int get_working_memory_size() const override { return 0; }
 
-	virtual int step(const Variant **p_inputs, Variant **p_outputs, StartMode p_start_mode, Variant *p_working_mem, Callable::CallError &r_error, String &r_error_str) {
+	virtual int step(const Variant **p_inputs, Variant **p_outputs, StartMode p_start_mode, Variant *p_working_mem, Callable::CallError &r_error, String &r_error_str) override {
 		Node *node = Object::cast_to<Node>(instance->get_owner_ptr());
 		if (!node) {
 			r_error.error = Callable::CallError::CALL_ERROR_INVALID_METHOD;
@@ -2709,9 +2709,9 @@ class VisualScriptNodeInstanceResourcePath : public VisualScriptNodeInstance {
 public:
 	String path;
 
-	//virtual int get_working_memory_size() const { return 0; }
+	//virtual int get_working_memory_size() const override { return 0; }
 
-	virtual int step(const Variant **p_inputs, Variant **p_outputs, StartMode p_start_mode, Variant *p_working_mem, Callable::CallError &r_error, String &r_error_str) {
+	virtual int step(const Variant **p_inputs, Variant **p_outputs, StartMode p_start_mode, Variant *p_working_mem, Callable::CallError &r_error, String &r_error_str) override {
 		*p_outputs[0] = path;
 		return 0;
 	}
@@ -2781,9 +2781,9 @@ class VisualScriptNodeInstanceSelf : public VisualScriptNodeInstance {
 public:
 	VisualScriptInstance *instance;
 
-	//virtual int get_working_memory_size() const { return 0; }
+	//virtual int get_working_memory_size() const override { return 0; }
 
-	virtual int step(const Variant **p_inputs, Variant **p_outputs, StartMode p_start_mode, Variant *p_working_mem, Callable::CallError &r_error, String &r_error_str) {
+	virtual int step(const Variant **p_inputs, Variant **p_outputs, StartMode p_start_mode, Variant *p_working_mem, Callable::CallError &r_error, String &r_error_str) override {
 		*p_outputs[0] = instance->get_owner_ptr();
 		return 0;
 	}
@@ -2971,8 +2971,8 @@ public:
 	int out_count;
 	int work_mem_size;
 
-	virtual int get_working_memory_size() const { return work_mem_size; }
-	virtual int step(const Variant **p_inputs, Variant **p_outputs, StartMode p_start_mode, Variant *p_working_mem, Callable::CallError &r_error, String &r_error_str) {
+	virtual int get_working_memory_size() const override { return work_mem_size; }
+	virtual int step(const Variant **p_inputs, Variant **p_outputs, StartMode p_start_mode, Variant *p_working_mem, Callable::CallError &r_error, String &r_error_str) override {
 		if (GDVIRTUAL_IS_OVERRIDDEN_PTR(node, _step)) {
 			Array in_values;
 			Array out_values;
@@ -3166,9 +3166,9 @@ public:
 	int input_args;
 	bool valid;
 
-	//virtual int get_working_memory_size() const { return 0; }
+	//virtual int get_working_memory_size() const override { return 0; }
 
-	virtual int step(const Variant **p_inputs, Variant **p_outputs, StartMode p_start_mode, Variant *p_working_mem, Callable::CallError &r_error, String &r_error_str) {
+	virtual int step(const Variant **p_inputs, Variant **p_outputs, StartMode p_start_mode, Variant *p_working_mem, Callable::CallError &r_error, String &r_error_str) override {
 		if (!valid) {
 			r_error_str = "Node requires a script with a _subcall(<args>) method to work.";
 			r_error.error = Callable::CallError::CALL_ERROR_INVALID_METHOD;
@@ -3283,9 +3283,9 @@ class VisualScriptNodeInstanceComment : public VisualScriptNodeInstance {
 public:
 	VisualScriptInstance *instance;
 
-	//virtual int get_working_memory_size() const { return 0; }
+	//virtual int get_working_memory_size() const override { return 0; }
 
-	virtual int step(const Variant **p_inputs, Variant **p_outputs, StartMode p_start_mode, Variant *p_working_mem, Callable::CallError &r_error, String &r_error_str) {
+	virtual int step(const Variant **p_inputs, Variant **p_outputs, StartMode p_start_mode, Variant *p_working_mem, Callable::CallError &r_error, String &r_error_str) override {
 		return 0;
 	}
 };
@@ -3384,9 +3384,9 @@ public:
 	Variant::Type type;
 	int argcount;
 
-	//virtual int get_working_memory_size() const { return 0; }
+	//virtual int get_working_memory_size() const override { return 0; }
 
-	virtual int step(const Variant **p_inputs, Variant **p_outputs, StartMode p_start_mode, Variant *p_working_mem, Callable::CallError &r_error, String &r_error_str) {
+	virtual int step(const Variant **p_inputs, Variant **p_outputs, StartMode p_start_mode, Variant *p_working_mem, Callable::CallError &r_error, String &r_error_str) override {
 		Callable::CallError ce;
 		Variant::construct(type, *p_outputs[0], p_inputs, argcount, ce);
 		if (ce.error != Callable::CallError::CALL_OK) {
@@ -3500,8 +3500,8 @@ public:
 	VisualScriptInstance *instance;
 	StringName name;
 
-	virtual int get_working_memory_size() const { return 1; }
-	virtual int step(const Variant **p_inputs, Variant **p_outputs, StartMode p_start_mode, Variant *p_working_mem, Callable::CallError &r_error, String &r_error_str) {
+	virtual int get_working_memory_size() const override { return 1; }
+	virtual int step(const Variant **p_inputs, Variant **p_outputs, StartMode p_start_mode, Variant *p_working_mem, Callable::CallError &r_error, String &r_error_str) override {
 		*p_outputs[0] = *p_working_mem;
 		return 0;
 	}
@@ -3607,8 +3607,8 @@ public:
 	VisualScriptInstance *instance;
 	StringName name;
 
-	virtual int get_working_memory_size() const { return 1; }
-	virtual int step(const Variant **p_inputs, Variant **p_outputs, StartMode p_start_mode, Variant *p_working_mem, Callable::CallError &r_error, String &r_error_str) {
+	virtual int get_working_memory_size() const override { return 1; }
+	virtual int step(const Variant **p_inputs, Variant **p_outputs, StartMode p_start_mode, Variant *p_working_mem, Callable::CallError &r_error, String &r_error_str) override {
 		*p_working_mem = *p_inputs[0];
 		*p_outputs[0] = *p_working_mem;
 		return 0;
@@ -3732,7 +3732,7 @@ public:
 	StringName action;
 	VisualScriptInputAction::Mode mode;
 
-	virtual int step(const Variant **p_inputs, Variant **p_outputs, StartMode p_start_mode, Variant *p_working_mem, Callable::CallError &r_error, String &r_error_str) {
+	virtual int step(const Variant **p_inputs, Variant **p_outputs, StartMode p_start_mode, Variant *p_working_mem, Callable::CallError &r_error, String &r_error_str) override {
 		switch (mode) {
 			case VisualScriptInputAction::MODE_PRESSED: {
 				*p_outputs[0] = Input::get_singleton()->is_action_pressed(action);
@@ -3909,9 +3909,9 @@ public:
 	VisualScriptInstance *instance;
 	Vector<StringName> outputs;
 
-	//virtual int get_working_memory_size() const { return 0; }
+	//virtual int get_working_memory_size() const override { return 0; }
 
-	virtual int step(const Variant **p_inputs, Variant **p_outputs, StartMode p_start_mode, Variant *p_working_mem, Callable::CallError &r_error, String &r_error_str) {
+	virtual int step(const Variant **p_inputs, Variant **p_outputs, StartMode p_start_mode, Variant *p_working_mem, Callable::CallError &r_error, String &r_error_str) override {
 		Variant in = *p_inputs[0];
 
 		for (int i = 0; i < outputs.size(); i++) {

+ 4 - 4
modules/visual_script/visual_script_yield_nodes.cpp

@@ -95,11 +95,11 @@ public:
 	VisualScriptYield::YieldMode mode;
 	double wait_time;
 
-	virtual int get_working_memory_size() const { return 1; } //yield needs at least 1
+	virtual int get_working_memory_size() const override { return 1; } //yield needs at least 1
 	//virtual bool is_output_port_unsequenced(int p_idx) const { return false; }
 	//virtual bool get_output_port_unsequenced(int p_idx,Variant* r_value,Variant* p_working_mem,String &r_error) const { return false; }
 
-	virtual int step(const Variant **p_inputs, Variant **p_outputs, StartMode p_start_mode, Variant *p_working_mem, Callable::CallError &r_error, String &r_error_str) {
+	virtual int step(const Variant **p_inputs, Variant **p_outputs, StartMode p_start_mode, Variant *p_working_mem, Callable::CallError &r_error, String &r_error_str) override {
 		if (p_start_mode == START_MODE_RESUME_YIELD) {
 			return 0; //resuming yield
 		} else {
@@ -506,11 +506,11 @@ public:
 	VisualScriptYieldSignal *node;
 	VisualScriptInstance *instance;
 
-	virtual int get_working_memory_size() const { return 1; }
+	virtual int get_working_memory_size() const override { return 1; }
 	//virtual bool is_output_port_unsequenced(int p_idx) const { return false; }
 	//virtual bool get_output_port_unsequenced(int p_idx,Variant* r_value,Variant* p_working_mem,String &r_error) const { return true; }
 
-	virtual int step(const Variant **p_inputs, Variant **p_outputs, StartMode p_start_mode, Variant *p_working_mem, Callable::CallError &r_error, String &r_error_str) {
+	virtual int step(const Variant **p_inputs, Variant **p_outputs, StartMode p_start_mode, Variant *p_working_mem, Callable::CallError &r_error, String &r_error_str) override {
 		if (p_start_mode == START_MODE_RESUME_YIELD) {
 			return 0; //resuming yield
 		} else {

+ 9 - 9
modules/webrtc/webrtc_peer_connection_js.h

@@ -63,16 +63,16 @@ private:
 	static void _on_error(void *p_obj);
 
 public:
-	virtual ConnectionState get_connection_state() const;
+	virtual ConnectionState get_connection_state() const override;
 
-	virtual Error initialize(Dictionary configuration = Dictionary());
-	virtual Ref<WebRTCDataChannel> create_data_channel(String p_channel_name, Dictionary p_channel_config = Dictionary());
-	virtual Error create_offer();
-	virtual Error set_remote_description(String type, String sdp);
-	virtual Error set_local_description(String type, String sdp);
-	virtual Error add_ice_candidate(String sdpMidName, int sdpMlineIndexName, String sdpName);
-	virtual Error poll();
-	virtual void close();
+	virtual Error initialize(Dictionary configuration = Dictionary()) override;
+	virtual Ref<WebRTCDataChannel> create_data_channel(String p_channel_name, Dictionary p_channel_config = Dictionary()) override;
+	virtual Error create_offer() override;
+	virtual Error set_remote_description(String type, String sdp) override;
+	virtual Error set_local_description(String type, String sdp) override;
+	virtual Error add_ice_candidate(String sdpMidName, int sdpMlineIndexName, String sdpName) override;
+	virtual Error poll() override;
+	virtual void close() override;
 
 	WebRTCPeerConnectionJS();
 	~WebRTCPeerConnectionJS();

+ 9 - 9
modules/websocket/emws_client.h

@@ -53,15 +53,15 @@ private:
 	static void _esws_on_close(void *obj, int code, const char *reason, int was_clean);
 
 public:
-	Error set_buffers(int p_in_buffer, int p_in_packets, int p_out_buffer, int p_out_packets);
-	Error connect_to_host(String p_host, String p_path, uint16_t p_port, bool p_ssl, const Vector<String> p_protocol = Vector<String>(), const Vector<String> p_custom_headers = Vector<String>());
-	Ref<WebSocketPeer> get_peer(int p_peer_id) const;
-	void disconnect_from_host(int p_code = 1000, String p_reason = "");
-	IPAddress get_connected_host() const;
-	uint16_t get_connected_port() const;
-	virtual ConnectionStatus get_connection_status() const;
-	int get_max_packet_size() const;
-	virtual void poll();
+	Error set_buffers(int p_in_buffer, int p_in_packets, int p_out_buffer, int p_out_packets) override;
+	Error connect_to_host(String p_host, String p_path, uint16_t p_port, bool p_ssl, const Vector<String> p_protocol = Vector<String>(), const Vector<String> p_custom_headers = Vector<String>()) override;
+	Ref<WebSocketPeer> get_peer(int p_peer_id) const override;
+	void disconnect_from_host(int p_code = 1000, String p_reason = "") override;
+	IPAddress get_connected_host() const override;
+	uint16_t get_connected_port() const override;
+	virtual ConnectionStatus get_connection_status() const override;
+	int get_max_packet_size() const override;
+	virtual void poll() override;
 	EMWSClient();
 	~EMWSClient();
 };

+ 13 - 13
modules/websocket/emws_peer.h

@@ -68,21 +68,21 @@ private:
 public:
 	Error read_msg(const uint8_t *p_data, uint32_t p_size, bool p_is_string);
 	void set_sock(int p_sock, unsigned int p_in_buf_size, unsigned int p_in_pkt_size, unsigned int p_out_buf_size);
-	virtual int get_available_packet_count() const;
-	virtual Error get_packet(const uint8_t **r_buffer, int &r_buffer_size);
-	virtual Error put_packet(const uint8_t *p_buffer, int p_buffer_size);
-	virtual int get_max_packet_size() const { return _packet_buffer.size(); };
-	virtual int get_current_outbound_buffered_amount() const;
+	virtual int get_available_packet_count() const override;
+	virtual Error get_packet(const uint8_t **r_buffer, int &r_buffer_size) override;
+	virtual Error put_packet(const uint8_t *p_buffer, int p_buffer_size) override;
+	virtual int get_max_packet_size() const override { return _packet_buffer.size(); };
+	virtual int get_current_outbound_buffered_amount() const override;
 
-	virtual void close(int p_code = 1000, String p_reason = "");
-	virtual bool is_connected_to_host() const;
-	virtual IPAddress get_connected_host() const;
-	virtual uint16_t get_connected_port() const;
+	virtual void close(int p_code = 1000, String p_reason = "") override;
+	virtual bool is_connected_to_host() const override;
+	virtual IPAddress get_connected_host() const override;
+	virtual uint16_t get_connected_port() const override;
 
-	virtual WriteMode get_write_mode() const;
-	virtual void set_write_mode(WriteMode p_mode);
-	virtual bool was_string_packet() const;
-	virtual void set_no_delay(bool p_enabled);
+	virtual WriteMode get_write_mode() const override;
+	virtual void set_write_mode(WriteMode p_mode) override;
+	virtual bool was_string_packet() const override;
+	virtual void set_no_delay(bool p_enabled) override;
 
 	EMWSPeer();
 	~EMWSPeer();

+ 11 - 11
modules/websocket/emws_server.h

@@ -41,17 +41,17 @@ class EMWSServer : public WebSocketServer {
 	GDCIIMPL(EMWSServer, WebSocketServer);
 
 public:
-	Error set_buffers(int p_in_buffer, int p_in_packets, int p_out_buffer, int p_out_packets);
-	Error listen(int p_port, Vector<String> p_protocols = Vector<String>(), bool gd_mp_api = false);
-	void stop();
-	bool is_listening() const;
-	bool has_peer(int p_id) const;
-	Ref<WebSocketPeer> get_peer(int p_id) const;
-	IPAddress get_peer_address(int p_peer_id) const;
-	int get_peer_port(int p_peer_id) const;
-	void disconnect_peer(int p_peer_id, int p_code = 1000, String p_reason = "");
-	int get_max_packet_size() const;
-	virtual void poll();
+	Error set_buffers(int p_in_buffer, int p_in_packets, int p_out_buffer, int p_out_packets) override;
+	Error listen(int p_port, Vector<String> p_protocols = Vector<String>(), bool gd_mp_api = false) override;
+	void stop() override;
+	bool is_listening() const override;
+	bool has_peer(int p_id) const override;
+	Ref<WebSocketPeer> get_peer(int p_id) const override;
+	IPAddress get_peer_address(int p_peer_id) const override;
+	int get_peer_port(int p_peer_id) const override;
+	void disconnect_peer(int p_peer_id, int p_code = 1000, String p_reason = "") override;
+	int get_max_packet_size() const override;
+	virtual void poll() override;
 	virtual Vector<String> get_protocols() const;
 
 	EMWSServer();

+ 8 - 8
modules/websocket/remote_debugger_peer_websocket.h

@@ -51,14 +51,14 @@ public:
 	static RemoteDebuggerPeer *create(const String &p_uri);
 
 	Error connect_to_host(const String &p_uri);
-	bool is_peer_connected();
-	int get_max_message_size() const;
-	bool has_message();
-	Error put_message(const Array &p_arr);
-	Array get_message();
-	void close();
-	void poll();
-	bool can_block() const;
+	bool is_peer_connected() override;
+	int get_max_message_size() const override;
+	bool has_message() override;
+	Error put_message(const Array &p_arr) override;
+	Array get_message() override;
+	void close() override;
+	void poll() override;
+	bool can_block() const override;
 
 	RemoteDebuggerPeerWebSocket(Ref<WebSocketPeer> p_peer = Ref<WebSocketPeer>());
 };

+ 9 - 9
modules/websocket/wsl_client.h

@@ -73,15 +73,15 @@ private:
 	bool _verify_headers(String &r_protocol);
 
 public:
-	Error set_buffers(int p_in_buffer, int p_in_packets, int p_out_buffer, int p_out_packets);
-	Error connect_to_host(String p_host, String p_path, uint16_t p_port, bool p_ssl, const Vector<String> p_protocol = Vector<String>(), const Vector<String> p_custom_headers = Vector<String>());
-	int get_max_packet_size() const;
-	Ref<WebSocketPeer> get_peer(int p_peer_id) const;
-	void disconnect_from_host(int p_code = 1000, String p_reason = "");
-	IPAddress get_connected_host() const;
-	uint16_t get_connected_port() const;
-	virtual ConnectionStatus get_connection_status() const;
-	virtual void poll();
+	Error set_buffers(int p_in_buffer, int p_in_packets, int p_out_buffer, int p_out_packets) override;
+	Error connect_to_host(String p_host, String p_path, uint16_t p_port, bool p_ssl, const Vector<String> p_protocol = Vector<String>(), const Vector<String> p_custom_headers = Vector<String>()) override;
+	int get_max_packet_size() const override;
+	Ref<WebSocketPeer> get_peer(int p_peer_id) const override;
+	void disconnect_from_host(int p_code = 1000, String p_reason = "") override;
+	IPAddress get_connected_host() const override;
+	uint16_t get_connected_port() const override;
+	virtual ConnectionStatus get_connection_status() const override;
+	virtual void poll() override;
 
 	WSLClient();
 	~WSLClient();

+ 5 - 5
modules/websocket/wsl_peer.cpp

@@ -146,17 +146,17 @@ void wsl_msg_recv_callback(wslay_event_context_ptr ctx, const struct wslay_event
 	if (!peer_data->valid || peer_data->closing) {
 		return;
 	}
-	WSLPeer *peer = (WSLPeer *)peer_data->peer;
+	WSLPeer *peer = static_cast<WSLPeer *>(peer_data->peer);
 
 	if (peer->parse_message(arg) != OK) {
 		return;
 	}
 
 	if (peer_data->is_server) {
-		WSLServer *helper = (WSLServer *)peer_data->obj;
+		WSLServer *helper = static_cast<WSLServer *>(peer_data->obj);
 		helper->_on_peer_packet(peer_data->id);
 	} else {
-		WSLClient *helper = (WSLClient *)peer_data->obj;
+		WSLClient *helper = static_cast<WSLClient *>(peer_data->obj);
 		helper->_on_peer_packet();
 	}
 }
@@ -184,10 +184,10 @@ Error WSLPeer::parse_message(const wslay_event_on_msg_recv_arg *arg) {
 		}
 		if (!wslay_event_get_close_sent(_data->ctx)) {
 			if (_data->is_server) {
-				WSLServer *helper = (WSLServer *)_data->obj;
+				WSLServer *helper = static_cast<WSLServer *>(_data->obj);
 				helper->_on_close_request(_data->id, close_code, close_reason);
 			} else {
-				WSLClient *helper = (WSLClient *)_data->obj;
+				WSLClient *helper = static_cast<WSLClient *>(_data->obj);
 				helper->_on_close_request(close_code, close_reason);
 			}
 		}

+ 14 - 14
modules/websocket/wsl_peer.h

@@ -85,22 +85,22 @@ public:
 	String close_reason;
 	void poll(); // Used by client and server.
 
-	virtual int get_available_packet_count() const;
-	virtual Error get_packet(const uint8_t **r_buffer, int &r_buffer_size);
-	virtual Error put_packet(const uint8_t *p_buffer, int p_buffer_size);
-	virtual int get_max_packet_size() const { return _packet_buffer.size(); };
-	virtual int get_current_outbound_buffered_amount() const;
+	virtual int get_available_packet_count() const override;
+	virtual Error get_packet(const uint8_t **r_buffer, int &r_buffer_size) override;
+	virtual Error put_packet(const uint8_t *p_buffer, int p_buffer_size) override;
+	virtual int get_max_packet_size() const override { return _packet_buffer.size(); };
+	virtual int get_current_outbound_buffered_amount() const override;
 
 	virtual void close_now();
-	virtual void close(int p_code = 1000, String p_reason = "");
-	virtual bool is_connected_to_host() const;
-	virtual IPAddress get_connected_host() const;
-	virtual uint16_t get_connected_port() const;
-
-	virtual WriteMode get_write_mode() const;
-	virtual void set_write_mode(WriteMode p_mode);
-	virtual bool was_string_packet() const;
-	virtual void set_no_delay(bool p_enabled);
+	virtual void close(int p_code = 1000, String p_reason = "") override;
+	virtual bool is_connected_to_host() const override;
+	virtual IPAddress get_connected_host() const override;
+	virtual uint16_t get_connected_port() const override;
+
+	virtual WriteMode get_write_mode() const override;
+	virtual void set_write_mode(WriteMode p_mode) override;
+	virtual bool was_string_packet() const override;
+	virtual void set_no_delay(bool p_enabled) override;
 
 	void make_context(PeerData *p_data, unsigned int p_in_buf_size, unsigned int p_in_pkt_size, unsigned int p_out_buf_size, unsigned int p_out_pkt_size);
 	Error parse_message(const wslay_event_on_msg_recv_arg *arg);

+ 2 - 2
modules/websocket/wsl_server.cpp

@@ -183,7 +183,7 @@ Error WSLServer::listen(int p_port, const Vector<String> p_protocols, bool gd_mp
 void WSLServer::poll() {
 	List<int> remove_ids;
 	for (const KeyValue<int, Ref<WebSocketPeer>> &E : _peer_map) {
-		Ref<WSLPeer> peer = (WSLPeer *)E.value.ptr();
+		Ref<WSLPeer> peer = const_cast<WSLPeer *>(static_cast<const WSLPeer *>(E.value.ptr()));
 		peer->poll();
 		if (!peer->is_connected_to_host()) {
 			_on_disconnect(E.key, peer->close_code != -1);
@@ -266,7 +266,7 @@ int WSLServer::get_max_packet_size() const {
 void WSLServer::stop() {
 	_server->stop();
 	for (const KeyValue<int, Ref<WebSocketPeer>> &E : _peer_map) {
-		Ref<WSLPeer> peer = (WSLPeer *)E.value.ptr();
+		Ref<WSLPeer> peer = const_cast<WSLPeer *>(static_cast<const WSLPeer *>(E.value.ptr()));
 		peer->close_now();
 	}
 	_pending.clear();

+ 11 - 11
modules/websocket/wsl_server.h

@@ -75,17 +75,17 @@ private:
 	Vector<String> _protocols;
 
 public:
-	Error set_buffers(int p_in_buffer, int p_in_packets, int p_out_buffer, int p_out_packets);
-	Error listen(int p_port, const Vector<String> p_protocols = Vector<String>(), bool gd_mp_api = false);
-	void stop();
-	bool is_listening() const;
-	int get_max_packet_size() const;
-	bool has_peer(int p_id) const;
-	Ref<WebSocketPeer> get_peer(int p_id) const;
-	IPAddress get_peer_address(int p_peer_id) const;
-	int get_peer_port(int p_peer_id) const;
-	void disconnect_peer(int p_peer_id, int p_code = 1000, String p_reason = "");
-	virtual void poll();
+	Error set_buffers(int p_in_buffer, int p_in_packets, int p_out_buffer, int p_out_packets) override;
+	Error listen(int p_port, const Vector<String> p_protocols = Vector<String>(), bool gd_mp_api = false) override;
+	void stop() override;
+	bool is_listening() const override;
+	int get_max_packet_size() const override;
+	bool has_peer(int p_id) const override;
+	Ref<WebSocketPeer> get_peer(int p_id) const override;
+	IPAddress get_peer_address(int p_peer_id) const override;
+	int get_peer_port(int p_peer_id) const override;
+	void disconnect_peer(int p_peer_id, int p_code = 1000, String p_reason = "") override;
+	virtual void poll() override;
 
 	WSLServer();
 	~WSLServer();

+ 2 - 2
platform/android/audio_driver_opensl.cpp

@@ -75,7 +75,7 @@ void AudioDriverOpenSL::_buffer_callback(
 void AudioDriverOpenSL::_buffer_callbacks(
 		SLAndroidSimpleBufferQueueItf queueItf,
 		void *pContext) {
-	AudioDriverOpenSL *ad = (AudioDriverOpenSL *)pContext;
+	AudioDriverOpenSL *ad = static_cast<AudioDriverOpenSL *>(pContext);
 
 	ad->_buffer_callback(queueItf);
 }
@@ -208,7 +208,7 @@ void AudioDriverOpenSL::_record_buffer_callback(SLAndroidSimpleBufferQueueItf qu
 }
 
 void AudioDriverOpenSL::_record_buffer_callbacks(SLAndroidSimpleBufferQueueItf queueItf, void *pContext) {
-	AudioDriverOpenSL *ad = (AudioDriverOpenSL *)pContext;
+	AudioDriverOpenSL *ad = static_cast<AudioDriverOpenSL *>(pContext);
 
 	ad->_record_buffer_callback(queueItf);
 }

+ 2 - 2
platform/android/display_server_android.cpp

@@ -42,7 +42,7 @@
 #endif
 
 DisplayServerAndroid *DisplayServerAndroid::get_singleton() {
-	return (DisplayServerAndroid *)DisplayServer::get_singleton();
+	return static_cast<DisplayServerAndroid *>(DisplayServer::get_singleton());
 }
 
 bool DisplayServerAndroid::has_feature(Feature p_feature) const {
@@ -277,7 +277,7 @@ int64_t DisplayServerAndroid::window_get_native_handle(HandleType p_handle_type,
 			return 0; // Not supported.
 		}
 		case WINDOW_HANDLE: {
-			return (int64_t)((OS_Android *)OS::get_singleton())->get_godot_java()->get_activity();
+			return reinterpret_cast<int64_t>(static_cast<OS_Android *>(OS::get_singleton())->get_godot_java()->get_activity());
 		}
 		case WINDOW_VIEW: {
 			return 0; // Not supported.

+ 10 - 4
platform/android/export/export_plugin.cpp

@@ -249,7 +249,7 @@ static const int DEFAULT_TARGET_SDK_VERSION = 30; // Should match the value in '
 const String SDK_VERSION_RANGE = vformat("%s,%s,1", DEFAULT_MIN_SDK_VERSION, DEFAULT_TARGET_SDK_VERSION);
 
 void EditorExportPlatformAndroid::_check_for_changes_poll_thread(void *ud) {
-	EditorExportPlatformAndroid *ea = (EditorExportPlatformAndroid *)ud;
+	EditorExportPlatformAndroid *ea = static_cast<EditorExportPlatformAndroid *>(ud);
 
 	while (!ea->quit_request.is_set()) {
 		// Check for plugins updates
@@ -685,7 +685,7 @@ Error EditorExportPlatformAndroid::save_apk_so(void *p_userdata, const SharedObj
 		ERR_PRINT(err);
 		return FAILED;
 	}
-	APKExportData *ed = (APKExportData *)p_userdata;
+	APKExportData *ed = static_cast<APKExportData *>(p_userdata);
 	Vector<String> abis = get_abis();
 	bool exported = false;
 	for (int i = 0; i < p_so.tags.size(); ++i) {
@@ -710,7 +710,7 @@ Error EditorExportPlatformAndroid::save_apk_so(void *p_userdata, const SharedObj
 }
 
 Error EditorExportPlatformAndroid::save_apk_file(void *p_userdata, const String &p_path, const Vector<uint8_t> &p_data, int p_file, int p_total, const Vector<String> &p_enc_in_filters, const Vector<String> &p_enc_ex_filters, const Vector<uint8_t> &p_key) {
-	APKExportData *ed = (APKExportData *)p_userdata;
+	APKExportData *ed = static_cast<APKExportData *>(p_userdata);
 	String dst_path = p_path.replace_first("res://", "assets/");
 
 	store_in_apk(ed, dst_path, p_data, _should_compress_asset(p_path, p_data) ? Z_DEFLATED : 0);
@@ -725,7 +725,7 @@ Error EditorExportPlatformAndroid::copy_gradle_so(void *p_userdata, const Shared
 	ERR_FAIL_COND_V_MSG(!p_so.path.get_file().begins_with("lib"), FAILED,
 			"Android .so file names must start with \"lib\", but got: " + p_so.path);
 	Vector<String> abis = get_abis();
-	CustomExportData *export_data = (CustomExportData *)p_userdata;
+	CustomExportData *export_data = static_cast<CustomExportData *>(p_userdata);
 	bool exported = false;
 	for (int i = 0; i < p_so.tags.size(); ++i) {
 		int abi_index = abis.find(p_so.tags[i]);
@@ -2812,6 +2812,9 @@ Error EditorExportPlatformAndroid::export_project_helper(const Ref<EditorExportP
 		unz_file_info info;
 		char fname[16384];
 		ret = unzGetCurrentFileInfo(pkg, &info, fname, 16384, nullptr, 0, nullptr, 0);
+		if (ret != UNZ_OK) {
+			break;
+		}
 
 		bool skip = false;
 
@@ -2996,6 +2999,9 @@ Error EditorExportPlatformAndroid::export_project_helper(const Ref<EditorExportP
 		char fname[16384];
 		char extra[16384];
 		ret = unzGetCurrentFileInfo(tmp_unaligned, &info, fname, 16384, extra, 16384 - ZIP_ALIGNMENT, nullptr, 0);
+		if (ret != UNZ_OK) {
+			break;
+		}
 
 		String file = String::utf8(fname);
 

+ 1 - 1
platform/android/export/gradle_export_util.cpp

@@ -122,7 +122,7 @@ Error store_string_at_path(const String &p_path, const String &p_data) {
 // It's functionality mirrors that of the method save_apk_file.
 // This method will be called ONLY when custom build is enabled.
 Error rename_and_store_file_in_gradle_project(void *p_userdata, const String &p_path, const Vector<uint8_t> &p_data, int p_file, int p_total, const Vector<String> &p_enc_in_filters, const Vector<String> &p_enc_ex_filters, const Vector<uint8_t> &p_key) {
-	CustomExportData *export_data = (CustomExportData *)p_userdata;
+	CustomExportData *export_data = static_cast<CustomExportData *>(p_userdata);
 	String dst_path = p_path.replace_first("res://", export_data->assets_directory + "/");
 	print_verbose("Saving project files from " + p_path + " into " + dst_path);
 	Error err = store_file_at_path(dst_path, p_data);

部分文件因文件數量過多而無法顯示