X-Git-Url: https://jxself.org/git/?p=super-star-trek.git;a=blobdiff_plain;f=src%2Fsetup.c;h=8963b6ce383866edb28c38655fcabe4aa35bb2e4;hp=e0ca59da9b9d3c5e3bf76c72cca660eb538b1980;hb=9ae916e9144e84ef1de4a86ea73a45a2bc4cc1be;hpb=0c29dd2a524aab48238926e4a893ea406a851971 diff --git a/src/setup.c b/src/setup.c index e0ca59d..8963b6c 100644 --- a/src/setup.c +++ b/src/setup.c @@ -212,7 +212,7 @@ void setup(bool needprompt) for (i=0; i < NDEVICES; i++) game.damage[i] = 0.0; // Set up assorted game parameters - game.battle.x = game.battle.y = 0; + invalidate(game.battle); game.state.date = game.indate = 100.0*(int)(31.0*Rand()+20.0); game.nkinks = game.nhelp = game.casual = game.abandoned = 0; game.iscate = game.resting = game.imine = game.icrystl = game.icraft = false; @@ -296,7 +296,8 @@ void setup(bool needprompt) do { double r = Rand(); int klump = (1.0 - r*r)*klumper; - if (klump > krem) klump = krem; + if (klump > krem) + klump = krem; krem -= klump; do w = randplace(GALSIZE); while (game.state.galaxy[w.x][w.y].supernova || @@ -324,7 +325,8 @@ void setup(bool needprompt) game.state.galaxy[w.x][w.y].klingons > 8); // check for duplicate for (j = 1; j < i; j++) - if (game.state.kcmdr[j].x==w.x && game.state.kcmdr[j].y==w.y) break; + if (same(game.state.kcmdr[j], w)) + break; } while (j < i); game.state.galaxy[w.x][w.y].klingons++; game.state.kcmdr[i] = w; @@ -336,12 +338,12 @@ void setup(bool needprompt) game.state.plnets[i].w = w; if (i < NINHAB) { game.state.plnets[i].pclass = M; // All inhabited planets are class M - game.state.plnets[i].crystals = 0; + game.state.plnets[i].crystals = absent; game.state.plnets[i].known = known; game.state.plnets[i].inhabited = i; } else { game.state.plnets[i].pclass = Rand()*3.0; // Planet class M N or O - game.state.plnets[i].crystals = 1.5*Rand(); // 1 in 3 chance of crystals + game.state.plnets[i].crystals = Rand()*1.5; // 1 in 3 chance of crystals game.state.plnets[i].known = unknown; game.state.plnets[i].inhabited = UNINHABITED; } @@ -365,7 +367,7 @@ void setup(bool needprompt) thing = randplace(GALSIZE); } else - thing.x = thing.y = 0; + invalidate(thing); skip(2); game.state.snap = false; @@ -379,16 +381,17 @@ void setup(bool needprompt) INKLINGTOT); prout(_("You have an initial allotment of %d stardates to complete"), (int)game.intime); prout(_("your mission. As you proceed you may be given more time.")); - prout(""); + skip(1); prout(_("You will have %d supporting starbases."), game.inbase); proutn(_("Starbase locations- ")); } else { prout(_("Stardate %d."), (int)game.state.date); - prout(""); + skip(1); prout(_("%d Klingons."), INKLINGTOT); prout(_("An unknown number of Romulans.")); - if (game.state.nscrem) prout(_("And one (GULP) Super-Commander.")); + if (game.state.nscrem) + prout(_("And one (GULP) Super-Commander.")); prout(_("%d stardates."),(int)game.intime); proutn(_("%d starbases in "), game.inbase); } @@ -403,11 +406,14 @@ void setup(bool needprompt) proutn(cramlc(sector, game.sector)); skip(2); prout(_("Good Luck!")); - if (game.state.nscrem) prout(_(" YOU'LL NEED IT.")); + if (game.state.nscrem) + prout(_(" YOU'LL NEED IT.")); waitfor(); newqad(false); - if (game.nenhere-iqhere-game.ithere) game.shldup = true; - if (game.neutz) attack(false); // bad luck to start in a Romulan Neutral Zone + if (game.nenhere-iqhere-game.ithere) + game.shldup = true; + if (game.neutz) // bad luck to start in a Romulan Neutral Zone + attack(false); } bool choose(bool needprompt) @@ -436,15 +442,19 @@ bool choose(bool needprompt) break; } if (isit("saved") || isit("frozen")) { - if (thaw()) continue; + if (thaw()) + continue; chew(); - if (*game.passwd==0) continue; - if (!game.alldone) game.thawed = 1; // No plaque if not finished + if (*game.passwd==0) + continue; + if (!game.alldone) + game.thawed = true; // No plaque if not finished report(); waitfor(); return true; } - if (isit("regular")) break; + if (isit("regular")) + break; proutn(_("What is \"")); proutn(citem); prout("\"?"); @@ -452,14 +462,22 @@ bool choose(bool needprompt) } while (game.length==0 || game.skill==SKILL_NONE) { if (scan() == IHALPHA) { - if (isit("short")) game.length = 1; - else if (isit("medium")) game.length = 2; - else if (isit("long")) game.length = 4; - else if (isit("novice")) game.skill = SKILL_NOVICE; - else if (isit("fair")) game.skill = SKILL_FAIR; - else if (isit("good")) game.skill = SKILL_GOOD; - else if (isit("expert")) game.skill = SKILL_EXPERT; - else if (isit("emeritus")) game.skill = SKILL_EMERITUS; + if (isit("short")) + game.length = 1; + else if (isit("medium")) + game.length = 2; + else if (isit("long")) + game.length = 4; + else if (isit("novice")) + game.skill = SKILL_NOVICE; + else if (isit("fair")) + game.skill = SKILL_FAIR; + else if (isit("good")) + game.skill = SKILL_GOOD; + else if (isit("expert")) + game.skill = SKILL_EXPERT; + else if (isit("emeritus")) + game.skill = SKILL_EMERITUS; else { proutn(_("What is \"")); proutn(citem); @@ -468,8 +486,10 @@ bool choose(bool needprompt) } else { chew(); - if (game.length==0) proutn(_("Would you like a Short, Medium, or Long game? ")); - else if (game.skill == SKILL_NONE) proutn(_("Are you a Novice, Fair, Good, Expert, or Emeritus player? ")); + if (game.length==0) + proutn(_("Would you like a Short, Medium, or Long game? ")); + else if (game.skill == SKILL_NONE) + proutn(_("Are you a Novice, Fair, Good, Expert, or Emeritus player? ")); } } // Choose game options -- added by ESR for SST2K @@ -537,10 +557,12 @@ void newcnd(void) /* update our alert status */ { game.condition = green; - if (game.energy < 1000.0) game.condition = yellow; + if (game.energy < 1000.0) + game.condition = yellow; if (game.state.galaxy[game.quadrant.x][game.quadrant.y].klingons || game.state.galaxy[game.quadrant.x][game.quadrant.y].romulans) game.condition = red; - if (!game.alive) game.condition=dead; + if (!game.alive) + game.condition=dead; } coord newkling(int i) @@ -560,12 +582,11 @@ void newqad(bool shutup) coord w; struct quadrant *q; - game.iattak = 1; game.justin = true; - game.base.x = game.base.y = 0; + invalidate(game.base); game.klhere = 0; game.comhere = false; - game.plnet.x = game.plnet.y = 0; + invalidate(game.plnet); game.ishere = false; game.irhere = 0; game.iplnet = 0; @@ -697,10 +718,14 @@ void newqad(bool shutup) distance(game.sector, game.tholian); game.kpower[game.nenhere] = Rand()*400.0 +100.0 +25.0*game.skill; /* Reserve unocupied corners */ - if (game.quad[1][1]==IHDOT) game.quad[1][1] = 'X'; - if (game.quad[1][QUADSIZE]==IHDOT) game.quad[1][QUADSIZE] = 'X'; - if (game.quad[QUADSIZE][1]==IHDOT) game.quad[QUADSIZE][1] = 'X'; - if (game.quad[QUADSIZE][QUADSIZE]==IHDOT) game.quad[QUADSIZE][QUADSIZE] = 'X'; + if (game.quad[1][1]==IHDOT) + game.quad[1][1] = 'X'; + if (game.quad[1][QUADSIZE]==IHDOT) + game.quad[1][QUADSIZE] = 'X'; + if (game.quad[QUADSIZE][1]==IHDOT) + game.quad[QUADSIZE][1] = 'X'; + if (game.quad[QUADSIZE][QUADSIZE]==IHDOT) + game.quad[QUADSIZE][QUADSIZE] = 'X'; } } @@ -713,10 +738,14 @@ void newqad(bool shutup) // Take out X's in corners if Tholian present if (game.ithere) { - if (game.quad[1][1]=='X') game.quad[1][1] = IHDOT; - if (game.quad[1][QUADSIZE]=='X') game.quad[1][QUADSIZE] = IHDOT; - if (game.quad[QUADSIZE][1]=='X') game.quad[QUADSIZE][1] = IHDOT; - if (game.quad[QUADSIZE][QUADSIZE]=='X') game.quad[QUADSIZE][QUADSIZE] = IHDOT; + if (game.quad[1][1]=='X') + game.quad[1][1] = IHDOT; + if (game.quad[1][QUADSIZE]=='X') + game.quad[1][QUADSIZE] = IHDOT; + if (game.quad[QUADSIZE][1]=='X') + game.quad[QUADSIZE][1] = IHDOT; + if (game.quad[QUADSIZE][QUADSIZE]=='X') + game.quad[QUADSIZE][QUADSIZE] = IHDOT; } } @@ -729,7 +758,8 @@ void sortkl(void) // The author liked bubble sort. So we will use it. :-( - if (game.nenhere-iqhere-game.ithere < 2) return; + if (game.nenhere-iqhere-game.ithere < 2) + return; do { sw = false; @@ -758,17 +788,19 @@ void sortkl(void) void setpassword(void) /* set the self-destruct password */ { - if (!(game.options & OPTION_CURSES)) { + if (game.options & OPTION_PLAIN) { while (TRUE) { + chew(); + proutn(_("Please type in a secret password- ")); scan(); strcpy(game.passwd, citem); - chew(); - if (*game.passwd != 0) break; - proutn(_("Please type in a secret password-")); + if (*game.passwd != 0) + break; } } else { int i; - for(i=0;i<3;i++) game.passwd[i]=(char)(97+(int)(Rand()*25)); + for(i=0;i<3;i++) + game.passwd[i]=(char)(97+(int)(Rand()*25)); game.passwd[3]=0; } }