Example #1
0
        // Updated based on BoyC's 010editoer template, looks like some data at the end still isnt parsed - Darklotus
        public Actor(MpqFile file)
        {
            var stream = file.Open();
            Header = new Header(stream);
            this.ActorSNO = stream.ReadInt32();
            stream.Position += 8; // pad 2;
            this.i0 = stream.ReadInt32();
            this.type = stream.ReadInt32();
            this.ApperanceSNO = stream.ReadInt32();
            this.snoPhysMesh = stream.ReadInt32();
            this.Cyl = new AxialCylinder(stream);
            this.s = new Sphere(stream);
            this.aabbBounds = new AABB_(stream);
            this.serTagMap = new SerializeData(stream);
            stream.Position += 8; // pad 2
            this.AnimSetSNO = stream.ReadInt32();
            this.MonsterSNO = stream.ReadInt32();
            this.serMsgTriggeredEvents = new SerializeData(stream);

            this.i1 = stream.ReadInt32();
            stream.Position += 12; // pad 3 int - DarkLotus
            this.v0 = new Vector3D(stream.ReadFloat(), stream.ReadFloat(), stream.ReadFloat());
            this.Looks = new WeightedLook[8];
            for (int i = 0; i < 8; i++)
            {
                this.Looks[i] = new WeightedLook(stream);
            }
            this.PhysicsSNO = stream.ReadInt32();
            this.i2 = stream.ReadInt32(); this.i3 = stream.ReadInt32();
            this.f0 = stream.ReadFloat(); this.f1 = stream.ReadFloat(); this.f2 = stream.ReadFloat();
            this.padActorCollisionData = new int[17]; // Was 68/4 - Darklotus 
            for (int i = 0; i < 17; i++)
            {
                this.padActorCollisionData[i] = stream.ReadInt32();
            }
            this.padInventoryImages = new int[10]; //Was 5*8/4 - Darklotus
            for (int i = 0; i < 10; i++)
            {
                this.padInventoryImages[i] = stream.ReadInt32();
            }
            stream.Close();
        }
 public void Parse(GameBitBuffer buffer)
 {
     Field0 = new ActorCollisionFlags();
     Field0.Parse(buffer);
     Field1 = buffer.ReadInt(32);
     Field2 = new AxialCylinder();
     Field2.Parse(buffer);
     Field3 = new AABB();
     Field3.Parse(buffer);
     Field4 = buffer.ReadFloat32();
 }
 public void Parse(GameBitBuffer buffer)
 {
     Field0 = buffer.ReadInt(32);
     Field1 = buffer.ReadInt(4);
     snoAppearance = buffer.ReadInt(32);
     snoPhysMesh = buffer.ReadInt(32);
     Field4 = new AxialCylinder();
     Field4.Parse(buffer);
     Field5 = new Sphere();
     Field5.Parse(buffer);
     aabbBounds = new AABB();
     aabbBounds.Parse(buffer);
     serTagMap = new SerializeData();
     serTagMap.Parse(buffer);
     hTagMap = new DT_TAGMAP();
     hTagMap.Parse(buffer);
     snoAnimSet = buffer.ReadInt(32);
     snoMonster = buffer.ReadInt(32);
     serMsgTriggeredEvents = new SerializeData();
     serMsgTriggeredEvents.Parse(buffer);
     Field12 = buffer.ReadInt(32);
     Field13 = new DT_VARIABLEARRAY();
     Field13.Parse(buffer);
     Field14 = new Vector3D();
     Field14.Parse(buffer);
     Field15 = new WeightedLook[8];
     for(int i = 0;i < _Field15.Length;i++)
     {
         _Field15[i] = new WeightedLook();
         _Field15[i].Parse(buffer);
     }
     snoPhysics = buffer.ReadInt(32);
     Field17 = buffer.ReadInt(32);
     Field18 = buffer.ReadInt(32);
     Field19 = buffer.ReadFloat32();
     Field20 = buffer.ReadFloat32();
     Field21 = buffer.ReadFloat32();
     Field22 = new ActorCollisionData();
     Field22.Parse(buffer);
     Field23 = new InventoryImages[5];
     for(int i = 0;i < _Field23.Length;i++)
     {
         _Field23[i] = new InventoryImages();
         _Field23[i].Parse(buffer);
     }
     Field24 = buffer.ReadInt(32);
     Field25 = new DT_CSTRING();
     Field25.Parse(buffer);
     serVOCastingNotes = new SerializeData();
     serVOCastingNotes.Parse(buffer);
     Field27 = new DT_CSTRING();
     Field27.Parse(buffer);
     serVORole = new SerializeData();
     serVORole.Parse(buffer);
 }