Finished conversion of script editor + bugfixing

+ Minor refactor
+ Export MAP BIN button
+ Fixed type painters resetting after changing map
+ Added more type painter colors
+ Fixed type painters font size
+ Fixed type painter value [updown] limit
+ Moved ScriptCommand and Script to a separate file

+ Fixed Encounter Editor unpacking HG encounters for SS roms
This commit is contained in:
AdAstra-LD 2021-02-04 17:45:59 +01:00
parent 8d887ef83b
commit e52712bfab
9 changed files with 860 additions and 840 deletions

View File

@ -192,33 +192,26 @@ namespace DSPRE
LoadModelTextures(textureComboBox.SelectedIndex - 1);
RenderModel();
}
private void exportButton_Click(object sender, EventArgs e)
{
private void exportButton_Click(object sender, EventArgs e) {
SaveFileDialog em = new SaveFileDialog();
em.Filter = "NSBMD model (*.nsbmd)|*.nsbmd";
em.FileName = buildingEditorBldListBox.SelectedItem.ToString();
if (em.ShowDialog(this) != DialogResult.OK)
return;
else
File.Copy(folder + rom.GetBuildingModelsDirPath(interiorCheckBox.Checked) + "\\" + buildingEditorBldListBox.SelectedIndex.ToString("D4"), em.FileName, true);
File.Copy(folder + rom.GetBuildingModelsDirPath(interiorCheckBox.Checked) + "\\" + buildingEditorBldListBox.SelectedIndex.ToString("D4"), em.FileName, true);
}
private void importButton_Click(object sender, EventArgs e)
{
private void importButton_Click(object sender, EventArgs e) {
OpenFileDialog im = new OpenFileDialog();
im.Filter = "NSBMD model (*.nsbmd)|*.nsbmd";
if (im.ShowDialog(this) != DialogResult.OK)
return;
using (BinaryReader reader = new BinaryReader(new FileStream(im.FileName, FileMode.Open)))
{
if (reader.ReadUInt32() != 0x30444D42)
{
using (BinaryReader reader = new BinaryReader(new FileStream(im.FileName, FileMode.Open))) {
if (reader.ReadUInt32() != 0x30444D42) {
MessageBox.Show("Please select an NSBMD file.", "Invalid File");
return;
}
else
{
} else {
File.Copy(im.FileName, folder + rom.GetBuildingModelsDirPath(interiorCheckBox.Checked) + "\\" + buildingEditorBldListBox.SelectedIndex.ToString("D4"), true);
buildingsListBox_SelectedIndexChanged(null, null);
}
@ -237,12 +230,11 @@ namespace DSPRE
private void textureComboBox_SelectedIndexChanged(object sender, EventArgs e) {
if (disableHandlers)
return;
LoadModelTextures(textureComboBox.SelectedIndex - 1);
RenderModel();
}
private void buildingOpenGLControl_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
{
private void buildingOpenGLControl_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e) {
switch (e.KeyCode) {
case Keys.Right:
ang += 1;

View File

@ -142,6 +142,7 @@
<DependentUpon>CameraView.cs</DependentUpon>
</Compile>
<Compile Include="RomInfo.cs" />
<Compile Include="ScriptCommand.cs" />
<Compile Include="WildEditorHGSS.cs">
<SubType>Form</SubType>
</Compile>

View File

@ -30,21 +30,21 @@
{
this.components = new System.ComponentModel.Container();
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainProgram));
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 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();
this.mainTabControl = new System.Windows.Forms.TabControl();
this.headerEditorTabPage = new System.Windows.Forms.TabPage();
this.worldmapCoordsGroupBox = new System.Windows.Forms.GroupBox();
@ -175,11 +175,8 @@
this.matrixNameLabel = new System.Windows.Forms.Label();
this.matrixTabControl = new System.Windows.Forms.TabControl();
this.headersTabPage = new System.Windows.Forms.TabPage();
this.headersGridView = new DSPRE.DataGridViewDoubleBuffered();
this.heightsTabPage = new System.Windows.Forms.TabPage();
this.heightsGridView = new DSPRE.DataGridViewDoubleBuffered();
this.mapFilesTabPage = new System.Windows.Forms.TabPage();
this.mapFilesGridView = new DSPRE.DataGridViewDoubleBuffered();
this.matrixNameTextBox = new System.Windows.Forms.TextBox();
this.heightUpDown = new System.Windows.Forms.NumericUpDown();
this.widthUpDown = new System.Windows.Forms.NumericUpDown();
@ -187,6 +184,7 @@
this.widthLabel = new System.Windows.Forms.Label();
this.selectMatrixComboBox = new System.Windows.Forms.ComboBox();
this.mapEditorTabPage = new System.Windows.Forms.TabPage();
this.exportCurrentMapBinButton = new System.Windows.Forms.Button();
this.replaceMapBinButton = new System.Windows.Forms.Button();
this.addMapFileButton = new System.Windows.Forms.Button();
this.removeMapFileButton = new System.Windows.Forms.Button();
@ -462,7 +460,7 @@
this.eventOpenGlControl = new Tao.Platform.Windows.SimpleOpenGlControl();
this.scriptEditorTabPage = new System.Windows.Forms.TabPage();
this.groupBox8 = new System.Windows.Forms.GroupBox();
this.scriptCmdSearchCaseSensitiveCheckBox = new System.Windows.Forms.CheckBox();
this.scriptSearchCaseSensitiveCheckBox = new System.Windows.Forms.CheckBox();
this.searchInScriptsTextBox = new System.Windows.Forms.TextBox();
this.label31 = new System.Windows.Forms.Label();
this.searchProgressBar = new System.Windows.Forms.ProgressBar();
@ -553,13 +551,13 @@
this.groupBox13 = new System.Windows.Forms.GroupBox();
this.replaceOnlyCurrentCheckBox = new System.Windows.Forms.CheckBox();
this.searchOnlyCurrentCheckBox = new System.Windows.Forms.CheckBox();
this.caseSensitiveReplaceCheckbox = new System.Windows.Forms.CheckBox();
this.caseSensitiveTextReplaceCheckbox = new System.Windows.Forms.CheckBox();
this.textSearchResultsListBox = new System.Windows.Forms.ListBox();
this.replaceTextLabel = new System.Windows.Forms.Label();
this.replaceMessageTextBox = new System.Windows.Forms.TextBox();
this.label8 = new System.Windows.Forms.Label();
this.textSearchProgressBar = new System.Windows.Forms.ProgressBar();
this.caseSensitiveSearchCheckbox = new System.Windows.Forms.CheckBox();
this.caseSensitiveTextSearchCheckbox = new System.Windows.Forms.CheckBox();
this.label7 = new System.Windows.Forms.Label();
this.searchMessageTextBox = new System.Windows.Forms.TextBox();
this.searchMessageButton = new System.Windows.Forms.Button();
@ -603,6 +601,9 @@
this.headerSearchToolStripButton = new System.Windows.Forms.ToolStripButton();
this.versionLabel = new System.Windows.Forms.Label();
this.toolTip1 = new System.Windows.Forms.ToolTip(this.components);
this.headersGridView = new DSPRE.DataGridViewDoubleBuffered();
this.heightsGridView = new DSPRE.DataGridViewDoubleBuffered();
this.mapFilesGridView = new DSPRE.DataGridViewDoubleBuffered();
this.mainTabControl.SuspendLayout();
this.headerEditorTabPage.SuspendLayout();
this.worldmapCoordsGroupBox.SuspendLayout();
@ -633,11 +634,8 @@
this.matrixEditorTabPage.SuspendLayout();
this.matrixTabControl.SuspendLayout();
this.headersTabPage.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.headersGridView)).BeginInit();
this.heightsTabPage.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.heightsGridView)).BeginInit();
this.mapFilesTabPage.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.mapFilesGridView)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.heightUpDown)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.widthUpDown)).BeginInit();
this.mapEditorTabPage.SuspendLayout();
@ -759,6 +757,9 @@
this.menuStrip1.SuspendLayout();
this.statusStrip1.SuspendLayout();
this.mainToolStrip.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.headersGridView)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.heightsGridView)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.mapFilesGridView)).BeginInit();
this.SuspendLayout();
//
// mainTabControl
@ -2291,62 +2292,6 @@
this.headersTabPage.Text = "Map Headers";
this.headersTabPage.UseVisualStyleBackColor = true;
//
// headersGridView
//
this.headersGridView.AllowUserToAddRows = false;
this.headersGridView.AllowUserToDeleteRows = false;
this.headersGridView.AllowUserToResizeColumns = false;
this.headersGridView.AllowUserToResizeRows = false;
dataGridViewCellStyle16.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
this.headersGridView.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle16;
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;
dataGridViewCellStyle17.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
dataGridViewCellStyle17.BackColor = System.Drawing.SystemColors.Control;
dataGridViewCellStyle17.Font = new System.Drawing.Font("Microsoft Sans Serif", 7F);
dataGridViewCellStyle17.ForeColor = System.Drawing.SystemColors.WindowText;
dataGridViewCellStyle17.SelectionBackColor = System.Drawing.SystemColors.Highlight;
dataGridViewCellStyle17.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
dataGridViewCellStyle17.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
this.headersGridView.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle17;
this.headersGridView.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
dataGridViewCellStyle18.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
dataGridViewCellStyle18.BackColor = System.Drawing.SystemColors.Window;
dataGridViewCellStyle18.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
dataGridViewCellStyle18.ForeColor = System.Drawing.SystemColors.ControlText;
dataGridViewCellStyle18.Format = "D4";
dataGridViewCellStyle18.SelectionBackColor = System.Drawing.SystemColors.Highlight;
dataGridViewCellStyle18.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
dataGridViewCellStyle18.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
this.headersGridView.DefaultCellStyle = dataGridViewCellStyle18;
this.headersGridView.Location = new System.Drawing.Point(0, 0);
this.headersGridView.Name = "headersGridView";
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.RowHeadersDefaultCellStyle = dataGridViewCellStyle19;
this.headersGridView.RowHeadersWidth = 50;
this.headersGridView.RowHeadersWidthSizeMode = System.Windows.Forms.DataGridViewRowHeadersWidthSizeMode.DisableResizing;
dataGridViewCellStyle20.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
dataGridViewCellStyle20.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.headersGridView.RowsDefaultCellStyle = dataGridViewCellStyle20;
this.headersGridView.RowTemplate.DefaultCellStyle.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
this.headersGridView.RowTemplate.Height = 18;
this.headersGridView.RowTemplate.Resizable = System.Windows.Forms.DataGridViewTriState.False;
this.headersGridView.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.CellSelect;
this.headersGridView.ShowCellErrors = false;
this.headersGridView.Size = new System.Drawing.Size(1032, 566);
this.headersGridView.TabIndex = 1;
this.headersGridView.CellFormatting += new System.Windows.Forms.DataGridViewCellFormattingEventHandler(this.headersGridView_CellFormatting);
this.headersGridView.CellMouseDoubleClick += new System.Windows.Forms.DataGridViewCellMouseEventHandler(this.headersGridView_CellMouseDoubleClick);
this.headersGridView.CellValueChanged += new System.Windows.Forms.DataGridViewCellEventHandler(this.headersGridView_CellValueChanged);
//
// heightsTabPage
//
this.heightsTabPage.Controls.Add(this.heightsGridView);
@ -2357,60 +2302,6 @@
this.heightsTabPage.Text = "Map Heights";
this.heightsTabPage.UseVisualStyleBackColor = true;
//
// heightsGridView
//
this.heightsGridView.AllowUserToAddRows = false;
this.heightsGridView.AllowUserToDeleteRows = false;
this.heightsGridView.AllowUserToResizeColumns = false;
this.heightsGridView.AllowUserToResizeRows = false;
dataGridViewCellStyle21.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
this.heightsGridView.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle21;
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;
dataGridViewCellStyle22.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
dataGridViewCellStyle22.BackColor = System.Drawing.SystemColors.Control;
dataGridViewCellStyle22.Font = new System.Drawing.Font("Microsoft Sans Serif", 7F);
dataGridViewCellStyle22.ForeColor = System.Drawing.SystemColors.WindowText;
dataGridViewCellStyle22.SelectionBackColor = System.Drawing.SystemColors.Highlight;
dataGridViewCellStyle22.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
dataGridViewCellStyle22.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
this.heightsGridView.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle22;
this.heightsGridView.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
dataGridViewCellStyle23.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
dataGridViewCellStyle23.BackColor = System.Drawing.SystemColors.Window;
dataGridViewCellStyle23.Font = new System.Drawing.Font("Tahoma", 8.25F);
dataGridViewCellStyle23.ForeColor = System.Drawing.SystemColors.ControlText;
dataGridViewCellStyle23.Format = "D2";
dataGridViewCellStyle23.SelectionBackColor = System.Drawing.SystemColors.Highlight;
dataGridViewCellStyle23.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
dataGridViewCellStyle23.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
this.heightsGridView.DefaultCellStyle = dataGridViewCellStyle23;
this.heightsGridView.Location = new System.Drawing.Point(0, 0);
this.heightsGridView.Name = "heightsGridView";
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.RowHeadersDefaultCellStyle = dataGridViewCellStyle24;
this.heightsGridView.RowHeadersWidth = 50;
this.heightsGridView.RowHeadersWidthSizeMode = System.Windows.Forms.DataGridViewRowHeadersWidthSizeMode.DisableResizing;
dataGridViewCellStyle25.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
dataGridViewCellStyle25.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.heightsGridView.RowsDefaultCellStyle = dataGridViewCellStyle25;
this.heightsGridView.RowTemplate.DefaultCellStyle.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
this.heightsGridView.RowTemplate.Height = 18;
this.heightsGridView.RowTemplate.Resizable = System.Windows.Forms.DataGridViewTriState.False;
this.heightsGridView.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.CellSelect;
this.heightsGridView.Size = new System.Drawing.Size(1032, 566);
this.heightsGridView.TabIndex = 2;
this.heightsGridView.CellFormatting += new System.Windows.Forms.DataGridViewCellFormattingEventHandler(this.heightsGridView_CellFormatting);
this.heightsGridView.CellValueChanged += new System.Windows.Forms.DataGridViewCellEventHandler(this.heightsGridView_CellValueChanged);
//
// mapFilesTabPage
//
this.mapFilesTabPage.Controls.Add(this.mapFilesGridView);
@ -2421,61 +2312,6 @@
this.mapFilesTabPage.Text = "Map Files";
this.mapFilesTabPage.UseVisualStyleBackColor = true;
//
// mapFilesGridView
//
this.mapFilesGridView.AllowUserToAddRows = false;
this.mapFilesGridView.AllowUserToDeleteRows = false;
this.mapFilesGridView.AllowUserToResizeColumns = false;
this.mapFilesGridView.AllowUserToResizeRows = false;
dataGridViewCellStyle26.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
this.mapFilesGridView.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle26;
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;
dataGridViewCellStyle27.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
dataGridViewCellStyle27.BackColor = System.Drawing.SystemColors.Control;
dataGridViewCellStyle27.Font = new System.Drawing.Font("Microsoft Sans Serif", 7F);
dataGridViewCellStyle27.ForeColor = System.Drawing.SystemColors.WindowText;
dataGridViewCellStyle27.SelectionBackColor = System.Drawing.SystemColors.Highlight;
dataGridViewCellStyle27.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
dataGridViewCellStyle27.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
this.mapFilesGridView.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle27;
this.mapFilesGridView.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
dataGridViewCellStyle28.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
dataGridViewCellStyle28.BackColor = System.Drawing.SystemColors.Window;
dataGridViewCellStyle28.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
dataGridViewCellStyle28.ForeColor = System.Drawing.SystemColors.ControlText;
dataGridViewCellStyle28.Format = "D4";
dataGridViewCellStyle28.SelectionBackColor = System.Drawing.SystemColors.Highlight;
dataGridViewCellStyle28.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
dataGridViewCellStyle28.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
this.mapFilesGridView.DefaultCellStyle = dataGridViewCellStyle28;
this.mapFilesGridView.Location = new System.Drawing.Point(0, 0);
this.mapFilesGridView.Name = "mapFilesGridView";
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.RowHeadersDefaultCellStyle = dataGridViewCellStyle29;
this.mapFilesGridView.RowHeadersWidth = 50;
this.mapFilesGridView.RowHeadersWidthSizeMode = System.Windows.Forms.DataGridViewRowHeadersWidthSizeMode.DisableResizing;
dataGridViewCellStyle30.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
dataGridViewCellStyle30.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.mapFilesGridView.RowsDefaultCellStyle = dataGridViewCellStyle30;
this.mapFilesGridView.RowTemplate.DefaultCellStyle.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
this.mapFilesGridView.RowTemplate.Height = 18;
this.mapFilesGridView.RowTemplate.Resizable = System.Windows.Forms.DataGridViewTriState.False;
this.mapFilesGridView.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.CellSelect;
this.mapFilesGridView.Size = new System.Drawing.Size(1032, 566);
this.mapFilesGridView.TabIndex = 2;
this.mapFilesGridView.CellContentDoubleClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.mapFilesGridView_CellMouseDoubleClick);
this.mapFilesGridView.CellFormatting += new System.Windows.Forms.DataGridViewCellFormattingEventHandler(this.mapFilesGridView_CellFormatting);
this.mapFilesGridView.CellValueChanged += new System.Windows.Forms.DataGridViewCellEventHandler(this.mapFilesGridView_CellValueChanged);
//
// matrixNameTextBox
//
this.matrixNameTextBox.Location = new System.Drawing.Point(13, 73);
@ -2564,6 +2400,7 @@
// mapEditorTabPage
//
this.mapEditorTabPage.BackColor = System.Drawing.SystemColors.Window;
this.mapEditorTabPage.Controls.Add(this.exportCurrentMapBinButton);
this.mapEditorTabPage.Controls.Add(this.replaceMapBinButton);
this.mapEditorTabPage.Controls.Add(this.addMapFileButton);
this.mapEditorTabPage.Controls.Add(this.removeMapFileButton);
@ -2588,15 +2425,28 @@
this.mapEditorTabPage.Text = "Map Editor";
this.mapEditorTabPage.Enter += new System.EventHandler(this.mapEditorTabPage_Enter);
//
// exportCurrentMapBinButton
//
this.exportCurrentMapBinButton.Image = global::DSPRE.Properties.Resources.exportArrow;
this.exportCurrentMapBinButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight;
this.exportCurrentMapBinButton.Location = new System.Drawing.Point(345, 532);
this.exportCurrentMapBinButton.Name = "exportCurrentMapBinButton";
this.exportCurrentMapBinButton.Size = new System.Drawing.Size(84, 40);
this.exportCurrentMapBinButton.TabIndex = 38;
this.exportCurrentMapBinButton.Text = "Export \r\nMap BIN";
this.exportCurrentMapBinButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
this.exportCurrentMapBinButton.UseVisualStyleBackColor = true;
this.exportCurrentMapBinButton.Click += new System.EventHandler(this.exportCurrentMapBinButton_Click);
//
// replaceMapBinButton
//
this.replaceMapBinButton.Image = global::DSPRE.Properties.Resources.importArrow;
this.replaceMapBinButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight;
this.replaceMapBinButton.Location = new System.Drawing.Point(265, 532);
this.replaceMapBinButton.Location = new System.Drawing.Point(258, 532);
this.replaceMapBinButton.Name = "replaceMapBinButton";
this.replaceMapBinButton.Size = new System.Drawing.Size(158, 40);
this.replaceMapBinButton.Size = new System.Drawing.Size(84, 40);
this.replaceMapBinButton.TabIndex = 37;
this.replaceMapBinButton.Text = "Import and\r\nReplace Current";
this.replaceMapBinButton.Text = "Replace \r\nMap BIN";
this.replaceMapBinButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
this.replaceMapBinButton.UseVisualStyleBackColor = true;
this.replaceMapBinButton.Click += new System.EventHandler(this.replaceMapBinButton_Click);
@ -2605,9 +2455,9 @@
//
this.addMapFileButton.Image = global::DSPRE.Properties.Resources.addIcon;
this.addMapFileButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight;
this.addMapFileButton.Location = new System.Drawing.Point(265, 489);
this.addMapFileButton.Location = new System.Drawing.Point(258, 489);
this.addMapFileButton.Name = "addMapFileButton";
this.addMapFileButton.Size = new System.Drawing.Size(78, 40);
this.addMapFileButton.Size = new System.Drawing.Size(84, 40);
this.addMapFileButton.TabIndex = 36;
this.addMapFileButton.Text = "Add \r\nMap File";
this.addMapFileButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
@ -2620,7 +2470,7 @@
this.removeMapFileButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight;
this.removeMapFileButton.Location = new System.Drawing.Point(345, 489);
this.removeMapFileButton.Name = "removeMapFileButton";
this.removeMapFileButton.Size = new System.Drawing.Size(78, 40);
this.removeMapFileButton.Size = new System.Drawing.Size(84, 40);
this.removeMapFileButton.TabIndex = 35;
this.removeMapFileButton.Text = "Remove \r\nLast Map";
this.removeMapFileButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
@ -2671,9 +2521,9 @@
//
this.saveMapButton.Image = global::DSPRE.Properties.Resources.save_rom;
this.saveMapButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight;
this.saveMapButton.Location = new System.Drawing.Point(265, 575);
this.saveMapButton.Location = new System.Drawing.Point(258, 575);
this.saveMapButton.Name = "saveMapButton";
this.saveMapButton.Size = new System.Drawing.Size(158, 40);
this.saveMapButton.Size = new System.Drawing.Size(171, 40);
this.saveMapButton.TabIndex = 34;
this.saveMapButton.Text = "Save Current Map File";
this.saveMapButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
@ -3158,8 +3008,13 @@
this.typePainterUpDown.Enabled = false;
this.typePainterUpDown.Hexadecimal = true;
this.typePainterUpDown.Location = new System.Drawing.Point(134, 101);
this.typePainterUpDown.Maximum = new decimal(new int[] {
255,
0,
0,
0});
this.typePainterUpDown.Name = "typePainterUpDown";
this.typePainterUpDown.Size = new System.Drawing.Size(74, 20);
this.typePainterUpDown.Size = new System.Drawing.Size(78, 20);
this.typePainterUpDown.TabIndex = 3;
this.typePainterUpDown.ValueChanged += new System.EventHandler(this.typePainterUpDown_ValueChanged);
//
@ -3204,7 +3059,7 @@
this.collisionPainterComboBox.Name = "collisionPainterComboBox";
this.collisionPainterComboBox.Size = new System.Drawing.Size(234, 21);
this.collisionPainterComboBox.TabIndex = 1;
this.collisionPainterComboBox.SelectedIndexChanged += new System.EventHandler(this.collisionPainterComboBox_SelectedIndexChanged);
this.collisionPainterComboBox.SelectedIndexChanged += new System.EventHandler(this.collisionPainterComboBox_ResetSelection);
//
// collisionPainterPictureBox
//
@ -4182,9 +4037,9 @@
//
this.removeEventFileButton.Image = global::DSPRE.Properties.Resources.deleteIcon;
this.removeEventFileButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight;
this.removeEventFileButton.Location = new System.Drawing.Point(367, 36);
this.removeEventFileButton.Location = new System.Drawing.Point(354, 36);
this.removeEventFileButton.Name = "removeEventFileButton";
this.removeEventFileButton.Size = new System.Drawing.Size(93, 25);
this.removeEventFileButton.Size = new System.Drawing.Size(98, 25);
this.removeEventFileButton.TabIndex = 54;
this.removeEventFileButton.Text = "Remove Last";
this.removeEventFileButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
@ -4195,9 +4050,9 @@
//
this.addEventFileButton.Image = global::DSPRE.Properties.Resources.addIcon;
this.addEventFileButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight;
this.addEventFileButton.Location = new System.Drawing.Point(367, 9);
this.addEventFileButton.Location = new System.Drawing.Point(354, 9);
this.addEventFileButton.Name = "addEventFileButton";
this.addEventFileButton.Size = new System.Drawing.Size(93, 25);
this.addEventFileButton.Size = new System.Drawing.Size(98, 25);
this.addEventFileButton.TabIndex = 53;
this.addEventFileButton.Text = "Add Event";
this.addEventFileButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
@ -4324,7 +4179,7 @@
this.selectEventComboBox.FormattingEnabled = true;
this.selectEventComboBox.Location = new System.Drawing.Point(10, 11);
this.selectEventComboBox.Name = "selectEventComboBox";
this.selectEventComboBox.Size = new System.Drawing.Size(181, 21);
this.selectEventComboBox.Size = new System.Drawing.Size(164, 21);
this.selectEventComboBox.TabIndex = 41;
this.selectEventComboBox.SelectedIndexChanged += new System.EventHandler(this.selectEventComboBox_SelectedIndexChanged);
//
@ -4332,9 +4187,9 @@
//
this.exportEventFileButton.Image = global::DSPRE.Properties.Resources.exportArrow;
this.exportEventFileButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight;
this.exportEventFileButton.Location = new System.Drawing.Point(282, 9);
this.exportEventFileButton.Location = new System.Drawing.Point(266, 9);
this.exportEventFileButton.Name = "exportEventFileButton";
this.exportEventFileButton.Size = new System.Drawing.Size(82, 52);
this.exportEventFileButton.Size = new System.Drawing.Size(84, 52);
this.exportEventFileButton.TabIndex = 36;
this.exportEventFileButton.Text = "Export";
this.exportEventFileButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
@ -4345,9 +4200,9 @@
//
this.importEventFileButton.Image = global::DSPRE.Properties.Resources.importArrow;
this.importEventFileButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight;
this.importEventFileButton.Location = new System.Drawing.Point(197, 9);
this.importEventFileButton.Location = new System.Drawing.Point(178, 9);
this.importEventFileButton.Name = "importEventFileButton";
this.importEventFileButton.Size = new System.Drawing.Size(82, 52);
this.importEventFileButton.Size = new System.Drawing.Size(84, 52);
this.importEventFileButton.TabIndex = 35;
this.importEventFileButton.Text = "Replace\r\nCurrent";
this.importEventFileButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
@ -4358,7 +4213,7 @@
//
this.saveEventsButton.Location = new System.Drawing.Point(9, 36);
this.saveEventsButton.Name = "saveEventsButton";
this.saveEventsButton.Size = new System.Drawing.Size(183, 25);
this.saveEventsButton.Size = new System.Drawing.Size(166, 25);
this.saveEventsButton.TabIndex = 34;
this.saveEventsButton.Text = "Save Events";
this.saveEventsButton.UseVisualStyleBackColor = true;
@ -5996,7 +5851,7 @@
//
// groupBox8
//
this.groupBox8.Controls.Add(this.scriptCmdSearchCaseSensitiveCheckBox);
this.groupBox8.Controls.Add(this.scriptSearchCaseSensitiveCheckBox);
this.groupBox8.Controls.Add(this.searchInScriptsTextBox);
this.groupBox8.Controls.Add(this.label31);
this.groupBox8.Controls.Add(this.searchProgressBar);
@ -6011,21 +5866,21 @@
this.groupBox8.TabStop = false;
this.groupBox8.Text = "Search for commands:";
//
// scriptCmdSearchCaseSensitiveCheckBox
// scriptSearchCaseSensitiveCheckBox
//
this.scriptCmdSearchCaseSensitiveCheckBox.AutoSize = true;
this.scriptCmdSearchCaseSensitiveCheckBox.Location = new System.Drawing.Point(315, 37);
this.scriptCmdSearchCaseSensitiveCheckBox.Name = "scriptCmdSearchCaseSensitiveCheckBox";
this.scriptCmdSearchCaseSensitiveCheckBox.Size = new System.Drawing.Size(96, 17);
this.scriptCmdSearchCaseSensitiveCheckBox.TabIndex = 39;
this.scriptCmdSearchCaseSensitiveCheckBox.Text = "Case Sensitive";
this.scriptCmdSearchCaseSensitiveCheckBox.UseVisualStyleBackColor = true;
this.scriptSearchCaseSensitiveCheckBox.AutoSize = true;
this.scriptSearchCaseSensitiveCheckBox.Location = new System.Drawing.Point(340, 37);
this.scriptSearchCaseSensitiveCheckBox.Name = "scriptSearchCaseSensitiveCheckBox";
this.scriptSearchCaseSensitiveCheckBox.Size = new System.Drawing.Size(83, 17);
this.scriptSearchCaseSensitiveCheckBox.TabIndex = 39;
this.scriptSearchCaseSensitiveCheckBox.Text = "Match Case";
this.scriptSearchCaseSensitiveCheckBox.UseVisualStyleBackColor = true;
//
// searchInScriptsTextBox
//
this.searchInScriptsTextBox.Location = new System.Drawing.Point(11, 35);
this.searchInScriptsTextBox.Name = "searchInScriptsTextBox";
this.searchInScriptsTextBox.Size = new System.Drawing.Size(295, 20);
this.searchInScriptsTextBox.Size = new System.Drawing.Size(319, 20);
this.searchInScriptsTextBox.TabIndex = 38;
this.searchInScriptsTextBox.KeyDown += new System.Windows.Forms.KeyEventHandler(this.searchInScriptsTextBox_KeyDown);
//
@ -6042,7 +5897,7 @@
//
this.searchProgressBar.Location = new System.Drawing.Point(9, 264);
this.searchProgressBar.Name = "searchProgressBar";
this.searchProgressBar.Size = new System.Drawing.Size(501, 23);
this.searchProgressBar.Size = new System.Drawing.Size(511, 23);
this.searchProgressBar.TabIndex = 36;
//
// label30
@ -6065,7 +5920,7 @@
//
// searchInScriptsButton
//
this.searchInScriptsButton.Location = new System.Drawing.Point(416, 26);
this.searchInScriptsButton.Location = new System.Drawing.Point(429, 26);
this.searchInScriptsButton.Name = "searchInScriptsButton";
this.searchInScriptsButton.Size = new System.Drawing.Size(91, 36);
this.searchInScriptsButton.TabIndex = 32;
@ -6077,7 +5932,7 @@
//
this.searchInScriptsResultListBox.Location = new System.Drawing.Point(10, 79);
this.searchInScriptsResultListBox.Name = "searchInScriptsResultListBox";
this.searchInScriptsResultListBox.Size = new System.Drawing.Size(500, 160);
this.searchInScriptsResultListBox.Size = new System.Drawing.Size(510, 160);
this.searchInScriptsResultListBox.TabIndex = 17;
this.searchInScriptsResultListBox.KeyDown += new System.Windows.Forms.KeyEventHandler(this.searchInScriptsResultListBox_KeyDown);
this.searchInScriptsResultListBox.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.searchInScripts_GoToEntryResult);
@ -6086,7 +5941,7 @@
//
this.importScriptFileButton.Image = global::DSPRE.Properties.Resources.importArrow;
this.importScriptFileButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight;
this.importScriptFileButton.Location = new System.Drawing.Point(204, 17);
this.importScriptFileButton.Location = new System.Drawing.Point(218, 17);
this.importScriptFileButton.Name = "importScriptFileButton";
this.importScriptFileButton.Size = new System.Drawing.Size(96, 52);
this.importScriptFileButton.TabIndex = 16;
@ -6099,7 +5954,7 @@
//
this.exportScriptFileButton.Image = global::DSPRE.Properties.Resources.exportArrow;
this.exportScriptFileButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight;
this.exportScriptFileButton.Location = new System.Drawing.Point(306, 17);
this.exportScriptFileButton.Location = new System.Drawing.Point(318, 16);
this.exportScriptFileButton.Name = "exportScriptFileButton";
this.exportScriptFileButton.Size = new System.Drawing.Size(96, 52);
this.exportScriptFileButton.TabIndex = 15;
@ -6112,7 +5967,7 @@
//
this.saveScriptFileButton.Location = new System.Drawing.Point(7, 46);
this.saveScriptFileButton.Name = "saveScriptFileButton";
this.saveScriptFileButton.Size = new System.Drawing.Size(189, 23);
this.saveScriptFileButton.Size = new System.Drawing.Size(203, 23);
this.saveScriptFileButton.TabIndex = 14;
this.saveScriptFileButton.Text = "&Save Current";
this.saveScriptFileButton.UseVisualStyleBackColor = true;
@ -6122,7 +5977,7 @@
//
this.removeScriptFileButton.Image = global::DSPRE.Properties.Resources.deleteIcon;
this.removeScriptFileButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight;
this.removeScriptFileButton.Location = new System.Drawing.Point(408, 44);
this.removeScriptFileButton.Location = new System.Drawing.Point(422, 43);
this.removeScriptFileButton.Name = "removeScriptFileButton";
this.removeScriptFileButton.Size = new System.Drawing.Size(106, 25);
this.removeScriptFileButton.TabIndex = 13;
@ -6135,7 +5990,7 @@
//
this.addScriptFileButton.Image = global::DSPRE.Properties.Resources.addIcon;
this.addScriptFileButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight;
this.addScriptFileButton.Location = new System.Drawing.Point(408, 17);
this.addScriptFileButton.Location = new System.Drawing.Point(422, 16);
this.addScriptFileButton.Name = "addScriptFileButton";
this.addScriptFileButton.Size = new System.Drawing.Size(106, 25);
this.addScriptFileButton.TabIndex = 10;
@ -7072,7 +6927,7 @@
this.selectScriptFileComboBox.FormattingEnabled = true;
this.selectScriptFileComboBox.Location = new System.Drawing.Point(8, 20);
this.selectScriptFileComboBox.Name = "selectScriptFileComboBox";
this.selectScriptFileComboBox.Size = new System.Drawing.Size(187, 21);
this.selectScriptFileComboBox.Size = new System.Drawing.Size(201, 21);
this.selectScriptFileComboBox.TabIndex = 0;
this.selectScriptFileComboBox.SelectedIndexChanged += new System.EventHandler(this.selectScriptFileComboBox_SelectedIndexChanged);
//
@ -7103,7 +6958,7 @@
//
this.LineNumbersFormatgroupBox.Controls.Add(this.decimalRadioButton);
this.LineNumbersFormatgroupBox.Controls.Add(this.hexRadiobutton);
this.LineNumbersFormatgroupBox.Location = new System.Drawing.Point(580, 36);
this.LineNumbersFormatgroupBox.Location = new System.Drawing.Point(594, 36);
this.LineNumbersFormatgroupBox.Name = "LineNumbersFormatgroupBox";
this.LineNumbersFormatgroupBox.Size = new System.Drawing.Size(134, 35);
this.LineNumbersFormatgroupBox.TabIndex = 34;
@ -7137,13 +6992,13 @@
//
this.groupBox13.Controls.Add(this.replaceOnlyCurrentCheckBox);
this.groupBox13.Controls.Add(this.searchOnlyCurrentCheckBox);
this.groupBox13.Controls.Add(this.caseSensitiveReplaceCheckbox);
this.groupBox13.Controls.Add(this.caseSensitiveTextReplaceCheckbox);
this.groupBox13.Controls.Add(this.textSearchResultsListBox);
this.groupBox13.Controls.Add(this.replaceTextLabel);
this.groupBox13.Controls.Add(this.replaceMessageTextBox);
this.groupBox13.Controls.Add(this.label8);
this.groupBox13.Controls.Add(this.textSearchProgressBar);
this.groupBox13.Controls.Add(this.caseSensitiveSearchCheckbox);
this.groupBox13.Controls.Add(this.caseSensitiveTextSearchCheckbox);
this.groupBox13.Controls.Add(this.label7);
this.groupBox13.Controls.Add(this.searchMessageTextBox);
this.groupBox13.Controls.Add(this.searchMessageButton);
@ -7176,15 +7031,15 @@
this.searchOnlyCurrentCheckBox.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
this.searchOnlyCurrentCheckBox.UseVisualStyleBackColor = true;
//
// caseSensitiveReplaceCheckbox
// caseSensitiveTextReplaceCheckbox
//
this.caseSensitiveReplaceCheckbox.AutoSize = true;
this.caseSensitiveReplaceCheckbox.Location = new System.Drawing.Point(190, 133);
this.caseSensitiveReplaceCheckbox.Name = "caseSensitiveReplaceCheckbox";
this.caseSensitiveReplaceCheckbox.Size = new System.Drawing.Size(83, 17);
this.caseSensitiveReplaceCheckbox.TabIndex = 39;
this.caseSensitiveReplaceCheckbox.Text = "Match Case";
this.caseSensitiveReplaceCheckbox.UseVisualStyleBackColor = true;
this.caseSensitiveTextReplaceCheckbox.AutoSize = true;
this.caseSensitiveTextReplaceCheckbox.Location = new System.Drawing.Point(190, 133);
this.caseSensitiveTextReplaceCheckbox.Name = "caseSensitiveTextReplaceCheckbox";
this.caseSensitiveTextReplaceCheckbox.Size = new System.Drawing.Size(83, 17);
this.caseSensitiveTextReplaceCheckbox.TabIndex = 39;
this.caseSensitiveTextReplaceCheckbox.Text = "Match Case";
this.caseSensitiveTextReplaceCheckbox.UseVisualStyleBackColor = true;
//
// textSearchResultsListBox
//
@ -7229,15 +7084,15 @@
this.textSearchProgressBar.Style = System.Windows.Forms.ProgressBarStyle.Continuous;
this.textSearchProgressBar.TabIndex = 34;
//
// caseSensitiveSearchCheckbox
// caseSensitiveTextSearchCheckbox
//
this.caseSensitiveSearchCheckbox.AutoSize = true;
this.caseSensitiveSearchCheckbox.Location = new System.Drawing.Point(190, 49);
this.caseSensitiveSearchCheckbox.Name = "caseSensitiveSearchCheckbox";
this.caseSensitiveSearchCheckbox.Size = new System.Drawing.Size(83, 17);
this.caseSensitiveSearchCheckbox.TabIndex = 33;
this.caseSensitiveSearchCheckbox.Text = "Match Case";
this.caseSensitiveSearchCheckbox.UseVisualStyleBackColor = true;
this.caseSensitiveTextSearchCheckbox.AutoSize = true;
this.caseSensitiveTextSearchCheckbox.Location = new System.Drawing.Point(190, 49);
this.caseSensitiveTextSearchCheckbox.Name = "caseSensitiveTextSearchCheckbox";
this.caseSensitiveTextSearchCheckbox.Size = new System.Drawing.Size(83, 17);
this.caseSensitiveTextSearchCheckbox.TabIndex = 33;
this.caseSensitiveTextSearchCheckbox.Text = "Match Case";
this.caseSensitiveTextSearchCheckbox.UseVisualStyleBackColor = true;
//
// label7
//
@ -7336,7 +7191,7 @@
//
this.exportTextFileButton.Image = global::DSPRE.Properties.Resources.exportArrow;
this.exportTextFileButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight;
this.exportTextFileButton.Location = new System.Drawing.Point(298, 21);
this.exportTextFileButton.Location = new System.Drawing.Point(297, 21);
this.exportTextFileButton.Name = "exportTextFileButton";
this.exportTextFileButton.Size = new System.Drawing.Size(94, 50);
this.exportTextFileButton.TabIndex = 23;
@ -7372,9 +7227,9 @@
//
this.removeMessageFileButton.Image = global::DSPRE.Properties.Resources.deleteIcon;
this.removeMessageFileButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight;
this.removeMessageFileButton.Location = new System.Drawing.Point(483, 21);
this.removeMessageFileButton.Location = new System.Drawing.Point(491, 21);
this.removeMessageFileButton.Name = "removeMessageFileButton";
this.removeMessageFileButton.Size = new System.Drawing.Size(88, 50);
this.removeMessageFileButton.Size = new System.Drawing.Size(97, 50);
this.removeMessageFileButton.TabIndex = 20;
this.removeMessageFileButton.Text = "Remove \r\nLast Archive";
this.removeMessageFileButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
@ -7387,7 +7242,7 @@
this.addTextArchiveButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight;
this.addTextArchiveButton.Location = new System.Drawing.Point(397, 21);
this.addTextArchiveButton.Name = "addTextArchiveButton";
this.addTextArchiveButton.Size = new System.Drawing.Size(82, 50);
this.addTextArchiveButton.Size = new System.Drawing.Size(91, 50);
this.addTextArchiveButton.TabIndex = 19;
this.addTextArchiveButton.Text = "Add Text \r\nArchive";
this.addTextArchiveButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
@ -7690,6 +7545,171 @@
this.versionLabel.TabIndex = 9;
this.versionLabel.Text = "ROM:";
//
// headersGridView
//
this.headersGridView.AllowUserToAddRows = false;
this.headersGridView.AllowUserToDeleteRows = false;
this.headersGridView.AllowUserToResizeColumns = false;
this.headersGridView.AllowUserToResizeRows = false;
dataGridViewCellStyle1.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
this.headersGridView.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle1;
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;
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;
this.headersGridView.Location = new System.Drawing.Point(0, 0);
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;
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;
this.headersGridView.RowTemplate.DefaultCellStyle.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
this.headersGridView.RowTemplate.Height = 18;
this.headersGridView.RowTemplate.Resizable = System.Windows.Forms.DataGridViewTriState.False;
this.headersGridView.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.CellSelect;
this.headersGridView.ShowCellErrors = false;
this.headersGridView.Size = new System.Drawing.Size(1032, 566);
this.headersGridView.TabIndex = 1;
this.headersGridView.CellFormatting += new System.Windows.Forms.DataGridViewCellFormattingEventHandler(this.headersGridView_CellFormatting);
this.headersGridView.CellMouseDoubleClick += new System.Windows.Forms.DataGridViewCellMouseEventHandler(this.headersGridView_CellMouseDoubleClick);
this.headersGridView.CellValueChanged += new System.Windows.Forms.DataGridViewCellEventHandler(this.headersGridView_CellValueChanged);
//
// heightsGridView
//
this.heightsGridView.AllowUserToAddRows = false;
this.heightsGridView.AllowUserToDeleteRows = false;
this.heightsGridView.AllowUserToResizeColumns = false;
this.heightsGridView.AllowUserToResizeRows = false;
dataGridViewCellStyle6.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
this.heightsGridView.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle6;
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;
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;
this.heightsGridView.Location = new System.Drawing.Point(0, 0);
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;
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;
this.heightsGridView.RowTemplate.DefaultCellStyle.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
this.heightsGridView.RowTemplate.Height = 18;
this.heightsGridView.RowTemplate.Resizable = System.Windows.Forms.DataGridViewTriState.False;
this.heightsGridView.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.CellSelect;
this.heightsGridView.Size = new System.Drawing.Size(1032, 566);
this.heightsGridView.TabIndex = 2;
this.heightsGridView.CellFormatting += new System.Windows.Forms.DataGridViewCellFormattingEventHandler(this.heightsGridView_CellFormatting);
this.heightsGridView.CellValueChanged += new System.Windows.Forms.DataGridViewCellEventHandler(this.heightsGridView_CellValueChanged);
//
// mapFilesGridView
//
this.mapFilesGridView.AllowUserToAddRows = false;
this.mapFilesGridView.AllowUserToDeleteRows = false;
this.mapFilesGridView.AllowUserToResizeColumns = false;
this.mapFilesGridView.AllowUserToResizeRows = false;
dataGridViewCellStyle11.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
this.mapFilesGridView.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle11;
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;
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;
this.mapFilesGridView.Location = new System.Drawing.Point(0, 0);
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;
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;
this.mapFilesGridView.RowTemplate.DefaultCellStyle.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
this.mapFilesGridView.RowTemplate.Height = 18;
this.mapFilesGridView.RowTemplate.Resizable = System.Windows.Forms.DataGridViewTriState.False;
this.mapFilesGridView.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.CellSelect;
this.mapFilesGridView.Size = new System.Drawing.Size(1032, 566);
this.mapFilesGridView.TabIndex = 2;
this.mapFilesGridView.CellContentDoubleClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.mapFilesGridView_CellMouseDoubleClick);
this.mapFilesGridView.CellFormatting += new System.Windows.Forms.DataGridViewCellFormattingEventHandler(this.mapFilesGridView_CellFormatting);
this.mapFilesGridView.CellValueChanged += new System.Windows.Forms.DataGridViewCellEventHandler(this.mapFilesGridView_CellValueChanged);
//
// MainProgram
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
@ -7749,11 +7769,8 @@
this.matrixEditorTabPage.PerformLayout();
this.matrixTabControl.ResumeLayout(false);
this.headersTabPage.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.headersGridView)).EndInit();
this.heightsTabPage.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.heightsGridView)).EndInit();
this.mapFilesTabPage.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.mapFilesGridView)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.heightUpDown)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.widthUpDown)).EndInit();
this.mapEditorTabPage.ResumeLayout(false);
@ -7912,6 +7929,9 @@
this.statusStrip1.PerformLayout();
this.mainToolStrip.ResumeLayout(false);
this.mainToolStrip.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.headersGridView)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.heightsGridView)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.mapFilesGridView)).EndInit();
this.ResumeLayout(false);
this.PerformLayout();
@ -8123,7 +8143,7 @@
private System.Windows.Forms.Label label7;
private System.Windows.Forms.Button searchMessageButton;
private System.Windows.Forms.Button replaceMessageButton;
private System.Windows.Forms.CheckBox caseSensitiveSearchCheckbox;
private System.Windows.Forms.CheckBox caseSensitiveTextSearchCheckbox;
private System.Windows.Forms.ProgressBar textSearchProgressBar;
private System.Windows.Forms.Label label8;
private System.Windows.Forms.TabPage tabPage1;
@ -8388,7 +8408,7 @@
private System.Windows.Forms.Button pasteCameraAngleButton;
private System.Windows.Forms.Button copyCameraAngleButton;
private System.Windows.Forms.ListBox textSearchResultsListBox;
private System.Windows.Forms.CheckBox caseSensitiveReplaceCheckbox;
private System.Windows.Forms.CheckBox caseSensitiveTextReplaceCheckbox;
private System.Windows.Forms.CheckBox replaceOnlyCurrentCheckBox;
private System.Windows.Forms.CheckBox searchOnlyCurrentCheckBox;
private System.Windows.Forms.NumericUpDown musicDayUpDown;
@ -8419,7 +8439,7 @@
private System.Windows.Forms.Button button2;
private System.Windows.Forms.Button button1;
private System.Windows.Forms.Button warpButton;
private System.Windows.Forms.CheckBox scriptCmdSearchCaseSensitiveCheckBox;
private System.Windows.Forms.CheckBox scriptSearchCaseSensitiveCheckBox;
private System.Windows.Forms.Button waitMovementButton;
private System.Windows.Forms.Button applyMovementButton;
private System.Windows.Forms.Button setOwPositionButton;
@ -8476,6 +8496,7 @@
private System.Windows.Forms.Label label19;
private System.Windows.Forms.NumericUpDown expectedVarValueTriggerUpDown;
private System.Windows.Forms.GroupBox triggerLogicGroupBox;
private System.Windows.Forms.Button exportCurrentMapBinButton;
}
}

