Handle resident gfpak as gfpak

This commit is contained in:
Kurt
2022-02-19 15:09:55 -08:00
parent 007def6f96
commit 5ff4d8d2ca
5 changed files with 28 additions and 25 deletions

View File

@@ -221,7 +221,7 @@ internal void SaveAll()
new(GameFile.EncounterGift, ContainerType.SingleFile, "bin", "pokemon", "data", "poke_add.bin"),
new(GameFile.Learnsets, ContainerType.SingleFile, "bin", "pml", "waza_oboe", "waza_oboe_total.wazaoboe"),
new(GameFile.Resident, ContainerType.SingleFile, "bin", "archive", "field", "resident_release.gfpak"),
new(GameFile.Resident, ContainerType.GFPack, "bin", "archive", "field", "resident_release.gfpak"),
new(GameFile.EncounterRateTable, ContainerType.SingleFile, "bin", "pokemon", "data", "poke_encount.bin"),
new(GameFile.PokeMisc, ContainerType.SingleFile, "bin", "pokemon", "data", "poke_misc.bin"),

View File

@@ -373,8 +373,7 @@ public void DumpWilds()
var miscdata = ROM.GetFile(GameFile.PokeMisc)[0];
var misc = FlatBufferConverter.DeserializeFrom<PokeMiscTable8a>(miscdata);
var residentpak = ROM.GetFile(GameFile.Resident)[0];
var resident = new GFPack(residentpak);
var resident = (GFPack)ROM.GetFile(GameFile.Resident);
var bin_settings = resident.GetDataFullPath("bin/field/resident/AreaSettings.bin");
var settings = FlatBufferConverter.DeserializeFrom<AreaSettingsTable8a>(bin_settings);
@@ -465,8 +464,7 @@ public void DumpWilds()
public void DumpResident()
{
var residentpak = ROM.GetFile(GameFile.Resident)[0];
var resident = new GFPack(residentpak);
var resident = (GFPack)ROM.GetFile(GameFile.Resident);
var bin_settings = resident.GetDataFullPath("bin/field/resident/AreaSettings.bin");
var settings = FlatBufferConverter.DeserializeFrom<AreaSettingsTable8a>(bin_settings);
var dir = GetPath("Resident");
@@ -504,8 +502,7 @@ public void DumpResident()
public void DumpPlacement()
{
var residentpak = ROM.GetFile(GameFile.Resident)[0];
var resident = new GFPack(residentpak);
var resident = (GFPack)ROM.GetFile(GameFile.Resident);
var bin_settings = resident.GetDataFullPath("bin/field/resident/AreaSettings.bin");
var settings = FlatBufferConverter.DeserializeFrom<AreaSettingsTable8a>(bin_settings);

View File

@@ -123,15 +123,13 @@ public void EditApp_Config_List()
public void EditArea_Weather()
{
var res = ROM.GetFile(GameFile.Resident);
var gfp = new GFPack(res[0]);
var gfp = (GFPack)ROM.GetFile(GameFile.Resident);
var data = gfp[2065];
var obj = FlatBufferConverter.DeserializeFrom<AreaWeatherTable8a>(data);
var result = PopFlat(obj.Table, "Area Weather Editor", z => z.Hash.ToString("X16"));
if (!result)
return;
gfp[2065] = FlatBufferConverter.SerializeFrom(obj);
res[0] = gfp.Write();
}
public void EditStatic()
@@ -240,8 +238,7 @@ public void EditMiscSpeciesInfo()
public void EditSpawns()
{
var residentpak = ROM.GetFile(GameFile.Resident)[0];
var resident = new GFPack(residentpak);
var resident = (GFPack)ROM.GetFile(GameFile.Resident);
using var form = new MapViewer8a((GameManagerPLA)ROM, resident);
form.ShowDialog();
}

View File

@@ -31,10 +31,10 @@ private void InitializeComponent()
this.CB_Area = new System.Windows.Forms.ComboBox();
this.TC_Editor = new System.Windows.Forms.TabControl();
this.Tab_Encounters = new System.Windows.Forms.TabPage();
this.Edit_Encounters = new pkNX.WinForms.Controls.EncounterTableEditor8a();
this.Tab_Regular = new System.Windows.Forms.TabPage();
this.Tab_Wormhole = new System.Windows.Forms.TabPage();
this.Tab_Landmarks = new System.Windows.Forms.TabPage();
this.Edit_Encounters = new pkNX.WinForms.Controls.EncounterTableEditor8a();
this.Tab_Randomize = new System.Windows.Forms.TabPage();
this.B_Save = new System.Windows.Forms.Button();
this.TC_Editor.SuspendLayout();
@@ -76,6 +76,14 @@ private void InitializeComponent()
this.Tab_Encounters.Text = "Encounters";
this.Tab_Encounters.UseVisualStyleBackColor = true;
//
// Edit_Encounters
//
this.Edit_Encounters.Dock = System.Windows.Forms.DockStyle.Fill;
this.Edit_Encounters.Location = new System.Drawing.Point(3, 3);
this.Edit_Encounters.Name = "Edit_Encounters";
this.Edit_Encounters.Size = new System.Drawing.Size(671, 449);
this.Edit_Encounters.TabIndex = 0;
//
// Tab_Regular
//
this.Tab_Regular.Location = new System.Drawing.Point(4, 22);
@@ -104,14 +112,6 @@ private void InitializeComponent()
this.Tab_Landmarks.Text = "*Landmarks";
this.Tab_Landmarks.UseVisualStyleBackColor = true;
//
// Edit_Encounters
//
this.Edit_Encounters.Dock = System.Windows.Forms.DockStyle.Fill;
this.Edit_Encounters.Location = new System.Drawing.Point(3, 3);
this.Edit_Encounters.Name = "Edit_Encounters";
this.Edit_Encounters.Size = new System.Drawing.Size(671, 449);
this.Edit_Encounters.TabIndex = 0;
//
// Tab_Randomize
//
this.Tab_Randomize.Location = new System.Drawing.Point(4, 22);
@@ -142,6 +142,7 @@ private void InitializeComponent()
this.Controls.Add(this.CB_Area);
this.Name = "AreaEditor8a";
this.Text = "Area Editor";
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.AreaEditor8a_FormClosing);
this.TC_Editor.ResumeLayout(false);
this.Tab_Encounters.ResumeLayout(false);
this.ResumeLayout(false);

View File

@@ -24,8 +24,7 @@ public AreaEditor8a(GameManagerPLA rom)
{
ROM = rom;
var residentpak = ROM.GetFile(GameFile.Resident)[0];
Resident = new GFPack(residentpak);
Resident = (GFPack)ROM.GetFile(GameFile.Resident);
var bin_settings = Resident.GetDataFullPath("bin/field/resident/AreaSettings.bin");
Settings = FlatBufferConverter.DeserializeFrom<AreaSettingsTable8a>(bin_settings);
@@ -74,8 +73,17 @@ private void SaveArea()
private void B_Save_Click(object sender, EventArgs e)
{
SaveArea();
ROM.GetFile(GameFile.Resident)[0] = Resident.Write();
Save = true;
Close();
}
private bool Save;
private void AreaEditor8a_FormClosing(object sender, FormClosingEventArgs e)
{
if (Save)
SaveArea();
else
Resident.CancelEdits();
}
}