diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 4e52eb2..0000000 --- a/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -.vs/* -SilicaTilesEditor/obj/* -SilicaTilesEditor/bin/* \ No newline at end of file diff --git a/SilicaTilesEditor/MainForm.Designer.cs b/SilicaTilesEditor/MainForm.Designer.cs index 56370f2..dff39e7 100644 --- a/SilicaTilesEditor/MainForm.Designer.cs +++ b/SilicaTilesEditor/MainForm.Designer.cs @@ -48,9 +48,9 @@ namespace SilicaTilesEditor this.tileset7 = new System.Windows.Forms.ToolStripMenuItem(); this.lookingAt = new System.Windows.Forms.Label(); this.layout = new System.Windows.Forms.TableLayoutPanel(); - this.selTileId = new System.Windows.Forms.Label(); this.tileSelector = new SilicaTilesEditor.TileSelectorControl(); this.tileList = new SilicaTilesEditor.TileMapEditorControl(); + this.selTileId = new System.Windows.Forms.Label(); this.toolMenu.SuspendLayout(); this.layout.SuspendLayout(); this.SuspendLayout(); @@ -82,21 +82,21 @@ namespace SilicaTilesEditor // newItem // this.newItem.Name = "newItem"; - this.newItem.Size = new System.Drawing.Size(121, 22); + this.newItem.Size = new System.Drawing.Size(180, 22); this.newItem.Text = "New File"; this.newItem.Click += new System.EventHandler(this.newItem_Click); // // loadItem // this.loadItem.Name = "loadItem"; - this.loadItem.Size = new System.Drawing.Size(121, 22); + this.loadItem.Size = new System.Drawing.Size(180, 22); this.loadItem.Text = "Load File"; this.loadItem.Click += new System.EventHandler(this.loadItem_Click); // // saveItem // this.saveItem.Name = "saveItem"; - this.saveItem.Size = new System.Drawing.Size(121, 22); + this.saveItem.Size = new System.Drawing.Size(180, 22); this.saveItem.Text = "Save File"; this.saveItem.Click += new System.EventHandler(this.saveItem_Click); // @@ -234,16 +234,6 @@ namespace SilicaTilesEditor this.layout.Size = new System.Drawing.Size(1107, 487); this.layout.TabIndex = 4; // - // selTileId - // - this.selTileId.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.selTileId.AutoSize = true; - this.selTileId.Location = new System.Drawing.Point(12, 515); - this.selTileId.Name = "selTileId"; - this.selTileId.Size = new System.Drawing.Size(89, 13); - this.selTileId.TabIndex = 5; - this.selTileId.Text = "Seleted Tile ID: 0"; - // // tileSelector // this.tileSelector.AutoScroll = true; @@ -263,6 +253,16 @@ namespace SilicaTilesEditor this.tileList.Size = new System.Drawing.Size(852, 481); this.tileList.TabIndex = 1; // + // selTileId + // + this.selTileId.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.selTileId.AutoSize = true; + this.selTileId.Location = new System.Drawing.Point(12, 515); + this.selTileId.Name = "selTileId"; + this.selTileId.Size = new System.Drawing.Size(89, 13); + this.selTileId.TabIndex = 5; + this.selTileId.Text = "Seleted Tile ID: 1"; + // // MainForm // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); @@ -275,7 +275,6 @@ 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 5e8da4d..bbe8c20 100644 --- a/SilicaTilesEditor/MainForm.cs +++ b/SilicaTilesEditor/MainForm.cs @@ -1,5 +1,4 @@ using System; -using System.Diagnostics; using System.Windows.Forms; namespace SilicaTilesEditor @@ -43,8 +42,9 @@ namespace SilicaTilesEditor } private void MainForm_Load(object sender, EventArgs e) { - Tileset.ReadAllTiles(); - + Tileset.ReadTerrain(); + Tileset.ReadOverlay(); + Tileset.ReadExtOverlay(); layout.ColumnStyles[0].Width = (32*7) + SystemInformation.VerticalScrollBarWidth; tileset0.Checked = true; tileList.ExtOverlay = 0; @@ -172,10 +172,5 @@ 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/TileMapEditorControl.cs b/SilicaTilesEditor/TileMapEditorControl.cs index d0e4fa8..4acd599 100644 --- a/SilicaTilesEditor/TileMapEditorControl.cs +++ b/SilicaTilesEditor/TileMapEditorControl.cs @@ -46,7 +46,7 @@ namespace SilicaTilesEditor this.Invalidate(); if(Map.MapLoaded) - Program.form.lookingAt.Text = "Looking at: " + selectedTileX + "," + selectedTileY + "(" + (Map.GetTileId(selectedTileX, selectedTileY, false) - 1) + ":" + (Map.GetTileId(selectedTileX, selectedTileY, true) - 1) + ")"; + Program.form.lookingAt.Text = "Looking at: " + selectedTileX + "," + selectedTileY + "(" + Map.GetTileId(selectedTileX, selectedTileY, false) + ":" + Map.GetTileId(selectedTileX, selectedTileY, true) + ")"; } } @@ -89,7 +89,7 @@ namespace SilicaTilesEditor int relY = 0; if (Map.MapLoaded) { - /* Draw Terrain Tiles */ + for (int y = offsetY; y < (tlistHeight + offsetY)+1; y++) { relX = -1; @@ -105,7 +105,7 @@ namespace SilicaTilesEditor } relY++; } - /* Draw Overlay Tiles */ + if (DisplayOverlay) { @@ -118,11 +118,10 @@ namespace SilicaTilesEditor for (int x = offsetX; x < (tlistWidth + offsetX) + 1; x++) { relX++; - int tileId = Map.GetTileId(x, y, true) -1; + int tileId = Map.GetTileId(x, y, true) - 1; Bitmap Tile = null; if (tileId >= Tileset.OverlayList.Length) { - /* Draw Extenal Overlay Tiles */ tileId -= Tileset.OverlayList.Length; Tile = Tileset.GetTileset(ExtOverlay)[tileId]; } diff --git a/SilicaTilesEditor/TileSelectorControl.cs b/SilicaTilesEditor/TileSelectorControl.cs index 4d21db9..24ab0d2 100644 --- a/SilicaTilesEditor/TileSelectorControl.cs +++ b/SilicaTilesEditor/TileSelectorControl.cs @@ -33,7 +33,7 @@ namespace SilicaTilesEditor else SelTileY = Convert.ToInt32(Math.Floor((float)VerticalScroll.Value / 48.0)) + Convert.ToInt32(Math.Floor((float)(e.Y + tinyOffsetY) / 48.0)); - SelectedTileid = ((SelTileY * maxX) + SelTileX); + SelectedTileid = ((SelTileY * maxX) + SelTileX) + 1; bool change = false; if(SelectedTileid > 0xFF) diff --git a/SilicaTilesEditor/Tileset.cs b/SilicaTilesEditor/Tileset.cs index 0b8d771..5f382a7 100644 --- a/SilicaTilesEditor/Tileset.cs +++ b/SilicaTilesEditor/Tileset.cs @@ -1,36 +1,24 @@ using SilicaTilesEditor.Properties; using System; using System.Drawing; -using System.Threading.Tasks; namespace SilicaTilesEditor { class Tileset { - private static Bitmap cacheTerrainTileset = Resources.TerrainTileset; - private static Bitmap cacheOverlayTileset = Resources.OverlayTileset; - private static Bitmap cacheOverlayTileset0 = Resources.Tileset0; - private static Bitmap cacheOverlayTileset1 = Resources.Tileset1; - private static Bitmap cacheOverlayTileset2 = Resources.Tileset2; - private static Bitmap cacheOverlayTileset3 = Resources.Tileset3; - private static Bitmap cacheOverlayTileset4 = Resources.Tileset4; - private static Bitmap cacheOverlayTileset5 = Resources.Tileset5; - private static Bitmap cacheOverlayTileset6 = Resources.Tileset6; - private static Bitmap cacheOverlayTileset7 = Resources.Tileset7; + public static Bitmap[] TerrainList = new Bitmap[((Resources.TerrainTileset.Height / 32) * (Resources.TerrainTileset.Width / 32)) + 1]; + public static Bitmap[] OverlayList = new Bitmap[193]; + 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[] ExtNorm = new Bitmap[((Resources.Tileset0.Height / 48) * (Resources.Tileset0.Width / 32)) + 1]; + public static Bitmap[] ExtSnow = new Bitmap[((Resources.Tileset1.Height / 48) * (Resources.Tileset1.Width / 32)) + 1]; + public static Bitmap[] ExtSand = new Bitmap[((Resources.Tileset2.Height / 48) * (Resources.Tileset2.Width / 32)) + 1]; + public static Bitmap[] ExtPirt = new Bitmap[((Resources.Tileset3.Height / 48) * (Resources.Tileset3.Width / 32)) + 1]; + public static Bitmap[] ExtFlwr = new Bitmap[((Resources.Tileset4.Height / 48) * (Resources.Tileset4.Width / 32)) + 1]; + public static Bitmap[] ExtJngl = new Bitmap[((Resources.Tileset5.Height / 48) * (Resources.Tileset5.Width / 32)) + 1]; + public static Bitmap[] ExtClwd = new Bitmap[((Resources.Tileset6.Height / 48) * (Resources.Tileset6.Width / 32)) + 1]; + public static Bitmap[] ExtVolc = new Bitmap[((Resources.Tileset7.Height / 48) * (Resources.Tileset7.Width / 32)) + 1]; - 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 @@ -91,43 +79,28 @@ namespace SilicaTilesEditor } } - public static void ReadAllTiles() - { - Task[] tileTasks = new Task[3]; - - tileTasks[0] = Task.Run(() => readTerrain()); - tileTasks[1] = Task.Run(() => readOverlay()); - tileTasks[2] = Task.Run(() => readExtOverlay()); - - Task.WaitAll(tileTasks); - ReadAllTerrain = true; - ReadAllOverlay = true; - } - private static void readTerrain() + public static void ReadTerrain() { Console.WriteLine("Reading Terrain.png..."); int i = 0; - Rectangle dstRect = new Rectangle(0, 0, 32, 32); - Rectangle srcRect = new Rectangle(0, 0, 32, 32); - for (int y = 0; y < (cacheTerrainTileset.Height/32); y++) + for (int y = 0; y < (Resources.TerrainTileset.Height/32); y++) { - for (int x = 0; x < (cacheTerrainTileset.Width / 32); x++) + for (int x = 0; x < (Resources.TerrainTileset.Width / 32); x++) { i++; TerrainList[i] = new Bitmap(32, 32); - srcRect.X = x * 32; - srcRect.Y = y * 32; - CopyRegionIntoImage(cacheTerrainTileset, srcRect, TerrainList[i], dstRect); + int posx = x * 32; + int posy = y * 32; + CopyRegionIntoImage(Resources.TerrainTileset, new Rectangle(posx, posy, 32, 32), TerrainList[i], new Rectangle(0, 0, 32, 32)); } } + ReadAllTerrain = true; } - private static void readExtOverlay() + public static void ReadExtOverlay() { - Rectangle dstRect = new Rectangle(0, 0, 32, 48); - Rectangle srcRect = new Rectangle(0, 0, 32, 48); - for (int picid = 0; picid <= 7; picid++) + for(int picid = 0; picid <= 7; picid++) { Bitmap[] TilesetList = GetTileset(picid); Bitmap Tileset = ExtOverlays[picid]; @@ -139,35 +112,31 @@ namespace SilicaTilesEditor { for (int x = 0; x < (Tileset.Width / 32); x++) { - TilesetList[i] = new Bitmap(32, 48); - srcRect.X = x * 32; - srcRect.Y = y * 48; - CopyRegionIntoImage(Tileset, srcRect, TilesetList[i], dstRect); i++; + TilesetList[i] = new Bitmap(32, 48); + int posx = x * 32; + int posy = y * 48; + CopyRegionIntoImage(Tileset, new Rectangle(posx, posy, 32, 48), TilesetList[i], new Rectangle(0, 0, 32, 48)); } } Console.WriteLine("Total Tiles Read: " + i.ToString()); } } - private static void readOverlay() + public static void ReadOverlay() { Console.WriteLine("Reading Overlay.png..."); int i = 0; int OVERLAY_SIZE = 24; - Rectangle dstRect = new Rectangle(0, 0, 32, 48); - Rectangle srcRect = new Rectangle(0, 0, 32, 48); - for (int y = 0; y < OVERLAY_SIZE; y++) { - for (int x = 0; x < (cacheOverlayTileset.Width / 32); x++) + for (int x = 0; x < (Resources.OverlayTileset.Width / 32); x++) { i++; OverlayList[i] = new Bitmap(32, 48); - srcRect.X = x * 32; - srcRect.Y = y * 48; - - CopyRegionIntoImage(cacheOverlayTileset, srcRect, OverlayList[i], dstRect); + int posx = x * 32; + int posy = y * 48; + CopyRegionIntoImage(Resources.OverlayTileset, new Rectangle(posx, posy, 32, 48), OverlayList[i], new Rectangle(0, 0, 32, 48)); } } }