View File

@ -2599,7 +2599,7 @@ namespace DSPRE {
private void addMapFileButton_Click(object sender, EventArgs e) {
/* Add new map file to map folder */
string mapFilePath = RomInfo.mapDirPath + "\\" + selectMapComboBox.Items.Count.ToString("D4");
using (BinaryWriter writer = new BinaryWriter(new FileStream(mapFilePath, FileMode.Create))) writer.Write(LoadMapFile(0).Save());
using (BinaryWriter writer = new BinaryWriter(new FileStream(mapFilePath, FileMode.Create))) writer.Write(LoadMapFile(0).ToByteArray());
/* Update ComboBox and select new file */
selectMapComboBox.Items.Add(selectMapComboBox.Items.Count.ToString("D3") + Header.nameSeparator + "newmap");
@ -2770,28 +2770,26 @@ namespace DSPRE {
ang, dist, elev, perspective,
mapOpenGlControl.Width, mapOpenGlControl.Height, mapTexturesOn, showBuildingTextures);
}
private void cam2Dmode() {
perspective = 4f;
ang = 0f;
dist = 115.2f;
elev = 90f;
}
private void cam3Dmode() {
perspective = 45f;
ang = 0f;
dist = 12.8f;
elev = 50.0f;
}
private void removeMapFileButton_Click(object sender, EventArgs e) {
/* Delete last map file */
File.Delete(RomInfo.mapDirPath + "\\" + (selectMapComboBox.Items.Count - 1).ToString("D4"));
/* Check if currently selected file is the last one, and in that case select the one before it */
int lastIndex = selectMapComboBox.Items.Count - 1;
if (selectMapComboBox.SelectedIndex == lastIndex) selectMapComboBox.SelectedIndex--;
if (selectMapComboBox.SelectedIndex == lastIndex)
selectMapComboBox.SelectedIndex--;
/* Remove item from ComboBox */
selectMapComboBox.Items.RemoveAt(lastIndex);
@ -2799,7 +2797,20 @@ namespace DSPRE {
private void saveMapButton_Click(object sender, EventArgs e) {
string mapIndex = selectMapComboBox.SelectedIndex.ToString("D4");
using (BinaryWriter writer = new BinaryWriter(new FileStream(RomInfo.mapDirPath + "\\" + mapIndex, FileMode.Create)))
writer.Write(currentMapFile.Save());
writer.Write(currentMapFile.ToByteArray());
}
private void exportCurrentMapBinButton_Click(object sender, EventArgs e) {
SaveFileDialog eb = new SaveFileDialog();
eb.Filter = "Gen IV Map BIN File (*.bin)|*.bin";
eb.FileName = selectMapComboBox.SelectedItem.ToString();
if (eb.ShowDialog(this) != DialogResult.OK)
return;
using (BinaryWriter writer = new BinaryWriter(File.OpenWrite(eb.FileName))) {
writer.Write(currentMapFile.ToByteArray());
}
MessageBox.Show("Map BIN exported successfully!", "", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
private void selectMapComboBox_SelectedIndexChanged(object sender, EventArgs e) {
if (disableHandlers)
@ -2812,7 +2823,6 @@ namespace DSPRE {
if (mapTextureComboBox.SelectedIndex > 0)
currentMapFile.mapModel = LoadModelTextures(currentMapFile.mapModel, romInfo.mapTexturesDirPath, mapTextureComboBox.SelectedIndex - 1);
/* Load buildings nsbmd and textures for renderer into MapFile's building objects */
for (int i = 0; i < currentMapFile.buildings.Count; i++) {
currentMapFile.buildings[i] = LoadBuildingModel(currentMapFile.buildings[i], interiorbldRadioButton.Checked); // Load building nsbmd
@ -2824,19 +2834,20 @@ namespace DSPRE {
RenderMap(ref mapRenderer, ref buildingsRenderer, ref currentMapFile, ang, dist, elev, perspective, mapOpenGlControl.Width, mapOpenGlControl.Height, mapTexturesOn, showBuildingTextures);
/* Draw permissions in the small selection boxes */
Draw_Small_Collision();
Draw_Small_Type();
DrawSmallCollision();
DrawSmallTypeCollision();
/* Draw selected permissions category */
if (selectCollisionPanel.BackColor == Color.MidnightBlue) {
Draw_Collision_Grid();
DrawCollisionGrid();
} else {
Draw_Type_Grid();
DrawTypeGrid();
}
/* Set map screenshot as background picture in permissions editor PictureBox */
movPictureBox.BackgroundImage = GrabMapScreenshot(movPictureBox.Width, movPictureBox.Height);
RestorePainter();
/* Fill buildings ListBox, and if not empty select first item */
FillBuildingsBox();
if (buildingsListBox.Items.Count > 0)
@ -2858,7 +2869,6 @@ namespace DSPRE {
RenderMap(ref mapRenderer, ref buildingsRenderer, ref currentMapFile, ang, dist, elev, perspective, mapOpenGlControl.Width, mapOpenGlControl.Height, mapTexturesOn, showBuildingTextures);
}
#region Building Editor
private void addBuildingButton_Click(object sender, EventArgs e) {
addBuildingToMap(new Building());
@ -2867,7 +2877,6 @@ namespace DSPRE {
if (buildingsListBox.SelectedIndex > -1)
addBuildingToMap(new Building(currentMapFile.buildings[buildingsListBox.SelectedIndex]));
}
private void addBuildingToMap(Building b) {
currentMapFile.AddBuilding(b);
@ -2883,7 +2892,6 @@ namespace DSPRE {
/* Redraw scene with new building */
RenderMap(ref mapRenderer, ref buildingsRenderer, ref currentMapFile, ang, dist, elev, perspective, mapOpenGlControl.Width, mapOpenGlControl.Height, mapTexturesOn, showBuildingTextures);
}
private void buildIndexComboBox_SelectedIndexChanged(object sender, EventArgs e) {
if (disableHandlers || buildingsListBox.SelectedIndex < 0)
return;
@ -2900,11 +2908,9 @@ namespace DSPRE {
}
private void buildingsListBox_SelectedIndexChanged(object sender, EventArgs e) {
#region Temporarily disable events to allow for faster execution
if (disableHandlers)
return;
disableHandlers = true;
#endregion
int buildingNumber = buildingsListBox.SelectedIndex;
@ -2917,9 +2923,7 @@ namespace DSPRE {
buildingHeightUpDown.Value = currentMapFile.buildings[buildingNumber].height;
buildingLengthUpDown.Value = currentMapFile.buildings[buildingNumber].length;
#region Re-enable disabled events
disableHandlers = false;
#endregion
}
private void buildingHeightUpDown_ValueChanged(object sender, EventArgs e) {
if (buildingsListBox.SelectedIndex > -1) {
@ -2947,7 +2951,7 @@ namespace DSPRE {
return;
using (BinaryWriter writer = new BinaryWriter(File.OpenWrite(eb.FileName))) {
writer.Write(currentMapFile.ExportBuildings());
writer.Write(currentMapFile.BuildingsToByteArray());
}
MessageBox.Show("Buildings exported successfully!", "", MessageBoxButtons.OK, MessageBoxIcon.Information);
@ -3084,12 +3088,12 @@ namespace DSPRE {
bmp.RotateFlip(RotateFlipType.RotateNoneFlipY);
return bmp;
}
private void Draw_Collision_Grid() {
private void DrawCollisionGrid() {
Bitmap mainBm = new Bitmap(608, 608);
using (Graphics gMain = Graphics.FromImage(mainBm)) {
for (int i = 0; i < 32; i++) {
for (int j = 0; j < 32; j++) {
Set_Collision_Painter(currentMapFile.collisions[i, j]);
SetCollisionPainter(currentMapFile.collisions[i, j]);
/* Draw collision on the main grid */
mainCell = new Rectangle(19 * j, 19 * i, 19, 19);
@ -3101,12 +3105,12 @@ namespace DSPRE {
movPictureBox.Image = mainBm;
movPictureBox.Invalidate();
}
private void Draw_Small_Collision() {
private void DrawSmallCollision() {
Bitmap smallBm = new Bitmap(100, 100);
using (Graphics gSmall = Graphics.FromImage(smallBm)) {
for (int i = 0; i < 32; i++) {
for (int j = 0; j < 32; j++) {
Set_Collision_Painter(currentMapFile.collisions[i, j]);
SetCollisionPainter(currentMapFile.collisions[i, j]);
/* Draw collision on the small image */
smallCell = new Rectangle(3 * j, 3 * i, 3, 3);
@ -3118,12 +3122,12 @@ namespace DSPRE {
collisionPictureBox.Image = smallBm;
collisionPictureBox.Invalidate();
}
private void Draw_Type_Grid() {
private void DrawTypeGrid() {
Bitmap mainBm = new Bitmap(608, 608);
using (Graphics gMain = Graphics.FromImage(mainBm)) {
for (int i = 0; i < 32; i++) {
for (int j = 0; j < 32; j++) {
Set_Type_Painter(Convert.ToInt32(currentMapFile.types[i, j]));
SetTypePainter(Convert.ToInt32(currentMapFile.types[i, j]));
/* Draw cell with color */
mainCell = new Rectangle(19 * j, 19 * i, 19, 19);
@ -3142,12 +3146,12 @@ namespace DSPRE {
movPictureBox.Image = mainBm;
movPictureBox.Invalidate();
}
private void Draw_Small_Type() {
private void DrawSmallTypeCollision() {
Bitmap smallBm = new Bitmap(100, 100);
using (Graphics gSmall = Graphics.FromImage(smallBm)) {
for (int i = 0; i < 32; i++) {
for (int j = 0; j < 32; j++) {
Set_Type_Painter(currentMapFile.types[i, j]);
SetTypePainter(currentMapFile.types[i, j]);
/* Draw collision on the small image */
smallCell = new Rectangle(3 * j, 3 * i, 3, 3);
@ -3159,7 +3163,7 @@ namespace DSPRE {
typePictureBox.Image = smallBm;
typePictureBox.Invalidate();
}
private void Edit_Cell(int xPosition, int yPosition) {
private void EditCell(int xPosition, int yPosition) {
try {
mainCell = new Rectangle(xPosition * 19, yPosition * 19, 19, 19);
smallCell = new Rectangle(xPosition * 3, yPosition * 3, 3, 3);
@ -3203,14 +3207,16 @@ namespace DSPRE {
movPictureBox.Invalidate();
} catch { return; }
}
private void Restore_Painter() {
if (selectCollisionPanel.BackColor == Color.MidnightBlue)
collisionPainterComboBox_SelectedIndexChanged(null, null); // Restore painters to original state
else if (collisionTypePainterComboBox.Enabled)
private void RestorePainter() {
if (selectCollisionPanel.BackColor == Color.MidnightBlue) {
collisionPainterComboBox_ResetSelection(null, null); // Restore painters to original state
} else if (collisionTypePainterComboBox.Enabled) {
typePainterComboBox_SelectedIndexChanged(null, null); // Restore painters to original state
else typePainterUpDown_ValueChanged(null, null);
} else {
typePainterUpDown_ValueChanged(null, null);
}
}
private void Set_Collision_Painter(int collisionValue) {
private void SetCollisionPainter(int collisionValue) {
switch (collisionValue) {
case 0x0:
paintPen = new Pen(Color.FromArgb(128, Color.White));
@ -3227,7 +3233,7 @@ namespace DSPRE {
}
paintByte = (byte)collisionValue;
}
private void Set_Type_Painter(int typeValue) {
private void SetTypePainter(int typeValue) {
switch (typeValue) {
case 0x0:
paintPen = new Pen(Color.FromArgb(128, Color.White));
@ -3252,7 +3258,7 @@ namespace DSPRE {
paintPen = new Pen(Color.FromArgb(128, Color.BurlyWood));
paintBrush = new SolidBrush(Color.FromArgb(128, Color.BurlyWood));
textBrush = new SolidBrush(Color.White);
textFont = new Font("Arial", 8.5f);
textFont = new Font("Arial", 8.65f);
break;
case 0x10:
paintPen = new Pen(Color.FromArgb(128, Color.SkyBlue));
@ -3290,6 +3296,23 @@ namespace DSPRE {
textBrush = new SolidBrush(Color.Black);
textFont = new Font("Arial", 9.0f);
break;
case 0x30:
case 0x31:
case 0x32:
case 0x33:
paintPen = new Pen(Color.FromArgb(128, Color.Red));
paintBrush = new SolidBrush(Color.FromArgb(128, Color.Red));
textBrush = new SolidBrush(Color.White);
textFont = new Font("Arial", 9.0f);
break;
case 0x3C:
case 0x3D:
case 0x3E:
paintPen = new Pen(Color.FromArgb(0x7F654321));
paintBrush = new SolidBrush(Color.FromArgb(0x7F654321));
textBrush = new SolidBrush(Color.White);
textFont = new Font("Arial", 8.65f);
break;
case 0x38:
case 0x39:
case 0x3A:
@ -3297,7 +3320,7 @@ namespace DSPRE {
paintPen = new Pen(Color.FromArgb(128, Color.Maroon));
paintBrush = new SolidBrush(Color.FromArgb(128, Color.Maroon));
textBrush = new SolidBrush(Color.White);
textFont = new Font("Arial", 8.7f);
textFont = new Font("Arial", 8.65f);
break;
case 0x40:
case 0x41:
@ -3308,11 +3331,18 @@ namespace DSPRE {
textBrush = new SolidBrush(Color.Black);
textFont = new Font("Arial", 9.0f);
break;
case 0x4B:
case 0x4C:
paintPen = new Pen(Color.FromArgb(128, Color.Sienna));
paintBrush = new SolidBrush(Color.FromArgb(128, Color.Sienna));
textBrush = new SolidBrush(Color.White);
textFont = new Font("Arial", 9.0f);
break;
case 0x5E:
paintPen = new Pen(Color.FromArgb(128, Color.DarkOrchid));
paintBrush = new SolidBrush(Color.FromArgb(128, Color.DarkOrchid));
textBrush = new SolidBrush(Color.White);
textFont = new Font("Arial", 8.7f);
textFont = new Font("Arial", 8.65f);
break;
case 0x5F:
case 0x62:
@ -3323,7 +3353,7 @@ namespace DSPRE {
paintPen = new Pen(Color.FromArgb(128, Color.DarkOrchid));
paintBrush = new SolidBrush(Color.FromArgb(128, Color.DarkOrchid));
textBrush = new SolidBrush(Color.White);
textFont = new Font("Arial", 9.0f);
textFont = new Font("Arial", 8.65f);
break;
case 0x6C:
case 0x6D:
@ -3332,7 +3362,7 @@ namespace DSPRE {
paintPen = new Pen(Color.FromArgb(128, Color.DarkOrchid));
paintBrush = new SolidBrush(Color.FromArgb(128, Color.DarkOrchid));
textBrush = new SolidBrush(Color.White);
textFont = new Font("Arial", 8.6f);
textFont = new Font("Arial", 8.65f);
break;
case 0xA1:
case 0xA2:
@ -3340,25 +3370,25 @@ namespace DSPRE {
paintPen = new Pen(Color.FromArgb(128, Color.Honeydew));
paintBrush = new SolidBrush(Color.FromArgb(128, Color.Honeydew));
textBrush = new SolidBrush(Color.Black);
textFont = new Font("Arial", 9.0f);
textFont = new Font("Arial", 8.65f);
break;
case 0xA4:
paintPen = new Pen(Color.FromArgb(128, Color.Peru));
paintBrush = new SolidBrush(Color.FromArgb(128, Color.Peru));
textBrush = new SolidBrush(Color.White);
textFont = new Font("Arial", 9.0f);
textFont = new Font("Arial", 8.65f);
break;
case 0xA6:
paintPen = new Pen(Color.FromArgb(128, Color.SeaGreen));
paintBrush = new SolidBrush(Color.FromArgb(128, Color.SeaGreen));
textBrush = new SolidBrush(Color.White);
textFont = new Font("Arial", 8.7f);
textFont = new Font("Arial", 8.65f);
break;
default:
paintPen = new Pen(Color.FromArgb(128, Color.White));
paintBrush = new SolidBrush(Color.FromArgb(128, Color.White));
textBrush = new SolidBrush(Color.Black);
textFont = new Font("Arial", 8.7f);
textFont = new Font("Arial", 8.65f);
break;
}
paintByte = (byte)typeValue;
@ -3375,7 +3405,7 @@ namespace DSPRE {
using (Graphics mainG = Graphics.FromImage(movPictureBox.Image)) {
smallG.Clear(Color.Transparent);
mainG.Clear(Color.Transparent);
Set_Collision_Painter(0x0);
SetCollisionPainter(0x0);
for (int i = 0; i < 32; i++) {
for (int j = 0; j < 32; j++) {
@ -3391,17 +3421,24 @@ namespace DSPRE {
movPictureBox.Invalidate(); // Refresh main image
smallBox.Invalidate();
Restore_Painter();
RestorePainter();
}
private void collisionPainterComboBox_SelectedIndexChanged(object sender, EventArgs e) {
private void collisionPainterComboBox_ResetSelection(object sender, EventArgs e) {
int collisionValue;
if (collisionPainterComboBox.SelectedIndex == 0) collisionValue = 0;
else if (collisionPainterComboBox.SelectedIndex == 1) collisionValue = 0x80;
else collisionValue = 1;
Set_Collision_Painter(collisionValue);
if (collisionPainterComboBox.SelectedIndex == 0) {
collisionValue = 0;
} else if (collisionPainterComboBox.SelectedIndex == 1) {
collisionValue = 0x80;
} else {
collisionValue = 1;
}
SetCollisionPainter(collisionValue);
using (Graphics g = Graphics.FromImage(collisionPainterPictureBox.Image))
g.Clear(Color.FromArgb(255, paintBrush.Color));
using (Graphics g = Graphics.FromImage(collisionPainterPictureBox.Image)) g.Clear(Color.FromArgb(255, paintBrush.Color));
collisionPainterPictureBox.Invalidate();
}
private void collisionPictureBox_Click(object sender, EventArgs e) {
@ -3410,8 +3447,8 @@ namespace DSPRE {
selectCollisionPanel.BackColor = Color.MidnightBlue;
collisionGroupBox.Enabled = true;
Draw_Collision_Grid();
Restore_Painter();
DrawCollisionGrid();
RestorePainter();
}
private void exportMovButton_Click(object sender, EventArgs e) {
SaveFileDialog em = new SaveFileDialog();
@ -3420,7 +3457,9 @@ namespace DSPRE {
if (em.ShowDialog(this) != DialogResult.OK)
return;
using (BinaryWriter writer = new BinaryWriter(File.OpenWrite(em.FileName))) writer.Write(currentMapFile.ExportPermissions());
using (BinaryWriter writer = new BinaryWriter(File.OpenWrite(em.FileName)))
writer.Write(currentMapFile.CollisionsToByteArray());
MessageBox.Show("Permissions exported successfully!", "", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
private void importMovButton_Click(object sender, EventArgs e) {
@ -3431,47 +3470,40 @@ namespace DSPRE {
currentMapFile.ImportPermissions(new FileStream(ip.FileName, FileMode.Open));
Draw_Small_Collision();
Draw_Small_Type();
if (selectCollisionPanel.BackColor == Color.MidnightBlue) Draw_Collision_Grid();
else Draw_Type_Grid();
Restore_Painter();
DrawSmallCollision();
DrawSmallTypeCollision();
if (selectCollisionPanel.BackColor == Color.MidnightBlue) {
DrawCollisionGrid();
} else {
DrawTypeGrid();
}
RestorePainter();
MessageBox.Show("Permissions imported successfully!", "", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
private void movPictureBox_Click(object sender, EventArgs e) {
Edit_Cell(movPictureBox.PointToClient(MousePosition).X / 19, movPictureBox.PointToClient(MousePosition).Y / 19);
EditCell(movPictureBox.PointToClient(MousePosition).X / 19, movPictureBox.PointToClient(MousePosition).Y / 19);
}
private void movPictureBox_MouseMove(object sender, MouseEventArgs e) {
if ((Control.MouseButtons & MouseButtons.Left) == MouseButtons.Left) {
Edit_Cell(e.Location.X / 19, e.Location.Y / 19);
EditCell(e.Location.X / 19, e.Location.Y / 19);
}
}
private void typePainterComboBox_SelectedIndexChanged(object sender, EventArgs e) {
string selectedType = collisionTypePainterComboBox.SelectedItem.ToString();
int typeValue = Convert.ToInt32(selectedType.Substring(1, 2), 16);
Set_Type_Painter(typeValue);
sf = new StringFormat();
sf.LineAlignment = StringAlignment.Center;
sf.Alignment = StringAlignment.Center;
using (Graphics g = Graphics.FromImage(typePainterPictureBox.Image)) {
g.Clear(Color.FromArgb(255, paintBrush.Color));
g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAlias;
g.DrawString(typeValue.ToString("X2"), new Font("Microsoft Sans Serif", 24), textBrush, painterBox, sf);
}
typePainterPictureBox.Invalidate();
updateTypeCollisions(Convert.ToInt32(selectedType.Substring(1, 2), 16));
}
private void typePainterUpDown_ValueChanged(object sender, EventArgs e) {
int typeValue = (int)typePainterUpDown.Value;
Set_Type_Painter(typeValue);
updateTypeCollisions(typeValue);
}
private void updateTypeCollisions(int typeValue) {
SetTypePainter(typeValue);
sf = new StringFormat();
sf.LineAlignment = StringAlignment.Center;
sf.Alignment = StringAlignment.Center;
painterBox = new Rectangle(0, 0, 100, 100);
using (Graphics g = Graphics.FromImage(typePainterPictureBox.Image)) {
g.Clear(Color.FromArgb(255, paintBrush.Color));
g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAlias;
@ -3485,8 +3517,8 @@ namespace DSPRE {
selectTypePanel.BackColor = Color.MidnightBlue;
typeGroupBox.Enabled = true;
Draw_Type_Grid();
Restore_Painter();
DrawTypeGrid();
RestorePainter();
}
private void typesRadioButton_CheckedChanged(object sender, EventArgs e) {
if (knownTypesRadioButton.Checked) {
@ -5116,20 +5148,20 @@ namespace DSPRE {
if (scriptTextBox.Lines[i].Contains("UseScript")) {
int scriptNumber = Int16.Parse(scriptTextBox.Lines[i].Substring(1 + scriptTextBox.Lines[i].IndexOf('#')));
scrFile.scripts.Add(new Script(scriptNumber));
scrFile.scripts.Add(new Script(useScript: scriptNumber));
} else {
/* Read script commands */
List<Command> commandList = new List<Command>();
List<ScriptCommand> cmdList = new List<ScriptCommand>();
while (scriptTextBox.Lines[i] != "End" && !scriptTextBox.Lines[i].Contains("Jump Function") && i < scriptTextBox.Lines.Length - 1) {
Console.WriteLine("Script line " + (i + 1).ToString());
Command cmd = new Command(scriptTextBox.Lines[i]);
ScriptCommand cmd = new ScriptCommand(scriptTextBox.Lines[i]);
Console.WriteLine("----" + cmd + "----");
commandList.Add(cmd);
cmdList.Add(cmd);
i++;
}
commandList.Add(new Command(scriptTextBox.Lines[i])); // Add end or jump/call command
scrFile.scripts.Add(new Script(commandList));
cmdList.Add(new ScriptCommand(scriptTextBox.Lines[i])); // Add end or jump/call command
scrFile.scripts.Add(new Script(commandList: cmdList));
}
}
}
@ -5142,14 +5174,14 @@ namespace DSPRE {
i++; //Skip all empty lines
/* Read function commands */
List<Command> commandList = new List<Command>();
List<ScriptCommand> cmdList = new List<ScriptCommand>();
while (functionTextBox.Lines[i] != "End" && !functionTextBox.Lines[i].Contains("Return") && !functionTextBox.Lines[i].Contains("Jump F")) {
commandList.Add(new Command(functionTextBox.Lines[i]));
cmdList.Add(new ScriptCommand(functionTextBox.Lines[i]));
i++;
}
commandList.Add(new Command(functionTextBox.Lines[i])); // Add end command
scrFile.functions.Add(new Script(commandList));
cmdList.Add(new ScriptCommand(functionTextBox.Lines[i])); // Add end command
scrFile.functions.Add(new Script(commandList: cmdList));
}
}
}
@ -5160,15 +5192,15 @@ namespace DSPRE {
while (movementTextBox.Lines[i].Length == 0)
i++; //Skip all empty lines
List<Command> commandList = new List<Command>();
List<ScriptCommand> cmdList = new List<ScriptCommand>();
/* Read script commands */
while (movementTextBox.Lines[i] != "End") {
commandList.Add(new Command(movementTextBox.Lines[i], true));
cmdList.Add(new ScriptCommand(movementTextBox.Lines[i], true));
i++;
}
commandList.Add(new Command(movementTextBox.Lines[i],true)); // Add end command
cmdList.Add(new ScriptCommand(movementTextBox.Lines[i],true)); // Add end command
scrFile.movements.Add(new Script(commandList));
scrFile.movements.Add(new Script(commandList: cmdList));
}
}
}
@ -5188,28 +5220,28 @@ namespace DSPRE {
ScriptFile file = new ScriptFile(i);
//Case Sensitive search
if (caseSensitiveSearchCheckbox.Checked) {
if (scriptSearchCaseSensitiveCheckBox.Checked) {
for (int j = 0; j < file.scripts.Count; j++) {
foreach (Command cur in file.scripts[j].commands) {
foreach (ScriptCommand cur in file.scripts[j].commands) {
if (cur.cmdName.Contains(searchString))
results.Add("File " + i + " - " + "Script " + (j + 1) + ": " + cur.cmdName + Environment.NewLine);
}
}
for (int j = 0; j < file.functions.Count; j++) {
foreach (Command cur in file.functions[j].commands) {
foreach (ScriptCommand cur in file.functions[j].commands) {
if (cur.cmdName.Contains(searchString))
results.Add("File " + i + " - " + "Function " + (j + 1) + ": " + cur.cmdName + Environment.NewLine);
}
}
} else { //Case Insensitive search
for (int j = 0; j < file.scripts.Count; j++) {
foreach (Command cur in file.scripts[j].commands) {
foreach (ScriptCommand cur in file.scripts[j].commands) {
if (cur.cmdName.IndexOf(searchString, StringComparison.InvariantCultureIgnoreCase) >= 0)
results.Add("File " + i + " - " + "Script " + (j + 1) + ": " + cur.cmdName + Environment.NewLine);
}
}
for (int j = 0; j < file.functions.Count; j++) {
foreach (Command cur in file.functions[j].commands) {
foreach (ScriptCommand cur in file.functions[j].commands) {
if (cur.cmdName.IndexOf(searchString, StringComparison.InvariantCultureIgnoreCase) >= 0)
results.Add("File " + i + " - " + "Function " + (j + 1) + ": " + cur.cmdName + Environment.NewLine);
}
@ -5310,7 +5342,6 @@ namespace DSPRE {
buffer = "";
/* Add functions */
statusLabel.Text = "Parsing Functions...";
for (int i = 0; i < currentScriptFile.functions.Count; i++) {
Script currentFunction = currentScriptFile.functions[i];
@ -5324,7 +5355,6 @@ namespace DSPRE {
buffer = "";
/* Add movements */
statusLabel.Text = "Parsing Movements...";
for (int i = 0; i < currentScriptFile.movements.Count; i++) {
Script currentMovement = currentScriptFile.movements[i];
@ -5808,7 +5838,7 @@ namespace DSPRE {
textSearchProgressBar.Maximum = lastArchive;
List<string> results = new List<string>();
if (caseSensitiveSearchCheckbox.Checked) {
if (caseSensitiveTextSearchCheckbox.Checked) {
for (int i = firstArchive; i < lastArchive; i++) {
TextArchive file = new TextArchive(i);
@ -5834,7 +5864,7 @@ namespace DSPRE {
textSearchResultsListBox.Items.AddRange(results.ToArray());
textSearchProgressBar.Value = 0;
caseSensitiveSearchCheckbox.Enabled = true;
caseSensitiveTextSearchCheckbox.Enabled = true;
}
private void searchMessageTextBox_KeyDown(object sender, KeyEventArgs e) {
if (e.KeyCode == Keys.Enter)
@ -5878,7 +5908,7 @@ namespace DSPRE {
currentTextArchive = file;
bool found = false;
if (caseSensitiveReplaceCheckbox.Checked) {
if (caseSensitiveTextReplaceCheckbox.Checked) {
for (int j = 0; j < file.messages.Count; j++) {
if (file.messages[j].Contains(searchString)) {
file.messages[j] = file.messages[j].Replace(searchString, replaceString);
@ -6010,7 +6040,6 @@ namespace DSPRE {
texturePacksListBox.Items.Add("Texture Pack " + i);
}
#endregion
private void buildingsTilesetRadioButton_CheckedChanged(object sender, EventArgs e) {
FillTilesetBox();
texturePacksListBox.SelectedIndex = (int)areaDataBuildingTilesetUpDown.Value;
@ -6214,7 +6243,6 @@ namespace DSPRE {
texturePacksListBox.Items.Add("Texture Pack " + texturePacksListBox.Items.Count);
texturePacksListBox.SelectedIndex = texturePacksListBox.Items.Count - 1;
}
private void removeNSBTXButton_Click(object sender, EventArgs e) {
if (texturePacksListBox.Items.Count > 1) {
/* Delete NSBTX file */

View File

@ -118,184 +118,6 @@
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="messageButton.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
wgAADsIBFShKgAAAABh0RVh0U29mdHdhcmUAcGFpbnQubmV0IDQuMC41ZYUyZQAAAJJJREFUOE+1kzEO
gCAMRTmeo6PH4lgewdEjOLLVfJKaWj5qahgehS99uDSJSJrmRf4AR5XknGXd9hDohaOKEJRyhEBvI9JX
vuzteZwoAhWhenxuz+NFEagI1e/17DPNUceJItxEbER6TZ5rRJ6G1krYd6UOLRYGLuBFK/J3LDRUrAz1
SUZDC5rB2581QQ8VcpGkExWcDjXFZ/TqAAAAAElFTkSuQmCC
</value>
</data>
<data name="routeSignButton.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
wwAADsMBx2+oZAAAABh0RVh0U29mdHdhcmUAcGFpbnQubmV0IDQuMC41ZYUyZQAAAPRJREFUWEftlDES
gjAQRTmWd7Cg1JLW0pJreCtKruIF0I3zmfD5gYXMxCbOPAeeye6rbKZp+itSlkTKkkhZEimZ78e+DsNz
FFICDBrH9yk8IVIadrHvXwE13MMw/NiK0DJangq43h4L1BkEbEWsBS1PBXiIA1IRyxex/P7ss9iLmB/C
CwVgSNO2p1AR7oDc5YAjXAG8/NJ1s7PnI86AcwXgMC6nBnsdgN8MCCIRkUNqedjHIsgoIidkMUMsN1YC
2AUOOQPm8HwgZQwGMPxPqM4YPI+Rcg8brAL4nAcp96gBNaAG1IAaYNjCGP7di5QlkbIcU/MB6WubB5bP
KlAAAAAASUVORK5CYII=
</value>
</data>
<data name="townSignButton.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
wwAADsMBx2+oZAAAABh0RVh0U29mdHdhcmUAcGFpbnQubmV0IDQuMC41ZYUyZQAAAONJREFUWEft0jEO
gzAQBEBeR0tJFYkqDVL+lTKvyLOcbHHR+bRgsqCjIdJEaI3NYtOVUk5Fw0w0zETDTDTMRMNMNNzi+8Pf
TxzfioYteOD79ayoJWjYklYAiy6Zp6nC7jFxXY+GgInxLVVrJWgIVwFMeozjIeQC+LhufV/xH95a5sfk
AvdhOIRcgG2nQi7AttRb2nZv1xHYA/aSC9gZ2tv4aybeb5lcwM7QFvPXTLzfMrkA206FVAAwcYl/Szbu
xXU9GrZgUTvv1hm30LDlKnB6AcBDTRz7Bw0z0TATDTPRME/pPmKnw1qJ7LoMAAAAAElFTkSuQmCC
</value>
</data>
<data name="tipsSignButton.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
wwAADsMBx2+oZAAAABh0RVh0U29mdHdhcmUAcGFpbnQubmV0IDQuMC41ZYUyZQAAAN9JREFUWEftz7sN
wkAQBFAXRAGOqIEAySkpoVNCQrpzKzRweIO1Rsucf+cbEpAeWMMyGpqU0k/RUImGSjRUoqESDZVoqERD
JRqi8WVvu8W+iIbOCobhXWRpBA3df4D9uO9fRQ4bcO6em1QZ0Jwuq1Qf4P/SM3yWDFhSfYA/26fz7zyv
OmBJtQFbHD5gr6IBxgpM190nnkXsJvZFNERt24493+WWo9wN60Q0RF5+vT0mXo5yN6wT0RDNlaPcDetE
NERz5Sh3wzoRDRkrdPE7t+YmoqESDZVoqERDJRrqpOYDrj6pBKfT0lUAAAAASUVORK5CYII=
</value>
</data>
<data name="greySignButton.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
wgAADsIBFShKgAAAABh0RVh0U29mdHdhcmUAcGFpbnQubmV0IDQuMC41ZYUyZQAAAOJJREFUWEft0LEN
gzAUBFBmo3RJ6ZbSpcu0lIzgFbIOq6R0OCmWfn5OkYzJJ0QpngRn+TjR5ZwPRUNLNLREQ0s0tERDcJeQ
qVhpvaO7JRoCLi7Lrdl5B/RhpIW10KO7JRoCLqZ0bbbLgGlOm+CuG/1ax78BNITB+6cBIc5VygD06G6J
hnD4gBBeB+C5fKCclUy/f2RAjTIAPbpboiFMkf8BqWT6TA5Aj+6WaAhfOaBG8wA/9L8xAD26W6Ih6AFb
7DagRdMA70O7/4BzD3jHPbAzRXdLNLREQ0s0tERDSzS0k7s7Zg5I8zHRj9IAAAAASUVORK5CYII=
</value>
</data>
<data name="setflagButton.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
wgAADsIBFShKgAAAABh0RVh0U29mdHdhcmUAcGFpbnQubmV0IDQuMC41ZYUyZQAAAHNJREFUOE9j+P//
P4NHQMR/SjDIDLAhCQtekI01Kk6ADaPIIJAhWA368eMDSZh4gzZUIDC6HBATb1AGAwKjywHxqEFADApk
kCEUBzYI43ANCJNmEB5MvEFU8xpVwwgPxmoQTJAcDDcImyQpGGwQdQq2/wwAuHW+otoYVvoAAAAASUVO
RK5CYII=
</value>
</data>
<data name="clearflagButton.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
wgAADsIBFShKgAAAABh0RVh0U29mdHdhcmUAcGFpbnQubmV0IDQuMC41ZYUyZQAAAG9JREFUOE/t1LEN
ACEIhWFHcSxGcAxGoXRLLo/LWRg1opRX/I0kX5TCpKop56w3wTCEmY8jIsOuICBDqNbqahsSkVY/Q9tQ
KaXVz9APvcsGcr1sNLsNckGrtqGwp4XuaNUQ+g5PatBo6MmgmI9N0wOQev5Ll7lcCAAAAABJRU5ErkJg
gg==
</value>
</data>
<data name="trainerBattleButton.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABMAAAASCAYAAAC5DOVpAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
wgAADsIBFShKgAAAABh0RVh0U29mdHdhcmUAcGFpbnQubmV0IDQuMC41ZYUyZQAAAP1JREFUOE+tkrEV
gkAQRCnBEiyB0JASDC3lSrAMQkogNDQ0tARKIFtv9t3A3rEcBAaft3tv5gNiIyIubXsTjzJn2Ryw1N2f
yiO8FO41abZQQgFg2Z5RartgHeLoPUltRwdUZbZUYjND/9aZwkxEbNmDOcoAHK6MWAGoZQ5lZ/ibjF8Z
ffWErhPAv8VZkNenSaL0UI18+7AIj6TMII/erqyUetjcRpaMWQif/J52gh3nNmdFi0yHOCI0f0aZplmD
mAl2nGNGrhSpwy64mxXsgZztkXyJK1+DxXL2Xo+sQxxZsFJCCWbkPKFeELR3199muMoYLgvYcU4ZQG+V
SfMD7KY3wtu2/tcAAAAASUVORK5CYII=
</value>
</data>
<data name="wildBattleButton.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAYCAYAAADzoH0MAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
wgAADsIBFShKgAAAABh0RVh0U29mdHdhcmUAcGFpbnQubmV0IDQuMC41ZYUyZQAAAOtJREFUOE/FkrEN
wjAURDMWJWOkZATKlJQZgzIlJSNQMgJlRqD7+L501vfZjoIoQDr5+/69S6QwmNlPaprjeLYo3UdVBoDl
+rB1fWdtFRUXhAhpCe6tom6BwjxZRKYoSD9fxqdzhs99weQhjZfT3Zb55SEVdhByZJzLQxoB+1PTSUDV
LIDJwBZMxZKqYI82Czg/b2NxaqYo0BKKcFSEnctDGsfjlIP6BhD23QK/pKsWRVBhZ9TAN2c4Cr5mocpg
0KHwyl8XEMYZfVVl9IK7CyAN92Coaf6/AH8eSOeWmiaAeTqk0QacXxfslw0f+kwSu21Y2aYAAAAASUVO
RK5CYII=
</value>
</data>
<data name="legendaryBattleButton.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABkAAAASCAYAAACuLnWgAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
wgAADsIBFShKgAAAABh0RVh0U29mdHdhcmUAcGFpbnQubmV0IDQuMC41ZYUyZQAAAQJJREFUSEu1kb0R
wjAUgzMOJSUjMAJjUFJ6jJSUGYMRMkbKlHQmehcduucXO9yF4jvb8pOUny7n/HdCMeJ0u2Tg93sIRcIw
8Bzvht8T71VCEWgYePTffXSuFYUigIlB86szNFTB3M8lWgBaJaBWVAqL5D/FFr4cPviLzEKQklYZS3S+
WoJLwE+FNQr1GlEfs8KSc381MDinwQZbb8Onxzx8zGiWwJBSbytCtop4p/PVEjusRb5kmt4GQ73mS7TA
cvVgwiLxc8HIMOjc+zML+D+KzEJYJD6NBkEbhtECseLMO85Gb2GZXjBxNSEQK8MidA74LFAICo178F4l
FI8mFI8ldx/JDrZXxapFRgAAAABJRU5ErkJggg==
</value>
</data>
<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
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAACA
DwAAAk1TRnQBSQFMAgEBBwEAAVQBDAFUAQwBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
AwABQAMAASADAAEBAQABCAYAAQgYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
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/woAAewBEgHvBQAB9BEA
ChIYAALzAusB7wHsAesB8wUAAeoB9AUAAvIB9AYAAxIGSgMSFAAB8wHxAbwC7AEHAbwBBwHsAesBBwQA
AQ4BEgHtBAAB8AEiASkB6wHzBQABEgJKBm4CSgESEwABvAH3Ae0BkgHvAbwBBwHwAfQB8gHrAeoEAAEO
AW0B7QMAAQcBIwIrASoB6wHzAwABEgFKAW4BSgZuAUoBbgFKARISAAFtAvcB8AG8AfMC8gL0Ae0B6wEH
AwABBwEVAeoD7QEpASsBJQEfASUBKgHrAfQCAAESAUoBbgFKBpMBSgFuAUoBEhIAAbwB7wHxAfQB9gHy
AvAB9AH2Ae8B7AFtAwAB9AEQAesBSgEwAQMBJQEXAfkCIAElASoB6gIAARIBSgGTAW4GSQFuAZMBSgES
EgAB8gHvAvYB9wFtAesB8gH0AfYB8wHrAewBBwIAAfQBEAFzAUUBJAEgAfkBFwH5ASABHwEgATEBIgH0
AQABEgGTAW4BSQZsAUkBbgGTARITAAHvAfMBvAGSAfAB9wH2AfcB7QEHAesB7AHvAwAB8gERAUUBHwIg
AfkBFwH5ASABHwExASIB9AEAARIBkwFJAmwEcQJsAUkBkwESEwABBwHwAUQBJQEaApIB8gLzAfQBEgHr
AfICAAHyAUMB7AFFAR8BIAH5ARcBJgExATcBMAEUAgABSQFuAWwBcQGXBHEBlwFxAWwBbgESEwAB9AFt
ASwBJQHrAfQC8QLvAfIC6wG8AgAB8wFtAesBRQEfAiAB+QExAVECbQHzAgABSQJsAZcCcQKXAnEBlwJs
AUkTAAEcASwBKwHqAQcBvALvAfQCvAHzAm0DAAHwARMBRQEfASQCKwFRAbwFAAFJAWwCcQaXAnEBbAFJ
EgAB7wIrAUsB7wEHAbwB8QQHAfQBiwHqAwAB8AERAUsBJAEjAQMBSgHwBwABbAFxA5cCeAOXAXEBbBIA
Ae8BKwEsAUUCvAEHAe8BBwG8AfABGQLbAWwBBwMAAfABIwIrAQ4B8AHxCAABSQFxApcBeAWXAXEBSRIA
ARIBLAFFAfIB8wHvAfIB8QG7AtoBswKLAfMEAAHwASMBNwExAQ4LAAFJAXEClwF4A5cBcQFJFAABEgG8
AgABBwGzAdQBswJsAe8IAAHvAg4B8wwAAWwBcQSXAXEBbBkAAQcCEgG8HQAEcRcAAfQL8wH0EwAN8xMA
AQcL7wEHAgAPEAEAAQcNswEHBwAEQwcAAe8BAAG7BrMBuwIAAe8CAAEQBjgBEAbTARABAAGzDQABswUA
AkME8AJDBQAB7wEAAbMGAAGzAgAB7wIAARACOAMAATgBEALTAgAC0wEQAQABsw0AAbMEAAFDCPABQwQA
Ae8BAAGtAQABlwJWAZcBAAGzAgAB7wIAARADOAEAAjgBEAHTAQAC0wEAAdMBEAEAAbMBAAFWCVABVgEA
AbMDAAFDA/ABkgJDAZID8AFDAwAB7wEAAa0BAARWAQABswH0AQAB7wIAARACOAIAAjgBEAHTAQAC0wEA
AdMBEAEAAbMBAAtWAQABswMAAUMB8AGSARIBQwHwAZIBQwESAZIB8AFDAwAB7wEAAa0BAARWAQABswH0
AQAB7wIAARADOAEAAjgBEALTAgAC0wEQAQABswEAC1YBAAGzAgABQwHwARICYwFDAQAB8AFDAmMBEgHw
AUMCAAHvAQABrQEABHgBAAGzAfQBAAHvAgABEAY4ARAG0wEQAQABswEAC1YBAAGzAgABQwESBEcCQwRH
ARIBQwIAAe8BAAGtBgABswHzAQAB7wIADxABAAGzAQALVgEAAbMCAAFDDEcBQwIAAe8BAAG7Aq0EswG7
AfMBAAHvAgABEAZHARAGAAEQAQABswEAC1YBAAGzAgABQwxHAUMCAAHvAQAB8wP0AfMB9AQAAe8CAAEQ
AkcCAAJHARAGAAEQAQABswEAC1YBAAGzAwABQwJHApQGRwFDAwAB7wEAAXQCMgEsAXQBAAG8AvcBAAHv
AgABEAFHAQACRwEAAUcBEAYAARABAAGzAQABVgl4AVYBAAGzAwABQwFHBJQFRwFDAwAB7wEAASwDwwFT
AQAB9wIAAfMB8AIAARABRwEAAkcBAAFHARAGAAEQAQABswEAC3gBAAGzBAABQwSUBEcBQwQAAe8BAAF0
AywBdAEAAfcBAAHzAfADAAEQAkcCAAJHARAGAAEQAQABswEAC3gBAAGzBQACQwGUA0cCQwUAAe8IAAHz
AfAEAAEQBkcBEAYAARABAAGzDQABswcABEMHAAEHCO8BBwUADxABAAEJDbMBCREAAUIBTQE+BwABPgMA
ASgDAAFAAwABIAMAAQEBAAEBBgABARYAA/8BAAH/AY8BvwH/AeABBwIAAfgBBwKPAcABAwIAAcABBwGP
AQcBwAEDAgABgAEHAY4BAwGAAQECAAGAAQMBgAEBAYABAQIAAYABAwGAAQEBgAEBAgABgAEBAYABAAGA
AQECAAHAAQEBwAEAAYABAQIAAcABAAHAAQEBgAEBAgABwAEAAcABAQGAAQECAAHAAQAB4AEPAYABAQIA
AYABAAHgAR8BwAEDBAAB4AE/AcABAwMAAQEB4AH/AeABBwIAAZgBDwHwAf8B8AEPAgAB+AF/Av8B/AE/
AgABgAEDAv8BgAEDAv8BgAEDAQABAQEAAQEB/AE/AaABGwEAAQEBfwH9AfABDwGvAdsBAAExAX8B/QHg
AQcBqAFbAQABSQFAAQUBwAEDAagBSwEAAUkBQAEFAcABAwGoAUsBAAExAUABBQGBAQEBqAFLAQABAQFA
AQUBgAEBAa8BywEAAQEBQAEFAYABAQGgAQsBAAH9AUABBQGAAQEBoAF7ARgBxQFAAQUBwAEDAaABiwEk
Ae0BQAEFAcABAwGgAbMBJAHNAUABBQHgAQcBoAGnARgB7QFAAQUB8AEPAb8BzwEAAf0BfwH9AfwBPwGA
AR8BAAEBAQABAQL/Cw==
</value>
</data>
<data name="worldmapCoordsPasteButton.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
@ -991,6 +813,107 @@
tKfMyjUkyIygTzrjDhqFL7mDJz+3RnvKrFxDgsyYxk385p/u4CGd0Z4yCzYZZMbU3C8bhW+5PxSkM9JP
Z+QEKSIzyeiU/3MzIf80XA7IXoiys3q+byBqlNhAmTk027dIm8kwekBSRGegjprEoAeJQRqDdAI2GWnA
aF2vNVLXwKZGGxYB+WhgM4QOkaB5Pz3zB9u0i81Or4XVAAAAAElFTkSuQmCC
</value>
</data>
<data name="messageButton.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
wgAADsIBFShKgAAAABh0RVh0U29mdHdhcmUAcGFpbnQubmV0IDQuMC41ZYUyZQAAAJJJREFUOE+1kzEO
gCAMRTmeo6PH4lgewdEjOLLVfJKaWj5qahgehS99uDSJSJrmRf4AR5XknGXd9hDohaOKEJRyhEBvI9JX
vuzteZwoAhWhenxuz+NFEagI1e/17DPNUceJItxEbER6TZ5rRJ6G1krYd6UOLRYGLuBFK/J3LDRUrAz1
SUZDC5rB2581QQ8VcpGkExWcDjXFZ/TqAAAAAElFTkSuQmCC
</value>
</data>
<data name="routeSignButton.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
wwAADsMBx2+oZAAAABh0RVh0U29mdHdhcmUAcGFpbnQubmV0IDQuMC41ZYUyZQAAAPRJREFUWEftlDES
gjAQRTmWd7Cg1JLW0pJreCtKruIF0I3zmfD5gYXMxCbOPAeeye6rbKZp+itSlkTKkkhZEimZ78e+DsNz
FFICDBrH9yk8IVIadrHvXwE13MMw/NiK0DJangq43h4L1BkEbEWsBS1PBXiIA1IRyxex/P7ss9iLmB/C
CwVgSNO2p1AR7oDc5YAjXAG8/NJ1s7PnI86AcwXgMC6nBnsdgN8MCCIRkUNqedjHIsgoIidkMUMsN1YC
2AUOOQPm8HwgZQwGMPxPqM4YPI+Rcg8brAL4nAcp96gBNaAG1IAaYNjCGP7di5QlkbIcU/MB6WubB5bP
KlAAAAAASUVORK5CYII=
</value>
</data>
<data name="townSignButton.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
wwAADsMBx2+oZAAAABh0RVh0U29mdHdhcmUAcGFpbnQubmV0IDQuMC41ZYUyZQAAAONJREFUWEft0jEO
gzAQBEBeR0tJFYkqDVL+lTKvyLOcbHHR+bRgsqCjIdJEaI3NYtOVUk5Fw0w0zETDTDTMRMNMNNzi+8Pf
TxzfioYteOD79ayoJWjYklYAiy6Zp6nC7jFxXY+GgInxLVVrJWgIVwFMeozjIeQC+LhufV/xH95a5sfk
AvdhOIRcgG2nQi7AttRb2nZv1xHYA/aSC9gZ2tv4aybeb5lcwM7QFvPXTLzfMrkA206FVAAwcYl/Szbu
xXU9GrZgUTvv1hm30LDlKnB6AcBDTRz7Bw0z0TATDTPRME/pPmKnw1qJ7LoMAAAAAElFTkSuQmCC
</value>
</data>
<data name="tipsSignButton.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
wwAADsMBx2+oZAAAABh0RVh0U29mdHdhcmUAcGFpbnQubmV0IDQuMC41ZYUyZQAAAN9JREFUWEftz7sN
wkAQBFAXRAGOqIEAySkpoVNCQrpzKzRweIO1Rsucf+cbEpAeWMMyGpqU0k/RUImGSjRUoqESDZVoqERD
JRqi8WVvu8W+iIbOCobhXWRpBA3df4D9uO9fRQ4bcO6em1QZ0Jwuq1Qf4P/SM3yWDFhSfYA/26fz7zyv
OmBJtQFbHD5gr6IBxgpM190nnkXsJvZFNERt24493+WWo9wN60Q0RF5+vT0mXo5yN6wT0RDNlaPcDetE
NERz5Sh3wzoRDRkrdPE7t+YmoqESDZVoqERDJRrqpOYDrj6pBKfT0lUAAAAASUVORK5CYII=
</value>
</data>
<data name="greySignButton.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
wgAADsIBFShKgAAAABh0RVh0U29mdHdhcmUAcGFpbnQubmV0IDQuMC41ZYUyZQAAAOJJREFUWEft0LEN
gzAUBFBmo3RJ6ZbSpcu0lIzgFbIOq6R0OCmWfn5OkYzJJ0QpngRn+TjR5ZwPRUNLNLREQ0s0tERDcJeQ
qVhpvaO7JRoCLi7Lrdl5B/RhpIW10KO7JRoCLqZ0bbbLgGlOm+CuG/1ax78BNITB+6cBIc5VygD06G6J
hnD4gBBeB+C5fKCclUy/f2RAjTIAPbpboiFMkf8BqWT6TA5Aj+6WaAhfOaBG8wA/9L8xAD26W6Ih6AFb
7DagRdMA70O7/4BzD3jHPbAzRXdLNLREQ0s0tERDSzS0k7s7Zg5I8zHRj9IAAAAASUVORK5CYII=
</value>
</data>
<data name="setflagButton.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
wgAADsIBFShKgAAAABh0RVh0U29mdHdhcmUAcGFpbnQubmV0IDQuMC41ZYUyZQAAAHNJREFUOE9j+P//
P4NHQMR/SjDIDLAhCQtekI01Kk6ADaPIIJAhWA368eMDSZh4gzZUIDC6HBATb1AGAwKjywHxqEFADApk
kCEUBzYI43ANCJNmEB5MvEFU8xpVwwgPxmoQTJAcDDcImyQpGGwQdQq2/wwAuHW+otoYVvoAAAAASUVO
RK5CYII=
</value>
</data>
<data name="clearflagButton.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
wgAADsIBFShKgAAAABh0RVh0U29mdHdhcmUAcGFpbnQubmV0IDQuMC41ZYUyZQAAAG9JREFUOE/t1LEN
ACEIhWFHcSxGcAxGoXRLLo/LWRg1opRX/I0kX5TCpKop56w3wTCEmY8jIsOuICBDqNbqahsSkVY/Q9tQ
KaXVz9APvcsGcr1sNLsNckGrtqGwp4XuaNUQ+g5PatBo6MmgmI9N0wOQev5Ll7lcCAAAAABJRU5ErkJg
gg==
</value>
</data>
<data name="trainerBattleButton.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABMAAAASCAYAAAC5DOVpAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
wgAADsIBFShKgAAAABh0RVh0U29mdHdhcmUAcGFpbnQubmV0IDQuMC41ZYUyZQAAAP1JREFUOE+tkrEV
gkAQRCnBEiyB0JASDC3lSrAMQkogNDQ0tARKIFtv9t3A3rEcBAaft3tv5gNiIyIubXsTjzJn2Ryw1N2f
yiO8FO41abZQQgFg2Z5RartgHeLoPUltRwdUZbZUYjND/9aZwkxEbNmDOcoAHK6MWAGoZQ5lZ/ibjF8Z
ffWErhPAv8VZkNenSaL0UI18+7AIj6TMII/erqyUetjcRpaMWQif/J52gh3nNmdFi0yHOCI0f0aZplmD
mAl2nGNGrhSpwy64mxXsgZztkXyJK1+DxXL2Xo+sQxxZsFJCCWbkPKFeELR3199muMoYLgvYcU4ZQG+V
SfMD7KY3wtu2/tcAAAAASUVORK5CYII=
</value>
</data>
<data name="wildBattleButton.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAYCAYAAADzoH0MAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
wgAADsIBFShKgAAAABh0RVh0U29mdHdhcmUAcGFpbnQubmV0IDQuMC41ZYUyZQAAAOtJREFUOE/FkrEN
wjAURDMWJWOkZATKlJQZgzIlJSNQMgJlRqD7+L501vfZjoIoQDr5+/69S6QwmNlPaprjeLYo3UdVBoDl
+rB1fWdtFRUXhAhpCe6tom6BwjxZRKYoSD9fxqdzhs99weQhjZfT3Zb55SEVdhByZJzLQxoB+1PTSUDV
LIDJwBZMxZKqYI82Czg/b2NxaqYo0BKKcFSEnctDGsfjlIP6BhD23QK/pKsWRVBhZ9TAN2c4Cr5mocpg
0KHwyl8XEMYZfVVl9IK7CyAN92Coaf6/AH8eSOeWmiaAeTqk0QacXxfslw0f+kwSu21Y2aYAAAAASUVO
RK5CYII=
</value>
</data>
<data name="legendaryBattleButton.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABkAAAASCAYAAACuLnWgAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
wgAADsIBFShKgAAAABh0RVh0U29mdHdhcmUAcGFpbnQubmV0IDQuMC41ZYUyZQAAAQJJREFUSEu1kb0R
wjAUgzMOJSUjMAJjUFJ6jJSUGYMRMkbKlHQmehcduucXO9yF4jvb8pOUny7n/HdCMeJ0u2Tg93sIRcIw
8Bzvht8T71VCEWgYePTffXSuFYUigIlB86szNFTB3M8lWgBaJaBWVAqL5D/FFr4cPviLzEKQklYZS3S+
WoJLwE+FNQr1GlEfs8KSc381MDinwQZbb8Onxzx8zGiWwJBSbytCtop4p/PVEjusRb5kmt4GQ73mS7TA
cvVgwiLxc8HIMOjc+zML+D+KzEJYJD6NBkEbhtECseLMO85Gb2GZXjBxNSEQK8MidA74LFAICo178F4l
FI8mFI8ldx/JDrZXxapFRgAAAABJRU5ErkJggg==
</value>
</data>
<data name="button4.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
@ -1221,9 +1144,83 @@
<metadata name="messageColumn.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="messageColumn.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
<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
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAACA
DwAAAk1TRnQBSQFMAgEBBwEAAZwBDAGcAQwBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
AwABQAMAASADAAEBAQABCAYAAQgYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
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/woAAewBEgHvBQAB9BEA
ChIYAALzAusB7wHsAesB8wUAAeoB9AUAAvIB9AYAAxIGSgMSFAAB8wHxAbwC7AEHAbwBBwHsAesBBwQA
AQ4BEgHtBAAB8AEiASkB6wHzBQABEgJKBm4CSgESEwABvAH3Ae0BkgHvAbwBBwHwAfQB8gHrAeoEAAEO
AW0B7QMAAQcBIwIrASoB6wHzAwABEgFKAW4BSgZuAUoBbgFKARISAAFtAvcB8AG8AfMC8gL0Ae0B6wEH
AwABBwEVAeoD7QEpASsBJQEfASUBKgHrAfQCAAESAUoBbgFKBpMBSgFuAUoBEhIAAbwB7wHxAfQB9gHy
AvAB9AH2Ae8B7AFtAwAB9AEQAesBSgEwAQMBJQEXAfkCIAElASoB6gIAARIBSgGTAW4GSQFuAZMBSgES
EgAB8gHvAvYB9wFtAesB8gH0AfYB8wHrAewBBwIAAfQBEAFzAUUBJAEgAfkBFwH5ASABHwEgATEBIgH0
AQABEgGTAW4BSQZsAUkBbgGTARITAAHvAfMBvAGSAfAB9wH2AfcB7QEHAesB7AHvAwAB8gERAUUBHwIg
AfkBFwH5ASABHwExASIB9AEAARIBkwFJAmwEcQJsAUkBkwESEwABBwHwAUQBJQEaApIB8gLzAfQBEgHr
AfICAAHyAUMB7AFFAR8BIAH5ARcBJgExATcBMAEUAgABSQFuAWwBcQGXBHEBlwFxAWwBbgESEwAB9AFt
ASwBJQHrAfQC8QLvAfIC6wG8AgAB8wFtAesBRQEfAiAB+QExAVECbQHzAgABSQJsAZcCcQKXAnEBlwJs
AUkTAAEcASwBKwHqAQcBvALvAfQCvAHzAm0DAAHwARMBRQEfASQCKwFRAbwFAAFJAWwCcQaXAnEBbAFJ
EgAB7wIrAUsB7wEHAbwB8QQHAfQBiwHqAwAB8AERAUsBJAEjAQMBSgHwBwABbAFxA5cCeAOXAXEBbBIA
Ae8BKwEsAUUCvAEHAe8BBwG8AfABGQLbAWwBBwMAAfABIwIrAQ4B8AHxCAABSQFxApcBeAWXAXEBSRIA
ARIBLAFFAfIB8wHvAfIB8QG7AtoBswKLAfMEAAHwASMBNwExAQ4LAAFJAXEClwF4A5cBcQFJFAABEgG8
AgABBwGzAdQBswJsAe8IAAHvAg4B8wwAAWwBcQSXAXEBbBkAAQcCEgG8HQAEcRcAAfQL8wH0EwAN8xMA
AQcL7wEHAgAPEAEAAQcNswEHBwAEQwcAAe8BAAG7BrMBuwIAAe8CAAEQBjgBEAbTARABAAGzDQABswUA
AkME8AJDBQAB7wEAAbMGAAGzAgAB7wIAARACOAMAATgBEALTAgAC0wEQAQABsw0AAbMEAAFDCPABQwQA
Ae8BAAGtAQABlwJWAZcBAAGzAgAB7wIAARADOAEAAjgBEAHTAQAC0wEAAdMBEAEAAbMBAAFWCVABVgEA
AbMDAAFDA/ABkgJDAZID8AFDAwAB7wEAAa0BAARWAQABswH0AQAB7wIAARACOAIAAjgBEAHTAQAC0wEA
AdMBEAEAAbMBAAtWAQABswMAAUMB8AGSARIBQwHwAZIBQwESAZIB8AFDAwAB7wEAAa0BAARWAQABswH0
AQAB7wIAARADOAEAAjgBEALTAgAC0wEQAQABswEAC1YBAAGzAgABQwHwARICYwFDAQAB8AFDAmMBEgHw
AUMCAAHvAQABrQEABHgBAAGzAfQBAAHvAgABEAY4ARAG0wEQAQABswEAC1YBAAGzAgABQwESBEcCQwRH
ARIBQwIAAe8BAAGtBgABswHzAQAB7wIADxABAAGzAQALVgEAAbMCAAFDDEcBQwIAAe8BAAG7Aq0EswG7
AfMBAAHvAgABEAZHARAGAAEQAQABswEAC1YBAAGzAgABQwxHAUMCAAHvAQAB8wP0AfMB9AQAAe8CAAEQ
AkcCAAJHARAGAAEQAQABswEAC1YBAAGzAwABQwJHApQGRwFDAwAB7wEAAXQCMgEsAXQBAAG8AvcBAAHv
AgABEAFHAQACRwEAAUcBEAYAARABAAGzAQABVgl4AVYBAAGzAwABQwFHBJQFRwFDAwAB7wEAASwDwwFT
AQAB9wIAAfMB8AIAARABRwEAAkcBAAFHARAGAAEQAQABswEAC3gBAAGzBAABQwSUBEcBQwQAAe8BAAF0
AywBdAEAAfcBAAHzAfADAAEQAkcCAAJHARAGAAEQAQABswEAC3gBAAGzBQACQwGUA0cCQwUAAe8IAAHz
AfAEAAEQBkcBEAYAARABAAGzDQABswcABEMHAAEHCO8BBwUADxABAAEJDbMBCREAAUIBTQE+BwABPgMA
ASgDAAFAAwABIAMAAQEBAAEBBgABARYAA/8BAAH/AY8BvwH/AeABBwIAAfgBBwKPAcABAwIAAcABBwGP
AQcBwAEDAgABgAEHAY4BAwGAAQECAAGAAQMBgAEBAYABAQIAAYABAwGAAQEBgAEBAgABgAEBAYABAAGA
AQECAAHAAQEBwAEAAYABAQIAAcABAAHAAQEBgAEBAgABwAEAAcABAQGAAQECAAHAAQAB4AEPAYABAQIA
AYABAAHgAR8BwAEDBAAB4AE/AcABAwMAAQEB4AH/AeABBwIAAZgBDwHwAf8B8AEPAgAB+AF/Av8B/AE/
AgABgAEDAv8BgAEDAv8BgAEDAQABAQEAAQEB/AE/AaABGwEAAQEBfwH9AfABDwGvAdsBAAExAX8B/QHg
AQcBqAFbAQABSQFAAQUBwAEDAagBSwEAAUkBQAEFAcABAwGoAUsBAAExAUABBQGBAQEBqAFLAQABAQFA
AQUBgAEBAa8BywEAAQEBQAEFAYABAQGgAQsBAAH9AUABBQGAAQEBoAF7ARgBxQFAAQUBwAEDAaABiwEk
Ae0BQAEFAcABAwGgAbMBJAHNAUABBQHgAQcBoAGnARgB7QFAAQUB8AEPAb8BzwEAAf0BfwH9AfwBPwGA
AR8BAAEBAQABAQL/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>
@ -1342,9 +1339,6 @@
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>48</value>
</metadata>

View File

@ -106,7 +106,7 @@ namespace DSPRE
public void AddBuilding(Building b) {
buildings.Add(b);
}
public byte[] ExportBuildings() {
public byte[] BuildingsToByteArray() {
MemoryStream newData = new MemoryStream(0x30 * buildings.Count);
using (BinaryWriter writer = new BinaryWriter(newData)) {
for (int i = 0; i < buildings.Count; i++) {
@ -132,7 +132,7 @@ namespace DSPRE
public byte[] ExportMapModel() {
return mapModelData;
}
public byte[] ExportPermissions() {
public byte[] CollisionsToByteArray() {
MemoryStream newData = new MemoryStream();
using (BinaryWriter writer = new BinaryWriter(newData)) {
for (int i = 0; i < 32; i++) {
@ -205,7 +205,7 @@ namespace DSPRE
bdhc = reader.ReadBytes((int)newData.Length);
}
}
public byte[] Save() {
public byte[] ToByteArray() {
MemoryStream newData = new MemoryStream();
using (BinaryWriter writer = new BinaryWriter(newData)) {
/* Write section lengths */
@ -222,8 +222,8 @@ namespace DSPRE
}
/* Write sections */
writer.Write(ExportPermissions());
writer.Write(ExportBuildings());
writer.Write(CollisionsToByteArray());
writer.Write(BuildingsToByteArray());
writer.Write(ExportMapModel());
writer.Write(GetTerrain());
}

View File

@ -227,6 +227,8 @@ namespace DSPRE {
@"data\a\1\4\8"
};
if (gameVersion == "SS")
narcPaths[narcPaths.Length - 2] = @"data\a\1\3\6"; //Fix SS encounters
break;
}
}

198
DS_Map/ScriptCommand.cs Normal file
View File

@ -0,0 +1,198 @@
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
namespace DSPRE {
public class Script {
public List<ScriptCommand> commands;
public int useScript;
#region Constructors (2)
public Script(int useScript = -1, List<ScriptCommand> commandList = null) {
commands = commandList;
this.useScript = useScript;
}
#endregion
}
public class ScriptCommand {
#region Fields (4)
public ushort id;
public List<byte[]> parameterList;
public string cmdName;
public bool isMovement;
#endregion
#region Constructors (2)
public ScriptCommand(ushort id, List<byte[]> parameterList, bool isMovement = false) {
this.id = id;
this.isMovement = isMovement;
this.parameterList = parameterList;
Dictionary<ushort, string> commandNamesDatabase;
if (isMovement) {
commandNamesDatabase = PokeDatabase.ScriptEditor.movementsDictIDName;
} else {
commandNamesDatabase = RomInfo.scriptCommandNamesDict;
}
try {
cmdName = commandNamesDatabase[id];
} catch (KeyNotFoundException) {
cmdName = id.ToString("X4");
}
if (isMovement) {
for (int i = 0; i < parameterList.Count; i++) {
if (parameterList[i].Length == 1)
this.cmdName += " " + "0x" + (parameterList[i][0]).ToString("X1");
else if (parameterList[i].Length == 2)
this.cmdName += " " + "0x" + (BitConverter.ToInt16(parameterList[i], 0)).ToString("X1");
else if (parameterList[i].Length == 4)
this.cmdName += " " + "0x" + (BitConverter.ToInt32(parameterList[i], 0)).ToString("X1");
}
} else {
switch (id) {
case 0x16: // Jump
case 0x1A: // Call
this.cmdName += " " + "Function_#" + (1 + BitConverter.ToInt32(parameterList[0], 0)).ToString("D");
break;
case 0x17: // JumpIfObjID
case 0x18: // JumpIfBgID
case 0x19: // JumpIfPlayerDir
this.cmdName += " " + (BitConverter.ToInt32(parameterList[0], 0)).ToString("D") + " " + "Function_#" + (1 + (BitConverter.ToInt32(parameterList[1], 0))).ToString("D");
break;
case 0x1C: // CompareLastResultJump
case 0x1D: // CompareLastResultCall
byte opcode = parameterList[0][0];
this.cmdName += " " + PokeDatabase.ScriptEditor.comparisonOperators[opcode] + " " + "Function_#" + (1 + (BitConverter.ToInt32(parameterList[1], 0))).ToString("D");
break;
case 0x5E: // ApplyMovement
ushort flexID = BitConverter.ToUInt16(parameterList[0], 0);
this.cmdName += OverworldFlexDecode(flexID);
this.cmdName += " " + "Movement_#" + (1 + (BitConverter.ToInt32(parameterList[1], 0))).ToString("D");
break;
case 0x62: // Lock
case 0x63: // Release
case 0x64: // AddPeople
case 0x65: // RemoveOW
flexID = BitConverter.ToUInt16(parameterList[0], 0);
cmdName += OverworldFlexDecode(flexID);
break;
default:
for (int i = 0; i < parameterList.Count; i++) {
if (parameterList[i].Length == 1)
this.cmdName += " " + "0x" + (parameterList[i][0]).ToString("X1");
else if (parameterList[i].Length == 2)
this.cmdName += " " + "0x" + (BitConverter.ToInt16(parameterList[i], 0)).ToString("X1");
else if (parameterList[i].Length == 4)
this.cmdName += " " + "0x" + (BitConverter.ToInt32(parameterList[i], 0)).ToString("X1");
}
break;
}
}
}
public ScriptCommand(string wholeLine, bool isMovement = false) {
this.cmdName = wholeLine;
this.isMovement = isMovement;
this.parameterList = new List<byte[]>();
string[] nameParts = wholeLine.Split(' '); // Separate command code from parameters
/* Get command id, which is always first in the description */
try {
if (isMovement) {
id = PokeDatabase.ScriptEditor.movementsDictIDName.First(x => x.Value == nameParts[0]).Key;
} else {
id = RomInfo.scriptCommandNamesDict.First(x => x.Value == nameParts[0]).Key;
}
} catch (InvalidOperationException) {
UInt16.TryParse(nameParts[0], NumberStyles.HexNumber, CultureInfo.InvariantCulture, out this.id);
}
/* Read parameters from remainder of the description */
Console.WriteLine("ID = " + id.ToString("X4"));
if (nameParts.Length > 1) {
if (isMovement) {
if (nameParts[1].Length > 4) { // Cases where movement is followed by an Overworld parameter
int positionOfOverworldID = nameParts[1].IndexOf('#'); // Find position of #
parameterList.Add(BitConverter.GetBytes(Int32.Parse(nameParts[1].Substring(positionOfOverworldID + 1), NumberStyles.Integer))); // Add Overworld_#
parameterList[0] = BitConverter.GetBytes(BitConverter.ToInt32(parameterList[0], 0) - 1); // Add Overworld number
// TODO: Check if other cases may apply to movement parameters
} else {
parameterList.Add(BitConverter.GetBytes(Int16.Parse(nameParts[1].Substring(2), NumberStyles.HexNumber)));
}
} else {
byte[] parametersArr = RomInfo.scriptParametersDict[id];
for (int i = 0; i < parametersArr.Length; i++) {
Console.WriteLine("Parameter #" + i.ToString() + ": " + nameParts[i + 1]);
try {
ushort comparisonOperator = PokeDatabase.ScriptEditor.comparisonOperators.First(x => x.Value == nameParts[i + 1]).Key;
parameterList.Add(new byte[] { (byte)comparisonOperator });
} catch { //Not a comparison
int indexOfSpecialCharacter = nameParts[i + 1].IndexOfAny(new char[] { 'x', '#' });
/* If number is preceded by 0x parse it as hex, otherwise as decimal */
NumberStyles style;
if (nameParts[i + 1].Contains("0x"))
style = NumberStyles.HexNumber;
else
style = NumberStyles.Integer;
/* Convert strings of parameters to the correct datatypes */
switch (parametersArr[i]) {
case 1:
parameterList.Add(new byte[] { Byte.Parse(nameParts[i + 1].Substring(indexOfSpecialCharacter + 1), style) });
break;
case 2:
switch (nameParts[i + 1]) {
case "Player":
parameterList.Add(BitConverter.GetBytes((ushort)255));
break;
case "Following":
parameterList.Add(BitConverter.GetBytes((ushort)253));
break;
case "Cam":
parameterList.Add(BitConverter.GetBytes((ushort)241));
break;
default:
parameterList.Add(BitConverter.GetBytes(Int16.Parse(nameParts[i + 1].Substring(indexOfSpecialCharacter + 1), style)));
break;
}
break;
case 4:
parameterList.Add(BitConverter.GetBytes(Int32.Parse(nameParts[i + 1].Substring(indexOfSpecialCharacter + 1), style)));
break;
}
}
}
}
}
}
#endregion
#region Utilities
private string OverworldFlexDecode(ushort flexID) {
if (flexID > 255) {
return " " + "0x" + flexID.ToString("X4");
} else {
switch (flexID) {
case 255:
return " " + "Player";
case 253:
return " " + "Following";
case 241:
return " " + "Cam";
default:
return " " + "Overworld_#" + flexID.ToString("D");
}
}
}
public override string ToString() {
return cmdName + " (" + id.ToString("X") + ")";
}
#endregion
}
}

View File

@ -1,11 +1,7 @@
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Reflection;
using System.Resources;
using System.IO;
using System.Linq;
using System.Collections;
using System.Windows.Forms;
namespace DSPRE {
@ -21,7 +17,7 @@ namespace DSPRE {
#endregion
#region Constructors (1)
public ScriptFile(Stream fs, string gameVersion) {
public ScriptFile(Stream fs) {
List<uint> scriptOffsets = new List<uint>();
List<uint> functionOffsets = new List<uint>();
List<uint> movementOffsets = new List<uint>();
@ -56,16 +52,18 @@ namespace DSPRE {
if (isLevelScript) {
return;
}
/* Read scripts */
for (int i = 0; i < scriptOffsets.Count; i++) {
int duplicateIndex = scriptOffsets.FindIndex(offset => offset == scriptOffsets[i]); // Check for UseScript_#
if (duplicateIndex == i) {
scrReader.BaseStream.Position = scriptOffsets[i];
List<Command> commandsList = new List<Command>();
List<ScriptCommand> commandsList = new List<ScriptCommand>();
bool endScript = new bool();
while (!endScript) {
Command command = Read_Command(scrReader, ref functionOffsets, ref movementOffsets, gameVersion);
ScriptCommand command = ReadCommand(scrReader, ref functionOffsets, ref movementOffsets);
if (command == null) {
return;
} else {
@ -75,32 +73,33 @@ namespace DSPRE {
endScript = true;
}
}
this.scripts.Add(new Script(commandsList));
} else
scripts.Add(new Script(duplicateIndex));
this.scripts.Add(new Script(commandList: commandsList));
} else {
scripts.Add(new Script(useScript: duplicateIndex));
}
}
/* Read functions */
for (int i = 0; i < functionOffsets.Count; i++) {
scrReader.BaseStream.Position = functionOffsets[i];
List<Command> commandsList = new List<Command>();
List<ScriptCommand> cmdList = new List<ScriptCommand>();
bool endFunction = new bool();
while (!endFunction) {
Command command = Read_Command(scrReader, ref functionOffsets, ref movementOffsets, gameVersion);
commandsList.Add(command);
ScriptCommand command = ReadCommand(scrReader, ref functionOffsets, ref movementOffsets);
cmdList.Add(command);
if (endCodes.Contains(command.id))
endFunction = true;
}
this.functions.Add(new Script(commandsList));
this.functions.Add(new Script(commandList: cmdList));
}
/* Read movements */
for (int i = 0; i < movementOffsets.Count; i++) {
scrReader.BaseStream.Position = movementOffsets[i];
List<Command> commandsList = new List<Command>();
List<ScriptCommand> cmdList = new List<ScriptCommand>();
bool endMovement = new bool();
while (!endMovement) {
ushort id = scrReader.ReadUInt16();
@ -110,15 +109,15 @@ namespace DSPRE {
else
endMovement = true;
Command command = new Command(id, parameters, true);
commandsList.Add(command);
ScriptCommand command = new ScriptCommand(id, parameters, isMovement: true);
cmdList.Add(command);
}
this.movements.Add(new Script(commandsList));
this.movements.Add(new Script(commandList: cmdList));
}
}
}
public ScriptFile(int fileID) : this((new FileStream(RomInfo.scriptDirPath +
"\\" + fileID.ToString("D4"), FileMode.Open)), RomInfo.gameVersion) {
"\\" + fileID.ToString("D4"), FileMode.Open))) {
}
public ScriptFile(List<Script> scripts, List<Script> functions, List<Script> movements) {
this.scripts = scripts;
@ -129,16 +128,16 @@ namespace DSPRE {
#endregion
#region Methods (1)
private Command Read_Command(BinaryReader dataReader, ref List<uint> functionOffsets, ref List<uint> movementOffsets, string gameVersion) {
private ScriptCommand ReadCommand(BinaryReader dataReader, ref List<uint> functionOffsets, ref List<uint> movementOffsets) {
ushort id = dataReader.ReadUInt16();
List<byte[]> parameterList = new List<byte[]>();
/* How to read parameters for different commands for DPPt*/
switch (gameVersion) {
switch (RomInfo.gameVersion) {
case "D":
case "P":
case "Plat":
switch (id) {
switch (id) {
case 0x16: //Jump
case 0x1A: //Call
uint offset = dataReader.ReadUInt32() + (uint)dataReader.BaseStream.Position; // Do not change order of addition
@ -171,7 +170,7 @@ namespace DSPRE {
break;
case 0x1CF:
case 0x1D0:
case 0x1D1:
case 0x1D1:
{
byte parameter1 = dataReader.ReadByte();
parameterList.Add(new byte[] { parameter1 });
@ -181,7 +180,7 @@ namespace DSPRE {
break;
case 0x21D:
{
if (gameVersion == "Plat") {
if (RomInfo.gameVersion == "Plat") {
byte parameter1 = dataReader.ReadByte();
parameterList.Add(new byte[] { parameter1 });
@ -260,7 +259,7 @@ namespace DSPRE {
break;
case 0x2C5:
{
if (gameVersion == "Plat") {
if (RomInfo.gameVersion == "Plat") {
parameterList.Add(dataReader.ReadBytes(2));
parameterList.Add(dataReader.ReadBytes(2));
} else {
@ -272,12 +271,12 @@ namespace DSPRE {
case 0x2C9:
case 0x2CA:
case 0x2CD:
if (gameVersion == "Plat")
if (RomInfo.gameVersion == "Plat")
break;
else
goto default;
case 0x2CF:
if (gameVersion == "Plat") {
if (RomInfo.gameVersion == "Plat") {
parameterList.Add(dataReader.ReadBytes(2));
parameterList.Add(dataReader.ReadBytes(2));
} else {
@ -391,7 +390,7 @@ namespace DSPRE {
}
break;
}
return new Command(id, parameterList, false);
return new ScriptCommand(id, parameterList);
}
private void addParametersToList(List<byte[]> parameterList, ushort id, BinaryReader dataReader) {
Console.WriteLine("Loaded command id: " + id.ToString("X4"));
@ -415,7 +414,7 @@ namespace DSPRE {
List<uint> functionOffsets = new List<uint>();
List<uint> movementOffsets = new List<uint>();
List<Tuple<int, int, int>> references = new List<Tuple<int, int, int>>(); // Format: [address, function/movement #, type]
List<Tuple<int, int, bool>> references = new List<Tuple<int, int, bool>>(); // Format: [address, function/movement #, isApplyMovement]
int[] referenceCodes = new int[] { 0x16, 0x1A, 0x1C, 0x1D, 0x5E };
/* Allocate enough space for script pointers, which we do not know yet */
@ -428,10 +427,8 @@ namespace DSPRE {
scriptOffsets.Add((uint)writer.BaseStream.Position);
for (int j = 0; j < scripts[i].commands.Count; j++) {
/* Get command id */
ushort id = scripts[i].commands[j].id;
/* Write ID and Parameters*/
writer.Write(id);
ushort commandID = scripts[i].commands[j].id;
writer.Write(commandID);
/* Get command parameters */
List<byte[]> parameterList = scripts[i].commands[j].parameterList;
@ -441,17 +438,14 @@ namespace DSPRE {
Console.Write("\nCommand added: " + scripts[i].commands[j]);
/* If command calls a function/movement, store reference position */
if (referenceCodes.Contains(id)) {
int index;
if (id == 0x16 || id == 0x1A)
index = 0; // Jump, Call
if (referenceCodes.Contains(commandID)) {
int positionOfJumpAddress;
if (commandID == 0x16 || commandID == 0x1A)
positionOfJumpAddress = 0; // Jump, Call
else
index = 1;
positionOfJumpAddress = 1;
int type = 0;
if (id == 0x5E)
type = 1; // ApplyMovement
references.Add(new Tuple<int, int, int>((int)writer.BaseStream.Position - 4, BitConverter.ToInt32(parameterList[index], 0), type));
references.Add(new Tuple<int, int, bool>((int)(writer.BaseStream.Position - 4), BitConverter.ToInt32(parameterList[positionOfJumpAddress], 0)-1, commandID == 0x5E));
}
}
} else {
@ -464,9 +458,8 @@ namespace DSPRE {
functionOffsets.Add((uint)writer.BaseStream.Position);
for (int j = 0; j < functions[i].commands.Count; j++) {
/* Write command id */
ushort id = functions[i].commands[j].id;
writer.Write(id);
ushort commandID = functions[i].commands[j].id;
writer.Write(commandID);
/* Write command parameters */
List<byte[]> parameterList = functions[i].commands[j].parameterList;
@ -474,17 +467,14 @@ namespace DSPRE {
writer.Write(parameterList[k]);
/* If command calls a function/movement, store reference position */
if (referenceCodes.Contains(id)) {
if (referenceCodes.Contains(commandID)) {
int index;
if (id == 0x16 || id == 0x1A)
if (commandID == 0x16 || commandID == 0x1A)
index = 0;
else
index = 1;
int type = 0;
if (id == 0x5E)
type = 1;
references.Add(new Tuple<int, int, int>((int)writer.BaseStream.Position - 4, BitConverter.ToInt32(parameterList[index], 0), type));
references.Add(new Tuple<int, int, bool>((int)(writer.BaseStream.Position - 4), BitConverter.ToInt32(parameterList[index], 0)-1, commandID == 0x5E));
}
}
}
@ -519,235 +509,29 @@ namespace DSPRE {
for (int i = 0; i < references.Count; i++) {
writer.BaseStream.Position = references[i].Item1;
if (references[i].Item3 == 1)
writer.Write((UInt32)(movementOffsets[references[i].Item2] - references[i].Item1 - 4));
else
writer.Write((UInt32)(functionOffsets[references[i].Item2] - references[i].Item1 - 4));
if (references[i].Item3 == true) { //isApplyMovement
try {
writer.Write((UInt32)(movementOffsets[references[i].Item2] - references[i].Item1 - 4));
} catch (ArgumentOutOfRangeException) {
MessageBox.Show("Movement #" + (1+references[i].Item2) + " undeclared.", "Error!", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
} else {
try {
writer.Write((UInt32)(functionOffsets[references[i].Item2] - references[i].Item1 - 4));
} catch ( ArgumentOutOfRangeException) {
MessageBox.Show("Function #" + (1+references[i].Item2) + " undeclared.", "Error!", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
}
}
return newData.ToArray();
}
public void SaveToFile(int fileID) {
using (BinaryWriter writer = new BinaryWriter((new FileStream(RomInfo.scriptDirPath +
"\\" + fileID.ToString("D4"), FileMode.Create))))
writer.Write(this.ToByteArray());
}
#endregion
}
public class Script {
#region Fields (1)
public List<Command> commands;
public int useScript = -1;
#endregion Fields
#region Constructors (2)
public Script(List<Command> commandsList) {
commands = commandsList;
}
public Script(int useScript) {
this.useScript = useScript;
}
#endregion
}
public class Command {
#region Fields (4)
public ushort id;
public List<byte[]> parameterList;
public string cmdName;
public bool isMovement;
#endregion
#region Constructors (2)
public Command(ushort id, List<byte[]> parameterList, bool isMovement) {
this.id = id;
this.isMovement = isMovement;
this.parameterList = parameterList;
Dictionary<ushort, string> commandNamesDatabase;
if (isMovement) {
commandNamesDatabase = PokeDatabase.ScriptEditor.movementsDictIDName;
} else {
commandNamesDatabase = RomInfo.scriptCommandNamesDict;
}
try {
cmdName = commandNamesDatabase[id];
} catch (KeyNotFoundException) {
cmdName = id.ToString("X4");
}
if (isMovement) {
for (int i = 0; i < parameterList.Count; i++) {
if (parameterList[i].Length == 1)
this.cmdName += " " + "0x" + (parameterList[i][0]).ToString("X1");
else if (parameterList[i].Length == 2)
this.cmdName += " " + "0x" + (BitConverter.ToInt16(parameterList[i], 0)).ToString("X1");
else if (parameterList[i].Length == 4)
this.cmdName += " " + "0x" + (BitConverter.ToInt32(parameterList[i], 0)).ToString("X1");
}
} else {
switch (id) {
case 0x16: // Jump
case 0x1A: // Call
this.cmdName += " " + "Function_#" + (1 + BitConverter.ToInt32(parameterList[0], 0)).ToString("D");
break;
case 0x17: // JumpIfObjID
case 0x18: // JumpIfBgID
case 0x19: // JumpIfPlayerDir
this.cmdName += " " + (BitConverter.ToInt32(parameterList[0], 0)).ToString("D") + " " + "Function_#" + (1 + (BitConverter.ToInt32(parameterList[1], 0))).ToString("D");
break;
case 0x1C: // CompareLastResultJump
case 0x1D: // CompareLastResultCall
byte opcode = parameterList[0][0];
this.cmdName += " " + PokeDatabase.ScriptEditor.comparisonOperators[opcode] + " " + "Function_#" + (1 + (BitConverter.ToInt32(parameterList[1], 0))).ToString("D");
break;
case 0x5E: // ApplyMovement
string owToMove = BitConverter.ToUInt16(parameterList[0], 0).ToString("D");
switch (owToMove) {
case "255":
owToMove = "Player";
break;
case "253":
owToMove = "Following";
break;
case "241":
owToMove = "Cam";
break;
default:
owToMove = "Overworld_#" + owToMove;
break;
}
this.cmdName += " " + owToMove + " " + "Movement_#" + (1 + (BitConverter.ToInt32(parameterList[1], 0))).ToString("D");
break;
case 0x62: // Lock
case 0x63: // Release
case 0x64: // AddPeople
case 0x65: // RemoveOW
owToMove = BitConverter.ToUInt16(parameterList[0], 0).ToString("D");
switch (owToMove) {
case "255":
owToMove = "Player";
break;
case "253":
owToMove = "Following";
break;
case "241":
owToMove = "Cam";
break;
default:
owToMove = "Overworld_#" + owToMove;
break;
}
this.cmdName += " " + owToMove;
break;
default:
for (int i = 0; i < parameterList.Count; i++) {
if (parameterList[i].Length == 1)
this.cmdName += " " + "0x" + (parameterList[i][0]).ToString("X1");
else if (parameterList[i].Length == 2)
this.cmdName += " " + "0x" + (BitConverter.ToInt16(parameterList[i], 0)).ToString("X1");
else if (parameterList[i].Length == 4)
this.cmdName += " " + "0x" + (BitConverter.ToInt32(parameterList[i], 0)).ToString("X1");
}
break;
}
}
}
public Command(string description, bool isMovement = false) {
this.cmdName = description;
this.isMovement = isMovement;
this.parameterList = new List<byte[]>();
string[] words = description.Split(' '); // Separate command code from parameters
/* Get command id, which is always first in the description */
if (isMovement) {
id = PokeDatabase.ScriptEditor.movementsDictIDName.First(x => x.Value == words[0]).Key;
} else {
id = RomInfo.scriptCommandNamesDict.First(x => x.Value == words[0]).Key;
}
if (id == null) {
UInt16.TryParse(words[0], NumberStyles.HexNumber, CultureInfo.InvariantCulture, out this.id);
}
/* Read parameters from remainder of the description */
Console.WriteLine("ID = " + id.ToString("X4"));
if (words.Length > 1) {
if (isMovement) {
if (words[1].Length > 4) { // Cases where movement is followed by an Overworld parameter
int positionOfOverworldID = 1 + words[1].IndexOf('#'); // Find position of #
parameterList.Add(BitConverter.GetBytes(Int32.Parse(words[1].Substring(positionOfOverworldID), NumberStyles.Integer))); // Add Overworld_#
parameterList[0] = BitConverter.GetBytes(BitConverter.ToInt32(parameterList[0], 0) - 1); // Add Overworld number
// TODO: Check if other cases may apply to movement parameters
} else {
parameterList.Add(BitConverter.GetBytes(Int16.Parse(words[1].Substring(2), NumberStyles.HexNumber)));
}
} else {
byte[] parametersArr = RomInfo.scriptParametersDict[id];
for (int i = 1; i < parametersArr.Length; i++) {
Console.WriteLine("Parameter #" + i.ToString() + ": " + words[i]);
try {
ushort comparisonOperator = PokeDatabase.ScriptEditor.comparisonOperators.First(x => x.Value == words[i]).Key;
parameterList.Add(new byte[] { (byte)comparisonOperator });
} catch (KeyNotFoundException) {
int indexOfSpecialCharacter = 1 + words[i].IndexOfAny(new char[] { 'x', '#' });
/* If number is preceded by 0x parse it as hex, otherwise as decimal */
NumberStyles style;
if (words[i].Contains("0x"))
style = NumberStyles.HexNumber;
else
style = NumberStyles.Integer;
/* Convert strings of parameters to the correct datatypes */
switch (parametersArr[i]) {
case 1:
parameterList.Add(new byte[] { Byte.Parse(words[i].Substring(indexOfSpecialCharacter), style) });
break;
case 2:
switch (words[i]) {
case "Player":
parameterList.Add(BitConverter.GetBytes((ushort)255));
break;
case "Following":
parameterList.Add(BitConverter.GetBytes((ushort)253));
break;
case "Cam":
parameterList.Add(BitConverter.GetBytes((ushort)241));
break;
default:
parameterList.Add(BitConverter.GetBytes(Int16.Parse(words[i].Substring(indexOfSpecialCharacter), style)));
break;
}
break;
case 4:
parameterList.Add(BitConverter.GetBytes(Int32.Parse(words[i].Substring(indexOfSpecialCharacter), style)));
break;
}
}
}
/* Fix function and movement references which are +1 greater than array indexes */
Console.WriteLine("before fix Param length = " + parameterList.Count.ToString());
if (id == 0x16 || id == 0x1A)
parameterList[0] = BitConverter.GetBytes(BitConverter.ToInt32(parameterList[0], 0) - 1);
if (id == 0x1C || id == 0x1D || id == 0x5E)
parameterList[1] = BitConverter.GetBytes(BitConverter.ToInt32(parameterList[1], 0) - 1);
}
}
}
#endregion
#region Utilities
public override string ToString() {
return cmdName + " (" + id.ToString("X") + ")";
}
#endregion
}
}
}