[Fix] Fixed some issues with auto navigation.
This commit is contained in:
parent
83ac271657
commit
b8991b37df
67
src/input.c
67
src/input.c
@ -79,7 +79,7 @@ void input_setDefault(void) {
|
|||||||
input_setKeybind("secondary", KEYBIND_KEYBOARD, SDLK_LSHIFT, KMOD_NONE, 0);
|
input_setKeybind("secondary", KEYBIND_KEYBOARD, SDLK_LSHIFT, KMOD_NONE, 0);
|
||||||
input_setKeybind("secondary_next", KEYBIND_KEYBOARD, SDLK_e, KMOD_NONE, 0);
|
input_setKeybind("secondary_next", KEYBIND_KEYBOARD, SDLK_e, KMOD_NONE, 0);
|
||||||
/* Space */
|
/* Space */
|
||||||
input_setKeybind("autonav", KEYBIND_KEYBOARD, SDLK_n, KMOD_NONE, 0);
|
input_setKeybind("autonav", KEYBIND_KEYBOARD, SDLK_n, KMOD_CTRL, 0);
|
||||||
input_setKeybind("target_planet", KEYBIND_KEYBOARD, SDLK_p, KMOD_NONE, 0);
|
input_setKeybind("target_planet", KEYBIND_KEYBOARD, SDLK_p, KMOD_NONE, 0);
|
||||||
input_setKeybind("land", KEYBIND_KEYBOARD, SDLK_l, KMOD_NONE, 0);
|
input_setKeybind("land", KEYBIND_KEYBOARD, SDLK_l, KMOD_NONE, 0);
|
||||||
input_setKeybind("thyperspace", KEYBIND_KEYBOARD, SDLK_h, KMOD_NONE, 0);
|
input_setKeybind("thyperspace", KEYBIND_KEYBOARD, SDLK_h, KMOD_NONE, 0);
|
||||||
@ -197,11 +197,16 @@ static void input_key(int keynum, double value, int kabs) {
|
|||||||
|
|
||||||
/* Accelerating. */
|
/* Accelerating. */
|
||||||
if(KEY("accel")) {
|
if(KEY("accel")) {
|
||||||
player_abortAutonav();
|
if(kabs) {
|
||||||
if(kabs)player_accel(value);
|
player_abortAutonav();
|
||||||
|
player_accel(value);
|
||||||
|
}
|
||||||
else {
|
else {
|
||||||
/* Prevent it from getting stuck. */
|
/* Prevent it from getting stuck. */
|
||||||
if(value == KEY_PRESS) player_accel(1.);
|
if(value == KEY_PRESS) {
|
||||||
|
player_accel(1.);
|
||||||
|
player_abortAutonav();
|
||||||
|
}
|
||||||
else if(value == KEY_RELEASE) player_accelOver();
|
else if(value == KEY_RELEASE) player_accelOver();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -221,9 +226,11 @@ static void input_key(int keynum, double value, int kabs) {
|
|||||||
}
|
}
|
||||||
/* Turning left. */
|
/* Turning left. */
|
||||||
else if(KEY("left")) {
|
else if(KEY("left")) {
|
||||||
player_abortAutonav();
|
|
||||||
/* Set flags for facing correction. */
|
/* Set flags for facing correction. */
|
||||||
if(value == KEY_PRESS) { player_setFlag(PLAYER_TURN_LEFT); }
|
if(value == KEY_PRESS) {
|
||||||
|
player_setFlag(PLAYER_TURN_LEFT);
|
||||||
|
player_abortAutonav();
|
||||||
|
}
|
||||||
else if(value == KEY_RELEASE) { player_rmFlag(PLAYER_TURN_LEFT); }
|
else if(value == KEY_RELEASE) { player_rmFlag(PLAYER_TURN_LEFT); }
|
||||||
|
|
||||||
if(kabs) { player_turn = -value; }
|
if(kabs) { player_turn = -value; }
|
||||||
@ -232,9 +239,11 @@ static void input_key(int keynum, double value, int kabs) {
|
|||||||
}
|
}
|
||||||
/* Turning right. */
|
/* Turning right. */
|
||||||
else if(KEY("right")) {
|
else if(KEY("right")) {
|
||||||
player_abortAutonav();
|
|
||||||
/* Set flags for facing correction. */
|
/* Set flags for facing correction. */
|
||||||
if(value == KEY_PRESS) { player_setFlag(PLAYER_TURN_RIGHT); }
|
if(value == KEY_PRESS) {
|
||||||
|
player_setFlag(PLAYER_TURN_RIGHT);
|
||||||
|
player_abortAutonav();
|
||||||
|
}
|
||||||
else if(value == KEY_RELEASE) { player_rmFlag(PLAYER_TURN_RIGHT); }
|
else if(value == KEY_RELEASE) { player_rmFlag(PLAYER_TURN_RIGHT); }
|
||||||
|
|
||||||
if(kabs) { player_turn = value; }
|
if(kabs) { player_turn = value; }
|
||||||
@ -244,8 +253,10 @@ static void input_key(int keynum, double value, int kabs) {
|
|||||||
}
|
}
|
||||||
/* Turn around to face vel. */
|
/* Turn around to face vel. */
|
||||||
else if(KEY("reverse")) {
|
else if(KEY("reverse")) {
|
||||||
player_abortAutonav();
|
if(value == KEY_PRESS) {
|
||||||
if(value == KEY_PRESS) { player_setFlag(PLAYER_REVERSE); }
|
player_setFlag(PLAYER_REVERSE);
|
||||||
|
player_abortAutonav();
|
||||||
|
}
|
||||||
else if(value == KEY_RELEASE) {
|
else if(value == KEY_RELEASE) {
|
||||||
player_rmFlag(PLAYER_REVERSE);
|
player_rmFlag(PLAYER_REVERSE);
|
||||||
player_turn = 0; /* Turning corrections. */
|
player_turn = 0; /* Turning corrections. */
|
||||||
@ -255,8 +266,10 @@ static void input_key(int keynum, double value, int kabs) {
|
|||||||
}
|
}
|
||||||
/* Shoot primary weapon. BOOM BOOM. */
|
/* Shoot primary weapon. BOOM BOOM. */
|
||||||
else if(KEY("primary")) {
|
else if(KEY("primary")) {
|
||||||
player_abortAutonav();
|
if(value == KEY_PRESS) {
|
||||||
if(value == KEY_PRESS) { player_setFlag(PLAYER_PRIMARY); }
|
player_setFlag(PLAYER_PRIMARY);
|
||||||
|
player_abortAutonav();
|
||||||
|
}
|
||||||
else if(value == KEY_RELEASE) { player_rmFlag(PLAYER_PRIMARY); }
|
else if(value == KEY_RELEASE) { player_rmFlag(PLAYER_PRIMARY); }
|
||||||
}
|
}
|
||||||
/* Targetting. */
|
/* Targetting. */
|
||||||
@ -271,8 +284,10 @@ static void input_key(int keynum, double value, int kabs) {
|
|||||||
}
|
}
|
||||||
/* Face the target. */
|
/* Face the target. */
|
||||||
else if(KEY("face")) {
|
else if(KEY("face")) {
|
||||||
player_abortAutonav();
|
if(value == KEY_PRESS) {
|
||||||
if(value == KEY_PRESS) { player_setFlag(PLAYER_FACE); }
|
player_setFlag(PLAYER_FACE);
|
||||||
|
player_abortAutonav();
|
||||||
|
}
|
||||||
else if(value == KEY_RELEASE) {
|
else if(value == KEY_RELEASE) {
|
||||||
player_rmFlag(PLAYER_FACE);
|
player_rmFlag(PLAYER_FACE);
|
||||||
|
|
||||||
@ -284,8 +299,10 @@ static void input_key(int keynum, double value, int kabs) {
|
|||||||
}
|
}
|
||||||
/* Board those ships. */
|
/* Board those ships. */
|
||||||
else if(KEY("board") && INGAME() && NOHYP()) {
|
else if(KEY("board") && INGAME() && NOHYP()) {
|
||||||
player_abortAutonav();
|
if(value == KEY_PRESS) {
|
||||||
if(value == KEY_PRESS) player_board();
|
player_board();
|
||||||
|
player_abortAutonav();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
/* Shooting secondary weapon. */
|
/* Shooting secondary weapon. */
|
||||||
else if(KEY("secondary") && NOHYP()) {
|
else if(KEY("secondary") && NOHYP()) {
|
||||||
@ -306,19 +323,25 @@ static void input_key(int keynum, double value, int kabs) {
|
|||||||
}
|
}
|
||||||
/* Target nearest planet or attempt to land. */
|
/* Target nearest planet or attempt to land. */
|
||||||
else if(KEY("land") && INGAME() && NOHYP()) {
|
else if(KEY("land") && INGAME() && NOHYP()) {
|
||||||
player_abortAutonav();
|
if(value == KEY_PRESS) {
|
||||||
if(value == KEY_PRESS) player_land();
|
player_land();
|
||||||
|
player_abortAutonav();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else if(KEY("thyperspace") && INGAME() && NOHYP()) {
|
else if(KEY("thyperspace") && INGAME() && NOHYP()) {
|
||||||
player_abortAutonav();
|
if(value == KEY_PRESS) {
|
||||||
if(value == KEY_PRESS) player_targetHyperspace();
|
player_targetHyperspace();
|
||||||
|
player_abortAutonav();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else if(KEY("starmap") && NOHYP()) {
|
else if(KEY("starmap") && NOHYP()) {
|
||||||
if(value == KEY_PRESS) map_open();
|
if(value == KEY_PRESS) map_open();
|
||||||
}
|
}
|
||||||
else if(KEY("jump") && INGAME()) {
|
else if(KEY("jump") && INGAME()) {
|
||||||
player_abortAutonav();
|
if(value == KEY_PRESS) {
|
||||||
if(value == KEY_PRESS) player_jump();
|
player_jump();
|
||||||
|
player_abortAutonav();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
/* Zoom in. */
|
/* Zoom in. */
|
||||||
else if(KEY("mapzoomin") && INGAME()) {
|
else if(KEY("mapzoomin") && INGAME()) {
|
||||||
|
Loading…
Reference in New Issue
Block a user