From a9f4c2a1a46e34b7a86e9240fa3825d71243a130 Mon Sep 17 00:00:00 2001 From: Amyr Ahmady Date: Tue, 17 Sep 2024 03:38:04 +0330 Subject: [PATCH] attempt to fix vehicle release in events called in vehicle sync --- Server/Source/player_pool.hpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/Server/Source/player_pool.hpp b/Server/Source/player_pool.hpp index 52b8fae0f..a28968546 100644 --- a/Server/Source/player_pool.hpp +++ b/Server/Source/player_pool.hpp @@ -1128,7 +1128,9 @@ struct PlayerPool final : public IPlayerPool, public NetworkEventHandler, public return false; } - IVehicle& vehicle = *vehiclePtr; + ScopedPoolReleaseLock lock(*self.vehiclesComponent, *vehiclePtr); + IVehicle& vehicle = *lock.entry; + Player& player = static_cast(peer); player.pos_ = vehicleSync.Position; player.health_ = vehicleSync.PlayerHealthArmour.x; @@ -1379,7 +1381,8 @@ struct PlayerPool final : public IPlayerPool, public NetworkEventHandler, public return false; } - IVehicle& vehicle = *vehiclePtr; + ScopedPoolReleaseLock lock(*self.vehiclesComponent, *vehiclePtr); + IVehicle& vehicle = *lock.entry; Player& player = static_cast(peer); if (vehicle.isRespawning())