internal static void RegisterDescriptor <TDescriptor, TBaseTypeInList>(TDescriptor descriptor, List <TBaseTypeInList> storeInList) where TDescriptor : TBaseTypeInList where TBaseTypeInList : ISubsystemDescriptor
 {
     for (int i = 0; i < storeInList.Count; i++)
     {
         TBaseTypeInList tBaseTypeInList = storeInList[i];
         bool            flag            = tBaseTypeInList.id != descriptor.id;
         if (!flag)
         {
             Debug.LogWarning(string.Format("Registering subsystem descriptor with duplicate ID '{descriptor.id}' - overwriting previous entry.", new object[0]));
             storeInList[i] = (TBaseTypeInList)((object)descriptor);
             return;
         }
     }
     SubsystemDescriptorStore.ReportSingleSubsystemAnalytics(descriptor.id);
     storeInList.Add((TBaseTypeInList)((object)descriptor));
 }