Skip to content

Commit

Permalink
Fixing bugs with drawing on chunks and blocks.
Browse files Browse the repository at this point in the history
  • Loading branch information
MainMemory committed Apr 14, 2015
1 parent 3d4ff58 commit 1fa399b
Showing 1 changed file with 25 additions and 13 deletions.
38 changes: 25 additions & 13 deletions SonLVL/MainForm.cs
Expand Up @@ -3005,9 +3005,10 @@ private void ChunkPicture_MouseClick(object sender, MouseEventArgs e)
{
if (!loaded || e.Button != MouseButtons.Right) return;
SelectedChunkBlock = new Point(e.X / 16, e.Y / 16);
copiedChunkBlock = chunkBlockEditor.SelectedObject = LevelData.Chunks[SelectedChunk].Blocks[SelectedChunkBlock.X, SelectedChunkBlock.Y];
if (copiedChunkBlock.Block < LevelData.Blocks.Count)
BlockSelector.SelectedIndex = copiedChunkBlock.Block;
ChunkBlock blk = LevelData.Chunks[SelectedChunk].Blocks[SelectedChunkBlock.X, SelectedChunkBlock.Y];
if (blk.Block < LevelData.Blocks.Count)
BlockSelector.SelectedIndex = blk.Block;
copiedChunkBlock = chunkBlockEditor.SelectedObject = blk;
DrawChunkPicture();
}

Expand All @@ -3017,13 +3018,14 @@ private void ChunkPicture_MouseMove(object sender, MouseEventArgs e)
if (e.X > 0 && e.Y > 0 && e.X < LevelData.Level.ChunkWidth && e.Y < LevelData.Level.ChunkHeight)
{
SelectedChunkBlock = new Point(e.X / 16, e.Y / 16);
ChunkBlock destBlock = chunkBlockEditor.SelectedObject = LevelData.Chunks[SelectedChunk].Blocks[SelectedChunkBlock.X, SelectedChunkBlock.Y];
ChunkBlock destBlock = LevelData.Chunks[SelectedChunk].Blocks[SelectedChunkBlock.X, SelectedChunkBlock.Y];
destBlock.Block = copiedChunkBlock.Block;
destBlock.Solid1 = copiedChunkBlock.Solid1;
destBlock.XFlip = copiedChunkBlock.XFlip;
destBlock.YFlip = copiedChunkBlock.YFlip;
if (copiedChunkBlock is S2ChunkBlock)
((S2ChunkBlock)destBlock).Solid2 = ((S2ChunkBlock)copiedChunkBlock).Solid2;
chunkBlockEditor.SelectedObject = destBlock;
LevelData.RedrawChunk(SelectedChunk);
DrawChunkPicture();
}
Expand Down Expand Up @@ -3118,7 +3120,7 @@ private void ChunkPicture_KeyDown(object sender, KeyEventArgs e)
LevelData.RedrawChunk(SelectedChunk);
DrawLevel();
DrawChunkPicture();
chunkBlockEditor.SelectedObject = current;
copiedChunkBlock = chunkBlockEditor.SelectedObject = current;
}

private void chunkBlockEditor_PropertyValueChanged(object sender, EventArgs e)
Expand Down Expand Up @@ -3167,7 +3169,9 @@ private void flipChunkHButton_Click(object sender, EventArgs e)
}
LevelData.Chunks[SelectedChunk] = newcnk;
LevelData.RedrawChunk(SelectedChunk);
chunkBlockEditor.SelectedObject = newcnk.Blocks[SelectedChunkBlock.X, SelectedChunkBlock.Y];
if (newcnk.Blocks[SelectedChunkBlock.X, SelectedChunkBlock.Y].Block < LevelData.Blocks.Count)
BlockSelector.SelectedIndex = newcnk.Blocks[SelectedChunkBlock.X, SelectedChunkBlock.Y].Block;
copiedChunkBlock = chunkBlockEditor.SelectedObject = newcnk.Blocks[SelectedChunkBlock.X, SelectedChunkBlock.Y];
DrawChunkPicture();
}

