WarheadInfo loading

This commit is contained in:
Chris Forbes
2009-10-14 13:59:27 +13:00
parent f41fddef8e
commit 6432ba8779
4 changed files with 55 additions and 4 deletions

View File

@@ -10,6 +10,7 @@ namespace OpenRa.Game
{
public static UnitInfoLoader UnitInfo;
public static WeaponInfoLoader WeaponInfo;
public static WarheadInfoLoader WarheadInfo;
public static Footprint Footprint;
// TODO: load rules from the map, where appropriate.
@@ -18,6 +19,7 @@ namespace OpenRa.Game
var rulesIni = new IniFile( FileSystem.Open( "rules.ini" ) );
UnitInfo = new UnitInfoLoader( rulesIni );
WeaponInfo = new WeaponInfoLoader( rulesIni );
WarheadInfo = new WarheadInfoLoader(rulesIni);
Footprint = new Footprint(FileSystem.Open("footprint.txt"));
}
}

View File

@@ -0,0 +1,48 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using OpenRa.FileFormats;
using OpenRa.Game.Graphics;
namespace OpenRa.Game.GameRules
{
class WarheadInfoLoader
{
readonly Dictionary<string, WarheadInfo> warheadInfos = new Dictionary<string, WarheadInfo>();
public WarheadInfoLoader(IniFile rules)
{
foreach (var s in Util.ReadAllLines(FileSystem.Open("warheads.txt")))
{
var unitName = s.Split(',')[0];
warheadInfos.Add(unitName.ToLowerInvariant(),
new WarheadInfo(rules.GetSection(unitName)));
}
}
public WarheadInfo this[string unitName]
{
get
{
return warheadInfos[unitName.ToLowerInvariant()];
}
}
}
class WarheadInfo
{
public readonly int Spread = 1;
public readonly string Verses = "100%,100%,100%,100%,100%";
public readonly bool Wall = false;
public readonly bool Wood = false;
public readonly bool Ore = false;
public readonly int Explosion = 0;
public readonly int InfDeath = 0;
public WarheadInfo(IniSection ini)
{
FieldLoader.Load(this, ini);
}
}
}

View File

@@ -80,6 +80,7 @@
<Compile Include="GameRules\Footprint.cs" />
<Compile Include="GameRules\Rules.cs" />
<Compile Include="GameRules\UnitInfo.cs" />
<Compile Include="GameRules\WarheadInfo.cs" />
<Compile Include="GameRules\WeaponInfo.cs" />
<Compile Include="Graphics\Animation.cs" />
<Compile Include="Game.cs" />