rnd-20100315-2-src
[rocksndiamonds.git] / src / game_sp / Input.c
1 // ----------------------------------------------------------------------------
2 // Input.c
3 // ----------------------------------------------------------------------------
4
5 #include "Input.h"
6
7
8 DemoBufferObject DemoBuffer;
9 boolean KeyState[255 + 1];
10
11 int map_key_RND_to_SP(int key)
12 {
13   if (key & KEY_BUTTON)
14   {
15     return (key & MV_UP         ? keySpaceUp    :
16             key & MV_LEFT       ? keySpaceLeft  :
17             key & MV_DOWN       ? keySpaceDown  :
18             key & MV_RIGHT      ? keySpaceRight : keySpace);
19   }
20   else
21   {
22     return (key & MV_UP         ? keyUp         :
23             key & MV_LEFT       ? keyLeft       :
24             key & MV_DOWN       ? keyDown       :
25             key & MV_RIGHT      ? keyRight      : keyNone);
26   }
27 }
28
29 int map_key_SP_to_RND(int key)
30 {
31   return (key == keyUp          ? MV_UP                 :
32           key == keyLeft        ? MV_LEFT               :
33           key == keyDown        ? MV_DOWN               :
34           key == keyRight       ? MV_RIGHT              :
35           key == keySpaceUp     ? KEY_BUTTON | MV_UP    :
36           key == keySpaceLeft   ? KEY_BUTTON | MV_LEFT  :
37           key == keySpaceDown   ? KEY_BUTTON | MV_DOWN  :
38           key == keySpaceRight  ? KEY_BUTTON | MV_RIGHT :
39           key == keySpace       ? KEY_BUTTON            : MV_NONE);
40 }
41
42 void subProcessKeyboardInput(byte action)
43 {
44   DemoKeyCode = map_key_RND_to_SP(action);
45 }