moved game values for score and health from player to game structure
[rocksndiamonds.git] / src / game_sp / Input.c
index a7ac7798d545d0038d2a881eaa5f0db87cc1c280..5a469575399886e012048e50e5afee9f0b4e3510 100644 (file)
 
 #include "Input.h"
 
-// static char *VB_Name = "modInput";
 
-// --- Option Explicit
-
-boolean KeyState[255 + 1];
-DemoBufferObject DemoBuffer;
-
-//
-// Public KeyFlagSpace As Boolean
-// Public KeyFlagUp As Boolean
-// Public KeyFlagLeft As Boolean
-// Public KeyFlagDown As Boolean
-// Public KeyFlagRight As Boolean
-// Public KeyFlagEnter As Boolean
-// Public KeyFlagESC As Boolean
-// Public KeyFlagR As Boolean
-// Public KeyFlagRShift As Boolean
-
-int KeyScanCode7;
-
-void subCheckJoystick()
+int map_key_RND_to_SP(int key)
 {
-}
-
-int subCheckRightMouseButton()
-{
-  int subCheckRightMouseButton;
-
-  // return button state
-
-  return subCheckRightMouseButton;
-}
-
-int subProcessKeyboardInput()
-{
-  int subProcessKeyboardInput;
-
-  int LastKey;
-
-  //  On Error GoTo NoKeyboardAccessEH
-  //    Call DKeyboard.Acquire
-  //  On Error GoTo 0
-  //  Call DKeyboard.GetDeviceStateKeyboard(KeyState)
-  //  With KeyState
-  if (DemoFlag != 0)
+  if (key & KEY_BUTTON)
   {
-    subGetNextDemoKey();
-    if (ExitToMenuFlag != 0)
-      return subProcessKeyboardInput;
-
+    return (key & MV_UP                ? keySpaceUp    :
+           key & MV_LEFT       ? keySpaceLeft  :
+           key & MV_DOWN       ? keySpaceDown  :
+           key & MV_RIGHT      ? keySpaceRight : keySpace);
   }
   else
   {
-    if (KeyState[vbKeySpace])
-    {
-      if (KeyState[vbKeyUp])
-      {
-        DemoKeyCode = keySpaceUp;
-      }
-      else if (KeyState[vbKeyLeft])
-      {
-        DemoKeyCode = keySpaceLeft;
-      }
-      else if (KeyState[vbKeyDown])
-      {
-        DemoKeyCode = keySpaceDown;
-      }
-      else if (KeyState[vbKeyRight])
-      {
-        DemoKeyCode = keySpaceRight;
-      }
-      else
-      {
-        DemoKeyCode = keySpace;
-      }
-
-    }
-    else
-    {
-      if (KeyState[vbKeyUp])
-      {
-        DemoKeyCode = keyUp;
-      }
-      else if (KeyState[vbKeyLeft])
-      {
-        DemoKeyCode = keyLeft;
-      }
-      else if (KeyState[vbKeyDown])
-      {
-        DemoKeyCode = keyDown;
-      }
-      else if (KeyState[vbKeyRight])
-      {
-        DemoKeyCode = keyRight;
-      }
-      else
-      {
-        DemoKeyCode = keyNone;
-      }
-    }
+    return (key & MV_UP                ? keyUp         :
+           key & MV_LEFT       ? keyLeft       :
+           key & MV_DOWN       ? keyDown       :
+           key & MV_RIGHT      ? keyRight      : keyNone);
   }
+}
 
-  // demo recording
-  if (RecordDemoFlag == 1)
-    DemoBuffer.AddDemoKey(DemoKeyCode);
-
-  if (DemoKeyCode != LastKey && ! NoDisplayFlag)
-  {
-#if 0
-    MainForm.ShowKey(DemoKeyCode);
-#endif
-    LastKey = DemoKeyCode;
-  }
-
-  if (KeyState[vbKeyEscape])
-  {
-    if (BlockingSpeed)
-    {
-      //        Call MainForm.menSpeed_Click(4)
-    }
-    else
-    {
-      KillMurphyFlag = 1;
-      //        ExplodeFieldSP MurphyPosIndex
-      //        LeadOutCounter = &H20
-    }
-  }
-
-  if (KeyState[vbKeyR])
-  {
-    subFetchAndInitLevelB();
-  }
-
-  if (KeyState[vbKeyShift])
-    subDisplayRedDiskCount();
-
-#if 0
-  if (KeyState[vbKeyReturn])
-    MainForm.PanelVisible = (ShowPanel == 0);
-#endif
-
-  //  End With
-  //  Call DKeyboard.Unacquire
-  return subProcessKeyboardInput;
-
-  // NoKeyboardAccessEH:
-  Debug.Print("! Keyboard access");
+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);
+}
 
-  return subProcessKeyboardInput;
+void subProcessKeyboardInput(byte action)
+{
+  DemoKeyCode = map_key_RND_to_SP(action);
 }