NHSE/NHSE.Core/Structures/Misc/GSaveVisitorNpc.cs
swampatha dc96b4193c
Add Gullivarrr to the Special NPC list (#332)
* Add Gullivarrr to the Special NPC list
2020-07-04 17:40:54 -05:00

68 lines
1.9 KiB
C#

using System.ComponentModel;
using System.Runtime.InteropServices;
#pragma warning disable CS8618, CA1815, CA1819, IDE1006
namespace NHSE.Core
{
[StructLayout(LayoutKind.Sequential, Pack = 1)]
public class GSaveVisitorNpc
{
public const int SIZE = 0x78;
private const int Days = 7;
[field: MarshalAs(UnmanagedType.ByValArray, SizeConst = Days)]
public VisitorNPC[] VisitorNPC { get; set; }
public V3f CreatePos { get; set; }
public V3f _61e631dc { get; set; }
[field: MarshalAs(UnmanagedType.ByValArray, ArraySubType = UnmanagedType.I1, SizeConst = Days)]
public bool[] IsNormalLive { get; set; }
[field: MarshalAs(UnmanagedType.ByValArray, ArraySubType = UnmanagedType.I1, SizeConst = Days)]
public bool[] IsBirthdayLive { get; set; }
[field: MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)]
public byte[] gap_42;
[field: MarshalAs(UnmanagedType.ByValArray, SizeConst = Days)]
public VisitorNPC[] InitSchedule { get; set; }
[field: MarshalAs(UnmanagedType.ByValArray, ArraySubType = UnmanagedType.I1, SizeConst = Days * 2)]
public bool[] _437619d8 { get; set; }
[field: MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)]
public byte[] gap_6e;
public int DayWisp {get; set; }
public int DayCeleste { get; set; }
}
// same as Vector3; not importing package
[TypeConverter(typeof(ValueTypeTypeConverter))]
public struct V3f
{
public float X { get; set; }
public float Y { get; set; }
public float Z { get; set; }
public override string ToString() => $"({X},{Y},{Z})";
}
public enum VisitorNPC
{
None = 0,
Gulliver = 1,
Label = 2,
Saharah = 3,
Wisp = 4,
Mabel = 5,
CJ = 6,
Flick = 7,
Kicks = 8,
Leif = 9,
Redd = 10,
Gullivarrr = 11,
}
}