{"action":"opened","issue":{"url":"https://api.github.com/repos/x360ce/x360ce/issues/65","labels_url":"https://api.github.com/repos/x360ce/x360ce/issues/65/labels{/name}","comments_url":"https://api.github.com/repos/x360ce/x360ce/issues/65/comments","events_url":"https://api.github.com/repos/x360ce/x360ce/issues/65/events","html_url":"https://github.com/x360ce/x360ce/issues/65","id":72569423,"number":65,"title":"Pass Through and Trigger Problems in Combined Mode","user":{"login":"jbienz","id":2062886,"avatar_url":"https://avatars.githubusercontent.com/u/2062886?v=3","gravatar_id":"","url":"https://api.github.com/users/jbienz","html_url":"https://github.com/jbienz","followers_url":"https://api.github.com/users/jbienz/followers","following_url":"https://api.github.com/users/jbienz/following{/other_user}","gists_url":"https://api.github.com/users/jbienz/gists{/gist_id}","starred_url":"https://api.github.com/users/jbienz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jbienz/subscriptions","organizations_url":"https://api.github.com/users/jbienz/orgs","repos_url":"https://api.github.com/users/jbienz/repos","events_url":"https://api.github.com/users/jbienz/events{/privacy}","received_events_url":"https://api.github.com/users/jbienz/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":{"login":"jbienz","id":2062886,"avatar_url":"https://avatars.githubusercontent.com/u/2062886?v=3","gravatar_id":"","url":"https://api.github.com/users/jbienz","html_url":"https://github.com/jbienz","followers_url":"https://api.github.com/users/jbienz/followers","following_url":"https://api.github.com/users/jbienz/following{/other_user}","gists_url":"https://api.github.com/users/jbienz/gists{/gist_id}","starred_url":"https://api.github.com/users/jbienz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jbienz/subscriptions","organizations_url":"https://api.github.com/users/jbienz/orgs","repos_url":"https://api.github.com/users/jbienz/repos","events_url":"https://api.github.com/users/jbienz/events{/privacy}","received_events_url":"https://api.github.com/users/jbienz/received_events","type":"User","site_admin":false},"milestone":null,"comments":0,"created_at":"2015-05-02T02:08:27Z","updated_at":"2015-05-02T02:08:27Z","closed_at":null,"body":"Currently in GTA V the player can't scope and shoot at the same time with a 360 controller in combined mode. This is because the player needs to be able to press both the left trigger and the right trigger at the same time.\r\n\r\nThe way the code is written currently, if you want a controller to participate in combining it cannot be in pass through mode. However when the 360 controller isn't in pass through mode it's being read as a DInput device and not an XInput device. When the 360 controller is read as a DInput device the triggers are combined into a single axis.\r\n\r\nUnfortunately if the user tries to enable pass through on the 360 controller it will no longer work in combined mode.\r\n\r\nI am making the changes necessary to fix this bug tonight. It requires moving a notable chunk of logic out of x360ce.cpp into virtual methods in ControllerBase.cpp. The code is largely unchanged, but because it now exists as virtual methods in the base class, derived classes can change the implementation. ControllerCombiner will change the behavior of many of these methods to handle pass through in a different way.\r\n\r\nIn the new implementation, while controllers are getting added to ControllerCombiner we check to see if any of them are set to pass through. If so, we hold onto that controller in a special place inside of ControllerCombiner. Later, methods like GetBatteryInformation will use the pass through controller if there is one, otherwise the call is passed to the base method (which works exactly like it does today).\r\n\r\nI know this sounds a little confusing but just check out ControllerCombiner and hopefully it will make sense. I will hopefully be checking these changes in later tonight."}}