mirror of
https://git.code.sf.net/p/quake/quakeforge-old
synced 2025-06-02 18:21:16 +00:00
ClearAllStates() behaves better now; Added KP_* keys support to GL target.
This commit is contained in:
parent
2138262099
commit
2e2377eebc
2 changed files with 57 additions and 43 deletions
|
@ -865,48 +865,49 @@ BOOL bSetupPixelFormat(HDC hDC)
|
||||||
|
|
||||||
|
|
||||||
byte scantokey[128] =
|
byte scantokey[128] =
|
||||||
{
|
{
|
||||||
// 0 1 2 3 4 5 6 7
|
// 0 1 2 3 4 5 6 7
|
||||||
// 8 9 A B C D E F
|
// 8 9 A B C D E F
|
||||||
0 , 27, '1', '2', '3', '4', '5', '6',
|
0 , 27, '1', '2', '3', '4', '5', '6',
|
||||||
'7', '8', '9', '0', '-', '=', K_BACKSPACE, 9, // 0
|
'7', '8', '9', '0', '-', '=', K_BACKSPACE, 9, // 0
|
||||||
'q', 'w', 'e', 'r', 't', 'y', 'u', 'i',
|
'q', 'w', 'e', 'r', 't', 'y', 'u', 'i',
|
||||||
'o', 'p', '[', ']', 13 , K_CTRL,'a', 's', // 1
|
'o', 'p', '[', ']', 13, K_CTRL, 'a', 's', // 1
|
||||||
'd', 'f', 'g', 'h', 'j', 'k', 'l', ';',
|
'd', 'f', 'g', 'h', 'j', 'k', 'l', ';',
|
||||||
'\'' , '`', K_SHIFT,'\\', 'z', 'x', 'c', 'v', // 2
|
'\'', '`', K_SHIFT,'\\', 'z', 'x', 'c', 'v', // 2
|
||||||
'b', 'n', 'm', ',', '.', '/', K_SHIFT,'*',
|
'b', 'n', 'm', ',', '.', '/', K_SHIFT,KP_MULTIPLY,
|
||||||
K_ALT,' ', K_CAPSLOCK , K_F1, K_F2, K_F3, K_F4, K_F5, // 3
|
K_ALT, ' ', K_CAPSLOCK,K_F1, K_F2, K_F3, K_F4, K_F5, // 3
|
||||||
K_F6, K_F7, K_F8, K_F9, K_F10, K_PAUSE , 0 , K_HOME,
|
K_F6, K_F7, K_F8, K_F9, K_F10, K_PAUSE,K_SCRLCK,KP_HOME,
|
||||||
K_UPARROW,K_PGUP,'-',K_LEFTARROW,'5',K_RIGHTARROW,'+',K_END, //4
|
KP_UPARROW,KP_PGUP,KP_MINUS,KP_LEFTARROW,KP_5,KP_RIGHTARROW,KP_PLUS,KP_END, // 4
|
||||||
K_DOWNARROW,K_PGDN,K_INS,K_DEL,0,0, 0, K_F11,
|
KP_DOWNARROW,KP_PGDN,KP_INS,KP_DEL,0, 0, 0, K_F11,
|
||||||
K_F12,0 , 0 , 0 , 0 , 0 , 0 , 0, // 5
|
K_F12, 0, 0, 0, 0, 0, 0, 0, // 5
|
||||||
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0,
|
0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0, // 6
|
0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0,
|
0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 // 7
|
0, 0, 0, 0, 0, 0, 0, 0
|
||||||
};
|
};
|
||||||
|
|
||||||
|
byte extscantokey[128] =
|
||||||
|
{
|
||||||
|
// 0 1 2 3 4 5 6 7
|
||||||
|
// 8 9 A B C D E F
|
||||||
|
0 , 27, '1', '2', '3', '4', '5', '6',
|
||||||
|
'7', '8', '9', '0', '-', '=', K_BACKSPACE, 9, // 0
|
||||||
|
'q', 'w', 'e', 'r', 't', 'y', 'u', 'i',
|
||||||
|
'o', 'p', '[', ']', KP_ENTER,K_CTRL,'a', 's', // 1
|
||||||
|
'd', 'f', 'g', 'h', 'j', 'k', 'l', ';',
|
||||||
|
'\'', '`', K_SHIFT,'\\', 'z', 'x', 'c', 'v', // 2
|
||||||
|
'b', 'n', 'm', ',', '.', KP_DIVIDE,K_SHIFT,'*',
|
||||||
|
K_ALT, ' ', K_CAPSLOCK,K_F1,K_F2, K_F3, K_F4, K_F5, // 3
|
||||||
|
K_F6, K_F7, K_F8, K_F9, K_F10, KP_NUMLCK,0, K_HOME,
|
||||||
|
K_UPARROW,K_PGUP,'-',K_LEFTARROW,'5',K_RIGHTARROW,'+', K_END, // 4
|
||||||
|
K_DOWNARROW,K_PGDN,K_INS,K_DEL, 0, 0, 0, K_F11,
|
||||||
|
K_F12, 0, 0, 0, 0, 0, 0, 0, // 5
|
||||||
|
0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
|
0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
|
0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
|
0, 0, 0, 0, 0, 0, 0, 0
|
||||||
|
};
|
||||||
|
|
||||||
byte shiftscantokey[128] =
|
|
||||||
{
|
|
||||||
// 0 1 2 3 4 5 6 7
|
|
||||||
// 8 9 A B C D E F
|
|
||||||
0 , 27, '!', '@', '#', '$', '%', '^',
|
|
||||||
'&', '*', '(', ')', '_', '+', K_BACKSPACE, 9, // 0
|
|
||||||
'Q', 'W', 'E', 'R', 'T', 'Y', 'U', 'I',
|
|
||||||
'O', 'P', '{', '}', 13 , K_CTRL,'A', 'S', // 1
|
|
||||||
'D', 'F', 'G', 'H', 'J', 'K', 'L', ':',
|
|
||||||
'"' , '~', K_SHIFT,'|', 'Z', 'X', 'C', 'V', // 2
|
|
||||||
'B', 'N', 'M', '<', '>', '?', K_SHIFT,'*',
|
|
||||||
K_ALT,' ', K_CAPSLOCK , K_F1, K_F2, K_F3, K_F4, K_F5, // 3
|
|
||||||
K_F6, K_F7, K_F8, K_F9, K_F10, K_PAUSE , 0 , K_HOME,
|
|
||||||
K_UPARROW,K_PGUP,'_',K_LEFTARROW,'%',K_RIGHTARROW,'+',K_END, //4
|
|
||||||
K_DOWNARROW,K_PGDN,K_INS,K_DEL,0,0, 0, K_F11,
|
|
||||||
K_F12,0 , 0 , 0 , 0 , 0 , 0 , 0, // 5
|
|
||||||
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0,
|
|
||||||
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0, // 6
|
|
||||||
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0,
|
|
||||||
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 // 7
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -918,14 +919,21 @@ Map from windows to quake keynums
|
||||||
*/
|
*/
|
||||||
int MapKey (int key)
|
int MapKey (int key)
|
||||||
{
|
{
|
||||||
|
int extended;
|
||||||
|
|
||||||
|
extended = (key >> 24) & 1;
|
||||||
|
|
||||||
key = (key>>16)&255;
|
key = (key>>16)&255;
|
||||||
if (key > 127)
|
if (key > 127)
|
||||||
return 0;
|
return 0;
|
||||||
if (scantokey[key] == 0)
|
|
||||||
Con_DPrintf("key 0x%02x has no translation\n", key);
|
if (extended)
|
||||||
return scantokey[key];
|
return extscantokey[key];
|
||||||
|
else
|
||||||
|
return scantokey[key];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
===================================================================
|
===================================================================
|
||||||
|
|
||||||
|
@ -934,6 +942,8 @@ MAIN WINDOW
|
||||||
===================================================================
|
===================================================================
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
extern qboolean keydown[256];
|
||||||
|
|
||||||
/*
|
/*
|
||||||
================
|
================
|
||||||
ClearAllStates
|
ClearAllStates
|
||||||
|
@ -946,7 +956,8 @@ void ClearAllStates (void)
|
||||||
// send an up event for each key, to make sure the server clears them all
|
// send an up event for each key, to make sure the server clears them all
|
||||||
for (i=0 ; i<256 ; i++)
|
for (i=0 ; i<256 ; i++)
|
||||||
{
|
{
|
||||||
Key_Event (i, false);
|
if (keydown[i])
|
||||||
|
Key_Event (i, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
Key_ClearStates ();
|
Key_ClearStates ();
|
||||||
|
|
|
@ -241,6 +241,8 @@ void VID_UpdateWindowStatus (void)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
extern qboolean keydown[256];
|
||||||
|
|
||||||
/*
|
/*
|
||||||
================
|
================
|
||||||
ClearAllStates
|
ClearAllStates
|
||||||
|
@ -253,7 +255,8 @@ void ClearAllStates (void)
|
||||||
// send an up event for each key, to make sure the server clears them all
|
// send an up event for each key, to make sure the server clears them all
|
||||||
for (i=0 ; i<256 ; i++)
|
for (i=0 ; i<256 ; i++)
|
||||||
{
|
{
|
||||||
Key_Event (i, false);
|
if (keydown[i])
|
||||||
|
Key_Event (i, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
Key_ClearStates ();
|
Key_ClearStates ();
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue