deusexhq

#Actor abstract, native, nativereplication

Actor: The base class of all actors.
This is a built-in Unreal class and it shouldn't be modified.

##Properties

// DEUS_EX STM
enum EAIEventState
{
	EAISTATE_Begin,
	EAISTATE_End,
	EAISTATE_Pulse,
	EAISTATE_ChangeBest
};

enum EAIEventType
{
	EAITYPE_Visual,
	EAITYPE_Audio,
	EAITYPE_Olifactory
};

struct XAIParams
{
	var actor BestActor;
	var float Score;
	var float Visibility;
	var float Volume;
	var float Smell;
};

// DEUS_EX AJY 
enum EBarkModes 
{
	BM_Idle,
	BM_CriticalDamage,
	BM_AreaSecure,
	BM_TargetAcquired,
	BM_TargetLost,
	BM_GoingForAlarm,
	BM_OutOfAmmo,
	BM_Scanning,
	BM_Futz,
	BM_OnFire,
	BM_TearGas,
	BM_Gore,
	BM_Surprise,
	BM_PreAttackSearching,
	BM_PreAttackSighting,
	BM_PostAttackSearching,
	BM_SearchGiveUp,
	BM_AllianceHostile,
	BM_AllianceFriendly
};

// Flags.
var(Advanced) const bool  bStatic;       // Does not move or change over time.
var(Advanced) bool        bHidden;       // Is hidden during gameplay.
var(Advanced) const bool  bNoDelete;     // Cannot be deleted during play.
var bool				  bAnimFinished; // Unlooped animation sequence has finished.
var bool				  bAnimLoop;     // Whether animation is looping.
var bool				  bAnimNotify;   // Whether a notify is applied to the current sequence.
var bool				  bAnimByOwner;	 // Animation dictated by owner.
var const bool            bDeleteMe;     // About to be deleted.
var transient const bool  bAssimilated;  // Actor dynamics are assimilated in world geometry.
var transient const bool  bTicked;       // Actor has been updated.
var transient bool        bLightChanged; // Recalculate this light's lighting now.
var bool                  bDynamicLight; // Temporarily treat this as a dynamic light.
var bool                  bTimerLoop;    // Timer loops (else is one-shot).

// Other flags.
var(Advanced) bool        bCanTeleport;  // This actor can be teleported.
var(Advanced) bool        bIsSecretGoal; // This actor counts in the "secret" total.
var(Advanced) bool        bIsKillGoal;   // This actor counts in the "death" toll.
var(Advanced) bool        bIsItemGoal;   // This actor counts in the "item" count.
var(Advanced) bool		  bCollideWhenPlacing; // This actor collides with the world when placing.
var(Advanced) bool		  bTravel;       // Actor is capable of travelling among servers.
var(Advanced) bool		  bMovable;      // Actor is capable of travelling among servers.
var(Advanced) bool        bHighDetail;	 // Only show up on high-detail.
var(Advanced) bool		  bStasis;		 // In StandAlone games, turn off if not in a recently rendered zone turned off if  bCanStasis  and physics = PHYS_None or PHYS_Rotating.
var(Advanced) bool		  bForceStasis;	 // Force stasis when not recently rendered, even if physics not none or rotating.
var const	  bool		  bIsPawn;		 // True only for pawns.
var(Advanced) const bool  bNetTemporary; // Tear-off simulation in network play.
var(Advanced) const bool  bNetOptional;  // Actor should only be replicated if bandwidth available.
var			  bool		  bReplicateInstigator;	// Replicate instigator to client (used by bNetTemporary projectiles).
var			  bool		  bTrailerSameRotation;	// If PHYS_Trailer and true, have same rotation as owner.
var			  bool		  bTrailerPrePivot;	// If PHYS_Trailer and true, offset from owner by PrePivot.
var			  bool		  bClientAnim;
var			  bool		  bSimFall;			// dumb proxy should simulate fall

// DEUS_EX STM - added new flags
var(Advanced) bool        bBlockSight;   // True if pawns can't see through this actor.
var(Advanced) bool        bDetectable;   // True if this actor can be detected (by sight, sound, etc).
var(Advanced) bool        bTransient;    // True if this actor should be destroyed when it goes into stasis
var           bool        bIgnore;       // True if this actor should be generally ignored; compliance is voluntary

// Priority Parameters
// Actor's current physics mode.
var(Movement) const enum EPhysics
{
	PHYS_None,
	PHYS_Walking,
	PHYS_Falling,
	PHYS_Swimming,
	PHYS_Flying,
	PHYS_Rotating,
	PHYS_Projectile,
	PHYS_Rolling,
	PHYS_Interpolating,
	PHYS_MovingBrush,
	PHYS_Spider,
	PHYS_Trailer
} Physics;

// Net variables.
enum ENetRole
{
	ROLE_None,              // No role at all.
	ROLE_DumbProxy,			// Dumb proxy of this actor.
	ROLE_SimulatedProxy,	// Locally simulated proxy of this actor.
	ROLE_AutonomousProxy,	// Locally autonomous proxy of this actor.
	ROLE_Authority,			// Authoritative control over the actor.
};
var ENetRole Role;
var(Networking) ENetRole RemoteRole;

// DEUS_EX STM - added for stasis
var float LastRenderTime;
var float DistanceFromPlayer;

// Owner.
var         const Actor   Owner;         // Owner actor.
var(Object) name InitialState;
var(Object) name Group;

// Execution and timer variables.
var float                 TimerRate;     // Timer event, 0=no timer.
var const float           TimerCounter;	 // Counts up until it reaches TimerRate.
var(Advanced) float		  LifeSpan;      // How old the object lives before dying, 0=forever.

// Animation variables.
var(Display) name         AnimSequence;  // Animation sequence we're playing.
var(Display) float        AnimFrame;     // Current animation frame, 0.0 to 1.0.
var(Display) float        AnimRate;      // Animation rate in frames per second, 0=none, negative=velocity scaled.
var          float        TweenRate;     // Tween-into rate.

var(Display) float		  LODBias;

// Blending animation variables - DEUS_EX CNN
var name	BlendAnimSequence[4];
var float	BlendAnimFrame[4];
var float	BlendAnimRate[4];
var float	BlendTweenRate[4];

//-----------------------------------------------------------------------------
// Structures.

// Identifies a unique convex volume in the world.
struct PointRegion
{
	var zoneinfo Zone;       // Zone.
	var int      iLeaf;      // Bsp leaf.
	var byte     ZoneNumber; // Zone number.
};

//-----------------------------------------------------------------------------
// Major actor properties.

