[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [15590] trunk/blender/source/gameengine/ Ketsji: BGE bug fix (good for 2.47): radar and near sensor did not filter correctly the collisioning objects based on ACTOR flag when the parent object was added dynamically .

Benoit Bolsee benoit.bolsee at online.be
Tue Jul 15 20:57:10 CEST 2008


Revision: 15590
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=15590
Author:   ben2610
Date:     2008-07-15 20:57:10 +0200 (Tue, 15 Jul 2008)

Log Message:
-----------
BGE bug fix (good for 2.47): radar and near sensor did not filter correctly the collisioning objects based on ACTOR flag when the parent object was added dynamically. This could result in a very big performance decrease.

Modified Paths:
--------------
    trunk/blender/source/gameengine/Ketsji/KX_NearSensor.cpp
    trunk/blender/source/gameengine/Ketsji/KX_RadarSensor.cpp

Modified: trunk/blender/source/gameengine/Ketsji/KX_NearSensor.cpp
===================================================================
--- trunk/blender/source/gameengine/Ketsji/KX_NearSensor.cpp	2008-07-15 18:12:08 UTC (rev 15589)
+++ trunk/blender/source/gameengine/Ketsji/KX_NearSensor.cpp	2008-07-15 18:57:10 UTC (rev 15590)
@@ -135,9 +135,6 @@
 
 void KX_NearSensor::ReParent(SCA_IObject* parent)
 {
-
-	SCA_ISensor::ReParent(parent);
-	
 	m_client_info->m_gameobject = static_cast<KX_GameObject*>(parent); 
 	m_client_info->m_sensors.push_back(this);
 	
@@ -151,6 +148,7 @@
 */
 	((KX_GameObject*)GetParent())->GetSGNode()->ComputeWorldTransforms(NULL);
 	SynchronizeTransform();
+	SCA_ISensor::ReParent(parent);
 }
 
 

Modified: trunk/blender/source/gameengine/Ketsji/KX_RadarSensor.cpp
===================================================================
--- trunk/blender/source/gameengine/Ketsji/KX_RadarSensor.cpp	2008-07-15 18:12:08 UTC (rev 15589)
+++ trunk/blender/source/gameengine/Ketsji/KX_RadarSensor.cpp	2008-07-15 18:57:10 UTC (rev 15590)
@@ -92,6 +92,10 @@
 	if (replica->m_physCtrl)
 	{
 		replica->m_physCtrl = replica->m_physCtrl->GetReplica();
+		if (replica->m_physCtrl)
+		{
+			replica->m_physCtrl->setNewClientInfo(replica->m_client_info);
+		}
 	}
 
 	//todo: make sure replication works fine!





More information about the Bf-blender-cvs mailing list