@@ -103,6 +103,9 @@ BEGIN_NETWORK_TABLE_NOBASE( CTeamplayRoundBasedRules, DT_TeamplayRoundBasedRules
103103 RecvPropBool( RECVINFO( m_bCheatsEnabledDuringLevel ) ),
104104 RecvPropTime( RECVINFO( m_flCountdownTime ) ),
105105 RecvPropTime( RECVINFO( m_flStateTransitionTime ) ),
106+ #ifdef BDSBASE
107+ RecvPropString (RECVINFO(m_pszCustomKillIconsFile)),
108+ #endif
106109#else
107110 SendPropInt ( SENDINFO( m_iRoundState ), 5 ),
108111 SendPropBool( SENDINFO( m_bInWaitingForPlayers ) ),
@@ -123,6 +126,9 @@ BEGIN_NETWORK_TABLE_NOBASE( CTeamplayRoundBasedRules, DT_TeamplayRoundBasedRules
123126 SendPropBool( SENDINFO( m_bCheatsEnabledDuringLevel ) ),
124127 SendPropTime( SENDINFO( m_flCountdownTime ) ),
125128 SendPropTime( SENDINFO( m_flStateTransitionTime ) ),
129+ #ifdef BDSBASE
130+ SendPropString (SENDINFO(m_pszCustomKillIconsFile)),
131+ #endif
126132#endif
127133END_NETWORK_TABLE ()
128134
@@ -173,6 +179,9 @@ END_SEND_TABLE()
173179BEGIN_DATADESC( CTeamplayRoundBasedRulesProxy )
174180 // Inputs.
175181 DEFINE_INPUTFUNC( FIELD_BOOLEAN, " SetStalemateOnTimelimit" , InputSetStalemateOnTimelimit ),
182+ #ifdef BDSBASE
183+ DEFINE_INPUTFUNC (FIELD_STRING, " SetCustomKillIconsFile" , InputSetCustomKillIconsFile),
184+ #endif
176185END_DATADESC ()
177186
178187// -----------------------------------------------------------------------------
@@ -182,6 +191,16 @@ void CTeamplayRoundBasedRulesProxy::InputSetStalemateOnTimelimit( inputdata_t &i
182191{
183192 TeamplayRoundBasedRules ()->SetStalemateOnTimelimit ( inputdata.value .Bool () );
184193}
194+
195+ #ifdef BDSBASE
196+ // -----------------------------------------------------------------------------
197+ // Purpose:
198+ // -----------------------------------------------------------------------------
199+ void CTeamplayRoundBasedRulesProxy::InputSetCustomKillIconsFile (inputdata_t & inputdata)
200+ {
201+ TeamplayRoundBasedRules ()->SetCustomKillIconsFile (inputdata.value .String ());
202+ }
203+ #endif
185204#endif
186205
187206#ifdef GAME_DLL
@@ -523,6 +542,10 @@ CTeamplayRoundBasedRules::CTeamplayRoundBasedRules( void )
523542
524543 m_hWaitingForPlayersTimer = NULL ;
525544 m_bStopWatchShouldBeTimedWin = false ;
545+ #else // GAME_DLL
546+ #ifdef BDSBASE
547+ V_strncpy (m_pszOldCustomKillIconsFile, " " , MAX_PATH);
548+ #endif
526549#endif
527550}
528551
@@ -575,6 +598,13 @@ void CTeamplayRoundBasedRules::AddTeamRespawnWaveTime( int iTeam, float flValue
575598
576599 m_TeamRespawnWaveTimes.Set ( iTeam, flNewValue );
577600}
601+
602+ #ifdef BDSBASE
603+ void CTeamplayRoundBasedRules::SetCustomKillIconsFile (const char * pszCustomKillIconsFile)
604+ {
605+ V_StripExtension (pszCustomKillIconsFile, m_pszCustomKillIconsFile.GetForModify (), MAX_PATH);
606+ }
607+ #endif
578608#endif
579609
580610// -----------------------------------------------------------------------------
@@ -3785,6 +3815,14 @@ void CTeamplayRoundBasedRules::OnDataChanged( DataUpdateType_t updateType )
37853815 {
37863816 HandleOvertimeBegin ();
37873817 }
3818+
3819+ #ifdef BDSBASE
3820+ if (!FStrEq (m_pszOldCustomKillIconsFile, m_pszCustomKillIconsFile))
3821+ {
3822+ V_strncpy (m_pszOldCustomKillIconsFile, m_pszCustomKillIconsFile, MAX_PATH);
3823+ gHUD .RefreshHudTextures (GetCustomKillIconsFile ());
3824+ }
3825+ #endif
37883826}
37893827#endif // CLIENT_DLL
37903828
0 commit comments