예제 #1
0
        public static MechanicsIDCard Read(Reader reader, Pointer offset)
        {
            MapLoader       l = MapLoader.Loader;
            MechanicsIDCard c = new MechanicsIDCard(offset);

            c.type       = reader.ReadUInt32(); // 0x0
            c.flags      = reader.ReadUInt32(); // 0x4
            c.gravity    = reader.ReadSingle();
            c.maxRebound = reader.ReadSingle();
            reader.ReadUInt32();
            c.slopeLimit = reader.ReadSingle();
            float x = reader.ReadSingle();
            float z = reader.ReadSingle();
            float y = reader.ReadSingle();

            c.inertia       = new Vector3(x, y, z);
            c.tiltIntensity = reader.ReadSingle();
            c.tiltInertia   = reader.ReadSingle();
            c.tiltOrigin    = reader.ReadSingle();
            x            = reader.ReadSingle();
            z            = reader.ReadSingle();
            y            = reader.ReadSingle();
            c.maxInertia = new Vector3(x, y, z);
            return(c);
        }
예제 #2
0
        public static MechanicsIDCard FromOffsetOrRead(Pointer offset, Reader reader)
        {
            if (offset == null)
            {
                return(null);
            }
            MechanicsIDCard c = FromOffset(offset);

            if (c == null)
            {
                Pointer off_current = Pointer.Goto(ref reader, offset);
                c = MechanicsIDCard.Read(reader, offset);
                Pointer.Goto(ref reader, off_current);
                MapLoader.Loader.mechanicsIDCards.Add(c);
            }
            return(c);
        }