2 @Copyright Looking Glass Studios, Inc.
3 1996,1997,1998,1999,2000 Unpublished Work.
6 ///////////////////////////////////////////////////////////////////////////////
7 // $Header: r:/t2repos/thief2/src/ai/aicnvman.h,v 1.4 1998/11/09 02:37:58 mahk Exp $
9 // AI Conversation Manager
27 ///////////////////////////////////////////////////////////////////////////////
28 // The conversation manager
30 typedef cContainerDList
<IAIConversation
*, 0> cConversationList
;
31 typedef cContDListNode
<IAIConversation
*, 0> cConversationNode
;
33 typedef cContainerDList
<tConversationListener
, 0> cConversationListenerList
;
34 typedef cContDListNode
<tConversationListener
, 0> cConversationListenerNode
;
36 class cAIConversationManager
: public cCTUnaggregated
<IAIConversationManager
, &IID_IAIConversationManager
, kCTU_Default
>
39 cAIConversationManager();
40 ~cAIConversationManager();
42 STDMETHOD_(BOOL
, Start
)(ObjID conversationID
);
44 STDMETHOD_(void, SetActorObj
)(ObjID conversationID
, int actorID
, ObjID objID
);
45 STDMETHOD_(BOOL
, GetActorObj
)(ObjID conversationID
, int actorID
, ObjID
* pObjID
);
46 STDMETHOD_(void, RemoveActorObj
)(ObjID conversationID
, int actorID
);
47 STDMETHOD_(int, GetNumActors
)(ObjID conversationID
) {return GetActorIDs(conversationID
, NULL
);}
48 STDMETHOD_(int, GetActorIDs
)(ObjID conversationID
, int *pActorIDs
);
50 STDMETHOD_(void, Frame
)(void);
52 // install conversation end listener
53 STDMETHOD_(void, ListenConversationEnd
)(tConversationListener listener
);
55 // callback from conversations
56 STDMETHOD_(void, NotifyConversationEnd
)(ObjID conversationID
);
58 // Save/load all ongoing conversations.
59 STDMETHOD_(void, Save
)(ITagFile
*pTagFile
);
60 STDMETHOD_(void, Load
)(ITagFile
*pTagFile
);
66 unsigned NumSavableConversations();
67 BOOL
HasConversation(ObjID convObj
);
70 BOOL
CheckActors(ObjID conversationID
);
71 cConversationList m_convList
;
72 cConversationListenerList m_convListenerList
;
77 #endif /* !__AICNVMAN_H */