Selaa lähdekoodia

Initialize class/struct variables with default values in modules/

Rafał Mikrut 4 vuotta sitten
vanhempi
commit
f7209b459b
100 muutettua tiedostoa jossa 533 lisäystä ja 772 poistoa
  1. 0 1
      modules/basis_universal/texture_basisu.cpp
  2. 1 1
      modules/basis_universal/texture_basisu.h
  3. 15 15
      modules/bmp/image_loader_bmp.h
  4. 5 5
      modules/bullet/area_bullet.h
  5. 1 3
      modules/bullet/btRayShape.cpp
  6. 3 3
      modules/bullet/btRayShape.h
  7. 1 1
      modules/bullet/collision_object_bullet.h
  8. 1 1
      modules/bullet/godot_motion_state.h
  9. 1 1
      modules/bullet/godot_ray_world_algorithm.h
  10. 19 19
      modules/bullet/godot_result_callbacks.h
  11. 1 1
      modules/bullet/rid_bullet.h
  12. 11 11
      modules/bullet/rigid_body_bullet.h
  13. 5 5
      modules/bullet/shape_bullet.h
  14. 1 1
      modules/bullet/soft_body_bullet.h
  15. 6 6
      modules/bullet/space_bullet.cpp
  16. 3 3
      modules/bullet/space_bullet.h
  17. 16 16
      modules/csg/csg.h
  18. 0 9
      modules/csg/csg_shape.cpp
  19. 14 14
      modules/csg/csg_shape.h
  20. 9 9
      modules/cvtt/image_compress_cvtt.cpp
  21. 5 5
      modules/dds/texture_loader_dds.cpp
  22. 0 16
      modules/enet/networked_multiplayer_enet.cpp
  23. 19 19
      modules/enet/networked_multiplayer_enet.h
  24. 5 5
      modules/etc/texture_loader_pkm.cpp
  25. 3 3
      modules/gdnative/gdnative_library_editor_plugin.h
  26. 0 7
      modules/gdnative/nativescript/nativescript.cpp
  27. 17 17
      modules/gdnative/nativescript/nativescript.h
  28. 3 3
      modules/gdnative/pluginscript/pluginscript_instance.h
  29. 1 1
      modules/gdnative/videodecoder/video_stream_gdnative.h
  30. 5 9
      modules/gdnavigation/nav_utils.h
  31. 1 1
      modules/gdnavigation/rvo_agent.h
  32. 2 2
      modules/gdscript/editor/gdscript_translation_parser_plugin.h
  33. 1 12
      modules/gdscript/gdscript.cpp
  34. 8 8
      modules/gdscript/gdscript.h
  35. 2 2
      modules/gdscript/gdscript_compiler.h
  36. 3 4
      modules/gdscript/gdscript_function.cpp
  37. 8 8
      modules/gdscript/gdscript_function.h
  38. 3 3
      modules/gdscript/gdscript_parser.h
  39. 0 1
      modules/gdscript/gdscript_tokenizer.h
  40. 0 5
      modules/gdscript/language_server/gdscript_language_server.cpp
  41. 4 4
      modules/gdscript/language_server/gdscript_language_server.h
  42. 7 7
      modules/gdscript/language_server/lsp.hpp
  43. 2 2
      modules/gltf/gltf_camera.h
  44. 2 2
      modules/gltf/gltf_document.cpp
  45. 0 19
      modules/gridmap/grid_map.cpp
  46. 25 29
      modules/gridmap/grid_map.h
  47. 1 12
      modules/gridmap/grid_map_editor_plugin.cpp
  48. 17 17
      modules/gridmap/grid_map_editor_plugin.h
  49. 51 51
      modules/lightmapper_rd/lightmapper_rd.h
  50. 0 1
      modules/mbedtls/packet_peer_mbed_dtls.cpp
  51. 1 1
      modules/mbedtls/packet_peer_mbed_dtls.h
  52. 0 2
      modules/mbedtls/ssl_context_mbedtls.cpp
  53. 2 2
      modules/mbedtls/ssl_context_mbedtls.h
  54. 0 1
      modules/mbedtls/stream_peer_mbedtls.cpp
  55. 1 1
      modules/mbedtls/stream_peer_mbedtls.h
  56. 3 3
      modules/minimp3/audio_stream_mp3.h
  57. 1 13
      modules/mobile_vr/mobile_vr_interface.cpp
  58. 14 12
      modules/mobile_vr/mobile_vr_interface.h
  59. 0 2
      modules/mono/mono_gd/gd_mono_log.cpp
  60. 2 2
      modules/mono/mono_gd/gd_mono_log.h
  61. 0 9
      modules/opensimplex/noise_texture.cpp
  62. 8 8
      modules/opensimplex/noise_texture.h
  63. 0 6
      modules/opensimplex/open_simplex_noise.cpp
  64. 5 5
      modules/opensimplex/open_simplex_noise.h
  65. 1 1
      modules/pvr/texture_loader_pvr.cpp
  66. 0 2
      modules/regex/regex.cpp
  67. 3 3
      modules/regex/regex.h
  68. 1 10
      modules/stb_vorbis/audio_stream_ogg_vorbis.cpp
  69. 12 12
      modules/stb_vorbis/audio_stream_ogg_vorbis.h
  70. 2 2
      modules/text_server_adv/bitmap_font_adv.cpp
  71. 5 8
      modules/text_server_adv/dynamic_font_adv.h
  72. 3 3
      modules/text_server_adv/script_iterator.h
  73. 1 1
      modules/text_server_fb/bitmap_font_fb.cpp
  74. 5 8
      modules/text_server_fb/dynamic_font_fb.h
  75. 11 11
      modules/tga/image_loader_tga.h
  76. 0 17
      modules/theora/video_stream_theora.cpp
  77. 24 24
      modules/theora/video_stream_theora.h
  78. 0 3
      modules/upnp/upnp.cpp
  79. 3 3
      modules/upnp/upnp.h
  80. 0 9
      modules/visual_script/visual_script.cpp
  81. 44 47
      modules/visual_script/visual_script.h
  82. 0 6
      modules/visual_script/visual_script_expression.cpp
  83. 21 24
      modules/visual_script/visual_script_expression.h
  84. 0 7
      modules/webrtc/webrtc_data_channel_js.cpp
  85. 4 4
      modules/webrtc/webrtc_data_channel_js.h
  86. 0 4
      modules/websocket/emws_client.cpp
  87. 4 4
      modules/websocket/emws_client.h
  88. 0 2
      modules/websocket/emws_peer.cpp
  89. 3 3
      modules/websocket/emws_peer.h
  90. 0 1
      modules/websocket/websocket_client.cpp
  91. 1 1
      modules/websocket/websocket_client.h
  92. 0 9
      modules/websocket/websocket_multiplayer_peer.cpp
  93. 8 8
      modules/websocket/websocket_multiplayer_peer.h
  94. 0 5
      modules/websocket/wsl_client.cpp
  95. 7 7
      modules/websocket/wsl_client.h
  96. 0 4
      modules/websocket/wsl_peer.cpp
  97. 13 25
      modules/websocket/wsl_peer.h
  98. 0 13
      modules/websocket/wsl_server.cpp
  99. 10 12
      modules/websocket/wsl_server.h
  100. 2 2
      modules/xatlas_unwrap/register_types.cpp

+ 0 - 1
modules/basis_universal/texture_basisu.cpp

@@ -207,7 +207,6 @@ Vector<uint8_t> TextureBasisU::get_basisu_data() const {
 };
 
 TextureBasisU::TextureBasisU() {
-	flags = FLAGS_DEFAULT;
 	texture = RenderingServer::get_singleton()->texture_create();
 };
 

+ 1 - 1
modules/basis_universal/texture_basisu.h