// Scriptable.
var       const LevelInfo Level;         // Level this actor is on.
var transient const Level XLevel;        // Level object.
var(Events) name		  Tag;			 // Actor's tag name.
var(Events) name          Event;         // The event this actor causes.
var Actor                 Target;        // Actor we're aiming at (other uses as well).
var Pawn                  Instigator;    // Pawn responsible for damage.
var travel Inventory      Inventory;     // Inventory chain.  (DEUS_EX STM - added "travel")
var const Actor           Base;          // Moving brush actor we're standing on.
var const PointRegion     Region;        // Region this actor is in.
var(Movement)	name	  AttachTag;

// Internal.
var const byte            StandingCount; // Count of actors standing on this actor.
var const byte            MiscNumber;    // Internal use.
var const byte            LatentByte;    // Internal latent function use.
var const int             LatentInt;     // Internal latent function use.
var const float           LatentFloat;   // Internal latent function use.
var const actor           LatentActor;   // Internal latent function use.
var const actor           Touching[4];   // List of touching actors.
var const actor           Deleted;       // Next actor in just-deleted chain.

// Internal tags.
var const transient int CollisionTag, LightingTag, NetTag, OtherTag, ExtraTag, SpecialTag;

// The actor's position and rotation.
var(Movement) const vector Location;     // Actor's location; use Move to set.
var(Movement) const rotator Rotation;    // Rotation.
var       const vector    OldLocation;   // Actor's old location one tick ago.
var       const vector    ColLocation;   // Actor's old location one move ago.
var(Movement) vector      Velocity;      // Velocity.
var       vector          Acceleration;  // Acceleration.

//Editing flags
var(Advanced) bool        bHiddenEd;     // Is hidden during editing.
var(Advanced) bool        bDirectional;  // Actor shows direction arrow during editing.
var const bool            bSelected;     // Selected in UnrealEd.
var const bool            bMemorized;    // Remembered in UnrealEd.
var const bool            bHighlighted;  // Highlighted in UnrealEd.
var bool                  bEdLocked;     // Locked in editor (no movement or rotation).
var(Advanced) bool        bEdShouldSnap; // Snap to grid in editor.
var transient bool        bEdSnap;       // Should snap to grid in UnrealEd.
var transient const bool  bTempEditor;   // Internal UnrealEd.

// What kind of gameplay scenarios to appear in.
var(Filter) bool          bDifficulty0;  // Appear in difficulty 0.
var(Filter) bool          bDifficulty1;  // Appear in difficulty 1.
var(Filter) bool          bDifficulty2;  // Appear in difficulty 2.
var(Filter) bool          bDifficulty3;  // Appear in difficulty 3.
var(Filter) bool          bSinglePlayer; // Appear in single player.
var(Filter) bool          bNet;          // Appear in regular network play.
var(Filter) bool          bNetSpecial;   // Appear in special network play mode.
var(Filter) float		  OddsOfAppearing; // 0-1 - chance actor will appear in relevant game modes.

//-----------------------------------------------------------------------------
// Display properties.

// Drawing effect.
var(Display) enum EDrawType
{
	DT_None,
	DT_Sprite,
	DT_Mesh,
	DT_Brush,
	DT_RopeSprite,
	DT_VerticalSprite,
	DT_Terraform,
	DT_SpriteAnimOnce,
} DrawType;

// Style for rendering sprites, meshes.
var(Display) enum ERenderStyle
{
	STY_None,
	STY_Normal,
	STY_Masked,
	STY_Translucent,
	STY_Modulated,
} Style;

// Other display properties.
var(Display) texture    Sprite;			 // Sprite texture if DrawType=DT_Sprite.
var(Display) texture    Texture;		 // Misc texture.
var(Display) texture    Skin;            // Special skin or enviro map texture.
var(Display) mesh       Mesh;            // Mesh if DrawType=DT_Mesh.
var const export model  Brush;           // Brush if DrawType=DT_Brush.
var(Display) float      DrawScale;		 // Scaling factor, 1.0=normal size.
var			 vector		PrePivot;		 // Offset from box center for drawing.
var(Display) float      ScaleGlow;		 // Multiplies lighting.
var(Display) byte       AmbientGlow;     // Ambient brightness, or 255=pulsing.
var(Display) byte       Fatness;         // Fatness (mesh distortion).

// Display.
var(Display)  bool      bUnlit;          // Lights don't affect actor.
var(Display)  bool      bNoSmooth;       // Don't smooth actor's texture.
var(Display)  bool      bParticles;      // Mesh is a particle system.
var(Display)  bool      bRandomFrame;    // Particles use a random texture from among the default texture and the multiskins textures
var(Display)  bool      bMeshEnviroMap;  // Environment-map the mesh.
var(Display)  bool      bMeshCurvy;      // Curvy mesh.
var(Display)  float     VisibilityRadius;// Actor is drawn if viewer is within its visibility
var(Display)  float     VisibilityHeight;// cylinder.  Zero=infinite visibility.

// Not yet implemented.
var(Display) bool       bShadowCast;     // Casts shadows.

// Advanced.
var(Advanced) bool		bOwnerNoSee;	 // Everything but the owner can see this actor.
var(Advanced) bool      bOnlyOwnerSee;   // Only owner can see this actor.
var Const     bool		bIsMover;		 // Is a mover.
var(Advanced) bool		bAlwaysRelevant; // Always relevant for network.
var Const	  bool		bAlwaysTick;     // Update even when players-only.
var			  bool		bHurtEntry;	     // keep HurtRadius from being reentrant
var(Advanced) bool		bGameRelevant;	 // Always relevant for game
var			  bool		bCarriedItem;	 // being carried, and not responsible for displaying self, so don't replicated location and rotation
var			  bool		bForcePhysicsUpdate; // force a physics update for simulated pawns


// Multiple skin support.
var(Display) texture MultiSkins[8];

//-----------------------------------------------------------------------------
// Sound.

// Ambient sound.
var(Sound) byte         SoundRadius;	 // Radius of ambient sound.
var(Sound) byte         SoundVolume;	 // Volume of amient sound.
var(Sound) byte         SoundPitch;	     // Sound pitch shift, 64.0=none.
var(Sound) sound        AmbientSound;    // Ambient sound effect.

// Regular sounds.
var(Sound) float TransientSoundVolume;
var(Sound) float TransientSoundRadius;

// Sound slots for actors.
enum ESoundSlot
{
	SLOT_None,
	SLOT_Misc,
	SLOT_Pain,
	SLOT_Interact,
	SLOT_Ambient,
	SLOT_Talk,
	SLOT_Interface,
};

// Music transitions.
enum EMusicTransition
{
	MTRAN_None,
	MTRAN_Instant,
	MTRAN_Segue,
	MTRAN_Fade,
	MTRAN_FastFade,
	MTRAN_SlowFade,
};

//-----------------------------------------------------------------------------
// Collision.

// Collision size.
var(Collision) const float CollisionRadius; // Radius of collision cyllinder.
var(Collision) const float CollisionHeight; // Half-height cyllinder.

