public Boolean execute()
{
Boolean overlapProcessed = false;
FlxList iterator;
if(_headA.Object != null)
{
iterator = _headA;
while(iterator != null)
{
_object = iterator.Object;
if(_useBothLists)
_iterator = _headB;
else
_iterator = iterator.next;
if( _object.Exists && (_object.AllowCollisions > 0) &&
(_iterator != null) && (_iterator.Object != null) &&
_iterator.Object.Exists && overlapNode())
{
overlapProcessed = true;
}
iterator = iterator.next;
}
}
//Advance through the tree by calling overlap on each child
if((_northWestTree != null) && _northWestTree.execute())
overlapProcessed = true;
if((_northEastTree != null) && _northEastTree.execute())
overlapProcessed = true;
if((_southEastTree != null) && _southEastTree.execute())
overlapProcessed = true;
if((_southWestTree != null) && _southWestTree.execute())
overlapProcessed = true;
return overlapProcessed;
}