STALKER Зов Припяти проблемы с мышью

вообщем поставил его, запускаю, но с мышью траблы. погуглил и нашёл тему на форуме убунты, там говорилось что в консоле сталкера надо ввести input_exclusive_mode 0, ввёл, в меню главном мышь робит нормально, но вот в игре повернуться на 360° не получается, там ещё в теме говорилось что можно решить эту проблему, но как то всё поверхностно. полную how-to не нашёл, так что прошу помощи вдруг кто-нибудь уже сталкивался с этой проблемой и решил её.в данный момент версия вайна:
smiges@desktop:~$ wine --version
wine-1.3.0
smiges@desktop:~$ 
заранее благодарен
Можно взять wine из моего репа (если у вас i686) - патчил на эту же тему, в ладве мышка не поворачивалась больше чем на 180 градов. По идее должно исправить также и многие другие игры.

Если у вас x86_64, то вот:

PKGBUILD:
# Maintainer: Adam Eberlin < ae at intellitech dot org >
pkgname=wine-la2camera
pkgver=20100816
pkgrel=1
pkgdesc="Interpreter for the Windows 3.x and Win32 APIs. Patched for 180 degrees mouse fix."
url="http://www.winehq.com/"
arch=('i686' 'x86_64')
license=('LGPL')
depends=(	'alsa-lib' 
			'dbus' 
			'gcc-libs' 
			'fontconfig' 
			'freeglut' 
			'freetype2' 
			'gtk2' 
			'lcms'  
			'libcups' 
			'libgl' 
			'libice' 
			'libjpeg' 
			'libldap'
			'libpng' 
			'libsasl' 
			'libsm' 
			'libusb' 
			'libx11' 
			'libxau' 
			'libxcomposite' 
			'libxcursor' 
			'libxdamage'
			'libxext' 
			'libxi' 
			'libxinerama' 
			'libxml2' 
			'libxrandr' 
			'libxrender' 
			'libxslt' 
			'libxt' 
			'libxtst' 
			'libxv' 
			'libxxf86vm' 
			'mesa' 
			'ncurses' 
			'openssl' 
			'libxxf86dga'
			'openldap' 
			'pkgconfig' 
			'sane' 
			'xproto' 
			'giflib' 
			'isdn4k-utils'
			'flex'
)
[[ "${CARCH}" == 'x86_64' ]] && 
depends=(	'lib32-alsa-lib' 
			'lib32-dbus' 
			'lib32-gcc-libs' 
			'lib32-fontconfig' 
			'lib32-freeglut' 
			'lib32-freetype2' 
			'lib32-gtk2' 
			'lib32-lcms'  
			'lib32-libcups' 
			'lib32-libgl' 
			'lib32-libice' 
			'lib32-libjpeg' 
			'lib32-libldap'
			'lib32-libpng' 
			'lib32-libsasl' 
			'lib32-libsm' 
			'lib32-libusb' 
			'lib32-libx11' 
			'lib32-libxau' 
			'lib32-libxcomposite' 
			'lib32-libxcursor' 
			'lib32-libxdamage'
			'lib32-libxext' 
			'lib32-libxi' 
			'lib32-libxinerama' 
			'lib32-libxml2' 
			'lib32-libxrandr' 
			'lib32-libxrender' 
			'lib32-libxslt' 
			'lib32-libxt' 
			'lib32-libxtst' 
			'lib32-libxv' 
			'lib32-libxxf86vm' 
			'lib32-mesa' 
			'lib32-ncurses' 
			'lib32-openssl' 
			'libxxf86dga'
			'openldap' 
			'pkgconfig' 
			'sane' 
			'xproto' 
			'giflib' 
			'isdn4k-utils'
)
makedepends=('git' 'fakeroot' 'make' 'pkgconfig')
conflicts=('bin32-wine' 'bin32-wine-suse' 'bin32-wine-war' 'wine' 'wine-git')
replaces=()
provides=("wine-git=$pkgver" "wine")
backup=()
source=()
md5sums=()
_gitroot="git://source.winehq.org/git/wine.git"
_gitname="wine"
build() {
  cd ${srcdir}
  msg "Connecting to GIT server...."
  if [ -d ${srcdir}/$_gitname ] ; then
    cd $_gitname && git pull origin
    msg "Local repository updated."
  else
    git clone $_gitroot $_gitname
  fi
  
#  git clone git://source.winehq.org/git/wine.git wine
  
  msg "GIT checkout done or server timeout"
  msg "Removing old build directory..."
  rm -Irf ${srcdir}/$_gitname-build
  msg "Creating new build directory..."
  cp -r ${srcdir}/$_gitname ${srcdir}/$_gitname-build
  cd ${srcdir}/$_gitname-build
#  Patches:
  msg "Applying patches..." 
patch -p1 < ${startdir}/MouseWarpOnRmbDownHackV4.patch
#  CARCH="i686" CHOST="i686-pc-linux-gnu" CFLAGS="-march=i686 -mtune=generic -pipe" CXXFLAGS="-march=i686 -mtune=generic -pipe" LDFLAGS="-L/opt/lib32/usr/lib" ./configure --verbose --prefix=/usr --libdir=/opt/lib32/usr/lib
  msg "Starting make..."
  ./configure --verbose --prefix=/usr
  #make clean
  make || return 1
  make DESTDIR=${pkgdir} install || return 1
  find ${pkgdir} -type f -name '*.la' -exec rm {} \;
}

