X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fgame_sp%2FInput.c;h=5271795c48a8ee35bccad43f318b9504b3bb9643;hb=0b8567c8bcbe637936fa01d253de81254fa4fb3e;hp=a846aaf6e047dd37e50748014dc5856d1420bb89;hpb=83a31e12a79ab21deddbbb7533998a1a54a989dd;p=rocksndiamonds.git diff --git a/src/game_sp/Input.c b/src/game_sp/Input.c index a846aaf6..5271795c 100644 --- a/src/game_sp/Input.c +++ b/src/game_sp/Input.c @@ -24,6 +24,37 @@ DemoBufferObject DemoBuffer; int KeyScanCode7; +int map_key_RND_to_SP(int key) +{ + if (key & KEY_BUTTON) + { + return (key & MV_UP ? keySpaceUp : + key & MV_LEFT ? keySpaceLeft : + key & MV_DOWN ? keySpaceDown : + key & MV_RIGHT ? keySpaceRight : keySpace); + } + else + { + return (key & MV_UP ? keyUp : + key & MV_LEFT ? keyLeft : + key & MV_DOWN ? keyDown : + key & MV_RIGHT ? keyRight : keyNone); + } +} + +int map_key_SP_to_RND(int key) +{ + return (key == keyUp ? MV_UP : + key == keyLeft ? MV_LEFT : + key == keyDown ? MV_DOWN : + key == keyRight ? MV_RIGHT : + key == keySpaceUp ? KEY_BUTTON | MV_UP : + key == keySpaceLeft ? KEY_BUTTON | MV_LEFT : + key == keySpaceDown ? KEY_BUTTON | MV_DOWN : + key == keySpaceRight ? KEY_BUTTON | MV_RIGHT : + key == keySpace ? KEY_BUTTON : MV_NONE); +} + void subCheckJoystick() { } @@ -45,20 +76,11 @@ int subProcessKeyboardInput(byte action) #if 1 - if (action & KEY_BUTTON) - { - DemoKeyCode = (action & MV_UP ? keySpaceUp : - action & MV_LEFT ? keySpaceLeft : - action & MV_DOWN ? keySpaceDown : - action & MV_RIGHT ? keySpaceRight : keySpace); - } - else - { - DemoKeyCode = (action & MV_UP ? keyUp : - action & MV_LEFT ? keyLeft : - action & MV_DOWN ? keyDown : - action & MV_RIGHT ? keyRight : keyNone); - } + DemoKeyCode = map_key_RND_to_SP(action); + +#if 0 + printf("::: DemoKeyCode == %d\n", DemoKeyCode); +#endif return subProcessKeyboardInput; @@ -73,6 +95,10 @@ int subProcessKeyboardInput(byte action) { subGetNextDemoKey(); +#if 0 + printf("::: DemoKeyCode == %d\n", DemoKeyCode); +#endif + if (ExitToMenuFlag != 0) return subProcessKeyboardInput; }