X-Git-Url: https://jxself.org/git/?p=super-star-trek.git;a=blobdiff_plain;f=src%2Fmoving.c;h=60ff4c3070c1e79a8ce4750c5625bf1c3271a9b7;hp=348d1655a193c1db69ac5fd7bc73c0fe8fdb0c95;hb=0f68a074434296ae409accdc39ba0142600ea255;hpb=6332f1c7917206e23f408ebb505c483416b84e5b diff --git a/src/moving.c b/src/moving.c index 348d165..60ff4c3 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. */ @@ -131,7 +132,7 @@ void imove(void) case IHR: case IHQUEST: game.sector = w; - ram(0, iquad, game.sector); + ram(false, iquad, game.sector); final = game.sector; break; case IHBLANK: @@ -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; } } @@ -267,7 +268,7 @@ static void getcd(bool isprobe, int akey) 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(); @@ -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 @@ -684,7 +685,7 @@ void atover(bool igrab) chew(); /* is captain on planet? */ - if (game.landed==1) { + if (game.landed) { if (damaged(DTRANSP)) { finish(FPNOVA); return; @@ -774,14 +775,15 @@ 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 */ 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)); @@ -798,21 +800,21 @@ 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; - 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, @@ -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; } @@ -926,7 +948,7 @@ void mayday(void) 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("."); @@ -1000,7 +1022,7 @@ void mayday(void) } if (m > 3) { game.quad[ix][iy]=IHQUEST; - game.alive = 0; + game.alive = false; drawmaps(1); setwnd(message_window); finish(FMATERIALIZE);