git repos / blockattack-game

commit 2cb68251

sago007 · 2016-03-14 18:01
2cb68251781b454eebfb48824ab02c88ff94534a patch · browse files
parent c7f2082f1f8aafd28cb059ff33e32931c87aa030

GameController system now silennt by default

Changed files

M source/code/gamecontroller.cpp before
M source/code/gamecontroller.h before
M source/code/main.cpp before
diff --git a/source/code/gamecontroller.cpp b/source/code/gamecontroller.cpp index c1f38f7..443ac9a 100644 --- a/source/code/gamecontroller.cpp +++ b/source/code/gamecontroller.cpp
@@ -23,15 +23,39 @@ http://www.blockattack.net
#include "gamecontroller.h"
#include "SDL_gamecontroller.h"
+#include "sago/platform_folders.h"
#include <iostream>
+static bool verbose = false;
+
+void GameControllerSetVerbose(bool value) {
+ verbose = value;
+}
+
+static const char* GameControllerGetName(SDL_GameController *gamecontroller) {
+ const char* result = SDL_GameControllerName(gamecontroller);
+ if (!result) {
+ result = "Unnamed";
+ }
+ return result;
+}
+
void InitGameControllers() {
- std::cout << "Number of Game controllers: " << SDL_NumJoysticks() << std::endl;
+ std::string configFile = sago::getConfigHome()+"/blockattack/gamecontrollerdb.txt";
+ int errorCode = SDL_GameControllerAddMappingsFromFile(configFile.c_str());
+ if (errorCode == -1 && verbose) {
+ std::cerr << "Could not load mapping file: " << configFile << std::endl;
+ }
+ if (verbose) {
+ std::cout << "Number of Game controllers: " << SDL_NumJoysticks() << std::endl;
+ }
SDL_GameController* controller = nullptr;
for (int i = 0; i < SDL_NumJoysticks(); ++i) {
if (SDL_IsGameController(i)) {
controller = SDL_GameControllerOpen(i);
- std::cout << "Supported game controller detected: " << SDL_GameControllerName(controller) << std::endl;
+ if (verbose) {
+ std::cout << "Supported game controller detected: " << GameControllerGetName(controller) << ", mapping: " << SDL_GameControllerMapping(controller) << std::endl;
+ }
}
}
}
diff --git a/source/code/gamecontroller.h b/source/code/gamecontroller.h index 90c7c43..4bb2281 100644 --- a/source/code/gamecontroller.h +++ b/source/code/gamecontroller.h
@@ -30,4 +30,5 @@ bool isPlayerUpEvent(int playerNumber, const SDL_Event& event);
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);
\ No newline at end of file
+bool isPlayerPushEvent(int playerNumber, const SDL_Event& event);
+void GameControllerSetVerbose(bool value);
\ No newline at end of file
diff --git a/source/code/main.cpp b/source/code/main.cpp index 1f89d68..9529302 100644 --- a/source/code/main.cpp +++ b/source/code/main.cpp
@@ -1489,6 +1489,7 @@ int main(int argc, char* argv[]) {
("nosound", "Disables the sound. Can be used if sound errors prevents you from starting")
("priority", "Causes the game to not sleep between frames.")
("verbose-basic", "Enables basic verbose messages")
+ ("verbose-game-controller", "Enables verbose messages regarding controllers")
("print-search-path", "Prints the search path and quits")
("bind-text-domain", boost::program_options::value<string>(), SPrintStringF("Overwrites the bind text domain used for finding translations. "
"Default: \"%s\"", LOCALEDIR).c_str())
@@ -1531,6 +1532,9 @@ int main(int argc, char* argv[]) {
if (vm.count("verbose-basic")) {
verboseLevel++;
}
+ if (vm.count("verbose-game-controller")) {
+ GameControllerSetVerbose(true);
+ }
if (vm.count("print-search-path")) {
for (const string& s : search_paths) {
cout << s << endl;