projects
/
super-star-trek.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Correct off-by-one bug in placement of Tholian.
[super-star-trek.git]
/
src
/
battle.c
diff --git
a/src/battle.c
b/src/battle.c
index a1e1377f1e37a94cedf2fffcdded6ac2081a1d10..78baae9eab970dbf4a127991fbf873c154c63937 100644
(file)
--- a/
src/battle.c
+++ b/
src/battle.c
@@
-239,8
+239,8
@@
void ram(bool ibumpd, feature ienm, coord w)
}
game.shldup = false;
prout(_("***Shields are down."));
}
game.shldup = false;
prout(_("***Shields are down."));
- if (
KLINGREM
) {
-
pause_game(true
);
+ if (
game.state.remkl + game.state.remcom + game.state.nscrem
) {
+
announce(
);
damagereport();
}
else
damagereport();
}
else
@@
-335,7
+335,7
@@
void torpedo(double course, double r, coord in, double *hit, int i, int n)
case IHR: /* Hit a regular enemy */
case IHK:
/* find the enemy */
case IHR: /* Hit a regular enemy */
case IHK:
/* find the enemy */
- for
_local_enemies(ll
)
+ for
(ll = 1; ll <= game.nenhere; ll++
)
if (same(w, game.ks[ll]))
break;
kp = fabs(game.kpower[ll]);
if (same(w, game.ks[ll]))
break;
kp = fabs(game.kpower[ll]);
@@
-380,7
+380,7
@@
void torpedo(double course, double r, coord in, double *hit, int i, int n)
case IHB: /* Hit a base */
skip(1);
prout(_("***STARBASE DESTROYED.."));
case IHB: /* Hit a base */
skip(1);
prout(_("***STARBASE DESTROYED.."));
- for
_starbases(ll
) {
+ for
(ll = 1; ll <= game.state.rembase; ll++
) {
if (same(game.state.baseq[ll], game.quadrant)) {
game.state.baseq[ll]=game.state.baseq[game.state.rembase];
break;
if (same(game.state.baseq[ll], game.quadrant)) {
game.state.baseq[ll]=game.state.baseq[game.state.rembase];
break;
@@
-399,7
+399,7
@@
void torpedo(double course, double r, coord in, double *hit, int i, int n)
prout(_(" destroyed."));
game.state.nplankl++;
q->planet = NOPLANET;
prout(_(" destroyed."));
game.state.nplankl++;
q->planet = NOPLANET;
-
DESTROY(&game.state.planets[game.iplnet])
;
+
game.state.planets[game.iplnet].pclass = destroyed
;
game.iplnet = 0;
invalidate(game.plnet);
game.quad[w.x][w.y] = IHDOT;
game.iplnet = 0;
invalidate(game.plnet);
game.quad[w.x][w.y] = IHDOT;
@@
-413,7
+413,7
@@
void torpedo(double course, double r, coord in, double *hit, int i, int n)
prout(_(" destroyed."));
game.state.nworldkl++;
q->planet = NOPLANET;
prout(_(" destroyed."));
game.state.nworldkl++;
q->planet = NOPLANET;
-
DESTROY(&game.state.planets[game.iplnet])
;
+
game.state.planets[game.iplnet].pclass = destroyed
;
game.iplnet = 0;
invalidate(game.plnet);
game.quad[w.x][w.y] = IHDOT;
game.iplnet = 0;
invalidate(game.plnet);
game.quad[w.x][w.y] = IHDOT;
@@
-501,7
+501,7
@@
void torpedo(double course, double r, coord in, double *hit, int i, int n)
game.quad[w.x][w.y]=IHDOT;
game.quad[jw.x][jw.y]=iquad;
prout(_(" displaced by blast to %s "), cramlc(sector, jw));
game.quad[w.x][w.y]=IHDOT;
game.quad[jw.x][jw.y]=iquad;
prout(_(" displaced by blast to %s "), cramlc(sector, jw));
- for
_local_enemies(ll
)
+ for
(ll = 1; ll <= game.nenhere; ll++
)
game.kdist[ll] = game.kavgd[ll] = distance(game.sector,game.ks[ll]);
sortklings();
return;
game.kdist[ll] = game.kavgd[ll] = distance(game.sector,game.ks[ll]);
sortklings();
return;
@@
-597,7
+597,7
@@
void attack(bool torps_ok)
if (game.skill <= SKILL_FAIR)
where = sector;
if (game.skill <= SKILL_FAIR)
where = sector;
- for
_local_enemies(loop
) {
+ for
(loop = 1; loop <= game.nenhere; loop++
) {
if (game.kpower[loop] < 0)
continue; /* too weak to attack */
/* compute hit strength and diminish shield power */
if (game.kpower[loop] < 0)
continue; /* too weak to attack */
/* compute hit strength and diminish shield power */
@@
-639,7
+639,7
@@
void attack(bool torps_ok)
r = (Rand()+Rand())*0.5 -0.5;
r += 0.002*game.kpower[loop]*r;
torpedo(course, r, jay, &hit, 1, 1);
r = (Rand()+Rand())*0.5 -0.5;
r += 0.002*game.kpower[loop]*r;
torpedo(course, r, jay, &hit, 1, 1);
- if (
KLINGREM
==0)
+ if (
(game.state.remkl + game.state.remcom + game.state.nscrem)
==0)
finish(FWON); /* Klingons did themselves in! */
if (game.state.galaxy[game.quadrant.x][game.quadrant.y].supernova || game.alldone)
return; /* Supernova or finished */
finish(FWON); /* Klingons did themselves in! */
if (game.state.galaxy[game.quadrant.x][game.quadrant.y].supernova || game.alldone)
return; /* Supernova or finished */
@@
-722,7
+722,7
@@
void attack(bool torps_ok)
}
}
/* After attack, reset average distance to enemies */
}
}
/* After attack, reset average distance to enemies */
- for
_local_enemies(loop
)
+ for
(loop = 1; loop <= game.nenhere; loop++
)
game.kavgd[loop] = game.kdist[loop];
sortklings();
return;
game.kavgd[loop] = game.kdist[loop];
sortklings();
return;
@@
-758,7
+758,7
@@
void deadkl(coord w, feature type, coord mv)
switch (type) {
case IHC:
game.comhere = false;
switch (type) {
case IHC:
game.comhere = false;
- for
_commanders (i
)
+ for
(i = 1; i <= game.state.remcom; i++
)
if (same(game.state.kcmdr[i], game.quadrant))
break;
game.state.kcmdr[i] = game.state.kcmdr[game.state.remcom];
if (same(game.state.kcmdr[i], game.quadrant))
break;
game.state.kcmdr[i] = game.state.kcmdr[game.state.remcom];
@@
-789,15
+789,16
@@
void deadkl(coord w, feature type, coord mv)
/* For each kind of enemy, finish message to player */
prout(_(" destroyed."));
game.quad[w.x][w.y] = IHDOT;
/* For each kind of enemy, finish message to player */
prout(_(" destroyed."));
game.quad[w.x][w.y] = IHDOT;
- if (
KLINGREM
==0)
+ if (
(game.state.remkl + game.state.remcom + game.state.nscrem)
==0)
return;
return;
- game.state.remtime = game.state.remres/(game.state.remkl + 4*game.state.remcom);
+ game.state.remtime = game.state.remkl + game.state.remcom > 0 ?
+ game.state.remres/(game.state.remkl + 4*game.state.remcom) : 99;
/* Remove enemy ship from arrays describing local conditions */
if (is_scheduled(FCDBAS) && same(game.battle, game.quadrant) && type==IHC)
unschedule(FCDBAS);
/* Remove enemy ship from arrays describing local conditions */
if (is_scheduled(FCDBAS) && same(game.battle, game.quadrant) && type==IHC)
unschedule(FCDBAS);
- for
_local_enemies(i
)
+ for
(i = 1; i <= game.nenhere; i++
)
if (same(game.ks[i], w))
break;
game.nenhere--;
if (same(game.ks[i], w))
break;
game.nenhere--;
@@
-966,7
+967,7
@@
void photon(void)
if (game.alldone || game.state.galaxy[game.quadrant.x][game.quadrant.y].supernova)
return;
}
if (game.alldone || game.state.galaxy[game.quadrant.x][game.quadrant.y].supernova)
return;
}
- if (
KLINGREM
==0)
+ if (
(game.state.remkl + game.state.remcom + game.state.nscrem)
==0)
finish(FWON);
}
finish(FWON);
}
@@
-1138,9
+1139,10
@@
void phasers(void)
irec=0;
do {
chew();
irec=0;
do {
chew();
- if (!kz) for_local_enemies(i)
- irec+=fabs(game.kpower[i])/(PHASEFAC*pow(0.90,game.kdist[i]))*
- (1.01+0.05*Rand()) + 1.0;
+ if (!kz)
+ for (i = 1; i <= game.nenhere; i++)
+ irec += fabs(game.kpower[i])/(PHASEFAC*pow(0.90,game.kdist[i]))*
+ (1.01+0.05*Rand()) + 1.0;
kz=1;
proutn(_("%d units required. "), irec);
chew();
kz=1;
proutn(_("%d units required. "), irec);
chew();
@@
-1175,7
+1177,7
@@
void phasers(void)
if (game.nenhere) {
extra = 0.0;
powrem = rpow;
if (game.nenhere) {
extra = 0.0;
powrem = rpow;
- for
_local_enemies(i
) {
+ for
(i = 1; i <= game.nenhere; i++
) {
hits[i] = 0.0;
if (powrem <= 0)
continue;
hits[i] = 0.0;
if (powrem <= 0)
continue;
@@
-1367,7
+1369,7
@@
void hittem(double *hits)
skip(1);
if (kpow == 0) {
deadkl(w, ienm, w);
skip(1);
if (kpow == 0) {
deadkl(w, ienm, w);
- if (
KLINGREM
==0)
+ if (
(game.state.remkl + game.state.remcom + game.state.nscrem)
==0)
finish(FWON);
if (game.alldone)
return;
finish(FWON);
if (game.alldone)
return;