public ItemState(BinaryReader reader, short type)
: this()
{
Type = type;
reader.ReadByte();
Class = (ItemClass)reader.ReadByte();
Slot = (ItemSlot)reader.ReadByte();
BreakRate = reader.ReadByte();
Gender = (Gender)reader.ReadByte();
FreeHands = reader.ReadByte();
LifePointsBonus = reader.ReadByte();
SpellPointsBonus = reader.ReadByte();
AttributeType = (AttributeType)reader.ReadByte();
AttributeBonus = reader.ReadByte();
SkillTypeBonus = (SkillType)reader.ReadByte();
SkillBonus = reader.ReadByte();
PhysicalDamageProtection = reader.ReadByte();
PhysicalDamageCaused = reader.ReadByte();
AmmunitionType = reader.ReadByte();
SkillType1Tax = (SkillType)reader.ReadByte();
SkillType2Tax = (SkillType)reader.ReadByte();
Skill1Tax = reader.ReadSByte();
Skill2Tax = reader.ReadSByte();
TorchIntensity = reader.ReadByte();
AmmoAnimation = reader.ReadByte();
Spell = (ItemSpellType)reader.ReadByte();
SpellID = reader.ReadByte();
Charges = reader.ReadByte();
NumRecharged = reader.ReadByte();
MaxNumRecharged = reader.ReadByte();
MaxCharges = reader.ReadByte();
Count1 = reader.ReadByte();
Count2 = reader.ReadByte();
IconAnim = reader.ReadByte();
Weight = reader.ReadInt16();
Value = reader.ReadInt16()/10f;
Icon = reader.ReadInt16();
UsingClass = reader.ReadInt16();
UsingRace = reader.ReadInt16();
}