-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Ning
committed
Nov 18, 2021
1 parent
106eb68
commit d49e212
Showing
15 changed files
with
679 additions
and
275 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,110 @@ | ||
using System; | ||
|
||
namespace F1Tools | ||
{ | ||
internal static class DataAdapter | ||
{ | ||
public static LocalData AsLocalData(this Codemasters.F1_2019.Packet packet) | ||
{ | ||
if (packet == null) | ||
return null; | ||
|
||
var result = new LocalData(); | ||
if (packet.PacketType == Codemasters.F1_2019.PacketType.CarTelemetry) | ||
{ | ||
var curPack = packet as Codemasters.F1_2019.TelemetryPacket; | ||
var data = curPack.FieldTelemetryData[curPack.PlayerCarIndex]; | ||
|
||
result.Brake = data.Brake; | ||
result.Throttle = data.Throttle; | ||
result.SpeedKph = data.SpeedKph; | ||
result.EngineRpm = data.EngineRpm; | ||
result.Gear = data.Gear; | ||
result.DrsActive = data.DrsActive; | ||
} | ||
else if (packet.PacketType == Codemasters.F1_2019.PacketType.CarStatus) | ||
{ | ||
var curPack = packet as Codemasters.F1_2019.CarStatusPacket; | ||
var data = curPack.FieldCarStatusData[0]; | ||
|
||
result.DrsAllowed = data.DrsAllowed; | ||
} | ||
return result; | ||
} | ||
|
||
public static LocalData AsLocalData(this Codemasters.F1_2020.Packet packet) | ||
{ | ||
if (packet == null) | ||
return null; | ||
|
||
var result = new LocalData(); | ||
if (packet.PacketType == Codemasters.F1_2020.PacketType.CarTelemetry) | ||
{ | ||
var curPack = packet as Codemasters.F1_2020.TelemetryPacket; | ||
var data = curPack.FieldTelemetryData[curPack.PlayerCarIndex]; | ||
|
||
result.Brake = data.Brake; | ||
result.Throttle = data.Throttle; | ||
result.SpeedKph = data.SpeedKph; | ||
result.EngineRpm = data.EngineRpm; | ||
result.Gear = data.Gear; | ||
result.DrsActive = data.DrsActive; | ||
} | ||
else if (packet.PacketType == Codemasters.F1_2020.PacketType.CarStatus) | ||
{ | ||
var curPack = packet as Codemasters.F1_2020.CarStatusPacket; | ||
var data = curPack.FieldCarStatusData[0]; | ||
|
||
result.DrsAllowed = data.DrsAllowed; | ||
result.DrsFailure = data.DrsFailure; | ||
} | ||
return result; | ||
} | ||
|
||
public static LocalData AsLocalData(this Codemasters.F1_2021.Packet packet) | ||
{ | ||
if (packet == null) | ||
return null; | ||
|
||
var result = new LocalData(); | ||
if (packet.PacketType == Codemasters.F1_2021.PacketType.CarTelemetry) | ||
{ | ||
var curPack = packet as Codemasters.F1_2021.TelemetryPacket; | ||
var data = curPack.FieldTelemetryData[curPack.PlayerCarIndex]; | ||
|
||
result.Brake = data.Brake; | ||
result.Throttle = data.Throttle; | ||
result.SpeedKph = data.SpeedKph; | ||
result.EngineRpm = data.EngineRpm; | ||
result.Gear = data.Gear; | ||
result.DrsActive = data.DrsActive; | ||
} | ||
else if (packet.PacketType == Codemasters.F1_2021.PacketType.CarStatus) | ||
{ | ||
var curPack = packet as Codemasters.F1_2021.CarStatusPacket; | ||
var data = curPack.FieldCarStatusData[0]; | ||
|
||
result.DrsAllowed = data.DrsAllowed; | ||
} | ||
return result; | ||
} | ||
|
||
public static LocalData AsLocalData(this float[] fh5Data) | ||
{ | ||
var result = new LocalData | ||
{ | ||
Throttle = fh5Data[80] / 255F, | ||
Brake = fh5Data[81] / 255F, | ||
Clutch = fh5Data[82] / 255F, | ||
Gear = (int)fh5Data[84], | ||
EngineRpm = fh5Data[4], | ||
SpeedKph = fh5Data[64] * 3.6F, | ||
}; | ||
if (result.Gear == 0) | ||
result.Gear = -1; | ||
else if (result.Gear == 11) | ||
result.Gear = 0; | ||
return result; | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,98 +1,27 @@ | ||
using static F1Tools.TypeFactory; | ||
|
||
namespace F1Tools | ||
namespace F1Tools | ||
{ | ||
public static class ShowDataHandle | ||
{ | ||
public static void F1Handle(F1Instrument f1, dynamic packet) | ||
public static void F1Handle(F1Instrument f1, LocalData data) | ||
{ | ||
if (packet == null) | ||
if (data == null) | ||
return; | ||
|
||
switch (DataReciver.Version) | ||
{ | ||
case GameVersion.F1_2019: | ||
Handle19(f1, packet); | ||
break; | ||
case GameVersion.F1_2020: | ||
Handle20(f1, packet); | ||
break; | ||
case GameVersion.F1_2021: | ||
Handle21(f1, packet); | ||
break; | ||
default: | ||
break; | ||
} | ||
} | ||
|
||
private static void Handle19(F1Instrument f1, Codemasters.F1_2019.Packet packet) | ||
{ | ||
if (packet.PacketType == Codemasters.F1_2019.PacketType.CarTelemetry) | ||
{ | ||
var curPack = packet as Codemasters.F1_2019.TelemetryPacket; | ||
var data = curPack.FieldTelemetryData[curPack.PlayerCarIndex]; | ||
|
||
f1.SetBrake(data.Brake); | ||
f1.SetThrottle(data.Throttle); | ||
f1.SetSpeed(data.SpeedKph); | ||
f1.SetRPM(data.EngineRpm); | ||
f1.SetGear(data.Gear); | ||
f1.SetDRS(data.DrsActive); | ||
} | ||
else if (packet.PacketType == Codemasters.F1_2019.PacketType.CarStatus) | ||
{ | ||
var curPack = packet as Codemasters.F1_2019.CarStatusPacket; | ||
var data = curPack.FieldCarStatusData[0]; | ||
|
||
f1.DRSEnable(data.DrsAllowed); | ||
} | ||
} | ||
|
||
private static void Handle20(F1Instrument f1, Codemasters.F1_2020.Packet packet) | ||
{ | ||
if (packet.PacketType == Codemasters.F1_2020.PacketType.CarTelemetry) | ||
{ | ||
var curPack = packet as Codemasters.F1_2020.TelemetryPacket; | ||
var data = curPack.FieldTelemetryData[curPack.PlayerCarIndex]; | ||
|
||
f1.SetBrake(data.Brake); | ||
f1.SetThrottle(data.Throttle); | ||
f1.SetSpeed(data.SpeedKph); | ||
f1.SetRPM(data.EngineRpm); | ||
f1.SetGear(data.Gear); | ||
f1.SetDRS(data.DrsActive); | ||
} | ||
else if (packet.PacketType == Codemasters.F1_2020.PacketType.CarStatus) | ||
{ | ||
var curPack = packet as Codemasters.F1_2020.CarStatusPacket; | ||
var data = curPack.FieldCarStatusData[0]; | ||
|
||
f1.DRSEnable(data.DrsAllowed); | ||
f1.DRSNegative(data.DrsFailure); | ||
} | ||
} | ||
|
||
private static void Handle21(F1Instrument f1, Codemasters.F1_2021.Packet packet) | ||
{ | ||
if (packet.PacketType == Codemasters.F1_2021.PacketType.CarTelemetry) | ||
{ | ||
var curPack = packet as Codemasters.F1_2021.TelemetryPacket; | ||
var data = curPack.FieldTelemetryData[curPack.PlayerCarIndex]; | ||
|
||
f1.SetBrake(data.Brake); | ||
f1.SetThrottle(data.Throttle); | ||
f1.SetSpeed(data.SpeedKph); | ||
f1.SetRPM(data.EngineRpm); | ||
f1.SetGear(data.Gear); | ||
f1.SetDRS(data.DrsActive); | ||
} | ||
else if (packet.PacketType == Codemasters.F1_2021.PacketType.CarStatus) | ||
{ | ||
var curPack = packet as Codemasters.F1_2021.CarStatusPacket; | ||
var data = curPack.FieldCarStatusData[0]; | ||
|
||
f1.DRSEnable(data.DrsAllowed); | ||
} | ||
if (data.Brake.HasValue) | ||
f1.SetBrake(data.Brake.Value); | ||
if (data.Throttle.HasValue) | ||
f1.SetThrottle(data.Throttle.Value); | ||
if (data.SpeedKph.HasValue) | ||
f1.SetSpeed((int)data.SpeedKph.Value); | ||
if (data.EngineRpm.HasValue) | ||
f1.SetRPM((int)data.EngineRpm.Value); | ||
if (data.Gear.HasValue) | ||
f1.SetGear(data.Gear.Value); | ||
if (data.DrsActive.HasValue) | ||
f1.SetDRS(data.DrsActive.Value); | ||
if (data.DrsAllowed.HasValue) | ||
f1.DRSEnable(data.DrsAllowed.Value); | ||
if (data.DrsFailure.HasValue) | ||
f1.DRSNegative(data.DrsFailure.Value); | ||
} | ||
} | ||
} |
Oops, something went wrong.