diff --git a/README.md b/README.md index ca18ea9..6a3c900 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,6 @@ inspired by OpenTomb project http://opentomb.github.io/ * [Tomb Raider Forums thread](http://www.tombraiderforums.com/showthread.php?t=216618) ## Roadmap -- RELEASE alpha-3 - enemies - save game crystals - PSP port diff --git a/src/platform/nix/main.cpp b/src/platform/nix/main.cpp index be7889f..a43ed15 100644 --- a/src/platform/nix/main.cpp +++ b/src/platform/nix/main.cpp @@ -112,6 +112,7 @@ struct JoyDevice { float oL, oR; // last applied value int time; // time when we can send effect update ff_effect fx; // effect structure + uint8_t axismap[ABS_CNT]; // axis mapping } joyDevice[INPUT_JOY_COUNT]; bool osJoyReady(int index) { @@ -141,6 +142,7 @@ void joyInit() { int8 axes, buttons; ioctl(joy.fd, JSIOCGAXES, &axes); ioctl(joy.fd, JSIOCGBUTTONS, &buttons); + ioctl(joy.fd, JSIOCGAXMAP, joy.axismap); if (axes < 4 || buttons < 11) { // is it really a gamepad? close(joy.fd); @@ -275,7 +277,7 @@ void joyUpdate() { // axes if (event.type & JS_EVENT_AXIS) { - switch (event.number) { + switch (joy.axismap[event.number]) { // Left stick case ABS_X : joy.L.x = joyAxisValue(event.value); break; case ABS_Y : joy.L.y = joyAxisValue(event.value); break; @@ -401,12 +403,11 @@ int main(int argc, char **argv) { Atom WM_DELETE_WINDOW = XInternAtom(dpy, "WM_DELETE_WINDOW", 0); XSetWMProtocols(dpy, wnd, &WM_DELETE_WINDOW, 1); - joyInit(); - timeval t; gettimeofday(&t, NULL); startTime = t.tv_sec; + joyInit(); sndInit(); Game::init(argc > 1 ? argv[1] : NULL);