|
|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T m
Length: 1905 (0x771)
Types: TextFile
Names: »main.c«
└─⟦b20c6495f⟧ Bits:30007238 EUUGD18: Wien-båndet, efterår 1987
└─⟦this⟧ »EUUGD18/General/Vtrek/main.c«
/*
* main.c
*
* visual star trek
*
* BASIC version written by Tom Goerz and debugged by Dug Patrick
* 22-Dec-79, 13-Nov-80
* C version written by Dug Patrick
* 05-Aug-84, 11-Mar-85
*
*/
#include "vtrek.h"
char playership[] = " ? ";
int rolines = 0;
main()
{
int cmd, ch;
char str[44];
instructions();
initvars();
terminit();
replot();
(void) sprintf(str, "You have %.1f stardates to save the", lastdate - stardate);
readout(ADDLINE, str);
readout(ADDLINE, "Federation from the Klingon invasion.");
setcondition();
while (numkling > 0) {
switch (cmd = getcmd()) {
case 'H' : /* hyper-space */
hyperspace();
break;
case 'S' : /* short range scan */
srs();
break;
case 'L' : /* long range scan */
lrs();
break;
case 'P' : /* fire phasers */
phasers();
break;
case 'T' : /* fire photon torpedo */
torpedo();
break;
case 'U' : /* change shield level */
defense();
break;
case 'R' : /* replot screen */
replot();
continue;
case 'Q' : /* move using impulse engines */
case 'W' :
case 'E' :
case 'A' :
case 'D' :
case 'Z' :
case 'X' :
case 'C' :
(void) impulse(cmd);
break;
case 'K' : /* kill - commit suicide */
prompt("Quit ? ");
refresh ();
ch = getch();
if (Toupper(ch) == 'Y')
die();
break;
case 'F' : /* fix devices */
repdevices();
break;
case 03 : /* exit without warning */
case 04 :
die();
break;
case '?' : /* help */
help();
break;
default : /* illegal command */
readout(ADDLINE, "Type '?' for help.");
break;
}
fixdev(REL, RND, 5);
setcondition();
klingmove();
if ((stardate += 0.1) > lastdate)
timeout();
plt_stat(ELEMENT, STARDATE);
plt_num(INFO);
if (energy <= 0 && shields <= 0)
dead();
}
win();
return (0);
}