aboutsummaryrefslogtreecommitdiff
path: root/mp/src/game/server/team_train_watcher.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'mp/src/game/server/team_train_watcher.cpp')
-rw-r--r--mp/src/game/server/team_train_watcher.cpp19
1 files changed, 19 insertions, 0 deletions
diff --git a/mp/src/game/server/team_train_watcher.cpp b/mp/src/game/server/team_train_watcher.cpp
index b8ef36c3..0d6ebdbd 100644
--- a/mp/src/game/server/team_train_watcher.cpp
+++ b/mp/src/game/server/team_train_watcher.cpp
@@ -73,6 +73,7 @@ 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" ),
@@ -714,6 +715,24 @@ 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();