GameFramework.EntityManager.GenNextId C# (CSharp) Method

GenNextId() private method

private GenNextId ( ) : int
return int
        private int GenNextId()
        {
            int id = 0;
            int startId = 0;
            if (GlobalVariables.Instance.IsClient) {
                startId = c_StartId_Client;
                while (m_UnusedClientIds.Count > 100) {
                    int t = m_UnusedClientIds.Pop();
                    if (!m_Entities.Contains(t)) {
                        id = t;
                        break;
                    }
                }
            } else {
                startId = c_StartId;
                while (m_UnusedIds.Count > 100) {
                    int t = m_UnusedIds.Pop();
                    if (!m_Entities.Contains(t)) {
                        id = t;
                        break;
                    }
                }
            }
            if (id <= 0) {
                for (int i = 0; i < c_MaxIdNum; ++i) {
                    int t = (m_NextInfoId + i - startId) % c_MaxIdNum + startId;
                    if (!m_Entities.Contains(t)) {
                        id = t;
                        break;
                    }
                }
                if (id > 0) {
                    m_NextInfoId = (id + 1 - startId) % c_MaxIdNum + startId;
                }
            }
            return id;
        }