From ab8b944f2fac048bcde72289e4cefa2921a9417d Mon Sep 17 00:00:00 2001 From: Aaron Kimbrell Date: Thu, 1 Oct 2026 11:56:49 -0500 Subject: [PATCH] refactor(component): vehicle physics (46) and physics system (47) are physics components As in the client, where both use LWOBasePhysComponent's functions (projectile physics, 18, does not and stays a plain component). They now answer the object's position like the other physics components (their LOTs have no other physics); nothing they send changes. Co-Authored-By: Claude Opus 5.5 --- dGame/dComponents/PhysicsSystemComponent.h | 12 ++++++++---- dGame/dComponents/VehiclePhysicsComponent.h | 12 ++++++++---- 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/dGame/dComponents/PhysicsSystemComponent.h b/dGame/dComponents/PhysicsSystemComponent.h index cf1b6c2ab..e81834ab5 100644 --- a/dGame/dComponents/PhysicsSystemComponent.h +++ b/dGame/dComponents/PhysicsSystemComponent.h @@ -1,17 +1,21 @@ #ifndef PHYSICSSYSTEMCOMPONENT_H #define PHYSICSSYSTEMCOMPONENT_H -#include "Component.h" +#include "Entity.h" +#include "PhysicsComponent.h" #include "eReplicaComponentType.h" /** - * Physics system, as the client's physics system component makes it from the registry. Nothing of it is sent or done on the server yet. + * Physics system, as the client's physics system component makes it from the registry; like the client's, a physics component (LWOBasePhysComponent). Nothing of it is sent or done on the server yet. */ -class PhysicsSystemComponent final : public Component { +class PhysicsSystemComponent final : public PhysicsComponent { public: static constexpr eReplicaComponentType ComponentType = eReplicaComponentType::PHYSICS_SYSTEM; - PhysicsSystemComponent(Entity* parent, const int32_t componentID) : Component(parent, componentID) {} + PhysicsSystemComponent(Entity* parent, const int32_t componentID) : PhysicsComponent(parent, componentID) { + m_Position = m_Parent->GetDefaultPosition(); + m_Rotation = m_Parent->GetDefaultRotation(); + } }; #endif // PHYSICSSYSTEMCOMPONENT_H diff --git a/dGame/dComponents/VehiclePhysicsComponent.h b/dGame/dComponents/VehiclePhysicsComponent.h index 394089260..5a67ebb51 100644 --- a/dGame/dComponents/VehiclePhysicsComponent.h +++ b/dGame/dComponents/VehiclePhysicsComponent.h @@ -1,17 +1,21 @@ #ifndef VEHICLEPHYSICSCOMPONENT_H #define VEHICLEPHYSICSCOMPONENT_H -#include "Component.h" +#include "Entity.h" +#include "PhysicsComponent.h" #include "eReplicaComponentType.h" /** - * Vehicle physics (not the havok vehicle physics, 30), as LWOVehiclePhysicsComponent makes it from the registry. Nothing of it is sent or done on the server yet. + * Vehicle physics (not the havok vehicle physics, 30), as LWOVehiclePhysicsComponent makes it from the registry; like the client's, a physics component (LWOBasePhysComponent). Nothing of it is sent or done on the server yet. */ -class VehiclePhysicsComponent final : public Component { +class VehiclePhysicsComponent final : public PhysicsComponent { public: static constexpr eReplicaComponentType ComponentType = eReplicaComponentType::VEHICLE_PHYSICS; - VehiclePhysicsComponent(Entity* parent, const int32_t componentID) : Component(parent, componentID) {} + VehiclePhysicsComponent(Entity* parent, const int32_t componentID) : PhysicsComponent(parent, componentID) { + m_Position = m_Parent->GetDefaultPosition(); + m_Rotation = m_Parent->GetDefaultRotation(); + } }; #endif // VEHICLEPHYSICSCOMPONENT_H