https://bugs.winehq.org/show_bug.cgi?id=47326
--- Comment #6 from RĂ©mi Bernon rbernon@codeweavers.com ---
if (!IsEqualGUID( &impl->guid, &format->rgoAction[i].guidInstance )) continue; This makes the assumption that an application will ask for a guidInstance, this is incorrect and in fact Fair Strike supplies this as GUID_NULL.
As far as I understand, this is supposed to be filled by BuildActionMap. If it's GUID_NULL then it simply failed to match any device object and it is unmapped.
Then mayb the game doesn't call BuildActionMap and expects SetActionMap to re-do the matching, or to match nonetheless. I'll write a few tests to check that.