diff --git a/MonsterHunterStories2/Egg.cs b/MonsterHunterStories2/Egg.cs index 58d4953..f0b93d9 100644 --- a/MonsterHunterStories2/Egg.cs +++ b/MonsterHunterStories2/Egg.cs @@ -8,59 +8,33 @@ class Egg : INotifyPropertyChanged public event PropertyChangedEventHandler PropertyChanged; public ObservableCollection Genes { get; set; } = new ObservableCollection(); - private readonly uint mAddress; - + public uint Address { get; private set; } + public Egg(uint address) { - mAddress = address; + Address = address; for (uint i = 0; i < 9; i++) { Genes.Add(new Gene(address + 8 + 4 * i)); } } - public string Name - { - get - { - if (ID == 0) return "None"; - return Info.Instance().Search(Info.Instance().Monster, ID)?.Value; - } - } + public uint ID { - get { return SaveData.Instance().ReadNumber(mAddress, 4); } + get { return SaveData.Instance().ReadNumber(Address, 4); } set { - SaveData.Instance().WriteNumber(mAddress, 4, value); + SaveData.Instance().WriteNumber(Address, 4, value); PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(ID))); - PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(Name))); } } public uint Smell { - get { return SaveData.Instance().ReadNumber(mAddress + 4, 1); } - set - { - Util.WriteNumber(mAddress + 4, 1, value, 0, 2); - PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(Smell))); - } - } - - public string AllHex - { - get - { - if (ID == 0) return "None"; - - return Util.ReadHex(mAddress, Util.EGG_SIZE); - } + get { return SaveData.Instance().ReadNumber(Address + 4, 1); } set { - Util.WriteHex(mAddress, value); - PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(AllHex))); - PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(ID))); - PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(Name))); + Util.WriteNumber(Address + 4, 1, value, 0, 2); PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(Smell))); } } diff --git a/MonsterHunterStories2/EggAddress2HexStringConverter.cs b/MonsterHunterStories2/EggAddress2HexStringConverter.cs new file mode 100644 index 0000000..e19e4c5 --- /dev/null +++ b/MonsterHunterStories2/EggAddress2HexStringConverter.cs @@ -0,0 +1,24 @@ +using System; +using System.Collections.Generic; +using System.Globalization; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Data; + +namespace MonsterHunterStories2 +{ + class EggAddress2HexStringConverter : IValueConverter + { + public object Convert(object value, Type targetType, object parameter, CultureInfo culture) + { + uint address = (uint)value; + return Util.ReadHex(address, Util.EGG_SIZE); + } + + public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) + { + throw new NotImplementedException(); + } + } +} diff --git a/MonsterHunterStories2/MainWindow.xaml b/MonsterHunterStories2/MainWindow.xaml index f31230e..c22763a 100644 --- a/MonsterHunterStories2/MainWindow.xaml +++ b/MonsterHunterStories2/MainWindow.xaml @@ -329,11 +329,20 @@