From: sparky4 Date: Mon, 29 Jun 2015 07:16:00 +0000 (-0500) Subject: major changes~ ^^ it works~ X-Git-Url: http://4ch.mooo.com/gitweb/?a=commitdiff_plain;h=00497e980f1e07052ae1b28f41c0d18c3ec097dc;p=16.git major changes~ ^^ it works~ modified: 16.LIB modified: GFX.LIB modified: inputest.exe modified: src/inputest.c modified: src/lib/16_in.c modified: src/lib/16_in.h --- diff --git a/16.LIB b/16.LIB index 4899d50a..266271d9 100644 Binary files a/16.LIB and b/16.LIB differ diff --git a/GFX.LIB b/GFX.LIB index 8eac2309..1ad504e2 100644 Binary files a/GFX.LIB and b/GFX.LIB differ diff --git a/inputest.exe b/inputest.exe index 52f08c51..91329f9c 100644 Binary files a/inputest.exe and b/inputest.exe differ diff --git a/src/inputest.c b/src/inputest.c index d4a3d44c..98815cc6 100644 --- a/src/inputest.c +++ b/src/inputest.c @@ -28,32 +28,16 @@ void main(int argc, char *argv[]) { player_t player[MaxPlayers]; - inconfig in; - //word i=0; - in.KbdDefs[0].button0 = 0x1d; - in.KbdDefs[0].button1 = 0x38; - //in.KbdDefs[0].upleft = 0x47; - in.KbdDefs[0].up = 0x48; - //in.KbdDefs[0].upright = 0x49; - in.KbdDefs[0].left = 0x4b; - in.KbdDefs[0].right = 0x4d; - //in.KbdDefs[0].downleft = 0x4f; - in.KbdDefs[0].down = 0x50; - //in.KbdDefs[0].downright = 0x51; - - if(IN_Startup(&in)) + IN_Startup(); + IN_Default(0,&player,ctrl_Joystick); + //while(!IN_KeyDown(sc_Escape)) + while(!IN_KeyDown(sc_Escape)) { - IN_Default(0,&player,ctrl_Joystick, &in); - while(!in.Keyboard[sc_Escape]) - { - IN_ReadControl(0,&player, &in); - //printf("%u\n", in.Keyboard[sc_Escape]); - //printf("i=%u\n", i); - printf(""); - //i++; - } - IN_Shutdown(&in); + IN_ReadControl(0,&player); + //printf("%u\n", IN_KeyDown(sc_Escape)); + //printf("%u\n", IN_qb(sc_Escape)); } + IN_Shutdown(); //printf("%u\n", in.Keyboard[sc_Escape]); } diff --git a/src/lib/16_in.c b/src/lib/16_in.c index 48e62c52..6d8c1aba 100644 --- a/src/lib/16_in.c +++ b/src/lib/16_in.c @@ -38,6 +38,32 @@ #include "src/lib/16_in.h" +/* +============================================================================= + + GLOBAL VARIABLES + +============================================================================= +*/ +struct inconfig +{ + boolean MousePresent; + boolean JoysPresent[MaxJoys]; + boolean JoyPadPresent[MaxPads]; + boolean Keyboard[NumCodes]; + boolean Paused; + char LastASCII; + ScanCode LastScan; + + KeyboardDef KbdDefs[MaxKbds];// = {0x1d,0x38,/*0x47,*/0x48,/*0x49,*/0x4b,0x4d,/*0x4f,*/0x50/*,0x51*/}; + JoystickDef JoyDefs[MaxJoys]; + JoypadDef JoypadDefs[MaxPads]; +} inpu; + +//struct inconfig in; + +//inpu.KbdDefs = {0x1d,0x38,/*0x47,*/0x48,/*0x49,*/0x4b,0x4d,/*0x4f,*/0x50/*,0x51*/}; + /* ============================================================================= @@ -45,9 +71,21 @@ ============================================================================= */ + #ifdef __cplusplus /* Function must be declared C style */ extern "C" { -#endif +#endif + +static struct instat { + boolean IN_Started; + boolean CapsLock; + ScanCode CurCode,LastCode; +} inst; + +static void (*INL_KeyHook)(void); +static void interrupt (*OldKeyVect)(void); +static char *ParmStringsIN[] = {"nojoys","nomouse",nil}; + static byte far ASCIINames[] = // Unshifted ASCII for scan codes { // 0 1 2 3 4 5 6 7 8 9 A B C D E F @@ -118,15 +156,7 @@ static Direction DirTable[] = // Quick lookup for total direction dir_West, dir_None, dir_East, //dir_Soutinest, dir_South//,dir_SouthEast - }; - -static boolean IN_Started; -static boolean CapsLock; -static ScanCode CurCode,LastCode; - -static void (*INL_KeyHook)(void); -static void interrupt (*OldKeyVect)(void); -static char *ParmStringsIN[] = {"nojoys","nomouse",nil}; + }; #ifdef __cplusplus } #endif @@ -138,7 +168,7 @@ static char *ParmStringsIN[] = {"nojoys","nomouse",nil}; // /////////////////////////////////////////////////////////////////////////// void interrupt -INL_KeyService(inconfig *in) +INL_KeyService() { static boolean special; byte k,c; @@ -153,7 +183,7 @@ static boolean special; if (k == 0xe0) // Special key prefix special = true; else if (k == 0xe1) // Handle Pause key - in->Paused = true; + inpu.Paused = true; else { if (k & 0x80) // Break code @@ -162,13 +192,13 @@ static boolean special; // DEBUG - handle special keys: ctl-alt-delete, print scrn - in->Keyboard[k] = false; + inpu.Keyboard[k] = false; } else // Make code { - LastCode = CurCode; - CurCode = in->LastScan = k; - in->Keyboard[k] = true; + inst.LastCode = inst.CurCode; + inst.CurCode = inpu.LastScan = k; + inpu.Keyboard[k] = true; if (special) c = SpecialNames[k]; @@ -176,25 +206,25 @@ static boolean special; { if (k == sc_CapsLock) { - CapsLock ^= true; + inst.CapsLock ^= true; // DEBUG - make caps lock light work } - if (in->Keyboard[sc_LShift] || in->Keyboard[sc_RShift]) // If shifted + if (inpu.Keyboard[sc_LShift] || inpu.Keyboard[sc_RShift]) // If shifted { c = ShiftNames[k]; - if ((c >= 'A') && (c <= 'Z') && CapsLock) + if ((c >= 'A') && (c <= 'Z') && inst.CapsLock) c += 'a' - 'A'; } else { c = ASCIINames[k]; - if ((c >= 'a') && (c <= 'z') && CapsLock) + if ((c >= 'a') && (c <= 'z') && inst.CapsLock) c -= 'a' - 'A'; } } if (c) - in->LastASCII = c; + inpu.LastASCII = c; } special = false; @@ -203,7 +233,7 @@ static boolean special; if (INL_KeyHook && !special) INL_KeyHook(); #ifdef TESTKEYIN - printf("%c %x %u\n", c, k, in->Keyboard[k]); + printf("%c %x %u\n", c, k, inpu.Keyboard[k]); #endif outp(0x20,0x20); } @@ -335,7 +365,7 @@ done: // /////////////////////////////////////////////////////////////////////////// static void -INL_GetJoyDelta(word joy,int *dx,int *dy,boolean adaptive, inconfig *in) +INL_GetJoyDelta(word joy,int *dx,int *dy,boolean adaptive) { word x,y; dword time; @@ -344,7 +374,7 @@ INL_GetJoyDelta(word joy,int *dx,int *dy,boolean adaptive, inconfig *in) static dword lasttime; IN_GetJoyAbs(joy,&x,&y); - def = in->JoyDefs + joy; + def = inpu.JoyDefs + joy; if (x < def->threshMinX) { @@ -453,11 +483,11 @@ IN_GetJoyButtonsDB(word joy) // /////////////////////////////////////////////////////////////////////////// static void -INL_StartKbd(inconfig *in) +INL_StartKbd() { INL_KeyHook = 0; // Clear key hook - IN_ClearKeysDown(in); + IN_ClearKeysDown(); OldKeyVect = _dos_getvect(KeyInt); _dos_setvect(KeyInt,INL_KeyService); @@ -508,11 +538,11 @@ INL_ShutMouse(void) // INL_SetJoyScale() - Sets up scaling values for the specified joystick // static void -INL_SetJoyScale(word joy, inconfig *in) +INL_SetJoyScale(word joy) { JoystickDef *def; - def = &(in->JoyDefs[joy]); + def = &(inpu.JoyDefs[joy]); def->joyMultXL = JoyScaleMax / (def->threshMinX - def->joyMinX); def->joyMultXH = JoyScaleMax / (def->joyMaxX - def->threshMaxX); def->joyMultYL = JoyScaleMax / (def->threshMinY - def->joyMinY); @@ -526,12 +556,12 @@ INL_SetJoyScale(word joy, inconfig *in) // /////////////////////////////////////////////////////////////////////////// void -IN_SetupJoy(word joy,word minx,word maxx,word miny,word maxy, inconfig *in) +IN_SetupJoy(word joy,word minx,word maxx,word miny,word maxy) { word d,r; JoystickDef *def; - def = &(in->JoyDefs[joy]); + def = &(inpu.JoyDefs[joy]); def->joyMinX = minx; def->joyMaxX = maxx; @@ -547,7 +577,7 @@ IN_SetupJoy(word joy,word minx,word maxx,word miny,word maxy, inconfig *in) def->threshMinY = ((r / 2) - d) + miny; def->threshMaxY = ((r / 2) + d) + miny; - INL_SetJoyScale(joy, in); + INL_SetJoyScale(joy); } /////////////////////////////////////////////////////////////////////////// @@ -557,7 +587,7 @@ IN_SetupJoy(word joy,word minx,word maxx,word miny,word maxy, inconfig *in) // /////////////////////////////////////////////////////////////////////////// static boolean -INL_StartJoy(word joy, inconfig *in) +INL_StartJoy(word joy) { word x,y; @@ -571,7 +601,7 @@ INL_StartJoy(word joy, inconfig *in) return(false); else { - IN_SetupJoy(joy,0,x * 2,0,y * 2, in); + IN_SetupJoy(joy,0,x * 2,0,y * 2); return(true); } } @@ -582,9 +612,9 @@ INL_StartJoy(word joy, inconfig *in) // /////////////////////////////////////////////////////////////////////////// static void -INL_ShutJoy(word joy, inconfig *in) +INL_ShutJoy(word joy) { - in->JoysPresent[joy] = false; + inpu.JoysPresent[joy] = false; } // Public routines @@ -594,16 +624,14 @@ INL_ShutJoy(word joy, inconfig *in) // IN_Startup() - Starts up the Input Mgr // /////////////////////////////////////////////////////////////////////////// -boolean -IN_Startup(inconfig *in) +void +IN_Startup() { boolean checkjoys,checkmouse; word i; - if (IN_Started) - { - return false; - } + if (inst.IN_Started) + return; checkjoys = true; checkmouse = true; @@ -620,14 +648,13 @@ IN_Startup(inconfig *in) } } - INL_StartKbd(in); - in->MousePresent = checkmouse? INL_StartMouse() : false; + INL_StartKbd(); + inpu.MousePresent = checkmouse? INL_StartMouse() : false; for (i = 0;i < MaxJoys;i++) - in->JoysPresent[i] = checkjoys? INL_StartJoy(i, in) : false; + inpu.JoysPresent[i] = checkjoys? INL_StartJoy(i) : false; - IN_Started = true; - return true; + inst.IN_Started = true; } /////////////////////////////////////////////////////////////////////////// @@ -636,16 +663,16 @@ IN_Startup(inconfig *in) // /////////////////////////////////////////////////////////////////////////// void -IN_Default(boolean gotit,player_t *player,ControlType nt, inconfig *in) +IN_Default(boolean gotit,player_t *player,ControlType nt) { if ( (!gotit) - || ((nt == ctrl_Joystick1) && !in->JoysPresent[0]) - || ((nt == ctrl_Joystick2) && !in->JoysPresent[1]) - || ((nt == ctrl_Mouse) && !in->MousePresent) - || ((nt == ctrl_Joypad1) && !in->JoyPadPresent[0]) - || ((nt == ctrl_Joypad2) && !in->JoyPadPresent[1]) + || ((nt == ctrl_Joystick1) && !inpu.JoysPresent[0]) + || ((nt == ctrl_Joystick2) && !inpu.JoysPresent[1]) + || ((nt == ctrl_Mouse) && !inpu.MousePresent) + || ((nt == ctrl_Joypad1) && !inpu.JoyPadPresent[0]) + || ((nt == ctrl_Joypad2) && !inpu.JoyPadPresent[1]) ) nt = ctrl_Keyboard1; IN_SetControlType(0,player,nt); @@ -656,23 +683,20 @@ IN_Default(boolean gotit,player_t *player,ControlType nt, inconfig *in) // IN_Shutdown() - Shuts down the Input Mgr // /////////////////////////////////////////////////////////////////////////// -boolean -IN_Shutdown(inconfig *in) +void +IN_Shutdown() { word i; - if (!IN_Started) - { - return false; - } + if (!inst.IN_Started) + return; INL_ShutMouse(); for (i = 0;i < MaxJoys;i++) - INL_ShutJoy(i, in); + INL_ShutJoy(i); INL_ShutKbd(); - IN_Started = false; - return true; + inst.IN_Started = false; } /////////////////////////////////////////////////////////////////////////// @@ -693,13 +717,13 @@ IN_SetKeyHook(void (*hook)()) // /////////////////////////////////////////////////////////////////////////// void -IN_ClearKeysDown(inconfig *in) +IN_ClearKeysDown() { int i; - in->LastScan = sc_None; - in->LastASCII = key_None; - memset (in->Keyboard,0,sizeof(in->Keyboard)); + inpu.LastScan = sc_None; + inpu.LastASCII = key_None; + memset (inpu.Keyboard,0,sizeof(inpu.Keyboard)); } /////////////////////////////////////////////////////////////////////////// @@ -726,7 +750,7 @@ INL_AdjustCursor(CursorInfo *info,word buttons,int dx,int dy) // /////////////////////////////////////////////////////////////////////////// void -IN_ReadCursor(CursorInfo *info, inconfig *in) +IN_ReadCursor(CursorInfo *info) { word i, buttons; @@ -735,7 +759,7 @@ IN_ReadCursor(CursorInfo *info, inconfig *in) info->x = info->y = 0; info->button0 = info->button1 = false; - if (in->MousePresent) + if (inpu.MousePresent) { buttons = INL_GetMouseButtons(); INL_GetMouseDelta(&dx,&dy); @@ -744,11 +768,11 @@ IN_ReadCursor(CursorInfo *info, inconfig *in) for (i = 0;i < MaxJoys;i++) { - if (!in->JoysPresent[i]) + if (!inpu.JoysPresent[i]) continue; buttons = INL_GetJoyButtons(i); - INL_GetJoyDelta(i,&dx,&dy,true, in); + INL_GetJoyDelta(i,&dx,&dy,true); dx /= 64; dy /= 64; INL_AdjustCursor(info,buttons,dx,dy); @@ -762,7 +786,7 @@ IN_ReadCursor(CursorInfo *info, inconfig *in) // /////////////////////////////////////////////////////////////////////////// void -IN_ReadControl(int playnum,player_t *player, inconfig *in) +IN_ReadControl(int playnum,player_t *player) { boolean realdelta; byte dbyte; @@ -802,7 +826,7 @@ register KeyboardDef *def; { case ctrl_Keyboard1: case ctrl_Keyboard2: - def = &(in->KbdDefs[type - ctrl_Keyboard]); + def = &(inpu.KbdDefs[type - ctrl_Keyboard]); /* if (Keyboard[def->upleft]) mx = motion_Left,my = motion_Up; @@ -813,25 +837,25 @@ register KeyboardDef *def; else if (Keyboard[def->downright]) mx = motion_Right,my = motion_Down;*/ - if (in->Keyboard[def->up]) + if (inpu.Keyboard[def->up]) my = motion_Up; - else if (in->Keyboard[def->down]) + else if (inpu.Keyboard[def->down]) my = motion_Down; - if (in->Keyboard[def->left]) + if (inpu.Keyboard[def->left]) mx = motion_Left; - else if (in->Keyboard[def->right]) + else if (inpu.Keyboard[def->right]) mx = motion_Right; - if (in->Keyboard[def->button0]) + if (inpu.Keyboard[def->button0]) buttons += 1 << 0; - if (in->Keyboard[def->button1]) + if (inpu.Keyboard[def->button1]) buttons += 1 << 1; realdelta = false; break; case ctrl_Joystick1: case ctrl_Joystick2: - INL_GetJoyDelta(type - ctrl_Joystick,&dx,&dy,false, in); + INL_GetJoyDelta(type - ctrl_Joystick,&dx,&dy,false); buttons = INL_GetJoyButtons(type - ctrl_Joystick); realdelta = true; break; @@ -1000,13 +1024,13 @@ IN_GetScanName(ScanCode scan) // /////////////////////////////////////////////////////////////////////////// ScanCode -IN_WaitForKey(inconfig *in) +IN_WaitForKey() { ScanCode result; - while (!(result = in->LastScan)) + while (!(result = inpu.LastScan)) ; - in->LastScan = 0; + inpu.LastScan = 0; return(result); } @@ -1017,13 +1041,13 @@ IN_WaitForKey(inconfig *in) // /////////////////////////////////////////////////////////////////////////// char -IN_WaitForASCII(inconfig *in) +IN_WaitForASCII() { char result; - while (!(result = in->LastASCII)) + while (!(result = inpu.LastASCII)) ; - in->LastASCII = '\0'; + inpu.LastASCII = '\0'; return(result); } @@ -1033,13 +1057,13 @@ IN_WaitForASCII(inconfig *in) // /////////////////////////////////////////////////////////////////////////// void -IN_AckBack(inconfig *in) +IN_AckBack() { word i; - while (!in->LastScan) + while (!inpu.LastScan) { - if (in->MousePresent) + if (inpu.MousePresent) { if (INL_GetMouseButtons()) { @@ -1051,7 +1075,7 @@ IN_AckBack(inconfig *in) for (i = 0;i < MaxJoys;i++) { - if (in->JoysPresent[i]) + if (inpu.JoysPresent[i]) { if (IN_GetJoyButtonsDB(i)) { @@ -1063,8 +1087,8 @@ IN_AckBack(inconfig *in) } } - IN_ClearKey(in->LastScan, in); - in->LastScan = sc_None; + IN_ClearKey(inpu.LastScan); + inpu.LastScan = sc_None; } /////////////////////////////////////////////////////////////////////////// @@ -1073,22 +1097,22 @@ IN_AckBack(inconfig *in) // /////////////////////////////////////////////////////////////////////////// void -IN_Ack(inconfig *in) +IN_Ack() { word i; - IN_ClearKey(in->LastScan, in); - in->LastScan = sc_None; + IN_ClearKey(inpu.LastScan); + inpu.LastScan = sc_None; - if (in->MousePresent) + if (inpu.MousePresent) while (INL_GetMouseButtons()) ; for (i = 0;i < MaxJoys;i++) - if (in->JoysPresent[i]) + if (inpu.JoysPresent[i]) while (IN_GetJoyButtonsDB(i)) ; - IN_AckBack(in); + IN_AckBack(); } /////////////////////////////////////////////////////////////////////////// @@ -1098,19 +1122,19 @@ IN_Ack(inconfig *in) // /////////////////////////////////////////////////////////////////////////// boolean -IN_IsUserInput(inconfig *in) +IN_IsUserInput() { boolean result; word i; - result = in->LastScan; + result = inpu.LastScan; - if (in->MousePresent) + if (inpu.MousePresent) if (INL_GetMouseButtons()) result = true; for (i = 0;i < MaxJoys;i++) - if (in->JoysPresent[i]) + if (inpu.JoysPresent[i]) if (INL_GetJoyButtons(i)) result = true; @@ -1126,7 +1150,7 @@ IN_IsUserInput(inconfig *in) // /////////////////////////////////////////////////////////////////////////// boolean -IN_UserInput(dword delay,boolean clear, inconfig *in) +IN_UserInput(dword delay,boolean clear) { dword TimeCount = *clockdw; dword lasttime; @@ -1134,24 +1158,31 @@ IN_UserInput(dword delay,boolean clear, inconfig *in) lasttime = TimeCount; do { - if (IN_IsUserInput(in)) + if (IN_IsUserInput()) { if (clear) - IN_AckBack(in); + IN_AckBack(); return(true); } } while (TimeCount - lasttime < delay); return(false); } -boolean IN_KeyDown(byte code, inconfig *in) +boolean IN_KeyDown(byte code) { - return in->Keyboard[(code)]; + return inpu.Keyboard[code]; } -void IN_ClearKey(byte code, inconfig *in) +void IN_ClearKey(byte code) { - in->Keyboard[code] = false; - if(code == in->LastScan) - in->LastScan = sc_None; + inpu.Keyboard[code] = false; + if(code == inpu.LastScan) + inpu.LastScan = sc_None; } + +boolean IN_qb(byte kee) +{ + printf("%u\n", inpu.Keyboard[kee]); + if(inpu.Keyboard[kee]==true) return 1; + else return 0; +} diff --git a/src/lib/16_in.h b/src/lib/16_in.h index f14e8178..352d87b2 100644 --- a/src/lib/16_in.h +++ b/src/lib/16_in.h @@ -208,69 +208,56 @@ typedef struct ControlType Controls; } player_t; -typedef struct -{ - boolean MousePresent; - boolean JoysPresent[MaxJoys]; - boolean JoyPadPresent[MaxPads]; - boolean Keyboard[NumCodes]; - boolean Paused; - char LastASCII; - ScanCode LastScan; - - KeyboardDef KbdDefs[MaxKbds]; - JoystickDef JoyDefs[MaxJoys]; - JoypadDef JoypadDefs[MaxPads]; -} inconfig; - #ifdef DEMO0 static Demo DemoMode = demo_Off; static byte /*_seg*/ *DemoBuffer; static word DemoOffset,DemoSize; #endif - + +//extern struct inconfig in; extern dword far* clockdw; // Internal routines -void interrupt INL_KeyService(inconfig *in); -void Mouse(int x); +extern void interrupt INL_KeyService(); +extern 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); +extern 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); +extern 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, inconfig *in); +extern 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); -boolean IN_Startup(inconfig *in); -void IN_Default(boolean gotit,player_t *player,ControlType nt, inconfig *in); -boolean IN_Shutdown(inconfig *in); -void IN_SetKeyHook(void (*hook)()); -void IN_ClearKeysDown(inconfig *in); +extern void IN_Startup(); +extern void IN_Default(boolean gotit,player_t *player,ControlType nt); +extern void IN_Shutdown(); +extern void IN_SetKeyHook(void (*hook)()); +extern void IN_ClearKeysDown(); //static void INL_AdjustCursor(CursorInfo *info,word buttons,int dx,int dy); -void IN_ReadCursor(CursorInfo *info, inconfig *in); -void IN_ReadControl(int playnum,player_t *player, inconfig *in); -void IN_SetControlType(word playnum,player_t *player,ControlType type); +extern void IN_ReadCursor(CursorInfo *info); +extern void IN_ReadControl(int playnum,player_t *player); +extern void IN_SetControlType(word playnum,player_t *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); +extern boolean IN_StartDemoRecord(word bufsize); +extern void IN_StartDemoPlayback(byte /*__segment*/ *buffer,word bufsize); +extern void IN_StopDemo(void); +extern void IN_FreeDemoBuffer(void); #endif -byte *IN_GetScanName(ScanCode scan); -ScanCode IN_WaitForKey(inconfig *in); -char IN_WaitForASCII(inconfig *in); -void IN_AckBack(inconfig *in); -void IN_Ack(inconfig *in); -boolean IN_IsUserInput(inconfig *in); -boolean IN_UserInput(dword delay,boolean clear, inconfig *in); -boolean IN_KeyDown(byte code, inconfig *in); -void IN_ClearKey(byte code, inconfig *in); +extern byte *IN_GetScanName(ScanCode scan); +extern ScanCode IN_WaitForKey(); +extern char IN_WaitForASCII(); +extern void IN_AckBack(); +extern void IN_Ack(); +extern boolean IN_IsUserInput(); +extern boolean IN_UserInput(dword delay,boolean clear); +extern boolean IN_KeyDown(byte code); +extern void IN_ClearKey(byte code); +extern boolean IN_qb(byte kee); #endif