39#define SPECLIST_TAG vote_cast
40#define SPECLIST_TYPE struct vote_cast
42#define vote_cast_list_iterate(alist, pvc) \
43 TYPED_LIST_ITERATE(struct vote_cast, alist, pvc)
44#define vote_cast_list_iterate_end LIST_ITERATE_END
60#define SPECLIST_TAG vote
61#define SPECLIST_TYPE struct vote
63#define vote_list_iterate(alist, pvote) \
64 TYPED_LIST_ITERATE(struct vote, alist, pvote)
65#define vote_list_iterate_end LIST_ITERATE_END
struct vote_cast_list * votes_cast
void send_running_votes(struct connection *pconn, bool only_team_votes)
void send_remove_team_votes(struct connection *pconn)
int describe_vote(struct vote *pvote, char *buf, int buflen)
bool conn_can_vote(const struct connection *pconn, const struct vote *pvote)
struct vote * vote_new(struct connection *caller, const char *allargs, int command_id)
bool vote_is_team_only(const struct vote *pvote)
void cancel_connection_votes(struct connection *pconn)
struct vote * get_vote_by_no(int vote_no)
bool vote_would_pass_immediately(const struct connection *caller, int command_id)
void send_updated_vote_totals(struct conn_list *dest)
void clear_all_votes(void)
struct vote * get_vote_by_caller(const struct connection *caller)
void connection_vote(struct connection *pconn, struct vote *pvote, enum vote_type type)
struct vote_list * vote_list
const struct connection * vote_get_caller(const struct vote *pvote)
int count_voters(const struct vote *pvote)
void remove_vote(struct vote *pvote)
bool conn_can_see_vote(const struct connection *pconn, const struct vote *pvote)