/* 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;
- ram(0, iquad, game.sector);
- finalx = game.sector.x;
- finaly = game.sector.y;
+ game.sector = w;
+ ram(false, iquad, game.sector);
+ 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.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;
}
}
}
else {
prout(_("saved."));
- game.icrystl = 1;
+ game.icrystl = true;
}
}
}
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 */
/* 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;
}
/* 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;
}