public MapViewer8a(GameManagerPLA rom, GFPack resident) { ROM = rom; Resident = resident; var bin_settings = resident.GetDataFullPath("bin/field/resident/AreaSettings.bin"); Settings = FlatBufferConverter.DeserializeFrom <AreaSettingsTable8a>(bin_settings); InitializeComponent(); Areas = ResidentAreaSet.AreaNames.Select(z => AreaInstance8a.Create(Resident, z, Settings)).ToArray(); var speciesNames = ROM.GetStrings(TextName.SpeciesNames); CB_Map.Items.AddRange(Areas.Select(z => z.ParentArea?.AreaName ?? z.AreaName).ToArray()); var pt = rom.Data.PersonalData; var nameList = new List <ComboItem>(); foreach (var e in pt.Table.OfType <PersonalInfoLA>()) { if (!e.IsPresentInGame) { continue; } var species = e.Species; if (nameList.All(z => z.Value != species)) { nameList.Add(new(speciesNames[species], species)); } } nameList.Insert(0, new("(Any)", -1)); nameList.Sort((x, y) => string.Compare(x.Text, y.Text, StringComparison.InvariantCulture)); CB_Species.DisplayMember = nameof(ComboItem.Text); CB_Species.ValueMember = nameof(ComboItem.Value); CB_Species.DataSource = new BindingSource(nameList, null); CB_Species.SelectedValue = 399; Loading = false; CB_Map.SelectedIndex = 0; }
public static IEnumerable <byte[]> GetEncounterDump(AreaInstance8a area, IReadOnlyDictionary <string, (string Name, int Index)> map, PokeMiscTable8a misc,