home *** CD-ROM | disk | FTP | other *** search
/ rtsi.com / 2014.01.www.rtsi.com.tar / www.rtsi.com / OS9 / TOP / USR / SRC / wanderer2.t.Z / wanderer2.t / display.c < prev    next >
C/C++ Source or Header  |  1988-11-23  |  3KB  |  152 lines

  1. #include "wand_head.h"
  2.  
  3. extern int debug_disp;
  4.  
  5. void map(row_ptr)
  6. char (*row_ptr)[ROWLEN+1];
  7. {
  8. int  x,y;
  9. char ch;
  10. move(0,0);
  11. addch('+');
  12. for(x = 0;x < ROWLEN; x++)
  13.     addch('-');
  14. addch('+');
  15. for(y = 0;y < NOOFROWS; y++)
  16.     {
  17.     move(y+1,0);
  18.     addch('|');
  19.     for(x = 0; x < ROWLEN; x++)
  20.     {
  21.     ch = (*row_ptr)[x];
  22.     if(!debug_disp)
  23.         {
  24.         if((ch == 'M')||(ch == 'S'))
  25.         ch = ' ';
  26.         addch(ch);
  27.         }
  28.     else
  29.             if(ch==' '||ch=='#'||ch=='<'||ch=='>'||ch=='O'||ch==':'||
  30.            ch=='/'||ch=='\\'||ch=='*'||ch=='='||ch=='@'||ch=='T'||
  31.            ch=='X'||ch=='!'||ch=='M'||ch=='S'||ch=='C'||ch=='+'||
  32.                ch=='A'||ch=='^')
  33.         addch(ch);
  34.         else
  35.         addch('"');
  36.     }
  37.     addch('|');
  38.     row_ptr++;
  39.     }
  40. move(y+1,0);
  41. addch('+');
  42. for(x = 0;x < ROWLEN; x++)
  43.     addch('-');
  44. addch('+');
  45. if(!debug_disp)
  46.     {
  47.     move(18,0);
  48.     addstr("Press any key to return to the game.");
  49.     refresh();
  50.     (void) getchar();
  51.     move(18,0);
  52.     addstr("                                    ");
  53.     refresh();
  54.     for(y=0;y<=(NOOFROWS+1);y++)
  55.         {
  56.         move(y,0);
  57.         for(x=0;x<=(ROWLEN+2);x++)
  58.         addch(' ');
  59.     }
  60.     }
  61. else
  62.     refresh();
  63. }
  64.  
  65. void display(cx,cy,row_ptr,score)
  66. char (*row_ptr)[ROWLEN+1];
  67. int  cx,cy,score;
  68. {
  69.     int  x,y = 0,
  70.          x_coord,y_coord;
  71.     char ch;
  72.     while(y<(cy-3))
  73.     {
  74.         y++;
  75.         row_ptr++;
  76.     };
  77.     move(0,0);
  78.     addstr("+---------------------------------+");
  79.     move(15,0);
  80.     addstr("+---------------------------------+");
  81.     for(y=(cy-3);y<=(cy+3);y++)
  82.     {
  83.         y_coord = (y+3-cy)*2;
  84.         if ((y<0) || (y>=NOOFROWS))
  85.         {
  86.             move(y_coord+1,0);
  87.             addstr("|#################################|");
  88.             move(y_coord+2,0);
  89.             addstr("|#################################|");
  90.         }
  91.         else
  92.     {
  93.         move(y_coord+1,0);
  94.             addch('|');
  95.         move(y_coord+1,34);
  96.             addch('|');
  97.         move(y_coord+2,0);
  98.             addch('|');
  99.         move(y_coord+2,34);
  100.             addch('|');
  101.             for(x=(cx-5);x<=(cx+5);x++)
  102.             {
  103.                 x_coord = (x+5-cx)*3;
  104.                 if ((x<0) || (x>ROWLEN-1))
  105.                     draw_symbol(x_coord,y_coord,'#');
  106.                 else
  107.                 {
  108.                     ch = (*row_ptr)[x];
  109.                     draw_symbol(x_coord,y_coord,ch);
  110.                 }
  111.             };
  112.         row_ptr++;
  113.         }                   /*   end if   */
  114.     }                       /* end y loop */
  115.     move(16,0);
  116.     refresh();
  117. }
  118. void redraw_screen(maxmoves,num,score,nf,diamonds,mx,sx,sy,frow)
  119. int maxmoves,num,score,nf,diamonds,mx,sx,sy;
  120. char **frow;
  121. {
  122. char buffer[50];
  123. clear();
  124. move(0,48);
  125. (void) addstr("Score\t   Diamonds");
  126. move(1,48);
  127. (void) addstr("\tFound\tTotal");
  128. move(3,48);
  129. (void) sprintf(buffer,"%d\t %d\t %d  ",score,nf,diamonds);
  130. (void) addstr(buffer);
  131. move(6,48);
  132. (void) sprintf(buffer,"Current screen %d",num);
  133. (void) addstr(buffer);
  134. if(maxmoves != 0)
  135. (void) sprintf(buffer,"Moves remaining = %d   ",maxmoves);
  136. else
  137. {
  138.     (void) strcpy(buffer,"     Unlimited moves     ");
  139.     maxmoves = -1;
  140. };
  141. move(15,48);
  142. (void) addstr(buffer);
  143. if(mx != -1)                            /* tell player if monster exists */
  144.     draw_symbol(48,10,'M');
  145. else
  146.     draw_symbol(48,10,' ');
  147. if(!debug_disp)
  148.     display(sx,sy,frow,score);
  149. else
  150.     map(frow);
  151. }
  152.