// Collision flags.
var(Collision) const bool bCollideActors;   // Collides with other actors.
var(Collision) bool       bCollideWorld;    // Collides with the world.
var(Collision) bool       bBlockActors;	    // Blocks other nonplayer actors.
var(Collision) bool       bBlockPlayers;    // Blocks other player actors.
var(Collision) bool       bProjTarget;      // Projectiles should potentially target this actor.

//-----------------------------------------------------------------------------
// Lighting.

// Light modulation.
var(Lighting) enum ELightType
{
	LT_None,
	LT_Steady,
	LT_Pulse,
	LT_Blink,
	LT_Flicker,
	LT_Strobe,
	LT_BackdropLight,
	LT_SubtlePulse,
	LT_TexturePaletteOnce,
	LT_TexturePaletteLoop
} LightType;

// Spatial light effect to use.
var(Lighting) enum ELightEffect
{
	LE_None,
	LE_TorchWaver,
	LE_FireWaver,
	LE_WateryShimmer,
	LE_Searchlight,
	LE_SlowWave,
	LE_FastWave,
	LE_CloudCast,
	LE_StaticSpot,
	LE_Shock,
	LE_Disco,
	LE_Warp,
	LE_Spotlight,
	LE_NonIncidence,
	LE_Shell,
	LE_OmniBumpMap,
	LE_Interference,
	LE_Cylinder,
	LE_Rotor,
	LE_Unused
} LightEffect;

// Lighting info.
var(LightColor) byte
	LightBrightness,
	LightHue,
	LightSaturation;

// Light properties.
var(Lighting) byte
	LightRadius,
	LightPeriod,
	LightPhase,
	LightCone,
	VolumeBrightness,
	VolumeRadius,
	VolumeFog;

// Lighting.
var(Lighting) bool	     bSpecialLit;	 // Only affects special-lit surfaces.
var(Lighting) bool	     bActorShadows;  // Light casts actor shadows.
var(Lighting) bool	     bCorona;        // Light uses Skin as a corona.
var(Lighting) bool	     bLensFlare;     // Whether to use zone lens flare.

//-----------------------------------------------------------------------------
// Physics.

// Options.
var(Movement) bool        bBounce;           // Bounces when hits ground fast.
var(Movement) bool		  bFixedRotationDir; // Fixed direction of rotation.
var(Movement) bool		  bRotateToDesired;  // Rotate to DesiredRotation.
var           bool        bInterpolating;    // Performing interpolating.
var			  const bool  bJustTeleported;   // Used by engine physics - not valid for scripts.

// Dodge move direction.
var enum EDodgeDir
{
	DODGE_None,
	DODGE_Left,
	DODGE_Right,
	DODGE_Forward,
	DODGE_Back,
	DODGE_Active,
	DODGE_Done
} DodgeDir;

// Physics properties.
var(Movement) float       Mass;            // Mass of this actor.
var(Movement) float       Buoyancy;        // Water buoyancy.
var(Movement) rotator	  RotationRate;    // Change in rotation per second.
var(Movement) rotator     DesiredRotation; // Physics will rotate pawn to this if bRotateToDesired.
var           float       PhysAlpha;       // Interpolating position, 0.0-1.0.
var           float       PhysRate;        // Interpolation rate per second.
var			  Actor		  PendingTouch;		// Actor touched during move which wants to add an effect after the movement completes 
//-----------------------------------------------------------------------------
// Animation.

// Animation control.
var          float        AnimLast;        // Last frame.
var          float        AnimMinRate;     // Minimum rate for velocity-scaled animation.
var			 float		  OldAnimRate;	   // Animation rate of previous animation (= AnimRate until animation completes).
var			 plane		  SimAnim;		   // replicated to simulated proxies.

// Blending Animation control - DEUS_EX CNN
var          float        BlendAnimLast[4];        // Last frame.
var          float        BlendAnimMinRate[4];     // Minimum rate for velocity-scaled animation.
var			 float		  OldBlendAnimRate[4];	   // Animation rate of previous animation (= AnimRate until animation completes).
var			 plane		  SimBlendAnim[4];		   // replicated to simulated proxies.

// Conversation Related Variables - DEUS_EX AJY
var(Conversation) String BindName;					// Used to bind conversations
var(Conversation) String BarkBindName;				// Used to bind Barks!
var(Conversation) localized String FamiliarName;	// For display in Conversations
var(Conversation) localized String UnfamiliarName;	// For display in Conversations
var transient Object     ConListItems;				// List of ConListItems for this Actor
var	travel   float       LastConEndTime;			// Time when last conversation ended
var(Conversation) float  ConStartInterval;			// Amount of time required between two convos.

// Additional variables for AI - DEUS_EX STM
var			 float		  VisUpdateTime;
var			 float		  CurrentVisibility;
var			 float		  LastVisibility;

var(Smell)   class<SmellNode> SmellClass;
var          SmellNode        LastSmellNode;

var(Advanced) bool            bOwned;
// End additional variables - DEUS_EX STM

// DEUS_EX AMSD Added to make vision aug run faster.  If true, the vision aug needs to check this object more closely.
// Used for heat sources as well as things that blind.
var bool bVisionImportant;

//-----------------------------------------------------------------------------
// Networking.

// Network control.
var(Networking) float NetPriority; // Higher priorities means update it more frequently.
var(Networking) float NetUpdateFrequency; // How many seconds between net updates.
var(Networking) float RelevantRadius; //Radius in which things are always relevant.

// Symmetric network flags, valid during replication only.
var const bool bNetInitial;       // Initial network update.
var const bool bNetOwner;         // Player owns this actor.
var const bool bNetRelevant;      // Actor is currently relevant. Only valid server side, only when replicating variables.
var const bool bNetSee;           // Player sees it in network play.
var const bool bNetHear;          // Player hears it in network play.
var const bool bNetFeel;          // Player collides with/feels it in network play.
var const bool bSimulatedPawn;	  // True if Pawn and simulated proxy.
var const bool bDemoRecording;	  // True we are currently demo recording
var const bool bClientDemoRecording;// True we are currently recording a client-side demo
var const bool bClientDemoNetFunc;// True if we're client-side demo recording and this call originated from the remote.


//-----------------------------------------------------------------------------
// Enums.

// Travelling from server to server.
enum ETravelType
{
	TRAVEL_Absolute,	// Absolute URL.
	TRAVEL_Partial,		// Partial (carry name, reset server).
	TRAVEL_Relative,	// Relative URL.
};

// Input system states.
enum EInputAction
{
	IST_None,    // Not performing special input processing.
	IST_Press,   // Handling a keypress or button press.
	IST_Hold,    // Handling holding a key or button.
	IST_Release, // Handling a key or button release.
	IST_Axis,    // Handling analog axis movement.
};

