mirror of
https://github.com/nillerusr/source-engine.git
synced 2024-12-28 17:13:03 +00:00
40 lines
1.8 KiB
C++
40 lines
1.8 KiB
C++
//========= Copyright Valve Corporation, All rights reserved. ============//
|
|
#include "cbase.h"
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// Purpose: Calculate the FOV for the intro sequence (needed by both server and client)
|
|
//-----------------------------------------------------------------------------
|
|
float ScriptInfo_CalculateFOV( float flFOVBlendStartTime, float flNextFOVBlendTime, int nFOV, int nNextFOV, bool bSplineRamp )
|
|
{
|
|
// Handle the spline case
|
|
if ( bSplineRamp )
|
|
{
|
|
//If we're past the zoom time, just take the new value and stop transitioning
|
|
float deltaTime = (float)( gpGlobals->curtime - flFOVBlendStartTime ) / ( flNextFOVBlendTime - flFOVBlendStartTime );
|
|
if ( deltaTime >= 1.0f )
|
|
return nNextFOV;
|
|
|
|
float flResult = SimpleSplineRemapVal( deltaTime, 0.0f, 1.0f, (float) nFOV, (float) nNextFOV );
|
|
|
|
// Msg("FOV BLENDING: curtime %.2f StartedAt %.2f FinishAt: %.2f\n", gpGlobals->curtime, flFOVBlendStartTime, flNextFOVBlendTime );
|
|
// Msg(" Perc: %.2f Start: %d End: %d FOV: %.2f\n", SimpleSplineRemapVal( deltaTime, 0.0f, 1.0f, nFOV, nNextFOV ), nFOV, nNextFOV, flResult );
|
|
|
|
return flResult;
|
|
}
|
|
|
|
// Common, linear blend
|
|
if ( (flNextFOVBlendTime - flFOVBlendStartTime) != 0 )
|
|
{
|
|
float flResult = RemapValClamped( gpGlobals->curtime, flFOVBlendStartTime, flNextFOVBlendTime, (float) nFOV, (float) nNextFOV );
|
|
|
|
// Msg("FOV BLENDING: curtime %.2f StartedAt %.2f FinishAt: %.2f\n", gpGlobals->curtime, flFOVBlendStartTime, flNextFOVBlendTime );
|
|
// Msg(" Perc: %.2f Start: %d End: %d FOV: %.2f\n", RemapValClamped( gpGlobals->curtime, flFOVBlendStartTime, flNextFOVBlendTime, 0.0, 1.0 ), nFOV, nNextFOV, flResult );
|
|
|
|
return flResult;
|
|
}
|
|
|
|
|
|
// Msg("FOV BLENDING: JUMPED TO NEXT FOV (%d)\n", nNextFOV );
|
|
return nNextFOV;
|
|
}
|