X-Git-Url: http://git.xonotic.org/?a=blobdiff_plain;f=keys.c;h=817ce92da6a38ae589788aa4f374b33ba420db61;hb=5341d9394eaad8c3752d9a318f9308d47c428b54;hp=a24e83fbfb980c3ce278946a384b99ba770c1e49;hpb=3d642b0313d856c3cfcafe50205ab81dbed24cab;p=xonotic%2Fdarkplaces.git diff --git a/keys.c b/keys.c index a24e83fb..817ce92d 100644 --- a/keys.c +++ b/keys.c @@ -473,6 +473,36 @@ static const keyname_t keynames[] = { {"AUX31", K_AUX31}, {"AUX32", K_AUX32}, + {"X360_DPAD_UP", K_X360_DPAD_UP}, + {"X360_DPAD_DOWN", K_X360_DPAD_DOWN}, + {"X360_DPAD_LEFT", K_X360_DPAD_LEFT}, + {"X360_DPAD_RIGHT", K_X360_DPAD_RIGHT}, + {"X360_START", K_X360_START}, + {"X360_BACK", K_X360_BACK}, + {"X360_LEFT_THUMB", K_X360_LEFT_THUMB}, + {"X360_RIGHT_THUMB", K_X360_RIGHT_THUMB}, + {"X360_LEFT_SHOULDER", K_X360_LEFT_SHOULDER}, + {"X360_RIGHT_SHOULDER", K_X360_RIGHT_SHOULDER}, + {"X360_A", K_X360_A}, + {"X360_B", K_X360_B}, + {"X360_X", K_X360_X}, + {"X360_Y", K_X360_Y}, + {"X360_LEFT_TRIGGER", K_X360_LEFT_TRIGGER}, + {"X360_RIGHT_TRIGGER", K_X360_RIGHT_TRIGGER}, + {"X360_LEFT_THUMB_UP", K_X360_LEFT_THUMB_UP}, + {"X360_LEFT_THUMB_DOWN", K_X360_LEFT_THUMB_DOWN}, + {"X360_LEFT_THUMB_LEFT", K_X360_LEFT_THUMB_LEFT}, + {"X360_LEFT_THUMB_RIGHT", K_X360_LEFT_THUMB_RIGHT}, + {"X360_RIGHT_THUMB_UP", K_X360_RIGHT_THUMB_UP}, + {"X360_RIGHT_THUMB_DOWN", K_X360_RIGHT_THUMB_DOWN}, + {"X360_RIGHT_THUMB_LEFT", K_X360_RIGHT_THUMB_LEFT}, + {"X360_RIGHT_THUMB_RIGHT", K_X360_RIGHT_THUMB_RIGHT}, + + {"JOY_UP", K_JOY_UP}, + {"JOY_DOWN", K_JOY_DOWN}, + {"JOY_LEFT", K_JOY_LEFT}, + {"JOY_RIGHT", K_JOY_RIGHT}, + {"SEMICOLON", ';'}, // because a raw semicolon separates commands {"TILDE", '~'}, {"BACKQUOTE", '`'}, @@ -1929,6 +1959,21 @@ Key_Event (int key, int ascii, qboolean down) } } +// a helper to simulate release of ALL keys +void +Key_ReleaseAll (void) +{ + int key; + // clear the event queue first + eventqueue_idx = 0; + // then send all down events (possibly into the event queue) + for(key = 0; key < MAX_KEYS; ++key) + if(keydown[key]) + Key_Event(key, 0, false); + // now all keys are guaranteed down (once the event queue is unblocked) + // and only future events count +} + /* =================== Key_ClearStates