// Input keys.
enum EInputKey
{
/*00*/	IK_None			,IK_LeftMouse	,IK_RightMouse	,IK_Cancel		,
/*04*/	IK_MiddleMouse	,IK_Unknown05	,IK_Unknown06	,IK_Unknown07	,
/*08*/	IK_Backspace	,IK_Tab         ,IK_Unknown0A	,IK_Unknown0B	,
/*0C*/	IK_Unknown0C	,IK_Enter	    ,IK_Unknown0E	,IK_Unknown0F	,
/*10*/	IK_Shift		,IK_Ctrl	    ,IK_Alt			,IK_Pause       ,
/*14*/	IK_CapsLock		,IK_Unknown15	,IK_Unknown16	,IK_Unknown17	,
/*18*/	IK_Unknown18	,IK_Unknown19	,IK_Unknown1A	,IK_Escape		,
/*1C*/	IK_Unknown1C	,IK_Unknown1D	,IK_Unknown1E	,IK_Unknown1F	,
/*20*/	IK_Space		,IK_PageUp      ,IK_PageDown    ,IK_End         ,
/*24*/	IK_Home			,IK_Left        ,IK_Up          ,IK_Right       ,
/*28*/	IK_Down			,IK_Select      ,IK_Print       ,IK_Execute     ,
/*2C*/	IK_PrintScrn	,IK_Insert      ,IK_Delete      ,IK_Help		,
/*30*/	IK_0			,IK_1			,IK_2			,IK_3			,
/*34*/	IK_4			,IK_5			,IK_6			,IK_7			,
/*38*/	IK_8			,IK_9			,IK_Unknown3A	,IK_Unknown3B	,
/*3C*/	IK_Unknown3C	,IK_Unknown3D	,IK_Unknown3E	,IK_Unknown3F	,
/*40*/	IK_Unknown40	,IK_A			,IK_B			,IK_C			,
/*44*/	IK_D			,IK_E			,IK_F			,IK_G			,
/*48*/	IK_H			,IK_I			,IK_J			,IK_K			,
/*4C*/	IK_L			,IK_M			,IK_N			,IK_O			,
/*50*/	IK_P			,IK_Q			,IK_R			,IK_S			,
/*54*/	IK_T			,IK_U			,IK_V			,IK_W			,
/*58*/	IK_X			,IK_Y			,IK_Z			,IK_Unknown5B	,
/*5C*/	IK_Unknown5C	,IK_Unknown5D	,IK_Unknown5E	,IK_Unknown5F	,
/*60*/	IK_NumPad0		,IK_NumPad1     ,IK_NumPad2     ,IK_NumPad3     ,
/*64*/	IK_NumPad4		,IK_NumPad5     ,IK_NumPad6     ,IK_NumPad7     ,
/*68*/	IK_NumPad8		,IK_NumPad9     ,IK_GreyStar    ,IK_GreyPlus    ,
/*6C*/	IK_Separator	,IK_GreyMinus	,IK_NumPadPeriod,IK_GreySlash   ,
/*70*/	IK_F1			,IK_F2          ,IK_F3          ,IK_F4          ,
/*74*/	IK_F5			,IK_F6          ,IK_F7          ,IK_F8          ,
/*78*/	IK_F9           ,IK_F10         ,IK_F11         ,IK_F12         ,
/*7C*/	IK_F13			,IK_F14         ,IK_F15         ,IK_F16         ,
/*80*/	IK_F17			,IK_F18         ,IK_F19         ,IK_F20         ,
/*84*/	IK_F21			,IK_F22         ,IK_F23         ,IK_F24         ,
/*88*/	IK_Unknown88	,IK_Unknown89	,IK_Unknown8A	,IK_Unknown8B	,
/*8C*/	IK_Unknown8C	,IK_Unknown8D	,IK_Unknown8E	,IK_Unknown8F	,
/*90*/	IK_NumLock		,IK_ScrollLock  ,IK_Unknown92	,IK_Unknown93	,
/*94*/	IK_Unknown94	,IK_Unknown95	,IK_Unknown96	,IK_Unknown97	,
/*98*/	IK_Unknown98	,IK_Unknown99	,IK_Unknown9A	,IK_Unknown9B	,
/*9C*/	IK_Unknown9C	,IK_Unknown9D	,IK_Unknown9E	,IK_Unknown9F	,
/*A0*/	IK_LShift		,IK_RShift      ,IK_LControl    ,IK_RControl    ,
/*A4*/	IK_UnknownA4	,IK_UnknownA5	,IK_UnknownA6	,IK_UnknownA7	,
/*A8*/	IK_UnknownA8	,IK_UnknownA9	,IK_UnknownAA	,IK_UnknownAB	,
/*AC*/	IK_UnknownAC	,IK_UnknownAD	,IK_UnknownAE	,IK_UnknownAF	,
/*B0*/	IK_UnknownB0	,IK_UnknownB1	,IK_UnknownB2	,IK_UnknownB3	,
/*B4*/	IK_UnknownB4	,IK_UnknownB5	,IK_UnknownB6	,IK_UnknownB7	,
/*B8*/	IK_UnknownB8	,IK_UnknownB9	,IK_Semicolon	,IK_Equals		,
/*BC*/	IK_Comma		,IK_Minus		,IK_Period		,IK_Slash		,
/*C0*/	IK_Tilde		,IK_UnknownC1	,IK_UnknownC2	,IK_UnknownC3	,
/*C4*/	IK_UnknownC4	,IK_UnknownC5	,IK_UnknownC6	,IK_UnknownC7	,
/*C8*/	IK_Joy1	        ,IK_Joy2	    ,IK_Joy3	    ,IK_Joy4	    ,
/*CC*/	IK_Joy5	        ,IK_Joy6	    ,IK_Joy7	    ,IK_Joy8	    ,
/*D0*/	IK_Joy9	        ,IK_Joy10	    ,IK_Joy11	    ,IK_Joy12		,
/*D4*/	IK_Joy13		,IK_Joy14	    ,IK_Joy15	    ,IK_Joy16	    ,
/*D8*/	IK_UnknownD8	,IK_UnknownD9	,IK_UnknownDA	,IK_LeftBracket	,
/*DC*/	IK_Backslash	,IK_RightBracket,IK_SingleQuote	,IK_UnknownDF	,
/*E0*/  IK_JoyX			,IK_JoyY		,IK_JoyZ		,IK_JoyR		,
/*E4*/	IK_MouseX		,IK_MouseY		,IK_MouseZ		,IK_MouseW		,
/*E8*/	IK_JoyU			,IK_JoyV		,IK_UnknownEA	,IK_UnknownEB	,
/*EC*/	IK_MouseWheelUp ,IK_MouseWheelDown,IK_Unknown10E,UK_Unknown10F  ,
/*F0*/	IK_JoyPovUp     ,IK_JoyPovDown	,IK_JoyPovLeft	,IK_JoyPovRight	,
/*F4*/	IK_UnknownF4	,IK_UnknownF5	,IK_Attn		,IK_CrSel		,
/*F8*/	IK_ExSel		,IK_ErEof		,IK_Play		,IK_Zoom		,
/*FC*/	IK_NoName		,IK_PA1			,IK_OEMClear
};

