projects
/
super-star-trek.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Change the condition field from an uint with #defines to an enum.
[super-star-trek.git]
/
src
/
moving.c
diff --git
a/src/moving.c
b/src/moving.c
index 64ad0a70efd829d38c93a1c0b42deb5403e4f130..3ed56a4d8517f9d184360f1406db377749cfaf04 100644
(file)
--- 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,
/* 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;
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) {
w.x = w.y = 0;
if (game.inorbit) {
@@
-33,7
+33,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
+53,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
+122,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
+130,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
+170,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
+182,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
+211,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,7
+224,7
@@
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."));
game.ididit = true;
if (game.energy < game.inenrg) game.energy = game.inenrg;
if (verbose) prout(_("Docked."));
game.ididit = true;
if (game.energy < game.inenrg) game.energy = game.inenrg;
@@
-242,11
+233,11
@@
void dock(bool verbose)
game.lsupres = game.inlsr;
game.state.crew = FULLCREW;
if (!damaged(DRADIO) &&
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
;
}
}
}
}
@@
-718,7
+709,7
@@
void atover(bool igrab)
}
else {
prout(_("saved."));
}
else {
prout(_("saved."));
- game.icrystl =
1
;
+ game.icrystl =
true
;
}
}
}
}
}
}
@@
-783,7
+774,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
+799,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
+811,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
+857,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
+914,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
+937,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;