Exemplo n.º 1
0
        // Mouse drag.
        private void LevelViewer_MouseDrag(object sender, TileViewerMouseEventArgs e)
        {
            switch (LayerSelect.SelectedIndex)
            {
            case 0: // Navigate
                // LevelViewerNavigate_MouseDown (e);
                break;

            case 5: // Plm layer
                if (LevelData.MarkerVisible == true && DraggingPlm)
                {
                    MainProject.GetPlmPosition(out int x, out int y,
                                               out int width, out int height);
                    LevelData.SetMarker(x + e.PosTileX - e.TileClickX,
                                        y + e.PosTileY - e.TileClickY,
                                        width, height);
                }
                break;

            case 6: // Enemy layer
                if (LevelData.MarkerVisible == true && DraggingEnemy)
                {
                    MainProject.GetEnemyPosition(out double x, out double y,
                                                 out double width, out double height);
                    LevelData.SetMarker(x + e.PosX - e.ClickX - width / 2,
                                        y + e.PosY - e.ClickY - height / 2,
                                        width, height);
                }
                break;
            }
        }
Exemplo n.º 2
0
 private void MapEditor_MouseUp(object sender, TileViewerMouseEventArgs e)
 {
     if (MapEditRadio.IsChecked == true && e.Button == MouseButton.Left)
     {
         MainProject.SetMapTile(e.TileClickX, e.TileClickY, e.PosTileX, e.PosTileY);
     }
 }
Exemplo n.º 3
0
//========================================================================================
// events


        // TileSelector Mouse down.
        private void TileSelector_MouseDown(object sender, TileViewerMouseEventArgs e)
        {
            if (e.Button != MouseButton.Left && e.Button != MouseButton.Left)
            {
                return;
            }
            MainProject.TileIndex = e.TileClickY * 32 + e.TileClickX;
        }
Exemplo n.º 4
0
//========================================================================================
// Event handlers


        private void RoomSizeEditor_MouseDown(object sender, TileViewerMouseEventArgs e)
        {
            if (e.Button == MouseButton.Left && e.TileClickY > 0)
            {
                NewPositionX = e.TileClickX;
                NewPositionY = e.TileClickY;
            }
            UpdateSelection();
        }
Exemplo n.º 5
0
 // BtsSelector Mouse down.
 private void BtsSelector_MouseDown(object sender, TileViewerMouseEventArgs e)
 {
     if (e.Button != MouseButton.Left && e.Button != MouseButton.Left)
     {
         return;
     }
     BtsConvert.TextureIndexToBts(e.TileClickX, e.TileClickY,
                                  out int btsType, out int btsValue);
     MainProject.BtsValue = btsValue;
     MainProject.BtsType  = btsType;
 }
Exemplo n.º 6
0
//----------------------------------------------------------------------------------------
// Level viewer events

        // Mouse down.
        private void LevelViewer_MouseDown(object sender, TileViewerMouseEventArgs e)
        {
            switch (LayerSelect.SelectedIndex)
            {
            case 0: // Navigate
                // LevelViewerNavigate_MouseDown (e);
                break;

            case 5: // PLM layer
                DraggingPlm = false;
                if (e.Button == MouseButton.Right)
                {
                    MainProject.SelectPlmAt(e.TileClickX, e.TileClickY);
                }
                if (e.Button == MouseButton.Left)
                {
                    MainProject.GetPlmPosition(out int x, out int y,
                                               out int width, out int height);
                    if (e.TileClickX >= x && e.TileClickX < x + width &&
                        e.TileClickY >= y && e.TileClickY < y + height)
                    {
                        DraggingPlm = true;
                    }
                }
                break;

            case 6: // Enemy layer
                DraggingEnemy = false;
                if (e.Button == MouseButton.Right)
                {
                    MainProject.SelectEnemyAt(e.ClickX * 16, e.ClickY * 16);
                }
                if (e.Button == MouseButton.Left)
                {
                    MainProject.GetEnemyPosition(out double x, out double y,
                                                 out double width, out double height);
                    width  /= 2;
                    height /= 2;
                    if (e.ClickX >= x - width && e.ClickX < x + width &&
                        e.ClickY >= y - height && e.ClickY < y + height)
                    {
                        DraggingEnemy = true;
                    }
                }

                break;

            case 2: // Properties
                break;

            default:
                break;
            }
        }
Exemplo n.º 7
0
 private void MapEditor_MouseDown(object sender, TileViewerMouseEventArgs e)
 {
     if (MapNavigateRadio.IsChecked == true)
     {
         if (MainProject.NavigateToMapPosition(e.TileClickX, e.TileClickY - 1,
                                               out int screenX, out int screenY))
         {
             ScreenSelected?.Invoke(this, new RoomSelectEventArgs(screenX, screenY));
         }
     }
     else if (e.Button == MouseButton.Right)
     {
         MainProject.SelectMapTile(e.TileClickX, e.TileClickY);
     }
 }