var(Display) class<RenderIterator> RenderIteratorClass;	// class to instantiate as the actor's RenderInterface
var transient RenderIterator RenderInterface;		// abstract iterator initialized in the Rendering engine

Network replication

replication
{
	// Relationships.
	unreliable if( Role==ROLE_Authority )
		Owner, Role, RemoteRole;
	unreliable if( bNetOwner && Role==ROLE_Authority )
		bNetOwner, Inventory;
	unreliable if( bReplicateInstigator && (RemoteRole>=ROLE_SimulatedProxy) && (Role==ROLE_Authority) )
		Instigator;

	// Ambient sound.
	unreliable if( (Role==ROLE_Authority) && (!bNetOwner || !bClientAnim) )
		AmbientSound;
	unreliable if( AmbientSound!=None && Role==ROLE_Authority  && (!bNetOwner || !bClientAnim) )
		SoundRadius, SoundVolume, SoundPitch;
	unreliable if( bDemoRecording )
		DemoPlaySound;

	// Collision.
	unreliable if( Role==ROLE_Authority )
		bCollideActors, bCollideWorld;
	unreliable if( (bCollideActors || bCollideWorld) && Role==ROLE_Authority )
		bProjTarget, bBlockActors, bBlockPlayers, CollisionRadius, CollisionHeight;

	// Location.
	unreliable if( !bCarriedItem && (bNetInitial || bSimulatedPawn || RemoteRole<ROLE_SimulatedProxy) && Role==ROLE_Authority )
		Location;
	unreliable if( !bCarriedItem && (DrawType==DT_Mesh || DrawType==DT_Brush) && (bNetInitial || bSimulatedPawn || RemoteRole<ROLE_SimulatedProxy) && Role==ROLE_Authority )
		Rotation;
	unreliable if( RemoteRole==ROLE_SimulatedProxy )
		Base;

   // Events
   unreliable if( Role==ROLE_authority)
      Event, Tag;

	// Velocity.
	unreliable if( bSimFall || ((RemoteRole==ROLE_SimulatedProxy && (bNetInitial || bSimulatedPawn)) || bIsMover) )
		Velocity;

	// Physics.
	unreliable if( bSimFall || (RemoteRole==ROLE_SimulatedProxy && bNetInitial && !bSimulatedPawn) )
		Physics, Acceleration, bBounce;
	unreliable if( RemoteRole==ROLE_SimulatedProxy && Physics==PHYS_Rotating && bNetInitial )
		bFixedRotationDir, bRotateToDesired, RotationRate, DesiredRotation;

	// Animation. 
	unreliable if( DrawType==DT_Mesh && ((RemoteRole<=ROLE_SimulatedProxy && (!bNetOwner || !bClientAnim)) || bDemoRecording) )
		AnimSequence, BlendAnimSequence;						// blended anims added - DEUS_EX CNN
	unreliable if( DrawType==DT_Mesh && (RemoteRole==ROLE_SimulatedProxy))
		bAnimNotify;
	unreliable if( DrawType==DT_Mesh && (RemoteRole<ROLE_SimulatedProxy))
		SimAnim, AnimMinRate, SimBlendAnim, BlendAnimMinRate;	// blended anims added - DEUS_EX CNN


	// Rendering.
	unreliable if( Role==ROLE_Authority )
		bHidden, bOnlyOwnerSee;
	unreliable if( Role==ROLE_Authority )
		Texture, DrawScale, PrePivot, DrawType, AmbientGlow, Fatness, ScaleGlow, bUnlit, Style;
	unreliable if( DrawType==DT_Sprite && !bHidden && (!bOnlyOwnerSee || bNetOwner) && Role==ROLE_Authority)
		Sprite;
	unreliable if( DrawType==DT_Mesh && Role==ROLE_Authority )
		Mesh, bMeshEnviroMap, Skin, MultiSkins;
	unreliable if( DrawType==DT_Brush && Role==ROLE_Authority )
		Brush;

	// Lighting.
	unreliable if( Role==ROLE_Authority )
		LightType;
	unreliable if( LightType!=LT_None && Role==ROLE_Authority )
		LightEffect, LightBrightness, LightHue, LightSaturation,
		LightRadius, LightPeriod, LightPhase,
		VolumeBrightness, VolumeRadius,
		bSpecialLit;

	// Messages
	reliable if( Role<ROLE_Authority )
		BroadcastMessage, BroadcastLocalizedMessage;
}

##Functions

###ConsoleCommand

native function string ConsoleCommand( string Command );

Execute a console command in the context of the current level and game engine.

###Error

native(233) final function Error( coerce string S );

Actor error handling. Handle an error and kill this one actor.

###Sleep

native(256) final latent function Sleep( float Seconds );

###Collision

native(262) final function SetCollision( optional bool NewColActors, optional bool NewBlockActors, optional bool NewBlockPlayers );
native(283) final function bool SetCollisionSize( float NewRadius, float NewHeight );

###Movement

native(266) final function bool Move( vector Delta );
native(267) final function bool SetLocation( vector NewLocation );
native(299) final function bool SetRotation( rotator NewRotation );
native(3969) final function bool MoveSmooth( vector Delta );
native(3971) final function AutonomousPhysics(float DeltaSeconds);

###Relations

native(298) final function SetBase( actor NewBase );
native(272) final function SetOwner( actor NewOwner );

###AI Functions added DEUS_EX STM

native(700) final function float AIGetLightLevel( vector Location );
native(701) final function float AIVisibility(optional bool bIncludeVelocity);
native(710) final function AISetEventCallback(name eventName, name callback,
                                              optional name scoreCallback,
                                              optional bool bCheckVisibility,
                                              optional bool bCheckDir,
                                              optional bool bCheckCylinder,
                                              optional bool bCheckLOS);
native(711) final function AIClearEventCallback(name eventName);
native(713) final function AISendEvent(name eventName, EAIEventType eventType,
                                       optional float Value, optional float Radius);
native(714) final function AIStartEvent(name eventName, EAIEventType eventType,
                                        optional float Value, optional float Radius);
native(715) final function AIEndEvent(name eventName, EAIEventType eventType);
native(716) final function AIClearEvent(name eventName);
native(717) final function rotator RandomBiasedRotation(int centralYaw, float yawDistribution,
                                                        int centralPitch, float pitchDistribution);
native(718) final function bool IsOverlapping(actor checkActor);
native(720) final function PlayerPawn GetPlayerPawn();
native(721) final function bool InStasis();
native(722) final function float ParabolicTrace(out      vector finalLocation,
                                                optional vector startVelocity,
                                                optional vector startLocation,
                                                optional bool   bCheckActors,
                                                optional vector cylinder,
                                                optional float  maxTime,
                                                optional float  elasticity,
                                                optional bool   bBounce,
                                                optional float  landingSpeed,
                                                optional float  granularity);
