summaryrefslogtreecommitdiff
path: root/web/web_match.h
blob: 0a5a71d7c4629e6833c5a378e2e68d25d1ee167b (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#ifndef WEB_MATCH_H
#define WEB_MATCH_H

#include "match.h"

enum player_type {
	PT_USER,
	PT_COMP
};

struct match_state {
	int id;

	struct leg **legs;
	enum player_type *player_types;
	int *comp_undone;
	int num_players, size_players;

	int active_player;
	int num_darts;
};

struct match_opts_player {
	char *name;
	enum player_type type;
};

struct match_opts {
	struct match_opts_player *players;
	int num_players, size_players;
	int start_pts;
	int throws_first;
};

extern struct match_state *state;
extern struct match_opts *match_opts;

void match_new();
void match_add_player(int start_pts, enum player_type type, char *name);
void free_state();
void match_opts_new();
void match_opts_add_player(enum player_type type, char *name);
void match_opts_free();

struct leg *state_active_leg();

int match_num_players();
int match_winning_player();
bool match_is_over();
int match_prev_player();
int match_next_player();
int match_prev_throw_player();
bool match_player_is_comp(int pn);
bool match_first_user_has_thrown();

#endif