More int-to-boolean cleanup. Make the FDISTR event work.
[super-star-trek.git] / src / setup.c
index 7b17fbcd9c0745556310ee8ff3ce120963257ab0..77f58bd899cb4d6479d9de30a4b8769bad3809d2 100644 (file)
@@ -185,7 +185,7 @@ void abandn(void)
     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;
@@ -202,7 +202,8 @@ void setup(int needprompt)
     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);
@@ -216,7 +217,8 @@ void setup(int needprompt)
     // 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;
@@ -227,14 +229,12 @@ void setup(int needprompt)
        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));
@@ -248,12 +248,12 @@ void setup(int needprompt)
        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
@@ -295,8 +295,8 @@ void setup(int needprompt)
     // 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;
@@ -337,7 +337,7 @@ void setup(int needprompt)
     }
     // 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) {
@@ -352,7 +352,7 @@ void setup(int needprompt)
            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++) {
@@ -415,7 +415,7 @@ void setup(int needprompt)
     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
 }
 
@@ -506,7 +506,6 @@ bool choose(bool needprompt)
     setpassword();
     if (strcmp(game.passwd, "debug")==0) {
        idebug = true;
-       logfp = fopen("sst-input.log", "w");
        fputs("=== Debug mode enabled\n", stdout);
     }
 
@@ -564,7 +563,7 @@ void newqad(int shutup)
     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;
@@ -573,8 +572,8 @@ void newqad(int shutup)
     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;
@@ -635,9 +634,9 @@ void newqad(int shutup)
        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);
@@ -649,7 +648,7 @@ void newqad(int shutup)
        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);