native(723) final function float LastRendered();
native(724) final function bool GetBoundingBox(out vector MinVect, out vector MaxVect,
                                               optional bool bExact,
                                               optional vector testLocation,
                                               optional rotator testRotation);

###Animation

native(259) final function PlayAnim( name Sequence, optional float Rate, optional float TweenTime );
native(260) final function LoopAnim( name Sequence, optional float Rate, optional float TweenTime, optional float MinRate );
native(294) final function TweenAnim( name Sequence, float Time );
native(282) final function bool IsAnimating();
native(293) final function name GetAnimGroup( name Sequence );
native(261) final latent function FinishAnim();
native(263) final function bool HasAnim( name Sequence );

// Blending animation function - DEUS_EX CNN
native(1010) final function PlayBlendAnim( name Sequence, optional float Rate, optional float TweenTime, optional int BlendSlot );
native(1012) final function TweenBlendAnim( name Sequence, float Time, optional int BlendSlot );

// Gets any numbered texture from a mesh - DEUS_EX CNN
native(1013) final function Texture GetMeshTexture( optional int texnum );

// Animation notifications.
event AnimEnd();

###Physics

// Physics control.
native(301) final latent function FinishInterpolation();
// DEUS_EX STM - added optional param to SetPhysics()
//native(3970) final function SetPhysics( EPhysics newPhysics );
native(3970) final function SetPhysics( EPhysics newPhysics, optional Actor newFloor );

##Engine notification functions

###Major notifications

####Spawned

event Spawned();

Called when actor is Spawned. See also PostBeginPlay, BeginPlay, PreBeginPlay, PostPostBeginPlay.

####Destroyed

event Destroyed();

Called when actor is destroyed and removed from the game.

####Expired

event Expired();

Unknown.

####Children

event GainedChild( Actor Other );
event LostChild( Actor Other );

Called when actor gains/looses a child actor.

####Tick

event Tick( float DeltaTime );

Called every tick, or frame, of the game.

###Triggers

event Trigger( Actor Other, Pawn EventInstigator );

Called when actor is ‘Triggered’ by the Trigger function.

event UnTrigger( Actor Other, Pawn EventInstigator );

Called when actor de-activates, e.i. triggered again to turn off.

event BeginEvent();
event EndEvent();

Unknown effects.

###Physics & world interaction. ####Timer

event Timer();

Called when SetTimer() expires. (See SetTimer)

####HitWall

event HitWall( vector HitNormal, actor HitWall );

Called when object hits the wall.
HitNormal: The vector direction that the actor hit from.
HitWall: The wall being hit.

####Falling

event Falling();

Called when actor is falling through the air.

####Landed

event Landed( vector HitNormal );

Called when actor hits the ground.
HitNormal: Firection actor landed from

####ZoneChange

event ZoneChange( ZoneInfo NewZone );

Called when actor changes between Zones in the world.
NewZone: The ZoneInfo actor controlling the entered zone.

####Bump/Touch

event Bump( Actor Other );
event Touch( Actor Other );

Called when actor hits in to another actor physically.
Other: The actor being touched.

event PostTouch( Actor Other );
event UnTouch( Actor Other );

Called for PendingTouch actor after physics completes.

####BaseChange

event BaseChange();

Called when actor changes base, meaning the actor that is supporting this one. For example, players standing on a crate, and then standing on the floor, is a BaseChange.

####Attachment

event Attach( Actor Other );
event Detach( Actor Other );

Used for attaching and detaching actors from another. Mostly used for making buttons and switches follow elevators.

####KillCredit

event KillCredit( Actor Other );

Called when something is killed.
Other: Actor being credited for a kill.

####Interpolating

event InterpolateEnd( actor Other );

Called when actor finishes its interpolating path.

####EndedRotation

event EndedRotation();

Called when actor stops rotating.

####Others

event Actor SpecialHandling(Pawn Other);
event bool EncroachingOn( actor Other );
event EncroachedBy( actor Other );

DEUS_EX STM -- added ####BumpWall

event BumpWall( vector HitLocation, vector HitNormal );

Called when actor hits the wall.
HitLocation: The location of the wall being hit.
HitNormal: The direction being hit from.

####SupportActor

event SupportActor( actor StandingActor )
{
	StandingActor.SetBase( self );
}

Called when actor is being stood on.

####OutOfWorld

event FellOutOfWorld()
{
	SetPhysics(PHYS_None);
	Destroy();
}	

Called when actor falls out of the world, e.g. fell through the geometry and no longer is in the normal play area.

####Damage and kills

event KilledBy( pawn EventInstigator );

Called when actor is killed.
EventInstigator: The pawn that killed this actor.

event TakeDamage( int Damage, Pawn EventInstigator, vector HitLocation, vector Momentum, name DamageType);

Called when the actor takes any damage.
Damage: The raw damage being dealt to this actor.
EventInstigator: The pawn dealing the damage.
HitLocation: The location this actor was hit at.
Momentum: The direction this actor will be pushed in.
DamageType: The string damage type being dealt.

##Tracing

###Trace

native(277) final function Actor Trace
(
	out vector      HitLocation,
	out vector      HitNormal,
	vector          TraceEnd,
	optional vector TraceStart,
	optional bool   bTraceActors,
	optional vector Extent
);

Traces a line and see what it collides with first.
Takes this actor’s collision properties into account.
Returns first hit actor, Level if hit level, or None if hit nothing.
HitLocation: The location we’ve hit. (out means the variable is usable after the function is called)
HitNormal: Not sure. (WIP)
TraceEnd: Where we want to trace to.
TraceStart: Where the trace starts from. Uses <actor>.location if left out.
bTraceActors: Where we collide with actors or not.
Extent: The range of the trace (?)

###FastTrace

native(548) final function bool FastTrace
(
	vector          TraceEnd,
	optional vector TraceStart
);

returns true if did not hit world geometry TraceEnd: Where we want to trace to.
TraceStart: Where the trace starts from. Uses <actor>.location if left out.

##Spawn

native(278) final function actor Spawn
(
	class<actor>      SpawnClass,
	optional actor	  SpawnOwner,
	optional name     SpawnTag,
	optional vector   SpawnLocation,
	optional rotator  SpawnRotation
);

Spawn an actor. Returns an actor of the specified class, not of class Actor (this is hardcoded in the compiler). Returns None if the actor could not be spawned (either the actor wouldn’t fit in the specified location, or the actor list is full).
Defaults to spawning at the spawner’s location.
SpawnClass: The class we want to spawn. Example: class'DeusEx.Medkit'
SpawnOwner: The actor that owns the newly spawned actor.
SpawnTag: Sets the Tag of the new actor.
SpawnLocation: Location to spawn at. Uses self.location if left out.
SpawnRotation: Rocation to spawn at. Uses self.rotation if left out.

