using System; using System.Runtime.InteropServices; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; using PSO2SERVER.Protocol; using PSO2SERVER.Database; namespace PSO2SERVER.Models { public class CharacterStruct { [StructLayout(LayoutKind.Sequential)] public unsafe struct LooksParam { public RunAnimation running_animation; public Race race; public Gender gender; public ushort Muscule; public Figure Body; public Figure Arms; public Figure Legs; public Figure Chest; public Figure FaceShape; public Figure FaceParts; public Figure Eyes; public Figure NoseSize; public Figure NoseHeight; public Figure Mouth; public Figure Ears; public Figure Neck; public Figure Waist; public Figure Body2; public Figure Arms2; public Figure Legs2; public Figure Chest2; public Figure Neck2; public Figure Waist2; public fixed byte Unk1[0x20]; public fixed byte Unk2[0x0A]; public AccessoryData Acc1Location; public AccessoryData Acc2Location; public AccessoryData Acc3Location; public AccessoryData Acc4Location; public HSVColor UnkColor; public HSVColor CostumeColor; public HSVColor MainColor; public HSVColor Sub1Color; public HSVColor Sub2Color; public HSVColor Sub3Color; public HSVColor EyeColor; public HSVColor HairColor; public fixed byte Unk3[0x20]; public fixed byte Unk4[0x10]; public ushort CostumeId; public ushort BodyPaint1; public ushort StickerId; public ushort RightEyeId; public ushort EyebrowId; public ushort EyelashId; public ushort FaceId1; public ushort FaceId2; public ushort Facemakeup1Id; public ushort HairstyleId; public ushort Acc1Id; public ushort Acc2Id; public ushort Acc3Id; public ushort Facemakeup2Id; public ushort LegId; public ushort ArmId; public ushort Acc4Id; public fixed byte Unk5[0x04]; public ushort BodyPaint2; public ushort LeftEyeId; public fixed byte Unk6[0x12]; public AccessoryData Acc1Size; public AccessoryData Acc2Size; public AccessoryData Acc3Size; public AccessoryData Acc4Size; public AccessoryData Acc1Rotation; public AccessoryData Acc2Rotation; public AccessoryData Acc3Rotation; public AccessoryData Acc4Rotation; public ushort Unk7; public fixed byte Unk8[0x08]; public SkinColor SkinColorType; public sbyte EyebrowThickness; } [StructLayout(LayoutKind.Sequential)] public unsafe struct JobParam { public ClassType mainClass;//1 public ClassType subClass;//1 public ushort unk2;//2 public ClassTypeField enabledClasses;//2 public ushort unk3;//2 public Entries entries; //TODO: Make this a fixed array 24 * 8 public fixed ushort unk_maxlevel[15];//30 } } }