@@ -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
@@ -528,6 +547,10 @@ CTeamplayRoundBasedRules::CTeamplayRoundBasedRules( void )
528547
529548 m_hWaitingForPlayersTimer = NULL ;
530549 m_bStopWatchShouldBeTimedWin = false ;
550+ #else // GAME_DLL
551+ #ifdef BDSBASE
552+ V_strncpy (m_pszOldCustomKillIconsFile, " " , MAX_PATH);
553+ #endif
531554#endif
532555}
533556
@@ -580,6 +603,13 @@ void CTeamplayRoundBasedRules::AddTeamRespawnWaveTime( int iTeam, float flValue
580603
581604 m_TeamRespawnWaveTimes.Set ( iTeam, flNewValue );
582605}
606+
607+ #ifdef BDSBASE
608+ void CTeamplayRoundBasedRules::SetCustomKillIconsFile (const char * pszCustomKillIconsFile)
609+ {
610+ V_StripExtension (pszCustomKillIconsFile, m_pszCustomKillIconsFile.GetForModify (), MAX_PATH);
611+ }
612+ #endif
583613#endif
584614
585615// -----------------------------------------------------------------------------
@@ -3790,6 +3820,14 @@ void CTeamplayRoundBasedRules::OnDataChanged( DataUpdateType_t updateType )
37903820 {
37913821 HandleOvertimeBegin ();
37923822 }
3823+
3824+ #ifdef BDSBASE
3825+ if (!FStrEq (m_pszOldCustomKillIconsFile, m_pszCustomKillIconsFile))
3826+ {
3827+ V_strncpy (m_pszOldCustomKillIconsFile, m_pszCustomKillIconsFile, MAX_PATH);
3828+ gHUD .RefreshHudTextures (GetCustomKillIconsFile ());
3829+ }
3830+ #endif
37933831}
37943832#endif // CLIENT_DLL
37953833
0 commit comments