Skip to content

Commit 6509618

Browse files
committed
cleanup new s5 viewmodel
1 parent 6ae1a96 commit 6509618

File tree

2 files changed

+25
-67
lines changed

2 files changed

+25
-67
lines changed

Gui/ViewModels/DatTypes/Objects/VehicleViewModel.cs

Lines changed: 2 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
using OpenLoco.Dat.Data;
21
using OpenLoco.Dat.Objects;
32
using OpenLoco.Dat.Types;
43
using ReactiveUI;
@@ -9,38 +8,6 @@
98

109
namespace OpenLoco.Gui.ViewModels
1110
{
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-
4411
public class VehicleViewModel : ReactiveObject, IObjectViewModel<ILocoStruct>
4512
{
4613
[Reactive, Category("Stats")] public TransportMode Mode { get; set; }
@@ -81,7 +48,7 @@ public class VehicleViewModel : ReactiveObject, IObjectViewModel<ILocoStruct>
8148
[Reactive, Category("Sound")] public FrictionSound? FrictionSound { get; set; }
8249
[Reactive, Category("Sound")] public Engine1Sound? Engine1Sound { get; set; }
8350
[Reactive, Category("Sound")] public Engine2Sound? Engine2Sound { get; set; }
84-
[Reactive, Category("Sound")] public BindingList<S5ViewModel> StartSounds { get; set; }
51+
[Reactive, Category("Sound")] public BindingList<S5HeaderViewModel> StartSounds { get; set; }
8552

8653
public VehicleViewModel(VehicleObject veh)
8754
{
@@ -117,7 +84,7 @@ public VehicleViewModel(VehicleObject veh)
11784
RackRail = veh.RackRail;
11885
Sound = veh.Sound;
11986
SoundType = veh.DrivingSoundType;
120-
StartSounds = new(veh.StartSounds.ConvertAll(x => new S5ViewModel(x)));
87+
StartSounds = new(veh.StartSounds.ConvertAll(x => new S5HeaderViewModel(x)));
12188
FrictionSound = veh.SoundPropertyFriction;
12289
Engine1Sound = veh.SoundPropertyEngine1;
12390
Engine2Sound = veh.SoundPropertyEngine2;

Gui/ViewModels/DatTypes/S5HeaderViewModel.cs

Lines changed: 23 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -2,55 +2,46 @@
22
using OpenLoco.Dat.Types;
33
using ReactiveUI;
44
using ReactiveUI.Fody.Helpers;
5-
using System;
5+
using System.ComponentModel;
66
using System.ComponentModel.DataAnnotations;
77

88
namespace OpenLoco.Gui.ViewModels
99
{
10+
[TypeConverter(typeof(ExpandableObjectConverter))]
1011
public class S5HeaderViewModel : ReactiveObject
1112
{
12-
S5Header s5Header { get; init; }
13-
14-
public S5HeaderViewModel(S5Header s5)
13+
public S5HeaderViewModel(string name, uint checksum, SourceGame sourceGame, ObjectType objectType)
1514
{
16-
s5Header = s5;
17-
Name = s5.Name;
18-
SourceGame = s5.SourceGame;
19-
ObjectType = s5.ObjectType;
20-
//Checksum = s5.Checksum;
21-
//Flags = s5.Flags;
22-
23-
_ = this.WhenAnyValue(o => o.Name)
24-
.Subscribe(_ => s5Header.Name = Name);
25-
26-
_ = this.WhenAnyValue(o => o.SourceGame)
27-
.Subscribe(_ =>
28-
{
29-
s5Header.SourceGame = SourceGame;
30-
this.RaisePropertyChanged(nameof(Flags));
31-
});
32-
33-
_ = this.WhenAnyValue(o => o.ObjectType)
34-
.Subscribe(_ =>
35-
{
36-
s5Header.ObjectType = ObjectType;
37-
this.RaisePropertyChanged(nameof(Flags));
38-
});
15+
Name = name;
16+
Checksum = checksum;
17+
SourceGame = sourceGame;
18+
ObjectType = objectType;
19+
}
20+
public S5HeaderViewModel(S5Header s5Header)
21+
{
22+
Name = s5Header.Name;
23+
Checksum = s5Header.Checksum;
24+
SourceGame = s5Header.SourceGame;
25+
ObjectType = s5Header.ObjectType;
3926
}
4027

4128
[Reactive, MaxLength(8)]
4229
public string Name { get; set; }
4330

31+
[Reactive]
32+
public uint32_t Checksum { get; set; }
33+
4434
[Reactive]
4535
public SourceGame SourceGame { get; set; }
4636

4737
[Reactive]
4838
public ObjectType ObjectType { get; set; }
4939

50-
[Editable(false)]
51-
public uint32_t Checksum => s5Header.Checksum;
52-
53-
[Editable(false)]
54-
public uint32_t Flags => s5Header.Flags;
40+
public S5Header GetAsUnderlyingType()
41+
=> new(Name, Checksum)
42+
{
43+
ObjectType = ObjectType,
44+
SourceGame = SourceGame
45+
};
5546
}
5647
}

0 commit comments

Comments
 (0)