shithub: wipeout

Download patch

ref: 5e0cd7694806e4a2c8f68d0385f8480d321ab8f2
parent: 4c1e50939e75a2192e5b08f9e4882b3a61ff1a26
author: Dominic Szablewski <dominic@phoboslab.org>
date: Mon Aug 21 09:07:39 EDT 2023

Initialize joysticks and support loading gamecontrollerdb.txt; see #26

--- a/.gitignore
+++ b/.gitignore
@@ -7,3 +7,4 @@
 /wipegame
 /save.dat
 .DS_STORE
+gamecontrollerdb.txt
--- a/README.md
+++ b/README.md
@@ -98,6 +98,8 @@
 
 Note that the blog post announcing this project may or may not provide a link to a ZIP containing all files needed. Who knows!
 
+Optionally, if you want to use a game controller that may not be supported by SDL directly, you can place the [gamecontrollerdb.txt](https://github.com/gabomdq/SDL_GameControllerDB) in the root directory of this project (along the compiled `wipegame`).
+
 
 
 ## Ideas for improvements
--- a/src/platform_sdl.c
+++ b/src/platform_sdl.c
@@ -302,7 +302,15 @@
 
 
 int main(int argc, char *argv[]) {
-	SDL_Init(SDL_INIT_VIDEO | SDL_INIT_AUDIO | SDL_INIT_GAMECONTROLLER);
+	SDL_Init(SDL_INIT_VIDEO | SDL_INIT_AUDIO | SDL_INIT_JOYSTICK | SDL_INIT_GAMECONTROLLER);
+
+	int gcdb_res = SDL_GameControllerAddMappingsFromFile("gamecontrollerdb.txt");
+	if (gcdb_res < 0) {
+		printf("Failed to load gamecontrollerdb.txt\n");
+	}
+	else {
+		printf("load gamecontrollerdb.txt\n");
+	}
 
 	audio_device = SDL_OpenAudioDevice(NULL, 0, &(SDL_AudioSpec){
 		.freq = 44100,