home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / games / volume4 / spacewar / part06 / who.c < prev   
C/C++ Source or Header  |  1988-05-31  |  1KB  |  52 lines

  1. /*
  2.  * Spacewar - display who is logged in and what craft they are playing
  3.  *
  4.  * Copyright 1985 obo Systems, Inc.
  5.  * Copyright 1985 Dan Rosenblatt
  6.  */
  7.  
  8. #include "spacewar.h"
  9. #include "universe.h"
  10. #include "login.h"
  11.  
  12. VOID who(plogin)
  13. register struct login *plogin;
  14. {
  15.     register struct login *plgn=loginlst+MAXLOGIN;
  16.     char buf[40+1];
  17.  
  18. #ifdef DEBUG
  19.     DBG("who(#%d/%s)\n",plogin-loginlst,plogin->ln_name);
  20. #endif
  21.  
  22.     strcpy(buf,"\n");
  23.     while (--plgn >= loginlst) {
  24.         if (!plgn->ln_tty) continue;    /* no one there */
  25.         if (plgn == plogin) continue;    /* not the current player */
  26.  
  27.         if (strlen(buf) + strlen(plgn->ln_name) + 1 +
  28.         ((plgn->ln_stat == 'P') ? strlen(plgn->ln_crft)+1 : 0)) {
  29.             output(plogin,'C',0,buf);
  30.             strcpy(buf,"\n");
  31.         }
  32.         strcat(buf,plgn->ln_name);
  33.         if (plgn->ln_stat == 'P') {
  34.             strcat(buf,"/");
  35.             strcat(buf,plgn->ln_crft);
  36.         }
  37.         strcat(buf," ");
  38.     }
  39.     if (strlen(buf) > 1) {
  40.         output(plogin,'C',0,buf);
  41.         output(plogin,'C',0,"\n");
  42.     } else
  43.         output(plogin,'C',0,"\nNo one else\n");
  44.     
  45.     plogin->ln_stat = NULL;
  46.     output(plogin,'C',0,PROMPT);
  47.     output(plogin,0,0,0);
  48. #ifdef DEBUG
  49.     VDBG("who return\n");
  50. #endif
  51. }
  52.