private void ProcessCarList(Chunk chunk) { var newSize = chunk.Size - Reader.AlignToBoundary(0x10); if (newSize % 0xD0 != 0) { throw new InvalidDataException("Malformed car list chunk"); } Progress?.Report("Processing car list"); while (Stream.Position < chunk.EndOffset) { var cti = BinaryHelpers.ReadStruct <CarTypeInfo>(Reader); //Debug.WriteLine("{0} {1} ({2})", cti.ManufacturerName, cti.BaseModelName, cti.UsageType); var acr = new AaronCarRecord(); acr.BaseModelName = cti.BaseModelName; acr.CarTypeName = cti.CarTypeName; acr.ManufacturerName = cti.ManufacturerName; acr.DefaultBasePaint = cti.DefaultBasePaint; acr.DefaultSkinNumber = cti.DefaultSkinNumber; acr.Skinnable = cti.Skinnable; acr.UsageType = cti.UsageType; _carService.AddCar(acr); HashResolver.Add(cti.CarTypeNameHash, cti.CarTypeName); } this.GenerateHashes(); }
public void AddCar(AaronCarRecord aaronCarRecord) { if (_carRecords.Contains(aaronCarRecord)) { throw new ArgumentException("Attempted to add a car record that is already known", nameof(aaronCarRecord)); } _carRecords.Add(aaronCarRecord); }