extern "C" {\r
#endif\r
\r
-static struct instat {\r
- boolean CapsLock;\r
+/*static struct instat {\r
+ boolean CapsLock;\r
ScanCode CurCode,LastCode;\r
\r
boolean Keyboard[NumCodes];\r
boolean Paused;\r
char LastASCII;\r
ScanCode LastScan;\r
-} inst;\r
+} inst;*/\r
+\r
+//the def stuff is need fix warnings\r
+#ifndef INSTDEFED\r
+#define INSTDEFED\r
+static inst_t inst;\r
+#endif\r
\r
static byte far ASCIINames[] = // Unshifted ASCII for scan codes\r
{\r
static void (*INL_KeyHook)(void);\r
static void interrupt (*OldKeyVect)(void);\r
static char *ParmStringsIN[] = {"nojoys","nomouse",nil};\r
+static void INL_StartKbd(void);\r
\r
// Internal routines\r
\r
\r
void INL_Mouse(int x)\r
{\r
- //union REGS CPURegs;\r
- //x = CPURegs.x.ax;\r
- __asm {\r
+ union REGS CPURegs;\r
+ x = CPURegs.x.ax;\r
+/*_=_= __asm {\r
mov ax,x\r
int MouseInt\r
- }\r
- //int86(MouseInt,&CPURegs,&CPURegs);\r
+ }*/\r
+ int86(MouseInt,&CPURegs,&CPURegs);\r
}\r
\r
///////////////////////////////////////////////////////////////////////////\r
Mouse(MDelta);\r
*x = CPURegs.x.cx;\r
*y = CPURegs.x.dx;\r
+#ifdef __DEBUG_InputMgr__\r
+ if(dbg_joymousedelta)\r
+ {\r
+ printf("mousedelta=[%dx%d]\n", *x, *y);\r
+ }\r
+ #endif\r
}\r
\r
///////////////////////////////////////////////////////////////////////////\r
//\r
///////////////////////////////////////////////////////////////////////////\r
static void\r
-INL_StartKbd(global_game_variables_t *gvar)\r
+INL_StartKbd()\r
{\r
INL_KeyHook = NULL; // Clear key hook\r
\r
static boolean\r
INL_StartMouse(void)\r
{\r
-#if 0\r
+ union REGS CPURegs;\r
if (getvect(MouseInt))\r
{\r
Mouse(MReset);\r
- if (_AX == 0xffff)\r
+ if (/*_AX*/CPURegs.x.ax == 0xffff)\r
return(true);\r
}\r
return(false);\r
-#endif\r
+#if 0\r
byte far *vector;\r
\r
\r
\r
Mouse(MReset);\r
return true;\r
+#endif\r
}\r
\r
///////////////////////////////////////////////////////////////////////////\r
}\r
}\r
\r
- INL_StartKbd(gvar);\r
+ INL_StartKbd();\r
gvar->in.MousePresent = checkmouse? INL_StartMouse() : false;\r
\r
for (i = 0;i < MaxJoys;i++)\r
sword conpee;\r
byte dir=DirTable[2];\r
register KeyboardDef *def;\r
+//#ifdef __DEBUG_InputMgr__\r
+//static int old_dx,old_dy;\r
+//#endif\r
\r
dx = dy = 0;\r
mx = my = motion_None;\r
}\r
#endif\r
#ifdef __DEBUG_InputMgr__\r
+/*if(dbg_joymousedelta)\r
+{\r
+ if(dx!=old_dx || dy!=old_dy) printf("dx,dy [%d,%d] %d,%d\n", dx, dy, mx, my);\r
+ if(dx!=old_dx) old_dx=dx;\r
+ if(dy!=old_dy) old_dy=dy;\r
+}*/\r
+\r
if(dbg_testcontrolnoisy > 0)\r
if(player->info.dir!=2/*(inst.Keyboard[def->up] || inst.Keyboard[def->down] || inst.Keyboard[def->left] || inst.Keyboard[def->right])*/ || player->enti.q>1)\r
{\r
//\r
// see if something has been pressed\r
//\r
- if (inst.LastScan)\r
- return true;\r
+ if(!gvar->in.IN_Started)\r
+ getch();\r
+ else\r
+ {\r
+ if (inst.LastScan)\r
+ return true;\r
+ }\r
\r
buttons = IN_JoyButtons () << 4;\r
if (gvar->in.MousePresent)\r
boolean IN_KeyDown(byte code)\r
{\r
#ifdef __DEBUG_InputMgr__\r
- if(inst.Keyboard[code])\r
- printf("IN_KeyDown(%c): %u\n", code, inst.Keyboard[code]);\r
+// if(inst.Keyboard[code])\r
+// printf("IN_KeyDown(%c): %u\n", code, inst.Keyboard[code]);\r
if(!dbg_nointest)\r
#endif\r
return inst.Keyboard[code];\r