Пример #1
0
        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();
        }
Пример #2
0
        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);
        }