예제 #1
0
        private void GenerateHashes()
        {
            Progress?.Report("Building hash table");
            DebugTiming.BeginTiming("GenerateHashes");

            var racerHashes   = AaronHashLists.Get("RacerHashes");
            var copHashes     = AaronHashLists.Get("CopHashes");
            var trafficHashes = AaronHashLists.Get("TrafficHashes");

            foreach (var aaronCarRecord in _carService.GetCarsByType(CarUsageType.Racing))
            {
                //Debug.WriteLine($"Add racer hashes for {aaronCarRecord.CarTypeName}");
                foreach (var hashText in racerHashes.Select(s => s.Replace("%", aaronCarRecord.CarTypeName)))
                {
                    HashResolver.Add(Hashing.BinHash(hashText), hashText);
                }
            }

            foreach (var aaronCarRecord in _carService.GetCarsByType(CarUsageType.Cop))
            {
                //Debug.WriteLine($"Add cop hashes for {aaronCarRecord.CarTypeName}");
                foreach (var hashText in copHashes.Select(s => s.Replace("%", aaronCarRecord.CarTypeName)))
                {
                    //Debug.WriteLine(hashText);
                    HashResolver.Add(Hashing.BinHash(hashText), hashText);
                }
            }

            foreach (var aaronCarRecord in _carService.GetCarsByType(CarUsageType.Traffic))
            {
                //Debug.WriteLine($"Add traffic hashes for {aaronCarRecord.CarTypeName}");
                foreach (var hashText in trafficHashes.Select(s => s.Replace("%", aaronCarRecord.CarTypeName)))
                {
                    //Debug.WriteLine(hashText);
                    HashResolver.Add(Hashing.BinHash(hashText), hashText);
                }
            }

            DebugTiming.EndTiming("GenerateHashes");
        }
예제 #2
0
        protected override void OnStartup(StartupEventArgs e)
        {
            base.OnStartup(e);

            // Load hash lists
            AaronHashLists.Load("GenericHashes", @"ApplicationData\HashLists\GenericHashes.txt");
            AaronHashLists.Load("RacerHashes", @"ApplicationData\HashLists\RacerHashes.txt");
            AaronHashLists.Load("CopHashes", @"ApplicationData\HashLists\CopHashes.txt");
            AaronHashLists.Load("TrafficHashes", @"ApplicationData\HashLists\TrafficHashes.txt");

            // Register all generic hashes immediately
            foreach (var hashText in AaronHashLists.Get("GenericHashes"))
            {
                HashResolver.Add(Hashing.BinHash(hashText), hashText);
            }

            if (Directory.Exists(@"ApplicationData\CustomHashLists"))
            {
                foreach (var file in Directory.GetFiles(@"ApplicationData\CustomHashLists", "*.txt",
                                                        SearchOption.TopDirectoryOnly))
                {
                    AaronHashLists.Load(Path.GetFileNameWithoutExtension(file), file);

                    foreach (var s in AaronHashLists.Get(Path.GetFileNameWithoutExtension(file)))
                    {
                        HashResolver.Add(Hashing.BinHash(s), s);
                    }
                }
            }

            // Load templates
            AaronCarTemplates.LoadFromFile("CAR_COP", @"ApplicationData\Templates\CarTemplate_COP.json");
            AaronCarTemplates.LoadFromFile("CAR_RACER", @"ApplicationData\Templates\CarTemplate_RACER.json");
            AaronCarTemplates.LoadFromFile("CAR_TRAFFIC", @"ApplicationData\Templates\CarTemplate_TRAFFIC.json");

            // Load other data
            AaronManufacturers.LoadFromFile(@"ApplicationData\Manufacturers.txt");
        }