#include <string.h>\r
#include "src/lib/lib_head.h"\r
-//#include "src/lib/16_us.h"\r
\r
//++++#ifdef __DEBUG__\r
#define __DEBUG_InputMgr__\r
//++++#endif\r
\r
-//#define DUMU\r
#define TESTKEYIN
#define TESTCONTROLNOISY\r
\r
ctrl_Keyboard1 = ctrl_Keyboard,ctrl_Keyboard2,\r
ctrl_Joystick,\r
ctrl_Joystick1 = ctrl_Joystick,ctrl_Joystick2,\r
- ctrl_Mouse\r
+ ctrl_Mouse,
+ ctrl_Joypad\r
} ControlType;\r
typedef enum {\r
motion_Left = -1,motion_Up = -1,\r
dir_None\r
} Direction;\r
typedef struct {\r
- boolean button0,button1;\r
+ boolean button0,button1,button2,button3;\r
int x,y;\r
Motion xaxis,yaxis;\r
Direction dir;\r
static boolean JoyPadPresent;\r
\r
// Global variables\r
- extern boolean JoystickCalibrated; // MDM (GAMERS EDGE) - added\r
- extern ControlType ControlTypeUsed; // MDM (GAMERS EDGE) - added\r
+// extern boolean JoystickCalibrated; // MDM (GAMERS EDGE) - added\r
+// extern ControlType ControlTypeUsed; // MDM (GAMERS EDGE) - added\r
\r
extern boolean Keyboard[NumCodes];\r
extern boolean Paused;\r
\r
// Function prototypes\r
#define IN_KeyDown(code) (Keyboard[(code)])\r
-#define IN_ClearKey(code) {Keyboard[code] = false;\\r
- if (code == LastScan) LastScan = sc_None;}\r
+#define IN_ClearKey(code) {Keyboard[code] = false; if (code == LastScan) LastScan = sc_None;}\r
+\r
+// DEBUG - put names in prototypes
+/* Catacomb Armageddon Source Code
+ * Copyright (C) 1993-2014 Flat Rock Software
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+//
+// ID Engine
+// ID_IN.c - Input Manager
+// v1.0d1w
+// By Jason Blochowiak
+// Open Watcom port by sparky4
+//
+
+//
+// This module handles dealing with the various input devices
+//
+// Depends on: Memory Mgr (for demo recording), Sound Mgr (for timing stuff),
+// User Mgr (for command line parms)
+//
+// Globals:
+// LastScan - The keyboard scan code of the last key pressed
+// LastASCII - The ASCII value of the last key pressed
+// DEBUG - there are more globals
+//
+
+#include "src/lib/16_in.h"
+
+/*\r
+=============================================================================\r
+\r
+ GLOBAL VARIABLES\r
+\r
+=============================================================================\r
+*/\r
+// Global variables
+ boolean JoystickCalibrated=false; // MDM (GAMERS EDGE) - added\r
+ ControlType ControlTypeUsed; // MDM (GAMERS EDGE) - added\r
+ boolean Keyboard[NumCodes];\r
+ boolean Paused;\r
+ char LastASCII;\r
+ ScanCode LastScan;\r
+\r
+ //KeyboardDef KbdDefs = {0x1d,0x38,0x47,0x48,0x49,0x4b,0x4d,0x4f,0x50,0x51};\r
+ JoystickDef JoyDefs[MaxJoys];\r
+ ControlType Controls[MaxPlayers];\r
+\r
+ dword MouseDownCount;
+
+// Internal routines
+void interrupt INL_KeyService(void);
+void Mouse(int x);
+//static void INL_GetMouseDelta(int *x,int *y);
+//static word INL_GetMouseButtons(void);
+void IN_GetJoyAbs(word joy,word *xp,word *yp);
+//static void INL_GetJoyDelta(word joy,int *dx,int *dy,boolean adaptive);
+//static word INL_GetJoyButtons(word joy);
+word IN_GetJoyButtonsDB(word joy);
+//static void INL_StartKbd(void);
+//static void INL_ShutKbd(void);
+//static boolean INL_StartMouse(void);
+//static void INL_ShutMouse(void);
+//static void INL_SetJoyScale(word joy);
+void IN_SetupJoy(word joy,word minx,word maxx,word miny,word maxy);
+//static boolean INL_StartJoy(word joy);
+//static void INL_ShutJoy(word joy);
+void IN_Startup(void);
+void IN_Default(boolean gotit,ControlType in);
+void IN_Shutdown(void);
+void IN_SetKeyHook(void (*hook)());
+void IN_ClearKeysDown(void);
+//static void INL_AdjustCursor(CursorInfo *info,word buttons,int dx,int dy);
+void IN_ReadCursor(CursorInfo *info);
+void IN_ReadControl(int player,ControlInfo *info);
+void IN_SetControlType(int player,ControlType type);
+#if DEMO0
+boolean IN_StartDemoRecord(word bufsize);
+void IN_StartDemoPlayback(byte /*__segment*/ *buffer,word bufsize);
+void IN_StopDemo(void);
+void IN_FreeDemoBuffer(void);
+#endif
+byte *IN_GetScanName(ScanCode scan);
+ScanCode IN_WaitForKey(void);
+char IN_WaitForASCII(void);
+void IN_AckBack(void);
+void IN_Ack(void);
+boolean IN_IsUserInput(void);
+boolean IN_UserInput(dword delay,boolean clear);
+
\r
-// DEBUG - put names in prototypes\r
-extern void IN_Startup(void),IN_Shutdown(void),\r
+/*extern void IN_Startup(void),IN_Shutdown(void),\r
IN_Default(boolean gotit,ControlType in),\r
IN_SetKeyHook(void (*)()),\r
IN_ClearKeysDown(void),\r
extern byte *IN_GetScanName(ScanCode);\r
extern char IN_WaitForASCII(void);\r
extern ScanCode IN_WaitForKey(void);\r
-extern word IN_GetJoyButtonsDB(word joy);\r
+extern word IN_GetJoyButtonsDB(word joy);*/\r
\r
\r
void interrupt INL_KeyService(void);\r