We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent 8dafbd4 commit 57daa1bCopy full SHA for 57daa1b
Dat/Loaders/RegionObjectLoader.cs
@@ -32,7 +32,8 @@ public static LocoObject Load(Stream stream)
32
// fixed
33
br.SkipStringId(); // Name offset, not part of object definition
34
br.SkipImageId(); // Image offset, not part of object definition
35
- br.SkipByte(0x08 - 0x06); // pad
+ model.VehiclesDriveOnThe = br.ReadByte() == 0 ? DrivingSide.Left : DrivingSide.Right;
36
+ model.pad_07 = br.ReadByte();
37
var numCargoInfluenceObjects = br.ReadByte();
38
for (var i = 0; i < Constants.MaxCargoInfluenceObjects; ++i)
39
{
@@ -67,7 +68,8 @@ public static void Save(Stream stream, LocoObject obj)
67
68
69
bw.WriteEmptyStringId(); // Name offset, not part of object definition
70
bw.WriteEmptyImageId(); // Image offset, not part of object definition
- bw.Write((uint16_t)0); // pad
71
+ bw.Write(model.VehiclesDriveOnThe == DrivingSide.Left ? (uint8_t)0 : (uint8_t)1);
72
+ bw.Write(model.pad_07);
73
bw.Write((uint8_t)model.CargoInfluenceObjects.Count);
74
bw.WriteEmptyObjectId(Constants.MaxCargoInfluenceObjects);
75
Definitions/ObjectModels/Objects/Land/LandObject.cs
@@ -47,7 +47,24 @@ public bool TryGetImageName(int id, out string? value)
47
48
public static readonly Dictionary<int, string> ImageIdNameMap = new()
49
50
- { 0, "kFlatSE" },
51
- { 1, "toolbar_terraform_land" },
+ { 0, "flat" },
+ { 1, "west corner up" },
52
+ { 2, "south corner up" },
53
+ { 3, "north east slope" },
54
+ { 4, "east corner up" },
55
+ { 5, "west and east corner up" },
56
+ { 6, "north west slope" },
57
+ { 7, "north corner down" },
58
+ { 8, "north corner up" },
59
+ { 9, "south east slope" },
60
+ { 10, "north and south corners up" },
61
+ { 11, "east corner down" },
62
+ { 12, "north west slope" },
63
+ { 13, "south corner down" },
64
+ { 14, "west corner down" },
65
+ { 15, "south slope" },
66
+ { 16, "north slope" },
+ { 17, "east slope" },
+ { 18, "west slope" }
};
}
Definitions/ObjectModels/Objects/Region/DrivingSide.cs
@@ -0,0 +1,7 @@
1
+namespace Definitions.ObjectModels.Objects.Region;
2
+
3
+public enum DrivingSide
4
+{
5
+ Left,
6
+ Right
7
+}
Definitions/ObjectModels/Objects/Region/RegionObject.cs
@@ -4,6 +4,8 @@ namespace Definitions.ObjectModels.Objects.Region;
public class RegionObject : ILocoStruct
+ public DrivingSide VehiclesDriveOnThe { get; set; }
8
+ public uint8_t pad_07 { get; set; }
9
public List<ObjectModelHeader> CargoInfluenceObjects { get; set; } = [];
10
public List<ObjectModelHeader> DependentObjects { get; set; } = [];
11
public List<CargoInfluenceTownFilterType> CargoInfluenceTownFilter { get; set; } = [];
Gui/ViewModels/DatTypes/Objects/RegionViewModel.cs
@@ -1,29 +1,33 @@
using Definitions.ObjectModels.Objects.Region;
using System.Collections.Generic;
+using System.ComponentModel;
namespace Gui.ViewModels;
public class RegionViewModel : LocoObjectViewModel<RegionObject>
- public List<ObjectModelHeaderViewModel> CargoInfluenceObjects { get; set; }
- public List<ObjectModelHeaderViewModel> DependentObjects { get; set; }
- public List<CargoInfluenceTownFilterType> CargoInfluenceTownFilter { get; set; }
+ [Category("Cargo")] public List<ObjectModelHeaderViewModel> CargoInfluenceObjects { get; set; }
12
+ [Category("Cargo")] public List<ObjectModelHeaderViewModel> DependentObjects { get; set; }
13
+ [Category("Cargo")] public List<CargoInfluenceTownFilterType> CargoInfluenceTownFilter { get; set; }
14
15
public RegionViewModel(RegionObject ro)
16
17
CargoInfluenceObjects = [.. ro.CargoInfluenceObjects.ConvertAll(x => new ObjectModelHeaderViewModel(x))];
18
DependentObjects = [.. ro.DependentObjects.ConvertAll(x => new ObjectModelHeaderViewModel(x))];
19
CargoInfluenceTownFilter = [.. ro.CargoInfluenceTownFilter];
20
+ VehiclesDriveOnThe = ro.VehiclesDriveOnThe;
21
+ pad_07 = ro.pad_07;
22
23
24
public override RegionObject GetAsModel()
- {
- var regionObject = new RegionObject()
25
+ => new RegionObject()
26
27
CargoInfluenceObjects = CargoInfluenceObjects.ConvertAll(x => x.GetAsModel()),
28
DependentObjects = DependentObjects.ConvertAll(x => x.GetAsModel()),
29
CargoInfluenceTownFilter = CargoInfluenceTownFilter,
30
+ VehiclesDriveOnThe = VehiclesDriveOnThe,
31
+ pad_07 = pad_07
- return regionObject;
- }
Tests/LoadSaveTests.cs
@@ -369,7 +369,8 @@ void assertFunc(LocoObject obj, DockObject struc) => Assert.Multiple(() =>
369
370
Assert.That(struc.DesignedYear, Is.Zero, nameof(struc.DesignedYear));
371
Assert.That(struc.ObsoleteYear, Is.EqualTo(65535), nameof(struc.ObsoleteYear));
372
- Assert.That(struc.BoatPosition, Is.EqualTo(new Pos2() { X = 48, Y = 0 }), nameof(struc.BoatPosition));
+ Assert.That(struc.BoatPosition.X, Is.EqualTo(48), nameof(struc.BoatPosition));
373
+ Assert.That(struc.BoatPosition.Y, Is.EqualTo(0), nameof(struc.BoatPosition));
374
375
Assert.That(obj.GraphicsElements, Has.Count.EqualTo(9));
376
});
@@ -657,7 +658,7 @@ public void RegionObject(string objectName)
657
658
659
void assertFunc(LocoObject obj, RegionObject struc) => Assert.Multiple(() =>
660
- //Assert.That(struc.pad_06, Is.EquivalentTo(Array.CreateInstance(typeof(byte), 2)), nameof(struc.pad_06));
661
+ Assert.That(struc.VehiclesDriveOnThe, Is.EqualTo(DrivingSide.Left), nameof(struc.VehiclesDriveOnThe));
662
Assert.That(struc.CargoInfluenceObjects.Count, Is.EqualTo(1), nameof(struc.CargoInfluenceObjects));
663
Assert.That(struc.DependentObjects, Has.Count.EqualTo(239), nameof(struc.DependentObjects));
664
Assert.That(struc.CargoInfluenceTownFilter, Is.EquivalentTo(Enumerable.Repeat(CargoInfluenceTownFilterType.AllTowns, 4)), nameof(struc.CargoInfluenceTownFilter));
0 commit comments