[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [20548] trunk/blender/source/gameengine/ Ketsji: BGE bug fix: dynamically added sensor objects didn' t have their physic shape synchronized with movement.

Benoit Bolsee benoit.bolsee at online.be
Mon Jun 1 11:44:41 CEST 2009


Revision: 20548
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=20548
Author:   ben2610
Date:     2009-06-01 11:44:41 +0200 (Mon, 01 Jun 2009)

Log Message:
-----------
BGE bug fix: dynamically added sensor objects didn't have their physic shape synchronized with movement.

Modified Paths:
--------------
    trunk/blender/source/gameengine/Ketsji/KX_BulletPhysicsController.cpp
    trunk/blender/source/gameengine/Ketsji/KX_ConvertPhysicsObjects.cpp

Modified: trunk/blender/source/gameengine/Ketsji/KX_BulletPhysicsController.cpp
===================================================================
--- trunk/blender/source/gameengine/Ketsji/KX_BulletPhysicsController.cpp	2009-06-01 09:44:13 UTC (rev 20547)
+++ trunk/blender/source/gameengine/Ketsji/KX_BulletPhysicsController.cpp	2009-06-01 09:44:41 UTC (rev 20548)
@@ -92,7 +92,13 @@
 	gameobj->SetPhysicsController(this,gameobj->IsDynamic());
 	CcdPhysicsController::setNewClientInfo(gameobj->getClientInfo());
 
-
+	if (m_bSensor)
+	{
+		// use a different callback function for sensor object, 
+		// bullet will not synchronize, we must do it explicitely
+		SG_Callbacks& callbacks = gameobj->GetSGNode()->GetCallBackFunctions();
+		callbacks.m_updatefunc = KX_GameObject::SynchronizeTransformFunc;
+	} 
 }
 
 MT_Scalar KX_BulletPhysicsController::GetRadius()

Modified: trunk/blender/source/gameengine/Ketsji/KX_ConvertPhysicsObjects.cpp
===================================================================
--- trunk/blender/source/gameengine/Ketsji/KX_ConvertPhysicsObjects.cpp	2009-06-01 09:44:13 UTC (rev 20547)
+++ trunk/blender/source/gameengine/Ketsji/KX_ConvertPhysicsObjects.cpp	2009-06-01 09:44:41 UTC (rev 20548)
@@ -1115,15 +1115,8 @@
 		shapeInfo->Release();
 
 	gameobj->SetPhysicsController(physicscontroller,isbulletdyna);
-	if (isbulletsensor)
-	{
-		// use a different callback function for sensor object, 
-		// bullet will not synchronize, we must do it explicitely
-		SG_Callbacks& callbacks = gameobj->GetSGNode()->GetCallBackFunctions();
-		callbacks.m_updatefunc = KX_GameObject::SynchronizeTransformFunc;
-	} 
 	// don't add automatically sensor object, they are added when a collision sensor is registered
-	else if (objprop->m_in_active_layer)
+	if (!isbulletsensor && objprop->m_in_active_layer)
 	{
 		env->addCcdPhysicsController( physicscontroller);
 	}





More information about the Bf-blender-cvs mailing list