mirror of
https://github.com/kwsch/NHSE.git
synced 2026-03-21 17:24:30 -05:00
Fruit + Flower Improvement
Added fruits + flowers to Player Misc menu (kept field goods property manager in place still). Saving fruits pushes change to flags block for fruits so that multiple edits aren't required when changing/saving it with new UpdateFruitFlags method. Flowers added as enum class like Airport Color, but should be moved out to strings for localization later on.
This commit is contained in:
parent
db54e5ae1c
commit
962b8dcbe9
|
|
@ -244,6 +244,47 @@ public GSaveFg SaveFg
|
|||
set => value.ToBytesClass().CopyTo(Data[Offsets.SaveFg..]);
|
||||
}
|
||||
|
||||
public ushort SpecialtyFruit
|
||||
{
|
||||
get => ReadUInt16LittleEndian(Data[Offsets.SpecialtyFruit..]);
|
||||
set => WriteUInt16LittleEndian(Data[Offsets.SpecialtyFruit..], value);
|
||||
}
|
||||
public ushort SisterFruit
|
||||
{
|
||||
get => ReadUInt16LittleEndian(Data[Offsets.SisterFruit..]);
|
||||
set => WriteUInt16LittleEndian(Data[Offsets.SisterFruit..], value);
|
||||
}
|
||||
public IslandFlowers SpecialtyFlower { get => (IslandFlowers)Data[Offsets.SpecialtyFlower]; set => Data[Offsets.SpecialtyFlower] = (byte)value; }
|
||||
public IslandFlowers SisterFlower { get => (IslandFlowers)Data[Offsets.SisterFlower]; set => Data[Offsets.SisterFlower] = (byte)value; }
|
||||
public Span<byte> FruitFlags
|
||||
{
|
||||
get => Data.Slice(Offsets.FruitFlags, 5);
|
||||
set => value.ToArray().CopyTo(Data[Offsets.FruitFlags..]);
|
||||
}
|
||||
public void UpdateFruitFlags()
|
||||
{
|
||||
var fruit = new byte[] { 00, 00, 00, 00, 00 };
|
||||
switch (SpecialtyFruit)
|
||||
{
|
||||
case 2213: // Apple
|
||||
fruit[0] = 01;
|
||||
break;
|
||||
case 2287: // Cherry
|
||||
fruit[4] = 01;
|
||||
break;
|
||||
case 2214: // Orange
|
||||
fruit[1] = 01;
|
||||
break;
|
||||
case 2286: // Peach
|
||||
fruit[3] = 01;
|
||||
break;
|
||||
case 2285: // Pear
|
||||
fruit[2] = 01;
|
||||
break;
|
||||
}
|
||||
FruitFlags = fruit;
|
||||
}
|
||||
|
||||
public GSaveTime LastSaved => Data.Slice(Offsets.LastSavedTime, GSaveTime.SIZE).ToStructure<GSaveTime>();
|
||||
|
||||
public GSaveBulletinBoard Bulletin
|
||||
|
|
|
|||
|
|
@ -32,6 +32,7 @@ public abstract class MainSaveOffsets
|
|||
public abstract int MainFieldStructure { get; }
|
||||
|
||||
public abstract int EventFlagLand { get; }
|
||||
public abstract int FruitFlags { get; }
|
||||
public abstract int FieldItem { get; }
|
||||
public abstract int LandMakingMap { get; }
|
||||
public abstract int OutsideField { get; }
|
||||
|
|
@ -43,6 +44,10 @@ public abstract class MainSaveOffsets
|
|||
public abstract int Visitor { get; }
|
||||
|
||||
public abstract int SaveFg { get; }
|
||||
public abstract int SpecialtyFruit { get; }
|
||||
public abstract int SisterFruit { get; }
|
||||
public abstract int SisterFlower { get; }
|
||||
public abstract int SpecialtyFlower { get; }
|
||||
public abstract int BulletinBoard { get; }
|
||||
public abstract int AirportThemeColor { get; }
|
||||
|
||||
|
|
|
|||
|
|
@ -24,6 +24,8 @@ public class MainSaveOffsets10 : MainSaveOffsets
|
|||
public override int WeatherRandSeed => GSaveWeather + 0x18;
|
||||
|
||||
public override int EventFlagLand => GSaveLandStart + 0x200FF4;
|
||||
// Flag region for the five fruit.
|
||||
public override int FruitFlags => EventFlagLand + 246;
|
||||
|
||||
// GSaveMainField
|
||||
public const int GSaveMainFieldStart = GSaveLandStart + 0x2017F4;
|
||||
|
|
@ -41,6 +43,10 @@ public class MainSaveOffsets10 : MainSaveOffsets
|
|||
public override int Museum => GSaveLandStart + 0x411A80;
|
||||
public override int Visitor => GSaveLandStart + 0x414E84;
|
||||
public override int SaveFg => GSaveLandStart + 0x4150B4;
|
||||
public override int SpecialtyFruit => SaveFg + 0x900;
|
||||
public override int SisterFruit => SpecialtyFruit + 2;
|
||||
public override int SisterFlower => SaveFg + 0x924;
|
||||
public override int SpecialtyFlower => SisterFlower + 1;
|
||||
public override int BulletinBoard => GSaveLandStart + 0x4159F8;
|
||||
public override int AirportThemeColor => GSaveLandStart + 0x4F6600;
|
||||
#endregion
|
||||
|
|
|
|||
|
|
@ -24,6 +24,8 @@ public class MainSaveOffsets11 : MainSaveOffsets
|
|||
public override int WeatherRandSeed => GSaveWeather + 0x18;
|
||||
|
||||
public override int EventFlagLand => GSaveLandStart + 0x20100C;
|
||||
// Flag region for the five fruit.
|
||||
public override int FruitFlags => EventFlagLand + 246;
|
||||
|
||||
// GSaveMainField
|
||||
public const int GSaveMainFieldStart = GSaveLandStart + 0x20180C;
|
||||
|
|
@ -41,6 +43,10 @@ public class MainSaveOffsets11 : MainSaveOffsets
|
|||
public override int Museum => GSaveLandStart + 0x412218;
|
||||
public override int Visitor => GSaveLandStart + 0x41561C;
|
||||
public override int SaveFg => GSaveLandStart + 0x41584C;
|
||||
public override int SpecialtyFruit => SaveFg + 0x900;
|
||||
public override int SisterFruit => SpecialtyFruit + 2;
|
||||
public override int SisterFlower => SaveFg + 0x924;
|
||||
public override int SpecialtyFlower => SisterFlower + 1;
|
||||
public override int BulletinBoard => GSaveLandStart + 0x416190;
|
||||
public override int AirportThemeColor => GSaveLandStart + 0x4F6D98;
|
||||
#endregion
|
||||
|
|
|
|||
|
|
@ -26,6 +26,8 @@ public class MainSaveOffsets110 : MainSaveOffsets
|
|||
public override int WeatherRandSeed => GSaveWeather + 0x18;
|
||||
|
||||
public override int EventFlagLand => GSaveLandStart + 0x22d9b8;
|
||||
// Flag region for the five fruit.
|
||||
public override int FruitFlags => EventFlagLand + 246;
|
||||
|
||||
// GSaveMainField
|
||||
public const int GSaveMainFieldStart = GSaveLandStart + 0x22e1b8;
|
||||
|
|
@ -43,6 +45,10 @@ public class MainSaveOffsets110 : MainSaveOffsets
|
|||
public override int Museum => GSaveLandStart + 0x43f1e0;
|
||||
public override int Visitor => GSaveLandStart + 0x4425e4;
|
||||
public override int SaveFg => GSaveLandStart + 0x442814;
|
||||
public override int SpecialtyFruit => SaveFg + 0x900;
|
||||
public override int SisterFruit => SpecialtyFruit + 2;
|
||||
public override int SisterFlower => SaveFg + 0x924;
|
||||
public override int SpecialtyFlower => SisterFlower + 1;
|
||||
public override int BulletinBoard => GSaveLandStart + 0x443158;
|
||||
public override int AirportThemeColor => GSaveLandStart + 0x523d60;
|
||||
#endregion
|
||||
|
|
|
|||
|
|
@ -27,6 +27,8 @@ public class MainSaveOffsets111 : MainSaveOffsets
|
|||
public override int WeatherRandSeed => GSaveWeather + 0x18;
|
||||
|
||||
public override int EventFlagLand => GSaveLandStart + 0x22d9b8;
|
||||
// Flag region for the five fruit.
|
||||
public override int FruitFlags => EventFlagLand + 246;
|
||||
|
||||
// GSaveMainField
|
||||
public const int GSaveMainFieldStart = GSaveLandStart + 0x22e1b8;
|
||||
|
|
@ -44,6 +46,10 @@ public class MainSaveOffsets111 : MainSaveOffsets
|
|||
public override int Museum => GSaveLandStart + 0x43f1e0;
|
||||
public override int Visitor => GSaveLandStart + 0x4425e4;
|
||||
public override int SaveFg => GSaveLandStart + 0x442814;
|
||||
public override int SpecialtyFruit => SaveFg + 0x900;
|
||||
public override int SisterFruit => SpecialtyFruit + 2;
|
||||
public override int SisterFlower => SaveFg + 0x924;
|
||||
public override int SpecialtyFlower => SisterFlower + 1;
|
||||
public override int BulletinBoard => GSaveLandStart + 0x443158;
|
||||
public override int AirportThemeColor => GSaveLandStart + 0x523d60;
|
||||
#endregion
|
||||
|
|
|
|||
|
|
@ -24,6 +24,8 @@ public class MainSaveOffsets12 : MainSaveOffsets
|
|||
public override int WeatherRandSeed => GSaveWeather + 0x18;
|
||||
|
||||
public override int EventFlagLand => GSaveLandStart + 0x20100C;
|
||||
// Flag region for the five fruit.
|
||||
public override int FruitFlags => EventFlagLand + 246;
|
||||
|
||||
// GSaveMainField
|
||||
public const int GSaveMainFieldStart = GSaveLandStart + 0x20180C;
|
||||
|
|
@ -41,6 +43,10 @@ public class MainSaveOffsets12 : MainSaveOffsets
|
|||
public override int Museum => GSaveLandStart + 0x4124C4;
|
||||
public override int Visitor => GSaveLandStart + 0x4158C8;
|
||||
public override int SaveFg => GSaveLandStart + 0x415AF8;
|
||||
public override int SpecialtyFruit => SaveFg + 0x900;
|
||||
public override int SisterFruit => SpecialtyFruit + 2;
|
||||
public override int SisterFlower => SaveFg + 0x924;
|
||||
public override int SpecialtyFlower => SisterFlower + 1;
|
||||
public override int BulletinBoard => GSaveLandStart + 0x416440;
|
||||
public override int AirportThemeColor => GSaveLandStart + 0x4F7048;
|
||||
#endregion
|
||||
|
|
|
|||
|
|
@ -24,6 +24,8 @@ public class MainSaveOffsets13 : MainSaveOffsets
|
|||
public override int WeatherRandSeed => GSaveWeather + 0x18;
|
||||
|
||||
public override int EventFlagLand => GSaveLandStart + 0x20100C;
|
||||
// Flag region for the five fruit.
|
||||
public override int FruitFlags => EventFlagLand + 246;
|
||||
|
||||
// GSaveMainField
|
||||
public const int GSaveMainFieldStart = GSaveLandStart + 0x20180C;
|
||||
|
|
@ -41,6 +43,10 @@ public class MainSaveOffsets13 : MainSaveOffsets
|
|||
public override int Museum => GSaveLandStart + 0x4124C4;
|
||||
public override int Visitor => GSaveLandStart + 0x4158C8;
|
||||
public override int SaveFg => GSaveLandStart + 0x415AF8;
|
||||
public override int SpecialtyFruit => SaveFg + 0x900;
|
||||
public override int SisterFruit => SpecialtyFruit + 2;
|
||||
public override int SisterFlower => SaveFg + 0x924;
|
||||
public override int SpecialtyFlower => SisterFlower + 1;
|
||||
public override int BulletinBoard => GSaveLandStart + 0x416440;
|
||||
public override int AirportThemeColor => GSaveLandStart + 0x4F7048;
|
||||
#endregion
|
||||
|
|
|
|||
|
|
@ -24,6 +24,8 @@ public class MainSaveOffsets14 : MainSaveOffsets
|
|||
public override int WeatherRandSeed => GSaveWeather + 0x18;
|
||||
|
||||
public override int EventFlagLand => GSaveLandStart + 0x20100C;
|
||||
// Flag region for the five fruit.
|
||||
public override int FruitFlags => EventFlagLand + 246;
|
||||
|
||||
// GSaveMainField
|
||||
public const int GSaveMainFieldStart = GSaveLandStart + 0x20180C;
|
||||
|
|
@ -41,6 +43,10 @@ public class MainSaveOffsets14 : MainSaveOffsets
|
|||
public override int Museum => GSaveLandStart + 0x4124C4;
|
||||
public override int Visitor => GSaveLandStart + 0x4158C8;
|
||||
public override int SaveFg => GSaveLandStart + 0x415AF8;
|
||||
public override int SpecialtyFruit => SaveFg + 0x900;
|
||||
public override int SisterFruit => SpecialtyFruit + 2;
|
||||
public override int SisterFlower => SaveFg + 0x924;
|
||||
public override int SpecialtyFlower => SisterFlower + 1;
|
||||
public override int BulletinBoard => GSaveLandStart + 0x416440;
|
||||
public override int AirportThemeColor => GSaveLandStart + 0x4F7048;
|
||||
#endregion
|
||||
|
|
|
|||
|
|
@ -24,6 +24,8 @@ public class MainSaveOffsets15 : MainSaveOffsets
|
|||
public override int WeatherRandSeed => GSaveWeather + 0x18;
|
||||
|
||||
public override int EventFlagLand => GSaveLandStart + 0x20c40c;
|
||||
// Flag region for the five fruit.
|
||||
public override int FruitFlags => EventFlagLand + 246;
|
||||
|
||||
// GSaveMainField
|
||||
public const int GSaveMainFieldStart = GSaveLandStart + 0x20cc0c;
|
||||
|
|
@ -41,6 +43,10 @@ public class MainSaveOffsets15 : MainSaveOffsets
|
|||
public override int Museum => GSaveLandStart + 0x41d904;
|
||||
public override int Visitor => GSaveLandStart + 0x420d08;
|
||||
public override int SaveFg => GSaveLandStart + 0x420f38;
|
||||
public override int SpecialtyFruit => SaveFg + 0x900;
|
||||
public override int SisterFruit => SpecialtyFruit + 2;
|
||||
public override int SisterFlower => SaveFg + 0x924;
|
||||
public override int SpecialtyFlower => SisterFlower + 1;
|
||||
public override int BulletinBoard => GSaveLandStart + 0x421880;
|
||||
public override int AirportThemeColor => GSaveLandStart + 0x502488;
|
||||
#endregion
|
||||
|
|
|
|||
|
|
@ -24,6 +24,8 @@ public class MainSaveOffsets16 : MainSaveOffsets
|
|||
public override int WeatherRandSeed => GSaveWeather + 0x18;
|
||||
|
||||
public override int EventFlagLand => GSaveLandStart + 0x20c40c;
|
||||
// Flag region for the five fruit.
|
||||
public override int FruitFlags => EventFlagLand + 246;
|
||||
|
||||
// GSaveMainField
|
||||
public const int GSaveMainFieldStart = GSaveLandStart + 0x20cc0c;
|
||||
|
|
@ -41,6 +43,10 @@ public class MainSaveOffsets16 : MainSaveOffsets
|
|||
public override int Museum => GSaveLandStart + 0x41d9d4;
|
||||
public override int Visitor => GSaveLandStart + 0x420dd8;
|
||||
public override int SaveFg => GSaveLandStart + 0x421008;
|
||||
public override int SpecialtyFruit => SaveFg + 0x900;
|
||||
public override int SisterFruit => SpecialtyFruit + 2;
|
||||
public override int SisterFlower => SaveFg + 0x924;
|
||||
public override int SpecialtyFlower => SisterFlower + 1;
|
||||
public override int BulletinBoard => GSaveLandStart + 0x421950;
|
||||
public override int AirportThemeColor => GSaveLandStart + 0x502558;
|
||||
#endregion
|
||||
|
|
|
|||
|
|
@ -24,6 +24,8 @@ public class MainSaveOffsets17 : MainSaveOffsets
|
|||
public override int WeatherRandSeed => GSaveWeather + 0x18;
|
||||
|
||||
public override int EventFlagLand => GSaveLandStart + 0x20a408;
|
||||
// Flag region for the five fruit.
|
||||
public override int FruitFlags => EventFlagLand + 246;
|
||||
|
||||
// GSaveMainField
|
||||
public const int GSaveMainFieldStart = GSaveLandStart + 0x20ac08;
|
||||
|
|
@ -41,6 +43,10 @@ public class MainSaveOffsets17 : MainSaveOffsets
|
|||
public override int Museum => GSaveLandStart + 0x41bba0;
|
||||
public override int Visitor => GSaveLandStart + 0x41efa4;
|
||||
public override int SaveFg => GSaveLandStart + 0x41f1d4;
|
||||
public override int SpecialtyFruit => SaveFg + 0x900;
|
||||
public override int SisterFruit => SpecialtyFruit + 2;
|
||||
public override int SisterFlower => SaveFg + 0x924;
|
||||
public override int SpecialtyFlower => SisterFlower + 1;
|
||||
public override int BulletinBoard => GSaveLandStart + 0x41fb18;
|
||||
public override int AirportThemeColor => GSaveLandStart + 0x500720;
|
||||
#endregion
|
||||
|
|
|
|||
|
|
@ -25,6 +25,8 @@ public class MainSaveOffsets18 : MainSaveOffsets
|
|||
public override int WeatherRandSeed => GSaveWeather + 0x18;
|
||||
|
||||
public override int EventFlagLand => GSaveLandStart + 0x20a408;
|
||||
// Flag region for the five fruit.
|
||||
public override int FruitFlags => EventFlagLand + 246;
|
||||
|
||||
// GSaveMainField
|
||||
public const int GSaveMainFieldStart = GSaveLandStart + 0x20ac08;
|
||||
|
|
@ -42,6 +44,10 @@ public class MainSaveOffsets18 : MainSaveOffsets
|
|||
public override int Museum => GSaveLandStart + 0x41bba0;
|
||||
public override int Visitor => GSaveLandStart + 0x41efa4;
|
||||
public override int SaveFg => GSaveLandStart + 0x41f1d4;
|
||||
public override int SpecialtyFruit => SaveFg + 0x900;
|
||||
public override int SisterFruit => SpecialtyFruit + 2;
|
||||
public override int SisterFlower => SaveFg + 0x924;
|
||||
public override int SpecialtyFlower => SisterFlower + 1;
|
||||
public override int BulletinBoard => GSaveLandStart + 0x41fb18;
|
||||
public override int AirportThemeColor => GSaveLandStart + 0x500720;
|
||||
#endregion
|
||||
|
|
|
|||
|
|
@ -26,6 +26,8 @@ public class MainSaveOffsets19 : MainSaveOffsets
|
|||
public override int WeatherRandSeed => GSaveWeather + 0x18;
|
||||
|
||||
public override int EventFlagLand => GSaveLandStart + 0x22d9a8;
|
||||
// Flag region for the five fruit.
|
||||
public override int FruitFlags => EventFlagLand + 246;
|
||||
|
||||
// GSaveMainField
|
||||
public const int GSaveMainFieldStart = GSaveLandStart + 0x22e1a8;
|
||||
|
|
@ -43,6 +45,10 @@ public class MainSaveOffsets19 : MainSaveOffsets
|
|||
public override int Museum => GSaveLandStart + 0x43f1d0;
|
||||
public override int Visitor => GSaveLandStart + 0x4425d4;
|
||||
public override int SaveFg => GSaveLandStart + 0x442804;
|
||||
public override int SpecialtyFruit => SaveFg + 0x900;
|
||||
public override int SisterFruit => SpecialtyFruit + 2;
|
||||
public override int SisterFlower => SaveFg + 0x924;
|
||||
public override int SpecialtyFlower => SisterFlower + 1;
|
||||
public override int BulletinBoard => GSaveLandStart + 0x443148;
|
||||
public override int AirportThemeColor => GSaveLandStart + 0x523d50;
|
||||
#endregion
|
||||
|
|
|
|||
|
|
@ -27,6 +27,8 @@ public class MainSaveOffsets20 : MainSaveOffsets
|
|||
public override int WeatherRandSeed => GSaveWeather + 0x18;
|
||||
|
||||
public override int EventFlagLand => GSaveLandStart + 0x22ebf0;
|
||||
// Flag region for the five fruit.
|
||||
public override int FruitFlags => EventFlagLand + 246;
|
||||
|
||||
// GSaveMainField
|
||||
public const int GSaveMainFieldStart = GSaveLandStart + 0x22f3f0;
|
||||
|
|
@ -44,6 +46,10 @@ public class MainSaveOffsets20 : MainSaveOffsets
|
|||
public override int Museum => GSaveLandStart + 0x45ec44;
|
||||
public override int Visitor => GSaveLandStart + 0x462048;
|
||||
public override int SaveFg => GSaveLandStart + 0x462278;
|
||||
public override int SpecialtyFruit => SaveFg + 0x900;
|
||||
public override int SisterFruit => SpecialtyFruit + 2;
|
||||
public override int SisterFlower => SaveFg + 0x924;
|
||||
public override int SpecialtyFlower => SisterFlower + 1;
|
||||
public override int BulletinBoard => GSaveLandStart + 0x462bc0;
|
||||
public override int AirportThemeColor => GSaveLandStart + 0x5437c8;
|
||||
#endregion
|
||||
|
|
|
|||
|
|
@ -28,6 +28,8 @@ public class MainSaveOffsets30 : MainSaveOffsets
|
|||
|
||||
// GSaveEventFlagLand
|
||||
public override int EventFlagLand => GSaveLandStart + 0x22ebf0;
|
||||
// Flag region for the five fruit.
|
||||
public override int FruitFlags => EventFlagLand + 246;
|
||||
|
||||
// GSaveMainField
|
||||
public const int GSaveMainFieldStart = GSaveLandStart + 0x22f3f0;
|
||||
|
|
@ -63,6 +65,10 @@ public class MainSaveOffsets30 : MainSaveOffsets
|
|||
public override int Visitor => GSaveLandStart + 0x494514;
|
||||
// GSaveSaveFg
|
||||
public override int SaveFg => GSaveLandStart + 0x494760;
|
||||
public override int SpecialtyFruit => SaveFg + 0x900;
|
||||
public override int SisterFruit => SpecialtyFruit + 2;
|
||||
public override int SisterFlower => SaveFg + 0x924;
|
||||
public override int SpecialtyFlower => SisterFlower + 1;
|
||||
// GSaveBulletinBoard
|
||||
public override int BulletinBoard => GSaveLandStart + 0x4950a8;
|
||||
public override int AirportThemeColor => GSaveLandStart + 0x575cb0;
|
||||
|
|
|
|||
|
|
@ -6,11 +6,11 @@ public static class GameLists
|
|||
{
|
||||
public static ReadOnlySpan<ushort> Fruits =>
|
||||
[
|
||||
2213, // apple
|
||||
2213, // Apple
|
||||
2287, // Cherry
|
||||
2214, // Orange
|
||||
2286, // Peach
|
||||
2285 // Pear
|
||||
2285 // Pear
|
||||
];
|
||||
|
||||
public static ReadOnlySpan<ushort> Bugs =>
|
||||
|
|
|
|||
|
|
@ -17,6 +17,6 @@ public class GSaveFg
|
|||
|
||||
[field: MarshalAs(UnmanagedType.ByValArray, SizeConst = _e88f809dCount)]
|
||||
public uint[] _e88f809d { get; set; } // @0x904 size 0x4, align 4
|
||||
public byte VillageFlower { get; set; } // @0x924 size 0x1, align 1
|
||||
public byte SisterFlower { get; set; } // @0x924 size 0x1, align 1
|
||||
public byte SpecialityFlower { get; set; } // @0x925 size 0x1, align 1
|
||||
}
|
||||
16
NHSE.Core/Structures/Misc/IslandFlowers.cs
Normal file
16
NHSE.Core/Structures/Misc/IslandFlowers.cs
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
namespace NHSE.Core;
|
||||
|
||||
/// <summary>
|
||||
/// Determines the island flower types (players island type and sister type).
|
||||
/// </summary>
|
||||
public enum IslandFlowers : byte
|
||||
{
|
||||
Windflower = 0,
|
||||
Hyacinth = 1,
|
||||
Tulip = 2,
|
||||
Rose = 3,
|
||||
Cosmos = 4,
|
||||
Lily = 5,
|
||||
Mums = 6,
|
||||
Pansy = 7,
|
||||
}
|
||||
|
|
@ -3,6 +3,7 @@
|
|||
using NHSE.Sprites;
|
||||
using NHSE.WinForms.Properties;
|
||||
using System;
|
||||
using System.Diagnostics;
|
||||
using System.Drawing;
|
||||
using System.Drawing.Imaging;
|
||||
using System.IO;
|
||||
|
|
@ -278,7 +279,8 @@ private void B_EditPlayerReactions_Click(object sender, EventArgs e)
|
|||
private void B_EditPlayerMisc_Click(object sender, EventArgs e)
|
||||
{
|
||||
var player = SAV.Players[PlayerIndex];
|
||||
using var editor = new MiscPlayerEditor(player);
|
||||
var save = SAV.Main;
|
||||
using var editor = new MiscPlayerEditor(player, save);
|
||||
editor.ShowDialog();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -28,189 +28,262 @@ protected override void Dispose(bool disposing)
|
|||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.B_Cancel = new System.Windows.Forms.Button();
|
||||
this.B_Save = new System.Windows.Forms.Button();
|
||||
this.L_Birthday = new System.Windows.Forms.Label();
|
||||
this.NUD_BirthMonth = new System.Windows.Forms.NumericUpDown();
|
||||
this.NUD_BirthDay = new System.Windows.Forms.NumericUpDown();
|
||||
this.tabControl1 = new System.Windows.Forms.TabControl();
|
||||
this.Tab_Misc = new System.Windows.Forms.TabPage();
|
||||
this.Tab_Profile = new System.Windows.Forms.TabPage();
|
||||
this.ProfileFruit = new NHSE.WinForms.RestrictedItemSelect();
|
||||
this.CAL_ProfileTimestamp = new System.Windows.Forms.DateTimePicker();
|
||||
this.CHK_ProfileMadeVillage = new System.Windows.Forms.CheckBox();
|
||||
this.L_ProfileSpecialtyFruit = new System.Windows.Forms.Label();
|
||||
this.L_ProfileTimestamp = new System.Windows.Forms.Label();
|
||||
((System.ComponentModel.ISupportInitialize)(this.NUD_BirthMonth)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.NUD_BirthDay)).BeginInit();
|
||||
this.tabControl1.SuspendLayout();
|
||||
this.Tab_Misc.SuspendLayout();
|
||||
this.Tab_Profile.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
B_Cancel = new System.Windows.Forms.Button();
|
||||
B_Save = new System.Windows.Forms.Button();
|
||||
L_Birthday = new System.Windows.Forms.Label();
|
||||
NUD_BirthMonth = new System.Windows.Forms.NumericUpDown();
|
||||
NUD_BirthDay = new System.Windows.Forms.NumericUpDown();
|
||||
tabControl1 = new System.Windows.Forms.TabControl();
|
||||
Tab_Misc = new System.Windows.Forms.TabPage();
|
||||
Tab_Profile = new System.Windows.Forms.TabPage();
|
||||
CB_SisterFlower = new System.Windows.Forms.ComboBox();
|
||||
CB_ProfileFlower = new System.Windows.Forms.ComboBox();
|
||||
L_ProfileSisterFlower = new System.Windows.Forms.Label();
|
||||
L_ProfileSpecialtyFlower = new System.Windows.Forms.Label();
|
||||
RIS_SisterFruit = new RestrictedItemSelect();
|
||||
L_ProfileSisterFruit = new System.Windows.Forms.Label();
|
||||
RIS_ProfileFruit = new RestrictedItemSelect();
|
||||
CAL_ProfileTimestamp = new System.Windows.Forms.DateTimePicker();
|
||||
CHK_ProfileMadeVillage = new System.Windows.Forms.CheckBox();
|
||||
L_ProfileSpecialtyFruit = new System.Windows.Forms.Label();
|
||||
L_ProfileTimestamp = new System.Windows.Forms.Label();
|
||||
((System.ComponentModel.ISupportInitialize)NUD_BirthMonth).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)NUD_BirthDay).BeginInit();
|
||||
tabControl1.SuspendLayout();
|
||||
Tab_Misc.SuspendLayout();
|
||||
Tab_Profile.SuspendLayout();
|
||||
SuspendLayout();
|
||||
//
|
||||
// B_Cancel
|
||||
//
|
||||
this.B_Cancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.B_Cancel.Location = new System.Drawing.Point(133, 181);
|
||||
this.B_Cancel.Name = "B_Cancel";
|
||||
this.B_Cancel.Size = new System.Drawing.Size(72, 23);
|
||||
this.B_Cancel.TabIndex = 7;
|
||||
this.B_Cancel.Text = "Cancel";
|
||||
this.B_Cancel.UseVisualStyleBackColor = true;
|
||||
this.B_Cancel.Click += new System.EventHandler(this.B_Cancel_Click);
|
||||
B_Cancel.Anchor = System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right;
|
||||
B_Cancel.Location = new System.Drawing.Point(211, 279);
|
||||
B_Cancel.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
|
||||
B_Cancel.Name = "B_Cancel";
|
||||
B_Cancel.Size = new System.Drawing.Size(84, 27);
|
||||
B_Cancel.TabIndex = 7;
|
||||
B_Cancel.Text = "Cancel";
|
||||
B_Cancel.UseVisualStyleBackColor = true;
|
||||
B_Cancel.Click += B_Cancel_Click;
|
||||
//
|
||||
// B_Save
|
||||
//
|
||||
this.B_Save.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.B_Save.Location = new System.Drawing.Point(211, 181);
|
||||
this.B_Save.Name = "B_Save";
|
||||
this.B_Save.Size = new System.Drawing.Size(72, 23);
|
||||
this.B_Save.TabIndex = 6;
|
||||
this.B_Save.Text = "Save";
|
||||
this.B_Save.UseVisualStyleBackColor = true;
|
||||
this.B_Save.Click += new System.EventHandler(this.B_Save_Click);
|
||||
B_Save.Anchor = System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right;
|
||||
B_Save.Location = new System.Drawing.Point(302, 279);
|
||||
B_Save.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
|
||||
B_Save.Name = "B_Save";
|
||||
B_Save.Size = new System.Drawing.Size(84, 27);
|
||||
B_Save.TabIndex = 6;
|
||||
B_Save.Text = "Save";
|
||||
B_Save.UseVisualStyleBackColor = true;
|
||||
B_Save.Click += B_Save_Click;
|
||||
//
|
||||
// L_Birthday
|
||||
//
|
||||
this.L_Birthday.Location = new System.Drawing.Point(6, 3);
|
||||
this.L_Birthday.Name = "L_Birthday";
|
||||
this.L_Birthday.Size = new System.Drawing.Size(104, 23);
|
||||
this.L_Birthday.TabIndex = 8;
|
||||
this.L_Birthday.Text = "Birthday (M/D):";
|
||||
this.L_Birthday.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
|
||||
L_Birthday.Location = new System.Drawing.Point(7, 3);
|
||||
L_Birthday.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
|
||||
L_Birthday.Name = "L_Birthday";
|
||||
L_Birthday.Size = new System.Drawing.Size(121, 27);
|
||||
L_Birthday.TabIndex = 8;
|
||||
L_Birthday.Text = "Birthday (M/D):";
|
||||
L_Birthday.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
|
||||
//
|
||||
// NUD_BirthMonth
|
||||
//
|
||||
this.NUD_BirthMonth.Font = new System.Drawing.Font("Courier New", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.NUD_BirthMonth.Location = new System.Drawing.Point(116, 6);
|
||||
this.NUD_BirthMonth.Name = "NUD_BirthMonth";
|
||||
this.NUD_BirthMonth.Size = new System.Drawing.Size(37, 20);
|
||||
this.NUD_BirthMonth.TabIndex = 9;
|
||||
this.NUD_BirthMonth.Value = new decimal(new int[] {
|
||||
12,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
NUD_BirthMonth.Font = new System.Drawing.Font("Courier New", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, 0);
|
||||
NUD_BirthMonth.Location = new System.Drawing.Point(135, 7);
|
||||
NUD_BirthMonth.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
|
||||
NUD_BirthMonth.Name = "NUD_BirthMonth";
|
||||
NUD_BirthMonth.Size = new System.Drawing.Size(43, 20);
|
||||
NUD_BirthMonth.TabIndex = 9;
|
||||
NUD_BirthMonth.Value = new decimal(new int[] { 12, 0, 0, 0 });
|
||||
//
|
||||
// NUD_BirthDay
|
||||
//
|
||||
this.NUD_BirthDay.Font = new System.Drawing.Font("Courier New", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.NUD_BirthDay.Location = new System.Drawing.Point(159, 6);
|
||||
this.NUD_BirthDay.Name = "NUD_BirthDay";
|
||||
this.NUD_BirthDay.Size = new System.Drawing.Size(37, 20);
|
||||
this.NUD_BirthDay.TabIndex = 10;
|
||||
this.NUD_BirthDay.Value = new decimal(new int[] {
|
||||
30,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
NUD_BirthDay.Font = new System.Drawing.Font("Courier New", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, 0);
|
||||
NUD_BirthDay.Location = new System.Drawing.Point(186, 7);
|
||||
NUD_BirthDay.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
|
||||
NUD_BirthDay.Name = "NUD_BirthDay";
|
||||
NUD_BirthDay.Size = new System.Drawing.Size(43, 20);
|
||||
NUD_BirthDay.TabIndex = 10;
|
||||
NUD_BirthDay.Value = new decimal(new int[] { 30, 0, 0, 0 });
|
||||
//
|
||||
// tabControl1
|
||||
//
|
||||
this.tabControl1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
||||
| System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.tabControl1.Controls.Add(this.Tab_Misc);
|
||||
this.tabControl1.Controls.Add(this.Tab_Profile);
|
||||
this.tabControl1.Location = new System.Drawing.Point(12, 12);
|
||||
this.tabControl1.Name = "tabControl1";
|
||||
this.tabControl1.SelectedIndex = 0;
|
||||
this.tabControl1.Size = new System.Drawing.Size(271, 163);
|
||||
this.tabControl1.TabIndex = 12;
|
||||
tabControl1.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right;
|
||||
tabControl1.Controls.Add(Tab_Misc);
|
||||
tabControl1.Controls.Add(Tab_Profile);
|
||||
tabControl1.Location = new System.Drawing.Point(14, 14);
|
||||
tabControl1.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
|
||||
tabControl1.Name = "tabControl1";
|
||||
tabControl1.SelectedIndex = 0;
|
||||
tabControl1.Size = new System.Drawing.Size(372, 258);
|
||||
tabControl1.TabIndex = 12;
|
||||
//
|
||||
// Tab_Misc
|
||||
//
|
||||
this.Tab_Misc.Controls.Add(this.L_Birthday);
|
||||
this.Tab_Misc.Controls.Add(this.NUD_BirthDay);
|
||||
this.Tab_Misc.Controls.Add(this.NUD_BirthMonth);
|
||||
this.Tab_Misc.Location = new System.Drawing.Point(4, 22);
|
||||
this.Tab_Misc.Name = "Tab_Misc";
|
||||
this.Tab_Misc.Padding = new System.Windows.Forms.Padding(3);
|
||||
this.Tab_Misc.Size = new System.Drawing.Size(222, 112);
|
||||
this.Tab_Misc.TabIndex = 0;
|
||||
this.Tab_Misc.Text = "Misc";
|
||||
this.Tab_Misc.UseVisualStyleBackColor = true;
|
||||
Tab_Misc.Controls.Add(L_Birthday);
|
||||
Tab_Misc.Controls.Add(NUD_BirthDay);
|
||||
Tab_Misc.Controls.Add(NUD_BirthMonth);
|
||||
Tab_Misc.Location = new System.Drawing.Point(4, 24);
|
||||
Tab_Misc.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
|
||||
Tab_Misc.Name = "Tab_Misc";
|
||||
Tab_Misc.Padding = new System.Windows.Forms.Padding(4, 3, 4, 3);
|
||||
Tab_Misc.Size = new System.Drawing.Size(364, 230);
|
||||
Tab_Misc.TabIndex = 0;
|
||||
Tab_Misc.Text = "Misc";
|
||||
Tab_Misc.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// Tab_Profile
|
||||
//
|
||||
this.Tab_Profile.Controls.Add(this.ProfileFruit);
|
||||
this.Tab_Profile.Controls.Add(this.CAL_ProfileTimestamp);
|
||||
this.Tab_Profile.Controls.Add(this.CHK_ProfileMadeVillage);
|
||||
this.Tab_Profile.Controls.Add(this.L_ProfileSpecialtyFruit);
|
||||
this.Tab_Profile.Controls.Add(this.L_ProfileTimestamp);
|
||||
this.Tab_Profile.Location = new System.Drawing.Point(4, 22);
|
||||
this.Tab_Profile.Name = "Tab_Profile";
|
||||
this.Tab_Profile.Padding = new System.Windows.Forms.Padding(3);
|
||||
this.Tab_Profile.Size = new System.Drawing.Size(263, 137);
|
||||
this.Tab_Profile.TabIndex = 1;
|
||||
this.Tab_Profile.Text = "Profile";
|
||||
this.Tab_Profile.UseVisualStyleBackColor = true;
|
||||
Tab_Profile.Controls.Add(CB_SisterFlower);
|
||||
Tab_Profile.Controls.Add(CB_ProfileFlower);
|
||||
Tab_Profile.Controls.Add(L_ProfileSisterFlower);
|
||||
Tab_Profile.Controls.Add(L_ProfileSpecialtyFlower);
|
||||
Tab_Profile.Controls.Add(RIS_SisterFruit);
|
||||
Tab_Profile.Controls.Add(L_ProfileSisterFruit);
|
||||
Tab_Profile.Controls.Add(RIS_ProfileFruit);
|
||||
Tab_Profile.Controls.Add(CAL_ProfileTimestamp);
|
||||
Tab_Profile.Controls.Add(CHK_ProfileMadeVillage);
|
||||
Tab_Profile.Controls.Add(L_ProfileSpecialtyFruit);
|
||||
Tab_Profile.Controls.Add(L_ProfileTimestamp);
|
||||
Tab_Profile.Location = new System.Drawing.Point(4, 24);
|
||||
Tab_Profile.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
|
||||
Tab_Profile.Name = "Tab_Profile";
|
||||
Tab_Profile.Padding = new System.Windows.Forms.Padding(4, 3, 4, 3);
|
||||
Tab_Profile.Size = new System.Drawing.Size(364, 230);
|
||||
Tab_Profile.TabIndex = 1;
|
||||
Tab_Profile.Text = "Profile";
|
||||
Tab_Profile.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// restrictedItemSelect1
|
||||
// CB_SisterFlower
|
||||
//
|
||||
this.ProfileFruit.Location = new System.Drawing.Point(9, 61);
|
||||
this.ProfileFruit.Name = "ProfileFruit";
|
||||
this.ProfileFruit.Size = new System.Drawing.Size(143, 48);
|
||||
this.ProfileFruit.TabIndex = 17;
|
||||
this.ProfileFruit.Value = ((ushort)(0));
|
||||
CB_SisterFlower.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||
CB_SisterFlower.FormattingEnabled = true;
|
||||
CB_SisterFlower.Location = new System.Drawing.Point(187, 162);
|
||||
CB_SisterFlower.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
|
||||
CB_SisterFlower.Name = "CB_SisterFlower";
|
||||
CB_SisterFlower.Size = new System.Drawing.Size(162, 23);
|
||||
CB_SisterFlower.TabIndex = 63;
|
||||
//
|
||||
// CB_ProfileFlower
|
||||
//
|
||||
CB_ProfileFlower.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||
CB_ProfileFlower.FormattingEnabled = true;
|
||||
CB_ProfileFlower.Location = new System.Drawing.Point(10, 162);
|
||||
CB_ProfileFlower.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
|
||||
CB_ProfileFlower.Name = "CB_ProfileFlower";
|
||||
CB_ProfileFlower.Size = new System.Drawing.Size(164, 23);
|
||||
CB_ProfileFlower.TabIndex = 62;
|
||||
//
|
||||
// L_ProfileSisterFlower
|
||||
//
|
||||
L_ProfileSisterFlower.AutoSize = true;
|
||||
L_ProfileSisterFlower.Location = new System.Drawing.Point(184, 144);
|
||||
L_ProfileSisterFlower.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
|
||||
L_ProfileSisterFlower.Name = "L_ProfileSisterFlower";
|
||||
L_ProfileSisterFlower.Size = new System.Drawing.Size(81, 15);
|
||||
L_ProfileSisterFlower.TabIndex = 21;
|
||||
L_ProfileSisterFlower.Text = "Flower (Sister)";
|
||||
//
|
||||
// L_ProfileSpecialtyFlower
|
||||
//
|
||||
L_ProfileSpecialtyFlower.AutoSize = true;
|
||||
L_ProfileSpecialtyFlower.Location = new System.Drawing.Point(7, 144);
|
||||
L_ProfileSpecialtyFlower.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
|
||||
L_ProfileSpecialtyFlower.Name = "L_ProfileSpecialtyFlower";
|
||||
L_ProfileSpecialtyFlower.Size = new System.Drawing.Size(42, 15);
|
||||
L_ProfileSpecialtyFlower.TabIndex = 20;
|
||||
L_ProfileSpecialtyFlower.Text = "Flower";
|
||||
//
|
||||
// RIS_SisterFruit
|
||||
//
|
||||
RIS_SisterFruit.Location = new System.Drawing.Point(187, 82);
|
||||
RIS_SisterFruit.Margin = new System.Windows.Forms.Padding(5, 3, 5, 3);
|
||||
RIS_SisterFruit.Name = "RIS_SisterFruit";
|
||||
RIS_SisterFruit.Size = new System.Drawing.Size(167, 55);
|
||||
RIS_SisterFruit.TabIndex = 19;
|
||||
//
|
||||
// L_ProfileSisterFruit
|
||||
//
|
||||
L_ProfileSisterFruit.AutoSize = true;
|
||||
L_ProfileSisterFruit.Location = new System.Drawing.Point(183, 64);
|
||||
L_ProfileSisterFruit.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
|
||||
L_ProfileSisterFruit.Name = "L_ProfileSisterFruit";
|
||||
L_ProfileSisterFruit.Size = new System.Drawing.Size(70, 15);
|
||||
L_ProfileSisterFruit.TabIndex = 18;
|
||||
L_ProfileSisterFruit.Text = "Fruit (Sister)";
|
||||
//
|
||||
// RIS_ProfileFruit
|
||||
//
|
||||
RIS_ProfileFruit.Location = new System.Drawing.Point(10, 82);
|
||||
RIS_ProfileFruit.Margin = new System.Windows.Forms.Padding(5, 3, 5, 3);
|
||||
RIS_ProfileFruit.Name = "RIS_ProfileFruit";
|
||||
RIS_ProfileFruit.Size = new System.Drawing.Size(167, 55);
|
||||
RIS_ProfileFruit.TabIndex = 17;
|
||||
//
|
||||
// CAL_ProfileTimestamp
|
||||
//
|
||||
this.CAL_ProfileTimestamp.Location = new System.Drawing.Point(9, 22);
|
||||
this.CAL_ProfileTimestamp.Name = "CAL_ProfileTimestamp";
|
||||
this.CAL_ProfileTimestamp.Size = new System.Drawing.Size(200, 20);
|
||||
this.CAL_ProfileTimestamp.TabIndex = 16;
|
||||
CAL_ProfileTimestamp.Location = new System.Drawing.Point(10, 25);
|
||||
CAL_ProfileTimestamp.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
|
||||
CAL_ProfileTimestamp.Name = "CAL_ProfileTimestamp";
|
||||
CAL_ProfileTimestamp.Size = new System.Drawing.Size(233, 23);
|
||||
CAL_ProfileTimestamp.TabIndex = 16;
|
||||
//
|
||||
// CHK_ProfileMadeVillage
|
||||
//
|
||||
this.CHK_ProfileMadeVillage.AutoSize = true;
|
||||
this.CHK_ProfileMadeVillage.Location = new System.Drawing.Point(9, 115);
|
||||
this.CHK_ProfileMadeVillage.Name = "CHK_ProfileMadeVillage";
|
||||
this.CHK_ProfileMadeVillage.Size = new System.Drawing.Size(87, 17);
|
||||
this.CHK_ProfileMadeVillage.TabIndex = 15;
|
||||
this.CHK_ProfileMadeVillage.Text = "Made Village";
|
||||
this.CHK_ProfileMadeVillage.UseVisualStyleBackColor = true;
|
||||
CHK_ProfileMadeVillage.AutoSize = true;
|
||||
CHK_ProfileMadeVillage.Location = new System.Drawing.Point(10, 203);
|
||||
CHK_ProfileMadeVillage.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
|
||||
CHK_ProfileMadeVillage.Name = "CHK_ProfileMadeVillage";
|
||||
CHK_ProfileMadeVillage.Size = new System.Drawing.Size(94, 19);
|
||||
CHK_ProfileMadeVillage.TabIndex = 15;
|
||||
CHK_ProfileMadeVillage.Text = "Made Village";
|
||||
CHK_ProfileMadeVillage.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// L_ProfileSpecialtyFruit
|
||||
//
|
||||
this.L_ProfileSpecialtyFruit.AutoSize = true;
|
||||
this.L_ProfileSpecialtyFruit.Location = new System.Drawing.Point(6, 45);
|
||||
this.L_ProfileSpecialtyFruit.Name = "L_ProfileSpecialtyFruit";
|
||||
this.L_ProfileSpecialtyFruit.Size = new System.Drawing.Size(27, 13);
|
||||
this.L_ProfileSpecialtyFruit.TabIndex = 14;
|
||||
this.L_ProfileSpecialtyFruit.Text = "Fruit";
|
||||
L_ProfileSpecialtyFruit.AutoSize = true;
|
||||
L_ProfileSpecialtyFruit.Location = new System.Drawing.Point(7, 64);
|
||||
L_ProfileSpecialtyFruit.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
|
||||
L_ProfileSpecialtyFruit.Name = "L_ProfileSpecialtyFruit";
|
||||
L_ProfileSpecialtyFruit.Size = new System.Drawing.Size(89, 15);
|
||||
L_ProfileSpecialtyFruit.TabIndex = 14;
|
||||
L_ProfileSpecialtyFruit.Text = "Fruit (Specialty)";
|
||||
//
|
||||
// L_ProfileTimestamp
|
||||
//
|
||||
this.L_ProfileTimestamp.AutoSize = true;
|
||||
this.L_ProfileTimestamp.Location = new System.Drawing.Point(6, 6);
|
||||
this.L_ProfileTimestamp.Name = "L_ProfileTimestamp";
|
||||
this.L_ProfileTimestamp.Size = new System.Drawing.Size(58, 13);
|
||||
this.L_ProfileTimestamp.TabIndex = 12;
|
||||
this.L_ProfileTimestamp.Text = "Timestamp";
|
||||
L_ProfileTimestamp.AutoSize = true;
|
||||
L_ProfileTimestamp.Location = new System.Drawing.Point(7, 7);
|
||||
L_ProfileTimestamp.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
|
||||
L_ProfileTimestamp.Name = "L_ProfileTimestamp";
|
||||
L_ProfileTimestamp.Size = new System.Drawing.Size(67, 15);
|
||||
L_ProfileTimestamp.TabIndex = 12;
|
||||
L_ProfileTimestamp.Text = "Timestamp";
|
||||
//
|
||||
// MiscPlayerEditor
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(295, 216);
|
||||
this.Controls.Add(this.tabControl1);
|
||||
this.Controls.Add(this.B_Cancel);
|
||||
this.Controls.Add(this.B_Save);
|
||||
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
|
||||
this.Icon = global::NHSE.WinForms.Properties.Resources.icon;
|
||||
this.MaximizeBox = false;
|
||||
this.MinimizeBox = false;
|
||||
this.Name = "MiscPlayerEditor";
|
||||
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
|
||||
this.Text = "Misc Player Detail Editor";
|
||||
((System.ComponentModel.ISupportInitialize)(this.NUD_BirthMonth)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.NUD_BirthDay)).EndInit();
|
||||
this.tabControl1.ResumeLayout(false);
|
||||
this.Tab_Misc.ResumeLayout(false);
|
||||
this.Tab_Profile.ResumeLayout(false);
|
||||
this.Tab_Profile.PerformLayout();
|
||||
this.ResumeLayout(false);
|
||||
AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F);
|
||||
AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
ClientSize = new System.Drawing.Size(400, 319);
|
||||
Controls.Add(tabControl1);
|
||||
Controls.Add(B_Cancel);
|
||||
Controls.Add(B_Save);
|
||||
FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
|
||||
Icon = Properties.Resources.icon;
|
||||
Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
|
||||
MaximizeBox = false;
|
||||
MinimizeBox = false;
|
||||
Name = "MiscPlayerEditor";
|
||||
StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
|
||||
Text = "Misc Player Detail Editor";
|
||||
((System.ComponentModel.ISupportInitialize)NUD_BirthMonth).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)NUD_BirthDay).EndInit();
|
||||
tabControl1.ResumeLayout(false);
|
||||
Tab_Misc.ResumeLayout(false);
|
||||
Tab_Profile.ResumeLayout(false);
|
||||
Tab_Profile.PerformLayout();
|
||||
ResumeLayout(false);
|
||||
|
||||
}
|
||||
|
||||
|
|
@ -225,9 +298,15 @@ private void InitializeComponent()
|
|||
private System.Windows.Forms.TabPage Tab_Misc;
|
||||
private System.Windows.Forms.TabPage Tab_Profile;
|
||||
private System.Windows.Forms.Label L_ProfileTimestamp;
|
||||
private System.Windows.Forms.Label L_ProfileSpecialtyFruit;
|
||||
private System.Windows.Forms.CheckBox CHK_ProfileMadeVillage;
|
||||
private System.Windows.Forms.DateTimePicker CAL_ProfileTimestamp;
|
||||
private RestrictedItemSelect ProfileFruit;
|
||||
private RestrictedItemSelect RIS_ProfileFruit;
|
||||
private RestrictedItemSelect RIS_SisterFruit;
|
||||
private System.Windows.Forms.Label L_ProfileSpecialtyFruit;
|
||||
private System.Windows.Forms.Label L_ProfileSisterFruit;
|
||||
private System.Windows.Forms.Label L_ProfileSisterFlower;
|
||||
private System.Windows.Forms.Label L_ProfileSpecialtyFlower;
|
||||
private System.Windows.Forms.ComboBox CB_SisterFlower;
|
||||
private System.Windows.Forms.ComboBox CB_ProfileFlower;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,21 +1,28 @@
|
|||
using System;
|
||||
using NHSE.Core;
|
||||
using System;
|
||||
using System.Diagnostics;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
using NHSE.Core;
|
||||
|
||||
namespace NHSE.WinForms;
|
||||
|
||||
public partial class MiscPlayerEditor : Form
|
||||
{
|
||||
private readonly Player Player;
|
||||
private readonly MainSave Save;
|
||||
|
||||
public MiscPlayerEditor(Player p)
|
||||
public MiscPlayerEditor(Player p, MainSave s)
|
||||
{
|
||||
InitializeComponent();
|
||||
this.TranslateInterface(GameInfo.CurrentLanguage);
|
||||
Player = p;
|
||||
Save = s;
|
||||
|
||||
var fruits = ComboItemUtil.GetArray(GameLists.Fruits, GameInfo.Strings.itemlistdisplay);
|
||||
ProfileFruit.Initialize(fruits);
|
||||
var fruitsSpecialty = ComboItemUtil.GetArray(GameLists.Fruits, GameInfo.Strings.itemlistdisplay);
|
||||
RIS_ProfileFruit.Initialize(fruitsSpecialty);
|
||||
|
||||
var fruitsSister = ComboItemUtil.GetArray(GameLists.Fruits, GameInfo.Strings.itemlistdisplay);
|
||||
RIS_SisterFruit.Initialize(fruitsSister);
|
||||
|
||||
LoadPlayer();
|
||||
}
|
||||
|
|
@ -25,12 +32,25 @@ private void LoadPlayer()
|
|||
var p = Player;
|
||||
var pers = p.Personal;
|
||||
|
||||
var sav = Save;
|
||||
|
||||
var bd = pers.Birthday;
|
||||
NUD_BirthDay.Value = bd.Day;
|
||||
NUD_BirthMonth.Value = bd.Month;
|
||||
|
||||
CHK_ProfileMadeVillage.Checked = pers.ProfileIsMakeVillage;
|
||||
ProfileFruit.Value = pers.ProfileFruit;
|
||||
|
||||
RIS_ProfileFruit.Value = pers.ProfileFruit;
|
||||
RIS_SisterFruit.Value = sav.SisterFruit;
|
||||
|
||||
var flowersProfile = Enum.GetNames<IslandFlowers>();
|
||||
CB_ProfileFlower.Items.AddRange(flowersProfile);
|
||||
CB_ProfileFlower.SelectedIndex = (int)sav.SpecialtyFlower;
|
||||
|
||||
var flowersSister = Enum.GetNames<IslandFlowers>();
|
||||
CB_SisterFlower.Items.AddRange(flowersSister);
|
||||
CB_SisterFlower.SelectedIndex = (int)sav.SisterFlower;
|
||||
|
||||
CAL_ProfileTimestamp.Value = pers.ProfileTimestamp;
|
||||
}
|
||||
|
||||
|
|
@ -47,6 +67,8 @@ private void SavePlayer()
|
|||
var p = Player;
|
||||
var pers = p.Personal;
|
||||
|
||||
var sav = Save;
|
||||
|
||||
var bd = pers.Birthday;
|
||||
bd.Day = (byte) NUD_BirthDay.Value;
|
||||
bd.Month = (byte) NUD_BirthMonth.Value;
|
||||
|
|
@ -54,7 +76,15 @@ private void SavePlayer()
|
|||
pers.Birthday = bd;
|
||||
pers.ProfileBirthday = bd;
|
||||
pers.ProfileIsMakeVillage = CHK_ProfileMadeVillage.Checked;
|
||||
pers.ProfileFruit = ProfileFruit.Value;
|
||||
|
||||
pers.ProfileFruit = RIS_ProfileFruit.Value;
|
||||
sav.SpecialtyFruit = RIS_ProfileFruit.Value;
|
||||
sav.SisterFruit = RIS_SisterFruit.Value;
|
||||
sav.UpdateFruitFlags();
|
||||
|
||||
sav.SpecialtyFlower = (IslandFlowers)CB_ProfileFlower.SelectedIndex;
|
||||
sav.SisterFlower = (IslandFlowers)CB_SisterFlower.SelectedIndex;
|
||||
|
||||
pers.ProfileTimestamp = CAL_ProfileTimestamp.Value;
|
||||
}
|
||||
}
|
||||
|
|
@ -1,17 +1,17 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
|
||||
Example:
|
||||
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
|
|
@ -26,36 +26,36 @@
|
|||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user