Skip to content

Commit 739520a

Browse files
committed
- [Psy-X] simplify ANALOG mode switching
1 parent a1d1ca7 commit 739520a

1 file changed

Lines changed: 13 additions & 13 deletions

File tree

src_rebuild/PsyCross/src/pad/PsyX_pad.cpp

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ typedef struct
2020
int hapticEffect;
2121

2222
u_char* padData;
23+
bool switchingAnalog;
2324
} PsyXController;
2425

2526
PsyXController g_controllers[MAX_CONTROLLERS];
@@ -98,6 +99,7 @@ void PsyX_Pad_OpenController(Sint32 deviceId, int slot)
9899
}
99100

100101
controller->gc = SDL_GameControllerOpen(deviceId);
102+
controller->switchingAnalog = false;
101103

102104
if (controller->gc)
103105
{
@@ -234,32 +236,30 @@ void PsyX_Pad_InternalPadUpdates()
234236

235237
// In order to switch From/To analog user has to use left gamepad stick
236238

237-
// Select + Start pressed + left stick Down
238-
if (pad->analog[3] == 255)
239+
// Select + Start pressed
240+
if ((test & 0x1) == 0 && (test & 0x8) == 0)
239241
{
240-
if ((test & 0x1) == 0 && (test & 0x8) == 0)
242+
*(u_short*)pad->buttons = 0xffff;
243+
244+
if (!controller->switchingAnalog)
241245
{
242246
// switch to analog state
243247
if (pad->id == 0x41)
244248
{
245249
eprintf("Port %d ANALOG: ON\n", i + 1);
246250
pad->id = 0x73;
247251
}
248-
}
249-
}
250-
251-
// Select + Start pressed + left stick Up
252-
if (pad->analog[3] == 0)
253-
{
254-
if ((test & 0x1) == 0 && (test & 0x8) == 0)
255-
{
256-
// switch to analog state
257-
if (pad->id == 0x73)
252+
else
258253
{
259254
eprintf("Port %d ANALOG: OFF\n", i + 1);
260255
pad->id = 0x41;
261256
}
262257
}
258+
controller->switchingAnalog = true;
259+
}
260+
else
261+
{
262+
controller->switchingAnalog = false;
263263
}
264264

265265
// Update keyboard for PAD

0 commit comments

Comments
 (0)