Exemplo n.º 1
0
	void CGameObject::_DestroySubtree(CGameObject *NextObject)
	{
		if (NextObject == NULL)
			return;
		for (vector<CGameObject *>::iterator i = NextObject->Children.begin(); i != NextObject->Children.end(); ++i)
			_DestroySubtree(*i);
		NextObject->SetDestroyed();
	}
Exemplo n.º 2
0
void CL_HeapBTreeNodeSpace::_DestroySubtree (CL_BTreeNodeHandle h)
{
    // Do a post-order walk, destroying nodes as we go along
    if (!h)
        return;
    CL_GenericBTreeNode* node = (CL_GenericBTreeNode*) h;
    register short n = node->Size();
    for (register short i = 0; i <= n; i++)
        _DestroySubtree (node->Subtree(i));
    _Destroy (node);
}
Exemplo n.º 3
0
CL_TemplateNodeSpace<ItemType>::~CL_TemplateNodeSpace ()
{
    _DestroySubtree (_root);
    _root = NULL; // This gets rid of the items also, because this class'
                  // version of the virtual DestroyItem is called.
}
Exemplo n.º 4
0
CL_HeapBTreeNodeSpace::~CL_HeapBTreeNodeSpace ()
{
    // Traverse the tree and get rid of all the nodes
    _DestroySubtree (_root);
    _root = NULL;
}