convert line ends
[canaan.git] / prj / cam / src / script / contscpt.h
blob721bd544375ae8b222143c6c3dc3eee894a68b78
1 /*
2 @Copyright Looking Glass Studios, Inc.
3 1996,1997,1998,1999,2000 Unpublished Work.
4 */
6 // $Header: r:/t2repos/thief2/src/script/contscpt.h,v 1.2 2000/01/29 13:39:52 adurant Exp $
7 #pragma once
9 #ifndef __CONTSCPT_H
10 #define __CONTSCPT_H
12 #include <scrptmsg.h>
13 #include <contains.h>
15 // Container script service, for handling script issues with containment and combination
17 DECLARE_SCRIPT_SERVICE(Container, 0x146)
19 // Does container contain containee?
20 STDMETHOD(Contains)(const object ref container, const object ref findobj) PURE;
21 // How many containtype-combineable objects are in container?
22 STDMETHOD_(int, CombineCount)(const object ref container, const object ref containtype) PURE;
23 // Put object into container
24 // deals with getting it out of the world as well (hm, can do this game-independantly?)
25 STDMETHOD(ContainerAdd)(const object ref container, const object ref obj);
26 STDMETHOD
29 ///////////////////////////////////////////////////////////////////////////////
31 // MESSAGES
34 #define kContainMsgVer 1
36 struct sContainMsg : public sScrMsg
38 ObjID container;
39 ObjID containee;
41 sContainMsg()
45 // real constructor
46 sContainMsg(ObjID obj_to, ObjID container, ObjID containee, eContainsEvent evtype)
48 static char *msg_names[4] = { "ContainSimActivate", "ContainAdd", "ContainRemove", "ContainCombine" };
50 // setup base scrMsg fields
51 to = obj_to;
52 free((void *)message);
53 message = strdup(msg_names[evtype]);
56 DECLARE_SCRMSG_PERSISTENT();
60 #ifdef SCRIPT
61 #define OnContainSimActivate() SCRIPT_MESSAGE_HANDLER_SIGNATURE_(ContainSimActivate, sContainMsg)
62 #define DefaultOnContainSimActivate() SCRIPT_CALL_BASE(ContainSimActivate)
63 #define OnContainAdd() SCRIPT_MESSAGE_HANDLER_SIGNATURE_(ContainAdd, sContainMsg)
64 #define DefaultOnContainAdd() SCRIPT_CALL_BASE(ContainAdd)
65 #define OnContainRemove() SCRIPT_MESSAGE_HANDLER_SIGNATURE_(ContainRemove, sContainMsg)
66 #define DefaultOnContainRemove() SCRIPT_CALL_BASE(ContainRemove)
67 #define OnContainCombine() SCRIPT_MESSAGE_HANDLER_SIGNATURE_(ContainCombine, sContainMsg)
68 #define DefaultOnContainCombine() SCRIPT_CALL_BASE(ContainCombine)
69 #endif
71 #endif