public static void Init() { if (!File.Exists(Config.PathItemPid)) { Message.Show("Can't find ITEMPID.H", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Error, true); Environment.Exit(0); return; } DefineParser defineParser = new DefineParser(); if (!defineParser.ReadDefines(Config.PathItemPid)) { Utils.HandleParseError(defineParser.Error, Config.PathItemPid); return; } foreach (KeyValuePair <string, int> kvp in defineParser.Defines) { Items.Add(new Item(kvp.Value, kvp.Key)); } Utils.Log("Found " + Items.Count + " PIDs in ITEMPID.H"); IsInitialized = true; }
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); }
private void LoadCrTypeDefines() { if (!File.Exists(Config.PathScriptsDir + "_basetypes.fos")) { return; } DefineParser CrTypeParser = new DefineParser(); if (!CrTypeParser.ReadDefines(Config.PathScriptsDir + "_basetypes.fos")) { Utils.HandleParseError(CrTypeParser.Error, Config.PathScriptsDir + "_basetypes.fos"); } CrTypeDefines = CrTypeParser.Defines; }
public frmFilter(DefineParser DefineParser, Filtering Filter) { InitializeComponent(); this.Filter = Filter; if (Filter == null) { this.Filter = new Filtering(); } this.DefineParser = DefineParser; List <Item> items = ItemPid.GetItems(); foreach (Item item in items) { cmbItem.Items.Add(item.Define); } cmbPerk.Items.AddRange(DefineParser.GetDefinesByPrefix("PE_").Keys.ToArray <String>()); cmbItem.Sorted = true; cmbPerk.Sorted = true; }
private void bwMaps_DoWork(object sender, DoWorkEventArgs e) { DefineParser WorldMapHeaderData = new DefineParser(); if (!WorldMapHeaderData.ReadDefines(@Config.PathWorldmapHeader)) { Utils.HandleParseError(WorldMapHeaderData.Error, @Config.PathWorldmapHeader); } worldmap = new WorldMap(Config.PathWorldMap, Config.PathWorldMapCompiled, new WorldMapFormat(WorldMapHeaderData)); worldmap.Parse(); //worldmap = new WorldMap("worldmap_sdk.fowm", "worldmap_sdk.focwm", new SDKWorldMapFormat(WorldMapHeaderData)); bwMaps.ReportProgress(52); this.BeginInvoke((MethodInvoker) delegate { pctWorldMap.Refresh(); locationEditorToolStripMenuItem.Enabled = true; mapdataEditorToolStripMenuItem.Enabled = true; }); Utils.Log("Loaded maps and location data."); bwMaps.ReportProgress(100); }
public static bool LoadDefines(Config Cfg) { ClearLists(); DefineParser defines = new DefineParser(); string CurrentLine = ""; string CurrentFile = ""; if (!defines.ReadDefines(@Cfg.PathDefines)) { Message.Show("Can't find " + Cfg.PathDefines, MessageBoxButtons.OK, MessageBoxIcon.Error, true); return(false); } try { Defines = defines.Defines; ItemPid.Add("", 0); // none WeaponPerks.Add("", 0); CurrentFile = "_defines.fos"; // Read stuff from parsed defines from _defines.fos foreach (KeyValuePair <string, int> kvp in Defines) { CurrentLine = kvp.Key; if (kvp.Key.StartsWith("ITEM_TYPE_")) { ItemTypes.Add((Cfg.StripPrefix ? kvp.Key.Remove(0, 10) : kvp.Key), kvp.Value); } if (kvp.Key.StartsWith("CALIBER_")) { Calibers.Add((Cfg.StripPrefix ? kvp.Key.Remove(0, 8) : kvp.Key), kvp.Value); } if (kvp.Key.StartsWith("WEAPON_PERK_")) { WeaponPerks.Add((Cfg.StripPrefix ? kvp.Key.Remove(0, 12) : kvp.Key), kvp.Value); } if (kvp.Key.StartsWith("DAMAGE_")) { DamageTypes.Add((Cfg.StripPrefix ? kvp.Key.Remove(0, 7) : kvp.Key), kvp.Value); } } if (!File.Exists(Cfg.PathDataFolder + Path.DirectorySeparatorChar + "DefineNames.lst")) { Message.Show("Can't find DefinesNames.lst", MessageBoxButtons.OK, MessageBoxIcon.Error, true); return(false); } List <String> Lines = new List <String>(File.ReadAllLines(Cfg.PathDataFolder + Path.DirectorySeparatorChar + "DefineNames.lst", Encoding.UTF8)); bool PAnim1 = false; bool PAnim2 = false; bool PSkills = false; int BaseNum = 0; char[] Sep = { ' ', '\t' }; CurrentFile = "DefineNames.lst"; foreach (String Line in Lines) { CurrentLine = Line; if (Line.Length == 0 || Line[0] == '#') { continue; } if (Line[0] == '*') { PAnim1 = false; PAnim2 = false; PSkills = false; BaseNum = Int32.Parse(Line.Remove(0, 1)); } if (Line.Length < 6) { continue; } string[] Parts = Line.Split(Sep, StringSplitOptions.RemoveEmptyEntries); if (PAnim1) { Anim1.Add(Parts[1], BaseNum + Int32.Parse(Parts[0])); } if (PAnim2) { Anim2.Add(Parts[1], BaseNum + Int32.Parse(Parts[0])); } if (PSkills) { Skills.Add(Parts[1], BaseNum + Int32.Parse(Parts[0])); } if (Line.Contains("---ANIM1---")) { PAnim1 = true; } else if (Line.Contains("---ANIM2---")) { PAnim2 = true; } else if (Line.Contains("---SKILLS---")) { PSkills = true; } } if (!File.Exists(Cfg.PathDataFolder + Path.DirectorySeparatorChar + "ItemNames.lst")) { Message.Show("Can't find ItemNames.lst", MessageBoxButtons.OK, MessageBoxIcon.Error, true); return(false); } CurrentFile = "ItemNames.lst"; Lines = new List <String>(File.ReadAllLines(Cfg.PathDataFolder + Path.DirectorySeparatorChar + "ItemNames.lst", Encoding.UTF8)); foreach (String Line in Lines) { CurrentLine = Line; if (Line.Length < 4) { continue; } string[] Parts = Line.Split(Sep, StringSplitOptions.RemoveEmptyEntries); if (ItemPid.ContainsKey(Parts[1])) { ItemPid[Parts[1]] = Int32.Parse(Parts[0]); } else { ItemPid.Add(Parts[1], Int32.Parse(Parts[0])); } } } catch (IndexOutOfRangeException) { Message.Show("Error while parsing line '" + CurrentLine + "' in " + CurrentFile, MessageBoxButtons.OK, MessageBoxIcon.Error, true); } return(true); }
public WorldMapFormat(DefineParser WorldMapHeaderDefines) { this.Defines = WorldMapHeaderDefines; }