From 83fe4d8441466918165cfc7ce822831ed1ba72f6 Mon Sep 17 00:00:00 2001 From: black Date: Mon, 13 Oct 2003 12:43:28 +0000 Subject: [PATCH] Fixed windows input (bad,bad hack) git-svn-id: svn://svn.icculus.org/twilight/trunk/darkplaces@3582 d7cf8633-e32d-0410-b094-e92efae38249 --- menu.c | 3 ++- prvm_cmds.c | 3 ++- sys_win.c | 2 +- vid_wgl.c | 16 +++++++++++----- 4 files changed, 16 insertions(+), 8 deletions(-) diff --git a/menu.c b/menu.c index 539ae070..3f37a71c 100644 --- a/menu.c +++ b/menu.c @@ -3779,10 +3779,11 @@ void MP_Keydown (int key, char ascii) // pass key prog->globals[OFS_PARM0] = (float) key; prog->globals[OFS_PARM1] = (float) ascii; - PRVM_ExecuteProgram(m_keydown, M_F_KEYDOWN"(float key) required\n"); + PRVM_ExecuteProgram(m_keydown, M_F_KEYDOWN"(float key, float ascii) required\n"); PRVM_End; } + void MP_Draw (void) { PRVM_Begin; diff --git a/prvm_cmds.c b/prvm_cmds.c index 675049fa..0295b19b 100644 --- a/prvm_cmds.c +++ b/prvm_cmds.c @@ -2520,7 +2520,8 @@ prvm_builtin_t vm_m_builtins[] = { e10, // 490 e10, // 500 // menu functions - + VM_M_setkeydest, + VM_M_getkeydest }; const int vm_m_numbuiltins = sizeof(vm_m_builtins) / sizeof(prvm_builtin_t); diff --git a/sys_win.c b/sys_win.c index d53955d1..34f82380 100644 --- a/sys_win.c +++ b/sys_win.c @@ -412,7 +412,7 @@ int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLin Sys_Shared_LateInit(); frameoldtime = Sys_DoubleTime (); - + /* main window message loop */ while (1) { diff --git a/vid_wgl.c b/vid_wgl.c index 1e37bb37..d54dfafd 100644 --- a/vid_wgl.c +++ b/vid_wgl.c @@ -513,6 +513,11 @@ LONG WINAPI MainWndProc (HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { LONG lRet = 1; int fActive, fMinimized, temp; + char state[256]; + short ascchar; + int vkey; + qboolean down = false; + extern unsigned int uiWheelMessage; if ( uMsg == uiWheelMessage ) @@ -533,15 +538,16 @@ LONG WINAPI MainWndProc (HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) window_y = (int) HIWORD(lParam); VID_UpdateWindowStatus (); break; - + case WM_KEYDOWN: case WM_SYSKEYDOWN: - Key_Event (MapKey(lParam, wParam), true); - break; - + down = true; case WM_KEYUP: case WM_SYSKEYUP: - Key_Event (MapKey(lParam, wParam), false); + vkey = MapKey(lParam, wParam); + GetKeyboardState (state); + ToAscii (wParam, vkey, state, &ascchar, 0); + Key_Event (vkey, ascchar & 0xFF, down); break; case WM_SYSCHAR: -- 2.39.2