diff options
author | Benoit Bolsee <benoit.bolsee@online.be> | 2008-04-25 01:26:39 +0400 |
---|---|---|
committer | Benoit Bolsee <benoit.bolsee@online.be> | 2008-04-25 01:26:39 +0400 |
commit | 9b9359120fdac93b822cfaacf98d0d498cef3887 (patch) | |
tree | 911b8c6f433422725de279f1a801ced9be05e7ca /source/gameengine/GameLogic/SCA_LogicManager.cpp | |
parent | 4d1d60e236fa90cd34b99bd06814e65255f9dc91 (diff) |
BGE bug: fix a crash at game exit caused by inconsistent controller map after object deletion. The bug became apparent since the memory leaks have been fixed.
Diffstat (limited to 'source/gameengine/GameLogic/SCA_LogicManager.cpp')
-rw-r--r-- | source/gameengine/GameLogic/SCA_LogicManager.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/source/gameengine/GameLogic/SCA_LogicManager.cpp b/source/gameengine/GameLogic/SCA_LogicManager.cpp index bd1c44fb91e..49f01d643e5 100644 --- a/source/gameengine/GameLogic/SCA_LogicManager.cpp +++ b/source/gameengine/GameLogic/SCA_LogicManager.cpp @@ -174,6 +174,14 @@ void SCA_LogicManager::RemoveSensor(SCA_ISensor* sensor) } } +void SCA_LogicManager::RemoveController(SCA_IController* controller) +{ + std::map<SCA_ISensor*,controllerlist>::iterator sit; + for (sit = m_sensorcontrollermapje.begin();!(sit==m_sensorcontrollermapje.end());++sit) + { + (*sit).second.remove(controller); + } +} void SCA_LogicManager::RemoveDestroyedActuator(SCA_IActuator* actuator) |