Engine
Class Actor

source: e:\games\UnrealTournament\Engine\Classes\Actor.uc
Core.Object
   |
   +--Engine.Actor
Direct Known Subclasses:Brush, DamageType, Decal, Decoration, Effects, HUD, Info, Inventory, Keypoint, Light, Menu, NavigationPoint, Pawn, Projectile, SpawnNotify, Triggers, star, UMS, ShareSounds

class Actor
extends Core.Object

//============================================================================= // Actor: The base class of all actors. // This is a built-in Unreal class and it shouldn't be modified. //=============================================================================
Variables
 vector Acceleration
           Acceleration.
 float AnimLast
           Last frame.
 float AnimMinRate
           Minimum rate for velocity-scaled animation.
 Actor Base
           Moving brush actor we're standing on.
 model Brush
           Brush if DrawType=DT_Brush.
 vector ColLocation
           Actor's old location one move ago.
 Actor Deleted
           Next actor in just-deleted chain.
 enum EDodgeDir
           Performing interpolating.
 Actor HitActor
           Actor to return instead of this one, if hit.
 Pawn Instigator
           Pawn responsible for damage.
 Inventory Inventory
           Inventory chain.
 Actor LatentActor
           Internal latent function use.
 byte LatentByte
           Internal latent function use.
 float LatentFloat
           Internal latent function use.
 int LatentInt
           Internal latent function use.
 LevelInfo Level
           Level this actor is on.
 byte MiscNumber
           Internal use.
 int NetTag
           True only for pawns.
 vector OldLocation
           Actor's old location one tick ago.
 Actor Owner
           Owner actor.
 float PhysAlpha
           Interpolating position, 0.0-1.0.
 float PhysRate
           Interpolation rate per second.
 PointRegion Region
           Region this actor is in.
 RenderIterator RenderInterface
           abstract iterator initialized in the Rendering engine
 ENetRole Role
           True only for pawns.
 Animation SkelAnim
           Tween-into rate.
 ExtraTag, SpecialTag
           Next actor in just-deleted chain.
 byte StandingCount
           Count of actors standing on this actor.
 Actor Target
           Actor we're aiming at (other uses as well).
 float TimerCounter
           Counts up until it reaches TimerRate.
 float TimerRate
           Timer event, 0=no timer.
 Actor Touching[4]
           List of touching actors.
 float TweenRate
           Tween-into rate.
 Level XLevel
           Level object.
 bool bAlwaysTick
           Update even when players-only.
 bool bAnimByOwner
           Animation dictated by owner.
 bool bAnimFinished
           Unlooped animation sequence has finished.
 bool bAnimLoop
           Whether animation is looping.
 bool bAnimNotify
           Whether a notify is applied to the current sequence.
 bool bAssimilated
           Actor dynamics are assimilated in world geometry.
 bool bClientDemoNetFunc
           True if we're client-side demo recording and this call originated from the remote.
 bool bClientDemoRecording
           True we are currently recording a client-side demo
 bool bDeleteMe
           About to be deleted.
 bool bDemoRecording
           True we are currently demo recording
 bool bDynamicLight
           Temporarily treat this as a dynamic light.
 bool bEdLocked
           Locked in editor (no movement or rotation).
 bool bEdSnap
           Should snap to grid in UnrealEd.
 bool bHighlighted
           Highlighted in UnrealEd.
 bool bInterpolating
           Performing interpolating.
 bool bIsMover
           Is a mover.
 bool bIsPawn
           True only for pawns.
 bool bLightChanged
           Recalculate this light's lighting now.
 bool bMemorized
           Remembered in UnrealEd.
 bool bNetFeel
           Player collides with/feels it in network play.
 bool bNetHear
           Player hears it in network play.
 bool bNetInitial
           Initial network update.
 bool bNetOwner
           Player owns this actor.
 bool bNetRelevant
           Actor is currently relevant. Only valid server side, only when replicating variables.
 bool bNetSee
           Player sees it in network play.
 bool bSelected
           Selected in UnrealEd.
 bool bSimulatedPawn
           True if Pawn and simulated proxy.
 bool bTempEditor
           Internal UnrealEd.
 bool bTicked
           Actor has been updated.
 bool bTimerLoop
           Timer loops (else is one-shot).


Function Summary
 void AutonomousPhysics(float DeltaSeconds)
 void BecomeViewTarget()
     
//
// Called by PlayerPawn when this actor becomes its ViewTarget.
//
 string ConsoleCommand(string Command)
     
// Execute a console command in the context of the current level and game engine.
 bool Destroy()
     
//
// Destroy this actor. Returns true if destroyed, false if indestructable.
// Destruction is latent. It occurs at the end of the tick.
//
 void Error(string S)
     
// Handle an error and kill this one actor.
 bool FastTrace(vector TraceEnd, optional vector)
     
// returns true if did not hit world geometry
 void FinishAnim()
 void FinishInterpolation()
     
// Physics control.
 name GetAnimGroup(name Sequence)
 bool GetCacheEntry(int Num, out string, out string)
 String GetHumanName()
     
//
// Returns the human readable string representation of an object.
//
 String GetItemName(string FullName)
     
//
// Returns the string representation of the name of an object without the package
// prefixes.
//
 string GetMapName(string NameEnding, string MapName, int Dir)
     
// Find files.
 string GetNextInt(string ClassName, int Num)
 void GetNextIntDesc(string ClassName, int Num, out string, out string)
 void GetNextSkin(string Prefix, string CurrentSkin, int Dir, out string, out string)
 float GetSoundDuration(sound Sound)
     
// Get a sound duration.
 string GetURLMap()
 bool HasAnim(name Sequence)
 void HurtRadius(float DamageAmount, float DamageRadius, name DamageName, float Momentum, vector HitLocation)
     
//
// Hurt actors within the radius.
//
 bool IsAnimating()
 void LinkSkelAnim(Animation Anim)
     
// Skeletal animation linkup.
 void LoopAnim(name Sequence, optional float, optional float, optional float)
 void 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.
//
 bool Move(vector Delta)
     
// Movement.
 bool MoveCacheEntry(string GUID, optional string)
 bool MoveSmooth(vector Delta)
 void PlayAnim(name Sequence, optional float, optional float)
     
// Animation functions.
 void PlayOwnedSound(sound Sound, optional ESoundSlot, optional float, optional bool, optional float, optional float)
     
// play a sound effect, but don't propagate to a remote owner
// (he is playing the sound clientside
 void PlaySound(sound Sound, optional ESoundSlot, optional float, optional bool, optional float, optional float)
     
// Play a sound effect.
 bool PlayerCanSeeMe()
     
//
// PlayerCanSeeMe returns true if some player has a line of sight to 
// actor's location.
//
 void SetBase(Actor NewBase)
     
// Relations.
 void SetCollision(optional bool, optional bool, optional bool)
     
// Collision.
 bool SetCollisionSize(float NewRadius, float NewHeight)
 void SetDefaultDisplayProperties()
 void SetDisplayProperties(ERenderStyle NewStyle, Texture NewTexture, bool bLighting, bool bEnviroMap)
     
