int Vid_GetGameKeys() { int i, c = 0; // empty input buffer, get new key state while (Vid_GetKey() != -1); if (Vid_GetCtrlBreak()) { c |= K_BREAK; } if (keysdown[KEY_FLIP]) { keysdown[KEY_FLIP] = 0; c |= K_FLIP; } if (keysdown[KEY_PULLUP]) c |= K_FLAPU; if (keysdown[KEY_PULLDOWN]) c |= K_FLAPD; if (keysdown[KEY_ACCEL]) { keysdown[KEY_ACCEL] = 0; c |= K_ACCEL; } if (keysdown[KEY_DECEL]) { keysdown[KEY_DECEL] = 0; c |= K_DEACC; } if (keysdown[KEY_SOUND]) { keysdown[KEY_SOUND] = 0; c |= K_SOUND; } if (keysdown[KEY_BOMB]) c |= K_BOMB; if (keysdown[KEY_FIRE]) c |= K_SHOT; if (keysdown[KEY_HOME]) c |= K_HOME; if (keysdown[KEY_MISSILE]) { keysdown[KEY_MISSILE] = 0; c |= K_MISSILE; } if (keysdown[KEY_STARBURST]) { keysdown[KEY_STARBURST] = 0; c |= K_STARBURST; } // clear bits in key array for (i=0; i<NUM_KEYS; ++i) { keysdown[i] &= ~2; } return c; }
int swgetc() { int i; while(!(i = Vid_GetKey())) { // sdh 15/11/2001: dont thrash the processor while // waiting for a key press Timer_Sleep(100); swsndupdate(); if (ctlbreak()) break; } return i; }