X-Git-Url: https://jxself.org/git/?p=super-star-trek.git;a=blobdiff_plain;f=src%2Fmoving.c;h=cb6e197b51e5c5625693382f65f9fd830767e42f;hp=11142a3e1abc45b5662ca545c5c713a9ff6c9f57;hb=8f5eef7a4dcbfd3fa8ee33e1f50ae4b0c53efc9c;hpb=3fad5b50fc2950c556a55e39a78e7129353af0b1 diff --git a/src/moving.c b/src/moving.c index 11142a3..cb6e197 100644 --- a/src/moving.c +++ b/src/moving.c @@ -9,7 +9,8 @@ void imove(void) { 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; @@ -33,7 +34,7 @@ void imove(void) /* 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; } @@ -57,7 +58,7 @@ void imove(void) 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. */ @@ -211,7 +212,7 @@ void dock(bool verbose) /* dock our ship at a starbase */ { chew(); - if (game.condit == IHDOCKED && verbose) { + if (game.condition == docked && verbose) { prout(_("Already docked.")); return; } @@ -224,7 +225,7 @@ void dock(bool verbose) 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; @@ -233,11 +234,11 @@ void dock(bool verbose) 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; } } @@ -276,7 +277,7 @@ static void getcd(bool isprobe, int akey) return; } while (navmode == unspecified) { - if (damaged(DCOMPTR)) { + if (damaged(DNAVSYS)) { if (isprobe) prout(_("Computer damaged; manual navigation only")); else @@ -774,7 +775,8 @@ void atover(bool igrab) 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 */ @@ -798,10 +800,10 @@ void timwrp() /* 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; + gotit = true; if (game.iscraft==1 && game.ship==IHE) { prout(_("Checkov- \"Security reports the Galileo has disappeared, Sir!")); game.iscraft = 0; @@ -810,7 +812,7 @@ void timwrp() } /* 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==0 && !gotit && game.damage[DSHUTTL] >= 0.0) { prout(_("Checkov- \"Security reports the Galileo has reappeared in the dock!\"")); game.iscraft = 1; } @@ -856,7 +858,7 @@ void probe(void) 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.\"")); } @@ -905,6 +907,26 @@ void probe(void) 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 */ { @@ -913,8 +935,8 @@ void mayday(void) 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; }