Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenoit Bolsee <benoit.bolsee@online.be>2008-10-17 03:33:40 +0400
committerBenoit Bolsee <benoit.bolsee@online.be>2008-10-17 03:33:40 +0400
commitc119fb6e51b07faec288c5b20739b773f24cc748 (patch)
tree0c80bc9ac0fa0a61d77c16f87a8c46e468fcb369 /source/gameengine/Ketsji/KX_TouchSensor.cpp
parentd8d2358ab2b31ec5cd3b87b336589db3b22341b3 (diff)
BGE showstopper bug fix:
- Reset hit object pointer at end of frame of touch sensor to avoid returning invalid pointer to getHitObject(). - Clear all references in KX_TouchSensor::m_colliders when the sensor is disabled to avoid loose references. - Test GetSGNode() systematically for all KX_GameObject functions that can be called from python in case a python controller keeps a reference in GameLogic (bad practice anyway).
Diffstat (limited to 'source/gameengine/Ketsji/KX_TouchSensor.cpp')
-rw-r--r--source/gameengine/Ketsji/KX_TouchSensor.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/source/gameengine/Ketsji/KX_TouchSensor.cpp b/source/gameengine/Ketsji/KX_TouchSensor.cpp
index 41757a23f7a..2802da2723d 100644
--- a/source/gameengine/Ketsji/KX_TouchSensor.cpp
+++ b/source/gameengine/Ketsji/KX_TouchSensor.cpp
@@ -55,9 +55,17 @@ void KX_TouchSensor::SynchronizeTransform()
void KX_TouchSensor::EndFrame() {
m_colliders->ReleaseAndRemoveAll();
+ m_hitObject = NULL;
m_bTriggered = false;
}
+void KX_TouchSensor::UnregisterToManager()
+{
+ // before unregistering the sensor, make sure we release all references
+ EndFrame();
+ m_eventmgr->RemoveSensor(this);
+}
+
bool KX_TouchSensor::Evaluate(CValue* event)
{
bool result = false;