projects
/
super-star-trek.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Replace more #defines with enums.
[super-star-trek.git]
/
src
/
moving.c
diff --git
a/src/moving.c
b/src/moving.c
index 222f86fea524ea19c05318b98685fbbe54583d67..c02f1c4c63ab234eae9eac9be8e5b17ecdb37da6 100644
(file)
--- a/
src/moving.c
+++ b/
src/moving.c
@@
-8,10
+8,11
@@
void imove(void)
/* movement execution for warp, impule, supernova, and tractor-beam events */
{
double angle, deltax, deltay, bigger, x, y,
/* movement execution for warp, impule, supernova, and tractor-beam events */
{
double angle, deltax, deltay, bigger, x, y,
- finald, finalx, finaly, stopegy, probf;
- int n, m, kink, kinks, iquad;
- coord w;
- bool trbeam = 0;
+ finald, stopegy, probf;
+ int n, m, kink, kinks;
+ feature iquad;
+ coord w, final;
+ bool trbeam = false;
w.x = w.y = 0;
if (game.inorbit) {
w.x = w.y = 0;
if (game.inorbit) {
@@
-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;
/* 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.condit
ion = red
;
game.dist = game.dist*(scheduled(FTBEAM)-game.state.date)/game.optime + 0.1;
game.optime = scheduled(FTBEAM) - game.state.date + 1e-5;
}
game.dist = game.dist*(scheduled(FTBEAM)-game.state.date)/game.optime + 0.1;
game.optime = scheduled(FTBEAM) - game.state.date + 1e-5;
}
@@
-53,12
+54,11
@@
void imove(void)
if (game.nenhere != 0 && game.iattak != 2) {
newcnd();
for_local_enemies(m) {
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
+ * Stas Sergeev added the condition
* that attacks only happen if Klingons
* are present and your skill is good.
*/
* that attacks only happen if Klingons
* are present and your skill is good.
*/
@@
-123,8
+123,7
@@
void imove(void)
if (iquad != IHDOT) {
/* object encountered in flight path */
stopegy = 50.0*game.dist/game.optime;
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 */
switch (iquad) {
case IHT: /* Ram a Tholian */
case IHK: /* Ram enemy ship */
@@
-132,11
+131,9
@@
void imove(void)
case IHS:
case IHR:
case IHQUEST:
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);
break;
case IHBLANK:
skip(1);
@@
-174,10
+171,9
@@
void imove(void)
proutn(_("Emergency stop required "));
prout(_("%2d units of energy."), (int)stopegy);
game.energy -= stopegy;
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;
if (game.energy <= 0) {
finish(FNRG);
return;
@@
-187,20
+183,16
@@
void imove(void)
goto no_quad_change; /* sorry! */
}
}
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) {
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.kavgd[m] = 0.5 * (finald+game.kdist[m]);
game.kdist[m] = finald;
}
@@
-220,7
+212,7
@@
void dock(bool verbose)
/* dock our ship at a starbase */
{
chew();
/* dock our ship at a starbase */
{
chew();
- if (game.condit
== IHDOCKED
&& verbose) {
+ if (game.condit
ion == docked
&& verbose) {
prout(_("Already docked."));
return;
}
prout(_("Already docked."));
return;
}
@@
-233,20
+225,20
@@
void dock(bool verbose)
prout(_(" not adjacent to base."));
return;
}
prout(_(" not adjacent to base."));
return;
}
- game.condit
= IHDOCKED
;
+ game.condit
ion = docked
;
if (verbose) prout(_("Docked."));
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;
game.lsupres = game.inlsr;
game.state.crew = FULLCREW;
if (!damaged(DRADIO) &&
if (game.energy < game.inenrg) game.energy = game.inenrg;
game.shield = game.inshld;
game.torps = game.intorps;
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);
/* get attack report from base */
prout(_("Lt. Uhura- \"Captain, an important message from the starbase:\""));
attakreport(false);
- game.iseenit =
1
;
+ game.iseenit =
true
;
}
}
}
}
@@
-670,7
+662,7
@@
void setwrp(void)
game.warpfac = aaitem;
game.wfacsq=game.warpfac*game.warpfac;
if (game.warpfac <= oldfac || game.warpfac <= 6.0) {
game.warpfac = aaitem;
game.wfacsq=game.warpfac*game.warpfac;
if (game.warpfac <= oldfac || game.warpfac <= 6.0) {
- prout
n
(_("Helmsman Sulu- \"Warp factor %d, Captain.\""),
+ prout(_("Helmsman Sulu- \"Warp factor %d, Captain.\""),
(int)game.warpfac);
return;
}
(int)game.warpfac);
return;
}
@@
-718,7
+710,7
@@
void atover(bool igrab)
}
else {
prout(_("saved."));
}
else {
prout(_("saved."));
- game.icrystl =
1
;
+ game.icrystl =
true
;
}
}
}
}
}
}
@@
-783,7
+775,8
@@
void atover(bool igrab)
void timwrp()
/* let's do the time warp again */
{
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(_("***TIME WARP ENTERED."));
if (game.state.snap && Rand() < 0.5) {
/* Go back in time */
@@
-807,10
+800,10
@@
void timwrp()
/* Make sure Galileo is consistant -- Snapshot may have been taken
when on planet, which would give us two Galileos! */
/* 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) {
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;
if (game.iscraft==1 && game.ship==IHE) {
prout(_("Checkov- \"Security reports the Galileo has disappeared, Sir!"));
game.iscraft = 0;
@@
-819,7
+812,7
@@
void timwrp()
}
/* Likewise, if in the original time the Galileo was abandoned, but
was on ship earlier, it would have vanished -- lets restore it */
}
/* 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;
}
prout(_("Checkov- \"Security reports the Galileo has reappeared in the dock!\""));
game.iscraft = 1;
}
@@
-865,7
+858,7
@@
void probe(void)
if (is_scheduled(FDSPROB)) {
chew();
skip(1);
if (is_scheduled(FDSPROB)) {
chew();
skip(1);
- if (damaged(DRADIO) && game.condit
!= IHDOCKED
) {
+ if (damaged(DRADIO) && game.condit
ion != docked
) {
prout(_("Spock- \"Records show the previous probe has not yet"));
prout(_(" reached its destination.\""));
}
prout(_("Spock- \"Records show the previous probe has not yet"));
prout(_(" reached its destination.\""));
}
@@
-922,8
+915,8
@@
void mayday(void)
int line = 0, m, ix, iy;
chew();
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.condit
ion == docked
) {
prout(_("Lt. Uhura- \"But Captain, we're already docked.\""));
return;
}
prout(_("Lt. Uhura- \"But Captain, we're already docked.\""));
return;
}
@@
-945,12
+938,12
@@
void mayday(void)
game.nhelp++;
if (game.base.x!=0) {
/* There's one in this quadrant */
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) {
}
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;
if (xdist < ddist) {
ddist = xdist;
line = m;