2 @Copyright Looking Glass Studios, Inc.
3 1996,1997,1998,1999,2000 Unpublished Work.
6 // $Header: r:/t2repos/thief2/src/script/contscpt.h,v 1.2 2000/01/29 13:39:52 adurant Exp $
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
);
29 ///////////////////////////////////////////////////////////////////////////////
34 #define kContainMsgVer 1
36 struct sContainMsg
: public sScrMsg
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
52 free((void *)message
);
53 message
= strdup(msg_names
[evtype
]);
56 DECLARE_SCRMSG_PERSISTENT();
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)