From e560c569a2fb1894188f5dd4e22c25ce065dc45d Mon Sep 17 00:00:00 2001 From: Li Date: Mon, 28 Nov 2022 12:08:22 +1300 Subject: [PATCH] Improve load time 2 --- SilicaTilesEditor/MainForm.Designer.cs | 1 + SilicaTilesEditor/MainForm.cs | 8 +++-- SilicaTilesEditor/Tileset.cs | 46 ++++++++++++++++---------- 3 files changed, 35 insertions(+), 20 deletions(-) diff --git a/SilicaTilesEditor/MainForm.Designer.cs b/SilicaTilesEditor/MainForm.Designer.cs index d2dce73..56370f2 100644 --- a/SilicaTilesEditor/MainForm.Designer.cs +++ b/SilicaTilesEditor/MainForm.Designer.cs @@ -275,6 +275,7 @@ namespace SilicaTilesEditor this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); this.Name = "MainForm"; this.Text = "Horse Isle Map Editor"; + this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.MainForm_FormClosing); this.Load += new System.EventHandler(this.MainForm_Load); this.toolMenu.ResumeLayout(false); this.toolMenu.PerformLayout(); diff --git a/SilicaTilesEditor/MainForm.cs b/SilicaTilesEditor/MainForm.cs index aac65ff..5e8da4d 100644 --- a/SilicaTilesEditor/MainForm.cs +++ b/SilicaTilesEditor/MainForm.cs @@ -1,6 +1,5 @@ using System; -using System.Collections.Generic; -using System.Threading.Tasks; +using System.Diagnostics; using System.Windows.Forms; namespace SilicaTilesEditor @@ -173,5 +172,10 @@ namespace SilicaTilesEditor MessageBox.Show("File saved successfully.", "Save", MessageBoxButtons.OK, MessageBoxIcon.Information); } } + + private void MainForm_FormClosing(object sender, FormClosingEventArgs e) + { + Process.GetCurrentProcess().Kill(); + } } } diff --git a/SilicaTilesEditor/Tileset.cs b/SilicaTilesEditor/Tileset.cs index ce200ba..4d6121e 100644 --- a/SilicaTilesEditor/Tileset.cs +++ b/SilicaTilesEditor/Tileset.cs @@ -1,26 +1,36 @@ using SilicaTilesEditor.Properties; using System; -using System.Collections.Generic; using System.Drawing; -using System.Runtime.CompilerServices; using System.Threading.Tasks; namespace SilicaTilesEditor { class Tileset { - public static Bitmap[] TerrainList = new Bitmap[((Resources.TerrainTileset.Height / 32) * (Resources.TerrainTileset.Width / 32)) + 1]; - public static Bitmap[] OverlayList = new Bitmap[192 + 1]; - public static Bitmap[] ExtOverlays = new Bitmap[8] { Resources.Tileset0, Resources.Tileset1, Resources.Tileset2, Resources.Tileset3, Resources.Tileset4, Resources.Tileset5, Resources.Tileset6, Resources.Tileset7 }; + public static Bitmap CacheTerrainTileset = Resources.TerrainTileset; + public static Bitmap CacheOverlayTileset = Resources.OverlayTileset; + public static Bitmap CacheOverlayTileset0 = Resources.Tileset0; + public static Bitmap CacheOverlayTileset1 = Resources.Tileset1; + public static Bitmap CacheOverlayTileset2 = Resources.Tileset2; + public static Bitmap CacheOverlayTileset3 = Resources.Tileset3; + public static Bitmap CacheOverlayTileset4 = Resources.Tileset4; + public static Bitmap CacheOverlayTileset5 = Resources.Tileset5; + public static Bitmap CacheOverlayTileset6 = Resources.Tileset6; + public static Bitmap CacheOverlayTileset7 = Resources.Tileset7; - public static Bitmap[] ExtNorm = new Bitmap[((Resources.Tileset0.Height / 48) * (Resources.Tileset0.Width / 32))]; - public static Bitmap[] ExtSnow = new Bitmap[((Resources.Tileset1.Height / 48) * (Resources.Tileset1.Width / 32))]; - public static Bitmap[] ExtSand = new Bitmap[((Resources.Tileset2.Height / 48) * (Resources.Tileset2.Width / 32))]; - public static Bitmap[] ExtPirt = new Bitmap[((Resources.Tileset3.Height / 48) * (Resources.Tileset3.Width / 32))]; - public static Bitmap[] ExtFlwr = new Bitmap[((Resources.Tileset4.Height / 48) * (Resources.Tileset4.Width / 32))]; - public static Bitmap[] ExtJngl = new Bitmap[((Resources.Tileset5.Height / 48) * (Resources.Tileset5.Width / 32))]; - public static Bitmap[] ExtClwd = new Bitmap[((Resources.Tileset6.Height / 48) * (Resources.Tileset6.Width / 32))]; - public static Bitmap[] ExtVolc = new Bitmap[((Resources.Tileset7.Height / 48) * (Resources.Tileset7.Width / 32))]; + + public static Bitmap[] TerrainList = new Bitmap[((CacheTerrainTileset.Height / 32) * (CacheTerrainTileset.Width / 32)) + 1]; + public static Bitmap[] OverlayList = new Bitmap[192 + 1]; + public static Bitmap[] ExtOverlays = new Bitmap[8] { CacheOverlayTileset0, CacheOverlayTileset1, CacheOverlayTileset2, CacheOverlayTileset3, CacheOverlayTileset4, CacheOverlayTileset5, CacheOverlayTileset6, CacheOverlayTileset7 }; + + public static Bitmap[] ExtNorm = new Bitmap[((CacheOverlayTileset0.Height / 48) * (CacheOverlayTileset0.Width / 32))]; + public static Bitmap[] ExtSnow = new Bitmap[((CacheOverlayTileset1.Height / 48) * (CacheOverlayTileset1.Width / 32))]; + public static Bitmap[] ExtSand = new Bitmap[((CacheOverlayTileset2.Height / 48) * (CacheOverlayTileset2.Width / 32))]; + public static Bitmap[] ExtPirt = new Bitmap[((CacheOverlayTileset3.Height / 48) * (CacheOverlayTileset3.Width / 32))]; + public static Bitmap[] ExtFlwr = new Bitmap[((CacheOverlayTileset4.Height / 48) * (CacheOverlayTileset4.Width / 32))]; + public static Bitmap[] ExtJngl = new Bitmap[((CacheOverlayTileset5.Height / 48) * (CacheOverlayTileset5.Width / 32))]; + public static Bitmap[] ExtClwd = new Bitmap[((CacheOverlayTileset6.Height / 48) * (CacheOverlayTileset6.Width / 32))]; + public static Bitmap[] ExtVolc = new Bitmap[((CacheOverlayTileset7.Height / 48) * (CacheOverlayTileset7.Width / 32))]; public static Bitmap[] JoinedTileset { get @@ -100,15 +110,15 @@ namespace SilicaTilesEditor Rectangle dstRect = new Rectangle(0, 0, 32, 32); Rectangle srcRect = new Rectangle(0, 0, 32, 32); - for (int y = 0; y < (Resources.TerrainTileset.Height/32); y++) + for (int y = 0; y < (CacheTerrainTileset.Height/32); y++) { - for (int x = 0; x < (Resources.TerrainTileset.Width / 32); x++) + for (int x = 0; x < (CacheTerrainTileset.Width / 32); x++) { i++; TerrainList[i] = new Bitmap(32, 32); srcRect.X = x * 32; srcRect.Y = y * 32; - CopyRegionIntoImage(Resources.TerrainTileset, srcRect, TerrainList[i], dstRect); + CopyRegionIntoImage(CacheTerrainTileset, srcRect, TerrainList[i], dstRect); } } } @@ -150,14 +160,14 @@ namespace SilicaTilesEditor for (int y = 0; y < OVERLAY_SIZE; y++) { - for (int x = 0; x < (Resources.OverlayTileset.Width / 32); x++) + for (int x = 0; x < (CacheOverlayTileset.Width / 32); x++) { i++; OverlayList[i] = new Bitmap(32, 48); srcRect.X = x * 32; srcRect.Y = y * 48; - CopyRegionIntoImage(Resources.OverlayTileset, srcRect, OverlayList[i], dstRect); + CopyRegionIntoImage(CacheOverlayTileset, srcRect, OverlayList[i], dstRect); } } }