X-Git-Url: https://jxself.org/git/?a=blobdiff_plain;f=src%2Fplanets.c;h=25a4dfc5ebd23f940938eef4e65078cb8fc9d742;hb=3590a3f873652e8e718ebe3898c913cdf6b36d1c;hp=c76dace1fbffaafedd5201d345b8ccdf322a626f;hpb=52265793501a00845a0d6108d1af6e50e3ece379;p=super-star-trek.git diff --git a/src/planets.c b/src/planets.c index c76dace..25a4dfc 100644 --- a/src/planets.c +++ b/src/planets.c @@ -11,23 +11,24 @@ static int consumeTime(void) game.ididit = 1; #if 0 /* Don't worry about this */ - if (future[FTBEAM] <= game.state.date+game.optime && game.state.remcom != 0 && game.condit != IHDOCKED) { + 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 = future[FSNOVA]; -// future[FSNOVA] = FOREVER; /* defer supernovas */ - events(); /* Used to avoid if future[FSCMOVE] within time */ -// future[FSNOVA] = asave; +// 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.quadx][game.quady].supernova || game.justin != 0) return 1; + if (game.alldone || game.state.galaxy[game.quadrant.x][game.quadrant.y].supernova || game.justin != 0) return 1; return 0; } void preport(void) { - int iknow = 0, i; + bool iknow = false; + int i; skip(1); chew(); prout("Spock- \"Planet report follows, Captain.\""); @@ -35,15 +36,12 @@ void preport(void) for (i = 0; i < game.inplan; i++) { if ((game.state.plnets[i].known != unknown && game.state.plnets[i].crystals != 0) -#ifdef DEBUG - || ( game.idebug && game.state.plnets[i].x !=0) -#endif + || (idebug && game.state.plnets[i].w.x !=0) ) { - iknow = 1; -#ifdef DEBUG - if (game.idebug && game.state.plnets[i].known==unknown) proutn("(Unknown) "); -#endif - proutn(cramlc(quadrant, game.state.plnets[i].x, game.state.plnets[i].y)); + 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(" "); @@ -60,7 +58,7 @@ void orbit(void) { skip(1); chew(); - if (game.inorbit!=0) { + if (game.inorbit) { prout("Already in standard orbit."); return; } @@ -68,7 +66,7 @@ void orbit(void) prout("Both warp and impulse engines damaged."); return; } - if (game.plnetx == 0 || abs(game.sectx-game.plnetx) > 1 || abs(game.secty-game.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."); skip(1); @@ -80,8 +78,8 @@ void orbit(void) if (consumeTime()) return; game.height = (1400.0+7200.0*Rand()); prout("Sulu- \"Entered orbit at altitude %.2f kilometers.\"", game.height); - game.inorbit = 1; - game.ididit=1; + game.inorbit = true; + game.ididit = true; } void sensor(void) @@ -92,15 +90,15 @@ void sensor(void) prout("Short range sensors damaged."); return; } - if (!game.plnetx && (game.options & OPTION_TTY)) { + if (!game.plnet.x && (game.options & OPTION_TTY)) { prout("Spock- \"No planet in this quadrant, Captain.\""); return; } - if ((game.plnetx != 0)&& (game.state.plnets[game.iplnet].known == unknown)) { - prout("Spock- \"Sensor scan for %s-", cramlc(quadrant, game.quadx, game.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, game.plnetx, game.plnety), + 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."); @@ -124,12 +122,12 @@ void beam(void) } return; } - if (game.inorbit==0) { + if (!game.inorbit) { crmshp(); prout(" not in standard orbit."); return; } - if (game.shldup!=0) { + if (game.shldup) { prout("Impossible to transport through shields."); return; } @@ -301,7 +299,7 @@ void shuttle(void) else prout("Shuttle craft is now serving Big Macs."); return; } - if (game.inorbit==0) { + if (!game.inorbit) { crmshp(); prout(" not in standard orbit."); return; @@ -314,7 +312,7 @@ void shuttle(void) prout("You will have to beam down to retrieve the shuttle craft."); return; } - if (game.shldup!=0 || game.condit == IHDOCKED) { + if (game.shldup || game.condit == IHDOCKED) { prout("Shuttle craft cannot pass through shields."); return; } @@ -443,7 +441,7 @@ void deathray(void) prouts("Sulu- \"Captain! It's working!\""); skip(2); while (game.nenhere > 0) - deadkl(game.kx[1],game.ky[1],game.quad[game.kx[1]][game.ky[1]],game.kx[1],game.ky[1]); + 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) { @@ -511,78 +509,65 @@ void deathray(void) return; } -char *systemname(planet *planet) +char *systemname(int pindx) { static char *names[NINHAB] = { /* - * This started out life as the BSD Trek inhabited-planets list, - * but I used to weed out planets - * with no references in ST:TOS and to fill it out again to the - * required length from "The Worlds of The Federation" list, - * . - * Some misspellings have been silently corrected. (To be - * fair, there was no Web when Eric Allman did his list.) - * + * 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", - // Added Federation Worlds - "Deneva", /* TOS: "Operation -- Annihilate!" */ - "Eminiar VII", /* TOS: "A Taste of Armageddon" */ - "Hansen's Planet", /* TOS: "The Galileo Seven" */ - "Taurus IV", /* TOS: "The Galileo Seven" (class G) */ - "Aldebaran III", /* TOS: "The Deadly Years" */ - "Vulcan (T'Khasi)", /* many episodes */ - "Tellar Prime (Miracht)", /* TOS: "Journey to Babel" */ + // Federation Worlds "Andoria (Fesoan)", /* several episodes */ - "Antos IV (Doraphane)", /* TOS: "Whom Gods Destroy", "Who Mourns for Adonais?" */ - "Catulla (Cendo-Prae)", /* TOS: "The Way to Eden" */ - "Izar", /* TOS: "Whom Gods Destroy" */ - "Tiburon", /* TOS: "The Way to Eden" */ - "Merak II", /* TOS: "The Cloud Minders" */ - "Argelius II (Nelphia)", /* TOS: "Wolf in the Fold" ("IV" in BSD) */ - "Daran V", /* TOS: "For the World is Hollow and I Have Touched the Sky" */ + "Tellar Prime (Miracht)", /* TOS: "Journey to Babel" */ + "Vulcan (T'Khasi)", /* many episodes */ "Medusa", /* TOS: "Is There in Truth No Beauty?" */ - "Coridan (Desotriana)", /* TOS: "Journey to Babel" */ - "Berengaria IV", /* TOS: "This Side of Paradise" */ - "Capella IV (Kohath)", /* TOS: "Friday's Child" (Class G) */ + "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" */ - "Iotia", /* TOS: "A Piece of the Action" */ + "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 */ + "Deeva", /* TOS: "Operation -- Annihilate!" */ /* Worlds from BSD Trek */ - //"Talos IV", /* TOS: "The Cage" (interdicted world) */ "Rigel II", /* TOS: "Shore Leave" ("III" in BSD) */ - "Deneb II", /* TOS: "Wolf in the Fold" ("IV" in BSD) */ - //"Canopus V", /* noncanonical */ - //"Icarus I", /* noncanonical */ - //"Prometheus II", /* noncanonical */ - //"Omega VII", /* noncanonical */ - //"Elysium I", /* noncanonical */ - "Scalos IV", /* TOS: "Wink of an Eye" */ - //"Procyon IV", /* noncanonical */ - //"Arachnid I", /* noncanonical */ - //"Argo VIII", /* noncanonical */ - //"Triad III", /* noncanonical */ - //"Echo IV", /* noncanonical */ - //"Nimrod III", /* noncanonical */ - //"Nemisis IV", /* noncanonical */ - //"Centarurus I", /* noncanonical */ - //"Kronos III", /* noncanonical */ - //"Spectros V", /* noncanonical */ "Beta III", /* TOS: "The Return of the Archons" */ - "Gamma Tranguli VI (Vaalel)", /* TOS: "The Apple" */ - "Pyris VII", /* TOS: "Catspaw" ("III" in BSD) */ "Triacus", /* TOS: "And the Children Shall Lead", */ - "Marcos XII", /* TOS: "And the Children Shall Lead", */ - //"Kaland", /* noncanonical */ - "Ardana", /* TOS: "The Cloud Minders" */ - //"Stratos", /* noncanonical */ - //"Eden", /* TOS: "The Way to Eden" (in Romulan space) */ - //"Arrikis", /* noncanonical */ - //"Epsilon Eridani IV", /* noncanonical */ "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 + }; - return names[planet->inhabited]; + return names[pindx]; }