/** * Copyright 1998-2013 Epic Games, Inc. All Rights Reserved. */ class UDKPlayerController extends GamePlayerController native; /** plays camera animations (mostly used for viewshakes) */ var CameraAnimInst CameraAnimPlayer; /** The effect to play on the camera **/ var UDKEmitCameraEffect CameraEffect; /** indicates whether this player is a dedicated server spectator (so disable rendering and don't allow it to participate at all) */ var bool bDedicatedServerSpectator; /** makes playercontroller hear much better (used to magnify hit sounds caused by player) */ var bool bAcuteHearing; /** current offsets applied to the camera due to camera anims, etc */ var vector ShakeOffset; // current magnitude to offset camera position from shake var rotator ShakeRot; // current magnitude to offset camera rotation from shake /** stores post processing settings applied by the camera animation * applied additively to the default post processing whenever a camera anim is playing */ var PostProcessSettings CamOverridePostProcess; /** additional post processing settings modifier that can be applied * @note: defaultproperties for this are hardcoded to zeroes in C++ */ var PostProcessSettings PostProcessModifier; /** Actors which may be hidden dynamically when rendering (by adding to PlayerController.HiddenActors array) */ var array PotentiallyHiddenActors; /** If true, player is on a console (used by C++) */ var bool bConsolePlayer; /** Custom scaling for vehicle check radius. Used by UTConsolePlayerController for example */ var float VehicleCheckRadiusScaling; var float PulseTimer; var bool bPulseTeamColor; /** if true, rotate smoothly to desiredrotation */ var bool bUsePhysicsRotation; struct native ObjectiveAnnouncementInfo { /** the default announcement sound to play (can be None) */ var() SoundNodeWave AnnouncementSound; /** text displayed onscreen for this announcement */ var() localized string AnnouncementText; }; cpptext { virtual UBOOL Tick( FLOAT DeltaSeconds, ELevelTick TickType ); // WWISEMODIF_START virtual UBOOL HearSound(UAkBaseSoundObject* InSoundCue, AActor* SoundPlayer, const FVector& SoundLocation, UBOOL bStopWhenOwnerDestroyed); // WWISEMODIF_END virtual UBOOL MoveWithInterpMoveTrack(UInterpTrackMove* MoveTrack, UInterpTrackInstMove* MoveInst, FLOAT CurTime, FLOAT DeltaTime); virtual void BlendPostProcessSettings(FPostProcessSettings& PPSettings, const FPostProcessSettings& PPSettingsA, const FPostProcessSettings& PPSettingsB, const FLOAT BlendWeight) const; virtual void AddPostProcessSettings(FPostProcessSettings& PPSettings, const FPostProcessSettings& PPSettingsA) const; virtual void ModifyPostProcessSettings(FPostProcessSettings& PPSettings) const; virtual void UpdateHiddenActors(const FVector& ViewLocation); virtual void PreSave(); /** * This will score both Adhesion and Friction targets. We want the same scoring function as we * don't want the two different systems fighting over targets that are close. **/ virtual FLOAT ScoreTargetAdhesionFrictionTarget( const APawn* P, FLOAT MaxDistance, const FVector& CamLoc, const FRotator& CamRot ) const; /** Determines whether this Pawn can be used for TargetAdhesion **/ virtual UBOOL IsValidTargetAdhesionFrictionTarget( APawn* P, FLOAT MaxDistance ); } /** * Sets the current gamma value. * * @param New Gamma Value, must be between 0.0 and 1.0 */ native function SetGamma(float GammaValue); // NVCHANGE_BEGIN_TURB: TSC - can't change this at runtime /** * Sets whether or not hardware physics are enabled. * * @param bEnabled Whether to enable the physics or not. */ //native function SetHardwarePhysicsEnabled(bool bEnabled); // NVCHANGE_BEGIN_TURB: TSC - can't change this at runtime /** @return Whether or not the user has a keyboard plugged-in. */ native simulated function bool IsKeyboardAvailable() const; /** @return Whether or not the user has a mouse plugged-in. */ native simulated function bool IsMouseAvailable() const; /** @param CamEmitter Clear the CameraEffect if it is the one passed in */ function RemoveCameraEffect( UDKEmitCameraEffect CamEmitter ) { if (CameraEffect == CamEmitter) { CameraEffect = None; } } /** Spawn ClientSide Camera Effects **/ unreliable client function ClientSpawnCameraEffect(class CameraEffectClass) { local vector CamLoc; local rotator CamRot; if (CameraEffectClass != None && CameraEffect == None) { CameraEffect = Spawn(CameraEffectClass, self); if (CameraEffect != None) { GetPlayerViewPoint(CamLoc, CamRot); CameraEffect.RegisterCamera(self); CameraEffect.UpdateLocation(CamLoc, CamRot, FOVAngle); } } } function ClearCameraEffect() { if( CameraEffect != None ) { CameraEffect.Destroy(); CameraEffect = none; } } /** * This will find the best AdhesionFriction target based on the params passed in. **/ native function Pawn GetTargetAdhesionFrictionTarget( FLOAT MaxDistance, const out vector CamLoc, const out Rotator CamRot );