return true;
}
- if (bInputType == 0)
+ if (bInputType == 2)
+ return false;
+
+ // at this point bInputType can be 0 or 1 (key pressed or released)
+ bool key_pressed = (bInputType == 0);
+
+ if (key_pressed)
{
if (nPrimary == K_ALT) hudShiftState |= S_ALT;
if (nPrimary == K_CTRL) hudShiftState |= S_CTRL;
if (nPrimary == K_SHIFT) hudShiftState |= S_SHIFT;
}
- else if (bInputType == 1)
+ else
{
if (nPrimary == K_ALT) hudShiftState -= (hudShiftState & S_ALT);
if (nPrimary == K_CTRL) hudShiftState -= (hudShiftState & S_CTRL);
first_digit = 0;
}
- if (bInputType != 0)
- return false;
-
int imp = 0;
switch(nPrimary)
{
case K_RIGHTARROW:
+ if (!key_pressed) return true;
mv_selection_keyboard = 1;
mv_selection = MapVote_MoveRight(mv_selection);
return true;
case K_LEFTARROW:
+ if (!key_pressed) return true;
mv_selection_keyboard = 1;
mv_selection = MapVote_MoveLeft(mv_selection);
return true;
case K_DOWNARROW:
+ if (!key_pressed) return true;
mv_selection_keyboard = 1;
mv_selection = MapVote_MoveDown(mv_selection);
return true;
case K_UPARROW:
+ if (!key_pressed) return true;
mv_selection_keyboard = 1;
mv_selection = MapVote_MoveUp(mv_selection);
return true;
case K_KP_ENTER:
case K_ENTER:
case K_SPACE:
+ if (!key_pressed) return true;
if ( mv_selection_keyboard )
MapVote_SendChoice(mv_selection);
return true;
{
if (!first_digit)
{
+ if (!key_pressed)
+ return true;
first_digit = imp % 10;
return true;
}
if (nPrimary == K_MOUSE1)
{
+ if (!key_pressed)
+ return true;
mv_selection_keyboard = 0;
mv_selection = mv_mouse_selection;
if (mv_selection >= 0)
if (imp)
{
+ if (!key_pressed)
+ return true;
if (imp <= mv_num_maps)
localcmd(strcat("\nimpulse ", ftos(imp), "\n"));
return true;