|
|
1.1 root 1: # include "trek.h"
2:
3: /**
4: ** instruction read and main play loop
5: **/
6:
7: CVNTAB Comtab[]
8: {
9: "!", "shell",
10: "m", "ove",
11: "ram", "",
12: "q", "uery",
13: "st", "atus",
14: "sh", "ield",
15: "s", "rscan",
16: "l", "rscan",
17: "da", "mages",
18: "p", "hasers",
19: "quit", "",
20: "t", "orpedo",
21: "cl", "oak",
22: "c", "omputer",
23: "w", "arp",
24: "r", "est",
25: "do", "ck",
26: "i", "mpulse",
27: "u", "ndock",
28: "help", "",
29: "v", "isual",
30: "destruct", "",
31: "abandon", "",
32: "dump", "",
33: "events", "",
34: 0
35: };
36:
37: extern int shell();
38: extern int move();
39: extern int ram();
40: extern int info();
41: extern int status();
42: extern int shield();
43: extern int srscan();
44: extern int lrscan();
45: extern int dcrept();
46: extern int phaser();
47: extern int reset();
48: extern int torped();
49: extern int cloak();
50: extern int computer();
51: extern int setwarp();
52: extern int rest();
53: extern int dock();
54: extern int impulse();
55: extern int undock();
56: extern int help();
57: extern int visual();
58: extern int destruct();
59: extern int abandon();
60: extern int dumpgame();
61: extern int eventpr();
62:
63: int (*comfn[])()
64: {
65: &shell,
66: &move,
67: &ram,
68: &info,
69: &status,
70: &shield,
71: &srscan,
72: &lrscan,
73: &dcrept,
74: &phaser,
75: &reset,
76: &torped,
77: &cloak,
78: &computer,
79: &setwarp,
80: &rest,
81: &dock,
82: &impulse,
83: &undock,
84: &help,
85: &visual,
86: &destruct,
87: &abandon,
88: &dumpgame,
89: &eventpr
90: };
91:
92: reset()
93: {
94: longjmp(errjmp);
95: }
96:
97: play()
98: {
99: register int r;
100:
101: while (1)
102: {
103: Move.free = 1;
104: Move.delta = 0.0;
105: Move.shldchg = 0;
106: Move.newquad = 0;
107: Move.resting = 0;
108: if(chkbad() < 0)
109: return(0);
110: if((r=getcodpar("Command", Comtab))<0)
111: continue;
112: (*comfn[r])();
113: if(chkbad())
114: continue;
115: events();
116: attack(0);
117: checkcond();
118: }
119: }
120:
121: char eof;
122: chkbad()
123: {
124: if(eof)
125: return(-1);
126: if(mkfault) {
127: flushin();
128: mkfault=0;
129: printf("@\n");
130: return(1);
131: }
132: return(0);
133: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.