apostolis_80: You mean you set the mouse as left handed in the control panel, but this game still gets a left click as aleft click?
Correct.
I thought all mouse clicks were considered by windows before the game.
That's true if you use event messages arriving at your Windows program's message queue. However, if you use DirectInput, all the bets are off, and you have to do all mappings manually.
<SAGA>
The last time I dealt with this in depth was around 1997 or so when I was asked to add force-feedback joystick support to a game called
Return Fire II. The only supported way of doing it was via some convoluted nonsense requiring the use of DirectInput. However, the rest of the game already used DirectInput for other things, so integrating it wasn't any more painful than working with Windows in the first place.
Then I was asked to create an in-game command console, and this is where DirectInput revealed itself to be completely $(EXPLETIVE) $(EXPLETIVE) useless for any peripheral that wasn't an actual game controller. DirectInput's "documentation" stated that it treated the keyboard as if it were a 104-button gamepad, which is an amusing idea until you want to know if the user has, for example, pressed the 'A' key. DI only reported raw key scancodes. Moreover, these scancodes existed in a namespace distinct from the ones available on the normal Windows message queue (reported via WM_KEYDOWN). If you looked at the #include files, you'd see the DI and WM_KEYDOWN scancodes were (nearly) identical, but the namespaces nevertheless had to be treated as different. That meant you couldn't use any of the mapping functions available to normal Windows apps that let you map a scancode to an ASCII character, or vice-versa. You also didn't get any keymatic support (auto-repeating of keys held down), and especially annoying was that you couldn't make any use of Windows support for international character sets and keyboards.
Eventually I said, "$(EXPLETIVE) this," and ripped out all the DI code for the keyboard and replaced it with Windows WM_KEY{DOWN,UP} and WM_CHAR message handlers. Performance impact was
zero, and I got keymatic, keymap, and internationalization support for free. I never looked at how DI handled the mouse, but I suspected it was just as badly botched.
</SAGA>
It's possible Microsoft has addressed these issues in the intervening 15+ years, but I strongly doubt it. So I'm only mildly surprised this problem exists. It's a common oversight.