[Fix] Fixed some issues with auto navigation.

This commit is contained in:
Allanis 2013-12-27 22:55:42 +00:00
parent 83ac271657
commit b8991b37df

View File

@ -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()) {