@@ -97,34 +97,30 @@ void BaseSayCommand::UnregisterCommands()
9797// -----------------------------------------------------------------------------
9898CSayCommandManager* GetSayCommand (const char * szName)
9999{
100- // Find if the given name is a registered say command
101- SayCommandMap::iterator commandMapIter = g_SayCommandMap. find (szName) ;
102- if ( commandMapIter == g_SayCommandMap. end ( ))
100+ CSayCommandManager* manager = NULL ;
101+ SayCommandMap::iterator iter ;
102+ if (!find_manager<SayCommandMap, SayCommandMap::iterator>(g_SayCommandMap, szName, iter ))
103103 {
104- // If the command is not already registered, add the name and the CSayCommandManager instance to the mapping
105- g_SayCommandMap.insert (std::make_pair (szName, new CSayCommandManager (szName)));
106-
107- // Get the say command in the mapping
108- commandMapIter = g_SayCommandMap.find (szName);
104+ manager = new CSayCommandManager (szName);
105+ g_SayCommandMap.insert (std::make_pair (szName, manager));
109106 }
110-
111- // Return the CSayCommandManager instance for the command
112- return commandMapIter->second ;
107+ else
108+ {
109+ manager = iter->second ;
110+ }
111+ return manager;
113112}
114113
115114// -----------------------------------------------------------------------------
116115// Removes a CSayCommandManager instance for the given name.
117116// -----------------------------------------------------------------------------
118117void RemoveCSayCommandManager (const char * szName)
119118{
120- // Find if the given name is a registered say command
121- SayCommandMap::iterator commandMapIter = g_SayCommandMap.find (szName);
122- if ( commandMapIter != g_SayCommandMap.end () )
119+ SayCommandMap::iterator iter;
120+ if (find_manager<SayCommandMap, SayCommandMap::iterator>(g_SayCommandMap, szName, iter))
123121 {
124- // If the command is registered, delete the CSayCommandManager instance
125- // and remove the command from the mapping
126- delete commandMapIter->second ;
127- g_SayCommandMap.erase (commandMapIter);
122+ delete iter->second ;
123+ g_SayCommandMap.erase (iter);
128124 }
129125}
130126
@@ -268,15 +264,11 @@ void SayConCommand::Dispatch( const CCommand& command )
268264 END_BOOST_PY_NORET ()
269265 }
270266
271- // Find if the command is registered
272- SayCommandMap::iterator commandMapIter = g_SayCommandMap. find (stripped_command[ 0 ]) ;
273- if ( commandMapIter != g_SayCommandMap. end () )
267+
268+ SayCommandMap::iterator iter ;
269+ if (find_manager<SayCommandMap, SayCommandMap::iterator>(g_SayCommandMap, stripped_command[ 0 ], iter) )
274270 {
275- // Get the CSayCommandManager instance for the command
276- CSayCommandManager* pCSayCommandManager = commandMapIter->second ;
277-
278- // Call the command and see it wants to block the command
279- if ( pCSayCommandManager->Dispatch (stripped_command, iIndex, bTeamOnly) == BLOCK)
271+ if (iter->second ->Dispatch (stripped_command, iIndex, bTeamOnly) == BLOCK)
280272 {
281273 // Block the command
282274 return ;
@@ -370,6 +362,11 @@ CommandReturn CSayCommandManager::Dispatch( const CCommand& command, int iIndex,
370362 return CONTINUE;
371363}
372364
365+ const char * CSayCommandManager::GetName ()
366+ {
367+ return m_Name;
368+ }
369+
373370// -----------------------------------------------------------------------------
374371// Registers the say and say_team commands.
375372// -----------------------------------------------------------------------------
0 commit comments