1 /* GemRB - Infinity Engine Emulator
2 * Copyright (C) 2003 The GemRB Project
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.
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.
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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
18 * $Header: /data/gemrb/cvs2svn/gemrb/gemrb/gemrb/plugins/Core/GameScript.h,v 1.181 2005/05/28 19:02:13 avenger_teambg Exp $
28 #include "DataStream.h"
29 #include "Variables.h"
30 #include "SymbolMgr.h"
46 #define AC_REEVALUATE 1
48 #define MAX_OBJECT_FIELDS 10
51 #define GSASSERT(f,c) \
54 printf("Assertion failed: %s [0x%08lX] Line %d",#f, c, __LINE__); \
61 #define GEM_EXPORT __declspec(dllexport)
63 #define GEM_EXPORT __declspec(dllimport)
70 typedef std::vector
<ieDword
> SrcVector
;
72 typedef struct targettype
{
74 unsigned int distance
;
77 typedef std::list
<targettype
> targetlist
;
79 class GEM_EXPORT Targets
{
89 std::list
<targettype
> objects
;
92 targettype
*RemoveTargetAt(targetlist::iterator
&m
);
93 targettype
*GetNextTarget(targetlist::iterator
&m
);
94 targettype
*GetLastTarget();
95 targettype
*GetFirstTarget(targetlist::iterator
&m
);
96 Actor
*GetTarget(unsigned int index
);
97 void AddTarget(Actor
* actor
, unsigned int distance
);
101 class GEM_EXPORT Object
{
107 memset( objectFields
, 0, MAX_OBJECT_FIELDS
* sizeof( int ) );
108 memset( objectFilters
, 0, MAX_NESTING
* sizeof( int ) );
109 memset( objectRect
, 0, 4 * sizeof( int ) );
111 canary
= (unsigned long) 0xdeadbeef;
117 int objectFields
[MAX_OBJECT_FIELDS
];
118 int objectFilters
[MAX_NESTING
];
122 volatile unsigned long canary
;
128 GSASSERT( canary
== (unsigned long) 0xdeadbeef, canary
);
130 printf("Object: %s\n",objectName
);
133 printf("IDS Targeting: ");
134 for(i
=0;i
<MAX_OBJECT_FIELDS
;i
++) {
135 printf("%d ",objectFields
[i
]);
139 for(i
=0;i
<MAX_NESTING
;i
++) {
140 printf("%d ",objectFilters
[i
]);
147 GSASSERT( canary
== (unsigned long) 0xdeadbeef, canary
);
153 class GEM_EXPORT Trigger
{
157 objectParameter
= NULL
;
159 string0Parameter
[0] = 0;
160 string1Parameter
[0] = 0;
161 pointParameter
.x
= 0;
162 pointParameter
.y
= 0;
163 canary
= (unsigned long) 0xdeadbeef;
167 if (objectParameter
) {
168 objectParameter
->Release();
169 objectParameter
= NULL
;
173 unsigned short triggerID
;
178 Point pointParameter
;
179 char string0Parameter
[65];
180 char string1Parameter
[65];
181 Object
* objectParameter
;
184 volatile unsigned long canary
;
188 GSASSERT( canary
== (unsigned long) 0xdeadbeef, canary
);
190 printf( "WARNING!!! Double Freeing in %s: Line %d\n", __FILE__
,
202 GSASSERT( canary
== (unsigned long) 0xdeadbeef, canary
);
204 if (RefCount
>= 4000) {
205 printf( "Refcount increased to: %d in trigger\n", RefCount
);
211 class GEM_EXPORT Condition
{
218 canary
= (unsigned long) 0xdeadbeef;
225 for (int c
= 0; c
< triggersCount
; c
++) {
227 triggers
[c
]->Release();
234 unsigned short triggersCount
;
238 volatile unsigned long canary
;
242 GSASSERT( canary
== (unsigned long) 0xdeadbeef, canary
);
244 printf( "WARNING!!! Double Freeing in %s: Line %d\n", __FILE__
,
256 GSASSERT( canary
== (unsigned long) 0xdeadbeef, canary
);
258 if (RefCount
>= 4000) {
259 printf( "Refcount increased to: %d in condition\n", RefCount
);
265 class GEM_EXPORT Action
{
267 Action(bool autoFree
)
273 string0Parameter
[0] = 0;
274 string1Parameter
[0] = 0;
276 pointParameter
.x
= 0;
277 pointParameter
.y
= 0;
286 canary
= (unsigned long) 0xdeadbeef;
290 for (int c
= 0; c
< 3; c
++) {
292 objects
[c
]->Release();
298 unsigned short actionID
;
301 Point pointParameter
;
304 char string0Parameter
[65];
305 char string1Parameter
[65];
308 volatile unsigned long canary
;
314 GSASSERT( canary
== (unsigned long) 0xdeadbeef, canary
);
315 printf("String1: %s, String2: %s\n", string0Parameter
?string0Parameter
:"<NULL>", string1Parameter
?string1Parameter
:"<NULL>");
321 printf( "%d. Object - NULL\n",i
+1);
328 GSASSERT( canary
== (unsigned long) 0xdeadbeef, canary
);
330 printf( "WARNING!!! Double Freeing in %s: Line %d\n", __FILE__
,
342 GSASSERT( canary
== (unsigned long) 0xdeadbeef, canary
);
344 if (RefCount
>= 4000) {
345 printf( "Refcount increased to: %d in action %d\n", RefCount
,
352 class GEM_EXPORT Response
{
360 canary
= (unsigned long) 0xdeadbeef;
367 for (int c
= 0; c
< actionsCount
; c
++) {
369 actions
[c
]->Release();
376 unsigned char weight
;
377 unsigned char actionsCount
;
381 volatile unsigned long canary
;
385 GSASSERT( canary
== (unsigned long) 0xdeadbeef, canary
);
387 printf( "WARNING!!! Double Freeing in %s: Line %d\n", __FILE__
,
399 GSASSERT( canary
== (unsigned long) 0xdeadbeef, canary
);
401 if (RefCount
>= 4000) {
402 printf( "Refcount increased to: %d in response\n", RefCount
);
408 class GEM_EXPORT ResponseSet
{
415 canary
= (unsigned long) 0xdeadbeef;
422 for (int b
= 0; b
< responsesCount
; b
++) {
423 responses
[b
] -> Release();
429 unsigned short responsesCount
;
430 Response
** responses
;
433 volatile unsigned long canary
;
437 GSASSERT( canary
== (unsigned long) 0xdeadbeef, canary
);
439 printf( "WARNING!!! Double Freeing in %s: Line %d\n", __FILE__
,
451 GSASSERT( canary
== (unsigned long) 0xdeadbeef, canary
);
453 if (RefCount
>= 4000) {
454 printf( "Refcount increased to: %d\n", RefCount
);
460 class GEM_EXPORT ResponseBlock
{
466 canary
= (unsigned long) 0xdeadbeef;
471 condition
->Release();
475 responseSet
->Release();
480 Condition
* condition
;
481 ResponseSet
* responseSet
;
483 volatile unsigned long canary
;
487 GSASSERT( canary
== (unsigned long) 0xdeadbeef, canary
);
493 class GEM_EXPORT Script
{
497 canary
= (unsigned long) 0xdeadbeef;
498 responseBlocks
= NULL
;
499 responseBlocksCount
= 0;
503 FreeResponseBlocks();
505 void AllocateBlocks(unsigned int count
)
508 FreeResponseBlocks();
509 responseBlocks
= NULL
;
510 responseBlocksCount
= 0;
512 responseBlocks
= new ResponseBlock
* [count
];
513 responseBlocksCount
= count
;
516 void FreeResponseBlocks()
518 if (!responseBlocks
) {
521 for (unsigned int i
= 0; i
< responseBlocksCount
; i
++) {
522 if (responseBlocks
[i
]) {
523 responseBlocks
[i
]->Release();
524 responseBlocks
[i
] = NULL
;
527 delete[] responseBlocks
;
530 unsigned int responseBlocksCount
;
531 ResponseBlock
** responseBlocks
;
533 volatile unsigned long canary
;
537 GSASSERT( canary
== (unsigned long) 0xdeadbeef, canary
);
543 typedef int (* TriggerFunction
)(Scriptable
*, Trigger
*);
544 typedef void (* ActionFunction
)(Scriptable
*, Action
*);
545 typedef Targets
* (* ObjectFunction
)(Scriptable
*, Targets
*);
546 typedef int (* IDSFunction
)(Actor
*, int parameter
);
549 #define TF_CONDITION 1 //this isn't a trigger, just a condition (0x4000)
550 #define TF_MERGESTRINGS 8 //same value as actions' mergestring
554 TriggerFunction Function
;
558 //createcreature flags
561 #define CC_OFFSCREEN 3
563 #define CC_CHECK_IMPASSABLE 4 //adjust position
564 #define CC_PLAY_ANIM 8 //play animation
565 #define CC_STRING1 16 //resref is in second string
571 #define BD_RESERVED 3 //playerX resref
572 #define BD_INTERACT 4 //banter dialogs
573 #define BD_LOCMASK 7 //where is the dialog resref
574 #define BD_TALKCOUNT 8 //increases talkcount
575 #define BD_SETDIALOG 16 //also sets dialog (for string0)
576 #define BD_CHECKDIST 32 //checks distance, if needs, walks up
577 #define BD_OWN 64 //source == target, works for player only
578 #define BD_INTERRUPT 128 //interrupts action
579 #define BD_NUMERIC 256 //target is numeric
583 #define AF_CONTINUE 2
584 #define AF_MASK 3 //none, instant or continue
585 #define AF_BLOCKING 4
586 #define AF_MERGESTRINGS 8
587 //we could use this flag to restrict player scripts from using dangerous
588 //opcodes, it would be a very useful and easy to implement feature!
589 #define AF_RESTRICTED 16
590 //#define AF_RESTRICTED_LEVEL2 32 //maybe we could use 2 bits for this???
591 #define AF_SCRIPTLEVEL 64 //this hack will transfer scriptlevel to int0parameter at runtime (changecurrentscript relies on it)
595 ActionFunction Function
;
601 ObjectFunction Function
;
606 IDSFunction Function
;
609 #define MAX_TRIGGERS 0xFF
610 #define MAX_ACTIONS 400
611 #define MAX_OBJECTS 128
613 extern void SetScriptDebugMode(int arg
);
615 class GEM_EXPORT GameScript
{
620 unsigned long scriptRunDelay
;
624 void EvaluateAllBlocks();
625 private: //Internal Functions
626 Script
* CacheScript(ieResRef ResRef
);
627 ResponseBlock
* ReadResponseBlock(DataStream
* stream
);
628 Condition
* ReadCondition(DataStream
* stream
);
629 ResponseSet
* ReadResponseSet(DataStream
* stream
);
630 Response
* ReadResponse(DataStream
* stream
);
631 Trigger
* ReadTrigger(DataStream
* stream
);
632 Object
* DecodeObject(const char* line
);
633 bool EvaluateCondition(Scriptable
* Sender
, Condition
* condition
);
634 static int EvaluateTrigger(Scriptable
* Sender
, Trigger
* trigger
);
635 int ExecuteResponseSet(Scriptable
* Sender
, ResponseSet
* rS
);
636 int ExecuteResponse(Scriptable
* Sender
, Response
* rE
);
637 static Targets
* EvaluateObject(Scriptable
* Sender
, Object
* oC
);
638 static int ParseInt(const char*& src
);
639 static void ParseString(const char*& src
, char* tmp
);
640 static void DisplayStringCore(Scriptable
* Sender
, int Strref
, int flags
);
641 static int ValidForDialogCore(Scriptable
* Sender
, Actor
* target
);
643 static void CreateVisualEffectCore(Scriptable
*Sender
, Point
&position
, const char *effect
);
644 static int SeeCore(Scriptable
* Sender
, Trigger
* parameters
, int flags
);
645 static void BeginDialog(Scriptable
* Sender
, Action
* parameters
, int flags
);
646 static void CreateCreatureCore(Scriptable
* Sender
, Action
* parameters
,
648 static int MoveItemCore(Scriptable
*Sender
, Scriptable
*Target
, const char *resref
, int flags
);
649 static void AttackCore(Scriptable
*actor
, Scriptable
*target
, Action
*parameters
, int flags
);
650 static Action
*GenerateActionCore(const char *src
, const char *str
, int acIndex
, bool autoFree
);
651 static Trigger
*GenerateTriggerCore(const char *src
, const char *str
, int trIndex
, int negate
);
652 static Trigger
* GenerateTrigger(char* String
);
653 /* returns true if actor matches the object specs. */
654 static bool MatchActor(Scriptable
*Sender
, Actor
* actor
, Object
* oC
);
655 /* returns the number of actors matching the IDS targeting */
656 static int GetObjectCount(Scriptable
* Sender
, Object
* oC
);
657 static Scriptable
* GetActorFromObject(Scriptable
* Sender
, Object
* oC
);
658 static int GetHappiness(Scriptable
* Sender
, int reputation
);
659 static int GetHPPercent(Scriptable
* Sender
);
660 static Targets
*XthNearestOf(Targets
*parameters
, int count
);
661 static Targets
*XthNearestEnemyOf(Targets
*parameters
, int count
);
662 static Targets
*XthNearestEnemyOfType(Scriptable
*origin
, Targets
*parameters
, int count
);
664 //static unsigned char GetOrient(Point &s, Point &d);
665 private: //Internal variables
666 unsigned long lastRunTime
;
667 unsigned long scriptType
;
668 private: //Script Internal Variables
670 bool continueExecution
;
673 GameScript(ieResRef ResRef
, unsigned char ScriptType
,
674 Variables
* local
= NULL
, int ScriptLevel
= 0);
676 const char *GetName() { return this?Name
:"<NULL>"; }
677 static void ReplaceMyArea(Scriptable
* Sender
, char* newVarName
);
678 static ieDword
CheckVariable(Scriptable
* Sender
, const char* VarName
, const char* Context
);
679 static ieDword
CheckVariable(Scriptable
* Sender
, const char* VarName
);
681 static void SetVariable(Scriptable
* Sender
, const char* VarName
,
682 const char* Context
, ieDword value
);
683 static void SetVariable(Scriptable
* Sender
, const char* VarName
, ieDword value
);
684 static void ExecuteString(Scriptable
* Sender
, char* String
);
685 static int EvaluateString(Scriptable
* Sender
, char* String
);
686 static void ExecuteAction(Scriptable
* Sender
, Action
* aC
);
687 static Action
* GenerateAction(char* String
, bool autoFree
=false);
688 static void MoveBetweenAreasCore(Actor
* actor
, const char *area
, Point
&position
, int face
, bool adjust
);
689 public: //Script Functions
690 static int ID_Alignment(Actor
*actor
, int parameter
);
691 static int ID_Allegiance(Actor
*actor
, int parameter
);
692 static int ID_AVClass(Actor
*actor
, int parameter
);
693 static int ID_Class(Actor
*actor
, int parameter
);
694 static int ID_ClassMask(Actor
*actor
, int parameter
);
695 static int ID_Faction(Actor
*actor
, int parameter
);
696 static int ID_Gender(Actor
*actor
, int parameter
);
697 static int ID_General(Actor
*actor
, int parameter
);
698 static int ID_Race(Actor
*actor
, int parameter
);
699 static int ID_Specific(Actor
*actor
, int parameter
);
700 static int ID_Subrace(Actor
*actor
, int parameter
);
701 static int ID_Team(Actor
*actor
, int parameter
);
704 static int ActionListEmpty(Scriptable
* Sender
, Trigger
* parameters
);
705 static int Acquired(Scriptable
* Sender
, Trigger
* parameters
);
706 static int Alignment(Scriptable
* Sender
, Trigger
* parameters
);
707 static int Allegiance(Scriptable
* Sender
, Trigger
* parameters
);
708 static int AnimationID(Scriptable
* Sender
, Trigger
* parameters
);
709 static int AnimState(Scriptable
* Sender
, Trigger
* parameters
);
710 static int AnyPCOnMap(Scriptable
* Sender
, Trigger
* parameters
);
711 static int AreaCheck(Scriptable
* Sender
, Trigger
* parameter
);
712 static int AreaCheckObject(Scriptable
* Sender
, Trigger
* parameter
);
713 static int AreaFlag(Scriptable
* Sender
, Trigger
* parameter
);
714 static int AreaRestDisabled(Scriptable
* Sender
, Trigger
* parameter
);
715 static int AreaType(Scriptable
* Sender
, Trigger
* parameter
);
716 static int AtLocation(Scriptable
* Sender
, Trigger
* parameter
);
717 static int BitCheck(Scriptable
* Sender
, Trigger
* parameters
);
718 static int BitCheckExact(Scriptable
* Sender
, Trigger
* parameters
);
719 static int BitGlobal_Trigger(Scriptable
* Sender
, Trigger
* parameters
);
720 static int BreakingPoint(Scriptable
* Sender
, Trigger
* parameters
);
721 static int CalledByName(Scriptable
* Sender
, Trigger
* parameters
);
722 static int CharName(Scriptable
* Sender
, Trigger
* parameters
);
723 static int ChargeCount(Scriptable
* Sender
, Trigger
* parameters
);
724 static int CheckDoorFlags(Scriptable
* Sender
, Trigger
* parameters
);
725 static int CheckPartyAverageLevel(Scriptable
* Sender
, Trigger
* parameters
);
726 static int CheckPartyLevel(Scriptable
* Sender
, Trigger
* parameters
);
727 static int CheckStat(Scriptable
* Sender
, Trigger
* parameters
);
728 static int CheckStatGT(Scriptable
* Sender
, Trigger
* parameters
);
729 static int CheckStatLT(Scriptable
* Sender
, Trigger
* parameters
);
730 static int Class(Scriptable
* Sender
, Trigger
* parameters
);
731 static int ClassEx(Scriptable
* Sender
, Trigger
* parameters
);
732 static int ClassLevel(Scriptable
* Sender
, Trigger
* parameters
);
733 static int ClassLevelGT(Scriptable
* Sender
, Trigger
* parameters
);
734 static int ClassLevelLT(Scriptable
* Sender
, Trigger
* parameters
);
735 static int Clicked(Scriptable
* Sender
, Trigger
* parameters
);
736 static int CombatCounter(Scriptable
* Sender
, Trigger
* parameters
);
737 static int CombatCounterGT(Scriptable
* Sender
, Trigger
* parameters
);
738 static int CombatCounterLT(Scriptable
* Sender
, Trigger
* parameters
);
739 static int Contains(Scriptable
* Sender
, Trigger
* parameters
);
740 static int DamageTaken(Scriptable
* Sender
, Trigger
* parameters
);
741 static int DamageTakenGT(Scriptable
* Sender
, Trigger
* parameters
);
742 static int DamageTakenLT(Scriptable
* Sender
, Trigger
* parameters
);
743 static int Dead(Scriptable
* Sender
, Trigger
* parameters
);
744 static int Die(Scriptable
* Sender
, Trigger
* parameters
);
745 static int Difficulty(Scriptable
* Sender
, Trigger
* parameters
);
746 static int DifficultyGT(Scriptable
* Sender
, Trigger
* parameters
);
747 static int DifficultyLT(Scriptable
* Sender
, Trigger
* parameters
);
748 static int Entered(Scriptable
* Sender
, Trigger
* parameters
);
749 static int EntirePartyOnMap(Scriptable
* Sender
, Trigger
* parameters
);
750 static int Exists(Scriptable
* Sender
, Trigger
* parameters
);
751 static int ExtraProficiency(Scriptable
* Sender
, Trigger
* parameters
);
752 static int ExtraProficiencyGT(Scriptable
* Sender
, Trigger
* parameters
);
753 static int ExtraProficiencyLT(Scriptable
* Sender
, Trigger
* parameters
);
754 static int Faction(Scriptable
* Sender
, Trigger
* parameters
);
755 static int FallenPaladin(Scriptable
* Sender
, Trigger
* parameters
);
756 static int FallenRanger(Scriptable
* Sender
, Trigger
* parameters
);
757 static int False(Scriptable
* Sender
, Trigger
* parameters
);
758 static int Frame(Scriptable
* Sender
, Trigger
* parameters
);
759 static int Gender(Scriptable
* Sender
, Trigger
* parameters
);
760 static int General(Scriptable
* Sender
, Trigger
* parameters
);
761 static int G_Trigger(Scriptable
* Sender
, Trigger
* parameters
);
762 static int Global(Scriptable
* Sender
, Trigger
* parameters
);
763 static int GlobalAndGlobal_Trigger(Scriptable
* Sender
, Trigger
* parameters
);
764 static int GlobalBAndGlobal_Trigger(Scriptable
* Sender
, Trigger
* parameters
);
765 static int GlobalBAndGlobalExact(Scriptable
* Sender
, Trigger
* parameters
);
766 static int GlobalBitGlobal_Trigger(Scriptable
* Sender
, Trigger
* parameters
);
767 static int GlobalGT(Scriptable
* Sender
, Trigger
* parameters
);
768 static int GlobalGTGlobal(Scriptable
* Sender
, Trigger
* parameters
);
769 static int GlobalLT(Scriptable
* Sender
, Trigger
* parameters
);
770 static int GlobalLTGlobal(Scriptable
* Sender
, Trigger
* parameters
);
771 static int GlobalOrGlobal_Trigger(Scriptable
* Sender
, Trigger
* parameters
);
772 static int GlobalsEqual(Scriptable
* Sender
, Trigger
* parameters
);
773 static int GlobalsGT(Scriptable
* Sender
, Trigger
* parameters
);
774 static int GlobalsLT(Scriptable
* Sender
, Trigger
* parameters
);
775 static int GlobalTimerExact(Scriptable
* Sender
, Trigger
* parameters
);
776 static int GlobalTimerExpired(Scriptable
* Sender
, Trigger
* parameters
);
777 static int GlobalTimerNotExpired(Scriptable
* Sender
, Trigger
* parameters
);
778 static int GGT_Trigger(Scriptable
* Sender
, Trigger
* parameters
);
779 static int GLT_Trigger(Scriptable
* Sender
, Trigger
* parameters
);
780 static int Happiness(Scriptable
* Sender
, Trigger
* parameters
);
781 static int HappinessGT(Scriptable
* Sender
, Trigger
* parameters
);
782 static int HappinessLT(Scriptable
* Sender
, Trigger
* parameters
);
783 static int HasInnateAbility(Scriptable
* Sender
, Trigger
* parameters
);
784 static int HasItem(Scriptable
* Sender
, Trigger
* parameters
);
785 static int HasItemEquipped(Scriptable
* Sender
, Trigger
* parameters
);
786 static int HasItemSlot(Scriptable
* Sender
, Trigger
* parameters
);
787 static int HasWeaponEquipped(Scriptable
* Sender
, Trigger
* parameters
);
788 static int HaveAnySpells(Scriptable
* Sender
, Trigger
* parameters
);
789 static int HaveSpellParty(Scriptable
* Sender
, Trigger
* parameters
);
790 static int HaveSpell(Scriptable
* Sender
, Trigger
* parameters
);
791 static int Heard(Scriptable
* Sender
, Trigger
* parameters
);
792 static int Help_Trigger(Scriptable
* Sender
, Trigger
* parameters
);
793 static int HitBy(Scriptable
* Sender
, Trigger
* parameters
);
794 static int HotKey(Scriptable
* Sender
, Trigger
* parameters
);
795 static int HP(Scriptable
* Sender
, Trigger
* parameters
);
796 static int HPGT(Scriptable
* Sender
, Trigger
* parameters
);
797 static int HPLost(Scriptable
* Sender
, Trigger
* parameters
);
798 static int HPLostGT(Scriptable
* Sender
, Trigger
* parameters
);
799 static int HPLostLT(Scriptable
* Sender
, Trigger
* parameters
);
800 static int HPLT(Scriptable
* Sender
, Trigger
* parameters
);
801 static int HPPercent(Scriptable
* Sender
, Trigger
* parameters
);
802 static int HPPercentGT(Scriptable
* Sender
, Trigger
* parameters
);
803 static int HPPercentLT(Scriptable
* Sender
, Trigger
* parameters
);
804 static int InActiveArea(Scriptable
* Sender
, Trigger
* parameter
);
805 static int InCutSceneMode(Scriptable
*Sender
, Trigger
* parameter
);
806 static int InMyArea(Scriptable
* Sender
, Trigger
* parameter
);
807 static int InParty(Scriptable
* Sender
, Trigger
* parameters
);
808 static int InPartyAllowDead(Scriptable
* Sender
, Trigger
* parameters
);
809 static int InPartySlot(Scriptable
* Sender
, Trigger
* parameters
);
810 static int InteractingWith(Scriptable
* Sender
, Trigger
* parameters
);
811 static int Internal(Scriptable
* Sender
, Trigger
* parameters
);
812 static int InternalGT(Scriptable
* Sender
, Trigger
* parameters
);
813 static int InternalLT(Scriptable
* Sender
, Trigger
* parameters
);
814 static int InventoryFull(Scriptable
* Sender
, Trigger
* parameter
);
815 static int InWeaponRange(Scriptable
* Sender
, Trigger
* parameter
);
816 static int IsAClown(Scriptable
* Sender
, Trigger
* parameters
);
817 static int IsActive(Scriptable
* Sender
, Trigger
* parameters
);
818 static int IsCreatureAreaFlag( Scriptable
* Sender
, Trigger
* parameters
);
819 static int IsGabber(Scriptable
* Sender
, Trigger
* parameters
);
820 static int IsExtendedNight(Scriptable
* Sender
, Trigger
* parameters
);
821 static int IsFacingObject(Scriptable
* Sender
, Trigger
* parameters
);
822 static int IsFacingSavedRotation(Scriptable
* Sender
, Trigger
* parameters
);
823 static int IsLocked(Scriptable
* Sender
, Trigger
* parameters
);
824 static int IsPlayerNumber( Scriptable
* Sender
, Trigger
* parameters
);
825 static int IsRotation(Scriptable
* Sender
, Trigger
* parameters
);
826 static int IsTeamBitOn(Scriptable
* Sender
, Trigger
* parameters
);
827 static int IsValidForPartyDialog(Scriptable
* Sender
, Trigger
* parameters
);
828 static int ItemIsIdentified(Scriptable
* Sender
, Trigger
* parameters
);
829 static int Kit(Scriptable
* Sender
, Trigger
* parameters
);
830 static int LastMarkedObject_Trigger(Scriptable
* Sender
, Trigger
* parameters
);
831 static int Level(Scriptable
* Sender
, Trigger
* parameters
);
832 static int LevelGT(Scriptable
* Sender
, Trigger
* parameters
);
833 static int LevelLT(Scriptable
* Sender
, Trigger
* parameters
);
834 static int LevelParty(Scriptable
* Sender
, Trigger
* parameters
);
835 static int LevelPartyGT(Scriptable
* Sender
, Trigger
* parameters
);
836 static int LevelPartyLT(Scriptable
* Sender
, Trigger
* parameters
);
837 static int LocalsEqual(Scriptable
* Sender
, Trigger
* parameters
);
838 static int LocalsGT(Scriptable
* Sender
, Trigger
* parameters
);
839 static int LocalsLT(Scriptable
* Sender
, Trigger
* parameters
);
840 static int LOS(Scriptable
* Sender
, Trigger
* parameters
);
841 static int Morale(Scriptable
* Sender
, Trigger
* parameters
);
842 static int MoraleGT(Scriptable
* Sender
, Trigger
* parameters
);
843 static int MoraleLT(Scriptable
* Sender
, Trigger
* parameters
);
844 static int NamelessBitTheDust(Scriptable
* Sender
, Trigger
* parameters
);
845 static int NearbyDialog(Scriptable
* Sender
, Trigger
* parameters
);
846 static int NearLocation(Scriptable
* Sender
, Trigger
* parameters
);
847 static int NearSavedLocation(Scriptable
* Sender
, Trigger
* parameters
);
848 static int NotStateCheck(Scriptable
* Sender
, Trigger
* parameters
);
849 static int NullDialog(Scriptable
* Sender
, Trigger
* parameters
);
850 static int NumCreatures(Scriptable
* Sender
, Trigger
* parameters
);
851 static int NumCreaturesGT(Scriptable
* Sender
, Trigger
* parameters
);
852 static int NumCreaturesLT(Scriptable
* Sender
, Trigger
* parameters
);
853 static int NumCreatureVsParty(Scriptable
* Sender
, Trigger
* parameters
);
854 static int NumCreatureVsPartyGT(Scriptable
* Sender
, Trigger
* parameters
);
855 static int NumCreatureVsPartyLT(Scriptable
* Sender
, Trigger
* parameters
);
856 static int NumDead(Scriptable
* Sender
, Trigger
* parameters
);
857 static int NumDeadGT(Scriptable
* Sender
, Trigger
* parameters
);
858 static int NumDeadLT(Scriptable
* Sender
, Trigger
* parameters
);
859 static int NumItems(Scriptable
* Sender
, Trigger
* parameters
);
860 static int NumItemsGT(Scriptable
* Sender
, Trigger
* parameters
);
861 static int NumItemsLT(Scriptable
* Sender
, Trigger
* parameters
);
862 static int NumItemsParty(Scriptable
* Sender
, Trigger
* parameters
);
863 static int NumItemsPartyGT(Scriptable
* Sender
, Trigger
* parameters
);
864 static int NumItemsPartyLT(Scriptable
* Sender
, Trigger
* parameters
);
865 static int NumTimesTalkedTo(Scriptable
* Sender
, Trigger
* parameters
);
866 static int NumTimesTalkedToGT(Scriptable
* Sender
, Trigger
* parameters
);
867 static int NumTimesTalkedToLT(Scriptable
* Sender
, Trigger
* parameters
);
868 static int ObjectActionListEmpty(Scriptable
* Sender
, Trigger
* parameters
);
869 static int OnCreation(Scriptable
* Sender
, Trigger
* parameters
);
870 static int OnScreen(Scriptable
* Sender
, Trigger
* parameters
);
871 static int OpenState(Scriptable
* Sender
, Trigger
* parameters
);
872 static int Or(Scriptable
* Sender
, Trigger
* parameters
);
873 static int OwnsFloaterMessage(Scriptable
* Sender
, Trigger
* parameters
);
874 static int PartyCountEQ(Scriptable
* Sender
, Trigger
* parameters
);
875 static int PartyCountGT(Scriptable
* Sender
, Trigger
* parameters
);
876 static int PartyCountLT(Scriptable
* Sender
, Trigger
* parameters
);
877 static int PartyCountAliveEQ(Scriptable
* Sender
, Trigger
* parameters
);
878 static int PartyCountAliveGT(Scriptable
* Sender
, Trigger
* parameters
);
879 static int PartyCountAliveLT(Scriptable
* Sender
, Trigger
* parameters
);
880 static int PartyGold(Scriptable
* Sender
, Trigger
* parameters
);
881 static int PartyGoldGT(Scriptable
* Sender
, Trigger
* parameters
);
882 static int PartyGoldLT(Scriptable
* Sender
, Trigger
* parameters
);
883 static int PartyHasItem(Scriptable
* Sender
, Trigger
* parameters
);
884 static int PartyHasItemIdentified(Scriptable
* Sender
, Trigger
* parameters
);
885 static int PartyMemberDied(Scriptable
* Sender
, Trigger
* parameters
);
886 static int PCCanSeePoint(Scriptable
* Sender
, Trigger
* parameters
);
887 static int PCInStore(Scriptable
* Sender
, Trigger
* parameters
);
888 static int Proficiency(Scriptable
* Sender
, Trigger
* parameters
);
889 static int ProficiencyGT(Scriptable
* Sender
, Trigger
* parameters
);
890 static int ProficiencyLT(Scriptable
* Sender
, Trigger
* parameters
);
891 static int Race(Scriptable
* Sender
, Trigger
* parameters
);
892 static int RandomNum(Scriptable
* Sender
, Trigger
* parameters
);
893 static int RandomNumGT(Scriptable
* Sender
, Trigger
* parameters
);
894 static int RandomNumLT(Scriptable
* Sender
, Trigger
* parameters
);
895 static int Range(Scriptable
* Sender
, Trigger
* parameters
);
896 static int RealGlobalTimerExact(Scriptable
* Sender
, Trigger
* parameters
);
897 static int RealGlobalTimerExpired(Scriptable
* Sender
, Trigger
* parameters
);
898 static int RealGlobalTimerNotExpired(Scriptable
* Sender
, Trigger
* parameters
);
899 static int Reputation(Scriptable
* Sender
, Trigger
* parameters
);
900 static int ReputationGT(Scriptable
* Sender
, Trigger
* parameters
);
901 static int ReputationLT(Scriptable
* Sender
, Trigger
* parameters
);
902 static int See(Scriptable
* Sender
, Trigger
* parameters
);
903 static int Specifics(Scriptable
* Sender
, Trigger
* parameters
);
904 static int StateCheck(Scriptable
* Sender
, Trigger
* parameters
);
905 static int StuffGlobalRandom(Scriptable
* Sender
, Trigger
* parameters
);
906 static int SubRace(Scriptable
* Sender
, Trigger
* parameters
);
907 static int TargetUnreachable(Scriptable
* Sender
, Trigger
* parameters
);
908 static int Team(Scriptable
* Sender
, Trigger
* parameters
);
909 static int Time(Scriptable
* Sender
, Trigger
* parameters
);
910 static int TimeGT(Scriptable
* Sender
, Trigger
* parameters
);
911 static int TimeLT(Scriptable
* Sender
, Trigger
* parameters
);
912 static int TookDamage(Scriptable
* Sender
, Trigger
* parameters
);
913 static int TotalItemCnt(Scriptable
* Sender
, Trigger
* parameters
);
914 static int TotalItemCntGT(Scriptable
* Sender
, Trigger
* parameters
);
915 static int TotalItemCntLT(Scriptable
* Sender
, Trigger
* parameters
);
916 static int True(Scriptable
* Sender
, Trigger
* parameters
);
917 static int TrapTriggered(Scriptable
* Sender
, Trigger
* parameters
);
918 static int UnselectableVariable(Scriptable
* Sender
, Trigger
* parameters
);
919 static int UnselectableVariableGT(Scriptable
* Sender
, Trigger
* parameters
);
920 static int UnselectableVariableLT(Scriptable
* Sender
, Trigger
* parameters
);
921 static int Vacant(Scriptable
* Sender
, Trigger
* parameters
);
922 static int Xor(Scriptable
* Sender
, Trigger
* parameters
);
923 static int XP(Scriptable
* Sender
, Trigger
* parameters
);
924 static int XPGT(Scriptable
* Sender
, Trigger
* parameters
);
925 static int XPLT(Scriptable
* Sender
, Trigger
* parameters
);
928 static void Activate(Scriptable
* Sender
, Action
* parameters
);
929 static void AddAreaFlag(Scriptable
* Sender
, Action
* parameters
);
930 static void AddAreaType(Scriptable
* Sender
, Action
* parameters
);
931 static void AddExperienceParty(Scriptable
*Sender
, Action
* parameters
);
932 static void AddExperiencePartyGlobal(Scriptable
*Sender
, Action
* parameters
);
933 static void AddGlobals(Scriptable
* Sender
, Action
* parameters
);
934 static void AddJournalEntry(Scriptable
* Sender
, Action
* parameters
);
935 static void AddMapnote(Scriptable
* Sender
, Action
* parameters
);
936 static void AddSpecialAbility(Scriptable
* Sender
, Action
* parameters
);
937 static void AddWayPoint(Scriptable
* Sender
, Action
* parameters
);
938 static void AddXP2DA(Scriptable
*Sender
, Action
* parameters
);
939 static void AddXPObject(Scriptable
*Sender
, Action
* parameters
);
940 static void AdvanceTime(Scriptable
*Sender
, Action
* parameters
);
941 static void Ally(Scriptable
* Sender
, Action
* parameters
);
942 static void AmbientActivate(Scriptable
* Sender
, Action
* parameters
);
943 static void ApplyDamage(Scriptable
* Sender
, Action
* parameters
);
944 static void ApplyDamagePercent(Scriptable
* Sender
, Action
* parameters
);
945 static void Attack(Scriptable
* Sender
, Action
* parameters
);
946 static void AttackReevaluate(Scriptable
* Sender
, Action
* parameters
);
947 static void BattleSong(Scriptable
* Sender
, Action
* parameters
);
948 static void Berserk(Scriptable
* Sender
, Action
* parameters
);
949 static void BitClear(Scriptable
* Sender
, Action
* parameters
);
950 static void BitGlobal(Scriptable
* Sender
, Action
* parameters
);
951 static void ChangeAIScript(Scriptable
* Sender
, Action
* parameters
);
952 static void ChangeAlignment(Scriptable
* Sender
, Action
* parameters
);
953 static void ChangeAllegiance(Scriptable
* Sender
, Action
* parameters
);
954 static void ChangeClass(Scriptable
* Sender
, Action
* parameters
);
955 static void ChangeCurrentScript(Scriptable
* Sender
, Action
* parameters
);
956 static void ChangeDialogue(Scriptable
* Sender
, Action
* parameters
);
957 static void ChangeGender(Scriptable
* Sender
, Action
* parameters
);
958 static void ChangeGeneral(Scriptable
* Sender
, Action
* parameters
);
959 static void ChangeRace(Scriptable
* Sender
, Action
* parameters
);
960 static void ChangeSpecifics(Scriptable
* Sender
, Action
* parameters
);
961 static void ChangeStat(Scriptable
* Sender
, Action
* parameters
);
962 static void ClearActions(Scriptable
* Sender
, Action
* parameters
);
963 static void ClearAllActions(Scriptable
* Sender
, Action
* parameters
);
964 static void CloseDoor(Scriptable
* Sender
, Action
* parameters
);
965 static void ContainerEnable(Scriptable
* Sender
, Action
* parameters
);
966 static void Continue(Scriptable
* Sender
, Action
* parameters
);
967 static void CreateCreature(Scriptable
* Sender
, Action
* parameters
);
968 static void CreateCreatureAtLocation(Scriptable
* Sender
, Action
* parameters
);
969 static void CreateCreatureAtFeet(Scriptable
* Sender
, Action
* parameters
);
970 static void CreateCreatureImpassable(Scriptable
* Sender
, Action
* parameters
);
971 static void CreateCreatureObject(Scriptable
* Sender
, Action
* parameters
);
972 static void CreateCreatureObjectOffset(Scriptable
* Sender
, Action
* parameters
);
973 static void CreateCreatureObjectOffScreen(Scriptable
* Sender
, Action
* parameters
);
974 static void CreateCreatureOffScreen(Scriptable
* Sender
, Action
* parameters
);
975 static void CreateItem(Scriptable
* Sender
, Action
* parameters
);
976 static void CreateItemNumGlobal(Scriptable
* Sender
, Action
* parameters
);
977 static void CreatePartyGold(Scriptable
*Sender
, Action
*parameters
);
978 static void CreateVisualEffect(Scriptable
* Sender
, Action
* parameters
);
979 static void CreateVisualEffectObject(Scriptable
* Sender
,
981 static void CutSceneID(Scriptable
* Sender
, Action
* parameters
);
982 static void Damage(Scriptable
* Sender
, Action
* parameters
);
983 static void Deactivate(Scriptable
* Sender
, Action
* parameters
);
984 static void Debug(Scriptable
* Sender
, Action
* parameters
);
985 static void DestroyAllDestructableEquipment(Scriptable
* Sender
, Action
* parameters
);
986 static void DestroyAllEquipment(Scriptable
* Sender
, Action
* parameters
);
987 static void DestroyGold(Scriptable
* Sender
, Action
* parameters
);
988 static void DestroyItem(Scriptable
* Sender
, Action
* parameters
);
989 static void DestroyPartyGold(Scriptable
* Sender
, Action
* parameters
);
990 static void DestroyPartyItem(Scriptable
* Sender
, Action
* parameters
);
991 static void DestroyPartyItemNum(Scriptable
* Sender
, Action
* parameters
);
992 static void DestroySelf(Scriptable
* Sender
, Action
* parameters
);
993 static void Dialogue(Scriptable
* Sender
, Action
* parameters
);
994 static void DialogueForceInterrupt(Scriptable
* Sender
, Action
* parameters
);
995 static void DisplayMessage(Scriptable
* Sender
, Action
* parameters
);
996 static void DisplayString(Scriptable
* Sender
, Action
* parameters
);
997 static void DisplayStringHead(Scriptable
* Sender
, Action
* parameters
);
998 static void DisplayStringHeadOwner(Scriptable
* Sender
, Action
* parameters
);
999 static void DisplayStringNoName(Scriptable
* Sender
, Action
* parameters
);
1000 static void DisplayStringNoNameHead(Scriptable
* Sender
, Action
* parameters
);
1001 static void DisplayStringWait(Scriptable
* Sender
, Action
* parameters
);
1002 static void DropInventory(Scriptable
* Sender
, Action
* parameters
);
1003 static void DropItem(Scriptable
* Sender
, Action
* parameters
);
1004 static void EndCredits(Scriptable
* Sender
, Action
* parameters
);
1005 static void EndCutSceneMode(Scriptable
* Sender
, Action
* parameters
);
1006 static void Enemy(Scriptable
* Sender
, Action
* parameters
);
1007 static void EquipItem(Scriptable
*Sender
, Action
*parameters
);
1008 static void ExpansionEndCredits(Scriptable
* Sender
, Action
* parameters
);
1009 static void Explore(Scriptable
*Sender
, Action
*parameters
);
1010 static void ExploreMapChunk(Scriptable
*Sender
, Action
*parameters
);
1011 static void Face(Scriptable
* Sender
, Action
* parameters
);
1012 static void FaceObject(Scriptable
* Sender
, Action
* parameters
);
1013 static void FaceSavedLocation(Scriptable
* Sender
, Action
* parameters
);
1014 static void FadeFromColor(Scriptable
* Sender
, Action
* parameters
);
1015 static void FadeToColor(Scriptable
* Sender
, Action
* parameters
);
1016 static void FloatMessageFixed(Scriptable
* Sender
, Action
* parameters
);
1017 static void FloatMessageFixedRnd(Scriptable
* Sender
, Action
* parameters
);
1018 static void FloatMessageRnd(Scriptable
* Sender
, Action
* parameters
);
1019 static void ForceAIScript(Scriptable
* Sender
, Action
* parameters
);
1020 static void ForceAttack(Scriptable
* Sender
, Action
* parameters
);
1021 static void ForceFacing(Scriptable
* Sender
, Action
* parameters
);
1022 static void ForceLeaveAreaLUA(Scriptable
* Sender
, Action
* parameters
);
1023 static void ForceSpell(Scriptable
* Sender
, Action
* parameters
);
1024 static void FullHeal(Scriptable
* Sender
, Action
* parameters
);
1025 static void GetItem(Scriptable
* Sender
, Action
* parameters
);
1026 static void GiveItem(Scriptable
* Sender
, Action
* parameters
);
1027 static void GivePartyGold(Scriptable
* Sender
, Action
* parameters
);
1028 static void GivePartyGoldGlobal(Scriptable
* Sender
, Action
* parameters
);
1029 static void GlobalAddGlobal(Scriptable
* Sender
, Action
* parameters
);
1030 static void GlobalAndGlobal(Scriptable
* Sender
, Action
* parameters
);
1031 static void GlobalBAnd(Scriptable
* Sender
, Action
* parameters
);
1032 static void GlobalBAndGlobal(Scriptable
* Sender
, Action
* parameters
);
1033 static void GlobalBitGlobal(Scriptable
* Sender
, Action
* parameters
);
1034 static void GlobalBOr(Scriptable
* Sender
, Action
* parameters
);
1035 static void GlobalBOrGlobal(Scriptable
* Sender
, Action
* parameters
);
1036 static void GlobalMax(Scriptable
* Sender
, Action
* parameters
);
1037 static void GlobalMaxGlobal(Scriptable
* Sender
, Action
* parameters
);
1038 static void GlobalMin(Scriptable
* Sender
, Action
* parameters
);
1039 static void GlobalMinGlobal(Scriptable
* Sender
, Action
* parameters
);
1040 static void GlobalOrGlobal(Scriptable
* Sender
, Action
* parameters
);
1041 static void GlobalSetGlobal(Scriptable
* Sender
, Action
* parameters
);
1042 static void GlobalShL(Scriptable
* Sender
, Action
* parameters
);
1043 static void GlobalShLGlobal(Scriptable
* Sender
, Action
* parameters
);
1044 static void GlobalShout(Scriptable
* Sender
, Action
* parameters
);
1045 static void GlobalShR(Scriptable
* Sender
, Action
* parameters
);
1046 static void GlobalShRGlobal(Scriptable
* Sender
, Action
* parameters
);
1047 static void GlobalSubGlobal(Scriptable
* Sender
, Action
* parameters
);
1048 static void GlobalXor(Scriptable
* Sender
, Action
* parameters
);
1049 static void GlobalXorGlobal(Scriptable
* Sender
, Action
* parameters
);
1050 static void Help(Scriptable
* Sender
, Action
* parameters
);
1051 static void HideAreaOnMap(Scriptable
* Sender
, Action
* parameters
);
1052 static void HideCreature(Scriptable
* Sender
, Action
* parameters
);
1053 static void HideGUI(Scriptable
* Sender
, Action
* parameters
);
1054 static void IncInternal(Scriptable
* Sender
, Action
* parameters
);
1055 static void IncMoraleAI(Scriptable
* Sender
, Action
* parameters
);
1056 static void IncrementChapter(Scriptable
* Sender
, Action
* parameters
);
1057 static void IncrementGlobal(Scriptable
* Sender
, Action
* parameters
);
1058 static void IncrementGlobalOnce(Scriptable
* Sender
, Action
* parameters
);
1059 static void IncrementExtraProficiency(Scriptable
* Sender
, Action
* parameters
);
1060 static void IncrementProficiency(Scriptable
* Sender
, Action
* parameters
);
1061 static void Interact(Scriptable
* Sender
, Action
* parameters
);
1062 static void JoinParty(Scriptable
* Sender
, Action
* parameters
);
1063 static void JumpToPoint(Scriptable
* Sender
, Action
* parameters
);
1064 static void JumpToPointInstant(Scriptable
* Sender
, Action
* parameters
);
1065 static void JumpToObject(Scriptable
* Sender
, Action
* parameters
);
1066 static void JumpToSavedLocation(Scriptable
* Sender
, Action
* parameters
);
1067 static void Kill(Scriptable
* Sender
, Action
* parameters
);
1068 static void KillFloatMessage(Scriptable
* Sender
, Action
* parameters
);
1069 static void LeaveArea(Scriptable
* Sender
, Action
* parameters
);
1070 static void LeaveAreaLUA(Scriptable
* Sender
, Action
* parameters
);
1071 static void LeaveAreaLUAEntry(Scriptable
* Sender
, Action
* parameters
);
1072 static void LeaveAreaLUAPanic(Scriptable
* Sender
, Action
* parameters
);
1073 static void LeaveAreaLUAPanicEntry(Scriptable
* Sender
, Action
* parameters
);
1074 static void LeaveParty(Scriptable
* Sender
, Action
* parameters
);
1075 static void Lock(Scriptable
* Sender
, Action
* parameters
);
1076 static void LockScroll(Scriptable
* Sender
, Action
* parameters
);
1077 static void MarkObject(Scriptable
* Sender
, Action
* parameters
);
1078 static void MakeGlobal(Scriptable
* Sender
, Action
* parameters
);
1079 static void MakeUnselectable(Scriptable
* Sender
, Action
* parameters
);
1080 static void MoraleDec(Scriptable
* Sender
, Action
* parameters
);
1081 static void MoraleInc(Scriptable
* Sender
, Action
* parameters
);
1082 static void MoraleSet(Scriptable
* Sender
, Action
* parameters
);
1083 static void MoveBetweenAreas(Scriptable
* Sender
, Action
* parameters
);
1084 static void MoveBetweenAreasEffect(Scriptable
* Sender
, Action
* parameters
);
1085 static void MoveGlobal(Scriptable
* Sender
, Action
* parameters
);
1086 static void MoveGlobalObject(Scriptable
* Sender
, Action
* parameters
);
1087 static void MoveGlobalObjectOffScreen(Scriptable
* Sender
, Action
* parameters
);
1088 static void MoveGlobalsTo(Scriptable
* Sender
, Action
* parameters
);
1089 static void MoveToCenterOfScreen(Scriptable
* Sender
, Action
* parameters
);
1090 static void MoveToPoint(Scriptable
* Sender
, Action
* parameters
);
1091 static void MoveToPointNoInterrupt(Scriptable
* Sender
, Action
* parameters
);
1092 static void MoveToPointNoRecticle(Scriptable
* Sender
, Action
* parameters
);
1093 static void MoveToObject(Scriptable
* Sender
, Action
* parameters
);
1094 static void MoveToObjectNoInterrupt(Scriptable
* Sender
, Action
* parameters
);
1095 static void MoveToOffset(Scriptable
* Sender
, Action
* parameters
);
1096 static void MoveToSavedLocation(Scriptable
* Sender
, Action
* parameters
);
1097 static void MoveToSavedLocationDelete(Scriptable
* Sender
, Action
* parameters
);
1098 static void MoveViewPoint(Scriptable
* Sender
, Action
* parameters
);
1099 static void MoveViewObject(Scriptable
* Sender
, Action
* parameters
);
1100 static void NIDSpecial1(Scriptable
* Sender
, Action
* parameters
);
1101 static void NIDSpecial2(Scriptable
* Sender
, Action
* parameters
);
1102 static void NoAction(Scriptable
* Sender
, Action
* parameters
);
1103 static void NoActionAtAll(Scriptable
* Sender
, Action
* parameters
);
1104 static void OpenDoor(Scriptable
* Sender
, Action
* parameters
);
1105 static void Panic(Scriptable
* Sender
, Action
* parameters
);
1106 static void PickPockets(Scriptable
* Sender
, Action
* parameters
);
1107 static void PlayDead(Scriptable
* Sender
, Action
* parameters
);
1108 static void PlayDeadInterruptable(Scriptable
* Sender
, Action
* parameters
);
1109 static void PlayerDialogue(Scriptable
* Sender
, Action
* parameters
);
1110 static void PlaySequence(Scriptable
* Sender
, Action
* parameters
);
1111 static void PlaySound(Scriptable
* Sender
, Action
* parameters
);
1112 static void PlaySoundNotRanged(Scriptable
* Sender
, Action
* parameters
);
1113 static void PlaySoundPoint(Scriptable
* Sender
, Action
* parameters
);
1114 static void Plunder(Scriptable
* Sender
, Action
* parameters
);
1115 static void QuitGame(Scriptable
* Sender
, Action
* parameters
);
1116 static void RandomWalk(Scriptable
* Sender
, Action
* parameters
);
1117 static void RandomFly(Scriptable
* Sender
, Action
* parameters
);
1118 static void RealSetGlobalTimer(Scriptable
* Sender
, Action
* parameters
);
1119 static void Recoil(Scriptable
* Sender
, Action
* parameters
);
1120 static void RegainPaladinHood(Scriptable
* Sender
, Action
* parameters
);
1121 static void RegainRangerHood(Scriptable
* Sender
, Action
* parameters
);
1122 static void RemoveAreaFlag(Scriptable
* Sender
, Action
* parameters
);
1123 static void RemoveAreaType(Scriptable
* Sender
, Action
* parameters
);
1124 static void RemoveJournalEntry(Scriptable
* Sender
, Action
* parameters
);
1125 static void RemoveMapnote(Scriptable
* Sender
, Action
* parameters
);
1126 static void RemovePaladinHood(Scriptable
* Sender
, Action
* parameters
);
1127 static void RemoveRangerHood(Scriptable
* Sender
, Action
* parameters
);
1128 static void RemoveSpell(Scriptable
* Sender
, Action
* parameters
);
1129 static void ReputationInc(Scriptable
* Sender
, Action
* parameters
);
1130 static void ReputationSet(Scriptable
* Sender
, Action
* parameters
);
1131 static void RestorePartyLocation(Scriptable
*Sender
, Action
* parameters
);
1132 static void RevealAreaOnMap(Scriptable
* Sender
, Action
* parameters
);
1133 static void RunAwayFrom(Scriptable
* Sender
, Action
* parameters
);
1134 static void RunAwayFromNoInterrupt(Scriptable
* Sender
, Action
* parameters
);
1135 static void SaveLocation(Scriptable
* Sender
, Action
* parameters
);
1136 static void SaveObjectLocation(Scriptable
* Sender
, Action
* parameters
);
1137 static void ScreenShake(Scriptable
* Sender
, Action
* parameters
);
1138 static void SetAnimState(Scriptable
* Sender
, Action
* parameters
);
1139 static void SetApparentName(Scriptable
* Sender
, Action
* parameters
);
1140 static void SetAreaFlags(Scriptable
* Sender
, Action
* parameters
);
1141 static void SetAreaRestFlag(Scriptable
* Sender
, Action
* parameters
);
1142 static void SetArmourLevel(Scriptable
* Sender
, Action
* parameters
);
1143 static void SetBeenInPartyFlags(Scriptable
* Sender
, Action
* parameters
);
1144 static void SetCorpseEnabled(Scriptable
* Sender
, Action
* parameters
);
1145 static void SetCreatureAreaFlags(Scriptable
* Sender
, Action
* parameters
);
1146 static void SetDialogue(Scriptable
* Sender
, Action
* parameters
);
1147 static void SetDialogueRange(Scriptable
* Sender
, Action
* parameters
);
1148 static void SetDoorLocked(Scriptable
* Sender
, Action
* parameters
);
1149 static void SetExtendedNight(Scriptable
* Sender
, Action
* parameters
);
1150 static void SetFaction(Scriptable
* Sender
, Action
* parameters
);
1151 static void SetGabber(Scriptable
* Sender
, Action
* parameters
);
1152 static void SetGlobal(Scriptable
* Sender
, Action
* parameters
);
1153 static void SetGlobalRandom(Scriptable
* Sender
, Action
* parameters
);
1154 static void SetGlobalTimer(Scriptable
* Sender
, Action
* parameters
);
1155 static void SetGlobalTint(Scriptable
* Sender
, Action
* parameters
);
1156 static void SetHomeLocation(Scriptable
* Sender
, Action
* parameters
);
1157 static void SetHP(Scriptable
* Sender
, Action
* parameters
);
1158 static void SetInternal(Scriptable
* Sender
, Action
* parameters
);
1159 static void SetLeavePartyDialogFile(Scriptable
* Sender
, Action
* parameters
);
1160 static void SetMasterArea(Scriptable
* Sender
, Action
* parameters
);
1161 static void SetMazeEasier(Scriptable
* Sender
, Action
* parameters
);
1162 static void SetMazeHarder(Scriptable
* Sender
, Action
* parameters
);
1163 static void SetMoraleAI(Scriptable
* Sender
, Action
* parameters
);
1164 static void SetMusic(Scriptable
* Sender
, Action
* parameters
);
1165 static void SetNamelessClass(Scriptable
* Sender
, Action
* parameters
);
1166 static void SetNamelessDisguise(Scriptable
* Sender
, Action
* parameters
);
1167 static void SetNumTimesTalkedTo(Scriptable
* Sender
, Action
* parameters
);
1168 static void SetPlayerSound(Scriptable
* Sender
, Action
* parameters
);
1169 static void SetQuestDone(Scriptable
* Sender
, Action
* parameters
);
1170 static void SetRegularName(Scriptable
* Sender
, Action
* parameters
);
1171 static void SetRestEncounterChance(Scriptable
* Sender
, Action
* parameters
);
1172 static void SetRestEncounterProbabilityDay(Scriptable
* Sender
, Action
* parameters
);
1173 static void SetRestEncounterProbabilityNight(Scriptable
* Sender
, Action
* parameters
);
1174 static void SetScriptName(Scriptable
* Sender
, Action
* parameters
);
1175 static void SetTeam(Scriptable
* Sender
, Action
* parameters
);
1176 static void SetTeamBit(Scriptable
* Sender
, Action
* parameters
);
1177 static void SetTextColor(Scriptable
* Sender
, Action
* parameters
);
1178 static void SetToken(Scriptable
* Sender
, Action
* parameters
);
1179 static void SetTokenGlobal(Scriptable
* Sender
, Action
* parameters
);
1180 static void SetVisualRange(Scriptable
* Sender
, Action
* parameters
);
1181 static void SG(Scriptable
* Sender
, Action
* parameters
);
1182 static void Shout(Scriptable
* Sender
, Action
* parameters
);
1183 static void SmallWait(Scriptable
* Sender
, Action
* parameters
);
1184 static void SmallWaitRandom(Scriptable
* Sender
, Action
* parameters
);
1185 static void SoundActivate(Scriptable
* Sender
, Action
* parameters
);
1186 static void StartCutScene(Scriptable
* Sender
, Action
* parameters
);
1187 static void StartCutSceneMode(Scriptable
* Sender
, Action
* parameters
);
1188 static void StartDialogue(Scriptable
* Sender
, Action
* parameters
);
1189 static void StartDialogueInterrupt(Scriptable
* Sender
, Action
* parameters
);
1190 static void StartDialogueNoSet(Scriptable
* Sender
, Action
* parameters
);
1191 static void StartDialogueNoSetInterrupt(Scriptable
* Sender
,
1192 Action
* parameters
);
1193 static void StartDialogueOverride(Scriptable
* Sender
, Action
* parameters
);
1194 static void StartDialogueOverrideInterrupt(Scriptable
* Sender
,
1195 Action
* parameters
);
1196 static void StartMovie(Scriptable
* Sender
, Action
* parameters
);
1197 static void StartMusic(Scriptable
* Sender
, Action
* parameters
);
1198 static void StartSong(Scriptable
* Sender
, Action
* parameters
);
1199 static void StartStore(Scriptable
* Sender
, Action
* parameters
);
1200 static void StaticPalette(Scriptable
* Sender
, Action
* parameters
);
1201 static void StaticStart(Scriptable
* Sender
, Action
* parameters
);
1202 static void StaticStop(Scriptable
* Sender
, Action
* parameters
);
1203 static void StopMoving(Scriptable
* Sender
, Action
* parameters
);
1204 static void StorePartyLocation(Scriptable
*Sender
, Action
* parameters
);
1205 static void Swing(Scriptable
* Sender
, Action
* parameters
);
1206 static void SwingOnce(Scriptable
* Sender
, Action
* parameters
);
1207 static void TakeItemList(Scriptable
* Sender
, Action
* parameters
);
1208 static void TakeItemReplace(Scriptable
* Sender
, Action
* parameters
);
1209 static void TakePartyGold(Scriptable
* Sender
, Action
* parameters
);
1210 static void TakePartyItem(Scriptable
* Sender
, Action
* parameters
);
1211 static void TakePartyItemAll(Scriptable
* Sender
, Action
* parameters
);
1212 static void TakePartyItemNum(Scriptable
* Sender
, Action
* parameters
);
1213 static void TeleportParty(Scriptable
* Sender
, Action
* parameters
);
1214 static void TextScreen(Scriptable
* Sender
, Action
* parameters
);
1215 static void TriggerActivation(Scriptable
* Sender
, Action
* parameters
);
1216 static void UndoExplore(Scriptable
*Sender
, Action
*parameters
);
1217 static void UnhideGUI(Scriptable
* Sender
, Action
* parameters
);
1218 static void Unlock(Scriptable
* Sender
, Action
* parameters
);
1219 static void UnlockScroll(Scriptable
* Sender
, Action
* parameters
);
1220 static void UseContainer(Scriptable
* Sender
, Action
* parameters
);
1221 static void VerbalConstant(Scriptable
* Sender
, Action
* parameters
);
1222 static void VerbalConstantHead(Scriptable
* Sender
, Action
* parameters
);
1223 static void Wait(Scriptable
* Sender
, Action
* parameters
);
1224 static void WaitAnimation(Scriptable
* Sender
, Action
* parameters
);
1225 static void WaitRandom(Scriptable
* Sender
, Action
* parameters
);
1226 static void XEquipItem(Scriptable
*Sender
, Action
*parameters
);
1229 static Targets
*BestAC(Scriptable
*Sender
, Targets
*parameters
);
1230 static Targets
*EighthNearest(Scriptable
*Sender
, Targets
*parameters
);
1231 static Targets
*EighthNearestEnemyOf(Scriptable
*Sender
, Targets
*parameters
);
1232 static Targets
*EighthNearestEnemyOfType(Scriptable
*Sender
, Targets
*parameters
);
1233 static Targets
*Farthest(Scriptable
*Sender
, Targets
*parameters
);
1234 static Targets
*FifthNearest(Scriptable
*Sender
, Targets
*parameters
);
1235 static Targets
*FifthNearestEnemyOf(Scriptable
*Sender
, Targets
*parameters
);
1236 static Targets
*FifthNearestEnemyOfType(Scriptable
*Sender
, Targets
*parameters
);
1237 static Targets
*FourthNearest(Scriptable
*Sender
, Targets
*parameters
);
1238 static Targets
*FourthNearestEnemyOf(Scriptable
*Sender
, Targets
*parameters
);
1239 static Targets
*FourthNearestEnemyOfType(Scriptable
*Sender
, Targets
*parameters
);
1240 static Targets
*Gabber(Scriptable
*Sender
, Targets
*parameters
);
1241 static Targets
*LastAttackerOf(Scriptable
*Sender
, Targets
*parameters
);
1242 static Targets
*LastCommandedBy(Scriptable
*Sender
, Targets
*parameters
);
1243 static Targets
*LastHeardBy(Scriptable
*Sender
, Targets
*parameters
);
1244 static Targets
*LastHelp(Scriptable
*Sender
, Targets
*parameters
);
1245 static Targets
*LastHitter(Scriptable
*Sender
, Targets
*parameters
);
1246 static Targets
*LastSeenBy(Scriptable
*Sender
, Targets
*parameters
);
1247 static Targets
*LastSummonerOf(Scriptable
*Sender
, Targets
*parameters
);
1248 static Targets
*LastTalkedToBy(Scriptable
*Sender
, Targets
*parameters
);
1249 static Targets
*LastTargetedBy(Scriptable
*Sender
, Targets
*parameters
);
1250 static Targets
*LastTrigger(Scriptable
*Sender
, Targets
*parameters
);
1251 static Targets
*LeastDamagedOf(Scriptable
*Sender
, Targets
*parameters
);
1252 static Targets
*MostDamagedOf(Scriptable
*Sender
, Targets
*parameters
);
1253 static Targets
*Myself(Scriptable
*Sender
, Targets
*parameters
);
1254 static Targets
*Nearest(Scriptable
*Sender
, Targets
*parameters
);
1255 static Targets
*NearestEnemyOf(Scriptable
*Sender
, Targets
*parameters
);
1256 static Targets
*NearestEnemyOfType(Scriptable
*Sender
, Targets
*parameters
);
1257 static Targets
*NearestPC(Scriptable
*Sender
, Targets
*parameters
);
1258 static Targets
*NinthNearest(Scriptable
*Sender
, Targets
*parameters
);
1259 static Targets
*NinthNearestEnemyOf(Scriptable
*Sender
, Targets
*parameters
);
1260 static Targets
*NinthNearestEnemyOfType(Scriptable
*Sender
, Targets
*parameters
);
1261 static Targets
*Nothing(Scriptable
*Sender
, Targets
*parameters
);
1262 static Targets
*Player1(Scriptable
*Sender
, Targets
*parameters
);
1263 static Targets
*Player1Fill(Scriptable
*Sender
, Targets
*parameters
);
1264 static Targets
*Player2(Scriptable
*Sender
, Targets
*parameters
);
1265 static Targets
*Player2Fill(Scriptable
*Sender
, Targets
*parameters
);
1266 static Targets
*Player3(Scriptable
*Sender
, Targets
*parameters
);
1267 static Targets
*Player3Fill(Scriptable
*Sender
, Targets
*parameters
);
1268 static Targets
*Player4(Scriptable
*Sender
, Targets
*parameters
);
1269 static Targets
*Player4Fill(Scriptable
*Sender
, Targets
*parameters
);
1270 static Targets
*Player5(Scriptable
*Sender
, Targets
*parameters
);
1271 static Targets
*Player5Fill(Scriptable
*Sender
, Targets
*parameters
);
1272 static Targets
*Player6(Scriptable
*Sender
, Targets
*parameters
);
1273 static Targets
*Player6Fill(Scriptable
*Sender
, Targets
*parameters
);
1274 static Targets
*Protagonist(Scriptable
*Sender
, Targets
*parameters
);
1275 static Targets
*SecondNearest(Scriptable
*Sender
, Targets
*parameters
);
1276 static Targets
*SecondNearestEnemyOf(Scriptable
*Sender
, Targets
*parameters
);
1277 static Targets
*SecondNearestEnemyOfType(Scriptable
*Sender
, Targets
*parameters
);
1278 static Targets
*SelectedCharacter(Scriptable
*Sender
, Targets
*parameters
);
1279 static Targets
*SeventhNearest(Scriptable
*Sender
, Targets
*parameters
);
1280 static Targets
*SeventhNearestEnemyOf(Scriptable
*Sender
, Targets
*parameters
);
1281 static Targets
*SeventhNearestEnemyOfType(Scriptable
*Sender
, Targets
*parameters
);
1282 static Targets
*SixthNearest(Scriptable
*Sender
, Targets
*parameters
);
1283 static Targets
*SixthNearestEnemyOf(Scriptable
*Sender
, Targets
*parameters
);
1284 static Targets
*SixthNearestEnemyOfType(Scriptable
*Sender
, Targets
*parameters
);
1285 static Targets
*StrongestOf(Scriptable
*Sender
, Targets
*parameters
);
1286 static Targets
*StrongestOfMale(Scriptable
*Sender
, Targets
*parameters
);
1287 static Targets
*TenthNearest(Scriptable
*Sender
, Targets
*parameters
);
1288 static Targets
*TenthNearestEnemyOf(Scriptable
*Sender
, Targets
*parameters
);
1289 static Targets
*TenthNearestEnemyOfType(Scriptable
*Sender
, Targets
*parameters
);
1290 static Targets
*ThirdNearest(Scriptable
*Sender
, Targets
*parameters
);
1291 static Targets
*ThirdNearestEnemyOf(Scriptable
*Sender
, Targets
*parameters
);
1292 static Targets
*ThirdNearestEnemyOfType(Scriptable
*Sender
, Targets
*parameters
);
1293 static Targets
*WeakestOf(Scriptable
*Sender
, Targets
*parameters
);
1294 static Targets
*WorstAC(Scriptable
*Sender
, Targets
*parameters
);
1297 /*GemRB extensions/actions*/
1298 static void RunAwayFromPoint(Scriptable
* Sender
, Action
* parameters
);
1299 static void UnMakeGlobal(Scriptable
* Sender
, Action
* parameters
);
1300 static void UnloadArea(Scriptable
* Sender
, Action
* parameters
);
1302 /*GemRB extensions/objects*/
1303 static Targets
*Player7(Scriptable
*Sender
, Targets
*parameters
);
1304 static Targets
*Player7Fill(Scriptable
*Sender
, Targets
*parameters
);
1305 static Targets
*Player8(Scriptable
*Sender
, Targets
*parameters
);
1306 static Targets
*Player8Fill(Scriptable
*Sender
, Targets
*parameters
);