1 // ----------------------------------------------------------------------------
3 // ----------------------------------------------------------------------------
7 // static char *VB_Name = "modInput";
11 boolean KeyState[255 + 1];
12 DemoBufferObject DemoBuffer;
15 // Public KeyFlagSpace As Boolean
16 // Public KeyFlagUp As Boolean
17 // Public KeyFlagLeft As Boolean
18 // Public KeyFlagDown As Boolean
19 // Public KeyFlagRight As Boolean
20 // Public KeyFlagEnter As Boolean
21 // Public KeyFlagESC As Boolean
22 // Public KeyFlagR As Boolean
23 // Public KeyFlagRShift As Boolean
27 void subCheckJoystick()
31 int subCheckRightMouseButton()
33 int subCheckRightMouseButton;
35 // return button state
37 return subCheckRightMouseButton;
40 int subProcessKeyboardInput(byte action)
42 int subProcessKeyboardInput;
44 static int LastKey = 0;
48 if (action & KEY_BUTTON)
50 DemoKeyCode = (action & MV_UP ? keySpaceUp :
51 action & MV_LEFT ? keySpaceLeft :
52 action & MV_DOWN ? keySpaceDown :
53 action & MV_RIGHT ? keySpaceRight : keySpace);
57 DemoKeyCode = (action & MV_UP ? keyUp :
58 action & MV_LEFT ? keyLeft :
59 action & MV_DOWN ? keyDown :
60 action & MV_RIGHT ? keyRight : keyNone);
63 return subProcessKeyboardInput;
67 // On Error GoTo NoKeyboardAccessEH
68 // Call DKeyboard.Acquire
70 // Call DKeyboard.GetDeviceStateKeyboard(KeyState)
76 if (ExitToMenuFlag != 0)
77 return subProcessKeyboardInput;
81 if (KeyState[vbKeySpace])
83 if (KeyState[vbKeyUp])
85 DemoKeyCode = keySpaceUp;
87 else if (KeyState[vbKeyLeft])
89 DemoKeyCode = keySpaceLeft;
91 else if (KeyState[vbKeyDown])
93 DemoKeyCode = keySpaceDown;
95 else if (KeyState[vbKeyRight])
97 DemoKeyCode = keySpaceRight;
101 DemoKeyCode = keySpace;
107 if (KeyState[vbKeyUp])
111 else if (KeyState[vbKeyLeft])
113 DemoKeyCode = keyLeft;
115 else if (KeyState[vbKeyDown])
117 DemoKeyCode = keyDown;
119 else if (KeyState[vbKeyRight])
121 DemoKeyCode = keyRight;
125 DemoKeyCode = keyNone;
133 if (RecordDemoFlag == 1)
134 DemoBuffer.AddDemoKey(DemoKeyCode);
136 if (DemoKeyCode != LastKey && ! NoDisplayFlag)
139 MainForm.ShowKey(DemoKeyCode);
141 LastKey = DemoKeyCode;
144 if (KeyState[vbKeyEscape])
148 // Call MainForm.menSpeed_Click(4)
153 printf("::: Input.c: subProcessKeyboardInput(): kill murphy\n");
157 // ExplodeFieldSP MurphyPosIndex
158 // LeadOutCounter = &H20
162 if (KeyState[vbKeyR])
164 subFetchAndInitLevelB();
167 if (KeyState[vbKeyShift])
168 subDisplayRedDiskCount();
171 if (KeyState[vbKeyReturn])
172 MainForm.PanelVisible = (ShowPanel == 0);
176 // Call DKeyboard.Unacquire
177 return subProcessKeyboardInput;
179 // NoKeyboardAccessEH:
180 Debug.Print("! Keyboard access");
182 return subProcessKeyboardInput;