fixed amb953 - blank overrides did not strip flags

--HG--
extra : convert_revision : svn%3A39bc706e-5318-0410-9160-8a85361fbb7c/trunk%401441
This commit is contained in:
David Anderson 2007-09-18 17:07:56 +00:00
parent 9366bad594
commit 78e0de7a5b
3 changed files with 7 additions and 7 deletions

View File

@ -349,7 +349,7 @@ void AdminCache::AddCommandOverride(const char *cmd, OverrideType type, FlagBits
sm_trie_insert(pTrie, cmd, (void *)(unsigned int)flags); sm_trie_insert(pTrie, cmd, (void *)(unsigned int)flags);
g_ConCmds.UpdateAdminCmdFlags(cmd, type, flags); g_ConCmds.UpdateAdminCmdFlags(cmd, type, flags, false);
} }
bool AdminCache::GetCommandOverride(const char *cmd, OverrideType type, FlagBits *pFlags) bool AdminCache::GetCommandOverride(const char *cmd, OverrideType type, FlagBits *pFlags)
@ -397,7 +397,7 @@ void AdminCache::_UnsetCommandGroupOverride(const char *group)
sm_trie_delete(m_pCmdGrpOverrides, group); sm_trie_delete(m_pCmdGrpOverrides, group);
g_ConCmds.UpdateAdminCmdFlags(group, Override_CommandGroup, 0); g_ConCmds.UpdateAdminCmdFlags(group, Override_CommandGroup, 0, true);
} }
void AdminCache::_UnsetCommandOverride(const char *cmd) void AdminCache::_UnsetCommandOverride(const char *cmd)
@ -409,7 +409,7 @@ void AdminCache::_UnsetCommandOverride(const char *cmd)
sm_trie_delete(m_pCmdOverrides, cmd); sm_trie_delete(m_pCmdOverrides, cmd);
g_ConCmds.UpdateAdminCmdFlags(cmd, Override_Command, 0); g_ConCmds.UpdateAdminCmdFlags(cmd, Override_Command, 0, true);
} }
void AdminCache::DumpCommandOverrideCache(OverrideType type) void AdminCache::DumpCommandOverrideCache(OverrideType type)

View File

@ -648,7 +648,7 @@ void ConCmdManager::AddToCmdList(ConCmdInfo *info)
} }
} }
void ConCmdManager::UpdateAdminCmdFlags(const char *cmd, OverrideType type, FlagBits bits) void ConCmdManager::UpdateAdminCmdFlags(const char *cmd, OverrideType type, FlagBits bits, bool remove)
{ {
ConCmdInfo *pInfo; ConCmdInfo *pInfo;
@ -667,7 +667,7 @@ void ConCmdManager::UpdateAdminCmdFlags(const char *cmd, OverrideType type, Flag
pHook = (*iter); pHook = (*iter);
if (pHook->pAdmin) if (pHook->pAdmin)
{ {
if (bits) if (!remove)
{ {
pHook->pAdmin->eflags = bits; pHook->pAdmin->eflags = bits;
} else { } else {
@ -698,7 +698,7 @@ void ConCmdManager::UpdateAdminCmdFlags(const char *cmd, OverrideType type, Flag
pHook = (*citer); pHook = (*citer);
if (pHook->pAdmin && pHook->pAdmin->cmdGrpId == grpid) if (pHook->pAdmin && pHook->pAdmin->cmdGrpId == grpid)
{ {
if (bits) if (remove)
{ {
pHook->pAdmin->eflags = bits; pHook->pAdmin->eflags = bits;
} else { } else {

View File

@ -117,7 +117,7 @@ public:
const char *description, const char *description,
int flags); int flags);
ResultType DispatchClientCommand(int client, const char *cmd, int args, ResultType type); ResultType DispatchClientCommand(int client, const char *cmd, int args, ResultType type);
void UpdateAdminCmdFlags(const char *cmd, OverrideType type, FlagBits bits); void UpdateAdminCmdFlags(const char *cmd, OverrideType type, FlagBits bits, bool remove);
bool LookForSourceModCommand(const char *cmd); bool LookForSourceModCommand(const char *cmd);
bool LookForCommandAdminFlags(const char *cmd, FlagBits *pFlags); bool LookForCommandAdminFlags(const char *cmd, FlagBits *pFlags);
bool CheckCommandAccess(int client, const char *cmd, FlagBits flags); bool CheckCommandAccess(int client, const char *cmd, FlagBits flags);