Example #1
0
        private void ClickMapAt(MouseEventArgs e, bool skipLagCheck)
        {
            var  layer         = Map.Items.Layer1;
            int  mX            = e.X;
            int  mY            = e.Y;
            bool centerReticle = CHK_SnapToAcre.Checked;

            View.GetViewAnchorCoordinates(mX, mY, out var x, out var y, centerReticle);
            x &= 0xFFFE;
            y &= 0xFFFE;

            var  acre     = layer.GetAcre(x, y);
            bool sameAcre = AcreIndex == acre;

            if (!skipLagCheck)
            {
                if (CHK_SnapToAcre.Checked)
                {
                    if (sameAcre)
                    {
                        return;
                    }
                }
                else
                {
                    const int delta = 0; // disabled = 0
                    var       dx    = Math.Abs(View.X - x);
                    var       dy    = Math.Abs(View.Y - y);
                    if (dx <= delta && dy <= delta && !sameAcre)
                    {
                        return;
                    }
                }
            }

            if (!CHK_SnapToAcre.Checked)
            {
                if (View.SetViewTo(x, y))
                {
                    LoadItemGridAcre();
                }
                return;
            }

            if (!sameAcre)
            {
                CB_Acre.SelectedIndex = acre;
            }
        }