38#define SPECLIST_TAG voteinfo
39#define SPECLIST_TYPE struct voteinfo
41#define voteinfo_list_iterate(alist, pitem)\
42 TYPED_LIST_ITERATE(struct voteinfo, alist, pitem)
43#define voteinfo_list_iterate_end LIST_ITERATE_END
58 "%s() called before votinfo_queue_init()!",
84 if (
vi !=
NULL &&
vi->remove_time > 0 &&
now -
vi->remove_time > 2) {
108 "%s() called before votinfo_queue_init()!",
129 "%s() called before votinfo_queue_init()!",
153 "%s() called before votinfo_queue_init()!",
bool can_client_control(void)
bool client_is_observer(void)
bool client_has_player(void)
void voteinfo_gui_update(void)
#define fc_assert_ret_msg(condition, message,...)
#define fc_assert_ret_val_msg(condition, val, message,...)
#define fc_calloc(n, esz)
struct client_options gui_options
int send_packet_vote_submit(struct connection *pc, const struct packet_vote_submit *packet)
bool voteinfo_bar_hide_when_not_player
bool voteinfo_bar_new_at_front
bool voteinfo_bar_always_show
#define sz_strlcpy(dest, src)
void voteinfo_queue_init(void)
static int voteinfo_queue_current_index
void voteinfo_queue_delayed_remove(int vote_no)
void voteinfo_do_vote(int vote_no, enum client_vote_type vote)
bool voteinfo_bar_can_be_shown(void)
void voteinfo_queue_remove(int vote_no)
struct voteinfo * voteinfo_queue_find(int vote_no)
struct voteinfo * voteinfo_queue_get_current(int *pindex)
#define voteinfo_list_iterate(alist, pitem)
void voteinfo_queue_next(void)
int voteinfo_queue_size(void)
void voteinfo_queue_check_removed(void)
static struct voteinfo_list * voteinfo_queue
#define voteinfo_list_iterate_end
void voteinfo_queue_free(void)
void voteinfo_queue_add(int vote_no, const char *user, const char *desc, int percent_required, int flags)