game.shield = game.inshld = 1250.0;
game.torps = game.intorps = 6;
game.lsupres=game.inlsr=3.0;
- game.shldup=0;
+ game.shldup=false;
game.warpfac=5.0;
game.wfacsq=25.0;
return;
game.ship = IHE;
game.energy = game.inenrg = 5000.0;
game.shield = game.inshld = 2500.0;
- game.shldchg = game.shldup = 0;
+ game.shldchg = 0;
+ game.shldup = false;
game.inlsr = 4.0;
game.lsupres = 4.0;
iran(GALSIZE, &game.quadrant.x, &game.quadrant.y);
// Set up assorted game parameters
game.battle.x = game.battle.y = 0;
game.state.date = game.indate = 100.0*(int)(31.0*Rand()+20.0);
- game.nkinks = game.nhelp = game.resting = game.casual = 0;
+ game.nkinks = game.nhelp = game.casual = 0;
+ game.resting = false;
game.isatb = game.iscate = game.imine = game.icrystl = game.icraft = game.state.nplankl = 0;
game.state.starkl = game.state.basekl = 0;
game.iscraft = 1;
for_quadrants(j) {
struct quadrant *quad = &game.state.galaxy[i][j];
quad->charted = 0;
- quad->planet = NULL;
+ quad->planet = NOPLANET;
quad->romulans = 0;
quad->klingons = 0;
quad->starbase = 0;
quad->supernova = 0;
-#ifdef EXPERIMENTAL
quad->status = secure;
-#endif /* EXPERIMENTAL */
}
// Initialize times for extraneous events
schedule(FSNOVA, expran(0.5 * game.intime));
unschedule(FSCMOVE);
unschedule(FSCDBAS);
unschedule(FDSPROB);
-#ifdef EXPERIMENTAL
- if (game.options & OPTION_WORLDS)
+ if ((game.options & OPTION_WORLDS) && game.skill >= SKILL_GOOD)
schedule(FDISTR, expran(1.0 + game.intime));
+ else
+ unschedule(FDISTR);
unschedule(FENSLV);
unschedule(FREPRO);
-#endif /* EXPERIMENTAL */
// Starchart is functional but we've never seen it
game.lastchart = FOREVER;
// Put stars in the galaxy
// Position ordinary Klingon Battle Cruisers
krem = game.inkling;
klumper = 0.25*game.skill*(9.0-game.length)+1.0;
- if (klumper > 9)
- klumper = 9; // Can't have more than 9 in quadrant
+ if (klumper > MAXKLQUAD)
+ klumper = MAXKLQUAD;
do {
double r = Rand();
int klump = (1.0 - r*r)*klumper;
}
// Locate planets in galaxy
for (i = 0; i < game.inplan; i++) {
- do iran(GALSIZE, &ix, &iy); while (game.state.galaxy[ix][iy].planet);
+ do iran(GALSIZE, &ix, &iy); while (game.state.galaxy[ix][iy].planet != NOPLANET);
game.state.plnets[i].w.x = ix;
game.state.plnets[i].w.y = iy;
if (i < NINHAB) {
game.state.plnets[i].inhabited = UNINHABITED;
}
if ((game.options & OPTION_WORLDS) || i >= NINHAB)
- game.state.galaxy[ix][iy].planet = game.state.plnets + i;
+ game.state.galaxy[ix][iy].planet = i;
}
// Locate Romulans
for (i = 1; i <= game.state.nromrem; i++) {
if (game.state.nscrem) prout(" YOU'LL NEED IT.");
waitfor();
newqad(0);
- if (game.nenhere-iqhere-game.ithere) game.shldup=1.0;
+ if (game.nenhere-iqhere-game.ithere) game.shldup = true;
if (game.neutz) attack(0); // bad luck to start in a Romulan Neutral Zone
}
setpassword();
if (strcmp(game.passwd, "debug")==0) {
idebug = true;
- logfp = fopen("sst-input.log", "w");
fputs("=== Debug mode enabled\n", stdout);
}
struct quadrant *here;
game.iattak = 1;
- game.justin = 1;
+ game.justin = true;
game.base.x = game.base.y = 0;
game.klhere = 0;
game.comhere = 0;
game.irhere = 0;
game.iplnet = 0;
game.nenhere = 0;
- game.neutz = 0;
- game.inorbit = 0;
+ game.neutz = false;
+ game.inorbit = false;
game.landed = -1;
game.ientesc = 0;
game.ithere = 0;
dropin(IHB, &game.base);
// If quadrant needs a planet, put it in
- if (here->planet) {
- game.iplnet = here->planet - game.state.plnets;
- if (here->planet->inhabited == UNINHABITED)
+ if (here->planet != NOPLANET) {
+ game.iplnet = here->planet;
+ if (game.state.plnets[here->planet].inhabited == UNINHABITED)
dropin(IHP, &game.plnet);
else
dropin(IHW, &game.plnet);
dropin(IHSTAR, &w);
// Check for RNZ
- if (game.irhere > 0 && game.klhere == 0 && (!here->planet || here->planet->inhabited == UNINHABITED)) {
+ if (game.irhere > 0 && game.klhere == 0 && (here->planet == NOPLANET || game.state.plnets[here->planet].inhabited == UNINHABITED)) {
game.neutz = 1;
if (game.damage[DRADIO] <= 0.0) {
skip(1);