mirror of
https://github.com/kichikuou/xsystem35-sdl2.git
synced 2026-09-27 01:00:24 +03:00
Refactor keycode definitions
This commit is contained in:
@@ -7,7 +7,6 @@
|
||||
#include "menu.h"
|
||||
#include "input.h"
|
||||
#include "nact.h"
|
||||
#include "key.h"
|
||||
#include "night.h"
|
||||
#include "sprite.h"
|
||||
|
||||
|
||||
@@ -33,7 +33,6 @@
|
||||
#include "menu.h"
|
||||
#include "input.h"
|
||||
#include "nact.h"
|
||||
#include "key.h"
|
||||
#include "sact.h"
|
||||
#include "sprite.h"
|
||||
#include "ngraph.h"
|
||||
|
||||
@@ -34,7 +34,6 @@
|
||||
#include "menu.h"
|
||||
#include "input.h"
|
||||
#include "nact.h"
|
||||
#include "key.h"
|
||||
#include "sact.h"
|
||||
#include "sprite.h"
|
||||
#include "sactsound.h"
|
||||
@@ -389,7 +388,7 @@ static void cb_waitkey_backlog(agsevent_t *e) {
|
||||
switch (e->type) {
|
||||
case AGSEVENT_KEY_RELEASE:
|
||||
switch (e->code) {
|
||||
case KEY_ESC:
|
||||
case KEY_ESCAPE:
|
||||
sblog_end();
|
||||
sact.waittype = KEYWAIT_MESSAGE;
|
||||
break;
|
||||
|
||||
@@ -31,7 +31,6 @@
|
||||
#include "nact.h"
|
||||
#include "ags.h"
|
||||
#include "input.h"
|
||||
#include "key.h"
|
||||
#include "sact.h"
|
||||
#include "sprite.h"
|
||||
#include "ngraph.h"
|
||||
|
||||
@@ -37,6 +37,7 @@
|
||||
#include "modules.h"
|
||||
#include "sdl_core.h"
|
||||
#include "sdl_private.h"
|
||||
#include "input.h"
|
||||
#include "menu.h"
|
||||
|
||||
// キー変換テーブル
|
||||
@@ -162,7 +163,7 @@ static void GetKeyStatus(void) {
|
||||
}
|
||||
|
||||
*var = 0;
|
||||
for (i = 0; i < 256; i++) {
|
||||
for (i = 0; i < NUM_KEYCODES; i++) {
|
||||
*var |= (keymap[no -1][i] * RawKeyInfo[i]);
|
||||
}
|
||||
|
||||
|
||||
@@ -142,10 +142,3 @@ else() # non-emscripten, non-android
|
||||
add_test(NAME src_tests COMMAND src_tests)
|
||||
configure_file(testdata/test.gr ${CMAKE_CURRENT_BINARY_DIR}/testdata/test.gr COPYONLY)
|
||||
endif()
|
||||
|
||||
# FIXME: set up dependency for xsystem35 on this
|
||||
if (NOT EMSCRIPTEN AND NOT ANDROID)
|
||||
add_custom_target(sdl_keytable.h
|
||||
COMMAND perl ../tools/xsyskey.pl ${SDL2_INCLUDE_DIRS} > sdl_keytable.h
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
|
||||
endif()
|
||||
|
||||
+117
@@ -41,6 +41,123 @@
|
||||
#define KEYWAIT_CANCELABLE 1
|
||||
#define KEYWAIT_SKIPPABLE 2
|
||||
|
||||
// System3.x key codes (IG command, etc.)
|
||||
// These are originated from Windows virtual key codes (VK_*).
|
||||
#define NUM_KEYCODES 256
|
||||
enum keycode {
|
||||
KEY_MOUSE_LEFT = 0x01, // マウスの左ボタン
|
||||
KEY_MOUSE_RIGHT = 0x02, // マウスの右ボタン
|
||||
KEY_CONTROL = 0x03, // コントロール ブレーク処理に使用
|
||||
KEY_MOUSE_MIDDLE = 0x04, // マウスの中央ボタン (3つボタンのマウス)
|
||||
KEY_BACKSPACE = 0x08, // BackSpaceキー
|
||||
KEY_TAB = 0x09, // Tabキー
|
||||
KEY_CLEAR = 0x0c, // Clearキー
|
||||
KEY_RETURN = 0x0d, // Enterキー
|
||||
KEY_SHIFT = 0x10, // Shiftキー
|
||||
KEY_CTRL = 0x11, // Ctrlキー
|
||||
KEY_ALT = 0x12, // Altキー
|
||||
KEY_PAUSE = 0x13, // Pauseキー
|
||||
KEY_CAPSLOCK = 0x14, // Caps Lockキー
|
||||
KEY_KANAKAN = 0x15, // 英数カナキー
|
||||
KEY_ESCAPE = 0x1b, // Escキー
|
||||
KEY_SPACE = 0x20, // Spaceキー
|
||||
KEY_PAGEUP = 0x21, // Page Upキー
|
||||
KEY_PAGEDOWN = 0x22, // Page Downキー
|
||||
KEY_END = 0x23, // Endキー
|
||||
KEY_HOME = 0x24, // Homeキー
|
||||
KEY_LEFT = 0x25, // ←キー
|
||||
KEY_UP = 0x26, // ↑キー
|
||||
KEY_RIGHT = 0x27, // →キー
|
||||
KEY_DOWN = 0x28, // ↓キー
|
||||
KEY_SELECT = 0x29, // Selectキー
|
||||
KEY_EXECUTE = 0x2b, // Executeキー
|
||||
KEY_PRINTSCREEN = 0x2c, // Print Screenキー (Windows 3.0以降用)
|
||||
KEY_INSERT = 0x2d, // Insキー
|
||||
KEY_DELETE = 0x2e, // Delキー
|
||||
KEY_HELP = 0x2f, // Helpキー
|
||||
KEY_0 = 0x30, // 0キー
|
||||
KEY_1 = 0x31, // 1キー
|
||||
KEY_2 = 0x32, // 2キー
|
||||
KEY_3 = 0x33, // 3キー
|
||||
KEY_4 = 0x34, // 4キー
|
||||
KEY_5 = 0x35, // 5キー
|
||||
KEY_6 = 0x36, // 6キー
|
||||
KEY_7 = 0x37, // 7キー
|
||||
KEY_8 = 0x38, // 8キー
|
||||
KEY_9 = 0x39, // 9キー
|
||||
KEY_PAD_EQUALS = 0x3d,
|
||||
KEY_A = 0x41, // Aキー
|
||||
KEY_B = 0x42, // Bキー
|
||||
KEY_C = 0x43, // Cキー
|
||||
KEY_D = 0x44, // Dキー
|
||||
KEY_E = 0x45, // Eキー
|
||||
KEY_F = 0x46, // Fキー
|
||||
KEY_G = 0x47, // Gキー
|
||||
KEY_H = 0x48, // Hキー
|
||||
KEY_I = 0x49, // Iキー
|
||||
KEY_J = 0x4a, // Jキー
|
||||
KEY_K = 0x4b, // Kキー
|
||||
KEY_L = 0x4c, // Lキー
|
||||
KEY_M = 0x4d, // Mキー
|
||||
KEY_N = 0x4e, // Nキー
|
||||
KEY_O = 0x4f, // Oキー
|
||||
KEY_P = 0x50, // Pキー
|
||||
KEY_Q = 0x51, // Qキー
|
||||
KEY_R = 0x52, // Rキー
|
||||
KEY_S = 0x53, // Sキー
|
||||
KEY_T = 0x54, // Tキー
|
||||
KEY_U = 0x55, // Uキー
|
||||
KEY_V = 0x56, // Vキー
|
||||
KEY_W = 0x57, // Wキー
|
||||
KEY_X = 0x58, // Xキー
|
||||
KEY_Y = 0x59, // Yキー
|
||||
KEY_Z = 0x5a, // Zキー
|
||||
KEY_PAD_0 = 0x60, // テンキーの0キー
|
||||
KEY_PAD_1 = 0x61, // テンキーの1キー
|
||||
KEY_PAD_2 = 0x62, // テンキーの2キー
|
||||
KEY_PAD_3 = 0x63, // テンキーの3キー
|
||||
KEY_PAD_4 = 0x64, // テンキーの4キー
|
||||
KEY_PAD_5 = 0x65, // テンキーの5キー
|
||||
KEY_PAD_6 = 0x66, // テンキーの6キー
|
||||
KEY_PAD_7 = 0x67, // テンキーの7キー
|
||||
KEY_PAD_8 = 0x68, // テンキーの8キー
|
||||
KEY_PAD_9 = 0x69, // テンキーの9キー
|
||||
KEY_PAD_MULTIPLY = 0x6a, // テンキーの*キー
|
||||
KEY_PAD_PLUS = 0x6b, // テンキーの+キー
|
||||
KEY_SEPARATOR = 0x6c, // Separatorキー
|
||||
KEY_PAD_MINUS = 0x6d, // テンキーの-キー
|
||||
KEY_PAD_PERIOD = 0x6e, // テンキーの.キー
|
||||
KEY_PAD_DIVIDE = 0x6f, // テンキーの/キー
|
||||
KEY_F1 = 0x70, // F1キー
|
||||
KEY_F2 = 0x71, // F2キー
|
||||
KEY_F3 = 0x72, // F3キー
|
||||
KEY_F4 = 0x73, // F4キー
|
||||
KEY_F5 = 0x74, // F5キー
|
||||
KEY_F6 = 0x75, // F6キー
|
||||
KEY_F7 = 0x76, // F7キー
|
||||
KEY_F8 = 0x77, // F8キー
|
||||
KEY_F9 = 0x78, // F9キー
|
||||
KEY_F10 = 0x79, // F10キー
|
||||
KEY_F11 = 0x7a, // F11キー
|
||||
KEY_F12 = 0x7b, // F12キー
|
||||
KEY_F13 = 0x7c, // F13キー
|
||||
KEY_F14 = 0x7d, // F14キー
|
||||
KEY_F15 = 0x7e, // F15キー
|
||||
KEY_F16 = 0x7f, // F16キー
|
||||
KEY_F17 = 0x80, // F17キー
|
||||
KEY_F18 = 0x81, // F18キー
|
||||
KEY_F19 = 0x82, // F19キー
|
||||
KEY_F20 = 0x83, // F20キー
|
||||
KEY_F21 = 0x84, // F21キー
|
||||
KEY_F22 = 0x85, // F22キー
|
||||
KEY_F23 = 0x86, // F23キー
|
||||
KEY_F24 = 0x87, // F24キー
|
||||
KEY_NUMLOCK = 0x90, // Num Lockキー
|
||||
KEY_SCROLLLOCK = 0x91, // Scroll Lockキー
|
||||
};
|
||||
|
||||
extern boolean RawKeyInfo[NUM_KEYCODES];
|
||||
|
||||
extern int sys_keywait(int msec, unsigned flags);
|
||||
extern int sys_getMouseInfo(MyPoint *p, boolean is_dibgeo);
|
||||
extern int sys_getInputInfo(void);
|
||||
|
||||
@@ -1,153 +0,0 @@
|
||||
/*
|
||||
* key.h keycode definition
|
||||
*
|
||||
* Copyright (C) 2000- Masaki Chikama (Wren) <masaki-c@is.aist-nara.ac.jp>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*
|
||||
*/
|
||||
/* $Id: key.h,v 1.2 2000/08/11 18:55:51 chikama Exp $ */
|
||||
|
||||
#ifndef __KEYCODE__
|
||||
#define __KEYCODE__
|
||||
|
||||
#define KEY_UNDEFINED (0x00)
|
||||
#define KEY_MOUSE_LEFT (0x01)
|
||||
#define KEY_MOUSE_RIGHT (0x02)
|
||||
#define KEY_CONTROL (0x03)
|
||||
#define KEY_MOUSE_MIDDLE (0x04)
|
||||
#define KEY_BS (0x08)
|
||||
#define KEY_BACKSPACE (0x08)
|
||||
#define KEY_TAB (0x09)
|
||||
#define KEY_CLEAR (0x0c)
|
||||
#define KEY_ENTER (0x0d)
|
||||
#define KEY_PAD_ENTER (0x0d)
|
||||
#define KEY_RETURN (0x0d)
|
||||
#define KEY_SHIFT (0x10)
|
||||
#define KEY_LSHIFT (0x10)
|
||||
#define KEY_RSHIFT (0x10)
|
||||
#define KEY_CTRL (0x11)
|
||||
#define KEY_LCTRL (0x11)
|
||||
#define KEY_RCTRL (0x11)
|
||||
#define KEY_ALT (0x12)
|
||||
#define KEY_LALT (0x12)
|
||||
#define KEY_RALT (0x12)
|
||||
#define KEY_PAUSE (0x13)
|
||||
#define KEY_CAPSLOCK (0x14)
|
||||
#define KEY_KANAKAN (0x15)
|
||||
#define KEY_ESC (0x1b)
|
||||
#define KEY_ESCAPE (0x1b)
|
||||
#define KEY_SPACE (0x20)
|
||||
#define KEY_PAGEUP (0x21)
|
||||
#define KEY_PAGEDOWN (0x22)
|
||||
#define KEY_END (0x23)
|
||||
#define KEY_HOME (0x24)
|
||||
#define KEY_LEFT (0x25)
|
||||
#define KEY_UP (0x26)
|
||||
#define KEY_RIGHT (0x27)
|
||||
#define KEY_DOWN (0x28)
|
||||
#define KEY_SELECT (0x29)
|
||||
#define KEY_EXECUTE (0x2b)
|
||||
#define KEY_PRINTSCREEN (0x2c)
|
||||
#define KEY_INS (0x2d)
|
||||
#define KEY_INSERT (0x2d)
|
||||
#define KEY_DEL (0x2e)
|
||||
#define KEY_DELETE (0x2e)
|
||||
#define KEY_HELP (0x2f)
|
||||
#define KEY_0 (0x30)
|
||||
#define KEY_1 (0x31)
|
||||
#define KEY_2 (0x32)
|
||||
#define KEY_3 (0x33)
|
||||
#define KEY_4 (0x34)
|
||||
#define KEY_5 (0x35)
|
||||
#define KEY_6 (0x36)
|
||||
#define KEY_7 (0x37)
|
||||
#define KEY_8 (0x38)
|
||||
#define KEY_9 (0x39)
|
||||
#define KEY_PAD_EQUALS (0x3d)
|
||||
#define KEY_A (0x41)
|
||||
#define KEY_B (0x42)
|
||||
#define KEY_C (0x43)
|
||||
#define KEY_D (0x44)
|
||||
#define KEY_E (0x45)
|
||||
#define KEY_F (0x46)
|
||||
#define KEY_G (0x47)
|
||||
#define KEY_H (0x48)
|
||||
#define KEY_I (0x49)
|
||||
#define KEY_J (0x4a)
|
||||
#define KEY_K (0x4b)
|
||||
#define KEY_L (0x4c)
|
||||
#define KEY_M (0x4d)
|
||||
#define KEY_N (0x4e)
|
||||
#define KEY_O (0x4f)
|
||||
#define KEY_P (0x50)
|
||||
#define KEY_Q (0x51)
|
||||
#define KEY_R (0x52)
|
||||
#define KEY_S (0x53)
|
||||
#define KEY_T (0x54)
|
||||
#define KEY_U (0x55)
|
||||
#define KEY_V (0x56)
|
||||
#define KEY_W (0x57)
|
||||
#define KEY_X (0x58)
|
||||
#define KEY_Y (0x59)
|
||||
#define KEY_Z (0x5a)
|
||||
#define KEY_PAD_0 (0x60)
|
||||
#define KEY_PAD_1 (0x61)
|
||||
#define KEY_PAD_2 (0x62)
|
||||
#define KEY_PAD_3 (0x63)
|
||||
#define KEY_PAD_4 (0x64)
|
||||
#define KEY_PAD_5 (0x65)
|
||||
#define KEY_PAD_6 (0x66)
|
||||
#define KEY_PAD_7 (0x67)
|
||||
#define KEY_PAD_8 (0x68)
|
||||
#define KEY_PAD_9 (0x69)
|
||||
#define KEY_PAD_STAR (0x6a)
|
||||
#define KEY_PAD_MULTIPLY (0x6a)
|
||||
#define KEY_PAD_PLUS (0x6b)
|
||||
#define KEY_PAD_SEP (0x6c)
|
||||
#define KEY_PAD_MINUS (0x6d)
|
||||
#define KEY_PAD_DOT (0x6e)
|
||||
#define KEY_PAD_PERIOD (0x6e)
|
||||
#define KEY_PAD_SLASH (0x6f)
|
||||
#define KEY_PAD_DIVIDE (0x6f)
|
||||
#define KEY_F1 (0x70)
|
||||
#define KEY_F2 (0x71)
|
||||
#define KEY_F3 (0x72)
|
||||
#define KEY_F4 (0x73)
|
||||
#define KEY_F5 (0x74)
|
||||
#define KEY_F6 (0x75)
|
||||
#define KEY_F7 (0x76)
|
||||
#define KEY_F8 (0x77)
|
||||
#define KEY_F9 (0x78)
|
||||
#define KEY_F10 (0x79)
|
||||
#define KEY_F11 (0x7a)
|
||||
#define KEY_F12 (0x7b)
|
||||
#define KEY_F13 (0x7c)
|
||||
#define KEY_F14 (0x7d)
|
||||
#define KEY_F15 (0x7e)
|
||||
#define KEY_F16 (0x7f)
|
||||
#define KEY_F17 (0x80)
|
||||
#define KEY_F18 (0x81)
|
||||
#define KEY_F19 (0x82)
|
||||
#define KEY_F20 (0x83)
|
||||
#define KEY_F21 (0x84)
|
||||
#define KEY_F22 (0x85)
|
||||
#define KEY_F23 (0x86)
|
||||
#define KEY_F24 (0x87)
|
||||
#define KEY_NUMLOCK (0x90)
|
||||
#define KEY_SCROLL_LOCK (0x91)
|
||||
#define KEY_SCROLLOCK (0x91)
|
||||
|
||||
#endif /* __KEYCODE__ */
|
||||
@@ -106,7 +106,6 @@ extern MyPoint sdl_translateMouseCoords(int x, int y);
|
||||
|
||||
/* misc */
|
||||
extern void sdl_mainIteration();
|
||||
extern boolean RawKeyInfo[];
|
||||
extern uint32_t sdl_getTicks(void);
|
||||
extern void sdl_sleep(int msec);
|
||||
extern void sdl_wait_vsync();
|
||||
|
||||
+123
-3
@@ -36,11 +36,9 @@
|
||||
#include "nact.h"
|
||||
#include "sdl_core.h"
|
||||
#include "sdl_private.h"
|
||||
#include "key.h"
|
||||
#include "menu.h"
|
||||
#include "input.h"
|
||||
#include "msgskip.h"
|
||||
#include "sdl_keytable.h"
|
||||
|
||||
static void sdl_getEvent(void);
|
||||
static void keyEventProsess(SDL_KeyboardEvent *e, boolean pressed);
|
||||
@@ -59,6 +57,128 @@ boolean RawKeyInfo[256];
|
||||
/* SDL Joystick */
|
||||
static int joyinfo=0;
|
||||
|
||||
static int sdl_keytable[SDL_NUM_SCANCODES] = {
|
||||
[SDL_SCANCODE_A] = KEY_A,
|
||||
[SDL_SCANCODE_B] = KEY_B,
|
||||
[SDL_SCANCODE_C] = KEY_C,
|
||||
[SDL_SCANCODE_D] = KEY_D,
|
||||
[SDL_SCANCODE_E] = KEY_E,
|
||||
[SDL_SCANCODE_F] = KEY_F,
|
||||
[SDL_SCANCODE_G] = KEY_G,
|
||||
[SDL_SCANCODE_H] = KEY_H,
|
||||
[SDL_SCANCODE_I] = KEY_I,
|
||||
[SDL_SCANCODE_J] = KEY_J,
|
||||
[SDL_SCANCODE_K] = KEY_K,
|
||||
[SDL_SCANCODE_L] = KEY_L,
|
||||
[SDL_SCANCODE_M] = KEY_M,
|
||||
[SDL_SCANCODE_N] = KEY_N,
|
||||
[SDL_SCANCODE_O] = KEY_O,
|
||||
[SDL_SCANCODE_P] = KEY_P,
|
||||
[SDL_SCANCODE_Q] = KEY_Q,
|
||||
[SDL_SCANCODE_R] = KEY_R,
|
||||
[SDL_SCANCODE_S] = KEY_S,
|
||||
[SDL_SCANCODE_T] = KEY_T,
|
||||
[SDL_SCANCODE_U] = KEY_U,
|
||||
[SDL_SCANCODE_V] = KEY_V,
|
||||
[SDL_SCANCODE_W] = KEY_W,
|
||||
[SDL_SCANCODE_X] = KEY_X,
|
||||
[SDL_SCANCODE_Y] = KEY_Y,
|
||||
[SDL_SCANCODE_Z] = KEY_Z,
|
||||
[SDL_SCANCODE_1] = KEY_1,
|
||||
[SDL_SCANCODE_2] = KEY_2,
|
||||
[SDL_SCANCODE_3] = KEY_3,
|
||||
[SDL_SCANCODE_4] = KEY_4,
|
||||
[SDL_SCANCODE_5] = KEY_5,
|
||||
[SDL_SCANCODE_6] = KEY_6,
|
||||
[SDL_SCANCODE_7] = KEY_7,
|
||||
[SDL_SCANCODE_8] = KEY_8,
|
||||
[SDL_SCANCODE_9] = KEY_9,
|
||||
[SDL_SCANCODE_0] = KEY_0,
|
||||
[SDL_SCANCODE_RETURN] = KEY_RETURN,
|
||||
[SDL_SCANCODE_ESCAPE] = KEY_ESCAPE,
|
||||
[SDL_SCANCODE_BACKSPACE] = KEY_BACKSPACE,
|
||||
[SDL_SCANCODE_TAB] = KEY_TAB,
|
||||
[SDL_SCANCODE_SPACE] = KEY_SPACE,
|
||||
// SDL_SCANCODE_MINUS
|
||||
// SDL_SCANCODE_EQUALS
|
||||
// SDL_SCANCODE_LEFTBRACKET
|
||||
// SDL_SCANCODE_RIGHTBRACKET
|
||||
// SDL_SCANCODE_BACKSLASH
|
||||
// SDL_SCANCODE_NONUSHASH
|
||||
// SDL_SCANCODE_SEMICOLON
|
||||
// SDL_SCANCODE_APOSTROPHE
|
||||
// SDL_SCANCODE_GRAVE
|
||||
// SDL_SCANCODE_COMMA
|
||||
// SDL_SCANCODE_PERIOD
|
||||
// SDL_SCANCODE_SLASH
|
||||
[SDL_SCANCODE_CAPSLOCK] = KEY_CAPSLOCK,
|
||||
[SDL_SCANCODE_F1] = KEY_F1,
|
||||
[SDL_SCANCODE_F2] = KEY_F2,
|
||||
[SDL_SCANCODE_F3] = KEY_F3,
|
||||
[SDL_SCANCODE_F4] = KEY_F4,
|
||||
[SDL_SCANCODE_F5] = KEY_F5,
|
||||
[SDL_SCANCODE_F6] = KEY_F6,
|
||||
[SDL_SCANCODE_F7] = KEY_F7,
|
||||
[SDL_SCANCODE_F8] = KEY_F8,
|
||||
[SDL_SCANCODE_F9] = KEY_F9,
|
||||
[SDL_SCANCODE_F10] = KEY_F10,
|
||||
[SDL_SCANCODE_F11] = KEY_F11,
|
||||
[SDL_SCANCODE_F12] = KEY_F12,
|
||||
[SDL_SCANCODE_PRINTSCREEN] = KEY_PRINTSCREEN,
|
||||
[SDL_SCANCODE_SCROLLLOCK] = KEY_SCROLLLOCK,
|
||||
[SDL_SCANCODE_PAUSE] = KEY_PAUSE,
|
||||
[SDL_SCANCODE_INSERT] = KEY_INSERT,
|
||||
[SDL_SCANCODE_HOME] = KEY_HOME,
|
||||
[SDL_SCANCODE_PAGEUP] = KEY_PAGEUP,
|
||||
[SDL_SCANCODE_DELETE] = KEY_DELETE,
|
||||
[SDL_SCANCODE_END] = KEY_END,
|
||||
[SDL_SCANCODE_PAGEDOWN] = KEY_PAGEDOWN,
|
||||
[SDL_SCANCODE_RIGHT] = KEY_RIGHT,
|
||||
[SDL_SCANCODE_LEFT] = KEY_LEFT,
|
||||
[SDL_SCANCODE_DOWN] = KEY_DOWN,
|
||||
[SDL_SCANCODE_UP] = KEY_UP,
|
||||
[SDL_SCANCODE_KP_DIVIDE] = KEY_PAD_DIVIDE,
|
||||
[SDL_SCANCODE_KP_MULTIPLY] = KEY_PAD_MULTIPLY,
|
||||
[SDL_SCANCODE_KP_MINUS] = KEY_PAD_MINUS,
|
||||
[SDL_SCANCODE_KP_PLUS] = KEY_PAD_PLUS,
|
||||
[SDL_SCANCODE_KP_ENTER] = KEY_RETURN,
|
||||
[SDL_SCANCODE_KP_1] = KEY_PAD_1,
|
||||
[SDL_SCANCODE_KP_2] = KEY_PAD_2,
|
||||
[SDL_SCANCODE_KP_3] = KEY_PAD_3,
|
||||
[SDL_SCANCODE_KP_4] = KEY_PAD_4,
|
||||
[SDL_SCANCODE_KP_5] = KEY_PAD_5,
|
||||
[SDL_SCANCODE_KP_6] = KEY_PAD_6,
|
||||
[SDL_SCANCODE_KP_7] = KEY_PAD_7,
|
||||
[SDL_SCANCODE_KP_8] = KEY_PAD_8,
|
||||
[SDL_SCANCODE_KP_9] = KEY_PAD_9,
|
||||
[SDL_SCANCODE_KP_0] = KEY_PAD_0,
|
||||
[SDL_SCANCODE_KP_PERIOD] = KEY_PAD_PERIOD,
|
||||
[SDL_SCANCODE_KP_EQUALS] = KEY_PAD_EQUALS,
|
||||
[SDL_SCANCODE_F13] = KEY_F13,
|
||||
[SDL_SCANCODE_F14] = KEY_F14,
|
||||
[SDL_SCANCODE_F15] = KEY_F15,
|
||||
[SDL_SCANCODE_F16] = KEY_F16,
|
||||
[SDL_SCANCODE_F17] = KEY_F17,
|
||||
[SDL_SCANCODE_F18] = KEY_F18,
|
||||
[SDL_SCANCODE_F19] = KEY_F19,
|
||||
[SDL_SCANCODE_F20] = KEY_F20,
|
||||
[SDL_SCANCODE_F21] = KEY_F21,
|
||||
[SDL_SCANCODE_F22] = KEY_F22,
|
||||
[SDL_SCANCODE_F23] = KEY_F23,
|
||||
[SDL_SCANCODE_F24] = KEY_F24,
|
||||
[SDL_SCANCODE_EXECUTE] = KEY_EXECUTE,
|
||||
[SDL_SCANCODE_HELP] = KEY_HELP,
|
||||
[SDL_SCANCODE_SELECT] = KEY_SELECT,
|
||||
[SDL_SCANCODE_CLEAR] = KEY_CLEAR,
|
||||
[SDL_SCANCODE_SEPARATOR] = KEY_SEPARATOR,
|
||||
[SDL_SCANCODE_LCTRL] = KEY_CTRL,
|
||||
[SDL_SCANCODE_LSHIFT] = KEY_SHIFT,
|
||||
[SDL_SCANCODE_LALT] = KEY_ALT,
|
||||
[SDL_SCANCODE_RCTRL] = KEY_CTRL,
|
||||
[SDL_SCANCODE_RSHIFT] = KEY_SHIFT,
|
||||
[SDL_SCANCODE_RALT] = KEY_ALT,
|
||||
};
|
||||
|
||||
void sdl_event_init(void) {
|
||||
if (custom_event_type == (uint32_t)-1)
|
||||
custom_event_type = SDL_RegisterEvents(1);
|
||||
@@ -331,7 +451,7 @@ int sdl_getKeyInfo() {
|
||||
((RawKeyInfo[KEY_RIGHT] || RawKeyInfo[KEY_PAD_6]) << 3) |
|
||||
(RawKeyInfo[KEY_RETURN] << 4) |
|
||||
(RawKeyInfo[KEY_SPACE ] << 5) |
|
||||
(RawKeyInfo[KEY_ESC] << 6) |
|
||||
(RawKeyInfo[KEY_ESCAPE] << 6) |
|
||||
(RawKeyInfo[KEY_TAB] << 7));
|
||||
|
||||
return rt;
|
||||
|
||||
@@ -1,73 +0,0 @@
|
||||
static int sdl_keytable[SDL_NUM_SCANCODES] = {
|
||||
0, KEY_UNDEFINED, KEY_UNDEFINED, KEY_UNDEFINED,
|
||||
KEY_A, KEY_B, KEY_C, KEY_D,
|
||||
KEY_E, KEY_F, KEY_G, KEY_H,
|
||||
KEY_I, KEY_J, KEY_K, KEY_L,
|
||||
KEY_M, KEY_N, KEY_O, KEY_P,
|
||||
KEY_Q, KEY_R, KEY_S, KEY_T,
|
||||
KEY_U, KEY_V, KEY_W, KEY_X,
|
||||
KEY_Y, KEY_Z, KEY_1, KEY_2,
|
||||
KEY_3, KEY_4, KEY_5, KEY_6,
|
||||
KEY_7, KEY_8, KEY_9, KEY_0,
|
||||
KEY_RETURN, KEY_ESCAPE, KEY_BACKSPACE, KEY_TAB,
|
||||
KEY_SPACE, 45, 46, 47,
|
||||
48, 49, 50, 51,
|
||||
52, 53, 54, 55,
|
||||
56, KEY_CAPSLOCK, KEY_F1, KEY_F2,
|
||||
KEY_F3, KEY_F4, KEY_F5, KEY_F6,
|
||||
KEY_F7, KEY_F8, KEY_F9, KEY_F10,
|
||||
KEY_F11, KEY_F12, KEY_PRINTSCREEN, 71,
|
||||
KEY_PAUSE, KEY_INSERT, KEY_HOME, KEY_PAGEUP,
|
||||
KEY_DELETE, KEY_END, KEY_PAGEDOWN, KEY_RIGHT,
|
||||
KEY_LEFT, KEY_DOWN, KEY_UP, 83,
|
||||
KEY_PAD_DIVIDE, KEY_PAD_MULTIPLY, KEY_PAD_MINUS, KEY_PAD_PLUS,
|
||||
KEY_PAD_ENTER, KEY_PAD_1, KEY_PAD_2, KEY_PAD_3,
|
||||
KEY_PAD_4, KEY_PAD_5, KEY_PAD_6, KEY_PAD_7,
|
||||
KEY_PAD_8, KEY_PAD_9, KEY_PAD_0, KEY_PAD_PERIOD,
|
||||
0 /* SDL_NONUSBACKSLASH */, 0 /* SDL_APPLICATION */, 0 /* SDL_POWER */, KEY_PAD_EQUALS,
|
||||
KEY_F13, KEY_F14, KEY_F15, KEY_F16,
|
||||
KEY_F17, KEY_F18, KEY_F19, KEY_F20,
|
||||
KEY_F21, KEY_F22, KEY_F23, KEY_F24,
|
||||
KEY_EXECUTE, KEY_HELP, 0 /* SDL_MENU */, KEY_SELECT,
|
||||
0 /* SDL_STOP */, 0 /* SDL_AGAIN */, 0 /* SDL_UNDO */, 0 /* SDL_CUT */,
|
||||
0 /* SDL_COPY */, 0 /* SDL_PASTE */, 0 /* SDL_FIND */, 0 /* SDL_MUTE */,
|
||||
0 /* SDL_VOLUMEUP */, 0 /* SDL_VOLUMEDOWN */, 0 /* SDL_LOCKINGCAPSLOCK */, 0 /* SDL_LOCKINGNUMLOCK */,
|
||||
0 /* SDL_LOCKINGSCROLLLOCK */, 0 /* SDL_PAD_COMMA */, 0 /* SDL_PAD_EQUALSAS400 */, 0 /* SDL_INTERNATIONAL1 */,
|
||||
0 /* SDL_INTERNATIONAL2 */, 0 /* SDL_INTERNATIONAL3 */, 0 /* SDL_INTERNATIONAL4 */, 0 /* SDL_INTERNATIONAL5 */,
|
||||
0 /* SDL_INTERNATIONAL6 */, 0 /* SDL_INTERNATIONAL7 */, 0 /* SDL_INTERNATIONAL8 */, 0 /* SDL_INTERNATIONAL9 */,
|
||||
0 /* SDL_LANG1 */, 0 /* SDL_LANG2 */, 0 /* SDL_LANG3 */, 0 /* SDL_LANG4 */,
|
||||
0 /* SDL_LANG5 */, 0 /* SDL_LANG6 */, 0 /* SDL_LANG7 */, 0 /* SDL_LANG8 */,
|
||||
0 /* SDL_LANG9 */, 0 /* SDL_ALTERASE */, 0 /* SDL_SYSREQ */, 0 /* SDL_CANCEL */,
|
||||
KEY_CLEAR, 0 /* SDL_PRIOR */, 0 /* SDL_RETURN2 */, 0 /* SDL_SEPARATOR */,
|
||||
0 /* SDL_OUT */, 0 /* SDL_OPER */, 0 /* SDL_CLEARAGAIN */, 0 /* SDL_CRSEL */,
|
||||
0 /* SDL_EXSEL */, KEY_UNDEFINED, KEY_UNDEFINED, KEY_UNDEFINED,
|
||||
KEY_UNDEFINED, KEY_UNDEFINED, KEY_UNDEFINED, KEY_UNDEFINED,
|
||||
KEY_UNDEFINED, KEY_UNDEFINED, KEY_UNDEFINED, KEY_UNDEFINED,
|
||||
0 /* SDL_PAD_00 */, 0 /* SDL_PAD_000 */, 0 /* SDL_THOUSANDSSEPARATOR */, 0 /* SDL_DECIMALSEPARATOR */,
|
||||
0 /* SDL_CURRENCYUNIT */, 0 /* SDL_CURRENCYSUBUNIT */, 0 /* SDL_PAD_LEFTPAREN */, 0 /* SDL_PAD_RIGHTPAREN */,
|
||||
0 /* SDL_PAD_LEFTBRACE */, 0 /* SDL_PAD_RIGHTBRACE */, 0 /* SDL_PAD_TAB */, 0 /* SDL_PAD_BACKSPACE */,
|
||||
0 /* SDL_PAD_A */, 0 /* SDL_PAD_B */, 0 /* SDL_PAD_C */, 0 /* SDL_PAD_D */,
|
||||
0 /* SDL_PAD_E */, 0 /* SDL_PAD_F */, 0 /* SDL_PAD_XOR */, 0 /* SDL_PAD_POWER */,
|
||||
0 /* SDL_PAD_PERCENT */, 0 /* SDL_PAD_LESS */, 0 /* SDL_PAD_GREATER */, 0 /* SDL_PAD_AMPERSAND */,
|
||||
0 /* SDL_PAD_DBLAMPERSAND */, 0 /* SDL_PAD_VERTICALBAR */, 0 /* SDL_PAD_DBLVERTICALBAR */, 0 /* SDL_PAD_COLON */,
|
||||
0 /* SDL_PAD_HASH */, 0 /* SDL_PAD_SPACE */, 0 /* SDL_PAD_AT */, 0 /* SDL_PAD_EXCLAM */,
|
||||
0 /* SDL_PAD_MEMSTORE */, 0 /* SDL_PAD_MEMRECALL */, 0 /* SDL_PAD_MEMCLEAR */, 0 /* SDL_PAD_MEMADD */,
|
||||
0 /* SDL_PAD_MEMSUBTRACT */, 0 /* SDL_PAD_MEMMULTIPLY */, 0 /* SDL_PAD_MEMDIVIDE */, 0 /* SDL_PAD_PLUSMINUS */,
|
||||
0 /* SDL_PAD_CLEAR */, 0 /* SDL_PAD_CLEARENTRY */, 0 /* SDL_PAD_BINARY */, 0 /* SDL_PAD_OCTAL */,
|
||||
0 /* SDL_PAD_DECIMAL */, 0 /* SDL_PAD_HEXADECIMAL */, KEY_UNDEFINED, KEY_UNDEFINED,
|
||||
KEY_RCTRL, KEY_RSHIFT, KEY_RALT, 0 /* SDL_LGUI */,
|
||||
KEY_RCTRL, KEY_RSHIFT, KEY_RALT, 0 /* SDL_RGUI */,
|
||||
KEY_UNDEFINED, KEY_UNDEFINED, KEY_UNDEFINED, KEY_UNDEFINED,
|
||||
KEY_UNDEFINED, KEY_UNDEFINED, KEY_UNDEFINED, KEY_UNDEFINED,
|
||||
KEY_UNDEFINED, KEY_UNDEFINED, KEY_UNDEFINED, KEY_UNDEFINED,
|
||||
KEY_UNDEFINED, KEY_UNDEFINED, KEY_UNDEFINED, KEY_UNDEFINED,
|
||||
KEY_UNDEFINED, KEY_UNDEFINED, KEY_UNDEFINED, KEY_UNDEFINED,
|
||||
KEY_UNDEFINED, KEY_UNDEFINED, KEY_UNDEFINED, KEY_UNDEFINED,
|
||||
KEY_UNDEFINED, 0 /* SDL_MODE */, 0 /* SDL_AUDIONEXT */, 0 /* SDL_AUDIOPREV */,
|
||||
0 /* SDL_AUDIOSTOP */, 0 /* SDL_AUDIOPLAY */, 0 /* SDL_AUDIOMUTE */, 0 /* SDL_MEDIASELECT */,
|
||||
0 /* SDL_WWW */, 0 /* SDL_MAIL */, 0 /* SDL_CALCULATOR */, 0 /* SDL_COMPUTER */,
|
||||
0 /* SDL_AC_SEARCH */, 0 /* SDL_AC_HOME */, 0 /* SDL_AC_BACK */, 0 /* SDL_AC_FORWARD */,
|
||||
0 /* SDL_AC_STOP */, 0 /* SDL_AC_REFRESH */, 0 /* SDL_AC_BOOKMARKS */, 0 /* SDL_BRIGHTNESSDOWN */,
|
||||
0 /* SDL_BRIGHTNESSUP */, 0 /* SDL_DISPLAYSWITCH */, 0 /* SDL_KBDILLUMTOGGLE */, 0 /* SDL_KBDILLUMDOWN */,
|
||||
0 /* SDL_KBDILLUMUP */, 0 /* SDL_EJECT */, 0 /* SDL_SLEEP */, 0 /* SDL_APP1 */,
|
||||
0 /* SDL_APP2 */, };
|
||||
@@ -1,50 +0,0 @@
|
||||
#! /usr/bin/perl
|
||||
|
||||
@key_list=();
|
||||
%keyh_list=();
|
||||
open(FX,"<key.h") || exit;
|
||||
while(<FX>) {
|
||||
if( /^#define KEY_([^\s]*)\s+[(]([^)]*)[)]/ ) {
|
||||
$key_list[eval($2)]="$1";
|
||||
$keyh_list{$1}=eval($2);
|
||||
}
|
||||
}
|
||||
close(fp);
|
||||
|
||||
@sdlk_list=();
|
||||
open(FS,"<$ARGV[0]/SDL_scancode.h") || exit;
|
||||
while(<FS>) {
|
||||
if( /SDL_SCANCODE_([^\s]+)\s+=\s*([^,]*),/ ) {
|
||||
$sdlk_list[eval($2)]="$1";
|
||||
}
|
||||
}
|
||||
close(FS);
|
||||
|
||||
|
||||
print "static int sdl_keytable[SDL_NUM_SCANCODES] = {\n\t";
|
||||
for( $i = 0 ; $i < scalar(@sdlk_list) ; $i ++ ) {
|
||||
#print "$i @sdlk_list[$i] $keyh_list{@sdlk_list[$i]}\n";
|
||||
$x = @sdlk_list[$i];
|
||||
if( length($x) == 0 ) {
|
||||
print "KEY_UNDEFINED, ";
|
||||
} elsif ( $keyh_list{$x} ) {
|
||||
print "KEY_@key_list[$keyh_list{$x}], ";
|
||||
} elsif ( $x =~ /[a-z]/ ) {
|
||||
print "KEY_".uc($x).", ";
|
||||
} elsif ( $x =~ /KP_/ ) {
|
||||
$x =~ s/^KP_/PAD_/;
|
||||
if ( $keyh_list{$x} ) {
|
||||
print "KEY_$x, ";
|
||||
} else {
|
||||
print "0 /* SDL_$x */, ";
|
||||
}
|
||||
} elsif ( $i < 0x61) {
|
||||
print "$i, ";
|
||||
} else {
|
||||
print "0 /* SDL_$x */, ";
|
||||
}
|
||||
if(($i % 4) == 3 ) {
|
||||
print "\n\t";
|
||||
}
|
||||
}
|
||||
print "};\n";
|
||||
Reference in New Issue
Block a user