X-Git-Url: https://jxself.org/git/?a=blobdiff_plain;f=src%2Fmoving.c;h=60ff4c3070c1e79a8ce4750c5625bf1c3271a9b7;hb=0def1139fe1c02cd25c21fe26c9a9722debf4211;hp=3ed56a4d8517f9d184360f1406db377749cfaf04;hpb=2ea1ffb97cc0cdb13d8f4d42547a4e15245adfb2;p=super-star-trek.git diff --git a/src/moving.c b/src/moving.c index 3ed56a4..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; @@ -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; @@ -782,7 +783,7 @@ void timwrp() 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)); @@ -803,17 +804,17 @@ void timwrp() for (l = 0; l < game.inplan; l++) { if (game.state.plnets[l].known == shuttle_down) { gotit = true; - if (game.iscraft==1 && game.ship==IHE) { + 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 && 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, @@ -906,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 */ { @@ -927,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("."); @@ -1001,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);