Tire bursts and rpm synchronization added (Currently only for DEBUG!)

This commit is contained in:
EntenKoeniq
2021-11-19 06:37:21 +01:00
parent cc6db509f8
commit 13cd3527e0
2 changed files with 28 additions and 1 deletions

View File

@ -71,11 +71,14 @@ namespace CoopClient
} }
public float VehicleSteeringAngle { get; set; } public float VehicleSteeringAngle { get; set; }
public bool VehIsEngineRunning { get; set; } public bool VehIsEngineRunning { get; set; }
public float VehRPM { get; set; }
public bool VehAreLightsOn { get; set; } public bool VehAreLightsOn { get; set; }
public bool VehAreHighBeamsOn { get; set; } public bool VehAreHighBeamsOn { get; set; }
public bool VehIsSireneActive { get; set; } public bool VehIsSireneActive { get; set; }
private VehicleDoors[] LastVehDoors; private VehicleDoors[] LastVehDoors;
public VehicleDoors[] VehDoors { get; set; } public VehicleDoors[] VehDoors { get; set; }
private byte LastVehTires;
public byte VehTires { get; set; }
#endregion #endregion
public void DisplayLocally(string username) public void DisplayLocally(string username)
@ -350,6 +353,8 @@ namespace CoopClient
MainVehicle.IsEngineRunning = VehIsEngineRunning; MainVehicle.IsEngineRunning = VehIsEngineRunning;
} }
MainVehicle.CurrentRPM = VehRPM;
if (VehAreLightsOn != MainVehicle.AreLightsOn) if (VehAreLightsOn != MainVehicle.AreLightsOn)
{ {
MainVehicle.AreLightsOn = VehAreLightsOn; MainVehicle.AreLightsOn = VehAreLightsOn;
@ -416,6 +421,19 @@ namespace CoopClient
LastVehDoors = VehDoors; LastVehDoors = VehDoors;
} }
if (VehTires != default && LastVehTires != VehTires)
{
for (int i = 0; i < MainVehicle.Wheels.Count - 1; i++)
{
if ((VehTires & 1 << i) != 0)
{
Function.Call(Hash.SET_VEHICLE_TYRE_BURST, MainVehicle, i, true, 1000.0);
}
}
LastVehTires = VehTires;
}
} }
if (VehicleSteeringAngle != MainVehicle.SteeringAngle) if (VehicleSteeringAngle != MainVehicle.SteeringAngle)

View File

@ -281,12 +281,20 @@ namespace CoopClient
int secondaryColor; int secondaryColor;
int primaryColor; int primaryColor;
unsafe unsafe
{ {
Function.Call<int>(Hash.GET_VEHICLE_COLOURS, veh, &primaryColor, &secondaryColor); Function.Call<int>(Hash.GET_VEHICLE_COLOURS, veh, &primaryColor, &secondaryColor);
} }
byte tyreFlag = 0;
for (int i = 0; i < veh.Wheels.Count - 1; i++)
{
if (Function.Call<bool>(Hash.IS_VEHICLE_TYRE_BURST, veh, i, false))
{
tyreFlag |= (byte)(1 << i);
}
}
DebugSyncPed.VehicleModelHash = veh.Model.Hash; DebugSyncPed.VehicleModelHash = veh.Model.Hash;
DebugSyncPed.VehicleSeatIndex = (int)player.SeatIndex; DebugSyncPed.VehicleSeatIndex = (int)player.SeatIndex;
DebugSyncPed.VehiclePosition = veh.Position; DebugSyncPed.VehiclePosition = veh.Position;
@ -298,6 +306,7 @@ namespace CoopClient
DebugSyncPed.VehicleColors = new int[] { primaryColor, secondaryColor }; DebugSyncPed.VehicleColors = new int[] { primaryColor, secondaryColor };
DebugSyncPed.VehicleMods = Util.GetVehicleMods(veh); DebugSyncPed.VehicleMods = Util.GetVehicleMods(veh);
DebugSyncPed.VehDoors = Util.GetVehicleDoors(veh.Doors); DebugSyncPed.VehDoors = Util.GetVehicleDoors(veh.Doors);
DebugSyncPed.VehTires = tyreFlag;
DebugSyncPed.LastSyncWasFull = (flags.Value & (byte)VehicleDataFlags.LastSyncWasFull) > 0; DebugSyncPed.LastSyncWasFull = (flags.Value & (byte)VehicleDataFlags.LastSyncWasFull) > 0;
DebugSyncPed.IsInVehicle = (flags.Value & (byte)VehicleDataFlags.IsInVehicle) > 0; DebugSyncPed.IsInVehicle = (flags.Value & (byte)VehicleDataFlags.IsInVehicle) > 0;
DebugSyncPed.VehIsEngineRunning = (flags.Value & (byte)VehicleDataFlags.IsEngineRunning) > 0; DebugSyncPed.VehIsEngineRunning = (flags.Value & (byte)VehicleDataFlags.IsEngineRunning) > 0;