All pastes #49465 Raw Edit

tobz

public text v1 · immutable
#49465 ·published 2006-04-16 03:23 UTC
rendered paste body
using System;
using System.Collections;
using System.Collections.Generic;
using System.Text;
using Cell.Core;

namespace DOLC.ConfigReaders
{
	[Serializable]
	public class RaceInfo
	{
		private string m_raceName;
		private int m_raceID;
		private Dictionary<string, int> m_stats;

		public string RaceName
		{
			get
			{
				return m_raceName;
			}
			set
			{
				m_raceName = value;
			}
		}

		public int RaceID
		{
			get
			{
				return m_raceID;
			}
			set
			{
				m_raceID = value;
			}
		}

		public Dictionary<string,int> Stats
		{
			get
			{
				return m_stats;
			}
			set
			{
				m_stats = value;
			}
		}
	}

	public class RaceConfig : XmlConfig, IEnumerable
	{
		private Dictionary<int, RaceInfo> m_races = new Dictionary<int,RaceInfo>();

		public Dictionary<int,RaceInfo> Races
		{
			get
			{
				return m_raceName;
			}
			set
			{
				m_raceName = value;
			}
		}

		[NonSerialized]
		public RaceInfo this[int raceID]
		{
			get
			{
				return (m_races.ContainsKey(raceID) ? m_races[raceID] : null);
			}
		}

		[NonSerialized]
		public Dictionary<int,RaceInfo>.Enumerator GetEnumerator()
		{
			return m_races.GetEnumerator();
		}

		/// <summary>
		/// Copies one <see cref="XmlConfig"/> derived class into another.
		/// </summary>
		/// <param name="cfg">The <see cref="XmlConfig"/> derived class to copy from.</param>
		public override void Assign(XmlConfig cfg)
		{
			base.Assign(cfg);

			RaceConfig rcfg;
			if ((rcfg = cfg as RaceConfig) != null)
			{
				this.Races = rcfg.Races;
			}
		}
	}
}