aboutsummaryrefslogtreecommitdiff
path: root/pregame.c
blob: c3f145b7e58314f54c27c57977c708b49172ca94 (plain)
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
57
58
59
60
61
62
63
64
65
66
#include "7w.h"
#include <stdio.h>

void pregame_refresh(int* data, int cursor) {
	io_clearscreen();
	int y = 0;
	int width = 28;
	io_printborder(0, y++, width);
	char s[40];
	sprintf(s, "Number of players: %d  %c", data[7], (cursor == 0) ? '*' : ' ');
	y = io_printtext(0, y, width, s);
	int i;
	for (i = 0; i < data[7]; i++) {
		sprintf(s, "Player %d is: %s    %c", i + 1,
				(data[i] == 1) ? "ai   " : "human",
				(cursor == i + 1) ? '*' : ' ');
		y = io_printtext(0, y, width, s);
	}
	sprintf(s, "Play                  %c", (cursor == data[7] + 1) ? '*' : ' ');
	y = io_printtext(0, y, width, s);
	io_printborder(0, y++, width);
}

int* pregame() {
	static int ret[8] = { 0, 1, 1, 1, 1, 1, 1, 1 };
	ret[7] = 3;
	int cursor = 0;
	int pregaming = 1;
	while (pregaming) {
		pregame_refresh(ret, cursor);
		switch (io_getkey()) {
		case UP:
			cursor--;
			if (cursor < 0)
				cursor = ret[7] + 1;
			break;
		case DOWN:
			cursor = (cursor + 1) % (ret[7] + 2);
			break;
		case RIGHT:
		case ENTER:
			if (cursor == 0) {
				ret[7]++;
				if (ret[7] > 7)
					ret[7] = 3;
			} else if (cursor == ret[7] + 1) {
				pregaming = 0;
			} else {
				ret[cursor - 1] = !ret[cursor - 1];
			}
			break;
		case LEFT:
			if (cursor == 0) {
				ret[7]--;
				if (ret[7] < 3)
					ret[7] = 7;
			} else if (cursor == ret[7] + 1) {
				//do nothing
			} else {
				ret[cursor - 1] = !ret[cursor - 1];
			}
			break;
		}
	}
	return ret;
}
bgstack15