mirror of
https://github.com/nillerusr/source-engine.git
synced 2026-08-11 03:09:36 +00:00
add source-sdk-2013
This commit is contained in:
@@ -73,7 +73,6 @@ BEGIN_DATADESC( CTeamTrainWatcher )
|
||||
DEFINE_INPUTFUNC( FIELD_FLOAT, "SetSpeedForwardModifier", InputSetSpeedForwardModifier ),
|
||||
DEFINE_INPUTFUNC( FIELD_INTEGER, "SetTrainRecedeTime", InputSetTrainRecedeTime ),
|
||||
DEFINE_INPUTFUNC( FIELD_BOOLEAN, "SetTrainCanRecede", InputSetTrainCanRecede ),
|
||||
DEFINE_INPUTFUNC( FIELD_INTEGER, "SetTrainRecedeTimeAndUpdate", InputSetTrainRecedeTimeAndUpdate ),
|
||||
|
||||
// Outputs
|
||||
DEFINE_OUTPUT( m_OnTrainStartRecede, "OnTrainStartRecede" ),
|
||||
@@ -312,7 +311,6 @@ CTeamTrainWatcher::CTeamTrainWatcher()
|
||||
m_bReceding = false;
|
||||
|
||||
m_flTrainDistanceFromStart = 0.0f;
|
||||
m_flTrainDistanceAccumulator = 0.f;
|
||||
|
||||
m_nTrainRecedeTime = 0;
|
||||
|
||||
@@ -716,24 +714,6 @@ void CTeamTrainWatcher::InputSetTrainRecedeTime( inputdata_t &inputdata )
|
||||
}
|
||||
}
|
||||
|
||||
void CTeamTrainWatcher::InputSetTrainRecedeTimeAndUpdate(inputdata_t &inputdata)
|
||||
{
|
||||
InputSetTrainRecedeTime( inputdata );
|
||||
|
||||
// update our time if we're already counting down
|
||||
if ( m_flRecedeTime > 0 )
|
||||
{
|
||||
m_flRecedeTotalTime = tf_escort_recede_time.GetFloat();
|
||||
if ( m_nTrainRecedeTime > 0 )
|
||||
{
|
||||
m_flRecedeTotalTime = m_nTrainRecedeTime;
|
||||
}
|
||||
|
||||
m_flRecedeStartTime = gpGlobals->curtime;
|
||||
m_flRecedeTime = m_flRecedeStartTime + m_flRecedeTotalTime;
|
||||
}
|
||||
}
|
||||
|
||||
void CTeamTrainWatcher::InputSetTrainCanRecede( inputdata_t &inputdata )
|
||||
{
|
||||
m_bTrainCanRecede = inputdata.value.Bool();
|
||||
@@ -1237,48 +1217,8 @@ void CTeamTrainWatcher::WatcherThink( void )
|
||||
|
||||
m_flTotalProgress = clamp( 1.0 - ( flDistanceToGoal / m_flTotalPathDistance ), 0.0, 1.0 );
|
||||
|
||||
float flLastDistanceFromStart = m_flTrainDistanceFromStart;
|
||||
m_flTrainDistanceFromStart = m_flTotalPathDistance - flDistanceToGoal;
|
||||
|
||||
//engine->Con_NPrintf( 0, "%f", m_flTrainDistanceAccumulator );
|
||||
|
||||
const int nMinProgressToReport = 16; // 16 hammer units per foot
|
||||
// Check if we've made forward progress.
|
||||
if ( m_flTrainDistanceFromStart > flLastDistanceFromStart )
|
||||
{
|
||||
// Accumulate distance traveled
|
||||
m_flTrainDistanceAccumulator += m_flTrainDistanceFromStart - flLastDistanceFromStart;
|
||||
|
||||
// If we're travelling forward and made enough progress to warrant firing an event
|
||||
if ( m_iTrainSpeedLevel > 0 && m_flTrainDistanceAccumulator >= nMinProgressToReport )
|
||||
{
|
||||
|
||||
m_flTrainDistanceAccumulator -= nMinProgressToReport;
|
||||
|
||||
// Fire an event for all the touching players
|
||||
if ( m_hAreaCap.Get() )
|
||||
{
|
||||
for ( int i = 1; i <= gpGlobals->maxClients; i++ )
|
||||
{
|
||||
CBaseMultiplayerPlayer *pPlayer = ToBaseMultiplayerPlayer( UTIL_PlayerByIndex( i ) );
|
||||
if ( pPlayer )
|
||||
{
|
||||
if ( m_hAreaCap->IsTouching( pPlayer ) )
|
||||
{
|
||||
IGameEvent *pEvent = gameeventmanager->CreateEvent( "payload_pushed" );
|
||||
if ( pEvent )
|
||||
{
|
||||
pEvent->SetInt( "pusher", pPlayer->GetUserID() );
|
||||
pEvent->SetInt( "distance", 1 );
|
||||
gameeventmanager->FireEvent( pEvent, true );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// play alert sounds if necessary
|
||||
for ( int iCount = 0 ; iCount < m_iNumCPLinks ; iCount++ )
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user