From 0e85c760ca1fbb581765dd18d3159794791c3d08 Mon Sep 17 00:00:00 2001 From: David Vazgenovich Shakaryan Date: Mon, 11 Apr 2022 17:36:51 -0700 Subject: add title bar --- dartbot.c | 50 +++++++++++++++++++++++++++----------------------- 1 file changed, 27 insertions(+), 23 deletions(-) (limited to 'dartbot.c') diff --git a/dartbot.c b/dartbot.c index 77681ae..1465128 100644 --- a/dartbot.c +++ b/dartbot.c @@ -99,7 +99,7 @@ void init_colours() FOREACH_COLOUR(GEN_COLOUR_INIT_PAIR) } -WINDOW *w, *statw, *promptw; +WINDOW *w, *titlew, *statw, *promptw; struct ccoords { double x, y; @@ -376,24 +376,26 @@ void user_visit(struct leg *l) struct visit *v = l->visits + l->n_visits++; char status[100]; - int len = sprintf(status, "%d remaining", l->rem); - char *target = CHECKOUTS[2][l->rem-1]; - if (target) { - int trem = l->rem - segment_points(segment_from_name(target)); - len += sprintf(status + len, " (%s", target); - if (trem) { - target = CHECKOUTS[1][trem-1]; - len += sprintf(status + len, "-%s", target); - trem = trem - segment_points(segment_from_name(target)); - + int len = sprintf(status, " %d remaining", l->rem); + if (l->rem <= 170) { + char *target = CHECKOUTS[2][l->rem-1]; + if (target) { + int trem = l->rem - segment_points(segment_from_name(target)); + len += sprintf(status + len, " (%s", target); if (trem) { - target = CHECKOUTS[0][trem-1]; + target = CHECKOUTS[1][trem-1]; len += sprintf(status + len, "-%s", target); + trem = trem - segment_points(segment_from_name(target)); + + if (trem) { + target = CHECKOUTS[0][trem-1]; + len += sprintf(status + len, "-%s", target); + } } + len += sprintf(status + len, ")"); } - len += sprintf(status + len, ")"); } - char prompt[] = "enter points> "; + char prompt[] = " enter points> "; curses_status(status); curses_prompt(prompt); @@ -459,7 +461,7 @@ void curses_draw(struct leg *l1, struct leg *l2) char buf[100]; int buflen = 0; - int wlines = LINES - 4; + int wlines = LINES - 3; int n_visits = l1->n_visits > l2->n_visits ? l1->n_visits : l2->n_visits; int start_visit = (wlines > n_visits) ? 0 : (n_visits - wlines); int offset = 0; @@ -514,19 +516,20 @@ void curses_match(int start_points, void (*f1)(struct leg *), void (*f2)(struct leg *)) { initscr(); - border(0, 0, 0, 0, 0, 0, 0, 0); - move(0, 2); - addstr("dartbot"); refresh(); start_color(); init_colours(); curs_set(0); noecho(); - w = newwin(LINES-4, COLS-2, 1, 1); - statw = newwin(1, COLS-2, LINES-3, 1); - promptw = newwin(1, COLS-2, LINES-2, 1); + w = newwin(LINES-3, COLS, 1, 0); + titlew = newwin(1, COLS, 0, 0); + statw = newwin(1, COLS, LINES-2, 0); + promptw = newwin(1, COLS, LINES-1, 0); + wbkgd(titlew, COLOR_PAIR(C_STATUS)); wbkgd(statw, COLOR_PAIR(C_STATUS)); + waddstr(titlew, " dartbot"); + wrefresh(titlew); struct leg *l1 = leg_init(start_points); struct leg *l2 = leg_init(start_points); @@ -544,15 +547,16 @@ void curses_match(int start_points, void (*f1)(struct leg *), } if (l1->rem <= 0) - curses_status("Player 1 wins."); + curses_status(" Player 1 wins."); else if (l2->rem <= 0) - curses_status("Player 2 wins."); + curses_status(" Player 2 wins."); leg_free(l1); leg_free(l2); wgetch(w); delwin(promptw); delwin(statw); + delwin(titlew); delwin(w); endwin(); } -- cgit v1.2.3-70-g09d2