From 6ece07ee74b8b179d0a66c781a57344bcd75d3d5 Mon Sep 17 00:00:00 2001 From: oy Date: Fri, 25 Mar 2011 12:06:45 +0100 Subject: added force_vote command --- src/game/client/components/voting.cpp | 49 ++++++++++++++--------------------- 1 file changed, 19 insertions(+), 30 deletions(-) (limited to 'src/game/client/components/voting.cpp') 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; } -- cgit 1.4.1