diff options
Diffstat (limited to 'src/game/client/components/voting.cpp')
| -rw-r--r-- | src/game/client/components/voting.cpp | 49 |
1 files changed, 19 insertions, 30 deletions
diff --git a/src/game/client/components/voting.cpp b/src/game/client/components/voting.cpp index 808b6669..6e00a5d5 100644 --- a/src/game/client/components/voting.cpp +++ b/src/game/client/components/voting.cpp @@ -31,48 +31,37 @@ void CVoting::Callvote(const char *pType, const char *pValue, const char *pReaso Client()->SendPackMsg(&Msg, MSGFLAG_VITAL); } -void CVoting::CallvoteKick(int ClientID, const char *pReason) +void CVoting::CallvoteKick(int ClientID, const char *pReason, bool ForceVote) { - char aBuf[32]; - str_format(aBuf, sizeof(aBuf), "%d", ClientID); - Callvote("kick", aBuf, pReason); -} - -void CVoting::CallvoteOption(int OptionId, const char *pReason) -{ - CVoteOption *pOption = m_pFirst; - while(pOption && OptionId >= 0) + if(ForceVote) { - if(OptionId == 0) - { - Callvote("option", pOption->m_aDescription, pReason); - break; - } - - OptionId--; - pOption = pOption->m_pNext; + char aBuf[128]; + str_format(aBuf, sizeof(aBuf), "force_vote kick %d %s", ClientID, pReason); + Client()->Rcon(aBuf); } -} - -// TODO: fix these two -void CVoting::ForcevoteKick(int ClientID, const char *pReason) -{ - char aBuf[32]; - if(pReason[0]) - str_format(aBuf, sizeof(aBuf), "kick %d %s", ClientID, pReason); else - str_format(aBuf, sizeof(aBuf), "kick %d", ClientID); - Client()->Rcon(aBuf); + { + char aBuf[32]; + str_format(aBuf, sizeof(aBuf), "%d", ClientID); + Callvote("kick", aBuf, pReason); + } } -void CVoting::ForcevoteOption(int OptionId, const char *pReason) +void CVoting::CallvoteOption(int OptionId, const char *pReason, bool ForceVote) { CVoteOption *pOption = m_pFirst; while(pOption && OptionId >= 0) { if(OptionId == 0) { - Client()->Rcon(pOption->m_aDescription); + if(ForceVote) + { + char aBuf[128]; + str_format(aBuf, sizeof(aBuf), "force_vote option \"%s\" %s", pOption->m_aDescription, pReason); + Client()->Rcon(aBuf); + } + else + Callvote("option", pOption->m_aDescription, pReason); break; } |