55 lines
1.6 KiB
Diff
55 lines
1.6 KiB
Diff
--- a/src/MacSrc/Shock.c
|
|
+++ b/src/MacSrc/Shock.c
|
|
@@ -31,6 +31,7 @@
|
|
#include <SDL.h>
|
|
|
|
#ifdef __ANDROID__
|
|
+#include "qs_config.h"
|
|
#include "xr_session.h"
|
|
#endif
|
|
|
|
@@ -109,6 +110,15 @@
|
|
LoadHotkeyKeybinds();
|
|
LoadMoveKeybinds();
|
|
|
|
+#ifdef __ANDROID__
|
|
+ // Persistent, human-editable JSON config (questshock.config.json) - see
|
|
+ // qs_config.h/CONFIG.md. After prefs.txt is loaded (above) so this file
|
|
+ // can override it, before init_all() below so there's no live-vs-
|
|
+ // restart distinction to worry about yet - every field just takes full
|
|
+ // effect as part of this same startup.
|
|
+ qs_config_load_startup();
|
|
+#endif
|
|
+
|
|
// Process some startup arguments
|
|
|
|
bool show_splash = !CheckArgument("-nosplash");
|
|
--- a/src/Libraries/INPUT/Source/sdl_events.c
|
|
+++ b/src/Libraries/INPUT/Source/sdl_events.c
|
|
@@ -29,6 +29,10 @@
|
|
#include <SDL.h>
|
|
#include <OpenGL.h>
|
|
|
|
+#ifdef __ANDROID__
|
|
+#include "qs_config.h"
|
|
+#endif
|
|
+
|
|
extern SDL_Window *window;
|
|
extern SDL_Renderer *renderer;
|
|
|
|
@@ -481,6 +485,14 @@
|
|
SDL_Event ev;
|
|
|
|
while (SDL_PollEvent(&ev)) {
|
|
+#ifdef __ANDROID__
|
|
+ // Custom event types qs_config_request_save()/_load() enqueue from
|
|
+ // the "Save Configuration"/"Load Configuration" menu buttons (see
|
|
+ // qs_config.h) - handled here, on this thread, rather than directly
|
|
+ // from those JNI calls (which run on Android's UI thread).
|
|
+ if (qs_config_handle_event(&ev))
|
|
+ continue;
|
|
+#endif
|
|
switch (ev.type) {
|
|
case SDL_QUIT:
|
|
// a bit hacky at this place, but this would allow exiting the game via the window's [x] button
|