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; } }