Expand All @@ -3184,6 +3188,8 @@ private void flipChunkVButton_Click(object sender, EventArgs e)
}
LevelData.Chunks[SelectedChunk] = newcnk;
LevelData.RedrawChunk(SelectedChunk);
if (newcnk.Blocks[SelectedChunkBlock.X, SelectedChunkBlock.Y].Block < LevelData.Blocks.Count)
BlockSelector.SelectedIndex = newcnk.Blocks[SelectedChunkBlock.X, SelectedChunkBlock.Y].Block;
chunkBlockEditor.SelectedObject = newcnk.Blocks[SelectedChunkBlock.X, SelectedChunkBlock.Y];
DrawChunkPicture();
}
Expand All @@ -3192,9 +3198,10 @@ private void BlockPicture_MouseClick(object sender, MouseEventArgs e)
{
if (!loaded || e.Button != MouseButtons.Right) return;
SelectedBlockTile = new Point(e.X / 64, e.Y / 64);
copiedBlockTile = blockTileEditor.SelectedObject = LevelData.Blocks[SelectedBlock].Tiles[e.X / 64, e.Y / 64];
if (copiedBlockTile.Tile < LevelData.Tiles.Count)
TileSelector.SelectedIndex = copiedBlockTile.Tile;
PatternIndex til = LevelData.Blocks[SelectedBlock].Tiles[e.X / 64, e.Y / 64];
if (til.Tile < LevelData.Tiles.Count)
TileSelector.SelectedIndex = til.Tile;
copiedBlockTile = blockTileEditor.SelectedObject = til;
DrawBlockPicture();
}

Expand All @@ -3204,12 +3211,13 @@ private void BlockPicture_MouseMove(object sender, MouseEventArgs e)
if (e.X > 0 && e.Y > 0 && e.X < 128 && e.Y < 128)
{
SelectedBlockTile = new Point(e.X / 64, e.Y / 64);
PatternIndex destTile = blockTileEditor.SelectedObject = LevelData.Blocks[SelectedBlock].Tiles[SelectedBlockTile.X, SelectedBlockTile.Y];
PatternIndex destTile = LevelData.Blocks[SelectedBlock].Tiles[SelectedBlockTile.X, SelectedBlockTile.Y];
destTile.Tile = copiedBlockTile.Tile;
destTile.Palette = copiedBlockTile.Palette;
destTile.Priority = copiedBlockTile.Priority;
destTile.XFlip = copiedBlockTile.XFlip;
destTile.YFlip = copiedBlockTile.YFlip;
blockTileEditor.SelectedObject = destTile;
LevelData.RedrawBlock(SelectedBlock, false);
DrawBlockPicture();
}
Expand Down Expand Up @@ -3379,7 +3387,7 @@ private void BlockPicture_KeyDown(object sender, KeyEventArgs e)
LevelData.RedrawBlock(SelectedBlock, true);
DrawLevel();
DrawBlockPicture();
blockTileEditor.SelectedObject = current;
copiedBlockTile = blockTileEditor.SelectedObject = current;
}

private void PalettePanel_Paint(object sender, PaintEventArgs e)
Expand Down Expand Up @@ -6967,7 +6975,9 @@ private void flipBlockHButton_Click(object sender, EventArgs e)
}
LevelData.Blocks[SelectedBlock] = newblk;
LevelData.RedrawBlock(SelectedBlock, true);
blockTileEditor.SelectedObject = newblk.Tiles[SelectedBlockTile.X, SelectedBlockTile.Y];
if (newblk.Tiles[SelectedBlockTile.X, SelectedBlockTile.Y].Tile < LevelData.Tiles.Count)
TileSelector.SelectedIndex = newblk.Tiles[SelectedBlockTile.X, SelectedBlockTile.Y].Tile;
copiedBlockTile = blockTileEditor.SelectedObject = newblk.Tiles[SelectedBlockTile.X, SelectedBlockTile.Y];
BlockPicture.Invalidate();
}

Expand All @@ -6984,7 +6994,9 @@ private void flipBlockVButton_Click(object sender, EventArgs e)
}
LevelData.Blocks[SelectedBlock] = newblk;
LevelData.RedrawBlock(SelectedBlock, true);
blockTileEditor.SelectedObject = newblk.Tiles[SelectedBlockTile.X, SelectedBlockTile.Y];
if (newblk.Tiles[SelectedBlockTile.X, SelectedBlockTile.Y].Tile < LevelData.Tiles.Count)
TileSelector.SelectedIndex = newblk.Tiles[SelectedBlockTile.X, SelectedBlockTile.Y].Tile;
copiedBlockTile = blockTileEditor.SelectedObject = newblk.Tiles[SelectedBlockTile.X, SelectedBlockTile.Y];
BlockPicture.Invalidate();
}

Expand Down

0 comments on commit 1fa399b

Please sign in to comment.