##Destroy

native(279) final function bool Destroy();

Destroy this actor. Returns true if destroyed, false if indestructable. Destruction is latent. It occurs at the end of the tick.

##Timer

native(280) final function SetTimer( float NewTimerRate, bool bLoop );

Triggers the Timer() event after NewTimerRate ticks.
If bLoop is True then then timer will continue looping, else only triggers once.

##Sound

###PlaySound

native(264) final function int PlaySound
(
	sound				Sound,
	optional ESoundSlot Slot,
	optional float		Volume,
	optional bool		bNoOverride,
	optional float		Radius,
	optional float		Pitch
);

//Same as PlaySound, but only plays for the client. (No server propogation)
native simulated final function PlayOwnedSound();

//PlaySound call used for Demorec system.
native simulated event DemoPlaySound();

Play a sound effect.
*DEUS_EX - CNN* changed to return the channel ID of the sound so you can call StopSound later
Sound: A sound class in the game. Example: sound'LogNoteAdded'
ESoundSlot: The slot to play the sound in to. See ESoundSlot variable.
Volume: Volume of the sound.
bNoOverride: Wether this sound can be overwritten with other sounds on the same slot or not.
Radius: Physical hearable radius of the sound.
Pitch: Sounds pitch modifier.

###StopSound

native(265) final function StopSound(int Id);

DEUS_EX CNN - Stop a sound given the sound’s ID

###SetInstantVolume

native(268) final function SetInstantSoundVolume(byte newSoundVolume);
native(269) final function SetInstantSpeechVolume(byte newSpeechVolume);
native(270) final function SetInstantMusicVolume(byte newMusicVolume);

DEUS_EX CNN - Set the sound system volumes without waiting for a tick event

###GetSoundDuration

native final function float GetSoundDuration( sound Sound );

Get a sound duration.

##AI functions.

###MakeNoise

native(512) final function MakeNoise( float Loudness );

Inform other creatures that you’ve made a noise they might hear (they are sent a HearNoise message)
Senders of MakeNoise should have an instigator if they are not pawns.

###PlayerCanSeeMe

native(532) final function bool PlayerCanSeeMe();

Returns true if some player has a line of sight to actor’s location.

##Teleportation

event bool PreTeleport( Teleporter InTeleporter );

Called before actor teleports using a Teleporter actor.

event PostTeleport( Teleporter OutTeleporter );

Called after actor teleports using a Teleporter actor.

##BeginPlay

event BeginPlay();

Called when actor enters the game.

event PostBeginPlay();

Called immediately after gameplay begins.

event PostPostBeginPlay();

DEUS_EX AJY Called immediately after Initial State, and always called when loading a map AND when loading savegame

simulated event SetInitialState()
{
	if( InitialState!='' )
		GotoState( InitialState );
	else
		GotoState( 'Auto' );
}

Called after PostBeginPlay.

simulated event PostNetBeginPlay();

MBCODE Called after a net game begins.

event PreBeginPlay()
{
	// fake shrink to fix faked collision with floor problems - DEUS_EX CNN
	if ((IsA('Decoration') || IsA('Inventory')) && (CollisionHeight > 0.75))
		SetCollisionSize(CollisionRadius, CollisionHeight - 0.75);
	else if (IsA('Pawn'))
	{
		if (CollisionHeight > 9)
			SetCollisionSize(CollisionRadius, CollisionHeight - 4.5);
		else
			SetCollisionSize(CollisionRadius, CollisionHeight*0.5);
	}

	// Handle autodestruction if desired.
	if( !bGameRelevant && (Level.NetMode != NM_Client) && !Level.Game.IsRelevant(Self) )
		Destroy();
}

Called immediately before gameplay begins.

##Disk access.

// Find files.
native(539) final function string GetMapName( string NameEnding, string MapName, int Dir );
native(545) final function GetNextSkin( string Prefix, string CurrentSkin, int Dir, out string SkinName, out string SkinDesc );
native(547) final function string GetURLMap();
native final function string GetNextInt( string ClassName, int Num );
native final function GetNextIntDesc( string ClassName, int Num, out string Entry, out string Description );

##Iterator functions.

native(304) final iterator function AllActors     ( class<actor> BaseClass, out actor Actor, optional name MatchTag );
native(305) final iterator function ChildActors   ( class<actor> BaseClass, out actor Actor );
native(306) final iterator function BasedActors   ( class<actor> BaseClass, out actor Actor );
native(307) final iterator function TouchingActors( class<actor> BaseClass, out actor Actor );
native(309) final iterator function TraceActors   ( class<actor> BaseClass, out actor Actor, out vector HitLoc, out vector HitNorm, vector End, optional vector Start, optional vector Extent );
native(310) final iterator function RadiusActors  ( class<actor> BaseClass, out actor Actor, float Radius, optional vector Loc );
native(311) final iterator function VisibleActors ( class<actor> BaseClass, out actor Actor, optional float Radius, optional vector Loc );
native(312) final iterator function VisibleCollidingActors ( class<actor> BaseClass, out actor Actor, optional float Radius, optional vector Loc, optional bool bIgnoreHidden );

// added by DEUS_EX CNN
native(1000) final iterator function TraceTexture (class<actor> BaseClass, out actor Actor, out name texName, out name texGroup, out int flags, out vector HitLoc, out vector HitNorm, vector End, optional vector Start, optional vector Extent);

// added by DEUS_EX STM
native(1002) final iterator function CycleActors (class<actor> BaseClass, out actor Actor, out int Index );
native(1003) final iterator function TraceVisibleActors(class<actor> BaseClass, out actor Actor, out vector HitLoc, out vector HitNorm, vector End, optional vector Start, optional vector Extent );

Iterators are used in the format of;

//Destroy all medkits
local Medkit MD;
foreach AllActors(class'DeusEx.Medkit', MD)
	MD.Destroy()

##Color operators

native(549) static final operator(20)  color -     ( color A, color B );
native(550) static final operator(16) color *     ( float A, color B );
native(551) static final operator(20) color +     ( color A, color B );
native(552) static final operator(16) color *     ( color A, float B );

##Scripted Actor functions

event RenderOverlays( canvas Canvas );

draw on canvas before flash and fog are applied (used for drawing weapons)

###BroadcastMessage

event BroadcastMessage( coerce string Msg, optional bool bBeep, optional name Type )
{
	local Pawn P;

	if (Type == '')
		Type = 'Event';

//	if ( Level.Game.AllowsBroadcast(self, Len(Msg)) )
		for( P=Level.PawnList; P!=None; P=P.nextPawn )
			if( P.bIsPlayer || P.IsA('MessagingSpectator') )
				P.ClientMessage( Msg, Type, bBeep );
}

