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; }
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); } }