void UpdateSelectorStatus(out GridLocation cent)
    {
        int gridwidth  = levelgridwidths[Globals.gCurrentLevel - 1];
        int gridheight = levelgridheights[Globals.gCurrentLevel - 1];

        Vector2 mp         = Input.mousePosition;
        Vector3 mouseworld = cam.ScreenToWorldPoint(mp);

        mouseworld += new Vector3(gridentrysize / 2f, gridentrysize / 2f);

        GridLocation center = null;
        int          j      = 0;

        for (int i = 0; i < gridwidth * gridheight; ++i)
        {
            if (i > 0 && i % gridwidth == 0)
            {
                j++;
            }

            // -- check intersection with this gridloc
            if (MouseInside(mouseworld, grid[i % gridwidth, j]))
            {
                center = grid[i % gridwidth, j];
                break;
            }
        }

        if (center != null)
        {
            // -- set selector attrib
            selector.gameObject.SetActive(true);
            selector.transform.position = center.anchorpoint;

            // -- anchor next furniture sprite to selector
            GridSpace nextitemspace = currentlevelqueue.GetNextItemCost();
            selector.SetSelectorFor(currentlevelqueue.GetNextItemCost());

            Vector3 fo = GetOffsetForFurniture(nextitemspace.widthoffset, nextitemspace.heightoffset);
            currentlevelqueue.GetNextItem().transform.position = selector.transform.position + fo;
        }
        else
        {
            selector.gameObject.SetActive(false);
        }

        UpdatePlaceableStatus(center);
        cent = center;
    }