public override void Parse(GameBitBuffer buffer)
 {
     Field0 = buffer.ReadInt(32);
     Type = buffer.ReadInt(4);
     ApperanceSNO = buffer.ReadInt(32);
     PhysMeshSNO = buffer.ReadInt(32);
     Cylinder = new AxialCylinder();
     Cylinder.Parse(buffer);
     Sphere = new Sphere();
     Sphere.Parse(buffer);
     AABBBounds = new AABB();
     AABBBounds.Parse(buffer);
     serTagMap = new SerializeData();
     serTagMap.Parse(buffer);
     TagMap = new DT_TAGMAP();
     TagMap.Parse(buffer);
     AnimSetSNO = buffer.ReadInt(32);
     MonsterSNO = buffer.ReadInt(32);
     Field11 = buffer.ReadInt(32);
     serMsgTriggeredEvents = new SerializeData();
     serMsgTriggeredEvents.Parse(buffer);
     //still checking variablearrays
     this.MsgTriggeredEvents = new List<MsgTriggeredEvent>( buffer.ReadInt(0) );
     for(int loop12 = 0; loop12 < _MsgTriggeredEvents.Count; loop12++)
     {
         _MsgTriggeredEvents[loop12] = new MsgTriggeredEvent();
         _MsgTriggeredEvents[loop12].Parse(buffer);
     }
     V0 = new Vector3D();
     V0.Parse(buffer);
     Looks = new WeightedLook[8];
     for(int i = 0;i < _Looks.Length;i++)
     {
         _Looks[i] = new WeightedLook();
         _Looks[i].Parse(buffer);
     }
     PhysicsSNO = buffer.ReadInt(32);
     Field17 = buffer.ReadInt(32);
     Field18 = buffer.ReadInt(32);
     Field19 = buffer.ReadFloat32();
     Field20 = buffer.ReadFloat32();
     Field21 = buffer.ReadFloat32();
     ActorCollisionData = new ActorCollisionData();
     ActorCollisionData.Parse(buffer);
     InventoryImages = new InventoryImages[5];
     for(int i = 0;i < _InventoryImages.Length;i++)
     {
         _InventoryImages[i] = new InventoryImages();
         _InventoryImages[i].Parse(buffer);
     }
     Field24 = buffer.ReadInt(32);
     serVOCastingNotes = new SerializeData();
     serVOCastingNotes.Parse(buffer);
     throw new Exception("DT_CSTRING in network packets not implemented.");
     serVORole = new SerializeData();
     serVORole.Parse(buffer);
     throw new Exception("DT_CSTRING in network packets not implemented.");
 }
 public void FileRead(MpqFileStream stream, long offset)
 {
     stream.Position = offset + 12;
     Field0 = stream.ReadValueS32();
     stream.Position = offset + 16;
     _Type = stream.ReadValueS32();
     stream.Position = offset + 20;
     ApperanceSNO = stream.ReadValueS32();
     stream.Position = offset + 24;
     PhysMeshSNO = stream.ReadValueS32();
     stream.Position = offset + 28;
     Cylinder = new AxialCylinder();
     Cylinder.FileRead(stream, stream.Position);
     stream.Position = offset + 48;
     Sphere = new Sphere();
     Sphere.FileRead(stream, stream.Position);
     stream.Position = offset + 64;
     AABBBounds = new AABB();
     AABBBounds.FileRead(stream, stream.Position);
     stream.Position = offset + 88;
     serTagMap = new SerializeData();
     serTagMap.FileRead(stream, stream.Position);
     stream.Position = offset + 96;
     // TagMap: type DT_TAGMAP hasnt a deserializer implemented
     throw new Exception("some fields arent going to be decoded.");
     stream.Position = offset + 104;
     AnimSetSNO = stream.ReadValueS32();
     stream.Position = offset + 108;
     MonsterSNO = stream.ReadValueS32();
     stream.Position = offset + 120;
     Field11 = stream.ReadValueS32();
     stream.Position = offset + 112;
     serMsgTriggeredEvents = new SerializeData();
     serMsgTriggeredEvents.FileRead(stream, stream.Position);
     stream.Position = offset + 128;
     //still checking variablearrays
     MsgTriggeredEvents = new List<MsgTriggeredEvent>();
     for(int i = 0; i < (int)(serMsgTriggeredEvents.Field1 / 412); i++)
     {
     stream.Position = serMsgTriggeredEvents.Field0 + 16 + (412*i) ;
         MsgTriggeredEvent temp12_MsgTriggeredEvents;
         temp12_MsgTriggeredEvents = new MsgTriggeredEvent();
         temp12_MsgTriggeredEvents.FileRead(stream, stream.Position);
         _MsgTriggeredEvents.Add(temp12_MsgTriggeredEvents);
     }
     stream.Position = offset + 136;
     V0 = new Vector3D();
     V0.FileRead(stream, stream.Position);
     stream.Position = offset + 148;
     Looks = new WeightedLook[8];
     for(int loop12=0; loop12 < 8; loop12++ )
     {
         WeightedLook temp12_Looks;
         temp12_Looks = new WeightedLook();
         temp12_Looks.FileRead(stream, stream.Position);
         _Looks[loop12] = temp12_Looks;
     }
     stream.Position = offset + 692;
     PhysicsSNO = stream.ReadValueS32();
     stream.Position = offset + 696;
     Field17 = stream.ReadValueS32();
     stream.Position = offset + 700;
     Field18 = stream.ReadValueS32();
     stream.Position = offset + 704;
     Field19 = stream.ReadValueF32();
     stream.Position = offset + 708;
     Field20 = stream.ReadValueF32();
     stream.Position = offset + 712;
     Field21 = stream.ReadValueF32();
     stream.Position = offset + 716;
     ActorCollisionData = new ActorCollisionData();
     ActorCollisionData.FileRead(stream, stream.Position);
     stream.Position = offset + 784;
     InventoryImages = new InventoryImages[5];
     for(int loop12=0; loop12 < 5; loop12++ )
     {
         InventoryImages temp12_InventoryImages;
         temp12_InventoryImages = new InventoryImages();
         temp12_InventoryImages.FileRead(stream, stream.Position);
         _InventoryImages[loop12] = temp12_InventoryImages;
     }
     stream.Position = offset + 824;
     Field24 = stream.ReadValueS32();
     stream.Position = offset + 840;
     serVOCastingNotes = new SerializeData();
     serVOCastingNotes.FileRead(stream, stream.Position);
     stream.Position = offset + 832;
     //still checking cstrings
     stream.Position = serVOCastingNotes.Field0 + 16;
     VOCastingNotes = stream.ReadString((uint)serVOCastingNotes.Field1);
     stream.Position = offset + 856;
     serVORole = new SerializeData();
     serVORole.FileRead(stream, stream.Position);
     stream.Position = offset + 848;
     //still checking cstrings
     stream.Position = serVORole.Field0 + 16;
     VORole = stream.ReadString((uint)serVORole.Field1);
 }