X-Git-Url: https://jxself.org/git/?p=super-star-trek.git;a=blobdiff_plain;f=src%2Fplanets.c;h=e0c75a681dc2e3e75a974542ace0f1df7937a8e8;hp=217ce1414e72a47ce740e163cd1b02d0989a8532;hb=6332f1c7917206e23f408ebb505c483416b84e5b;hpb=e535e2ef833a03ec84d0f002d684c07ddde893f1 diff --git a/src/planets.c b/src/planets.c index 217ce14..e0c75a6 100644 --- a/src/planets.c +++ b/src/planets.c @@ -2,451 +2,450 @@ 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; - ididit = 1; -#if 0 - /* Don't worry about this */ - if (future[FTBEAM] <= game.state.date+Time && game.state.remcom != 0 && condit != IHDOCKED) { - /* We are about to be tractor beamed -- operation fails */ - return 1; - } -#endif -// asave = future[FSNOVA]; -// future[FSNOVA] = FOREVER; /* defer supernovas */ - events(); /* Used to avoid if future[FSCMOVE] within time */ -// future[FSNOVA] = asave; - /*fails if game over, quadrant super-novas or we've moved to new quadrant*/ - if (alldone || game.state.galaxy[quadx][quady].supernova || 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 */ { - int iknow = 0, i; + bool iknow = false; + int i; skip(1); chew(); - prout("Spock- \"Planet report follows, Captain.\""); + prout(_("Spock- \"Planet report follows, Captain.\"")); skip(1); - for (i = 0; i < inplan; i++) { - if (game.state.plnets[i].known != unknown -#ifdef DEBUG - || ( idebug && game.state.plnets[i].x !=0) -#endif + for (i = 0; i < game.inplan; i++) { + if ((game.state.plnets[i].known != unknown + && game.state.plnets[i].crystals != 0) + || (idebug && game.state.plnets[i].w.x !=0) ) { - iknow = 1; -#ifdef DEBUG - if (idebug && game.state.plnets[i].known==unknown) proutn("(Unknown) "); -#endif - proutn(cramlc(quadrant, game.state.plnets[i].x, game.state.plnets[i].y)); - proutn(" class "); + iknow = true; + if (idebug && game.state.plnets[i].known==unknown) + proutn("(Unknown) "); + proutn(cramlc(quadrant, game.state.plnets[i].w)); + proutn(_(" class ")); proutn(classes[game.state.plnets[i].pclass]); proutn(" "); - if (game.state.plnets[i].crystals == 0) proutn("no "); - prout("dilithium crystals present."); + if (game.state.plnets[i].crystals <= 0) proutn(_("no ")); + prout(_("dilithium crystals present.")); if (game.state.plnets[i].known==shuttle_down) - prout(" Shuttle Craft Galileo on surface."); + 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(); - if (inorbit!=0) { - prout("Already in standard orbit."); + if (game.inorbit) { + prout(_("Already in standard orbit.")); return; } - if (game.damage[DWARPEN] != 0 && game.damage[DIMPULS] != 0) { - prout("Both warp and impulse engines damaged."); + if (damaged(DWARPEN) && damaged(DIMPULS)) { + prout(_("Both warp and impulse engines damaged.")); return; } - if (plnetx == 0 || abs(sectx-plnetx) > 1 || abs(secty-plnety) > 1) { + if (game.plnet.x == 0 || abs(game.sector.x-game.plnet.x) > 1 || abs(game.sector.y-game.plnet.y) > 1) { crmshp(); - prout(" not adjacent to planet."); + prout(_(" not adjacent to planet.")); skip(1); return; } - Time = 0.02+0.03*Rand(); - prout("Helmsman Sulu- \"Entering standard orbit, Sir.\""); + game.optime = 0.02+0.03*Rand(); + prout(_("Helmsman Sulu- \"Entering standard orbit, Sir.\"")); newcnd(); if (consumeTime()) return; game.height = (1400.0+7200.0*Rand()); - prout("Sulu- \"Entered orbit at altitude %.2f kilometers.\"", game.height); - inorbit = 1; - ididit=1; + prout(_("Sulu- \"Entered orbit at altitude %.2f kilometers.\""), game.height); + game.inorbit = true; + game.ididit = true; } -void sensor(void) +void sensor(void) +/* examine planets in this quadrant */ { skip(1); chew(); - if (game.damage[DSRSENS] != 0.0) { - prout("Short range sensors damaged."); + if (damaged(DSRSENS)) { + prout(_("Short range sensors damaged.")); return; } - if (!plnetx && (game.options & OPTION_TTY)) { - prout("Spock- \"No planet in this quadrant, Captain.\""); + if (!game.plnet.x && (game.options & OPTION_TTY)) { + prout(_("Spock- \"No planet in this quadrant, Captain.\"")); return; } - if ((plnetx != 0)&& (game.state.plnets[iplnet].known == unknown)) { - prout("Spock- \"Sensor scan for %s-", cramlc(quadrant, quadx, quady)); + if ((game.plnet.x != 0)&& (game.state.plnets[game.iplnet].known == unknown)) { + prout(_("Spock- \"Sensor scan for %s-"), cramlc(quadrant, game.quadrant)); skip(1); - prout(" Planet at %s is of class %s.", - cramlc(sector, plnetx, plnety), - classes[game.state.plnets[iplnet].pclass]); - if (game.state.plnets[iplnet].known==shuttle_down) - prout(" Sensors show Galileo still on surface."); - proutn(" Readings indicate"); - if (game.state.plnets[iplnet].crystals == 0) proutn(" no"); - prout(" dilithium crystals present.\""); - if (game.state.plnets[iplnet].known == unknown) game.state.plnets[iplnet].known = known; + prout(_(" Planet at %s is of class %s."), + cramlc(sector,game.plnet), + classes[game.state.plnets[game.iplnet].pclass]); + if (game.state.plnets[game.iplnet].known==shuttle_down) + prout(_(" Sensors show Galileo still on surface.")); + proutn(_(" Readings indicate")); + if (game.state.plnets[game.iplnet].crystals == 0) proutn(_(" no")); + prout(_(" dilithium crystals present.\"")); + if (game.state.plnets[game.iplnet].known == unknown) game.state.plnets[game.iplnet].known = known; } } void beam(void) +/* use the transporter */ { chew(); skip(1); - if (game.damage[DTRANSP] != 0) { - prout("Transporter damaged."); - if (game.damage[DSHUTTL]==0 && (game.state.plnets[iplnet].known==shuttle_down || iscraft == 1)) { + if (damaged(DTRANSP)) { + prout(_("Transporter damaged.")); + 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(); + proutn(_("Spock- \"May I suggest the shuttle craft, Sir?\" ")); + if (ja() == true) shuttle(); } return; } - if (inorbit==0) { + if (!game.inorbit) { crmshp(); - prout(" not in standard orbit."); + prout(_(" not in standard orbit.")); return; } - if (shldup!=0) { - prout("Impossible to transport through shields."); + if (game.shldup) { + prout(_("Impossible to transport through shields.")); return; } - if (game.state.plnets[iplnet].known==unknown) { - prout("Spock- \"Captain, we have no information on this planet"); - prout(" and Starfleet Regulations clearly state that in this situation"); - prout(" you may not go down.\""); + if (game.state.plnets[game.iplnet].known==unknown) { + prout(_("Spock- \"Captain, we have no information on this planet")); + prout(_(" and Starfleet Regulations clearly state that in this situation")); + prout(_(" you may not go down.\"")); return; } - if (landed==1) { + if (game.landed==1) { /* Coming from planet */ - if (game.state.plnets[iplnet].known==shuttle_down) { - proutn("Spock- \"Wouldn't you rather take the Galileo?\" "); - if (ja() != 0) { + if (game.state.plnets[game.iplnet].known==shuttle_down) { + proutn(_("Spock- \"Wouldn't you rather take the Galileo?\" ")); + if (ja() == true) { chew(); return; } - prout("Your crew hides the Galileo to prevent capture by aliens."); + prout(_("Your crew hides the Galileo to prevent capture by aliens.")); } - prout("Landing party assembled, ready to beam up."); + prout(_("Landing party assembled, ready to beam up.")); skip(1); - prout("Kirk whips out communicator..."); - prouts("BEEP BEEP BEEP"); + prout(_("Kirk whips out communicator...")); + prouts(_("BEEP BEEP BEEP")); skip(2); - prout("\"Kirk to enterprise- Lock on coordinates...energize.\""); + prout(_("\"Kirk to enterprise- Lock on coordinates...energize.\"")); } else { /* Going to planet */ - if (game.state.plnets[iplnet].crystals==0) { - 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 (game.state.plnets[game.iplnet].crystals==0) { + 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() == false) { chew(); return; } } - prout("Scotty- \"Transporter room ready, Sir.\""); + prout(_("Scotty- \"Transporter room ready, Sir.\"")); skip(1); - prout("Kirk, and landing party prepare to beam down to planet surface."); + prout(_("Kirk and landing party prepare to beam down to planet surface.")); skip(1); - prout("Kirk- \"Energize.\""); + prout(_("Kirk- \"Energize.\"")); } - ididit=1; + game.ididit = true; skip(1); prouts("WWHOOOIIIIIRRRRREEEE.E.E. . . . . . ."); skip(2); if (Rand() > 0.98) { prouts("BOOOIIIOOOIIOOOOIIIOIING . . ."); skip(2); - prout("Scotty- \"Oh my God! I've lost them.\""); + prout(_("Scotty- \"Oh my God! I've lost them.\"")); finish(FLOST); return; } prouts(". . . . . . .E.E.EEEERRRRRIIIIIOOOHWW"); skip(2); - prout("Transport complete."); - landed = -landed; - if (landed==1 && game.state.plnets[iplnet].known==shuttle_down) { - prout("The shuttle craft Galileo is here!"); + prout(_("Transport complete.")); + game.landed = -game.landed; + if (game.landed==1 && game.state.plnets[game.iplnet].known==shuttle_down) { + prout(_("The shuttle craft Galileo is here!")); } - if (landed!=1 && imine==1) { - icrystl = 1; - cryprob = 0.05; + if (game.landed!=1 && game.imine) { + game.icrystl = true; + game.cryprob = 0.05; } - imine = 0; + game.imine = false; return; } void mine(void) +/* strip-mine a world for dilithium */ { skip(1); chew(); - if (landed!= 1) { - prout("Mining party not on planet."); + if (game.landed!= 1) { + prout(_("Mining party not on planet.")); + return; + } + if (game.state.plnets[game.iplnet].crystals == MINED) { + prout(_("This planet has already been strip-mined for dilithium.")); return; } - if (game.state.plnets[iplnet].crystals == 0) { - prout("No dilithium crystals on this planet."); + else if (game.state.plnets[game.iplnet].crystals == 0) { + prout(_("No dilithium crystals on this planet.")); return; } - if (imine == 1) { - prout("You've already mined enough crystals for this trip."); + if (game.imine) { + prout(_("You've already mined enough crystals for this trip.")); return; } - if (icrystl == 1 && cryprob == 0.05) { - proutn("With all those fresh crystals aboard the "); + if (game.icrystl && game.cryprob == 0.05) { + proutn(_("With all those fresh crystals aboard the ")); crmshp(); skip(1); - prout("there's no reason to mine more at this time."); + prout(_("there's no reason to mine more at this time.")); return; } - Time = (0.1+0.2*Rand())*game.state.plnets[iplnet].pclass; + game.optime = (0.1+0.2*Rand())*game.state.plnets[game.iplnet].pclass; if (consumeTime()) return; - prout("Mining operation complete."); - imine = 1; - ididit=1; + prout(_("Mining operation complete.")); + game.state.plnets[game.iplnet].crystals = MINED; + game.imine = game.ididit = true; } -void usecrystals(void) +void usecrystals(void) +/* use dilithium crystals */ { - ididit=0; + game.ididit = false; skip(1); chew(); - if (icrystl!=1) { - prout("No dilithium crystals available."); + if (!game.icrystl) { + prout(_("No dilithium crystals available.")); return; } - if (energy >= 1000) { - prout("Spock- \"Captain, Starfleet Regulations prohibit such an operation"); - prout(" except when condition Yellow exists."); + if (game.energy >= 1000) { + prout(_("Spock- \"Captain, Starfleet Regulations prohibit such an operation")); + prout(_(" except when condition Yellow exists.")); return; } - prout("Spock- \"Captain, I must warn you that loading"); - 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) { + prout(_("Spock- \"Captain, I must warn you that loading")); + 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() == false) { chew(); return; } skip(1); - prout("Engineering Officer Scott- \"(GULP) Aye Sir."); - prout(" Mr. Spock and I will try it.\""); + prout(_("Engineering Officer Scott- \"(GULP) Aye Sir.")); + prout(_(" Mr. Spock and I will try it.\"")); skip(1); - prout("Spock- \"Crystals in place, Sir."); - prout(" Ready to activate circuit.\""); + prout(_("Spock- \"Crystals in place, Sir.")); + prout(_(" Ready to activate circuit.\"")); skip(1); - prouts("Scotty- \"Keep your fingers crossed, Sir!\""); + prouts(_("Scotty- \"Keep your fingers crossed, Sir!\"")); skip(1); - if (Rand() <= cryprob) { - prouts(" \"Activating now! - - No good! It's***"); + if (Rand() <= game.cryprob) { + prouts(_(" \"Activating now! - - No good! It's***")); skip(2); - prouts("***RED ALERT! RED A*L********************************"); + prouts(_("***RED ALERT! RED A*L********************************")); skip(1); stars(); - prouts("****************** KA-BOOM!!!! *******************"); + prouts(_("****************** KA-BOOM!!!! *******************")); skip(1); kaboom(); return; } - energy += 5000.0*(1.0 + 0.9*Rand()); - prouts(" \"Activating now! - - "); - prout("The instruments"); - prout(" are going crazy, but I think it's"); - prout(" going to work!! Congratulations, Sir!\""); - cryprob *= 2.0; - ididit=1; + game.energy += 5000.0*(1.0 + 0.9*Rand()); + prouts(_(" \"Activating now! - - ")); + prout(_("The instruments")); + prout(_(" are going crazy, but I think it's")); + prout(_(" going to work!! Congratulations, Sir!\"")); + game.cryprob *= 2.0; + game.ididit = true; } void shuttle(void) +/* use shuttlecraft for planetary jaunt */ { chew(); skip(1); - if(game.damage[DSHUTTL] != 0.0) { + if(damaged(DSHUTTL)) { if (game.damage[DSHUTTL] == -1.0) { - if (inorbit && game.state.plnets[iplnet].known == shuttle_down) - prout("Ye Faerie Queene has no shuttle craft bay to dock it at."); + if (game.inorbit && game.state.plnets[game.iplnet].known == shuttle_down) + prout(_("Ye Faerie Queene has no shuttle craft bay to dock it at.")); else - prout("Ye Faerie Queene had no shuttle craft."); + prout(_("Ye Faerie Queene had no shuttle craft.")); } else if (game.damage[DSHUTTL] > 0) - prout("The Galileo is damaged."); - else prout("Shuttle craft is now serving Big Macs."); + prout(_("The Galileo is damaged.")); + else /* game.damage[DSHUTTL] < 0 */ + prout(_("Shuttle craft is now serving Big Macs.")); return; } - if (inorbit==0) { + if (!game.inorbit) { crmshp(); - prout(" not in standard orbit."); + prout(_(" not in standard orbit.")); return; } - if ((game.state.plnets[iplnet].known != shuttle_down) && iscraft != 1) { - prout("Shuttle craft not currently available."); + if ((game.state.plnets[game.iplnet].known != shuttle_down) && game.iscraft != 1) { + prout(_("Shuttle craft not currently available.")); return; } - if (landed==-1 && game.state.plnets[iplnet].known==shuttle_down) { - prout("You will have to beam down to retrieve the shuttle craft."); + if (game.landed==-1 && game.state.plnets[game.iplnet].known==shuttle_down) { + prout(_("You will have to beam down to retrieve the shuttle craft.")); return; } - if (shldup!=0 || condit == IHDOCKED) { - prout("Shuttle craft cannot pass through shields."); + if (game.shldup || game.condit == IHDOCKED) { + prout(_("Shuttle craft cannot pass through shields.")); return; } - if (game.state.plnets[iplnet].known==unknown) { - prout("Spock- \"Captain, we have no information on this planet"); - prout(" and Starfleet Regulations clearly state that in this situation"); - prout(" you may not fly down.\""); + if (game.state.plnets[game.iplnet].known==unknown) { + prout(_("Spock- \"Captain, we have no information on this planet")); + prout(_(" and Starfleet Regulations clearly state that in this situation")); + prout(_(" you may not fly down.\"")); return; } - Time = 3.0e-5*game.height; - if (Time >= 0.8*game.state.remtime) { - prout("First Officer Spock- \"Captain, I compute that such"); - proutn(" a maneuver would require approximately 2d%% of our", - (int)(100*Time/game.state.remtime)); - prout("remaining time."); - proutn("Are you sure this is wise?\" "); - if (ja()==0) { - Time = 0.0; + game.optime = 3.0e-5*game.height; + if (game.optime >= 0.8*game.state.remtime) { + prout(_("First Officer Spock- \"Captain, I compute that such")); + proutn(_(" a maneuver would require approximately %2d%% of our"), + (int)(100*game.optime/game.state.remtime)); + prout(_("remaining time.")); + proutn(_("Are you sure this is wise?\" ")); + if (ja() == false) { + game.optime = 0.0; return; } } - if (landed == 1) { + if (game.landed == 1) { /* Kirk on planet */ - if (iscraft==1) { + if (game.iscraft==1) { /* Galileo on ship! */ - if (game.damage[DTRANSP]==0) { - proutn("Spock- \"Would you rather use the transporter?\" "); - if (ja() != 0) { + if (!damaged(DTRANSP)) { + proutn(_("Spock- \"Would you rather use the transporter?\" ")); + if (ja() == true) { beam(); return; } - proutn("Shuttle crew"); + proutn(_("Shuttle crew")); } else - proutn("Rescue party"); - prout(" boards Galileo and swoops toward planet surface."); - iscraft = 0; + proutn(_("Rescue party")); + prout(_(" boards Galileo and swoops toward planet surface.")); + game.iscraft = 0; skip(1); if (consumeTime()) return; - game.state.plnets[iplnet].known=shuttle_down; - prout("Trip complete."); + game.state.plnets[game.iplnet].known=shuttle_down; + prout(_("Trip complete.")); return; } else { /* Ready to go back to ship */ - prout("You and your mining party board the"); - prout("shuttle craft for the trip back to the Enterprise."); + prout(_("You and your mining party board the")); + prout(_("shuttle craft for the trip back to the Enterprise.")); skip(1); - prout("The short hop begins . . ."); - game.state.plnets[iplnet].known=known; - icraft = 1; + prout(_("The short hop begins . . .")); + game.state.plnets[game.iplnet].known=known; + game.icraft = true; skip(1); - landed = -1; + game.landed = -1; if (consumeTime()) return; - iscraft = 1; - icraft = 0; - if (imine!=0) { - icrystl = 1; - cryprob = 0.05; + game.iscraft = 1; + game.icraft = false; + if (game.imine) { + game.icrystl = true; + game.cryprob = 0.05; } - imine = 0; - prout("Trip complete."); + game.imine = false; + prout(_("Trip complete.")); return; } } else { /* Kirk on ship */ /* and so is Galileo */ - prout("Mining party assembles in the hangar deck,"); - prout("ready to board the shuttle craft \"Galileo\"."); + prout(_("Mining party assembles in the hangar deck,")); + prout(_("ready to board the shuttle craft \"Galileo\".")); skip(1); - prouts("The hangar doors open; the trip begins."); + prouts(_("The hangar doors open; the trip begins.")); skip(1); - icraft = 1; - iscraft = 0; + game.icraft = true; + game.iscraft = 0; if (consumeTime()) return; - game.state.plnets[iplnet].known = shuttle_down; - landed = 1; - icraft = 0; - prout("Trip complete"); + game.state.plnets[game.iplnet].known = shuttle_down; + game.landed = 1; + game.icraft = false; + prout(_("Trip complete")); return; } } -void deathray(void) +void deathray(void) +/* use the big zapper */ { double dprob, r = Rand(); - ididit = 0; + game.ididit = false; skip(1); chew(); - if (ship != IHE) { - prout("Ye Faerie Queene has no death ray."); + if (game.ship != IHE) { + prout(_("Ye Faerie Queene has no death ray.")); return; } - if (nenhere==0) { - prout("Sulu- \"But Sir, there are no enemies in this quadrant.\""); + if (game.nenhere==0) { + prout(_("Sulu- \"But Sir, there are no enemies in this quadrant.\"")); return; } - if (game.damage[DDRAY] > 0.0) { - prout("Death Ray is damaged."); + if (damaged(DDRAY)) { + prout(_("Death Ray is damaged.")); return; } - 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; - prout("Spock- \"Acknowledged.\""); + prout(_("Spock- \"Captain, the 'Experimental Death Ray'")); + prout(_(" is highly unpredictible. Considering the alternatives,")); + proutn(_(" are you sure this is wise?\" ")); + if (ja() == false) return; + prout(_("Spock- \"Acknowledged.\"")); skip(1); - ididit=1; - prouts("WHOOEE ... WHOOEE ... WHOOEE ... WHOOEE"); + game.ididit = true; + prouts(_("WHOOEE ... WHOOEE ... WHOOEE ... WHOOEE")); skip(1); - prout("Crew scrambles in emergency preparation."); - prout("Spock and Scotty ready the death ray and"); - prout("prepare to channel all ship's power to the device."); + prout(_("Crew scrambles in emergency preparation.")); + prout(_("Spock and Scotty ready the death ray and")); + prout(_("prepare to channel all ship's power to the device.")); skip(1); - prout("Spock- \"Preparations complete, sir.\""); - prout("Kirk- \"Engage!\""); + prout(_("Spock- \"Preparations complete, sir.\"")); + prout(_("Kirk- \"Engage!\"")); skip(1); - prouts("WHIRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR"); + prouts(_("WHIRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR")); skip(1); dprob = .30; if (game.options & OPTION_PLAIN) dprob = .5; if (r > dprob) { - prouts("Sulu- \"Captain! It's working!\""); + prouts(_("Sulu- \"Captain! It's working!\"")); skip(2); - while (nenhere > 0) - deadkl(game.kx[1],game.ky[1],game.quad[game.kx[1]][game.ky[1]],game.kx[1],game.ky[1]); - prout("Ensign Chekov- \"Congratulations, Captain!\""); + while (game.nenhere > 0) + deadkl(game.ks[1], game.quad[game.ks[1].x][game.ks[1].y],game.ks[1].x,game.ks[1].y); + prout(_("Ensign Chekov- \"Congratulations, Captain!\"")); if (KLINGREM == 0) finish(FWON); if ((game.options & OPTION_PLAIN) == 0) { - prout("Spock- \"Captain, I believe the `Experimental Death Ray'"); + prout(_("Spock- \"Captain, I believe the `Experimental Death Ray'")); if (Rand() <= 0.05) { - prout(" is still operational.\""); + prout(_(" is still operational.\"")); } else { - prout(" has been rendered nonfunctional.\""); + prout(_(" has been rendered nonfunctional.\"")); game.damage[DDRAY] = 39.95; } } @@ -454,53 +453,121 @@ void deathray(void) } r = Rand(); // Pick failure method if (r <= .30) { - prouts("Sulu- \"Captain! It's working!\""); + prouts(_("Sulu- \"Captain! It's working!\"")); skip(1); - prouts("***RED ALERT! RED ALERT!"); + prouts(_("***RED ALERT! RED ALERT!")); skip(1); - prout("***MATTER-ANTIMATTER IMPLOSION IMMINENT!"); + prout(_("***MATTER-ANTIMATTER IMPLOSION IMMINENT!")); skip(1); - prouts("***RED ALERT! RED A*L********************************"); + prouts(_("***RED ALERT! RED A*L********************************")); skip(1); stars(); - prouts("****************** KA-BOOM!!!! *******************"); + prouts(_("****************** KA-BOOM!!!! *******************")); skip(1); kaboom(); return; } if (r <= .55) { - prouts("Sulu- \"Captain! Yagabandaghangrapl, brachriigringlanbla!\""); + prouts(_("Sulu- \"Captain! Yagabandaghangrapl, brachriigringlanbla!\"")); skip(1); - prout("Lt. Uhura- \"Graaeek! Graaeek!\""); + prout(_("Lt. Uhura- \"Graaeek! Graaeek!\"")); skip(1); - prout("Spock- \"Fascinating! . . . All humans aboard"); - prout(" have apparently been transformed into strange mutations."); - prout(" Vulcans do not seem to be affected."); + prout(_("Spock- \"Fascinating! . . . All humans aboard")); + prout(_(" have apparently been transformed into strange mutations.")); + prout(_(" Vulcans do not seem to be affected.")); skip(1); - prout("Kirk- \"Raauch! Raauch!\""); + prout(_("Kirk- \"Raauch! Raauch!\"")); finish(FDRAY); return; } if (r <= 0.75) { int i,j; - prouts("Sulu- \"Captain! It's --WHAT?!?!\""); + prouts(_("Sulu- \"Captain! It's --WHAT?!?!\"")); skip(2); - proutn("Spock- \"I believe the word is"); - prouts(" *ASTONISHING*"); - prout(" Mr. Sulu."); + proutn(_("Spock- \"I believe the word is")); + prouts(_(" *ASTONISHING*")); + prout(_(" Mr. Sulu.")); for_sectors(i) for_sectors(j) if (game.quad[i][j] == IHDOT) game.quad[i][j] = IHQUEST; - prout(" Captain, our quadrant is now infested with"); - prouts(" - - - - - - *THINGS*."); + prout(_(" Captain, our quadrant is now infested with")); + prouts(_(" - - - - - - *THINGS*.")); skip(1); - prout(" I have no logical explanation.\""); + prout(_(" I have no logical explanation.\"")); return; } - prouts("Sulu- \"Captain! The Death Ray is creating tribbles!\""); + prouts(_("Sulu- \"Captain! The Death Ray is creating tribbles!\"")); skip(1); - prout("Scotty- \"There are so many tribbles down here"); - prout(" in Engineering, we can't move for 'em, Captain.\""); + prout(_("Scotty- \"There are so many tribbles down here")); + prout(_(" in Engineering, we can't move for 'em, Captain.\"")); finish(FTRIBBLE); return; } + +char *systemname(int pindx) +/* return the name of a given solar system */ +{ + static char copy[BUFSIZ]; + /* the below array should not be static, or it won't gettextize + * because of the early initialization. */ + char *names[NINHAB+1] = + { + /* + * I used to find planets + * with references in ST:TOS. Eath and the Alpha Centauri + * Colony have been omitted. + * + * Some planets marked Class G and P here will be displayed as class M + * because of the way planets are generated. This is a known bug. + */ + "ERROR", + // Federation Worlds + _("Andoria (Fesoan)"), /* several episodes */ + _("Tellar Prime (Miracht)"), /* TOS: "Journey to Babel" */ + _("Vulcan (T'Khasi)"), /* many episodes */ + _("Medusa"), /* TOS: "Is There in Truth No Beauty?" */ + _("Argelius II (Nelphia)"),/* TOS: "Wolf in the Fold" ("IV" in BSD) */ + _("Ardana"), /* TOS: "The Cloud Minders" */ + _("Catulla (Cendo-Prae)"), /* TOS: "The Way to Eden" */ + _("Gideon"), /* TOS: "The Mark of Gideon" */ + _("Aldebaran III"), /* TOS: "The Deadly Years" */ + _("Alpha Majoris I"), /* TOS: "Wolf in the Fold" */ + _("Altair IV"), /* TOS: "Amok Time */ + _("Ariannus"), /* TOS: "Let That Be Your Last Battlefield" */ + _("Benecia"), /* TOS: "The Conscience of the King" */ + _("Beta Niobe I (Sarpeidon)"), /* TOS: "All Our Yesterdays" */ + _("Alpha Carinae II"), /* TOS: "The Ultimate Computer" */ + _("Capella IV (Kohath)"), /* TOS: "Friday's Child" (Class G) */ + _("Daran V"), /* TOS: "For the World is Hollow and I Have Touched the Sky" */ + _("Deneb II"), /* TOS: "Wolf in the Fold" ("IV" in BSD) */ + _("Eminiar VII"), /* TOS: "A Taste of Armageddon" */ + _("Gamma Canaris IV"), /* TOS: "Metamorphosis" */ + _("Gamma Tranguli VI (Vaalel)"), /* TOS: "The Apple" */ + _("Ingraham B"), /* TOS: "Operation: Annihilate" */ + _("Janus IV"), /* TOS: "The Devil in the Dark" */ + _("Makus III"), /* TOS: "The Galileo Seven" */ + _("Marcos XII"), /* TOS: "And the Children Shall Lead", */ + _("Omega IV"), /* TOS: "The Omega Glory" */ + _("Regulus V"), /* TOS: "Amok Time */ + _("Deneva"), /* TOS: "Operation -- Annihilate!" */ + /* Worlds from BSD Trek */ + _("Rigel II"), /* TOS: "Shore Leave" ("III" in BSD) */ + _("Beta III"), /* TOS: "The Return of the Archons" */ + _("Triacus"), /* TOS: "And the Children Shall Lead", */ + _("Exo III"), /* TOS: "What Are Little Girls Made Of?" (Class P) */ +#if 0 + // Others + _("Hansen's Planet"), /* TOS: "The Galileo Seven" */ + _("Taurus IV"), /* TOS: "The Galileo Seven" (class G) */ + _("Antos IV (Doraphane)"), /* TOS: "Whom Gods Destroy", "Who Mourns for Adonais?" */ + _("Izar"), /* TOS: "Whom Gods Destroy" */ + _("Tiburon"), /* TOS: "The Way to Eden" */ + _("Merak II"), /* TOS: "The Cloud Minders" */ + _("Coridan (Desotriana)"), /* TOS: "Journey to Babel" */ + _("Iotia"), /* TOS: "A Piece of the Action" */ +#endif + }; + + strcpy(copy, names[pindx]); + return copy; +}