[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [50564] trunk/blender/source/gameengine/ Ketsji/KX_Scene.cpp: BGE: LibLoaded sensors that made use of physics controllers (touch, collision) could cause various physics problems (like infinite loops in Bullet, etc).
Mitchell Stokes
mogurijin at gmail.com
Thu Sep 13 02:46:52 CEST 2012
Revision: 50564
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=50564
Author: moguri
Date: 2012-09-13 00:46:50 +0000 (Thu, 13 Sep 2012)
Log Message:
-----------
BGE: LibLoaded sensors that made use of physics controllers (touch, collision) could cause various physics problems (like infinite loops in Bullet, etc). This happened because their KX_TouchEventManagers were merged prior to having their physics controllers merged, which has now been fixed. Thanks to Kupoman for hunting down the fix!
Modified Paths:
--------------
trunk/blender/source/gameengine/Ketsji/KX_Scene.cpp
Modified: trunk/blender/source/gameengine/Ketsji/KX_Scene.cpp
===================================================================
--- trunk/blender/source/gameengine/Ketsji/KX_Scene.cpp 2012-09-13 00:26:01 UTC (rev 50563)
+++ trunk/blender/source/gameengine/Ketsji/KX_Scene.cpp 2012-09-13 00:46:50 UTC (rev 50564)
@@ -1727,11 +1727,6 @@
brick->Replace_IScene(to);
brick->Replace_NetworkScene(to->GetNetworkScene());
- SCA_ISensor *sensor= dynamic_cast<class SCA_ISensor *>(brick);
- if (sensor) {
- sensor->Replace_EventManager(logicmgr);
- }
-
/* near sensors have physics controllers */
#ifdef USE_BULLET
KX_TouchSensor *touch_sensor = dynamic_cast<class KX_TouchSensor *>(brick);
@@ -1739,6 +1734,14 @@
touch_sensor->GetPhysicsController()->SetPhysicsEnvironment(to->GetPhysicsEnvironment());
}
#endif
+
+ // If we end up replacing a KX_TouchEventManager, we need to make sure
+ // physics controllers are properly in place. In other words, do this
+ // after merging physics controllers!
+ SCA_ISensor *sensor= dynamic_cast<class SCA_ISensor *>(brick);
+ if (sensor) {
+ sensor->Replace_EventManager(logicmgr);
+ }
}
#ifdef USE_BULLET
More information about the Bf-blender-cvs
mailing list