// 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)
 bool SetLocation(vector NewLocation)
 void SetOwner(Actor NewOwner)
 void SetPhysics(EPhysics newPhysics)
 bool SetRotation(rotator NewRotation)
 void SetTimer(float NewTimerRate, bool bLoop)
     
// Causes Timer() events every NewTimerRate seconds.
 void Sleep(float Seconds)
     
// Latent functions.
 Actor Trace(out vector, out vector, vector TraceEnd, optional vector, optional bool, optional vector)
     
//
// Trace 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.
//
 void TweenAnim(name Sequence, float Time)



Source Code


00001	//=============================================================================
00002	// Actor: The base class of all actors.
00003	// This is a built-in Unreal class and it shouldn't be modified.
00004	//=============================================================================
00005	class Actor extends Object
00006		abstract
00007		native
00008		nativereplication;
00009	
00010	// Imported data (during full rebuild).
00011	#exec Texture Import File=Textures\S_Actor.pcx Name=S_Actor Mips=Off Flags=2
00012	
00013	// Flags.
00014	var(Advanced) const bool  bStatic;       // Does not move or change over time.
00015	var(Advanced) bool        bHidden;       // Is hidden during gameplay.
00016	var(Advanced) const bool  bNoDelete;     // Cannot be deleted during play.
00017	var bool				  bAnimFinished; // Unlooped animation sequence has finished.
00018	var bool				  bAnimLoop;     // Whether animation is looping.
00019	var bool				  bAnimNotify;   // Whether a notify is applied to the current sequence.
00020	var bool				  bAnimByOwner;	 // Animation dictated by owner.
00021	var const bool            bDeleteMe;     // About to be deleted.
00022	var transient const bool  bAssimilated;  // Actor dynamics are assimilated in world geometry.
00023	var transient const bool  bTicked;       // Actor has been updated.
00024	var transient bool        bLightChanged; // Recalculate this light's lighting now.
00025	var bool                  bDynamicLight; // Temporarily treat this as a dynamic light.
00026	var bool                  bTimerLoop;    // Timer loops (else is one-shot).
00027	
00028	// Other flags.
00029	var(Advanced) bool        bCanTeleport;  // This actor can be teleported.
00030	var(Advanced) bool		bOwnerNoSee;	 // Everything but the owner can see this actor.
00031	var(Advanced) bool      bOnlyOwnerSee;   // Only owner can see this actor.
00032	var Const     bool		bIsMover;		 // Is a mover.
00033	var(Advanced) bool		bAlwaysRelevant; // Always relevant for network.
00034	var Const	  bool		bAlwaysTick;     // Update even when players-only.
00035	var(Advanced) bool        bHighDetail;	 // Only show up on high-detail.
00036	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.
00037	var(Advanced) bool		  bForceStasis;	 // Force stasis when not recently rendered, even if physics not none or rotating.
00038	var const	  bool		  bIsPawn;		 // True only for pawns.
00039	var(Advanced) const bool  bNetTemporary; // Tear-off simulation in network play.
00040	var(Advanced) const bool  bNetOptional;  // Actor should only be replicated if bandwidth available.
00041	var			  bool		  bReplicateInstigator;	// Replicate instigator to client (used by bNetTemporary projectiles).
00042	var			  bool		  bTrailerSameRotation;	// If PHYS_Trailer and true, have same rotation as owner.
00043	var			  bool		  bTrailerPrePivot;	// If PHYS_Trailer and true, offset from owner by PrePivot.
00044	var			  bool		  bClientAnim;
00045	var			  bool		  bSimFall;			// dumb proxy should simulate fall
00046	
00047	// Priority Parameters
00048	// Actor's current physics mode.
00049	var(Movement) const enum EPhysics
00050	{
00051		PHYS_None,
00052		PHYS_Walking,
00053		PHYS_Falling,
00054		PHYS_Swimming,
00055		PHYS_Flying,
00056		PHYS_Rotating,
00057		PHYS_Projectile,
00058		PHYS_Rolling,
00059		PHYS_Interpolating,
00060		PHYS_MovingBrush,
00061		PHYS_Spider,
00062		PHYS_Trailer
00063	} Physics;
00064	
00065	// Net variables.
00066	enum ENetRole
00067	{
00068		ROLE_None,              // No role at all.
00069		ROLE_DumbProxy,			// Dumb proxy of this actor.
00070		ROLE_SimulatedProxy,	// Locally simulated proxy of this actor.
00071		ROLE_AutonomousProxy,	// Locally autonomous proxy of this actor.
00072		ROLE_Authority,			// Authoritative control over the actor.
00073	};
00074	var ENetRole Role;
00075	var(Networking) ENetRole RemoteRole;
00076	var const transient int NetTag;
00077	
00078	// Owner.
00079	var         const Actor   Owner;         // Owner actor.
00080	var(Object) name InitialState;
00081	var(Object) name Group;
00082	
00083	// Execution and timer variables.
00084	var float                 TimerRate;     // Timer event, 0=no timer.
00085	var const float           TimerCounter;	 // Counts up until it reaches TimerRate.
00086	var(Advanced) float		  LifeSpan;      // How old the object lives before dying, 0=forever.
00087	
00088	// Animation variables.
00089	var(Display) name         AnimSequence;  // Animation sequence we're playing.
00090	var(Display) float        AnimFrame;     // Current animation frame, 0.0 to 1.0.
00091	var(Display) float        AnimRate;      // Animation rate in frames per second, 0=none, negative=velocity scaled.
00092	var          float        TweenRate;     // Tween-into rate.
00093	var          Animation    SkelAnim;
00094	
00095	var(Display) float		  LODBias;
00096	
00097	
00098	
00099	//-----------------------------------------------------------------------------
00100	// Structures.
00101	
00102	// Identifies a unique convex volume in the world.
00103	struct PointRegion
00104	{
00105		var zoneinfo Zone;       // Zone.
00106		var int      iLeaf;      // Bsp leaf.
00107		var byte     ZoneNumber; // Zone number.
00108	};
00109	
00110	//-----------------------------------------------------------------------------
00111	// Major actor properties.
00112	
00113	// Scriptable.
00114	var       const LevelInfo Level;         // Level this actor is on.
00115	var transient const Level XLevel;        // Level object.
00116	var(Events) name		  Tag;			 // Actor's tag name.
00117	var(Events) name          Event;         // The event this actor causes.
00118	var Actor                 Target;        // Actor we're aiming at (other uses as well).
00119	var Pawn                  Instigator;    // Pawn responsible for damage.
00120	var(Sound) sound        AmbientSound;    // Ambient sound effect.
00121	var Inventory             Inventory;     // Inventory chain.
00122	var const Actor           Base;          // Moving brush actor we're standing on.
00123	var const PointRegion     Region;        // Region this actor is in.
00124	var(Movement)	name	  AttachTag;
00125	
00126	// Internal.
00127	var const byte            StandingCount; // Count of actors standing on this actor.
00128	var const byte            MiscNumber;    // Internal use.
00129	var const byte            LatentByte;    // Internal latent function use.
00130	var const int             LatentInt;     // Internal latent function use.
00131	var const float           LatentFloat;   // Internal latent function use.
00132	var const actor           LatentActor;   // Internal latent function use.
00133	var const actor           Touching[4];   // List of touching actors.
00134	var const actor           Deleted;       // Next actor in just-deleted chain.
00135	
00136	// Internal tags.
00137	var const transient int CollisionTag, LightingTag, OtherTag, ExtraTag, SpecialTag;
00138	
00139	// The actor's position and rotation.
00140	var(Movement) const vector Location;     // Actor's location; use Move to set.
00141	var(Movement) const rotator Rotation;    // Rotation.
00142	var       const vector    OldLocation;   // Actor's old location one tick ago.
00143	var       const vector    ColLocation;   // Actor's old location one move ago.
00144	var(Movement) vector      Velocity;      // Velocity.
00145	var       vector          Acceleration;  // Acceleration.
00146	var(Filter) float		  OddsOfAppearing; // 0-1 - chance actor will appear in relevant game modes.
00147	
00148	//Editing flags
00149	var(Advanced) bool        bHiddenEd;     // Is hidden during editing.
00150	var(Advanced) bool        bDirectional;  // Actor shows direction arrow during editing.
00151	var const bool            bSelected;     // Selected in UnrealEd.
00152	var const bool            bMemorized;    // Remembered in UnrealEd.
00153	var const bool            bHighlighted;  // Highlighted in UnrealEd.
00154	var bool                  bEdLocked;     // Locked in editor (no movement or rotation).
00155	var(Advanced) bool        bEdShouldSnap; // Snap to grid in editor.
00156	var transient bool        bEdSnap;       // Should snap to grid in UnrealEd.
00157	var transient const bool  bTempEditor;   // Internal UnrealEd.
00158	
00159	// What kind of gameplay scenarios to appear in.
00160	var(Filter) bool          bDifficulty0;  // Appear in difficulty 0.
00161	var(Filter) bool          bDifficulty1;  // Appear in difficulty 1.
00162	var(Filter) bool          bDifficulty2;  // Appear in difficulty 2.
00163	var(Filter) bool          bDifficulty3;  // Appear in difficulty 3.
00164	var(Filter) bool          bSinglePlayer; // Appear in single player.
00165	var(Filter) bool          bNet;          // Appear in regular network play.
00166	var(Filter) bool          bNetSpecial;   // Appear in special network play mode.
00167	
00168	// set to prevent re-initializing of actors spawned during level startup
00169	var	bool				  bScriptInitialized;
00170	
00171	// Editor support.
00172	var Actor				  HitActor;		// Actor to return instead of this one, if hit.
00173	
00174	//-----------------------------------------------------------------------------
00175	// Display properties.
00176	
00177	// Drawing effect.
00178	var(Display) enum EDrawType
00179	{
00180		DT_None,
00181		DT_Sprite,
00182		DT_Mesh,
00183		DT_Brush,
00184		DT_RopeSprite,
00185		DT_VerticalSprite,
00186		DT_Terraform,
00187		DT_SpriteAnimOnce,
00188	} DrawType;
00189	
00190	// Style for rendering sprites, meshes.
00191	var(Display) enum ERenderStyle
00192	{
00193		STY_None,
00194		STY_Normal,
00195		STY_Masked,
00196		STY_Translucent,
00197		STY_Modulated,
00198	} Style;
00199	
00200	// Other display properties.
00201	var(Display) texture    Sprite;			 // Sprite texture if DrawType=DT_Sprite.
00202	var(Display) texture    Texture;		 // Misc texture.
00203	var(Display) texture    Skin;            // Special skin or enviro map texture.
00204	var(Display) mesh       Mesh;            // Mesh if DrawType=DT_Mesh.
00205	var const export model  Brush;           // Brush if DrawType=DT_Brush.
00206	var(Display) float      DrawScale;		 // Scaling factor, 1.0=normal size.
00207	var			 vector		PrePivot;		 // Offset from box center for drawing.
00208	var(Display) float      ScaleGlow;		 // Multiplies lighting.
00209	var(Display)  float     VisibilityRadius;// Actor is drawn if viewer is within its visibility
00210	var(Display)  float     VisibilityHeight;// cylinder.  Zero=infinite visibility.
00211	var(Display) byte       AmbientGlow;     // Ambient brightness, or 255=pulsing.
00212	var(Display) byte       Fatness;         // Fatness (mesh distortion).
00213	var(Display) float		SpriteProjForward;// Distance forward to draw sprite from actual location.
00214	
00215	// Display.
00216	var(Display)  bool      bUnlit;          // Lights don't affect actor.
00217	var(Display)  bool      bNoSmooth;       // Don't smooth actor's texture.
00218	var(Display)  bool      bParticles;      // Mesh is a particle system.
00219	var(Display)  bool      bRandomFrame;    // Particles use a random texture from among the default texture and the multiskins textures
00220	var(Display)  bool      bMeshEnviroMap;  // Environment-map the mesh.
00221	var(Display)  bool      bMeshCurvy;      // Curvy mesh.
00222	var(Display)  bool		bFilterByVolume; // Filter this sprite by its Visibility volume.
00223	
00224	// Not yet implemented.
00225	var(Display) bool       bShadowCast;     // Casts shadows.
00226	
00227	// Advanced.
00228	var			  bool		bHurtEntry;	     // keep HurtRadius from being reentrant
00229	var(Advanced) bool		bGameRelevant;	 // Always relevant for game
00230	var			  bool		bCarriedItem;	 // being carried, and not responsible for displaying self, so don't replicated location and rotation
00231	var			  bool		bForcePhysicsUpdate; // force a physics update for simulated pawns
00232	var(Advanced) bool        bIsSecretGoal; // This actor counts in the "secret" total.
00233	var(Advanced) bool        bIsKillGoal;   // This actor counts in the "death" toll.
00234	var(Advanced) bool        bIsItemGoal;   // This actor counts in the "item" count.
00235	var(Advanced) bool		  bCollideWhenPlacing; // This actor collides with the world when placing.
00236	var(Advanced) bool		  bTravel;       // Actor is capable of travelling among servers.
00237	var(Advanced) bool		  bMovable;      // Actor is capable of travelling among servers.
00238	
00239	
00240	// Multiple skin support.
00241	var(Display) texture MultiSkins[8];
00242	
00243	//-----------------------------------------------------------------------------
00244	// Sound.
00245	
00246	// Ambient sound.
00247	var(Sound) byte         SoundRadius;	 // Radius of ambient sound.
00248	var(Sound) byte         SoundVolume;	 // Volume of amient sound.
00249	var(Sound) byte         SoundPitch;	     // Sound pitch shift, 64.0=none.
00250	
00251	// Regular sounds.
00252	var(Sound) float TransientSoundVolume;
00253	var(Sound) float TransientSoundRadius;
00254	
00255	// Sound slots for actors.
00256	enum ESoundSlot
00257	{
00258		SLOT_None,
00259		SLOT_Misc,
00260		SLOT_Pain,
00261		SLOT_Interact,
00262		SLOT_Ambient,
00263		SLOT_Talk,
00264		SLOT_Interface,
00265	};
00266	
00267	// Music transitions.
00268	enum EMusicTransition
00269	{
00270		MTRAN_None,
00271		MTRAN_Instant,
00272		MTRAN_Segue,
00273		MTRAN_Fade,
00274		MTRAN_FastFade,
00275		MTRAN_SlowFade,
00276	};
00277	
00278	//-----------------------------------------------------------------------------
00279	// Collision.
00280	
00281	// Collision size.
00282	var(Collision) const float CollisionRadius; // Radius of collision cyllinder.
00283	var(Collision) const float CollisionHeight; // Half-height cyllinder.
00284	
00285	// Collision flags.
00286	var(Collision) const bool bCollideActors;   // Collides with other actors.
00287	var(Collision) bool       bCollideWorld;    // Collides with the world.
00288	var(Collision) bool       bBlockActors;	    // Blocks other nonplayer actors.
00289	var(Collision) bool       bBlockPlayers;    // Blocks other player actors.
00290	var(Collision) bool       bProjTarget;      // Projectiles should potentially target this actor.
00291	
00292	//-----------------------------------------------------------------------------
00293	// Lighting.
00294	
00295	// Light modulation.
00296	var(Lighting) enum ELightType
00297	{
00298		LT_None,
00299		LT_Steady,
00300		LT_Pulse,
00301		LT_Blink,
00302		LT_Flicker,
00303		LT_Strobe,
00304		LT_BackdropLight,
00305		LT_SubtlePulse,
00306		LT_TexturePaletteOnce,
00307		LT_TexturePaletteLoop
00308	} LightType;
00309	
00310	// Spatial light effect to use.
00311	var(Lighting) enum ELightEffect
00312	{
00313		LE_None,
00314		LE_TorchWaver,
00315		LE_FireWaver,
00316		LE_WateryShimmer,
00317		LE_Searchlight,
00318		LE_SlowWave,
00319		LE_FastWave,
00320		LE_CloudCast,
00321		LE_StaticSpot,
00322		LE_Shock,
00323		LE_Disco,
00324		LE_Warp,
00325		LE_Spotlight,
00326		LE_NonIncidence,
00327		LE_Shell,
00328		LE_OmniBumpMap,
00329		LE_Interference,
00330		LE_Cylinder,
00331		LE_Rotor,
00332		LE_Unused
00333	} LightEffect;
00334	
00335	// Lighting info.
00336	var(LightColor) byte
00337		LightBrightness,
00338		LightHue,
00339		LightSaturation;
00340	
00341	// Light properties.
00342	var(Lighting) byte
00343		LightRadius,
00344		LightPeriod,
00345		LightPhase,
00346		LightCone,
00347		VolumeBrightness,
00348		VolumeRadius,
00349		VolumeFog;
00350	
00351	// Lighting.
00352	var(Lighting) bool	     bSpecialLit;	 // Only affects special-lit surfaces.
00353	var(Lighting) bool	     bActorShadows;  // Light casts actor shadows.
00354	var(Lighting) bool	     bCorona;        // Light uses Skin as a corona.
00355	var(Lighting) bool	     bLensFlare;     // Whether to use zone lens flare.
00356	
00357	//-----------------------------------------------------------------------------
00358	// Physics.
00359	
00360	// Options.
00361	var(Movement) bool        bBounce;           // Bounces when hits ground fast.
00362	var(Movement) bool		  bFixedRotationDir; // Fixed direction of rotation.
00363	var(Movement) bool		  bRotateToDesired;  // Rotate to DesiredRotation.
00364	var           bool        bInterpolating;    // Performing interpolating.
00365	var			  const bool  bJustTeleported;   // Used by engine physics - not valid for scripts.
00366	
00367	// Dodge move direction.
00368	var enum EDodgeDir
00369	{
00370		DODGE_None,
00371		DODGE_Left,
00372		DODGE_Right,
00373		DODGE_Forward,
00374		DODGE_Back,
00375		DODGE_Active,
00376		DODGE_Done
00377	} DodgeDir;
00378	
00379	// Physics properties.
00380	var(Movement) float       Mass;            // Mass of this actor.
00381	var(Movement) float       Buoyancy;        // Water buoyancy.
00382	var(Movement) rotator	  RotationRate;    // Change in rotation per second.
00383	var(Movement) rotator     DesiredRotation; // Physics will rotate pawn to this if bRotateToDesired.
00384	var           float       PhysAlpha;       // Interpolating position, 0.0-1.0.
00385	var           float       PhysRate;        // Interpolation rate per second.
00386	var			  Actor		  PendingTouch;		// Actor touched during move which wants to add an effect after the movement completes 
00387	//-----------------------------------------------------------------------------
00388	// Animation.
00389	
00390	// Animation control.
00391	var          float        AnimLast;        // Last frame.
00392	var          float        AnimMinRate;     // Minimum rate for velocity-scaled animation.
00393	var			 float		  OldAnimRate;	   // Animation rate of previous animation (= AnimRate until animation completes).
00394	var			 plane		  SimAnim;		   // replicated to simulated proxies.
00395	
00396	//-----------------------------------------------------------------------------
00397	// Networking.
00398	
00399	// Network control.
00400	var(Networking) float NetPriority; // Higher priorities means update it more frequently.
00401	var(Networking) float NetUpdateFrequency; // How many seconds between net updates.
00402	
00403	// Symmetric network flags, valid during replication only.
00404	var const bool bNetInitial;       // Initial network update.
00405	var const bool bNetOwner;         // Player owns this actor.
00406	var const bool bNetRelevant;      // Actor is currently relevant. Only valid server side, only when replicating variables.
00407	var const bool bNetSee;           // Player sees it in network play.
00408	var const bool bNetHear;          // Player hears it in network play.
00409	var const bool bNetFeel;          // Player collides with/feels it in network play.
00410	var const bool bSimulatedPawn;	  // True if Pawn and simulated proxy.
00411	var const bool bDemoRecording;	  // True we are currently demo recording
00412	var const bool bClientDemoRecording;// True we are currently recording a client-side demo
00413	var const bool bClientDemoNetFunc;// True if we're client-side demo recording and this call originated from the remote.
00414	
00415	//-----------------------------------------------------------------------------
00416	// Enums.
00417	
00418	// Travelling from server to server.
00419	enum ETravelType
00420	{
00421		TRAVEL_Absolute,	// Absolute URL.
00422		TRAVEL_Partial,		// Partial (carry name, reset server).
00423		TRAVEL_Relative,	// Relative URL.
00424	};
00425	
00426	// Input system states.
00427	enum EInputAction
00428	{
00429		IST_None,    // Not performing special input processing.
00430		IST_Press,   // Handling a keypress or button press.
00431		IST_Hold,    // Handling holding a key or button.
00432		IST_Release, // Handling a key or button release.
00433		IST_Axis,    // Handling analog axis movement.
00434	};
00435	
00436	// Input keys.
00437	enum EInputKey
00438	{
00439	/*00*/	IK_None			,IK_LeftMouse	,IK_RightMouse	,IK_Cancel		,
00440	/*04*/	IK_MiddleMouse	,IK_Unknown05	,IK_Unknown06	,IK_Unknown07	,
00441	/*08*/	IK_Backspace	,IK_Tab         ,IK_Unknown0A	,IK_Unknown0B	,
00442	/*0C*/	IK_Unknown0C	,IK_Enter	    ,IK_Unknown0E	,IK_Unknown0F	,
00443	/*10*/	IK_Shift		,IK_Ctrl	    ,IK_Alt			,IK_Pause       ,
00444	/*14*/	IK_CapsLock		,IK_Unknown15	,IK_Unknown16	,IK_Unknown17	,
00445	/*18*/	IK_Unknown18	,IK_Unknown19	,IK_Unknown1A	,IK_Escape		,
00446	/*1C*/	IK_Unknown1C	,IK_Unknown1D	,IK_Unknown1E	,IK_Unknown1F	,
00447	/*20*/	IK_Space		,IK_PageUp      ,IK_PageDown    ,IK_End         ,
00448	/*24*/	IK_Home			,IK_Left        ,IK_Up          ,IK_Right       ,
00449	/*28*/	IK_Down			,IK_Select      ,IK_Print       ,IK_Execute     ,
00450	/*2C*/	IK_PrintScrn	,IK_Insert      ,IK_Delete      ,IK_Help		,
00451	/*30*/	IK_0			,IK_1			,IK_2			,IK_3			,
00452	/*34*/	IK_4			,IK_5			,IK_6			,IK_7			,
00453	/*38*/	IK_8			,IK_9			,IK_Unknown3A	,IK_Unknown3B	,
00454	/*3C*/	IK_Unknown3C	,IK_Unknown3D	,IK_Unknown3E	,IK_Unknown3F	,
00455	/*40*/	IK_Unknown40	,IK_A			,IK_B			,IK_C			,
00456	/*44*/	IK_D			,IK_E			,IK_F			,IK_G			,
00457	/*48*/	IK_H			,IK_I			,IK_J			,IK_K			,
00458	/*4C*/	IK_L			,IK_M			,IK_N			,IK_O			,
00459	/*50*/	IK_P			,IK_Q			,IK_R			,IK_S			,
00460	/*54*/	IK_T			,IK_U			,IK_V			,IK_W			,
00461	/*58*/	IK_X			,IK_Y			,IK_Z			,IK_Unknown5B	,
00462	/*5C*/	IK_Unknown5C	,IK_Unknown5D	,IK_Unknown5E	,IK_Unknown5F	,
00463	/*60*/	IK_NumPad0		,IK_NumPad1     ,IK_NumPad2     ,IK_NumPad3     ,
00464	/*64*/	IK_NumPad4		,IK_NumPad5     ,IK_NumPad6     ,IK_NumPad7     ,
00465	/*68*/	IK_NumPad8		,IK_NumPad9     ,IK_GreyStar    ,IK_GreyPlus    ,
00466	/*6C*/	IK_Separator	,IK_GreyMinus	,IK_NumPadPeriod,IK_GreySlash   ,
00467	/*70*/	IK_F1			,IK_F2          ,IK_F3          ,IK_F4          ,
00468	/*74*/	IK_F5			,IK_F6          ,IK_F7          ,IK_F8          ,
00469	/*78*/	IK_F9           ,IK_F10         ,IK_F11         ,IK_F12         ,
00470	/*7C*/	IK_F13			,IK_F14         ,IK_F15         ,IK_F16         ,
00471	/*80*/	IK_F17			,IK_F18         ,IK_F19         ,IK_F20         ,
00472	/*84*/	IK_F21			,IK_F22         ,IK_F23         ,IK_F24         ,
00473	/*88*/	IK_Unknown88	,IK_Unknown89	,IK_Unknown8A	,IK_Unknown8B	,
00474	/*8C*/	IK_Unknown8C	,IK_Unknown8D	,IK_Unknown8E	,IK_Unknown8F	,
00475	/*90*/	IK_NumLock		,IK_ScrollLock  ,IK_Unknown92	,IK_Unknown93	,
00476	/*94*/	IK_Unknown94	,IK_Unknown95	,IK_Unknown96	,IK_Unknown97	,
00477	/*98*/	IK_Unknown98	,IK_Unknown99	,IK_Unknown9A	,IK_Unknown9B	,
00478	/*9C*/	IK_Unknown9C	,IK_Unknown9D	,IK_Unknown9E	,IK_Unknown9F	,
00479	/*A0*/	IK_LShift		,IK_RShift      ,IK_LControl    ,IK_RControl    ,
00480	/*A4*/	IK_UnknownA4	,IK_UnknownA5	,IK_UnknownA6	,IK_UnknownA7	,
00481	/*A8*/	IK_UnknownA8	,IK_UnknownA9	,IK_UnknownAA	,IK_UnknownAB	,
00482	/*AC*/	IK_UnknownAC	,IK_UnknownAD	,IK_UnknownAE	,IK_UnknownAF	,
00483	/*B0*/	IK_UnknownB0	,IK_UnknownB1	,IK_UnknownB2	,IK_UnknownB3	,
00484	/*B4*/	IK_UnknownB4	,IK_UnknownB5	,IK_UnknownB6	,IK_UnknownB7	,
00485	/*B8*/	IK_UnknownB8	,IK_UnknownB9	,IK_Semicolon	,IK_Equals		,
00486	/*BC*/	IK_Comma		,IK_Minus		,IK_Period		,IK_Slash		,
00487	/*C0*/	IK_Tilde		,IK_UnknownC1	,IK_UnknownC2	,IK_UnknownC3	,
00488	/*C4*/	IK_UnknownC4	,IK_UnknownC5	,IK_UnknownC6	,IK_UnknownC7	,
00489	/*C8*/	IK_Joy1	        ,IK_Joy2	    ,IK_Joy3	    ,IK_Joy4	    ,
00490	/*CC*/	IK_Joy5	        ,IK_Joy6	    ,IK_Joy7	    ,IK_Joy8	    ,
00491	/*D0*/	IK_Joy9	        ,IK_Joy10	    ,IK_Joy11	    ,IK_Joy12		,
00492	/*D4*/	IK_Joy13		,IK_Joy14	    ,IK_Joy15	    ,IK_Joy16	    ,
00493	/*D8*/	IK_UnknownD8	,IK_UnknownD9	,IK_UnknownDA	,IK_LeftBracket	,
00494	/*DC*/	IK_Backslash	,IK_RightBracket,IK_SingleQuote	,IK_UnknownDF	,
00495	/*E0*/  IK_JoyX			,IK_JoyY		,IK_JoyZ		,IK_JoyR		,
00496	/*E4*/	IK_MouseX		,IK_MouseY		,IK_MouseZ		,IK_MouseW		,
00497	/*E8*/	IK_JoyU			,IK_JoyV		,IK_UnknownEA	,IK_UnknownEB	,
00498	/*EC*/	IK_MouseWheelUp ,IK_MouseWheelDown,IK_Unknown10E,UK_Unknown10F  ,
00499	/*F0*/	IK_JoyPovUp     ,IK_JoyPovDown	,IK_JoyPovLeft	,IK_JoyPovRight	,
00500	/*F4*/	IK_UnknownF4	,IK_UnknownF5	,IK_Attn		,IK_CrSel		,
00501	/*F8*/	IK_ExSel		,IK_ErEof		,IK_Play		,IK_Zoom		,
00502	/*FC*/	IK_NoName		,IK_PA1			,IK_OEMClear
00503	};
00504	
00505	var(Display) class<RenderIterator> RenderIteratorClass;	// class to instantiate as the actor's RenderInterface
00506	var transient RenderIterator RenderInterface;		// abstract iterator initialized in the Rendering engine
00507	
00508	//-----------------------------------------------------------------------------
00509	// natives.
00510	
00511	// Execute a console command in the context of the current level and game engine.
00512	native function string ConsoleCommand( string Command );
00513	
00514	
00515	//-----------------------------------------------------------------------------
00516	// Network replication.
00517	
00518	replication
00519	{
00520		// Relationships.
00521		unreliable if( Role==ROLE_Authority )
00522			Owner, Role, RemoteRole;
00523		unreliable if( bNetOwner && Role==ROLE_Authority )
00524			bNetOwner, Inventory;
00525		unreliable if( bReplicateInstigator && (RemoteRole>=ROLE_SimulatedProxy) && (Role==ROLE_Authority) )
00526			Instigator;
00527	
00528		// Ambient sound.
00529		unreliable if( (Role==ROLE_Authority) && (!bNetOwner || !bClientAnim) )
00530			AmbientSound;
00531		unreliable if( AmbientSound!=None && Role==ROLE_Authority  && (!bNetOwner || !bClientAnim) )
00532			SoundRadius, SoundVolume, SoundPitch;
00533		unreliable if( bDemoRecording )
00534			DemoPlaySound;
00535	
00536		// Collision.
00537		unreliable if( Role==ROLE_Authority )
00538			bCollideActors, bCollideWorld;
00539		unreliable if( (bCollideActors || bCollideWorld) && Role==ROLE_Authority )
00540			bProjTarget, bBlockActors, bBlockPlayers, CollisionRadius, CollisionHeight;
00541	
00542		// Location.
00543		unreliable if( !bCarriedItem && (bNetInitial || bSimulatedPawn || RemoteRole<ROLE_SimulatedProxy) && Role==ROLE_Authority )
00544			Location;
00545		unreliable if( !bCarriedItem && (DrawType==DT_Mesh || DrawType==DT_Brush) && (bNetInitial || bSimulatedPawn || RemoteRole<ROLE_SimulatedProxy) && Role==ROLE_Authority )
00546			Rotation;
00547		unreliable if( RemoteRole==ROLE_SimulatedProxy )
00548			Base;
00549	
00550		// Velocity.
00551		unreliable if( bSimFall || ((RemoteRole==ROLE_SimulatedProxy && (bNetInitial || bSimulatedPawn)) || bIsMover) )
00552			Velocity;
00553	
00554		// Physics.
00555		unreliable if( bSimFall || (RemoteRole==ROLE_SimulatedProxy && bNetInitial && !bSimulatedPawn) )
00556			Physics, Acceleration, bBounce;
00557		unreliable if( RemoteRole==ROLE_SimulatedProxy && Physics==PHYS_Rotating && bNetInitial )
00558			bFixedRotationDir, bRotateToDesired, RotationRate, DesiredRotation;
00559	
00560		// Animation. 
00561		unreliable if( DrawType==DT_Mesh && ((RemoteRole<=ROLE_SimulatedProxy && (!bNetOwner || !bClientAnim)) || bDemoRecording) )
00562			AnimSequence, SimAnim, AnimMinRate, bAnimNotify;
00563	
00564		// Rendering.
00565		unreliable if( Role==ROLE_Authority )
00566			bHidden, bOnlyOwnerSee;
00567		unreliable if( Role==ROLE_Authority )
00568			Texture, DrawScale, DrawType, Style;
00569		unreliable if( DrawType==DT_Sprite && !bHidden && (!bOnlyOwnerSee || bNetOwner) && Role==ROLE_Authority)
00570			Sprite;
00571		unreliable if( DrawType==DT_Mesh && Role==ROLE_Authority )
00572			Mesh, PrePivot, bMeshEnviroMap, Skin, MultiSkins, Fatness, AmbientGlow, ScaleGlow, bUnlit;
00573		unreliable if( DrawType==DT_Brush && Role==ROLE_Authority )
00574			Brush;
00575	
00576		// Lighting.
00577		unreliable if( Role==ROLE_Authority )
00578			LightType;
00579		unreliable if( LightType!=LT_None && Role==ROLE_Authority )
00580			LightEffect, LightBrightness, LightHue, LightSaturation,
00581			LightRadius, LightPeriod, LightPhase,
00582			VolumeBrightness, VolumeRadius,
00583			bSpecialLit;
00584	
00585		// Messages
00586		reliable if( Role<ROLE_Authority )
00587			BroadcastMessage, BroadcastLocalizedMessage;
00588	}
00589	
00590	//=============================================================================
00591	// Actor error handling.
00592	
00593	// Handle an error and kill this one actor.
00594	native(233) final function Error( coerce string S );
00595	
00596	//=============================================================================
00597	// General functions.
00598	
00599	// Latent functions.
00600	native(256) final latent function Sleep( float Seconds );
00601	
00602	// Collision.
00603	native(262) final function SetCollision( optional bool NewColActors, optional bool NewBlockActors, optional bool NewBlockPlayers );
00604	native(283) final function bool SetCollisionSize( float NewRadius, float NewHeight );
00605	
00606	// Movement.
00607	native(266) final function bool Move( vector Delta );
00608	native(267) final function bool SetLocation( vector NewLocation );
00609	native(299) final function bool SetRotation( rotator NewRotation );
00610	native(3969) final function bool MoveSmooth( vector Delta );
00611	native(3971) final function AutonomousPhysics(float DeltaSeconds);
00612	
00613	// Relations.
00614	native(298) final function SetBase( actor NewBase );
00615	native(272) final function SetOwner( actor NewOwner );
00616	
00617	//=============================================================================
00618	// Animation.
00619	
00620	// Animation functions.
00621	native(259) final function PlayAnim( name Sequence, optional float Rate, optional float TweenTime );
00622	native(260) final function LoopAnim( name Sequence, optional float Rate, optional float TweenTime, optional float MinRate );
00623	native(294) final function TweenAnim( name Sequence, float Time );
00624	native(282) final function bool IsAnimating();
00625	native(293) final function name GetAnimGroup( name Sequence );
00626	native(261) final latent function FinishAnim();
00627	native(263) final function bool HasAnim( name Sequence );
00628	
00629	// Animation notifications.
00630	event AnimEnd();
00631	
00632	// Skeletal animation linkup.
00633	native final function LinkSkelAnim( Animation Anim );
00634	
00635	//=========================================================================
00636	// Physics.
00637	
00638	// Physics control.
00639	native(301) final latent function FinishInterpolation();
00640	native(3970) final function SetPhysics( EPhysics newPhysics );
00641	
00642	//=============================================================================
00643	// Engine notification functions.
00644	
00645	//
00646	// Major notifications.
00647	//
00648	event Spawned();
00649	event Destroyed();
00650	event Expired();
00651	event GainedChild( Actor Other );
00652	event LostChild( Actor Other );
00653	event Tick( float DeltaTime );
00654	
00655	//
00656	// Triggers.
00657	//
00658	event Trigger( Actor Other, Pawn EventInstigator );
00659	event UnTrigger( Actor Other, Pawn EventInstigator );
00660	event BeginEvent();
00661	event EndEvent();
00662	
00663	//
00664	// Physics & world interaction.
00665	//
00666	event Timer();
00667	event HitWall( vector HitNormal, actor HitWall );
00668	event Falling();
00669	event Landed( vector HitNormal );
00670	event ZoneChange( ZoneInfo NewZone );
00671	event Touch( Actor Other );
00672	event PostTouch( Actor Other ); // called for PendingTouch actor after physics completes
00673	event UnTouch( Actor Other );
00674	event Bump( Actor Other );
00675	event BaseChange();
00676	event Attach( Actor Other );
00677	event Detach( Actor Other );
00678	event KillCredit( Actor Other );
00679	event Actor SpecialHandling(Pawn Other);
00680	event bool EncroachingOn( actor Other );
00681	event EncroachedBy( actor Other );
00682	event InterpolateEnd( actor Other );
00683	event EndedRotation();
00684	
00685	event FellOutOfWorld()
00686	{
00687		SetPhysics(PHYS_None);
00688		Destroy();
00689	}	
00690	
00691	//
00692	// Damage and kills.
00693	//
00694	event KilledBy( pawn EventInstigator );
00695	event TakeDamage( int Damage, Pawn EventInstigator, vector HitLocation, vector Momentum, name DamageType);
00696	
00697	//
00698	// Trace a line and see what it collides with first.
00699	// Takes this actor's collision properties into account.
00700	// Returns first hit actor, Level if hit level, or None if hit nothing.
00701	//
00702	native(277) final function Actor Trace
00703	(
00704		out vector      HitLocation,
00705		out vector      HitNormal,
00706		vector          TraceEnd,
00707		optional vector TraceStart,
00708		optional bool   bTraceActors,
00709		optional vector Extent
00710	);
00711	
00712	// returns true if did not hit world geometry
00713	native(548) final function bool FastTrace
00714	(
00715		vector          TraceEnd,
00716		optional vector TraceStart
00717	);
00718	
00719	//
00720	// Spawn an actor. Returns an actor of the specified class, not
00721	// of class Actor (this is hardcoded in the compiler). Returns None
00722	// if the actor could not be spawned (either the actor wouldn't fit in
00723	// the specified location, or the actor list is full).
00724	// Defaults to spawning at the spawner's location.
00725	//
00726	native(278) final function actor Spawn
00727	(
00728		class<actor>      SpawnClass,
00729		optional actor	  SpawnOwner,
00730		optional name     SpawnTag,
00731		optional vector   SpawnLocation,
00732		optional rotator  SpawnRotation
00733	);
00734	
00735	//
00736	// Destroy this actor. Returns true if destroyed, false if indestructable.
00737	// Destruction is latent. It occurs at the end of the tick.
00738	//
00739	native(279) final function bool Destroy();
00740	
00741	//=============================================================================
00742	// Timing.
00743	
00744	// Causes Timer() events every NewTimerRate seconds.
00745	native(280) final function SetTimer( float NewTimerRate, bool bLoop );
00746	
00747	//=============================================================================
00748	// Sound functions.
00749	
00750	// Play a sound effect.
00751	native(264) final function PlaySound
00752	(
00753		sound				Sound,
00754		optional ESoundSlot Slot,
00755		optional float		Volume,
00756		optional bool		bNoOverride,
00757		optional float		Radius,
00758		optional float		Pitch
00759	);
00760	
00761	// play a sound effect, but don't propagate to a remote owner
00762	// (he is playing the sound clientside
00763	native simulated final function PlayOwnedSound
00764	(
00765		sound				Sound,
00766		optional ESoundSlot Slot,
00767		optional float		Volume,
00768		optional bool		bNoOverride,
00769		optional float		Radius,
00770		optional float		Pitch
00771	);
00772	
00773	native simulated event DemoPlaySound
00774	(
00775		sound				Sound,
00776		optional ESoundSlot Slot,
00777		optional float		Volume,
00778		optional bool		bNoOverride,
00779		optional float		Radius,
00780		optional float		Pitch
00781	);
00782	
00783	// Get a sound duration.
00784	native final function float GetSoundDuration( sound Sound );
00785	
00786	//=============================================================================
00787	// AI functions.
00788	
00789	//
00790	// Inform other creatures that you've made a noise
00791	// they might hear (they are sent a HearNoise message)
00792	// Senders of MakeNoise should have an instigator if they are not pawns.
00793	//
00794	native(512) final function MakeNoise( float Loudness );
00795	
00796	//
00797	// PlayerCanSeeMe returns true if some player has a line of sight to 
00798	// actor's location.
00799	//
00800	native(532) final function bool PlayerCanSeeMe();
00801	
00802	//=============================================================================
00803	// Regular engine functions.
00804	
00805	// Teleportation.
00806	event bool PreTeleport( Teleporter InTeleporter );
00807	event PostTeleport( Teleporter OutTeleporter );
00808	
00809	// Level state.
00810	event BeginPlay();
00811	
00812	//========================================================================
00813	// Disk access.
00814	
00815	// Find files.
00816	native(539) final function string GetMapName( string NameEnding, string MapName, int Dir );
00817	native(545) final function GetNextSkin( string Prefix, string CurrentSkin, int Dir, out string SkinName, out string SkinDesc );
00818	native(547) final function string GetURLMap();
00819	native final function string GetNextInt( string ClassName, int Num );
00820	native final function GetNextIntDesc( string ClassName, int Num, out string Entry, out string Description );
00821	native final function bool GetCacheEntry( int Num, out string GUID, out string Filename );
00822	native final function bool MoveCacheEntry( string GUID, optional string NewFilename );  
00823	
00824	
00825	//=============================================================================
00826	// Iterator functions.
00827	
00828	// Iterator functions for dealing with sets of actors.
00829	native(304) final iterator function AllActors     ( class<actor> BaseClass, out actor Actor, optional name MatchTag );
00830	native(305) final iterator function ChildActors   ( class<actor> BaseClass, out actor Actor );
00831	native(306) final iterator function BasedActors   ( class<actor> BaseClass, out actor Actor );
00832	native(307) final iterator function TouchingActors( class<actor> BaseClass, out actor Actor );
00833	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 );
00834	native(310) final iterator function RadiusActors  ( class<actor> BaseClass, out actor Actor, float Radius, optional vector Loc );
00835	native(311) final iterator function VisibleActors ( class<actor> BaseClass, out actor Actor, optional float Radius, optional vector Loc );
00836	native(312) final iterator function VisibleCollidingActors ( class<actor> BaseClass, out actor Actor, optional float Radius, optional vector Loc, optional bool bIgnoreHidden );
00837	
00838	//=============================================================================
00839	// Color operators
00840	native(549) static final operator(20)  color -     ( color A, color B );
00841	native(550) static final operator(16) color *     ( float A, color B );
00842	native(551) static final operator(20) color +     ( color A, color B );
00843	native(552) static final operator(16) color *     ( color A, float B );
00844	
00845	//=============================================================================
00846	// Scripted Actor functions.
00847	
00848	// draw on canvas before flash and fog are applied (used for drawing weapons)
00849	event RenderOverlays( canvas Canvas );
00850	
00851	//
00852	// Called immediately before gameplay begins.
00853	//
00854	event PreBeginPlay()
00855	{
00856		// Handle autodestruction if desired.
00857		if( !bGameRelevant && (Level.NetMode != NM_Client) && !Level.Game.IsRelevant(Self) )
00858			Destroy();
00859	}
00860	
00861	//
00862	// Broadcast a message to all players.
00863	//
00864	event BroadcastMessage( coerce string Msg, optional bool bBeep, optional name Type )
00865	{
00866		local Pawn P;
00867	
00868		if (Type == '')
00869			Type = 'Event';
00870	
00871		if ( Level.Game.AllowsBroadcast(self, Len(Msg)) )
00872			for( P=Level.PawnList; P!=None; P=P.nextPawn )
00873				if( P.bIsPlayer || P.IsA('MessagingSpectator') )
00874				{
00875					if ( (Level.Game != None) && (Level.Game.MessageMutator != None) )
00876					{
00877						if ( Level.Game.MessageMutator.MutatorBroadcastMessage(Self, P, Msg, bBeep, Type) )
00878							P.ClientMessage( Msg, Type, bBeep );
00879					} else
00880						P.ClientMessage( Msg, Type, bBeep );
00881				}
00882	}
00883	
00884	//
00885	// Broadcast a localized message to all players.
00886	// Most message deal with 0 to 2 related PRIs.
00887	// The LocalMessage class defines how the PRI's and optional actor are used.
00888	//
00889	event BroadcastLocalizedMessage( class<LocalMessage> Message, optional int Switch, optional PlayerReplicationInfo RelatedPRI_1, optional PlayerReplicationInfo RelatedPRI_2, optional Object OptionalObject )
00890	{
00891		local Pawn P;
00892	
00893		for ( P=Level.PawnList; P != None; P=P.nextPawn )
00894			if ( P.bIsPlayer || P.IsA('MessagingSpectator') )
00895			{
00896				if ( (Level.Game != None) && (Level.Game.MessageMutator != None) )
00897				{
00898					if ( Level.Game.MessageMutator.MutatorBroadcastLocalizedMessage(Self, P, Message, Switch, RelatedPRI_1, RelatedPRI_2, OptionalObject) )
00899						P.ReceiveLocalizedMessage( Message, Switch, RelatedPRI_1, RelatedPRI_2, OptionalObject );
00900				} else
00901					P.ReceiveLocalizedMessage( Message, Switch, RelatedPRI_1, RelatedPRI_2, OptionalObject );
00902			}
00903	}
00904	
00905	//
00906	// Called immediately after gameplay begins.
00907	//
00908	event PostBeginPlay();
00909	
00910	//
00911	// Called after PostBeginPlay.
00912	//
00913	simulated event SetInitialState()
00914	{
00915		bScriptInitialized = true;
00916		if( InitialState!='' )
00917			GotoState( InitialState );
00918		else
00919			GotoState( 'Auto' );
00920	}
00921	
00922	// called after PostBeginPlay on net client
00923	simulated event PostNetBeginPlay();
00924	
00925	//
00926	// Hurt actors within the radius.
00927	//
00928	final function HurtRadius( float DamageAmount, float DamageRadius, name DamageName, float Momentum, vector HitLocation )
00929	{
00930		local actor Victims;
00931		local float damageScale, dist;
00932		local vector dir;
00933		
00934		if( bHurtEntry )
00935			return;
00936	
00937		bHurtEntry = true;
00938		foreach VisibleCollidingActors( class 'Actor', Victims, DamageRadius, HitLocation )
00939		{
00940			if( Victims != self )
00941			{
00942				dir = Victims.Location - HitLocation;
00943				dist = FMax(1,VSize(dir));
00944				dir = dir/dist; 
00945				damageScale = 1 - FMax(0,(dist - Victims.CollisionRadius)/DamageRadius);
00946				Victims.TakeDamage
00947				(
00948					damageScale * DamageAmount,
00949					Instigator, 
00950					Victims.Location - 0.5 * (Victims.CollisionHeight + Victims.CollisionRadius) * dir,
00951					(damageScale * Momentum * dir),
00952					DamageName
00953				);
00954			} 
00955		}
00956		bHurtEntry = false;
00957	}
00958	
00959	//
00960	// Called when carried onto a new level, before AcceptInventory.
00961	//
00962	event TravelPreAccept();
00963	
00964	//
00965	// Called when carried into a new level, after AcceptInventory.
00966	//
00967	event TravelPostAccept();
00968	
00969	//
00970	// Called when a scripted texture needs rendering
00971	//
00972	event RenderTexture(ScriptedTexture Tex);
00973	
00974	//
00975	// Called by PlayerPawn when this actor becomes its ViewTarget.
00976	//
00977	function BecomeViewTarget();
00978	
00979	//
00980	// Returns the string representation of the name of an object without the package
00981	// prefixes.
00982	//
00983	function String GetItemName( string FullName )
00984	{
00985		local int pos;
00986	
00987		pos = InStr(FullName, ".");
00988		While ( pos != -1 )
00989		{
00990			FullName = Right(FullName, Len(FullName) - pos - 1);
00991			pos = InStr(FullName, ".");
00992		}
00993	
00994		return FullName;
00995	}
00996	
00997	//
00998	// Returns the human readable string representation of an object.
00999	//
01000	
01001	function String GetHumanName()
01002	{
01003		return GetItemName(string(class));
01004	}
01005	
01006	// Set the display properties of an actor.  By setting them through this function, it allows
01007	// the actor to modify other components (such as a Pawn's weapon) or to adjust the result
01008	// based on other factors (such as a Pawn's other inventory wanting to affect the result)
01009	function SetDisplayProperties(ERenderStyle NewStyle, texture NewTexture, bool bLighting, bool bEnviroMap )
01010	{
01011		Style = NewStyle;
01012		texture = NewTexture;
01013		bUnlit = bLighting;
01014		bMeshEnviromap = bEnviromap;
01015	}
01016	
01017	function SetDefaultDisplayProperties()
01018	{
01019		Style = Default.Style;
01020		texture = Default.Texture;
01021		bUnlit = Default.bUnlit;
01022		bMeshEnviromap = Default.bMeshEnviromap;
01023	}
01024	
01025	defaultproperties
01026	{
01027	     Role=ROLE_Authority
01028	     RemoteRole=ROLE_DumbProxy
01029	     LODBias=1.000000
01030	     OddsOfAppearing=1.000000
01031	     bDifficulty0=True
01032	     bDifficulty1=True
01033	     bDifficulty2=True
01034	     bDifficulty3=True
01035	     bSinglePlayer=True
01036	     bNet=True
01037	     bNetSpecial=True
01038	     DrawType=DT_Sprite
01039	     Style=STY_Normal
01040	     Texture=Texture'Engine.S_Actor'
01041	     DrawScale=1.000000
01042	     ScaleGlow=1.000000
01043	     Fatness=128
01044	     SpriteProjForward=32.000000
01045	     bMovable=True
01046	     SoundRadius=32
01047	     SoundVolume=128
01048	     SoundPitch=64
01049	     TransientSoundVolume=1.000000
01050	     CollisionRadius=22.000000
01051	     CollisionHeight=22.000000
01052	     bJustTeleported=True
01053	     Mass=100.000000
01054	     NetPriority=1.000000
01055	     NetUpdateFrequency=100.000000
01056	}

End Source Code