Skip to content

Commit 5f5a646

Browse files
authored
Code cleanup, normalize trailer quat
1 parent 855abf4 commit 5f5a646

File tree

1 file changed

+41
-12
lines changed

1 file changed

+41
-12
lines changed

Server/Source/player_pool.hpp

Lines changed: 41 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -881,7 +881,9 @@ struct PlayerPool final : public IPlayerPool, public NetworkEventHandler, public
881881
|| (aimSync.CamMode >= 48u && aimSync.CamMode <= 50u)
882882
|| aimSync.CamMode == 52u || aimSync.CamMode == 54u
883883
|| aimSync.CamMode == 60u || aimSync.CamMode == 61u || aimSync.CamMode > 64u)
884+
{
884885
aimSync.CamMode = 4u;
886+
}
885887

886888
aimSync.PlayerID = player.poolID;
887889
player.aimSync_ = aimSync;
@@ -1393,7 +1395,8 @@ struct PlayerPool final : public IPlayerPool, public NetworkEventHandler, public
13931395
Player& player = static_cast<Player&>(peer);
13941396

13951397
int vehicleModel = vehicle.getModel();
1396-
if (vehicle.isRespawning() || (!vehicle.isStreamedInForPlayer(player) && !(vehicleModel == 569 || vehicleModel == 570))) // Check if vehicle is a train carriage (TODO: Move Vehicle::isTrainCarriage to SDK/Components/Vehicles/Impl/vehicle_models.hpp)
1398+
// Check if vehicle is a train carriage (TODO: Move Vehicle::isTrainCarriage to SDK/Components/Vehicles/Impl/vehicle_models.hpp)
1399+
if (vehicle.isRespawning() || (!vehicle.isStreamedInForPlayer(player) && !(vehicleModel == 569 || vehicleModel == 570)))
13971400
{
13981401
return false;
13991402
}
@@ -1472,12 +1475,16 @@ struct PlayerPool final : public IPlayerPool, public NetworkEventHandler, public
14721475
return false;
14731476
}
14741477

1475-
if (unoccupiedSync.AngularVelocity.x < -1.0f || unoccupiedSync.AngularVelocity.x > 1.0f || unoccupiedSync.AngularVelocity.y < -1.0f || unoccupiedSync.AngularVelocity.y > 1.0f || unoccupiedSync.AngularVelocity.z < -1.0f || unoccupiedSync.AngularVelocity.z > 1.0f)
1478+
if (unoccupiedSync.AngularVelocity.x < -1.0f || unoccupiedSync.AngularVelocity.x > 1.0f
1479+
|| unoccupiedSync.AngularVelocity.y < -1.0f || unoccupiedSync.AngularVelocity.y > 1.0f
1480+
|| unoccupiedSync.AngularVelocity.z < -1.0f || unoccupiedSync.AngularVelocity.z > 1.0f)
14761481
{
14771482
return false;
14781483
}
14791484

1480-
if (glm::abs(1.0 - glm::length(unoccupiedSync.Roll)) >= 0.000001 || glm::abs(1.0 - glm::length(unoccupiedSync.Rotation)) >= 0.000001 || glm::abs(unoccupiedSync.Roll.x * unoccupiedSync.Rotation.x + unoccupiedSync.Roll.y * unoccupiedSync.Rotation.y + unoccupiedSync.Roll.z * unoccupiedSync.Rotation.z) >= 0.000001)
1485+
if (glm::abs(1.0 - glm::length(unoccupiedSync.Roll)) >= 0.000001
1486+
|| glm::abs(1.0 - glm::length(unoccupiedSync.Rotation)) >= 0.000001
1487+
|| glm::abs(glm::dot(unoccupiedSync.Roll, unoccupiedSync.Rotation)) >= 0.000001)
14811488
{
14821489
return false;
14831490
}
@@ -1498,19 +1505,26 @@ struct PlayerPool final : public IPlayerPool, public NetworkEventHandler, public
14981505

14991506
IPlayerVehicleData* playerVehicleData = queryExtension<IPlayerVehicleData>(peer);
15001507

1501-
if (vehicle.getDriver())
1502-
{
1503-
return false;
1504-
}
1505-
else if (!vehicle.isStreamedInForPlayer(peer))
1508+
if (vehicle.getDriver() || !vehicle.isStreamedInForPlayer(peer))
15061509
{
15071510
return false;
15081511
}
1509-
else if (!unoccupiedSync.SeatID && player.state_ == PlayerState_Passenger)
1512+
else if (unoccupiedSync.SeatID > 0)
15101513
{
1511-
return false;
1514+
if (player.state_ != PlayerState_Passenger)
1515+
{
1516+
return false;
1517+
}
1518+
else if (playerVehicleData && playerVehicleData->getVehicle() != &vehicle)
1519+
{
1520+
return false;
1521+
}
1522+
else if (playerVehicleData && unoccupiedSync.SeatID != playerVehicleData->getSeat())
1523+
{
1524+
return false;
1525+
}
15121526
}
1513-
else if (unoccupiedSync.SeatID && (player.state_ != PlayerState_Passenger || (playerVehicleData && playerVehicleData->getVehicle() != &vehicle) || (playerVehicleData && unoccupiedSync.SeatID != playerVehicleData->getSeat())))
1527+
else if (player.state_ == PlayerState_Passenger)
15141528
{
15151529
return false;
15161530
}
@@ -1542,11 +1556,26 @@ struct PlayerPool final : public IPlayerPool, public NetworkEventHandler, public
15421556
return false;
15431557
}
15441558

1545-
if (trailerSync.TurnVelocity.x < -1.0f || trailerSync.TurnVelocity.x > 1.0f || trailerSync.TurnVelocity.y < -1.0f || trailerSync.TurnVelocity.y > 1.0f || trailerSync.TurnVelocity.z < -1.0f || trailerSync.TurnVelocity.z > 1.0f)
1559+
if (trailerSync.TurnVelocity.x < -1.0f || trailerSync.TurnVelocity.x > 1.0f
1560+
|| trailerSync.TurnVelocity.y < -1.0f || trailerSync.TurnVelocity.y > 1.0f
1561+
|| trailerSync.TurnVelocity.z < -1.0f || trailerSync.TurnVelocity.z > 1.0f)
15461562
{
15471563
return false;
15481564
}
15491565

1566+
float magnitude = glm::length(trailerSync.Quat);
1567+
if (std::abs(1.0f - magnitude) >= 0.000001f)
1568+
{
1569+
if (magnitude < 0.1f)
1570+
{
1571+
trailerSync.Quat = glm::vec4(0.5f);
1572+
}
1573+
else
1574+
{
1575+
trailerSync.Quat /= magnitude;
1576+
}
1577+
}
1578+
15501579
IVehicle* vehiclePtr = self.vehiclesComponent->get(trailerSync.VehicleID);
15511580
if (!vehiclePtr)
15521581
{

0 commit comments

Comments
 (0)