PSO2SERVER/Server/Models/CharacterStruct.cs

102 lines
3.5 KiB
C#

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 ClassFlags enabledClasses;//2
public ushort unk3;//2
public Entries entries; //TODO: Make this a fixed array 24 * 8
public fixed ushort unk_maxlevel[15];//30
}
}
}