15 , collidableArea_ (nullptr)
16 , abortEvents_ (false)
39 for (
auto& objectEventsPair :
events_)
40 for (
auto& eventContextPair : objectEventsPair.second)
43 eventsToRemove.
Enqueue (eventContext);
45 while (!eventsToRemove.
IsEmpty ())
81 for (
auto& objectEvents :
events_)
83 for (
auto& eventTriggering : objectEvents.second)
109 auto objectEvents =
events_[&object];
111 for (
auto& event : objectEvents)
152 if (eventTriggering ==
nullptr)
155 auto eventTriggers = eventTriggering->TryGetValue (&event);
157 if (eventTriggers ==
nullptr)
163 if (!triggers.Add (eventContext))
166 eventTriggering->Add (
173 return eventTriggers->Add (eventContext);
183 if (eventTriggering ==
nullptr)
186 auto eventTriggers = eventTriggering->
TryGetValue (&event);
188 if (eventTriggers ==
nullptr)
191 if (!eventTriggers->Remove (eventContext))
194 if (eventTriggers->IsEmpty ())
195 eventTriggering->Remove (&event);
197 if (eventTriggering->IsEmpty ())
226 bool successful =
event.Call (type, args);
228 if (args.AbortEvents ())