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