/* 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) {
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
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 */
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);
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;
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;
}
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;
}
}
else {
prout(_("saved."));
- game.icrystl = 1;
+ game.icrystl = true;
}
}
}
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;