Collision Issue and Removing Objects

Go down

Collision Issue and Removing Objects

Post  uprise78 on Fri May 01, 2009 11:35 am

I am having a problem with sio2sensor and the collision callback system. There was a post with a similar issue ( but no solution was posted. If I try to remove the sio2sensor in the collisionCallback I get a crash in sio2PhysicCollisionCallback every time.

My collision callback in it's simplest form is here:


void collisionCallback( void * )
   // Destroy the sensor
   SIO2sensor *_SIO2sensor = ( SIO2sensor * )sio2ResourceGet( sio2->_SIO2resource, SIO2_SENSOR, "mySensor" );
   _SIO2sensor = sio2SensorFree( _SIO2sensor );

The sensor loop in sio2PhysicCollisionCallback starts like this:


  unsigned int i = 0;
  while( i != sio2->_SIO2resource->n_sensor )

It appears as though the problem lies in the while loop. The first iteration through the while loop i = 0 and _SIO2resource->n_sensor = 1 so the loop condition passes as it should. i gets incremented at the bottom of the loop making i = 1. _SIO2resource->n_sensor gets decremented by the sio2SensorFree() call so it is equal to 0. 1 != 0 passes the while condition and we get an endless loop and a buffer overrun in there.

Perhaps the loop should be:


  while( i < sio2->_SIO2resource->n_sensor )

My other issues comes with object deletion. What is the correct way to completely remove an sio2object from a scene and when should it be done (before or after the render loop I assume)? I have tried various things and the closest I have come is:


      // Remove the object from the physics world
      sio2PhysicRemoveObject( sio2->_SIO2physic, someObject );
      // Delete object from the resource manager
      sio2ResourceDel( sio2->_SIO2resource, SIO2_OBJECT, someObject );
      sio2ObjectFree( someObject );

It appears that freeing the object may leave some remnants of some sort...


Posts : 228
Join date : 2008-10-31

View user profile

Back to top Go down

Back to top

- Similar topics

Permissions in this forum:
You cannot reply to topics in this forum