// I don't even know what this is yet here I am parsing it
        public static MeshModificationObject Read(Reader reader, PhysicalObject po, Pointer offset)
        {
            MapLoader l = MapLoader.Loader;
            //Debug.LogWarning("Unknown object @ " + offset);
            MeshModificationObject mod = new MeshModificationObject(po, offset);

            mod.off_model = Pointer.Read(reader);

            /*Pointer.DoAt(ref reader, mod.off_model, () => {
             *  mod.mesh = MeshObject.Read(reader, po, mod.off_model);
             * });*/

            mod.num_properties = reader.ReadUInt32();
            mod.off_properties = Pointer.Read(reader);
            Pointer.DoAt(ref reader, mod.off_properties, () => {
                mod.properties = new MeshModificationProperty[mod.num_properties];
                for (int i = 0; i < mod.num_properties; i++)
                {
                    mod.properties[i]     = new MeshModificationProperty();
                    mod.properties[i].id  = reader.ReadUInt16();
                    mod.properties[i].unk = reader.ReadUInt16();
                    float x = reader.ReadSingle();
                    float z = reader.ReadSingle();
                    float y = reader.ReadSingle();
                    mod.properties[i].pos = new Vector3(x, y, z);
                }
            });
            return(mod);
        }
        public IGeometricObject Clone()
        {
            MeshModificationObject lodObj = (MeshModificationObject)MemberwiseClone();

            return(lodObj);
        }