public int Alloc(IHleUidPoolClass Item) { if (Item.GetType() != this.Type) { throw(new InvalidOperationException("Trying to insert invalid object type")); } int Index = -1; if (ReuseIds) { //Console.Error.WriteLine("******************************************"); if (FreedIds.Count > 0) { Index = FreedIds.Min(); FreedIds.Remove(Index); } } if (Index == -1) { Index = LastId++; } Items[Index] = Item; RevItems[Item] = Index; return(Index); }
public static int GetUidIndex(this IHleUidPoolClass IHleUidPoolClass, InjectContext InjectContext) { return(InjectContext.GetInstance <HleUidPoolManager>() .GetOrAllocIndex(IHleUidPoolClass.GetType(), IHleUidPoolClass)); }
public static void RemoveUid(this IHleUidPoolClass IHleUidPoolClass, InjectContext InjectContext) { InjectContext.GetInstance <HleUidPoolManager>().RemoveItem(IHleUidPoolClass.GetType(), IHleUidPoolClass); }