## Engine
Class Actor

source: C:\XIII\Engine\Classes\Actor.uc

    Core.Object
       |
       +--Engine.Actor

Direct Known Subclasses:Brush, Controller, DamageType, Decal, Decoration, Effects, Emitter, HUD, Info, Inventory, InventoryAttachment, Keypoint, Light, Mover, NavigationPoint, Note, Pawn, Pickup, Projectile, Projector, SMActorRotating, StaticMeshActor, Trail, Triggers, VehiclePart, CineHook, XIIIQuickSLManager, Spads01SpotLight, SMAttached

class Actor
extends Core.Object

    //=============================================================================
    // Actor: The base class of all actors.
    // Actor is the base class of all gameplay objects.
    // A large number of properties, behaviors and interfaces are implemented in Actor, including:
    //
    // -	Display
    // -	Animation
    // -	Physics and world interaction
    // -	Making sounds
    // -	Networking properties
    // -	Actor creation and destruction
    // -	Triggering and timers
    // -	Actor iterator functions
    // -	Message broadcasting
    //
    // This is a built-in Unreal class and it shouldn't be modified.
    //=============================================================================

Variables
`array` | `Attached` array of actors attached to this actor.
`array` | `Attached` array of actors attached to this actor.
`name` | `AttachmentBone` name of bone to which actor is attached (if attached to center of base, =='')
`Actor` | `Base` Actor we're standing on.
`model` | `Brush` Brush if DrawType=DT_Brush.
`vector` | `ColLocation` Actor's old location one move ago. Only for debugging
`int` | `CollisionInfo` Next actor in just-deleted chain.
`Actor` | `Deleted` Next actor in just-deleted chain.
`Actor` | `Deleted` Next actor in just-deleted chain.
`enum` | `ESNDMaterial` Brush if DrawType=DT_Brush.
`Pawn` | `Instigator` Pawn responsible for damage caused by this actor.
`Inventory` | `Inventory` Inventory chain.
`byte` | `IterationCategory` used by ActorInIterationCategory() iterator, to iterate actors in a given range of IterationCategory
`float` | `LatentFloat` Internal latent function use.
`array` | `Leaves` BSP leaves this actor is in.
`array` | `Leaves` BSP leaves this actor is in.
`LevelInfo` | `Level` Level this actor is on.
`MeshInstance` | `MeshInstance` Mesh instance.
`class` | `MessageClass` Internal/path building
`float` | `NetPriority` Higher priorities means update it more frequently.
`int` | `NetTag` Everything but the owner can see this actor.
`float` | `NetUpdateFrequency` How many seconds between net updates.
`Actor` | `Owner` Owner actor.
`PhysicsVolume` | `PhysicsVolume` physics volume this actor is currently in
`array` | `Projectors` Projected textures on this actor
`array` | `Projectors` Projected textures on this actor
`PointRegion` | `Region` Region this actor is in.
`vector` | `RelativeLocation` location relative to base/bone (valid if base exists)
`rotator` | `RelativeRotation` rotation relative to base/bone (valid if base exists)
`ENetRole` | `RemoteRole` Everything but the owner can see this actor.
`ENetRole` | `Role` Everything but the owner can see this actor.
`AnimRep` | `SimAnim` only replicated if bReplicateAnimations is true
`StaticMeshInstance` | `StaticMeshInstance` Contains per-instance static mesh data, like static lighting data.
`array` | `Touching` List of touching actors.
`array` | `Touching` List of touching actors.
`float` | `TweenRate` Tween-into rate.
`Level` | `XLevel` Level object.
`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` | `bDemoRecording` True we are currently demo recording
`bool` | `bEdLocked` Locked in editor (no movement or rotation).
`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` | `bOwnerNoSee` Everything but the owner can see this actor.
`bool` | `bPathTemp` Internal/path building
`bool` | `bSelected` Selected in UnrealEd.
`bool` | `bTempEditor` Internal UnrealEd.

Function Summary
`void` | `ActorInIterationCategory(byte MinCategory, byte MaxCategory, out actor)`
    /* ActorInInterationCategory() returns actors that have an IterationCategory between MinCategory and MaxCategory, included.
    */
`void` | `AnimBlendParams(int Stage, optional float, optional float, optional float, optional name)`
`void` | `AnimBlendToAlpha(int Stage, float TargetAlpha, float TimeInterval)`
`bool` | `AnimIsInGroup(int Channel, name GroupName)`
`bool` | `AttachToBone(Actor Attachment, name BoneName)`
`void` | `AutonomousPhysics(float DeltaSeconds)`
`void` | `BecomeViewTarget()`
    // Called by PlayerController when this actor becomes its ViewTarget.
    //
`bool` | `CanSplash()`
`bool` | `CheckWasVisible(float time)`
`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.
    //
`bool` | `DetachFromBone(Actor Attachment)`
`simulated` | `DisplayDebug(Canvas Canvas, out float, out float)`
    /* DisplayDebug()
    list important actor variable on canvas.  HUD will call DisplayDebug() on the current ViewTarget when
    the ShowDebug exec is used
    */
`simulated` | `DumpContent(float TimeStamp, int tabulation)`
`void` | `EnableChannelNotify(int Channel, int Switch)`
    // Animation notifications.
`void` | `Error(string S)`
    // Handle an error and kill this one actor.
`void` | `FinishAnim(optional int)`
`void` | `FinishInterpolation()`
    // Physics control.
`void` | `GetAnimParams(int Channel, out name, out float, out float)`
`coords` | `GetBoneCoords(name BoneName)`
`rotator` | `GetBoneRotation(name BoneName, optional int)`
`Box` | `GetBoundingBox()`
`bool` | `GetCacheEntry(int Num, out string, out string)`
`vector` | `GetCartoonLightDir()`
`String` | `GetHumanReadableName()`
    // Returns the human readable string representation of an object.
    //
    // CHANGED function name from GetHumanName()
`String` | `GetItemName(string FullName)`
    // Returns the string representation of the name of an object without the package
    // prefixes.
    //
`name` | `GetLastTraceBone()`
    // Get the last bone name, intersected during the last Trace call with the flag TRACETYPE_RequestBones.
`string` | `GetLocalString(optional int, optional PlayerReplicationInfo, optional PlayerReplicationInfo)`
    // Get localized message string associated with this actor
`string` | `GetMapName(string NameEnding, string MapName, int Dir)`
    // Find files.
`Material` | `GetMaterial(int Index)`
`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)`
`int` | `GetNotifyChannel()`
`plane` | `GetRenderBoundingSphere()`
    //=========================================================================
    // Rendering.
`vector` | `GetRootLocation()`
`vector` | `GetRootLocationDelta()`
`rotator` | `GetRootRotation()`
`rotator` | `GetRootRotationDelta()`
`string` | `GetURLMap()`
`bool` | `HasAnim(name Sequence)`
`Actor` | `IntersectWaterPlane(vector Start, vector End, out vector)`
`bool` | `IsAnimating(optional int)`
`bool` | `IsInPain()`
`bool` | `IsInVolume(Volume aVolume)`
`bool` | `IsTweening(int Channel)`
`void` | `KillAllSounds()`
    //Kill all sounds
`void` | `LinkSkelAnim(MeshAnimation Anim)`
    // Skeletal animation.
`void` | `LockRootMotion(int Lock)`
`void` | `LoopAnim(name Sequence, optional float, optional float, optional int)`
`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.
    */
`void` | `MatchStarting()`
`bool` | `Move(vector Delta)`
    // Movement.
`bool` | `MoveCacheEntry(string GUID, optional string)`
`bool` | `MoveSmooth(vector Delta)`
`bool` | `NearSpot(vector Spot)`
    // NearSpot() returns true is spot is within collision cylinder
    // FIXME - make intrinsic
`float` | `PSX2BootstrapDemoGetGamePlayTimeout()`
    // Gameplay Timeout
`void` | `PauseAllSounds()`
    //Pause all sounds
`void` | `PauseMusic()`
    //Pause music and streamed ambient sounds
`void` | `PlayAnim(name Sequence, optional float, optional float, optional int)`
    // Animation functions.
`void` | `PlayMusic(sound Sound, optional int, optional int, optional int, optional int, optional int)`
    // Play a music
`void` | `PlayRolloffSound(sound Sound, Actor RolloffActor, optional int, optional int, optional int, optional int, optional int)`
    // Play a sound
`void` | `PlaySndDeathOno(deathono Sound, int CodeMesh, int Timbre)`
    //Play deathono
`void` | `PlaySndPNJOno(sndono Sound, int CodeMesh, int Timbre)`
    //Play sndono
`void` | `PlaySndPNJStep(sndpnjstep Sound, float Speed, int SndStepCategory, bool bSilent)`
    // Play footstepsounds
`void` | `PlaySndXIIIStep(sndxiiistep Sound, float Speed, int EndStep, bool bSilent)`
`void` | `PlaySound(sound Sound, optional int, optional int, optional int, optional int, optional int)`
    // Play a sound effect.
`void` | `PlayStrAmb(sound Sound)`
    // Play a streamed ambient sound
`bool` | `PlayStrVoice(string SoundName, optional actor)`
    //native(355) static final function bool CanHearFootstepSound
    //(//to know if footsteps can be heard...
    //);
    //Play a streamed voice
`void` | `PlayVoice(sound Sound, optional int, optional int, optional int, optional int, optional int)`
    // Play a voice (wave or handler)
`bool` | `PlayerCanSeeMe()`
    /* PlayerCanSeeMe returns true if any player (server) or the local player (standalone
    or client) has a line of sight to actor's location.
    */
`bool` | `PlusDir(int A, int B)`
    // returns true if shortest rotation direction is in the positive (clockwise) direction
    // from A to B
`void` | `RecomputeBoundingVolume(bool Static)`
`void` | `RefreshDisplaying()`
`void` | `RefreshLighting()`
`void` | `RenderOverlays(Canvas Canvas)`
    /* RenderOverlays()
    called by player's hud to request drawing of actor specific overlays onto canvas
    */
`void` | `ReplaceATextureByAnOther(Texture SrcTexture, Texture DestTexture)`
`void` | `ReplaceText(out string, string Replace, string With)`
`void` | `Reset()`
    /* Reset()
    reset actor to initial state - used when restarting level without reloading.
    */
`void` | `ResetInputs()`
`void` | `ResumeAllSounds()`
    //Resume all sounds
`void` | `ResumeMusic()`
    //Resume music and streamed ambient sounds
`bool` | `SaveAtCheckpoint(string TeleporterName, string ContentDescription)`
    //=============================================================================
`void` | `SetBase(Actor NewBase, optional vector)`
    // Relations.
`void` | `SetBoneDirection(name BoneName, rotator BoneTurn, optional vector, optional float)`
`void` | `SetBoneLocation(name BoneName, optional vector, optional float)`
`void` | `SetBoneRotation(name BoneName, optional rotator, optional int, optional float)`
`void` | `SetBoneScale(int Slot, optional float, optional name)`
`void` | `SetBoneScalePerAxis(int Slot, optional float, optional float, optional float, optional name)`
`void` | `SetCollision(optional bool, optional bool, optional bool)`
    // Collision.
`bool` | `SetCollisionSize(float NewRadius, float NewHeight)`
`void` | `SetDefaultDisplayProperties()`
`void` | `SetDisplayProperties(ERenderStyle NewStyle, Material NewTexture, bool bLighting)`
    // 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)
`void` | `SetDrawScale(float NewScale)`
`void` | `SetDrawScale3D(vector NewScale3D)`
`void` | `SetDrawType(EDrawType NewDrawType)`
`bool` | `SetLocation(vector NewLocation)`
`void` | `SetMusicSliderPos(int MusicVolume)`
`void` | `SetOwner(Actor NewOwner)`
`void` | `SetPhysics(EPhysics newPhysics)`
`bool` | `SetRelativeLocation(vector NewLocation)`
`bool` | `SetRelativeRotation(rotator NewRotation)`
    // SetRelativeRotation() sets the rotation relative to the actor's base
`bool` | `SetRotation(rotator NewRotation)`
`void` | `SetSoundMode(int SoundMode)`
    //=============================================================================
    // Sound functions.
    //MC for HarmonX integration
`void` | `SetTimer(float NewTimerRate, bool bLoop)`
    // Causes Timer() events every NewTimerRate seconds.
`void` | `SetTimer2(float NewTimerRate, bool bLoop)`
    // Causes Timer2() events every NewTimerRate seconds.
