@@ -609,6 +609,7 @@ void sdlgameController::set_axis_sensitivity(ct_type axis_type, uint8_t axis, fl
609609 }
610610}
611611
612+ #include < iostream>
612613// assigns an individual function
613614int sdlgameController::assign_function (ct_function *func) {
614615 // for now this is a straight forward translation (that is, no mapping of needs to controller
@@ -627,6 +628,7 @@ int sdlgameController::assign_function(ct_function *func) {
627628 elem.ctl [i] = 0 ;
628629 break ;
629630 case ctAnalogTrigger:
631+ std::cout << " test" ;
630632 case ctAxis:
631633 elem.ctl [i] = get_axis_controller (func->value [i]);
632634 break ;
@@ -985,9 +987,14 @@ int8_t sdlgameController::get_axis_controller(uint8_t axis) {
985987 if (axis == NULL_BINDING)
986988 return NULL_LNXCONTROLLER;
987989
988- for (int i = 2 ; i < m_NumControls; i++)
989- if ((m_ControlList[i].flags & (1 << (axis - 1 ))) && m_ControlList[i].id != CTID_INVALID)
990+ int axis_mask = (1 << (axis - 1 ));
991+
992+ for (int i = 2 ; i < m_NumControls; i++) {
993+ if ((m_ControlList[i].flags & axis_mask) && m_ControlList[i].id != CTID_INVALID &&
994+ !(m_ControlList[i].axis_is_trigger & axis_mask)) {
990995 return i;
996+ }
997+ }
991998
992999 return NULL_LNXCONTROLLER;
9931000}
@@ -1483,12 +1490,12 @@ int CTLLex(const char *command) {
14831490
14841491// okay, now search for a '****.ctl' file in the Base_directories
14851492void sdlgameController::parse_ctl_file (int devnum, const char *ctlname) {
1486- for (auto base_directories_iterator = Base_directories.rbegin ();
1487- base_directories_iterator != Base_directories.rend ();
1493+ for (auto base_directories_iterator = Base_directories.rbegin (); base_directories_iterator != Base_directories.rend ();
14881494 ++base_directories_iterator) {
14891495 // parse each file until we find a name match, no name match, just return
14901496 ddio_DoForeachFile (
1491- *base_directories_iterator, std::regex (" .*\\ .ctl" ), [this , &devnum, &ctlname](const std::filesystem::path &path) {
1497+ *base_directories_iterator, std::regex (" .*\\ .ctl" ),
1498+ [this , &devnum, &ctlname](const std::filesystem::path &path) {
14921499 InfFile file;
14931500 bool found_name = false ;
14941501
0 commit comments