UnrealI
Class LoopMover

source: e:\games\UnrealTournament\UnrealI\Classes\LoopMover.uc
Core.Object
   |
   +--Engine.Actor
      |
      +--Engine.Brush
         |
         +--Engine.Mover
            |
            +--UnrealI.LoopMover
Direct Known Subclasses:None

class LoopMover
extends Engine.Mover

//============================================================================= // LoopMover. //=============================================================================
Variables
 int NextKeyNum


Function Summary
 void BeginPlay()
 void BeginState()
 void DoOpen()
 void InterpolateEnd(Actor Other)
 void Trigger(Actor Other, Pawn EventInstigator)
 void UnTrigger(Actor Other, Pawn EventInstigator)



Source Code


00001	//=============================================================================
00002	// LoopMover.
00003	//=============================================================================
00004	class LoopMover extends Mover;
00005	
00006	// When the last keyframe position is reached, this mover 
00007	// interpolates to the first keyframe (directly, not through
00008	// the intermediate frames), and repeats the movement forever.
00009	
00010	var int NextKeyNum;
00011	
00012	function BeginPlay() 
00013	{
00014		KeyNum = 0;
00015		Super.BeginPlay();
00016	}
00017	
00018	
00019	function DoOpen() 
00020	{
00021		// Move to the next keyframe.
00022		//
00023		bOpening = true;
00024		bDelaying = false;
00025		InterpolateTo( NextKeyNum, MoveTime );
00026		PlaySound( OpeningSound );
00027		AmbientSound = MoveAmbientSound;
00028	}
00029	
00030	state() LoopMove
00031	{
00032		function Trigger( actor Other, pawn EventInstigator )
00033		{
00034			SavedTrigger = Other;
00035			Instigator = EventInstigator;
00036			SavedTrigger.BeginEvent();
00037			GotoState( 'LoopMove', 'Open' );
00038		}
00039	
00040		function UnTrigger( actor Other, pawn EventInstigator )
00041		{
00042			Enable( 'Trigger' );
00043			SavedTrigger = Other;
00044			Instigator = EventInstigator;
00045			GotoState( 'LoopMove', 'InactiveState' );
00046		}
00047			
00048		function InterpolateEnd(actor Other) 
00049		{	
00050		}
00051	
00052		function BeginState()
00053		{
00054			bOpening = false;
00055		}
00056	
00057	Open:
00058		Disable ('Trigger');
00059		NextKeyNum = KeyNum + 1;
00060		if( NextKeyNum >= NumKeys ) NextKeyNum = 0;
00061		DoOpen();
00062		FinishInterpolation();
00063		FinishedOpening();
00064	
00065		// Loop forever
00066		GotoState( 'LoopMove', 'Open' );
00067	InactiveState:
00068		FinishInterpolation();
00069		FinishedOpening();
00070		Stop;
00071	}
00072	
00073	defaultproperties
00074	{
00075	}

End Source Code