Added Trainer Encounter music to Trainer Editor

+ Refactor and conversion of gameFamily and gameVersion to Enum formats
This commit is contained in:
AdAstra-LD
2021-07-30 19:32:13 +02:00
parent ec325eb8a7
commit 88ca73bac5
13 changed files with 711 additions and 557 deletions

View File

@@ -34,7 +34,7 @@ namespace DSPRE {
buildingOpenGLControl.MouseWheel += new MouseEventHandler(buildingOpenGLControl_MouseWheel);
Gl.glEnable(Gl.GL_TEXTURE_2D);
if (RomInfo.gameFamily == "HGSS")
if (RomInfo.gameFamily == gFamEnum.HGSS)
interiorCheckBox.Enabled = true;
disableHandlers = true;

View File

@@ -21,13 +21,14 @@ namespace DSPRE {
public const string backupSuffix = ".backup";
public static void WriteToFile(string filepath, byte[] bytesToWrite, uint writeAt = 0, int readFrom = 0, bool fromScratch = false) {
if (fromScratch)
public static void WriteToFile(string filepath, byte[] toOutput, uint writeAt = 0, int indexFirstByteToWrite = 0, int? indexLastByteToWrite = null, bool fromScratch = false) {
if (fromScratch) {
File.Delete(filepath);
}
using (BinaryWriter writer = new BinaryWriter(File.OpenWrite(filepath))) {
writer.BaseStream.Position = writeAt;
writer.Write(bytesToWrite, readFrom, bytesToWrite.Length - readFrom);
writer.Write(toOutput, indexFirstByteToWrite, indexLastByteToWrite is null ? toOutput.Length - indexFirstByteToWrite : (int)indexLastByteToWrite);
}
}
public static byte[] ReadFromFile(string filepath, long startOffset = 0, long numberOfBytes = 0) {
@@ -226,11 +227,17 @@ namespace DSPRE {
repack.WaitForExit();
}
public static byte[] ReadFromArm9(uint startOffset, long numberOfBytes = 0) {
public static byte[] ReadBytesFromArm9(uint startOffset, long numberOfBytes = 0) {
return ReadFromFile(RomInfo.arm9Path, startOffset, numberOfBytes);
}
public static void WriteToArm9(byte[] bytesToWrite, uint writeAt = 0, int readFrom = 0) {
WriteToFile(RomInfo.arm9Path, bytesToWrite, writeAt, readFrom);
public static void WriteBytesToArm9(byte[] bytesToWrite, uint destOffset, int indexFirstByteToWrite = 0, int? indexLastByteToWrite = null) {
WriteToFile(RomInfo.arm9Path, bytesToWrite, destOffset, indexFirstByteToWrite, indexLastByteToWrite);
}
public static byte ReadByteFromArm9(uint startOffset) {
return ReadFromFile(RomInfo.arm9Path, startOffset, 1)[0];
}
public static void WriteByteToArm9(byte value, uint destOffset) {
WriteToFile(RomInfo.arm9Path, BitConverter.GetBytes(value), destOffset, 0);
}
public static byte[] StringToByteArray(String hex) {

View File

@@ -30,23 +30,23 @@
{
this.components = new System.ComponentModel.Container();
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainProgram));
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle3 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle4 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle5 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle6 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle7 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle8 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle9 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle10 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle11 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle12 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle13 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle14 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle15 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle16 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle17 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle18 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle19 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle20 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle21 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle22 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle23 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle24 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle25 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle26 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle27 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle28 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle29 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle30 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle31 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle32 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle33 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle34 = new System.Windows.Forms.DataGridViewCellStyle();
this.mainTabControl = new System.Windows.Forms.TabControl();
this.headerEditorTabPage = new System.Windows.Forms.TabPage();
this.removeLastHeaderBTN = new System.Windows.Forms.Button();
@@ -674,6 +674,9 @@
this.partyPokemon1ComboBox = new System.Windows.Forms.ComboBox();
this.trainerSaveCurrentButton = new System.Windows.Forms.Button();
this.groupBox27 = new System.Windows.Forms.GroupBox();
this.encounterSSEQNupDown = new System.Windows.Forms.NumericUpDown();
this.label67 = new System.Windows.Forms.Label();
this.encounterSSEQDupDown = new System.Windows.Forms.NumericUpDown();
this.trainerClassFrameMaxLabel = new System.Windows.Forms.Label();
this.label40 = new System.Windows.Forms.Label();
this.trClassFramePreviewUpDown = new System.Windows.Forms.NumericUpDown();
@@ -966,6 +969,8 @@
((System.ComponentModel.ISupportInitialize)(this.partyBall1UpDown)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.partyPokemon1PictureBox)).BeginInit();
this.groupBox27.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.encounterSSEQNupDown)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.encounterSSEQDupDown)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.trClassFramePreviewUpDown)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.trClassVSAnimationUpDown)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.trClassBattleSSEQUpDown)).BeginInit();
@@ -2624,46 +2629,46 @@
this.headersGridView.AllowUserToDeleteRows = false;
this.headersGridView.AllowUserToResizeColumns = false;
this.headersGridView.AllowUserToResizeRows = false;
dataGridViewCellStyle1.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
this.headersGridView.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle1;
dataGridViewCellStyle18.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
this.headersGridView.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle18;
this.headersGridView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.headersGridView.CellBorderStyle = System.Windows.Forms.DataGridViewCellBorderStyle.None;
dataGridViewCellStyle2.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
dataGridViewCellStyle2.BackColor = System.Drawing.SystemColors.Control;
dataGridViewCellStyle2.Font = new System.Drawing.Font("Microsoft Sans Serif", 7F);
dataGridViewCellStyle2.ForeColor = System.Drawing.SystemColors.WindowText;
dataGridViewCellStyle2.SelectionBackColor = System.Drawing.SystemColors.Highlight;
dataGridViewCellStyle2.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
dataGridViewCellStyle2.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
this.headersGridView.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle2;
dataGridViewCellStyle19.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
dataGridViewCellStyle19.BackColor = System.Drawing.SystemColors.Control;
dataGridViewCellStyle19.Font = new System.Drawing.Font("Microsoft Sans Serif", 7F);
dataGridViewCellStyle19.ForeColor = System.Drawing.SystemColors.WindowText;
dataGridViewCellStyle19.SelectionBackColor = System.Drawing.SystemColors.Highlight;
dataGridViewCellStyle19.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
dataGridViewCellStyle19.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
this.headersGridView.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle19;
this.headersGridView.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
dataGridViewCellStyle3.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
dataGridViewCellStyle3.BackColor = System.Drawing.SystemColors.Window;
dataGridViewCellStyle3.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
dataGridViewCellStyle3.ForeColor = System.Drawing.SystemColors.ControlText;
dataGridViewCellStyle3.Format = "D4";
dataGridViewCellStyle3.SelectionBackColor = System.Drawing.SystemColors.Highlight;
dataGridViewCellStyle3.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
dataGridViewCellStyle3.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
this.headersGridView.DefaultCellStyle = dataGridViewCellStyle3;
dataGridViewCellStyle20.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
dataGridViewCellStyle20.BackColor = System.Drawing.SystemColors.Window;
dataGridViewCellStyle20.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
dataGridViewCellStyle20.ForeColor = System.Drawing.SystemColors.ControlText;
dataGridViewCellStyle20.Format = "D4";
dataGridViewCellStyle20.SelectionBackColor = System.Drawing.SystemColors.Highlight;
dataGridViewCellStyle20.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
dataGridViewCellStyle20.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
this.headersGridView.DefaultCellStyle = dataGridViewCellStyle20;
this.headersGridView.Location = new System.Drawing.Point(0, 0);
this.headersGridView.MultiSelect = false;
this.headersGridView.Name = "headersGridView";
dataGridViewCellStyle4.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
dataGridViewCellStyle4.BackColor = System.Drawing.SystemColors.Control;
dataGridViewCellStyle4.Font = new System.Drawing.Font("Microsoft Sans Serif", 7F);
dataGridViewCellStyle4.ForeColor = System.Drawing.SystemColors.WindowText;
dataGridViewCellStyle4.SelectionBackColor = System.Drawing.SystemColors.Highlight;
dataGridViewCellStyle4.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
dataGridViewCellStyle4.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
this.headersGridView.RowHeadersDefaultCellStyle = dataGridViewCellStyle4;
dataGridViewCellStyle21.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
dataGridViewCellStyle21.BackColor = System.Drawing.SystemColors.Control;
dataGridViewCellStyle21.Font = new System.Drawing.Font("Microsoft Sans Serif", 7F);
dataGridViewCellStyle21.ForeColor = System.Drawing.SystemColors.WindowText;
dataGridViewCellStyle21.SelectionBackColor = System.Drawing.SystemColors.Highlight;
dataGridViewCellStyle21.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
dataGridViewCellStyle21.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
this.headersGridView.RowHeadersDefaultCellStyle = dataGridViewCellStyle21;
this.headersGridView.RowHeadersWidth = 50;
this.headersGridView.RowHeadersWidthSizeMode = System.Windows.Forms.DataGridViewRowHeadersWidthSizeMode.DisableResizing;
dataGridViewCellStyle5.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
dataGridViewCellStyle5.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.headersGridView.RowsDefaultCellStyle = dataGridViewCellStyle5;
dataGridViewCellStyle22.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
dataGridViewCellStyle22.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.headersGridView.RowsDefaultCellStyle = dataGridViewCellStyle22;
this.headersGridView.RowTemplate.DefaultCellStyle.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
this.headersGridView.RowTemplate.Height = 18;
this.headersGridView.RowTemplate.Resizable = System.Windows.Forms.DataGridViewTriState.False;
@@ -2692,46 +2697,46 @@
this.heightsGridView.AllowUserToDeleteRows = false;
this.heightsGridView.AllowUserToResizeColumns = false;
this.heightsGridView.AllowUserToResizeRows = false;
dataGridViewCellStyle6.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
this.heightsGridView.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle6;
dataGridViewCellStyle23.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
this.heightsGridView.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle23;
this.heightsGridView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.heightsGridView.CellBorderStyle = System.Windows.Forms.DataGridViewCellBorderStyle.None;
dataGridViewCellStyle7.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
dataGridViewCellStyle7.BackColor = System.Drawing.SystemColors.Control;
dataGridViewCellStyle7.Font = new System.Drawing.Font("Microsoft Sans Serif", 7F);
dataGridViewCellStyle7.ForeColor = System.Drawing.SystemColors.WindowText;
dataGridViewCellStyle7.SelectionBackColor = System.Drawing.SystemColors.Highlight;
dataGridViewCellStyle7.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
dataGridViewCellStyle7.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
this.heightsGridView.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle7;
dataGridViewCellStyle24.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
dataGridViewCellStyle24.BackColor = System.Drawing.SystemColors.Control;
dataGridViewCellStyle24.Font = new System.Drawing.Font("Microsoft Sans Serif", 7F);
dataGridViewCellStyle24.ForeColor = System.Drawing.SystemColors.WindowText;
dataGridViewCellStyle24.SelectionBackColor = System.Drawing.SystemColors.Highlight;
dataGridViewCellStyle24.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
dataGridViewCellStyle24.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
this.heightsGridView.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle24;
this.heightsGridView.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
dataGridViewCellStyle8.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
dataGridViewCellStyle8.BackColor = System.Drawing.SystemColors.Window;
dataGridViewCellStyle8.Font = new System.Drawing.Font("Tahoma", 8.25F);
dataGridViewCellStyle8.ForeColor = System.Drawing.SystemColors.ControlText;
dataGridViewCellStyle8.Format = "D2";
dataGridViewCellStyle8.SelectionBackColor = System.Drawing.SystemColors.Highlight;
dataGridViewCellStyle8.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
dataGridViewCellStyle8.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
this.heightsGridView.DefaultCellStyle = dataGridViewCellStyle8;
dataGridViewCellStyle25.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
dataGridViewCellStyle25.BackColor = System.Drawing.SystemColors.Window;
dataGridViewCellStyle25.Font = new System.Drawing.Font("Tahoma", 8.25F);
dataGridViewCellStyle25.ForeColor = System.Drawing.SystemColors.ControlText;
dataGridViewCellStyle25.Format = "D2";
dataGridViewCellStyle25.SelectionBackColor = System.Drawing.SystemColors.Highlight;
dataGridViewCellStyle25.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
dataGridViewCellStyle25.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
this.heightsGridView.DefaultCellStyle = dataGridViewCellStyle25;
this.heightsGridView.Location = new System.Drawing.Point(0, 0);
this.heightsGridView.MultiSelect = false;
this.heightsGridView.Name = "heightsGridView";
dataGridViewCellStyle9.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
dataGridViewCellStyle9.BackColor = System.Drawing.SystemColors.Control;
dataGridViewCellStyle9.Font = new System.Drawing.Font("Microsoft Sans Serif", 7F);
dataGridViewCellStyle9.ForeColor = System.Drawing.SystemColors.WindowText;
dataGridViewCellStyle9.SelectionBackColor = System.Drawing.SystemColors.Highlight;
dataGridViewCellStyle9.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
dataGridViewCellStyle9.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
this.heightsGridView.RowHeadersDefaultCellStyle = dataGridViewCellStyle9;
dataGridViewCellStyle26.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
dataGridViewCellStyle26.BackColor = System.Drawing.SystemColors.Control;
dataGridViewCellStyle26.Font = new System.Drawing.Font("Microsoft Sans Serif", 7F);
dataGridViewCellStyle26.ForeColor = System.Drawing.SystemColors.WindowText;
dataGridViewCellStyle26.SelectionBackColor = System.Drawing.SystemColors.Highlight;
dataGridViewCellStyle26.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
dataGridViewCellStyle26.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
this.heightsGridView.RowHeadersDefaultCellStyle = dataGridViewCellStyle26;
this.heightsGridView.RowHeadersWidth = 50;
this.heightsGridView.RowHeadersWidthSizeMode = System.Windows.Forms.DataGridViewRowHeadersWidthSizeMode.DisableResizing;
dataGridViewCellStyle10.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
dataGridViewCellStyle10.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.heightsGridView.RowsDefaultCellStyle = dataGridViewCellStyle10;
dataGridViewCellStyle27.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
dataGridViewCellStyle27.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.heightsGridView.RowsDefaultCellStyle = dataGridViewCellStyle27;
this.heightsGridView.RowTemplate.DefaultCellStyle.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
this.heightsGridView.RowTemplate.Height = 18;
this.heightsGridView.RowTemplate.Resizable = System.Windows.Forms.DataGridViewTriState.False;
@@ -2758,46 +2763,46 @@
this.mapFilesGridView.AllowUserToDeleteRows = false;
this.mapFilesGridView.AllowUserToResizeColumns = false;
this.mapFilesGridView.AllowUserToResizeRows = false;
dataGridViewCellStyle11.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
this.mapFilesGridView.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle11;
dataGridViewCellStyle28.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
this.mapFilesGridView.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle28;
this.mapFilesGridView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.mapFilesGridView.CellBorderStyle = System.Windows.Forms.DataGridViewCellBorderStyle.None;
dataGridViewCellStyle12.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
dataGridViewCellStyle12.BackColor = System.Drawing.SystemColors.Control;
dataGridViewCellStyle12.Font = new System.Drawing.Font("Microsoft Sans Serif", 7F);
dataGridViewCellStyle12.ForeColor = System.Drawing.SystemColors.WindowText;
dataGridViewCellStyle12.SelectionBackColor = System.Drawing.SystemColors.Highlight;
dataGridViewCellStyle12.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
dataGridViewCellStyle12.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
this.mapFilesGridView.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle12;
dataGridViewCellStyle29.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
dataGridViewCellStyle29.BackColor = System.Drawing.SystemColors.Control;
dataGridViewCellStyle29.Font = new System.Drawing.Font("Microsoft Sans Serif", 7F);
dataGridViewCellStyle29.ForeColor = System.Drawing.SystemColors.WindowText;
dataGridViewCellStyle29.SelectionBackColor = System.Drawing.SystemColors.Highlight;
dataGridViewCellStyle29.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
dataGridViewCellStyle29.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
this.mapFilesGridView.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle29;
this.mapFilesGridView.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
dataGridViewCellStyle13.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
dataGridViewCellStyle13.BackColor = System.Drawing.SystemColors.Window;
dataGridViewCellStyle13.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
dataGridViewCellStyle13.ForeColor = System.Drawing.SystemColors.ControlText;
dataGridViewCellStyle13.Format = "D4";
dataGridViewCellStyle13.SelectionBackColor = System.Drawing.SystemColors.Highlight;
dataGridViewCellStyle13.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
dataGridViewCellStyle13.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
this.mapFilesGridView.DefaultCellStyle = dataGridViewCellStyle13;
dataGridViewCellStyle30.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
dataGridViewCellStyle30.BackColor = System.Drawing.SystemColors.Window;
dataGridViewCellStyle30.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
dataGridViewCellStyle30.ForeColor = System.Drawing.SystemColors.ControlText;
dataGridViewCellStyle30.Format = "D4";
dataGridViewCellStyle30.SelectionBackColor = System.Drawing.SystemColors.Highlight;
dataGridViewCellStyle30.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
dataGridViewCellStyle30.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
this.mapFilesGridView.DefaultCellStyle = dataGridViewCellStyle30;
this.mapFilesGridView.Location = new System.Drawing.Point(0, 0);
this.mapFilesGridView.MultiSelect = false;
this.mapFilesGridView.Name = "mapFilesGridView";
dataGridViewCellStyle14.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
dataGridViewCellStyle14.BackColor = System.Drawing.SystemColors.Control;
dataGridViewCellStyle14.Font = new System.Drawing.Font("Microsoft Sans Serif", 7F);
dataGridViewCellStyle14.ForeColor = System.Drawing.SystemColors.WindowText;
dataGridViewCellStyle14.SelectionBackColor = System.Drawing.SystemColors.Highlight;
dataGridViewCellStyle14.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
dataGridViewCellStyle14.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
this.mapFilesGridView.RowHeadersDefaultCellStyle = dataGridViewCellStyle14;
dataGridViewCellStyle31.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
dataGridViewCellStyle31.BackColor = System.Drawing.SystemColors.Control;
dataGridViewCellStyle31.Font = new System.Drawing.Font("Microsoft Sans Serif", 7F);
dataGridViewCellStyle31.ForeColor = System.Drawing.SystemColors.WindowText;
dataGridViewCellStyle31.SelectionBackColor = System.Drawing.SystemColors.Highlight;
dataGridViewCellStyle31.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
dataGridViewCellStyle31.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
this.mapFilesGridView.RowHeadersDefaultCellStyle = dataGridViewCellStyle31;
this.mapFilesGridView.RowHeadersWidth = 50;
this.mapFilesGridView.RowHeadersWidthSizeMode = System.Windows.Forms.DataGridViewRowHeadersWidthSizeMode.DisableResizing;
dataGridViewCellStyle15.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
dataGridViewCellStyle15.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.mapFilesGridView.RowsDefaultCellStyle = dataGridViewCellStyle15;
dataGridViewCellStyle32.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
dataGridViewCellStyle32.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.mapFilesGridView.RowsDefaultCellStyle = dataGridViewCellStyle32;
this.mapFilesGridView.RowTemplate.DefaultCellStyle.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
this.mapFilesGridView.RowTemplate.Height = 18;
this.mapFilesGridView.RowTemplate.Resizable = System.Windows.Forms.DataGridViewTriState.False;
@@ -7267,8 +7272,8 @@
this.textEditorDataGridView.Location = new System.Drawing.Point(12, 77);
this.textEditorDataGridView.Name = "textEditorDataGridView";
this.textEditorDataGridView.RowHeadersWidth = 68;
dataGridViewCellStyle16.Font = new System.Drawing.Font("Consolas", 11.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.textEditorDataGridView.RowsDefaultCellStyle = dataGridViewCellStyle16;
dataGridViewCellStyle33.Font = new System.Drawing.Font("Consolas", 11.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.textEditorDataGridView.RowsDefaultCellStyle = dataGridViewCellStyle33;
this.textEditorDataGridView.Size = new System.Drawing.Size(873, 496);
this.textEditorDataGridView.TabIndex = 24;
this.textEditorDataGridView.CellValueChanged += new System.Windows.Forms.DataGridViewCellEventHandler(this.textEditorDataGridView_CellValueChanged);
@@ -7427,14 +7432,14 @@
this.cameraEditorDataGridView.CausesValidation = false;
this.cameraEditorDataGridView.CellBorderStyle = System.Windows.Forms.DataGridViewCellBorderStyle.Raised;
this.cameraEditorDataGridView.ColumnHeadersBorderStyle = System.Windows.Forms.DataGridViewHeaderBorderStyle.Single;
dataGridViewCellStyle17.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
dataGridViewCellStyle17.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
dataGridViewCellStyle17.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
dataGridViewCellStyle17.ForeColor = System.Drawing.SystemColors.Info;
dataGridViewCellStyle17.SelectionBackColor = System.Drawing.SystemColors.Highlight;
dataGridViewCellStyle17.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
dataGridViewCellStyle17.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
this.cameraEditorDataGridView.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle17;
dataGridViewCellStyle34.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
dataGridViewCellStyle34.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
dataGridViewCellStyle34.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
dataGridViewCellStyle34.ForeColor = System.Drawing.SystemColors.Info;
dataGridViewCellStyle34.SelectionBackColor = System.Drawing.SystemColors.Highlight;
dataGridViewCellStyle34.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
dataGridViewCellStyle34.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
this.cameraEditorDataGridView.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle34;
this.cameraEditorDataGridView.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.cameraEditorDataGridView.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
this.DistanceGVCol,
@@ -8689,6 +8694,9 @@
//
// groupBox27
//
this.groupBox27.Controls.Add(this.encounterSSEQNupDown);
this.groupBox27.Controls.Add(this.label67);
this.groupBox27.Controls.Add(this.encounterSSEQDupDown);
this.groupBox27.Controls.Add(this.trainerClassFrameMaxLabel);
this.groupBox27.Controls.Add(this.label40);
this.groupBox27.Controls.Add(this.trClassFramePreviewUpDown);
@@ -8702,11 +8710,45 @@
this.groupBox27.Controls.Add(this.trainerClassPicBox);
this.groupBox27.Location = new System.Drawing.Point(26, 486);
this.groupBox27.Name = "groupBox27";
this.groupBox27.Size = new System.Drawing.Size(387, 123);
this.groupBox27.Size = new System.Drawing.Size(401, 123);
this.groupBox27.TabIndex = 30;
this.groupBox27.TabStop = false;
this.groupBox27.Text = "Trainer Class";
//
// encounterSSEQNupDown
//
this.encounterSSEQNupDown.Enabled = false;
this.encounterSSEQNupDown.Location = new System.Drawing.Point(199, 85);
this.encounterSSEQNupDown.Maximum = new decimal(new int[] {
65535,
0,
0,
0});
this.encounterSSEQNupDown.Name = "encounterSSEQNupDown";
this.encounterSSEQNupDown.Size = new System.Drawing.Size(49, 20);
this.encounterSSEQNupDown.TabIndex = 35;
//
// label67
//
this.label67.AutoSize = true;
this.label67.Location = new System.Drawing.Point(149, 69);
this.label67.Name = "label67";
this.label67.Size = new System.Drawing.Size(93, 13);
this.label67.TabIndex = 34;
this.label67.Text = "Encounter SSEQs";
//
// encounterSSEQDupDown
//
this.encounterSSEQDupDown.Location = new System.Drawing.Point(146, 85);
this.encounterSSEQDupDown.Maximum = new decimal(new int[] {
65535,
0,
0,
0});
this.encounterSSEQDupDown.Name = "encounterSSEQDupDown";
this.encounterSSEQDupDown.Size = new System.Drawing.Size(49, 20);
this.encounterSSEQDupDown.TabIndex = 33;
//
// trainerClassFrameMaxLabel
//
this.trainerClassFrameMaxLabel.AutoSize = true;
@@ -8721,9 +8763,9 @@
this.label40.AutoSize = true;
this.label40.Location = new System.Drawing.Point(143, 14);
this.label40.Name = "label40";
this.label40.Size = new System.Drawing.Size(77, 13);
this.label40.Size = new System.Drawing.Size(45, 13);
this.label40.TabIndex = 31;
this.label40.Text = "Frame Preview";
this.label40.Text = "Preview";
//
// trClassFramePreviewUpDown
//
@@ -8737,7 +8779,7 @@
//
this.saveTrainerClassButton.Image = global::DSPRE.Properties.Resources.save_rom;
this.saveTrainerClassButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight;
this.saveTrainerClassButton.Location = new System.Drawing.Point(301, 66);
this.saveTrainerClassButton.Location = new System.Drawing.Point(320, 14);
this.saveTrainerClassButton.Name = "saveTrainerClassButton";
this.saveTrainerClassButton.Size = new System.Drawing.Size(75, 45);
this.saveTrainerClassButton.TabIndex = 29;
@@ -8750,7 +8792,7 @@
//
this.label22.AutoSize = true;
this.label22.Enabled = false;
this.label22.Location = new System.Drawing.Point(219, 68);
this.label22.Location = new System.Drawing.Point(326, 69);
this.label22.Name = "label22";
this.label22.Size = new System.Drawing.Size(70, 13);
this.label22.TabIndex = 28;
@@ -8759,7 +8801,7 @@
// trClassVSAnimationUpDown
//
this.trClassVSAnimationUpDown.Enabled = false;
this.trClassVSAnimationUpDown.Location = new System.Drawing.Point(223, 84);
this.trClassVSAnimationUpDown.Location = new System.Drawing.Point(332, 85);
this.trClassVSAnimationUpDown.Name = "trClassVSAnimationUpDown";
this.trClassVSAnimationUpDown.Size = new System.Drawing.Size(54, 20);
this.trClassVSAnimationUpDown.TabIndex = 27;
@@ -8768,7 +8810,7 @@
//
this.label21.AutoSize = true;
this.label21.Enabled = false;
this.label21.Location = new System.Drawing.Point(143, 68);
this.label21.Location = new System.Drawing.Point(258, 69);
this.label21.Name = "label21";
this.label21.Size = new System.Drawing.Size(66, 13);
this.label21.TabIndex = 26;
@@ -8777,22 +8819,27 @@
// trClassBattleSSEQUpDown
//
this.trClassBattleSSEQUpDown.Enabled = false;
this.trClassBattleSSEQUpDown.Location = new System.Drawing.Point(146, 84);
this.trClassBattleSSEQUpDown.Location = new System.Drawing.Point(263, 85);
this.trClassBattleSSEQUpDown.Maximum = new decimal(new int[] {
65535,
0,
0,
0});
this.trClassBattleSSEQUpDown.Name = "trClassBattleSSEQUpDown";
this.trClassBattleSSEQUpDown.Size = new System.Drawing.Size(54, 20);
this.trClassBattleSSEQUpDown.TabIndex = 25;
//
// trainerClassNameTextbox
//
this.trainerClassNameTextbox.Location = new System.Drawing.Point(225, 29);
this.trainerClassNameTextbox.Location = new System.Drawing.Point(213, 29);
this.trainerClassNameTextbox.Name = "trainerClassNameTextbox";
this.trainerClassNameTextbox.Size = new System.Drawing.Size(152, 20);
this.trainerClassNameTextbox.Size = new System.Drawing.Size(95, 20);
this.trainerClassNameTextbox.TabIndex = 24;
//
// label17
//
this.label17.AutoSize = true;
this.label17.Location = new System.Drawing.Point(222, 13);
this.label17.Location = new System.Drawing.Point(210, 13);
this.label17.Name = "label17";
this.label17.Size = new System.Drawing.Size(63, 13);
this.label17.TabIndex = 23;
@@ -8820,7 +8867,7 @@
this.groupBox25.Controls.Add(this.trainerClassListBox);
this.groupBox25.Location = new System.Drawing.Point(26, 75);
this.groupBox25.Name = "groupBox25";
this.groupBox25.Size = new System.Drawing.Size(387, 405);
this.groupBox25.Size = new System.Drawing.Size(401, 405);
this.groupBox25.TabIndex = 29;
this.groupBox25.TabStop = false;
this.groupBox25.Text = "Trainer Properties";
@@ -8840,7 +8887,7 @@
this.TrainerAIGroupBox.Controls.Add(this.trainerAI1CheckBox);
this.TrainerAIGroupBox.Location = new System.Drawing.Point(9, 282);
this.TrainerAIGroupBox.Name = "TrainerAIGroupBox";
this.TrainerAIGroupBox.Size = new System.Drawing.Size(365, 116);
this.TrainerAIGroupBox.Size = new System.Drawing.Size(384, 116);
this.TrainerAIGroupBox.TabIndex = 27;
this.TrainerAIGroupBox.TabStop = false;
this.TrainerAIGroupBox.Text = "AI";
@@ -8848,7 +8895,7 @@
// trainerAI11CheckBox
//
this.trainerAI11CheckBox.AutoSize = true;
this.trainerAI11CheckBox.Location = new System.Drawing.Point(266, 67);
this.trainerAI11CheckBox.Location = new System.Drawing.Point(271, 67);
this.trainerAI11CheckBox.Name = "trainerAI11CheckBox";
this.trainerAI11CheckBox.Size = new System.Drawing.Size(44, 17);
this.trainerAI11CheckBox.TabIndex = 10;
@@ -8859,7 +8906,7 @@
// trainerAI10CheckBox
//
this.trainerAI10CheckBox.AutoSize = true;
this.trainerAI10CheckBox.Location = new System.Drawing.Point(266, 44);
this.trainerAI10CheckBox.Location = new System.Drawing.Point(271, 44);
this.trainerAI10CheckBox.Name = "trainerAI10CheckBox";
this.trainerAI10CheckBox.Size = new System.Drawing.Size(67, 17);
this.trainerAI10CheckBox.TabIndex = 9;
@@ -8870,7 +8917,7 @@
// trainerAI9CheckBox
//
this.trainerAI9CheckBox.AutoSize = true;
this.trainerAI9CheckBox.Location = new System.Drawing.Point(266, 21);
this.trainerAI9CheckBox.Location = new System.Drawing.Point(271, 21);
this.trainerAI9CheckBox.Name = "trainerAI9CheckBox";
this.trainerAI9CheckBox.Size = new System.Drawing.Size(75, 17);
this.trainerAI9CheckBox.TabIndex = 8;
@@ -8881,7 +8928,7 @@
// trainerAI8CheckBox
//
this.trainerAI8CheckBox.AutoSize = true;
this.trainerAI8CheckBox.Location = new System.Drawing.Point(135, 90);
this.trainerAI8CheckBox.Location = new System.Drawing.Point(138, 90);
this.trainerAI8CheckBox.Name = "trainerAI8CheckBox";
this.trainerAI8CheckBox.Size = new System.Drawing.Size(87, 17);
this.trainerAI8CheckBox.TabIndex = 7;
@@ -8892,7 +8939,7 @@
// trainerAI7CheckBox
//
this.trainerAI7CheckBox.AutoSize = true;
this.trainerAI7CheckBox.Location = new System.Drawing.Point(135, 67);
this.trainerAI7CheckBox.Location = new System.Drawing.Point(138, 67);
this.trainerAI7CheckBox.Name = "trainerAI7CheckBox";
this.trainerAI7CheckBox.Size = new System.Drawing.Size(80, 17);
this.trainerAI7CheckBox.TabIndex = 6;
@@ -8903,7 +8950,7 @@
// trainerAI6CheckBox
//
this.trainerAI6CheckBox.AutoSize = true;
this.trainerAI6CheckBox.Location = new System.Drawing.Point(135, 44);
this.trainerAI6CheckBox.Location = new System.Drawing.Point(138, 44);
this.trainerAI6CheckBox.Name = "trainerAI6CheckBox";
this.trainerAI6CheckBox.Size = new System.Drawing.Size(100, 17);
this.trainerAI6CheckBox.TabIndex = 5;
@@ -8914,7 +8961,7 @@
// trainerAI5CheckBox
//
this.trainerAI5CheckBox.AutoSize = true;
this.trainerAI5CheckBox.Location = new System.Drawing.Point(135, 21);
this.trainerAI5CheckBox.Location = new System.Drawing.Point(138, 21);
this.trainerAI5CheckBox.Name = "trainerAI5CheckBox";
this.trainerAI5CheckBox.Size = new System.Drawing.Size(47, 17);
this.trainerAI5CheckBox.TabIndex = 4;
@@ -8972,9 +9019,9 @@
this.trainerItemsGroupBox.Controls.Add(this.trainerItem3ComboBox);
this.trainerItemsGroupBox.Controls.Add(this.trainerItem2ComboBox);
this.trainerItemsGroupBox.Controls.Add(this.trainerItem1ComboBox);
this.trainerItemsGroupBox.Location = new System.Drawing.Point(191, 145);
this.trainerItemsGroupBox.Location = new System.Drawing.Point(202, 145);
this.trainerItemsGroupBox.Name = "trainerItemsGroupBox";
this.trainerItemsGroupBox.Size = new System.Drawing.Size(183, 130);
this.trainerItemsGroupBox.Size = new System.Drawing.Size(190, 130);
this.trainerItemsGroupBox.TabIndex = 26;
this.trainerItemsGroupBox.TabStop = false;
this.trainerItemsGroupBox.Text = "Trainer Items";
@@ -8982,7 +9029,7 @@
// trainerItem4ComboBox
//
this.trainerItem4ComboBox.FormattingEnabled = true;
this.trainerItem4ComboBox.Location = new System.Drawing.Point(16, 101);
this.trainerItem4ComboBox.Location = new System.Drawing.Point(15, 101);
this.trainerItem4ComboBox.Name = "trainerItem4ComboBox";
this.trainerItem4ComboBox.Size = new System.Drawing.Size(159, 21);
this.trainerItem4ComboBox.TabIndex = 3;
@@ -8991,7 +9038,7 @@
// trainerItem3ComboBox
//
this.trainerItem3ComboBox.FormattingEnabled = true;
this.trainerItem3ComboBox.Location = new System.Drawing.Point(16, 47);
this.trainerItem3ComboBox.Location = new System.Drawing.Point(15, 47);
this.trainerItem3ComboBox.Name = "trainerItem3ComboBox";
this.trainerItem3ComboBox.Size = new System.Drawing.Size(159, 21);
this.trainerItem3ComboBox.TabIndex = 2;
@@ -9000,7 +9047,7 @@
// trainerItem2ComboBox
//
this.trainerItem2ComboBox.FormattingEnabled = true;
this.trainerItem2ComboBox.Location = new System.Drawing.Point(16, 74);
this.trainerItem2ComboBox.Location = new System.Drawing.Point(15, 74);
this.trainerItem2ComboBox.Name = "trainerItem2ComboBox";
this.trainerItem2ComboBox.Size = new System.Drawing.Size(159, 21);
this.trainerItem2ComboBox.TabIndex = 1;
@@ -9009,7 +9056,7 @@
// trainerItem1ComboBox
//
this.trainerItem1ComboBox.FormattingEnabled = true;
this.trainerItem1ComboBox.Location = new System.Drawing.Point(16, 20);
this.trainerItem1ComboBox.Location = new System.Drawing.Point(15, 20);
this.trainerItem1ComboBox.Name = "trainerItem1ComboBox";
this.trainerItem1ComboBox.Size = new System.Drawing.Size(159, 21);
this.trainerItem1ComboBox.TabIndex = 0;
@@ -9018,7 +9065,7 @@
// trainerItemsCheckBox
//
this.trainerItemsCheckBox.AutoSize = true;
this.trainerItemsCheckBox.Location = new System.Drawing.Point(197, 119);
this.trainerItemsCheckBox.Location = new System.Drawing.Point(205, 119);
this.trainerItemsCheckBox.Name = "trainerItemsCheckBox";
this.trainerItemsCheckBox.Size = new System.Drawing.Size(117, 17);
this.trainerItemsCheckBox.TabIndex = 25;
@@ -9029,7 +9076,7 @@
// trainerMovesCheckBox
//
this.trainerMovesCheckBox.AutoSize = true;
this.trainerMovesCheckBox.Location = new System.Drawing.Point(197, 98);
this.trainerMovesCheckBox.Location = new System.Drawing.Point(205, 98);
this.trainerMovesCheckBox.Name = "trainerMovesCheckBox";
this.trainerMovesCheckBox.Size = new System.Drawing.Size(97, 17);
this.trainerMovesCheckBox.TabIndex = 24;
@@ -9040,7 +9087,7 @@
// trainerDoubleCheckBox
//
this.trainerDoubleCheckBox.AutoSize = true;
this.trainerDoubleCheckBox.Location = new System.Drawing.Point(197, 76);
this.trainerDoubleCheckBox.Location = new System.Drawing.Point(205, 76);
this.trainerDoubleCheckBox.Name = "trainerDoubleCheckBox";
this.trainerDoubleCheckBox.Size = new System.Drawing.Size(90, 17);
this.trainerDoubleCheckBox.TabIndex = 23;
@@ -9050,7 +9097,7 @@
//
// trainerNameTextBox
//
this.trainerNameTextBox.Location = new System.Drawing.Point(197, 39);
this.trainerNameTextBox.Location = new System.Drawing.Point(205, 39);
this.trainerNameTextBox.Name = "trainerNameTextBox";
this.trainerNameTextBox.Size = new System.Drawing.Size(152, 20);
this.trainerNameTextBox.TabIndex = 22;
@@ -9058,7 +9105,7 @@
// label44
//
this.label44.AutoSize = true;
this.label44.Location = new System.Drawing.Point(194, 23);
this.label44.Location = new System.Drawing.Point(202, 23);
this.label44.Name = "label44";
this.label44.Size = new System.Drawing.Size(71, 13);
this.label44.TabIndex = 21;
@@ -9078,7 +9125,7 @@
this.trainerClassListBox.FormattingEnabled = true;
this.trainerClassListBox.Location = new System.Drawing.Point(13, 39);
this.trainerClassListBox.Name = "trainerClassListBox";
this.trainerClassListBox.Size = new System.Drawing.Size(165, 238);
this.trainerClassListBox.Size = new System.Drawing.Size(181, 238);
this.trainerClassListBox.TabIndex = 0;
this.trainerClassListBox.SelectedIndexChanged += new System.EventHandler(this.trainerClassListBox_SelectedIndexChanged);
//
@@ -9960,6 +10007,8 @@
((System.ComponentModel.ISupportInitialize)(this.partyPokemon1PictureBox)).EndInit();
this.groupBox27.ResumeLayout(false);
this.groupBox27.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.encounterSSEQNupDown)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.encounterSSEQDupDown)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.trClassFramePreviewUpDown)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.trClassVSAnimationUpDown)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.trClassBattleSSEQUpDown)).EndInit();
@@ -10706,6 +10755,9 @@
private System.Windows.Forms.Button HOWconditionalMusicTableButton;
private System.Windows.Forms.Label label66;
private System.Windows.Forms.Button mapScreenshotButton;
private System.Windows.Forms.NumericUpDown encounterSSEQNupDown;
private System.Windows.Forms.Label label67;
private System.Windows.Forms.NumericUpDown encounterSSEQDupDown;
}
}

