Compatibility and game controller patches (#42)

* Compatibility for old CMake versions (3.0)
Compatibility for SDL Mixer 2.0.1
Basic controller support: LB, RB for flippers, A for plunger, DPAD for table bump

* Update SpaceCadetPinball/Sound.cpp

Co-authored-by: Muzychenko Andrey <33288308+k4zmu2a@users.noreply.github.com>
This commit is contained in:
MariotakuandMuzychenko Andrey authored and GitHub committed 2021-10-17 07:52:05 +03:00
1 parent a7e3503e2c
commit f56abf0596
3 files changed
+75 -5

No files matched your search

+63
View File
@@ -741,6 +741,69 @@ int winmain::event_handler(const SDL_Event* event)
default: ;
}
break;
case SDL_JOYDEVICEADDED:
if (SDL_IsGameController(event->jdevice.which))
{
SDL_GameControllerOpen(event->jdevice.which);
}
break;
case SDL_JOYDEVICEREMOVED:
{
SDL_GameController *controller = SDL_GameControllerFromInstanceID(event->jdevice.which);
if (controller)
{
SDL_GameControllerClose(controller);
}
}
break;
case SDL_CONTROLLERBUTTONDOWN:
switch (event->cbutton.button)
{
case SDL_CONTROLLER_BUTTON_A:
pb::keydown(Options.Key.Plunger);
break;
case SDL_CONTROLLER_BUTTON_LEFTSHOULDER:
pb::keydown(Options.Key.LeftFlipper);
break;
case SDL_CONTROLLER_BUTTON_RIGHTSHOULDER:
pb::keydown(Options.Key.RightFlipper);
break;
case SDL_CONTROLLER_BUTTON_DPAD_LEFT:
pb::keydown(Options.Key.LeftTableBump);
break;
case SDL_CONTROLLER_BUTTON_DPAD_RIGHT:
pb::keydown(Options.Key.RightTableBump);
break;
case SDL_CONTROLLER_BUTTON_DPAD_DOWN:
pb::keydown(Options.Key.BottomTableBump);
break;
default: ;
}
break;
case SDL_CONTROLLERBUTTONUP:
switch (event->cbutton.button)
{
case SDL_CONTROLLER_BUTTON_A:
pb::keyup(Options.Key.Plunger);
break;
case SDL_CONTROLLER_BUTTON_LEFTSHOULDER:
pb::keyup(Options.Key.LeftFlipper);
break;
case SDL_CONTROLLER_BUTTON_RIGHTSHOULDER:
pb::keyup(Options.Key.RightFlipper);
break;
case SDL_CONTROLLER_BUTTON_DPAD_LEFT:
pb::keyup(Options.Key.LeftTableBump);
break;
case SDL_CONTROLLER_BUTTON_DPAD_RIGHT:
pb::keyup(Options.Key.RightTableBump);
break;
case SDL_CONTROLLER_BUTTON_DPAD_DOWN:
pb::keyup(Options.Key.BottomTableBump);
break;
default: ;
}
break;
default: ;
}