MouseWarpOnRmbDownHackV4.patch:
--- wine-1.1.3/dlls/dinput/mouse.c	2008-08-24 03:13:36.924717247 +0600
+++ wine-1.1.3-rm/dlls/dinput/mouse.c	2008-08-24 03:19:25.240715877 +0600
@@ -49,12 +49,15 @@
 static const IDirectInputDevice8AVtbl SysMouseAvt;
 static const IDirectInputDevice8WVtbl SysMouseWvt;
 
+int rmb_down_since;
+
 typedef struct SysMouseImpl SysMouseImpl;
 
 typedef enum
 {
     WARP_DEFAULT,
     WARP_DISABLE,
+    WARP_RMB,
     WARP_FORCE_ON
 } WARP_MOUSE;
 
@@ -203,6 +206,8 @@
     {
         if (!strcasecmp(buffer, "disable"))
             newDevice->warp_override = WARP_DISABLE;
+        else if (!strcasecmp(buffer, "rmb"))
+            newDevice->warp_override = WARP_RMB;
         else if (!strcasecmp(buffer, "force"))
             newDevice->warp_override = WARP_FORCE_ON;
     }
@@ -329,9 +334,18 @@
                 wdata = pt1.y;
             }
 
+            if(This->warp_override == WARP_RMB) {
+                This->need_warp = 0;
+                if(This->m_state.rgbButtons[1]){
+                    if(GetCurrentTime()-rmb_down_since>100){
+                        This->need_warp = (pt.x || pt.y);
+                    }
+                }
+            } else {
             This->need_warp = This->warp_override != WARP_DISABLE &&
                               (pt.x || pt.y) &&
                               (dwCoop & DISCL_EXCLUSIVE || This->warp_override == WARP_FORCE_ON);
+            }
             break;
         }
         case WM_MOUSEWHEEL:
@@ -348,6 +362,7 @@
 	    break;
 	case WM_RBUTTONDOWN:
             inst_id = DIDFT_MAKEINSTANCE(WINE_MOUSE_BUTTONS_INSTANCE + 1) | DIDFT_PSHBUTTON;
+            if(This->warp_override == WARP_RMB) rmb_down_since = GetCurrentTime();
             This->m_state.rgbButtons[1] = wdata = 0x80;
 	    break;
 	case WM_RBUTTONUP:

Также вам будет нужен этот reg-файл. За хинты благодарим rm_.

ВОРНИНГ! Автор предупреждает о возможном падении 3D-производительности!
Как вариант, если не поможет, попробуй установи через winegame (есть в комьюнити репе!). Сам только вчера тулзу поставил, в списке видел Сталкера. Сам хочу через него Фолаут 3 попробовать поставить ^_^
поставил я твой вайн, но чёто всеравно больше чем на 180 ° не поворачивается
SmiGes
поставил я твой вайн, но чёто всеравно больше чем на 180 ° не поворачивается
Эт не мой ^_^
wilful
SmiGes
поставил я твой вайн, но чёто всеравно больше чем на 180 ° не поворачивается
Эт не мой ^_^
это я PoZiTPoHу говорю
ну так как думаете что придумать, полюбому решается трабла
 
Зарегистрироваться или войдите чтобы оставить сообщение.