2
0
Эх сурвалжийг харах

bullet: Corrected possible false check

        - When a bullet world is created it sets the filter
        algorithm callback that will use. Later changes to
        PRC config data should not lead to false assumptions
        that the bullet world is working with the new config.

Signed-off-by: deflected <[email protected]>

Closes #289
deflected 7 жил өмнө
parent
commit
5fec62b6fa

+ 4 - 3
panda/src/bullet/bulletWorld.cxx

@@ -82,7 +82,8 @@ BulletWorld() {
   _world->getPairCache()->setInternalGhostPairCallback(&_ghost_cb);
   _world->getPairCache()->setInternalGhostPairCallback(&_ghost_cb);
 
 
   // Filter callback
   // Filter callback
-  switch (bullet_filter_algorithm) {
+  _filter_algorithm = bullet_filter_algorithm;
+  switch (_filter_algorithm) {
     case FA_mask:
     case FA_mask:
       _filter_cb = &_filter_cb1;
       _filter_cb = &_filter_cb1;
       break;
       break;
@@ -1086,7 +1087,7 @@ void BulletWorld::
 set_group_collision_flag(unsigned int group1, unsigned int group2, bool enable) {
 set_group_collision_flag(unsigned int group1, unsigned int group2, bool enable) {
   LightMutexHolder holder(get_global_lock());
   LightMutexHolder holder(get_global_lock());
 
 
-  if (bullet_filter_algorithm != FA_groups_mask) {
+  if (_filter_algorithm != FA_groups_mask) {
     bullet_cat.warning() << "filter algorithm is not 'groups-mask'" << endl;
     bullet_cat.warning() << "filter algorithm is not 'groups-mask'" << endl;
   }
   }
 
 
@@ -1198,7 +1199,7 @@ set_filter_callback(CallbackObject *obj) {
 
 
   nassertv(obj != NULL);
   nassertv(obj != NULL);
 
 
-  if (bullet_filter_algorithm != FA_callback) {
+  if (_filter_algorithm != FA_callback) {
     bullet_cat.warning() << "filter algorithm is not 'callback'" << endl;
     bullet_cat.warning() << "filter algorithm is not 'callback'" << endl;
   }
   }
 
 

+ 1 - 0
panda/src/bullet/bulletWorld.h

@@ -265,6 +265,7 @@ private:
 
 
   btGhostPairCallback _ghost_cb;
   btGhostPairCallback _ghost_cb;
 
 
+  FilterAlgorithm _filter_algorithm;
   btFilterCallback1 _filter_cb1;
   btFilterCallback1 _filter_cb1;
   btFilterCallback2 _filter_cb2;
   btFilterCallback2 _filter_cb2;
   btFilterCallback3 _filter_cb3;
   btFilterCallback3 _filter_cb3;