2 @Copyright Looking Glass Studios, Inc.
3 1996,1997,1998,1999,2000 Unpublished Work.
6 // $Header: r:/t2repos/thief2/src/object/traisrch.cpp,v 1.9 1998/10/05 17:28:33 mahk Exp $
12 // Must be last header
17 template LinkQueryList
;
18 template LinkQueryList::cParent
;
19 //template cSimpleStack<QueryPtr>;
20 template cDList
<class cSimpleDListNode
<class QueryPtr
>,1>;
23 ////////////////////////////////////////////////////////////
25 // cDepthFirstDonorQuery
27 ////////////////////////////////////////////////////////////
29 STDMETHODIMP_(BOOL
) cDepthFirstObjectQuery::Done()
31 return CurObj
== OBJ_NULL
;
34 STDMETHODIMP_(ObjID
) cDepthFirstObjectQuery::Object()
39 STDMETHODIMP
cDepthFirstObjectQuery::Next()
49 CurObj
= Queries
.Top()->Object();
54 BOOL
cDepthFirstObjectQuery::Expand()
56 if (CurObj
== OBJ_NULL
)
59 IObjectQuery
* query
= Successors(CurObj
);
61 return !query
->Done();
64 BOOL
cDepthFirstObjectQuery::Contract()
66 if (Queries
.Top() == NULL
)
69 while(Queries
.Top()->Done())
71 Queries
.Pop()->Release();
72 if (Queries
.Top() == NULL
)
74 Queries
.Top()->Next();
79 ////////////////////////////////////////
81 BOOL
cConcretenessFilterQuery::Filter(ObjID obj
)
86 return OBJ_IS_CONCRETE(obj
);
89 return OBJ_IS_ABSTRACT(obj
);
95 Warning(("Unknown concreteness for query: %d\n",Which
));