1 /* 2 * textgfx flags 3 */ 4 #define ASCII 1 5 #define WHITE_BG 2 6 #define MONOCHROME 4 7 #define HEIGHT_24L 8 8 9 /* block styles */ 10 #define BLACK_BRACKETS 16 11 #define TT_BLOCKS 32 12 #define TT_BLOCKS_BG 64 13 14 #define XTERM 0x80 15 #define LINUX_TERM 0x100 16 #define GNOME_TERM 0x200 17 #define CYGWIN 0x400 18 #define TERM_RESIZED 0x800 19 #define LOST_FOCUS 0x1000 20 21 extern unsigned textgfx_flags; 22 23 #define _ASCII (textgfx_flags & ASCII) 24 #define _WHITE_BG (textgfx_flags & WHITE_BG) 25 #define _MONOCHROME (textgfx_flags & MONOCHROME) 26 #define _HEIGHT_24L (textgfx_flags & HEIGHT_24L) 27 #define _TT_BLOCKS (textgfx_flags & TT_BLOCKS) 28 #define _TT_BLOCKS_BG (textgfx_flags & TT_BLOCKS_BG) 29 #define TT_MONO (TT_BLOCKS | MONOCHROME) 30 #define _XTERM (textgfx_flags & XTERM) 31 #define _LINUX_TERM (textgfx_flags & LINUX_TERM) 32 33 extern char term_width; 34 extern char term_height; 35 36 extern short block_chars[2]; 37 extern short bgdot; 38 39 int default_bgdot(); 40 void reset_block_chars(); 41 42 void gettermsize(); 43 void settermwidth(int cols); 44 void settermheight(int lines); 45 void gettermoptions(); 46 47 void textgfx_init(); 48 void textgfx_end(); 49 50 #ifdef NO_MENU 51 #define in_menu 0 52 #define textgfx_entermenu() 53 #else 54 extern int in_menu; 55 void textgfx_entermenu(); 56 #endif 57 void textgfx_entergame(); 58 59 /* Windows 60 0 - standard screen 61 1 - board 1 62 2 - board 2 */ 63 #define WIN_NEXT 3 64 /* WIN_NEXT+1 - player 2's next */ 65 #define WIN_PANEL 5 66 #define WIN_TETROM_STATS 6 67 #define WIN_TOP_SCORES 7 68 69 int getmargin_x(); 70 void getwin_xy(int win, int *x, int *y); 71 72 void setcurs(int x, int y); 73 void setwcurs(int win, int x, int y); 74 void movefwd(int n); 75 void newln(int x); 76 void setcurs_end(); 77 int is_outside_screen(int x, int y); 78 void get_xy(int *x, int *y); 79 80 void refreshscreen(); 81 82 /* refreshwin(-1) refreshes the current window */ 83 void refreshwin(int win); 84 85 void clearwin(int win); 86 void cleartoeol(); 87 88 /* Color pairs. 89 * 1-7 are used for blocks. 90 * 0x11-0x17 are block colors without bg. */ 91 #define MAGENTA_FG 8 92 #define WHITE_ON_BLUE 9 93 #define BOARD_BG_COLOR 10 94 #define BOARD_FRAME_COLOR 11 95 #define PANEL_LABEL_COLOR 12 96 #define RED_FG 13 97 #define YELLOW_ON_GREEN 14 98 #define YELLOW_ON_BLUE 0x18 99 100 void setcolorpair(int pair); 101 102 /* inner func - doesn't set PANEL_LABEL_COLOR which depends on tetris level */ 103 void set_color_pair(int pair); 104 105 /* Set color pair and block chars based on block style. 106 * clr = 1-7 or 0 for board bg. */ 107 void setblockcolor(int clr); 108 109 void setattr_normal(); 110 void setattr_standout(); 111 void setattr_bold(); 112 void setattr_underline(); 113 114 /* Line drawing characters - used with putch */ 115 116 #define UPLEFT ('l' | 0x100) 117 #define LOWLEFT ('m' | 0x100) 118 #define UPRIGHT ('k' | 0x100) 119 #define LOWRIGHT ('j' | 0x100) 120 #define CROSSLINES ('n' | 0x100) 121 #define HLINE ('q' | 0x100) 122 #define VLINE ('x' | 0x100) 123 #define LEFT_T ('t' | 0x100) 124 #define RIGHT_T ('u' | 0x100) 125 #define BOTTOM_T ('v' | 0x100) 126 #define TOP_T ('w' | 0x100) 127 #define TEXTURE1 ('a' | 0x100) /* ACS_CKBOARD */ 128 #define TEXTURE2 ('h' | 0x100) /* ACS_BOARD or blank */ 129 #define BULLET ('~' | 0x100) 130 #define UPARROW ('-' | 0x100) 131 132 /* putch conflicts with DOS conio */ 133 void put_ch(int ch); 134 #ifndef conio_h 135 #define putch(ch) put_ch(ch) 136 #endif 137 int printstr(const char *str); 138 void printint(const char *fmt, int d); 139 void printlong(const char *fmt, long d); 140 141 /* takes a line drawing character and prints ascii */ 142 void putch_ascii(int ch); 143 144 int putnchars(int ch, int n); 145 146 /* prints lowercase letters in str using alternate character set, 147 * and repeats a character followed by 'N' n times */ 148 void printstr_acs(const char *str, int n); 149 150 int isprintable(int c); 151 152 void enable_term_resizing(); 153 void upd_termresize(); 154