public void register(IGUIScreenLayout listener) { bool inserted = false; for (int i = indexFirstEmpty, c = listeners.Length; i < c; ++i) { if (listeners[i] == null) { listeners[i] = listener; inserted = true; indexFirstEmpty = i + 1; // I guess next cell is empty break; } } if (!inserted) { Debug.LogError("listeners array out of space. Increment size one unit more."); } }
public void remove(IGUIScreenLayout listener) { int id = listener.GetHashCode(); for (int i = 0, c = listeners.Length; i < c; ++i) { if (listeners[i] == null) { continue; } else if (id == listeners[i].GetHashCode()) { listeners[i] = null; if (i < indexFirstEmpty) { indexFirstEmpty = i; } break; } } }