static char line[128], *linep = line;
struct game game;
-int thingx, thingy, iqhere, iqengry;
+coord thing;
+int iqhere, iqengry;
int iscore, iskill; // Common PLAQ
double aaitem;
double perdate;
#define TORPEDO 5
{"TORPEDO", TORPEDO, 0},
{"PHOTONS", TORPEDO, 0},
-#define MOVE 6
+#define MOVE 7
{"MOVE", MOVE, 0},
-#define SHIELDS 7
+#define SHIELDS 8
{"SHIELDS", SHIELDS, 0},
-#define DOCK 8
+#define DOCK 9
{"DOCK", DOCK, 0},
-#define DAMAGES 9
+#define DAMAGES 10
{"DAMAGES", DAMAGES, 0},
-#define CHART 10
+#define CHART 11
{"CHART", CHART, 0},
-#define IMPULSE 11
+#define IMPULSE 12
{"IMPULSE", IMPULSE, 0},
-#define REST 12
+#define REST 13
{"REST", REST, 0},
-#define WARP 13
+#define WARP 14
{"WARP", WARP, 0},
-#define SCORE 14
+#define SCORE 15
{"SCORE", SCORE, 0},
-#define SENSORS 15
+#define SENSORS 16
{"SENSORS", SENSORS, OPTION_PLANETS},
-#define ORBIT 16
+#define ORBIT 17
{"ORBIT", ORBIT, OPTION_PLANETS},
-#define TRANSPORT 17
+#define TRANSPORT 18
{"TRANSPORT", TRANSPORT, OPTION_PLANETS},
-#define MINE 18
+#define MINE 19
{"MINE", MINE, OPTION_PLANETS},
-#define CRYSTALS 19
+#define CRYSTALS 20
{"CRYSTALS", CRYSTALS, OPTION_PLANETS},
-#define SHUTTLE 20
+#define SHUTTLE 21
{"SHUTTLE", SHUTTLE, OPTION_PLANETS},
-#define PLANETS 21
+#define PLANETS 22
{"PLANETS", PLANETS, OPTION_PLANETS},
-#define REPORT 22
+#define REPORT 23
{"REPORT", REPORT, 0},
-#define COMPUTER 23
+#define COMPUTER 24
{"COMPUTER", COMPUTER, 0},
-#define COMMANDS 24
+#define COMMANDS 25
{"COMMANDS", COMMANDS, 0},
-#define EMEXIT 25
+#define EMEXIT 26
{"EMEXIT", EMEXIT, 0},
-#define PROBE 26
+#define PROBE 27
{"PROBE", PROBE, OPTION_PROBE},
-#define SAVE 27
+#define SAVE 28
{"SAVE", SAVE, 0},
{"FREEZE", SAVE, 0},
-#define ABANDON 28
+#define ABANDON 30
{"ABANDON", ABANDON, 0},
-#define DESTRUCT 29
+#define DESTRUCT 31
{"DESTRUCT", DESTRUCT, 0},
-#define DEATHRAY 30
+#define DEATHRAY 32
{"DEATHRAY", DEATHRAY, 0},
-#define DEBUGCMD 31
+#define DEBUGCMD 33
{"DEBUG", DEBUGCMD, 0},
-#define MAYDAY 32
+#define MAYDAY 34
{"MAYDAY", MAYDAY, 0},
//{"SOS", MAYDAY, 0},
//{"CALL", MAYDAY, 0},
-#define QUIT 33
+#define QUIT 35
{"QUIT", QUIT, 0},
-#define HELP 34
+#define HELP 36
{"HELP", HELP, 0},
};
#endif
break;
case MAYDAY: // Call for help
- help();
+ mayday();
if (game.ididit) hitme = TRUE;
break;
case QUIT:
events();
if (game.alldone) break; // Events did us in
}
- if (game.state.galaxy[game.quadx][game.quady].supernova) { // Galaxy went Nova!
+ if (game.state.galaxy[game.quadrant.x][game.quadrant.y].supernova) { // Galaxy went Nova!
atover(0);
continue;
}
if (hitme && game.justin==0) {
attack(2);
if (game.alldone) break;
- if (game.state.galaxy[game.quadx][game.quady].supernova) { // went NOVA!
+ if (game.state.galaxy[game.quadrant.x][game.quadrant.y].supernova) { // went NOVA!
atover(0);
hitme = TRUE;
continue;
proutn(s);
}
-char *cramlc(enum loctype key, int x, int y)
+char *cramlc(enum loctype key, coord w)
{
static char buf[32];
buf[0] = '\0';
if (key == quadrant) strcpy(buf, "Quadrant ");
else if (key == sector) strcpy(buf, "Sector ");
- sprintf(buf+strlen(buf), "%d - %d", x, y);
+ sprintf(buf+strlen(buf), "%d - %d", w.x, w.y);
return buf;
}
-void crmena(int i, int enemy, int key, int x, int y)
+void crmena(int i, int enemy, int key, coord w)
{
if (i == 1) proutn("***");
cramen(enemy);
proutn(" at ");
- proutn(cramlc(key, x, y));
+ proutn(cramlc(key, w));
}
void crmshp(void)
int i;
for (i = 1; i < NEVENTS; i++) {
int key;
- if (game.future[i] == FOREVER) continue;
+ if (!is_scheduled(i)) continue;
switch (i) {
case FSNOVA: proutn("Supernova "); break;
case FTBEAM: proutn("T Beam "); break;
case FSCMOVE: proutn("SC Move "); break;
case FSCDBAS: proutn("SC Base Destroy "); break;
}
- proutn("%.2f", game.future[i]-game.state.date);
+ proutn("%.2f", scheduled(i)-game.state.date);
chew();
proutn(" ?");
key = scan();
if (key == IHREAL) {
- game.future[i] = game.state.date + aaitem;
+ schedule(i, aaitem);
}
}
chew();
}
proutn("Induce supernova here? ");
if (ja() != 0) {
- game.state.galaxy[game.quadx][game.quady].supernova = TRUE;
+ game.state.galaxy[game.quadrant.x][game.quadrant.y].supernova = TRUE;
atover(1);
}
}