Mercurial > hg > early-roguelike
comparison rogue4/io.c @ 225:4f6e056438eb
Merge the GCC5 and build fix branches.
author | John "Elwin" Edwards |
---|---|
date | Wed, 02 Mar 2016 21:28:34 -0500 |
parents | 1b73a8641b37 |
children |
comparison
equal
deleted
inserted
replaced
224:4d0f53998e8a | 225:4f6e056438eb |
---|---|
14 #include <ctype.h> | 14 #include <ctype.h> |
15 #include <string.h> | 15 #include <string.h> |
16 #include "rogue.h" | 16 #include "rogue.h" |
17 #include <stdarg.h> | 17 #include <stdarg.h> |
18 | 18 |
19 void doadd(char *fmt, va_list ap); | |
20 | |
19 /* | 21 /* |
20 * msg: | 22 * msg: |
21 * Display a message at the top of the screen. | 23 * Display a message at the top of the screen. |
22 */ | 24 */ |
23 static char msgbuf[BUFSIZ]; | 25 static char msgbuf[BUFSIZ]; |
24 static int newpos = 0; | 26 static int newpos = 0; |
25 | 27 |
28 void | |
26 msg(char *fmt, ...) | 29 msg(char *fmt, ...) |
27 { | 30 { |
28 va_list ap; | 31 va_list ap; |
29 /* | 32 /* |
30 * if the string is "", just clear the line | 33 * if the string is "", just clear the line |
48 /* | 51 /* |
49 * addmsg: | 52 * addmsg: |
50 * Add things to the current message | 53 * Add things to the current message |
51 */ | 54 */ |
52 | 55 |
56 void | |
53 addmsg(char *fmt, ...) | 57 addmsg(char *fmt, ...) |
54 { | 58 { |
55 va_list ap; | 59 va_list ap; |
56 | 60 |
57 va_start(ap, fmt); | 61 va_start(ap, fmt); |
63 * endmsg: | 67 * endmsg: |
64 * Display a new msg (giving him a chance to see the previous one | 68 * Display a new msg (giving him a chance to see the previous one |
65 * if it is up there with the --More--) | 69 * if it is up there with the --More--) |
66 */ | 70 */ |
67 | 71 |
68 endmsg() | 72 void |
73 endmsg(void) | |
69 { | 74 { |
70 if (save_msg) | 75 if (save_msg) |
71 { | 76 { |
72 strncpy(huh, msgbuf, 80); | 77 strncpy(huh, msgbuf, 80); |
73 huh[79] = 0; | 78 huh[79] = 0; |
97 /* | 102 /* |
98 * doadd: | 103 * doadd: |
99 * Perform an add onto the message buffer | 104 * Perform an add onto the message buffer |
100 */ | 105 */ |
101 | 106 |
107 void | |
102 doadd(char *fmt, va_list ap) | 108 doadd(char *fmt, va_list ap) |
103 { | 109 { |
104 vsprintf(&msgbuf[newpos], fmt, ap); | 110 vsprintf(&msgbuf[newpos], fmt, ap); |
105 newpos = strlen(msgbuf); | 111 newpos = strlen(msgbuf); |
106 } | 112 } |
107 | 113 |
108 /* | 114 /* |
109 * step_ok: | 115 * step_ok: |
110 * Returns true if it is ok to step on ch | 116 * Returns true if it is ok to step on ch |
111 */ | 117 */ |
112 step_ok(ch) | 118 bool |
119 step_ok(char ch) | |
113 { | 120 { |
114 switch (ch) | 121 switch (ch) |
115 { | 122 { |
116 case ' ': | 123 case ' ': |
117 case '|': | 124 case '|': |
125 /* | 132 /* |
126 * readchar: | 133 * readchar: |
127 * Flushes stdout so that screen is up to date and then returns | 134 * Flushes stdout so that screen is up to date and then returns |
128 * getchar(). | 135 * getchar(). |
129 */ | 136 */ |
130 readcharw(win) | 137 int |
131 WINDOW *win; | 138 readcharw(WINDOW *win) |
132 { | 139 { |
133 int ch; | 140 int ch; |
134 | 141 |
135 ch = md_readchar(win); | 142 ch = md_readchar(win); |
136 | 143 |
141 } | 148 } |
142 | 149 |
143 return(ch); | 150 return(ch); |
144 } | 151 } |
145 | 152 |
146 readchar() | 153 int |
154 readchar(void) | |
147 { | 155 { |
148 return( readcharw(stdscr) ); | 156 return( readcharw(stdscr) ); |
149 } | 157 } |
150 | 158 |
151 char * | 159 char * |
152 unctrol(ch) | 160 unctrol(char ch) |
153 char ch; | |
154 { | 161 { |
155 return( (char *) unctrl(ch) ); | 162 return( (char *) unctrl(ch) ); |
156 } | 163 } |
157 | 164 |
158 /* | 165 /* |
159 * status: | 166 * status: |
160 * Display the important stats line. Keep the cursor where it was. | 167 * Display the important stats line. Keep the cursor where it was. |
161 */ | 168 */ |
162 status() | 169 void |
170 status(void) | |
163 { | 171 { |
164 register int oy, ox, temp; | 172 register int oy, ox, temp; |
165 static int hpwidth = 0, s_hungry; | 173 static int hpwidth = 0, s_hungry; |
166 static int s_lvl, s_pur = -1, s_hp, s_ac = 0; | 174 static int s_lvl, s_pur = -1, s_hp, s_ac = 0; |
167 static str_t s_str; | 175 static str_t s_str; |
213 * Sit around until the guy types the right key | 221 * Sit around until the guy types the right key |
214 */ | 222 */ |
215 | 223 |
216 | 224 |
217 | 225 |
218 wait_for(ch) | 226 void |
219 register char ch; | 227 wait_for(char ch) |
220 { | 228 { |
221 w_wait_for(stdscr, ch); | 229 w_wait_for(stdscr, ch); |
222 } | 230 } |
223 | 231 |
224 w_wait_for(win,ch) | 232 void |
225 WINDOW *win; | 233 w_wait_for(WINDOW *win, char ch) |
226 register char ch; | |
227 { | 234 { |
228 register char c; | 235 register char c; |
229 | 236 |
230 if (ch == '\n') | 237 if (ch == '\n') |
231 while ((c = readcharw(win)) != '\n' && c != '\r') | 238 while ((c = readcharw(win)) != '\n' && c != '\r') |
237 | 244 |
238 /* | 245 /* |
239 * show_win: | 246 * show_win: |
240 * Function used to display a window and wait before returning | 247 * Function used to display a window and wait before returning |
241 */ | 248 */ |
242 show_win(scr, message) | 249 void |
243 register WINDOW *scr; | 250 show_win(WINDOW *scr, char *message) |
244 char *message; | |
245 { | 251 { |
246 mvwaddstr(scr, 0, 0, message); | 252 mvwaddstr(scr, 0, 0, message); |
247 touchwin(scr); | 253 touchwin(scr); |
248 wmove(scr, hero.y, hero.x); | 254 wmove(scr, hero.y, hero.x); |
249 wrefresh(scr); | 255 wrefresh(scr); |