Skip to content

Commit 6ae1a96

Browse files
committed
fix start sounds not setting vanilla/custom flag
1 parent 2af9a44 commit 6ae1a96

File tree

1 file changed

+36
-2
lines changed

1 file changed

+36
-2
lines changed

Gui/ViewModels/DatTypes/Objects/VehicleViewModel.cs

Lines changed: 36 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
using OpenLoco.Dat.Data;
12
using OpenLoco.Dat.Objects;
23
using OpenLoco.Dat.Types;
34
using ReactiveUI;
@@ -8,6 +9,38 @@
89

910
namespace OpenLoco.Gui.ViewModels
1011
{
12+
[TypeConverter(typeof(ExpandableObjectConverter))]
13+
public class S5ViewModel : ReactiveObject //, IObjectViewModel<S5Header>
14+
{
15+
public S5ViewModel(string name, uint checksum, SourceGame sourceGame, ObjectType objectType)
16+
{
17+
Name = name;
18+
Checksum = checksum;
19+
SourceGame = sourceGame;
20+
ObjectType = objectType;
21+
}
22+
public S5ViewModel(S5Header s5Header)
23+
{
24+
Name = s5Header.Name;
25+
Checksum = s5Header.Checksum;
26+
SourceGame = s5Header.SourceGame;
27+
ObjectType = s5Header.ObjectType;
28+
}
29+
30+
public string Name { get; set; }
31+
public uint32_t Checksum { get; set; }
32+
public SourceGame SourceGame { get; set; }
33+
34+
public ObjectType ObjectType { get; set; }
35+
36+
public S5Header GetAsUnderlyingType()
37+
=> new(Name, Checksum)
38+
{
39+
ObjectType = ObjectType,
40+
SourceGame = SourceGame
41+
};
42+
}
43+
1144
public class VehicleViewModel : ReactiveObject, IObjectViewModel<ILocoStruct>
1245
{
1346
[Reactive, Category("Stats")] public TransportMode Mode { get; set; }
@@ -48,7 +81,7 @@ public class VehicleViewModel : ReactiveObject, IObjectViewModel<ILocoStruct>
4881
[Reactive, Category("Sound")] public FrictionSound? FrictionSound { get; set; }
4982
[Reactive, Category("Sound")] public Engine1Sound? Engine1Sound { get; set; }
5083
[Reactive, Category("Sound")] public Engine2Sound? Engine2Sound { get; set; }
51-
[Reactive, Category("Sound")] public BindingList<S5Header> StartSounds { get; set; }
84+
[Reactive, Category("Sound")] public BindingList<S5ViewModel> StartSounds { get; set; }
5285

5386
public VehicleViewModel(VehicleObject veh)
5487
{
@@ -84,7 +117,7 @@ public VehicleViewModel(VehicleObject veh)
84117
RackRail = veh.RackRail;
85118
Sound = veh.Sound;
86119
SoundType = veh.DrivingSoundType;
87-
StartSounds = new(veh.StartSounds);
120+
StartSounds = new(veh.StartSounds.ConvertAll(x => new S5ViewModel(x)));
88121
FrictionSound = veh.SoundPropertyFriction;
89122
Engine1Sound = veh.SoundPropertyEngine1;
90123
Engine2Sound = veh.SoundPropertyEngine2;
@@ -122,6 +155,7 @@ public VehicleObject GetAsStruct(VehicleObject veh)
122155
ObsoleteYear = ObsoleteYear,
123156
RackRail = RackRail,
124157
Sound = Sound,
158+
StartSounds = StartSounds.ToList().ConvertAll(x => x.GetAsUnderlyingType()),
125159
DrivingSoundType = SoundType,
126160
SoundPropertyFriction = FrictionSound,
127161
SoundPropertyEngine1 = Engine1Sound,

0 commit comments

Comments
 (0)