Skip to content

Commit 448800a

Browse files
committed
rename erroneously named properties in trackobject
1 parent 2e5c6d0 commit 448800a

File tree

4 files changed

+49
-11
lines changed

4 files changed

+49
-11
lines changed

Dat/Objects/TrackObject.cs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ public record TrackObject(
4040
[property: LocoStructOffset(0x02)] TrackTraitFlags TrackPieces,
4141
[property: LocoStructOffset(0x04)] TrackTraitFlags StationTrackPieces,
4242
[property: LocoStructOffset(0x06)] uint8_t var_06,
43-
[property: LocoStructOffset(0x07)] uint8_t NumCompatibleVehicles,
43+
[property: LocoStructOffset(0x07)] uint8_t NumCompatibleTracksAndRoads,
4444
[property: LocoStructOffset(0x08)] uint8_t NumMods,
4545
[property: LocoStructOffset(0x09)] uint8_t NumSignals,
4646
[property: LocoStructOffset(0x0A), LocoArrayLength(TrackObject.MaxMods), LocoStructVariableLoad, Browsable(false)] object_id[] _Mods,
@@ -63,7 +63,7 @@ public record TrackObject(
6363
[property: LocoStructOffset(0x35), Browsable(false)] uint8_t var_35
6464
) : ILocoStruct, ILocoStructVariableData, IImageTableNameProvider
6565
{
66-
public List<S5Header> Vehicles { get; set; } = [];
66+
public List<S5Header> TracksAndRoads { get; set; } = [];
6767
public List<S5Header> TrackMods { get; set; } = []; // aka TrackExtraObject
6868
public List<S5Header> Signals { get; set; } = [];
6969
public S5Header Tunnel { get; set; }
@@ -78,8 +78,8 @@ public record TrackObject(
7878
public ReadOnlySpan<byte> Load(ReadOnlySpan<byte> remainingData)
7979
{
8080
// compatible roads/tracks
81-
Vehicles = SawyerStreamReader.LoadVariableCountS5Headers(remainingData, NumCompatibleVehicles);
82-
remainingData = remainingData[(S5Header.StructLength * NumCompatibleVehicles)..];
81+
TracksAndRoads = SawyerStreamReader.LoadVariableCountS5Headers(remainingData, NumCompatibleTracksAndRoads);
82+
remainingData = remainingData[(S5Header.StructLength * NumCompatibleTracksAndRoads)..];
8383

8484
// mods
8585
TrackMods = SawyerStreamReader.LoadVariableCountS5Headers(remainingData, NumMods);
@@ -109,7 +109,7 @@ public ReadOnlySpan<byte> Load(ReadOnlySpan<byte> remainingData)
109109

110110
public ReadOnlySpan<byte> Save()
111111
{
112-
var headers = Vehicles
112+
var headers = TracksAndRoads
113113
.Concat(TrackMods)
114114
.Concat(Signals)
115115
.Concat(Enumerable.Repeat(Tunnel, 1))

DataQuery/Program.cs

Lines changed: 39 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,50 @@
1111
var index = ObjectIndex.LoadOrCreateIndex(dir, logger);
1212

1313
//QueryCostIndices(dir, logger, index);
14-
QueryCargoCategories(dir, logger, index);
14+
//QueryCargoCategories(dir, logger, index);
15+
QueryVehicleBodyUnkSprites(dir, logger, index);
1516

1617
Console.WriteLine("done");
1718

1819
Console.ReadLine();
1920

21+
static void QueryVehicleBodyUnkSprites(string dir, Logger logger, ObjectIndex index)
22+
{
23+
var results = new List<(ObjectIndexEntry Obj, ObjectSource ObjectSource)>();
24+
25+
foreach (var obj in index.Objects.Where(x => x.ObjectType == ObjectType.Vehicle && x.ObjectSource == ObjectSource.LocomotionSteam))
26+
{
27+
try
28+
{
29+
var o = SawyerStreamReader.LoadFullObjectFromFile(Path.Combine(dir, obj.Filename), logger);
30+
if (o?.LocoObject != null)
31+
{
32+
var struc = (VehicleObject)o.Value.LocoObject.Object;
33+
var header = o.Value.DatFileInfo.S5Header;
34+
var source = OriginalObjectFiles.GetFileSource(header.Name, header.Checksum);
35+
36+
if (struc.BodySprites.Any(x => x.Flags.HasFlag(BodySpriteFlags.HasUnkSprites)))
37+
{
38+
results.Add((obj, source));
39+
}
40+
41+
//results.Add((obj, struc.CargoCategory, o.Value.LocoObject.StringTable.Table["Name"][LanguageId.English_UK], source));
42+
}
43+
}
44+
catch (Exception ex)
45+
{
46+
Console.WriteLine($"{obj.Filename} - {ex.Message}");
47+
}
48+
}
49+
50+
const string csvHeader = "DatName, ObjectSource";
51+
var lines = results
52+
.OrderBy(x => x.Obj.DatName)
53+
.Select(x => string.Join(',', x.Obj.DatName, x.ObjectSource));
54+
55+
File.WriteAllLines("vehicleBodiesWithUnkSpritesFlag.csv", [csvHeader, .. lines]);
56+
}
57+
2058
static void QueryCargoCategories(string dir, Logger logger, ObjectIndex index)
2159
{
2260
var results = new List<(ObjectIndexEntry Obj, CargoCategory CargoCategory, string LocalisedName, ObjectSource ObjectSource)>();

Gui/ViewModels/DatTypes/Objects/TrackViewModel.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ public class TrackViewModel : LocoObjectViewModel<TrackObject>
1717
[Reactive, Category("Cost")] public int16_t SellCostFactor { get; set; }
1818
[Reactive, Category("Cost")] public int16_t TunnelCostFactor { get; set; }
1919
[Reactive, Category("Cost")] public uint8_t CostIndex { get; set; }
20-
[Reactive, Category("Compatible")] public BindingList<S5HeaderViewModel> CompatibleVehicles { get; set; }
20+
[Reactive, Category("Tracks and Roads")] public BindingList<S5HeaderViewModel> CompatibleTracksAndRoads { get; set; }
2121
[Reactive, Category("Mods")] public BindingList<S5HeaderViewModel> CompatibleTrackExtras { get; set; }
2222
[Reactive, Category("Signals")] public BindingList<S5HeaderViewModel> CompatibleSignals { get; set; }
2323
[Reactive, Category("Bridges")] public BindingList<S5HeaderViewModel> CompatibleBridges { get; set; }
@@ -36,7 +36,7 @@ public TrackViewModel(TrackObject to)
3636
SellCostFactor = to.SellCostFactor;
3737
TunnelCostFactor = to.TunnelCostFactor;
3838
CostIndex = to.CostIndex;
39-
CompatibleVehicles = new(to.Vehicles.ConvertAll(x => new S5HeaderViewModel(x)));
39+
CompatibleTracksAndRoads = new(to.TracksAndRoads.ConvertAll(x => new S5HeaderViewModel(x)));
4040
CompatibleTrackExtras = new(to.TrackMods.ConvertAll(x => new S5HeaderViewModel(x)));
4141
CompatibleSignals = new(to.Signals.ConvertAll(x => new S5HeaderViewModel(x)));
4242
CompatibleTunnel = new(to.Tunnel);
@@ -60,8 +60,8 @@ public override TrackObject GetAsStruct(TrackObject to)
6060
SellCostFactor = SellCostFactor,
6161
TunnelCostFactor = TunnelCostFactor,
6262
CostIndex = CostIndex,
63-
NumCompatibleVehicles = (uint8_t)CompatibleVehicles.Count,
64-
Vehicles = CompatibleVehicles.ToList().ConvertAll(x => x.GetAsUnderlyingType()),
63+
NumCompatibleTracksAndRoads = (uint8_t)CompatibleTracksAndRoads.Count,
64+
TracksAndRoads = CompatibleTracksAndRoads.ToList().ConvertAll(x => x.GetAsUnderlyingType()),
6565
NumMods = (uint8_t)CompatibleTrackExtras.Count,
6666
TrackMods = CompatibleTrackExtras.ToList().ConvertAll(x => x.GetAsUnderlyingType()),
6767
NumSignals = (uint8_t)CompatibleSignals.Count,

Tests/LoadSaveTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -866,7 +866,7 @@ void assertFunc(ILocoObject obj, TrackObject struc) => Assert.Multiple(() =>
866866
Assert.That(struc.Flags, Is.EqualTo(TrackObjectFlags.unk_00), nameof(struc.Flags));
867867
// Mods
868868
Assert.That(struc.NumBridges, Is.EqualTo(5), nameof(struc.NumBridges));
869-
Assert.That(struc.NumCompatibleVehicles, Is.EqualTo(7), nameof(struc.NumCompatibleVehicles));
869+
Assert.That(struc.NumCompatibleTracksAndRoads, Is.EqualTo(7), nameof(struc.NumCompatibleTracksAndRoads));
870870
Assert.That(struc.NumMods, Is.EqualTo(2), nameof(struc.NumMods));
871871
Assert.That(struc.NumSignals, Is.EqualTo(10), nameof(struc.NumSignals));
872872
Assert.That(struc.NumStations, Is.EqualTo(5), nameof(struc.NumStations));

0 commit comments

Comments
 (0)