X-Git-Url: https://jxself.org/git/?p=super-star-trek.git;a=blobdiff_plain;f=setup.c;h=88884671d08a488c83ddda8e44045680c4ef9b3b;hp=6ea71b53166729ef5c50e9d40767a06909a24de5;hb=6b396c7a585fcf5c54caf29c527b195999d23bfe;hpb=ca19525727deffe6ea0012d35168d9942baa3958 diff --git a/setup.c b/setup.c index 6ea71b5..8888467 100644 --- a/setup.c +++ b/setup.c @@ -219,8 +219,8 @@ void setup(int needprompt) // Set up assorted game parameters batx = baty = 0; game.state.date = indate = 100.0*(int)(31.0*Rand()+20.0); - game.state.killk = game.state.killc = nkinks = nhelp = resting = casual = game.state.nromkl = 0; - isatb = iscate = imine = icrystl = icraft = game.state.nsckill = game.state.nplankl = 0; + nkinks = nhelp = resting = casual = 0; + isatb = iscate = imine = icrystl = icraft = game.state.nplankl = 0; game.state.starkl = game.state.basekl = 0; iscraft = 1; landed = -1; @@ -231,6 +231,9 @@ void setup(int needprompt) game.state.galaxy[i][j].charted = 0; game.state.galaxy[i][j].planets = 0; game.state.galaxy[i][j].romulans = 0; + game.state.galaxy[i][j].klingons = 0; + game.state.galaxy[i][j].starbase = 0; + game.state.galaxy[i][j].supernova = 0; } // Initialize times for extraneous events game.future[FSNOVA] = game.state.date + expran(0.5 * intime); @@ -282,7 +285,7 @@ void setup(int needprompt) game.state.chart[ix][iy].starbase = 1; } // Position ordinary Klingon Battle Cruisers - krem = inkling - incom - game.state.nscrem; + krem = inkling; klumper = 0.25*skill*(9.0-length)+1.0; if (klumper > 9) klumper = 9; // Can't have more than 9 in quadrant do { @@ -364,7 +367,7 @@ void setup(int needprompt) prout("a deadly Klingon invasion force. As captain of the United"); prout("Starship U.S.S. Enterprise, it is your mission to seek out"); prout("and destroy this invasion force of %d battle cruisers.", - inkling); + INKLINGTOT); prout("You have an initial allotment of %d stardates to complete", (int)intime); prout("your mission. As you proceed you may be given more time."); prout(""); @@ -374,7 +377,7 @@ void setup(int needprompt) else { prout("Stardate %d.", (int)game.state.date); prout(""); - prout("%d Klingons.", inkling); + prout("%d Klingons.", INKLINGTOT); prout("An unknown number of Romulans."); if (game.state.nscrem) prout("and one (GULP) Super-Commander."); prout("%d stardates.",(int)intime); @@ -464,6 +467,23 @@ int choose(int needprompt) else if (skill == SKILL_NONE) proutn("Are you a Novice, Fair, Good, Expert, or Emeritus player? "); } } + // Choose game options -- added by ESR for SST2K + if (scan() != IHALPHA) { + chew(); + proutn("Choose your game options: "); + scan(); + } + if (isit("plain")) + // Approximates the UT FORTRAN version. + game.options &=~ (OPTION_THOLIAN | OPTION_PLANETS | OPTION_THINGY | OPTION_PROBE | OPTION_RAMMING | OPTION_MVBADDY | OPTION_BLKHOLE | OPTION_BASE); + if (isit("almy")) + // Approximates Tom Almy's version. + game.options &=~ (OPTION_THINGY | OPTION_BLKHOLE | OPTION_BASE); + else if (strlen(citem)) { + proutn("What is \""); + proutn(citem); + prout("\"?"); + } setpassword(); #ifdef DEBUG if (strcmp(game.passwd, "debug")==0) idebug = 1; @@ -475,14 +495,13 @@ int choose(int needprompt) inbase = game.state.rembase; if (game.options & OPTION_PLANETS) inplan = (PLNETMAX/2) + (PLNETMAX/2+1)*Rand(); - game.state.nromrem = (2.0+Rand())*skill; - game.state.nscrem = (skill > SKILL_FAIR ? 1 : 0); + game.state.nromrem = inrom = (2.0+Rand())*skill; + game.state.nscrem = inscom = (skill > SKILL_FAIR ? 1 : 0); game.state.remtime = 7.0 * length; intime = game.state.remtime; - game.state.remkl = 2.0*intime*((skill+1 - 2*Rand())*skill*0.1+.15); - inkling = game.state.remkl; + game.state.remkl = inkling = 2.0*intime*((skill+1 - 2*Rand())*skill*0.1+.15); incom = skill + 0.0625*inkling*Rand(); - game.state.remcom= min(10, incom); + game.state.remcom = min(10, incom); incom = game.state.remcom; game.state.remres = (inkling+4*incom)*intime; inresor = game.state.remres;