diff options
Diffstat (limited to 'source/gameengine/GameLogic/SCA_JoystickManager.cpp')
-rw-r--r-- | source/gameengine/GameLogic/SCA_JoystickManager.cpp | 43 |
1 files changed, 25 insertions, 18 deletions
diff --git a/source/gameengine/GameLogic/SCA_JoystickManager.cpp b/source/gameengine/GameLogic/SCA_JoystickManager.cpp index a095ad2a594..f3ce549a637 100644 --- a/source/gameengine/GameLogic/SCA_JoystickManager.cpp +++ b/source/gameengine/GameLogic/SCA_JoystickManager.cpp @@ -40,42 +40,49 @@ SCA_JoystickManager::SCA_JoystickManager(class SCA_LogicManager* logicmgr) : SCA_EventManager(JOY_EVENTMGR), m_logicmgr(logicmgr) { - m_joystick = new SCA_Joystick(); - m_joystick->CreateJoystickDevice(); + int i; + for (i=0; i<JOYINDEX_MAX; i++) { + m_joystick[i] = SCA_Joystick::GetInstance( i ); + } } SCA_JoystickManager::~SCA_JoystickManager() { - m_joystick->DestroyJoystickDevice(); - delete m_joystick; + int i; + for (i=0; i<JOYINDEX_MAX; i++) { + if(m_joystick[i]) + m_joystick[i]->ReleaseInstance(); + } } void SCA_JoystickManager::NextFrame(double curtime,double deltatime) { - for (unsigned int i = 0; i < m_sensors.size(); i++) - { - SCA_JoystickSensor* joysensor = (SCA_JoystickSensor*) m_sensors[i]; - if(!joysensor->IsSuspended()) + if (m_sensors.size()==0) { + return; + } + else { + set<SCA_ISensor*>::iterator it; +#ifndef DISABLE_SDL + SCA_Joystick::HandleEvents(); /* Handle all SDL Joystick events */ +#endif + for (it = m_sensors.begin(); it != m_sensors.end(); it++) { - m_joystick->HandleEvents(); - joysensor->Activate(m_logicmgr, NULL); + SCA_JoystickSensor* joysensor = (SCA_JoystickSensor*)(*it); + if(!joysensor->IsSuspended()) + { + joysensor->Activate(m_logicmgr, NULL); + } } } } -void SCA_JoystickManager::RegisterSensor(SCA_ISensor* sensor) -{ - m_sensors.push_back(sensor); -} - - -SCA_Joystick *SCA_JoystickManager::GetJoystickDevice() +SCA_Joystick *SCA_JoystickManager::GetJoystickDevice( short int joyindex) { /* *Return the instance of SCA_Joystick for use */ - return m_joystick; + return m_joystick[joyindex]; } |