- me.realCellSize = eX / CROSSHAIRPICKER_COLS + eY / CROSSHAIRPICKER_ROWS;
-}
-
-float XonoticCrosshairPicker_mouseMove(entity me, vector coords)
-{
- vector prevFocusedCell = me.focusedCell;
- me.focusedCell_x = floor(coords.x * CROSSHAIRPICKER_COLS);
- me.focusedCell_y = floor(coords.y * CROSSHAIRPICKER_ROWS);
-
- if(me.focusedCell.x < 0 || me.focusedCell.y < 0 ||
- me.focusedCell.x >= CROSSHAIRPICKER_COLS || me.focusedCell.y >= CROSSHAIRPICKER_ROWS)
- {
- me.focusedCell = '-1 -1 0';
- return 0;
- }
-
- if(me.focusedCell != prevFocusedCell)
- me.focusedCellTime = time;
-
- return 1;
-}
-
-float XonoticCrosshairPicker_mouseDrag(entity me, vector coords)
-{
- return me.mouseMove(me, coords);
-}
-
-float XonoticCrosshairPicker_mousePress(entity me, vector coords)
-{
- me.mouseMove(me, coords);
-
- if(me.focusedCell.x >= 0)
- {
- me.pressed = 1;
- me.pressedCell = me.focusedCell;
- }
-
- return 1;
-}
-
-float XonoticCrosshairPicker_mouseRelease(entity me, vector coords)
-{
- if(!me.pressed)
- return 0;
-
- me.mouseMove(me, coords);
-
- if(me.focusedCell == me.pressedCell)
- me.setCrosshair(me);
-
- me.pressed = 0;
- return 1;
-}
-
-float XonoticCrosshairPicker_keyDown(entity me, float key, float ascii, float shift)
-{
- switch(key)
- {
- case K_LEFTARROW:
- case K_KP_LEFTARROW:
- me.moveFocus(me, me.focusedCell, '-1 0 0');
- return 1;
- case K_RIGHTARROW:
- case K_KP_RIGHTARROW:
- me.moveFocus(me, me.focusedCell, '1 0 0');
- return 1;
- case K_UPARROW:
- case K_KP_UPARROW:
- me.moveFocus(me, me.focusedCell, '0 -1 0');
- return 1;
- case K_DOWNARROW:
- case K_KP_DOWNARROW:
- me.moveFocus(me, me.focusedCell, '0 1 0');
- return 1;
- case K_HOME:
- case K_KP_HOME:
- me.focusedCell = '0 0 0';
- return 1;
- case K_END:
- case K_KP_END:
- me.focusedCell_x = CROSSHAIRPICKER_COLS - 1;
- me.focusedCell_y = CROSSHAIRPICKER_ROWS - 1;
- return 1;
- case K_ENTER:
- case K_KP_ENTER:
- case K_INS:
- case K_KP_INS:
- me.setCrosshair(me);
- return 1;
- }
- return 0;