IMPLEMENT_RMI(CGameRules, SvStartVoting) { CActor* pActor = GetActorByChannelId(m_pGameFramework->GetGameChannelId(pNetChannel)); if(pActor) StartVoting(pActor,params.vote_type,params.entityId,params.param); return true; }
bool VoteMenuHandler::StartVote(IBaseMenu *menu, unsigned int num_clients, int clients[], unsigned int max_time, unsigned int flags/* =0 */) { if (!InitializeVoting(menu, menu->GetHandler(), max_time, flags)) { return false; } float fVoteDelay = sm_vote_delay.GetFloat(); if (fVoteDelay < 1.0) { g_next_vote = 0.0; } else { /* This little trick breaks for infinite votes! * However, we just ignore that since those 1) shouldn't exist and * 2) people must be checking IsVoteInProgress() beforehand anyway. */ g_next_vote = gpGlobals->curtime + fVoteDelay + (float)max_time; } for (unsigned int i=0; i<num_clients; i++) { menu->Display(clients[i], max_time, this); } StartVoting(); return true; }