Example #1
0
    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;
    }
Example #2
0
        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;
        }