[Bug 8986] New: UFO - Enemy unknown/X-COM:UFO Defence - No keyboard input

Wine Bugs wine-bugs at winehq.org
Tue Jul 17 13:37:33 CDT 2007


http://bugs.winehq.org/show_bug.cgi?id=8986

           Summary: UFO - Enemy unknown/X-COM:UFO Defence - No keyboard
                    input
           Product: Wine
           Version: 0.9.41.
          Platform: PC
               URL: http://www.abandonia.com/games/38/UFO-
                    EnemyUnknown/UFOEnemyUnknown.htm
        OS/Version: Linux
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: wine-directx-dinput
        AssignedTo: wine-bugs at winehq.org
        ReportedBy: cja at gmx.net


Between 0.9.28 and 0.9.29 the keyboard input got broken for UFO. And is
still broken for 0.9.41 You can't enter a save game name.

Regression test shows that this patch:
--
Author: Vitaliy Margolen <wine-patches at kievinfo.com>  2006-12-28 00:30:39
Committer: Alexandre Julliard <julliard at winehq.org>  2006-12-28 12:22:29
Parent: cb42253ff3321ebb3865cf2e3755d52014f494c6 (opengl32: Add OpenGL 2.1 
support and more extensions.)
Branches: origin, master, bisect
Follows: wine-0.9.28
Precedes: wine-0.9.29

    dinput: Remove MsgWaitForMultipleObjects calls.

---------------------------- dlls/dinput/keyboard.c ----------------------------
index 4308b45..34800ff 100644
@@ -282,9 +282,7 @@ static HRESULT WINAPI SysKeyboardAImpl_GetDeviceState(
     if (!This->base.acquired) return DIERR_NOTACQUIRED;
 
     if (len != WINE_DINPUT_KEYBOARD_MAX_KEYS)
-      return DIERR_INVALIDPARAM;
-
-    MsgWaitForMultipleObjectsEx(0, NULL, 0, QS_ALLINPUT, 0);
+        return DIERR_INVALIDPARAM;
 
     EnterCriticalSection(&This->base.crit);
 
@@ -548,9 +546,7 @@ static HRESULT WINAPI 
SysKeyboardAImpl_Poll(LPDIRECTINPUTDEVICE8A iface)
     TRACE("(%p)\n",This);
 
     if (!This->base.acquired) return DIERR_NOTACQUIRED;
-
-    MsgWaitForMultipleObjectsEx(0, NULL, 0, QS_ALLINPUT, 0);
-    return DI_OK;
+    return DI_NOEFFECT;
 }
 
 static const IDirectInputDevice8AVtbl SysKeyboardAvt =
--

broke the support. Applying:

----- keyboard.c.orig     2007-07-13 19:46:16.000000000 +0200
+++ keyboard.c  2007-07-15 19:06:15.000000000 +0200
@@ -271,6 +271,8 @@
     if (len != WINE_DINPUT_KEYBOARD_MAX_KEYS)
         return DIERR_INVALIDPARAM;
 
+    MsgWaitForMultipleObjectsEx(0, NULL, 0, QS_ALLINPUT, 0);
+
     EnterCriticalSection(&This->base.crit);
 
     if (TRACE_ON(dinput)) {

--

Fixes keyboard support for UFO. Don't ask me why. 

Note, I have to run the game with: 
HKEY_CURRENT_USER\Software\Wine\Direct3D\DirectDrawRenderer=gdi
(ATI's drivers)

-- 
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.



More information about the wine-bugs mailing list