Broadcast a message to all players.
Can be called as a function; BroadcastMessage("This is seen by everyone.")
bBeep: Defines if the message triggers a chat message beep. (Maybe doesn’t work?)
Type: Unsure.

event BroadcastLocalizedMessage( class<LocalMessage> Message, optional int Switch, optional PlayerReplicationInfo RelatedPRI_1, optional PlayerReplicationInfo RelatedPRI_2, optional Object OptionalObject )
{
	local Pawn P;

	for ( P=Level.PawnList; P != None; P=P.nextPawn )
		if ( P.bIsPlayer || P.IsA('MessagingSpectator') )
			P.ReceiveLocalizedMessage( Message, Switch, RelatedPRI_1, RelatedPRI_2, OptionalObject );
}

Broadcast a localized message to all players.
Most message deal with 0 to 2 related PRIs.
The LocalMessage class defines how the PRI’s and optional actor are used.

###HurtRadius

final function HurtRadius( float DamageAmount, float DamageRadius, name DamageName, float Momentum, vector HitLocation, optional bool bIgnoreLOS )
{
	local actor Victims;
	local float damageScale, dist;
	local vector dir;

	// DEUS_EX CNN
	local Mover M;				
	
	if( bHurtEntry )
		return;

	bHurtEntry = true;
   if (!bIgnoreLOS)
   {
      foreach VisibleCollidingActors( class 'Actor', Victims, DamageRadius, HitLocation )
      {
         if( Victims != self )
         {
            dir = Victims.Location - HitLocation;
            dist = FMax(1,VSize(dir));
            dir = dir/dist; 
            damageScale = 1 - FMax(0,(dist - Victims.CollisionRadius)/DamageRadius);
            Victims.TakeDamage
               (
               damageScale * DamageAmount,
               Instigator, 
               Victims.Location - 0.5 * (Victims.CollisionHeight + Victims.CollisionRadius) * dir,
               (damageScale * Momentum * dir),
               DamageName
               );
         } 
      }
   }
   else
   {
      foreach RadiusActors(class 'Actor', Victims, DamageRadius, HitLocation )
      {
         if( Victims != self )
         {
            dir = Victims.Location - HitLocation;
            dist = FMax(1,VSize(dir));
            dir = dir/dist; 
            damageScale = 1 - FMax(0,(dist - Victims.CollisionRadius)/DamageRadius);
            Victims.TakeDamage
               (
               damageScale * DamageAmount,
               Instigator, 
               Victims.Location - 0.5 * (Victims.CollisionHeight + Victims.CollisionRadius) * dir,
               (damageScale * Momentum * dir),
               DamageName
               );
         } 
      }
   }

	//
	// DEUS_EX - CNN - damage the movers, also
	//
	foreach RadiusActors(class 'Mover', M, DamageRadius, HitLocation)
	{
		if( M != self )
		{
			dir = M.Location - HitLocation;
			dist = FMax(1,VSize(dir));
			dir = dir/dist; 
			damageScale = 1 - FMax(0,(dist - M.CollisionRadius)/DamageRadius);
			M.TakeDamage
			(
				damageScale * DamageAmount,
				Instigator, 
				M.Location - 0.5 * (M.CollisionHeight + M.CollisionRadius) * dir,
				(damageScale * Momentum * dir),
				DamageName
			);
		} 
	}

	bHurtEntry = false;
}

Hurt actors within the radius.
DamageAmount: Damage done to the actors.
DamageRadius: Range of actors to damage.
DamageName: Name of the damage.
Momentum: Vector to push the damaged actor in.
HitLocation: Location to deal the damage to. Only relevant for Pawn actors to damage body parts.
bIgnoreLOS : Unsure.

###Travel

event TravelPreAccept();

Called when carried onto a new level, before AcceptInventory.

event TravelPostAccept();

Called when carried into a new level, after AcceptInventory.

###Frob

function Frob(Actor Frobber, Inventory frobWith)
{
}

DEUS_EX CNN Called to frob an object, the subclass is responsible for implementing this Frobber will be the actor frobbing this actor. frobWith: Unsure.

###StopBlendAnims

function StopBlendAnims()
{
	local int i;

	for (i=0; i<ArrayCount(BlendAnimSequence); i++)
		BlendAnimSequence[i] = '';
}

DEUS_EX CNN Stops animations from blending

###RenderTexture

event RenderTexture(ScriptedTexture Tex);

Called when a scripted texture needs rendering

###BecomeViewTarget

function BecomeViewTarget();

Called by PlayerPawn when this actor becomes its ViewTarget.

###GetItemName

function String GetItemName( string FullName )
{
	local int pos;

	pos = InStr(FullName, ".");
	While ( pos != -1 )
	{
		FullName = Right(FullName, Len(FullName) - pos - 1);
		pos = InStr(FullName, ".");
	}

	return FullName;
}

Returns the string representation of the name of an object without the package prefixes.

###GetHumanName

function String GetHumanName()
{
	return GetItemName(string(class));
}

Returns the human readable string representation of an object.

###SetDisplayProperties

function SetDisplayProperties(ERenderStyle NewStyle, texture NewTexture, bool bLighting, bool bEnviroMap )
{
	Style = NewStyle;
	texture = NewTexture;
	bUnlit = bLighting;
	bMeshEnviromap = bEnviromap;
}

function SetDefaultDisplayProperties()
{
	Style = Default.Style;
	texture = Default.Texture;
	bUnlit = Default.bUnlit;
	bMeshEnviromap = Default.bMeshEnviromap;
}

Set the display properties of an actor. By setting them through this function, it allows the actor to modify other components (such as a Pawn’s weapon) or to adjust the result based on other factors (such as a Pawn’s other inventory wanting to affect the result)

###EndConversation

function EndConversation()
{
	LastConEndTime = Level.TimeSeconds;
}

Save the time this conversation ended DEUS_EX AJY

##DefaultProperties

defaultproperties
{
     bMovable=True
     bDetectable=True
     Role=ROLE_Authority
     RemoteRole=ROLE_DumbProxy
     LastRenderTime=-10.000000
     LODBias=1.000000
     bDifficulty0=True
     bDifficulty1=True
     bDifficulty2=True
     bDifficulty3=True
     bSinglePlayer=True
     bNet=True
     bNetSpecial=True
     OddsOfAppearing=1.000000
     DrawType=DT_Sprite
     Style=STY_Normal
     Texture=Texture'Engine.S_Actor'
     DrawScale=1.000000
     ScaleGlow=1.000000
     Fatness=128
     SoundRadius=32
     SoundVolume=128
     SoundPitch=64
     TransientSoundVolume=1.000000
     CollisionRadius=22.000000
     CollisionHeight=22.000000
     bJustTeleported=True
     Mass=100.000000
     ConStartInterval=5.000000
     NetPriority=1.000000
     NetUpdateFrequency=100.000000
}