X-Git-Url: https://jxself.org/git/?a=blobdiff_plain;f=src%2Fbattle.c;h=2977e6bbc7972e70315589f8c527cb8787b4b5a4;hb=5191195da307757c381ca209d5b7f3e947dbd9ee;hp=aa5f04a7a85bc405a2119304d81e6c15f82a5ba7;hpb=c8f91a7e3437017d237a3bad0166054b97206d8d;p=super-star-trek.git diff --git a/src/battle.c b/src/battle.c index aa5f04a..2977e6b 100644 --- a/src/battle.c +++ b/src/battle.c @@ -59,7 +59,7 @@ void doshield(int i) prout(_("Shields already up.")); return; } - game.shldup = 1; + game.shldup = true; game.shldchg = 1; if (game.condit != IHDOCKED) game.energy -= 50.0; prout(_("Shields raised.")); @@ -72,11 +72,11 @@ void doshield(int i) game.ididit=1; return; case SHDN: - if (game.shldup==0) { + if (!game.shldup) { prout(_("Shields already down.")); return; } - game.shldup=0; + game.shldup=false; game.shldchg=1; prout(_("Shields lowered.")); game.ididit=1; @@ -166,7 +166,7 @@ void ram(int ibumpd, int ienm, coord w) extradm = (10.0*type*Rand()+1.0)*game.damfac; game.damage[l] += game.optime + extradm; /* Damage for at least time of travel! */ } - game.shldup = 0; + game.shldup = false; if (KLINGREM) { pause_game(2); dreprt(); @@ -318,7 +318,7 @@ void torpedo(double course, double r, int inx, int iny, double *hit, int i, int crmena(1, iquad, 2, w); prout(_(" destroyed.")); game.state.nplankl++; - game.state.galaxy[game.quadrant.x][game.quadrant.y].planet = NULL; + game.state.galaxy[game.quadrant.x][game.quadrant.y].planet = NOPLANET; DESTROY(&game.state.plnets[game.iplnet]); game.iplnet = 0; game.plnet.x = game.plnet.y = 0; @@ -328,6 +328,22 @@ void torpedo(double course, double r, int inx, int iny, double *hit, int i, int finish(FDPLANET); } return; + case IHW: /* Hit an inhabited world -- very bad! */ + crmena(1, iquad, 2, w); + prout(_(" destroyed.")); + game.state.nworldkl++; + game.state.galaxy[game.quadrant.x][game.quadrant.y].planet = NOPLANET; + DESTROY(&game.state.plnets[game.iplnet]); + game.iplnet = 0; + game.plnet.x = game.plnet.y = 0; + game.quad[w.x][w.y] = IHDOT; + if (game.landed==1) { + /* captain perishes on planet */ + finish(FDPLANET); + } + prout("You have just destroyed an inhabited planet."); + prout("Celebratory rallies are being held on the Klingon homeworld."); + return; case IHSTAR: /* Hit a star */ if (Rand() > 0.10) { nova(w.x, w.y); @@ -454,7 +470,7 @@ static void fry(double hit) prout(_(" damaged.")); if (game.damage[DSHIELD] && game.shldup) { prout(_("***Shields knocked down.")); - game.shldup=0; + game.shldup=false; } } @@ -469,9 +485,7 @@ void attack(int torps_ok) game.iattak = 1; if (game.alldone) return; -#ifdef DEBUG - if (game.idebug) prout("ATTACK!"); -#endif + if (idebug) prout("=== ATTACK!"); if (game.ithere) movetho(); @@ -528,7 +542,7 @@ void attack(int torps_ok) return; /* Supernova or finished */ if (hit == 0) continue; } - if (game.shldup != 0 || game.shldchg != 0 || game.condit==IHDOCKED) { + if (game.shldup || game.shldchg != 0 || game.condit==IHDOCKED) { /* shields will take hits */ double absorb, hitsh, propor = pfac*game.shield*(game.condit==IHDOCKED ? 2.1 : 1.0); if(propor < 0.1) propor = 0.1; @@ -1169,13 +1183,13 @@ void phasers(void) prout(_("Sulu- \"Sir, the high-speed shield control has malfunctioned . . .")); prouts(_(" CLICK CLICK POP . . .")); prout(_(" No response, sir!")); - game.shldup = 0; + game.shldup = false; } else prout(_("Shields raised.")); } else - game.shldup = 0; + game.shldup = false; } overheat(rpow); }