# HG changeset patch # User Mike Becker # Date 1397059911 -7200 # Node ID 6c64b7a073af35d282f9c804ab9c32fca60b8980 # Parent c4d4b8a8f9023229370f2ef19e9b26aa7fd4ea20 tried to improve colors diff -r c4d4b8a8f902 -r 6c64b7a073af src/Makefile --- a/src/Makefile Wed Apr 09 12:07:47 2014 +0200 +++ b/src/Makefile Wed Apr 09 18:11:51 2014 +0200 @@ -29,6 +29,7 @@ include ../conf.mk SRC = main.c +SRC += colors.c SRC += network.c SRC += input.c SRC += server.c diff -r c4d4b8a8f902 -r 6c64b7a073af src/colors.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/colors.c Wed Apr 09 18:11:51 2014 +0200 @@ -0,0 +1,40 @@ +/* + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + * + * Copyright 2014 Mike Becker. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + */ + +#include "colors.h" +#include + +void init_colorpairs() { + init_pair(COL_APP, COLOR_WHITE, COLOR_BLACK); + init_pair(COL_BW, COLOR_BLACK, COLOR_CYAN); + init_pair(COL_BB, COLOR_BLACK, COLOR_BLUE); + init_pair(COL_WB, COLOR_WHITE, COLOR_BLUE); + init_pair(COL_WW, COLOR_WHITE, COLOR_CYAN); +} + diff -r c4d4b8a8f902 -r 6c64b7a073af src/colors.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/colors.h Wed Apr 09 18:11:51 2014 +0200 @@ -0,0 +1,42 @@ +/* + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + * + * Copyright 2014 Mike Becker. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + */ + +#ifndef COLORS_H +#define COLORS_H + +#define COL_APP 1 +#define COL_BW 2 +#define COL_WB 3 +#define COL_BB 4 +#define COL_WW 5 + +void init_colorpairs(); + +#endif /* COLORS_H */ + diff -r c4d4b8a8f902 -r 6c64b7a073af src/game.c --- a/src/game.c Wed Apr 09 12:07:47 2014 +0200 +++ b/src/game.c Wed Apr 09 18:11:51 2014 +0200 @@ -30,6 +30,7 @@ #include "game.h" #include "network.h" #include "input.h" +#include "colors.h" #include #include #include @@ -80,8 +81,13 @@ piecec = ' '; } - attrset((col == WHITE ? A_BOLD : A_DIM) | - COLOR_PAIR((y&1)==(x&1) ? COL_WB : COL_BW)); + _Bool boardblack = (y&1)==(x&1); + attrset((col==WHITE ? A_BOLD : A_DIM)| + COLOR_PAIR(col == WHITE ? + (boardblack ? COL_WB : COL_WW) : + (boardblack ? COL_BB : COL_BW) + ) + ); int cy = gamestate->mycolor == WHITE ? boardy-y : boardy-7+y; int cx = gamestate->mycolor == WHITE ? boardx+x*3 : boardx+21-x*3; @@ -433,6 +439,8 @@ mvaddstr(getmaxy(stdscr)-1, 0, "Game has ended. Press any key to leave..."); refresh(); + cbreak(); + flushinp(); getch(); } diff -r c4d4b8a8f902 -r 6c64b7a073af src/input.c --- a/src/input.c Wed Apr 09 12:07:47 2014 +0200 +++ b/src/input.c Wed Apr 09 18:11:51 2014 +0200 @@ -31,12 +31,6 @@ #include #include -void init_colorpairs() { - init_pair(COL_YB, COLOR_YELLOW, COLOR_BLUE); - init_pair(COL_BW, COLOR_BLACK, COLOR_WHITE); - init_pair(COL_WB, COLOR_WHITE, COLOR_BLACK); -} - int prompt_yesno(char *msg) { printw("%s (y/n)? ", msg); refresh(); diff -r c4d4b8a8f902 -r 6c64b7a073af src/input.h --- a/src/input.h Wed Apr 09 12:07:47 2014 +0200 +++ b/src/input.h Wed Apr 09 18:11:51 2014 +0200 @@ -37,12 +37,6 @@ extern "C" { #endif -#define COL_YB 1 -#define COL_BW 2 -#define COL_WB 3 - -void init_colorpairs(); - int prompt_yesno(char *msg); diff -r c4d4b8a8f902 -r 6c64b7a073af src/main.c --- a/src/main.c Wed Apr 09 12:07:47 2014 +0200 +++ b/src/main.c Wed Apr 09 18:11:51 2014 +0200 @@ -30,6 +30,7 @@ #include "terminal-chess.h" #include "game.h" #include "input.h" +#include "colors.h" #include #include #include @@ -170,7 +171,7 @@ if (has_colors()) { start_color(); init_colorpairs(); - bkgd(COLOR_PAIR(COL_YB)); + bkgd(COLOR_PAIR(COL_APP)); } else { fprintf(stderr, "Non-colored terminals are not supported yet."); endwin();