View File

@@ -8,8 +8,6 @@ using System.IO;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Resources;
using System.Reflection;
using NarcAPI;
using Tao.OpenGl;
using LibNDSFormats.NSBMD;
@@ -20,7 +18,6 @@ using static DSPRE.RomInfo;
using System.Globalization;
using Images;
using Ekona.Images;
using System.Xml.Linq;
using Microsoft.WindowsAPICodePack.Dialogs;
namespace DSPRE {
@@ -46,8 +43,6 @@ namespace DSPRE {
public bool trainerEditorIsReady { get; private set; } = false;
public bool tableEditorIsReady { get; private set; } = false;
public const ushort MAPMODEL_CRITICALSIZE = 61000;
/* ROM Information */
public static string gameCode;
public static byte europeByte;
@@ -449,13 +444,13 @@ namespace DSPRE {
if (forceUnpack) {
DSUtils.ForceUnpackNarcs(toUnpack, toolStripProgressBar);
if (RomInfo.gameFamily == "HGSS") {
if (RomInfo.gameFamily == gFamEnum.HGSS) {
DSUtils.ForceUnpackNarcs(new List<DirNames> { DirNames.interiorBuildingModels }, toolStripProgressBar);// Last = interior buildings dir
}
} else {
DSUtils.TryUnpackNarcs(toUnpack, toolStripProgressBar);
if (RomInfo.gameFamily == "HGSS") {
if (RomInfo.gameFamily == gFamEnum.HGSS) {
DSUtils.TryUnpackNarcs(new List<DirNames> { DirNames.interiorBuildingModels }, toolStripProgressBar);
}
}
@@ -537,13 +532,7 @@ namespace DSPRE {
}
private void CheckROMLanguage() {
if (RomInfo.gameVersion is null) {
statusLabel.Text = "Unsupported ROM";
Update();
return;
}
versionLabel.Text = "Pokémon " + RomInfo.gameName + " [" + RomInfo.romID + "]";
versionLabel.Text = "Pokémon " + RomInfo.gameVersion.ToString() + " [" + RomInfo.romID + "]";
languageLabel.Text = "Language: " + RomInfo.gameLanguage;
if (RomInfo.gameLanguage == "ENG") {
@@ -587,8 +576,8 @@ namespace DSPRE {
private void ReadROMInitData() {
switch (RomInfo.gameFamily) {
case "DP":
case "Plat":
case gFamEnum.DP:
case gFamEnum.Plat:
break;
default:
if (!DSUtils.DecompressArm9()) {
@@ -667,7 +656,7 @@ namespace DSPRE {
//DeleteTempFolders();
DSUtils.RepackROM(saveRom.FileName);
if (RomInfo.gameFamily != "DP" && RomInfo.gameFamily != "Plat") {
if (RomInfo.gameFamily != gFamEnum.DP && RomInfo.gameFamily != gFamEnum.Plat) {
if (eventEditorIsReady) {
if (DSUtils.OverlayIsCompressed(1)) {
DSUtils.DecompressOverlay(1);
@@ -734,13 +723,13 @@ namespace DSPRE {
}
}
private void diamondAndPearlToolStripMenuItem_Click(object sender, EventArgs e) {
OpenCommandsDatabase(RomInfo.BuildCommandNamesDatabase("D"), RomInfo.BuildCommandParametersDatabase("D"));
OpenCommandsDatabase(RomInfo.BuildCommandNamesDatabase(gFamEnum.DP), RomInfo.BuildCommandParametersDatabase(gFamEnum.DP));
}
private void platinumToolStripMenuItem_Click(object sender, EventArgs e) {
OpenCommandsDatabase(RomInfo.BuildCommandNamesDatabase("Plat"), RomInfo.BuildCommandParametersDatabase("Plat"));
OpenCommandsDatabase(RomInfo.BuildCommandNamesDatabase(gFamEnum.Plat), RomInfo.BuildCommandParametersDatabase(gFamEnum.Plat));
}
private void heartGoldAndSoulSilverToolStripMenuItem_Click(object sender, EventArgs e) {
OpenCommandsDatabase(RomInfo.BuildCommandNamesDatabase("HG"), RomInfo.BuildCommandParametersDatabase("HG"));
OpenCommandsDatabase(RomInfo.BuildCommandNamesDatabase(gFamEnum.HGSS), RomInfo.BuildCommandParametersDatabase(gFamEnum.HGSS));
}
private void mainTabControl_SelectedIndexChanged(object sender, EventArgs e) {
if (mainTabControl.SelectedTab == headerEditorTabPage) {
@@ -783,6 +772,7 @@ namespace DSPRE {
} else if (mainTabControl.SelectedTab == trainerEditorTabPage) {
if (!trainerEditorIsReady) {
SetupTrainerEditor();
SetupTrainerClassEncounterMusicTable();
trainerEditorIsReady = true;
}
} else if (mainTabControl.SelectedTab == tableEditorTabPage) {
@@ -832,8 +822,8 @@ namespace DSPRE {
}
switch (RomInfo.gameFamily) {
case "DP":
case "Plat":
case gFamEnum.DP:
case gFamEnum.Plat:
using (WildEditorDPPt editor = new WildEditorDPPt(wildPokeUnpackedPath, romInfo.GetPokémonNames(), encToOpen))
editor.ShowDialog();
break;
@@ -896,7 +886,7 @@ namespace DSPRE {
/*Add list of options to each control */
locationNameComboBox.Items.AddRange(new TextArchive(RomInfo.locationNamesTextNumber).messages.ToArray());
switch (RomInfo.gameFamily) {
case "DP":
case gFamEnum.DP:
areaIconComboBox.Enabled = false;
areaIconPictureBox.Image = (Image)Properties.Resources.ResourceManager.GetObject("dpareaicon");
areaSettingsLabel.Text = "Show nametag:";
@@ -910,7 +900,7 @@ namespace DSPRE {
battleBackgroundLabel.Location = new Point(battleBackgroundLabel.Location.X - 25, battleBackgroundLabel.Location.Y - 8);
battleBackgroundUpDown.Location = new Point(battleBackgroundUpDown.Location.X - 25, battleBackgroundUpDown.Location.Y - 8);
break;
case "Plat":
case gFamEnum.Plat:
areaIconComboBox.Items.AddRange(PokeDatabase.Area.PtAreaIconValues);
areaSettingsLabel.Text = "Show nametag:";
cameraComboBox.Items.AddRange(PokeDatabase.CameraAngles.DPPtCameraDict.Values.ToArray());
@@ -1011,9 +1001,9 @@ namespace DSPRE {
string imageName;
switch (RomInfo.gameFamily) {
case "DP":
case gFamEnum.DP:
break;
case "Plat":
case gFamEnum.Plat:
((HeaderPt)currentHeader).areaIcon = (byte)areaIconComboBox.SelectedIndex;
imageName = "areaicon0" + areaIconComboBox.SelectedIndex.ToString();
areaIconPictureBox.Image = (Image)Properties.Resources.ResourceManager.GetObject(imageName);
@@ -1068,7 +1058,7 @@ namespace DSPRE {
if (flag3CheckBox.Checked)
flagVal += (byte)Math.Pow(2, 3);
if (RomInfo.gameFamily == "HGSS") {
if (RomInfo.gameFamily == gFamEnum.HGSS) {
if (flag4CheckBox.Checked)
flagVal += (byte)Math.Pow(2, 4);
if (flag5CheckBox.Checked)
@@ -1110,7 +1100,7 @@ namespace DSPRE {
cameraUpDown.Value = currentHeader.cameraAngleID;
battleBackgroundUpDown.Value = currentHeader.battleBackground;
if (RomInfo.gameFamily == "HGSS") {
if (RomInfo.gameFamily == gFamEnum.HGSS) {
areaSettingsComboBox.SelectedIndex = ((HeaderHGSS)currentHeader).locationType;
}
@@ -1119,7 +1109,7 @@ namespace DSPRE {
/* Setup controls for fields with version-specific differences */
try {
switch (RomInfo.gameFamily) {
case "DP": {
case gFamEnum.DP: {
HeaderDP h = (HeaderDP)currentHeader;
locationNameComboBox.SelectedIndex = h.locationName;
@@ -1128,7 +1118,7 @@ namespace DSPRE {
areaSettingsComboBox.SelectedIndex = areaSettingsComboBox.FindString("[" + $"{currentHeader.locationSpecifier:D3}");
break;
}
case "Plat": {
case gFamEnum.Plat: {
HeaderPt h = (HeaderPt)currentHeader;
areaIconComboBox.SelectedIndex = h.areaIcon;
@@ -1168,7 +1158,7 @@ namespace DSPRE {
flag2CheckBox.Checked = ba[2];
flag3CheckBox.Checked = ba[3];
if (RomInfo.gameFamily == "HGSS") {
if (RomInfo.gameFamily == gFamEnum.HGSS) {
flag4CheckBox.Checked = ba[4];
flag5CheckBox.Checked = ba[5];
flag6CheckBox.Checked = ba[6];
@@ -1205,10 +1195,10 @@ namespace DSPRE {
return;
switch (RomInfo.gameFamily) {
case "DP":
case gFamEnum.DP:
((HeaderDP)currentHeader).locationName = (ushort)locationNameComboBox.SelectedIndex;
break;
case "Plat":
case gFamEnum.Plat:
((HeaderPt)currentHeader).locationName = (byte)locationNameComboBox.SelectedIndex;
break;
default:
@@ -1225,10 +1215,10 @@ namespace DSPRE {
if (disableHandlers)
return;
switch (RomInfo.gameFamily) {
case "DP":
case gFamEnum.DP:
currentHeader.musicDayID = (ushort)(musicDayUpDown.Value = PokeDatabase.MusicDB.DPMusicDict.Keys.ElementAt(musicDayComboBox.SelectedIndex));
break;
case "Plat":
case gFamEnum.Plat:
currentHeader.musicDayID = (ushort)(musicDayUpDown.Value = PokeDatabase.MusicDB.PtMusicDict.Keys.ElementAt(musicDayComboBox.SelectedIndex));
break;
default:
@@ -1241,10 +1231,10 @@ namespace DSPRE {
return;
switch (RomInfo.gameFamily) {
case "DP":
case gFamEnum.DP:
currentHeader.musicNightID = (ushort)(musicNightUpDown.Value = PokeDatabase.MusicDB.DPMusicDict.Keys.ElementAt(musicNightComboBox.SelectedIndex));
break;
case "Plat":
case gFamEnum.Plat:
currentHeader.musicNightID = (ushort)(musicNightUpDown.Value = PokeDatabase.MusicDB.PtMusicDict.Keys.ElementAt(musicNightComboBox.SelectedIndex));
break;
default:
@@ -1261,10 +1251,10 @@ namespace DSPRE {
currentHeader.musicDayID = updValue;
try {
switch (RomInfo.gameFamily) {
case "DP":
case gFamEnum.DP:
musicDayComboBox.SelectedItem = PokeDatabase.MusicDB.DPMusicDict[updValue];
break;
case "Plat":
case gFamEnum.Plat:
musicDayComboBox.SelectedItem = PokeDatabase.MusicDB.PtMusicDict[updValue];
break;
default:
@@ -1285,10 +1275,10 @@ namespace DSPRE {
currentHeader.musicNightID = updValue;
try {
switch (RomInfo.gameFamily) {
case "DP":
case gFamEnum.DP:
musicNightComboBox.SelectedItem = PokeDatabase.MusicDB.DPMusicDict[updValue];
break;
case "Plat":
case gFamEnum.Plat:
musicNightComboBox.SelectedItem = PokeDatabase.MusicDB.PtMusicDict[updValue];
break;
default:
@@ -1314,10 +1304,10 @@ namespace DSPRE {
disableHandlers = true;
try {
switch (RomInfo.gameFamily) {
case "DP":
case gFamEnum.DP:
weatherComboBox.SelectedItem = PokeDatabase.Weather.DPWeatherDict[currentHeader.weatherID];
break;
case "Plat":
case gFamEnum.Plat:
weatherComboBox.SelectedItem = PokeDatabase.Weather.PtWeatherDict[currentHeader.weatherID];
break;
default:
@@ -1333,10 +1323,10 @@ namespace DSPRE {
try {
Dictionary<byte[], string> dict;
switch (RomInfo.gameFamily) {
case "DP":
case gFamEnum.DP:
dict = PokeDatabase.System.WeatherPics.dpWeatherImageDict;
break;
case "Plat":
case gFamEnum.Plat:
dict = PokeDatabase.System.WeatherPics.ptWeatherImageDict;
break;
default:
@@ -1366,10 +1356,10 @@ namespace DSPRE {
disableHandlers = true;
try {
switch (RomInfo.gameFamily) {
case "DP":
case gFamEnum.DP:
cameraComboBox.SelectedItem = PokeDatabase.CameraAngles.DPPtCameraDict[currentHeader.cameraAngleID];
break;
case "Plat":
case gFamEnum.Plat:
cameraComboBox.SelectedItem = PokeDatabase.CameraAngles.DPPtCameraDict[currentHeader.cameraAngleID];
break;
default:
@@ -1385,11 +1375,11 @@ namespace DSPRE {
string imageName;
try {
switch (RomInfo.gameFamily) {
case "DP":
case gFamEnum.DP:
currentHeader.cameraAngleID = (byte)cameraComboBox.SelectedIndex;
imageName = "dpcamera" + cameraUpDown.Value.ToString();
break;
case "Plat":
case gFamEnum.Plat:
currentHeader.cameraAngleID = (byte)cameraComboBox.SelectedIndex;
imageName = "ptcamera" + cameraUpDown.Value.ToString();
break;
@@ -1409,10 +1399,10 @@ namespace DSPRE {
return;
switch (RomInfo.gameFamily) {
case "DP":
case gFamEnum.DP:
weatherUpDown.Value = PokeDatabase.Weather.DPWeatherDict.Keys.ElementAt(weatherComboBox.SelectedIndex);
break;
case "Plat":
case gFamEnum.Plat:
weatherUpDown.Value = PokeDatabase.Weather.PtWeatherDict.Keys.ElementAt(weatherComboBox.SelectedIndex);
break;
default:
@@ -1430,10 +1420,10 @@ namespace DSPRE {
return;
switch (RomInfo.gameFamily) {
case "DP":
case gFamEnum.DP:
cameraUpDown.Value = PokeDatabase.CameraAngles.DPPtCameraDict.Keys.ElementAt(cameraComboBox.SelectedIndex);
break;
case "Plat":
case gFamEnum.Plat:
cameraUpDown.Value = PokeDatabase.CameraAngles.DPPtCameraDict.Keys.ElementAt(cameraComboBox.SelectedIndex);
break;
default:
@@ -1498,10 +1488,10 @@ namespace DSPRE {
private void saveHeaderButton_Click(object sender, EventArgs e) {
/* Check if dynamic headers patch has been applied, and save header to arm9 or a/0/5/0 accordingly */
if (ROMToolboxDialog.flag_DynamicHeadersPatchApplied || ROMToolboxDialog.CheckFilesDynamicHeadersPatchApplied()) {
DSUtils.WriteToFile(RomInfo.gameDirs[DirNames.dynamicHeaders].unpackedDir + "\\" + currentHeader.ID.ToString("D4"), currentHeader.ToByteArray(), 0, 0, true);
DSUtils.WriteToFile(RomInfo.gameDirs[DirNames.dynamicHeaders].unpackedDir + "\\" + currentHeader.ID.ToString("D4"), currentHeader.ToByteArray(), 0, 0, fromScratch: true);
} else {
uint headerOffset = (uint)(RomInfo.headerTableOffset + MapHeader.length * currentHeader.ID);
DSUtils.WriteToArm9(currentHeader.ToByteArray(), headerOffset);
DSUtils.WriteBytesToArm9(currentHeader.ToByteArray(), headerOffset);
}
disableHandlers = true;
@@ -1558,13 +1548,13 @@ namespace DSPRE {
string locationName = "";
switch (RomInfo.gameFamily) {
case "DP":
case gFamEnum.DP:
locationName = locationNameComboBox.Items[((HeaderDP)h).locationName].ToString();
break;
case "Plat":
case gFamEnum.Plat:
locationName = locationNameComboBox.Items[((HeaderPt)h).locationName].ToString();
break;
case "HGSS":
case gFamEnum.HGSS:
locationName = locationNameComboBox.Items[((HeaderHGSS)h).locationName].ToString();
break;
}
@@ -1597,11 +1587,11 @@ namespace DSPRE {
return;
switch (RomInfo.gameFamily) {
case "DP":
case "Plat":
case gFamEnum.DP:
case gFamEnum.Plat:
currentHeader.locationSpecifier = Byte.Parse(areaSettingsComboBox.SelectedItem.ToString().Substring(1, 3));
break;
case "HGSS":
case gFamEnum.HGSS:
HeaderHGSS ch = (HeaderHGSS)currentHeader;
ch.locationType = (byte)areaSettingsComboBox.SelectedIndex;
//areaImageLabel.Text = "Area icon";
@@ -1656,10 +1646,10 @@ namespace DSPRE {
currentHeader = h;
/* Check if dynamic headers patch has been applied, and save header to arm9 or a/0/5/0 accordingly */
if (ROMToolboxDialog.flag_DynamicHeadersPatchApplied || ROMToolboxDialog.CheckFilesDynamicHeadersPatchApplied()) {
DSUtils.WriteToFile(RomInfo.gameDirs[DirNames.dynamicHeaders].unpackedDir + "\\" + currentHeader.ID.ToString("D4"), currentHeader.ToByteArray(), 0, 0, true);
DSUtils.WriteToFile(RomInfo.gameDirs[DirNames.dynamicHeaders].unpackedDir + "\\" + currentHeader.ID.ToString("D4"), currentHeader.ToByteArray(), 0, 0, fromScratch: true);
} else {
uint headerOffset = (uint)(RomInfo.headerTableOffset + MapHeader.length * currentHeader.ID);
DSUtils.WriteToArm9(currentHeader.ToByteArray(), headerOffset);
DSUtils.WriteBytesToArm9(currentHeader.ToByteArray(), headerOffset);
}
try {
@@ -1864,11 +1854,11 @@ namespace DSPRE {
wildPokeUpDown.Value = encountersIDCopy;
switch (RomInfo.gameFamily) {
case "DP":
case "Plat":
case gFamEnum.DP:
case gFamEnum.Plat:
areaSettingsComboBox.SelectedIndex = shownameCopy;
break;
case "HGSS":
case gFamEnum.HGSS:
areaSettingsComboBox.SelectedIndex = areaSettingsCopy;
break;
}
@@ -2758,7 +2748,7 @@ namespace DSPRE {
DirNames.areaData,
});
if (RomInfo.gameFamily == "HGSS") {
if (RomInfo.gameFamily == gFamEnum.HGSS) {
DSUtils.TryUnpackNarcs(new List<DirNames> { DirNames.interiorBuildingModels }, toolStripProgressBar);
}
@@ -2769,8 +2759,8 @@ namespace DSPRE {
collisionPainterPictureBox.Image = new Bitmap(100, 100);
typePainterPictureBox.Image = new Bitmap(100, 100);
switch (RomInfo.gameFamily) {
case "DP":
case "Plat":
case gFamEnum.DP:
case gFamEnum.Plat:
mapPartsTabControl.TabPages.Remove(bgsTabPage);
break;
default:
@@ -2783,8 +2773,8 @@ namespace DSPRE {
for (int i = 0; i < romInfo.GetMapCount(); i++) {
using (BinaryReader reader = new BinaryReader(File.OpenRead(RomInfo.gameDirs[DirNames.maps].unpackedDir + "\\" + i.ToString("D4")))) {
switch (RomInfo.gameFamily) {
case "DP":
case "Plat":
case gFamEnum.DP:
case gFamEnum.Plat:
reader.BaseStream.Position = 0x10 + reader.ReadUInt32() + reader.ReadUInt32() + 0x34;
break;
default:
@@ -2842,12 +2832,12 @@ namespace DSPRE {
selectMapComboBox.SelectedIndex = 0;
exteriorbldRadioButton.Checked = true;
switch (RomInfo.gameFamily) {
case "DP":
case "Plat":
case gFamEnum.DP:
case gFamEnum.Plat:
mapTextureComboBox.SelectedIndex = 7;
buildTextureComboBox.SelectedIndex = 1;
break;
case "HGSS":
case gFamEnum.HGSS:
mapTextureComboBox.SelectedIndex = 3;
buildTextureComboBox.SelectedIndex = 1;
break;
@@ -3190,7 +3180,7 @@ namespace DSPRE {
ModelSizeTXT.Text = currentMapFile.mapModelData.Length.ToString() + " B";
TerrainSizeTXT.Text = currentMapFile.bdhc.Length.ToString() + " B";
if (RomInfo.gameFamily == "HGSS") {
if (RomInfo.gameFamily == gFamEnum.HGSS) {
BGSSizeTXT.Text = currentMapFile.bgs.Length.ToString() + " B";
}
}
@@ -3964,6 +3954,7 @@ namespace DSPRE {
#endregion
#region 3D Model Editor
public const ushort MAPMODEL_CRITICALSIZE = 61000;
private void importMapButton_Click(object sender, EventArgs e) {
OpenFileDialog im = new OpenFileDialog {
Filter = "NSBMD model (*.nsbmd)|*.nsbmd"
@@ -4014,7 +4005,7 @@ namespace DSPRE {
#region BDHC Editor
private void bdhcImportButton_Click(object sender, EventArgs e) {
OpenFileDialog it = new OpenFileDialog();
if (RomInfo.gameFamily == "DP") {
if (RomInfo.gameFamily == gFamEnum.DP) {
it.Filter = "Terrain File (*.bdhc)|*.bdhc";
} else {
it.Filter = "Terrain File (*.bdhc, *.bdhcam)|*.bdhc;*.bdhcam";
@@ -4263,7 +4254,7 @@ namespace DSPRE {
eventMapFile.mapModel = LoadModelTextures(eventMapFile.mapModel, RomInfo.gameDirs[DirNames.mapTextures].unpackedDir, areaData.mapTileset);
bool isInteriorMap = false;
if ((RomInfo.gameVersion == "HG" || RomInfo.gameVersion == "SS") && areaData.areaType == 0x0)
if ((RomInfo.gameVersion == gVerEnum.HeartGold || RomInfo.gameVersion == gVerEnum.SoulSilver) && areaData.areaType == 0x0)
isInteriorMap = true;
for (int i = 0; i < eventMapFile.buildings.Count; i++) {
@@ -4540,15 +4531,15 @@ namespace DSPRE {
RomInfo.SetOWtable();
RomInfo.Set3DOverworldsDict();
if (RomInfo.gameFamily == "HGSS") {
if (RomInfo.gameFamily == gFamEnum.HGSS) {
DSUtils.TryUnpackNarcs(new List<DirNames> { DirNames.interiorBuildingModels }, toolStripProgressBar);
}
disableHandlers = true;
if (File.Exists(RomInfo.OWtablePath)) {
switch (RomInfo.gameFamily) {
case "DP":
case "Plat":
case gFamEnum.DP:
case gFamEnum.Plat:
break;
default:
// HGSS Overlay 1 must be decompressed in order to read the overworld table
@@ -6243,8 +6234,8 @@ namespace DSPRE {
/* Enable gameVersion-specific controls */
switch (RomInfo.gameFamily) {
case "DP":
case "Plat":
case gFamEnum.DP:
case gFamEnum.Plat:
break;
default:
areaDataDynamicTexturesNumericUpDown.Enabled = true;
@@ -6709,6 +6700,39 @@ namespace DSPRE {
ImageBase tiles;
SpriteBase sprite;
Dictionary<byte, (uint entryOffset, ushort musicD, ushort? musicN)> trainerClassEncounterMusicDict;
private void SetupTrainerClassEncounterMusicTable() {
RomInfo.SetEncounterMusicTableOffsetToRAMAddress();
trainerClassEncounterMusicDict = new Dictionary<byte, (uint entryOffset, ushort musicD, ushort? musicN)>();
uint encounterMusicTableTableStartAddress = BitConverter.ToUInt32(DSUtils.ReadBytesFromArm9(RomInfo.encounterMusicTableOffsetToRAMAddress, 4), 0) - 0x02000000;
uint entrySize = 4;
uint tableSizeOffset = 10;
if (gameFamily == gFamEnum.HGSS) {
entrySize += 2;
tableSizeOffset += 2;
encounterSSEQNupDown.Enabled = true;
}
byte tableEntriesCount = DSUtils.ReadByteFromArm9(RomInfo.encounterMusicTableOffsetToRAMAddress - tableSizeOffset);
for (uint i = 0; i < tableEntriesCount; i++) {
uint entryOffset = encounterMusicTableTableStartAddress + entrySize * i;
byte tclass = DSUtils.ReadByteFromArm9(entryOffset);
ushort musicD = BitConverter.ToUInt16(DSUtils.ReadBytesFromArm9(entryOffset + 2, 2), 0);
ushort? musicN;
if (gameFamily == gFamEnum.HGSS) {
musicN = BitConverter.ToUInt16(DSUtils.ReadBytesFromArm9(entryOffset + 4, 2), 0);
} else {
musicN = null;
}
trainerClassEncounterMusicDict[tclass] = (entryOffset, musicD, musicN);
}
}
private void SetupTrainerEditor() {
/* Extract essential NARCs sub-archives*/
statusLabel.Text = "Setting up Trainer Editor...";
@@ -7230,14 +7254,33 @@ namespace DSPRE {
if (trainerClassListBox.SelectedIndex < 0) {
return;
}
LoadTrainerClassPic();
UpdateTrainerClassPic();
try {
LoadTrainerClassPic();
UpdateTrainerClassPic();
} catch {
trClassFramePreviewUpDown.Maximum = 0;
}
trainerClassNameTextbox.Text = GetTrainerClassNameFromListbox(trainerClassListBox.SelectedItem);
if (disableHandlers) {
return;
}
currentTrainerFile.trp.trainerClass = (byte)trainerClassListBox.SelectedIndex;
(uint entryOffset, ushort musicD, ushort? musicN) output;
if (trainerClassEncounterMusicDict.TryGetValue(currentTrainerFile.trp.trainerClass, out output)) {
encounterSSEQDupDown.Value = output.musicD;
if (gameFamily == gFamEnum.HGSS) {
encounterSSEQNupDown.Value = (ushort)output.musicN;
}
} else {
encounterSSEQDupDown.Value = 0;
encounterSSEQNupDown.Value = 0;
}
}
private void LoadTrainerClassPic() {
@@ -7249,9 +7292,11 @@ namespace DSPRE {
string tilesFilename = tilesFileID.ToString("D4");
tiles = new NCGR(gameDirs[DirNames.trainerGraphics].unpackedDir + "\\" + tilesFilename, tilesFileID, tilesFilename);
int spriteFileID = (trainerClassListBox.SelectedIndex * 5 + 2);
string spriteFilename = spriteFileID.ToString("D4");
sprite = new NCER(gameDirs[DirNames.trainerGraphics].unpackedDir + "\\" + spriteFilename, spriteFileID, spriteFilename);
if (gameFamily == gFamEnum.HGSS) {
int spriteFileID = (trainerClassListBox.SelectedIndex * 5 + 2);
string spriteFilename = spriteFileID.ToString("D4");
sprite = new NCER(gameDirs[DirNames.trainerGraphics].unpackedDir + "\\" + spriteFilename, spriteFileID, spriteFilename);
}
trClassFramePreviewUpDown.Maximum = sprite.Banks.Length - 1;
trainerClassFrameMaxLabel.Text = "/" + trClassFramePreviewUpDown.Maximum;
@@ -7369,6 +7414,7 @@ namespace DSPRE {
string trClass = GetTrainerClassNameFromListbox(trainerClassListBox.SelectedItem);
trainerClassListBox.Items[currentClassID] = "[" + currentClassID + "]" + " " + newName;
DSUtils.WriteBytesToArm9(BitConverter.GetBytes((ushort)encounterSSEQDupDown.Value), trainerClassEncounterMusicDict[(byte)currentClassID].entryOffset, 0);
disableHandlers = false;
trainerClassListBox_SelectedIndexChanged(null, null);
@@ -7384,17 +7430,17 @@ namespace DSPRE {
List<(ushort header, ushort flag, ushort music)> conditionalMusicTable;
uint conditionalMusicTableStartAddress;
private void SetupTableEditor() {
if (RomInfo.gameFamily == "HGSS") {
if (RomInfo.gameFamily == gFamEnum.HGSS) {
RomInfo.SetConditionalMusicTableOffsetToRAMAddress();
conditionalMusicTable = new List<(ushort, ushort, ushort)>();
conditionalMusicTableStartAddress = BitConverter.ToUInt32(DSUtils.ReadFromArm9(RomInfo.conditionalMusicTableOffsetToRAMAddress, 4), 0) - 0x02000000;
byte tableEntriesCount = DSUtils.ReadFromArm9(RomInfo.conditionalMusicTableOffsetToRAMAddress - 8, 1)[0];
conditionalMusicTableStartAddress = BitConverter.ToUInt32(DSUtils.ReadBytesFromArm9(RomInfo.conditionalMusicTableOffsetToRAMAddress, 4), 0) - 0x02000000;
byte tableEntriesCount = DSUtils.ReadByteFromArm9(RomInfo.conditionalMusicTableOffsetToRAMAddress - 8);
for (uint i = 0; i < tableEntriesCount; i++) {
ushort header = BitConverter.ToUInt16(DSUtils.ReadFromArm9(conditionalMusicTableStartAddress + 6 * i, 2), 0);
ushort flag = BitConverter.ToUInt16(DSUtils.ReadFromArm9(conditionalMusicTableStartAddress + 6 * i + 2, 2), 0);
ushort musicID = BitConverter.ToUInt16(DSUtils.ReadFromArm9(conditionalMusicTableStartAddress + 6 * i + 4, 2), 0);
ushort header = BitConverter.ToUInt16(DSUtils.ReadBytesFromArm9(conditionalMusicTableStartAddress + 6 * i, 2), 0);
ushort flag = BitConverter.ToUInt16(DSUtils.ReadBytesFromArm9(conditionalMusicTableStartAddress + 6 * i + 2, 2), 0);
ushort musicID = BitConverter.ToUInt16(DSUtils.ReadBytesFromArm9(conditionalMusicTableStartAddress + 6 * i + 4, 2), 0);
conditionalMusicTable.Add((header, flag, musicID));
conditionalMusicTableListBox.Items.Add(headerListBox.Items[header]);
@@ -7433,13 +7479,13 @@ namespace DSPRE {
MapHeader selected = MapHeader.LoadFromARM9(newTuple.header);
switch (RomInfo.gameFamily) {
case "DP":
case gFamEnum.DP:
locationNameConditionalMusicLBL.Text = RomInfo.GetLocationNames()[(selected as HeaderDP).locationName];
break;
case "Plat":
case gFamEnum.Plat:
locationNameConditionalMusicLBL.Text = RomInfo.GetLocationNames()[(selected as HeaderPt).locationName];
break;
case "HGSS":
case gFamEnum.HGSS:
locationNameConditionalMusicLBL.Text = RomInfo.GetLocationNames()[(selected as HeaderHGSS).locationName];
break;
}
@@ -7467,11 +7513,12 @@ namespace DSPRE {
private void saveConditionalMusicTableBTN_Click(object sender, EventArgs e) {
for (int i = 0; i < conditionalMusicTable.Count; i++) {
DSUtils.WriteToArm9(BitConverter.GetBytes(conditionalMusicTable[i].header), (uint)(conditionalMusicTableStartAddress + 6 * i));
DSUtils.WriteToArm9(BitConverter.GetBytes(conditionalMusicTable[i].flag), (uint)(conditionalMusicTableStartAddress + 6 * i + 2));
DSUtils.WriteToArm9(BitConverter.GetBytes(conditionalMusicTable[i].music), (uint)(conditionalMusicTableStartAddress + 6 * i + 4));
DSUtils.WriteBytesToArm9(BitConverter.GetBytes(conditionalMusicTable[i].header), (uint)(conditionalMusicTableStartAddress + 6 * i));
DSUtils.WriteBytesToArm9(BitConverter.GetBytes(conditionalMusicTable[i].flag), (uint)(conditionalMusicTableStartAddress + 6 * i + 2));
DSUtils.WriteBytesToArm9(BitConverter.GetBytes(conditionalMusicTable[i].music), (uint)(conditionalMusicTableStartAddress + 6 * i + 4));
}
}
#endregion
private void ExclusiveCBInvert(CheckBox cb) {
if (disableHandlers)

View File

@@ -117,6 +117,91 @@
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="mainTabImageList.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>239, 17</value>
</metadata>
<data name="mainTabImageList.ImageStream" mimetype="application/x-microsoft.net.object.binary.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAABy
EQAAAk1TRnQBSQFMAgEBCQEAAXwBFQF8ARUBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
AwABQAMAATADAAEBAQABCAYAAQwYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA
AWYDAAGZAwABzAIAATMDAAIzAgABMwFmAgABMwGZAgABMwHMAgABMwH/AgABZgMAAWYBMwIAAmYCAAFm
AZkCAAFmAcwCAAFmAf8CAAGZAwABmQEzAgABmQFmAgACmQIAAZkBzAIAAZkB/wIAAcwDAAHMATMCAAHM
AWYCAAHMAZkCAALMAgABzAH/AgAB/wFmAgAB/wGZAgAB/wHMAQABMwH/AgAB/wEAATMBAAEzAQABZgEA
ATMBAAGZAQABMwEAAcwBAAEzAQAB/wEAAf8BMwIAAzMBAAIzAWYBAAIzAZkBAAIzAcwBAAIzAf8BAAEz
AWYCAAEzAWYBMwEAATMCZgEAATMBZgGZAQABMwFmAcwBAAEzAWYB/wEAATMBmQIAATMBmQEzAQABMwGZ
AWYBAAEzApkBAAEzAZkBzAEAATMBmQH/AQABMwHMAgABMwHMATMBAAEzAcwBZgEAATMBzAGZAQABMwLM
AQABMwHMAf8BAAEzAf8BMwEAATMB/wFmAQABMwH/AZkBAAEzAf8BzAEAATMC/wEAAWYDAAFmAQABMwEA
AWYBAAFmAQABZgEAAZkBAAFmAQABzAEAAWYBAAH/AQABZgEzAgABZgIzAQABZgEzAWYBAAFmATMBmQEA
AWYBMwHMAQABZgEzAf8BAAJmAgACZgEzAQADZgEAAmYBmQEAAmYBzAEAAWYBmQIAAWYBmQEzAQABZgGZ
AWYBAAFmApkBAAFmAZkBzAEAAWYBmQH/AQABZgHMAgABZgHMATMBAAFmAcwBmQEAAWYCzAEAAWYBzAH/
AQABZgH/AgABZgH/ATMBAAFmAf8BmQEAAWYB/wHMAQABzAEAAf8BAAH/AQABzAEAApkCAAGZATMBmQEA
AZkBAAGZAQABmQEAAcwBAAGZAwABmQIzAQABmQEAAWYBAAGZATMBzAEAAZkBAAH/AQABmQFmAgABmQFm
ATMBAAGZATMBZgEAAZkBZgGZAQABmQFmAcwBAAGZATMB/wEAApkBMwEAApkBZgEAA5kBAAKZAcwBAAKZ
Af8BAAGZAcwCAAGZAcwBMwEAAWYBzAFmAQABmQHMAZkBAAGZAswBAAGZAcwB/wEAAZkB/wIAAZkB/wEz
AQABmQHMAWYBAAGZAf8BmQEAAZkB/wHMAQABmQL/AQABzAMAAZkBAAEzAQABzAEAAWYBAAHMAQABmQEA
AcwBAAHMAQABmQEzAgABzAIzAQABzAEzAWYBAAHMATMBmQEAAcwBMwHMAQABzAEzAf8BAAHMAWYCAAHM
AWYBMwEAAZkCZgEAAcwBZgGZAQABzAFmAcwBAAGZAWYB/wEAAcwBmQIAAcwBmQEzAQABzAGZAWYBAAHM
ApkBAAHMAZkBzAEAAcwBmQH/AQACzAIAAswBMwEAAswBZgEAAswBmQEAA8wBAALMAf8BAAHMAf8CAAHM
Af8BMwEAAZkB/wFmAQABzAH/AZkBAAHMAf8BzAEAAcwC/wEAAcwBAAEzAQAB/wEAAWYBAAH/AQABmQEA
AcwBMwIAAf8CMwEAAf8BMwFmAQAB/wEzAZkBAAH/ATMBzAEAAf8BMwH/AQAB/wFmAgAB/wFmATMBAAHM
AmYBAAH/AWYBmQEAAf8BZgHMAQABzAFmAf8BAAH/AZkCAAH/AZkBMwEAAf8BmQFmAQAB/wKZAQAB/wGZ
AcwBAAH/AZkB/wEAAf8BzAIAAf8BzAEzAQAB/wHMAWYBAAH/AcwBmQEAAf8CzAEAAf8BzAH/AQAC/wEz
AQABzAH/AWYBAAL/AZkBAAL/AcwBAAJmAf8BAAFmAf8BZgEAAWYC/wEAAf8CZgEAAf8BZgH/AQAC/wFm
AQABIQEAAaUBAANfAQADdwEAA4YBAAOWAQADywEAA7IBAAPXAQAD3QEAA+MBAAPqAQAD8QEAA/gBAAHw
AfsB/wEAAaQCoAEAA4ADAAH/AgAB/wMAAv8BAAH/AwAB/wEAAf8BAAL/AgAD/0oABrw5AAEmAR4EAAK8
OAABJgEeAgABJgEeAQABvDsAAbwBJgEePAABJgEeAgABvDUAA7wCAAEmAR4CAAG8NQABzQEKAQABvAEA
ASYBHgEAAewDAAG8MwABzQEKAQACvAEmAR4BAAESArwBAAG8MgABzQEKAwABvAEAASYBHjcAAc0BCgES
AewBAAESAbw5AAHNAQoBEgIAARIBvDgAAc0BCgEAAbwDAAG8OAABzQEKAQABvAMAAewBvDcAAWWHAAHs
ARIB7wUAAfQRAAoSGAAC8wLrAe8B7AHrAfMFAAHqAfQFAALyAfQGAAMSBkoDEhQAAfMB8QG8AuwBBwG8
AQcB7AHrAQcEAAEOARIB7QQAAfABIgEpAesB8wUAARICSgZuAkoBEgMAAQ8HAAEPBQABDwEAAbwB9wHt
AZIB7wG8AQcB8AH0AfIB6wHqBAABDgFtAe0DAAEHASMCKwEqAesB8wMAARIBSgFuAUoGbgFKAW4BSgES
AQABDwnvAQ8DAAHvAgABbQL3AfABvAHzAvIC9AHtAesBBwMAAQcBFQHqA+0BKQErASUBHwElASoB6wH0
AgABEgFKAW4BSgaTAUoBbgFKARICAAHvAQEBHwbvAwAC7wIAAbwB7wHxAfQB9gHyAvAB9AH2Ae8B7AFt
AwAB9AEQAesBSgEwAQMBJQEXAfkCIAElASoB6gIAARIBSgGTAW4GSQFuAZMBSgESAgAB7wIBAR8F7wEA
Ag8C7wIAAfIB7wL2AfcBbQHrAfIB9AH2AfMB6wHsAQcCAAH0ARABcwFFASQBIAH5ARcB+QEgAR8BIAEx
ASIB9AEAARIBkwFuAUkGbAFJAW4BkwESAgAB7wEBAR8G7wMAAu8DAAHvAfMBvAGSAfAB9wH2AfcB7QEH
AesB7AHvAwAB8gERAUUBHwIgAfkBFwH5ASABHwExASIB9AEAARIBkwFJAmwEcQJsAUkBkwESAQABDwnv
AQ8DAAHvAwABBwHwAUQBJQEaApIB8gLzAfQBEgHrAfICAAHyAUMB7AFFAR8BIAH5ARcBJgExATcBMAEU
AgABSQFuAWwBcQGXBHEBlwFxAWwBbgESAgABDwcAAQ8FAAEPAgAB9AFtASwBJQHrAfQC8QLvAfIC6wG8
AgAB8wFtAesBRQEfAiAB+QExAVECbQHzAgABSQJsAZcCcQKXAnEBlwJsAUkCAAEVAQ8BFQMAARUBDwEV
CAABHAEsASsB6gEHAbwC7wH0ArwB8wJtAwAB8AETAUUBHwEkAisBUQG8BQABSQFsAnEGlwJxAWwBSQEA
ARUB9wEHAfcBFQEAARUB9wEHAfcBFQYAAe8CKwFLAe8BBwG8AfEEBwH0AYsB6gMAAfABEQFLASQBIwED
AUoB8AcAAWwBcQOXAngDlwFxAWwCAAEPAQcBAAEHAQ8BAAEPAQcBAAEHAQ8FAAHvASsBLAFFArwBBwHv
AQcBvAHwARkC2wFsAQcDAAHwASMCKwEOAfAB8QgAAUkBcQKXAXgFlwFxAUkCAAEVAfcBBwH3ARUBAAEV
AfcBBwH3ARUFAAESASwBRQHyAfMB7wHyAfEBuwLaAbMCiwHzBAAB8AEjATcBMQEOCwABSQFxApcBeAOX
AXEBSQQAARUBDwEVAwABFQEPARUHAAESAbwCAAEHAbMB1AGzAmwB7wgAAe8CDgHzDAABbAFxBJcBcQFs
GQABBwISAbwdAARxFwAB9AvzAfQTAA3zEwABBwvvAQcCAA8QAQABBw2zAQcHAARDBwAB7wEAAbsGswG7
AgAB7wIAARAGOAEQBtMBEAEAAbMNAAGzBQACQwTwAkMFAAHvAQABswYAAbMCAAHvAgABEAI4AwABOAEQ
AtMCAALTARABAAGzDQABswQAAUMI8AFDBAAB7wEAAa0BAAGXAlYBlwEAAbMCAAHvAgABEAM4AQACOAEQ
AdMBAALTAQAB0wEQAQABswEAAVYJUAFWAQABswMAAUMD8AGSAkMBkgPwAUMDAAHvAQABrQEABFYBAAGz
AfQBAAHvAgABEAI4AgACOAEQAdMBAALTAQAB0wEQAQABswEAC1YBAAGzAwABQwHwAZIBEgFDAfABkgFD
ARIBkgHwAUMDAAHvAQABrQEABFYBAAGzAfQBAAHvAgABEAM4AQACOAEQAtMCAALTARABAAGzAQALVgEA
AbMCAAFDAfABEgJjAUMBAAHwAUMCYwESAfABQwIAAe8BAAGtAQAEeAEAAbMB9AEAAe8CAAEQBjgBEAbT
ARABAAGzAQALVgEAAbMCAAFDARIERwJDBEcBEgFDAgAB7wEAAa0GAAGzAfMBAAHvAgAPEAEAAbMBAAtW
AQABswIAAUMMRwFDAgAB7wEAAbsCrQSzAbsB8wEAAe8CAAEQBkcBEAYAARABAAGzAQALVgEAAbMCAAFD
DEcBQwIAAe8BAAHzA/QB8wH0BAAB7wIAARACRwIAAkcBEAYAARABAAGzAQALVgEAAbMDAAFDAkcClAZH
AUMDAAHvAQABdAIyASwBdAEAAbwC9wEAAe8CAAEQAUcBAAJHAQABRwEQBgABEAEAAbMBAAFWCXgBVgEA
AbMDAAFDAUcElAVHAUMDAAHvAQABLAPDAVMBAAH3AgAB8wHwAgABEAFHAQACRwEAAUcBEAYAARABAAGz
AQALeAEAAbMEAAFDBJQERwFDBAAB7wEAAXQDLAF0AQAB9wEAAfMB8AMAARACRwIAAkcBEAYAARABAAGz
AQALeAEAAbMFAAJDAZQDRwJDBQAB7wgAAfMB8AQAARAGRwEQBgABEAEAAbMNAAGzBwAEQwcAAQcI7wEH
BQAPEAEAAQkNswEJEQABQgFNAT4HAAE+AwABKAMAAUADAAEwAwABAQEAAQEFAAGAAQEWAAP/AQAC/wYA
Af8BgQYAAf8HAAH/ATAGAAH/AeEGAAH/AcEGAAHxAYMGAAHhAQ4GAAHgBwABwAGBBgABwAF/BgABxAF/
BgABhAF/BgABhAE/BgABjAF/BgAC/wYAAf8BjwG/Af8B4AEHAv8B+AEHAo8BwAEDAv8BwAEHAY8BBwHA
AQMBgAE8AYABBwGOAQMBgAEBAQABGAGAAQMBgAEBAYABAQIAAYABAwGAAQEBgAEBAgABgAEBAYABAAGA
AQECAAHAAQEBwAEAAYABAQEAARgBwAEAAcABAQGAAQEBgAE8AcABAAHAAQEBgAEBAY4BPwHAAQAB4AEP
AYABAQEEAR8BgAEAAeABHwHAAQMBJAGfAgAB4AE/AcABAwEEAR8BAAEBAeAB/wHgAQcBjgE/AZgBDwHw
Af8B8AEPAv8B+AF/Av8B/AE/Av8BgAEDAv8BgAEDAv8BgAEDAQABAQEAAQEB/AE/AaABGwEAAQEBfwH9
AfABDwGvAdsBAAExAX8B/QHgAQcBqAFbAQABSQFAAQUBwAEDAagBSwEAAUkBQAEFAcABAwGoAUsBAAEx
AUABBQGBAQEBqAFLAQABAQFAAQUBgAEBAa8BywEAAQEBQAEFAYABAQGgAQsBAAH9AUABBQGAAQEBoAF7
ARgBxQFAAQUBwAEDAaABiwEkAe0BQAEFAcABAwGgAbMBJAHNAUABBQHgAQcBoAGnARgB7QFAAQUB8AEP
Ab8BzwEAAf0BfwH9AfwBPwGAAR8BAAEBAQABAQL/Cw==
</value>
</data>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="worldmapCoordsPasteButton.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
@@ -848,91 +933,9 @@
<metadata name="headerConditionalMusicComboBox.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="mainTabImageList.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>239, 17</value>
<metadata name="headerConditionalMusicComboBox.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<data name="mainTabImageList.ImageStream" mimetype="application/x-microsoft.net.object.binary.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAABy
EQAAAk1TRnQBSQFMAgEBCQEAAWwBFQFsARUBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
AwABQAMAATADAAEBAQABCAYAAQwYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA
AWYDAAGZAwABzAIAATMDAAIzAgABMwFmAgABMwGZAgABMwHMAgABMwH/AgABZgMAAWYBMwIAAmYCAAFm
AZkCAAFmAcwCAAFmAf8CAAGZAwABmQEzAgABmQFmAgACmQIAAZkBzAIAAZkB/wIAAcwDAAHMATMCAAHM
AWYCAAHMAZkCAALMAgABzAH/AgAB/wFmAgAB/wGZAgAB/wHMAQABMwH/AgAB/wEAATMBAAEzAQABZgEA
ATMBAAGZAQABMwEAAcwBAAEzAQAB/wEAAf8BMwIAAzMBAAIzAWYBAAIzAZkBAAIzAcwBAAIzAf8BAAEz
AWYCAAEzAWYBMwEAATMCZgEAATMBZgGZAQABMwFmAcwBAAEzAWYB/wEAATMBmQIAATMBmQEzAQABMwGZ
AWYBAAEzApkBAAEzAZkBzAEAATMBmQH/AQABMwHMAgABMwHMATMBAAEzAcwBZgEAATMBzAGZAQABMwLM
AQABMwHMAf8BAAEzAf8BMwEAATMB/wFmAQABMwH/AZkBAAEzAf8BzAEAATMC/wEAAWYDAAFmAQABMwEA
AWYBAAFmAQABZgEAAZkBAAFmAQABzAEAAWYBAAH/AQABZgEzAgABZgIzAQABZgEzAWYBAAFmATMBmQEA
AWYBMwHMAQABZgEzAf8BAAJmAgACZgEzAQADZgEAAmYBmQEAAmYBzAEAAWYBmQIAAWYBmQEzAQABZgGZ
AWYBAAFmApkBAAFmAZkBzAEAAWYBmQH/AQABZgHMAgABZgHMATMBAAFmAcwBmQEAAWYCzAEAAWYBzAH/
AQABZgH/AgABZgH/ATMBAAFmAf8BmQEAAWYB/wHMAQABzAEAAf8BAAH/AQABzAEAApkCAAGZATMBmQEA
AZkBAAGZAQABmQEAAcwBAAGZAwABmQIzAQABmQEAAWYBAAGZATMBzAEAAZkBAAH/AQABmQFmAgABmQFm
ATMBAAGZATMBZgEAAZkBZgGZAQABmQFmAcwBAAGZATMB/wEAApkBMwEAApkBZgEAA5kBAAKZAcwBAAKZ
Af8BAAGZAcwCAAGZAcwBMwEAAWYBzAFmAQABmQHMAZkBAAGZAswBAAGZAcwB/wEAAZkB/wIAAZkB/wEz
AQABmQHMAWYBAAGZAf8BmQEAAZkB/wHMAQABmQL/AQABzAMAAZkBAAEzAQABzAEAAWYBAAHMAQABmQEA
AcwBAAHMAQABmQEzAgABzAIzAQABzAEzAWYBAAHMATMBmQEAAcwBMwHMAQABzAEzAf8BAAHMAWYCAAHM
AWYBMwEAAZkCZgEAAcwBZgGZAQABzAFmAcwBAAGZAWYB/wEAAcwBmQIAAcwBmQEzAQABzAGZAWYBAAHM
ApkBAAHMAZkBzAEAAcwBmQH/AQACzAIAAswBMwEAAswBZgEAAswBmQEAA8wBAALMAf8BAAHMAf8CAAHM
Af8BMwEAAZkB/wFmAQABzAH/AZkBAAHMAf8BzAEAAcwC/wEAAcwBAAEzAQAB/wEAAWYBAAH/AQABmQEA
AcwBMwIAAf8CMwEAAf8BMwFmAQAB/wEzAZkBAAH/ATMBzAEAAf8BMwH/AQAB/wFmAgAB/wFmATMBAAHM
AmYBAAH/AWYBmQEAAf8BZgHMAQABzAFmAf8BAAH/AZkCAAH/AZkBMwEAAf8BmQFmAQAB/wKZAQAB/wGZ
AcwBAAH/AZkB/wEAAf8BzAIAAf8BzAEzAQAB/wHMAWYBAAH/AcwBmQEAAf8CzAEAAf8BzAH/AQAC/wEz
AQABzAH/AWYBAAL/AZkBAAL/AcwBAAJmAf8BAAFmAf8BZgEAAWYC/wEAAf8CZgEAAf8BZgH/AQAC/wFm
AQABIQEAAaUBAANfAQADdwEAA4YBAAOWAQADywEAA7IBAAPXAQAD3QEAA+MBAAPqAQAD8QEAA/gBAAHw
AfsB/wEAAaQCoAEAA4ADAAH/AgAB/wMAAv8BAAH/AwAB/wEAAf8BAAL/AgAD/0oABrw5AAEmAR4EAAK8
OAABJgEeAgABJgEeAQABvDsAAbwBJgEePAABJgEeAgABvDUAA7wCAAEmAR4CAAG8NQABzQEKAQABvAEA
ASYBHgEAAewDAAG8MwABzQEKAQACvAEmAR4BAAESArwBAAG8MgABzQEKAwABvAEAASYBHjcAAc0BCgES
AewBAAESAbw5AAHNAQoBEgIAARIBvDgAAc0BCgEAAbwDAAG8OAABzQEKAQABvAMAAewBvDcAAWWHAAHs
ARIB7wUAAfQRAAoSGAAC8wLrAe8B7AHrAfMFAAHqAfQFAALyAfQGAAMSBkoDEhQAAfMB8QG8AuwBBwG8
AQcB7AHrAQcEAAEOARIB7QQAAfABIgEpAesB8wUAARICSgZuAkoBEgMAAQ8HAAEPBQABDwEAAbwB9wHt
AZIB7wG8AQcB8AH0AfIB6wHqBAABDgFtAe0DAAEHASMCKwEqAesB8wMAARIBSgFuAUoGbgFKAW4BSgES
AQABDwnvAQ8DAAHvAgABbQL3AfABvAHzAvIC9AHtAesBBwMAAQcBFQHqA+0BKQErASUBHwElASoB6wH0
AgABEgFKAW4BSgaTAUoBbgFKARICAAHvAQEBHwbvAwAC7wIAAbwB7wHxAfQB9gHyAvAB9AH2Ae8B7AFt
AwAB9AEQAesBSgEwAQMBJQEXAfkCIAElASoB6gIAARIBSgGTAW4GSQFuAZMBSgESAgAB7wIBAR8F7wEA
Ag8C7wIAAfIB7wL2AfcBbQHrAfIB9AH2AfMB6wHsAQcCAAH0ARABcwFFASQBIAH5ARcB+QEgAR8BIAEx
ASIB9AEAARIBkwFuAUkGbAFJAW4BkwESAgAB7wEBAR8G7wMAAu8DAAHvAfMBvAGSAfAB9wH2AfcB7QEH
AesB7AHvAwAB8gERAUUBHwIgAfkBFwH5ASABHwExASIB9AEAARIBkwFJAmwEcQJsAUkBkwESAQABDwnv
AQ8DAAHvAwABBwHwAUQBJQEaApIB8gLzAfQBEgHrAfICAAHyAUMB7AFFAR8BIAH5ARcBJgExATcBMAEU
AgABSQFuAWwBcQGXBHEBlwFxAWwBbgESAgABDwcAAQ8FAAEPAgAB9AFtASwBJQHrAfQC8QLvAfIC6wG8
AgAB8wFtAesBRQEfAiAB+QExAVECbQHzAgABSQJsAZcCcQKXAnEBlwJsAUkCAAEVAQ8BFQMAARUBDwEV
CAABHAEsASsB6gEHAbwC7wH0ArwB8wJtAwAB8AETAUUBHwEkAisBUQG8BQABSQFsAnEGlwJxAWwBSQEA
ARUB9wEHAfcBFQEAARUB9wEHAfcBFQYAAe8CKwFLAe8BBwG8AfEEBwH0AYsB6gMAAfABEQFLASQBIwED
AUoB8AcAAWwBcQOXAngDlwFxAWwCAAEPAQcBAAEHAQ8BAAEPAQcBAAEHAQ8FAAHvASsBLAFFArwBBwHv
AQcBvAHwARkC2wFsAQcDAAHwASMCKwEOAfAB8QgAAUkBcQKXAXgFlwFxAUkCAAEVAfcBBwH3ARUBAAEV
AfcBBwH3ARUFAAESASwBRQHyAfMB7wHyAfEBuwLaAbMCiwHzBAAB8AEjATcBMQEOCwABSQFxApcBeAOX
AXEBSQQAARUBDwEVAwABFQEPARUHAAESAbwCAAEHAbMB1AGzAmwB7wgAAe8CDgHzDAABbAFxBJcBcQFs
GQABBwISAbwdAARxFwAB9AvzAfQTAA3zEwABBwvvAQcCAA8QAQABBw2zAQcHAARDBwAB7wEAAbsGswG7
AgAB7wIAARAGOAEQBtMBEAEAAbMNAAGzBQACQwTwAkMFAAHvAQABswYAAbMCAAHvAgABEAI4AwABOAEQ
AtMCAALTARABAAGzDQABswQAAUMI8AFDBAAB7wEAAa0BAAGXAlYBlwEAAbMCAAHvAgABEAM4AQACOAEQ
AdMBAALTAQAB0wEQAQABswEAAVYJUAFWAQABswMAAUMD8AGSAkMBkgPwAUMDAAHvAQABrQEABFYBAAGz
AfQBAAHvAgABEAI4AgACOAEQAdMBAALTAQAB0wEQAQABswEAC1YBAAGzAwABQwHwAZIBEgFDAfABkgFD
ARIBkgHwAUMDAAHvAQABrQEABFYBAAGzAfQBAAHvAgABEAM4AQACOAEQAtMCAALTARABAAGzAQALVgEA
AbMCAAFDAfABEgJjAUMBAAHwAUMCYwESAfABQwIAAe8BAAGtAQAEeAEAAbMB9AEAAe8CAAEQBjgBEAbT
ARABAAGzAQALVgEAAbMCAAFDARIERwJDBEcBEgFDAgAB7wEAAa0GAAGzAfMBAAHvAgAPEAEAAbMBAAtW
AQABswIAAUMMRwFDAgAB7wEAAbsCrQSzAbsB8wEAAe8CAAEQBkcBEAYAARABAAGzAQALVgEAAbMCAAFD
DEcBQwIAAe8BAAHzA/QB8wH0BAAB7wIAARACRwIAAkcBEAYAARABAAGzAQALVgEAAbMDAAFDAkcClAZH
AUMDAAHvAQABdAIyASwBdAEAAbwC9wEAAe8CAAEQAUcBAAJHAQABRwEQBgABEAEAAbMBAAFWCXgBVgEA
AbMDAAFDAUcElAVHAUMDAAHvAQABLAPDAVMBAAH3AgAB8wHwAgABEAFHAQACRwEAAUcBEAYAARABAAGz
AQALeAEAAbMEAAFDBJQERwFDBAAB7wEAAXQDLAF0AQAB9wEAAfMB8AMAARACRwIAAkcBEAYAARABAAGz
AQALeAEAAbMFAAJDAZQDRwJDBQAB7wgAAfMB8AQAARAGRwEQBgABEAEAAbMNAAGzBwAEQwcAAQcI7wEH
BQAPEAEAAQkNswEJEQABQgFNAT4HAAE+AwABKAMAAUADAAEwAwABAQEAAQEFAAGAAQEWAAP/AQAC/wYA
Af8BgQYAAf8HAAH/ATAGAAH/AeEGAAH/AcEGAAHxAYMGAAHhAQ4GAAHgBwABwAGBBgABwAF/BgABxAF/
BgABhAF/BgABhAE/BgABjAF/BgAC/wYAAf8BjwG/Af8B4AEHAv8B+AEHAo8BwAEDAv8BwAEHAY8BBwHA
AQMBgAE8AYABBwGOAQMBgAEBAQABGAGAAQMBgAEBAYABAQIAAYABAwGAAQEBgAEBAgABgAEBAYABAAGA
AQECAAHAAQEBwAEAAYABAQEAARgBwAEAAcABAQGAAQEBgAE8AcABAAHAAQEBgAEBAY4BPwHAAQAB4AEP
AYABAQEEAR8BgAEAAeABHwHAAQMBJAGfAgAB4AE/AcABAwEEAR8BAAEBAeAB/wHgAQcBjgE/AZgBDwHw
Af8B8AEPAv8B+AF/Av8B/AE/Av8BgAEDAv8BgAEDAv8BgAEDAQABAQEAAQEB/AE/AaABGwEAAQEBfwH9
AfABDwGvAdsBAAExAX8B/QHgAQcBqAFbAQABSQFAAQUBwAEDAagBSwEAAUkBQAEFAcABAwGoAUsBAAEx
AUABBQGBAQEBqAFLAQABAQFAAQUBgAEBAa8BywEAAQEBQAEFAYABAQGgAQsBAAH9AUABBQGAAQEBoAF7
ARgBxQFAAQUBwAEDAaABiwEkAe0BQAEFAcABAwGgAbMBJAHNAUABBQHgAQcBoAGnARgB7QFAAQUB8AEP
Ab8BzwEAAf0BfwH9AfwBPwGAAR8BAAEBAQABAQL/Cw==
</value>
</data>
<metadata name="menuStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
@@ -1027,6 +1030,9 @@
qcnkDWXJtp9DVaw7AAAAAElFTkSuQmCC
</value>
</data>
<metadata name="toolTip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>533, 20</value>
</metadata>
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>25</value>
</metadata>

View File

@@ -67,7 +67,7 @@ namespace DSPRE.ROMFiles {
int bdhcSectionLength = reader.ReadInt32();
/* Read background sounds section */
if (RomInfo.gameFamily == "HGSS") {
if (RomInfo.gameFamily == gFamEnum.HGSS) {
ushort signature = reader.ReadUInt16();
if (signature != 0x1234) {
MessageBox.Show("The header section of this map's BackGround Sound data is corrupted.",
@@ -188,7 +188,7 @@ namespace DSPRE.ROMFiles {
writer.Write(bdhc.Length);
/* Write soundplate section for HG/SS */
if (RomInfo.gameFamily == "HGSS") {
if (RomInfo.gameFamily == gFamEnum.HGSS) {
writer.Write(bgs);
}

View File

@@ -1,6 +1,7 @@
using System.Collections.Generic;
using System.IO;
using System.Windows.Forms;
using static DSPRE.RomInfo;
namespace DSPRE.ROMFiles {
/* ---------------------- HEADER DATA STRUCTURE (DPPt):----------------------------
@@ -132,9 +133,9 @@ namespace DSPRE.ROMFiles {
}
switch (RomInfo.gameFamily) {
case "DP":
case gFamEnum.DP:
return new HeaderDP(headerNumber, new MemoryStream(headerData));
case "Plat":
case gFamEnum.Plat:
return new HeaderPt(headerNumber, new MemoryStream(headerData));
default:
return new HeaderHGSS(headerNumber, new MemoryStream(headerData));

View File

@@ -177,8 +177,8 @@ namespace DSPRE.ROMFiles {
/* How to read parameters for different commands for DPPt*/
switch (RomInfo.gameFamily) {
case "DP":
case "Plat":
case gFamEnum.DP:
case gFamEnum.Plat:
switch (id) {
case 0x16: //Jump
case 0x1A: //Call
@@ -288,7 +288,7 @@ namespace DSPRE.ROMFiles {
break;
case 0x2C5:
{
if (RomInfo.gameVersion == "Plat") {
if (RomInfo.gameVersion == gVerEnum.Platinum) {
parameterList.Add(dataReader.ReadBytes(2));
parameterList.Add(dataReader.ReadBytes(2));
} else {
@@ -300,12 +300,12 @@ namespace DSPRE.ROMFiles {
case 0x2C9:
case 0x2CA:
case 0x2CD:
if (RomInfo.gameVersion == "Plat")
if (RomInfo.gameVersion == gVerEnum.Platinum)
break;
else
goto default;
case 0x2CF:
if (RomInfo.gameVersion == "Plat") {
if (RomInfo.gameVersion == gVerEnum.Platinum) {
parameterList.Add(dataReader.ReadBytes(2));
parameterList.Add(dataReader.ReadBytes(2));
} else {
@@ -317,7 +317,7 @@ namespace DSPRE.ROMFiles {
break;
}
break;
case "HGSS":
case gFamEnum.HGSS:
switch (id) {
case 0x16: //Jump
case 0x1A: //Call

View File

@@ -25,7 +25,7 @@ namespace DSPRE {
initOffset = ToolboxDB.arm9ExpansionOffsetsDB[nameof(initOffset) + "_" + RomInfo.gameFamily + "_" + RomInfo.gameLanguage] - 0x02000000;
branchString = ToolboxDB.arm9ExpansionCodeDB[nameof(branchString) + "_" + RomInfo.gameFamily + "_" + RomInfo.gameLanguage];
if (RomInfo.gameFamily == "Plat") {
if (RomInfo.gameFamily == gFamEnum.Plat) {
initString = ToolboxDB.arm9ExpansionCodeDB[nameof(initString) + "_" + RomInfo.gameFamily + "_" + RomInfo.gameLanguage];
} else {
initString = ToolboxDB.arm9ExpansionCodeDB[nameof(initString) + "_" + RomInfo.gameFamily];
@@ -48,7 +48,7 @@ namespace DSPRE {
internal BDHCAMPatchData() {
switch (RomInfo.gameFamily) {
case "Plat":
case gFamEnum.Plat:
overlayNumber = 5;
branchString = ToolboxDB.BDHCamCodeDB[nameof(branchString) + "_" + RomInfo.gameFamily + "_" + RomInfo.gameLanguage];
@@ -56,7 +56,7 @@ namespace DSPRE {
overlayOffset1 = ToolboxDB.BDHCamOffsetsDB[nameof(overlayOffset1) + "_" + RomInfo.gameFamily + "_" + RomInfo.gameLanguage];
overlayOffset2 = ToolboxDB.BDHCamOffsetsDB[nameof(overlayOffset2) + "_" + RomInfo.gameFamily + "_" + RomInfo.gameLanguage];
break;
case "HGSS":
case gFamEnum.HGSS:
overlayNumber = 1;
branchString = ToolboxDB.BDHCamCodeDB[nameof(branchString) + "_" + RomInfo.gameFamily];
@@ -89,7 +89,7 @@ namespace DSPRE {
initOffset = ToolboxDB.getDynamicHeadersInitOffset(RomInfo.romID);
initString = ToolboxDB.getDynamicHeadersInitString(RomInfo.romID);
if (RomInfo.gameFamily == "HGSS") {
if (RomInfo.gameFamily == gFamEnum.HGSS) {
pointerDiff = (int)(initOffset - ToolboxDB.getDynamicHeadersInitOffset("IPKE"));
} else {
pointerDiff = (int)(initOffset - ToolboxDB.getDynamicHeadersInitOffset("CPUE"));
@@ -120,20 +120,20 @@ namespace DSPRE {
}
switch (RomInfo.gameFamily) {
case "DP":
case gFamEnum.DP:
DisableOverlay1patch("Unsupported");
DisableDynamicHeadersPatch("Unsupported");
DisableMatrixExpansionPatch("Unsupported");
DisableScrcmdRepointPatch("Unsupported");
break;
case "Plat":
case gFamEnum.Plat:
DisableOverlay1patch("Unsupported");
DisableMatrixExpansionPatch("Unsupported");
DisableScrcmdRepointPatch("Unsupported");
CheckBDHCamPatchApplied();
CheckDynamicHeadersPatchApplied();
break;
case "HGSS":
case gFamEnum.HGSS:
if (!DSUtils.CheckOverlayHasCompressionFlag(1)) {
DisableOverlay1patch("Already applied");
overlay1CB.Visible = true;
@@ -207,12 +207,12 @@ namespace DSPRE {
ARM9PatchData data = new ARM9PatchData();
byte[] branchCode = DSUtils.HexStringToByteArray(data.branchString);
byte[] branchCodeRead = DSUtils.ReadFromArm9(data.branchOffset, data.branchString.Length / 3 + 1); //Read branchCode
byte[] branchCodeRead = DSUtils.ReadBytesFromArm9(data.branchOffset, data.branchString.Length / 3 + 1); //Read branchCode
if (branchCodeRead.Length != branchCode.Length || !branchCodeRead.SequenceEqual(branchCode))
return false;
byte[] initCode = DSUtils.HexStringToByteArray(data.initString);
byte[] initCodeRead = DSUtils.ReadFromArm9(data.initOffset, data.initString.Length / 3 + 1); //Read initCode
byte[] initCodeRead = DSUtils.ReadBytesFromArm9(data.initOffset, data.initString.Length / 3 + 1); //Read initCode
if (initCodeRead.Length != initCode.Length || !initCodeRead.SequenceEqual(initCode))
return false;
@@ -222,7 +222,7 @@ namespace DSPRE {
BDHCAMPatchData data = new BDHCAMPatchData();
byte[] branchCode = DSUtils.HexStringToByteArray(data.branchString);
byte[] branchCodeRead = DSUtils.ReadFromArm9(data.branchOffset, branchCode.Length);
byte[] branchCodeRead = DSUtils.ReadBytesFromArm9(data.branchOffset, branchCode.Length);
if (branchCode.Length != branchCodeRead.Length || !branchCode.SequenceEqual(branchCodeRead))
return false;
@@ -256,7 +256,7 @@ namespace DSPRE {
if (RomInfo.romID == "IPKE" || RomInfo.romID == "IPGE" || RomInfo.romID == "IPGS")
languageOffset = +8;
byte[] read = DSUtils.ReadFromArm9((uint)(offset - 0x02000000 + languageOffset), kv.Value.Length / 3 + 1);
byte[] read = DSUtils.ReadBytesFromArm9((uint)(offset - 0x02000000 + languageOffset), kv.Value.Length / 3 + 1);
byte[] code = DSUtils.HexStringToByteArray(kv.Value);
if (read.Length != code.Length || !read.SequenceEqual(code))
return false;
@@ -315,8 +315,8 @@ namespace DSPRE {
DisableARM9patch("Already applied");
switch (RomInfo.gameFamily) {
case "Plat":
case "HGSS":
case gFamEnum.Plat:
case gFamEnum.HGSS:
BDHCamARM9requiredLBL.Visible = false;
BDHCamPatchButton.Enabled = true;
BDHCamPatchLBL.Enabled = true;
@@ -342,7 +342,7 @@ namespace DSPRE {
public static bool CheckFilesDynamicHeadersPatchApplied() {
DynamicHeadersPatchData data = new DynamicHeadersPatchData();
ushort initValue = BitConverter.ToUInt16(DSUtils.ReadFromArm9(data.initOffset, 0x2), 0);
ushort initValue = BitConverter.ToUInt16(DSUtils.ReadBytesFromArm9(data.initOffset, 0x2), 0);
return initValue == 0xB500;
}
@@ -397,7 +397,7 @@ namespace DSPRE {
private void BDHCAMPatchButton_Click(object sender, EventArgs e) {
BDHCAMPatchData data = new BDHCAMPatchData();
if (RomInfo.gameFamily == "HGSS") {
if (RomInfo.gameFamily == gFamEnum.HGSS) {
if (DSUtils.CheckOverlayHasCompressionFlag(data.overlayNumber)) {
DialogResult d1 = MessageBox.Show("It is STRONGLY recommended to configure Overlay1 as uncompressed before proceeding.\n\n" +
"More details in the following dialog.\n\n" + "Do you want to know more?",
@@ -424,7 +424,7 @@ namespace DSPRE {
File.Copy(RomInfo.arm9Path, RomInfo.arm9Path + backupSuffix, overwrite: true);
try {
DSUtils.WriteToArm9(DSUtils.HexStringToByteArray(data.branchString), data.branchOffset); //Write new branchOffset
DSUtils.WriteBytesToArm9(DSUtils.HexStringToByteArray(data.branchString), data.branchOffset); //Write new branchOffset
/* Write to overlayfile */
string overlayFilePath = RomInfo.workDir + "overlay" + "\\" + "overlay_" + data.overlayNumber.ToString("D4") + ".bin";
@@ -549,8 +549,8 @@ namespace DSPRE {
File.Copy(RomInfo.arm9Path, RomInfo.arm9Path + backupSuffix, overwrite: true);
try {
DSUtils.WriteToArm9(DSUtils.HexStringToByteArray(data.branchString), data.branchOffset); //Write new branchOffset
DSUtils.WriteToArm9(DSUtils.HexStringToByteArray(data.initString), data.initOffset); //Write new initOffset
DSUtils.WriteBytesToArm9(DSUtils.HexStringToByteArray(data.branchString), data.branchOffset); //Write new branchOffset
DSUtils.WriteBytesToArm9(DSUtils.HexStringToByteArray(data.initString), data.initOffset); //Write new initOffset
string fullFilePath = RomInfo.gameDirs[DirNames.synthOverlay].unpackedDir + '\\' + expandedARMfileID.ToString("D4");
File.Delete(fullFilePath);
@@ -564,8 +564,8 @@ namespace DSPRE {
ROMToolboxDialog.flag_arm9Expanded = true;
switch (RomInfo.gameFamily) {
case "Plat":
case "HGSS":
case gFamEnum.Plat:
case gFamEnum.HGSS:
BDHCamPatchButton.Text = "Apply Patch";
BDHCamPatchButton.Enabled = true;
BDHCamPatchLBL.Enabled = true;
@@ -614,7 +614,7 @@ namespace DSPRE {
try {
foreach (KeyValuePair<uint[], string> kv in ToolboxDB.matrixExpansionDB) {
foreach (uint offset in kv.Key) {
DSUtils.WriteToArm9(DSUtils.HexStringToByteArray(kv.Value), (uint)(offset - 0x02000000 + languageOffset));
DSUtils.WriteBytesToArm9(DSUtils.HexStringToByteArray(kv.Value), (uint)(offset - 0x02000000 + languageOffset));
}
}
} catch {
@@ -633,7 +633,7 @@ namespace DSPRE {
DynamicHeadersPatchData data = new DynamicHeadersPatchData();
var headersDir = RomInfo.gameDirs[DirNames.dynamicHeaders];
bool specialCase = RomInfo.gameFamily == "HGSS" && RomInfo.gameLanguage != "JAP" && RomInfo.gameLanguage != "ESP";
bool specialCase = RomInfo.gameFamily == gFamEnum.HGSS && RomInfo.gameLanguage != "JAP" && RomInfo.gameLanguage != "ESP";
string specialCaseChanges = "";
if (specialCase) {
@@ -695,7 +695,7 @@ namespace DSPRE {
DE F7 3D F9 bl 0x02017E6C @Free_Memory
*/
DSUtils.WriteToArm9(DSUtils.HexStringToByteArray(data.initString), data.initOffset);
DSUtils.WriteBytesToArm9(DSUtils.HexStringToByteArray(data.initString), data.initOffset);
/* - Neutralize instances of (HeaderID * 0x18) so the base offset which the data is read from is always 0x0:
@@ -717,18 +717,18 @@ namespace DSPRE {
*/
foreach (Tuple<uint, uint> reference in ToolboxDB.dynamicHeadersPointersDB [RomInfo.gameFamily]) {
DSUtils.WriteToArm9(DSUtils.HexStringToByteArray(data.REFERENCE_STRING), (uint)(reference.Item1 + data.pointerDiff));
uint pointerValue = BitConverter.ToUInt32(DSUtils.ReadFromArm9((uint)(reference.Item2 + data.pointerDiff), 4), 0) - RomInfo.headerTableOffset - 0x02000000;
DSUtils.WriteToArm9(BitConverter.GetBytes(pointerValue), (uint)(reference.Item2 + data.pointerDiff));
DSUtils.WriteBytesToArm9(DSUtils.HexStringToByteArray(data.REFERENCE_STRING), (uint)(reference.Item1 + data.pointerDiff));
uint pointerValue = BitConverter.ToUInt32(DSUtils.ReadBytesFromArm9((uint)(reference.Item2 + data.pointerDiff), 4), 0) - RomInfo.headerTableOffset - 0x02000000;
DSUtils.WriteBytesToArm9(BitConverter.GetBytes(pointerValue), (uint)(reference.Item2 + data.pointerDiff));
}
if (specialCase) {
/* Special case: at 0x3B522 (non-JAP and non-Spanish HG offset) there is an instruction
between the (mov r1, #0x18) and (mul r1, r0) commands, so we must handle this separately */
DSUtils.WriteToArm9(DSUtils.HexStringToByteArray(data.specialCaseData1), (uint)(data.specialCaseOffset1 + data.pointerDiff));
DSUtils.WriteToArm9(DSUtils.HexStringToByteArray(data.specialCaseData2), (uint)(data.specialCaseOffset2 + data.pointerDiff));
DSUtils.WriteToArm9(DSUtils.HexStringToByteArray(data.specialCaseData3), (uint)(data.specialCaseOffset3 + data.pointerDiff));
DSUtils.WriteBytesToArm9(DSUtils.HexStringToByteArray(data.specialCaseData1), (uint)(data.specialCaseOffset1 + data.pointerDiff));
DSUtils.WriteBytesToArm9(DSUtils.HexStringToByteArray(data.specialCaseData2), (uint)(data.specialCaseOffset2 + data.pointerDiff));
DSUtils.WriteBytesToArm9(DSUtils.HexStringToByteArray(data.specialCaseData3), (uint)(data.specialCaseOffset3 + data.pointerDiff));
}
// Clear the dynamic headers directory in 'unpacked'
@@ -847,29 +847,27 @@ namespace DSPRE {
int asmOffset = Int32.Parse(node.Element("asmoffset").Value, System.Globalization.NumberStyles.HexNumber);
string asmCode = node.Element("asmcode").Value.Replace("\n", "").Replace("\t", "").Replace(" ", "");
if ((RomInfo.gameVersion != targetROM) || (RomInfo.gameLanguage != targetLang)) {
continue;
}
expandedReader.BaseStream.Position = 0x200 + commandID * 4;
if (expandedReader.ReadUInt32() != 0) {
DialogResult d;
d = MessageBox.Show("Script command " + commandID.ToString("X4") + " is already used.\n\n" +
"Do you really want to overwrite it?",
"Confirm to proceed", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
if (d == DialogResult.No) {
continue;
if (RomInfo.gameVersion.ToString().Equals(targetROM) && RomInfo.gameLanguage.Equals(targetLang)) {
expandedReader.BaseStream.Position = 0x200 + commandID * 4;
if (expandedReader.ReadUInt32() != 0) {
DialogResult d;
d = MessageBox.Show("Script command " + commandID.ToString("X4") + " is already used.\n\n" +
"Do you really want to overwrite it?",
"Confirm to proceed", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
if (d == DialogResult.No) {
continue;
}
}
expandedWriter.BaseStream.Position = 0x200 + commandID * 4;
expandedWriter.Write((UInt32)(0x023C8000 + asmOffset + 1));
byte[] asmCodeBytes = DSUtils.StringToByteArray(asmCode);
expandedWriter.BaseStream.Position = asmOffset;
expandedWriter.Write(asmCodeBytes);
appliedPatches++;
}
expandedWriter.BaseStream.Position = 0x200 + commandID * 4;
expandedWriter.Write((UInt32)(0x023C8000 + asmOffset + 1));
byte[] asmCodeBytes = DSUtils.StringToByteArray(asmCode);
expandedWriter.BaseStream.Position = asmOffset;
expandedWriter.Write(asmCodeBytes);
appliedPatches++;
}
} catch {

View File

@@ -1,6 +1,7 @@
using DSPRE.ROMFiles;
using System.Collections.Generic;
using System.Drawing;
using static DSPRE.RomInfo;
namespace DSPRE.Resources {
public static class PokeDatabase {
@@ -17,6 +18,7 @@ namespace DSPRE.Resources {
"[08] Island",
"[09] Wood"
};
public static Dictionary<byte, string> HGSSAreaIconsDict = new Dictionary<byte, string>() {
[00] = "Not displayed",
[01] = "Wall",
@@ -3436,42 +3438,42 @@ namespace DSPRE.Resources {
};
}
public static class System {
public static Dictionary<string, string> versionsDict = new Dictionary<string, string>() {
["ADAE"] = "D",
["ADAS"] = "D",
["ADAI"] = "D",
["ADAF"] = "D",
["ADAD"] = "D",
["ADAJ"] = "D",
public static Dictionary<string, gVerEnum> versionsDict = new Dictionary<string, gVerEnum>() {
["ADAE"] = gVerEnum.Diamond,
["ADAS"] = gVerEnum.Diamond,
["ADAI"] = gVerEnum.Diamond,
["ADAF"] = gVerEnum.Diamond,
["ADAD"] = gVerEnum.Diamond,
["ADAJ"] = gVerEnum.Diamond,
["APAE"] = "P",
["APAS"] = "P",
["APAI"] = "P",
["APAF"] = "P",
["APAD"] = "P",
["APAJ"] = "P",
["APAE"] = gVerEnum.Pearl,
["APAS"] = gVerEnum.Pearl,
["APAI"] = gVerEnum.Pearl,
["APAF"] = gVerEnum.Pearl,
["APAD"] = gVerEnum.Pearl,
["APAJ"] = gVerEnum.Pearl,
["CPUE"] = "Plat",
["CPUS"] = "Plat",
["CPUI"] = "Plat",
["CPUF"] = "Plat",
["CPUD"] = "Plat",
["CPUJ"] = "Plat",
["CPUP"] = "Plat",
["CPUE"] = gVerEnum.Platinum,
["CPUS"] = gVerEnum.Platinum,
["CPUI"] = gVerEnum.Platinum,
["CPUF"] = gVerEnum.Platinum,
["CPUD"] = gVerEnum.Platinum,
["CPUJ"] = gVerEnum.Platinum,
["CPUP"] = gVerEnum.Platinum,
["IPKE"] = "HG",
["IPKS"] = "HG",
["IPKI"] = "HG",
["IPKF"] = "HG",
["IPKD"] = "HG",
["IPKJ"] = "HG",
["IPKE"] = gVerEnum.HeartGold,
["IPKS"] = gVerEnum.HeartGold,
["IPKI"] = gVerEnum.HeartGold,
["IPKF"] = gVerEnum.HeartGold,
["IPKD"] = gVerEnum.HeartGold,
["IPKJ"] = gVerEnum.HeartGold,
["IPGE"] = "SS",
["IPGS"] = "SS",
["IPGI"] = "SS",
["IPGF"] = "SS",
["IPGD"] = "SS",
["IPGJ"] = "SS"
["IPGE"] = gVerEnum.SoulSilver,
["IPGS"] = gVerEnum.SoulSilver,
["IPGI"] = gVerEnum.SoulSilver,
["IPGF"] = gVerEnum.SoulSilver,
["IPGD"] = gVerEnum.SoulSilver,
["IPGJ"] = gVerEnum.SoulSilver
};
public static Dictionary<byte, string> MapCollisionPainters = new Dictionary<byte, string>() {
@@ -4087,7 +4089,6 @@ namespace DSPRE.Resources {
[494] = "Egg",
[495] = "Bad Egg"
};
public static class MatrixCellColors {
/* Initialize dictionary of colors corresponding to border maps in the matrix editor */
public static Dictionary<List<uint>, (Color back, Color fore)> DPPtmatrixColorsDict = new Dictionary<List<uint>, (Color back, Color fore)> {
@@ -4175,9 +4176,8 @@ namespace DSPRE.Resources {
[new byte[] { 28 }] = "ptredish",
[new byte[] { 29 }] = "ptblueish",
[new byte[] { 30 }] = "ptdim",
};
public static Dictionary<byte[], string> hgssweatherImageDict = new Dictionary<byte[], string>() {
[new byte[] { 0}] = "hgssnormal",
[new byte[] { 1, 2, 3, 4 }] = "hgssrain",

View File

@@ -1,12 +1,13 @@
using System;
using System.Collections.Generic;
using static DSPRE.RomInfo;
namespace DSPRE.Resources.ROMToolboxDB {
public class ToolboxDB {
public static Dictionary<string, uint> syntheticOverlayFileNumbersDB = new Dictionary<string, uint>() {
["DP"] = 9,
["Plat"] = 9,
["HGSS"] = 0,
public static Dictionary<gFamEnum, uint> syntheticOverlayFileNumbersDB = new Dictionary<gFamEnum, uint>() {
[gFamEnum.DP] = 9,
[gFamEnum.Plat] = 9,
[gFamEnum.HGSS] = 0,
};
public static Dictionary<string, string> arm9ExpansionCodeDB = new Dictionary<string, string>() {
@@ -98,10 +99,10 @@ namespace DSPRE.Resources.ROMToolboxDB {
return "00 B5 01 1C 32 20 00 22 CC F7 58 F9 03 1C DF F7 49 FC 00 BD";
}
}
public static Dictionary<string, Tuple<uint, uint>[]> dynamicHeadersPointersDB = new Dictionary<string, Tuple<uint, uint>[]>() {
public static Dictionary<gFamEnum, Tuple<uint, uint>[]> dynamicHeadersPointersDB = new Dictionary<gFamEnum, Tuple<uint, uint>[]>() {
// format: headerID*18 offset, (ARM9_HEADER_TABLE_OFFSET + n) offset
["Plat"] = new Tuple<uint, uint>[] {
[gFamEnum.Plat] = new Tuple<uint, uint>[] {
new Tuple<uint, uint>(0x3A03E, 0x3A048),
new Tuple<uint, uint>(0x3A052, 0x3A05C),
new Tuple<uint, uint>(0x3A066, 0x3A080),
@@ -124,7 +125,7 @@ namespace DSPRE.Resources.ROMToolboxDB {
new Tuple<uint, uint>(0x3A212, 0x3A224),
},
["HGSS"] = new Tuple<uint, uint>[] {
[gFamEnum.HGSS] = new Tuple<uint, uint>[] {
new Tuple<uint, uint>(0x3B282, 0x3B28C),
new Tuple<uint, uint>(0x3B296, 0x3B2A8),
new Tuple<uint, uint>(0x3B2B2, 0x3B2BC),

View File

@@ -21,10 +21,9 @@ namespace DSPRE {
public static string arm9Path { get; private set; }
public static string overlayTablePath { get; set; }
public static string overlayPath { get; set; }
public static string gameVersion { get; private set; }
public static string gameLanguage { get; private set; }
public static string gameFamily { get; private set; }
public static string gameName { get; private set; }
public static gVerEnum gameVersion { get; private set; }
public static gFamEnum gameFamily { get; private set; }
public static uint arm9spawnOffset { get; private set; }
public static int initialMoneyOverlayNumber { get; private set; }
@@ -35,6 +34,7 @@ namespace DSPRE {
public static uint headerTableOffset { get; private set; }
public static uint conditionalMusicTableOffsetToRAMAddress { get; internal set; }
public static uint encounterMusicTableOffsetToRAMAddress { get; internal set; }
public static uint OWTableOffset { get; internal set; }
public static string OWtablePath { get; private set; }
@@ -59,6 +59,19 @@ namespace DSPRE {
public static uint[] overworldTableKeys { get; private set; }
public static Dictionary<uint, string> ow3DSpriteDict { get; private set; }
public enum gVerEnum : byte {
Diamond, Pearl, Platinum,
HeartGold, SoulSilver,
Black, White,
Black2, White2
}
public enum gFamEnum : byte {
DP,
Plat,
HGSS,
BW,
BW2
}
public enum DirNames : byte {
synthOverlay,
dynamicHeaders,
@@ -103,13 +116,15 @@ namespace DSPRE {
overlayPath = workDir + "overlay";
internalNamesLocation = workDir + @"data\fielddata\maptable\mapname.bin";
LoadGameVersion();
if (gameVersion is null) {
try {
gameVersion = PokeDatabase.System.versionsDict[romID];
} catch (KeyNotFoundException) {
MessageBox.Show("The ROM you attempted to load is not supported.\nYou can only load Gen IV Pok<6F>mon ROMS, for now.", "Unsupported ROM",
MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
LoadGameFamily();
LoadGameName();
LoadGameLanguage();
SetNarcDirs();
@@ -125,23 +140,23 @@ namespace DSPRE {
SetTrainerClassMessageNumber();
/* System */
ScriptCommandNamesDict = BuildCommandNamesDatabase(gameVersion);
ScriptCommandParametersDict = BuildCommandParametersDatabase(gameVersion);
ScriptActionNamesDict = BuildActionNamesDatabase(gameVersion);
ScriptCommandNamesDict = BuildCommandNamesDatabase(gameFamily);
ScriptCommandParametersDict = BuildCommandParametersDatabase(gameFamily);
ScriptActionNamesDict = BuildActionNamesDatabase(gameFamily);
}
#endregion
#region Methods (22)
public static Dictionary<ushort, string> BuildCommandNamesDatabase(string gameVer) {
public static Dictionary<ushort, string> BuildCommandNamesDatabase(gFamEnum gameFam) {
Dictionary<ushort, string> commonDictionaryNames;
Dictionary<ushort, string> specificDictionaryNames;
switch (gameFamily) {
case "DP":
switch (gameFam) {
case gFamEnum.DP:
commonDictionaryNames = PokeDatabase.ScriptEditor.DPPtScrCmdNames;
specificDictionaryNames = PokeDatabase.ScriptEditor.DPScrCmdNames;
break;
case "Plat":
case gFamEnum.Plat:
commonDictionaryNames = PokeDatabase.ScriptEditor.DPPtScrCmdNames;
specificDictionaryNames = PokeDatabase.ScriptEditor.PlatScrCmdNames;
break;
@@ -152,16 +167,16 @@ namespace DSPRE {
}
return commonDictionaryNames.Concat(specificDictionaryNames).ToLookup(x => x.Key, x => x.Value).ToDictionary(x => x.Key, g => g.First());
}
public static Dictionary<ushort, byte[]> BuildCommandParametersDatabase(string gameVer) {
public static Dictionary<ushort, byte[]> BuildCommandParametersDatabase(gFamEnum gameFam) {
Dictionary<ushort, byte[]> commonDictionaryParams;
Dictionary<ushort, byte[]> specificDictionaryParams;
switch (gameFamily) {
case "DP":
switch (gameFam) {
case gFamEnum.DP:
commonDictionaryParams = PokeDatabase.ScriptEditor.DPPtScrCmdParameters;
specificDictionaryParams = PokeDatabase.ScriptEditor.DPScrCmdParameters;
break;
case "Plat":
case gFamEnum.Plat:
commonDictionaryParams = PokeDatabase.ScriptEditor.DPPtScrCmdParameters;
specificDictionaryParams = PokeDatabase.ScriptEditor.PlatScrCmdParameters;
break;
@@ -172,10 +187,10 @@ namespace DSPRE {
}
return commonDictionaryParams.Concat(specificDictionaryParams).ToLookup(x => x.Key, x => x.Value).ToDictionary(x => x.Key, g => g.First());
}
public static Dictionary<ushort, string> BuildActionNamesDatabase(string gameVer) {
switch (gameFamily) {
case "DP":
case "Plat":
public static Dictionary<ushort, string> BuildActionNamesDatabase(gFamEnum gameFam) {
switch (gameFam) {
case gFamEnum.DP:
case gFamEnum.Plat:
return PokeDatabase.ScriptEditor.movementsDictIDName;
default:
var commonDictionaryParams = PokeDatabase.ScriptEditor.movementsDictIDName;
@@ -197,7 +212,7 @@ namespace DSPRE {
}
public static void SetHeaderTableOffset() {
switch (gameFamily) {
case "DP":
case gFamEnum.DP:
switch (gameLanguage) {
case "ENG":
headerTableOffset = 0xEEDBC;
@@ -215,11 +230,11 @@ namespace DSPRE {
headerTableOffset = 0xEEDCC;
break;
case "JAP":
headerTableOffset = 0xF0D68;
headerTableOffset = gameVersion == gVerEnum.Diamond ? (uint)0xF0D68 : 0xF0D6C;
break;
}
break;
case "Plat":
case gFamEnum.Plat:
switch (gameLanguage) {
case "ENG":
headerTableOffset = 0xE601C;
@@ -241,13 +256,13 @@ namespace DSPRE {
break;
}
break;
case "HGSS":
case gFamEnum.HGSS:
switch (gameLanguage) {
case "ENG":
headerTableOffset = 0xF6BE0;
break;
case "ESP":
headerTableOffset = gameVersion == "HG" ? 0xF6BC8 : (uint)0xF6BD0;
headerTableOffset = gameVersion == gVerEnum.HeartGold ? 0xF6BC8 : (uint)0xF6BD0;
break;
case "ITA":
headerTableOffset = 0xF6B58;
@@ -267,7 +282,7 @@ namespace DSPRE {
}
public static void SetupSpawnSettings() {
switch (gameFamily) {
case "DP":
case gFamEnum.DP:
initialMoneyOverlayNumber = 52;
initialMoneyOverlayOffset = 0x1E4;
switch (gameLanguage) {
@@ -291,7 +306,7 @@ namespace DSPRE {
break;
}
break;
case "Plat":
case gFamEnum.Plat:
initialMoneyOverlayNumber = 57;
initialMoneyOverlayOffset = 0x1EC;
switch (gameLanguage) {
@@ -315,7 +330,7 @@ namespace DSPRE {
break;
}
break;
case "HGSS":
case gFamEnum.HGSS:
initialMoneyOverlayNumber = 36;
initialMoneyOverlayOffset = 0x2FC;
switch (gameLanguage) {
@@ -323,7 +338,7 @@ namespace DSPRE {
arm9spawnOffset = 0xFA17C;
break;
case "ESP":
arm9spawnOffset = gameVersion == "HG" ? 0xFA164 : (uint)0xFA16C;
arm9spawnOffset = gameVersion == gVerEnum.HeartGold ? 0xFA164 : (uint)0xFA16C;
break;
case "ITA":
arm9spawnOffset = 0xFA0F4;
@@ -343,17 +358,17 @@ namespace DSPRE {
}
public static void PrepareCameraData() {
switch (gameFamily) {
case "DP":
case gFamEnum.DP:
cameraTblOverlayNumber = 5;
cameraTblOffsetsToRAMaddress = gameLanguage.Equals("JAP") ? (new uint[] { 0x4C50 }) : (new uint[] { 0x4908 });
cameraSize = 24;
break;
case "Plat":
case gFamEnum.Plat:
cameraTblOverlayNumber = 5;
cameraTblOffsetsToRAMaddress = new uint[] { 0x4E24 };
cameraSize = 24;
break;
case "HGSS":
case gFamEnum.HGSS:
cameraTblOverlayNumber = 1;
cameraSize = 36;
switch (gameLanguage) {
@@ -373,7 +388,7 @@ namespace DSPRE {
}
public static void SetOWtable() {
switch (gameFamily) {
case "DP":
case gFamEnum.DP:
OWtablePath = workDir + "overlay" + "\\" + "overlay_0005.bin";
switch (gameLanguage) { // Go to the beginning of the overworld table
case "ENG":
@@ -387,7 +402,7 @@ namespace DSPRE {
break;
}
break;
case "Plat":
case gFamEnum.Plat:
OWtablePath = workDir + "overlay" + "\\" + "overlay_0005.bin";
switch (gameLanguage) { // Go to the beginning of the overworld table
case "ITA":
@@ -408,7 +423,7 @@ namespace DSPRE {
break;
}
break;
case "HGSS":
case gFamEnum.HGSS:
OWtablePath = workDir + "overlay" + "\\" + "overlay_0001.bin";
OWTableOffset = 0x21BA8;
break;
@@ -416,10 +431,10 @@ namespace DSPRE {
}
public static void SetConditionalMusicTableOffsetToRAMAddress() {
switch (gameFamily) {
case "HGSS":
case gFamEnum.HGSS:
switch (gameLanguage) {
case "ESP":
conditionalMusicTableOffsetToRAMAddress = gameVersion == "HG" ? (uint)0x667D0 : 0x667D8;
conditionalMusicTableOffsetToRAMAddress = gameVersion == gVerEnum.HeartGold ? (uint)0x667D0 : 0x667D8;
break;
case "ENG":
case "ITA":
@@ -434,12 +449,66 @@ namespace DSPRE {
break;
}
}
public static void SetEncounterMusicTableOffsetToRAMAddress() {
switch (gameFamily) {
case gFamEnum.HGSS:
switch (gameLanguage) {
case "ESP":
encounterMusicTableOffsetToRAMAddress = gameVersion == gVerEnum.HeartGold ? (uint)0x550D8 : 0x550E0;
break;
case "ENG":
case "ITA":
case "FRA":
case "GER":
encounterMusicTableOffsetToRAMAddress = 0x550E0;
break;
case "JAP":
encounterMusicTableOffsetToRAMAddress = 0x54B44;
break;
}
break;
case gFamEnum.Plat:
switch (gameLanguage) {
case "ENG":
encounterMusicTableOffsetToRAMAddress = 0x5563C;
break;
case "ITA":
case "FRA":
case "ESP":
case "GER":
encounterMusicTableOffsetToRAMAddress = 0x556E0;
break;
case "JAP":
encounterMusicTableOffsetToRAMAddress = 0x54F04;
break;
}
break;
case gFamEnum.DP:
switch (gameLanguage) {
case "ENG":
encounterMusicTableOffsetToRAMAddress = 0x4AD3C;
break;
case "ITA":
case "FRA":
case "ESP":
case "GER":
encounterMusicTableOffsetToRAMAddress = 0x4ADAC;
break;
case "JAP":
encounterMusicTableOffsetToRAMAddress = 0x4D9AC;
break;
}
break;
}
}
private void SetItemScriptFileNumber() {
switch (gameFamily) {
case "DP":
case gFamEnum.DP:
itemScriptFileNumber = 370;
break;
case "Plat":
case gFamEnum.Plat:
itemScriptFileNumber = 404;
break;
default:
@@ -449,21 +518,21 @@ namespace DSPRE {
}
private void SetNullEncounterID() {
switch (gameFamily) {
case "DP":
case "Plat":
case gFamEnum.DP:
case gFamEnum.Plat:
nullEncounterID = ushort.MaxValue;
break;
case "HGSS":
case gFamEnum.HGSS:
nullEncounterID = Byte.MaxValue;
break;
}
}
private void SetAttackNamesTextNumber() {
switch (gameFamily) {
case "DP":
case gFamEnum.DP:
attackNamesTextNumber = 588;
break;
case "Plat":
case gFamEnum.Plat:
attackNamesTextNumber = 647;
break;
default:
@@ -473,10 +542,10 @@ namespace DSPRE {
}
private void SetItemNamesTextNumber() {
switch (gameFamily) {
case "DP":
case gFamEnum.DP:
itemNamesTextNumber = 344;
break;
case "Plat":
case gFamEnum.Plat:
itemNamesTextNumber = 392;
break;
default:
@@ -486,10 +555,10 @@ namespace DSPRE {
}
private void SetLocationNamesTextNumber() {
switch (gameFamily) {
case "DP":
case gFamEnum.DP:
locationNamesTextNumber = 382;
break;
case "Plat":
case gFamEnum.Plat:
locationNamesTextNumber = 433;
break;
default:
@@ -499,26 +568,26 @@ namespace DSPRE {
}
private void SetPok<EFBFBD>monNamesTextNumber() {
switch (gameFamily) {
case "DP":
case gFamEnum.DP:
pokemonNamesTextNumbers = new int[2] { 362, 363 };
break;
case "Plat":
case gFamEnum.Plat:
pokemonNamesTextNumbers = new int[7] { 412, 413, 712, 713, 714, 715, 716 }; //413?
break;
case "HGSS":
case gFamEnum.HGSS:
pokemonNamesTextNumbers = new int[7] { 237, 238, 817, 818, 819, 820, 821 }; //238?
break;
}
}
private void SetTrainerNamesMessageNumber() {
switch (gameFamily) {
case "DP":
case gFamEnum.DP:
trainerNamesMessageNumber = 559;
if (gameLanguage.Equals("JAP")) {
trainerNamesMessageNumber -= 9;
}
break;
case "Plat":
case gFamEnum.Plat:
trainerNamesMessageNumber = 618;
break;
default:
@@ -531,13 +600,13 @@ namespace DSPRE {
}
private void SetTrainerClassMessageNumber() {
switch (gameFamily) {
case "DP":
case gFamEnum.DP:
trainerClassMessageNumber = 560;
if (gameLanguage.Equals("JAP")) {
trainerClassMessageNumber -= 9;
}
break;
case "Plat":
case gFamEnum.Plat:
trainerClassMessageNumber = 619;
break;
default:
@@ -571,33 +640,6 @@ namespace DSPRE {
#endregion
#region System Methods
private void LoadGameVersion() {
try {
gameVersion = PokeDatabase.System.versionsDict[romID];
} catch (KeyNotFoundException) {
MessageBox.Show("The ROM you attempted to load is not supported.\nYou can only load Gen IV Pok<6F>mon ROMS, for now.", "Unsupported ROM",
MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
private void LoadGameName() {
switch (gameVersion) {
case "D":
gameName = "Diamond";
break;
case "P":
gameName = "Pearl";
break;
case "Plat":
gameName = "Platinum";
break;
case "HG":
gameName = "HeartGold";
break;
case "SS":
gameName = "SoulSilver";
break;
}
}
private void LoadGameLanguage() {
switch (romID) {
case "ADAE":
@@ -648,23 +690,23 @@ namespace DSPRE {
}
private void LoadGameFamily() {
switch (gameVersion) {
case "D":
case "P":
gameFamily = "DP";
case gVerEnum.Diamond:
case gVerEnum.Pearl:
gameFamily = gFamEnum.DP;
break;
case "Plat":
gameFamily = "Plat";
case gVerEnum.Platinum:
gameFamily = gFamEnum.Plat;
break;
case "HG":
case "SS":
gameFamily = "HGSS";
case gVerEnum.HeartGold:
case gVerEnum.SoulSilver:
gameFamily = gFamEnum.HGSS;
break;
}
}
}
private void SetNarcDirs() {
Dictionary<DirNames, string> packedDirsDict = null;
switch (gameFamily) {
case "DP":
case gFamEnum.DP:
string suffix = "";
if (!gameLanguage.Equals("JAP"))
suffix = "_release";
@@ -691,15 +733,15 @@ namespace DSPRE {
[DirNames.trainerParty] = @"data\poketool\trainer\trpoke.narc",
[DirNames.trainerGraphics] = @"data\poketool\trgra\trfgra.narc",
[DirNames.encounters] = @"data\fielddata\encountdata\" + char.ToLower(gameVersion[0]) + '_' + "enc_data.narc"
[DirNames.encounters] = @"data\fielddata\encountdata\" + char.ToLower(gameVersion.ToString()[0]) + '_' + "enc_data.narc"
};
break;
case "Plat":
case gFamEnum.Plat:
packedDirsDict = new Dictionary<DirNames, string>() {
[DirNames.synthOverlay] = @"data\data\weather_sys.narc",
[DirNames.dynamicHeaders] = @"data\debug\cb_edit\d_test.narc",
[DirNames.textArchives] = @"data\msgdata\" + gameVersion.Substring(0, 2).ToLower() + '_' + "msg.narc",
[DirNames.textArchives] = @"data\msgdata\" + gameVersion.ToString().Substring(0, 2).ToLower() + '_' + "msg.narc",
[DirNames.matrices] = @"data\fielddata\mapmatrix\map_matrix.narc",
@@ -719,10 +761,10 @@ namespace DSPRE {
[DirNames.trainerParty] = @"data\poketool\trainer\trpoke.narc",
[DirNames.trainerGraphics] = @"data\poketool\trgra\trfgra.narc",
[DirNames.encounters] = @"data\fielddata\encountdata\" + gameVersion.Substring(0, 2).ToLower() + '_' + "enc_data.narc"
[DirNames.encounters] = @"data\fielddata\encountdata\" + gameVersion.ToString().Substring(0, 2).ToLower() + '_' + "enc_data.narc"
};
break;
case "HGSS":
case gFamEnum.HGSS:
packedDirsDict = new Dictionary<DirNames, string>() {
[DirNames.synthOverlay] = @"data\a\0\2\8",
[DirNames.dynamicHeaders] = @"data\a\0\5\0",
@@ -751,7 +793,7 @@ namespace DSPRE {
};
//Encounter archive is different for SS
packedDirsDict[DirNames.encounters] = gameVersion == "HG" ? @"data\a\0\3\7" : @"data\a\1\3\6";
packedDirsDict[DirNames.encounters] = gameVersion == gVerEnum.HeartGold ? @"data\a\0\3\7" : @"data\a\1\3\6";
break;
}
@@ -762,11 +804,11 @@ namespace DSPRE {
}
public static void LoadMapCellsColorDictionary() {
switch (gameFamily) {
case "DP":
case "Plat":
case gFamEnum.DP:
case gFamEnum.Plat:
MapCellsColorDictionary = PokeDatabase.System.MatrixCellColors.DPPtmatrixColorsDict;
break;
case "HGSS":
case gFamEnum.HGSS:
MapCellsColorDictionary = PokeDatabase.System.MatrixCellColors.HGSSmatrixColorsDict;
break;
}
@@ -777,8 +819,8 @@ namespace DSPRE {
public static void ReadOWTable() {
OverworldTable = new SortedDictionary<uint, (uint spriteID, ushort properties)>();
switch (gameFamily) {
case "DP":
case "Plat":
case gFamEnum.DP:
case gFamEnum.Plat:
using (BinaryReader idReader = new BinaryReader(new FileStream(OWtablePath, FileMode.Open))) {
idReader.BaseStream.Position = OWTableOffset;
@@ -791,7 +833,7 @@ namespace DSPRE {
}
}
break;
case "HGSS":
case gFamEnum.HGSS:
using (BinaryReader idReader = new BinaryReader(new FileStream(OWtablePath, FileMode.Open))) {
idReader.BaseStream.Position = OWTableOffset;

View File

@@ -54,10 +54,10 @@ namespace DSPRE {
string moneyOverlayPath = DSUtils.GetOverlayPath(RomInfo.initialMoneyOverlayNumber);
ushort headerNumber = ushort.Parse(spawnHeaderComboBox.SelectedItem.ToString().Split()[0]);
DSUtils.WriteToArm9(BitConverter.GetBytes(headerNumber), RomInfo.arm9spawnOffset);
DSUtils.WriteToArm9(BitConverter.GetBytes((short)(matrixxUpDown.Value * 32 + localmapxUpDown.Value)), RomInfo.arm9spawnOffset + 8);
DSUtils.WriteToArm9(BitConverter.GetBytes((short)(matrixyUpDown.Value * 32 + localmapyUpDown.Value)), RomInfo.arm9spawnOffset + 12);
DSUtils.WriteToArm9(BitConverter.GetBytes((short)playerDirCombobox.SelectedIndex), RomInfo.arm9spawnOffset + 16);
DSUtils.WriteBytesToArm9(BitConverter.GetBytes(headerNumber), RomInfo.arm9spawnOffset);
DSUtils.WriteBytesToArm9(BitConverter.GetBytes((short)(matrixxUpDown.Value * 32 + localmapxUpDown.Value)), RomInfo.arm9spawnOffset + 8);
DSUtils.WriteBytesToArm9(BitConverter.GetBytes((short)(matrixyUpDown.Value * 32 + localmapyUpDown.Value)), RomInfo.arm9spawnOffset + 12);
DSUtils.WriteBytesToArm9(BitConverter.GetBytes((short)playerDirCombobox.SelectedIndex), RomInfo.arm9spawnOffset + 16);
DSUtils.WriteToFile(moneyOverlayPath, BitConverter.GetBytes((int)initialMoneyUpDown.Value), RomInfo.initialMoneyOverlayOffset);
MessageBox.Show("Your spawn settings have been changed.", "Operation successful", MessageBoxButtons.OK, MessageBoxIcon.Information);
@@ -68,9 +68,9 @@ namespace DSPRE {
private void readDefaultSpawnPosButton_Click(object sender, EventArgs e) {;
SetupFields(names);
ushort headerNumber = BitConverter.ToUInt16(DSUtils.ReadFromArm9(RomInfo.arm9spawnOffset, 2), 0);
ushort globalX = BitConverter.ToUInt16(DSUtils.ReadFromArm9(RomInfo.arm9spawnOffset + 8, 2), 0);
ushort globalY = BitConverter.ToUInt16(DSUtils.ReadFromArm9(RomInfo.arm9spawnOffset + 12, 2), 0);
ushort headerNumber = BitConverter.ToUInt16(DSUtils.ReadBytesFromArm9(RomInfo.arm9spawnOffset, 2), 0);
ushort globalX = BitConverter.ToUInt16(DSUtils.ReadBytesFromArm9(RomInfo.arm9spawnOffset + 8, 2), 0);
ushort globalY = BitConverter.ToUInt16(DSUtils.ReadBytesFromArm9(RomInfo.arm9spawnOffset + 12, 2), 0);
spawnHeaderComboBox.SelectedIndex = headerNumber;
@@ -91,7 +91,7 @@ namespace DSPRE {
}
ReadDefaultMoney();
playerDirCombobox.SelectedIndex = BitConverter.ToUInt16(DSUtils.ReadFromArm9(RomInfo.arm9spawnOffset + 16, 2), 0);
playerDirCombobox.SelectedIndex = BitConverter.ToUInt16(DSUtils.ReadBytesFromArm9(RomInfo.arm9spawnOffset + 16, 2), 0);
}
private void ReadDefaultMoney() {
if (DSUtils.CheckOverlayHasCompressionFlag(RomInfo.initialMoneyOverlayNumber)) {
@@ -119,13 +119,13 @@ namespace DSPRE {
matrixyUpDown.Maximum = headerMatrix.maps.GetLength(0) - 1;
switch (RomInfo.gameFamily) {
case "DP":
case gFamEnum.DP:
locationNameLBL.Text = locations[((HeaderDP)currentHeader).locationName];
break;
case "Plat":
case gFamEnum.Plat:
locationNameLBL.Text = locations[((HeaderPt)currentHeader).locationName];
break;
case "HGSS":
case gFamEnum.HGSS:
locationNameLBL.Text = locations[((HeaderHGSS)currentHeader).locationName];
break;
}