mirror of
https://github.com/mapbase-source/source-sdk-2013.git
synced 2025-04-15 22:12:32 +03:00
Added I/O/KV to point_viewcontrol inspired by later games
This commit is contained in:
parent
04687e03e9
commit
2b1a8762bd
@ -3100,6 +3100,7 @@ BEGIN_DATADESC( CTriggerCamera )
|
|||||||
#ifdef MAPBASE
|
#ifdef MAPBASE
|
||||||
DEFINE_KEYFIELD( m_fov, FIELD_FLOAT, "fov" ),
|
DEFINE_KEYFIELD( m_fov, FIELD_FLOAT, "fov" ),
|
||||||
DEFINE_KEYFIELD( m_fovSpeed, FIELD_FLOAT, "fov_rate" ),
|
DEFINE_KEYFIELD( m_fovSpeed, FIELD_FLOAT, "fov_rate" ),
|
||||||
|
DEFINE_KEYFIELD( m_flTrackSpeed, FIELD_FLOAT, "trackspeed" ),
|
||||||
|
|
||||||
DEFINE_KEYFIELD( m_bDontSetPlayerView, FIELD_BOOLEAN, "DontSetPlayerView" ),
|
DEFINE_KEYFIELD( m_bDontSetPlayerView, FIELD_BOOLEAN, "DontSetPlayerView" ),
|
||||||
#endif
|
#endif
|
||||||
@ -3110,6 +3111,10 @@ BEGIN_DATADESC( CTriggerCamera )
|
|||||||
#ifdef MAPBASE
|
#ifdef MAPBASE
|
||||||
DEFINE_INPUTFUNC( FIELD_FLOAT, "SetFOV", InputSetFOV ),
|
DEFINE_INPUTFUNC( FIELD_FLOAT, "SetFOV", InputSetFOV ),
|
||||||
DEFINE_INPUTFUNC( FIELD_FLOAT, "SetFOVRate", InputSetFOVRate ),
|
DEFINE_INPUTFUNC( FIELD_FLOAT, "SetFOVRate", InputSetFOVRate ),
|
||||||
|
|
||||||
|
//DEFINE_INPUTFUNC( FIELD_STRING, "SetTarget", InputSetTarget ), // Defined by base class
|
||||||
|
DEFINE_INPUTFUNC( FIELD_STRING, "SetTargetAttachment", InputSetTargetAttachment ),
|
||||||
|
DEFINE_INPUTFUNC( FIELD_FLOAT, "SetTrackSpeed", InputSetTrackSpeed ),
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Function Pointers
|
// Function Pointers
|
||||||
@ -3138,6 +3143,7 @@ CTriggerCamera::CTriggerCamera()
|
|||||||
{
|
{
|
||||||
m_fov = 90;
|
m_fov = 90;
|
||||||
m_fovSpeed = 1;
|
m_fovSpeed = 1;
|
||||||
|
m_flTrackSpeed = 40.0f;
|
||||||
}
|
}
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
@ -3259,6 +3265,61 @@ void CTriggerCamera::InputSetFOVRate( inputdata_t &inputdata )
|
|||||||
{
|
{
|
||||||
m_fovSpeed = inputdata.value.Float();
|
m_fovSpeed = inputdata.value.Float();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// Purpose:
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
void CTriggerCamera::InputSetTarget( inputdata_t &inputdata )
|
||||||
|
{
|
||||||
|
BaseClass::InputSetTarget( inputdata );
|
||||||
|
|
||||||
|
if ( FStrEq(STRING(m_target), "!player") )
|
||||||
|
{
|
||||||
|
AddSpawnFlags( SF_CAMERA_PLAYER_TARGET );
|
||||||
|
m_hTarget = m_hPlayer;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
RemoveSpawnFlags( SF_CAMERA_PLAYER_TARGET );
|
||||||
|
m_hTarget = GetNextTarget();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// Purpose:
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
void CTriggerCamera::InputSetTargetAttachment( inputdata_t &inputdata )
|
||||||
|
{
|
||||||
|
m_iszTargetAttachment = inputdata.value.StringID();
|
||||||
|
m_iAttachmentIndex = 0;
|
||||||
|
|
||||||
|
if (m_hTarget)
|
||||||
|
{
|
||||||
|
if ( m_iszTargetAttachment != NULL_STRING )
|
||||||
|
{
|
||||||
|
if ( !m_hTarget->GetBaseAnimating() )
|
||||||
|
{
|
||||||
|
Warning("%s tried to target an attachment (%s) on target %s, which has no model.\n", GetClassname(), STRING(m_iszTargetAttachment), STRING(m_hTarget->GetEntityName()) );
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
m_iAttachmentIndex = m_hTarget->GetBaseAnimating()->LookupAttachment( STRING(m_iszTargetAttachment) );
|
||||||
|
if ( m_iAttachmentIndex <= 0 )
|
||||||
|
{
|
||||||
|
Warning("%s could not find attachment %s on target %s.\n", GetClassname(), STRING(m_iszTargetAttachment), STRING(m_hTarget->GetEntityName()) );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// Purpose:
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
void CTriggerCamera::InputSetTrackSpeed( inputdata_t &inputdata )
|
||||||
|
{
|
||||||
|
m_flTrackSpeed = inputdata.value.Float();
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
@ -3626,7 +3687,11 @@ void CTriggerCamera::FollowTarget( )
|
|||||||
dy = dy - 360;
|
dy = dy - 360;
|
||||||
|
|
||||||
QAngle vecAngVel;
|
QAngle vecAngVel;
|
||||||
|
#ifdef MAPBASE
|
||||||
|
vecAngVel.Init( dx * m_flTrackSpeed * gpGlobals->frametime, dy * m_flTrackSpeed * gpGlobals->frametime, GetLocalAngularVelocity().z );
|
||||||
|
#else
|
||||||
vecAngVel.Init( dx * 40 * gpGlobals->frametime, dy * 40 * gpGlobals->frametime, GetLocalAngularVelocity().z );
|
vecAngVel.Init( dx * 40 * gpGlobals->frametime, dy * 40 * gpGlobals->frametime, GetLocalAngularVelocity().z );
|
||||||
|
#endif
|
||||||
SetLocalAngularVelocity(vecAngVel);
|
SetLocalAngularVelocity(vecAngVel);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -300,6 +300,10 @@ public:
|
|||||||
#ifdef MAPBASE
|
#ifdef MAPBASE
|
||||||
void InputSetFOV( inputdata_t &inputdata );
|
void InputSetFOV( inputdata_t &inputdata );
|
||||||
void InputSetFOVRate( inputdata_t &inputdata );
|
void InputSetFOVRate( inputdata_t &inputdata );
|
||||||
|
|
||||||
|
void InputSetTarget( inputdata_t &inputdata );
|
||||||
|
void InputSetTargetAttachment( inputdata_t &inputdata );
|
||||||
|
void InputSetTrackSpeed( inputdata_t &inputdata );
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
private:
|
private:
|
||||||
@ -323,6 +327,7 @@ private:
|
|||||||
#ifdef MAPBASE
|
#ifdef MAPBASE
|
||||||
float m_fov;
|
float m_fov;
|
||||||
float m_fovSpeed;
|
float m_fovSpeed;
|
||||||
|
float m_flTrackSpeed;
|
||||||
|
|
||||||
bool m_bDontSetPlayerView;
|
bool m_bDontSetPlayerView;
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
x
Reference in New Issue
Block a user