X-Git-Url: https://jxself.org/git/?p=super-star-trek.git;a=blobdiff_plain;f=src%2Fplanets.c;h=e0c75a681dc2e3e75a974542ace0f1df7937a8e8;hp=dd04b621b9ee330409cdcc676358e48336b15493;hb=6332f1c7917206e23f408ebb505c483416b84e5b;hpb=d87b83a23fb7b5ac0ba610069a3ce7da8026fd80 diff --git a/src/planets.c b/src/planets.c index dd04b62..e0c75a6 100644 --- a/src/planets.c +++ b/src/planets.c @@ -2,30 +2,18 @@ static char *classes[] = {"M","N","O"}; -static int consumeTime(void) +static bool consumeTime(void) +/* abort a lengthy operation if an event interrupts it */ { -/* I think most of this avoidance was caused by overlay scheme. - Let's see what happens if all events can occur here */ - -// double asave; - game.ididit = 1; -#if 0 - /* Don't worry about this */ - if (scheduled(FTBEAM) <= game.state.date+game.optime && game.state.remcom != 0 && game.condit != IHDOCKED) { - /* We are about to be tractor beamed -- operation fails */ - return 1; - } -#endif -// asave = scheduled(FSNOVA); -// unschedule(FSNOVA); /* defer supernovas */ - events(); /* Used to avoid if FSCMOVE is scheduled within time */ -// schedule(FSNOVA, asave-game.state.time); - /*fails if game over, quadrant super-novas or we've moved to new quadrant*/ - if (game.alldone || game.state.galaxy[game.quadrant.x][game.quadrant.y].supernova || game.justin != 0) return 1; - return 0; + game.ididit = true; + events(); + if (game.alldone || game.state.galaxy[game.quadrant.x][game.quadrant.y].supernova || game.justin) + return true; + return false; } void preport(void) +/* report on (uninhabited) planets in the galaxy */ { bool iknow = false; int i; @@ -51,10 +39,11 @@ void preport(void) prout(_(" Shuttle Craft Galileo on surface.")); } } - if (iknow==0) prout(_("No information available.")); + if (!iknow) prout(_("No information available.")); } -void orbit(void) +void orbit(void) +/* enter standard orbit */ { skip(1); chew(); @@ -82,7 +71,8 @@ void orbit(void) game.ididit = true; } -void sensor(void) +void sensor(void) +/* examine planets in this quadrant */ { skip(1); chew(); @@ -110,6 +100,7 @@ void sensor(void) } void beam(void) +/* use the transporter */ { chew(); skip(1); @@ -118,7 +109,7 @@ void beam(void) if (!damaged(DSHUTTL) && (game.state.plnets[game.iplnet].known==shuttle_down || game.iscraft == 1)) { skip(1); proutn(_("Spock- \"May I suggest the shuttle craft, Sir?\" ")); - if (ja() != 0) shuttle(); + if (ja() == true) shuttle(); } return; } @@ -141,7 +132,7 @@ void beam(void) /* Coming from planet */ if (game.state.plnets[game.iplnet].known==shuttle_down) { proutn(_("Spock- \"Wouldn't you rather take the Galileo?\" ")); - if (ja() != 0) { + if (ja() == true) { chew(); return; } @@ -160,7 +151,7 @@ void beam(void) prout(_("Spock- \"Captain, I fail to see the logic in")); prout(_(" exploring a planet with no dilithium crystals.")); proutn(_(" Are you sure this is wise?\" ")); - if (ja()==0) { + if (ja() == false) { chew(); return; } @@ -171,7 +162,7 @@ void beam(void) skip(1); prout(_("Kirk- \"Energize.\"")); } - game.ididit=1; + game.ididit = true; skip(1); prouts("WWHOOOIIIIIRRRRREEEE.E.E. . . . . . ."); skip(2); @@ -189,15 +180,16 @@ void beam(void) if (game.landed==1 && game.state.plnets[game.iplnet].known==shuttle_down) { prout(_("The shuttle craft Galileo is here!")); } - if (game.landed!=1 && game.imine==1) { - game.icrystl = 1; + if (game.landed!=1 && game.imine) { + game.icrystl = true; game.cryprob = 0.05; } - game.imine = 0; + game.imine = false; return; } void mine(void) +/* strip-mine a world for dilithium */ { skip(1); chew(); @@ -213,11 +205,11 @@ void mine(void) prout(_("No dilithium crystals on this planet.")); return; } - if (game.imine == 1) { + if (game.imine) { prout(_("You've already mined enough crystals for this trip.")); return; } - if (game.icrystl == 1 && game.cryprob == 0.05) { + if (game.icrystl && game.cryprob == 0.05) { proutn(_("With all those fresh crystals aboard the ")); crmshp(); skip(1); @@ -228,16 +220,16 @@ void mine(void) if (consumeTime()) return; prout(_("Mining operation complete.")); game.state.plnets[game.iplnet].crystals = MINED; - game.imine = 1; - game.ididit=1; + game.imine = game.ididit = true; } -void usecrystals(void) +void usecrystals(void) +/* use dilithium crystals */ { - game.ididit=0; + game.ididit = false; skip(1); chew(); - if (game.icrystl!=1) { + if (!game.icrystl) { prout(_("No dilithium crystals available.")); return; } @@ -250,7 +242,7 @@ void usecrystals(void) prout(_(" raw dilithium crystals into the ship's power")); prout(_(" system may risk a severe explosion.")); proutn(_(" Are you sure this is wise?\" ")); - if (ja()==0) { + if (ja() == false) { chew(); return; } @@ -280,10 +272,11 @@ void usecrystals(void) prout(_(" are going crazy, but I think it's")); prout(_(" going to work!! Congratulations, Sir!\"")); game.cryprob *= 2.0; - game.ididit=1; + game.ididit = true; } void shuttle(void) +/* use shuttlecraft for planetary jaunt */ { chew(); skip(1); @@ -330,7 +323,7 @@ void shuttle(void) (int)(100*game.optime/game.state.remtime)); prout(_("remaining time.")); proutn(_("Are you sure this is wise?\" ")); - if (ja()==0) { + if (ja() == false) { game.optime = 0.0; return; } @@ -341,7 +334,7 @@ void shuttle(void) /* Galileo on ship! */ if (!damaged(DTRANSP)) { proutn(_("Spock- \"Would you rather use the transporter?\" ")); - if (ja() != 0) { + if (ja() == true) { beam(); return; } @@ -364,17 +357,17 @@ void shuttle(void) skip(1); prout(_("The short hop begins . . .")); game.state.plnets[game.iplnet].known=known; - game.icraft = 1; + game.icraft = true; skip(1); game.landed = -1; if (consumeTime()) return; game.iscraft = 1; - game.icraft = 0; - if (game.imine!=0) { - game.icrystl = 1; + game.icraft = false; + if (game.imine) { + game.icrystl = true; game.cryprob = 0.05; } - game.imine = 0; + game.imine = false; prout(_("Trip complete.")); return; } @@ -387,22 +380,23 @@ void shuttle(void) skip(1); prouts(_("The hangar doors open; the trip begins.")); skip(1); - game.icraft = 1; + game.icraft = true; game.iscraft = 0; if (consumeTime()) return; game.state.plnets[game.iplnet].known = shuttle_down; game.landed = 1; - game.icraft = 0; + game.icraft = false; prout(_("Trip complete")); return; } } -void deathray(void) +void deathray(void) +/* use the big zapper */ { double dprob, r = Rand(); - game.ididit = 0; + game.ididit = false; skip(1); chew(); if (game.ship != IHE) { @@ -420,10 +414,10 @@ void deathray(void) prout(_("Spock- \"Captain, the 'Experimental Death Ray'")); prout(_(" is highly unpredictible. Considering the alternatives,")); proutn(_(" are you sure this is wise?\" ")); - if (ja()==0) return; + if (ja() == false) return; prout(_("Spock- \"Acknowledged.\"")); skip(1); - game.ididit=1; + game.ididit = true; prouts(_("WHOOEE ... WHOOEE ... WHOOEE ... WHOOEE")); skip(1); prout(_("Crew scrambles in emergency preparation.")); @@ -511,10 +505,12 @@ void deathray(void) } char *systemname(int pindx) +/* return the name of a given solar system */ { - /* the below array shoud not be static, or it won't gettextize + static char copy[BUFSIZ]; + /* the below array should not be static, or it won't gettextize * because of the early initialization. */ - char *names[NINHAB] = + char *names[NINHAB+1] = { /* * I used to find planets @@ -553,7 +549,7 @@ char *systemname(int pindx) _("Marcos XII"), /* TOS: "And the Children Shall Lead", */ _("Omega IV"), /* TOS: "The Omega Glory" */ _("Regulus V"), /* TOS: "Amok Time */ - _("Deeva"), /* TOS: "Operation -- Annihilate!" */ + _("Deneva"), /* TOS: "Operation -- Annihilate!" */ /* Worlds from BSD Trek */ _("Rigel II"), /* TOS: "Shore Leave" ("III" in BSD) */ _("Beta III"), /* TOS: "The Return of the Archons" */ @@ -570,7 +566,8 @@ char *systemname(int pindx) _("Coridan (Desotriana)"), /* TOS: "Journey to Babel" */ _("Iotia"), /* TOS: "A Piece of the Action" */ #endif - }; + }; - return names[pindx]; + strcpy(copy, names[pindx]); + return copy; }