From 649ddc5bd999aaa50c06b96487d726a54dab0497 Mon Sep 17 00:00:00 2001 From: Antoine Pilote Date: Mon, 3 Jul 2023 20:23:49 -0400 Subject: [PATCH] Fixed uninitialized variables with shapes --- Nuake/src/Core/Physics/CharacterController.h | 2 +- Nuake/src/Scene/Systems/PhysicsSystem.cpp | 11 ++++++++--- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/Nuake/src/Core/Physics/CharacterController.h b/Nuake/src/Core/Physics/CharacterController.h index f93dc600..ba906174 100644 --- a/Nuake/src/Core/Physics/CharacterController.h +++ b/Nuake/src/Core/Physics/CharacterController.h @@ -14,7 +14,7 @@ namespace Nuake { public: - Vector3 Position; + Vector3 Position = Vector3(0, 0, 0); Entity Owner; bool IsOnGround = false; diff --git a/Nuake/src/Scene/Systems/PhysicsSystem.cpp b/Nuake/src/Scene/Systems/PhysicsSystem.cpp index 659384be..29d80313 100644 --- a/Nuake/src/Scene/Systems/PhysicsSystem.cpp +++ b/Nuake/src/Scene/Systems/PhysicsSystem.cpp @@ -22,6 +22,9 @@ namespace Nuake bool PhysicsSystem::Init() { + // We need to initialize shapes first, then bodies... + InitializeShapes(); + InitializeRigidbodies(); InitializeCharacterControllers(); InitializeQuakeMap(); @@ -153,14 +156,14 @@ namespace Nuake const auto boxView = m_Scene->m_Registry.view(); for (auto entity : boxView) { - auto boxComponent = boxView.get(entity); + auto& boxComponent = boxView.get(entity); boxComponent.Box = CreateRef(boxComponent.Size); } const auto capsuleView = m_Scene->m_Registry.view(); for (auto entity : capsuleView) { - auto capsuleComponent = capsuleView.get(entity); + auto& capsuleComponent = capsuleView.get(entity); float radius = capsuleComponent.Radius; float height = capsuleComponent.Height; capsuleComponent.Capsule = CreateRef(radius, height); @@ -169,7 +172,7 @@ namespace Nuake const auto sphereView = m_Scene->m_Registry.view(); for (auto entity : sphereView) { - auto sphereComponent = sphereView.get(entity); + auto& sphereComponent = sphereView.get(entity); sphereComponent.Sphere = CreateRef(sphereComponent.Radius); } @@ -283,6 +286,8 @@ namespace Nuake float friction = characterControllerComponent.Friction; float maxSlopeAngle = characterControllerComponent.MaxSlopeAngle; auto characterController = CreateRef(capsule, friction, maxSlopeAngle); + characterController->SetEntity(entity); // Used to link back to the entity + characterControllerComponent.CharacterController = characterController; PhysicsManager::Get().RegisterCharacterController(characterControllerComponent.CharacterController); }