Skip to content

Commit a261766

Browse files
committed
fix binding issues in building object
1 parent d07fa6c commit a261766

File tree

2 files changed

+7
-7
lines changed

2 files changed

+7
-7
lines changed

Dat/Objects/BuildingObject.cs

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ public record BuildingObject(
2626
[property: LocoStructOffset(0x07)] uint8_t NumBuildingVariations,
2727
[property: LocoStructOffset(0x08), LocoStructVariableLoad, LocoArrayLength(BuildingObject.BuildingHeightCount)] List<uint8_t> BuildingHeights,
2828
[property: LocoStructOffset(0x0C), LocoStructVariableLoad, LocoArrayLength(BuildingObject.BuildingAnimationCount)] List<BuildingPartAnimation> BuildingAnimations,
29-
[property: LocoStructOffset(0x10), LocoStructVariableLoad, LocoArrayLength(BuildingObject.BuildingVariationCount)] List<uint8_t[]> BuildingVariations,
29+
[property: LocoStructOffset(0x10), LocoStructVariableLoad, LocoArrayLength(BuildingObject.BuildingVariationCount)] List<List<uint8_t>> BuildingVariations,
3030
[property: LocoStructOffset(0x90)] uint32_t Colours,
3131
[property: LocoStructOffset(0x94)] uint16_t DesignedYear,
3232
[property: LocoStructOffset(0x96)] uint16_t ObsoleteYear,
@@ -37,7 +37,7 @@ public record BuildingObject(
3737
[property: LocoStructOffset(0x9D)] Colour ScaffoldingColour,
3838
[property: LocoStructOffset(0x9E)] uint8_t GeneratorFunction,
3939
[property: LocoStructOffset(0x9F)] uint8_t AverageNumberOnMap,
40-
[property: LocoStructOffset(0xA0), LocoArrayLength(BuildingObject.MaxProducedQuantity)] uint8_t[] ProducedQuantity,
40+
[property: LocoStructOffset(0xA0), LocoArrayLength(BuildingObject.MaxProducedCargoType)] uint8_t[] ProducedQuantity,
4141
[property: LocoStructOffset(0xA2), LocoStructVariableLoad, LocoArrayLength(BuildingObject.MaxProducedCargoType)] List<S5Header> ProducedCargo,
4242
[property: LocoStructOffset(0xA4), LocoStructVariableLoad, LocoArrayLength(BuildingObject.MaxRequiredCargoType)] List<S5Header> RequiredCargo,
4343
[property: LocoStructOffset(0xA6), LocoStructVariableLoad, LocoArrayLength(2)] List<uint8_t> var_A6,
@@ -51,7 +51,6 @@ public record BuildingObject(
5151
public const int BuildingVariationCount = 32;
5252
public const int BuildingHeightCount = 4;
5353
public const int BuildingAnimationCount = 2;
54-
public const int MaxProducedQuantity = 2;
5554
public const int MaxProducedCargoType = 2;
5655
public const int MaxRequiredCargoType = 2;
5756
public const int MaxElevatorHeightSequences = 4;
@@ -84,7 +83,7 @@ public ReadOnlySpan<byte> Load(ReadOnlySpan<byte> remainingData)
8483
;
8584
}
8685

87-
BuildingVariations.Add(remainingData[..ptr_10].ToArray());
86+
BuildingVariations.Add(remainingData[..ptr_10].ToArray().ToList());
8887
ptr_10++;
8988
remainingData = remainingData[ptr_10..];
9089
}
@@ -133,7 +132,7 @@ public ReadOnlySpan<byte> Save()
133132
// variation parts
134133
foreach (var x in BuildingVariations)
135134
{
136-
ms.Write(x);
135+
ms.Write(x.ToArray());
137136
ms.WriteByte(0xFF);
138137
}
139138

Gui/ViewModels/DatTypes/Objects/BuildingViewModel.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ public class BuildingViewModel : ReactiveObject, IObjectViewModel<ILocoStruct>
2525
[Reactive, Category("Cost")] public uint16_t SellCostFactor { get; set; }
2626
[Reactive, Category("Production"), Length(0, BuildingObject.MaxProducedCargoType)] public BindingList<S5Header> ProducedCargo { get; set; }
2727
[Reactive, Category("Production"), Length(0, BuildingObject.MaxProducedCargoType)] public BindingList<S5Header> RequiredCargo { get; set; }
28-
[Reactive, Category("Production"), Length(1, BuildingObject.MaxProducedQuantity)] public BindingList<uint8_t> ProducedQuantity { get; set; }
28+
[Reactive, Category("Production"), Length(1, BuildingObject.MaxProducedCargoType)] public BindingList<uint8_t> ProducedQuantity { get; set; }
2929
[Reactive, Category("Building"), Length(1, BuildingObject.BuildingVariationCount)] public BindingList<BindingList<uint8_t>> BuildingVariations { get; set; } // NumBuildingVariations
3030
[Reactive, Category("Building"), Length(1, BuildingObject.BuildingHeightCount)] public BindingList<uint8_t> BuildingHeights { get; set; } // NumBuildingParts
3131
[Reactive, Category("Building"), Length(1, BuildingObject.BuildingAnimationCount)] public BindingList<BuildingPartAnimation> BuildingAnimations { get; set; } // NumBuildingParts
@@ -52,7 +52,7 @@ public BuildingViewModel(BuildingObject bo)
5252
SellCostFactor = bo.SellCostFactor;
5353
ProducedCargo = new(bo.ProducedCargo);
5454
RequiredCargo = new(bo.RequiredCargo);
55-
ProducedQuantity = new(bo.ProducedQuantity);
55+
ProducedQuantity = [.. bo.ProducedQuantity];
5656
BuildingHeights = new(bo.BuildingHeights);
5757
BuildingAnimations = new(bo.BuildingAnimations);
5858
BuildingVariations = new(bo.BuildingVariations.Select(x => new BindingList<uint8_t>(x)).ToBindingList());
@@ -84,6 +84,7 @@ public BuildingObject GetAsStruct(BuildingObject bo)
8484
var_AC = var_AC,
8585
NumBuildingParts = (uint8_t)bo.BuildingAnimations.Count,
8686
NumBuildingVariations = (uint8_t)bo.BuildingVariations.Count,
87+
ProducedQuantity = [.. ProducedQuantity],
8788
//NumElevatorSequences = (uint8_t)bo.ElevatorHeightSequences.Count,
8889
};
8990
}

0 commit comments

Comments
 (0)