mirror of
https://github.com/celisej567/mcpe.git
synced 2026-09-11 20:11:18 +03:00
* Also fix support for SDL again...
This commit is contained in:
@@ -8,6 +8,24 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
#ifdef USE_SDL
|
||||
#include <SDL2/SDL.h>
|
||||
|
||||
// because SDL sucks and makes no sense and sets bit 1<<30 for some keycodes for some godamn reason
|
||||
enum eSDLVirtualKeys
|
||||
{
|
||||
#define CODE(x) SDLVK_ ## x,
|
||||
#include "SDLKeyCodes.h"
|
||||
#undef CODE
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
#ifdef _WIN32
|
||||
#define WIN32_LEAN_AND_MEAN
|
||||
#include <Windows.h>
|
||||
#endif
|
||||
|
||||
#ifdef PLATFORM_ANDROID
|
||||
|
||||
enum
|
||||
244
compat/SDLKeyCodes.h
Normal file
244
compat/SDLKeyCodes.h
Normal file
@@ -0,0 +1,244 @@
|
||||
CODE(UNKNOWN)
|
||||
CODE(RETURN)
|
||||
CODE(ESCAPE)
|
||||
CODE(BACKSPACE)
|
||||
CODE(TAB)
|
||||
CODE(SPACE)
|
||||
CODE(EXCLAIM)
|
||||
CODE(QUOTEDBL)
|
||||
CODE(HASH)
|
||||
CODE(PERCENT)
|
||||
CODE(DOLLAR)
|
||||
CODE(AMPERSAND)
|
||||
CODE(QUOTE)
|
||||
CODE(LEFTPAREN)
|
||||
CODE(RIGHTPAREN)
|
||||
CODE(ASTERISK)
|
||||
CODE(PLUS)
|
||||
CODE(COMMA)
|
||||
CODE(MINUS)
|
||||
CODE(PERIOD)
|
||||
CODE(SLASH)
|
||||
CODE(0)
|
||||
CODE(1)
|
||||
CODE(2)
|
||||
CODE(3)
|
||||
CODE(4)
|
||||
CODE(5)
|
||||
CODE(6)
|
||||
CODE(7)
|
||||
CODE(8)
|
||||
CODE(9)
|
||||
CODE(COLON)
|
||||
CODE(SEMICOLON)
|
||||
CODE(LESS)
|
||||
CODE(EQUALS)
|
||||
CODE(GREATER)
|
||||
CODE(QUESTION)
|
||||
CODE(AT)
|
||||
CODE(LEFTBRACKET)
|
||||
CODE(BACKSLASH)
|
||||
CODE(RIGHTBRACKET)
|
||||
CODE(CARET)
|
||||
CODE(UNDERSCORE)
|
||||
CODE(BACKQUOTE)
|
||||
CODE(a)
|
||||
CODE(b)
|
||||
CODE(c)
|
||||
CODE(d)
|
||||
CODE(e)
|
||||
CODE(f)
|
||||
CODE(g)
|
||||
CODE(h)
|
||||
CODE(i)
|
||||
CODE(j)
|
||||
CODE(k)
|
||||
CODE(l)
|
||||
CODE(m)
|
||||
CODE(n)
|
||||
CODE(o)
|
||||
CODE(p)
|
||||
CODE(q)
|
||||
CODE(r)
|
||||
CODE(s)
|
||||
CODE(t)
|
||||
CODE(u)
|
||||
CODE(v)
|
||||
CODE(w)
|
||||
CODE(x)
|
||||
CODE(y)
|
||||
CODE(z)
|
||||
CODE(CAPSLOCK)
|
||||
CODE(F1)
|
||||
CODE(F2)
|
||||
CODE(F3)
|
||||
CODE(F4)
|
||||
CODE(F5)
|
||||
CODE(F6)
|
||||
CODE(F7)
|
||||
CODE(F8)
|
||||
CODE(F9)
|
||||
CODE(F10)
|
||||
CODE(F11)
|
||||
CODE(F12)
|
||||
CODE(PRINTSCREEN)
|
||||
CODE(SCROLLLOCK)
|
||||
CODE(PAUSE)
|
||||
CODE(INSERT)
|
||||
CODE(HOME)
|
||||
CODE(PAGEUP)
|
||||
CODE(DELETE)
|
||||
CODE(END)
|
||||
CODE(PAGEDOWN)
|
||||
CODE(RIGHT)
|
||||
CODE(LEFT)
|
||||
CODE(DOWN)
|
||||
CODE(UP)
|
||||
CODE(NUMLOCKCLEAR)
|
||||
CODE(KP_DIVIDE)
|
||||
CODE(KP_MULTIPLY)
|
||||
CODE(KP_MINUS)
|
||||
CODE(KP_PLUS)
|
||||
CODE(KP_ENTER)
|
||||
CODE(KP_1)
|
||||
CODE(KP_2)
|
||||
CODE(KP_3)
|
||||
CODE(KP_4)
|
||||
CODE(KP_5)
|
||||
CODE(KP_6)
|
||||
CODE(KP_7)
|
||||
CODE(KP_8)
|
||||
CODE(KP_9)
|
||||
CODE(KP_0)
|
||||
CODE(KP_PERIOD)
|
||||
CODE(APPLICATION)
|
||||
CODE(POWER)
|
||||
CODE(KP_EQUALS)
|
||||
CODE(F13)
|
||||
CODE(F14)
|
||||
CODE(F15)
|
||||
CODE(F16)
|
||||
CODE(F17)
|
||||
CODE(F18)
|
||||
CODE(F19)
|
||||
CODE(F20)
|
||||
CODE(F21)
|
||||
CODE(F22)
|
||||
CODE(F23)
|
||||
CODE(F24)
|
||||
CODE(EXECUTE)
|
||||
CODE(HELP)
|
||||
CODE(MENU)
|
||||
CODE(SELECT)
|
||||
CODE(STOP)
|
||||
CODE(AGAIN)
|
||||
CODE(UNDO)
|
||||
CODE(CUT)
|
||||
CODE(COPY)
|
||||
CODE(PASTE)
|
||||
CODE(FIND)
|
||||
CODE(MUTE)
|
||||
CODE(VOLUMEUP)
|
||||
CODE(VOLUMEDOWN)
|
||||
CODE(KP_COMMA)
|
||||
CODE(KP_EQUALSAS400)
|
||||
CODE(ALTERASE)
|
||||
CODE(SYSREQ)
|
||||
CODE(CANCEL)
|
||||
CODE(CLEAR)
|
||||
CODE(PRIOR)
|
||||
CODE(RETURN2)
|
||||
CODE(SEPARATOR)
|
||||
CODE(OUT)
|
||||
CODE(OPER)
|
||||
CODE(CLEARAGAIN)
|
||||
CODE(CRSEL)
|
||||
CODE(EXSEL)
|
||||
CODE(KP_00)
|
||||
CODE(KP_000)
|
||||
CODE(THOUSANDSSEPARATOR)
|
||||
CODE(DECIMALSEPARATOR)
|
||||
CODE(CURRENCYUNIT)
|
||||
CODE(CURRENCYSUBUNIT)
|
||||
CODE(KP_LEFTPAREN)
|
||||
CODE(KP_RIGHTPAREN)
|
||||
CODE(KP_LEFTBRACE)
|
||||
CODE(KP_RIGHTBRACE)
|
||||
CODE(KP_TAB)
|
||||
CODE(KP_BACKSPACE)
|
||||
CODE(KP_A)
|
||||
CODE(KP_B)
|
||||
CODE(KP_C)
|
||||
CODE(KP_D)
|
||||
CODE(KP_E)
|
||||
CODE(KP_F)
|
||||
CODE(KP_XOR)
|
||||
CODE(KP_POWER)
|
||||
CODE(KP_PERCENT)
|
||||
CODE(KP_LESS)
|
||||
CODE(KP_GREATER)
|
||||
CODE(KP_AMPERSAND)
|
||||
CODE(KP_DBLAMPERSAND)
|
||||
CODE(KP_VERTICALBAR)
|
||||
CODE(KP_DBLVERTICALBAR)
|
||||
CODE(KP_COLON)
|
||||
CODE(KP_HASH)
|
||||
CODE(KP_SPACE)
|
||||
CODE(KP_AT)
|
||||
CODE(KP_EXCLAM)
|
||||
CODE(KP_MEMSTORE)
|
||||
CODE(KP_MEMRECALL)
|
||||
CODE(KP_MEMCLEAR)
|
||||
CODE(KP_MEMADD)
|
||||
CODE(KP_MEMSUBTRACT)
|
||||
CODE(KP_MEMMULTIPLY)
|
||||
CODE(KP_MEMDIVIDE)
|
||||
CODE(KP_PLUSMINUS)
|
||||
CODE(KP_CLEAR)
|
||||
CODE(KP_CLEARENTRY)
|
||||
CODE(KP_BINARY)
|
||||
CODE(KP_OCTAL)
|
||||
CODE(KP_DECIMAL)
|
||||
CODE(KP_HEXADECIMAL)
|
||||
CODE(LCTRL)
|
||||
CODE(LSHIFT)
|
||||
CODE(LALT)
|
||||
CODE(LGUI)
|
||||
CODE(RCTRL)
|
||||
CODE(RSHIFT)
|
||||
CODE(RALT)
|
||||
CODE(RGUI)
|
||||
CODE(MODE)
|
||||
CODE(AUDIONEXT)
|
||||
CODE(AUDIOPREV)
|
||||
CODE(AUDIOSTOP)
|
||||
CODE(AUDIOPLAY)
|
||||
CODE(AUDIOMUTE)
|
||||
CODE(MEDIASELECT)
|
||||
CODE(WWW)
|
||||
CODE(MAIL)
|
||||
CODE(CALCULATOR)
|
||||
CODE(COMPUTER)
|
||||
CODE(AC_SEARCH)
|
||||
CODE(AC_HOME)
|
||||
CODE(AC_BACK)
|
||||
CODE(AC_FORWARD)
|
||||
CODE(AC_STOP)
|
||||
CODE(AC_REFRESH)
|
||||
CODE(AC_BOOKMARKS)
|
||||
CODE(BRIGHTNESSDOWN)
|
||||
CODE(BRIGHTNESSUP)
|
||||
CODE(DISPLAYSWITCH)
|
||||
CODE(KBDILLUMTOGGLE)
|
||||
CODE(KBDILLUMDOWN)
|
||||
CODE(KBDILLUMUP)
|
||||
CODE(EJECT)
|
||||
CODE(SLEEP)
|
||||
CODE(APP1)
|
||||
CODE(APP2)
|
||||
CODE(AUDIOREWIND)
|
||||
CODE(AUDIOFASTFORWARD)
|
||||
CODE(SOFTLEFT)
|
||||
CODE(SOFTRIGHT)
|
||||
CODE(CALL)
|
||||
CODE(ENDCALL)
|
||||
@@ -63,6 +63,16 @@ static void teardown()
|
||||
}
|
||||
}
|
||||
|
||||
static int TranslateSDLKeyCodeToVirtual(int sdlCode)
|
||||
{
|
||||
switch (sdlCode) {
|
||||
#define CODE(x) case SDLK_ ## x: return SDLVK_ ## x;
|
||||
#include "compat/SDLKeyCodes.h"
|
||||
#undef CODE
|
||||
}
|
||||
return SDLVK_UNKNOWN;
|
||||
}
|
||||
|
||||
// Resize From JS
|
||||
#ifdef __EMSCRIPTEN__
|
||||
extern "C" void resize_from_js(int new_width, int new_height)
|
||||
@@ -84,6 +94,9 @@ static void handle_events()
|
||||
case SDL_KEYUP:
|
||||
{
|
||||
// TODO: Shouldn't we be handling this in Keyboard?
|
||||
|
||||
// We really should. We didn't add the f2 key anywhere -iProgramInCpp
|
||||
/*
|
||||
if (event.key.keysym.sym == SDLK_F2)
|
||||
{
|
||||
if (event.key.state == SDL_PRESSED && g_pAppPlatform != nullptr)
|
||||
@@ -92,7 +105,9 @@ static void handle_events()
|
||||
}
|
||||
break;
|
||||
}
|
||||
Keyboard::feed(AppPlatform_sdlbase::GetKeyState(event), translate_sdl_key_to_mcpe(event.key.keysym.sym));
|
||||
*/
|
||||
|
||||
Keyboard::feed(AppPlatform_sdlbase::GetKeyState(event), TranslateSDLKeyCodeToVirtual(event.key.keysym.sym));
|
||||
if (event.key.keysym.sym == SDLK_LSHIFT || event.key.keysym.sym == SDLK_RSHIFT)
|
||||
{
|
||||
g_pAppPlatform->setShiftPressed(event.key.state == SDL_PRESSED, event.key.keysym.sym == SDLK_LSHIFT);
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
#include <WindowsX.h>
|
||||
|
||||
#include "compat/GL.hpp"
|
||||
#include "compat/AKeyCodes.hpp"
|
||||
#include "compat/KeyCodes.hpp"
|
||||
|
||||
#include "App.hpp"
|
||||
#include "AppPlatform_windows.hpp"
|
||||
|
||||
@@ -27,7 +27,6 @@
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="$(MC_ROOT)\compat\AKeyCodes.hpp" />
|
||||
<ClInclude Include="$(MC_ROOT)\GameMods.hpp" />
|
||||
<ClInclude Include="$(MC_ROOT)\platforms\openal\SoundSystemAL.hpp" />
|
||||
<ClInclude Include="$(MC_ROOT)\platforms\PlatformDefinitions.hpp" />
|
||||
@@ -382,6 +381,7 @@
|
||||
<ClInclude Include="$(MC_ROOT)\thirdparty\zlib\zconf.h" />
|
||||
<ClInclude Include="$(MC_ROOT)\thirdparty\zlib\zlib.h" />
|
||||
<ClInclude Include="$(MC_ROOT)\thirdparty\zlib\zutil.h" />
|
||||
<ClInclude Include="..\..\..\compat\KeyCodes.hpp" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="$(MC_ROOT)\compat\GLExt.cpp" />
|
||||
|
||||
@@ -1167,7 +1167,7 @@
|
||||
<ClInclude Include="$(MC_ROOT)\platforms\windows\AppPlatform_windows.hpp">
|
||||
<Filter>source\platforms\windows</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="$(MC_ROOT)\compat\AKeyCodes.hpp">
|
||||
<ClInclude Include="..\..\..\compat\KeyCodes.hpp">
|
||||
<Filter>thirdparty</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
|
||||
@@ -417,7 +417,7 @@ void Gui::handleKeyPressed(int keyCode)
|
||||
#elif defined(_WIN32)
|
||||
#define AKEYCODE_SLASH VK_OEM_2
|
||||
#elif defined(USE_SDL)
|
||||
#define AKEYCODE_SLASH SDLK_SLASH
|
||||
#define AKEYCODE_SLASH SDLVK_SLASH
|
||||
#else
|
||||
#error "Define the slash key here!"
|
||||
#endif
|
||||
|
||||
@@ -117,10 +117,10 @@ void TextInputBox::keyPressed(Minecraft* minecraft, int key)
|
||||
#define AKEYCODE_ARROW_RIGHT VK_RIGHT
|
||||
#define AKEYCODE_DEL VK_BACK
|
||||
#elif defined(USE_SDL)
|
||||
#define AKEYCODE_FORWARD_DEL SDLK_DELETE
|
||||
#define AKEYCODE_ARROW_LEFT SDLK_LEFT
|
||||
#define AKEYCODE_ARROW_RIGHT SDLK_RIGHT
|
||||
#define AKEYCODE_DEL SDLK_BACKSPACE
|
||||
#define AKEYCODE_FORWARD_DEL SDLVK_DELETE
|
||||
#define AKEYCODE_ARROW_LEFT SDLVK_LEFT
|
||||
#define AKEYCODE_ARROW_RIGHT SDLVK_RIGHT
|
||||
#define AKEYCODE_DEL SDLVK_BACKSPACE
|
||||
#endif
|
||||
|
||||
switch (key)
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
#include <vector>
|
||||
#include <cstdint>
|
||||
|
||||
#define KEYBOARD_STATES_SIZE 256
|
||||
#define KEYBOARD_STATES_SIZE (256)
|
||||
|
||||
struct KeyboardAction;
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
|
||||
#include "Options.hpp"
|
||||
#include "Util.hpp"
|
||||
#include "compat/AKeyCodes.hpp"
|
||||
#include "compat/KeyCodes.hpp"
|
||||
#include "Minecraft.hpp"
|
||||
|
||||
Options::Option
|
||||
@@ -102,39 +102,40 @@ void Options::initDefaultValues()
|
||||
|
||||
#define KM(idx,code) m_keyMappings[idx].value = code
|
||||
#ifdef USE_SDL
|
||||
KM(KM_FORWARD, SDLK_w);
|
||||
KM(KM_LEFT, SDLK_a);
|
||||
KM(KM_BACKWARD, SDLK_s);
|
||||
KM(KM_RIGHT, SDLK_d);
|
||||
KM(KM_JUMP, SDLK_SPACE);
|
||||
KM(KM_DESTROY, SDLK_x);
|
||||
KM(KM_PLACE, SDLK_c);
|
||||
KM(KM_MENU_NEXT, SDLK_DPAD_DOWN);
|
||||
KM(KM_MENU_PREVIOUS, SDLK_DPAD_UP);
|
||||
KM(KM_MENU_OK, SDLK_ENTER);
|
||||
KM(KM_MENU_CANCEL, SDLK_ESCAPE);
|
||||
KM(KM_DROP, SDLK_q);
|
||||
KM(KM_CHAT, SDLK_t);
|
||||
KM(KM_FOG, SDLK_f);
|
||||
KM(KM_SNEAK, SDLK_SHIFT_LEFT);
|
||||
KM(KM_SLOT_1, SDLK_1);
|
||||
KM(KM_SLOT_2, SDLK_2);
|
||||
KM(KM_SLOT_3, SDLK_3);
|
||||
KM(KM_SLOT_4, SDLK_4);
|
||||
KM(KM_SLOT_5, SDLK_5);
|
||||
KM(KM_SLOT_6, SDLK_6);
|
||||
KM(KM_SLOT_7, SDLK_7);
|
||||
KM(KM_SLOT_8, SDLK_8);
|
||||
KM(KM_SLOT_9, SDLK_9);
|
||||
KM(KM_TOGGLEGUI, SDLK_F1);
|
||||
KM(KM_SCREENSHOT, SDLK_F2);
|
||||
KM(KM_TOGGLEDEBUG, SDLK_F3);
|
||||
KM(KM_TOGGLEAO, SDLK_F4);
|
||||
KM(KM_TOGGLE3RD, SDLK_F5);
|
||||
KM(KM_SLOT_L, SDLK_y);
|
||||
KM(KM_SLOT_R, SDLK_u);
|
||||
KM(KM_FLY_UP, SDLK_c);
|
||||
KM(KM_FLY_DOWN, SDLK_x);
|
||||
KM(KM_FORWARD, SDLVK_w);
|
||||
KM(KM_LEFT, SDLVK_a);
|
||||
KM(KM_BACKWARD, SDLVK_s);
|
||||
KM(KM_RIGHT, SDLVK_d);
|
||||
KM(KM_JUMP, SDLVK_SPACE);
|
||||
KM(KM_DESTROY, SDLVK_x);
|
||||
KM(KM_PLACE, SDLVK_c);
|
||||
KM(KM_MENU_NEXT, SDLVK_DOWN);
|
||||
KM(KM_MENU_PREVIOUS, SDLVK_UP);
|
||||
KM(KM_MENU_OK, SDLVK_RETURN);
|
||||
KM(KM_MENU_CANCEL, SDLVK_ESCAPE);
|
||||
KM(KM_DROP, SDLVK_q);
|
||||
KM(KM_CHAT, SDLVK_t);
|
||||
KM(KM_FOG, SDLVK_f);
|
||||
KM(KM_INVENTORY, SDLVK_e);
|
||||
KM(KM_SNEAK, SDLVK_LSHIFT);
|
||||
KM(KM_SLOT_1, SDLVK_1);
|
||||
KM(KM_SLOT_2, SDLVK_2);
|
||||
KM(KM_SLOT_3, SDLVK_3);
|
||||
KM(KM_SLOT_4, SDLVK_4);
|
||||
KM(KM_SLOT_5, SDLVK_5);
|
||||
KM(KM_SLOT_6, SDLVK_6);
|
||||
KM(KM_SLOT_7, SDLVK_7);
|
||||
KM(KM_SLOT_8, SDLVK_8);
|
||||
KM(KM_SLOT_9, SDLVK_9);
|
||||
KM(KM_TOGGLEGUI, SDLVK_F1);
|
||||
KM(KM_SCREENSHOT, SDLVK_F2);
|
||||
KM(KM_TOGGLEDEBUG, SDLVK_F3);
|
||||
KM(KM_TOGGLEAO, SDLVK_F4);
|
||||
KM(KM_TOGGLE3RD, SDLVK_F5);
|
||||
KM(KM_SLOT_L, SDLVK_y);
|
||||
KM(KM_SLOT_R, SDLVK_u);
|
||||
KM(KM_FLY_UP, SDLVK_c);
|
||||
KM(KM_FLY_DOWN, SDLVK_x);
|
||||
#endif
|
||||
#ifdef PLATFORM_ANDROID
|
||||
// -- Original xperia play controls
|
||||
|
||||
@@ -80,7 +80,7 @@ void closedir(DIR* dir);
|
||||
|
||||
#endif
|
||||
|
||||
#include "compat/AKeyCodes.hpp"
|
||||
#include "compat/KeyCodes.hpp"
|
||||
|
||||
// options:
|
||||
#include "GameMods.hpp"
|
||||
|
||||
Reference in New Issue
Block a user