diff --git a/SabreTools.Data.Extensions/MetadataExtensions.cs b/SabreTools.Data.Extensions/MetadataExtensions.cs index f299e141..8ece4688 100644 --- a/SabreTools.Data.Extensions/MetadataExtensions.cs +++ b/SabreTools.Data.Extensions/MetadataExtensions.cs @@ -193,8 +193,18 @@ namespace SabreTools.Data.Extensions } else if (self is Control selfControl && clone is Control cloneControl) { + cloneControl.Buttons = selfControl.Buttons; cloneControl.ControlType = selfControl.ControlType; + cloneControl.KeyDelta = selfControl.KeyDelta; + cloneControl.Maximum = selfControl.Maximum; + cloneControl.Minimum = selfControl.Minimum; + cloneControl.Player = selfControl.Player; + cloneControl.ReqButtons = selfControl.ReqButtons; cloneControl.Reverse = selfControl.Reverse; + cloneControl.Sensitivity = selfControl.Sensitivity; + cloneControl.Ways = selfControl.Ways; + cloneControl.Ways2 = selfControl.Ways2; + cloneControl.Ways3 = selfControl.Ways3; } else if (self is DataArea selfDataArea && clone is DataArea cloneDataArea) { diff --git a/SabreTools.Data.Models/Listxml/Control.cs b/SabreTools.Data.Models/Listxml/Control.cs index 24d2c29e..b1be6a26 100644 --- a/SabreTools.Data.Models/Listxml/Control.cs +++ b/SabreTools.Data.Models/Listxml/Control.cs @@ -12,47 +12,37 @@ namespace SabreTools.Data.Models.Listxml [XmlAttribute("type")] public ControlType? Type { get; set; } - /// Numeric [XmlAttribute("player")] - public string? Player { get; set; } + public long? Player { get; set; } - /// Numeric [XmlAttribute("buttons")] - public string? Buttons { get; set; } + public long? Buttons { get; set; } - /// Numeric [XmlAttribute("reqbuttons")] - public string? ReqButtons { get; set; } + public long? ReqButtons { get; set; } - /// Numeric [XmlAttribute("minimum")] - public string? Minimum { get; set; } + public long? Minimum { get; set; } - /// Numeric [XmlAttribute("maximum")] - public string? Maximum { get; set; } + public long? Maximum { get; set; } - /// Numeric [XmlAttribute("sensitivity")] - public string? Sensitivity { get; set; } + public long? Sensitivity { get; set; } - /// Numeric [XmlAttribute("keydelta")] - public string? KeyDelta { get; set; } + public long? KeyDelta { get; set; } /// (yes|no) "no" [XmlAttribute("reverse")] public bool? Reverse { get; set; } - /// Numeric? [XmlAttribute("ways")] public string? Ways { get; set; } - /// Numeric? [XmlAttribute("ways2")] public string? Ways2 { get; set; } - /// Numeric? [XmlAttribute("ways3")] public string? Ways3 { get; set; } } diff --git a/SabreTools.Data.Models/Metadata/Control.cs b/SabreTools.Data.Models/Metadata/Control.cs index 98c0fd58..1640899a 100644 --- a/SabreTools.Data.Models/Metadata/Control.cs +++ b/SabreTools.Data.Models/Metadata/Control.cs @@ -8,45 +8,31 @@ namespace SabreTools.Data.Models.Metadata { #region Properties + public long? Buttons { get; set; } + /// (joy|stick|paddle|pedal|lightgun|positional|dial|trackball|mouse|only_buttons|keypad|keyboard|mahjong|hanafuda|gambling) public ControlType? ControlType { get; set; } + public long? KeyDelta { get; set; } + + public long? Maximum { get; set; } + + public long? Minimum { get; set; } + + public long? Player { get; set; } + + public long? ReqButtons { get; set; } + /// (yes|no) "no" public bool? Reverse { get; set; } - #endregion + public long? Sensitivity { get; set; } - #region Keys + public string? Ways { get; set; } - /// long - public const string ButtonsKey = "buttons"; + public string? Ways2 { get; set; } - /// long - public const string KeyDeltaKey = "keydelta"; - - /// long - public const string MaximumKey = "maximum"; - - /// long - public const string MinimumKey = "minimum"; - - /// long - public const string PlayerKey = "player"; - - /// long - public const string ReqButtonsKey = "reqbuttons"; - - /// long - public const string SensitivityKey = "sensitivity"; - - /// string, possibly long - public const string WaysKey = "ways"; - - /// string, possibly long - public const string Ways2Key = "ways2"; - - /// string, possibly long - public const string Ways3Key = "ways3"; + public string? Ways3 { get; set; } #endregion diff --git a/SabreTools.Metadata.DatFiles.Test/DatFileTests.FromMetadata.cs b/SabreTools.Metadata.DatFiles.Test/DatFileTests.FromMetadata.cs index 961c3976..df57d032 100644 --- a/SabreTools.Metadata.DatFiles.Test/DatFileTests.FromMetadata.cs +++ b/SabreTools.Metadata.DatFiles.Test/DatFileTests.FromMetadata.cs @@ -462,18 +462,18 @@ namespace SabreTools.Metadata.DatFiles.Test { return new Data.Models.Metadata.Control { - [Data.Models.Metadata.Control.ButtonsKey] = 12345L, - [Data.Models.Metadata.Control.KeyDeltaKey] = 12345L, - [Data.Models.Metadata.Control.MaximumKey] = 12345L, - [Data.Models.Metadata.Control.MinimumKey] = 12345L, - [Data.Models.Metadata.Control.PlayerKey] = 12345L, - [Data.Models.Metadata.Control.ReqButtonsKey] = 12345L, + Buttons = 12345L, + KeyDelta = 12345L, + Maximum = 12345L, + Minimum = 12345L, + Player = 12345L, + ReqButtons = 12345L, Reverse = true, - [Data.Models.Metadata.Control.SensitivityKey] = 12345L, + Sensitivity = 12345L, ControlType = Data.Models.Metadata.ControlType.Lightgun, - [Data.Models.Metadata.Control.WaysKey] = "ways", - [Data.Models.Metadata.Control.Ways2Key] = "ways2", - [Data.Models.Metadata.Control.Ways3Key] = "ways3", + Ways = "ways", + Ways2 = "ways2", + Ways3 = "ways3", }; } @@ -1234,18 +1234,18 @@ namespace SabreTools.Metadata.DatFiles.Test private static void ValidateControl(Control? control) { Assert.NotNull(control); - Assert.Equal(12345L, control.ReadLong(Data.Models.Metadata.Control.ButtonsKey)); - Assert.Equal(12345L, control.ReadLong(Data.Models.Metadata.Control.KeyDeltaKey)); - Assert.Equal(12345L, control.ReadLong(Data.Models.Metadata.Control.MaximumKey)); - Assert.Equal(12345L, control.ReadLong(Data.Models.Metadata.Control.MinimumKey)); - Assert.Equal(12345L, control.ReadLong(Data.Models.Metadata.Control.PlayerKey)); - Assert.Equal(12345L, control.ReadLong(Data.Models.Metadata.Control.ReqButtonsKey)); + Assert.Equal(12345L, control.Buttons); + Assert.Equal(12345L, control.KeyDelta); + Assert.Equal(12345L, control.Maximum); + Assert.Equal(12345L, control.Minimum); + Assert.Equal(12345L, control.Player); + Assert.Equal(12345L, control.ReqButtons); Assert.True(control.Reverse); - Assert.Equal(12345L, control.ReadLong(Data.Models.Metadata.Control.SensitivityKey)); + Assert.Equal(12345L, control.Sensitivity); Assert.Equal(Data.Models.Metadata.ControlType.Lightgun, control.ControlType); - Assert.Equal("ways", control.ReadString(Data.Models.Metadata.Control.WaysKey)); - Assert.Equal("ways2", control.ReadString(Data.Models.Metadata.Control.Ways2Key)); - Assert.Equal("ways3", control.ReadString(Data.Models.Metadata.Control.Ways3Key)); + Assert.Equal("ways", control.Ways); + Assert.Equal("ways2", control.Ways2); + Assert.Equal("ways3", control.Ways3); } private static void ValidateDataArea(DataArea? dataArea) diff --git a/SabreTools.Metadata.DatFiles.Test/DatFileTests.ToMetadata.cs b/SabreTools.Metadata.DatFiles.Test/DatFileTests.ToMetadata.cs index 8bf51cf1..6c3f053f 100644 --- a/SabreTools.Metadata.DatFiles.Test/DatFileTests.ToMetadata.cs +++ b/SabreTools.Metadata.DatFiles.Test/DatFileTests.ToMetadata.cs @@ -741,18 +741,18 @@ namespace SabreTools.Metadata.DatFiles.Test private static void ValidateMetadataControl(Data.Models.Metadata.Control? control) { Assert.NotNull(control); - Assert.Equal(12345, control.ReadLong(Data.Models.Metadata.Control.ButtonsKey)); - Assert.Equal(12345, control.ReadLong(Data.Models.Metadata.Control.KeyDeltaKey)); - Assert.Equal(12345, control.ReadLong(Data.Models.Metadata.Control.MaximumKey)); - Assert.Equal(12345, control.ReadLong(Data.Models.Metadata.Control.MinimumKey)); - Assert.Equal(12345, control.ReadLong(Data.Models.Metadata.Control.PlayerKey)); - Assert.Equal(12345, control.ReadLong(Data.Models.Metadata.Control.ReqButtonsKey)); + Assert.Equal(12345, control.Buttons); + Assert.Equal(12345, control.KeyDelta); + Assert.Equal(12345, control.Maximum); + Assert.Equal(12345, control.Minimum); + Assert.Equal(12345, control.Player); + Assert.Equal(12345, control.ReqButtons); Assert.True(control.Reverse); - Assert.Equal(12345, control.ReadLong(Data.Models.Metadata.Control.SensitivityKey)); + Assert.Equal(12345, control.Sensitivity); Assert.Equal(Data.Models.Metadata.ControlType.Lightgun, control.ControlType); - Assert.Equal("ways", control.ReadString(Data.Models.Metadata.Control.WaysKey)); - Assert.Equal("ways2", control.ReadString(Data.Models.Metadata.Control.Ways2Key)); - Assert.Equal("ways3", control.ReadString(Data.Models.Metadata.Control.Ways3Key)); + Assert.Equal("ways", control.Ways); + Assert.Equal("ways2", control.Ways2); + Assert.Equal("ways3", control.Ways3); } private static void ValidateMetadataDataArea(Data.Models.Metadata.DataArea? dataArea) diff --git a/SabreTools.Metadata.DatItems/Formats/Control.cs b/SabreTools.Metadata.DatItems/Formats/Control.cs index 794e43ac..91af5964 100644 --- a/SabreTools.Metadata.DatItems/Formats/Control.cs +++ b/SabreTools.Metadata.DatItems/Formats/Control.cs @@ -12,6 +12,12 @@ namespace SabreTools.Metadata.DatItems.Formats { #region Fields + public long? Buttons + { + get => (_internal as Data.Models.Metadata.Control)?.Buttons; + set => (_internal as Data.Models.Metadata.Control)?.Buttons = value; + } + public Data.Models.Metadata.ControlType? ControlType { get => (_internal as Data.Models.Metadata.Control)?.ControlType; @@ -22,49 +28,73 @@ namespace SabreTools.Metadata.DatItems.Formats public override Data.Models.Metadata.ItemType ItemType => Data.Models.Metadata.ItemType.Control; + public long? KeyDelta + { + get => (_internal as Data.Models.Metadata.Control)?.KeyDelta; + set => (_internal as Data.Models.Metadata.Control)?.KeyDelta = value; + } + + public long? Maximum + { + get => (_internal as Data.Models.Metadata.Control)?.Maximum; + set => (_internal as Data.Models.Metadata.Control)?.Maximum = value; + } + + public long? Minimum + { + get => (_internal as Data.Models.Metadata.Control)?.Minimum; + set => (_internal as Data.Models.Metadata.Control)?.Minimum = value; + } + + public long? Player + { + get => (_internal as Data.Models.Metadata.Control)?.Player; + set => (_internal as Data.Models.Metadata.Control)?.Player = value; + } + + public long? ReqButtons + { + get => (_internal as Data.Models.Metadata.Control)?.ReqButtons; + set => (_internal as Data.Models.Metadata.Control)?.ReqButtons = value; + } + public bool? Reverse { get => (_internal as Data.Models.Metadata.Control)?.Reverse; set => (_internal as Data.Models.Metadata.Control)?.Reverse = value; } + public long? Sensitivity + { + get => (_internal as Data.Models.Metadata.Control)?.Sensitivity; + set => (_internal as Data.Models.Metadata.Control)?.Sensitivity = value; + } + + public string? Ways + { + get => (_internal as Data.Models.Metadata.Control)?.Ways; + set => (_internal as Data.Models.Metadata.Control)?.Ways = value; + } + + public string? Ways2 + { + get => (_internal as Data.Models.Metadata.Control)?.Ways2; + set => (_internal as Data.Models.Metadata.Control)?.Ways2 = value; + } + + public string? Ways3 + { + get => (_internal as Data.Models.Metadata.Control)?.Ways3; + set => (_internal as Data.Models.Metadata.Control)?.Ways3 = value; + } + #endregion #region Constructors public Control() : base() { } - public Control(Data.Models.Metadata.Control item) : base(item) - { - // Process flag values - long? buttons = ReadLong(Data.Models.Metadata.Control.ButtonsKey); - if (buttons is not null) - Write(Data.Models.Metadata.Control.ButtonsKey, buttons.ToString()); - - long? keyDelta = ReadLong(Data.Models.Metadata.Control.KeyDeltaKey); - if (keyDelta is not null) - Write(Data.Models.Metadata.Control.KeyDeltaKey, keyDelta.ToString()); - - long? maximum = ReadLong(Data.Models.Metadata.Control.MaximumKey); - if (maximum is not null) - Write(Data.Models.Metadata.Control.MaximumKey, maximum.ToString()); - - long? minimum = ReadLong(Data.Models.Metadata.Control.MinimumKey); - if (minimum is not null) - Write(Data.Models.Metadata.Control.MinimumKey, minimum.ToString()); - - long? player = ReadLong(Data.Models.Metadata.Control.PlayerKey); - if (player is not null) - Write(Data.Models.Metadata.Control.PlayerKey, player.ToString()); - - long? reqButtons = ReadLong(Data.Models.Metadata.Control.ReqButtonsKey); - if (reqButtons is not null) - Write(Data.Models.Metadata.Control.ReqButtonsKey, reqButtons.ToString()); - - long? sensitivity = ReadLong(Data.Models.Metadata.Control.SensitivityKey); - if (sensitivity is not null) - Write(Data.Models.Metadata.Control.SensitivityKey, sensitivity.ToString()); - } + public Control(Data.Models.Metadata.Control item) : base(item) { } public Control(Data.Models.Metadata.Control item, Machine machine, Source source) : this(item) { diff --git a/SabreTools.Metadata.Filter/FilterObject.cs b/SabreTools.Metadata.Filter/FilterObject.cs index 4119d9fa..d00091ed 100644 --- a/SabreTools.Metadata.Filter/FilterObject.cs +++ b/SabreTools.Metadata.Filter/FilterObject.cs @@ -408,12 +408,42 @@ namespace SabreTools.Metadata.Filter checkValue = item.Value; return true; + case Control item when fieldName == "buttons": + checkValue = item.Buttons?.ToString(); + return true; case Control item when fieldName == "type": checkValue = item.ControlType?.AsStringValue(); return true; + case Control item when fieldName == "keydelta": + checkValue = item.KeyDelta?.ToString(); + return true; + case Control item when fieldName == "maximum": + checkValue = item.Maximum?.ToString(); + return true; + case Control item when fieldName == "minimum": + checkValue = item.Minimum?.ToString(); + return true; + case Control item when fieldName == "player": + checkValue = item.Player?.ToString(); + return true; + case Control item when fieldName == "reqbuttons": + checkValue = item.ReqButtons?.ToString(); + return true; case Control item when fieldName == "reverse": checkValue = item.Reverse.FromYesNo(); return true; + case Control item when fieldName == "sensitivity": + checkValue = item.Sensitivity?.ToString(); + return true; + case Control item when fieldName == "ways": + checkValue = item.Ways; + return true; + case Control item when fieldName == "ways2": + checkValue = item.Ways2; + return true; + case Control item when fieldName == "ways3": + checkValue = item.Ways3; + return true; case DataArea item when fieldName == "endianness": checkValue = item.Endianness?.AsStringValue(); diff --git a/SabreTools.Serialization.CrossModel.Test/ListxmlTests.cs b/SabreTools.Serialization.CrossModel.Test/ListxmlTests.cs index 80b6682e..d8031044 100644 --- a/SabreTools.Serialization.CrossModel.Test/ListxmlTests.cs +++ b/SabreTools.Serialization.CrossModel.Test/ListxmlTests.cs @@ -155,17 +155,17 @@ namespace SabreTools.Serialization.CrossModel.Test var control = new Data.Models.Listxml.Control { Type = Data.Models.Metadata.ControlType.Lightgun, - Player = "XXXXXX", - Buttons = "XXXXXX", - ReqButtons = "XXXXXX", - Minimum = "XXXXXX", - Maximum = "XXXXXX", - Sensitivity = "XXXXXX", - KeyDelta = "XXXXXX", + Player = 12345, + Buttons = 12345, + ReqButtons = 12345, + Minimum = 12345, + Maximum = 12345, + Sensitivity = 12345, + KeyDelta = 12345, Reverse = true, - Ways = "XXXXXX", - Ways2 = "XXXXXX", - Ways3 = "XXXXXX", + Ways = "ways", + Ways2 = "ways2", + Ways3 = "ways3", }; var input = new Data.Models.Listxml.Input @@ -617,17 +617,17 @@ namespace SabreTools.Serialization.CrossModel.Test { Assert.NotNull(control); Assert.Equal(Data.Models.Metadata.ControlType.Lightgun, control.Type); - Assert.Equal("XXXXXX", control.Player); - Assert.Equal("XXXXXX", control.Buttons); - Assert.Equal("XXXXXX", control.ReqButtons); - Assert.Equal("XXXXXX", control.Minimum); - Assert.Equal("XXXXXX", control.Maximum); - Assert.Equal("XXXXXX", control.Sensitivity); - Assert.Equal("XXXXXX", control.KeyDelta); + Assert.Equal(12345, control.Player); + Assert.Equal(12345, control.Buttons); + Assert.Equal(12345, control.ReqButtons); + Assert.Equal(12345, control.Minimum); + Assert.Equal(12345, control.Maximum); + Assert.Equal(12345, control.Sensitivity); + Assert.Equal(12345, control.KeyDelta); Assert.Equal(true, control.Reverse); - Assert.Equal("XXXXXX", control.Ways); - Assert.Equal("XXXXXX", control.Ways2); - Assert.Equal("XXXXXX", control.Ways3); + Assert.Equal("ways", control.Ways); + Assert.Equal("ways2", control.Ways2); + Assert.Equal("ways3", control.Ways3); } /// diff --git a/SabreTools.Serialization.CrossModel.Test/M1Tests.cs b/SabreTools.Serialization.CrossModel.Test/M1Tests.cs index d4a5ec0d..2018128f 100644 --- a/SabreTools.Serialization.CrossModel.Test/M1Tests.cs +++ b/SabreTools.Serialization.CrossModel.Test/M1Tests.cs @@ -151,17 +151,17 @@ namespace SabreTools.Serialization.CrossModel.Test var control = new Data.Models.Listxml.Control { Type = Data.Models.Metadata.ControlType.Lightgun, - Player = "XXXXXX", - Buttons = "XXXXXX", - ReqButtons = "XXXXXX", - Minimum = "XXXXXX", - Maximum = "XXXXXX", - Sensitivity = "XXXXXX", - KeyDelta = "XXXXXX", + Player = 12345, + Buttons = 12345, + ReqButtons = 12345, + Minimum = 12345, + Maximum = 12345, + Sensitivity = 12345, + KeyDelta = 12345, Reverse = true, - Ways = "XXXXXX", - Ways2 = "XXXXXX", - Ways3 = "XXXXXX", + Ways = "ways", + Ways2 = "ways2", + Ways3 = "ways3", }; var input = new Data.Models.Listxml.Input @@ -611,17 +611,17 @@ namespace SabreTools.Serialization.CrossModel.Test { Assert.NotNull(control); Assert.Equal(Data.Models.Metadata.ControlType.Lightgun, control.Type); - Assert.Equal("XXXXXX", control.Player); - Assert.Equal("XXXXXX", control.Buttons); - Assert.Equal("XXXXXX", control.ReqButtons); - Assert.Equal("XXXXXX", control.Minimum); - Assert.Equal("XXXXXX", control.Maximum); - Assert.Equal("XXXXXX", control.Sensitivity); - Assert.Equal("XXXXXX", control.KeyDelta); + Assert.Equal(12345, control.Player); + Assert.Equal(12345, control.Buttons); + Assert.Equal(12345, control.ReqButtons); + Assert.Equal(12345, control.Minimum); + Assert.Equal(12345, control.Maximum); + Assert.Equal(12345, control.Sensitivity); + Assert.Equal(12345, control.KeyDelta); Assert.Equal(true, control.Reverse); - Assert.Equal("XXXXXX", control.Ways); - Assert.Equal("XXXXXX", control.Ways2); - Assert.Equal("XXXXXX", control.Ways3); + Assert.Equal("ways", control.Ways); + Assert.Equal("ways2", control.Ways2); + Assert.Equal("ways3", control.Ways3); } /// diff --git a/SabreTools.Serialization.CrossModel.Test/MessTests.cs b/SabreTools.Serialization.CrossModel.Test/MessTests.cs index 0bc11c0e..1bb302a1 100644 --- a/SabreTools.Serialization.CrossModel.Test/MessTests.cs +++ b/SabreTools.Serialization.CrossModel.Test/MessTests.cs @@ -151,17 +151,17 @@ namespace SabreTools.Serialization.CrossModel.Test var control = new Data.Models.Listxml.Control { Type = Data.Models.Metadata.ControlType.Lightgun, - Player = "XXXXXX", - Buttons = "XXXXXX", - ReqButtons = "XXXXXX", - Minimum = "XXXXXX", - Maximum = "XXXXXX", - Sensitivity = "XXXXXX", - KeyDelta = "XXXXXX", + Player = 12345, + Buttons = 12345, + ReqButtons = 12345, + Minimum = 12345, + Maximum = 12345, + Sensitivity = 12345, + KeyDelta = 12345, Reverse = true, - Ways = "XXXXXX", - Ways2 = "XXXXXX", - Ways3 = "XXXXXX", + Ways = "ways", + Ways2 = "ways2", + Ways3 = "ways3", }; var input = new Data.Models.Listxml.Input @@ -611,17 +611,17 @@ namespace SabreTools.Serialization.CrossModel.Test { Assert.NotNull(control); Assert.Equal(Data.Models.Metadata.ControlType.Lightgun, control.Type); - Assert.Equal("XXXXXX", control.Player); - Assert.Equal("XXXXXX", control.Buttons); - Assert.Equal("XXXXXX", control.ReqButtons); - Assert.Equal("XXXXXX", control.Minimum); - Assert.Equal("XXXXXX", control.Maximum); - Assert.Equal("XXXXXX", control.Sensitivity); - Assert.Equal("XXXXXX", control.KeyDelta); + Assert.Equal(12345, control.Player); + Assert.Equal(12345, control.Buttons); + Assert.Equal(12345, control.ReqButtons); + Assert.Equal(12345, control.Minimum); + Assert.Equal(12345, control.Maximum); + Assert.Equal(12345, control.Sensitivity); + Assert.Equal(12345, control.KeyDelta); Assert.Equal(true, control.Reverse); - Assert.Equal("XXXXXX", control.Ways); - Assert.Equal("XXXXXX", control.Ways2); - Assert.Equal("XXXXXX", control.Ways3); + Assert.Equal("ways", control.Ways); + Assert.Equal("ways2", control.Ways2); + Assert.Equal("ways3", control.Ways3); } /// diff --git a/SabreTools.Serialization.CrossModel/Listxml.Deserializer.cs b/SabreTools.Serialization.CrossModel/Listxml.Deserializer.cs index bc686163..375f0607 100644 --- a/SabreTools.Serialization.CrossModel/Listxml.Deserializer.cs +++ b/SabreTools.Serialization.CrossModel/Listxml.Deserializer.cs @@ -284,17 +284,17 @@ namespace SabreTools.Serialization.CrossModel var control = new Control { Type = item.ControlType, - Player = item.ReadString(Data.Models.Metadata.Control.PlayerKey), - Buttons = item.ReadString(Data.Models.Metadata.Control.ButtonsKey), - ReqButtons = item.ReadString(Data.Models.Metadata.Control.ReqButtonsKey), - Minimum = item.ReadString(Data.Models.Metadata.Control.MinimumKey), - Maximum = item.ReadString(Data.Models.Metadata.Control.MaximumKey), - Sensitivity = item.ReadString(Data.Models.Metadata.Control.SensitivityKey), - KeyDelta = item.ReadString(Data.Models.Metadata.Control.KeyDeltaKey), + Player = item.Player, + Buttons = item.Buttons, + ReqButtons = item.ReqButtons, + Minimum = item.Minimum, + Maximum = item.Maximum, + Sensitivity = item.Sensitivity, + KeyDelta = item.KeyDelta, Reverse = item.Reverse, - Ways = item.ReadString(Data.Models.Metadata.Control.WaysKey), - Ways2 = item.ReadString(Data.Models.Metadata.Control.Ways2Key), - Ways3 = item.ReadString(Data.Models.Metadata.Control.Ways3Key), + Ways = item.Ways, + Ways2 = item.Ways2, + Ways3 = item.Ways3, }; return control; } diff --git a/SabreTools.Serialization.CrossModel/Listxml.Serializer.cs b/SabreTools.Serialization.CrossModel/Listxml.Serializer.cs index 506ad714..5d21682f 100644 --- a/SabreTools.Serialization.CrossModel/Listxml.Serializer.cs +++ b/SabreTools.Serialization.CrossModel/Listxml.Serializer.cs @@ -319,17 +319,17 @@ namespace SabreTools.Serialization.CrossModel var control = new Data.Models.Metadata.Control { ControlType = item.Type, - [Data.Models.Metadata.Control.PlayerKey] = item.Player, - [Data.Models.Metadata.Control.ButtonsKey] = item.Buttons, - [Data.Models.Metadata.Control.ReqButtonsKey] = item.ReqButtons, - [Data.Models.Metadata.Control.MinimumKey] = item.Minimum, - [Data.Models.Metadata.Control.MaximumKey] = item.Maximum, - [Data.Models.Metadata.Control.SensitivityKey] = item.Sensitivity, - [Data.Models.Metadata.Control.KeyDeltaKey] = item.KeyDelta, + Player = item.Player, + Buttons = item.Buttons, + ReqButtons = item.ReqButtons, + Minimum = item.Minimum, + Maximum = item.Maximum, + Sensitivity = item.Sensitivity, + KeyDelta = item.KeyDelta, Reverse = item.Reverse, - [Data.Models.Metadata.Control.WaysKey] = item.Ways, - [Data.Models.Metadata.Control.Ways2Key] = item.Ways2, - [Data.Models.Metadata.Control.Ways3Key] = item.Ways3, + Ways = item.Ways, + Ways2 = item.Ways2, + Ways3 = item.Ways3, }; return control; } diff --git a/SabreTools.Serialization.Readers.Test/ListxmlTests.cs b/SabreTools.Serialization.Readers.Test/ListxmlTests.cs index e061a3b8..111b1b23 100644 --- a/SabreTools.Serialization.Readers.Test/ListxmlTests.cs +++ b/SabreTools.Serialization.Readers.Test/ListxmlTests.cs @@ -222,17 +222,17 @@ namespace SabreTools.Serialization.Readers.Test var control = new Data.Models.Listxml.Control { Type = Data.Models.Metadata.ControlType.Lightgun, - Player = "XXXXXX", - Buttons = "XXXXXX", - ReqButtons = "XXXXXX", - Minimum = "XXXXXX", - Maximum = "XXXXXX", - Sensitivity = "XXXXXX", - KeyDelta = "XXXXXX", + Player = 12345, + Buttons = 12345, + ReqButtons = 12345, + Minimum = 12345, + Maximum = 12345, + Sensitivity = 12345, + KeyDelta = 12345, Reverse = true, - Ways = "XXXXXX", - Ways2 = "XXXXXX", - Ways3 = "XXXXXX", + Ways = "ways", + Ways2 = "ways2", + Ways3 = "ways3", }; var input = new Data.Models.Listxml.Input @@ -684,17 +684,17 @@ namespace SabreTools.Serialization.Readers.Test { Assert.NotNull(control); Assert.Equal(Data.Models.Metadata.ControlType.Lightgun, control.Type); - Assert.Equal("XXXXXX", control.Player); - Assert.Equal("XXXXXX", control.Buttons); - Assert.Equal("XXXXXX", control.ReqButtons); - Assert.Equal("XXXXXX", control.Minimum); - Assert.Equal("XXXXXX", control.Maximum); - Assert.Equal("XXXXXX", control.Sensitivity); - Assert.Equal("XXXXXX", control.KeyDelta); + Assert.Equal(12345, control.Player); + Assert.Equal(12345, control.Buttons); + Assert.Equal(12345, control.ReqButtons); + Assert.Equal(12345, control.Minimum); + Assert.Equal(12345, control.Maximum); + Assert.Equal(12345, control.Sensitivity); + Assert.Equal(12345, control.KeyDelta); Assert.Equal(true, control.Reverse); - Assert.Equal("XXXXXX", control.Ways); - Assert.Equal("XXXXXX", control.Ways2); - Assert.Equal("XXXXXX", control.Ways3); + Assert.Equal("ways", control.Ways); + Assert.Equal("ways2", control.Ways2); + Assert.Equal("ways3", control.Ways3); } /// diff --git a/SabreTools.Serialization.Readers.Test/M1Tests.cs b/SabreTools.Serialization.Readers.Test/M1Tests.cs index 05e64fba..9c42212c 100644 --- a/SabreTools.Serialization.Readers.Test/M1Tests.cs +++ b/SabreTools.Serialization.Readers.Test/M1Tests.cs @@ -218,17 +218,17 @@ namespace SabreTools.Serialization.Readers.Test var control = new Data.Models.Listxml.Control { Type = Data.Models.Metadata.ControlType.Lightgun, - Player = "XXXXXX", - Buttons = "XXXXXX", - ReqButtons = "XXXXXX", - Minimum = "XXXXXX", - Maximum = "XXXXXX", - Sensitivity = "XXXXXX", - KeyDelta = "XXXXXX", + Player = 12345, + Buttons = 12345, + ReqButtons = 12345, + Minimum = 12345, + Maximum = 12345, + Sensitivity = 12345, + KeyDelta = 12345, Reverse = true, - Ways = "XXXXXX", - Ways2 = "XXXXXX", - Ways3 = "XXXXXX", + Ways = "ways", + Ways2 = "ways2", + Ways3 = "ways3", }; var input = new Data.Models.Listxml.Input @@ -678,17 +678,17 @@ namespace SabreTools.Serialization.Readers.Test { Assert.NotNull(control); Assert.Equal(Data.Models.Metadata.ControlType.Lightgun, control.Type); - Assert.Equal("XXXXXX", control.Player); - Assert.Equal("XXXXXX", control.Buttons); - Assert.Equal("XXXXXX", control.ReqButtons); - Assert.Equal("XXXXXX", control.Minimum); - Assert.Equal("XXXXXX", control.Maximum); - Assert.Equal("XXXXXX", control.Sensitivity); - Assert.Equal("XXXXXX", control.KeyDelta); + Assert.Equal(12345, control.Player); + Assert.Equal(12345, control.Buttons); + Assert.Equal(12345, control.ReqButtons); + Assert.Equal(12345, control.Minimum); + Assert.Equal(12345, control.Maximum); + Assert.Equal(12345, control.Sensitivity); + Assert.Equal(12345, control.KeyDelta); Assert.Equal(true, control.Reverse); - Assert.Equal("XXXXXX", control.Ways); - Assert.Equal("XXXXXX", control.Ways2); - Assert.Equal("XXXXXX", control.Ways3); + Assert.Equal("ways", control.Ways); + Assert.Equal("ways2", control.Ways2); + Assert.Equal("ways3", control.Ways3); } /// diff --git a/SabreTools.Serialization.Readers.Test/MessTests.cs b/SabreTools.Serialization.Readers.Test/MessTests.cs index c325136e..146628c2 100644 --- a/SabreTools.Serialization.Readers.Test/MessTests.cs +++ b/SabreTools.Serialization.Readers.Test/MessTests.cs @@ -218,17 +218,17 @@ namespace SabreTools.Serialization.Readers.Test var control = new Data.Models.Listxml.Control { Type = Data.Models.Metadata.ControlType.Lightgun, - Player = "XXXXXX", - Buttons = "XXXXXX", - ReqButtons = "XXXXXX", - Minimum = "XXXXXX", - Maximum = "XXXXXX", - Sensitivity = "XXXXXX", - KeyDelta = "XXXXXX", + Player = 12345, + Buttons = 12345, + ReqButtons = 12345, + Minimum = 12345, + Maximum = 12345, + Sensitivity = 12345, + KeyDelta = 12345, Reverse = true, - Ways = "XXXXXX", - Ways2 = "XXXXXX", - Ways3 = "XXXXXX", + Ways = "ways", + Ways2 = "ways2", + Ways3 = "ways3", }; var input = new Data.Models.Listxml.Input @@ -678,17 +678,17 @@ namespace SabreTools.Serialization.Readers.Test { Assert.NotNull(control); Assert.Equal(Data.Models.Metadata.ControlType.Lightgun, control.Type); - Assert.Equal("XXXXXX", control.Player); - Assert.Equal("XXXXXX", control.Buttons); - Assert.Equal("XXXXXX", control.ReqButtons); - Assert.Equal("XXXXXX", control.Minimum); - Assert.Equal("XXXXXX", control.Maximum); - Assert.Equal("XXXXXX", control.Sensitivity); - Assert.Equal("XXXXXX", control.KeyDelta); + Assert.Equal(12345, control.Player); + Assert.Equal(12345, control.Buttons); + Assert.Equal(12345, control.ReqButtons); + Assert.Equal(12345, control.Minimum); + Assert.Equal(12345, control.Maximum); + Assert.Equal(12345, control.Sensitivity); + Assert.Equal(12345, control.KeyDelta); Assert.Equal(true, control.Reverse); - Assert.Equal("XXXXXX", control.Ways); - Assert.Equal("XXXXXX", control.Ways2); - Assert.Equal("XXXXXX", control.Ways3); + Assert.Equal("ways", control.Ways); + Assert.Equal("ways2", control.Ways2); + Assert.Equal("ways3", control.Ways3); } /// diff --git a/SabreTools.Serialization.Readers/Listxml.cs b/SabreTools.Serialization.Readers/Listxml.cs index ff1c7632..1a55afa3 100644 --- a/SabreTools.Serialization.Readers/Listxml.cs +++ b/SabreTools.Serialization.Readers/Listxml.cs @@ -342,13 +342,13 @@ namespace SabreTools.Serialization.Readers var obj = new Control(); obj.Type = reader.GetAttribute("type").AsControlType(); - obj.Player = reader.GetAttribute("player"); - obj.Buttons = reader.GetAttribute("buttons"); - obj.ReqButtons = reader.GetAttribute("reqbuttons"); - obj.Minimum = reader.GetAttribute("minimum"); - obj.Maximum = reader.GetAttribute("maximum"); - obj.Sensitivity = reader.GetAttribute("sensitivity"); - obj.KeyDelta = reader.GetAttribute("keydelta"); + obj.Player = NumberHelper.ConvertToInt64(reader.GetAttribute("player")); + obj.Buttons = NumberHelper.ConvertToInt64(reader.GetAttribute("buttons")); + obj.ReqButtons = NumberHelper.ConvertToInt64(reader.GetAttribute("reqbuttons")); + obj.Minimum = NumberHelper.ConvertToInt64(reader.GetAttribute("minimum")); + obj.Maximum = NumberHelper.ConvertToInt64(reader.GetAttribute("maximum")); + obj.Sensitivity = NumberHelper.ConvertToInt64(reader.GetAttribute("sensitivity")); + obj.KeyDelta = NumberHelper.ConvertToInt64(reader.GetAttribute("keydelta")); obj.Reverse = reader.GetAttribute("reverse").AsYesNo(); obj.Ways = reader.GetAttribute("ways"); obj.Ways2 = reader.GetAttribute("ways2"); diff --git a/SabreTools.Serialization.Readers/M1.cs b/SabreTools.Serialization.Readers/M1.cs index fff3aadd..f8853d96 100644 --- a/SabreTools.Serialization.Readers/M1.cs +++ b/SabreTools.Serialization.Readers/M1.cs @@ -340,13 +340,13 @@ namespace SabreTools.Serialization.Readers var obj = new Control(); obj.Type = reader.GetAttribute("type").AsControlType(); - obj.Player = reader.GetAttribute("player"); - obj.Buttons = reader.GetAttribute("buttons"); - obj.ReqButtons = reader.GetAttribute("reqbuttons"); - obj.Minimum = reader.GetAttribute("minimum"); - obj.Maximum = reader.GetAttribute("maximum"); - obj.Sensitivity = reader.GetAttribute("sensitivity"); - obj.KeyDelta = reader.GetAttribute("keydelta"); + obj.Player = NumberHelper.ConvertToInt64(reader.GetAttribute("player")); + obj.Buttons = NumberHelper.ConvertToInt64(reader.GetAttribute("buttons")); + obj.ReqButtons = NumberHelper.ConvertToInt64(reader.GetAttribute("reqbuttons")); + obj.Minimum = NumberHelper.ConvertToInt64(reader.GetAttribute("minimum")); + obj.Maximum = NumberHelper.ConvertToInt64(reader.GetAttribute("maximum")); + obj.Sensitivity = NumberHelper.ConvertToInt64(reader.GetAttribute("sensitivity")); + obj.KeyDelta = NumberHelper.ConvertToInt64(reader.GetAttribute("keydelta")); obj.Reverse = reader.GetAttribute("reverse").AsYesNo(); obj.Ways = reader.GetAttribute("ways"); obj.Ways2 = reader.GetAttribute("ways2"); diff --git a/SabreTools.Serialization.Readers/Mess.cs b/SabreTools.Serialization.Readers/Mess.cs index ef0719a1..3c6346dc 100644 --- a/SabreTools.Serialization.Readers/Mess.cs +++ b/SabreTools.Serialization.Readers/Mess.cs @@ -340,13 +340,13 @@ namespace SabreTools.Serialization.Readers var obj = new Control(); obj.Type = reader.GetAttribute("type").AsControlType(); - obj.Player = reader.GetAttribute("player"); - obj.Buttons = reader.GetAttribute("buttons"); - obj.ReqButtons = reader.GetAttribute("reqbuttons"); - obj.Minimum = reader.GetAttribute("minimum"); - obj.Maximum = reader.GetAttribute("maximum"); - obj.Sensitivity = reader.GetAttribute("sensitivity"); - obj.KeyDelta = reader.GetAttribute("keydelta"); + obj.Player = NumberHelper.ConvertToInt64(reader.GetAttribute("player")); + obj.Buttons = NumberHelper.ConvertToInt64(reader.GetAttribute("buttons")); + obj.ReqButtons = NumberHelper.ConvertToInt64(reader.GetAttribute("reqbuttons")); + obj.Minimum = NumberHelper.ConvertToInt64(reader.GetAttribute("minimum")); + obj.Maximum = NumberHelper.ConvertToInt64(reader.GetAttribute("maximum")); + obj.Sensitivity = NumberHelper.ConvertToInt64(reader.GetAttribute("sensitivity")); + obj.KeyDelta = NumberHelper.ConvertToInt64(reader.GetAttribute("keydelta")); obj.Reverse = reader.GetAttribute("reverse").AsYesNo(); obj.Ways = reader.GetAttribute("ways"); obj.Ways2 = reader.GetAttribute("ways2"); diff --git a/SabreTools.Serialization.Writers/Listxml.cs b/SabreTools.Serialization.Writers/Listxml.cs index cd9e4498..4564fa6b 100644 --- a/SabreTools.Serialization.Writers/Listxml.cs +++ b/SabreTools.Serialization.Writers/Listxml.cs @@ -229,13 +229,13 @@ namespace SabreTools.Serialization.Writers writer.WriteStartElement("control"); writer.WriteRequiredAttributeString("type", obj.Type?.AsStringValue()); - writer.WriteOptionalAttributeString("player", obj.Player); - writer.WriteOptionalAttributeString("buttons", obj.Buttons); - writer.WriteOptionalAttributeString("reqbuttons", obj.ReqButtons); - writer.WriteOptionalAttributeString("minimum", obj.Minimum); - writer.WriteOptionalAttributeString("maximum", obj.Maximum); - writer.WriteOptionalAttributeString("sensitivity", obj.Sensitivity); - writer.WriteOptionalAttributeString("keydelta", obj.KeyDelta); + writer.WriteOptionalAttributeString("player", obj.Player?.ToString()); + writer.WriteOptionalAttributeString("buttons", obj.Buttons?.ToString()); + writer.WriteOptionalAttributeString("reqbuttons", obj.ReqButtons?.ToString()); + writer.WriteOptionalAttributeString("minimum", obj.Minimum?.ToString()); + writer.WriteOptionalAttributeString("maximum", obj.Maximum?.ToString()); + writer.WriteOptionalAttributeString("sensitivity", obj.Sensitivity?.ToString()); + writer.WriteOptionalAttributeString("keydelta", obj.KeyDelta?.ToString()); writer.WriteOptionalAttributeString("reverse", obj.Reverse.FromYesNo()); writer.WriteOptionalAttributeString("ways", obj.Ways); writer.WriteOptionalAttributeString("ways2", obj.Ways2); diff --git a/SabreTools.Serialization.Writers/M1.cs b/SabreTools.Serialization.Writers/M1.cs index cd05a5a8..065eefb6 100644 --- a/SabreTools.Serialization.Writers/M1.cs +++ b/SabreTools.Serialization.Writers/M1.cs @@ -227,13 +227,13 @@ namespace SabreTools.Serialization.Writers writer.WriteStartElement("control"); writer.WriteRequiredAttributeString("type", obj.Type?.AsStringValue()); - writer.WriteOptionalAttributeString("player", obj.Player); - writer.WriteOptionalAttributeString("buttons", obj.Buttons); - writer.WriteOptionalAttributeString("reqbuttons", obj.ReqButtons); - writer.WriteOptionalAttributeString("minimum", obj.Minimum); - writer.WriteOptionalAttributeString("maximum", obj.Maximum); - writer.WriteOptionalAttributeString("sensitivity", obj.Sensitivity); - writer.WriteOptionalAttributeString("keydelta", obj.KeyDelta); + writer.WriteOptionalAttributeString("player", obj.Player?.ToString()); + writer.WriteOptionalAttributeString("buttons", obj.Buttons?.ToString()); + writer.WriteOptionalAttributeString("reqbuttons", obj.ReqButtons?.ToString()); + writer.WriteOptionalAttributeString("minimum", obj.Minimum?.ToString()); + writer.WriteOptionalAttributeString("maximum", obj.Maximum?.ToString()); + writer.WriteOptionalAttributeString("sensitivity", obj.Sensitivity?.ToString()); + writer.WriteOptionalAttributeString("keydelta", obj.KeyDelta?.ToString()); writer.WriteOptionalAttributeString("reverse", obj.Reverse.FromYesNo()); writer.WriteOptionalAttributeString("ways", obj.Ways); writer.WriteOptionalAttributeString("ways2", obj.Ways2); diff --git a/SabreTools.Serialization.Writers/Mess.cs b/SabreTools.Serialization.Writers/Mess.cs index ff2e2190..ddaa7ad9 100644 --- a/SabreTools.Serialization.Writers/Mess.cs +++ b/SabreTools.Serialization.Writers/Mess.cs @@ -227,13 +227,13 @@ namespace SabreTools.Serialization.Writers writer.WriteStartElement("control"); writer.WriteRequiredAttributeString("type", obj.Type?.AsStringValue()); - writer.WriteOptionalAttributeString("player", obj.Player); - writer.WriteOptionalAttributeString("buttons", obj.Buttons); - writer.WriteOptionalAttributeString("reqbuttons", obj.ReqButtons); - writer.WriteOptionalAttributeString("minimum", obj.Minimum); - writer.WriteOptionalAttributeString("maximum", obj.Maximum); - writer.WriteOptionalAttributeString("sensitivity", obj.Sensitivity); - writer.WriteOptionalAttributeString("keydelta", obj.KeyDelta); + writer.WriteOptionalAttributeString("player", obj.Player?.ToString()); + writer.WriteOptionalAttributeString("buttons", obj.Buttons?.ToString()); + writer.WriteOptionalAttributeString("reqbuttons", obj.ReqButtons?.ToString()); + writer.WriteOptionalAttributeString("minimum", obj.Minimum?.ToString()); + writer.WriteOptionalAttributeString("maximum", obj.Maximum?.ToString()); + writer.WriteOptionalAttributeString("sensitivity", obj.Sensitivity?.ToString()); + writer.WriteOptionalAttributeString("keydelta", obj.KeyDelta?.ToString()); writer.WriteOptionalAttributeString("reverse", obj.Reverse.FromYesNo()); writer.WriteOptionalAttributeString("ways", obj.Ways); writer.WriteOptionalAttributeString("ways2", obj.Ways2);