Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class MugetsuCameraManager extends Actor placeable;
- var() float fInterpolationTime;
- var float fTimerInterpolationTime;
- var Pawn playerPawn;
- var MugetsuCameraModeBase DefaultMode;
- var MugetsuCameraModeBase PreviousMode;
- var MugetsuCameraModeBase CurrentMode;
- var Vector PreviousCameraPosition;
- var rotator PreviousCameraRotation;
- var bool bInterpolate;
- simulated function bool CameraUpdate( float fDeltaTime, out vector out_CamLoc, out rotator out_CamRot, out float out_FOV )
- {
- local bool bReturnValue;
- if(CurrentMode == None)
- {
- CurrentMode = DefaultMode;
- }
- bReturnValue = CurrentMode.CameraUpdate(fDeltaTime, out_CamLoc, out_CamRot, out_FOV, playerPawn);
- if(bInterpolate)
- {
- fTimerInterpolationTime = fMin(1.f, fTimerInterpolationTime+(fDeltaTime/fInterpolationTime));
- out_CamLoc = VLerp(PreviousCameraPosition, out_CamLoc, fTimerInterpolationTime);
- out_CamRot = RLerp(PreviousCameraRotation, out_CamRot, fTimerInterpolationTime);
- if(fTimerInterpolationTime >= 1.f)
- bInterpolate = false;
- }
- else
- {
- PreviousCameraPosition = out_CamLoc;
- PreviousCameraRotation = out_CamRot;
- }
- return bReturnValue;
- }
- function GotoPreviousCameraMode()
- {
- ChangeCamera(PreviousMode);
- }
- simulated function ChangeCamera(optional MugetsuCameraModeBase NewCameraMode)
- {
- if(NewCameraMode == none)
- {
- NewCameraMode = DefaultMode;
- }
- if(NewCameraMode != CurrentMode)
- {
- PreviousMode = CurrentMode;
- CurrentMode = NewCameraMode;
- if(PreviousMode.bSmoothTransition || CurrentMode.bSmoothTransition)
- {
- bInterpolate = true;
- fTimerInterpolationTime = 0.f;
- }
- }
- }
- DefaultProperties
- {
- fInterpolationTime = 0.5f;
- bInterpolate = false;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement