using System; using System.Collections.Generic; using System.Linq; using OpenRa.FileFormats; using OpenRa.Game.GameRules; using IjwFramework.Types; namespace OpenRa.Game { static class Rules { public static IniFile AllRules; public static InfoLoader UnitInfo; public static InfoLoader WeaponInfo; public static InfoLoader WarheadInfo; public static InfoLoader ProjectileInfo; public static void LoadRules( string mapFileName ) { AllRules = new IniFile( FileSystem.Open( mapFileName ), FileSystem.Open( "rules.ini" ), FileSystem.Open( "units.ini" ), FileSystem.Open( "campaignUnits.ini" ) ); UnitInfo = new InfoLoader( Pair.New>( "BuildingTypes", s => new UnitInfo.BuildingInfo(s)), Pair.New>( "InfantryTypes", s => new UnitInfo.InfantryInfo(s)), Pair.New>( "VehicleTypes", s => new UnitInfo.VehicleInfo(s)), Pair.New>( "ShipTypes", s => new UnitInfo.VehicleInfo(s)), Pair.New>( "PlaneTypes", s => new UnitInfo.VehicleInfo(s))); WeaponInfo = new InfoLoader( Pair.New>("WeaponTypes", _ => new WeaponInfo())); WarheadInfo = new InfoLoader( Pair.New>("WarheadTypes", _ => new WarheadInfo())); ProjectileInfo = new InfoLoader( Pair.New>("ProjectileTypes", _ => new ProjectileInfo())); } } }