]> 4ch.mooo.com Git - 16.git/blobdiff - src/lib/16_in.c
MOUSE WORKS NOW! i should continue on the other stuff in p16 such as showmemory funct...
[16.git] / src / lib / 16_in.c
index 9dd9d7816b7ba043cccccfca9d0ab9c46faf2694..bdd3d0fe47554db0db169cbe3b761b4f2fec9e96 100755 (executable)
@@ -249,17 +249,6 @@ static     boolean special;
        outportb(0x20,0x20);\r
 }\r
 \r
-void INL_Mouse(int x)\r
-{\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
-\r
 ///////////////////////////////////////////////////////////////////////////\r
 //\r
 //     INL_GetMouseDelta() - Gets the amount that the mouse has moved from the\r
@@ -269,16 +258,9 @@ void INL_Mouse(int x)
 static void\r
 INL_GetMouseDelta(int *x,int *y)\r
 {\r
-       union REGS CPURegs;\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
+       *x = _CX;\r
+       *y = _DX;\r
 }\r
 \r
 ///////////////////////////////////////////////////////////////////////////\r
@@ -290,11 +272,10 @@ INL_GetMouseDelta(int *x,int *y)
 static word\r
 INL_GetMouseButtons(void)\r
 {\r
-       union REGS CPURegs;\r
        word    buttons;\r
 \r
        Mouse(MButtons);\r
-       buttons = CPURegs.x.bx;\r
+       buttons = _BX;\r
        return(buttons);\r
 }\r
 \r
@@ -510,7 +491,7 @@ IN_GetJoyButtonsDB(word joy)
 //\r
 ///////////////////////////////////////////////////////////////////////////\r
 static void\r
-INL_StartKbd()\r
+INL_StartKbd(void)\r
 {\r
        INL_KeyHook = NULL;     // Clear key hook\r
 \r
@@ -541,15 +522,15 @@ INL_ShutKbd(void)
 static boolean\r
 INL_StartMouse(void)\r
 {\r
-       union REGS CPURegs;\r
+#if 0\r
        if (getvect(MouseInt))\r
        {\r
                Mouse(MReset);\r
-               if (/*_AX*/CPURegs.x.ax == 0xffff)\r
+               if (_AX == 0xffff)\r
                        return(true);\r
        }\r
        return(false);\r
-#if 0\r
+#else\r
        byte far *vector;\r
 \r
 \r
@@ -697,7 +678,6 @@ IN_Startup(global_game_variables_t *gvar)
        gvar->in.inst = &inst;\r
 \r
        gvar->in.IN_Started = true;\r
-\r
 }\r
 \r
 ///////////////////////////////////////////////////////////////////////////\r
@@ -857,9 +837,6 @@ IN_ReadControl(player_t *player, global_game_variables_t *gvar)
                        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
@@ -889,8 +866,7 @@ register    KeyboardDef     *def;
 #endif\r
                switch (type = player->Controls)\r
                {\r
-               case ctrl_Keyboard1:\r
-               case ctrl_Keyboard2:\r
+               case ctrl_Keyboard:\r
                        def = &(gvar->in.KbdDefs[type - ctrl_Keyboard]);\r
 \r
 /*                     if (Keyboard[def->upleft])\r
@@ -965,8 +941,8 @@ register    KeyboardDef     *def;
        }\r
        else\r
        {\r
-               dx = mx;// * 127;\r
-               dy = my;// * 127;\r
+               dx = mx * 127;\r
+               dy = my * 127;\r
        }\r
 \r
        player->info.x = dx;\r
@@ -1014,12 +990,21 @@ register KeyboardDef     *def;
        }\r
 #endif\r
 #ifdef __DEBUG_InputMgr__\r
-/*if(dbg_joymousedelta)\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
+static         int                     old_dx,old_dy;\r
+static         word            old_buttons=0;\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
+               if(old_buttons!=buttons)\r
+               {\r
+                       printf("        buttons={%u,%u,%u,%u}\n", player->info.button0, player->info.button1, player->info.button2, player->info.button3);\r
+                       old_buttons=buttons;\r
+               }\r
+       }\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
@@ -1295,11 +1280,10 @@ boolean IN_UserInput(word delay, global_game_variables_t *gvar)
 \r
 byte   IN_MouseButtons (global_game_variables_t *gvar)\r
 {\r
-       union REGS CPURegs;\r
        if (gvar->in.MousePresent)\r
        {\r
                Mouse(MButtons);\r
-               return CPURegs.x.bx;\r
+               return _BX;\r
        }\r
        else\r
                return 0;\r