public frmEncounterGroupEditor(List <IZone> Zones, FOGAMEParser GameParser, EncounterGroupParser GroupParser, DialogListParser DialogParser, MSGParser FOObj, MSGParser FODLG, DefineParser DefineParser) { this.Zones = Zones; this.FODLG = FODLG; this.DefineParser = DefineParser; this.GameParser = GameParser; this.GroupParser = GroupParser; this.DialogParser = DialogParser; InitializeComponent(); LoadCrTypeDefines(); LoadArmorProtos(Config.PathArmorProtos, Config.PathHelmetProtos, FOObj); foreach (ArmorProto ItProt in ArmorProtos) { AddArmorProtoToCmb(ItProt, cmbArmorPid); } foreach (ArmorProto ItProt in HelmetProtos) { AddArmorProtoToCmb(ItProt, cmbHelmetPid); } cmbArmorPid.SelectedIndex = 0; cmbHelmetPid.SelectedIndex = 0; this.frmFilter = new frmFilter(this.DefineParser, null); }
public bool LoadZones(EncounterGroupParser GroupParser) { if (Config.ScriptingEnabled) { if (Scripting.Host.ScriptHost.load_zones(FileName)) { return(true); } } Utils.Log("Loading zones from " + FileName + "..."); Zones = WMFormat.LoadZones(FileName, GroupParser); return(Zones != null && Zones.Count != 0); }
private List <EncounterZoneGroup> ParseGroups(String[] Groups, EncounterGroupParser GroupParser, string Pos) { List <EncounterZoneGroup> Grps = new List <EncounterZoneGroup>(); if (Groups.Length > 1 || Groups[0] != "") { foreach (string i in Groups) { if (i.Length < 5 || i.Substring(0, 5) != "GROUP") { Message.Show("Invalid group " + i + " at " + Pos + ".", MessageBoxButtons.OK, MessageBoxIcon.Error); } String[] toks = i.Split(':'); EncounterZoneGroup group = new EncounterZoneGroup(toks[0], Int32.Parse(toks[1]), GroupParser.GetGroupByName(toks[0])); Grps.Add(group); } } return(Grps); }
public List <IZone> LoadZones(string FileName, EncounterGroupParser GroupParser) { if (!File.Exists(FileName)) { Message.Show("Couldn't open " + FileName, MessageBoxButtons.OK, MessageBoxIcon.Error); return(null); } //try // { List <IZone> Zones = new List <IZone>(); List <string> lines = new List <string>(File.ReadAllLines(FileName)); if (lines.Count == 0) { Message.Show("Worldmap file is empty.", MessageBoxButtons.OK, MessageBoxIcon.Error); return(null); } string version; if (!WorldMapUtils.VerifyFormat(lines[0], FileName, "2238", out version)) { return(null); } foreach (string line in lines) { if (line.Length == 0 || (line.Contains("Format") && line.Contains("Version"))) { continue; } List <EncounterZoneLocation> AddLocations = new List <EncounterZoneLocation>(); List <EncounterZoneGroup> AddGroups = new List <EncounterZoneGroup>(); List <String> AddFlags = new List <String>(); String[] SplittedLine = line.Split('|'); String[] Coords = SplittedLine[0].Split(','); String[] Parameters = SplittedLine[1].Split(','); Zone zone = new Zone(Int32.Parse(Coords[0]), Int32.Parse(Coords[1])); zone.Difficulty = Int32.Parse(Parameters[0]); zone.Terrain = Parameters[1]; zone.Fill = Parameters[2]; zone.Chance = Parameters[3]; if (SplittedLine.Length > 2) { if (SplittedLine[2].Length > 2) { zone.EncounterLocations = ParseLocations(SplittedLine[2].Split(','), SplittedLine[0]); } } if (SplittedLine.Length > 3) { if (SplittedLine[3].Length > 2) { zone.EncounterGroups = ParseGroups(SplittedLine[3].Split(','), GroupParser, SplittedLine[0]); } } if (SplittedLine.Length > 4) { zone.Flags = ParseFlags(SplittedLine[4].Split(','), SplittedLine[0]); } Zones.Add(zone); } return(Zones); }