diff --git a/demos/xmas.c b/demos/xmas.c index fcb6fe76..c47d0643 100644 --- a/demos/xmas.c +++ b/demos/xmas.c @@ -44,7 +44,7 @@ /* */ /******************************************************************************/ -/* $Id: xmas.c,v 1.26 2006/09/24 21:23:43 wmcbrine Exp $ */ +/* $Id: xmas.c,v 1.27 2006/09/24 23:49:15 wmcbrine Exp $ */ #include #include @@ -357,32 +357,19 @@ void lil(WINDOW *win) void midtop(WINDOW *win) { - mvwaddch(win, 0, 2, (chtype) 'y'); - mvwaddch(win, 0, 3, (chtype) 'y'); - mvwaddch(win, 1, 2, (chtype) '0'); - mvwaddch(win, 1, 3, (chtype) '('); - mvwaddch(win, 1, 4, (chtype) '='); - mvwaddch(win, 1, 5, (chtype) ')'); - mvwaddch(win, 1, 6, (chtype) '~'); + mvwaddstr(win, 0, 2, "yy"); + mvwaddstr(win, 1, 2, "0(=)~"); } void bigtop(WINDOW *win) { - mvwaddch(win, 0, 17, (chtype) '\\'); - mvwaddch(win, 0, 18, (chtype) '/'); - mvwaddch(win, 0, 20, (chtype) '\\'); - mvwaddch(win, 0, 21, (chtype) '/'); + mvwaddstr(win, 0, 17, "\\/"); + mvwaddstr(win, 0, 20, "\\/"); mvwaddch(win, 1, 18, (chtype) '\\'); mvwaddch(win, 1, 20, (chtype) '/'); - mvwaddch(win, 2, 19, (chtype) '|'); - mvwaddch(win, 2, 20, (chtype) '_'); - mvwaddch(win, 3, 18, (chtype) '/'); - mvwaddch(win, 3, 19, (chtype) '^'); - mvwaddch(win, 3, 20, (chtype) '0'); - mvwaddch(win, 3, 21, (chtype) '\\'); - mvwaddch(win, 4, 17, (chtype) '/'); - mvwaddch(win, 4, 18, (chtype) '/'); - mvwaddch(win, 4, 19, (chtype) '\\'); + mvwaddstr(win, 2, 19, "|_"); + mvwaddstr(win, 3, 18, "/^0\\"); + mvwaddstr(win, 4, 17, "//\\"); mvwaddch(win, 4, 22, (chtype) '\\'); mvwaddstr(win, 5, 7, "^~~~~~~~~// ~~U"); } @@ -456,26 +443,22 @@ void initdeer(void) /* lildeer1 */ lildeer1 = newwin(2, 4, 0, 0); lil(lildeer1); - mvwaddch(lildeer1, 1, 1, (chtype) '<'); - mvwaddch(lildeer1, 1, 2, (chtype) '>'); + mvwaddstr(lildeer1, 1, 1, "<>"); /* lildeer2 */ lildeer2 = newwin(2, 4, 0, 0); lil(lildeer2); - mvwaddch(lildeer2, 1, 1, (chtype) '|'); - mvwaddch(lildeer2, 1, 2, (chtype) '|'); + mvwaddstr(lildeer2, 1, 1, "||"); /* lildeer3 */ lildeer3 = newwin(2, 4, 0, 0); lil(lildeer3); - mvwaddch(lildeer3, 1, 1, (chtype) '>'); - mvwaddch(lildeer3, 1, 2, (chtype) '<'); + mvwaddstr(lildeer3, 1, 1, "><"); /* middeer1 */ middeer1 = newwin(3, 7, 0, 0); midtop(middeer1); - mvwaddch(middeer1, 2, 3, (chtype) '\\'); - mvwaddch(middeer1, 2, 4, (chtype) '/'); + mvwaddstr(middeer1, 2, 3, "\\/"); /* middeer2 */ middeer2 = newwin(3, 7, 0, 0); @@ -702,9 +685,7 @@ void strng1(void) wattrset(treescrn2, COLOR_PAIR(10) | A_BOLD); } #endif - mvwaddch(treescrn2, 3, 13, (chtype) '\''); - mvwaddch(treescrn2, 3, 12, (chtype) ':'); - mvwaddch(treescrn2, 3, 11, (chtype) '.'); + mvwaddstr(treescrn2, 3, 11, ".:'"); wrefresh(treescrn2); wrefresh(w_del_msg); @@ -719,12 +700,8 @@ void strng2(void) wattrset(treescrn2, COLOR_PAIR(11) | A_BOLD); } #endif - mvwaddch(treescrn2, 5, 14, (chtype) '\''); - mvwaddch(treescrn2, 5, 13, (chtype) ':'); - mvwaddch(treescrn2, 5, 12, (chtype) '.'); - mvwaddch(treescrn2, 5, 11, (chtype) ','); - mvwaddch(treescrn2, 6, 10, (chtype) '\''); - mvwaddch(treescrn2, 6, 9, (chtype) ':'); + mvwaddstr(treescrn2, 5, 11, ",.:'"); + mvwaddstr(treescrn2, 6, 9, ":'"); wrefresh(treescrn2); wrefresh(w_del_msg); @@ -739,14 +716,8 @@ void strng3(void) wattrset(treescrn2, COLOR_PAIR(12) | A_BOLD); } #endif - mvwaddch(treescrn2, 7, 16, (chtype) '\''); - mvwaddch(treescrn2, 7, 15, (chtype) ':'); - mvwaddch(treescrn2, 7, 14, (chtype) '.'); - mvwaddch(treescrn2, 7, 13, (chtype) ','); - mvwaddch(treescrn2, 8, 12, (chtype) '\''); - mvwaddch(treescrn2, 8, 11, (chtype) ':'); - mvwaddch(treescrn2, 8, 10, (chtype) '.'); - mvwaddch(treescrn2, 8, 9, (chtype) ','); + mvwaddstr(treescrn2, 7, 13, ",.:'"); + mvwaddstr(treescrn2, 8, 9, ",.:'"); wrefresh(treescrn2); wrefresh(w_del_msg); @@ -761,18 +732,9 @@ void strng4(void) wattrset(treescrn2, COLOR_PAIR(13) | A_BOLD); } #endif - mvwaddch(treescrn2, 9, 17, (chtype) '\''); - mvwaddch(treescrn2, 9, 16, (chtype) ':'); - mvwaddch(treescrn2, 9, 15, (chtype) '.'); - mvwaddch(treescrn2, 9, 14, (chtype) ','); - mvwaddch(treescrn2, 10, 13, (chtype) '\''); - mvwaddch(treescrn2, 10, 12, (chtype) ':'); - mvwaddch(treescrn2, 10, 11, (chtype) '.'); - mvwaddch(treescrn2, 10, 10, (chtype) ','); - mvwaddch(treescrn2, 11, 9, (chtype) '\''); - mvwaddch(treescrn2, 11, 8, (chtype) ':'); - mvwaddch(treescrn2, 11, 7, (chtype) '.'); - mvwaddch(treescrn2, 11, 6, (chtype) ','); + mvwaddstr(treescrn2, 9, 14, ",.:'"); + mvwaddstr(treescrn2, 10, 10, ",.:'"); + mvwaddstr(treescrn2, 11, 6, ",.:'"); mvwaddch(treescrn2, 12, 5, (chtype) '\''); wrefresh(treescrn2); @@ -788,14 +750,8 @@ void strng5(void) wattrset(treescrn2, COLOR_PAIR(14) | A_BOLD); } #endif - mvwaddch(treescrn2, 11, 19, (chtype) '\''); - mvwaddch(treescrn2, 11, 18, (chtype) ':'); - mvwaddch(treescrn2, 11, 17, (chtype) '.'); - mvwaddch(treescrn2, 11, 16, (chtype) ','); - mvwaddch(treescrn2, 12, 15, (chtype) '\''); - mvwaddch(treescrn2, 12, 14, (chtype) ':'); - mvwaddch(treescrn2, 12, 13, (chtype) '.'); - mvwaddch(treescrn2, 12, 12, (chtype) ','); + mvwaddstr(treescrn2, 11, 16, ",.:'"); + mvwaddstr(treescrn2, 12, 12, ",.:'"); /* save a fully lit tree */ overlay(treescrn2, treescrn); @@ -850,6 +806,12 @@ void blinkit(void) ++cycle; } +#define TSHOW(win, pause) touchwin(win); wrefresh(win); \ + wrefresh(w_del_msg); napms(pause) + +#define SHOW(win, pause) mvwin(win, y_pos, x_pos); wrefresh(win); \ + wrefresh(w_del_msg); napms(pause) + void reindeer(void) { int looper; @@ -906,42 +868,17 @@ void reindeer(void) for (y_pos = 2; y_pos < 5; y_pos++) { - touchwin(lildeer0); - wrefresh(lildeer0); - wrefresh(w_del_msg); - napms(50); + TSHOW(lildeer0, 50); for (looper = 0; looper < 4; looper++) { - mvwin(lildeer3, y_pos, x_pos); - wrefresh(lildeer3); - wrefresh(w_del_msg); - napms(50); + SHOW(lildeer3, 50); + SHOW(lildeer2, 50); + SHOW(lildeer1, 50); + SHOW(lildeer2, 50); + SHOW(lildeer3, 50); - mvwin(lildeer2, y_pos, x_pos); - wrefresh(lildeer2); - wrefresh(w_del_msg); - napms(50); - - mvwin(lildeer1, y_pos, x_pos); - wrefresh(lildeer1); - wrefresh(w_del_msg); - napms(50); - - mvwin(lildeer2, y_pos, x_pos); - wrefresh(lildeer2); - wrefresh(w_del_msg); - napms(50); - - mvwin(lildeer3, y_pos, x_pos); - wrefresh(lildeer3); - wrefresh(w_del_msg); - napms(50); - - touchwin(lildeer0); - wrefresh(lildeer0); - wrefresh(w_del_msg); - napms(50); + TSHOW(lildeer0, 50); x_pos -= 2; } @@ -957,35 +894,13 @@ void reindeer(void) for (looper = 0; looper < 2; looper++) { - mvwin(middeer3, y_pos, x_pos); - wrefresh(middeer3); - wrefresh(w_del_msg); - napms(50); + SHOW(middeer3, 50); + SHOW(middeer2, 50); + SHOW(middeer1, 50); + SHOW(middeer2, 50); + SHOW(middeer3, 50); - mvwin(middeer2, y_pos, x_pos); - wrefresh(middeer2); - wrefresh(w_del_msg); - napms(50); - - mvwin(middeer1, y_pos, x_pos); - wrefresh(middeer1); - wrefresh(w_del_msg); - napms(50); - - mvwin(middeer2, y_pos, x_pos); - wrefresh(middeer2); - wrefresh(w_del_msg); - napms(50); - - mvwin(middeer3, y_pos, x_pos); - wrefresh(middeer3); - wrefresh(w_del_msg); - napms(50); - - touchwin(middeer0); - wrefresh(middeer0); - wrefresh(w_del_msg); - napms(50); + TSHOW(middeer0, 50); x_pos -= 3; } @@ -997,136 +912,45 @@ void reindeer(void) for (x_pos = 8; x_pos < 16; x_pos++) { - mvwin(bigdeer4, y_pos, x_pos); - wrefresh(bigdeer4); - wrefresh(w_del_msg); - napms(30); - - mvwin(bigdeer3, y_pos, x_pos); - wrefresh(bigdeer3); - wrefresh(w_del_msg); - napms(30); - - mvwin(bigdeer2, y_pos, x_pos); - wrefresh(bigdeer2); - wrefresh(w_del_msg); - napms(30); - - mvwin(bigdeer1, y_pos, x_pos); - wrefresh(bigdeer1); - wrefresh(w_del_msg); - napms(30); - - mvwin(bigdeer2, y_pos, x_pos); - wrefresh(bigdeer2); - wrefresh(w_del_msg); - napms(30); - - mvwin(bigdeer3, y_pos, x_pos); - wrefresh(bigdeer3); - wrefresh(w_del_msg); - napms(30); - - mvwin(bigdeer4, y_pos, x_pos); - wrefresh(bigdeer4); - wrefresh(w_del_msg); - napms(30); - - mvwin(bigdeer0, y_pos, x_pos); - wrefresh(bigdeer0); - wrefresh(w_del_msg); - napms(30); + SHOW(bigdeer4, 30); + SHOW(bigdeer3, 30); + SHOW(bigdeer2, 30); + SHOW(bigdeer1, 30); + SHOW(bigdeer2, 30); + SHOW(bigdeer3, 30); + SHOW(bigdeer4, 30); + SHOW(bigdeer0, 30); } --x_pos; for (looper = 0; looper < 6; looper++) { - mvwin(lookdeer4, y_pos, x_pos); - wrefresh(lookdeer4); - wrefresh(w_del_msg); - napms(40); - - mvwin(lookdeer3, y_pos, x_pos); - wrefresh(lookdeer3); - wrefresh(w_del_msg); - napms(40); - - mvwin(lookdeer2, y_pos, x_pos); - wrefresh(lookdeer2); - wrefresh(w_del_msg); - napms(40); - - mvwin(lookdeer1, y_pos, x_pos); - wrefresh(lookdeer1); - wrefresh(w_del_msg); - napms(40); - - mvwin(lookdeer2, y_pos, x_pos); - wrefresh(lookdeer2); - wrefresh(w_del_msg); - napms(40); - - mvwin(lookdeer3, y_pos, x_pos); - wrefresh(lookdeer3); - wrefresh(w_del_msg); - napms(40); - - mvwin(lookdeer4, y_pos, x_pos); - wrefresh(lookdeer4); - wrefresh(w_del_msg); - napms(40); + SHOW(lookdeer4, 40); + SHOW(lookdeer3, 40); + SHOW(lookdeer2, 40); + SHOW(lookdeer1, 40); + SHOW(lookdeer2, 40); + SHOW(lookdeer3, 40); + SHOW(lookdeer4, 40); } - mvwin(lookdeer0, y_pos, x_pos); - wrefresh(lookdeer0); - wrefresh(w_del_msg); - napms(40); + SHOW(lookdeer0, 40); for (; y_pos < 10; y_pos++) { for (looper = 0; looper < 2; looper++) { - mvwin(bigdeer4, y_pos, x_pos); - wrefresh(bigdeer4); - wrefresh(w_del_msg); - napms(30); - - mvwin(bigdeer3, y_pos, x_pos); - wrefresh(bigdeer3); - wrefresh(w_del_msg); - napms(30); - - mvwin(bigdeer2, y_pos, x_pos); - wrefresh(bigdeer2); - wrefresh(w_del_msg); - napms(30); - - mvwin(bigdeer1, y_pos, x_pos); - wrefresh(bigdeer1); - wrefresh(w_del_msg); - napms(30); - - mvwin(bigdeer2, y_pos, x_pos); - wrefresh(bigdeer2); - wrefresh(w_del_msg); - napms(30); - - mvwin(bigdeer3, y_pos, x_pos); - wrefresh(bigdeer3); - wrefresh(w_del_msg); - napms(30); - - mvwin(bigdeer4, y_pos, x_pos); - wrefresh(bigdeer4); - wrefresh(w_del_msg); - napms(30); + SHOW(bigdeer4, 30); + SHOW(bigdeer3, 30); + SHOW(bigdeer2, 30); + SHOW(bigdeer1, 30); + SHOW(bigdeer2, 30); + SHOW(bigdeer3, 30); + SHOW(bigdeer4, 30); } - mvwin(bigdeer0, y_pos, x_pos); - wrefresh(bigdeer0); - wrefresh(w_del_msg); - napms(30); + SHOW(bigdeer0, 30); } --y_pos;