// Set up joysticks void _Input::InitializeJoysticks(bool ShowLog) { // Check to see if the real device has been made yet IrrlichtDevice *Device = irrDevice; if(Device == nullptr) { SIrrlichtCreationParameters Parameters; Parameters.DriverType = video::EDT_NULL; Parameters.LoggingLevel = ELL_ERROR; Device = createDeviceEx(Parameters); } // Find joysticks if(Device->activateJoysticks(Joysticks) && ShowLog) { Log.Write("%d joystick(s) found.", Joysticks.size()); for(uint32_t i = 0; i < Joysticks.size(); i++) { Log.Write("Joystick %d", i); Log.Write("\tName: %s", Joysticks[i].Name.c_str()); Log.Write("\tAxes: %d", Joysticks[i].Axes); Log.Write("\tButtons: %d", Joysticks[i].Buttons); switch(Joysticks[i].PovHat) { case SJoystickInfo::POV_HAT_PRESENT: Log.Write("\tHat is present"); break; case SJoystickInfo::POV_HAT_ABSENT: Log.Write("\tHat is absent"); break; case SJoystickInfo::POV_HAT_UNKNOWN: default: Log.Write("\tHat is unknown"); break; } } } // Drop the temporary device if(irrDevice == nullptr) Device->drop(); }