Skip to content

Commit 1e8882e

Browse files
committed
add missing contstructors for objects
1 parent a261766 commit 1e8882e

File tree

12 files changed

+53
-19
lines changed

12 files changed

+53
-19
lines changed

Dat/Objects/Airport/AirportBuilding.cs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,10 @@ public record AirportBuilding(
1313
[property: LocoStructOffset(0x03)] int8_t Y
1414
) : ILocoStruct
1515
{
16-
public bool Validate() => true;
16+
public AirportBuilding() : this(0, 0, 0, 0)
17+
{ }
18+
19+
public bool Validate()
20+
=> true;
1721
}
1822
}

Dat/Objects/Airport/AirportObject.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ public record AirportObject(
2222
[property: LocoStructOffset(0x13)] uint8_t NumBuildingVariations,
2323
[property: LocoStructOffset(0x14), LocoStructVariableLoad, LocoArrayLength(AirportObject.BuildingHeightCount)] List<uint8_t> BuildingHeights,
2424
[property: LocoStructOffset(0x18), LocoStructVariableLoad, LocoArrayLength(AirportObject.BuildingAnimationCount)] List<BuildingPartAnimation> BuildingAnimations,
25-
[property: LocoStructOffset(0x1C), LocoStructVariableLoad, LocoArrayLength(AirportObject.BuildingVariationCount)] List<uint8_t[]> BuildingVariations,
25+
[property: LocoStructOffset(0x1C), LocoStructVariableLoad, LocoArrayLength(AirportObject.BuildingVariationCount)] List<List<uint8_t>> BuildingVariations,
2626
[property: LocoStructOffset(0x9C), LocoStructVariableLoad] List<AirportBuilding> BuildingPositions,
2727
[property: LocoStructOffset(0xA0)] uint32_t LargeTiles,
2828
[property: LocoStructOffset(0xA4)] int8_t MinX,
@@ -63,7 +63,7 @@ public ReadOnlySpan<byte> Load(ReadOnlySpan<byte> remainingData)
6363
while (remainingData[++ptr_1C] != 0xFF)
6464
{ }
6565

66-
BuildingVariations.Add(remainingData[..ptr_1C].ToArray());
66+
BuildingVariations.Add(remainingData[..ptr_1C].ToArray().ToList());
6767
ptr_1C++;
6868
remainingData = remainingData[ptr_1C..];
6969
}
@@ -119,7 +119,7 @@ public ReadOnlySpan<byte> Save()
119119
// variations
120120
foreach (var x in BuildingVariations)
121121
{
122-
ms.Write(x);
122+
ms.Write(x.ToArray());
123123
ms.WriteByte(0xFF);
124124
}
125125

Dat/Objects/Airport/MovementEdge.cs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,10 @@ public record MovementEdge(
1515
[property: LocoStructOffset(0x08)] uint32_t AtLeastOneClearEdges // Which edges must have at least one clear to use transition edge. should probably be some kind of flags?
1616
) : ILocoStruct
1717
{
18-
public bool Validate() => true;
18+
public MovementEdge() : this(0, 0, 0, 0, 0, 0)
19+
{ }
20+
21+
public bool Validate()
22+
=> true;
1923
}
2024
}

Dat/Objects/Airport/MovementNode.cs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,10 @@ public record MovementNode(
1313
[property: LocoStructOffset(0x06)] AirportMovementNodeFlags Flags
1414
) : ILocoStruct
1515
{
16-
public bool Validate() => true;
16+
public MovementNode() : this(0, 0, 0, AirportMovementNodeFlags.None)
17+
{ }
18+
19+
public bool Validate()
20+
=> true;
1721
}
1822
}

