internal override bool MouseMoved(IGameViewport viewport, MessageMouseArgs args)
    {
        ClearResults();

        SetResultLocationFromMouse(args);
        if (Picker.flagsTarget.HasFlag(UiPickerFlagsTarget.Radius))
        {
            TrimRangeOfPicker(Result.location);

            using var rayPkt = CreateRaycast(Result.location);
            rayPkt.Raycast();

            foreach (var resultItem in rayPkt)
            {
                if (resultItem.obj != null)
                {
                    if (Result.objList == null)
                    {
                        Result.objList = new List <GameObject>();
                    }

                    Result.objList.Add(resultItem.obj);
                }
            }

            if (Result.objList != null)
            {
                Result.flags |= PickerResultFlags.PRF_HAS_MULTI_OBJ;
            }
        }

        Picker.DoExclusions();
        return(true);
    }
    internal override bool MouseMoved(IGameViewport viewport, MessageMouseArgs args)
    {
        ClearResults();

        if (WallState == WallState.StartPoint || WallState == WallState.CenterPoint)
        {
            // get startpoint location from mouse
            SetResultLocationFromMouse(args);
            return(true);
        }

        var mouseLoc = GameViews.Primary.ScreenToTile(args.X, args.Y);

        Trace.Assert(Result.HasLocation);

        var maxRange = (float)(Picker.range * locXY.INCH_PER_FEET);
        var dist     = Result.location.DistanceTo(mouseLoc);

        if (maxRange > dist)
        {
            maxRange = dist;
        }

        if (WallState == WallState.EndPoint)
        {
            // get radius and range up to mouse (trimmed by walls and such)
            var radiusInch = Picker.radiusTarget * locXY.INCH_PER_FEET / 2.0f;
            Picker.GetTrimmedRange(Result.location, mouseLoc, radiusInch, maxRange, locXY.INCH_PER_FEET * 5.0f);
            // TODO: the 2.35 might be unneeded
            Picker.degreesTarget =
                2.3561945f -
                Result.location.RotationTo(mouseLoc); // putting this in radians, unlike the usual usage
            Picker.GetTargetsInPath(Result.location, mouseLoc, radiusInch);
            Picker.DoExclusions();
            return(true);
        }
        else if (WallState == WallState.Radius)
        {
            // todo
        }

        return(false);
    }