84 lines
2.3 KiB
Ucode
84 lines
2.3 KiB
Ucode
class KFPlayerCamera_Versus extends KFPlayerCamera;
|
|
|
|
/** Implements zed waiting camera */
|
|
var(Camera) editinline transient KFPlayerZedWaitingCamera PlayerZedWaitingCam;
|
|
/** Class to use for zed waiting camera. */
|
|
var(Camera) protected const class<KFPlayerZedWaitingCamera> PlayerZedWaitingCameraClass;
|
|
|
|
/** Implements zed suicide camera */
|
|
var(Camera) editinline transient KFPlayerZedSuicideCamera PlayerZedSuicideCam;
|
|
/** Class to use for zed suicide camera. */
|
|
var(Camera) protected const class<KFPlayerZedSuicideCamera> PlayerZedSuicideCameraClass;
|
|
|
|
function PostBeginPlay()
|
|
{
|
|
super.PostBeginPlay();
|
|
|
|
// Setup camera modes
|
|
if ( (PlayerZedWaitingCam == None) && (PlayerZedWaitingCameraClass != None) )
|
|
{
|
|
PlayerZedWaitingCam = KFPlayerZedWaitingCamera( CreateCamera(PlayerZedWaitingCameraClass) );
|
|
}
|
|
}
|
|
|
|
/*
|
|
* Switches immediately to zed suicide cam so we can perform our init immediately
|
|
* Pawn will be none on first frame after death
|
|
*/
|
|
function SwapToZedSuicideCam( vector SuicideLocation )
|
|
{
|
|
local GameCameraBase NewCamera;
|
|
|
|
// Setup camera modes
|
|
if ( (PlayerZedSuicideCam == None) && (PlayerZedSuicideCameraClass != None) )
|
|
{
|
|
PlayerZedSuicideCam = KFPlayerZedSuicideCamera( CreateCamera(PlayerZedSuicideCameraClass) );
|
|
}
|
|
|
|
// decide which camera to use
|
|
NewCamera = PlayerZedSuicideCam;
|
|
|
|
// handle a switch if necessary
|
|
if (CurrentCamera != NewCamera)
|
|
{
|
|
if (CurrentCamera != None)
|
|
{
|
|
CurrentCamera.OnBecomeInActive( NewCamera );
|
|
}
|
|
|
|
if (NewCamera != None)
|
|
{
|
|
NewCamera.OnBecomeActive( CurrentCamera );
|
|
}
|
|
|
|
CurrentCamera = NewCamera;
|
|
}
|
|
|
|
// Init our suicide cam
|
|
PlayerZedSuicideCam.InitSuicideCam( SuicideLocation );
|
|
}
|
|
|
|
/**
|
|
* Polls game state to determine best camera to use.
|
|
*/
|
|
protected function GameCameraBase FindBestCameraType( Actor CameraTarget )
|
|
{
|
|
if( CameraStyle == 'PlayerZedWaiting' )
|
|
{
|
|
return PlayerZedWaitingCam;
|
|
}
|
|
else if (CameraStyle == 'ZedSuicide')
|
|
{
|
|
return PlayerZedSuicideCam;
|
|
}
|
|
|
|
return super.FindBestCameraType( CameraTarget );
|
|
}
|
|
|
|
DefaultProperties
|
|
{
|
|
ThirdPersonCameraClass=class'KFThirdPersonCamera_Versus'
|
|
PlayerZedWaitingCameraClass=class'KFPlayerZedWaitingCamera'
|
|
PlayerZedSuicideCameraClass=class'KFPlayerZedSuicideCamera'
|
|
}
|