diff --git a/build/android/jni/src/Android.mk b/build/android/jni/src/Android.mk index 32c6c91..bf603df 100644 --- a/build/android/jni/src/Android.mk +++ b/build/android/jni/src/Android.mk @@ -18,6 +18,7 @@ LOCAL_C_INCLUDES := \ $(LOCAL_PATH)/$(THIRD_PARTY_PATH)/moonscript \ $(LOCAL_PATH)/$(THIRD_PARTY_PATH)/wren-0.1.0\src\include \ $(LOCAL_PATH)/$(THIRD_PARTY_PATH)/sdl-gpu/include \ + $(LOCAL_PATH)/$(THIRD_PARTY_PATH)/fennel \ $(LOCAL_PATH)/../../../../include # Add your application source files here... diff --git a/src/keycodes.inl b/src/keycodes.inl index 8ead073..9f44e5d 100644 --- a/src/keycodes.inl +++ b/src/keycodes.inl @@ -40,6 +40,7 @@ [SDL_SCANCODE_0] = tic_key_0, [SDL_SCANCODE_RETURN] = tic_key_return, [SDL_SCANCODE_ESCAPE] = tic_key_escape, +[SDL_SCANCODE_AC_BACK] = tic_key_escape, [SDL_SCANCODE_BACKSPACE] = tic_key_backspace, [SDL_SCANCODE_TAB] = tic_key_tab, [SDL_SCANCODE_SPACE] = tic_key_space, diff --git a/src/studio.c b/src/studio.c index b982b87..7a1664f 100644 --- a/src/studio.c +++ b/src/studio.c @@ -1334,7 +1334,6 @@ static void processShortcuts() if(keyWasPressedOnce(tic_key_escape)) { impl.mode == TIC_MENU_MODE ? hideGameMenu() : showGameMenu(); - // impl.gamepad.backProcessed = true; } else if(keyWasPressedOnce(tic_key_f11)) goFullscreen(); else if(keyWasPressedOnce(tic_key_return)) diff --git a/src/system.c b/src/system.c index 6b8e5d8..d5391c8 100644 --- a/src/system.c +++ b/src/system.c @@ -666,15 +666,7 @@ static void processJoysticks() if(back) { tic_mem* tic = platform.studio->tic; - - for(s32 i = 0; i < TIC80_KEY_BUFFER; i++) - { - if(!tic->ram.input.keyboard.keys[i]) - { - tic->ram.input.keyboard.keys[i] = tic_key_escape; - break; - } - } + tic->ram.input.keyboard.keys[0] = tic_key_escape; } } } @@ -688,7 +680,19 @@ static void processJoysticks() static void processGamepad() { -#if !defined(__EMSCRIPTEN__) && !defined(__MACOSX__) + processJoysticks(); + + { + platform.studio->tic->ram.input.gamepads.data = 0; + + platform.studio->tic->ram.input.gamepads.data |= platform.gamepad.touch.data; + platform.studio->tic->ram.input.gamepads.data |= platform.gamepad.joystick.data; + } +} + +static void processTouchInput() +{ + #if !defined(__EMSCRIPTEN__) && !defined(__MACOSX__) { s32 devices = SDL_GetNumTouchDevices(); for (s32 i = 0; i < devices; i++) @@ -703,19 +707,12 @@ static void processGamepad() ? processTouchGamepad() : processTouchKeyboard(); #endif - processJoysticks(); - - { - platform.studio->tic->ram.input.gamepads.data = 0; - - platform.studio->tic->ram.input.gamepads.data |= platform.gamepad.touch.data; - platform.studio->tic->ram.input.gamepads.data |= platform.gamepad.joystick.data; - } } static void pollEvent() { - tic80_input* input = &platform.studio->tic->ram.input; + tic_mem* tic = platform.studio->tic; + tic80_input* input = &tic->ram.input; { input->mouse.btns = 0; @@ -783,6 +780,7 @@ static void pollEvent() processMouse(); processKeyboard(); + processTouchInput(); processGamepad(); } @@ -1361,6 +1359,9 @@ static void emsGpuTick() static s32 start(s32 argc, char **argv, const char* folder) { + SDL_SetHint(SDL_HINT_WINRT_HANDLE_BACK_BUTTON, "1"); + SDL_SetHint(SDL_HINT_ACCELEROMETER_AS_JOYSTICK, "0"); + SDL_Init(SDL_INIT_VIDEO | SDL_INIT_AUDIO | SDL_INIT_JOYSTICK); initSound(); diff --git a/src/tic.h b/src/tic.h index 8502184..53e8934 100644 --- a/src/tic.h +++ b/src/tic.h @@ -29,7 +29,7 @@ #define TIC_VERSION_MAJOR 0 #define TIC_VERSION_MINOR 70 #define TIC_VERSION_PATCH 0 -#define TIC_VERSION_STATUS "-dev.2" +#define TIC_VERSION_STATUS "-dev.5" #if defined(TIC80_PRO) #define TIC_VERSION_POST " Pro"