@@ -47,7 +47,7 @@ class TextureBasisU : public Texture {
 	RID texture;
 	Size2 tex_size;
 
-	uint32_t flags;
+	uint32_t flags = FLAGS_DEFAULT;
 
 	Vector<uint8_t> data;
 

+ 15 - 15
modules/bmp/image_loader_bmp.h

@@ -55,24 +55,24 @@ protected:
 
 	struct bmp_header_s {
 		struct bmp_file_header_s {
-			uint16_t bmp_signature;
-			uint32_t bmp_file_size;
-			uint32_t bmp_file_padding;
-			uint32_t bmp_file_offset;
+			uint16_t bmp_signature = 0;
+			uint32_t bmp_file_size = 0;
+			uint32_t bmp_file_padding = 0;
+			uint32_t bmp_file_offset = 0;
 		} bmp_file_header;
 
 		struct bmp_info_header_s {
-			uint32_t bmp_header_size;
-			uint32_t bmp_width;
-			uint32_t bmp_height;
-			uint16_t bmp_planes;
-			uint16_t bmp_bit_count;
-			uint32_t bmp_compression;
-			uint32_t bmp_size_image;
-			uint32_t bmp_pixels_per_meter_x;
-			uint32_t bmp_pixels_per_meter_y;
-			uint32_t bmp_colors_used;
-			uint32_t bmp_important_colors;
+			uint32_t bmp_header_size = 0;
+			uint32_t bmp_width = 0;
+			uint32_t bmp_height = 0;
+			uint16_t bmp_planes = 0;
+			uint16_t bmp_bit_count = 0;
+			uint32_t bmp_compression = 0;
+			uint32_t bmp_size_image = 0;
+			uint32_t bmp_pixels_per_meter_x = 0;
+			uint32_t bmp_pixels_per_meter_y = 0;
+			uint32_t bmp_colors_used = 0;
+			uint32_t bmp_important_colors = 0;
 		} bmp_info_header;
 	};
 

+ 5 - 5
modules/bullet/area_bullet.h

@@ -80,18 +80,18 @@ public:
 private:
 	// These are used by function callEvent. Instead to create this each call I create if one time.
 	Variant call_event_res[5];
-	Variant *call_event_res_ptr[5];
+	Variant *call_event_res_ptr[5] = {};
 
-	btGhostObject *btGhost;
+	btGhostObject *btGhost = nullptr;
 	Vector<OverlappingObjectData> overlappingObjects;
 	bool monitorable = true;
 
 	PhysicsServer3D::AreaSpaceOverrideMode spOv_mode = PhysicsServer3D::AREA_SPACE_OVERRIDE_DISABLED;
 	bool spOv_gravityPoint = false;
-	real_t spOv_gravityPointDistanceScale = 0;
-	real_t spOv_gravityPointAttenuation = 1;
+	real_t spOv_gravityPointDistanceScale = 0.0;
+	real_t spOv_gravityPointAttenuation = 1.0;
 	Vector3 spOv_gravityVec = Vector3(0, -1, 0);
-	real_t spOv_gravityMag = 10;
+	real_t spOv_gravityMag = 10.0;
 	real_t spOv_linearDump = 0.1;
 	real_t spOv_angularDump = 0.1;
 	int spOv_priority = 0;

+ 1 - 3
modules/bullet/btRayShape.cpp

@@ -39,11 +39,9 @@
 */
 
 btRayShape::btRayShape(btScalar length) :
-		btConvexInternalShape(),
-		m_shapeAxis(0, 0, 1) {
+		btConvexInternalShape() {
 	m_shapeType = CUSTOM_CONVEX_SHAPE_TYPE;
 	setLength(length);
-	slipsOnSlope = false;
 }
 
 btRayShape::~btRayShape() {

+ 3 - 3
modules/bullet/btRayShape.h

@@ -42,10 +42,10 @@
 /// Ray shape around z axis
 ATTRIBUTE_ALIGNED16(class)
 btRayShape : public btConvexInternalShape {
-	btScalar m_length;
-	bool slipsOnSlope;
+	btScalar m_length = 0;
+	bool slipsOnSlope = false;
 	/// The default axis is the z
-	btVector3 m_shapeAxis;
+	btVector3 m_shapeAxis = btVector3(0, 0, 1);
 
 	btTransform m_cacheSupportPoint;
 	btScalar m_cacheScaledLength;

+ 1 - 1
modules/bullet/collision_object_bullet.h

@@ -110,7 +110,7 @@ public:
 	};
 
 protected:
-	Type type;
+	Type type = TYPE_AREA;
 	ObjectID instance_id;
 	uint32_t collisionLayer = 0;
 	uint32_t collisionMask = 0;

+ 1 - 1
modules/bullet/godot_motion_state.h

@@ -51,7 +51,7 @@ class GodotMotionState : public btMotionState {
 	/// This data is used to store last world position
 	btTransform bodyCurrentWorldTransform;
 
-	RigidBodyBullet *owner;
+	RigidBodyBullet *owner = nullptr;
 
 public:
 	GodotMotionState(RigidBodyBullet *p_owner) :

+ 1 - 1
modules/bullet/godot_ray_world_algorithm.h

@@ -45,7 +45,7 @@ class GodotRayWorldAlgorithm : public btActivatingCollisionAlgorithm {
 	const btDiscreteDynamicsWorld *m_world;
 	btPersistentManifold *m_manifoldPtr;
 	bool m_ownManifold = false;
-	bool m_isSwapped;
+	bool m_isSwapped = false;
 
 public:
 	GodotRayWorldAlgorithm(const btDiscreteDynamicsWorld *world, btPersistentManifold *mf, const btCollisionAlgorithmConstructionInfo &ci, const btCollisionObjectWrapper *body0Wrap, const btCollisionObjectWrapper *body1Wrap, bool isSwapped);

+ 19 - 19
modules/bullet/godot_result_callbacks.h

@@ -59,8 +59,8 @@ struct GodotClosestRayResultCallback : public btCollisionWorld::ClosestRayResult
 	bool m_pickRay = false;
 	int m_shapeId = 0;
 
-	bool collide_with_bodies;
-	bool collide_with_areas;
+	bool collide_with_bodies = false;
+	bool collide_with_areas = false;
 
 public:
 	GodotClosestRayResultCallback(const btVector3 &rayFromWorld, const btVector3 &rayToWorld, const Set<RID> *p_exclude, bool p_collide_with_bodies, bool p_collide_with_areas) :
@@ -84,8 +84,8 @@ public:
 // store all colliding object
 struct GodotAllConvexResultCallback : public btCollisionWorld::ConvexResultCallback {
 public:
-	PhysicsDirectSpaceState3D::ShapeResult *m_results;
-	int m_resultMax;
+	PhysicsDirectSpaceState3D::ShapeResult *m_results = nullptr;
+	int m_resultMax = 0;
 	const Set<RID> *m_exclude;
 	int count = 0;
 
@@ -117,8 +117,8 @@ public:
 	const Set<RID> *m_exclude;
 	int m_shapeId = 0;
 
-	bool collide_with_bodies;
-	bool collide_with_areas;
+	bool collide_with_bodies = false;
+	bool collide_with_areas = false;
 
 	GodotClosestConvexResultCallback(const btVector3 &convexFromWorld, const btVector3 &convexToWorld, const Set<RID> *p_exclude, bool p_collide_with_bodies, bool p_collide_with_areas) :
 			btCollisionWorld::ClosestConvexResultCallback(convexFromWorld, convexToWorld),
@@ -134,13 +134,13 @@ public:
 struct GodotAllContactResultCallback : public btCollisionWorld::ContactResultCallback {
 public:
 	const btCollisionObject *m_self_object;
-	PhysicsDirectSpaceState3D::ShapeResult *m_results;
-	int m_resultMax;
+	PhysicsDirectSpaceState3D::ShapeResult *m_results = nullptr;
+	int m_resultMax = 0;
 	const Set<RID> *m_exclude;
 	int m_count = 0;
 
-	bool collide_with_bodies;
-	bool collide_with_areas;
+	bool collide_with_bodies = false;
+	bool collide_with_areas = false;
 
 	GodotAllContactResultCallback(btCollisionObject *p_self_object, PhysicsDirectSpaceState3D::ShapeResult *p_results, int p_resultMax, const Set<RID> *p_exclude, bool p_collide_with_bodies, bool p_collide_with_areas) :
 			m_self_object(p_self_object),
@@ -159,13 +159,13 @@ public:
 struct GodotContactPairContactResultCallback : public btCollisionWorld::ContactResultCallback {
 public:
 	const btCollisionObject *m_self_object;
-	Vector3 *m_results;
-	int m_resultMax;
+	Vector3 *m_results = nullptr;
+	int m_resultMax = 0;
 	const Set<RID> *m_exclude;
 	int m_count = 0;
 
-	bool collide_with_bodies;
-	bool collide_with_areas;
+	bool collide_with_bodies = false;
+	bool collide_with_areas = false;
 
 	GodotContactPairContactResultCallback(btCollisionObject *p_self_object, Vector3 *p_results, int p_resultMax, const Set<RID> *p_exclude, bool p_collide_with_bodies, bool p_collide_with_areas) :
 			m_self_object(p_self_object),
@@ -183,14 +183,14 @@ public:
 struct GodotRestInfoContactResultCallback : public btCollisionWorld::ContactResultCallback {
 public:
 	const btCollisionObject *m_self_object;
-	PhysicsDirectSpaceState3D::ShapeRestInfo *m_result;
+	PhysicsDirectSpaceState3D::ShapeRestInfo *m_result = nullptr;
 	const Set<RID> *m_exclude;
 	bool m_collided = false;
-	real_t m_min_distance = 0;
-	const btCollisionObject *m_rest_info_collision_object;
+	real_t m_min_distance = 0.0;
+	const btCollisionObject *m_rest_info_collision_object = nullptr;
 	btVector3 m_rest_info_bt_point;
-	bool collide_with_bodies;
-	bool collide_with_areas;
+	bool collide_with_bodies = false;
+	bool collide_with_areas = false;
 
 	GodotRestInfoContactResultCallback(btCollisionObject *p_self_object, PhysicsDirectSpaceState3D::ShapeRestInfo *p_result, const Set<RID> *p_exclude, bool p_collide_with_bodies, bool p_collide_with_areas) :
 			m_self_object(p_self_object),

+ 1 - 1
modules/bullet/rid_bullet.h

@@ -41,7 +41,7 @@ class BulletPhysicsServer3D;
 
 class RIDBullet {
 	RID self;
-	BulletPhysicsServer3D *physicsServer;
+	BulletPhysicsServer3D *physicsServer = nullptr;
 
 public:
 	_FORCE_INLINE_ void set_self(const RID &p_self) { self = p_self; }

+ 11 - 11
modules/bullet/rigid_body_bullet.h

@@ -81,8 +81,8 @@ public:
 	}
 
 public:
-	RigidBodyBullet *body;
-	real_t deltaTime;
+	RigidBodyBullet *body = nullptr;
+	real_t deltaTime = 0.0;
 
 private:
 	BulletPhysicsDirectBodyState3D() {}
@@ -144,13 +144,13 @@ public:
 class RigidBodyBullet : public RigidCollisionObjectBullet {
 public:
 	struct CollisionData {
-		RigidBodyBullet *otherObject;
-		int other_object_shape;
-		int local_shape;
+		RigidBodyBullet *otherObject = nullptr;
+		int other_object_shape = 0;
+		int local_shape = 0;
 		Vector3 hitLocalLocation;
 		Vector3 hitWorldLocation;
 		Vector3 hitNormal;
-		real_t appliedImpulse;
+		real_t appliedImpulse = 0.0;
 	};
 
 	struct ForceIntegrationCallback {
@@ -169,7 +169,7 @@ public:
 	};
 
 	struct KinematicUtilities {
-		RigidBodyBullet *owner;
+		RigidBodyBullet *owner = nullptr;
 		btScalar safe_margin;
 		Vector<KinematicShape> shapes;
 
@@ -194,10 +194,10 @@ private:
 	GodotMotionState *godotMotionState;
 	btRigidBody *btBody;
 	uint16_t locked_axis = 0;
-	real_t mass = 1;
-	real_t gravity_scale = 1;
-	real_t linearDamp = 0;
-	real_t angularDamp = 0;
+	real_t mass = 1.0;
+	real_t gravity_scale = 1.0;
+	real_t linearDamp = 0.0;
+	real_t angularDamp = 0.0;
 	bool can_sleep = true;
 	bool omit_forces_integration = false;
 	bool can_integrate_forces = false;

+ 5 - 5
modules/bullet/shape_bullet.h

@@ -213,10 +213,10 @@ private:
 class HeightMapShapeBullet : public ShapeBullet {
 public:
 	Vector<real_t> heights;
-	int width;
-	int depth;
-	real_t min_height;
-	real_t max_height;
+	int width = 0;
+	int depth = 0;
+	real_t min_height = 0.0;
+	real_t max_height = 0.0;
 
 	HeightMapShapeBullet();
 
@@ -231,7 +231,7 @@ private:
 
 class RayShapeBullet : public ShapeBullet {
 public:
-	real_t length = 1;
+	real_t length = 1.0;
 	bool slips_on_slope = false;
 
 	RayShapeBullet();

+ 1 - 1
modules/bullet/soft_body_bullet.h

@@ -59,7 +59,7 @@ class SoftBodyBullet : public CollisionObjectBullet {
 private:
 	btSoftBody *bt_soft_body = nullptr;
 	Vector<Vector<int>> indices_table;
-	btSoftBody::Material *mat0; // This is just a copy of pointer managed by btSoftBody
+	btSoftBody::Material *mat0 = nullptr; // This is just a copy of pointer managed by btSoftBody
 	bool isScratched = false;
 
 	Ref<Mesh> soft_mesh;

+ 6 - 6
modules/bullet/space_bullet.cpp

@@ -1092,13 +1092,13 @@ private:
 	btDbvtVolume bounds;
 
 	const btCollisionObject *self_collision_object;
-	uint32_t collision_layer;
-	uint32_t collision_mask;
+	uint32_t collision_layer = 0;
+	uint32_t collision_mask = 0;
 
 	struct CompoundLeafCallback : btDbvt::ICollide {
 	private:
-		RecoverPenetrationBroadPhaseCallback *parent_callback;
-		btCollisionObject *collision_object;
+		RecoverPenetrationBroadPhaseCallback *parent_callback = nullptr;
+		btCollisionObject *collision_object = nullptr;
 
 	public:
 		CompoundLeafCallback(RecoverPenetrationBroadPhaseCallback *p_parent_callback, btCollisionObject *p_collision_object) :
@@ -1116,8 +1116,8 @@ private:
 
 public:
 	struct BroadphaseResult {
-		btCollisionObject *collision_object;
-		int compound_child_index;
+		btCollisionObject *collision_object = nullptr;
+		int compound_child_index = 0;
 	};
 
 	Vector<BroadphaseResult> results;

+ 3 - 3
modules/bullet/space_bullet.h

@@ -100,12 +100,12 @@ class SpaceBullet : public RIDBullet {
 	btGhostPairCallback *ghostPairCallback = nullptr;
 	GodotFilterCallback *godotFilterCallback = nullptr;
 
-	btGjkEpaPenetrationDepthSolver *gjk_epa_pen_solver;
-	btVoronoiSimplexSolver *gjk_simplex_solver;
+	btGjkEpaPenetrationDepthSolver *gjk_epa_pen_solver = nullptr;
+	btVoronoiSimplexSolver *gjk_simplex_solver = nullptr;
 
 	BulletPhysicsDirectSpaceState *direct_access;
 	Vector3 gravityDirection = Vector3(0, -1, 0);
-	real_t gravityMagnitude = 10;
+	real_t gravityMagnitude = 10.0;
 
 	real_t linear_damp = 0.0;
 	real_t angular_damp = 0.0;

+ 16 - 16
modules/csg/csg.h

@@ -48,9 +48,9 @@ struct CSGBrush {
 		Vector3 vertices[3];
 		Vector2 uvs[3];
 		AABB aabb;
-		bool smooth;
-		bool invert;
-		int material;
+		bool smooth = false;
+		bool invert = false;
+		int material = 0;
 	};
 
 	Vector<Face> faces;
@@ -74,20 +74,20 @@ struct CSGBrushOperation {
 
 	struct MeshMerge {
 		struct Face {
-			bool from_b;
-			bool inside;
-			int points[3];
+			bool from_b = false;
+			bool inside = false;
+			int points[3] = {};
 			Vector2 uvs[3];
-			bool smooth;
-			bool invert;
-			int material_idx;
+			bool smooth = false;
+			bool invert = false;
+			int material_idx = 0;
 		};
 
 		struct FaceBVH {
-			int face;
-			int left;
-			int right;
-			int next;
+			int face = 0;
+			int left = 0;
+			int right = 0;
+			int next = 0;
 			Vector3 center;
 			AABB aabb;
 		};
@@ -142,7 +142,7 @@ struct CSGBrushOperation {
 		Map<Ref<Material>, int> materials;
 		Map<Vector3, int> vertex_map;
 		OAHashMap<VertexKey, int, VertexKeyHash> snap_cache;
-		float vertex_snap;
+		float vertex_snap = 0.0;
 
 		inline void _add_distance(List<real_t> &r_intersectionsA, List<real_t> &r_intersectionsB, bool p_from_B, real_t p_distance) const;
 		inline bool _bvh_inside(FaceBVH *facebvhptr, int p_max_depth, int p_bvh_first, int p_face_idx) const;
@@ -159,7 +159,7 @@ struct CSGBrushOperation {
 		};
 
 		struct Face2D {
-			int vertex_idx[3];
+			int vertex_idx[3] = {};
 		};
 
 		Vector<Vertex2D> vertices;
@@ -167,7 +167,7 @@ struct CSGBrushOperation {
 		Plane plane;
 		Transform to_2D;
 		Transform to_3D;
-		float vertex_snap2;
+		float vertex_snap2 = 0.0;
 
 		inline int _get_point_idx(const Vector2 &p_point);
 		inline int _add_vertex(const Vertex2D &p_vertex);

+ 0 - 9
modules/csg/csg_shape.cpp

@@ -625,15 +625,6 @@ void CSGShape3D::_bind_methods() {
 }
 
 CSGShape3D::CSGShape3D() {
-	operation = OPERATION_UNION;
-	parent = nullptr;
-	brush = nullptr;
-	dirty = false;
-	snap = 0.001;
-	use_collision = false;
-	collision_layer = 1;
-	collision_mask = 1;
-	calculate_tangents = true;
 	set_notify_local_transform(true);
 }
 

+ 14 - 14
modules/csg/csg_shape.h

@@ -50,23 +50,23 @@ public:
 	};
 
 private:
-	Operation operation;
-	CSGShape3D *parent;
+	Operation operation = OPERATION_UNION;
+	CSGShape3D *parent = nullptr;
 
-	CSGBrush *brush;
+	CSGBrush *brush = nullptr;
 
 	AABB node_aabb;
 
-	bool dirty;
-	float snap;
+	bool dirty = false;
+	float snap = 0.001;
 
-	bool use_collision;
-	uint32_t collision_layer;
-	uint32_t collision_mask;
+	bool use_collision = false;
+	uint32_t collision_layer = 1;
+	uint32_t collision_mask = 1;
 	Ref<ConcavePolygonShape3D> root_collision_shape;
 	RID root_collision_instance;
 
-	bool calculate_tangents;
+	bool calculate_tangents = true;
 
 	Ref<ArrayMesh> root_mesh;
 
@@ -85,12 +85,12 @@ private:
 		Vector<Vector2> uvs;
 		Vector<float> tans;
 		Ref<Material> material;
-		int last_added;
+		int last_added = 0;
 
-		Vector3 *verticesw;
-		Vector3 *normalsw;
-		Vector2 *uvsw;
-		float *tansw;
+		Vector3 *verticesw = nullptr;
+		Vector3 *normalsw = nullptr;
+		Vector2 *uvsw = nullptr;
+		float *tansw = nullptr;
 	};
 
 	//mikktspace callbacks

+ 9 - 9
modules/cvtt/image_compress_cvtt.cpp

@@ -37,26 +37,26 @@
 #include <ConvectionKernels.h>
 
 struct CVTTCompressionJobParams {
-	bool is_hdr;
-	bool is_signed;
-	int bytes_per_pixel;
+	bool is_hdr = false;
+	bool is_signed = false;
+	int bytes_per_pixel = 0;
 
 	cvtt::Options options;
 };
 
 struct CVTTCompressionRowTask {
 	const uint8_t *in_mm_bytes;
-	uint8_t *out_mm_bytes;
-	int y_start;
-	int width;
-	int height;
+	uint8_t *out_mm_bytes = nullptr;
+	int y_start = 0;
+	int width = 0;
+	int height = 0;
 };
 
 struct CVTTCompressionJobQueue {
 	CVTTCompressionJobParams job_params;
 	const CVTTCompressionRowTask *job_tasks;
-	uint32_t num_tasks;
-	uint32_t current_task;
+	uint32_t num_tasks = 0;
+	uint32_t current_task = 0;
 };
 
 static void _digest_row_task(const CVTTCompressionJobParams &p_job_params, const CVTTCompressionRowTask &p_row_task) {

+ 5 - 5
modules/dds/texture_loader_dds.cpp

@@ -69,11 +69,11 @@ enum DDSFormat {
 
 struct DDSFormatInfo {
 	const char *name;
-	bool compressed;
-	bool palette;
-	uint32_t divisor;
-	uint32_t block_size;
-	Image::Format format;
+	bool compressed = false;
+	bool palette = false;
+	uint32_t divisor = 0;
+	uint32_t block_size = 0;
+	Image::Format format = Image::Format::FORMAT_BPTC_RGBA;
 };
 
 static const DDSFormatInfo dds_format_info[DDS_MAX] = {

+ 0 - 16
modules/enet/networked_multiplayer_enet.cpp

@@ -866,28 +866,12 @@ void NetworkedMultiplayerENet::_bind_methods() {
 }
 
 NetworkedMultiplayerENet::NetworkedMultiplayerENet() {
-	active = false;
-	server = false;
-	refuse_connections = false;
-	server_relay = true;
-	unique_id = 0;
-	target_peer = 0;
-	current_packet.packet = nullptr;
-	transfer_mode = TRANSFER_MODE_RELIABLE;
-	channel_count = SYSCH_MAX;
-	transfer_channel = -1;
-	always_ordered = false;
-	connection_status = CONNECTION_DISCONNECTED;
-	compression_mode = COMPRESS_NONE;
 	enet_compressor.context = this;
 	enet_compressor.compress = enet_compress;
 	enet_compressor.decompress = enet_decompress;
 	enet_compressor.destroy = enet_compressor_destroy;
 
 	bind_ip = IP_Address("*");
-
-	dtls_enabled = false;
-	dtls_verify = true;
 }
 
 NetworkedMultiplayerENet::~NetworkedMultiplayerENet() {

+ 19 - 19
modules/enet/networked_multiplayer_enet.h

@@ -62,35 +62,35 @@ private:
 		SYSCH_MAX
 	};
 
-	bool active;
-	bool server;
+	bool active = false;
+	bool server = false;
 
-	uint32_t unique_id;
+	uint32_t unique_id = 0;
 
-	int target_peer;
-	TransferMode transfer_mode;
-	int transfer_channel;
-	int channel_count;
-	bool always_ordered;
+	int target_peer = 0;
+	TransferMode transfer_mode = TRANSFER_MODE_RELIABLE;
+	int transfer_channel = -1;
+	int channel_count = SYSCH_MAX;
+	bool always_ordered = false;
 
 	ENetEvent event;
-	ENetPeer *peer;
-	ENetHost *host;
+	ENetPeer *peer = nullptr;
+	ENetHost *host = nullptr;
 
-	bool refuse_connections;
-	bool server_relay;
+	bool refuse_connections = false;
+	bool server_relay = true;
 
-	ConnectionStatus connection_status;
+	ConnectionStatus connection_status = CONNECTION_DISCONNECTED;
 
 	Map<int, ENetPeer *> peer_map;
 
 	struct Packet {
-		ENetPacket *packet;
-		int from;
-		int channel;
+		ENetPacket *packet = nullptr;
+		int from = 0;
+		int channel = 0;
 	};
 
-	CompressionMode compression_mode;
+	CompressionMode compression_mode = COMPRESS_NONE;
 
 	List<Packet> incoming_packets;
 
@@ -110,10 +110,10 @@ private:
 
 	IP_Address bind_ip;
 
-	bool dtls_enabled;
+	bool dtls_enabled = false;
 	Ref<CryptoKey> dtls_key;
 	Ref<X509Certificate> dtls_cert;
-	bool dtls_verify;
+	bool dtls_verify = true;
 
 protected:
 	static void _bind_methods();

+ 5 - 5
modules/etc/texture_loader_pkm.cpp

@@ -35,11 +35,11 @@
 
 struct ETC1Header {
 	char tag[6]; // "PKM 10"
-	uint16_t format; // Format == number of mips (== zero)
-	uint16_t texWidth; // Texture dimensions, multiple of 4 (big-endian)
-	uint16_t texHeight;
-	uint16_t origWidth; // Original dimensions (big-endian)
-	uint16_t origHeight;
+	uint16_t format = 0; // Format == number of mips (== zero)
+	uint16_t texWidth = 0; // Texture dimensions, multiple of 4 (big-endian)
+	uint16_t texHeight = 0;
+	uint16_t origWidth = 0; // Original dimensions (big-endian)
+	uint16_t origHeight = 0;
 };
 
 RES ResourceFormatPKM::load(const String &p_path, const String &p_original_path, Error *r_error, bool p_use_sub_threads, float *r_progress, bool p_no_cache) {

+ 3 - 3
modules/gdnative/gdnative_library_editor_plugin.h

@@ -95,9 +95,9 @@ public:
 class GDNativeLibraryEditorPlugin : public EditorPlugin {
 	GDCLASS(GDNativeLibraryEditorPlugin, EditorPlugin);
 
-	GDNativeLibraryEditor *library_editor;
-	EditorNode *editor;
-	Button *button;
+	GDNativeLibraryEditor *library_editor = nullptr;
+	EditorNode *editor = nullptr;
+	Button *button = nullptr;
 
 public:
 	virtual String get_name() const override { return "GDNativeLibrary"; }

+ 0 - 7
modules/gdnative/nativescript/nativescript.cpp

@@ -1196,13 +1196,6 @@ void NativeScriptLanguage::_unload_stuff(bool p_reload) {
 
 NativeScriptLanguage::NativeScriptLanguage() {
 	NativeScriptLanguage::singleton = this;
-#ifndef NO_THREADS
-	has_objects_to_register = false;
-#endif
-
-#ifdef DEBUG_ENABLED
-	profiling = false;
-#endif
 
 	_init_call_type = "nativescript_init";
 	_init_call_name = "nativescript_init";

+ 17 - 17
modules/gdnative/nativescript/nativescript.h

@@ -51,8 +51,8 @@ struct NativeScriptDesc {
 	struct Method {
 		godot_nativescript_instance_method method;
 		MethodInfo info;
-		int rpc_mode;
-		uint16_t rpc_method_id;
+		int rpc_mode = 0;
+		uint16_t rpc_method_id = 0;
 		String documentation;
 	};
 
@@ -61,7 +61,7 @@ struct NativeScriptDesc {
 		godot_nativescript_property_get_func getter;
 		PropertyInfo info;
 		Variant default_value;
-		int rset_mode;
+		int rset_mode = 0;
 		uint16_t rset_property_id;
 		String documentation;
 	};
@@ -78,7 +78,7 @@ struct NativeScriptDesc {
 	Map<StringName, Signal> signals_; // QtCreator doesn't like the name signals
 	StringName base;
 	StringName base_native_type;
-	NativeScriptDesc *base_data;
+	NativeScriptDesc *base_data = nullptr;
 	godot_nativescript_instance_create_func create_func;
 	godot_nativescript_instance_destroy_func destroy_func;
 
@@ -86,7 +86,7 @@ struct NativeScriptDesc {
 
 	const void *type_tag = nullptr;
 
-	bool is_tool;
+	bool is_tool = false;
 
 	inline NativeScriptDesc() {
 		zeromem(&create_func, sizeof(godot_nativescript_instance_create_func));
@@ -254,7 +254,7 @@ class NativeScriptLanguage : public ScriptLanguage {
 
 private:
 	static NativeScriptLanguage *singleton;
-	int lang_idx;
+	int lang_idx = 0;
 
 	void _unload_stuff(bool p_reload = false);
 
@@ -262,7 +262,7 @@ private:
 #ifndef NO_THREADS
 	Set<Ref<GDNativeLibrary>> libs_to_init;
 	Set<NativeScript *> scripts_to_register;
-	volatile bool has_objects_to_register; // so that we don't lock mutex every frame - it's rarely needed
+	volatile bool has_objects_to_register = false; // so that we don't lock mutex every frame - it's rarely needed
 	void defer_init_library(Ref<GDNativeLibrary> lib, NativeScript *script);
 #endif
 
@@ -279,19 +279,19 @@ private:
 
 	struct ProfileData {
 		StringName signature;
-		uint64_t call_count;
-		uint64_t self_time;
-		uint64_t total_time;
-		uint64_t frame_call_count;
-		uint64_t frame_self_time;
-		uint64_t frame_total_time;
-		uint64_t last_frame_call_count;
-		uint64_t last_frame_self_time;
-		uint64_t last_frame_total_time;
+		uint64_t call_count = 0;
+		uint64_t self_time = 0;
+		uint64_t total_time = 0;
+		uint64_t frame_call_count = 0;
+		uint64_t frame_self_time = 0;
+		uint64_t frame_total_time = 0;
+		uint64_t last_frame_call_count = 0;
+		uint64_t last_frame_self_time = 0;
+		uint64_t last_frame_total_time = 0;
 	};
 
 	Map<StringName, ProfileData> profile_data;
-	bool profiling;
+	bool profiling = false;
 
 public:
 	// These two maps must only be touched on the main thread

+ 3 - 3
modules/gdnative/pluginscript/pluginscript_instance.h

@@ -44,10 +44,10 @@ class PluginScriptInstance : public ScriptInstance {
 
 private:
 	Ref<PluginScript> _script;
-	Object *_owner;
+	Object *_owner = nullptr;
 	Variant _owner_variant;
-	godot_pluginscript_instance_data *_data;
-	const godot_pluginscript_instance_desc *_desc;
+	godot_pluginscript_instance_data *_data = nullptr;
+	const godot_pluginscript_instance_desc *_desc = nullptr;
 
 public:
 	_FORCE_INLINE_ Object *get_owner() { return _owner; }

+ 1 - 1
modules/gdnative/videodecoder/video_stream_gdnative.h

@@ -118,7 +118,7 @@ class VideoStreamPlaybackGDNative : public VideoStreamPlayback {
 	AudioMixCallback mix_callback = nullptr;
 
 	int num_channels = -1;
-	float time = 0;
+	float time = 0.0;
 	bool seek_backward = false;
 	int mix_rate = 0;
 	double delay_compensation = 0;

+ 5 - 9
modules/gdnavigation/nav_utils.h

@@ -51,7 +51,7 @@ union PointKey {
 		int64_t z : 21;
 	};
 
-	uint64_t key;
+	uint64_t key = 0;
 	bool operator<(const PointKey &p_key) const { return key < p_key.key; }
 };
 
@@ -86,8 +86,6 @@ struct Edge {
 
 	/// The other `Polygon` at this edge id has this `Polygon`.
 	int other_edge = -1;
-
-	Edge() {}
 };
 
 struct Polygon {
@@ -111,8 +109,6 @@ struct Connection {
 	int A_edge = -1;
 	Polygon *B = nullptr;
 	int B_edge = -1;
-
-	Connection() {}
 };
 
 struct NavigationPoly {
@@ -141,12 +137,12 @@ struct NavigationPoly {
 };
 
 struct FreeEdge {
-	bool is_free;
-	Polygon *poly;
-	uint32_t edge_id;
+	bool is_free = false;
+	Polygon *poly = nullptr;
+	uint32_t edge_id = 0;
 	Vector3 edge_center;
 	Vector3 edge_dir;
-	float edge_len_squared;
+	float edge_len_squared = 0.0;
 };
 } // namespace gd
 

+ 1 - 1
modules/gdnavigation/rvo_agent.h

@@ -53,7 +53,7 @@ class RvoAgent : public NavRid {
 	NavMap *map = nullptr;
 	RVO::Agent agent;
 	AvoidanceComputedCallback callback;
-	uint32_t map_update_id;
+	uint32_t map_update_id = 0;
 
 public:
 	RvoAgent();

+ 2 - 2
modules/gdscript/editor/gdscript_translation_parser_plugin.h

@@ -39,8 +39,8 @@
 class GDScriptEditorTranslationParserPlugin : public EditorTranslationParserPlugin {
 	GDCLASS(GDScriptEditorTranslationParserPlugin, EditorTranslationParserPlugin);
 
-	Vector<String> *ids;
-	Vector<Vector<String>> *ids_ctx_plural;
+	Vector<String> *ids = nullptr;
+	Vector<Vector<String>> *ids_ctx_plural = nullptr;
 
 	// List of patterns used for extracting translation strings.
 	StringName tr_func = "tr";

+ 1 - 12
modules/gdscript/gdscript.cpp

@@ -219,7 +219,7 @@ StringName GDScript::get_instance_base_type() const {
 }
 
 struct _GDScriptMemberSort {
-	int index;
+	int index = 0;
 	StringName name;
 	_FORCE_INLINE_ bool operator<(const _GDScriptMemberSort &p_member) const { return index < p_member.index; }
 };
@@ -1162,17 +1162,6 @@ String GDScript::_get_gdscript_reference_class_name(const GDScript *p_gdscript)
 
 GDScript::GDScript() :
 		script_list(this) {
-	valid = false;
-	subclass_count = 0;
-	initializer = nullptr;
-	_base = nullptr;
-	_owner = nullptr;
-	tool = false;
-#ifdef TOOLS_ENABLED
-	source_changed_cache = false;
-	placeholder_fallback_enabled = false;
-#endif
-
 #ifdef DEBUG_ENABLED
 	{
 		MutexLock lock(GDScriptLanguage::get_singleton()->lock);

+ 8 - 8
modules/gdscript/gdscript.h

@@ -57,11 +57,11 @@ public:
 
 class GDScript : public Script {
 	GDCLASS(GDScript, Script);
-	bool tool;
-	bool valid;
+	bool tool = false;
+	bool valid = false;
 
 	struct MemberInfo {
-		int index;
+		int index = 0;
 		StringName setter;
 		StringName getter;
 		MultiplayerAPI::RPCMode rpc_mode;
@@ -77,8 +77,8 @@ class GDScript : public Script {
 
 	Ref<GDScriptNativeClass> native;
 	Ref<GDScript> base;
-	GDScript *_base; //fast pointer access
-	GDScript *_owner; //for subclasses
+	GDScript *_base = nullptr; //fast pointer access
+	GDScript *_owner = nullptr; //for subclasses
 
 	Set<StringName> members; //members are just indices to the instanced script.
 	Map<StringName, Variant> constants;
@@ -97,8 +97,8 @@ class GDScript : public Script {
 	Map<StringName, Variant> member_default_values_cache;
 	Ref<GDScript> base_cache;
 	Set<ObjectID> inheriters_cache;
-	bool source_changed_cache;
-	bool placeholder_fallback_enabled;
+	bool source_changed_cache = false;
+	bool placeholder_fallback_enabled = false;
 	void _update_exports_values(Map<StringName, Variant> &values, List<PropertyInfo> &propnames);
 
 	DocData::ClassDoc doc;
@@ -121,7 +121,7 @@ class GDScript : public Script {
 	GDScriptFunction *implicit_initializer = nullptr;
 	GDScriptFunction *initializer = nullptr; //direct pointer to new , faster to locate
 
-	int subclass_count;
+	int subclass_count = 0;
 	Set<Object *> instances;
 	//exported members
 	String source;

+ 2 - 2
modules/gdscript/gdscript_compiler.h

@@ -133,8 +133,8 @@ class GDScriptCompiler {
 	Error _parse_class_level(GDScript *p_script, const GDScriptParser::ClassNode *p_class, bool p_keep_state);
 	Error _parse_class_blocks(GDScript *p_script, const GDScriptParser::ClassNode *p_class, bool p_keep_state);
 	void _make_scripts(GDScript *p_script, const GDScriptParser::ClassNode *p_class, bool p_keep_state);
-	int err_line;
-	int err_column;
+	int err_line = 0;
+	int err_column = 0;
 	StringName source;
 	String error;
 	bool within_await = false;

+ 3 - 4
modules/gdscript/gdscript_function.cpp

@@ -77,14 +77,14 @@ int GDScriptFunction::get_max_stack_size() const {
 }
 
 struct _GDFKC {
-	int order;
+	int order = 0;
 	List<int> pos;
 };
 
 struct _GDFKCS {
-	int order;
+	int order = 0;
 	StringName id;
-	int pos;
+	int pos = 0;
 
 	bool operator<(const _GDFKCS &p_r) const {
 		return order < p_r.order;
@@ -294,7 +294,6 @@ void GDScriptFunctionState::_bind_methods() {
 GDScriptFunctionState::GDScriptFunctionState() :
 		scripts_list(this),
 		instances_list(this) {
-	function = nullptr;
 }
 
 GDScriptFunctionState::~GDScriptFunctionState() {

+ 8 - 8
modules/gdscript/gdscript_function.h

@@ -420,19 +420,19 @@ private:
 
 public:
 	struct CallState {
-		GDScript *script;
-		GDScriptInstance *instance;
+		GDScript *script = nullptr;
+		GDScriptInstance *instance = nullptr;
 #ifdef DEBUG_ENABLED
 		StringName function_name;
 		String script_path;
 #endif
 		Vector<uint8_t> stack;
-		int stack_size;
+		int stack_size = 0;
 		Variant self;
-		uint32_t alloca_size;
-		int ip;
-		int line;
-		int defarg;
+		uint32_t alloca_size = 0;
+		int ip = 0;
+		int line = 0;
+		int defarg = 0;
 		Variant result;
 	};
 
@@ -488,7 +488,7 @@ public:
 class GDScriptFunctionState : public Reference {
 	GDCLASS(GDScriptFunctionState, Reference);
 	friend class GDScriptFunction;
-	GDScriptFunction *function;
+	GDScriptFunction *function = nullptr;
 	GDScriptFunction::CallState state;
 	Variant _signal_callback(const Variant **p_args, int p_argcount, Callable::CallError &r_error);
 	Ref<GDScriptFunctionState> first_state;

+ 3 - 3
modules/gdscript/gdscript_parser.h

@@ -351,7 +351,7 @@ public:
 			OP_COMP_GREATER_EQUAL,
 		};
 
-		OpType operation;
+		OpType operation = OpType::OP_ADDITION;
 		Variant::Operator variant_op = Variant::OP_MAX;
 		ExpressionNode *left_operand = nullptr;
 		ExpressionNode *right_operand = nullptr;
@@ -753,7 +753,7 @@ public:
 
 	struct MatchBranchNode : public Node {
 		Vector<PatternNode *> patterns;
-		SuiteNode *block;
+		SuiteNode *block = nullptr;
 		bool has_wildcard = false;
 
 		MatchBranchNode() {
@@ -1001,7 +1001,7 @@ public:
 			OP_LOGIC_NOT,
 		};
 
-		OpType operation;
+		OpType operation = OP_POSITIVE;
 		Variant::Operator variant_op = Variant::OP_MAX;
 		ExpressionNode *operand = nullptr;
 

+ 0 - 1
modules/gdscript/gdscript_tokenizer.h

@@ -178,7 +178,6 @@ public:
 		}
 
 		Token() {
-			type = EMPTY;
 		}
 	};
 

+ 0 - 5
modules/gdscript/language_server/gdscript_language_server.cpp

@@ -36,11 +36,6 @@
 #include "editor/editor_node.h"
 
 GDScriptLanguageServer::GDScriptLanguageServer() {
-	thread_running = false;
-	started = false;
-
-	use_thread = false;
-	port = 6008;
 	_EDITOR_DEF("network/language_server/remote_port", port);
 	_EDITOR_DEF("network/language_server/enable_smart_resolve", true);
 	_EDITOR_DEF("network/language_server/show_native_symbols_in_editor", false);

+ 4 - 4
modules/gdscript/language_server/gdscript_language_server.h

@@ -41,10 +41,10 @@ class GDScriptLanguageServer : public EditorPlugin {
 	GDScriptLanguageProtocol protocol;
 
 	Thread thread;
-	bool thread_running;
-	bool started;
-	bool use_thread;
-	int port;
+	bool thread_running = false;
+	bool started = false;
+	bool use_thread = false;
+	int port = 6008;
 	static void thread_main(void *p_userdata);
 
 private:

+ 7 - 7
modules/gdscript/language_server/lsp.hpp

@@ -547,7 +547,7 @@ struct TextDocumentItem {
 	 * The version number of this document (it will increase after each
 	 * change, including undo/redo).
 	 */
-	int version;
+	int version = 0;
 
 	/**
 	 * The content of the opened text document.
@@ -584,7 +584,7 @@ struct TextDocumentContentChangeEvent {
 	/**
 	 * The length of the range that got replaced.
 	 */
-	int rangeLength;
+	int rangeLength = 0;
 
 	/**
 	 * The new text of the range/document.
@@ -656,12 +656,12 @@ struct Diagnostic {
 	 * The diagnostic's severity. Can be omitted. If omitted it is up to the
 	 * client to interpret diagnostics as error, warning, info or hint.
 	 */
-	int severity;
+	int severity = 0;
 
 	/**
 	 * The diagnostic's code, which might appear in the user interface.
 	 */
-	int code;
+	int code = 0;
 
 	/**
 	 * A human-readable string describing the source of this
@@ -833,7 +833,7 @@ struct CompletionItem {
 	 * an icon is chosen by the editor. The standardized set
 	 * of available values is defined in `CompletionItemKind`.
 	 */
-	int kind;
+	int kind = 0;
 
 	/**
 	 * A human-readable string with additional information
@@ -891,7 +891,7 @@ struct CompletionItem {
 	 * The format of the insert text. The format applies to both the `insertText` property
 	 * and the `newText` property of a provided `textEdit`.
 	 */
-	int insertTextFormat;
+	int insertTextFormat = 0;
 
 	/**
 	 * An edit which is applied to a document when selecting this completion. When an edit is provided the value of
@@ -1003,7 +1003,7 @@ struct CompletionList {
 	 * This list it not complete. Further typing should result in recomputing
 	 * this list.
 	 */
-	bool isIncomplete;
+	bool isIncomplete = false;
 
 	/**
 	 * The completion items.

+ 2 - 2
modules/gltf/gltf_camera.h

@@ -38,8 +38,8 @@ class GLTFCamera : public Resource {
 
 private:
 	bool perspective = true;
-	float fov_size = 75;
-	float zfar = 4000;
+	float fov_size = 75.0;
+	float zfar = 4000.0;
 	float znear = 0.05;
 
 protected:

+ 2 - 2
modules/gltf/gltf_document.cpp

@@ -2391,7 +2391,7 @@ Error GLTFDocument::_serialize_meshes(Ref<GLTFState> state) {
 		e["targetNames"] = target_names;
 
 		for (int j = 0; j < target_names.size(); j++) {
-			real_t weight = 0;
+			real_t weight = 0.0;
 			if (j < state->meshes.write[gltf_mesh_i]->get_blend_weights().size()) {
 				weight = state->meshes.write[gltf_mesh_i]->get_blend_weights()[j];
 			}
@@ -5569,7 +5569,7 @@ void GLTFDocument::_import_animation(Ref<GLTFState> state, AnimationPlayer *ap,
 		animation->set_loop(true);
 	}
 
-	float length = 0;
+	float length = 0.0;
 
 	for (Map<int, GLTFAnimation::Track>::Element *track_i = anim->get_tracks().front(); track_i; track_i = track_i->next()) {
 		const GLTFAnimation::Track &track = track_i->get();

+ 0 - 19
modules/gridmap/grid_map.cpp

@@ -1046,26 +1046,7 @@ RID GridMap::get_bake_mesh_instance(int p_idx) {
 }
 
 GridMap::GridMap() {
-	collision_layer = 1;
-	collision_mask = 1;
-
-	cell_size = Vector3(2, 2, 2);
-	octant_size = 8;
-	awaiting_update = false;
-	_in_tree = false;
-	center_x = true;
-	center_y = true;
-	center_z = true;
-
-	clip = false;
-	clip_floor = 0;
-	clip_axis = Vector3::AXIS_Z;
-	clip_above = true;
-	cell_scale = 1.0;
-
-	navigation = nullptr;
 	set_notify_transform(true);
-	recreating_octants = false;
 }
 
 GridMap::~GridMap() {

+ 25 - 29
modules/gridmap/grid_map.h

@@ -53,7 +53,7 @@ class GridMap : public Node3D {
 			int16_t y;
 			int16_t z;
 		};
-		uint64_t key;
+		uint64_t key = 0;
 
 		_FORCE_INLINE_ bool operator<(const IndexKey &p_key) const {
 			return key < p_key.key;
@@ -68,7 +68,7 @@ class GridMap : public Node3D {
 			y = (int16_t)p_vector.y;
 			z = (int16_t)p_vector.z;
 		}
-		IndexKey() { key = 0; }
+		IndexKey() {}
 	};
 
 	/**
@@ -80,13 +80,7 @@ class GridMap : public Node3D {
 			unsigned int rot : 5;
 			unsigned int layer : 8;
 		};
-		uint32_t cell;
-
-		Cell() {
-			item = 0;
-			rot = 0;
-			layer = 0;
-		}
+		uint32_t cell = 0;
 	};
 
 	/**
@@ -103,7 +97,7 @@ class GridMap : public Node3D {
 			RID instance;
 			RID multimesh;
 			struct Item {
-				int index;
+				int index = 0;
 				Transform transform;
 				IndexKey key;
 			};
@@ -116,7 +110,7 @@ class GridMap : public Node3D {
 		RID collision_debug;
 		RID collision_debug_instance;
 
-		bool dirty;
+		bool dirty = false;
 		RID static_body;
 		Map<IndexKey, NavMesh> navmesh_ids;
 	};
@@ -129,35 +123,37 @@ class GridMap : public Node3D {
 			int16_t empty;
 		};
 
-		uint64_t key;
+		uint64_t key = 0;
 
 		_FORCE_INLINE_ bool operator<(const OctantKey &p_key) const {
 			return key < p_key.key;
 		}
 
 		//OctantKey(const IndexKey& p_k, int p_item) { indexkey=p_k.key; item=p_item; }
-		OctantKey() { key = 0; }
+		OctantKey() {}
 	};
 
-	uint32_t collision_layer;
-	uint32_t collision_mask;
+	uint32_t collision_layer = 1;
+	uint32_t collision_mask = 1;
 
 	Transform last_transform;
 
-	bool _in_tree;
-	Vector3 cell_size;
-	int octant_size;
-	bool center_x, center_y, center_z;
-	float cell_scale;
-	Navigation3D *navigation;
+	bool _in_tree = false;
+	Vector3 cell_size = Vector3(2, 2, 2);
+	int octant_size = 8;
+	bool center_x = true;
+	bool center_y = true;
+	bool center_z = true;
+	float cell_scale = 1.0;
+	Navigation3D *navigation = nullptr;
 
-	bool clip;
-	bool clip_above;
-	int clip_floor;
+	bool clip = false;
+	bool clip_above = true;
+	int clip_floor = 0;
 
-	bool recreating_octants;
+	bool recreating_octants = false;
 
-	Vector3::Axis clip_axis;
+	Vector3::Axis clip_axis = Vector3::AXIS_Z;
 
 	Ref<MeshLibrary> mesh_library;
 
@@ -167,10 +163,10 @@ class GridMap : public Node3D {
 	void _recreate_octant_data();
 
 	struct BakeLight {
-		RS::LightType type;
+		RS::LightType type = RS::LightType::LIGHT_DIRECTIONAL;
 		Vector3 pos;
 		Vector3 dir;
-		float param[RS::LIGHT_PARAM_MAX];
+		float param[RS::LIGHT_PARAM_MAX] = {};
 	};
 
 	_FORCE_INLINE_ Vector3 _octant_get_offset(const OctantKey &p_key) const {
@@ -183,7 +179,7 @@ class GridMap : public Node3D {
 	bool _octant_update(const OctantKey &p_key);
 	void _octant_clean_up(const OctantKey &p_key);
 	void _octant_transform(const OctantKey &p_key);
-	bool awaiting_update;
+	bool awaiting_update = false;
 
 	void _queue_octants_dirty();
 	void _update_octants_callback();

+ 1 - 12
modules/gridmap/grid_map_editor_plugin.cpp

@@ -769,7 +769,7 @@ bool GridMapEditor::forward_spatial_input_event(Camera3D *p_camera, const Ref<In
 
 struct _CGMEItemSort {
 	String name;
-	int id;
+	int id = 0;
 	_FORCE_INLINE_ bool operator<(const _CGMEItemSort &r_it) const { return name < r_it.name; }
 };
 
@@ -1151,7 +1151,6 @@ void GridMapEditor::_bind_methods() {
 }
 
 GridMapEditor::GridMapEditor(EditorNode *p_editor) {
-	input_action = INPUT_NONE;
 	editor = p_editor;
 	undo_redo = p_editor->get_undo_redo();
 
@@ -1234,7 +1233,6 @@ GridMapEditor::GridMapEditor(EditorNode *p_editor) {
 	settings_pick_distance->set_value(EDITOR_DEF("editors/grid_map/pick_distance", 5000.0));
 	settings_vbc->add_margin_child(TTR("Pick Distance:"), settings_pick_distance);
 
-	clip_mode = CLIP_DISABLED;
 	options->get_popup()->connect("id_pressed", callable_mp(this, &GridMapEditor::_menu_option));
 
 	HBoxContainer *hb = memnew(HBoxContainer);
@@ -1275,8 +1273,6 @@ GridMapEditor::GridMapEditor(EditorNode *p_editor) {
 
 	EDITOR_DEF("editors/grid_map/preview_size", 64);
 
-	display_mode = DISPLAY_THUMBNAIL;
-
 	mesh_library_palette = memnew(ItemList);
 	add_child(mesh_library_palette);
 	mesh_library_palette->set_v_size_flags(SIZE_EXPAND_FILL);
@@ -1296,11 +1292,6 @@ GridMapEditor::GridMapEditor(EditorNode *p_editor) {
 	edit_floor[1] = -1;
 	edit_floor[2] = -1;
 
-	cursor_visible = false;
-	selected_palette = -1;
-	lock_view = false;
-	cursor_rot = 0;
-
 	selection_mesh = RenderingServer::get_singleton()->mesh_create();
 	paste_mesh = RenderingServer::get_singleton()->mesh_create();
 
@@ -1418,8 +1409,6 @@ GridMapEditor::GridMapEditor(EditorNode *p_editor) {
 	}
 
 	_set_selection(false);
-	updating = false;
-	accumulated_floor_delta = 0.0;
 
 	indicator_mat.instance();
 	indicator_mat->set_shading_mode(StandardMaterial3D::SHADING_MODE_UNSHADED);

+ 17 - 17
modules/gridmap/grid_map_editor_plugin.h

@@ -65,11 +65,11 @@ class GridMapEditor : public VBoxContainer {
 	};
 
 	UndoRedo *undo_redo;
-	InputAction input_action;
+	InputAction input_action = INPUT_NONE;
 	Panel *panel;
 	MenuButton *options;
 	SpinBox *floor;
-	double accumulated_floor_delta;
+	double accumulated_floor_delta = 0.0;
 	Button *mode_thumbnail;
 	Button *mode_list;
 	LineEdit *search_box;
@@ -82,19 +82,19 @@ class GridMapEditor : public VBoxContainer {
 
 	struct SetItem {
 		Vector3i position;
-		int new_value;
-		int new_orientation;
-		int old_value;
-		int old_orientation;
+		int new_value = 0;
+		int new_orientation = 0;
+		int old_value = 0;
+		int old_orientation = 0;
 	};
 
 	List<SetItem> set_items;
 
 	GridMap *node = nullptr;
 	MeshLibrary *last_mesh_library;
-	ClipMode clip_mode;
+	ClipMode clip_mode = CLIP_DISABLED;
 
-	bool lock_view;
+	bool lock_view = false;
 	Transform grid_xform;
 	Transform edit_grid_xform;
 	Vector3::Axis edit_axis;
@@ -112,9 +112,9 @@ class GridMapEditor : public VBoxContainer {
 	RID paste_instance;
 
 	struct ClipboardItem {
-		int cell_item;
+		int cell_item = 0;
 		Vector3 grid_offset;
-		int orientation;
+		int orientation = 0;
 		RID instance;
 	};
 
@@ -125,14 +125,14 @@ class GridMapEditor : public VBoxContainer {
 	Ref<StandardMaterial3D> outer_mat;
 	Ref<StandardMaterial3D> selection_floor_mat;
 
-	bool updating;
+	bool updating = false;
 
 	struct Selection {
 		Vector3 click;
 		Vector3 current;
 		Vector3 begin;
 		Vector3 end;
-		bool active;
+		bool active = false;
 	} selection;
 	Selection last_selection;
 
@@ -141,18 +141,18 @@ class GridMapEditor : public VBoxContainer {
 		Vector3 current;
 		Vector3 begin;
 		Vector3 end;
-		int orientation;
+		int orientation = 0;
 	};
 	PasteIndicator paste_indicator;
 
-	bool cursor_visible;
+	bool cursor_visible = false;
 	Transform cursor_transform;
 
 	Vector3 cursor_origin;
 
-	int display_mode;
-	int selected_palette;
-	int cursor_rot;
+	int display_mode = DISPLAY_THUMBNAIL;
+	int selected_palette = -1;
+	int cursor_rot = 0;
 
 	enum Menu {
 		MENU_OPTION_NEXT_LEVEL,

+ 51 - 51
modules/lightmapper_rd/lightmapper_rd.h

@@ -46,18 +46,18 @@ class LightmapperRD : public Lightmapper {
 	};
 
 	struct Light {
-		float position[3];
+		float position[3] = {};
 		uint32_t type = LIGHT_TYPE_DIRECTIONAL;
-		float direction[3];
-		float energy;
-		float color[3];
-		float size;
-		float range;
-		float attenuation;
-		float cos_spot_angle;
-		float inv_spot_attenuation;
-		uint32_t static_bake;
-		uint32_t pad[3];
+		float direction[3] = {};
+		float energy = 0.0;
+		float color[3] = {};
+		float size = 0.0;
+		float range = 0.0;
+		float attenuation = 0.0;
+		float cos_spot_angle = 0.0;
+		float inv_spot_attenuation = 0.0;
+		uint32_t static_bake = 0;
+		uint32_t pad[3] = {};
 
 		bool operator<(const Light &p_light) const {
 			return type < p_light.type;
@@ -65,10 +65,10 @@ class LightmapperRD : public Lightmapper {
 	};
 
 	struct Vertex {
-		float position[3];
-		float normal_z;
-		float uv[2];
-		float normal_xy[2];
+		float position[3] = {};
+		float normal_z = 0.0;
+		float uv[2] = {};
+		float normal_xy[2] = {};
 
 		bool operator==(const Vertex &p_vtx) const {
 			return (position[0] == p_vtx.position[0]) &&
@@ -102,7 +102,7 @@ class LightmapperRD : public Lightmapper {
 	};
 
 	struct Probe {
-		float position[4];
+		float position[4] = {};
 	};
 
 	Vector<Probe> probe_positions;
@@ -158,15 +158,15 @@ class LightmapperRD : public Lightmapper {
 	};
 
 	struct Box {
-		float min_bounds[3];
-		float pad0;
-		float max_bounds[3];
-		float pad1;
+		float min_bounds[3] = {};
+		float pad0 = 0.0;
+		float max_bounds[3] = {};
+		float pad1 = 0.0;
 	};
 
 	struct Triangle {
-		uint32_t indices[3];
-		uint32_t slice;
+		uint32_t indices[3] = {};
+		uint32_t slice = 0;
 		bool operator<(const Triangle &p_triangle) const {
 			return slice < p_triangle.slice;
 		}
@@ -177,8 +177,8 @@ class LightmapperRD : public Lightmapper {
 	Vector<Light> lights;
 
 	struct TriangleSort {
-		uint32_t cell_index;
-		uint32_t triangle_index;
+		uint32_t cell_index = 0;
+		uint32_t triangle_index = 0;
 		bool operator<(const TriangleSort &p_triangle_sort) const {
 			return cell_index < p_triangle_sort.cell_index; //sorting by triangle index in this case makes no sense
 		}
@@ -187,44 +187,44 @@ class LightmapperRD : public Lightmapper {
 	void _plot_triangle_into_triangle_index_list(int p_size, const Vector3i &p_ofs, const AABB &p_bounds, const Vector3 p_points[], uint32_t p_triangle_index, LocalVector<TriangleSort> &triangles, uint32_t p_grid_size);
 
 	struct RasterPushConstant {
-		float atlas_size[2];
-		float uv_offset[2];
-		float to_cell_size[3];
-		uint32_t base_triangle;
-		float to_cell_offset[3];
-		float bias;
-		int32_t grid_size[3];
-		uint32_t pad2;
+		float atlas_size[2] = {};
+		float uv_offset[2] = {};
+		float to_cell_size[3] = {};
+		uint32_t base_triangle = 0;
+		float to_cell_offset[3] = {};
+		float bias = 0.0;
+		int32_t grid_size[3] = {};
+		uint32_t pad2 = 0;
 	};
 
 	struct RasterSeamsPushConstant {
-		uint32_t base_index;
-		uint32_t slice;
-		float uv_offset[2];
-		uint32_t debug;
-		float blend;
-		uint32_t pad[2];
+		uint32_t base_index = 0;
+		uint32_t slice = 0;
+		float uv_offset[2] = {};
+		uint32_t debug = 0;
+		float blend = 0.0;
+		uint32_t pad[2] = {};
 	};
 
 	struct PushConstant {
-		int32_t atlas_size[2];
-		uint32_t ray_count;
-		uint32_t ray_to;
+		int32_t atlas_size[2] = {};
+		uint32_t ray_count = 0;
+		uint32_t ray_to = 0;
 
-		float world_size[3];
-		float bias;
+		float world_size[3] = {};
+		float bias = 0.0;
 
-		float to_cell_offset[3];
-		uint32_t ray_from;
+		float to_cell_offset[3] = {};
+		uint32_t ray_from = 0;
 
-		float to_cell_size[3];
-		uint32_t light_count;
+		float to_cell_size[3] = {};
+		uint32_t light_count = 0;
 
-		int32_t grid_size;
-		int32_t atlas_slice;
-		int32_t region_ofs[2];
+		int32_t grid_size = 0;
+		int32_t atlas_slice = 0;
+		int32_t region_ofs[2] = {};
 
-		float environment_xform[12];
+		float environment_xform[12] = {};
 	};
 
 	Vector<Ref<Image>> bake_textures;

+ 0 - 1
modules/mbedtls/packet_peer_mbed_dtls.cpp

@@ -246,7 +246,6 @@ int PacketPeerMbedDTLS::get_max_packet_size() const {
 
 PacketPeerMbedDTLS::PacketPeerMbedDTLS() {
 	ssl_ctx.instance();
-	status = STATUS_DISCONNECTED;
 }
 
 PacketPeerMbedDTLS::~PacketPeerMbedDTLS() {

+ 1 - 1
modules/mbedtls/packet_peer_mbed_dtls.h

@@ -44,7 +44,7 @@ private:
 
 	uint8_t packet_buffer[PACKET_BUFFER_SIZE];
 
-	Status status;
+	Status status = STATUS_DISCONNECTED;
 	String hostname;
 
 	Ref<PacketPeerUDP> base;

+ 0 - 2
modules/mbedtls/ssl_context_mbedtls.cpp

@@ -76,7 +76,6 @@ void CookieContextMbedTLS::clear() {
 }
 
 CookieContextMbedTLS::CookieContextMbedTLS() {
-	inited = false;
 }
 
 CookieContextMbedTLS::~CookieContextMbedTLS() {
@@ -205,7 +204,6 @@ mbedtls_ssl_context *SSLContextMbedTLS::get_context() {
 }
 
 SSLContextMbedTLS::SSLContextMbedTLS() {
-	inited = false;
 }
 
 SSLContextMbedTLS::~SSLContextMbedTLS() {

+ 2 - 2
modules/mbedtls/ssl_context_mbedtls.h

@@ -50,7 +50,7 @@ class CookieContextMbedTLS : public Reference {
 	friend class SSLContextMbedTLS;
 
 protected:
-	bool inited;
+	bool inited = false;
 	mbedtls_entropy_context entropy;
 	mbedtls_ctr_drbg_context ctr_drbg;
 	mbedtls_ssl_cookie_ctx cookie_ctx;
@@ -65,7 +65,7 @@ public:
 
 class SSLContextMbedTLS : public Reference {
 protected:
-	bool inited;
+	bool inited = false;
 
 	static PackedByteArray _read_file(String p_path);
 

+ 0 - 1
modules/mbedtls/stream_peer_mbedtls.cpp

@@ -274,7 +274,6 @@ int StreamPeerMbedTLS::get_available_bytes() const {
 
 StreamPeerMbedTLS::StreamPeerMbedTLS() {
 	ssl_ctx.instance();
-	status = STATUS_DISCONNECTED;
 }
 
 StreamPeerMbedTLS::~StreamPeerMbedTLS() {

+ 1 - 1
modules/mbedtls/stream_peer_mbedtls.h

@@ -36,7 +36,7 @@
 
 class StreamPeerMbedTLS : public StreamPeerSSL {
 private:
-	Status status;
+	Status status = STATUS_DISCONNECTED;
 	String hostname;
 
 	Ref<StreamPeer> base;

+ 3 - 3
modules/minimp3/audio_stream_mp3.h

@@ -78,11 +78,11 @@ class AudioStreamMP3 : public AudioStream {
 	void *data = nullptr;
 	uint32_t data_len = 0;
 
-	float sample_rate = 1;
+	float sample_rate = 1.0;
 	int channels = 1;
-	float length = 0;
+	float length = 0.0;
 	bool loop = false;
-	float loop_offset = 0;
+	float loop_offset = 0.0;
 	void clear_data();
 
 protected:

+ 1 - 13
modules/mobile_vr/mobile_vr_interface.cpp

@@ -448,19 +448,7 @@ void MobileVRInterface::process() {
 	};
 };
 
-MobileVRInterface::MobileVRInterface() {
-	initialized = false;
-
-	// Just set some defaults for these. At some point we need to look at adding a lookup table for common device + headset combos and/or support reading cardboard QR codes
-	eye_height = 1.85;
-	intraocular_dist = 6.0;
-	display_width = 14.5;
-	display_to_lens = 4.0;
-	oversample = 1.5;
-	k1 = 0.215;
-	k2 = 0.215;
-	last_ticks = 0;
-};
+MobileVRInterface::MobileVRInterface() {}
 
 MobileVRInterface::~MobileVRInterface() {
 	// and make sure we cleanup if we haven't already

+ 14 - 12
modules/mobile_vr/mobile_vr_interface.h

@@ -51,19 +51,21 @@ class MobileVRInterface : public XRInterface {
 	GDCLASS(MobileVRInterface, XRInterface);
 
 private:
-	bool initialized;
+	bool initialized = false;
 	Basis orientation;
-	float eye_height;
-	uint64_t last_ticks;
 
-	real_t intraocular_dist;
-	real_t display_width;
-	real_t display_to_lens;
-	real_t oversample;
+	// Just set some defaults for these. At some point we need to look at adding a lookup table for common device + headset combos and/or support reading cardboard QR codes
+	float eye_height = 1.85;
+	uint64_t last_ticks = 0;
+
+	real_t intraocular_dist = 6.0;
+	real_t display_width = 14.5;
+	real_t display_to_lens = 4.0;
+	real_t oversample = 1.5;
 
 	//@TODO not yet used, these are needed in our distortion shader...
-	real_t k1;
-	real_t k2;
+	real_t k1 = 0.215;
+	real_t k2 = 0.215;
 
 	/*
 		logic for processing our sensor data, this was originally in our positional tracker logic but I think
@@ -73,9 +75,9 @@ private:
 	Vector3 scale_magneto(const Vector3 &p_magnetometer);
 	Basis combine_acc_mag(const Vector3 &p_grav, const Vector3 &p_magneto);
 
-	int mag_count;
-	bool has_gyro;
-	bool sensor_first;
+	int mag_count = 0;
+	bool has_gyro = false;
+	bool sensor_first = false;
 	Vector3 last_accerometer_data;
 	Vector3 last_magnetometer_data;
 	Vector3 mag_current_min;

+ 0 - 2
modules/mono/mono_gd/gd_mono_log.cpp

@@ -189,8 +189,6 @@ void GDMonoLog::initialize() {
 
 GDMonoLog::GDMonoLog() {
 	singleton = this;
-
-	log_level_id = -1;
 }
 
 GDMonoLog::~GDMonoLog() {

+ 2 - 2
modules/mono/mono_gd/gd_mono_log.h

@@ -46,9 +46,9 @@
 
 class GDMonoLog {
 #ifdef GD_MONO_LOG_ENABLED
-	int log_level_id;
+	int log_level_id = -1;
 
-	FileAccess *log_file;
+	FileAccess *log_file = nullptr;
 	String log_file_path;
 
 	bool _try_create_logs_dir(const String &p_logs_dir);

+ 0 - 9
modules/opensimplex/noise_texture.cpp

@@ -33,15 +33,6 @@
 #include "core/core_string_names.h"
 
 NoiseTexture::NoiseTexture() {
-	update_queued = false;
-	regen_queued = false;
-	first_time = true;
-
-	size = Vector2i(512, 512);
-	seamless = false;
-	as_normal_map = false;
-	bump_strength = 8.0;
-
 	noise = Ref<OpenSimplexNoise>();
 
 	_queue_update();

+ 8 - 8
modules/opensimplex/noise_texture.h

@@ -47,18 +47,18 @@ private:
 
 	Thread noise_thread;
 
-	bool first_time;
-	bool update_queued;
-	bool regen_queued;
+	bool first_time = true;
+	bool update_queued = false;
+	bool regen_queued = false;
 
 	mutable RID texture;
-	uint32_t flags;
+	uint32_t flags = 0;
 
 	Ref<OpenSimplexNoise> noise;
-	Vector2i size;
-	bool seamless;
-	bool as_normal_map;
-	float bump_strength;
+	Vector2i size = Vector2i(512, 512);
+	bool seamless = false;
+	bool as_normal_map = false;
+	float bump_strength = 8.0;
 
 	void _thread_done(const Ref<Image> &p_image);
 	static void _thread_function(void *p_ud);

+ 0 - 6
modules/opensimplex/open_simplex_noise.cpp

@@ -33,12 +33,6 @@
 #include "core/core_string_names.h"
 
 OpenSimplexNoise::OpenSimplexNoise() {
-	seed = 0;
-	persistence = 0.5;
-	octaves = 3;
-	period = 64;
-	lacunarity = 2.0;
-
 	_init_seeds();
 }
 

+ 5 - 5
modules/opensimplex/open_simplex_noise.h

@@ -48,11 +48,11 @@ class OpenSimplexNoise : public Resource {
 
 	osn_context contexts[MAX_OCTAVES];
 
-	int seed;
-	float persistence; // Controls details, value in [0,1]. Higher increases grain, lower increases smoothness.
-	int octaves; // Number of noise layers
-	float period; // Distance above which we start to see similarities. The higher, the longer "hills" will be on a terrain.
-	float lacunarity; // Controls period change across octaves. 2 is usually a good value to address all detail levels.
+	int seed = 0;
+	float persistence = 0.5; // Controls details, value in [0,1]. Higher increases grain, lower increases smoothness.
+	int octaves = 3; // Number of noise layers
+	float period = 64.0; // Distance above which we start to see similarities. The higher, the longer "hills" will be on a terrain.
+	float lacunarity = 2.0; // Controls period change across octaves. 2 is usually a good value to address all detail levels.
 
 public:
 	OpenSimplexNoise();

+ 1 - 1
modules/pvr/texture_loader_pvr.cpp

@@ -207,7 +207,7 @@ ResourceFormatPVR::ResourceFormatPVR() {
 
 struct PVRTCBlock {
 	//blocks are 64 bits
-	uint32_t data[2];
+	uint32_t data[2] = {};
 };
 
 _FORCE_INLINE_ bool is_po2(uint32_t p_input) {

+ 0 - 2
modules/regex/regex.cpp

@@ -365,12 +365,10 @@ Array RegEx::get_names() const {
 
 RegEx::RegEx() {
 	general_ctx = pcre2_general_context_create_32(&_regex_malloc, &_regex_free, nullptr);
-	code = nullptr;
 }
 
 RegEx::RegEx(const String &p_pattern) {
 	general_ctx = pcre2_general_context_create_32(&_regex_malloc, &_regex_free, nullptr);
-	code = nullptr;
 	compile(p_pattern);
 }
 

+ 3 - 3
modules/regex/regex.h

@@ -42,8 +42,8 @@ class RegExMatch : public Reference {
 	GDCLASS(RegExMatch, Reference);
 
 	struct Range {
-		int start;
-		int end;
+		int start = 0;
+		int end = 0;
 	};
 
 	String subject;
@@ -72,7 +72,7 @@ class RegEx : public Reference {
 	GDCLASS(RegEx, Reference);
 
 	void *general_ctx;
-	void *code;
+	void *code = nullptr;
 	String pattern;
 
 	void _pattern_info(uint32_t what, void *where) const;

+ 1 - 10
modules/stb_vorbis/audio_stream_ogg_vorbis.cpp

@@ -263,16 +263,7 @@ void AudioStreamOGGVorbis::_bind_methods() {
 	ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "loop_offset"), "set_loop_offset", "get_loop_offset");
 }
 
-AudioStreamOGGVorbis::AudioStreamOGGVorbis() {
-	data = nullptr;
-	data_len = 0;
-	length = 0;
-	sample_rate = 1;
-	channels = 1;
-	loop_offset = 0;
-	decode_mem_size = 0;
-	loop = false;
-}
+AudioStreamOGGVorbis::AudioStreamOGGVorbis() {}
 
 AudioStreamOGGVorbis::~AudioStreamOGGVorbis() {
 	clear_data();

+ 12 - 12
modules/stb_vorbis/audio_stream_ogg_vorbis.h

@@ -41,11 +41,11 @@ class AudioStreamOGGVorbis;
 class AudioStreamPlaybackOGGVorbis : public AudioStreamPlaybackResampled {
 	GDCLASS(AudioStreamPlaybackOGGVorbis, AudioStreamPlaybackResampled);
 
-	stb_vorbis *ogg_stream;
+	stb_vorbis *ogg_stream = nullptr;
 	stb_vorbis_alloc ogg_alloc;
-	uint32_t frames_mixed;
-	bool active;
-	int loops;
+	uint32_t frames_mixed = 0;
+	bool active = false;
+	int loops = 0;
 
 	friend class AudioStreamOGGVorbis;
 
@@ -76,15 +76,15 @@ class AudioStreamOGGVorbis : public AudioStream {
 
 	friend class AudioStreamPlaybackOGGVorbis;
 
-	void *data;
-	uint32_t data_len;
+	void *data = nullptr;
+	uint32_t data_len = 0;
 
-	int decode_mem_size;
-	float sample_rate;
-	int channels;
-	float length;
-	bool loop;
-	float loop_offset;
+	int decode_mem_size = 0;
+	float sample_rate = 1.0;
+	int channels = 1;
+	float length = 0.0;
+	bool loop = false;
+	float loop_offset = 0.0;
 	void clear_data();
 
 protected:

+ 2 - 2
modules/text_server_adv/bitmap_font_adv.cpp

@@ -36,7 +36,7 @@
 
 struct hb_bmp_font_t {
 	BitmapFontDataAdvanced *face = nullptr;
-	float font_size = 0;
+	float font_size = 0.0;
 	bool unref = false; /* Whether to destroy bm_face when done. */
 };
 
@@ -340,7 +340,7 @@ Error BitmapFontDataAdvanced::load_from_file(const String &p_filename, int p_bas
 			char_map[idx] = c;
 		} else if (type == "kerning") {
 			KerningPairKey kpk;
-			float k = 0;
+			float k = 0.0;
 			if (keys.has("first")) {
 				kpk.A = keys["first"].to_int();
 			}

+ 5 - 8
modules/text_server_adv/dynamic_font_adv.h

@@ -74,14 +74,11 @@ private:
 				uint32_t size : 16;
 				uint32_t outline_size : 16;
 			};
-			uint32_t key;
+			uint32_t key = 0;
 		};
 		bool operator<(CacheID right) const {
 			return key < right.key;
 		}
-		CacheID() {
-			key = 0;
-		}
 	};
 
 	struct DataAtSize {
@@ -91,10 +88,10 @@ private:
 
 		int size = 0;
 		float scale_color_font = 1.f;
-		float ascent = 0;
-		float descent = 0;
-		float underline_position = 0;
-		float underline_thickness = 0;
+		float ascent = 0.0;
+		float descent = 0.0;
+		float underline_position = 0.0;
+		float underline_thickness = 0.0;
 
 		Vector<CharTexture> textures;
 		HashMap<uint32_t, Character> glyph_map;

+ 3 - 3
modules/text_server_adv/script_iterator.h

@@ -45,9 +45,9 @@
 class ScriptIterator {
 public:
 	struct ScriptRange {
-		int start;
-		int end;
-		hb_script_t script;
+		int start = 0;
+		int end = 0;
+		hb_script_t script = HB_SCRIPT_COMMON;
 	};
 	Vector<ScriptRange> script_ranges;
 

+ 1 - 1
modules/text_server_fb/bitmap_font_fb.cpp

@@ -148,7 +148,7 @@ Error BitmapFontDataFallback::load_from_file(const String &p_filename, int p_bas
 			char_map[idx] = c;
 		} else if (type == "kerning") {
 			KerningPairKey kpk;
-			float k = 0;
+			float k = 0.0;
 			if (keys.has("first")) {
 				kpk.A = keys["first"].to_int();
 			}

+ 5 - 8
modules/text_server_fb/dynamic_font_fb.h

@@ -70,14 +70,11 @@ private:
 				uint32_t size : 16;
 				uint32_t outline_size : 16;
 			};
-			uint32_t key;
+			uint32_t key = 0;
 		};
 		bool operator<(CacheID right) const {
 			return key < right.key;
 		}
-		CacheID() {
-			key = 0;
-		}
 	};
 
 	struct DataAtSize {
@@ -86,10 +83,10 @@ private:
 
 		int size = 0;
 		float scale_color_font = 1.f;
-		float ascent = 0;
-		float descent = 0;
-		float underline_position = 0;
-		float underline_thickness = 0;
+		float ascent = 0.0;
+		float descent = 0.0;
+		float underline_position = 0.0;
+		float underline_thickness = 0.0;
 
 		Vector<CharTexture> textures;
 		HashMap<char32_t, Character> char_map;

+ 11 - 11
modules/tga/image_loader_tga.h

@@ -57,20 +57,20 @@ class ImageLoaderTGA : public ImageFormatLoader {
 	};
 
 	struct tga_header_s {
-		uint8_t id_length;
-		uint8_t color_map_type;
+		uint8_t id_length = 0;
+		uint8_t color_map_type = 0;
 		tga_type_e image_type;
 
-		uint16_t first_color_entry;
-		uint16_t color_map_length;
-		uint8_t color_map_depth;
+		uint16_t first_color_entry = 0;
+		uint16_t color_map_length = 0;
+		uint8_t color_map_depth = 0;
 
-		uint16_t x_origin;
-		uint16_t y_origin;
-		uint16_t image_width;
-		uint16_t image_height;
-		uint8_t pixel_depth;
-		uint8_t image_descriptor;
+		uint16_t x_origin = 0;
+		uint16_t y_origin = 0;
+		uint16_t image_width = 0;
+		uint16_t image_height = 0;
+		uint8_t pixel_depth = 0;
+		uint8_t image_descriptor = 0;
 	};
 	static Error decode_tga_rle(const uint8_t *p_compressed_buffer, size_t p_pixel_size, uint8_t *p_uncompressed_buffer, size_t p_output_size);
 	static Error convert_to_image(Ref<Image> p_image, const uint8_t *p_buffer, const tga_header_s &p_header, const uint8_t *p_palette, const bool p_is_monochrome, size_t p_output_size);

+ 0 - 17
modules/theora/video_stream_theora.cpp

@@ -645,30 +645,13 @@ void VideoStreamPlaybackTheora::_streaming_thread(void *ud) {
 #endif
 
 VideoStreamPlaybackTheora::VideoStreamPlaybackTheora() {
-	file = nullptr;
-	theora_p = 0;
-	vorbis_p = 0;
-	videobuf_ready = 0;
-	playing = false;
-	frames_pending = 0;
-	videobuf_time = 0;
-	paused = false;
-
-	buffering = false;
 	texture = Ref<ImageTexture>(memnew(ImageTexture));
-	mix_callback = nullptr;
-	mix_udata = nullptr;
-	audio_track = 0;
-	delay_compensation = 0;
-	audio_frames_wrote = 0;
 
 #ifdef THEORA_USE_THREAD_STREAMING
 	int rb_power = nearest_shift(RB_SIZE_KB * 1024);
 	ring_buffer.resize(rb_power);
 	read_buffer.resize(RB_SIZE_KB * 1024);
 	thread_sem = Semaphore::create();
-	thread_exit = false;
-	thread_eof = false;
 
 #endif
 };

+ 24 - 24
modules/theora/video_stream_theora.h

@@ -52,12 +52,12 @@ class VideoStreamPlaybackTheora : public VideoStreamPlayback {
 	};
 
 	//Image frames[MAX_FRAMES];
-	Image::Format format;
+	Image::Format format = Image::Format::FORMAT_L8;
 	Vector<uint8_t> frame_data;
-	int frames_pending;
-	FileAccess *file;
+	int frames_pending = 0;
+	FileAccess *file = nullptr;
 	String file_name;
-	int audio_frames_wrote;
+	int audio_frames_wrote = 0;
 	Point2i size;
 
 	int buffer_data();
@@ -65,8 +65,8 @@ class VideoStreamPlaybackTheora : public VideoStreamPlayback {
 	void video_write();
 	float get_time() const;
 
-	bool theora_eos;
-	bool vorbis_eos;
+	bool theora_eos = false;
+	bool vorbis_eos = false;
 
 	ogg_sync_state oy;
 	ogg_page og;
@@ -74,33 +74,33 @@ class VideoStreamPlaybackTheora : public VideoStreamPlayback {
 	ogg_stream_state to;
 	th_info ti;
 	th_comment tc;
-	th_dec_ctx *td;
+	th_dec_ctx *td = nullptr;
 	vorbis_info vi;
 	vorbis_dsp_state vd;
 	vorbis_block vb;
 	vorbis_comment vc;
 	th_pixel_fmt px_fmt;
-	double videobuf_time;
-	int pp_inc;
+	double videobuf_time = 0;
+	int pp_inc = 0;
 
-	int theora_p;
-	int vorbis_p;
-	int pp_level_max;
-	int pp_level;
-	int videobuf_ready;
+	int theora_p = 0;
+	int vorbis_p = 0;
+	int pp_level_max = 0;
+	int pp_level = 0;
+	int videobuf_ready = 0;
 
-	bool playing;
-	bool buffering;
+	bool playing = false;
+	bool buffering = false;
 
-	double last_update_time;
-	double time;
-	double delay_compensation;
+	double last_update_time = 0;
+	double time = 0;
+	double delay_compensation = 0;
 
 	Ref<ImageTexture> texture;
 
 	AudioMixCallback mix_callback;
-	void *mix_udata;
-	bool paused;
+	void *mix_udata = nullptr;
+	bool paused = false;
 
 #ifdef THEORA_USE_THREAD_STREAMING
 
@@ -110,16 +110,16 @@ class VideoStreamPlaybackTheora : public VideoStreamPlayback {
 
 	RingBuffer<uint8_t> ring_buffer;
 	Vector<uint8_t> read_buffer;
-	bool thread_eof;
+	bool thread_eof = false;
 	Semaphore *thread_sem;
 	Thread thread;
-	volatile bool thread_exit;
+	volatile bool thread_exit = false;
 
 	static void _streaming_thread(void *ud);
 
 #endif
 
-	int audio_track;
+	int audio_track = 0;
 
 protected:
 	void clear();

+ 0 - 3
modules/upnp/upnp.cpp

@@ -393,9 +393,6 @@ void UPNP::_bind_methods() {
 }
 
 UPNP::UPNP() {
-	discover_multicast_if = "";
-	discover_local_port = 0;
-	discover_ipv6 = false;
 }
 
 UPNP::~UPNP() {

+ 3 - 3
modules/upnp/upnp.h

@@ -41,9 +41,9 @@ class UPNP : public Reference {
 	GDCLASS(UPNP, Reference);
 
 private:
-	String discover_multicast_if;
-	int discover_local_port;
-	bool discover_ipv6;
+	String discover_multicast_if = "";
+	int discover_local_port = 0;
+	bool discover_ipv6 = false;
 
 	Vector<Ref<UPNPDevice>> devices;
 

+ 0 - 9
modules/visual_script/visual_script.cpp

@@ -137,7 +137,6 @@ Ref<VisualScript> VisualScriptNode::get_visual_script() const {
 }
 
 VisualScriptNode::VisualScriptNode() {
-	breakpoint = false;
 }
 
 ////////////////
@@ -145,8 +144,6 @@ VisualScriptNode::VisualScriptNode() {
 /////////////////////
 
 VisualScriptNodeInstance::VisualScriptNodeInstance() {
-	sequence_outputs = nullptr;
-	input_ports = nullptr;
 }
 
 VisualScriptNodeInstance::~VisualScriptNodeInstance() {
@@ -2623,14 +2620,8 @@ void VisualScriptLanguage::get_registered_node_names(List<String> *r_names) {
 }
 
 VisualScriptLanguage::VisualScriptLanguage() {
-	notification = "_notification";
-	_step = "_step";
-	_subcall = "_subcall";
 	singleton = this;
 
-	_debug_parse_err_node = -1;
-	_debug_parse_err_file = "";
-	_debug_call_stack_pos = 0;
 	int dmcs = GLOBAL_DEF("debug/settings/visual_script/max_call_stack", 1024);
 	ProjectSettings::get_singleton()->set_custom_property_info("debug/settings/visual_script/max_call_stack", PropertyInfo(Variant::INT, "debug/settings/visual_script/max_call_stack", PROPERTY_HINT_RANGE, "1024,4096,1,or_greater")); //minimum is 1024
 

+ 44 - 47
modules/visual_script/visual_script.h

@@ -49,7 +49,7 @@ class VisualScriptNode : public Resource {
 	Ref<VisualScript> script_used;
 
 	Array default_input_values;
-	bool breakpoint;
+	bool breakpoint = false;
 
 	void _set_default_input_values(Array p_values);
 	Array _get_default_input_values() const;
@@ -90,13 +90,9 @@ public:
 	virtual VisualScriptNodeInstance *instance(VisualScriptInstance *p_instance) = 0;
 
 	struct TypeGuess {
-		Variant::Type type;
+		Variant::Type type = Variant::NIL;
 		StringName gdclass;
 		Ref<Script> script;
-
-		TypeGuess() {
-			type = Variant::NIL;
-		}
 	};
 
 	virtual TypeGuess guess_output_type(TypeGuess *p_inputs, int p_output) const;
@@ -114,19 +110,19 @@ class VisualScriptNodeInstance {
 		INPUT_DEFAULT_VALUE_BIT = INPUT_SHIFT, // from unassigned input port, using default value (edited by user)
 	};
 
-	int id;
-	int sequence_index;
-	VisualScriptNodeInstance **sequence_outputs;
-	int sequence_output_count;
+	int id = 0;
+	int sequence_index = 0;
+	VisualScriptNodeInstance **sequence_outputs = nullptr;
+	int sequence_output_count = 0;
 	Vector<VisualScriptNodeInstance *> dependencies;
-	int *input_ports;
-	int input_port_count;
-	int *output_ports;
-	int output_port_count;
-	int working_mem_idx;
-	int pass_idx;
+	int *input_ports = nullptr;
+	int input_port_count = 0;
+	int *output_ports = nullptr;
+	int output_port_count = 0;
+	int working_mem_idx = 0;
+	int pass_idx = 0;
 
-	VisualScriptNode *base;
+	VisualScriptNode *base = nullptr;
 
 public:
 	enum StartMode {
@@ -178,7 +174,7 @@ public:
 				uint64_t from_output : 16;
 				uint64_t to_node : 24;
 			};
-			uint64_t id;
+			uint64_t id = 0;
 		};
 
 		bool operator<(const SequenceConnection &p_connection) const {
@@ -194,7 +190,7 @@ public:
 				uint64_t to_node : 24;
 				uint64_t to_port : 8;
 			};
-			uint64_t id;
+			uint64_t id = 0;
 		};
 
 		bool operator<(const DataConnection &p_connection) const {
@@ -208,7 +204,7 @@ private:
 	StringName base_type;
 	struct Argument {
 		String name;
-		Variant::Type type;
+		Variant::Type type = Variant::Type::NIL;
 	};
 
 	struct NodeData {
@@ -231,7 +227,7 @@ private:
 	struct Variable {
 		PropertyInfo info;
 		Variant default_value;
-		bool _export;
+		bool _export = false;
 		// Add getter & setter options here.
 	};
 
@@ -388,26 +384,27 @@ public:
 };
 
 class VisualScriptInstance : public ScriptInstance {
-	Object *owner;
+	Object *owner = nullptr;
 	Ref<VisualScript> script;
 
 	Map<StringName, Variant> variables; // Using variable path, not script.
 	Map<int, VisualScriptNodeInstance *> instances;
 
 	struct Function {
-		int node;
-		int max_stack;
-		int trash_pos;
-		int flow_stack_size;
-		int pass_stack_size;
-		int node_count;
-		int argument_count;
+		int node = 0;
+		int max_stack = 0;
+		int trash_pos = 0;
+		int flow_stack_size = 0;
+		int pass_stack_size = 0;
+		int node_count = 0;
+		int argument_count = 0;
 	};
 
 	Map<StringName, Function> functions;
 
 	Vector<Variant> default_values;
-	int max_input_args, max_output_args;
+	int max_input_args = 0;
+	int max_output_args = 0;
 
 	StringName source;
 
@@ -479,14 +476,14 @@ class VisualScriptFunctionState : public Reference {
 
 	ObjectID instance_id;
 	ObjectID script_id;
-	VisualScriptInstance *instance;
+	VisualScriptInstance *instance = nullptr;
 	StringName function;
 	Vector<uint8_t> stack;
-	int working_mem_index;
-	int variant_stack_size;
-	VisualScriptNodeInstance *node;
-	int flow_stack_pos;
-	int pass;
+	int working_mem_index = 0;
+	int variant_stack_size = 0;
+	VisualScriptNodeInstance *node = nullptr;
+	int flow_stack_pos = 0;
+	int pass = 0;
 
 	Variant _signal_callback(const Variant **p_args, int p_argcount, Callable::CallError &r_error);
 
@@ -507,25 +504,25 @@ class VisualScriptLanguage : public ScriptLanguage {
 	Map<String, VisualScriptNodeRegisterFunc> register_funcs;
 
 	struct CallLevel {
-		Variant *stack;
-		Variant **work_mem;
-		const StringName *function;
-		VisualScriptInstance *instance;
-		int *current_id;
+		Variant *stack = nullptr;
+		Variant **work_mem = nullptr;
+		const StringName *function = nullptr;
+		VisualScriptInstance *instance = nullptr;
+		int *current_id = nullptr;
 	};
 
-	int _debug_parse_err_node;
-	String _debug_parse_err_file;
+	int _debug_parse_err_node = -1;
+	String _debug_parse_err_file = "";
 	String _debug_error;
-	int _debug_call_stack_pos;
+	int _debug_call_stack_pos = 0;
 	int _debug_max_call_stack;
 	CallLevel *_call_stack;
 
 public:
-	StringName notification;
+	StringName notification = "_notification";
 	StringName _get_output_port_unsequenced;
-	StringName _step;
-	StringName _subcall;
+	StringName _step = "_step";
+	StringName _subcall = "_subcall";
 
 	static VisualScriptLanguage *singleton;
 

+ 0 - 6
modules/visual_script/visual_script_expression.cpp

@@ -1507,12 +1507,6 @@ VisualScriptNodeInstance *VisualScriptExpression::instance(VisualScriptInstance
 }
 
 VisualScriptExpression::VisualScriptExpression() {
-	output_type = Variant::NIL;
-	expression_dirty = true;
-	error_set = true;
-	root = nullptr;
-	nodes = nullptr;
-	sequenced = false;
 }
 
 VisualScriptExpression::~VisualScriptExpression() {

+ 21 - 24
modules/visual_script/visual_script_expression.h

@@ -39,20 +39,18 @@ class VisualScriptExpression : public VisualScriptNode {
 	friend class VisualScriptNodeInstanceExpression;
 
 	struct Input {
-		Variant::Type type;
+		Variant::Type type = Variant::NIL;
 		String name;
-
-		Input() { type = Variant::NIL; }
 	};
 
 	Vector<Input> inputs;
-	Variant::Type output_type;
+	Variant::Type output_type = Variant::NIL;
 
 	String expression;
 
-	bool sequenced;
-	int str_ofs;
-	bool expression_dirty;
+	bool sequenced = false;
+	int str_ofs = 0;
+	bool expression_dirty = true;
 
 	bool _compile_expression();
 
@@ -114,7 +112,7 @@ class VisualScriptExpression : public VisualScriptNode {
 	Error _get_token(Token &r_token);
 
 	String error_str;
-	bool error_set;
+	bool error_set = true;
 
 	struct ENode {
 		enum Type {
@@ -131,11 +129,10 @@ class VisualScriptExpression : public VisualScriptNode {
 			TYPE_CALL
 		};
 
-		ENode *next;
+		ENode *next = nullptr;
 
-		Type type;
+		Type type = Type::TYPE_SELF;
 
-		ENode() { next = nullptr; }
 		virtual ~ENode() {
 			if (next) {
 				memdelete(next);
@@ -144,17 +141,17 @@ class VisualScriptExpression : public VisualScriptNode {
 	};
 
 	struct Expression {
-		bool is_op;
+		bool is_op = false;
 		union {
 			Variant::Operator op;
-			ENode *node;
+			ENode *node = nullptr;
 		};
 	};
 
 	ENode *_parse_expression();
 
 	struct InputNode : public ENode {
-		int index;
+		int index = 0;
 		InputNode() {
 			type = TYPE_INPUT;
 		}
@@ -168,9 +165,9 @@ class VisualScriptExpression : public VisualScriptNode {
 	};
 
 	struct OperatorNode : public ENode {
-		Variant::Operator op;
+		Variant::Operator op = Variant::Operator::OP_ADD;
 
-		ENode *nodes[2];
+		ENode *nodes[2] = { nullptr, nullptr };
 
 		OperatorNode() {
 			type = TYPE_OPERATOR;
@@ -184,8 +181,8 @@ class VisualScriptExpression : public VisualScriptNode {
 	};
 
 	struct IndexNode : public ENode {
-		ENode *base;
-		ENode *index;
+		ENode *base = nullptr;
+		ENode *index = nullptr;
 
 		IndexNode() {
 			type = TYPE_INDEX;
@@ -193,7 +190,7 @@ class VisualScriptExpression : public VisualScriptNode {
 	};
 
 	struct NamedIndexNode : public ENode {
-		ENode *base;
+		ENode *base = nullptr;
 		StringName name;
 
 		NamedIndexNode() {
@@ -202,7 +199,7 @@ class VisualScriptExpression : public VisualScriptNode {
 	};
 
 	struct ConstructorNode : public ENode {
-		Variant::Type data_type;
+		Variant::Type data_type = Variant::Type::NIL;
 		Vector<ENode *> arguments;
 
 		ConstructorNode() {
@@ -211,7 +208,7 @@ class VisualScriptExpression : public VisualScriptNode {
 	};
 
 	struct CallNode : public ENode {
-		ENode *base;
+		ENode *base = nullptr;
 		StringName method;
 		Vector<ENode *> arguments;
 
@@ -235,7 +232,7 @@ class VisualScriptExpression : public VisualScriptNode {
 	};
 
 	struct BuiltinFuncNode : public ENode {
-		VisualScriptBuiltinFunc::BuiltinFunc func;
+		VisualScriptBuiltinFunc::BuiltinFunc func = VisualScriptBuiltinFunc::BuiltinFunc::BYTES_TO_VAR;
 		Vector<ENode *> arguments;
 		BuiltinFuncNode() {
 			type = TYPE_BUILTIN_FUNC;
@@ -250,8 +247,8 @@ class VisualScriptExpression : public VisualScriptNode {
 		return node;
 	}
 
-	ENode *root;
-	ENode *nodes;
+	ENode *root = nullptr;
+	ENode *nodes = nullptr;
 
 protected:
 	bool _set(const StringName &p_name, const Variant &p_value);

+ 0 - 7
modules/webrtc/webrtc_data_channel_js.cpp

@@ -182,16 +182,9 @@ bool WebRTCDataChannelJS::is_negotiated() const {
 }
 
 WebRTCDataChannelJS::WebRTCDataChannelJS() {
-	queue_count = 0;
-	_was_string = false;
-	_write_mode = WRITE_MODE_BINARY;
-	_js_id = 0;
 }
 
 WebRTCDataChannelJS::WebRTCDataChannelJS(int js_id) {
-	queue_count = 0;
-	_was_string = false;
-	_write_mode = WRITE_MODE_BINARY;
 	_js_id = js_id;
 
 	godot_js_rtc_datachannel_connect(js_id, this, &_on_open, &_on_message, &_on_error, &_on_close);

+ 4 - 4
modules/webrtc/webrtc_data_channel_js.h

@@ -42,16 +42,16 @@ private:
 	String _label;
 	String _protocol;
 
-	bool _was_string;
-	WriteMode _write_mode;
+	bool _was_string = false;
+	WriteMode _write_mode = WRITE_MODE_BINARY;
 
 	enum {
 		PACKET_BUFFER_SIZE = 65536 - 5 // 4 bytes for the size, 1 for for type
 	};
 
-	int _js_id;
+	int _js_id = 0;
 	RingBuffer<uint8_t> in_buffer;
-	int queue_count;
+	int queue_count = 0;
 	uint8_t packet_buffer[PACKET_BUFFER_SIZE];
 
 	static void _on_open(void *p_obj);

+ 0 - 4
modules/websocket/emws_client.cpp

@@ -140,11 +140,7 @@ Error EMWSClient::set_buffers(int p_in_buffer, int p_in_packets, int p_out_buffe
 }
 
 EMWSClient::EMWSClient() {
-	_in_buf_size = DEF_BUF_SHIFT;
-	_in_pkt_size = DEF_PKT_SHIFT;
-	_is_connecting = false;
 	_peer = Ref<EMWSPeer>(memnew(EMWSPeer));
-	_js_id = 0;
 }
 
 EMWSClient::~EMWSClient() {

+ 4 - 4
modules/websocket/emws_client.h

@@ -41,10 +41,10 @@ class EMWSClient : public WebSocketClient {
 	GDCIIMPL(EMWSClient, WebSocketClient);
 
 private:
-	int _js_id;
-	bool _is_connecting;
-	int _in_buf_size;
-	int _in_pkt_size;
+	int _js_id = 0;
+	bool _is_connecting = false;
+	int _in_buf_size = DEF_BUF_SHIFT;
+	int _in_pkt_size = DEF_PKT_SHIFT;
 
 	static void _esws_on_connect(void *obj, char *proto);
 	static void _esws_on_message(void *obj, const uint8_t *p_data, int p_data_size, int p_is_string);

+ 0 - 2
modules/websocket/emws_peer.cpp

@@ -106,8 +106,6 @@ void EMWSPeer::set_no_delay(bool p_enabled) {
 }
 
 EMWSPeer::EMWSPeer() {
-	peer_sock = -1;
-	write_mode = WRITE_MODE_BINARY;
 	close();
 };
 

+ 3 - 3
modules/websocket/emws_peer.h

@@ -56,12 +56,12 @@ class EMWSPeer : public WebSocketPeer {
 	GDCIIMPL(EMWSPeer, WebSocketPeer);
 
 private:
-	int peer_sock;
-	WriteMode write_mode;
+	int peer_sock = -1;
+	WriteMode write_mode = WRITE_MODE_BINARY;
 
 	Vector<uint8_t> _packet_buffer;
 	PacketBuffer<uint8_t> _in_buffer;
-	uint8_t _is_string;
+	uint8_t _is_string = 0;
 
 public:
 	Error read_msg(const uint8_t *p_data, uint32_t p_size, bool p_is_string);

+ 0 - 1
modules/websocket/websocket_client.cpp

@@ -33,7 +33,6 @@
 GDCINULL(WebSocketClient);
 
 WebSocketClient::WebSocketClient() {
-	verify_ssl = true;
 }
 
 WebSocketClient::~WebSocketClient() {

+ 1 - 1
modules/websocket/websocket_client.h

@@ -42,7 +42,7 @@ class WebSocketClient : public WebSocketMultiplayerPeer {
 
 protected:
 	Ref<WebSocketPeer> _peer;
-	bool verify_ssl;
+	bool verify_ssl = true;
 	Ref<X509Certificate> ssl_cert;
 
 	static void _bind_methods();

+ 0 - 9
modules/websocket/websocket_multiplayer_peer.cpp

@@ -33,15 +33,6 @@
 #include "core/os/os.h"
 
 WebSocketMultiplayerPeer::WebSocketMultiplayerPeer() {
-	_is_multiplayer = false;
-	_peer_id = 0;
-	_target_peer = 0;
-	_refusing = false;
-
-	_current_packet.source = 0;
-	_current_packet.destination = 0;
-	_current_packet.size = 0;
-	_current_packet.data = nullptr;
 }
 
 WebSocketMultiplayerPeer::~WebSocketMultiplayerPeer() {

+ 8 - 8
modules/websocket/websocket_multiplayer_peer.h

@@ -55,20 +55,20 @@ protected:
 	};
 
 	struct Packet {
-		int source;
-		int destination;
-		uint8_t *data;
-		uint32_t size;
+		int source = 0;
+		int destination = 0;
+		uint8_t *data = nullptr;
+		uint32_t size = 0;
 	};
 
 	List<Packet> _incoming_packets;
 	Map<int, Ref<WebSocketPeer>> _peer_map;
 	Packet _current_packet;
 
-	bool _is_multiplayer;
-	int _target_peer;
-	int _peer_id;
-	int _refusing;
+	bool _is_multiplayer = false;
+	int _target_peer = 0;
+	int _peer_id = 0;
+	int _refusing = false;
 
 	static void _bind_methods();
 

+ 0 - 5
modules/websocket/wsl_client.cpp

@@ -337,11 +337,6 @@ Error WSLClient::set_buffers(int p_in_buffer, int p_in_packets, int p_out_buffer
 }
 
 WSLClient::WSLClient() {
-	_in_buf_size = DEF_BUF_SHIFT;
-	_in_pkt_size = DEF_PKT_SHIFT;
-	_out_buf_size = DEF_BUF_SHIFT;
-	_out_pkt_size = DEF_PKT_SHIFT;
-
 	_peer.instance();
 	_tcp.instance();
 	disconnect_from_host();

+ 7 - 7
modules/websocket/wsl_client.h

@@ -44,27 +44,27 @@ class WSLClient : public WebSocketClient {
 	GDCIIMPL(WSLClient, WebSocketClient);
 
 private:
-	int _in_buf_size;
-	int _in_pkt_size;
-	int _out_buf_size;
-	int _out_pkt_size;
+	int _in_buf_size = DEF_BUF_SHIFT;
+	int _in_pkt_size = DEF_PKT_SHIFT;
+	int _out_buf_size = DEF_BUF_SHIFT;
+	int _out_pkt_size = DEF_PKT_SHIFT;
 
 	Ref<WSLPeer> _peer;
 	Ref<StreamPeerTCP> _tcp;
 	Ref<StreamPeer> _connection;
 
 	CharString _request;
-	int _requested;
+	int _requested = 0;
 
 	uint8_t _resp_buf[WSL_MAX_HEADER_SIZE];
-	int _resp_pos;
+	int _resp_pos = 0;
 
 	String _response;
 
 	String _key;
 	String _host;
 	Vector<String> _protocols;
-	bool _use_ssl;
+	bool _use_ssl = false;
 
 	void _do_handshake();
 	bool _verify_headers(String &r_protocol);

+ 0 - 4
modules/websocket/wsl_peer.cpp

@@ -329,10 +329,6 @@ void WSLPeer::invalidate() {
 }
 
 WSLPeer::WSLPeer() {
-	_data = nullptr;
-	_is_string = 0;
-	close_code = -1;
-	write_mode = WRITE_MODE_BINARY;
 }
 
 WSLPeer::~WSLPeer() {

+ 13 - 25
modules/websocket/wsl_peer.h

@@ -48,29 +48,17 @@ class WSLPeer : public WebSocketPeer {
 
 public:
 	struct PeerData {
-		bool polling;
-		bool destroy;
-		bool valid;
-		bool is_server;
-		bool closing;
-		void *obj;
-		void *peer;
+		bool polling = false;
+		bool destroy = false;
+		bool valid = false;
+		bool is_server = false;
+		bool closing = false;
+		void *obj = nullptr;
+		void *peer = nullptr;
 		Ref<StreamPeer> conn;
 		Ref<StreamPeerTCP> tcp;
-		int id;
-		wslay_event_context_ptr ctx;
-
-		PeerData() {
-			polling = false;
-			destroy = false;
-			valid = false;
-			is_server = false;
-			id = 1;
-			ctx = nullptr;
-			obj = nullptr;
-			closing = false;
-			peer = nullptr;
-		}
+		int id = 1;
+		wslay_event_context_ptr ctx = nullptr;
 	};
 
 	static String compute_key_response(String p_key);
@@ -80,17 +68,17 @@ private:
 	static bool _wsl_poll(struct PeerData *p_data);
 	static void _wsl_destroy(struct PeerData **p_data);
 
-	struct PeerData *_data;
-	uint8_t _is_string;
+	struct PeerData *_data = nullptr;
+	uint8_t _is_string = 0;
 	// Our packet info is just a boolean (is_string), using uint8_t for it.
 	PacketBuffer<uint8_t> _in_buffer;
 
 	Vector<uint8_t> _packet_buffer;
 
-	WriteMode write_mode;
+	WriteMode write_mode = WRITE_MODE_BINARY;
 
 public:
-	int close_code;
+	int close_code = -1;
 	String close_reason;
 	void poll(); // Used by client and server.
 

+ 0 - 13
modules/websocket/wsl_server.cpp

@@ -34,15 +34,6 @@
 #include "core/config/project_settings.h"
 #include "core/os/os.h"
 
-WSLServer::PendingPeer::PendingPeer() {
-	use_ssl = false;
-	time = 0;
-	has_request = false;
-	response_sent = 0;
-	req_pos = 0;
-	memset(req_buf, 0, sizeof(req_buf));
-}
-
 bool WSLServer::PendingPeer::_parse_request(const Vector<String> p_protocols) {
 	Vector<String> psa = String((char *)req_buf).split("\r\n");
 	int len = psa.size();
@@ -310,10 +301,6 @@ Error WSLServer::set_buffers(int p_in_buffer, int p_in_packets, int p_out_buffer
 }
 
 WSLServer::WSLServer() {
-	_in_buf_size = DEF_BUF_SHIFT;
-	_in_pkt_size = DEF_PKT_SHIFT;
-	_out_buf_size = DEF_BUF_SHIFT;
-	_out_pkt_size = DEF_PKT_SHIFT;
 	_server.instance();
 }
 

+ 10 - 12
modules/websocket/wsl_server.h

@@ -53,26 +53,24 @@ private:
 	public:
 		Ref<StreamPeerTCP> tcp;
 		Ref<StreamPeer> connection;
-		bool use_ssl;
+		bool use_ssl = false;
 
-		int time;
-		uint8_t req_buf[WSL_MAX_HEADER_SIZE];
-		int req_pos;
+		int time = 0;
+		uint8_t req_buf[WSL_MAX_HEADER_SIZE] = {};
+		int req_pos = 0;
 		String key;
 		String protocol;
-		bool has_request;
+		bool has_request = false;
 		CharString response;
-		int response_sent;
-
-		PendingPeer();
+		int response_sent = 0;
 
 		Error do_handshake(const Vector<String> p_protocols);
 	};
 
-	int _in_buf_size;
-	int _in_pkt_size;
-	int _out_buf_size;
-	int _out_pkt_size;
+	int _in_buf_size = DEF_BUF_SHIFT;
+	int _in_pkt_size = DEF_PKT_SHIFT;
+	int _out_buf_size = DEF_BUF_SHIFT;
+	int _out_pkt_size = DEF_PKT_SHIFT;
 
 	List<Ref<PendingPeer>> _pending;
 	Ref<TCP_Server> _server;

+ 2 - 2
modules/xatlas_unwrap/register_types.cpp

@@ -163,8 +163,8 @@ bool xatlas_mesh_lightmap_unwrap_callback(float p_texel_size, const float *p_ver
 	*r_uvs = (float *)malloc(sizeof(float) * output.vertexCount * 2);
 	*r_indices = (int *)malloc(sizeof(int) * output.indexCount);
 
-	float max_x = 0;
-	float max_y = 0;
+	float max_x = 0.0;
+	float max_y = 0.0;
 	for (uint32_t i = 0; i < output.vertexCount; i++) {
 		(*r_vertices)[i] = output.vertexArray[i].xref;
 		(*r_uvs)[i * 2 + 0] = output.vertexArray[i].uv[0] / w;