static long PADreadPort1(PadDataS *pad, int pad_index) {
pad->controllerType = in_type[pad_index];
pad->buttonStatus = ~in_keystate[pad_index];
- if(multitap1==1){
- pad->portMultitap=1;
- }else{
- pad->portMultitap=0;
- }
- if (in_type[pad_index] == PSE_PAD_TYPE_ANALOGPAD || in_type[pad_index] == PSE_PAD_TYPE_NEGCON) {
+ if (multitap1 == 1)
+ pad->portMultitap = 1;
+ else
+ pad->portMultitap = 0;
+
+ if (in_type[pad_index] == PSE_PAD_TYPE_ANALOGPAD || in_type[pad_index] == PSE_PAD_TYPE_NEGCON)
+ {
pad->leftJoyX = in_analog_left[pad_index][0];
pad->leftJoyY = in_analog_left[pad_index][1];
pad->rightJoyX = in_analog_right[pad_index][0];
}
static long PADreadPort2(PadDataS *pad, int pad_index) {
- pad->controllerType = in_type[pad_index];
- pad->buttonStatus = ~in_keystate[pad_index];
- if(multitap2==1){
- pad->portMultitap=2;
- }else{
- pad->portMultitap=0;
+ /* Temporary hack to avoid segfault when pad_index is a crazy number */
+ if (pad_index <= 1 || pad_index > 8) {
+ pad_index = 1;
}
- if (in_type[pad_index] == PSE_PAD_TYPE_ANALOGPAD || in_type[pad_index] == PSE_PAD_TYPE_NEGCON) {
+
+ pad->controllerType = in_type[pad_index];
+ pad->buttonStatus = ~in_keystate[pad_index];
+ if (multitap2 ==1 )
+ pad->portMultitap = 2;
+ else
+ pad->portMultitap = 0;
+
+ if (in_type[pad_index] == PSE_PAD_TYPE_ANALOGPAD || in_type[pad_index] == PSE_PAD_TYPE_NEGCON)
+ {
pad->leftJoyX = in_analog_left[pad_index][0];
pad->leftJoyY = in_analog_left[pad_index][1];
pad->rightJoyX = in_analog_right[pad_index][0];