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);
g_ConCmds.UpdateAdminCmdFlags(cmd, type, flags);
g_ConCmds.UpdateAdminCmdFlags(cmd, type, flags, false);
}
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);
g_ConCmds.UpdateAdminCmdFlags(group, Override_CommandGroup, 0);
g_ConCmds.UpdateAdminCmdFlags(group, Override_CommandGroup, 0, true);
}
void AdminCache::_UnsetCommandOverride(const char *cmd)
@ -409,7 +409,7 @@ void AdminCache::_UnsetCommandOverride(const char *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)

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;
@ -667,7 +667,7 @@ void ConCmdManager::UpdateAdminCmdFlags(const char *cmd, OverrideType type, Flag
pHook = (*iter);
if (pHook->pAdmin)
{
if (bits)
if (!remove)
{
pHook->pAdmin->eflags = bits;
} else {
@ -698,7 +698,7 @@ void ConCmdManager::UpdateAdminCmdFlags(const char *cmd, OverrideType type, Flag
pHook = (*citer);
if (pHook->pAdmin && pHook->pAdmin->cmdGrpId == grpid)
{
if (bits)
if (remove)
{
pHook->pAdmin->eflags = bits;
} else {

View File

@ -117,7 +117,7 @@ public:
const char *description,
int flags);
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 LookForCommandAdminFlags(const char *cmd, FlagBits *pFlags);
bool CheckCommandAccess(int client, const char *cmd, FlagBits flags);