----------------------------------------------------------------------------- Removes an event from the EventManager. @param event The event to remove. -----------------------------------------------------------------------------
| 220 | /// @param event The event to remove. |
| 221 | //----------------------------------------------------------------------------- |
| 222 | void EventManager::unregisterEvent( const char* event ) |
| 223 | { |
| 224 | // If the event doesn't exist, we have succeeded in removing it! |
| 225 | if( !isRegisteredEvent( event ) ) |
| 226 | return; |
| 227 | |
| 228 | // Iterate over all events. |
| 229 | StringTableEntry eventName = StringTable->insert( event ); |
| 230 | for( Vector<StringTableEntry>::iterator iter = mEvents.begin(); iter != mEvents.end(); iter++ ) |
| 231 | { |
| 232 | // Erase the event. |
| 233 | if( *iter == eventName ) |
| 234 | { |
| 235 | mEvents.erase_fast( iter ); |
| 236 | break; |
| 237 | } |
| 238 | } |
| 239 | |
| 240 | // Delete the subscriber list. |
| 241 | Vector<EventManagerListener::Subscriber>* subscribers = mListener.mSubscribers.remove( event ); |
| 242 | if( subscribers ) |
| 243 | delete subscribers; |
| 244 | } |
| 245 | |
| 246 | //----------------------------------------------------------------------------- |
| 247 | /// Post an event to the EventManager's queue. |
no test coverage detected