Пример #1
0
 public Vehicle(Vehicle other)
     : base(other)
 {
     Type             = other.Type;
     ModelIndex       = other.ModelIndex;
     Handle           = other.Handle;
     AutoPilot        = new AutoPilot(other.AutoPilot);
     Color1           = other.Color1;
     Color2           = other.Color2;
     AlarmState       = other.AlarmState;
     MaxNumPassengers = other.MaxNumPassengers;
     Field1D0h        = other.Field1D0h;
     Field1D4h        = other.Field1D4h;
     Field1D8h        = other.Field1D8h;
     Field1DCh        = other.Field1DCh;
     SteerAngle       = other.SteerAngle;
     GasPedal         = other.GasPedal;
     BrakePedal       = other.BrakePedal;
     CreatedBy        = other.CreatedBy;
     IsLawEnforcer    = other.IsLawEnforcer;
     IsLockedByScript = other.IsLockedByScript;
     IsEngineOn       = other.IsEngineOn;
     IsHandbrakeOn    = other.IsHandbrakeOn;
     LightsOn         = other.LightsOn;
     HasFreebies      = other.HasFreebies;
     Health           = other.Health;
     CurrentGear      = other.CurrentGear;
     ChangeGearTime   = other.ChangeGearTime;
     TimeOfDeath      = other.TimeOfDeath;
     BombTimer        = other.BombTimer;
     DoorLock         = other.DoorLock;
 }
Пример #2
0
        protected override void ReadData(DataBuffer buf, FileFormat fmt)
        {
            if (!fmt.IsPS2)
            {
                buf.Skip(4);
            }
            Matrix = buf.ReadStruct <Matrix>();
            if (fmt.IsPC || fmt.IsXbox)
            {
                buf.Skip(12);
            }
            if (fmt.IsiOS)
            {
                buf.Skip(15);
            }
            if (fmt.IsAndroid)
            {
                buf.Skip(16);
            }
            if (fmt.IsPS2 && !fmt.IsJapanese)
            {
                buf.Skip(32);
            }
            LoadEntityFlags(buf, fmt);
            if (fmt.IsiOS)
            {
                buf.Skip(1);
            }
            if (fmt.IsPS2)
            {
                buf.Skip(236);
            }
            else
            {
                buf.Skip(212);
            }
            AutoPilot = buf.ReadObject <AutoPilot>();
            Color1    = buf.ReadByte();
            Color2    = buf.ReadByte();
            buf.Skip(2);
            AlarmState = buf.ReadInt16();
            buf.Skip(42);
            MaxNumPassengers = buf.ReadByte();
            buf.Skip(3);
            Field1D0h = buf.ReadFloat();
            Field1D4h = buf.ReadFloat();
            Field1D8h = buf.ReadFloat();
            Field1DCh = buf.ReadFloat();
            buf.Skip(8);
            SteerAngle = buf.ReadFloat();
            GasPedal   = buf.ReadFloat();
            BrakePedal = buf.ReadFloat();
            CreatedBy  = (VehicleCreatedBy)buf.ReadByte();
            byte flags = buf.ReadByte();

            IsLawEnforcer    = (flags & 0x01) != 0;
            IsLockedByScript = (flags & 0x08) != 0;
            IsEngineOn       = (flags & 0x10) != 0;
            IsHandbrakeOn    = (flags & 0x20) != 0;
            LightsOn         = (flags & 0x40) != 0;
            HasFreebies      = (flags & 0x80) != 0;
            buf.Skip(10);
            Health      = buf.ReadFloat();
            CurrentGear = buf.ReadByte();
            buf.Skip(3);
            ChangeGearTime = buf.ReadFloat();
            buf.Skip(4);
            TimeOfDeath = buf.ReadUInt32();
            buf.Skip(2);
            BombTimer = buf.ReadInt16();
            buf.Skip(12);
            DoorLock = (CarLock)buf.ReadInt32();
            if (fmt.IsPS2)
            {
                buf.Skip(156);
            }
            else
            {
                buf.Skip(96);
            }
        }