Mercurial > hg > early-roguelike
comparison xrogue/io.c @ 220:f54901b9c39b
XRogue: convert to ANSI-style function declarations.
| author | John "Elwin" Edwards | 
|---|---|
| date | Wed, 02 Mar 2016 21:13:26 -0500 | 
| parents | ce0cf824c192 | 
| children | e52a8a7ad4c5 | 
   comparison
  equal
  deleted
  inserted
  replaced
| 219:f9ef86cf22b2 | 220:f54901b9c39b | 
|---|---|
| 19 #include <curses.h> | 19 #include <curses.h> | 
| 20 #include <ctype.h> | 20 #include <ctype.h> | 
| 21 #include <stdarg.h> | 21 #include <stdarg.h> | 
| 22 #include <string.h> | 22 #include <string.h> | 
| 23 #include "rogue.h" | 23 #include "rogue.h" | 
| 24 | |
| 25 void doadd(char *fmt, va_list ap); | |
| 24 | 26 | 
| 25 /* | 27 /* | 
| 26 * msg: | 28 * msg: | 
| 27 * Display a message at the top of the screen. | 29 * Display a message at the top of the screen. | 
| 28 */ | 30 */ | 
| 75 /* | 77 /* | 
| 76 * If there is no current message, do nothing. Otherwise, prompt the | 78 * If there is no current message, do nothing. Otherwise, prompt the | 
| 77 * player with the --More-- string. Then erase the message. | 79 * player with the --More-- string. Then erase the message. | 
| 78 */ | 80 */ | 
| 79 | 81 | 
| 80 rmmsg() | 82 void | 
| 83 rmmsg(void) | |
| 81 { | 84 { | 
| 82 if (mpos) { | 85 if (mpos) { | 
| 83 wclear(msgw); | 86 wclear(msgw); | 
| 84 overwrite(cw, msgw); | 87 overwrite(cw, msgw); | 
| 85 mvwaddstr(msgw, 0, 0, huh); | 88 mvwaddstr(msgw, 0, 0, huh); | 
| 94 /* | 97 /* | 
| 95 * Display a new msg (giving him a chance to see the previous one if it | 98 * Display a new msg (giving him a chance to see the previous one if it | 
| 96 * is up there with the --More--) | 99 * is up there with the --More--) | 
| 97 */ | 100 */ | 
| 98 | 101 | 
| 99 endmsg() | 102 void | 
| 103 endmsg(void) | |
| 100 { | 104 { | 
| 101 /* Needed to track where we are for 5.0 (PC) curses */ | 105 /* Needed to track where we are for 5.0 (PC) curses */ | 
| 102 register int x, y; | 106 register int x, y; | 
| 103 | 107 | 
| 104 if (mpos) { | 108 if (mpos) { | 
| 139 wmove(msgw, y, x); | 143 wmove(msgw, y, x); | 
| 140 clearok(msgw, FALSE); | 144 clearok(msgw, FALSE); | 
| 141 draw(msgw); | 145 draw(msgw); | 
| 142 } | 146 } | 
| 143 | 147 | 
| 148 void | |
| 144 doadd(char *fmt, va_list ap) | 149 doadd(char *fmt, va_list ap) | 
| 145 { | 150 { | 
| 146 vsprintf((char *) &msgbuf[newpos], fmt, ap); | 151 vsprintf((char *) &msgbuf[newpos], fmt, ap); | 
| 147 newpos = strlen(msgbuf); | 152 newpos = strlen(msgbuf); | 
| 148 } | 153 } | 
| 151 * step_ok: | 156 * step_ok: | 
| 152 * returns true if it is ok for type to step on ch | 157 * returns true if it is ok for type to step on ch | 
| 153 * flgptr will be NULL if we don't know what the monster is yet! | 158 * flgptr will be NULL if we don't know what the monster is yet! | 
| 154 */ | 159 */ | 
| 155 | 160 | 
| 156 step_ok(y, x, can_on_monst, flgptr) | 161 bool | 
| 157 register int y, x, can_on_monst; | 162 step_ok(int y, int x, int can_on_monst, struct thing *flgptr) | 
| 158 register struct thing *flgptr; | |
| 159 { | 163 { | 
| 160 /* can_on_monst = MONSTOK if all we care about are physical obstacles */ | 164 /* can_on_monst = MONSTOK if all we care about are physical obstacles */ | 
| 161 register struct linked_list *item; | 165 register struct linked_list *item; | 
| 162 register struct thing *tp; | 166 register struct thing *tp; | 
| 163 unsigned char ch; | 167 unsigned char ch; | 
| 220 /* | 224 /* | 
| 221 * shoot_ok: | 225 * shoot_ok: | 
| 222 * returns true if it is ok for type to shoot over ch | 226 * returns true if it is ok for type to shoot over ch | 
| 223 */ | 227 */ | 
| 224 | 228 | 
| 229 bool | |
| 225 shoot_ok(int ch) | 230 shoot_ok(int ch) | 
| 226 { | 231 { | 
| 227 switch (ch) | 232 switch (ch) | 
| 228 { | 233 { | 
| 229 case ' ': | 234 case ' ': | 
| 238 } | 243 } | 
| 239 | 244 | 
| 240 /* | 245 /* | 
| 241 * status: | 246 * status: | 
| 242 * Display the important stats line. Keep the cursor where it was. | 247 * Display the important stats line. Keep the cursor where it was. | 
| 243 */ | 248 * display: is TRUE, display unconditionally | 
| 244 | 249 */ | 
| 245 status(display) | 250 | 
| 246 bool display; /* is TRUE, display unconditionally */ | 251 void | 
| 252 status(bool display) | |
| 247 { | 253 { | 
| 248 register struct stats *stat_ptr, *max_ptr; | 254 register struct stats *stat_ptr, *max_ptr; | 
| 249 register int oy = 0, ox = 0, temp; | 255 register int oy = 0, ox = 0, temp; | 
| 250 register char *pb; | 256 register char *pb; | 
| 251 char buf[LINELEN]; | 257 char buf[LINELEN]; | 
| 375 /* | 381 /* | 
| 376 * wait_for | 382 * wait_for | 
| 377 * Sit around until the guy types the right key | 383 * Sit around until the guy types the right key | 
| 378 */ | 384 */ | 
| 379 | 385 | 
| 380 wait_for(ch) | 386 void | 
| 381 register char ch; | 387 wait_for(char ch) | 
| 382 { | 388 { | 
| 383 register char c; | 389 register char c; | 
| 384 | 390 | 
| 385 clearok(msgw, FALSE); | 391 clearok(msgw, FALSE); | 
| 386 if (ch == '\n') { | 392 if (ch == '\n') { | 
| 405 * pertain only the the useful information to be displayed. | 411 * pertain only the the useful information to be displayed. | 
| 406 * If redraw is non-zero, we wait for the character "redraw" to be | 412 * If redraw is non-zero, we wait for the character "redraw" to be | 
| 407 * typed and then redraw the starting screen. | 413 * typed and then redraw the starting screen. | 
| 408 */ | 414 */ | 
| 409 | 415 | 
| 410 over_win(oldwin, newin, maxy, maxx, cursory, cursorx, redraw) | 416 void | 
| 411 WINDOW *oldwin, *newin; | 417 over_win(WINDOW *oldwin, WINDOW *newin, int maxy, int maxx, int cursory, | 
| 412 int maxy, maxx, cursory, cursorx; | 418 int cursorx, char redraw) | 
| 413 char redraw; | |
| 414 { | 419 { | 
| 415 char blanks[LINELEN+1]; | 420 char blanks[LINELEN+1]; | 
| 416 register int line, i; | 421 register int line, i; | 
| 417 WINDOW *ow; /* Overlay window */ | 422 WINDOW *ow; /* Overlay window */ | 
| 418 | 423 | 
| 458 /* | 463 /* | 
| 459 * show_win: | 464 * show_win: | 
| 460 * function used to display a window and wait before returning | 465 * function used to display a window and wait before returning | 
| 461 */ | 466 */ | 
| 462 | 467 | 
| 463 show_win(scr, message) | 468 void | 
| 464 register WINDOW *scr; | 469 show_win(WINDOW *scr, char *message) | 
| 465 char *message; | |
| 466 { | 470 { | 
| 467 mvwaddstr(scr, 0, 0, message); | 471 mvwaddstr(scr, 0, 0, message); | 
| 468 touchwin(scr); | 472 touchwin(scr); | 
| 469 wmove(scr, hero.y, hero.x); | 473 wmove(scr, hero.y, hero.x); | 
| 470 draw(scr); | 474 draw(scr); | 
| 475 /* | 479 /* | 
| 476 * dbotline: | 480 * dbotline: | 
| 477 * Displays message on bottom line and waits for a space to return | 481 * Displays message on bottom line and waits for a space to return | 
| 478 */ | 482 */ | 
| 479 | 483 | 
| 480 dbotline(scr,message) | 484 void | 
| 481 WINDOW *scr; | 485 dbotline(WINDOW *scr, char *message) | 
| 482 char *message; | |
| 483 { | 486 { | 
| 484 mvwaddstr(scr,lines-1,0,message); | 487 mvwaddstr(scr,lines-1,0,message); | 
| 485 draw(scr); | 488 draw(scr); | 
| 486 wait_for(' '); | 489 wait_for(' '); | 
| 487 } | 490 } | 
| 489 /* | 492 /* | 
| 490 * restscr: | 493 * restscr: | 
| 491 * Restores the screen to the terminal | 494 * Restores the screen to the terminal | 
| 492 */ | 495 */ | 
| 493 | 496 | 
| 494 restscr(scr) | 497 void | 
| 495 WINDOW *scr; | 498 restscr(WINDOW *scr) | 
| 496 { | 499 { | 
| 497 clearok(scr,TRUE); | 500 clearok(scr,TRUE); | 
| 498 touchwin(scr); | 501 touchwin(scr); | 
| 499 draw(scr); | 502 draw(scr); | 
| 500 } | 503 } | 
| 504 * Read a byte, short, or long machine independently | 507 * Read a byte, short, or long machine independently | 
| 505 * Always returns the value as an unsigned long. | 508 * Always returns the value as an unsigned long. | 
| 506 */ | 509 */ | 
| 507 | 510 | 
| 508 unsigned long | 511 unsigned long | 
| 509 netread(error, size, stream) | 512 netread(int *error, int size, FILE *stream) | 
| 510 int *error; | |
| 511 int size; | |
| 512 FILE *stream; | |
| 513 { | 513 { | 
| 514 unsigned long result = 0L, /* What we read in */ | 514 unsigned long result = 0L, /* What we read in */ | 
| 515 partial; /* Partial value */ | 515 partial; /* Partial value */ | 
| 516 int nextc, /* The next byte */ | 516 int nextc, /* The next byte */ | 
| 517 i; /* To index through the result a byte at a time */ | 517 i; /* To index through the result a byte at a time */ | 
| 540 } | 540 } | 
| 541 | 541 | 
| 542 /* | 542 /* | 
| 543 * netwrite: | 543 * netwrite: | 
| 544 * Write out a byte, short, or long machine independently. | 544 * Write out a byte, short, or long machine independently. | 
| 545 */ | 545 * value: What to write | 
| 546 | 546 * size: How much to write out | 
| 547 netwrite(value, size, stream) | 547 * stream: Where to write it | 
| 548 unsigned long value; /* What to write */ | 548 */ | 
| 549 int size; /* How much to write out */ | 549 | 
| 550 FILE *stream; /* Where to write it */ | 550 int | 
| 551 netwrite(unsigned long value, int size, FILE *stream) | |
| 551 { | 552 { | 
| 552 int i; /* Goes through value one byte at a time */ | 553 int i; /* Goes through value one byte at a time */ | 
| 553 char outc; /* The next character to be written */ | 554 char outc; /* The next character to be written */ | 
| 554 | 555 | 
| 555 /* Be sure we have a right sized chunk */ | 556 /* Be sure we have a right sized chunk */ | 
