Skip to content

Commit

Permalink
improve handling of key combos
Browse files Browse the repository at this point in the history
- consider keys that are neither positive nor negative, e.g., ← and → keys in the y-axis
  • Loading branch information
sh95014 committed Dec 21, 2023
1 parent 7cf8522 commit 06dfe11
Showing 1 changed file with 6 additions and 3 deletions.
9 changes: 6 additions & 3 deletions source/frontends/mariani/MarianiJoystick.mm
Original file line number Diff line number Diff line change
Expand Up @@ -28,22 +28,25 @@
UserDefaults *defaults = [UserDefaults sharedInstance];
if ([defaults.gameController isEqualToString:GameControllerNumericKeypad]) {
double negativeVector = 0;
double neutralVector = 0;
double positiveVector = 0;
switch (i) {
case 0:
negativeVector = int(keysDown.count('7') + keysDown.count('4') + keysDown.count('1'));
negativeVector = int(keysDown.count('1') + keysDown.count('4') + keysDown.count('7'));
neutralVector = int(keysDown.count('2') + keysDown.count('8'));
positiveVector = int(keysDown.count('3') + keysDown.count('6') + keysDown.count('9'));
break;
case 1:
negativeVector = int(keysDown.count('7') + keysDown.count('8') + keysDown.count('9'));
neutralVector = int(keysDown.count('4') + keysDown.count('6'));
positiveVector = int(keysDown.count('1') + keysDown.count('2') + keysDown.count('3'));
break;
}
if (positiveVector + negativeVector < 0.01) {
if (positiveVector + neutralVector + negativeVector < 0.01) {
// avoid division by 0
return PDL_CENTER;
}
return (positiveVector - negativeVector) / (positiveVector + negativeVector);
return (positiveVector - negativeVector) / (positiveVector + neutralVector + negativeVector);
}
else {
GCController *gc = [GCController defaultController];
Expand Down

0 comments on commit 06dfe11

Please sign in to comment.