[Fix] Bug that was introduced when allowing toolkit some control.
This commit is contained in:
parent
8cb99e490c
commit
cc4dc358c1
28
src/input.c
28
src/input.c
@ -112,7 +112,8 @@ void input_setKeybind(char* keybind, KeybindType type, int key, int reverse) {
|
|||||||
// value : Value of keypress (defined above).
|
// value : Value of keypress (defined above).
|
||||||
// abs : Whether or not it's an abs value (For those pesky joysticks.
|
// abs : Whether or not it's an abs value (For those pesky joysticks.
|
||||||
// =====================================================================
|
// =====================================================================
|
||||||
#define KEY(s) (strcmp(input_keybinds[keynum]->name, s)==0)
|
#define KEY(s) (strcmp(input_keybinds[keynum]->name, s)==0)
|
||||||
|
#define INGAME() (!paused)
|
||||||
static void input_key(int keynum, double value, int abs) {
|
static void input_key(int keynum, double value, int abs) {
|
||||||
// Accelerating.
|
// Accelerating.
|
||||||
if(KEY("accel")) {
|
if(KEY("accel")) {
|
||||||
@ -176,43 +177,43 @@ static void input_key(int keynum, double value, int abs) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Board those ships.
|
// Board those ships.
|
||||||
else if(KEY("board") && !paused) {
|
else if(KEY("board") && INGAME()) {
|
||||||
if(value == KEY_PRESS) player_board();
|
if(value == KEY_PRESS) player_board();
|
||||||
}
|
}
|
||||||
// Shooting secondary weapon.
|
// Shooting secondary weapon.
|
||||||
else if(KEY("secondary") && !paused) {
|
else if(KEY("secondary") && INGAME()) {
|
||||||
if(value == KEY_PRESS) player_setFlag(PLAYER_SECONDARY);
|
if(value == KEY_PRESS) player_setFlag(PLAYER_SECONDARY);
|
||||||
else if(value == KEY_RELEASE) player_rmFlag(PLAYER_SECONDARY);
|
else if(value == KEY_RELEASE) player_rmFlag(PLAYER_SECONDARY);
|
||||||
}
|
}
|
||||||
// Selecting secondary weapon.
|
// Selecting secondary weapon.
|
||||||
else if(KEY("secondary_next") && !paused) {
|
else if(KEY("secondary_next") && INGAME()) {
|
||||||
if(value == KEY_PRESS) player_secondaryNext();
|
if(value == KEY_PRESS) player_secondaryNext();
|
||||||
}
|
}
|
||||||
// Space.
|
// Space.
|
||||||
// Target planet (cycles just like target).
|
// Target planet (cycles just like target).
|
||||||
else if(KEY("target_planet") && !paused) {
|
else if(KEY("target_planet") && INGAME()) {
|
||||||
if(value == KEY_PRESS) player_targetPlanet();
|
if(value == KEY_PRESS) player_targetPlanet();
|
||||||
}
|
}
|
||||||
// Target nearest planet or attempt to land.
|
// Target nearest planet or attempt to land.
|
||||||
else if(KEY("land") && !paused) {
|
else if(KEY("land") && INGAME()) {
|
||||||
if(value == KEY_PRESS) player_land();
|
if(value == KEY_PRESS) player_land();
|
||||||
}
|
}
|
||||||
else if(KEY("thyperspace") && !paused) {
|
else if(KEY("thyperspace") && INGAME()) {
|
||||||
if(value == KEY_PRESS) player_targetHyperspace();
|
if(value == KEY_PRESS) player_targetHyperspace();
|
||||||
}
|
}
|
||||||
else if(KEY("jump") && !paused) {
|
else if(KEY("jump") && INGAME()) {
|
||||||
if(value == KEY_PRESS) player_jump();
|
if(value == KEY_PRESS) player_jump();
|
||||||
}
|
}
|
||||||
// Zoom in.
|
// Zoom in.
|
||||||
else if(KEY("mapzoomin")) {
|
else if(KEY("mapzoomin") && INGAME()) {
|
||||||
if(value == KEY_PRESS) player_setRadarRel(1);
|
if(value == KEY_PRESS) player_setRadarRel(1);
|
||||||
}
|
}
|
||||||
// Zoom out.
|
// Zoom out.
|
||||||
else if(KEY("mapzoomout")) {
|
else if(KEY("mapzoomout") && INGAME()) {
|
||||||
if(value == KEY_PRESS) player_setRadarRel(-1);
|
if(value == KEY_PRESS) player_setRadarRel(-1);
|
||||||
}
|
}
|
||||||
// Take a screenshot.
|
// Take a screenshot.
|
||||||
else if(KEY("screenshot")) {
|
else if(KEY("screenshot") && INGAME()) {
|
||||||
if(value == KEY_PRESS) player_screenshot();
|
if(value == KEY_PRESS) player_screenshot();
|
||||||
}
|
}
|
||||||
// Pause the game.
|
// Pause the game.
|
||||||
@ -299,11 +300,10 @@ static void input_keyup(SDLKey key) {
|
|||||||
|
|
||||||
// Just seperates the event types.
|
// Just seperates the event types.
|
||||||
void input_handle(SDL_Event* event) {
|
void input_handle(SDL_Event* event) {
|
||||||
if(toolkit) {
|
if(toolkit)
|
||||||
// Toolkit is handled seperately.
|
// Toolkit is handled seperately.
|
||||||
toolkit_input(event);
|
toolkit_input(event);
|
||||||
return;
|
|
||||||
}
|
|
||||||
switch(event->type) {
|
switch(event->type) {
|
||||||
case SDL_JOYAXISMOTION:
|
case SDL_JOYAXISMOTION:
|
||||||
input_joyaxis(event->jaxis.axis, event->jaxis.value);
|
input_joyaxis(event->jaxis.axis, event->jaxis.value);
|
||||||
|
Loading…
Reference in New Issue
Block a user