git repos / blockattack-game

commit db84be96

sago007 · 2020-06-27 22:07
db84be9683e963f3d18812c0a3893a2a6dc13a4f patch · browse files
parent 8c5c4f5aa8134752e378851a932d1e5eb23db806

Moved the event check into the gamecontroller code.

Changed files

M source/code/HelpGamepadState.cpp before
M source/code/gamecontroller.cpp before
M source/code/gamecontroller.h before
diff --git a/source/code/HelpGamepadState.cpp b/source/code/HelpGamepadState.cpp index b4ebb37..3cfa6ed 100644 --- a/source/code/HelpGamepadState.cpp +++ b/source/code/HelpGamepadState.cpp
@@ -81,21 +81,12 @@ bool HelpGamepadState::IsActive() {
void HelpGamepadState::ProcessInput(const SDL_Event& event, bool& processed) {
UpdateMouseCoordinates(event, globalData.mousex, globalData.mousey);
- switch (event.type) {
- case SDL_CONTROLLERDEVICEADDED:
- case SDL_CONTROLLERDEVICEREMOVED:
- case SDL_CONTROLLERDEVICEREMAPPED:
- UnInitGameControllers();
- InitGameControllers();
- {
- std::string s = getLabelForSupportedControllerNames();
- setHelpGamepadFont(&globalData.spriteHolder->GetDataHolder(), supportedControllers, s.c_str());
- }
- break;
- default:
- //none
- break;
- };
+ if (isGameControllerConnectionEvent(event)) {
+ UnInitGameControllers();
+ InitGameControllers();
+ std::string s = getLabelForSupportedControllerNames();
+ setHelpGamepadFont(&globalData.spriteHolder->GetDataHolder(), supportedControllers, s.c_str());
+ }
if (isConfirmEvent(event) || isEscapeEvent(event)) {
isActive = false;
@@ -162,4 +153,4 @@ void HelpGamepadState::Update() {
}
}
-}
\ No newline at end of file
+}
diff --git a/source/code/gamecontroller.cpp b/source/code/gamecontroller.cpp index 368a34e..05a31a5 100644 --- a/source/code/gamecontroller.cpp +++ b/source/code/gamecontroller.cpp
@@ -163,6 +163,16 @@ static bool skipThisPlayer(int playerNumber, const SDL_Event& event) {
return true;
}
+
+bool isGameControllerConnectionEvent(const SDL_Event& event) {
+ if ( event.type == SDL_CONTROLLERDEVICEADDED
+ || event.type == SDL_CONTROLLERDEVICEREMOVED
+ || event.type == SDL_CONTROLLERDEVICEREMAPPED ) {
+ return true;
+ }
+ return false;
+}
+
bool isPlayerDownEvent(int playerNumber, const SDL_Event& event) {
if (skipThisPlayer(playerNumber, event)) {
return false;
diff --git a/source/code/gamecontroller.h b/source/code/gamecontroller.h index 51f884a..749be39 100644 --- a/source/code/gamecontroller.h +++ b/source/code/gamecontroller.h
@@ -39,6 +39,7 @@ bool isPlayerLeftEvent(int playerNumber, const SDL_Event& event);
bool isPlayerRightEvent(int playerNumber, const SDL_Event& event);
bool isPlayerSwitchEvent(int playerNumber, const SDL_Event& event);
bool isPlayerPushEvent(int playerNumber, const SDL_Event& event);
+bool isGameControllerConnectionEvent(const SDL_Event& event);
void GameControllerSetVerbose(bool value);
const std::vector<std::string>& GetSupportedControllerNames();