diff --git a/src/conf.c b/src/conf.c
index 0fc3f2e..df46c00 100644
--- a/src/conf.c
+++ b/src/conf.c
@@ -43,7 +43,7 @@ extern char* namjoystick;
 // From player.c
 extern const char* keybindNames[]; // Keybindings.
 
-static void print_usae(char** argv);
+static void print_usage(char** argv);
 
 // Print usage.
 static void print_usage(char** argv) {
diff --git a/src/input.c b/src/input.c
index ba851a3..5e77aa0 100644
--- a/src/input.c
+++ b/src/input.c
@@ -3,8 +3,8 @@
 #include "player.h"
 #include "input.h"
 
-#define KEY_PRESS   ( 1.);
-#define KEY_RELEASE (-1.);
+#define KEY_PRESS   ( 1.)
+#define KEY_RELEASE (-1.)
 
 // Keybind structure.
 typedef struct {
@@ -13,7 +13,10 @@ typedef struct {
   unsigned int key; // Key/axis/button event number.
   double reverse;   // 1. if normal, -1 if reversed, only useful for joystick axis.
 } Keybind;
-static Keybind** player_input; // Contains the players keybindings.
+
+static Keybind** input_keybinds; // Contains the players keybindings.
+
+
 // Name of each keybinding.
 const char* keybindNames[] = { "accel", "left", "right", // Movement.
                               "primary", "target", "target_nearest", "face", "board", // Combat.
@@ -56,7 +59,7 @@ void input_init(void) {
   Keybind* tmp;
   int i;
   for(i = 0; strcmp(keybindNames[i], "end"); i++); // Get number of bindings.
-  player_input = malloc(i*sizeof(Keybind*));
+  input_keybinds = malloc(i*sizeof(Keybind*));
 
   // Create a null keybinding for each.
   for(i = 0; strcmp(keybindNames[i], "end"); i++) {
@@ -65,44 +68,45 @@ void input_init(void) {
     tmp->type = KEYBIND_NULL;
     tmp->key = 0;
     tmp->reverse = 1.;
-    player_input[i] = tmp;
+    input_keybinds[i] = tmp;
   }
 }
 
 void input_exit(void) {
   int i;
   for(i = 0; strcmp(keybindNames[i], "end"); i++)
-    free(player_input[i]);
-  free(player_input);
+    free(input_keybinds[i]);
+  free(input_keybinds);
 }
 
 // Binds key of type [type] to action keybind.
 void input_setKeybind(char* keybind, KeybindType type, int key, int reverse) {
   int i;
   for(i = 0; strcmp(keybindNames[i], "end"); i++)
-    if(strcmp(keybind, player_input[i]->name)==0) {
-      player_input[i]->type = type;
-      player_input[i]->key = key;
-      player_input[i]->reverse = reverse ? -1. : 1.;
+    if(strcmp(keybind, input_keybinds[i]->name)==0) {
+      input_keybinds[i]->type = type;
+      input_keybinds[i]->key = key;
+      input_keybinds[i]->reverse = reverse ? -1. : 1.;
       return;
     }
   WARN("Unable to set keybind '%s', That command does not exist.", keybind);
 }
 
 // == Run input method. ================================================
-// keynum : Index of the player_input keybind.
+// keynum : Index of the input_keybinds keybind.
 // value  : Value of keypress (defined above).
 // abs    : Whether or not it's an abs value (For those pesky joysticks.
 // =====================================================================
+#define KEY(s) strcmp(input_keybinds[keynum]->name, s)==0
 static void input_key(int keynum, double value, int abs) {
   // Accelerating.
-  if(strcmp(player_input[keynum]->name, "accel")==0) {
+  if(KEY("accel")) {
     if(abs)player_acc = value;
     else player_acc += value;
     player_acc = ABS(player_acc); // Make sure value is sane.
   }
   // Turning left.
-  else if(strcmp(player_input[keynum]->name, "left")==0) {
+  else if(KEY("left")) {
     // Set flags for facing correction.
     if(value == KEY_PRESS) player_setFlag(PLAYER_TURN_LEFT);
     else if(value == KEY_RELEASE) player_rmFlag(PLAYER_TURN_LEFT);
@@ -112,7 +116,7 @@ static void input_key(int keynum, double value, int abs) {
     if(player_turn < -1.) player_turn = -1.; // Make sure value is sane.
   }
   // Turning right.
-  else if(strcmp(player_input[keynum]->name, "right")==0) {
+  else if(KEY("right")) {
     // Set flags for facing correction.
     if(value == KEY_PRESS) player_setFlag(PLAYER_TURN_RIGHT);
     else if(value == KEY_RELEASE) player_rmFlag(PLAYER_TURN_RIGHT);
@@ -123,19 +127,19 @@ static void input_key(int keynum, double value, int abs) {
     if(player_turn < -1.) player_turn = -1.; // Make sure value is sane.
   }
   // Shoot primary weapon. BOOM BOOM.
-  else if(strcmp(player_input[keynum]->name, "primary")==0) {
+  else if(KEY("primary")) {
     if(value == KEY_PRESS) player_setFlag(PLAYER_PRIMARY);
     else if(value == KEY_RELEASE) player_rmFlag(PLAYER_PRIMARY);
   }
   // Targetting.
-  else if(strcmp(player_input[keynum]->name, "target")==0) {
+  else if(KEY("target")) {
     if(value == KEY_PRESS) player_target = pilot_getNext(player_target);
   }
-  else if(strcmp(player_input[keynum]->name, "target_nearest")==0) {
+  else if(KEY("target_nearest")) {
     if(value == KEY_PRESS) player_target = pilot_getHostile();
   }
   // Face the target.
-  else if(strcmp(player_input[keynum]->name, "face")==0) {
+  else if(KEY("face")) {
     if(value == KEY_PRESS) player_setFlag(PLAYER_FACE);
     else if(value == KEY_RELEASE) {
       player_rmFlag(PLAYER_FACE);
@@ -147,38 +151,36 @@ static void input_key(int keynum, double value, int abs) {
     }
   }
   // Board those ships.
-  else if(strcmp(player_input[keynum]->name, "board")==0) {
+  else if(KEY("board")) {
     if(value == KEY_PRESS) player_board();
   }
   // Shooting secondary weapon.
-  else if(strcmp(player_input[keynum]->name, "secondary")==0) {
+  else if(KEY("secondary")) {
     if(value == KEY_PRESS) player_setFlag(PLAYER_SECONDARY);
     else if(value == KEY_RELEASE) player_rmFlag(PLAYER_SECONDARY);
   }
   // Selecting secondary weapon.
-  else if(strcmp(player_input[keynum]->name, "secondary_next")==0) {
+  else if(KEY("secondary_next")) {
     if(value == KEY_PRESS) player_secondaryNext();
   }
   // Target planet (cycles just like target).
-  else if(strcmp(player_input[keynum]->name, "target_planet")==0) {
+  else if(KEY("target_planet")) {
     if(value == KEY_PRESS) player_targetPlanet();
   }
   // Target nearest planet or attempt to land.
-  else if(strcmp(player_input[keynum]->name, "land")==0) {
+  else if(KEY("land")) {
     if(value == KEY_PRESS) player_land();
   }
   // Zoom in.
-  else if(strcmp(player_input[keynum]->name, "mapzoomin")==0) {
-    if((value == KEY_PRESS) && (gui.radar.res < RADAR_RES_MAX))
-      gui.radar.res += RADAR_RES_INTERVAL;
+  else if(KEY("mapzoomin")) {
+    if(value == KEY_PRESS) player_setRadarRel(1);
   }
   // Zoom out.
-  else if(strcmp(player_input[keynum]->name, "mapzoomout")==0) {
-    if((value == KEY_PRESS) && (gui.radar.res > RADAR_RES_MIN))
-      gui.radar.res -= RADAR_RES_INTERVAL;
+  else if(KEY("mapzoomout")) {
+    if(value == KEY_PRESS) player_setRadarRel(-1);
   }
   // Take a screenshot.
-  else if(strcmp(player_input[keynum]->name, "screenshot")==0) {
+  else if(KEY("screenshot")) {
     if(value == KEY_PRESS) player_screenshot();
   }
 }
@@ -197,8 +199,8 @@ static void input_keyup(SDLKey key);
 static void input_joyaxis(const unsigned int axis, const int value) {
   int i;
   for(i = 0; strcmp(keybindNames[i], "end"); i++)
-    if(player_input[i]->type == KEYBIND_JAXIS && player_input[i]->key == axis) {
-      input_key(i, -(player_input[i]->reverse) * (double)value / 32767., 1);
+    if(input_keybinds[i]->type == KEYBIND_JAXIS && input_keybinds[i]->key == axis) {
+      input_key(i, -(input_keybinds[i]->reverse) * (double)value / 32767., 1);
       return;
     }
 }
@@ -207,7 +209,7 @@ static void input_joyaxis(const unsigned int axis, const int value) {
 static void input_joydown(const unsigned int button) {
   int i;
   for(i = 0; strcmp(keybindNames[i], "end");i++)
-    if(player_input[i]->type == KEYBIND_JBUTTON && player_input[i]->key == button) {
+    if(input_keybinds[i]->type == KEYBIND_JBUTTON && input_keybinds[i]->key == button) {
       input_key(i, KEY_RELEASE, 0);
       return;
     }
@@ -217,7 +219,7 @@ static void input_joydown(const unsigned int button) {
 static void input_joyup(const unsigned int button) {
   int i;
   for(i = 0; strcmp(keybindNames[i], "end"); i++)
-    if(player_input[i]->type == KEYBIND_JBUTTON && player_input[i]->key == button) {
+    if(input_keybinds[i]->type == KEYBIND_JBUTTON && input_keybinds[i]->key == button) {
       input_key(i, KEY_RELEASE, 0);
       return;
     }
@@ -229,7 +231,7 @@ static void input_joyup(const unsigned int button) {
 static void input_keydown(SDLKey key) {
   int i;
   for(i = 0; strcmp(keybindNames[i], "end"); i++)
-    if(player_input[i]->type == KEYBIND_KEYBOARD && player_input[i]->key == key) {
+    if(input_keybinds[i]->type == KEYBIND_KEYBOARD && input_keybinds[i]->key == key) {
       input_key(i, KEY_PRESS, 0);
       return;
     }
@@ -246,7 +248,7 @@ static void input_keydown(SDLKey key) {
 static void input_keyup(SDLKey key) {
   int i;
   for(i = 0; strcmp(keybindNames[i], "end"); i++)
-    if(player_input[i]->type == KEYBIND_KEYBOARD && player_input[i]->key == key) {
+    if(input_keybinds[i]->type == KEYBIND_KEYBOARD && input_keybinds[i]->key == key) {
       input_key(i, KEY_RELEASE, 0);
       return;
     }
diff --git a/src/main.c b/src/main.c
index 005e130..01e910a 100644
--- a/src/main.c
+++ b/src/main.c
@@ -9,6 +9,7 @@
 #include "ship.h"
 #include "pilot.h"
 #include "player.h"
+#include "input.h"
 #include "joystick.h"
 #include "space.h"
 #include "rng.h"
@@ -29,7 +30,7 @@
 #define MINIMUM_FPS     0.5
 #define FONT_SIZE       12
 
-static int space = 1; // Global value, control whether or not player is flying.
+int toolkit = 0; // Toolkit has a window open.
 static int quit = 0; // Primary loop.
 static unsigned int time = 0; // Calculate FPS and movement.
 static char version[VERSION_LEN];
@@ -145,11 +146,12 @@ int main(int argc, char** argv) {
     while(SDL_PollEvent(&event)) {
       if(event.type == SDL_QUIT) quit = 1; // Handle quit.
 
-      if(space) // Player is flying around happily.
-        input_handle(&event); // handles all the events the player keybinds.
+      input_handle(&event); // handles all the events the player keybinds.
     }
 
-    if(space) {
+    if(toolkit) {
+
+    } else {
       // Player is flying around.
       update_space();
       glClear(GL_COLOR_BUFFER_BIT);
diff --git a/src/player.c b/src/player.c
index 9f47c39..34c883c 100644
--- a/src/player.c
+++ b/src/player.c
@@ -22,44 +22,14 @@
 
 #define pow2(x) ((x)*(x))
 
-// Flag definitions.
-#define PLAYER_TURN_LEFT  (1<<0)  // Player is turning left.
-#define PLAYER_TURN_RIGHT (1<<1)  // Player is turning right.
-#define PLAYER_FACE       (1<<2)  // Player is facing target.
-#define PLAYER_PRIMARY    (1<<3)  // Player is shooting primary weapon.
-#define PLAYER_SECONDARY  (1<<4)  // Player is shooting secondary weapon.
-
-// Flag functions.
-#define player_isFlag(f)  (player_flags  & f)
-#define player_setFlag(f) (player_flags |= f)
-#define player_rmFlag(f)  (player_flags ^= f)
-
-#define KEY_PRESS    ( 1.)
-#define KEY_RELEASE  (-1.)
-
-// Keybind structure.
-typedef struct {
-  char* name;       // Keybinding name, taken from keybindNames[]
-  KeybindType type; // type, defined in player.h.
-  unsigned int key; // Key/axis/button event number.
-  double reverse;   // 1. if normal, -1 if reversed, only useful for joystick axis.
-} Keybind;
-static Keybind** player_input; // Contains the players keybindings.
-// Name of each keybinding.
-const char* keybindNames[] = { "accel", "left", "right", // Movement.
-                              "primary", "target", "target_nearest", "face", "board", // Combat.
-                              "secondary", "secondary_next", // Secondary weapons.
-                              "target_planet", "land", // Navigation.
-                              "mapzoomin", "mapzoomout", "screenshot", "end" }; // Misc.
-
 // Player stuff.
 Pilot* player = NULL; // extern in pilot.h
 unsigned int credits = 0;
-static unsigned int player_flags = 0; // Player flags.
-static double player_turn = 0.; // Turn velocity from input.
-static double player_acc  = 0.; // Accel velocity from input.
-static unsigned int player_target = PLAYER_ID; // Targetted pilot.
-static int planet_target = -1; // Targetted planet.
+unsigned int player_flags = 0; // Player flags.
+double player_turn = 0.; // Turn velocity from input.
+double player_acc  = 0.; // Accel velocity from input.
+unsigned int player_target = PLAYER_ID; // Targetted pilot.
+int planet_target = -1; // Targetted planet.
 
 // Pilot stuff for GUI.
 extern Pilot** pilot_stack;
@@ -147,13 +117,6 @@ static int gui_parse(const xmlNodePtr parent, const char* name);
 static void gui_renderPilot(const Pilot* p);
 static void gui_renderBar(const glColour* c, const Vec2* p, const Rect* r, const double w);
 
-// Keybinds.
-static void player_board(void);
-static void player_secondaryNext(void);
-static void player_targetPlanet(void);
-static void player_land(void);
-static void player_screenshot(void);
-
 // Create a new player.
 void player_new(void) {
   Ship* ship;
@@ -815,6 +778,17 @@ void player_think(Pilot* player) {
   vect_pset(&player->solid->force, player->ship->thrust * player_acc, player->solid->dir);
 }
 
+// Modify the radar resolution.
+void player_setRadarRel(int mod) {
+  if(mod > 0) {
+    gui.radar.res += mod * RADAR_RES_INTERVAL;
+    if(gui.radar.res > RADAR_RES_MAX) gui.radar.res = RADAR_RES_MAX;
+  } else {
+    gui.radar.res -= mod * RADAR_RES_INTERVAL;
+    if(gui.radar.res < RADAR_RES_MIN) gui.radar.res = RADAR_RES_MIN;
+  }
+}
+
 void player_board(void) {
   Pilot* p;
 
@@ -843,7 +817,7 @@ void player_board(void) {
 }
 
 // Get the next secondary weapon.
-static void player_secondaryNext(void) {
+void player_secondaryNext(void) {
   int i = 0;
 
   // Get the current secondary weapon pos.
@@ -868,7 +842,7 @@ static void player_secondaryNext(void) {
 }
 
 // Cycle through planet targets.
-static void player_targetPlanet(void) {
+void player_targetPlanet(void) {
   if((planet_target == -1) && (cur_system->nplanets > 0)) {
     // No target.
     planet_target = 0;
@@ -883,7 +857,7 @@ static void player_targetPlanet(void) {
 }
 
 // Attempt to land or target closest planet if no land target.
-static void player_land(void) {
+void player_land(void) {
   Planet* planet = &cur_system->planets[planet_target];
   if(planet_target >= 0) {
     if(vect_dist(&player->solid->vel, &planet->pos) > planet->gfx_space->sw) {
@@ -914,262 +888,10 @@ static void player_land(void) {
 }
 
 // Take a screenshot.
-static void player_screenshot(void) {
+void player_screenshot(void) {
   char filename[20];
   // TODO not overwirte old screenshots.
   strncpy(filename, "screenshot.png", 20);
   gl_screenshot(filename);
 }
 
-// ================
-// INPUT!
-// ================
-
-// Set the default input keys.
-void input_setDefault(void) {
-  // Movement.
-  input_setKeybind("accel",           KEYBIND_KEYBOARD, SDLK_w,       0);
-  input_setKeybind("left",            KEYBIND_KEYBOARD, SDLK_a,       0);
-  input_setKeybind("right",           KEYBIND_KEYBOARD, SDLK_d,       0);
-  // Combat.
-  input_setKeybind("primary",         KEYBIND_KEYBOARD, SDLK_SPACE,   0);
-  input_setKeybind("target",          KEYBIND_KEYBOARD, SDLK_TAB,     0);
-  input_setKeybind("target_nearest",  KEYBIND_KEYBOARD, SDLK_r,       0);
-  input_setKeybind("face",            KEYBIND_KEYBOARD, SDLK_f,       0);
-  input_setKeybind("board",           KEYBIND_KEYBOARD, SDLK_b,       0);
-  // Secondary weapon.
-  input_setKeybind("secondary",       KEYBIND_KEYBOARD, SDLK_LSHIFT,  0);
-  input_setKeybind("secondary_next",  KEYBIND_KEYBOARD, SDLK_q,       0);
-  // Space
-  input_setKeybind("target_planet",   KEYBIND_KEYBOARD, SDLK_p,       0);
-  input_setKeybind("land",            KEYBIND_KEYBOARD, SDLK_l,       0);
-  // Misc.
-  input_setKeybind("mapzoomin",       KEYBIND_KEYBOARD, SDLK_UP,      0);
-  input_setKeybind("mapzoomout",      KEYBIND_KEYBOARD, SDLK_DOWN,    0);
-  input_setKeybind("screenshot",      KEYBIND_KEYBOARD, SDLK_F12,     0);
-}
-
-// Initialization/exit functions (does not assign keys).
-void input_init(void) {
-  Keybind* tmp;
-  int i;
-  for(i = 0; strcmp(keybindNames[i], "end"); i++); // Get number of bindings.
-  player_input = malloc(i*sizeof(Keybind*));
-
-  // Create a null keybinding for each.
-  for(i = 0; strcmp(keybindNames[i], "end"); i++) {
-    tmp = MALLOC_L(Keybind);
-    tmp->name = (char*)keybindNames[i];
-    tmp->type = KEYBIND_NULL;
-    tmp->key = 0;
-    tmp->reverse = 1.;
-    player_input[i] = tmp;
-  }
-}
-
-void input_exit(void) {
-  int i;
-  for(i = 0; strcmp(keybindNames[i], "end"); i++)
-    free(player_input[i]);
-  free(player_input);
-}
-
-// Binds key of type [type] to action keybind.
-void input_setKeybind(char* keybind, KeybindType type, int key, int reverse) {
-  int i;
-  for(i = 0; strcmp(keybindNames[i], "end"); i++)
-    if(strcmp(keybind, player_input[i]->name)==0) {
-      player_input[i]->type = type;
-      player_input[i]->key = key;
-      player_input[i]->reverse = reverse ? -1. : 1.;
-      return;
-    }
-  WARN("Unable to set keybind '%s', That command does not exist.", keybind);
-}
-
-// == Run input method. ================================================
-// keynum : Index of the player_input keybind.
-// value  : Value of keypress (defined above).
-// abs    : Whether or not it's an abs value (For those pesky joysticks.
-// =====================================================================
-static void input_key(int keynum, double value, int abs) {
-  // Accelerating.
-  if(strcmp(player_input[keynum]->name, "accel")==0) {
-    if(abs)player_acc = value;
-    else player_acc += value;
-    player_acc = ABS(player_acc); // Make sure value is sane.
-  }
-  // Turning left.
-  else if(strcmp(player_input[keynum]->name, "left")==0) {
-    // Set flags for facing correction.
-    if(value == KEY_PRESS) player_setFlag(PLAYER_TURN_LEFT);
-    else if(value == KEY_RELEASE) player_rmFlag(PLAYER_TURN_LEFT);
-
-    if(abs)player_turn = -value;
-    else player_turn -= value;
-    if(player_turn < -1.) player_turn = -1.; // Make sure value is sane.
-  }
-  // Turning right.
-  else if(strcmp(player_input[keynum]->name, "right")==0) {
-    // Set flags for facing correction.
-    if(value == KEY_PRESS) player_setFlag(PLAYER_TURN_RIGHT);
-    else if(value == KEY_RELEASE) player_rmFlag(PLAYER_TURN_RIGHT);
-   
-    if(abs) player_turn = value;
-    else player_turn += value;
-    
-    if(player_turn < -1.) player_turn = -1.; // Make sure value is sane.
-  }
-  // Shoot primary weapon. BOOM BOOM.
-  else if(strcmp(player_input[keynum]->name, "primary")==0) {
-    if(value == KEY_PRESS) player_setFlag(PLAYER_PRIMARY);
-    else if(value == KEY_RELEASE) player_rmFlag(PLAYER_PRIMARY);
-  }
-  // Targetting.
-  else if(strcmp(player_input[keynum]->name, "target")==0) {
-    if(value == KEY_PRESS) player_target = pilot_getNext(player_target);
-  }
-  else if(strcmp(player_input[keynum]->name, "target_nearest")==0) {
-    if(value == KEY_PRESS) player_target = pilot_getHostile();
-  }
-  // Face the target.
-  else if(strcmp(player_input[keynum]->name, "face")==0) {
-    if(value == KEY_PRESS) player_setFlag(PLAYER_FACE);
-    else if(value == KEY_RELEASE) {
-      player_rmFlag(PLAYER_FACE);
-
-      // Turning corrections.
-      player_turn = 0;
-      if(player_isFlag(PLAYER_TURN_LEFT))  player_turn -= 1;
-      if(player_isFlag(PLAYER_TURN_RIGHT)) player_turn += 1;
-    }
-  }
-  // Board those ships.
-  else if(strcmp(player_input[keynum]->name, "board")==0) {
-    if(value == KEY_PRESS) player_board();
-  }
-  // Shooting secondary weapon.
-  else if(strcmp(player_input[keynum]->name, "secondary")==0) {
-    if(value == KEY_PRESS) player_setFlag(PLAYER_SECONDARY);
-    else if(value == KEY_RELEASE) player_rmFlag(PLAYER_SECONDARY);
-  }
-  // Selecting secondary weapon.
-  else if(strcmp(player_input[keynum]->name, "secondary_next")==0) {
-    if(value == KEY_PRESS) player_secondaryNext();
-  }
-  // Target planet (cycles just like target).
-  else if(strcmp(player_input[keynum]->name, "target_planet")==0) {
-    if(value == KEY_PRESS) player_targetPlanet();
-  }
-  // Target nearest planet or attempt to land.
-  else if(strcmp(player_input[keynum]->name, "land")==0) {
-    if(value == KEY_PRESS) player_land();
-  }
-  // Zoom in.
-  else if(strcmp(player_input[keynum]->name, "mapzoomin")==0) {
-    if((value == KEY_PRESS) && (gui.radar.res < RADAR_RES_MAX))
-      gui.radar.res += RADAR_RES_INTERVAL;
-  }
-  // Zoom out.
-  else if(strcmp(player_input[keynum]->name, "mapzoomout")==0) {
-    if((value == KEY_PRESS) && (gui.radar.res > RADAR_RES_MIN))
-      gui.radar.res -= RADAR_RES_INTERVAL;
-  }
-  // Take a screenshot.
-  else if(strcmp(player_input[keynum]->name, "screenshot")==0) {
-    if(value == KEY_PRESS) player_screenshot();
-  }
-}
-
-// --Events--
-
-static void input_joyaxis(const unsigned int axis, const int value);
-static void input_joydown(const unsigned int button);
-static void input_joyup(const unsigned int button);
-static void input_keydown(SDLKey key);
-static void input_keyup(SDLKey key);
-
-// Joystick.
-
-// Axis.
-static void input_joyaxis(const unsigned int axis, const int value) {
-  int i;
-  for(i = 0; strcmp(keybindNames[i], "end"); i++)
-    if(player_input[i]->type == KEYBIND_JAXIS && player_input[i]->key == axis) {
-      input_key(i, -(player_input[i]->reverse) * (double)value / 32767., 1);
-      return;
-    }
-}
-
-// Joystick button down.
-static void input_joydown(const unsigned int button) {
-  int i;
-  for(i = 0; strcmp(keybindNames[i], "end");i++)
-    if(player_input[i]->type == KEYBIND_JBUTTON && player_input[i]->key == button) {
-      input_key(i, KEY_RELEASE, 0);
-      return;
-    }
-}
-
-// Joystick button up.
-static void input_joyup(const unsigned int button) {
-  int i;
-  for(i = 0; strcmp(keybindNames[i], "end"); i++)
-    if(player_input[i]->type == KEYBIND_JBUTTON && player_input[i]->key == button) {
-      input_key(i, KEY_RELEASE, 0);
-      return;
-    }
-}
-
-// Keyboard.
-
-// Key down.
-static void input_keydown(SDLKey key) {
-  int i;
-  for(i = 0; strcmp(keybindNames[i], "end"); i++)
-    if(player_input[i]->type == KEYBIND_KEYBOARD && player_input[i]->key == key) {
-      input_key(i, KEY_PRESS, 0);
-      return;
-    }
-
-  // Fire Escape.
-  SDL_Event quit;
-  if(key == SDLK_ESCAPE) {
-    quit.type = SDL_QUIT;
-    SDL_PushEvent(&quit);
-  }
-}
-
-// Key up.
-static void input_keyup(SDLKey key) {
-  int i;
-  for(i = 0; strcmp(keybindNames[i], "end"); i++)
-    if(player_input[i]->type == KEYBIND_KEYBOARD && player_input[i]->key == key) {
-      input_key(i, KEY_RELEASE, 0);
-      return;
-    }
-}
-
-// Global input.
-
-// Just seperates the event types.
-void input_handle(SDL_Event* event) {
-  switch(event->type) {
-    case SDL_JOYAXISMOTION:
-      input_joyaxis(event->jaxis.axis, event->jaxis.value);
-      break;
-    case SDL_JOYBUTTONDOWN:
-      input_joydown(event->jbutton.button);
-      break;
-    case SDL_JOYBUTTONUP:
-      input_joyup(event->jbutton.button);
-      break;
-    case SDL_KEYDOWN:
-      input_keydown(event->key.keysym.sym);
-      break;
-    case SDL_KEYUP:
-      input_keyup(event->key.keysym.sym);
-      break;
-  }
-}
-
diff --git a/src/player.h b/src/player.h
index aeeee7b..7bb9a04 100644
--- a/src/player.h
+++ b/src/player.h
@@ -31,3 +31,11 @@ void player_render(void);
 // Misc.
 void player_message(const char* fmt, ...);
 
+// Keybind actions.
+void player_setRadarRel(int mod);
+void player_board(void);
+void player_secondaryNext(void);
+void player_targetPlanet(void);
+void player_land(void);
+void player_screenshot(void);
+