@@ -68,23 +68,65 @@ static long CALLBACK PADshutdown(void) { return 0; }
68
68
static long CALLBACK PADclose (void ) { return 0 ; }
69
69
static void CALLBACK PADsetSensitive (int _ ) { return ; }
70
70
71
- static long CALLBACK PADreadPort1 (PadDataS * pad )
72
- {
73
- pad -> controllerType = in_type [0 ];
74
- pad -> buttonStatus = ~in_keystate [0 ];
75
- if (in_type [0 ] == PSE_PAD_TYPE_ANALOGPAD ) {
76
- pad -> leftJoyX = in_analog_left [0 ][0 ];
77
- pad -> leftJoyY = in_analog_left [0 ][1 ];
78
- pad -> rightJoyX = in_analog_right [0 ][0 ];
79
- pad -> rightJoyY = in_analog_right [0 ][1 ];
71
+ static long CALLBACK PADreadPort1 (PadDataS * pad ) {
72
+ int pad_index = pad -> requestPadIndex ;
73
+
74
+ pad -> controllerType = in_type [pad_index ];
75
+ pad -> buttonStatus = ~in_keystate [pad_index ];
76
+
77
+ if (multitap1 == 1 )
78
+ pad -> portMultitap = 1 ;
79
+ else
80
+ pad -> portMultitap = 0 ;
81
+
82
+ if (in_type [pad_index ] == PSE_PAD_TYPE_ANALOGJOY || in_type [pad_index ] == PSE_PAD_TYPE_ANALOGPAD || in_type [pad_index ] == PSE_PAD_TYPE_NEGCON || in_type [pad_index ] == PSE_PAD_TYPE_GUNCON )
83
+ {
84
+ pad -> leftJoyX = in_analog_left [pad_index ][0 ];
85
+ pad -> leftJoyY = in_analog_left [pad_index ][1 ];
86
+ pad -> rightJoyX = in_analog_right [pad_index ][0 ];
87
+ pad -> rightJoyY = in_analog_right [pad_index ][1 ];
88
+
89
+ pad -> absoluteX = in_analog_left [pad_index ][0 ];
90
+ pad -> absoluteY = in_analog_left [pad_index ][1 ];
91
+ }
92
+
93
+ if (in_type [pad_index ] == PSE_PAD_TYPE_MOUSE )
94
+ {
95
+ pad -> moveX = in_mouse [pad_index ][0 ];
96
+ pad -> moveY = in_mouse [pad_index ][1 ];
80
97
}
98
+
81
99
return 0 ;
82
100
}
83
101
84
- static long CALLBACK PADreadPort2 (PadDataS * pad )
85
- {
86
- pad -> controllerType = in_type [1 ];
87
- pad -> buttonStatus = ~in_keystate [0 ] >> 16 ;
102
+ static long CALLBACK PADreadPort2 (PadDataS * pad ) {
103
+ int pad_index = pad -> requestPadIndex ;
104
+
105
+ pad -> controllerType = in_type [pad_index ];
106
+ pad -> buttonStatus = ~in_keystate [pad_index ];
107
+
108
+ if (multitap2 == 1 )
109
+ pad -> portMultitap = 2 ;
110
+ else
111
+ pad -> portMultitap = 0 ;
112
+
113
+ if (in_type [pad_index ] == PSE_PAD_TYPE_ANALOGJOY || in_type [pad_index ] == PSE_PAD_TYPE_ANALOGPAD || in_type [pad_index ] == PSE_PAD_TYPE_NEGCON || in_type [pad_index ] == PSE_PAD_TYPE_GUNCON )
114
+ {
115
+ pad -> leftJoyX = in_analog_left [pad_index ][0 ];
116
+ pad -> leftJoyY = in_analog_left [pad_index ][1 ];
117
+ pad -> rightJoyX = in_analog_right [pad_index ][0 ];
118
+ pad -> rightJoyY = in_analog_right [pad_index ][1 ];
119
+
120
+ pad -> absoluteX = in_analog_left [pad_index ][0 ];
121
+ pad -> absoluteY = in_analog_left [pad_index ][1 ];
122
+ }
123
+
124
+ if (in_type [pad_index ] == PSE_PAD_TYPE_MOUSE )
125
+ {
126
+ pad -> moveX = in_mouse [pad_index ][0 ];
127
+ pad -> moveY = in_mouse [pad_index ][1 ];
128
+ }
129
+
88
130
return 0 ;
89
131
}
90
132
0 commit comments