X-Git-Url: https://jxself.org/git/?a=blobdiff_plain;ds=sidebyside;f=src%2Fmoving.c;h=348d1655a193c1db69ac5fd7bc73c0fe8fdb0c95;hb=6332f1c7917206e23f408ebb505c483416b84e5b;hp=91c74c4a69eabf7f1d7181caa0658bd2c3a246a7;hpb=cd1ac5957730cc1646ba29e2252c35d213b3557a;p=super-star-trek.git diff --git a/src/moving.c b/src/moving.c index 91c74c4..348d165 100644 --- a/src/moving.c +++ b/src/moving.c @@ -8,10 +8,10 @@ void imove(void) /* movement execution for warp, impule, supernova, and tractor-beam events */ { double angle, deltax, deltay, bigger, x, y, - finald, finalx, finaly, stopegy, probf; + finald, stopegy, probf; int n, m, kink, kinks, iquad; - coord w; - bool trbeam = 0; + coord w, final; + bool trbeam = false; w.x = w.y = 0; if (game.inorbit) { @@ -53,9 +53,8 @@ void imove(void) if (game.nenhere != 0 && game.iattak != 2) { newcnd(); for_local_enemies(m) { - finald = sqrt((w.x-game.ks[m].x)*(double)(w.x-game.ks[m].x) + - (w.y-game.ks[m].y)*(double)(w.y-game.ks[m].y)); - game.kavgd[m] = 0.5 * (finald+game.kdist[m]); + finald = distance(w, game.ks[m]); + game.kavgd[m] = 0.5 * (finald + game.kdist[m]); } /* * Stas Sergeev added the game.condition @@ -123,8 +122,7 @@ void imove(void) if (iquad != IHDOT) { /* object encountered in flight path */ stopegy = 50.0*game.dist/game.optime; - game.dist=0.1*sqrt((game.sector.x-w.x)*(double)(game.sector.x-w.x) + - (game.sector.y-w.y)*(double)(game.sector.y-w.y)); + game.dist = distance(game.sector, w) / (QUADSIZE * 1.0); switch (iquad) { case IHT: /* Ram a Tholian */ case IHK: /* Ram enemy ship */ @@ -132,11 +130,9 @@ void imove(void) case IHS: case IHR: case IHQUEST: - game.sector.x = w.x; - game.sector.y = w.y; + game.sector = w; ram(0, iquad, game.sector); - finalx = game.sector.x; - finaly = game.sector.y; + final = game.sector; break; case IHBLANK: skip(1); @@ -174,10 +170,9 @@ void imove(void) proutn(_("Emergency stop required ")); prout(_("%2d units of energy."), (int)stopegy); game.energy -= stopegy; - finalx = x-deltax+0.5; - game.sector.x = finalx; - finaly = y-deltay+0.5; - game.sector.y = finaly; + final.x = x-deltax+0.5; + final.y = y-deltay+0.5; + game.sector = final; if (game.energy <= 0) { finish(FNRG); return; @@ -187,20 +182,16 @@ void imove(void) goto no_quad_change; /* sorry! */ } } - game.dist = 0.1*sqrt((game.sector.x-w.x)*(double)(game.sector.x-w.x) + - (game.sector.y-w.y)*(double)(game.sector.y-w.y)); - game.sector.x = w.x; - game.sector.y = w.y; + game.dist = distance(game.sector, w) / (QUADSIZE * 1.0); + game.sector = w; } - finalx = game.sector.x; - finaly = game.sector.y; + final = game.sector; no_quad_change: /* No quadrant change -- compute new avg enemy distances */ game.quad[game.sector.x][game.sector.y] = game.ship; if (game.nenhere) { for_local_enemies(m) { - finald = sqrt((w.x-game.ks[m].x)*(double)(w.x-game.ks[m].x) + - (w.y-game.ks[m].y)*(double)(w.y-game.ks[m].y)); + finald = distance(w, game.ks[m]); game.kavgd[m] = 0.5 * (finald+game.kdist[m]); game.kdist[m] = finald; } @@ -235,7 +226,7 @@ void dock(bool verbose) } game.condit = IHDOCKED; if (verbose) prout(_("Docked.")); - game.ididit=true; + game.ididit = true; if (game.energy < game.inenrg) game.energy = game.inenrg; game.shield = game.inshld; game.torps = game.intorps; @@ -670,7 +661,7 @@ void setwrp(void) game.warpfac = aaitem; game.wfacsq=game.warpfac*game.warpfac; if (game.warpfac <= oldfac || game.warpfac <= 6.0) { - proutn(_("Helmsman Sulu- \"Warp factor %d, Captain.\""), + prout(_("Helmsman Sulu- \"Warp factor %d, Captain.\""), (int)game.warpfac); return; } @@ -711,14 +702,14 @@ void atover(bool igrab) } prout(_("SUCCEEDS!")); if (game.imine) { - game.imine = 0; + game.imine = false; proutn(_("The crystals mined were ")); if (Rand() <= 0.25) { prout(_("lost.")); } else { prout(_("saved.")); - game.icrystl = 1; + game.icrystl = true; } } } @@ -945,12 +936,12 @@ void mayday(void) game.nhelp++; if (game.base.x!=0) { /* There's one in this quadrant */ - ddist = sqrt(square(game.base.x-game.sector.x)+square(game.base.y-game.sector.y)); + ddist = distance(game.base, game.sector); } else { ddist = FOREVER; for_starbases(m) { - xdist=10.0*sqrt(square(game.state.baseq[m].x-game.quadrant.x)+square(game.state.baseq[m].y-game.quadrant.y)); + xdist = QUADSIZE * distance(game.state.baseq[m], game.quadrant); if (xdist < ddist) { ddist = xdist; line = m;