Add copyright
[unix-history] / usr / src / games / trek / play.c
CommitLineData
22e26d0f 1#ifndef lint
06d69904 2static char sccsid[] = "@(#)play.c 4.2 (Berkeley) %G%";
22e26d0f
KM
3#endif not lint
4
5# include "trek.h"
6# include "getpar.h"
7
8/*
9** INSTRUCTION READ AND MAIN PLAY LOOP
10**
11** Well folks, this is it. Here we have the guts of the game.
12** This routine executes moves. It sets up per-move variables,
13** gets the command, and executes the command. After the command,
14** it calls events() to use up time, attack() to have Klingons
15** attack if the move was not free, and checkcond() to check up
16** on how we are doing after the move.
17*/
06d69904
KL
18extern int abandon(), capture(), shield(), computer(), dcrept(),
19 destruct(), dock(), help(), impulse(), lrscan(),
20 warp(), dumpgame(), rest(), shell(), srscan(),
21 reset(), torped(), visual(), setwarp(), undock(), phaser();
22e26d0f 22
06d69904 23struct cvntab Comtab[] =
22e26d0f 24{
06d69904
KL
25 "abandon", "", abandon, 0,
26 "ca", "pture", capture, 0,
27 "cl", "oak", shield, -1,
28 "c", "omputer", computer, 0,
29 "da", "mages", dcrept, 0,
30 "destruct", "", destruct, 0,
31 "do", "ck", dock, 0,
32 "help", "", help, 0,
33 "i", "mpulse", impulse, 0,
34 "l", "rscan", lrscan, 0,
35 "m", "ove", warp, 0,
36 "p", "hasers", phaser, 0,
37 "ram", "", warp, 1,
38 "dump", "", dumpgame, 0,
39 "r", "est", rest, 0,
40 "shell", "", shell, 0,
41 "sh", "ield", shield, 0,
42 "s", "rscan", srscan, 0,
43 "st", "atus", srscan, -1,
44 "terminate", "", reset, 0,
45 "t", "orpedo", torped, 0,
46 "u", "ndock", undock, 0,
47 "v", "isual", visual, 0,
48 "w", "arp", setwarp, 0,
22e26d0f
KM
49 0
50};
51
52play()
53{
54 struct cvntab *r;
55
56 while (1)
57 {
58 Move.free = 1;
59 Move.time = 0.0;
60 Move.shldchg = 0;
61 Move.newquad = 0;
62 Move.resting = 0;
63 skiptonl(0);
64 r = getcodpar("\nCommand", Comtab);
65 (*r->value)(r->value2);
66 events(0);
67 attack(0);
68 checkcond();
69 }
70}