Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1. class MugetsuCameraManager extends Actor placeable;
  2.  
  3. var() float fInterpolationTime;
  4.  
  5. var float fTimerInterpolationTime;
  6.  
  7. var Pawn playerPawn;
  8.  
  9. var MugetsuCameraModeBase DefaultMode;
  10. var MugetsuCameraModeBase PreviousMode;
  11. var MugetsuCameraModeBase CurrentMode;
  12.  
  13. var Vector PreviousCameraPosition;
  14. var rotator PreviousCameraRotation;
  15.  
  16. var bool bInterpolate;
  17.  
  18. simulated function bool CameraUpdate( float fDeltaTime, out vector out_CamLoc, out rotator out_CamRot, out float out_FOV )
  19. {
  20.     local bool bReturnValue;   
  21.  
  22.     if(CurrentMode == None)
  23.     {
  24.         CurrentMode = DefaultMode;
  25.     }  
  26.  
  27.     bReturnValue = CurrentMode.CameraUpdate(fDeltaTime, out_CamLoc, out_CamRot, out_FOV, playerPawn);
  28.  
  29.     if(bInterpolate)
  30.     {
  31.         fTimerInterpolationTime = fMin(1.f, fTimerInterpolationTime+(fDeltaTime/fInterpolationTime));
  32.         out_CamLoc = VLerp(PreviousCameraPosition, out_CamLoc, fTimerInterpolationTime);
  33.         out_CamRot = RLerp(PreviousCameraRotation, out_CamRot, fTimerInterpolationTime);
  34.        
  35.         if(fTimerInterpolationTime >= 1.f)
  36.             bInterpolate = false;
  37.     }
  38.     else
  39.     {
  40.         PreviousCameraPosition = out_CamLoc;
  41.         PreviousCameraRotation = out_CamRot;
  42.     }
  43.  
  44.  
  45.     return bReturnValue;
  46. }
  47.  
  48. function GotoPreviousCameraMode()
  49. {
  50.     ChangeCamera(PreviousMode);
  51. }
  52.  
  53. simulated function ChangeCamera(optional MugetsuCameraModeBase NewCameraMode)
  54. {
  55.     if(NewCameraMode == none)
  56.     {
  57.         NewCameraMode = DefaultMode;
  58.     }
  59.  
  60.  
  61.     if(NewCameraMode != CurrentMode)
  62.     {  
  63.  
  64.         PreviousMode = CurrentMode;
  65.         CurrentMode = NewCameraMode;
  66.  
  67.         if(PreviousMode.bSmoothTransition || CurrentMode.bSmoothTransition)
  68.         {
  69.             bInterpolate = true;
  70.             fTimerInterpolationTime = 0.f;
  71.         }
  72.     }
  73. }
  74.  
  75.  
  76. DefaultProperties
  77. {
  78.     fInterpolationTime = 0.5f;
  79.     bInterpolate = false;
  80. }