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. }