Fixed Event Editor map lookup when testing warps

This commit is contained in:
AdAstra-LD
2024-12-19 22:58:54 +01:00
parent 9e4f6a4f38
commit dc2a099b4b

View File

@@ -992,19 +992,6 @@ namespace DSPRE {
return;
}
// Creating a dictionary linking events to headers to fetch header data for Event Editor
if (PatchToolboxDialog.flag_DynamicHeadersPatchApplied || PatchToolboxDialog.CheckFilesDynamicHeadersPatchApplied()) {
for (ushort i = 0; i < internalNames.Count; i++) {
MapHeader h = MapHeader.LoadFromFile(RomInfo.gameDirs[DirNames.dynamicHeaders].unpackedDir + "\\" + i.ToString("D4"), i, 0);
eventToHeader[h.eventFileID] = i;
}
} else {
for (ushort i = 0; i < internalNames.Count; i++) {
MapHeader h = MapHeader.LoadFromARM9(i);
eventToHeader[h.eventFileID] = i;
}
}
/*Add list of options to each control */
currentTextArchive = new TextArchive(RomInfo.locationNamesTextNumber);
@@ -5470,6 +5457,19 @@ namespace DSPRE {
eventMatrixUpDown.Maximum = romInfo.GetMatrixCount() - 1;
eventAreaDataUpDown.Maximum = romInfo.GetAreaDataCount() - 1;
// Creating a dictionary linking events to headers to fetch header data for Event Editor
if (PatchToolboxDialog.flag_DynamicHeadersPatchApplied || PatchToolboxDialog.CheckFilesDynamicHeadersPatchApplied()) {
for (ushort i = 0; i < internalNames.Count; i++) {
MapHeader h = MapHeader.LoadFromFile(RomInfo.gameDirs[DirNames.dynamicHeaders].unpackedDir + "\\" + i.ToString("D4"), i, 0);
eventToHeader[h.eventFileID] = i;
}
} else {
for (ushort i = 0; i < internalNames.Count; i++) {
MapHeader h = MapHeader.LoadFromARM9(i);
eventToHeader[h.eventFileID] = i;
}
}
Helpers.EnableHandlers();
selectEventComboBox.SelectedIndex = 0;
@@ -5680,10 +5680,15 @@ namespace DSPRE {
if (Helpers.HandlersDisabled) {
return;
}
Helpers.DisableHandlers();
ChangeLoadedEventFile(selectEventComboBox.SelectedIndex, 0);
}
private void ChangeLoadedEventFile(int evfile, ushort mapHeader) {
Helpers.DisableHandlers();
/* Load events data into EventFile class instance */
currentEvFile = new EventFile(selectEventComboBox.SelectedIndex);
currentEvFile = new EventFile(evfile);
/* Update ListBoxes */
FillSpawnablesBox();
@@ -5691,7 +5696,7 @@ namespace DSPRE {
FillTriggersBox();
FillWarpsBox();
if (eventToHeader.TryGetValue((ushort)selectEventComboBox.SelectedIndex, out ushort mapHeader)) {
if (mapHeader > 0 || eventToHeader.TryGetValue((ushort)selectEventComboBox.SelectedIndex, out mapHeader)) {
MapHeader h;
if (PatchToolboxDialog.flag_DynamicHeadersPatchApplied || PatchToolboxDialog.CheckFilesDynamicHeadersPatchApplied()) {
h = MapHeader.LoadFromFile(RomInfo.gameDirs[DirNames.dynamicHeaders].unpackedDir + "\\" + mapHeader.ToString("D4"), mapHeader, 0);
@@ -5716,6 +5721,7 @@ namespace DSPRE {
CenterEventViewOnEntities();
}
private void showEventsCheckBoxes_CheckedChanged(object sender, EventArgs e) {
if (Helpers.HandlersDisabled) {
return;
@@ -6583,20 +6589,26 @@ namespace DSPRE {
if (new EventFile(destHeader.eventFileID).warps.Count < destAnchor + 1) {
DialogResult d = MessageBox.Show("The selected warp's destination anchor doesn't exist.\n" +
"Do you want to open the destination map anyway?", "Warp is not connected", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
if (d == DialogResult.No)
return;
else {
if (d == DialogResult.Yes) {
eventMatrixUpDown.Value = destHeader.matrixID;
eventAreaDataUpDown.Value = destHeader.areaDataID;
Helpers.DisableHandlers();
selectEventComboBox.SelectedIndex = destHeader.eventFileID;
ChangeLoadedEventFile(destHeader.eventFileID, destHeaderID);
CenterEventViewOnEntities();
return;
}
return;
}
eventMatrixUpDown.Value = destHeader.matrixID;
eventAreaDataUpDown.Value = destHeader.areaDataID;
Helpers.DisableHandlers();
selectEventComboBox.SelectedIndex = destHeader.eventFileID;
ChangeLoadedEventFile(destHeader.eventFileID, destHeaderID);
warpsListBox.SelectedIndex = destAnchor;
centerEventViewOnSelectedEvent_Click(sender, e);