{
double angle, deltax, deltay, bigger, x, y,
finald, stopegy, probf;
- int n, m, kink, kinks, iquad;
+ int n, m, kink, kinks;
+ feature iquad;
coord w, final;
bool trbeam = false;
/* If tractor beam is to occur, don't move full distance */
if (game.state.date+game.optime >= scheduled(FTBEAM)) {
trbeam = true;
- game.condit = IHRED;
+ game.condition = red;
game.dist = game.dist*(scheduled(FTBEAM)-game.state.date)/game.optime + 0.1;
game.optime = scheduled(FTBEAM) - game.state.date + 1e-5;
}
game.kavgd[m] = 0.5 * (finald + game.kdist[m]);
}
/*
- * Stas Sergeev added the game.condition
+ * Stas Sergeev added the condition
* that attacks only happen if Klingons
* are present and your skill is good.
*/
/* dock our ship at a starbase */
{
chew();
- if (game.condit == IHDOCKED && verbose) {
+ if (game.condition == docked && verbose) {
prout(_("Already docked."));
return;
}
prout(_(" not adjacent to base."));
return;
}
- game.condit = IHDOCKED;
+ game.condition = docked;
if (verbose) prout(_("Docked."));
game.ididit = true;
if (game.energy < game.inenrg) game.energy = game.inenrg;
game.lsupres = game.inlsr;
game.state.crew = FULLCREW;
if (!damaged(DRADIO) &&
- (is_scheduled(FCDBAS) || game.isatb == 1) && game.iseenit == 0) {
+ (is_scheduled(FCDBAS) || game.isatb == 1) && !game.iseenit) {
/* get attack report from base */
prout(_("Lt. Uhura- \"Captain, an important message from the starbase:\""));
attakreport(false);
- game.iseenit = 1;
+ game.iseenit = true;
}
}
game.direc = -1.0;
- if (game.landed == 1 && !isprobe) {
+ if (game.landed && !isprobe) {
prout(_("Dummy! You can't leave standard orbit until you"));
proutn(_("are back aboard the "));
crmshp();
return;
}
while (navmode == unspecified) {
- if (damaged(DCOMPTR)) {
+ if (damaged(DNAVSYS)) {
if (isprobe)
prout(_("Computer damaged; manual navigation only"));
else
chew();
/* is captain on planet? */
- if (game.landed==1) {
+ if (game.landed) {
if (damaged(DTRANSP)) {
finish(FPNOVA);
return;
void timwrp()
/* let's do the time warp again */
{
- int l, gotit;
+ int l;
+ bool gotit;
prout(_("***TIME WARP ENTERED."));
if (game.state.snap && Rand() < 0.5) {
/* Go back in time */
prout(_("You are traveling backwards in time %d stardates."),
(int)(game.state.date-game.snapsht.date));
game.state = game.snapsht;
- game.state.snap = 0;
+ game.state.snap = false;
if (game.state.remcom) {
schedule(FTBEAM, expran(game.intime/game.state.remcom));
schedule(FBATTAK, expran(0.3*game.intime));
/* Make sure Galileo is consistant -- Snapshot may have been taken
when on planet, which would give us two Galileos! */
- gotit = 0;
+ gotit = false;
for (l = 0; l < game.inplan; l++) {
if (game.state.plnets[l].known == shuttle_down) {
- gotit = 1;
- if (game.iscraft==1 && game.ship==IHE) {
+ gotit = true;
+ if (game.iscraft == onship && game.ship==IHE) {
prout(_("Checkov- \"Security reports the Galileo has disappeared, Sir!"));
- game.iscraft = 0;
+ game.iscraft = offship;
}
}
}
/* Likewise, if in the original time the Galileo was abandoned, but
was on ship earlier, it would have vanished -- lets restore it */
- if (game.iscraft==0 && gotit==0 && game.damage[DSHUTTL] >= 0.0) {
+ if (game.iscraft == offship && !gotit && game.damage[DSHUTTL] >= 0.0) {
prout(_("Checkov- \"Security reports the Galileo has reappeared in the dock!\""));
- game.iscraft = 1;
+ game.iscraft = onship;
}
/*
* There used to be code to do the actual reconstrction here,
if (is_scheduled(FDSPROB)) {
chew();
skip(1);
- if (damaged(DRADIO) && game.condit != IHDOCKED) {
+ if (damaged(DRADIO) && game.condition != docked) {
prout(_("Spock- \"Records show the previous probe has not yet"));
prout(_(" reached its destination.\""));
}
return;
}
+/*
+ * Here's how the mayday code works:
+ *
+ * First, the closest starbase is selected. If there is a
+ * a starbase in your own quadrant, you are in good shape.
+ * This distance takes quadrant distances into account only.
+ *
+ * A magic number is computed based on the distance which acts
+ * as the probability that you will be rematerialized. You
+ * get three tries.
+ *
+ * When it is determined that you should be able to be remater-
+ * ialized (i.e., when the probability thing mentioned above
+ * comes up positive), you are put into that quadrant (anywhere).
+ * Then, we try to see if there is a spot adjacent to the star-
+ * base. If not, you can't be rematerialized!!! Otherwise,
+ * it drops you there. It only tries five times to find a spot
+ * to drop you. After that, it's your problem.
+ */
+
void mayday(void)
/* yell for help from nearest starbase */
{
int line = 0, m, ix, iy;
chew();
- /* Test for game.conditions which prevent calling for help */
- if (game.condit == IHDOCKED) {
+ /* Test for conditions which prevent calling for help */
+ if (game.condition == docked) {
prout(_("Lt. Uhura- \"But Captain, we're already docked.\""));
return;
}
prout(_("Lt. Uhura- \"Captain, I'm not getting any response from Starbase.\""));
return;
}
- if (game.landed == 1) {
+ if (game.landed) {
proutn(_("You must be aboard the "));
crmshp();
prout(".");
}
if (m > 3) {
game.quad[ix][iy]=IHQUEST;
- game.alive = 0;
+ game.alive = false;
drawmaps(1);
setwnd(message_window);
finish(FMATERIALIZE);