Botpack
Class CHSpectator

source: e:\games\UnrealTournament\Botpack\Classes\CHSpectator.uc
Core.Object
   |
   +--Engine.Actor
      |
      +--Engine.Pawn
         |
         +--Engine.PlayerPawn
            |
            +--Engine.Spectator
               |
               +--Botpack.CHSpectator
Direct Known Subclasses:None

class CHSpectator
extends Engine.Spectator

//============================================================================= // CHSpectator. //=============================================================================
Variables
 Actor OldTarget


Function Summary
 void Fire(optional float)
 void FixFOV()
 void Jump(optional float)
 void NextWeapon()
 void PrevWeapon()
 void Verbose()
 void ViewPlayerNum(optional int)
 void ViewSelf()



Source Code


00001	//=============================================================================
00002	// CHSpectator.
00003	//=============================================================================
00004	class CHSpectator extends Spectator;
00005	
00006	var Actor OldTarget;
00007	
00008	event PostBeginPlay()
00009	{
00010		Super.PostBeginPlay();
00011		if ( Level.NetMode != NM_Client )
00012			HUDType = Level.Game.HUDType;
00013	}
00014	
00015	exec function Jump( optional float F )
00016	{
00017		ViewClass(class'SpectatorCam', true);
00018		While ( (ViewTarget != None) && ViewTarget.IsA('SpectatorCam') && SpectatorCam(ViewTarget).bSkipView )
00019			ViewClass(class'SpectatorCam', true);
00020		if ( ViewTarget.IsA('SpectatorCam') )
00021			bBehindView = false;
00022	}
00023	
00024	exec function Verbose()
00025	{
00026		if ( Bot(ViewTarget) != None )
00027			Bot(ViewTarget).bVerbose = true;
00028	}
00029	
00030	function FixFOV()
00031	{
00032		if ( (ViewTarget != None) && !ViewTarget.IsA('SpectatorCam') )
00033		{
00034			FOVAngle = 90;
00035			DesiredFOV = 90;
00036			DefaultFOV = 90;
00037		}
00038		else
00039		{
00040			FOVAngle = Default.DefaultFOV;
00041			DesiredFOV = Default.DefaultFOV;
00042			DefaultFOV = Default.DefaultFOV;
00043		}
00044	}
00045	
00046	exec function NextWeapon()
00047	{
00048		OldTarget = ViewTarget;
00049		Fire();
00050	}
00051	
00052	exec function PrevWeapon()
00053	{
00054		if ( OldTarget != None )
00055			ViewTarget = OldTarget;
00056		else if ( (Role == ROLE_Authority) && !Level.Game.IsA('Intro') )
00057			ViewPlayerNum(-2);
00058		OldTarget = None;
00059		if ( ViewTarget == None )
00060			bBehindView = false;
00061		else
00062			bBehindView = bChaseCam;
00063	}
00064	
00065	
00066	exec function ViewPlayerNum(optional int num)
00067	{
00068		bChaseCam = true;
00069		bBehindView = true;
00070		Super.ViewPlayerNum(num);
00071		FixFOV();
00072	}
00073	
00074	exec function ViewClass( class<actor> aClass, optional bool bQuiet )
00075	{
00076		Super.ViewClass(aClass, bQuiet);
00077		FixFOV();
00078	}
00079	
00080	exec function ViewSelf()
00081	{
00082		Super.ViewSelf();
00083		FixFOV();
00084	}
00085	
00086	exec function CheatView( class<actor> aClass )
00087	{
00088		Super.CheatView(aClass);
00089		FixFOV();
00090	}
00091	
00092	exec function Fire( optional float F )
00093	{
00094		if ( (Role == ROLE_Authority) && (Level.Game == None || !Level.Game.IsA('Intro')) )
00095		{
00096			ViewPlayerNum(-1);
00097			if ( ViewTarget == None )
00098				bBehindView = false;
00099			else
00100				bBehindView = bChaseCam;
00101		}
00102	}
00103	
00104	defaultproperties
00105	{
00106	     HUDType=Class'Botpack.CHSpectatorHUD'
00107	     FovAngle=110.000000
00108	     CollisionRadius=17.000000
00109	}

End Source Code