1: /*
   2:  *  Hunt
   3:  *  Copyright (c) 1985 Conrad C. Huang, Gregory S. Couch, Kenneth C.R.C. Arnold
   4:  *  San Francisco, California
   5:  *
   6:  *  Copyright (c) 1985 Regents of the University of California.
   7:  *  All rights reserved.  The Berkeley software License Agreement
   8:  *  specifies the terms and conditions for redistribution.
   9:  */
  10: 
  11: # include   "hunt.h"
  12: # define    TERM_WIDTH  80  /* Assume terminals are 80-char wide */
  13: 
  14: /*
  15:  * cgoto:
  16:  *	Move the cursor to the given position on the given player's
  17:  *	terminal.
  18:  */
  19: cgoto(pp, y, x)
  20: register PLAYER *pp;
  21: register int    y, x;
  22: {
  23:     if (x == pp->p_curx && y == pp->p_cury)
  24:         return;
  25:     sendcom(pp, MOVE, y, x);
  26:     pp->p_cury = y;
  27:     pp->p_curx = x;
  28: }
  29: 
  30: /*
  31:  * outch:
  32:  *	Put out a single character.
  33:  */
  34: outch(pp, ch)
  35: register PLAYER *pp;
  36: char        ch;
  37: {
  38:     if (++pp->p_curx >= TERM_WIDTH) {
  39:         pp->p_curx = 0;
  40:         pp->p_cury++;
  41:     }
  42:     (void) putc(ch, pp->p_output);
  43: }
  44: 
  45: /*
  46:  * outstr:
  47:  *	Put out a string of the given length.
  48:  */
  49: outstr(pp, str, len)
  50: register PLAYER *pp;
  51: register char   *str;
  52: register int    len;
  53: {
  54:     pp->p_curx += len;
  55:     pp->p_cury += (pp->p_curx / TERM_WIDTH);
  56:     pp->p_curx %= TERM_WIDTH;
  57:     while (len--)
  58:         (void) putc(*str++, pp->p_output);
  59: }
  60: 
  61: /*
  62:  * clrscr:
  63:  *	Clear the screen, and reset the current position on the screen.
  64:  */
  65: clrscr(pp)
  66: register PLAYER *pp;
  67: {
  68:     sendcom(pp, CLEAR);
  69:     pp->p_cury = 0;
  70:     pp->p_curx = 0;
  71: }
  72: 
  73: /*
  74:  * ce:
  75:  *	Clear to the end of the line
  76:  */
  77: ce(pp)
  78: PLAYER  *pp;
  79: {
  80:     sendcom(pp, CLRTOEOL);
  81: }
  82: 
  83: /*
  84:  * ref;
  85:  *	Refresh the screen
  86:  */
  87: ref(pp)
  88: register PLAYER *pp;
  89: {
  90:     sendcom(pp, REFRESH);
  91: }
  92: 
  93: /*
  94:  * sendcom:
  95:  *	Send a command to the given user
  96:  */
  97: /* VARARGS2 */
  98: sendcom(pp, command, arg1, arg2)
  99: register PLAYER     *pp;
 100: register int    command;
 101: int         arg1, arg2;
 102: {
 103:     (void) putc(command, pp->p_output);
 104:     switch (command & 0377) {
 105:       case MOVE:
 106:         (void) putc(arg1, pp->p_output);
 107:         (void) putc(arg2, pp->p_output);
 108:         break;
 109:       case ADDCH:
 110:       case READY:
 111:         (void) putc(arg1, pp->p_output);
 112:         break;
 113:     }
 114: }

Defined functions

ce defined in line 77; used 5 times
clrscr defined in line 65; used 1 times
outch defined in line 34; used 9 times
ref defined in line 87; never used
sendcom defined in line 98; used 27 times

Defined macros

TERM_WIDTH defined in line 12; used 3 times
Last modified: 1985-11-15
Generated: 2016-12-26
Generated by src2html V0.67
page hit count: 2748
Valid CSS Valid XHTML 1.0 Strict