public AreaEditor8a(GameManagerPLA rom) { ROM = rom; Resident = (GFPack)ROM.GetFile(GameFile.Resident); var bin_settings = Resident.GetDataFullPath("bin/field/resident/AreaSettings.bin"); Settings = FlatBufferConverter.DeserializeFrom <AreaSettingsTable8a>(bin_settings); AreaNames = Settings.Table.Select(z => z.Name).ToArray(); const string startingArea = "ha_area01"; (AreaIndex, Area) = LoadAreaByName(startingArea); InitializeComponent(); PG_RandSettings.SelectedObject = EditUtil.Settings.Species; Loading = true; CB_Area.Items.AddRange(AreaNames); CB_Area.SelectedIndex = AreaIndex; LoadArea(); Loading = false; }
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; }