enum CollisionGroup {
/** Objects in DISABLED group are not tested for collisions */
- COLGROUP_DISABLED,
+ COLGROUP_DISABLED = 0,
/**
* "default" is moving object. MovingObjects get tested against all other
* objects and against other movingobjects
/** TODO write docu :-/ */
COLGROUP_MOVING_STATIC,
/**
- * Doesn't move and isn't explicitely checked for collisions with other
+ * Doesn't move and isn't explicitly checked for collisions with other
* objects (but other objects might check with this)
* The difference to COLGROUP_TOUCHABLE is that we can do multiple
* collision response tests in a row which is needed for static object
*/
COLGROUP_STATIC,
/**
- * Isn't explicitely checked for collisions with other objects. But other
+ * Isn't explicitly checked for collisions with other objects. But other
* objects might check with this object.
* Difference to COLGROUP_STATIC is that collisions with this object are
* only tested once and collision response is typically not handled
{
(void) hit;
}
+ /**
+ * when 2 objects collided, we will first call the pre_collision_check
+ * functions of both objects that can decide on how to react to the collision.
+ */
+ virtual bool collides(GameObject& other, const CollisionHit& hit)
+ {
+ (void) other;
+ (void) hit;
+ return true;
+ }
/** this function is called when the object collided with any other object */
virtual HitResponse collision(GameObject& other, const CollisionHit& hit) = 0;
/** called when tiles with special attributes have been touched */
return movement;
}
- /** places the moving object at a specific position. Be carefull when
+ /** places the moving object at a specific position. Be careful when
* using this function. There are no collision detection checks performed
* here so bad things could happen.
*/