Dat/Objects/Industry/BuildingPartAnimation.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,9 @@ public record BuildingPartAnimation(
1212
[property: LocoStructOffset(0x01)] uint8_t AnimationSpeed // Also encodes in bit 7 if the animation is position modified
1313
) : ILocoStruct
1414
{
15+
public BuildingPartAnimation() : this(0, 0)
16+
{ }
17+
1518
public bool Validate()
1619
=> IsPowerOfTwo(NumFrames);
1720

Dat/Objects/Industry/IndustryObject.cs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,9 @@ public record IndustryObject(
2626
[property: LocoStructOffset(0x1F)] uint8_t NumBuildingVariations,
2727
[property: LocoStructOffset(0x20), LocoStructVariableLoad, LocoArrayLength(IndustryObject.BuildingHeightCount)] List<uint8_t> BuildingHeights, // This is the height of a building image
2828
[property: LocoStructOffset(0x24), LocoStructVariableLoad, LocoArrayLength(IndustryObject.BuildingAnimationCount)] List<BuildingPartAnimation> BuildingAnimations,
29-
[property: LocoStructOffset(0x28), LocoStructVariableLoad, LocoArrayLength(IndustryObject.AnimationSequencesCount)] List<uint8_t[]> AnimationSequences, // Access with getAnimationSequence helper method
29+
[property: LocoStructOffset(0x28), LocoStructVariableLoad, LocoArrayLength(IndustryObject.AnimationSequencesCount)] List<List<uint8_t>> AnimationSequences, // Access with getAnimationSequence helper method
3030
[property: LocoStructOffset(0x38), LocoStructVariableLoad] List<IndustryObjectUnk38> var_38, // Access with getUnk38 helper method
31-
[property: LocoStructOffset(0x3C), LocoStructVariableLoad, LocoArrayLength(IndustryObject.BuildingVariationCount)] List<uint8_t[]> BuildingVariations, // Access with getBuildingParts helper method
31+
[property: LocoStructOffset(0x3C), LocoStructVariableLoad, LocoArrayLength(IndustryObject.BuildingVariationCount)] List<List<uint8_t>> BuildingVariations, // Access with getBuildingParts helper method
3232
[property: LocoStructOffset(0xBC)] uint8_t MinNumBuildings,
3333
[property: LocoStructOffset(0xBD)] uint8_t MaxNumBuildings,
3434
[property: LocoStructOffset(0xBE), LocoStructVariableLoad] List<uint8_t> Buildings,
@@ -103,7 +103,7 @@ public ReadOnlySpan<byte> Load(ReadOnlySpan<byte> remainingData)
103103
arr = remainingData[1..size].ToArray();
104104
}
105105

106-
AnimationSequences.Add(arr);
106+
AnimationSequences.Add(arr.ToList());
107107
remainingData = remainingData[(size + 1)..];
108108
}
109109

@@ -128,7 +128,7 @@ public ReadOnlySpan<byte> Load(ReadOnlySpan<byte> remainingData)
128128
;
129129
}
130130

131-
BuildingVariations.Add(remainingData[..ptr_1F].ToArray());
131+
BuildingVariations.Add(remainingData[..ptr_1F].ToArray().ToList());
132132
ptr_1F++;
133133
remainingData = remainingData[ptr_1F..];
134134
}
@@ -203,8 +203,8 @@ public ReadOnlySpan<byte> Save()
203203
// animation sequences
204204
foreach (var x in AnimationSequences)
205205
{
206-
ms.WriteByte((uint8_t)x.Length);
207-
ms.Write(x);
206+
ms.WriteByte((uint8_t)x.Count);
207+
ms.Write(x.ToArray());
208208
}
209209

210210
// unk animation related
@@ -219,7 +219,7 @@ public ReadOnlySpan<byte> Save()
219219
// variation parts
220220
foreach (var x in BuildingVariations)
221221
{
222-
ms.Write(x);
222+
ms.Write(x.ToArray());
223223
ms.WriteByte(0xFF);
224224
}
225225

Dat/Objects/Industry/IndustryObjectProductionRateRange.cs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,10 @@ public record IndustryObjectProductionRateRange(
1212
[property: LocoStructOffset(0x02)] uint16_t Max
1313
) : ILocoStruct
1414
{
15-
public bool Validate() => true;
15+
public IndustryObjectProductionRateRange() : this(0, 0)
16+
{ }
17+
18+
public bool Validate()
19+
=> true;
1620
}
1721
}

Dat/Objects/Industry/IndustryObjectUnk38.cs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,11 @@ public record IndustryObjectUnk38(
1212
[property: LocoStructOffset(0x01)] uint8_t var_01
1313
) : ILocoStruct
1414
{
15-
public bool Validate() => true;
15+
16+
public IndustryObjectUnk38() : this(0, 0)
17+
{ }
18+
19+
public bool Validate()
20+
=> true;
1621
}
1722
}

Dat/Objects/Sound/SoundObjectData.cs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,10 @@ public record SoundObjectData(
1313
[property: LocoStructOffset(0x0C)] WaveFormatEx PcmHeader
1414
) : ILocoStruct
1515
{
16-
public bool Validate() => Offset >= 0;
16+
public SoundObjectData() : this(0, 0, 0, new WaveFormatEx())
17+
{ }
18+
19+
public bool Validate()
20+
=> Offset >= 0;
1721
}
1822
}

Dat/Objects/Sound/WaveFormatEx.cs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,10 @@ public record WaveFormatEx(
1616
[property: LocoStructOffset(0x010)] int16_t CBSize
1717
) : ILocoStruct
1818
{
19-
public bool Validate() => true;
19+
public WaveFormatEx() : this(0, 0, 0, 0, 0, 0, 0)
20+
{ }
21+
22+
public bool Validate()
23+
=> true;
2024
}
2125
}

0 commit comments

Comments
 (0)