1 /* GemRB - Infinity Engine Emulator
2  * Copyright (C) 2003 The GemRB Project
3  *
4  * This program is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU General Public License
6  * as published by the Free Software Foundation; either version 2
7  * of the License, or (at your option) any later version.
8  *
9  * This program is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  * GNU General Public License for more details.
13  *
14  * You should have received a copy of the GNU General Public License
15  * along with this program; if not, write to the Free Software
16  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
17  *
18  *
19  */
20 
21 #ifndef GAMESCRIPT_H
22 #define GAMESCRIPT_H
23 
24 #include "exports.h"
25 
26 #include "SymbolMgr.h"
27 #include "Variables.h"
28 #include "Scriptable/Actor.h"
29 #include "System/DataStream.h"
30 
31 #include <cstdio>
32 #include <vector>
33 
34 // absent from msvc6
35 #ifdef _MSC_VER
36 #ifndef __FUNCTION__
37 #define __FUNCTION__ "no message"
38 #endif
39 #endif
40 
41 namespace GemRB {
42 
43 class Action;
44 class GameScript;
45 
46 class StringBuffer;
47 
48 //escapearea flags
49 #define EA_DESTROY 1        //destroy actor at the exit (otherwise move to new place)
50 #define EA_NOSEE   2        //no need to see the exit
51 
52 //displaystring flags
53 #define DS_WAIT    1
54 #define DS_HEAD    2
55 #define DS_CONSOLE 4
56 #define DS_CONST   8
57 #define DS_NONAME  16
58 #define DS_SILENT  32
59 #define DS_SPEECH  64
60 #define DS_AREA    128
61 #define DS_QUEUE   256
62 #define DS_CIRCLE  512
63 
64 //verbal constant (bg2), we have a lookup table (vcremap) for other games
65 #define VB_INITIALMEET 0
66 #define VB_PANIC     1
67 #define VB_HAPPY     2
68 #define VB_UNHAPPY   3 // UNHAPPY_ANNOYED
69 #define VB_UNHAPPY_SERIOUS 4
70 #define VB_BREAKING_POINT 5
71 #define VB_LEADER    6
72 #define VB_TIRED     7
73 #define VB_BORED     8
74 #define VB_ATTACK    9 // 5 battle cries, 4 attacks
75 #define VB_DAMAGE    18
76 #define VB_DIE       19
77 #define VB_HURT 20
78 #define VB_AREA_FOREST 21 // these are handled through comment.2da / Actor::GetAreaComment
79 #define VB_AREA_CITY 22
80 #define VB_AREA_DUNGEON 23
81 #define VB_AREA_DAY 24
82 #define VB_AREA_NIGHT 25
83 #define VB_SELECT    26 // -31 select
84 #define VB_COMMAND   32 // -34 select action; -38 rare select, -43 interaction
85 #define VB_INSULT    44 // -46
86 #define VB_COMPLIMENT 47 // -49
87 #define VB_SPECIAL   50 // -52
88 #define VB_REACT     53 // REACT_TO_DIE_GENERAL
89 #define VB_REACT_S   54 // REACT_TO_DIE_SPECIFIC
90 #define VB_RESP_COMP 55 // -57
91 #define VB_RESP_INS  58 // -60
92 #define VB_HOSTILE   61
93 #define VB_DIALOG    62 // DIALOG_DEFAULT
94 #define VB_SELECT_RARE 63 // -64
95 #define VB_CRITHIT   65
96 #define VB_CRITMISS  66
97 #define VB_TIMMUNE   67
98 #define VB_INVENTORY_FULL 68
99 #define VB_PP_SUCC   69
100 #define VB_EXISTENCE 69
101 #define VB_HIDE      70
102 #define VB_SPELL_DISRUPTED 71
103 #define VB_TRAP_SET  72
104 //#define VB_EXISTANCE_4 73
105 #define VB_BIO       74
106 
107 //markspellandobject (iwd2)
108 #define MSO_IGNORE_SEE     1
109 #define MSO_IGNORE_INVALID 2
110 #define MSO_RANDOM_SPELL   4
111 #define MSO_IGNORE_HAVE    8
112 #define MSO_IGNORE_RANGE   16
113 #define MSO_IGNORE_NULL    32
114 
115 // delta.ids (pst)
116 #define DM_LOWER   1
117 #define DM_RAISE   2
118 #define DM_SET     3
119 
120 //attack core flags
121 #define AC_NO_SOUND   1
122 #define AC_RUNNING    2
123 
124 //spelll core flags
125 #define SC_NO_DEAD      1
126 #define SC_RANGE_CHECK  2
127 #define SC_DEPLETE      4
128 #define SC_SETLEVEL     8
129 #define SC_INSTANT      16
130 #define SC_AURA_CHECK   32
131 #define SC_NOINTERRUPT  64
132 
133 #define ACF_REALLOW_SCRIPTS 1
134 
135 //trigger flags stored in triggers in .bcs files
136 #define TF_NEGATE  1   //negate trigger result
137 #define TF_APPLIED 2   //set in living when trigger applied
138 #define TF_ADDED   4   //set in scriptable when trigger added/applied
139 
140 #define MAX_OBJECT_FIELDS	10
141 #define MAX_NESTING		5
142 
143 typedef std::vector<ieDword> SrcVector;
144 
145 struct targettype {
146 	Scriptable *actor; //hmm, could be door
147 	unsigned int distance;
148 };
149 
150 typedef std::list<targettype> targetlist;
151 
152 class GEM_EXPORT Targets {
153 public:
Targets()154 	Targets()
155 	{
156 	}
157 
~Targets()158 	~Targets()
159 	{
160 		Clear();
161 	}
162 private:
163 	targetlist objects;
164 public:
165 	int Count() const;
166 	void dump() const;
167 	targettype *RemoveTargetAt(targetlist::iterator &m);
168 	const targettype *GetNextTarget(targetlist::iterator &m, int Type);
169 	const targettype *GetLastTarget(int Type);
170 	const targettype *GetFirstTarget(targetlist::iterator &m, int Type);
171 	Scriptable *GetTarget(unsigned int index, int Type);
172 	void AddTarget(Scriptable* target, unsigned int distance, int flags);
173 	void Clear();
174 	void FilterObjectRect(const Object *oC);
175 };
176 
177 class Canary {
178 private:
179 	volatile unsigned long canary;
180 protected:
Canary()181 	Canary() // protected constructor
182 	{
183 		canary = (unsigned long) 0xdeadbeef;
184 	}
~Canary()185 	~Canary() // protected destructor
186 	{
187 		AssertCanary("Destroying Canary");
188 		canary = 0xdddddddd;
189 	}
AssertCanary(const char * msg)190 	void AssertCanary(const char* msg) const
191 	{
192 		if (!CheckCanary()) {
193 			error("Canary Died", "Canary([0x%08lX]) != 0xdeadbeef. Message: %s\n", canary, msg);
194 		}
195 	}
CheckCanary()196 	bool CheckCanary() const
197 	{
198 		return (canary == (unsigned long) 0xdeadbeef);
199 	}
200 };
201 
202 class GEM_EXPORT Object : protected Canary {
203 public:
Object()204 	Object()
205 	{
206 		memset( objectName, 0, 65 );
207 		memset( objectFields, 0, MAX_OBJECT_FIELDS * sizeof( int ) );
208 		memset( objectFilters, 0, MAX_NESTING * sizeof( int ) );
209 	}
210 public:
211 	int objectFields[MAX_OBJECT_FIELDS];
212 	int objectFilters[MAX_NESTING];
213 	Region objectRect{};
214 	char objectName[65];
215 
216 public:
217 	void dump() const;
218 	void dump(StringBuffer&) const;
Release()219 	void Release()
220 	{
221 		delete this;
222 	}
223 	bool isNull() const;
224 };
225 
226 class GEM_EXPORT Trigger : protected Canary {
227 public:
Trigger()228 	Trigger()
229 	{
230 		triggerID = 0;
231 		flags = 0;
232 		objectParameter = NULL;
233 		memset(string0Parameter, 0, 65);
234 		memset(string1Parameter, 0, 65);
235 		int0Parameter = 0;
236 		int1Parameter = 0;
237 		int2Parameter = 0;
238 		pointParameter.null();
239 	}
~Trigger()240 	~Trigger()
241 	{
242 		if (objectParameter) {
243 			objectParameter->Release();
244 			objectParameter = NULL;
245 		}
246 	}
247 	int Evaluate(Scriptable *Sender) const;
248 
249 	unsigned short triggerID;
250 	int int0Parameter;
251 	int flags;
252 	int int1Parameter;
253 	int int2Parameter;
254 	Point pointParameter;
255 	char string0Parameter[65];
256 	char string1Parameter[65];
257 	Object* objectParameter;
258 
259 	void dump() const;
260 	void dump(StringBuffer&) const;
261 
Release()262 	void Release()
263 	{
264 		delete this;
265 	}
266 };
267 
268 class GEM_EXPORT Condition : protected Canary {
269 public:
~Condition()270 	~Condition()
271 	{
272 		for (size_t c = 0; c < triggers.size(); ++c) {
273 			if (triggers[c]) {
274 				triggers[c]->Release();
275 				triggers[c] = NULL;
276 			}
277 		}
278 	}
Release()279 	void Release()
280 	{
281 		delete this;
282 	}
283 	bool Evaluate(Scriptable *Sender) const;
284 
285 	std::vector<Trigger*> triggers;
286 };
287 
288 class GEM_EXPORT Action : protected Canary {
289 public:
Action(bool autoFree)290 	Action(bool autoFree)
291 	{
292 		actionID = 0;
293 		objects[0] = NULL;
294 		objects[1] = NULL;
295 		objects[2] = NULL;
296 		memset(string0Parameter, 0, 65);
297 		memset(string1Parameter, 0, 65);
298 		int0Parameter = 0;
299 		pointParameter.null();
300 		int1Parameter = 0;
301 		int2Parameter = 0;
302 		//changed now
303 		if (autoFree) {
304 			RefCount = 0; //refcount will be increased by each AddAction
305 		} else {
306 			RefCount = 1; //one reference hold by the script
307 		}
308 		flags = 0;
309 	}
~Action()310 	~Action()
311 	{
312 		for (int c = 0; c < 3; c++) {
313 			if (objects[c]) {
314 				objects[c]->Release();
315 				objects[c] = NULL;
316 			}
317 		}
318 	}
319 
320 	unsigned short actionID;
321 	Object* objects[3];
322 	int int0Parameter;
323 	Point pointParameter;
324 	int int1Parameter;
325 	int int2Parameter;
326 	char string0Parameter[65];
327 	char string1Parameter[65];
328 	unsigned short flags;
329 private:
330 	int RefCount;
331 public:
GetRef()332 	int GetRef() {
333 		return RefCount;
334 	}
335 
336 	void dump() const;
337 	void dump(StringBuffer&) const;
338 
Release()339 	void Release()
340 	{
341 		AssertCanary(__FUNCTION__);
342 		if (!RefCount) {
343 			error("GameScript", "WARNING!!! Double Freeing in %s: Line %d\n", __FILE__,
344 				__LINE__);
345 		}
346 		RefCount--;
347 		if (!RefCount) {
348 			delete this;
349 		}
350 	}
IncRef()351 	void IncRef()
352 	{
353 		AssertCanary(__FUNCTION__);
354 		RefCount++;
355 		if (RefCount >= 65536) {
356 			error("GameScript", "Refcount increased to: %d in action %d\n", RefCount,
357 				actionID);
358 		}
359 	}
360 };
361 
362 class GEM_EXPORT Response : protected Canary {
363 public:
Response()364 	Response()
365 	{
366 		weight = 0;
367 	}
~Response()368 	~Response()
369 	{
370 		for (size_t c = 0; c < actions.size(); c++) {
371 			if (actions[c]) {
372 				if (actions[c]->GetRef()>2) {
373 					print("Residue action %d with refcount %d", actions[c]->actionID, actions[c]->GetRef());
374 				}
375 				actions[c]->Release();
376 				actions[c] = NULL;
377 			}
378 		}
379 	}
Release()380 	void Release()
381 	{
382 		delete this;
383 	}
384 	int Execute(Scriptable* Sender);
385 
386 	unsigned char weight;
387 	std::vector<Action*> actions;
388 };
389 
390 class GEM_EXPORT ResponseSet : protected Canary {
391 public:
~ResponseSet()392 	~ResponseSet()
393 	{
394 		for (size_t b = 0; b < responses.size(); b++) {
395 			responses[b]->Release();
396 			responses[b] = NULL;
397 		}
398 	}
Release()399 	void Release()
400 	{
401 		delete this;
402 	}
403 	int Execute(Scriptable* Sender);
404 
405 	std::vector<Response*> responses;
406 };
407 
408 class GEM_EXPORT ResponseBlock : protected Canary {
409 public:
ResponseBlock()410 	ResponseBlock()
411 	{
412 		condition = NULL;
413 		responseSet = NULL;
414 	}
~ResponseBlock()415 	~ResponseBlock()
416 	{
417 		if (condition) {
418 			condition->Release();
419 			condition = NULL;
420 		}
421 		if (responseSet) {
422 			responseSet->Release();
423 			responseSet = NULL;
424 		}
425 	}
Release()426 	void Release()
427 	{
428 		delete this;
429 	}
430 
431 	Condition* condition;
432 	ResponseSet* responseSet;
433 };
434 
435 class GEM_EXPORT Script : protected Canary {
436 public:
~Script()437 	~Script()
438 	{
439 		for (unsigned int i = 0; i < responseBlocks.size(); i++) {
440 			if (responseBlocks[i]) {
441 				responseBlocks[i]->Release();
442 				responseBlocks[i] = NULL;
443 			}
444 		}
445 	}
446 
447 	std::vector<ResponseBlock*> responseBlocks;
448 
Release()449 	void Release()
450 	{
451 		delete this;
452 	}
453 };
454 
455 typedef int (* TriggerFunction)(Scriptable *, const Trigger *);
456 typedef void (* ActionFunction)(Scriptable*, Action*);
457 typedef Targets *(* ObjectFunction)(const Scriptable *, Targets*, int ga_flags);
458 typedef int (* IDSFunction)(const Actor *, int parameter);
459 
460 #define TF_NONE		0
461 #define TF_CONDITION    1 //this isn't a trigger, just a condition (0x4000)
462 #define TF_SAVED        2 //trigger is in svtriobj.ids
463 #define TF_MERGESTRINGS 8 //same value as actions' mergestring
464 
465 struct TriggerLink {
466 	const char* Name;
467 	TriggerFunction Function;
468 	short Flags;
469 };
470 
471 //createcreature flags
472 #define CC_OFFSET    1
473 #define CC_OBJECT    2
474 #define CC_OFFSCREEN 3
475 #define CC_MASK      3
476 #define CC_CHECK_IMPASSABLE  4  //adjust position (searchmap)
477 #define CC_PLAY_ANIM 8          //play animation
478 #define CC_STRING1   16         //resref is in second string
479 #define CC_CHECK_OVERLAP 32     //other actors
480 #define CC_COPY      64         //copy appearance
481 #define CC_SCRIPTNAME 128       //scriptname in 2nd string
482 
483 //begindialog flags
484 #define BD_STRING0   0
485 #define BD_TARGET    1
486 #define BD_SOURCE    2
487 #define BD_RESERVED  3  //playerX resref
488 #define BD_INTERACT  4  //banter dialogs
489 #define BD_LOCMASK   7  //where is the dialog resref
490 #define BD_TALKCOUNT 8  //increases talkcount
491 #define BD_SETDIALOG 16 //also sets dialog (for string0)
492 #define BD_CHECKDIST 32 //checks distance, if needs, walks up
493 #define BD_OWN       64 //source == target, works for player only
494 #define BD_INTERRUPT 128 //interrupts action
495 #define BD_NUMERIC   256 //target is numeric
496 #define BD_ITEM      512 //talk to an item
497 #define BD_NOEMPTY   1024 //don't display '... has nothing to say to you'
498 
499 #define AF_NONE         0
500 #define AF_IMMEDIATE    1
501 #define AF_CONTINUE     2
502 #define AF_MASK         3   //none, immediate or continue
503 #define AF_BLOCKING     4
504 #define AF_MERGESTRINGS 8
505 //we could use this flag to restrict player scripts from using dangerous
506 //opcodes, it would be a very useful and easy to implement feature!
507 #define AF_RESTRICTED   16
508 //#define AF_RESTRICTED_LEVEL2  32 //maybe we could use 2 bits for this???
509 #define AF_SCRIPTLEVEL  64  //this hack will transfer scriptlevel to int0parameter at runtime (changecurrentscript relies on it)
510 #define AF_INVALID      128
511 #define AF_DIRECT       256 //this hack will transfer target from gamecontrol to object1 at compile time
512 #define AF_ALIVE        512 //only alive actors can do this
513 #define AF_CHASE        1024 // ??? actions involving movement ???
514 #define AF_SLEEP        2048 //only awake actors can do this
515 #define AF_DLG_INSTANT  4096 //instant dialog actions
516 #define AF_SCR_INSTANT  8192 //instant script actions
517 #define AF_INSTANT      (AF_DLG_INSTANT|AF_SCR_INSTANT) //only iwd2 treats them separately; 12288
518 
519 struct ActionLink {
520 	const char* Name;
521 	ActionFunction Function;
522 	short Flags;
523 };
524 
525 struct ObjectLink {
526 	const char* Name;
527 	ObjectFunction Function;
528 };
529 
530 struct IDSLink {
531 	const char* Name;
532 	IDSFunction Function;
533 };
534 
535 #define MAX_TRIGGERS			300
536 #define MAX_ACTIONS			400
537 #define MAX_OBJECTS			256
538 #define AI_SCRIPT_LEVEL 4             //the script level of special ai scripts
539 
540 extern void ScriptDebugLog(int bit, const char* message, ...);
541 extern int RandomNumValue;
542 
543 class GEM_EXPORT GameScript {
544 public:
545 	GameScript(const ieResRef ResRef, Scriptable* Myself,
546 		int ScriptLevel = 0, bool AIScript = false);
547 	~GameScript();
548 
549 	bool dead = false;      // Script replaced itself with another and should be deleted when done running
550 	bool running = false;   // Script is currently running so defer any deletion to caller
551 
GetName()552 	const char *GetName() const { return Name; }
553 	static void ExecuteString(Scriptable* Sender, const char* String);
554 	static int EvaluateString(Scriptable* Sender, char* String);
555 	static void ExecuteAction(Scriptable* Sender, Action* aC);
556 
557 	bool Update(bool *continuing = NULL, bool *done = NULL);
558 	void EvaluateAllBlocks();
559 private: //Internal Functions
560 	Script* CacheScript(ieResRef ResRef, bool AIScript);
561 	ResponseBlock* ReadResponseBlock(DataStream* stream);
562 	ResponseSet* ReadResponseSet(DataStream* stream);
563 	Response* ReadResponse(DataStream* stream);
564 	Trigger* ReadTrigger(DataStream* stream);
565 	static int InParty(Scriptable *Sender, const Trigger *parameters, bool allowdead);
566 
567 	// Internal variables
568 	Scriptable* const MySelf;
569 	ieResRef Name;
570 	Script* script;
571 	unsigned int lastAction;
572 	int scriptlevel;
573 public: //Script Functions
574 	static int ID_Alignment(const Actor *actor, int parameter);
575 	static int ID_Allegiance(const Actor *actor, int parameter);
576 	static int ID_AVClass(const Actor *actor, int parameter);
577 	static int ID_Class(const Actor *actor, int parameter);
578 	static int ID_ClassMask(const Actor *actor, int parameter);
579 	static int ID_Faction(const Actor *actor, int parameter);
580 	static int ID_Gender(const Actor *actor, int parameter);
581 	static int ID_General(const Actor *actor, int parameter);
582 	static int ID_Race(const Actor *actor, int parameter);
583 	static int ID_Specific(const Actor *actor, int parameter);
584 	static int ID_Subrace(const Actor *actor, int parameter);
585 	static int ID_Team(const Actor *actor, int parameter);
586 
587 	//Triggers
588 	static int ActionListEmpty(Scriptable *Sender, const Trigger *parameters);
589 	static int ActuallyInCombat(Scriptable *Sender, const Trigger *parameters);
590 	static int Acquired(Scriptable *Sender, const Trigger *parameters);
591 	static int Alignment(Scriptable *Sender, const Trigger *parameters);
592 	static int Allegiance(Scriptable *Sender, const Trigger *parameters);
593 	static int AnimationID(Scriptable *Sender, const Trigger *parameters);
594 	static int AnimState(Scriptable *Sender, const Trigger *parameters);
595 	static int AnyPCOnMap(Scriptable *Sender, const Trigger *parameters);
596 	static int AnyPCSeesEnemy(Scriptable *Sender, const Trigger *parameters);
597 	static int AreaCheck(Scriptable *Sender, const Trigger *parameter);
598 	static int AreaCheckObject(Scriptable *Sender, const Trigger *parameter);
599 	static int AreaFlag(Scriptable *Sender, const Trigger *parameter);
600 	static int AreaRestDisabled(Scriptable *Sender, const Trigger *parameter);
601 	static int AreaStartsWith(Scriptable *Sender, const Trigger *parameter); //InWatchersKeep
602 	static int AreaType(Scriptable *Sender, const Trigger *parameter);
603 	static int Assign(Scriptable */*Sender*/, const Trigger */*parameters*/);
604 	static int AtLocation(Scriptable *Sender, const Trigger *parameter);
605 	static int AttackedBy(Scriptable *Sender, const Trigger *parameters);
606 	static int BecameVisible(Scriptable *Sender, const Trigger *parameters);
607 	static int BeenInParty(Scriptable *Sender, const Trigger */*parameters*/);
608 	static int BitCheck(Scriptable *Sender, const Trigger *parameters);
609 	static int BitCheckExact(Scriptable *Sender, const Trigger *parameters);
610 	static int BitGlobal_Trigger(Scriptable *Sender, const Trigger *parameters);
611 	static int BouncingSpellLevel(Scriptable *Sender, const Trigger *parameters);
612 	static int BreakingPoint(Scriptable *Sender, const Trigger *parameters);
613 	static int CalendarDay(Scriptable *Sender, const Trigger *parameters);
614 	static int CalendarDayGT(Scriptable *Sender, const Trigger *parameters);
615 	static int CalendarDayLT(Scriptable *Sender, const Trigger *parameters);
616 	static int CalledByName(Scriptable *Sender, const Trigger *parameters);
617 	static int ChargeCount(Scriptable *Sender, const Trigger *parameters);
618 	static int CharName(Scriptable *Sender, const Trigger *parameters);
619 	static int CheckAreaDiffLevel(Scriptable */*Sender*/, const Trigger *parameters);
620 	static int CheckDoorFlags(Scriptable *Sender, const Trigger *parameters);
621 	static int CheckPartyAverageLevel(Scriptable *Sender, const Trigger *parameters);
622 	static int CheckPartyLevel(Scriptable *Sender, const Trigger *parameters);
623 	static int CheckSkill(Scriptable *Sender, const Trigger *parameters);
624 	static int CheckSkillGT(Scriptable *Sender, const Trigger *parameters);
625 	static int CheckSkillLT(Scriptable *Sender, const Trigger *parameters);
626 	static int CheckSpellState(Scriptable *Sender, const Trigger *parameters);
627 	static int CheckStat(Scriptable *Sender, const Trigger *parameters);
628 	static int CheckStatGT(Scriptable *Sender, const Trigger *parameters);
629 	static int CheckStatLT(Scriptable *Sender, const Trigger *parameters);
630 	static int Class(Scriptable *Sender, const Trigger *parameters);
631 	static int ClassEx(Scriptable *Sender, const Trigger *parameters);
632 	static int ClassLevel(Scriptable *Sender, const Trigger *parameters);
633 	static int ClassLevelGT(Scriptable *Sender, const Trigger *parameters);
634 	static int ClassLevelLT(Scriptable *Sender, const Trigger *parameters);
635 	static int Clicked(Scriptable *Sender, const Trigger *parameters);
636 	static int Closed(Scriptable *Sender, const Trigger *parameters);
637 	static int CombatCounter(Scriptable *Sender, const Trigger *parameters);
638 	static int CombatCounterGT(Scriptable *Sender, const Trigger *parameters);
639 	static int CombatCounterLT(Scriptable *Sender, const Trigger *parameters);
640 	static int Contains(Scriptable *Sender, const Trigger *parameters);
641 	static int CreatureHidden( Scriptable* Sender, const Trigger *parameters);
642 	static int CurrentAmmo(Scriptable *Sender, const Trigger *parameters);
643 	static int CurrentAreaIs(Scriptable *Sender, const Trigger *parameters);
644 	static int DamageTaken(Scriptable *Sender, const Trigger *parameters);
645 	static int DamageTakenGT(Scriptable *Sender, const Trigger *parameters);
646 	static int DamageTakenLT(Scriptable *Sender, const Trigger *parameters);
647 	static int Dead(Scriptable *Sender, const Trigger *parameters);
648 	static int Delay(Scriptable *Sender, const Trigger *parameters);
649 	static int Detect(Scriptable *Sender, const Trigger *parameters);
650 	static int Detected(Scriptable *Sender, const Trigger *parameters);
651 	static int Die(Scriptable *Sender, const Trigger *parameters);
652 	static int Died(Scriptable *Sender, const Trigger *parameters);
653 	static int Difficulty(Scriptable *Sender, const Trigger *parameters);
654 	static int DifficultyGT(Scriptable *Sender, const Trigger *parameters);
655 	static int DifficultyLT(Scriptable *Sender, const Trigger *parameters);
656 	static int Disarmed(Scriptable *Sender, const Trigger *parameters);
657 	static int DisarmFailed(Scriptable *Sender, const Trigger *parameters);
658 	static int E(Scriptable */*Sender*/, const Trigger *parameters);
659 	static int Entered(Scriptable *Sender, const Trigger *parameters);
660 	static int EntirePartyOnMap(Scriptable *Sender, const Trigger *parameters);
661 	static int Exists(Scriptable *Sender, const Trigger *parameters);
662 	static int ExtendedStateCheck(Scriptable *Sender, const Trigger *parameters);
663 	static int ExtraProficiency(Scriptable *Sender, const Trigger *parameters);
664 	static int ExtraProficiencyGT(Scriptable *Sender, const Trigger *parameters);
665 	static int ExtraProficiencyLT(Scriptable *Sender, const Trigger *parameters);
666 	static int Eval(Scriptable */*Sender*/, const Trigger */*parameters*/);
667 	static int Faction(Scriptable *Sender, const Trigger *parameters);
668 	static int FallenPaladin(Scriptable *Sender, const Trigger *parameters);
669 	static int FallenRanger(Scriptable *Sender, const Trigger *parameters);
670 	static int False(Scriptable *Sender, const Trigger *parameters);
671 	static int ForceMarkedSpell_Trigger(Scriptable *Sender, const Trigger *parameters);
672 	static int Frame(Scriptable *Sender, const Trigger *parameters);
673 	static int Gender(Scriptable *Sender, const Trigger *parameters);
674 	static int General(Scriptable *Sender, const Trigger *parameters);
675 	static int G_Trigger(Scriptable *Sender, const Trigger *parameters);
676 	static int Global(Scriptable *Sender, const Trigger *parameters);
677 	static int GlobalAndGlobal_Trigger(Scriptable *Sender, const Trigger *parameters);
678 	static int GlobalBAndGlobal_Trigger(Scriptable *Sender, const Trigger *parameters);
679 	static int GlobalBAndGlobalExact(Scriptable *Sender, const Trigger *parameters);
680 	static int GlobalBitGlobal_Trigger(Scriptable *Sender, const Trigger *parameters);
681 	static int GlobalGT(Scriptable *Sender, const Trigger *parameters);
682 	static int GlobalGTGlobal(Scriptable *Sender, const Trigger *parameters);
683 	static int GlobalLT(Scriptable *Sender, const Trigger *parameters);
684 	static int GlobalLTGlobal(Scriptable *Sender, const Trigger *parameters);
685 	static int GlobalOrGlobal_Trigger(Scriptable *Sender, const Trigger *parameters);
686 	static int GlobalsEqual(Scriptable *Sender, const Trigger *parameters);
687 	static int GlobalsGT(Scriptable *Sender, const Trigger *parameters);
688 	static int GlobalsLT(Scriptable *Sender, const Trigger *parameters);
689 	static int GlobalTimerExact(Scriptable *Sender, const Trigger *parameters);
690 	static int GlobalTimerExpired(Scriptable *Sender, const Trigger *parameters);
691 	static int GlobalTimerNotExpired(Scriptable *Sender, const Trigger *parameters);
692 	static int GlobalTimerStarted(Scriptable *Sender, const Trigger *parameters);
693 	static int GGT_Trigger(Scriptable *Sender, const Trigger *parameters);
694 	static int GLT_Trigger(Scriptable *Sender, const Trigger *parameters);
695 	static int GT(Scriptable */*Sender*/, const Trigger *parameters);
696 	static int Happiness(Scriptable *Sender, const Trigger *parameters);
697 	static int HappinessGT(Scriptable *Sender, const Trigger *parameters);
698 	static int HappinessLT(Scriptable *Sender, const Trigger *parameters);
699 	static int HarmlessClosed(Scriptable *Sender, const Trigger *parameters);
700 	static int HarmlessEntered(Scriptable *Sender, const Trigger *parameters);
701 	static int HarmlessOpened(Scriptable *Sender, const Trigger *parameters);
702 	static int HasBounceEffects(Scriptable *Sender, const Trigger *parameters);
703 	static int HasDLC(Scriptable */*Sender*/, const Trigger */*parameters*/);
704 	static int HasImmunityEffects(Scriptable *Sender, const Trigger *parameters);
705 	static int HasInnateAbility(Scriptable *Sender, const Trigger *parameters);
706 	static int HasItem(Scriptable *Sender, const Trigger *parameters);
707 	static int HasItemEquipped(Scriptable *Sender, const Trigger *parameters);
708 	static int HasItemSlot(Scriptable *Sender, const Trigger *parameters);
709 	static int HasItemTypeSlot(Scriptable *Sender, const Trigger *parameters);
710 	static int HasWeaponEquipped(Scriptable *Sender, const Trigger *parameters);
711 	static int HaveAnySpells(Scriptable *Sender, const Trigger *parameters);
712 	static int HaveSpellParty(Scriptable *Sender, const Trigger *parameters);
713 	static int HaveSpell(Scriptable *Sender, const Trigger *parameters);
714 	static int HaveUsableWeaponEquipped(Scriptable *Sender, const Trigger *parameters);
715 	static int Heard(Scriptable *Sender, const Trigger *parameters);
716 	static int Help_Trigger(Scriptable *Sender, const Trigger *parameters);
717 	static int HelpEX(Scriptable *Sender, const Trigger *parameters);
718 	static int HitBy(Scriptable *Sender, const Trigger *parameters);
719 	static int HotKey(Scriptable *Sender, const Trigger *parameters);
720 	static int HP(Scriptable *Sender, const Trigger *parameters);
721 	static int HPGT(Scriptable *Sender, const Trigger *parameters);
722 	static int HPLost(Scriptable *Sender, const Trigger *parameters);
723 	static int HPLostGT(Scriptable *Sender, const Trigger *parameters);
724 	static int HPLostLT(Scriptable *Sender, const Trigger *parameters);
725 	static int HPLT(Scriptable *Sender, const Trigger *parameters);
726 	static int HPPercent(Scriptable *Sender, const Trigger *parameters);
727 	static int HPPercentGT(Scriptable *Sender, const Trigger *parameters);
728 	static int HPPercentLT(Scriptable *Sender, const Trigger *parameters);
729 	static int ImmuneToSpellLevel(Scriptable *Sender, const Trigger *parameters);
730 	static int InActiveArea(Scriptable *Sender, const Trigger *parameter);
731 	static int InCutSceneMode(Scriptable *Sender, const Trigger *parameter);
732 	static int InLine(Scriptable *Sender, const Trigger *parameter);
733 	static int InMyArea(Scriptable *Sender, const Trigger *parameter);
734 	static int InMyGroup(Scriptable *Sender, const Trigger *parameter);
735 	static int InParty(Scriptable *Sender, const Trigger *parameters);
736 	static int InPartyAllowDead(Scriptable *Sender, const Trigger *parameters);
737 	static int InPartySlot(Scriptable *Sender, const Trigger *parameters);
738 	static int InteractingWith(Scriptable *Sender, const Trigger *parameters);
739 	static int Internal(Scriptable *Sender, const Trigger *parameters);
740 	static int InternalGT(Scriptable *Sender, const Trigger *parameters);
741 	static int InternalLT(Scriptable *Sender, const Trigger *parameters);
742 	static int InTrap(Scriptable *Sender, const Trigger *parameters);
743 	static int InventoryFull(Scriptable *Sender, const Trigger *parameter);
744 	static int InWeaponRange(Scriptable *Sender, const Trigger *parameter);
745 	static int IsAClown(Scriptable *Sender, const Trigger *parameters);
746 	static int IsActive(Scriptable *Sender, const Trigger *parameters);
747 	static int IsCreatureAreaFlag( Scriptable* Sender, const Trigger *parameters);
748 	static int IsCreatureHiddenInShadows( Scriptable* Sender, const Trigger *parameters);
749 	static int IsGabber(Scriptable *Sender, const Trigger *parameters);
750 	static int IsExtendedNight(Scriptable *Sender, const Trigger *parameters);
751 	static int IsFacingObject(Scriptable *Sender, const Trigger *parameters);
752 	static int IsFacingSavedRotation(Scriptable *Sender, const Trigger *parameters);
753 	static int IsInGuardianMantle(Scriptable *Sender, const Trigger *parameters);
754 	static int IsLocked(Scriptable *Sender, const Trigger *parameters);
755 	static int IsMarkedSpell(Scriptable *Sender, const Trigger *parameters);
756 	static int IsOverMe(Scriptable *Sender, const Trigger *parameters);
757 	static int IsPathCriticalObject( Scriptable* Sender, const Trigger *parameters);
758 	static int IsPlayerNumber( Scriptable* Sender, const Trigger *parameters);
759 	static int IsRotation(Scriptable *Sender, const Trigger *parameters);
760 	static int IsSpellTargetValid( Scriptable* Sender, const Trigger *parameters);
761 	static int IsTeamBitOn(Scriptable *Sender, const Trigger *parameters);
762 	static int IsTouchGUI(Scriptable */*Sender*/, const Trigger */*parameters*/);
763 	static int IsValidForPartyDialog(Scriptable *Sender, const Trigger *parameters);
764 	static int IsWeaponRanged(Scriptable *Sender, const Trigger *parameters);
765 	static int IsWeather(Scriptable *Sender, const Trigger *parameters);
766 	static int ItemIsIdentified(Scriptable *Sender, const Trigger *parameters);
767 	static int Joins(Scriptable *Sender, const Trigger *parameters);
768 	static int Kit(Scriptable *Sender, const Trigger *parameters);
769 	static int Killed(Scriptable *Sender, const Trigger *parameters);
770 	static int KnowSpell(Scriptable *Sender, const Trigger *parameters);
771 	static int LastMarkedObject_Trigger(Scriptable *Sender, const Trigger *parameters);
772 	static int LastPersonTalkedTo(Scriptable *Sender, const Trigger *parameters);
773 	static int Leaves(Scriptable *Sender, const Trigger *parameters);
774 	static int Level(Scriptable *Sender, const Trigger *parameters);
775 	static int LevelGT(Scriptable *Sender, const Trigger *parameters);
776 	static int LevelLT(Scriptable *Sender, const Trigger *parameters);
777 	static int LevelInClass(Scriptable *Sender, const Trigger *parameters);
778 	static int LevelInClassGT(Scriptable *Sender, const Trigger *parameters);
779 	static int LevelInClassLT(Scriptable *Sender, const Trigger *parameters);
780 	static int LevelParty(Scriptable *Sender, const Trigger *parameters);
781 	static int LevelPartyGT(Scriptable *Sender, const Trigger *parameters);
782 	static int LevelPartyLT(Scriptable *Sender, const Trigger *parameters);
783 	static int LocalsEqual(Scriptable *Sender, const Trigger *parameters);
784 	static int LocalsGT(Scriptable *Sender, const Trigger *parameters);
785 	static int LocalsLT(Scriptable *Sender, const Trigger *parameters);
786 	static int LOS(Scriptable *Sender, const Trigger *parameters);
787 	static int LT(Scriptable */*Sender*/, const Trigger *parameters);
788 	static int ModalState(Scriptable *Sender, const Trigger *parameters);
789 	static int Morale(Scriptable *Sender, const Trigger *parameters);
790 	static int MoraleGT(Scriptable *Sender, const Trigger *parameters);
791 	static int MoraleLT(Scriptable *Sender, const Trigger *parameters);
792 	static int MovementRate(Scriptable *Sender, const Trigger *parameters);
793 	static int MovementRateGT(Scriptable *Sender, const Trigger *parameters);
794 	static int MovementRateLT(Scriptable *Sender, const Trigger *parameters);
795 	static int NamelessBitTheDust(Scriptable *Sender, const Trigger *parameters);
796 	static int NearbyDialog(Scriptable *Sender, const Trigger *parameters);
797 	static int NearLocation(Scriptable *Sender, const Trigger *parameters);
798 	static int NearSavedLocation(Scriptable *Sender, const Trigger *parameters);
799 	static int NightmareModeOn(Scriptable *Sender, const Trigger *parameters);
800 	static int NotStateCheck(Scriptable *Sender, const Trigger *parameters);
801 	static int NullDialog(Scriptable *Sender, const Trigger *parameters);
802 	static int NumBouncingSpellLevel(Scriptable *Sender, const Trigger *parameters);
803 	static int NumBouncingSpellLevelGT(Scriptable *Sender, const Trigger *parameters);
804 	static int NumBouncingSpellLevelLT(Scriptable *Sender, const Trigger *parameters);
805 	static int NumCreatures(Scriptable *Sender, const Trigger *parameters);
806 	static int NumCreaturesAtMyLevel(Scriptable *Sender, const Trigger *parameters);
807 	static int NumCreaturesGT(Scriptable *Sender, const Trigger *parameters);
808 	static int NumCreaturesGTMyLevel(Scriptable *Sender, const Trigger *parameters);
809 	static int NumCreaturesLT(Scriptable *Sender, const Trigger *parameters);
810 	static int NumCreaturesLTMyLevel(Scriptable *Sender, const Trigger *parameters);
811 	static int NumCreatureVsParty(Scriptable *Sender, const Trigger *parameters);
812 	static int NumCreatureVsPartyGT(Scriptable *Sender, const Trigger *parameters);
813 	static int NumCreatureVsPartyLT(Scriptable *Sender, const Trigger *parameters);
814 	static int NumDead(Scriptable *Sender, const Trigger *parameters);
815 	static int NumDeadGT(Scriptable *Sender, const Trigger *parameters);
816 	static int NumDeadLT(Scriptable *Sender, const Trigger *parameters);
817 	static int NumImmuneToSpellLevel(Scriptable *Sender, const Trigger *parameters);
818 	static int NumImmuneToSpellLevelGT(Scriptable *Sender, const Trigger *parameters);
819 	static int NumImmuneToSpellLevelLT(Scriptable *Sender, const Trigger *parameters);
820 	static int NumItems(Scriptable *Sender, const Trigger *parameters);
821 	static int NumItemsGT(Scriptable *Sender, const Trigger *parameters);
822 	static int NumItemsLT(Scriptable *Sender, const Trigger *parameters);
823 	static int NumItemsParty(Scriptable *Sender, const Trigger *parameters);
824 	static int NumItemsPartyGT(Scriptable *Sender, const Trigger *parameters);
825 	static int NumItemsPartyLT(Scriptable *Sender, const Trigger *parameters);
826 	static int NumMirrorImages(Scriptable *Sender, const Trigger *parameters);
827 	static int NumMirrorImagesGT(Scriptable *Sender, const Trigger *parameters);
828 	static int NumMirrorImagesLT(Scriptable *Sender, const Trigger *parameters);
829 	static int NumTimesInteracted(Scriptable *Sender, const Trigger *parameters);
830 	static int NumTimesInteractedGT(Scriptable *Sender, const Trigger *parameters);
831 	static int NumTimesInteractedLT(Scriptable *Sender, const Trigger *parameters);
832 	static int NumTimesInteractedObject(Scriptable *Sender, const Trigger *parameters);
833 	static int NumTimesInteractedObjectGT(Scriptable *Sender, const Trigger *parameters);
834 	static int NumTimesInteractedObjectLT(Scriptable *Sender, const Trigger *parameters);
835 	static int NumTimesTalkedTo(Scriptable *Sender, const Trigger *parameters);
836 	static int NumTimesTalkedToGT(Scriptable *Sender, const Trigger *parameters);
837 	static int NumTimesTalkedToLT(Scriptable *Sender, const Trigger *parameters);
838 	static int NumTrappingSpellLevel(Scriptable *Sender, const Trigger *parameters);
839 	static int NumTrappingSpellLevelGT(Scriptable *Sender, const Trigger *parameters);
840 	static int NumTrappingSpellLevelLT(Scriptable *Sender, const Trigger *parameters);
841 	static int ObjectActionListEmpty(Scriptable *Sender, const Trigger *parameters);
842 	static int OnCreation(Scriptable *Sender, const Trigger *parameters);
843 	static int OnIsland(Scriptable *Sender, const Trigger *parameters);
844 	static int OnScreen(Scriptable *Sender, const Trigger *parameters);
845 	static int Opened(Scriptable *Sender, const Trigger *parameters);
846 	static int OpenFailed(Scriptable *Sender, const Trigger *parameters);
847 	static int OpenState(Scriptable *Sender, const Trigger *parameters);
848 	static int Or(Scriptable *Sender, const Trigger *parameters);
849 	static int OriginalClass(Scriptable *Sender, const Trigger *parameters);
850 	static int OutOfAmmo(Scriptable *Sender, const Trigger *parameters);
851 	static int OwnsFloaterMessage(Scriptable *Sender, const Trigger *parameters);
852 	static int PartyCountEQ(Scriptable *Sender, const Trigger *parameters);
853 	static int PartyCountGT(Scriptable *Sender, const Trigger *parameters);
854 	static int PartyCountLT(Scriptable *Sender, const Trigger *parameters);
855 	static int PartyCountAliveEQ(Scriptable *Sender, const Trigger *parameters);
856 	static int PartyCountAliveGT(Scriptable *Sender, const Trigger *parameters);
857 	static int PartyCountAliveLT(Scriptable *Sender, const Trigger *parameters);
858 	static int PartyGold(Scriptable *Sender, const Trigger *parameters);
859 	static int PartyGoldGT(Scriptable *Sender, const Trigger *parameters);
860 	static int PartyGoldLT(Scriptable *Sender, const Trigger *parameters);
861 	static int PartyHasItem(Scriptable *Sender, const Trigger *parameters);
862 	static int PartyHasItemIdentified(Scriptable *Sender, const Trigger *parameters);
863 	static int PartyMemberDied(Scriptable *Sender, const Trigger *parameters);
864 	static int PartyRested(Scriptable *Sender, const Trigger *parameters);
865 	static int PCCanSeePoint(Scriptable *Sender, const Trigger *parameters);
866 	static int PCInStore(Scriptable *Sender, const Trigger *parameters);
867 	static int PersonalSpaceDistance(Scriptable *Sender, const Trigger *parameters);
868 	static int PickLockFailed(Scriptable *Sender, const Trigger *parameters);
869 	static int PickpocketFailed(Scriptable *Sender, const Trigger *parameters);
870 	static int Proficiency(Scriptable *Sender, const Trigger *parameters);
871 	static int ProficiencyGT(Scriptable *Sender, const Trigger *parameters);
872 	static int ProficiencyLT(Scriptable *Sender, const Trigger *parameters);
873 	static int Race(Scriptable *Sender, const Trigger *parameters);
874 	static int RandomNum(Scriptable *Sender, const Trigger *parameters);
875 	static int RandomNumGT(Scriptable *Sender, const Trigger *parameters);
876 	static int RandomNumLT(Scriptable *Sender, const Trigger *parameters);
877 	static int RandomStatCheck(Scriptable *Sender, const Trigger *parameters);
878 	static int Range(Scriptable *Sender, const Trigger *parameters);
879 	static int Reaction(Scriptable *Sender, const Trigger *parameters);
880 	static int ReactionLT(Scriptable *Sender, const Trigger *parameters);
881 	static int ReactionGT(Scriptable *Sender, const Trigger *parameters);
882 	static int RealGlobalTimerExact(Scriptable *Sender, const Trigger *parameters);
883 	static int RealGlobalTimerExpired(Scriptable *Sender, const Trigger *parameters);
884 	static int RealGlobalTimerNotExpired(Scriptable *Sender, const Trigger *parameters);
885 	static int ReceivedOrder(Scriptable *Sender, const Trigger *parameters);
886 	static int Reputation(Scriptable *Sender, const Trigger *parameters);
887 	static int ReputationGT(Scriptable *Sender, const Trigger *parameters);
888 	static int ReputationLT(Scriptable *Sender, const Trigger *parameters);
889 	static int School(Scriptable *Sender, const Trigger *parameters);
890 	static int See(Scriptable *Sender, const Trigger *parameters);
891 	static int Sequence(Scriptable *Sender, const Trigger *parameters);
892 	static int SetLastMarkedObject(Scriptable *Sender, const Trigger *parameters);
893 	static int SetMarkedSpell_Trigger(Scriptable *Sender, const Trigger *parameters);
894 	static int SetSpellTarget(Scriptable *Sender, const Trigger *parameters);
895 	static int Specifics(Scriptable *Sender, const Trigger *parameters);
896 	static int SpellCast(Scriptable *Sender, const Trigger *parameters);
897 	static int SpellCastInnate(Scriptable *Sender, const Trigger *parameters);
898 	static int SpellCastOnMe(Scriptable *Sender, const Trigger *parameters);
899 	static int SpellCastPriest(Scriptable *Sender, const Trigger *parameters);
900 	static int StateCheck(Scriptable *Sender, const Trigger *parameters);
901 	static int StealFailed(Scriptable *Sender, const Trigger *parameters);
902 	static int StoreHasItem(Scriptable *Sender, const Trigger *parameters);
903 	static int StoryModeOn(Scriptable *Sender, const Trigger */*parameters*/);
904 	static int StuffGlobalRandom(Scriptable *Sender, const Trigger *parameters);
905 	static int SubRace(Scriptable *Sender, const Trigger *parameters);
906 	static int SummoningLimit(Scriptable *Sender, const Trigger *parameters);
907 	static int SummoningLimitGT(Scriptable *Sender, const Trigger *parameters);
908 	static int SummoningLimitLT(Scriptable *Sender, const Trigger *parameters);
909 	static int SystemVariable_Trigger(Scriptable *Sender, const Trigger *parameters);
910 	static int TargetUnreachable(Scriptable *Sender, const Trigger *parameters);
911 	static int Team(Scriptable *Sender, const Trigger *parameters);
912 	static int Time(Scriptable *Sender, const Trigger *parameters);
913 	static int TimeGT(Scriptable *Sender, const Trigger *parameters);
914 	static int TimeLT(Scriptable *Sender, const Trigger *parameters);
915 	static int TimeOfDay(Scriptable *Sender, const Trigger *parameters);
916 	static int TimerActive(Scriptable *Sender, const Trigger *parameters);
917 	static int TimerExpired(Scriptable *Sender, const Trigger *parameters);
918 	static int TimeStopCounter(Scriptable */*Sender*/, const Trigger *parameters);
919 	static int TimeStopCounterGT(Scriptable */*Sender*/, const Trigger *parameters);
920 	static int TimeStopCounterLT(Scriptable */*Sender*/, const Trigger *parameters);
921 	static int TimeStopObject(Scriptable *Sender, const Trigger *parameters);
922 	static int TookDamage(Scriptable *Sender, const Trigger *parameters);
923 	static int TotalItemCnt(Scriptable *Sender, const Trigger *parameters);
924 	static int TotalItemCntExclude(Scriptable *Sender, const Trigger *parameters);
925 	static int TotalItemCntExcludeGT(Scriptable *Sender, const Trigger *parameters);
926 	static int TotalItemCntExcludeLT(Scriptable *Sender, const Trigger *parameters);
927 	static int TotalItemCntGT(Scriptable *Sender, const Trigger *parameters);
928 	static int TotalItemCntLT(Scriptable *Sender, const Trigger *parameters);
929 	static int TrapTriggered(Scriptable *Sender, const Trigger *parameters);
930 	static int TriggerTrigger(Scriptable *Sender, const Trigger *parameters);
931 	static int TriggerSetGlobal(Scriptable *Sender, const Trigger *parameters);
932 	static int True(Scriptable *Sender, const Trigger *parameters);
933 	static int TurnedBy(Scriptable *Sender, const Trigger *parameters);
934 	static int Unlocked(Scriptable *Sender, const Trigger *parameters);
935 	static int UnselectableVariable(Scriptable *Sender, const Trigger *parameters);
936 	static int UnselectableVariableGT(Scriptable *Sender, const Trigger *parameters);
937 	static int UnselectableVariableLT(Scriptable *Sender, const Trigger *parameters);
938 	static int Unusable(Scriptable *Sender, const Trigger *parameters);
939 	static int UsedExit(Scriptable *Sender, const Trigger *parameters);
940 	static int Vacant(Scriptable *Sender, const Trigger *parameters);
941 	static int WalkedToTrigger(Scriptable *Sender, const Trigger *parameters);
942 	static int WasInDialog(Scriptable *Sender, const Trigger *parameters);
943 	static int Xor(Scriptable *Sender, const Trigger *parameters);
944 	static int XP(Scriptable *Sender, const Trigger *parameters);
945 	static int XPGT(Scriptable *Sender, const Trigger *parameters);
946 	static int XPLT(Scriptable *Sender, const Trigger *parameters);
947 
948 	//Actions
949 	static void Activate(Scriptable* Sender, Action* parameters);
950 	static void ActivatePortalCursor(Scriptable* Sender, Action* parameters);
951 	static void AddAreaFlag(Scriptable* Sender, Action* parameters);
952 	static void AddAreaType(Scriptable* Sender, Action* parameters);
953 	static void AddExperienceParty(Scriptable *Sender, Action* parameters);
954 	static void AddExperiencePartyCR(Scriptable *Sender, Action* parameters);
955 	static void AddExperiencePartyGlobal(Scriptable *Sender, Action* parameters);
956 	static void AddFeat(Scriptable *Sender, Action* parameters);
957 	static void AddGlobals(Scriptable* Sender, Action* parameters);
958 	static void AddHP(Scriptable* Sender, Action* parameters);
959 	static void AddJournalEntry(Scriptable* Sender, Action* parameters);
960 	static void AddKit(Scriptable* Sender, Action* parameters);
961 	static void AddMapnote(Scriptable* Sender, Action* parameters);
962 	static void AddSpecialAbility(Scriptable* Sender, Action* parameters);
963 	static void AddSuperKit(Scriptable* Sender, Action* parameters);
964 	static void AddWayPoint(Scriptable* Sender, Action* parameters);
965 	static void AddWorldmapAreaFlag(Scriptable* /*Sender*/, Action* parameters);
966 	static void AddXP2DA(Scriptable *Sender, Action* parameters);
967 	static void AddXPObject(Scriptable *Sender, Action* parameters);
968 	static void AddXPVar(Scriptable *Sender, Action* parameters);
969 	static void AdvanceTime(Scriptable *Sender, Action* parameters);
970 	static void Ally(Scriptable* Sender, Action* parameters);
971 	static void AmbientActivate(Scriptable* Sender, Action* parameters);
972 	static void AnkhegEmerge(Scriptable* Sender, Action* parameters);
973 	static void AnkhegHide(Scriptable* Sender, Action* parameters);
974 	static void ApplyDamage(Scriptable* Sender, Action* parameters);
975 	static void ApplyDamagePercent(Scriptable* Sender, Action* parameters);
976 	static void ApplySpell(Scriptable* Sender, Action* parameters);
977 	static void ApplySpellPoint(Scriptable* Sender, Action* parameters);
978 	static void AttachTransitionToDoor(Scriptable* Sender, Action* parameters);
979 	static void Attack(Scriptable* Sender, Action* parameters);
980 	static void AttackNoSound(Scriptable* Sender, Action* parameters);
981 	static void AttackOneRound(Scriptable* Sender, Action* parameters);
982 	static void AttackReevaluate(Scriptable* Sender, Action* parameters);
983 	static void BanterBlockFlag(Scriptable* Sender, Action* parameters);
984 	static void BanterBlockTime(Scriptable* Sender, Action* parameters);
985 	static void BashDoor(Scriptable* Sender, Action* parameters);
986 	static void BattleSong(Scriptable* Sender, Action* parameters);
987 	static void Berserk(Scriptable* Sender, Action* parameters);
988 	static void BitClear(Scriptable* Sender, Action* parameters);
989 	static void BitGlobal(Scriptable* Sender, Action* parameters);
990 	static void BreakInstants(Scriptable* Sender, Action* parameters);
991 	static void Calm(Scriptable* Sender, Action* parameters);
992 	static void ChangeAIScript(Scriptable* Sender, Action* parameters);
993 	static void ChangeAIType(Scriptable* Sender, Action* parameters);
994 	static void ChangeAlignment(Scriptable* Sender, Action* parameters);
995 	static void ChangeAllegiance(Scriptable* Sender, Action* parameters);
996 	static void ChangeAnimation(Scriptable* Sender, Action* parameters);
997 	static void ChangeAnimationNoEffect(Scriptable* Sender, Action* parameters);
998 	static void ChangeClass(Scriptable* Sender, Action* parameters);
999 	static void ChangeColor(Scriptable* Sender, Action* parameters);
1000 //	static void ChangeCurrentScript(Scriptable* Sender, Action* parameters);
1001 	static void ChangeDestination(Scriptable* Sender, Action* parameters);
1002 	static void ChangeDialogue(Scriptable* Sender, Action* parameters);
1003 	static void ChangeGender(Scriptable* Sender, Action* parameters);
1004 	static void ChangeGeneral(Scriptable* Sender, Action* parameters);
1005 	static void ChangeRace(Scriptable* Sender, Action* parameters);
1006 	static void ChangeSpecifics(Scriptable* Sender, Action* parameters);
1007 	static void ChangeStat(Scriptable* Sender, Action* parameters);
1008 	static void ChangeStatGlobal(Scriptable* Sender, Action* parameters);
1009 	static void ChangeStoreMarkup(Scriptable* Sender, Action* parameters);
1010 	static void ChangeTileState(Scriptable* Sender, Action* parameters);
1011 	static void ChunkCreature(Scriptable *Sender, Action* parameters);
1012 	static void ClearActions(Scriptable* Sender, Action* parameters);
1013 	static void ClearAllActions(Scriptable* Sender, Action* parameters);
1014 	static void ClearPartyEffects(Scriptable* Sender, Action* parameters);
1015 	static void ClearSpriteEffects(Scriptable* Sender, Action* parameters);
1016 	static void ClickLButtonObject(Scriptable* Sender, Action* parameters);
1017 	static void ClickLButtonPoint(Scriptable* Sender, Action* parameters);
1018 	static void ClickRButtonObject(Scriptable* Sender, Action* parameters);
1019 	static void ClickRButtonPoint(Scriptable* Sender, Action* parameters);
1020 	static void CloseDoor(Scriptable* Sender, Action* parameters);
1021 	static void ContainerEnable(Scriptable* Sender, Action* parameters);
1022 	static void Continue(Scriptable* Sender, Action* parameters);
1023 	static void CopyGroundPilesTo(Scriptable* Sender, Action* parameters);
1024 	static void CreateCreature(Scriptable* Sender, Action* parameters);
1025 	static void CreateCreatureAtLocation(Scriptable* Sender, Action* parameters);
1026 	static void CreateCreatureAtFeet(Scriptable* Sender, Action* parameters);
1027 	static void CreateCreatureCopyPoint(Scriptable* Sender, Action* parameters);
1028 	static void CreateCreatureDoor(Scriptable* Sender, Action* parameters);
1029 	static void CreateCreatureImpassable(Scriptable* Sender, Action* parameters);
1030 	static void CreateCreatureImpassableAllowOverlap(Scriptable* Sender,
1031 		Action* parameters);
1032 	static void CreateCreatureObject(Scriptable* Sender, Action* parameters);
1033 	static void CreateCreatureObjectCopy(Scriptable* Sender, Action* parameters);
1034 	static void CreateCreatureObjectDoor(Scriptable* Sender, Action* parameters);
1035 	static void CreateCreatureObjectOffset(Scriptable* Sender, Action* parameters);
1036 	static void CreateCreatureObjectOffScreen(Scriptable* Sender, Action* parameters);
1037 	static void CreateCreatureOffScreen(Scriptable* Sender, Action* parameters);
1038 	static void CreateItem(Scriptable* Sender, Action* parameters);
1039 	static void CreateItemNumGlobal(Scriptable* Sender, Action* parameters);
1040 	static void CreatePartyGold(Scriptable *Sender, Action *parameters);
1041 	static void CreateVisualEffect(Scriptable* Sender, Action* parameters);
1042 	static void CreateVisualEffectObject(Scriptable* Sender,
1043 		Action* parameters);
1044 	static void CreateVisualEffectObjectSticky(Scriptable* Sender,
1045 		Action* parameters);
1046 	static void CutSceneID(Scriptable* Sender, Action* parameters);
1047 	static void Damage(Scriptable* Sender, Action* parameters);
1048 	static void DayNight(Scriptable *Sender, Action* parameters);
1049 	static void Deactivate(Scriptable* Sender, Action* parameters);
1050 	static void Debug(Scriptable* Sender, Action* parameters);
1051 	static void DemoEnd(Scriptable* Sender, Action* parameters);
1052 	static void DestroyAllDestructableEquipment(Scriptable* Sender,
1053 		Action* parameters);
1054 	static void DestroyAllEquipment(Scriptable* Sender, Action* parameters);
1055 	static void DestroyAllFragileEquipment(Scriptable* Sender, Action* parameters);
1056 	static void DestroyGold(Scriptable* Sender, Action* parameters);
1057 	static void DestroyItem(Scriptable* Sender, Action* parameters);
1058 	static void DestroyPartyGold(Scriptable* Sender, Action* parameters);
1059 	static void DestroyPartyItem(Scriptable* Sender, Action* parameters);
1060 	static void DestroyPartyItemNum(Scriptable* Sender, Action* parameters);
1061 	static void DestroySelf(Scriptable* Sender, Action* parameters);
1062 	static void DetectSecretDoor(Scriptable* Sender, Action* parameters);
1063 	static void Dialogue(Scriptable* Sender, Action* parameters);
1064 	static void DialogueForceInterrupt(Scriptable* Sender, Action* parameters);
1065 	static void DialogueInterrupt(Scriptable* Sender, Action* parameters);
1066 	static void DisableFogDither(Scriptable* Sender, Action* parameters);
1067 	static void DisableSpriteDither(Scriptable* Sender, Action* parameters);
1068 	static void DisplayMessage(Scriptable* Sender, Action* parameters);
1069 	static void DisplayString(Scriptable* Sender, Action* parameters);
1070 	static void DisplayStringHead(Scriptable* Sender, Action* parameters);
1071 	static void DisplayStringHeadOwner(Scriptable* Sender, Action* parameters);
1072 	static void DisplayStringNoName(Scriptable* Sender, Action* parameters);
1073 	static void DisplayStringNoNameHead(Scriptable* Sender, Action* parameters);
1074 	static void DisplayStringWait(Scriptable* Sender, Action* parameters);
1075 	static void DoubleClickLButtonObject(Scriptable* Sender, Action* parameters);
1076 	static void DoubleClickLButtonPoint(Scriptable* Sender, Action* parameters);
1077 	static void DoubleClickRButtonObject(Scriptable* Sender, Action* parameters);
1078 	static void DoubleClickRButtonPoint(Scriptable* Sender, Action* parameters);
1079 	static void DropInventory(Scriptable* Sender, Action* parameters);
1080 	static void DropInventoryEX(Scriptable* Sender, Action* parameters);
1081 	static void DropItem(Scriptable* Sender, Action* parameters);
1082 	static void EnableFogDither(Scriptable* Sender, Action* parameters);
1083 	static void EnablePortalTravel(Scriptable* Sender, Action* parameters);
1084 	static void EnableSpriteDither(Scriptable* Sender, Action* parameters);
1085 	static void EndCredits(Scriptable* Sender, Action* parameters);
1086 	static void EndCutSceneMode(Scriptable* Sender, Action* parameters);
1087 	static void Enemy(Scriptable* Sender, Action* parameters);
1088 	static void EscapeArea(Scriptable* Sender, Action* parameters);
1089 	static void EscapeAreaDestroy(Scriptable* Sender, Action* parameters);
1090 	static void EscapeAreaNoSee(Scriptable* Sender, Action* parameters);
1091 	static void EscapeAreaObject(Scriptable* Sender, Action* parameters);
1092 	static void EscapeAreaObjectNoSee(Scriptable* Sender, Action* parameters);
1093 	static void EquipItem(Scriptable *Sender, Action *parameters);
1094 	static void EquipMostDamagingMelee(Scriptable *Sender, Action *parameters);
1095 	static void EquipRanged(Scriptable *Sender, Action *parameters);
1096 	static void EquipWeapon(Scriptable *Sender, Action *parameters);
1097 	static void ExitPocketPlane(Scriptable* Sender, Action* parameters);
1098 	static void ExpansionEndCredits(Scriptable* Sender, Action* parameters);
1099 	static void Explore(Scriptable *Sender, Action *parameters);
1100 	static void ExploreMapChunk(Scriptable *Sender, Action *parameters);
1101 	static void ExportParty(Scriptable *Sender, Action *parameters);
1102 	static void Face(Scriptable* Sender, Action* parameters);
1103 	static void FaceObject(Scriptable* Sender, Action* parameters);
1104 	static void FaceSavedLocation(Scriptable* Sender, Action* parameters);
1105 	static void FadeFromColor(Scriptable* Sender, Action* parameters);
1106 	static void FadeToAndFromColor(Scriptable* Sender, Action* parameters);
1107 	static void FadeToColor(Scriptable* Sender, Action* parameters);
1108 	static void FakeEffectExpiryCheck(Scriptable* Sender, Action* parameters);
1109 	static void FillSlot(Scriptable *Sender, Action* parameters);
1110 	static void FindTraps(Scriptable* Sender, Action* parameters);
1111 	static void FixEngineRoom(Scriptable *Sender, Action* parameters);
1112 	static void FloatMessageFixed(Scriptable* Sender, Action* parameters);
1113 	static void FloatMessageFixedRnd(Scriptable* Sender, Action* parameters);
1114 	static void FloatMessageRnd(Scriptable* Sender, Action* parameters);
1115 	static void FloatRebus(Scriptable* Sender, Action* parameters);
1116 	static void Follow(Scriptable* Sender, Action* parameters);
1117 	static void FollowCreature(Scriptable* Sender, Action* parameters);
1118 	static void FollowObjectFormation(Scriptable* Sender, Action* parameters);
1119 	static void ForceAIScript(Scriptable* Sender, Action* parameters);
1120 	static void ForceAttack(Scriptable* Sender, Action* parameters);
1121 	static void ForceFacing(Scriptable* Sender, Action* parameters);
1122 	static void ForceHide(Scriptable* Sender, Action* parameters);
1123 	static void ForceLeaveAreaLUA(Scriptable* Sender, Action* parameters);
1124 	static void ForceMarkedSpell(Scriptable* Sender, Action* parameters);
1125 	static void ForceSpell(Scriptable* Sender, Action* parameters);
1126 	static void ForceSpellRange(Scriptable* Sender, Action* parameters);
1127 	static void ForceSpellPoint(Scriptable* Sender, Action* parameters);
1128 	static void ForceSpellPointRange(Scriptable* Sender, Action* parameters);
1129 	static void ForceUseContainer(Scriptable* Sender, Action* parameters);
1130 	static void Formation(Scriptable* Sender, Action* parameters);
1131 	static void FullHeal(Scriptable* Sender, Action* parameters);
1132 	static void GenerateMaze(Scriptable* Sender, Action* parameters);
1133 	static void GeneratePartyMember(Scriptable* Sender, Action* parameters);
1134 	static void GetItem(Scriptable* Sender, Action* parameters);
1135 	static void GetStat(Scriptable* Sender, Action* parameters);
1136 	static void GiveItem(Scriptable* Sender, Action* parameters);
1137 	static void GiveOrder(Scriptable* Sender, Action* parameters);
1138 	static void GivePartyAllEquipment(Scriptable* Sender, Action* parameters);
1139 	static void GivePartyGold(Scriptable* Sender, Action* parameters);
1140 	static void GivePartyGoldGlobal(Scriptable* Sender, Action* parameters);
1141 	static void GlobalAddGlobal(Scriptable* Sender, Action* parameters);
1142 	static void GlobalAndGlobal(Scriptable* Sender, Action* parameters);
1143 	static void GlobalBAnd(Scriptable* Sender, Action* parameters);
1144 	static void GlobalBAndGlobal(Scriptable* Sender, Action* parameters);
1145 	static void GlobalBitGlobal(Scriptable* Sender, Action* parameters);
1146 	static void GlobalBOr(Scriptable* Sender, Action* parameters);
1147 	static void GlobalBOrGlobal(Scriptable* Sender, Action* parameters);
1148 	static void GlobalMax(Scriptable* Sender, Action* parameters);
1149 	static void GlobalMaxGlobal(Scriptable* Sender, Action* parameters);
1150 	static void GlobalMin(Scriptable* Sender, Action* parameters);
1151 	static void GlobalMinGlobal(Scriptable* Sender, Action* parameters);
1152 	static void GlobalOrGlobal(Scriptable* Sender, Action* parameters);
1153 	static void GlobalSetGlobal(Scriptable* Sender, Action* parameters);
1154 	static void GlobalShL(Scriptable* Sender, Action* parameters);
1155 	static void GlobalShLGlobal(Scriptable* Sender, Action* parameters);
1156 	static void GlobalShout(Scriptable* Sender, Action* parameters);
1157 	static void GlobalShR(Scriptable* Sender, Action* parameters);
1158 	static void GlobalShRGlobal(Scriptable* Sender, Action* parameters);
1159 	static void GlobalSubGlobal(Scriptable* Sender, Action* parameters);
1160 	static void GlobalXor(Scriptable* Sender, Action* parameters);
1161 	static void GlobalXorGlobal(Scriptable* Sender, Action* parameters);
1162 	static void Help(Scriptable* Sender, Action* parameters);
1163 	static void Hide(Scriptable* Sender, Action* parameters);
1164 	static void HideAreaOnMap(Scriptable* Sender, Action* parameters);
1165 	static void HideCreature(Scriptable* Sender, Action* parameters);
1166 	static void HideGUI(Scriptable* Sender, Action* parameters);
1167 	static void IncInternal(Scriptable* Sender, Action* parameters);
1168 	static void IncMoraleAI(Scriptable* Sender, Action* parameters);
1169 	static void IncrementChapter(Scriptable* Sender, Action* parameters);
1170 	static void IncrementExtraProficiency(Scriptable* Sender, Action* parameters);
1171 	static void IncrementGlobal(Scriptable* Sender, Action* parameters);
1172 	static void IncrementGlobalOnce(Scriptable* Sender, Action* parameters);
1173 	static void IncrementKillStat(Scriptable* Sender, Action* parameters);
1174 	static void IncrementProficiency(Scriptable* Sender, Action* parameters);
1175 	static void Interact(Scriptable* Sender, Action* parameters);
1176 	static void JoinParty(Scriptable* Sender, Action* parameters);
1177 	static void JumpToObject(Scriptable* Sender, Action* parameters);
1178 	static void JumpToPoint(Scriptable* Sender, Action* parameters);
1179 	static void JumpToPointInstant(Scriptable* Sender, Action* parameters);
1180 	static void JumpToSavedLocation(Scriptable* Sender, Action* parameters);
1181 	static void Kill(Scriptable* Sender, Action* parameters);
1182 	static void KillFloatMessage(Scriptable* Sender, Action* parameters);
1183 	static void Leader(Scriptable* Sender, Action* parameters);
1184 	static void LeaveAreaLUA(Scriptable* Sender, Action* parameters);
1185 	static void LeaveAreaLUAEntry(Scriptable* Sender, Action* parameters);
1186 	static void LeaveAreaLUAPanic(Scriptable* Sender, Action* parameters);
1187 	static void LeaveAreaLUAPanicEntry(Scriptable* Sender, Action* parameters);
1188 	static void LeaveParty(Scriptable* Sender, Action* parameters);
1189 	static void Lock(Scriptable* Sender, Action* parameters);
1190 	static void LockScroll(Scriptable* Sender, Action* parameters);
1191 	static void MakeGlobal(Scriptable* Sender, Action* parameters);
1192 	static void MakeUnselectable(Scriptable* Sender, Action* parameters);
1193 	static void MarkObject(Scriptable* Sender, Action* parameters);
1194 	static void MarkSpellAndObject(Scriptable* Sender, Action* parameters);
1195 	static void MatchHP(Scriptable* Sender, Action* parameters);
1196 	static void MoraleDec(Scriptable* Sender, Action* parameters);
1197 	static void MoraleInc(Scriptable* Sender, Action* parameters);
1198 	static void MoraleSet(Scriptable* Sender, Action* parameters);
1199 	static void MoveBetweenAreas(Scriptable* Sender, Action* parameters);
1200 	static void MoveBetweenAreasEffect(Scriptable* Sender, Action* parameters);
1201 	static void MoveCursorPoint(Scriptable* Sender, Action* parameters);
1202 	static void MoveGlobal(Scriptable* Sender, Action* parameters);
1203 	static void MoveGlobalObject(Scriptable* Sender, Action* parameters);
1204 	static void MoveGlobalObjectOffScreen(Scriptable* Sender, Action* parameters);
1205 	static void MoveGlobalsTo(Scriptable* Sender, Action* parameters);
1206 	static void MoveInventory(Scriptable *Sender, Action* parameters);
1207 	static void MoveToCenterOfScreen(Scriptable* Sender, Action* parameters);
1208 	static void MoveToExpansion(Scriptable* Sender, Action* parameters);
1209 	static void MoveToObject(Scriptable* Sender, Action* parameters);
1210 	static void MoveToObjectFollow(Scriptable* Sender, Action* parameters);
1211 	static void MoveToObjectNoInterrupt(Scriptable* Sender, Action* parameters);
1212 	static void MoveToObjectUntilSee(Scriptable* Sender, Action* parameters);
1213 	static void MoveToOffset(Scriptable* Sender, Action* parameters);
1214 	static void MoveToPoint(Scriptable* Sender, Action* parameters);
1215 	static void MoveToPointNoInterrupt(Scriptable* Sender, Action* parameters);
1216 	static void MoveToPointNoRecticle(Scriptable* Sender, Action* parameters);
1217 	static void MoveToSavedLocation(Scriptable* Sender, Action* parameters);
1218 	static void MoveViewPoint(Scriptable* Sender, Action* parameters);
1219 	static void MoveViewObject(Scriptable* Sender, Action* parameters);
1220 	static void MultiPlayerSync(Scriptable* Sender, Action* parameters);
1221 	static void NIDSpecial1(Scriptable* Sender, Action* parameters);
1222 	static void NIDSpecial2(Scriptable* Sender, Action* parameters);
1223 	static void NoAction(Scriptable* Sender, Action* parameters);
1224 	static void NoActionAtAll(Scriptable* Sender, Action* parameters);
1225 	static void OpenDoor(Scriptable* Sender, Action* parameters);
1226 	static void Panic(Scriptable* Sender, Action* parameters);
1227 	static void PauseGame(Scriptable *Sender, Action* parameters);
1228 	static void PermanentStatChange(Scriptable* Sender, Action* parameters);
1229 	static void PickLock(Scriptable* Sender, Action* parameters);
1230 	static void PickPockets(Scriptable* Sender, Action* parameters);
1231 	static void PickUpItem(Scriptable* Sender, Action* parameters);
1232 	static void PlayBardSong(Scriptable* Sender, Action* parameters);
1233 	static void PlayDead(Scriptable* Sender, Action* parameters);
1234 	static void PlayDeadInterruptable(Scriptable* Sender, Action* parameters);
1235 	static void PlayerDialogue(Scriptable* Sender, Action* parameters);
1236 	static void PlaySequence(Scriptable* Sender, Action* parameters);
1237 	static void PlaySequenceGlobal(Scriptable* Sender, Action* parameters);
1238 	static void PlaySequenceTimed(Scriptable* Sender, Action* parameters);
1239 	static void PlaySound(Scriptable* Sender, Action* parameters);
1240 	static void PlaySoundNotRanged(Scriptable* Sender, Action* parameters);
1241 	static void PlaySoundPoint(Scriptable* Sender, Action* parameters);
1242 	static void Plunder(Scriptable* Sender, Action* parameters);
1243 	static void Polymorph(Scriptable* Sender, Action* parameters);
1244 	static void PolymorphCopy(Scriptable* Sender, Action* parameters);
1245 	static void PolymorphCopyBase(Scriptable* Sender, Action* parameters);
1246 	static void ProtectObject(Scriptable* Sender, Action* parameters);
1247 	static void ProtectPoint(Scriptable* Sender, Action* parameters);
1248 	static void QuitGame(Scriptable* Sender, Action* parameters);
1249 	static void RandomFly(Scriptable* Sender, Action* parameters);
1250 	static void RandomRun(Scriptable* Sender, Action* parameters);
1251 	static void RandomTurn(Scriptable* Sender, Action* parameters);
1252 	static void RandomWalk(Scriptable* Sender, Action* parameters);
1253 	static void RandomWalkContinuous(Scriptable* Sender, Action* parameters);
1254 	static void RealSetGlobalTimer(Scriptable* Sender, Action* parameters);
1255 	static void ReallyForceSpell(Scriptable* Sender, Action* parameters);
1256 	static void ReallyForceSpellDead(Scriptable* Sender, Action* parameters);
1257 	static void ReallyForceSpellPoint(Scriptable* Sender, Action* parameters);
1258 	static void Recoil(Scriptable* Sender, Action* parameters);
1259 	static void RegainPaladinHood(Scriptable* Sender, Action* parameters);
1260 	static void RegainRangerHood(Scriptable* Sender, Action* parameters);
1261 	static void RemoveAreaFlag(Scriptable* Sender, Action* parameters);
1262 	static void RemoveAreaType(Scriptable* Sender, Action* parameters);
1263 	static void RemoveJournalEntry(Scriptable* Sender, Action* parameters);
1264 	static void RemoveMapnote(Scriptable* Sender, Action* parameters);
1265 	static void RemovePaladinHood(Scriptable* Sender, Action* parameters);
1266 	static void RemoveRangerHood(Scriptable* Sender, Action* parameters);
1267 	static void RemoveSpell(Scriptable* Sender, Action* parameters);
1268 	static void RemoveTraps(Scriptable* Sender, Action* parameters);
1269 	static void RemoveWorldmapAreaFlag(Scriptable* /*Sender*/, Action* parameters);
1270 	static void ReputationInc(Scriptable* Sender, Action* parameters);
1271 	static void ReputationSet(Scriptable* Sender, Action* parameters);
1272 	static void RestorePartyLocation(Scriptable *Sender, Action* parameters);
1273 	static void Rest(Scriptable *Sender, Action* parameters);
1274 	static void RestNoSpells(Scriptable *Sender, Action* parameters);
1275 	static void RestParty(Scriptable *Sender, Action* parameters);
1276 	static void RestUntilHealed(Scriptable *Sender, Action* parameters);
1277 	static void ReturnToSavedLocation(Scriptable* Sender, Action* parameters);
1278 	static void ReturnToSavedLocationDelete(Scriptable* Sender, Action* parameters);
1279 	static void ReturnToStartLocation(Scriptable* Sender, Action* parameters);
1280 	static void RevealAreaOnMap(Scriptable* Sender, Action* parameters);
1281 	static void RunAwayFrom(Scriptable* Sender, Action* parameters);
1282 	static void RunAwayFromNoInterrupt(Scriptable* Sender, Action* parameters);
1283 	static void RunAwayFromNoLeaveArea(Scriptable* Sender, Action* parameters);
1284 	static void RunFollow(Scriptable* Sender, Action* parameters);
1285 	static void RunningAttack(Scriptable* Sender, Action* parameters);
1286 	static void RunningAttackNoSound(Scriptable* Sender, Action* parameters);
1287 	static void RunToObject(Scriptable* Sender, Action* parameters);
1288 	static void RunToPoint(Scriptable* Sender, Action* parameters);
1289 	static void RunToPointNoRecticle(Scriptable* Sender, Action* parameters);
1290 	static void RunToSavedLocation(Scriptable* Sender, Action* parameters);
1291 	static void SaveGame(Scriptable* Sender, Action* parameters);
1292 	static void SaveLocation(Scriptable* Sender, Action* parameters);
1293 	static void SaveObjectLocation(Scriptable* Sender, Action* parameters);
1294 	static void ScreenShake(Scriptable* Sender, Action* parameters);
1295 	static void SelectWeaponAbility(Scriptable* Sender, Action* parameters);
1296 	static void SendTrigger(Scriptable* Sender, Action* parameters);
1297 	static void SetApparentName(Scriptable* Sender, Action* parameters);
1298 	static void SetAreaFlags(Scriptable* Sender, Action* parameters);
1299 	static void SetAreaRestFlag(Scriptable* Sender, Action* parameters);
1300 	static void SetArmourLevel(Scriptable* Sender, Action* parameters);
1301 	static void SetBeenInPartyFlags(Scriptable* Sender, Action* parameters);
1302 	static void SetBestWeapon(Scriptable *Sender, Action *parameters);
1303 	static void SetCursorState(Scriptable* Sender, Action* parameters);
1304 	static void SetCreatureAreaFlag(Scriptable* Sender, Action* parameters);
1305 	static void SetCriticalPathObject(Scriptable* Sender, Action* parameters);
1306 	static void SetDialogue(Scriptable* Sender, Action* parameters);
1307 	static void SetDialogueRange(Scriptable* Sender, Action* parameters);
1308 	static void SetDoorFlag(Scriptable* Sender, Action* parameters);
1309 	static void SetDoorLocked(Scriptable* Sender, Action* parameters);
1310 	static void SetEncounterProbability(Scriptable* Sender, Action* parameters);
1311 	static void SetExtendedNight(Scriptable* Sender, Action* parameters);
1312 	static void SetFaction(Scriptable* Sender, Action* parameters);
1313 	static void SetGabber(Scriptable* Sender, Action* parameters);
1314 	static void SetGlobal(Scriptable* Sender, Action* parameters);
1315 	static void SetGlobalRandom(Scriptable* Sender, Action* parameters);
1316 	static void SetGlobalTimer(Scriptable* Sender, Action* parameters);
1317 	static void SetGlobalTimerOnce(Scriptable* Sender, Action* parameters);
1318 	static void SetGlobalTimerRandom(Scriptable* Sender, Action* parameters);
1319 	static void SetGlobalTint(Scriptable* Sender, Action* parameters);
1320 	static void SetHomeLocation(Scriptable* Sender, Action* parameters);
1321 	static void SetHP(Scriptable* Sender, Action* parameters);
1322 	static void SetHPPercent(Scriptable* Sender, Action* parameters);
1323 	static void SetInternal(Scriptable* Sender, Action* parameters);
1324 	static void SetInterrupt(Scriptable* Sender, Action* parameters);
1325 	static void SetItemFlags(Scriptable* Sender, Action* parameters);
1326 	static void SetLeavePartyDialogFile(Scriptable* Sender, Action* parameters);
1327 	static void SetMarkedSpell(Scriptable* Sender, Action* parameters);
1328 	static void SetMasterArea(Scriptable* Sender, Action* parameters);
1329 	static void SetMazeEasier(Scriptable* Sender, Action* parameters);
1330 	static void SetMazeHarder(Scriptable* Sender, Action* parameters);
1331 	static void SetMoraleAI(Scriptable* Sender, Action* parameters);
1332 	static void SetMusic(Scriptable* Sender, Action* parameters);
1333 	static void SetMyTarget(Scriptable* Sender, Action* parameters);
1334 	static void SetNamelessClass(Scriptable* Sender, Action* parameters);
1335 	static void SetNamelessDeath(Scriptable* Sender, Action* parameters);
1336 	static void SetNamelessDisguise(Scriptable* Sender, Action* parameters);
1337 	static void SetNoOneOnTrigger(Scriptable* Sender, Action* parameters);
1338 	static void SetNumTimesTalkedTo(Scriptable* Sender, Action* parameters);
1339 	static void SetOriginalClass(Scriptable* Sender, Action* parameters);
1340 	static void SetPlayerSound(Scriptable* Sender, Action* parameters);
1341 	static void SetQuestDone(Scriptable* Sender, Action* parameters);
1342 	static void SetRegularName(Scriptable* Sender, Action* parameters);
1343 	static void SetRestEncounterChance(Scriptable* Sender, Action* parameters);
1344 	static void SetRestEncounterProbabilityDay(Scriptable* Sender, Action* parameters);
1345 	static void SetRestEncounterProbabilityNight(Scriptable* Sender, Action* parameters);
1346 	static void SetSavedLocation(Scriptable* Sender, Action* parameters);
1347 	static void SetSavedLocationPoint(Scriptable* Sender, Action* parameters);
1348 	static void SetScriptName(Scriptable* Sender, Action* parameters);
1349 	static void SetSelection(Scriptable* Sender, Action* parameters);
1350 	static void SetStartPos(Scriptable* Sender, Action* parameters);
1351 	static void SetTeam(Scriptable* Sender, Action* parameters);
1352 	static void SetTeamBit(Scriptable* Sender, Action* parameters);
1353 	static void SetTextColor(Scriptable* Sender, Action* parameters);
1354 	static void SetToken(Scriptable* Sender, Action* parameters);
1355 	static void SetToken2DA(Scriptable* Sender, Action* parameters);
1356 	static void SetTokenGlobal(Scriptable* Sender, Action* parameters);
1357 	static void SetTokenObject(Scriptable* Sender, Action* parameters);
1358 	static void SetTrackString(Scriptable* Sender, Action* parameters);
1359 	static void SetupWish(Scriptable* Sender, Action* parameters);
1360 	static void SetupWishObject(Scriptable* Sender, Action* parameters);
1361 	static void SetVisualRange(Scriptable* Sender, Action* parameters);
1362 	static void SG(Scriptable* Sender, Action* parameters);
1363 	static void Shout(Scriptable* Sender, Action* parameters);
1364 	static void SmallWait(Scriptable* Sender, Action* parameters);
1365 	static void SmallWaitRandom(Scriptable* Sender, Action* parameters);
1366 	static void SoundActivate(Scriptable* Sender, Action* parameters);
1367 	static void SpawnPtActivate(Scriptable* Sender, Action* parameters);
1368 	static void SpawnPtDeactivate(Scriptable* Sender, Action* parameters);
1369 	static void SpawnPtSpawn(Scriptable* Sender, Action* parameters);
1370 	static void Spell(Scriptable* Sender, Action* parameters);
1371 	static void SpellCastEffect(Scriptable* Sender, Action* parameters);
1372 	static void SpellHitEffectPoint(Scriptable* Sender, Action* parameters);
1373 	static void SpellHitEffectSprite(Scriptable* Sender, Action* parameters);
1374 	static void SpellNoDec(Scriptable* Sender, Action* parameters);
1375 	static void SpellPoint(Scriptable* Sender, Action* parameters);
1376 	static void SpellPointNoDec(Scriptable* Sender, Action* parameters);
1377 	static void StartCombatCounter(Scriptable* Sender, Action* parameters);
1378 	static void StartCutScene(Scriptable* Sender, Action* parameters);
1379 	static void StartCutSceneEx(Scriptable* Sender, Action* parameters);
1380 	static void StartCutSceneMode(Scriptable* Sender, Action* parameters);
1381 	static void StartDialogue(Scriptable* Sender, Action* parameters);
1382 	static void StartDialogueInterrupt(Scriptable* Sender, Action* parameters);
1383 	static void StartDialogueNoSet(Scriptable* Sender, Action* parameters);
1384 	static void StartDialogueNoSetInterrupt(Scriptable* Sender,
1385 		Action* parameters);
1386 	static void StartDialogueOverride(Scriptable* Sender, Action* parameters);
1387 	static void StartDialogueOverrideInterrupt(Scriptable* Sender,
1388 		Action* parameters);
1389 	static void StartMovie(Scriptable* Sender, Action* parameters);
1390 	static void StartMusic(Scriptable* Sender, Action* parameters);
1391 	static void StartRainNow(Scriptable* Sender, Action* parameters);
1392 	static void StartRandomTimer(Scriptable* Sender, Action* parameters);
1393 	static void StartSong(Scriptable* Sender, Action* parameters);
1394 	static void StartStore(Scriptable* Sender, Action* parameters);
1395 	static void StartTimer(Scriptable* Sender, Action* parameters);
1396 	static void StateOverrideFlag(Scriptable* Sender, Action* parameters);
1397 	static void StateOverrideTime(Scriptable* Sender, Action* parameters);
1398 	static void StaticPalette(Scriptable* Sender, Action* parameters);
1399 	static void StaticStart(Scriptable* Sender, Action* parameters);
1400 	static void StaticStop(Scriptable* Sender, Action* parameters);
1401 	static void StopMoving(Scriptable* Sender, Action* parameters);
1402 	static void StorePartyLocation(Scriptable *Sender, Action* parameters);
1403 	static void Swing(Scriptable* Sender, Action* parameters);
1404 	static void SwingOnce(Scriptable* Sender, Action* parameters);
1405 	static void TakeItemList(Scriptable* Sender, Action* parameters);
1406 	static void TakeItemListParty(Scriptable* Sender, Action* parameters);
1407 	static void TakeItemListPartyNum(Scriptable* Sender, Action* parameters);
1408 	static void TakeItemReplace(Scriptable* Sender, Action* parameters);
1409 	static void TakePartyGold(Scriptable* Sender, Action* parameters);
1410 	static void TakePartyItem(Scriptable* Sender, Action* parameters);
1411 	static void TakePartyItemAll(Scriptable* Sender, Action* parameters);
1412 	static void TakePartyItemNum(Scriptable* Sender, Action* parameters);
1413 	static void TakePartyItemRange(Scriptable* Sender, Action* parameters);
1414 	static void TeleportParty(Scriptable* Sender, Action* parameters);
1415 	static void TextScreen(Scriptable* Sender, Action* parameters);
1416 	static void ToggleDoor(Scriptable* Sender, Action* parameters);
1417 	static void TimedMoveToPoint(Scriptable* Sender, Action* parameters);
1418 	static void TransformItem(Scriptable* Sender, Action* parameters);
1419 	static void TransformItemAll(Scriptable* Sender, Action* parameters);
1420 	static void TransformPartyItem(Scriptable* Sender, Action* parameters);
1421 	static void TransformPartyItemAll(Scriptable* Sender, Action* parameters);
1422 	static void TriggerActivation(Scriptable* Sender, Action* parameters);
1423 	static void TriggerWalkTo(Scriptable* Sender, Action* parameters);
1424 	static void Turn(Scriptable* Sender, Action* parameters);
1425 	static void TurnAMT(Scriptable* Sender, Action* parameters);
1426 	static void UndoExplore(Scriptable *Sender, Action *parameters);
1427 	static void Unhide(Scriptable* Sender, Action* parameters);
1428 	static void UnhideGUI(Scriptable* Sender, Action* parameters);
1429 	static void Unlock(Scriptable* Sender, Action* parameters);
1430 	static void UnlockScroll(Scriptable* Sender, Action* parameters);
1431 	static void UseContainer(Scriptable* Sender, Action* parameters);
1432 	static void UseDoor(Scriptable* Sender, Action* parameters);
1433 	static void UseItem(Scriptable* Sender, Action* parameters);
1434 	static void UseItemPoint(Scriptable* Sender, Action* parameters);
1435 	static void VerbalConstant(Scriptable* Sender, Action* parameters);
1436 	static void VerbalConstantHead(Scriptable* Sender, Action* parameters);
1437 	static void Wait(Scriptable* Sender, Action* parameters);
1438 	static void WaitAnimation(Scriptable* Sender, Action* parameters);
1439 	static void WaitRandom(Scriptable* Sender, Action* parameters);
1440 	static void Weather(Scriptable* Sender, Action* parameters);
1441 	static void XEquipItem(Scriptable *Sender, Action *parameters);
1442 
1443 	//Objects
1444 	static Targets *BestAC(const Scriptable *Sender, Targets *parameters, int ga_flags);
1445 	static Targets *EighthNearest(const Scriptable *Sender, Targets *parameters, int ga_flagss);
1446 	static Targets *EighthNearestDoor(const Scriptable *Sender, Targets *parameters, int ga_flagss);
1447 	static Targets *EighthNearestEnemyOf(const Scriptable *Sender, Targets *parameters, int ga_flagss);
1448 	static Targets *EighthNearestEnemyOfType(const Scriptable *Sender, Targets *parameters, int ga_flagss);
1449 	static Targets *EighthNearestMyGroupOfType(const Scriptable *Sender, Targets *parameters, int ga_flags);
1450 	static Targets *Farthest(const Scriptable *Sender, Targets *parameters, int ga_flags);
1451 	static Targets *FarthestEnemyOf(const Scriptable *Sender, Targets *parameters, int ga_flags);
1452 	static Targets *FifthNearest(const Scriptable *Sender, Targets *parameters, int ga_flags);
1453 	static Targets *FifthNearestDoor(const Scriptable *Sender, Targets *parameters, int ga_flags);
1454 	static Targets *FifthNearestEnemyOf(const Scriptable *Sender, Targets *parameters, int ga_flags);
1455 	static Targets *FifthNearestEnemyOfType(const Scriptable *Sender, Targets *parameters, int ga_flags);
1456 	static Targets *FifthNearestMyGroupOfType(const Scriptable *Sender, Targets *parameters, int ga_flags);
1457 	static Targets *FourthNearest(const Scriptable *Sender, Targets *parameters, int ga_flags);
1458 	static Targets *FourthNearestDoor(const Scriptable *Sender, Targets *parameters, int ga_flags);
1459 	static Targets *FourthNearestEnemyOf(const Scriptable *Sender, Targets *parameters, int ga_flags);
1460 	static Targets *FourthNearestEnemyOfType(const Scriptable *Sender, Targets *parameters, int ga_flags);
1461 	static Targets *FourthNearestMyGroupOfType(const Scriptable *Sender, Targets *parameters, int ga_flags);
1462 	static Targets *Gabber(const Scriptable *Sender, Targets *parameters, int ga_flags);
1463 	static Targets *GroupOf(const Scriptable *Sender, Targets *parameters, int ga_flags);
1464 	static Targets *LastAttackerOf(const Scriptable *Sender, Targets *parameters, int ga_flags);
1465 	static Targets *LastCommandedBy(const Scriptable *Sender, Targets *parameters, int ga_flags);
1466 	static Targets *LastHeardBy(const Scriptable *Sender, Targets *parameters, int ga_flags);
1467 	static Targets *LastHelp(const Scriptable *Sender, Targets *parameters, int ga_flags);
1468 	static Targets *LastHitter(const Scriptable *Sender, Targets *parameters, int ga_flags);
1469 	static Targets *LastMarkedObject(const Scriptable *Sender, Targets *parameters, int ga_flags);
1470 	static Targets *LastSeenBy(const Scriptable *Sender, Targets *parameters, int ga_flags);
1471 	static Targets *LastSummonerOf(const Scriptable *Sender, Targets *parameters, int ga_flags);
1472 	static Targets *LastTalkedToBy(const Scriptable *Sender, Targets *parameters, int ga_flags);
1473 	static Targets *LastTargetedBy(const Scriptable *Sender, Targets *parameters, int ga_flags);
1474 	static Targets *LastTrigger(const Scriptable *Sender, Targets *parameters, int ga_flags);
1475 	static Targets *LeaderOf(const Scriptable *Sender, Targets *parameters, int ga_flags);
1476 	static Targets *LeastDamagedOf(const Scriptable *Sender, Targets *parameters, int ga_flags);
1477 	static Targets *MostDamagedOf(const Scriptable *Sender, Targets *parameters, int ga_flags);
1478 	static Targets *Myself(const Scriptable *Sender, Targets *parameters, int ga_flags);
1479 	static Targets *MyTarget(const Scriptable *Sender, Targets *parameters, int ga_flags);
1480 	static Targets *Nearest(const Scriptable *Sender, Targets *parameters, int ga_flags);
1481 	static Targets *NearestDoor(const Scriptable *Sender, Targets *parameters, int ga_flags);
1482 	static Targets *NearestEnemyOf(const Scriptable *Sender, Targets *parameters, int ga_flags);
1483 	static Targets *NearestEnemyOfType(const Scriptable *Sender, Targets *parameters, int ga_flags);
1484 	static Targets *NearestEnemySummoned(const Scriptable *Sender, Targets *parameters, int ga_flags);
1485 	static Targets *NearestMyGroupOfType(const Scriptable *Sender, Targets *parameters, int ga_flags);
1486 	static Targets *NearestPC(const Scriptable *Sender, Targets *parameters, int ga_flags);
1487 	static Targets *NinthNearest(const Scriptable *Sender, Targets *parameters, int ga_flags);
1488 	static Targets *NinthNearestDoor(const Scriptable *Sender, Targets *parameters, int ga_flags);
1489 	static Targets *NinthNearestEnemyOf(const Scriptable *Sender, Targets *parameters, int ga_flags);
1490 	static Targets *NinthNearestEnemyOfType(const Scriptable *Sender, Targets *parameters, int ga_flags);
1491 	static Targets *NinthNearestMyGroupOfType(const Scriptable *Sender, Targets *parameters, int ga_flags);
1492 	static Targets *Nothing(const Scriptable *Sender, Targets *parameters, int ga_flags);
1493 	static Targets *Player1(const Scriptable *Sender, Targets *parameters, int ga_flags);
1494 	static Targets *Player1Fill(const Scriptable *Sender, Targets *parameters, int ga_flags);
1495 	static Targets *Player2(const Scriptable *Sender, Targets *parameters, int ga_flags);
1496 	static Targets *Player2Fill(const Scriptable *Sender, Targets *parameters, int ga_flags);
1497 	static Targets *Player3(const Scriptable *Sender, Targets *parameters, int ga_flags);
1498 	static Targets *Player3Fill(const Scriptable *Sender, Targets *parameters, int ga_flags);
1499 	static Targets *Player4(const Scriptable *Sender, Targets *parameters, int ga_flags);
1500 	static Targets *Player4Fill(const Scriptable *Sender, Targets *parameters, int ga_flags);
1501 	static Targets *Player5(const Scriptable *Sender, Targets *parameters, int ga_flags);
1502 	static Targets *Player5Fill(const Scriptable *Sender, Targets *parameters, int ga_flags);
1503 	static Targets *Player6(const Scriptable *Sender, Targets *parameters, int ga_flags);
1504 	static Targets *Player6Fill(const Scriptable *Sender, Targets *parameters, int ga_flags);
1505 	static Targets *Protagonist(const Scriptable *Sender, Targets *parameters, int ga_flags);
1506 	static Targets *ProtectedBy(const Scriptable *Sender, Targets *parameters, int ga_flags);
1507 	static Targets *ProtectorOf(const Scriptable *Sender, Targets *parameters, int ga_flags);
1508 	static Targets *SecondNearest(const Scriptable *Sender, Targets *parameters, int ga_flags);
1509 	static Targets *SecondNearestDoor(const Scriptable *Sender, Targets *parameters, int ga_flags);
1510 	static Targets *SecondNearestEnemyOf(const Scriptable *Sender, Targets *parameters, int ga_flags);
1511 	static Targets *SecondNearestEnemyOfType(const Scriptable *Sender, Targets *parameters, int ga_flags);
1512 	static Targets *SecondNearestMyGroupOfType(const Scriptable *Sender, Targets *parameters, int ga_flags);
1513 	static Targets *SelectedCharacter(const Scriptable *Sender, Targets *parameters, int ga_flags);
1514 	static Targets *SeventhNearest(const Scriptable *Sender, Targets *parameters, int ga_flags);
1515 	static Targets *SeventhNearestDoor(const Scriptable *Sender, Targets *parameters, int ga_flags);
1516 	static Targets *SeventhNearestEnemyOf(const Scriptable *Sender, Targets *parameters, int ga_flags);
1517 	static Targets *SeventhNearestEnemyOfType(const Scriptable *Sender, Targets *parameters, int ga_flags);
1518 	static Targets *SeventhNearestMyGroupOfType(const Scriptable *Sender, Targets *parameters, int ga_flags);
1519 	static Targets *SixthNearest(const Scriptable *Sender, Targets *parameters, int ga_flags);
1520 	static Targets *SixthNearestDoor(const Scriptable *Sender, Targets *parameters, int ga_flags);
1521 	static Targets *SixthNearestEnemyOf(const Scriptable *Sender, Targets *parameters, int ga_flags);
1522 	static Targets *SixthNearestEnemyOfType(const Scriptable *Sender, Targets *parameters, int ga_flags);
1523 	static Targets *SixthNearestMyGroupOfType(const Scriptable *Sender, Targets *parameters, int ga_flags);
1524 	static Targets *SpellTarget(const Scriptable *Sender, Targets *parameters, int ga_flags);
1525 	static Targets *StrongestOf(const Scriptable *Sender, Targets *parameters, int ga_flags);
1526 	static Targets *StrongestOfMale(const Scriptable *Sender, Targets *parameters, int ga_flags);
1527 	static Targets *TenthNearest(const Scriptable *Sender, Targets *parameters, int ga_flags);
1528 	static Targets *TenthNearestDoor(const Scriptable *Sender, Targets *parameters, int ga_flags);
1529 	static Targets *TenthNearestEnemyOf(const Scriptable *Sender, Targets *parameters, int ga_flags);
1530 	static Targets *TenthNearestEnemyOfType(const Scriptable *Sender, Targets *parameters, int ga_flags);
1531 	static Targets *TenthNearestMyGroupOfType(const Scriptable *Sender, Targets *parameters, int ga_flags);
1532 	static Targets *ThirdNearest(const Scriptable *Sender, Targets *parameters, int ga_flags);
1533 	static Targets *ThirdNearestDoor(const Scriptable *Sender, Targets *parameters, int ga_flags);
1534 	static Targets *ThirdNearestEnemyOf(const Scriptable *Sender, Targets *parameters, int ga_flags);
1535 	static Targets *ThirdNearestEnemyOfType(const Scriptable *Sender, Targets *parameters, int ga_flags);
1536 	static Targets *ThirdNearestMyGroupOfType(const Scriptable *Sender, Targets *parameters, int ga_flags);
1537 	static Targets *WeakestOf(const Scriptable *Sender, Targets *parameters, int ga_flags);
1538 	static Targets *WorstAC(const Scriptable *Sender, Targets *parameters, int ga_flags);
1539 
1540 	/*GemRB extensions/actions*/
1541 	static void RunAwayFromPoint(Scriptable* Sender, Action* parameters);
1542 	static void UnMakeGlobal(Scriptable* Sender, Action* parameters);
1543 	static void UnloadArea(Scriptable* Sender, Action* parameters);
1544 
1545 	/*GemRB extensions/objects*/
1546 	static Targets *Player7(const Scriptable *Sender, Targets *parameters, int ga_flags);
1547 	static Targets *Player7Fill(const Scriptable *Sender, Targets *parameters, int ga_flags);
1548 	static Targets *Player8(const Scriptable *Sender, Targets *parameters, int ga_flags);
1549 	static Targets *Player8Fill(const Scriptable *Sender, Targets *parameters, int ga_flags);
1550 	static Targets *Player9(const Scriptable *Sender, Targets *parameters, int ga_flags);
1551 	static Targets *Player9Fill(const Scriptable *Sender, Targets *parameters, int ga_flags);
1552 	static Targets *Player10(const Scriptable *Sender, Targets *parameters, int ga_flags);
1553 	static Targets *Player10Fill(const Scriptable *Sender, Targets *parameters, int ga_flags);
1554 };
1555 
1556 GEM_EXPORT Action* GenerateAction(const char* String);
1557 Action *GenerateActionDirect(const char *String, const Scriptable *object);
1558 GEM_EXPORT Trigger* GenerateTrigger(char* String);
1559 
1560 void InitializeIEScript();
1561 
1562 }
1563 
1564 #endif
1565