public static UnitInfo[] FromStringList(string[] src, ModInfo mod) { var result = new List<UnitInfo>(); for (int i = 0; i < src.Length; ++i) { UnitInfo u; if (mod.GetUnitInfo(src[i], out u)) result.Add(u); } return result.ToArray(); }
public Battle(string password, int port, int maxplayers, int rank, MapInfo map, string title, ModInfo mod, BattleDetails details) { if (!String.IsNullOrEmpty(password)) this.Password = password; else this.Password = "******"; if (port == 0) this.HostPort = 8452; else this.HostPort = port; this.MaxPlayers = maxplayers; this.Rank = rank; this.Map = map; this.Title = title; this.Mod = mod; if (details != null) this.Details = details; else details = new BattleDetails(); details.Validate(); }
public Battle(string password, int port, int maxplayers, int rank, MapInfo map, string title, ModInfo mod, BattleDetails details) { if (!String.IsNullOrEmpty(password)) Password = password; else Password = "******"; if (port == 0) HostPort = 8452; else HostPort = port; MaxPlayers = maxplayers; Rank = rank; Map = map; Title = title; Mod = mod; if (details != null) Details = details; else details = new BattleDetails(); }
/// <summary> /// Gets mod list - does not make full reinit by default /// </summary> /// <returns></returns> private void LoadModList() { string opath = Directory.GetCurrentDirectory(); Directory.SetCurrentDirectory(path); int modCount = GetPrimaryModCount(); modList.Clear(); for (int i = 0; i < modCount; ++i) { var mi = new ModInfo(this, GetPrimaryModName(i), i); modList[mi.Name] = mi; } }
internal void LoadModInfo(ModInfo mi) { Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture; string opath = Directory.GetCurrentDirectory(); Directory.SetCurrentDirectory(path); //ReInit(true); //GetPrimaryModCount(); if (mi.Name != GetPrimaryModName(mi.ModId)) throw new Exception("Mod " + mi.Name + " modified without reload"); //uint result = 0; mi.ArchiveName = GetPrimaryModArchive(mi.ModId); mi.Checksum = (int)GetPrimaryModChecksum(mi.ModId); AddAllArchives(mi.ArchiveName); mi.Sides = new String[GetSideCount()]; for (int x = 0; x < mi.Sides.Length; ++x) mi.Sides[x] = GetSideName(x); // weirdest stuff of all... while (ProcessUnitsNoChecksum() != 0) {} ; mi.Units = new UnitInfo[GetUnitCount()]; for (int x = 0; x < mi.Units.Length; ++x) mi.Units[x] = new UnitInfo(GetUnitName(x), GetFullUnitName(x)); int opts = GetModOptionCount(); for (int x = 0; x < opts; x++) { var o = new Option(x); mi.Options.Add(o); } Directory.SetCurrentDirectory(opath); }
internal void LoadModInfo(ModInfo mi) { string opath = Directory.GetCurrentDirectory(); Directory.SetCurrentDirectory(path); int i = mi.ModId; ReInit(true); GetPrimaryModCount(); if (mi.Name != GetPrimaryModName(i)) throw new Exception("Mod " + mi.Name + " modified without reload"); //uint result = 0; mi.ArchiveName = GetPrimaryModArchive(i); /* int acount = GetPrimaryModArchiveCount(i); for (int x = 0; x < acount; ++x) { result += GetArchiveChecksum(GetPrimaryModArchiveList(x)); } mi.Checksum = (int)result;*/ mi.Checksum = GetPrimaryModChecksum(mi.ModId); AddAllArchives(mi.ArchiveName); mi.Sides = new String[GetSideCount()]; for (int x = 0; x < mi.Sides.Length; ++x) { mi.Sides[x] = GetSideName(x); } // weirdest stuff of all... while (ProcessUnitsNoChecksum() != 0) { }; mi.Units = new UnitInfo[GetUnitCount()]; for (int x = 0; x < mi.Units.Length; ++x) { mi.Units[x] = new UnitInfo(GetUnitName(x), GetFullUnitName(x)); } Directory.SetCurrentDirectory(opath); }
public void OpenBattle(string password, int port, int maxplayers, int rank, MapInfo map, string title, ModInfo mod, BattleDetails details) { OpenBattle(new Battle(password, port, maxplayers, rank, map, title, mod, details)); }