Experimental X code
[super-star-trek.git] / battle.c
index 5e1c40481525229e4a5efdb7afe362301e8d8fdf..56a981fc97e54a6cd74dc1876b48f90b472850b1 100644 (file)
--- a/battle.c
+++ b/battle.c
@@ -168,7 +168,7 @@ void ram(int ibumpd, int ienm, int ix, int iy)
        game.damage[l] += Time + extradm; /* Damage for at least time of travel! */
     }
     shldup = 0;
-    if (game.state.remkl) {
+    if (KLINGREM) {
        pause_game(2);
        dreprt();
     }
@@ -176,7 +176,7 @@ void ram(int ibumpd, int ienm, int ix, int iy)
     return;
 }
 
-void torpedo(double course, double r, int inx, int iny, double *hit, int wait, int i, int n) 
+void torpedo(double course, double r, int inx, int iny, double *hit, int i, int n)
 {
     int l, iquad=0, ix=0, iy=0, jx=0, jy=0, shoved=0, ll;
        
@@ -202,8 +202,7 @@ void torpedo(double course, double r, int inx, int iny, double *hit, int wait, i
        iy = y + 0.5;
        if (!VALID_SECTOR(ix, iy)) break;
        iquad=game.quad[ix][iy];
-       tracktorpedo(x, y, ix, iy, wait, l, i, n, iquad);
-       wait = 1;
+       tracktorpedo(ix, iy, l, i, n, iquad);
        if (iquad==IHDOT) continue;
        /* hit something */
        setwnd(message_window);
@@ -299,7 +298,7 @@ void torpedo(double course, double r, int inx, int iny, double *hit, int wait, i
        case IHB: /* Hit a base */
            skip(1);
            prout("***STARBASE DESTROYED..");
-           for (ll=1; ll<=game.state.rembase; ll++) {
+           for_starbases(ll) {
                if (game.state.baseqx[ll]==quadx && game.state.baseqy[ll]==quady) {
                    game.state.baseqx[ll]=game.state.baseqx[game.state.rembase];
                    game.state.baseqy[ll]=game.state.baseqy[game.state.rembase];
@@ -350,7 +349,7 @@ void torpedo(double course, double r, int inx, int iny, double *hit, int wait, i
            } else {
                /*
                 * Stas Sergeev added the possibility that
-                * you can shove the Thingy abd piss it off.
+                * you can shove the Thingy and piss it off.
                 * It then becomes an enemy and may fire at you.
                 */
                iqengry=1;
@@ -518,8 +517,8 @@ void attack(int torps_ok)
            prout("  ");
            r = (Rand()+Rand())*0.5 -0.5;
            r += 0.002*game.kpower[l]*r;
-           torpedo(course, r, jx, jy, &hit, 0, 1, 1);
-           if (game.state.remkl==0) 
+           torpedo(course, r, jx, jy, &hit, 1, 1);
+           if (KLINGREM==0) 
                finish(FWON); /* Klingons did themselves in! */
            if (game.state.galaxy[quadx][quady].supernova || alldone) 
                return; /* Supernova or finished */
@@ -614,7 +613,6 @@ void deadkl(int ix, int iy, int type, int ixx, int iyy)
        /* chalk up a Romulan */
        game.state.galaxy[quadx][quady].romulans--;
        irhere--;
-       game.state.nromkl++;
        game.state.nromrem--;
     }
     else if (type == IHT) {
@@ -629,7 +627,6 @@ void deadkl(int ix, int iy, int type, int ixx, int iyy)
        /* Some type of a Klingon */
        game.state.galaxy[quadx][quady].klingons--;
        klhere--;
-       game.state.remkl--;
        switch (type) {
        case IHC:
            comhere = 0;
@@ -640,18 +637,17 @@ void deadkl(int ix, int iy, int type, int ixx, int iyy)
            game.state.cx[game.state.remcom] = 0;
            game.state.cy[game.state.remcom] = 0;
            game.state.remcom--;
-           game.future[FTBEAM] = 1e30;
+           game.future[FTBEAM] = FOREVER;
            if (game.state.remcom != 0)
                game.future[FTBEAM] = game.state.date + expran(1.0*incom/game.state.remcom);
-           game.state.killc++;
            break;
        case IHK:
-           game.state.killk++;
+           game.state.remkl--;
            break;
        case IHS:
-           game.state.nscrem = ishere = game.state.isx = game.state.isy = isatb = iscate = 0;
-           game.state.nsckill = 1;
-           game.future[FSCMOVE] = game.future[FSCDBAS] = 1e30;
+           game.state.nscrem--;
+           ishere = game.state.isx = game.state.isy = isatb = iscate = 0;
+           game.future[FSCMOVE] = game.future[FSCDBAS] = FOREVER;
            break;
        }
     }
@@ -659,13 +655,13 @@ void deadkl(int ix, int iy, int type, int ixx, int iyy)
     /* For each kind of enemy, finish message to player */
     prout(" destroyed.");
     game.quad[ix][iy] = IHDOT;
-    if (game.state.remkl==0) return;
+    if (KLINGREM==0) return;
 
     game.state.remtime = game.state.remres/(game.state.remkl + 4*game.state.remcom);
 
     /* Remove enemy ship from arrays describing local conditions */
-    if (game.future[FCDBAS] < 1e30 && batx==quadx && baty==quady && type==IHC)
-       game.future[FCDBAS] = 1e30;
+    if (game.future[FCDBAS] < FOREVER && batx==quadx && baty==quady && type==IHC)
+       game.future[FCDBAS] = FOREVER;
     for_local_enemies(i)
        if (game.kx[i]==ix && game.ky[i]==iy) break;
     nenhere--;
@@ -827,11 +823,11 @@ void photon(void)
        }
        if (shldup || condit == IHDOCKED) 
            r *= 1.0 + 0.0001*shield;
-       torpedo(course[i], r, sectx, secty, &dummy, 0, i, n);
+       torpedo(course[i], r, sectx, secty, &dummy, i, n);
        if (alldone || game.state.galaxy[quadx][quady].supernova)
            return;
     }
-    if (game.state.remkl==0) finish(FWON);
+    if (KLINGREM==0) finish(FWON);
 }
 
        
@@ -1212,7 +1208,7 @@ void hittem(double *hits)
        skip(1);
        if (kpow == 0) {
            deadkl(ii, jj, ienm, ii, jj);
-           if (game.state.remkl==0) finish(FWON);
+           if (KLINGREM==0) finish(FWON);
            if (alldone) return;
            kk--; /* don't do the increment */
        }