Exemplo n.º 8
0
        // Mouse Up.
        private void LevelViewer_MouseUp(object sender, TileViewerMouseEventArgs e)
        {
            switch (LayerSelect.SelectedIndex)
            {
            case 0: // Navigate
                LevelViewerNavigate_MouseDown(e);
                break;

            case 1: // Properties
                break;

            default: // Edit
                LevelViewerEdit_MouseUp(e);
                break;
            }
            DraggingPlm   = false;
            DraggingEnemy = false;
        }
Exemplo n.º 9
0
        private void LevelViewerNavigate_MouseDown(TileViewerMouseEventArgs e)
        {
            switch (e.Button)
            {
            case MouseButton.Left: // Check if door and navigate through there.
                if (MainProject.NavigateThroughDoor(e.TileClickY, e.TileClickX,
                                                    out int screenX, out int screenY))
                {
                    LevelData.ScrollToScreen(screenX, screenY);
                }
                break;

            case MouseButton.Right: // Check if door and select it in the editor.
                MainProject.SelectDoorAt(e.TileClickY, e.TileClickX);
                break;

            default:
                break;
            }
        }
Exemplo n.º 10
0
 private void RoomSizeEditor_MouseUp(object sender, TileViewerMouseEventArgs e)
 {
     if (e.Button == MouseButton.Left && e.TileClickY > 0)
     {
         NewPositionX = Math.Min(e.TileClickX, e.PosTileX);
         NewPositionY = Math.Min(e.TileClickY, e.PosTileY);
         NewWidth     = Math.Min(Math.Abs(e.PosTileX - e.TileClickX) + 1, 15);
         NewHeight    = Math.Min(Math.Abs(e.PosTileY - e.TileClickY) + 1, 15);
         double ratio = (double)NewWidth / (double)NewHeight;
         while (NewWidth * NewHeight > 50)
         {
             if (Math.Abs(ratio * (NewHeight - 1) - NewWidth) <
                 Math.Abs(ratio * (NewHeight) - NewWidth + 1))
             {
                 NewHeight--;
             }
             else
             {
                 NewWidth--;
             }
         }
     }
     UpdateSelection();
 }
Exemplo n.º 11
0
 private void Tile_Click(object sender, TileViewerMouseEventArgs e)
 {
     DoorCapX = e.TileClickX + (ScreenX << 4);
     DoorCapY = e.TileClickY + (ScreenY << 4);
     UpdateDoorCap();
 }
Exemplo n.º 12
0
 private void MapTileSelector_MouseDown(object sender, TileViewerMouseEventArgs e)
 {
     MainProject.MapTilePalette = MapPaletteSelect.SelectedIndex;
     MainProject.MapTileType    = 16 * e.TileClickY + e.TileClickX;
 }
Exemplo n.º 13
0
        private void LevelViewerEdit_MouseUp(TileViewerMouseEventArgs e)
        {
            switch (e.Button)
            {
            case MouseButton.Left:
                // Place tiles in selected area.
                switch (LayerSelect.SelectedIndex)
                {
                case 2: // Layer 1
                    MainProject.SetLayer1(e.PosTileY, e.PosTileX, e.TileClickY, e.TileClickX);
                    if (TileLayersEditor.LinkBts)
                    {
                        MainProject.SetBts(e.PosTileY, e.PosTileX, e.TileClickY, e.TileClickX);
                    }
                    break;

                case 3: // Bts
                    MainProject.SetBts(e.PosTileY, e.PosTileX, e.TileClickY, e.TileClickX);
                    break;

                case 4: // Layer 2
                    MainProject.SetLayer2(e.PosTileY, e.PosTileX, e.TileClickY, e.TileClickX);
                    break;

                case 5: // PLMs
                    if (DraggingPlm)
                    {
                        MainProject.SetPlmPositionRelative(e.PosTileX - e.TileClickX,
                                                           e.PosTileY - e.TileClickY);
                    }
                    break;

                case 6: // Enemies
                    if (DraggingEnemy)
                    {
                        MainProject.SetEnemyPositionRelative(e.PosX - e.ClickX, e.PosY - e.ClickY);
                    }
                    break;

                case 7: // Scrolls
                    MainProject.SetScroll(e.PosTileX / 16, e.PosTileY / 16,
                                          e.TileClickX / 16, e.TileClickY / 16);
                    break;

                default:
                    break;
                }
                break;

            case MouseButton.Right:
                switch (LayerSelect.SelectedIndex)
                {
                case 2: // Layer 1
                    MainProject.SelectLayer1(e.PosTileX, e.PosTileY);
                    if (TileLayersEditor.LinkBts)
                    {
                        MainProject.SelectBts(e.PosTileX, e.PosTileY);
                    }
                    break;

                case 3: // Bts
                    MainProject.SelectBts(e.PosTileX, e.PosTileY);
                    break;

                case 4: // Layer 2
                    MainProject.SelectLayer2(e.PosTileX, e.PosTileY);
                    break;

                default:
                    break;
                }
                break;

            default:
                break;
            }
        }