CNCMaps.Engine.Map.EngineDetector.DetectEngineFromRules C# (CSharp) Метод

DetectEngineFromRules() приватный статический Метод

private static DetectEngineFromRules ( MapFile mf, IniFile rulesTS, IniFile rulesFS, IniFile rulesRA2, IniFile rulesYR, CNCMaps.Shared.TheaterSettings theaterTS, CNCMaps.Shared.TheaterSettings theaterFS, CNCMaps.Shared.TheaterSettings theaterRA2, CNCMaps.Shared.TheaterSettings theaterYR, VFS vfsTS, VFS vfsFS, VFS vfsRA2, VFS vfsYR ) : EngineType
mf CNCMaps.FileFormats.Map.MapFile
rulesTS IniFile
rulesFS IniFile
rulesRA2 IniFile
rulesYR IniFile
theaterTS CNCMaps.Shared.TheaterSettings
theaterFS CNCMaps.Shared.TheaterSettings
theaterRA2 CNCMaps.Shared.TheaterSettings
theaterYR CNCMaps.Shared.TheaterSettings
vfsTS VFS
vfsFS VFS
vfsRA2 VFS
vfsYR VFS
Результат EngineType
        private static EngineType DetectEngineFromRules(MapFile mf,
			IniFile rulesTS, IniFile rulesFS, IniFile rulesRA2, IniFile rulesYR,
			TheaterSettings theaterTS, TheaterSettings theaterFS, TheaterSettings theaterRA2, TheaterSettings theaterYR,
			VFS vfsTS, VFS vfsFS, VFS vfsRA2, VFS vfsYR)
        {
            double tsScore = PercentageObjectsKnown(mf, vfsTS, rulesTS, theaterTS);
            double fsScore = PercentageObjectsKnown(mf, vfsFS, rulesFS, theaterFS);
            double ra2Score = PercentageObjectsKnown(mf, vfsRA2, rulesRA2, theaterRA2);
            double yrScore = PercentageObjectsKnown(mf, vfsYR, rulesYR, theaterYR);

            double maxScore = Math.Max(Math.Max(Math.Max(tsScore, fsScore), ra2Score), yrScore);
            if (maxScore == ra2Score) return EngineType.RedAlert2;
            else if (maxScore == yrScore) return EngineType.YurisRevenge;
            else if (maxScore == tsScore) return EngineType.TiberianSun;
            else if (maxScore == fsScore) return EngineType.Firestorm;
            return EngineType.YurisRevenge; // default
        }