Exemplo n.º 1
0
        public Tanks(string tanksDescriptor)
        {
            tanks = new Dictionary<string, Tank>();
            sortedTanks = new List<Tank>();
            nations = new List<string>();

            XmlDocument XD = new XmlDocument();
            XD.Load(tanksDescriptor);
            XmlNode XN = XD.DocumentElement;
            XmlNodeList XNL = XN.SelectNodes("/tanks/tank");

            for (int i = 0; i < XNL.Count; i++) {
                TankType type;
                switch (XNL.Item(i).SelectSingleNode("type").InnerText) {
                    case "Heavy":
                        type = TankType.Heavy;
                        break;
                    case "Medium":
                        type = TankType.Medium;
                        break;
                    case "Light":
                        type = TankType.Light;
                        break;
                    case "TD":
                        type = TankType.TD;
                        break;
                    case "SPG":
                        type = TankType.SPG;
                        break;
                    default:
                        type = TankType.Heavy;
                        break;
                }
                Tank tank = new Tank(
                    XNL.Item(i).Attributes["id"].InnerText,
                    XNL.Item(i).SelectSingleNode("nation").InnerText,
                    XNL.Item(i).SelectSingleNode("name").InnerText,
                    type,
                    System.IO.Path.GetDirectoryName(tanksDescriptor) + "\\" + XNL.Item(i).SelectSingleNode("filename").InnerText
                    );
                tanks.Add(tank.id, tank);
                sortedTanks.Add(tank);

                if (!nations.Contains(tank.nation)) {
                    nations.Add(tank.nation);
                }
            }

            sortedTanks.Sort(tankSorter);
        }
Exemplo n.º 2
0
 private static int tankSorter(Tank a, Tank b)
 {
     if (a == null && b == null) {
         return 0;
     } else if (a == null) {
         return -1;
     } else if (b == null) {
         return 1;
     } else {
         return String.Compare(a.name, b.name);
     }
 }