X-Git-Url: http://4ch.mooo.com/gitweb/?a=blobdiff_plain;f=src%2Flib%2F16_in.c;h=00fe3f1e63bdee490ab3c38af4bf23d08c1b8475;hb=c5dbea494cdfaf301cc12246fea54557c7bc4f21;hp=fd812ff091a1551b1b4cc2187f50cc2828ae3b55;hpb=84fa53074a01907f4d3908255df5886d8361cd24;p=16.git diff --git a/src/lib/16_in.c b/src/lib/16_in.c old mode 100644 new mode 100755 index fd812ff0..00fe3f1e --- a/src/lib/16_in.c +++ b/src/lib/16_in.c @@ -149,12 +149,12 @@ static byte far ASCIINames[] = // Unshifted ASCII for scan codes static Direction DirTable[] = // Quick lookup for total direction { - //dir_Nortinest, - dir_North, + //dir_Nortinest, + dir_North, dir_West, - dir_None, - dir_East, - dir_South + dir_None, + dir_East, + dir_South //dir_NorthEast, //dir_Soutinest, //,dir_SouthEast @@ -797,7 +797,7 @@ IN_ReadCursor(CursorInfo *info) // player and fills in the control info struct // /////////////////////////////////////////////////////////////////////////// -void +void near IN_ReadControl(int playnum,player_t *player) { boolean realdelta; @@ -805,7 +805,7 @@ IN_ReadControl(int playnum,player_t *player) word buttons; int dx,dy; Motion mx,my; - ControlType type; + ControlType type; sword conpee; register KeyboardDef *def; @@ -849,17 +849,15 @@ register KeyboardDef *def; mx = motion_Left,my = motion_Down; else if (Keyboard[def->downright]) mx = motion_Right,my = motion_Down;*/ - - if(!inpu.Keyboard[def->left] && !inpu.Keyboard[def->right]){ - if((inpu.Keyboard[def->up] && !inpu.Keyboard[def->down] && player[playnum].info.dir == 2) || player[playnum].info.dir == 0) + if(!inpu.Keyboard[def->left] && !inpu.Keyboard[def->right]){ + if((inpu.Keyboard[def->up] && !inpu.Keyboard[def->down] && player[playnum].d == 2))// || player[playnum].info.dir == 0) my = motion_Up; - if((inpu.Keyboard[def->down] && !inpu.Keyboard[def->up] && player[playnum].info.dir == 2) || player[playnum].info.dir == 4) + if((inpu.Keyboard[def->down] && !inpu.Keyboard[def->up] && player[playnum].d == 2))// || player[playnum].info.dir == 4) my = motion_Down; - }else if(!inpu.Keyboard[def->up] && !inpu.Keyboard[def->down]){ - if((inpu.Keyboard[def->left] && !inpu.Keyboard[def->right] && player[playnum].info.dir == 2) || player[playnum].info.dir == 1) + if((inpu.Keyboard[def->left] && !inpu.Keyboard[def->right] && player[playnum].d == 2))// || player[playnum].info.dir == 1) mx = motion_Left; - if((inpu.Keyboard[def->right] && !inpu.Keyboard[def->left] && player[playnum].info.dir == 2) || player[playnum].info.dir == 3) + if((inpu.Keyboard[def->right] && !inpu.Keyboard[def->left] && player[playnum].d == 2))// || player[playnum].info.dir == 3) mx = motion_Right; } if (inpu.Keyboard[def->button0]) @@ -895,8 +893,8 @@ register KeyboardDef *def; } else { - dx = mx * 127; - dy = my * 127; + dx = mx;// * 127; + dy = my;// * 127; } player[playnum].info.x = dx; @@ -907,10 +905,14 @@ register KeyboardDef *def; player[playnum].info.button1 = buttons & (1 << 1); player[playnum].info.button2 = buttons & (1 << 2); player[playnum].info.button3 = buttons & (1 << 3); -// player[playnum].info.dir = DirTable[((my + 1) * 3) + (mx + 1)]; - conpee=(((my + 1) * 2) + (mx + 1)); - if(conpee) conpee--; +// player[playnum].info.dir = DirTable[((my + 1) * 3) + (mx + 1)]; + conpee=(((my + 1) * 2) + (mx + 1)); + if(conpee) conpee--; player[playnum].info.dir = DirTable[conpee]; + if(player[playnum].q==1 && (mx!=motion_None || my!=motion_None)) + { + player[playnum].d = player[playnum].info.dir; + } #if DEMO0 if (DemoMode == demo_Record) @@ -937,12 +939,12 @@ register KeyboardDef *def; } } #endif -#ifdef TESTCONTROLNOISY -if((inpu.Keyboard[def->up] || inpu.Keyboard[def->down] || inpu.Keyboard[def->left] || inpu.Keyboard[def->right])&& player[playnum].info.dir!=2) -{ - printf("(mx)=%d ", mx); - printf("(my)=%d ", my); - printf("dir=%d\n", player[playnum].info.dir); +#ifdef TESTCONTROLNOISY +if((inpu.Keyboard[def->up] || inpu.Keyboard[def->down] || inpu.Keyboard[def->left] || inpu.Keyboard[def->right])&& player[playnum].info.dir!=2) +{ + printf("(mx)=%d ", mx); + printf("(my)=%d ", my); + printf("dir=%d\n", player[playnum].info.dir); } #endif } @@ -1207,9 +1209,9 @@ void IN_ClearKey(byte code) } boolean IN_qb(byte kee) -{ +{ #ifdef TESTKEYIN - printf("%u\n", inpu.Keyboard[kee]); + printf("%u\n", inpu.Keyboard[kee]); #endif if(inpu.Keyboard[kee]==true) return 1; else return 0;