public void End_Player_Listen( EPersistenceID player_id, EPlayerListenReason reason ) { CClientPlayerInfo player_info = Get_Player_Info( player_id ); Debug.Assert( player_info != null ); player_info.Remove_Listen_Ref( reason ); if ( !player_info.Has_References() ) { Remove_Player( player_id ); } }
public void Begin_Player_Listen( EPersistenceID player_id, string player_name, EPlayerListenReason reason ) { CClientPlayerInfo player_info = Get_Player_Info( player_id ); if ( player_info == null ) { player_info = new CClientPlayerInfo( player_id ); m_Players.Add( player_id, player_info ); Query_Player( player_id ); } if ( player_name != null && player_info.Name == null ) { player_info.Name = player_name; } player_info.Add_Listen_Ref( reason ); }
public void Begin_Player_Listen( EPersistenceID player_id, EPlayerListenReason reason ) { Begin_Player_Listen( player_id, null, reason ); }
public void Remove_Listen_Ref( EPlayerListenReason reason ) { if ( !m_ReasonCounts.ContainsKey( reason ) ) { throw new CApplicationException( "Unbalanced player reference count" ); } int current_value = m_ReasonCounts[ reason ]; if ( current_value < 1 ) { throw new CApplicationException( "Unbalanced player reference count" ); } if ( current_value == 1 ) { m_ReasonCounts.Remove( reason ); } else { m_ReasonCounts[ reason ] = current_value - 1; } }
public bool Is_Listening_Due_To( EPlayerListenReason reason ) { return m_ReasonCounts.ContainsKey( reason ); }
// Methods // Public interface public void Add_Listen_Ref( EPlayerListenReason reason ) { if ( !m_ReasonCounts.ContainsKey( reason ) ) { m_ReasonCounts[ reason ] = 1; return; } int current_value = m_ReasonCounts[ reason ]; m_ReasonCounts[ reason ] = current_value + 1; }