`void` | `SetVolume(float volume)`
`void` | `Sleep(float Seconds)`
    // Latent functions.
`simulated` | `StartInterpolation()`
    /* StartInterpolation()
    when this function is called, the actor will start moving along an interpolation path
    beginning at Dest
    */
`void` | `StopActorSounds()`
    // Stop all actor sounds
`void` | `StopAllSounds()`
    // Stop all sounds
`void` | `StopAnimating()`
`void` | `StopMusic()`
    // Stop musics and streamed ambient sounds
`void` | `StopSound(sound Sound)`
    // Stop a sound effect.
`void` | `StopVoice()`
    // Stop voices
`bool` | `TouchingActor(Actor A)`
`void` | `TweenAnim(name Sequence, float Time, optional int)`
`void` | `UntriggerEvent(Name EventName, Actor Other, Pawn EventInstigator)`
    /*
    Untrigger an event
    */

Source Code

    00001	//=============================================================================
    00002	// Actor: The base class of all actors.
    00003	// Actor is the base class of all gameplay objects.
    00004	// A large number of properties, behaviors and interfaces are implemented in Actor, including:
    00005	//
    00006	// -	Display
    00007	// -	Animation
    00008	// -	Physics and world interaction
    00009	// -	Making sounds
    00010	// -	Networking properties
    00011	// -	Actor creation and destruction
    00012	// -	Triggering and timers
    00013	// -	Actor iterator functions
    00014	// -	Message broadcasting
    00015	//
    00016	// This is a built-in Unreal class and it shouldn't be modified.
    00017	//=============================================================================
    00018	class Actor extends Object
    00019		abstract
    00020		native
    00021		nativereplication;
    00022
    00023	// Imported data (during full rebuild).
    00024	#exec Texture Import File=Textures\S_Actor.pcx Name=S_Actor Mips=Off MASKED=1 COMPRESS=DXT1
    00025
    00026	// Be very carefull if you add variable just before or after LastRenderTime.
    00027	// The engine assume that bDecor1Light folow LastRenderTime four byte next, and that LastRenderTime is four byte
    00028	// alligned.
    00029
    00030	var			float			LastRenderTime;	// last time this actor was rendered.
    00031
    00032	var(Lighting)		bool	     bDecor1Light;	 // Light decor 1
    00033	var(Lighting)		bool	     bDecor2Light;	 // Light decor 2
    00034	var(Lighting)		bool	     bDecor3Light;	 // Light decor 3
    00035	var(Lighting)		bool	     bActorLight;	 // Light actor
    00036	var(Lighting)		bool	     bDecor4Light;	 // Light decor 4
    00037	var(Lighting)		bool	     bDecor5Light;	 // Light decor 5
    00038	var(Lighting)		bool	     bDecor6Light;	 // Light decor 6
    00039	var(Lighting)		bool	     bDecor7Light;	 // Light decor 7
    00040	var(Lighting)		bool	     bDecor8Light;	 // Light decor 8
    00041	var(Lighting)		bool	     bDecor9Light;	 // Light decor 9
    00042	var(Lighting)		bool	     bDecor10Light;	 // Light decor 10
    00043
    00044	// Flags.
    00045	var			  const bool	bStatic;			// Does not move or change over time. Don't let L.D.s change this - screws up net play
    00046	var(Advanced)		bool	bHidden;			// Is hidden during gameplay.
    00047	var(Advanced) const bool	bNoDelete;			// Cannot be deleted during play.
    00048	var					bool	bAnimFinished;		// Unlooped animation sequence has finished.
    00049	var					bool	bAnimByOwner;		// Animation dictated by owner.
    00050	var			  const	bool	bDeleteMe;			// About to be deleted.
    00051	var			  const bool	bTicked;			// Actor has been updated.
    00052	var					bool	bDynamicLight;		// Temporarily treat this as a dynamic light.
    00053	var					bool	bTimerLoop;			// Timer loops (else is one-shot).
    00054	var					bool	bTimer2Loop;		// Timer2 loops (else is one-shot).
    00055	var(Advanced)		bool	bCanTeleport;		// This actor can be teleported.
    00056	var 				bool	bOwnerNoSee;		// Everything but the owner can see this actor.
    00057	var					bool    bOnlyOwnerSee;		// Only owner can see this actor.
    00058	var			  const	bool	bAlwaysTick;		// Update even when players-only.
    00059	var(Advanced)		bool    bHighDetail;		// Only show up on high-detail.
    00060	var(Advanced)		bool	bStasis;			// In StandAlone games, turn off if not in a recently rendered zone turned off if  bStasis  and physics = PHYS_None or PHYS_Rotating.
    00061	var					bool	bTrailerSameRotation; // If PHYS_Trailer and true, have same rotation as owner.
    00062	var					bool	bTrailerPrePivot;	// If PHYS_Trailer and true, offset from owner by PrePivot.
    00063	var					bool	bClientAnim;		// Don't replicate any animations - animation done client-side
    00064	var(Collision)		bool	bWorldGeometry;		// Collision and Physics treats this actor as world geometry
    00065	var(Display)		bool    bAcceptsProjectors;	// Projectors can project onto this actor
    00066	var					bool	bOrientOnSlope;		// when landing, orient base on slope of floor
    00067	var(Display)		Bool	bEaseInteract;		// Used to make object easily interacted with (even if not just in the crosshair, rather interactive if on screen)
    00068	var(Display)		Bool	bInteractive;		// Can be interactive (used to speed up/debug the iteraction icons/functions)
    00069	//var					bool    bWasSNFiltered;      // Mainly for debugging - the way this actor was inserted into Octree.
    00070
    00071	// Networking flags
    00072	var			  const	bool	bNetTemporary;				// Tear-off simulation in network play.
    00073	var			  const	bool	bNetOptional;				// Actor should only be replicated if bandwidth available.
    00074	var			  const	bool	bNetDirty;					// set when any attribute is assigned a value in unrealscript, reset when the actor is replicated
    00075	var					bool	bAlwaysRelevant;			// Always relevant for network.
    00076	var					bool	bReplicateInstigator;		// Replicate instigator to client (used by bNetTemporary projectiles).
    00077	var					bool	bReplicateMovement;			// if true, replicate movement/location related properties
    00078	var					bool	bSkipActorPropertyReplication; // if true, don't replicate actor class variables for this actor
    00079	var					bool	bUpdateSimulatedPosition;	// if true, update velocity/location after initialization for simulated proxies
    00080	var					bool	bTearOff;					// if true, this actor is no longer replicated to new clients, and
    00081															// is "torn off" (becomes a ROLE_Authority) on clients to which it was being replicated.
    00082	var					bool	bOnlyDirtyReplication;		// if true, only replicate actor if bNetDirty is true - useful if no C++ changed attributes (such as physics)
    00083															// bOnlyDirtyReplication only used with bAlwaysRelevant actors
    00084	var					bool	bReplicateAnimations;		// Should replicate SimAnim
    00085	var(Advanced)		bool    bIgnoreVignetteAlpha;       // Ignore alpha filter for screen shot.
    00086	var(Advanced)		bool    bDelayDisplay;				// Draw this object without Z buffer just before the hud.
    00087	var(Advanced)		bool	bSpecialDelayFov;   		// If bDelayDisplay is also True, use a fov equal to 50.
    00088
    00089	// Display.
    00090	var(Display)		bool      bUnlit;					// Lights don't affect actor.
    00091	var(Display)		bool      bNoSmooth;				// Don't smooth actor's texture.
    00092	var(Display)		bool      bShadowCast;			// Casts static shadows.
    00093	var(Display)		bool		bStaticLighting;		// Uses raytraced lighting.
    00094	var(Display)		bool		bNoAmbientLight;		// Don't use the ambient light.
    00095	var(Display)		bool		bNoImpact;				// Don't project impact on this actor.
    00096	var(Display)		bool		bIgnoreFog;				// Ignore fog, for sprite only.
    00097	var(Display)		bool		bForceInUniverse;		// Force the actor to be in the universe zone.
    00098	var(Display)		bool      bIgnoreDynLight;	    // Ignore dynamic lighting.
    00099
    00100	// Advanced.
    00101	var					bool		bHurtEntry;				// keep HurtRadius from being reentrant
    00102	var(Advanced)		bool		bGameRelevant;			// Always relevant for game
    00103	var(Advanced)		bool		bCollideWhenPlacing;	// This actor collides with the world when placing.
    00104	var					bool		bTravel;				// Actor is capable of travelling among servers.
    00105	var(Advanced)		bool		bMovable;				// Actor can be moved.
    00106	// XIIIUNUSED var(Events)			bool		bLocalGameEvent;		// this event should be saved as a local saved game event
    00107	// XIIIUNUSED var(Events)			bool		bTravelGameEvent;		// this event should travel across levels as a saved game event
    00108	var					bool		bDestroyInPainVolume;	// destroy this actor if it enters a pain volume
    00109	var					bool		bPendingDelete;			// set when actor is about to be deleted (since endstate and other functions called
    00110
    00111	var(Sound)			bool			bHasRollOff;				// Disable rolloff if false.
    00112	var(Sound)			bool			bHasPosition;				// Actor has no position if false.
    00113	var(Sound)			bool			bUnderwater;
    00114	var					bool bLeftFoot;
    00115													// during deletion process before bDeleteMe is set).
    00116	// Collision flags.
    00117	var(Collision) const bool bCollideActors;		// Collides with other actors.
    00118	var(Collision)		bool       bCollideWorld;		// Collides with the world.
    00119	var(Collision)		bool       bBlockActors;			// Blocks other nonplayer actors.
    00120	var(Collision)		bool       bBlockPlayers;		// Blocks other player actors.
    00121	var(Collision)		bool       bProjTarget;			// Projectiles should potentially target this actor.
    00122	var(Collision)		bool	   bBlockZeroExtentTraces; // block zero extent actors/traces
    00123	var(Collision)		bool	   bBlockNonZeroExtentTraces;	// block non-zero extent actors/traces
    00124	var(Collision)		bool	   bUseCylinderCollision;// Force axis aligned cylinder collision (useful for static mesh pickups, etc.)
    00125
    00126	var(Collision)		bool	   bCanSeeThrough;                       // if true, it is possible to see through the actor (like a window)
    00127	var(Collision)		bool	   bCanShootThroughWithRayCastingWeapon; // if true, it is possible to shoot through the actor with a ray casting weapon
    00128	var(Collision)		bool	   bCanShootThroughWithProjectileWeapon; // if true, it is possible to shoot through the actor with a projectile weapon
    00129
    00130	// Lighting.
    00131	var(Display)		bool	     bActorShadows; // Light casts actor shadows.
    00132	var(Lighting)		bool	     bIgnoredByShadows; // Light is ignored by  shadows.
    00133	var(Lighting)		bool	     bLensFlare;    // Whether to use zone lens flare.
    00134	var(Lighting)		bool	     bLightOwnZone; // The light affect only it's own zone.
    00135	var(Display)		bool	     bUseOnlyPivotAmbient;
    00136	var(Display)		bool		 bVisibleOnlyOwnZone;	// The actor is visible only from it's own zone.
    00137	var					bool		 bLightChanged;	// Recalculate this light's lighting now.
    00138
    00139	//-----------------------------------------------------------------------------
    00140	// Physics.
    00141
    00142	// Options.
    00143	var(Movement)		bool        bBounce;           // Bounces when hits ground fast.
    00144	var(Movement)		bool		  bFixedRotationDir; // Fixed direction of rotation.
    00145	var(Movement)		bool		  bRotateToDesired;  // Rotate to DesiredRotation.
    00146	var					bool        bInterpolating;    // Performing interpolating.
    00147	var			  const bool  bJustTeleported;   // Used by engine physics - not valid for scripts.
    00148
    00149	// Priority Parameters
    00150	// Actor's current physics mode.
    00151	var(Movement) const enum EPhysics
    00152	{
    00153		PHYS_None,
    00154		PHYS_Walking,
    00155		PHYS_Falling,
    00156		PHYS_Swimming,
    00157		PHYS_Flying,
    00158		PHYS_Rotating,
    00159		PHYS_Projectile,
    00160		PHYS_Interpolating,
    00161		PHYS_MovingBrush,
    00162		PHYS_Spider,
    00163		PHYS_Trailer,
    00164		PHYS_Ladder,
    00165		PHYS_RootMotion,
    00166	} Physics;
    00167
    00168	// Collision category
    00169	enum EColCategory
    00170	{
    00171		ColType_User,
    00172		ColType_NoCol,
    00173		ColType_StaticSolid,
    00174		ColType_StaticGlass,
    00175		ColType_StaticGrid,
    00176		ColType_StaticSolidOnlyWeapon,
    00177		ColType_MoverSolid,
    00178		ColType_MoverGlass,
    00179		ColType_MoverGrid,
    00180		ColType_Pawn,
    00181		ColType_Pickup,
    00182		ColType_PickupArmeImpro
    00183	};
    00184
    00185	// Net variables.
    00186	enum ENetRole
    00187	{
    00188		ROLE_None,              // No role at all.
    00189		ROLE_DumbProxy,			// Dumb proxy of this actor.
    00190		ROLE_SimulatedProxy,	// Locally simulated proxy of this actor.
    00191		ROLE_AutonomousProxy,	// Locally autonomous proxy of this actor.
    00192		ROLE_Authority,			// Authoritative control over the actor.
    00193	};
    00194	var ENetRole Role;
    00195	var ENetRole RemoteRole;
    00196
    00197	// Drawing effect.
    00198	var(Display) const enum EDrawType
    00199	{
    00200		DT_None,
    00201		DT_Sprite,
    00202		DT_Mesh,
    00203		DT_Brush,
    00204		DT_RopeSprite,
    00205		DT_VerticalSprite,
    00206		DT_Terraform,
    00207		DT_SpriteAnimOnce,
    00208		DT_StaticMesh,
    00209		DT_DrawType,
    00210		DT_Particle,
    00211		DT_AntiPortal,
    00212		DT_Trail
    00213	} DrawType;
    00214
    00215	var const transient int		NetTag;
    00216	var			float			LastRenderDist;	// last distance this actor was rendered.
    00217	var(Events) name			Tag;			// Actor's tag name.
    00218
    00219	// Execution and timer variables.
    00220	var				float       TimerRate;		// Timer event, 0=no timer.
    00221	var		const	float       TimerCounter;	// Counts up until it reaches TimerRate.
    00222	var				float       Timer2Rate;     // Same for Timer 2
    00223	var		const	float       Timer2Counter;
    00224	var(Advanced)	float		LifeSpan;		// How old the object lives before dying, 0=forever.
    00225
    00226	// Animation variables. #SKEL: Left in for this build only to wrap up any backward compatibility - but not used. - Erik
    00227	var(Display) name         AnimSequence;  // Animation sequence we're playing.
    00228	var(Display) float        AnimFrame;     // Current animation frame, 0.0 to 1.0.
    00229	var(Display) float        AnimRate;      // Animation rate in frames per second, 0=none, negative=velocity scaled.
    00230	var          float        TweenRate;     // Tween-into rate.
    00231
    00232	var transient MeshInstance MeshInstance;	// Mesh instance.
    00233
    00234	// Owner.
    00235	var         const Actor   Owner;			// Owner actor.
    00236	var(Object) name InitialState;
    00237	var(Object) name Group;
    00238
    00239	//-----------------------------------------------------------------------------
    00240	// Structures.
    00241
    00242	// Identifies a unique convex volume in the world.
    00243	struct PointRegion
    00244	{
    00245
var zoneinfo Zone; // Zone. 00246 var int iLeaf; // Bsp leaf. 00247 var byte ZoneNumber; // Zone number. 00248 }; 00249 00250 //----------------------------------------------------------------------------- 00251 // Major actor properties. 00252 00253 // Scriptable. 00254 var const LevelInfo Level; // Level this actor is on. 00255 var transient const Level XLevel; // Level object. 00256 var(Events) name Event; // The event this actor causes. 00257 var Pawn Instigator; // Pawn responsible for damage caused by this actor. 00258 var(Sound) sound AmbientSound; // Ambient sound effect. 00259 var Inventory Inventory; // Inventory chain. 00260 var const Actor Base; // Actor we're standing on. 00261 var const PointRegion Region; // Region this actor is in. 00262 var transient array<int> Leaves; // BSP leaves this actor is in. 00263 00264 // Internal. 00265 var const float LatentFloat; // Internal latent function use. 00266 var transient const array<Actor> Touching; // List of touching actors. 00267 00268 //var const transient array<int> OctreeNodes;// Array of nodes of the octree Actor is currently in. Internal use only. 00269 //var const transient Box OctreeBox; // Actor bounding box cached when added to Octree. Internal use only. 00270 //var const transient vector OctreeBoxCenter; 00271 //var const transient vector OctreeBoxRadii; 00272 var const actor Deleted; // Next actor in just-deleted chain. 00273 00274 // Internal tags. 00275 //var const native int CollisionTag, ActorTag; 00276 var const transient int CollisionInfo; 00277 00278 // The actor's position and rotation. 00279 var const PhysicsVolume PhysicsVolume; // physics volume this actor is currently in 00280 var(Movement) const vector Location; // Actor's location; use Move to set. 00281 var(Movement) const rotator Rotation; // Rotation. 00282 var(Movement) vector Velocity; // Velocity. 00283 var vector Acceleration; // Acceleration. 00284 00285 // Attachment related variables 00286 var(Movement) name AttachTag; 00287 var const array<Actor> Attached; // array of actors attached to this actor. 00288 var const vector RelativeLocation; // location relative to base/bone (valid if base exists) 00289 var const rotator RelativeRotation; // rotation relative to base/bone (valid if base exists) 00290 var const name AttachmentBone; // name of bone to which actor is attached (if attached to center of base, =='') 00291 00292 // Projectors 00293 struct InstanceProjectorInfo { var int a,b,c; }; // Hack to to fool C++ header generation... 00294 var const transient array<InstanceProjectorInfo> Projectors;// Projected textures on this actor 00295 00296 //----------------------------------------------------------------------------- 00297 // Display properties. 00298 00299 var(Display) Material Texture; // Sprite texture.if DrawType=DT_Sprite 00300 var(Display) mesh Mesh; // Mesh if DrawType=DT_Mesh. 00301 var(Display) StaticMesh StaticMesh; // StaticMesh if DrawType=DT_StaticMesh 00302 var StaticMeshInstance StaticMeshInstance; // Contains per-instance static mesh data, like static lighting data. 00303 var const export model Brush; // Brush if DrawType=DT_Brush. 00304 var(Display) const float DrawScale; // Scaling factor, 1.0=normal size. 00305 var(Display) const vector DrawScale3D; // Scaling vector, (1.0,1.0,1.0)=normal size. 00306 var vector PrePivot; // Offset from box center for drawing. 00307 var(Display) array<Material> Skins; // Multiple skin support - not replicated. 00308 00309 //----------------------------------------------------------------------------- 00310 // MC for HarmonX integration 00311 // Sound. 00312 // Ambient sound. 00313 var(Sound) float PanCoeff; // Coefficient to compute pan for this actor : ( 0 for no pan ) 00314 var(RollOff) float SaturationDistance; // Saturation Radius of actor sounds. 00315 var(RollOff) float StabilisationDistance; // Stabilisation Radius of actor sounds. 00316 var(RollOff) float StabilisationVolume; // Volume of actors sounds at stabilisation radius. 00317 var(RollOff) float VoicesSaturationDistance; // Saturation Radius of actor sounds for voices. 00318 var(RollOff) float VoicesStabilisationDistance; // Stabilisation Radius of actor sounds for voices. 00319 var(RollOff) float VoicesStabilisationVolume; // Volume of actors sounds at stabilisation radius for voices. 00320 00321 const SNDType_Effect = 0x00000001; 00322 const SNDType_Voice = 0x00000002; 00323 const SNDType_StrVoice = 0x00000004; 00324 const SNDType_StrAmb = 0x00000008; 00325 const SNDType_Music = 0x00000010; 00326 const SNDType_Menu = 0x00000020; 00327 const SNDType_Ryan = 0x00000040; 00328 const SNDType_MicroCanon = 0x00000080; 00329 const SNDType_UnderWater = 0x00000100; 00330 const SNDType_SFXOnly = 0x00000200; 00331 const SNDType_All = 0x00000FFF; 00332 00333 enum ESNDMusicVolume 00334 { 00335 SNDMusic_Off, 00336 SNDMusic_Light, 00337 SNDMusic_Normal 00338 }; 00339 //end MC 00340 00341 //----------------------------------------------------------------------------- 00342 // Collision. 00343 00344 // Collision size. 00345 var(Collision) const float CollisionRadius; // Radius of collision cyllinder. 00346 var(Collision) const float CollisionHeight; // Half-height cyllinder. 00347 00348 //----------------------------------------------------------------------------- 00349 // Lighting. 00350 00351 var(Display) byte AmbientGlow; // Ambient brightness, or 255=pulsing. 00352 00353 // Style for rendering sprites, meshes. 00354 var(Display) enum ERenderStyle 00355 { 00356 STY_None, 00357 STY_Normal, 00358 STY_Masked, 00359 STY_Translucent, 00360 STY_Modulated, 00361 STY_Alpha, 00362 STY_Particle 00363 } Style; 00364 00365 var enum ESNDMaterial 00366 { 00367 SND_FootStep, 00368 SND_XIIIFootStep, 00369 SND_PNJStep, 00370 SND_XIIIStep, 00371 SND_Jump, 00372 SND_XIIIJump, 00373 SND_Hit 00374 } SNDMaterial; 00375 00376 // Light modulation. 00377 var(Lighting) enum ELightType 00378 { 00379 LT_None, 00380 LT_Steady, 00381 LT_Pulse, 00382 LT_Blink, 00383 LT_Flicker, 00384 LT_Strobe, 00385 LT_BackdropLight, 00386 LT_SubtlePulse, 00387 } LightType; 00388 00389 // Spatial light effect to use. 00390 var(Lighting) enum ELightEffect 00391 { 00392 LE_None, 00393 LE_TorchWaver, 00394 LE_FireWaver, 00395 LE_WateryShimmer, 00396 LE_Searchlight, 00397 LE_SlowWave, 00398 LE_FastWave, 00399 LE_CloudCast, 00400 LE_StaticSpot, 00401 LE_Shock, 00402 LE_Disco, 00403 LE_Warp, 00404 LE_Spotlight, 00405 LE_NonIncidence, 00406 LE_Shell, 00407 LE_OmniBumpMap, 00408 LE_Interference, 00409 LE_Cylinder, 00410 LE_Rotor, 00411 LE_Unused, 00412 LE_Sunlight 00413 } LightEffect; 00414 00415 // Lighting info. 00416 var(LightColor) byte 00417 LightBrightness, 00418 LightHue, 00419 LightSaturation; 00420 00421 // Light properties. 00422 var(Lighting) byte 00423 LightRadius, 00424 LightPeriod, 00425 LightPhase, 00426 LightCone; 00427 00428 var const byte IterationCategory; // used by ActorInIterationCategory() iterator, to iterate actors in a given range of IterationCategory 00429 00430 // Lighting group. 00431 var(Display) enum ELightingGroup 00432 { 00433 LG_Decor1, 00434 LG_Decor2, 00435 LG_Decor3, 00436 LG_Actor, 00437 LG_Decor4, 00438 LG_Decor5, 00439 LG_Decor6, 00440 LG_Decor7, 00441 LG_Decor8, 00442 LG_Decor9, 00443 LG_Decor10 00444 } bSLightGroup; 00445 00446 // Collision category. 00447 var(Collision) EColCategory ColCategory; 00448 00449 // Physics properties. 00450 var(Movement) float Mass; // Mass of this actor. 00451 var(Movement) float Buoyancy; // Water buoyancy. 00452 var(Movement) rotator RotationRate; // Change in rotation per second. 00453 var(Movement) rotator DesiredRotation; // Physics will smoothly rotate actor to this rotation if bRotateToDesired. 00454 var Actor PendingTouch; // Actor touched during move which wants to add an effect after the movement completes 00455 var const vector ColLocation; // Actor's old location one move ago. Only for debugging 00456 00457 const MAXSTEPHEIGHT = 35.0; // Maximum step height walkable by pawns 00458 00459 //----------------------------------------------------------------------------- 00460 // Animation replication (can be used to replicate channel 0 anims for dumb proxies) 00461 struct AnimRep 00462 { 00463 var name AnimSequence; 00464 var bool bAnimLoop; 00465 var byte AnimRate; // note that with compression, max replicated animrate is 4.0 00466 var byte AnimFrame; 00467 var byte TweenRate; // note that with compression, max replicated tweentime is 4 seconds 00468 }; 00469 00470 var transient AnimRep SimAnim; // only replicated if bReplicateAnimations is true 00471 00472 // AnimStruct used for scripted sequences 00473 struct AnimStruct 00474 { 00475 var() name AnimSequence; 00476 var() name BoneName; 00477 var() float AnimRate; 00478 var() byte alpha; 00479 var() byte LeadIn; 00480 var() byte LeadOut; 00481 var() bool bLoopAnim; 00482 }; 00483 00484 00485 //----------------------------------------------------------------------------- 00486 // Networking. 00487 00488 // Network control. 00489 var float NetPriority; // Higher priorities means update it more frequently. 00490 var float NetUpdateFrequency; // How many seconds between net updates. 00491 00492 // Symmetric network flags, valid during replication only. 00493 var const bool bNetInitial; // Initial network update. 00494 var const bool bNetOwner; // Player owns this actor. 00495 var const bool bNetRelevant; // Actor is currently relevant. Only valid server side, only when replicating variables. 00496 var const bool bDemoRecording; // True we are currently demo recording 00497 var const bool bClientDemoRecording;// True we are currently recording a client-side demo 00498 var const bool bClientDemoNetFunc;// True if we're client-side demo recording and this call originated from the remote. 00499 00500 00501 //Editing flags 00502 var(Advanced) bool bHiddenEd; // Is hidden during editing. 00503 var(Advanced) bool bHiddenEdGroup;// Is hidden by the group brower. 00504 var(Advanced) bool bDirectional; // Actor shows direction arrow during editing. 00505 var const bool bSelected; // Selected in UnrealEd. 00506 var bool bEdLocked; // Locked in editor (no movement or rotation). 00507 var(Advanced) bool bEdShouldSnap; // Snap to grid in editor. 00508 var bool bEdSnap; // Should snap to grid in UnrealEd. 00509 var const bool bTempEditor; // Internal UnrealEd. 00510 var bool bObsolete; // actor is obsolete - warn level designers to remove it 00511 var(Advanced) bool bPathColliding;// this actor should collide (if bWorldGeometry && bBlockActors is true) during path building (ignored if bStatic is true, as actor will always collide during path building) 00512 var bool bPathTemp; // Internal/path building 00513 00514 var bool bScriptInitialized; // set to prevent re-initializing of actors spawned during level startup 00515 00516 var class<LocalMessage> MessageClass; 00517 00518 //----------------------------------------------------------------------------- 00519 // Enums. 00520 00521 // Travelling from server to server. 00522 enum ETravelType 00523 { 00524 TRAVEL_Absolute, // Absolute URL. 00525 TRAVEL_Partial, // Partial (carry name, reset server). 00526 TRAVEL_Relative, // Relative URL. 00527 }; 00528 00529 00530 // double click move direction. 00531 enum EDoubleClickDir 00532 { 00533 DCLICK_None, 00534 DCLICK_Left, 00535 DCLICK_Right, 00536 DCLICK_Forward, 00537 DCLICK_Back, 00538 DCLICK_Active, 00539 DCLICK_Done 00540 }; 00541 00542 //----------------------------------------------------------------------------- 00543 // natives. 00544 00545 // Execute a console command in the context of the current level and game engine. 00546 native static function string ConsoleCommand( string Command ); 00547 00548 //----------------------------------------------------------------------------- 00549 // Network replication. 00550 00551 replication 00552 { 00553 // Location 00554 unreliable if ( (!bSkipActorPropertyReplication || bNetInitial) && bReplicateMovement 00555 && (((RemoteRole == ROLE_AutonomousProxy) && bNetInitial) 00556 || ((RemoteRole == ROLE_SimulatedProxy) && (bNetInitial || bUpdateSimulatedPosition) && ((Base == None) || Base.bWorldGeometry)) 00557 || ((RemoteRole == ROLE_DumbProxy) && ((Base == None) || Base.bWorldGeometry))) ) 00558 Location; 00559 00560 unreliable if ( (!bSkipActorPropertyReplication || bNetInitial) && bReplicateMovement 00561 && ((DrawType == DT_Mesh) || (DrawType == DT_StaticMesh)) 00562 && (((RemoteRole == ROLE_AutonomousProxy) && bNetInitial) 00563 || ((RemoteRole == ROLE_SimulatedProxy) && (bNetInitial || bUpdateSimulatedPosition) && ((Base == None) || Base.bWorldGeometry)) 00564 || ((RemoteRole == ROLE_DumbProxy) && ((Base == None) || Base.bWorldGeometry))) ) 00565 Rotation; 00566 00567 unreliable if ( (!bSkipActorPropertyReplication || bNetInitial) && bReplicateMovement 00568 && RemoteRole<=ROLE_SimulatedProxy ) 00569 Base; 00570 00571 unreliable if( (!bSkipActorPropertyReplication || bNetInitial) && bReplicateMovement 00572 && RemoteRole<=ROLE_SimulatedProxy && (Base != None) && !Base.bWorldGeometry) 00573 RelativeRotation, RelativeLocation, AttachmentBone; 00574 00575 // Physics 00576 unreliable if( (!bSkipActorPropertyReplication || bNetInitial) && bReplicateMovement 00577 && (((RemoteRole == ROLE_SimulatedProxy) && (bNetInitial || bUpdateSimulatedPosition)) 00578 || ((RemoteRole == ROLE_DumbProxy) && (Physics == PHYS_Falling))) ) 00579 Velocity; 00580 00581 unreliable if( (!bSkipActorPropertyReplication || bNetInitial) && bReplicateMovement 00582 && (((RemoteRole == ROLE_SimulatedProxy) && bNetInitial) 00583 || (RemoteRole == ROLE_DumbProxy)) ) 00584 Physics, bMovable; 00585 00586 unreliable if( (!bSkipActorPropertyReplication || bNetInitial) && bReplicateMovement 00587 && (RemoteRole <= ROLE_SimulatedProxy) && (Physics == PHYS_Rotating) ) 00588 bFixedRotationDir, bRotateToDesired, RotationRate, DesiredRotation; 00589 00590 //MC for HarmonX integration 00591 // Sound. 00592 unreliable if( (!bSkipActorPropertyReplication || bNetInitial) && (Role==ROLE_Authority) && (!bNetOwner || !bClientAnim) ) 00593 AmbientSound, bHasPosition, bHasRollOff, PanCoeff, SaturationDistance, StabilisationDistance, StabilisationVolume; 00594 //end MC 00595 00596 unreliable if ( (!bSkipActorPropertyReplication || bNetInitial) && (Role==ROLE_Authority) && bNetDirty && (DrawType == DT_StaticMesh) ) 00597 StaticMesh; 00598 00599 // Animation. 00600 unreliable if( (!bSkipActorPropertyReplication || bNetInitial) 00601 && (Role==ROLE_Authority) && (DrawType==DT_Mesh) && bReplicateAnimations ) 00602 SimAnim; 00603 00604 unreliable if ( (!bSkipActorPropertyReplication || bNetInitial) && (Role==ROLE_Authority) ) 00605 bHidden; 00606 00607 // Properties changed using accessor functions (Owner, rendering, and collision) 00608 unreliable if ( (!bSkipActorPropertyReplication || bNetInitial) && (Role==ROLE_Authority) && bNetDirty ) 00609 Owner, DrawScale, DrawScale3D, DrawType, bCollideActors,bCollideWorld,bOnlyOwnerSee,Texture,Style; 00610 00611 unreliable if ( (!bSkipActorPropertyReplication || bNetInitial) && (Role==ROLE_Authority) && bNetDirty 00612 && (bCollideActors || bCollideWorld) ) 00613 bProjTarget, bBlockActors, bBlockPlayers, CollisionRadius, CollisionHeight; 00614 00615 // Properties changed only when spawning or in script (relationships, rendering, lighting) 00616 unreliable if ( (!bSkipActorPropertyReplication || bNetInitial) && (Role==ROLE_Authority) ) 00617 Role,RemoteRole,bNetOwner,LightType,bTearOff; 00618 00619 unreliable if ( (!bSkipActorPropertyReplication || bNetInitial) && (Role==ROLE_Authority) 00620 && bNetDirty && bNetOwner ) 00621 Inventory; 00622 00623 unreliable if ( (!bSkipActorPropertyReplication || bNetInitial) && (Role==ROLE_Authority) 00624 && bNetDirty && bReplicateInstigator ) 00625 Instigator; 00626 00627 // Infrequently changed mesh properties 00628 unreliable if ( (!bSkipActorPropertyReplication || bNetInitial) && (Role==ROLE_Authority) 00629 && bNetDirty && (DrawType == DT_Mesh) ) 00630 AmbientGlow,bUnlit,PrePivot,Mesh; 00631 00632 // Infrequently changed lighting properties. 00633 unreliable if ( (!bSkipActorPropertyReplication || bNetInitial) && (Role==ROLE_Authority) 00634 && bNetDirty && (LightType != LT_None) ) 00635 LightEffect, LightBrightness, LightHue, LightSaturation, 00636 LightRadius, LightPeriod, LightPhase, 00637 bDecor1Light, bDecor2Light, bDecor3Light, bActorLight, bDecor4Light, bDecor5Light, 00638 bDecor6Light, bDecor7Light, bDecor8Light, bDecor9Light, bDecor10Light; 00639 00640 } 00641 00642 //============================================================================= 00643 // Actor error handling. 00644 00645 // Handle an error and kill this one actor. 00646 native(233) static final function Error( coerce string S ); 00647 00648 //============================================================================= 00649 // General functions. 00650 00651 // Latent functions. 00652 native(256) final latent function Sleep( float Seconds ); 00653 00654 // Collision. 00655 native(262) static final function SetCollision( optional bool NewColActors, optional bool NewBlockActors, optional bool NewBlockPlayers ); 00656 native(283) static final function bool SetCollisionSize( float NewRadius, float NewHeight ); 00657 native(424) static final function SetDrawScale(float NewScale); 00658 native(423) static final function SetDrawScale3D(vector NewScale3D); 00659 native(422) static final function SetDrawType(EDrawType NewDrawType); 00660 00661 // Movement. 00662 native(266) static final function bool Move( vector Delta ); 00663 native(267) static final function bool SetLocation( vector NewLocation ); 00664 native(299) static final function bool SetRotation( rotator NewRotation ); 00665 00666 // SetRelativeRotation() sets the rotation relative to the actor's base 00667 native(421) static final function bool SetRelativeRotation( rotator NewRotation ); 00668 native(420) static final function bool SetRelativeLocation( vector NewLocation ); 00669 00670 native(3969) static final function bool MoveSmooth( vector Delta ); 00671 native(3971) static final function AutonomousPhysics(float DeltaSeconds); 00672 00673 // Relations. 00674 native(298) static final function SetBase( actor NewBase, optional vector NewFloor ); 00675 native(272) static final function SetOwner( actor NewOwner ); 00676 00677 native(419) static final function Box GetBoundingBox(); 00678 00679 native(418) static final function Material GetMaterial( int Index ); 00680 00681 native static final function actor IntersectWaterPlane( vector Start, vector End, out vector Intersection ); 00682 00683 native static final function ResetInputs(); 00684 00685 //============================================================================= 00686 event ParseDynamicLoading(LevelInfo pLevelInfo); 00687 // Animation. 00688 00689 // Animation functions. 00690 native(259) static final function PlayAnim( name Sequence, optional float Rate, optional float TweenTime, optional int Channel ); 00691 native(260) static final function LoopAnim( name Sequence, optional float Rate, optional float TweenTime, optional int Channel ); 00692 native(294) static final function TweenAnim( name Sequence, float Time, optional int Channel ); 00693 native(282) static final function bool IsAnimating(optional int Channel); 00694 native(261) static final latent function FinishAnim(optional int Channel); 00695 native(263) static final function bool HasAnim( name Sequence ); 00696 native(417) static final function StopAnimating(); 00697 native(416) static final function bool IsTweening(int Channel); 00698 00699 // Animation notifications. 00700 event AnimEnd( int Channel ); 00701 native(415) static final function EnableChannelNotify ( int Channel, int Switch ); 00702 native(414) static final function int GetNotifyChannel(); 00703 00704 //MC 00705 //Sound notifications 00706 event EndOfVoice(); 00707 event PauseVoice(); 00708 event UnPauseVoice(); 00709 event BeginBeginFlash(); //beginning of the transition of begin of a flash 00710 event EndBeginFlash(); //end of the transition of begin of a flash 00711 event BeginEndFlash(); //beginning of the transition of end of a flash 00712 event EndEndFlash(); //end of the transition of end of a flash 00713 event OnoStartNotif(); 00714 00715 //end MC 00716 00717 // Skeletal animation. 00718 native(413) static final function LinkSkelAnim( MeshAnimation Anim ); 00719 00720 native(412) static final function AnimBlendParams( int Stage, optional float BlendAlpha, optional float InTime, optional float OutTime, optional name BoneName ); 00721 native(411) static final function AnimBlendToAlpha( int Stage, float TargetAlpha, float TimeInterval ); 00722 00723 native(410) static final function coords GetBoneCoords( name BoneName ); 00724 native(409) static final function rotator GetBoneRotation( name BoneName, optional int Space ); 00725 00726 native(408) static final function vector GetRootLocation(); 00727 native(407) static final function rotator GetRootRotation(); 00728 native(406) static final function vector GetRootLocationDelta(); 00729 native(405) static final function rotator GetRootRotationDelta(); 00730 00731 native(404) static final function bool AttachToBone( actor Attachment, name BoneName ); 00732 native(403) static final function bool DetachFromBone( actor Attachment ); 00733 00734 native(402) static final function LockRootMotion( int Lock ); 00735 native(401) static final function SetBoneScale( int Slot, optional float BoneScale, optional name BoneName ); 00736 native(400) static final function SetBoneScalePerAxis( int Slot, optional float BoneScaleX, optional float BoneScaleY, optional float BoneScaleZ, optional name BoneName ); 00737 00738 native(399) static final function SetBoneDirection( name BoneName, rotator BoneTurn, optional vector BoneTrans, optional float Alpha ); 00739 native(398) static final function SetBoneLocation( name BoneName, optional vector BoneTrans, optional float Alpha ); 00740 native(397) static final function SetBoneRotation( name BoneName, optional rotator BoneTurn, optional int Space, optional float Alpha ); 00741 native(396) static final function GetAnimParams( int Channel, out name OutSeqName, out float OutAnimFrame, out float OutAnimRate ); 00742 native(395) static final function bool AnimIsInGroup( int Channel, name GroupName ); 00743 00744 00745 //========================================================================= 00746 // Rendering. 00747 00748 native(394) static final function plane GetRenderBoundingSphere(); 00749 native(393) static final function vector GetCartoonLightDir(); 00750 native(392) static final function bool CheckWasVisible(float time); 00751 native(391) static final function RecomputeBoundingVolume(bool Static); 00752 00753 native function RefreshDisplaying(); 00754 native(389) static final function RefreshLighting(); 00755 00756 native static final function ReplaceATextureByAnOther( Texture SrcTexture, Texture DestTexture ); 00757 00758 //========================================================================= 00759 // Physics. 00760 00761 // Physics control. 00762 native(301) final latent function FinishInterpolation(); 00763 native(3970) final function SetPhysics( EPhysics newPhysics ); 00764 00765 00766 //========================================================================= 00767 // PSX2 Demo. 00768 00769 // Gameplay Timeout 00770 native static final function float PSX2BootstrapDemoGetGamePlayTimeout(); 00771 00772 00773 //========================================================================= 00774 // Engine notification functions. 00775 00776 // 00777 // Major notifications. 00778 // 00779 event Destroyed(); 00780 event GainedChild( Actor Other ); 00781 event LostChild( Actor Other ); 00782 event Tick( float DeltaTime ); 00783 00784 // 00785 // Triggers. 00786 // 00787 event Trigger( Actor Other, Pawn EventInstigator ); 00788 event UnTrigger( Actor Other, Pawn EventInstigator ); 00789 event BeginEvent(); 00790 event EndEvent(); 00791 00792 // 00793 // Physics & world interaction. 00794 // 00795 event Timer(); 00796 event Timer2(); 00797 event HitWall( vector HitNormal, actor HitWall ); 00798 event Falling(); 00799 event Landed( vector HitNormal ); 00800 event ZoneChange( ZoneInfo NewZone ); 00801 event PhysicsVolumeChange( PhysicsVolume NewVolume ); 00802 event Touch( Actor Other ); 00803 event PostTouch( Actor Other ); // called for PendingTouch actor after physics completes 00804 event UnTouch( Actor Other ); 00805 event Bump( Actor Other ); 00806 event BaseChange(); 00807 event Attach( Actor Other ); 00808 event Detach( Actor Other ); 00809 event Actor SpecialHandling(Pawn Other); 00810 event bool EncroachingOn( actor Other ); 00811 event EncroachedBy( actor Other ); 00812 event FinishedInterpolation(InterpolationPoint Other); 00813 event EndedRotation(); // called when rotation completes 00814 event UsedBy( Pawn user ); // called if this Actor was touching a Pawn who pressed Use 00815 00816 event FellOutOfWorld() 00817 { 00818 SetPhysics(PHYS_None); 00819 Destroy(); 00820 } 00821 00822 // 00823 // Damage and kills. 00824 // 00825 event KilledBy( pawn EventInstigator ); 00826 event TakeDamage( int Damage, Pawn EventInstigator, vector HitLocation, vector Momentum, class<DamageType> DamageType); 00827 00828 00829 00830 00831 // Masks to discard some collisions 00832 // Used by Trace and FastTrace. 00833 const TRACETYPE_Standard = 0x000000; // by default 00834 const TRACETYPE_DiscardIfCanSeeThrough = 0x002000; // with this option, trace and fasttrace will not report collision with objects that have CanSeeThrough flag set. Practical consequence: it is possible to see through transparent windows. 00835 const TRACETYPE_DiscardIfCanShootThroughWithRayCastingWeapon = 0x004000; // with this option, trace and fasttrace will not report collision with objects that have CanShootThroughWithRayCastingWeapon flag set. Practical consequence: you can know if it is possible to shoot through a door with a magnum. 00836 const TRACETYPE_DiscardIfCanShootThroughWithProjectileWeapon = 0x008000; // with this option, trace and fasttrace will not report collision with objects that have CanShootThroughWithProjectileWeapon flag set. Practical consequence: you can know if it is possible to shoot through something with a knife. 00837 const TRACETYPE_RequestBones = 0x010000; // Request the bone check. 00838 00839 00840 // 00841 // Trace a line and see what it collides with first. 00842 // Takes this actor's collision properties into account. 00843 // Returns first hit actor, Level if hit level, or None if hit nothing. 00844 // An AdditionalTraceType parameter can be used to discard some kinds of hit (to be able to see through window for example). It 00845 // can be a combination (bitwise or) of TRACETYPE_xxx constants. In this case, it is possible to know afterwards which kind of hits 00846 // was discarded by examining DiscardedHitMask. For example, if you choose to trace with an additional trace type TRACETYPE_DiscardIfCanSeeThrough, 00847 // if a hit was rejected because of it, DiscardedHitMask will contains TRACETYPE_DiscardIfCanSeeThrough. 00848 // 00849 native(277) static final function Actor Trace 00850 ( 00851 out vector HitLocation, 00852 out vector HitNormal, 00853 vector TraceEnd, 00854 optional vector TraceStart, 00855 optional bool bTraceActors, 00856 optional vector Extent, 00857 optional out material Material, 00858 optional int AdditionalTraceType, // TRACETYPE_Standard is the default value 00859 optional out int DiscardedHitMask // none is the default value 00860 ); 00861 00862 // Get the last bone name, intersected during the last Trace call with the flag TRACETYPE_RequestBones. 00863 native(364) static final function name GetLastTraceBone(); 00864 00865 00866 // returns true if did not hit world geometry 00867 // An AdditionalTraceType parameter can be used to discard some kinds of hit (to be able to see through window for example). It 00868 // can be a combination (bitwise or) of TRACETYPE_xxx constants. In this case, it is possible to know afterwards which kind of hits 00869 // was discarded by examining DiscardedHitMask. For example, if you choose to trace with an additional trace type TRACETYPE_DiscardIfCanSeeThrough, 00870 // if a hit was rejected because of it, DiscardedHitMask will contains TRACETYPE_DiscardIfCanSeeThrough. 00871 native(548) static final function bool FastTrace 00872 ( 00873 vector TraceEnd, 00874 optional vector TraceStart, 00875 optional int AdditionalTraceType, // TRACETYPE_Standard is the default value 00876 optional out int DiscardedHitMask // none is the default value 00877 ); 00878 00879 // 00880 // Spawn an actor. Returns an actor of the specified class, not 00881 // of class Actor (this is hardcoded in the compiler). Returns None 00882 // if the actor could not be spawned (either the actor wouldn't fit in 00883 // the specified location, or the actor list is full). 00884 // Defaults to spawning at the spawner's location. 00885 // 00886 native(278) static final function actor Spawn 00887 ( 00888 class<actor> SpawnClass, 00889 optional actor SpawnOwner, 00890 optional name SpawnTag, 00891 optional vector SpawnLocation, 00892 optional rotator SpawnRotation 00893 ); 00894 00895 // 00896 // Destroy this actor. Returns true if destroyed, false if indestructable. 00897 // Destruction is latent. It occurs at the end of the tick. 00898 // 00899 native(279) static final function bool Destroy(); 00900 00901 //============================================================================= 00902 // Timing. 00903 00904 // Causes Timer() events every NewTimerRate seconds. 00905 native(280) static final function SetTimer( float NewTimerRate, bool bLoop ); 00906 00907 // Causes Timer2() events every NewTimerRate seconds. 00908 native(363) static final function SetTimer2( float NewTimerRate, bool bLoop ); 00909 00910 //============================================================================= 00911 // Sound functions. 00912 //MC for HarmonX integration 00913 00914 00915 native static final function SetSoundMode 00916 ( 00917 int SoundMode 00918 ); 00919 native(362) static final function SetMusicSliderPos 00920 ( 00921 int MusicVolume 00922 ); 00923 native(361) static final function SetVolume 00924 ( 00925 float volume 00926 ); 00927 00928 00929 // Play a sound effect. 00930 native(264) static final function PlaySound 00931 ( 00932 sound Sound, 00933 optional int Param1, 00934 optional int Param2, 00935 optional int Param3, 00936 optional int Param4, 00937 optional int Param5 00938 ); 00939 // Play a music 00940 native(358) static final function PlayMusic 00941 ( 00942 sound Sound, 00943 optional int Param1, 00944 optional int Param2, 00945 optional int Param3, 00946 optional int Param4, 00947 optional int Param5 00948 ); 00949 native(357) static final function float GetWaveDuration 00950 (//get wave duration (for voices only) 00951 string SoundName 00952 ); 00953 native(356) static final function bool WaveHasPosition 00954 (//to know if wave is localized or not (for voices only) 00955 string SoundName 00956 ); 00957 //native(355) static final function bool CanHearFootstepSound 00958 //(//to know if footsteps can be heard... 00959 //); 00960 //Play a streamed voice 00961 native(354) static final function bool PlayStrVoice 00962 ( 00963 string SoundName, 00964 optional actor RollOffActor 00965 ); 00966 // Play a voice (wave or handler) 00967 native(353) static final function PlayVoice 00968 ( 00969 sound Sound, 00970 optional int Param1, 00971 optional int Param2, 00972 optional int Param3, 00973 optional int Param4, 00974 optional int Param5 00975 ); 00976 // Play a streamed ambient sound 00977 native(352) static final function PlayStrAmb 00978 ( 00979 sound Sound 00980 ); 00981 // Play a sound 00982 native(351) static final function PlayMenu 00983 (//soundisn't puton "SoundDesign" volume line. 00984 sound Sound, 00985 optional int Type, //default : SndType_Menu (for Menu actor) 00986 optional int Param1, 00987 optional int Param2, 00988 optional int Param3, 00989 optional int Param4, 00990 optional int Param5 00991 ); 00992 // Play a sound 00993 native(350) static final function PlayRolloffSound 00994 ( 00995 sound Sound, 00996 actor RolloffActor, 00997 optional int Param1, 00998 optional int Param2, 00999 optional int Param3, 01000 optional int Param4, 01001 optional int Param5 01002 ); 01003 // Play footstepsounds 01004 native(349) static final function PlaySndPNJStep 01005 ( 01006 sndpnjstep Sound, 01007 float Speed, 01008 int SndStepCategory, 01009 bool bSilent 01010 ); 01011 native(348) static final function PlaySndXIIIStep 01012 ( 01013 sndxiiistep Sound, 01014 float Speed, 01015 int EndStep, 01016 bool bSilent 01017 ); 01018 01019 //Play sndono 01020 native(347) static final function PlaySndPNJOno 01021 ( 01022 sndono Sound, 01023 int CodeMesh, 01024 int Timbre 01025 ); 01026 01027 //Play deathono 01028 native(346) static final function PlaySndDeathOno 01029 ( 01030 deathono Sound, 01031 int CodeMesh, 01032 int Timbre 01033 ); 01034 01035 // Stop a sound effect. 01036 native(265) static final function StopSound 01037 ( 01038 sound Sound 01039 ); 01040 // Stop musics and streamed ambient sounds 01041 native(345) static final function StopMusic(); 01042 // Stop voices 01043 native(344) static final function StopVoice(); 01044 // Stop all actor sounds 01045 native(343) static final function StopActorSounds(); 01046 // Stop all sounds 01047 native(342) static final function StopAllSounds(); 01048 01049 //Pause music and streamed ambient sounds 01050 native(341) static final function PauseMusic(); 01051 //Pause all sounds 01052 native(340) static final function PauseAllSounds(); 01053 01054 //Kill all sounds 01055 native static final function KillAllSounds(); 01056 01057 //Resume music and streamed ambient sounds 01058 native(339) static final function ResumeMusic(); 01059 //Resume all sounds 01060 native(338) static final function ResumeAllSounds(); 01061 01062 //end MC 01063 //============================================================================= 01064 // AI functions. 01065 01066 /* Inform other creatures that you've made a noise 01067 they might hear (they are sent a HearNoise message) 01068 Senders of MakeNoise should have an instigator if they are not pawns. 01069 */ 01070 native(512) static final function MakeNoise( float Loudness ); 01071 01072 /* PlayerCanSeeMe returns true if any player (server) or the local player (standalone 01073 or client) has a line of sight to actor's location. 01074 */ 01075 native(532) static final function bool PlayerCanSeeMe(); 01076 01077 //============================================================================= 01078 // Regular engine functions. 01079 01080 // Teleportation. 01081 event bool PreTeleport( Teleporter InTeleporter ); 01082 event PostTeleport( Teleporter OutTeleporter ); 01083 01084 // Level state. 01085 event BeginPlay(); 01086 01087 //======================================================================== 01088 // Disk access. 01089 01090 // Find files. 01091 native(539) static final function string GetMapName( string NameEnding, string MapName, int Dir ); 01092 native(545) static final function GetNextSkin( string Prefix, string CurrentSkin, int Dir, out string SkinName, out string SkinDesc ); 01093 native(547) static final function string GetURLMap(); 01094 native(337) static final function string GetNextInt( string ClassName, int Num ); 01095 native(336) static final function GetNextIntDesc( string ClassName, int Num, out string Entry, out string Description ); 01096 native(335) static final function bool GetCacheEntry( int Num, out string GUID, out string Filename ); 01097 native(334) static final function bool MoveCacheEntry( string GUID, optional string NewFilename ); 01098 01099 //============================================================================= 01100 // Iterator functions. 01101 01102 // Iterator functions for dealing with sets of actors. 01103 01104 /* AllActors() - avoid using AllActors() too often as it iterates through the whole actor list and is therefore slow 01105 */ 01106 native(304) final iterator function AllActors ( class<actor> BaseClass, out actor Actor, optional name MatchTag ); 01107 01108 /* DynamicActors() only iterates through the non-static actors on the list (still relatively slow, bu 01109 much better than AllActors). This should be used in most cases and replaces AllActors in most of 01110 Epic's game code. 01111 */ 01112 native(313) final iterator function DynamicActors ( class<actor> BaseClass, out actor Actor, optional name MatchTag ); 01113 01114 /* ChildActors() returns all actors owned by this actor. Slow like AllActors() 01115 */ 01116 native(305) final iterator function ChildActors ( class<actor> BaseClass, out actor Actor ); 01117 01118 /* BasedActors() returns all actors based on the current actor (slow, like AllActors) 01119 */ 01120 native(306) final iterator function BasedActors ( class<actor> BaseClass, out actor Actor ); 01121 01122 /* TouchingActors() returns all actors touching the current actor (fast) 01123 */ 01124 native(307) final iterator function TouchingActors( class<actor> BaseClass, out actor Actor ); 01125 01126 /* TraceActors() return all actors along a traced line. Reasonably fast (like any trace) 01127 */ 01128 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, optional int TraceType ); 01129 01130 /* RadiusActors() returns all actors within a give radius. Slow like AllActors(). Use CollidingActors() or VisibleCollidingActors() instead if desired actor types are visible 01131 (not bHidden) and in the collision hash (bCollideActors is true) 01132 */ 01133 native(310) final iterator function RadiusActors ( class<actor> BaseClass, out actor Actor, float Radius, optional vector Loc ); 01134 01135 /* VisibleActors() returns all visible actors within a radius. Slow like AllActors(). Use VisibleCollidingActors() instead if desired actor types are 01136 in the collision hash (bCollideActors is true) 01137 */ 01138 native(311) final iterator function VisibleActors ( class<actor> BaseClass, out actor Actor, optional float Radius, optional vector Loc ); 01139 01140 /* VisibleCollidingActors() returns visible (not bHidden) colliding (bCollideActors==true) actors within a certain radius. 01141 Much faster than AllActors() since it uses the collision hash 01142 */ 01143 native(312) final iterator function VisibleCollidingActors ( class<actor> BaseClass, out actor Actor, float Radius, optional vector Loc, optional bool bIgnoreHidden ); 01144 01145 /* VisibleDamageableActors() returns visible (not bHidden) colliding (bCollideActors==true) actors within a certain radius. 01146 Much faster than AllActors() since it uses the collision hash. 01147 // Same as VisibleCollidingActors but remove all StaticMeshActors 01148 */ 01149 native final iterator function VisibleDamageableActors ( class<actor> BaseClass, out actor Actor, float Radius, optional vector Loc, optional bool bIgnoreHidden ); 01150 01151 /* CollidingActors() returns colliding (bCollideActors==true) actors within a certain radius. 01152 Much faster than AllActors() for reasonably small radii since it uses the collision hash 01153 */ 01154 native(321) final iterator function CollidingActors ( class<actor> BaseClass, out actor Actor, float Radius, optional vector Loc ); 01155 01156 /* ActorInInterationCategory() returns actors that have an IterationCategory between MinCategory and MaxCategory, included. 01157 */ 01158 native(333) final iterator function ActorInIterationCategory( byte MinCategory, byte MaxCategory, out actor Actor); 01159 01160 //============================================================================= 01161 // Color functions 01162 native(549) static final operator(20) color - ( color A, color B ); 01163 native(550) static final operator(16) color * ( float A, color B ); 01164 native(551) static final operator(20) color + ( color A, color B ); 01165 native(552) static final operator(16) color * ( color A, float B ); 01166 01167 01168 //============================================================================= 01169 native static final function bool SaveAtCheckpoint(string TeleporterName, string ContentDescription); 01170 01171 01172 //============================================================================= 01173 // Scripted Actor functions. 01174 01175 /* RenderOverlays() 01176 called by player's hud to request drawing of actor specific overlays onto canvas 01177 */ 01178 function RenderOverlays(Canvas Canvas); 01179 01180 // 01181 // Called immediately before gameplay begins. 01182 // 01183 event PreBeginPlay() 01184 { 01185 // Handle autodestruction if desired. 01186 if( !bGameRelevant && (Level.NetMode != NM_Client) && !Level.Game.BaseMutator.CheckRelevance(Self) ) 01187 Destroy(); 01188 } 01189 01190 // 01191 // Broadcast a localized message to all players. 01192 // Most message deal with 0 to 2 related PRIs. 01193 // The LocalMessage class defines how the PRI's and optional actor are used. 01194 // 01195 event BroadcastLocalizedMessage( class<LocalMessage> MessageClass, optional int Switch, optional PlayerReplicationInfo RelatedPRI_1, optional PlayerReplicationInfo RelatedPRI_2, optional Object OptionalObject ) 01196 { 01197 Level.Game.BroadcastLocalized( self, MessageClass, Switch, RelatedPRI_1, RelatedPRI_2, OptionalObject ); 01198 } 01199 01200 // Called immediately after gameplay begins. 01201 // 01202 event PostBeginPlay(); 01203 01204 // Called after PostBeginPlay. 01205 // 01206 simulated event SetInitialState() 01207 { 01208 bScriptInitialized = true; 01209 if( InitialState!='' ) 01210 GotoState( InitialState ); 01211 else 01212 GotoState( 'Auto' ); 01213 } 01214 01215 // called after PostBeginPlay. On a net client, PostNetBeginPlay() is spawned after replicated variables have been initialized to 01216 // their replicated values 01217 event PostNetBeginPlay(); 01218 01219 /* HurtRadius() 01220 Hurt locally authoritative actors within the radius. 01221 */ 01222 simulated final function HurtRadius( float DamageAmount, float DamageRadius, class<DamageType> DamageType, float Momentum, vector HitLocation ) 01223 { 01224 local actor Victims; 01225 local float damageScale, dist; 01226 local vector dir; 01227 01228 if( bHurtEntry ) 01229 return; 01230 01231 bHurtEntry = true; 01232 foreach VisibleDamageableActors( class 'Actor', Victims, DamageRadius, HitLocation ) 01233 { 01234 if( (Victims != self) && (Victims.Role == ROLE_Authority) ) 01235 { 01236 dir = Victims.Location - HitLocation; 01237 dist = FMax(1,VSize(dir)); 01238 dir = dir/dist; 01239 damageScale = 1 - FMax(0,(dist - Victims.CollisionRadius)/DamageRadius); 01240 if (level.bLonePlayer && !Instigator.IsPlayerPawn() && Victims.IsA('BaseSoldier') ) //test bloneplayer to avoid heavy cast in multi-mode 01241 DamageScale *= 0.2; 01242 Victims.TakeDamage 01243 ( 01244 damageScale * DamageAmount, 01245 Instigator, 01246 Victims.Location - 0.5 * (Victims.CollisionHeight + Victims.CollisionRadius) * dir, 01247 (damageScale * Momentum * dir), 01248 DamageType 01249 ); 01250 } 01251 } 01252 bHurtEntry = false; 01253 } 01254 01255 // Called when carried onto a new level, before AcceptInventory. 01256 // 01257 event TravelPreAccept(); 01258 01259 // Called when carried into a new level, after AcceptInventory. 01260 // 01261 event TravelPostAccept(); 01262 01263 // Called by PlayerController when this actor becomes its ViewTarget. 01264 // 01265 function BecomeViewTarget(); 01266 01267 // Returns the string representation of the name of an object without the package 01268 // prefixes. 01269 // 01270 function String GetItemName( string FullName ) 01271 { 01272 local int pos; 01273 01274 pos = InStr(FullName, "."); 01275 While ( pos != -1 ) 01276 { 01277 FullName = Right(FullName, Len(FullName) - pos - 1); 01278 pos = InStr(FullName, "."); 01279 } 01280 01281 return FullName; 01282 } 01283 01284 // Returns the human readable string representation of an object. 01285 // 01286 // CHANGED function name from GetHumanName() 01287 function String GetHumanReadableName() 01288 { 01289 return GetItemName(string(class)); 01290 } 01291 01292 final function ReplaceText(out string Text, string Replace, string With) 01293 { 01294 local int i; 01295 local string Input; 01296 01297 Input = Text; 01298 Text = ""; 01299 i = InStr(Input, Replace); 01300 while(i != -1) 01301 { 01302 Text = Text $ Left(Input, i) $ With; 01303 Input = Mid(Input, i + Len(Replace)); 01304 i = InStr(Input, Replace); 01305 } 01306 Text = Text $ Input; 01307 } 01308 01309 // Set the display properties of an actor. By setting them through this function, it allows 01310 // the actor to modify other components (such as a Pawn's weapon) or to adjust the result 01311 // based on other factors (such as a Pawn's other inventory wanting to affect the result) 01312 function SetDisplayProperties(ERenderStyle NewStyle, Material NewTexture, bool bLighting ) 01313 { 01314 Style = NewStyle; 01315 texture = NewTexture; 01316 bUnlit = bLighting; 01317 } 01318 01319 function SetDefaultDisplayProperties() 01320 { 01321 Style = Default.Style; 01322 texture = Default.Texture; 01323 bUnlit = Default.bUnlit; 01324 } 01325 01326 // Get localized message string associated with this actor 01327 static function string GetLocalString( 01328 optional int Switch, 01329 optional PlayerReplicationInfo RelatedPRI_1, 01330 optional PlayerReplicationInfo RelatedPRI_2 01331 ) 01332 { 01333 return ""; 01334 } 01335 01336 function MatchStarting(); // called when gameplay actually starts 01337 01338 /* DisplayDebug() 01339 list important actor variable on canvas. HUD will call DisplayDebug() on the current ViewTarget when 01340 the ShowDebug exec is used 01341 */ 01342 simulated function DisplayDebug(Canvas Canvas, out float YL, out float YPos) 01343 { 01344 local string T; 01345 local float XL; 01346 local int i; 01347 local Actor A; 01348 local name anim; 01349 local float frame,rate; 01350 01351 Canvas.Style = ERenderStyle.STY_Normal; 01352 Canvas.StrLen("TEST", XL, YL); 01353 YPos = YPos + YL; 01354 Canvas.SetPos(4,YPos); 01355 Canvas.SetDrawColor(255,0,0); 01356 T = GetItemName(string(self)); 01357 if ( bDeleteMe ) 01358 T = T$" DELETED (bDeleteMe == true)"; 01359 01360 Canvas.DrawText(T, false); 01361 YPos += YL; 01362 Canvas.SetPos(4,YPos); 01363 Canvas.SetDrawColor(255,255,255); 01364 01365 if ( Level.NetMode != NM_Standalone ) 01366 { 01367 // networking attributes 01368 T = "ROLE "; 01369 Switch(Role) 01370 { 01371 case ROLE_None: T=T$"None"; break; 01372 case ROLE_DumbProxy: T=T$"DumbProxy"; break; 01373 case ROLE_SimulatedProxy: T=T$"SimulatedProxy"; break; 01374 case ROLE_AutonomousProxy: T=T$"AutonomousProxy"; break; 01375 case ROLE_Authority: T=T$"Authority"; break; 01376 } 01377 T = T$" REMOTE ROLE "; 01378 Switch(RemoteRole) 01379 { 01380 case ROLE_None: T=T$"None"; break; 01381 case ROLE_DumbProxy: T=T$"DumbProxy"; break; 01382 case ROLE_SimulatedProxy: T=T$"SimulatedProxy"; break; 01383 case ROLE_AutonomousProxy: T=T$"AutonomousProxy"; break; 01384 case ROLE_Authority: T=T$"Authority"; break; 01385 } 01386 if ( bTearOff ) 01387 T = T$" Tear Off"; 01388 Canvas.DrawText(T, false); 01389 YPos += YL; 01390 Canvas.SetPos(4,YPos); 01391 } 01392 T = "Physics "; 01393 Switch(PHYSICS) 01394 { 01395 case PHYS_None: T=T$"None"; break; 01396 case PHYS_Walking: T=T$"Walking"; break; 01397 case PHYS_Falling: T=T$"Falling"; break; 01398 case PHYS_Swimming: T=T$"Swimming"; break; 01399 case PHYS_Flying: T=T$"Flying"; break; 01400 case PHYS_Rotating: T=T$"Rotating"; break; 01401 case PHYS_Projectile: T=T$"Projectile"; break; 01402 case PHYS_Interpolating: T=T$"Interpolating"; break; 01403 case PHYS_MovingBrush: T=T$"MovingBrush"; break; 01404 case PHYS_Spider: T=T$"Spider"; break; 01405 case PHYS_Trailer: T=T$"Trailer"; break; 01406 case PHYS_Ladder: T=T$"Ladder"; break; 01407 } 01408 T = T$" in physicsvolume "$GetItemName(string(PhysicsVolume))$" on base "$GetItemName(string(Base)); 01409 if ( bBounce ) 01410 T = T$" - will bounce"; 01411 Canvas.DrawText(T, false); 01412 YPos += YL; 01413 Canvas.SetPos(4,YPos); 01414 01415 Canvas.DrawText("Location: "$Location, false); 01416 YPos += YL; 01417 Canvas.SetPos(4,YPos); 01418 Canvas.DrawText("Rotation: "$Rotation, false); 01419 YPos += YL; 01420 Canvas.SetPos(4,YPos); 01421 Canvas.DrawText("Velocity: "$Velocity$" Speed "$VSize(Velocity), false); 01422 YPos += YL; 01423 Canvas.SetPos(4,YPos); 01424 Canvas.DrawText("Acceleration: "$Acceleration, false); 01425 YPos += YL; 01426 Canvas.SetPos(4,YPos); 01427 01428 Canvas.DrawColor.B = 0; 01429 Canvas.DrawText("Collision Radius "$CollisionRadius$" Height "$CollisionHeight); 01430 YPos += YL; 01431 Canvas.SetPos(4,YPos); 01432 01433 Canvas.DrawText("Collides with Actors "$bCollideActors$", world "$bCollideWorld$", and proj. target "$bProjTarget); 01434 YPos += YL; 01435 Canvas.SetPos(4,YPos); 01436 Canvas.DrawText("Blocks Actors "$bBlockActors$", players "$bBlockPlayers); 01437 YPos += YL; 01438 Canvas.SetPos(4,YPos); 01439 01440 T = "Touching "; 01441 ForEach TouchingActors(class'Actor', A) 01442 T = T$GetItemName(string(A))$" "; 01443 if ( T == "Touching ") 01444 T = "Touching nothing"; 01445 Canvas.DrawText(T, false); 01446 YPos += YL; 01447 Canvas.SetPos(4,YPos); 01448 01449 Canvas.DrawColor.R = 0; 01450 T = "Rendered: "; 01451 Switch(Style) 01452 { 01453 case STY_None: T=T; break; 01454 case STY_Normal: T=T$"Normal"; break; 01455 case STY_Masked: T=T$"Masked"; break; 01456 case STY_Translucent: T=T$"Translucent"; break; 01457 case STY_Modulated: T=T$"Modulated"; break; 01458 case STY_Alpha: T=T$"Alpha"; break; 01459 } 01460 01461 Switch(DrawType) 01462 { 01463 case DT_None: T=T$" None"; break; 01464 case DT_Sprite: T=T$" Sprite "; break; 01465 case DT_Mesh: T=T$" Mesh "; break; 01466 case DT_Brush: T=T$" Brush "; break; 01467 case DT_RopeSprite: T=T$" RopeSprite "; break; 01468 case DT_VerticalSprite: T=T$" VerticalSprite "; break; 01469 case DT_Terraform: T=T$" Terraform "; break; 01470 case DT_SpriteAnimOnce: T=T$" SpriteAnimOnce "; break; 01471 case DT_StaticMesh: T=T$" StaticMesh "; break; 01472 } 01473 01474 if ( DrawType == DT_Mesh ) 01475 { 01476 T = T$Mesh; 01477 if ( Skins.length > 0 ) 01478 { 01479 T = T$" skins: "; 01480 for ( i=0; i<Skins.length; i++ ) 01481 { 01482 if ( skins[i] == None ) 01483 break; 01484 else 01485 T =T$skins[i]$", "; 01486 } 01487 } 01488 01489 Canvas.DrawText(T, false); 01490 YPos += YL; 01491 Canvas.SetPos(4,YPos); 01492 01493 // mesh animation 01494 GetAnimParams(0,Anim,frame,rate); 01495 T = "AnimSequence "$Anim$" Frame "$frame$" Rate "$rate; 01496 if ( bAnimByOwner ) 01497 T= T$" Anim by Owner"; 01498 } 01499 else if ( (DrawType == DT_Sprite) || (DrawType == DT_SpriteAnimOnce) ) 01500 T = T$Texture; 01501 else if ( DrawType == DT_Brush ) 01502 T = T$Brush; 01503 01504 Canvas.DrawText(T, false); 01505 YPos += YL; 01506 Canvas.SetPos(4,YPos); 01507 01508 Canvas.DrawColor.B = 255; 01509 Canvas.DrawText("Tag: "$Tag$" Event: "$Event$" STATE: "$GetStateName(), false); 01510 YPos += YL; 01511 Canvas.SetPos(4,YPos); 01512 01513 Canvas.DrawText("Instigator "$GetItemName(string(Instigator))$" Owner "$GetItemName(string(Owner))); 01514 YPos += YL; 01515 Canvas.SetPos(4,YPos); 01516 01517 Canvas.DrawText("Timer: "$TimerCounter$" Timer2: "$Timer2Counter$" LifeSpan "$LifeSpan); 01518 YPos += YL; 01519 Canvas.SetPos(4,YPos); 01520 01521 Canvas.DrawText("AmbientSound "$AmbientSound); 01522 YPos += YL; 01523 Canvas.SetPos(4,YPos); 01524 } 01525 01526 // NearSpot() returns true is spot is within collision cylinder 01527 // FIXME - make intrinsic 01528 01529 simulated final function bool NearSpot(vector Spot) 01530 { 01531 local vector Dir; 01532 01533 Dir = Location - Spot; 01534 01535 if ( abs(Dir.Z) > CollisionHeight ) 01536 return false; 01537 01538 Dir.Z = 0; 01539 return ( VSize(Dir) <= CollisionRadius ); 01540 } 01541 01542 simulated final function bool TouchingActor(Actor A) 01543 { 01544 local vector Dir; 01545 01546 Dir = Location - A.Location; 01547 01548 if ( abs(Dir.Z) > CollisionHeight + A.CollisionHeight ) 01549 return false; 01550 01551 Dir.Z = 0; 01552 return ( VSize(Dir) <= CollisionRadius + A.CollisionRadius ); 01553 } 01554 01555 01556 // returns true if shortest rotation direction is in the positive (clockwise) direction 01557 // from A to B 01558 function bool PlusDir(int A, int B) 01559 { 01560 A = A & 65535; 01561 B = B & 65535; 01562 01563 if ( Abs(A - B) > 32768 ) 01564 return ( A - B < 0 ); 01565 return ( A - B > 0 ); 01566 } 01567 01568 /* StartInterpolation() 01569 when this function is called, the actor will start moving along an interpolation path 01570 beginning at Dest 01571 */ 01572 simulated function StartInterpolation() 01573 { 01574 GotoState(''); 01575 SetCollision(True,false,false); 01576 bCollideWorld = False; 01577 bInterpolating = true; 01578 SetPhysics(PHYS_None); 01579 } 01580 01581 /* Reset() 01582 reset actor to initial state - used when restarting level without reloading. 01583 */ 01584 function Reset(); 01585 01586 /* 01587 Trigger an event 01588 */ 01589 event TriggerEvent( Name EventName, Actor Other, Pawn EventInstigator ) 01590 { 01591 local Actor A; 01592 01593 if ( (EventName == '') || (EventName == 'None') ) 01594 return; 01595 01596 ForEach DynamicActors( class 'Actor', A, EventName ) 01597 A.Trigger(Other, EventInstigator); 01598 01599 /* 01600 // if triggered event is actor's event, check if it should be registered as persistent game event 01601 if ( (EventName == Event) && (Level.Game != None) ) 01602 { 01603 if ( bTravelGameEvent ) 01604 Level.Game.AddTravelGameEvent(EventName); 01605 else if ( bLocalGameEvent ) 01606 Level.Game.AddLocalGameEvent(EventName); 01607 } 01608 */ 01609 } 01610 01611 /* 01612 Untrigger an event 01613 */ 01614 function UntriggerEvent( Name EventName, Actor Other, Pawn EventInstigator ) 01615 { 01616 local Actor A; 01617 01618 if ( (EventName == '') || (EventName == 'None') ) 01619 return; 01620 01621 ForEach DynamicActors( class 'Actor', A, EventName ) 01622 A.Untrigger(Other, EventInstigator); 01623 } 01624 01625 function bool IsInVolume(Volume aVolume) 01626 { 01627 local Volume V; 01628 01629 ForEach TouchingActors(class'Volume',V) 01630 if ( V == aVolume ) 01631 return true; 01632 return false; 01633 } 01634 01635 function bool IsInPain() 01636 { 01637 local PhysicsVolume V; 01638 01639 ForEach TouchingActors(class'PhysicsVolume',V) 01640 if ( V.bPainCausing && (V.DamagePerSec > 0) ) 01641 return true; 01642 return false; 01643 } 01644 01645 function bool CanSplash() 01646 { 01647 return false; 01648 } 01649 01650 debugonly simulated function DumpContent(float TimeStamp, int tabulation) 01651 { 01652 local int j; 01653 local string Tab; 01654 01655 for (j=0; j<tabulation; j++) Tab = Tab$" "; 01656 log(Tab$"Actor's dump at "$TimeStamp$":"); 01657 //log(Tab$" bStatic:"$bStatic$" bHidden:"$bHidden$" bNoDelete:"$bNoDelete$" bAnimFinished:"$bAnimFinished$" bAnimByOwner:"$bAnimByOwner$" bDeleteMe:"$bDeleteMe); 01658 //log(Tab$" bTicked:"$bTicked$" bDynamicLight:"$bDynamicLight$" bTimerLoop:"$bTimerLoop$" bTimer2Loop:"$bTimer2Loop$" bCanTeleport:"$bCanTeleport$" bOwnerNoSee:"$bOwnerNoSee); 01659 log(Tab$" bTicked:"$bTicked$" bTimerLoop:"$bTimerLoop$" bCanTeleport:"$bCanTeleport); 01660 //log(Tab$" bOnlyOwnerSee:"$bOnlyOwnerSee$" bAlwaysTick:"$bAlwaysTick$" bHighDetail:"$bHighDetail$" bStasis:"$bStasis$" bTrailerSameRotation:"$bTrailerSameRotation); 01661 log(Tab$" bStasis:"$bStasis); 01662 //log(Tab$" bTrailerPrePivot:"$bTrailerPrePivot$" bClientAnim:"$bClientAnim$" bWorldGeometry:"$bWorldGeometry$" bAcceptsProjectors:"$bAcceptsProjectors$" bOrientOnSlope:"$bOrientOnSlope); 01663 //log(Tab$" bNetTemporary:"$bNetTemporary$" bNetOptional:"$bNetOptional$" bNetDirty:"$bNetDirty$" bAlwaysRelevant:"$bAlwaysRelevant); 01664 log(Tab$" bNetDirty:"$bNetDirty); 01665 //log(Tab$" bReplicateInstigator:"$bReplicateInstigator$" bReplicateMovement:"$bReplicateMovement$" bSkipActorPropertyReplication:"$bSkipActorPropertyReplication$" bUpdateSimulatedPosition:"$bUpdateSimulatedPosition); 01666 //log(Tab$" bTearOff:"$bTearOff$" bOnlyDirtyReplication:"$bOnlyDirtyReplication$" bReplicateAnimations:"$bReplicateAnimations$" Role:"$Role$" RemoteRole:"$RemoteRole); 01667 01668 //log(Tab$" Physics:"$Physics$" DrawType:"$DrawType$" NetTag:"$NetTag$" LastRenderTime:"$LastRenderTime$" Tag:"$Tag); 01669 log(Tab$" Physics:"$Physics$" NetTag:"$NetTag); 01670 log(Tab$" TimerRate:"$TimerRate$" TimerCounter:"$TimerCounter$" Timer2Rate:"$Timer2Rate$" Timer2Counter:"$Timer2Counter$" LifeSpan:"$LifeSpan); 01671 //log(Tab$" AnimSequence:"$AnimSequence$" AnimFrame:"$AnimFrame$" AnimRate:"$AnimRate$" TweenRate:"$TweenRate); 01672 //log(Tab$" MeshInstance:"$MeshInstance$" Owner:"$Owner$" InitialState:"$InitialState$" Group:"$Group); 01673 //log(Tab$" Level:"$Level$" XLevel:"$XLevel$" Event:"$Event$" Instigator:"$Instigator$" AmbientSound:"$AmbientSound$" Inventory:"$Inventory$" Base:"$Base$" Region.ZoneNumber:"$Region.ZoneNumber); 01674 //log(Tab$" LatentFloat:"$LatentFloat$" CollisionTag:"$CollisionTag$" LightingTag:"$LightingTag$" ActorTag:"$ActorTag$" PhysicsVolume:"$PhysicsVolume); 01675 log(Tab$" Location:"$Location$" Rotation:"$Rotation$" Velocity:"$Velocity$" Acceleration:"$Acceleration); 01676 //log(Tab$" AttachTag:"$AttachTag$" RelativeLocation:"$RelativeLocation$" RelativeRotation:"$RelativeRotation$" AttachmentBone:"$AttachmentBone); 01677 01678 //log(Tab$" Texture:"$Texture$" Mesh:"$Mesh$" StaticMesh:"$StaticMesh$" StaticMeshInstance:"$StaticMeshInstance$" Brush:"$Brush$" DrawScale:"$DrawScale); 01679 //log(Tab$" DrawScale3D:"$DrawScale3D$" PrePivot:"$PrePivot$" AmbientGlow:"$AmbientGlow$" AntiPortal:"$AntiPortal$" Style:"$Style); 01680 //log(Tab$" bUnlit:"$bUnlit$" bNoSmooth:"$bNoSmooth$" bShadowCast:"$bShadowCast$" bStaticLighting:"$bStaticLighting$" bNoAmbientLight:"$bNoAmbientLight$" bNoImpact:"$bNoImpact); 01681 //log(Tab$" bHurtEntry:"$bHurtEntry$" bGameRelevant:"$bGameRelevant$" bCollideWhenPlacing:"$bCollideWhenPlacing$" bTravel:"$bTravel); 01682 //log(Tab$" bMovable:"$bMovable$" bLocalGameEvent:"$bLocalGameEvent$" bTravelGameEvent:"$bTravelGameEvent$" bDestroyInPainVolume:"$bDestroyInPainVolume$" bPendingDelete:"$bPendingDelete); 01683 01684 //log(Tab$" bHasRollOff:"$bHasRollOff$" bHasPosition:"$bHasPosition$" PanCoeff:"$PanCoeff$" SaturationDistance:"$SaturationDistance$" StabilisationDistance:"$StabilisationDistance$" StabilisationVolume:"$StabilisationVolume$" SNDMaterial:"$SNDMaterial); 01685 01686 //log(Tab$" CollisionRadius:"$CollisionRadius$" CollisionHeight:"$CollisionHeight$" bCollideActors:"$bCollideActors$" bCollideWorld:"$bCollideWorld); 01687 //log(Tab$" bBlockActors:"$bBlockActors$" bBlockPlayers:"$bBlockPlayers$" bProjTarget:"$bProjTarget$" bBlockZeroExtentTraces:"$bBlockZeroExtentTraces$" bBlockNonZeroExtentTraces:"$bBlockNonZeroExtentTraces$" bUseCylinderCollision:"$bUseCylinderCollision); 01688 //log(Tab$" LightType:"$LightType$" LightEffect:"$LightEffect$" LightBrightness:"$LightBrightness$" LightHue:"$LightHue$" LightSaturation:"$LightSaturation); 01689 //log(Tab$" LightRadius:"$LightRadius$" LightPeriod:"$LightPeriod$" LightPhase:"$LightPhase$" LightCone:"$LightCone$"); 01690 //log(Tab$" bSLightGroup:"$bSLightGroup$" bDecor1Light:"$bDecor1Light$" bDecor2Light:"$bDecor2Light$" bDecor3Light:"$bDecor3Light$" bActorLight:"$bActorLight$" bDecor4Light:"$bDecor4Light$" bDecor5Light:"$bDecor5Light$" bDecor6Light:"$bDecor6Light$" bDecor7Light:"$bDecor7Light$" bDecor8Light:"$bDecor8Light$" bDecor9Light:"$bDecor9Light$" bDecor10Light:"$bDecor10Light); 01691 //log(Tab$" bActorShadows:"$bActorShadows$" bCorona:"$bCorona$" bLensFlare:"$bLensFlare$" bLightOwnZone:"$bLightOwnZone$" bLightChanged:"$bLightChanged); 01692 01693 //log(Tab$" bBounce:"$bBounce$" bFixedRotationDir:"$bFixedRotationDir$" bRotateToDesired:"$bRotateToDesired$" bInterpolating:"$bInterpolating$" bJustTeleported:"$bJustTeleported); 01694 log(Tab$" bJustTeleported:"$bJustTeleported); 01695 //log(Tab$" Mass:"$Mass$" Buoyancy:"$Buoyancy$" RotationRate:"$RotationRate$" DesiredRotation:"$DesiredRotation$" PendingTouch:"$PendingTouch$" ColLocation:"$ColLocation); 01696 log(Tab$" DesiredRotation:"$DesiredRotation); 01697 log(Tab$" SimAnim.AnimSequence:"$SimAnim.AnimSequence$" SimAnim.bAnimLoop:"$SimAnim.bAnimLoop$" SimAnim.AnimRate:"$SimAnim.AnimRate$" SimAnim.AnimFrame:"$SimAnim.AnimFrame$" SimAnim.TweenRate:"$SimAnim.TweenRate); 01698 //log(Tab$" ForceType:"$ForceType$" ForceRadius:"$ForceRadius$" ForceScale:"$ForceScale); 01699 //log(Tab$" NetPriority:"$NetPriority$" NetUpdateFrequency:"$NetUpdateFrequency$" bNetInitial:"$bNetInitial$" bNetOwner:"$bNetOwner$" bNetRelevant:"$bNetRelevant$" bDemoRecording:"$bDemoRecording$" bClientDemoRecording:"$bClientDemoRecording$" bClientDemoNetFunc:"$bClientDemoNetFunc); 01700 log(Tab$" NetPriority:"$NetPriority); 01701 //log(Tab$" bHiddenEd:"$bHiddenEd$" bHiddenEdGroup:"$bHiddenEdGroup$" bDirectional:"$bDirectional$" bSelected:"$bSelected$" bEdLocked:"$bEdLocked$" bEdShouldSnap:"$bEdShouldSnap$" bEdSnap:"$bEdSnap); 01702 //log(Tab$" bTempEditor:"$bTempEditor$" bObsolete:"$bObsolete$" bPathColliding:"$bPathColliding$" bPathTemp:"$bPathTemp$" bScriptInitialized:"$bScriptInitialized$" MessageClass:"$MessageClass); 01703 01704 /* 01705 var transient array<int> Leaves; 01706 var const array<Actor> Touching; // List of touching actors. 01707 var const actor Deleted; // Next actor in just-deleted chain. 01708 var const array<Actor> Attached; // array of actors attached to this actor. 01709 var const transient array<ProjectorRenderInfoPtr> Projectors;// Projected textures on this actor 01710 var(Display) array<Material> Skins; // Multiple skin support - not replicated. 01711 */ 01712 log(Tab$"End Actor's dump at "$TimeStamp$":"); 01713 } 01714 01715 defaultproperties 01716 { 01717 bDecor1Light=True 01718 bDecor2Light=True 01719 bDecor3Light=True 01720 bDecor4Light=True 01721 bDecor5Light=True 01722 bDecor6Light=True 01723 bDecor7Light=True 01724 bDecor8Light=True 01725 bDecor9Light=True 01726 bDecor10Light=True 01727 bInteractive=True 01728 bReplicateMovement=True 01729 bIgnoreDynLight=True 01730 bMovable=True 01731 bHasRollOff=True 01732 bHasPosition=True 01733 bBlockZeroExtentTraces=True 01734 bBlockNonZeroExtentTraces=True 01735 bJustTeleported=True 01736 Role=ROLE_Authority 01737 RemoteRole=ROLE_DumbProxy 01738 DrawType=DT_Sprite 01739 Texture=Texture'Engine.S_Actor' 01740 DrawScale=1.000000 01741 DrawScale3D=(X=1.000000,Y=1.000000,Z=1.000000) 01742 PanCoeff=0.600000 01743 SaturationDistance=400.000000 01744 StabilisationDistance=1392.000000 01745 StabilisationVolume=-40.000000 01746 VoicesSaturationDistance=250.000000 01747 VoicesStabilisationDistance=1986.000000 01748 VoicesStabilisationVolume=-40.000000 01749 CollisionRadius=22.000000 01750 CollisionHeight=22.000000 01751 Style=STY_Normal 01752 bSLightGroup=LG_Actor 01753 Mass=100.000000 01754 NetPriority=1.000000 01755 NetUpdateFrequency=100.000000 01756 MessageClass=Class'Engine.LocalMessage' 01757 }

End Source Code