コード例 #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();
	}
コード例 #2
0
ファイル: gbtree.cpp プロジェクト: ABratovic/open-watcom-v2
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);
}
コード例 #3
0
ファイル: tbtreimp.cpp プロジェクト: ABratovic/open-watcom-v2
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.
}
コード例 #4
0
ファイル: gbtree.cpp プロジェクト: ABratovic/open-watcom-v2
CL_HeapBTreeNodeSpace::~CL_HeapBTreeNodeSpace ()
{
    // Traverse the tree and get rid of all the nodes
    _DestroySubtree (_root);
    _root = NULL;
}