diff --git a/src/Input/FGJoystickInput.cxx b/src/Input/FGJoystickInput.cxx index 349782d5b..17f1f3557 100644 --- a/src/Input/FGJoystickInput.cxx +++ b/src/Input/FGJoystickInput.cxx @@ -119,6 +119,14 @@ void FGJoystickInput::init() } } +void FGJoystickInput::reinit() { + SG_LOG(SG_INPUT, SG_DEBUG, "Re-Initializing joystick bindings"); + SGPropertyNode * js_nodes = fgGetNode("/input/joysticks", true); + js_nodes->removeChildren("js", false); + FGJoystickInput::init(); + FGJoystickInput::postinit(); +} + void FGJoystickInput::postinit() { FGNasalSys *nasalsys = (FGNasalSys *)globals->get_subsystem("nasal"); diff --git a/src/Input/FGJoystickInput.hxx b/src/Input/FGJoystickInput.hxx index ef1530ec0..039401e29 100644 --- a/src/Input/FGJoystickInput.hxx +++ b/src/Input/FGJoystickInput.hxx @@ -44,6 +44,7 @@ public: virtual void init(); virtual void postinit(); + virtual void reinit(); virtual void update( double dt ); static const int MAX_JOYSTICKS = 10;