* that attacks only happen if Klingons
* are present and your skill is good.
*/
- if (skill > SKILL_GOOD && klhere > 0 && game.state.galaxy[quadx][quady] != SUPERNOVA_PLACE)
+ if (skill > SKILL_GOOD && klhere > 0 && !game.state.galaxy[quadx][quady].supernova)
attack(0);
if (alldone) return;
}
* possibility that you'll get timewarped instead.
*/
n=0;
- for (l=1;l<=NDEVICES+1;l++)
- if (game.damage[l]>0) n++;
- probf=pow(1.4,(energy+shield)/5000.0-1.0)*
- pow(1.3,1.0/(n+1)-1.0);
+ for (l=0;l<NDEVICES;l++)
+ if (game.damage[l]>0)
+ n++;
+ probf=pow(1.4,(energy+shield)/5000.0-1.0)*pow(1.3,1.0/(n+1)-1.0);
if (Rand()>probf)
timwrp();
else
game.kdist[l] = finald;
}
sortkl();
- if (game.state.galaxy[quadx][quady] != SUPERNOVA_PLACE && iattak == 0)
+ if (!game.state.galaxy[quadx][quady].supernova && iattak == 0)
attack(0);
for (l = 1 ; l <= nenhere; l++) game.kavgd[l] = game.kdist[l];
}
if (landed == 1 && !isprobe) {
prout("Dummy! You can't leave standard orbit until you");
- proutn("are back abourt the ");
+ proutn("are back aboard the ");
crmshp();
prout(".");
chew();
crmshp();
skip(1);
prout("safely out of quadrant.");
- game.starch[quadx][quady] = game.damage[DRADIO] > 0.0 ? game.state.galaxy[quadx][quady]+SUPERNOVA_PLACE:1;
-
+ if (game.damage[DRADIO] == 0.0)
+ game.state.galaxy[quadx][quady].charted = TRUE;
/* Try to use warp engines */
if (game.damage[DWARPEN]) {
skip(1);
finish(FSNOVAED);
return;
}
+ } while
/* Repeat if another snova */
- } while (game.state.galaxy[quadx][quady] == SUPERNOVA_PLACE);
- if (game.state.remkl==0) finish(FWON); /* Snova killed remaining enemy. */
+ (game.state.galaxy[quadx][quady].supernova);
+ if (game.state.remkl==0)
+ finish(FWON); /* Snova killed remaining enemy. */
}
void timwrp()
{
- int l, ll, gotit;
+ int l, gotit;
prout("***TIME WARP ENTERED.");
if (game.state.snap && Rand() < 0.5) {
/* Go back in time */
prout("Checkov- \"Security reports the Galileo has reappeared in the dock!\"");
iscraft = 1;
}
-
- /* Revert star chart to earlier era, if it was known then*/
- if (game.damage[DRADIO]==0.0 || stdamtim > game.state.date) {
- for (l = 1; l <= GALSIZE; l++)
- for (ll = 1; ll <= GALSIZE; ll++)
- if (game.starch[l][ll] > 1)
- game.starch[l][ll]=game.damage[DRADIO]>0.0 ? game.state.galaxy[l][ll]+SUPERNOVA_PLACE :1;
- prout("Spock has reconstructed a correct star chart from memory");
- if (game.damage[DRADIO] > 0.0) stdamtim = game.state.date;
- }
+ /*
+ * There used to be code to do the actual reconstrction here,
+ * but the starchart is now part of the snapshotted galaxy state.
+ */
+ prout("Spock has reconstructed a correct star chart from memory");
}
else {
/* Go forward in time */