home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 7 Games / 07-Games.zip / VTREK.ZIP / MAIN.C < prev    next >
Text File  |  1989-12-26  |  2KB  |  128 lines

  1. /*
  2.  *    main.c
  3.  *
  4.  *    visual star trek
  5.  *
  6.  *    BASIC version written by Tom Goerz and debugged by Dug Patrick
  7.  *        22-Dec-79, 13-Nov-80
  8.  *    C version written by Dug Patrick
  9.  *        05-Aug-84, 11-Mar-85
  10.  *
  11.  */
  12.  
  13. #include "vtrek.h"
  14.  
  15. char playership[] = " ? ";
  16. int rolines = 0;
  17.  
  18. main()
  19. {
  20.     int cmd, ch;
  21.     char str[44];
  22.  
  23. #ifdef AZTEC
  24.     int errortrap();
  25.     Sysvec[FLT_FAULT] = errortrap;
  26. #endif
  27.  
  28.     instructions();
  29.     initvars();
  30.     terminit();
  31.     replot();
  32.  
  33.     sprintf(str, "You have %.1f stardates to save the", lastdate - stardate);
  34.     readout(ADDLINE, str);
  35.     readout(ADDLINE, "Federation from the Klingon invasion.");
  36.  
  37.     setcondition();
  38.  
  39.     while (numkling > 0) {
  40.         switch (cmd = getcmd()) {
  41.  
  42.         case 'H' :        /* hyper-space */
  43.         hyperspace();
  44.         break;
  45.  
  46.         case 'S' :        /* short range scan */
  47.         srs();
  48.         break;
  49.  
  50.         case 'L' :        /* long range scan */
  51.         lrs();
  52.         break;
  53.  
  54.         case 'P' :        /* fire phasers */
  55.         phasers();
  56.         break;
  57.  
  58.         case 'T' :        /* fire photon torpedo */
  59.         torpedo();
  60.         break;
  61.  
  62.         case 'U' :        /* change shield level */
  63.         defense();
  64.         break;    
  65.  
  66.         case 'R' :        /* replot screen */
  67.         replot();
  68.         continue;
  69.  
  70.         case 'Q' :        /* move using impulse engines */
  71.         case 'W' :
  72.         case 'E' :
  73.         case 'A' :
  74.         case 'D' :
  75.         case 'Z' :
  76.         case 'X' :
  77.         case 'C' :
  78.         impulse(cmd);
  79.         break;
  80.  
  81.         case 'K' :        /* kill - commit suicide */
  82.         prompt("Quit ? ");
  83.         ch = getch();
  84.         if (Toupper(ch) == 'Y')
  85.             die();
  86.         break;
  87.  
  88.         case 'F' :        /* fix devices */
  89.         repdevices();
  90.         break;
  91.  
  92.         case 03 :        /* exit without warning */
  93.         case 04 :
  94.         die();
  95.         break;
  96.  
  97.         case '?' :        /* help */
  98.         help();
  99.         break;
  100.  
  101.         default :        /* illegal command */
  102.         readout(ADDLINE, "Type '?' for help.");
  103.         break;
  104.         }
  105.  
  106.         fixdev(REL, RND, 5);
  107.         setcondition();
  108.         klingmove();
  109.  
  110.         if ((stardate += 0.1) > lastdate)
  111.         timeout();
  112.         plt_stat(ELEMENT, STARDATE);
  113.         plt_num(INFO);
  114.  
  115.         if (energy <= 0 && shields <= 0)
  116.         dead();
  117.     }
  118.  
  119.     win();
  120. }
  121.  
  122. #ifdef AZTEC
  123. errortrap(errcode, addr)
  124. int errcode, addr;
  125. {
  126. }
  127. #endif
  128.