public Character(byte[] data)
{
source = (byte[])data.Clone();
Gender = (CharacterGender)data[1];
Race = (CharacterRace)data[2];
Class = (CharacterClass)data[3];
Magic = (CharacterMagic)data[4];
Level = data[5];
Language = (CharacterLanguage)data[8];
Appearance = data[9];
Face = data[10];
InventoryPicture = data[11];
TrainingPoints = BitConverter.ToInt16(data, 22);
Gold = BitConverter.ToInt16(data, 24)/10f;
Rations = BitConverter.ToInt16(data, 26);
Conditions = (CharacterConditions)BitConverter.ToInt16(data, 30);
Strength = new CharacterAttribute(data, 42);
Intelligence = new CharacterAttribute(data, 50);
Dexterity = new CharacterAttribute(data, 58);
Speed = new CharacterAttribute(data, 66);
Stamina = new CharacterAttribute(data, 74);
Luck = new CharacterAttribute(data, 82);
MagicResistance = new CharacterAttribute(data, 90);
MagicTallent = new CharacterAttribute(data, 98);
Age = BitConverter.ToInt16(data, 106);
CloseRangeCombat = new CharacterAttribute(data, 122);
LongRangeCombat = new CharacterAttribute(data, 130);
CriticalHit = new CharacterAttribute(data, 138);
Lockpicking = new CharacterAttribute(data, 146);
LifePoints = new CharacterAttribute(data, 202);
SpellPoints = new CharacterAttribute(data, 208);
Experience = BitConverter.ToInt32(data, 238);
ClassSpells = new int[7];
ClassSpells[0] = BitConverter.ToInt32(data, 242);
ClassSpells[1] = BitConverter.ToInt32(data, 246);
ClassSpells[2] = BitConverter.ToInt32(data, 250);
ClassSpells[3] = BitConverter.ToInt32(data, 254);
ClassSpells[4] = BitConverter.ToInt32(data, 258);
ClassSpells[5] = BitConverter.ToInt32(data, 262);
ClassSpells[6] = BitConverter.ToInt32(data, 266);
StringBuilder name = new StringBuilder(16);
int i = 274;
while(data[i] != 0)
{
name.Append((char)data[i++]);
}
Name = name.ToString();
Equipment = new Equipment(data, 742);
Inventory = new Backpack(data, 796);
}