internal Point FindSlotLocation(int slot, bool noUpdate = false)
        {
            if (!CustomGame.IsSlotValid(slot))
            {
                throw new InvalidSlotException(slot);
            }

            if (!noUpdate)
            {
                cg.UpdateScreen();
            }

            int yoffset = 0;
            int xoffset = 0;

            /*
             * if (cg.IsDeathmatch(true))
             * {
             *  if (CustomGame.IsSlotBlue(slot))
             *  {
             *      xoffset += Distances.LOBBY_SLOT_DM_BLUE_X_OFFSET;
             *      yoffset += Distances.LOBBY_SLOT_DM_Y_OFFSET;
             *  }
             *  else if (CustomGame.IsSlotRed(slot))
             *  {
             *      xoffset += Distances.LOBBY_SLOT_DM_RED_X_OFFSET;
             *      yoffset += Distances.LOBBY_SLOT_DM_Y_OFFSET;
             *  }
             * }
             */

            if (CustomGame.IsSlotInQueue(slot) && !cg.CheckRange(CustomGame.QueueMin, CustomGame.QueueMax, 0, true).Contains(slot))
            {
                return(Point.Empty);                                                                                                                    // If a queue slot is selected and there is no one in that queue slot, return empty.
            }
            if (CustomGame.IsSlotSpectator(slot))
            {
                yoffset = cg.FindSpectatorOffset(true);                                   // If there is players in the queue, the spectator slots move down. Find the offset in pixels to spectator.
            }
            if (CustomGame.IsSlotSpectatorOrQueue(slot))
            {
                xoffset = -150;                                          // Prevents the player context menu from orientating left for slots in the spectator and queue.
            }
            if (CustomGame.IsSlotInQueue(slot))
            {
                slot = slot - 6;                                                                                 // selecting a person in the queue where spectator slots are normally at.
            }
            return(new Point(Points.SLOT_LOCATIONS[slot].X + xoffset, Points.SLOT_LOCATIONS[slot].Y + yoffset)); // Blue, Red, Spectators, and all of queue except for the first slot.
        }