public bool Parse() { if (!File.Exists(_filename)) return false; List<Faction> factions = _gameParser.GetFactions(); List<string> fogmNames = _gmParser.GetGroupGameNames(); Dictionary<int, string> protoNames = _fodlgParser.GetData(); foreach (KeyValuePair<int, string> kvp in protoNames) { if (kvp.Key % 2 == 1) continue; CritterProto critterProto = new CritterProto((kvp.Key / 10)); critterProto.Name = kvp.Value; _crProtos.Add(critterProto); } foreach (EncounterGroup grp in _groups) { grp.NpcCount = grp.Npcs.Count; grp.GMName = fogmNames[grp.Id]; foreach (Faction f in factions) if (grp.FactionId == f.Id) grp.FactionName = f.Name; } _IsParsed = true; return true; }
private void frmEncounterGroupEditor_Paint(object sender, PaintEventArgs e) { if (IsFirstPaint) { cmbGroupPosition.SelectedIndex = 0; numDialog.Maximum = Int32.MaxValue; numProto.Maximum = Int32.MaxValue; Groups = GroupParser.GetGroups(); foreach (FOCommon.Worldmap.EncounterGroup.EncounterGroup Grp in Groups) CalculateGroupZoneStats(Grp); List<Item> items = ItemPid.GetItems(); foreach(Item item in items) cmbItemPid.Items.Add(item.Define); cmbItemPid.Sorted = true; if (TableSerializer.Exists("lstGroups")) lstGroups.RestoreState(TableSerializer.Load("lstGroups")); if (TableSerializer.Exists("lstNpcs")) lstNpcs.RestoreState(TableSerializer.Load("lstNpcs")); if (TableSerializer.Exists("lstNpcItems")) lstNpcItems.RestoreState(TableSerializer.Load("lstNpcItems")); Factions = GameParser.GetFactions(); ProtoNames = FODLG.GetData(); foreach(KeyValuePair<int, string> kvp in ProtoNames) { if (kvp.Key%2==1) continue; CritterProto CrP = new CritterProto((kvp.Key / 10)); CrP.Name = kvp.Value; CrProtos.Add(CrP); } foreach (FOCommon.Worldmap.EncounterGroup.EncounterGroup grp in Groups) foreach (Faction f in Factions) if (grp.FactionId == f.Id) grp.FactionName = f.Name; lstGroups.SetObjects(Groups); cmbPerkDefine.Items.AddRange(DefineParser.GetDefinesByPrefix("PE_").Keys.ToArray<String>()); IsFirstPaint = false; } }