Get rid of the iterator macros I wrote.
authorEric S. Raymond <esr@thyrsus.com>
Fri, 29 Sep 2006 07:41:43 +0000 (07:41 +0000)
committerEric S. Raymond <esr@thyrsus.com>
Fri, 29 Sep 2006 07:41:43 +0000 (07:41 +0000)
They interfere with mechanical translation.

src/ai.c
src/battle.c
src/events.c
src/moving.c
src/planets.c
src/reports.c
src/setup.c
src/sst.h

index 2849b61c9a7853edeedcf270b8a5cb75f20dd1b9..7f0112d5f957912ad9820a1bdb1e71d2a2838d1a 100644 (file)
--- a/src/ai.c
+++ b/src/ai.c
@@ -17,7 +17,7 @@ static bool tryexit(coord look, int ienm, int loccom, bool irun)
     if (!irun) {
        /* avoid intruding on another commander's territory */
        if (ienm == IHC) {
-           for_commanders(n)
+           for (n = 1; n <= game.state.remcom; n++)
                if (same(game.state.kcmdr[n],iq))
                    return false;
            /* refuse to leave if currently attacking starbase */
@@ -59,7 +59,7 @@ static bool tryexit(coord look, int ienm, int loccom, bool irun)
        game.state.kscmdr=iq;
     }
     else {
-       for_commanders(n) {
+       for (n = 1; n <= game.state.remcom; n++) {
            if (same(game.state.kcmdr[n], game.quadrant)) {
                game.state.kcmdr[n]=iq;
                break;
@@ -285,7 +285,7 @@ void moveklings(void)
     // Figure out which Klingon is the commander (or Supercommander)
     //   and do move
     if (game.comhere) 
-       for_local_enemies(i) {
+       for (i = 1; i <= game.nenhere; i++) {
            w = game.ks[i];
            if (game.quad[w.x][w.y] == IHC) {
                movebaddy(w, i, IHC);
@@ -293,7 +293,7 @@ void moveklings(void)
            }
        }
     if (game.ishere) 
-       for_local_enemies(i) {
+       for (i = 1; i <= game.nenhere; i++) {
            w = game.ks[i];
            if (game.quad[w.x][w.y] == IHS) {
                movebaddy(w, i, IHS);
@@ -304,7 +304,7 @@ void moveklings(void)
     // Move these last so they can base their actions on what the
     // commander(s) do.
     if (game.skill >= SKILL_EXPERT && (game.options & OPTION_MVBADDY)) 
-       for_local_enemies(i) {
+       for (i = 1; i <= game.nenhere; i++) {
            w = game.ks[i];
            if (game.quad[w.x][w.y] == IHK || game.quad[w.x][w.y] == IHR)
                movebaddy(w, i, game.quad[w.x][w.y]);
@@ -324,7 +324,7 @@ static bool movescom(coord iq, bool avoid)
        return 1;
     if (avoid) {
        /* Avoid quadrants with bases if we want to avoid Enterprise */
-       for_starbases(i)
+       for (i = 1; i <= game.state.rembase; i++)
            if (same(game.state.baseq[i], iq)) 
                return true;
     }
@@ -341,7 +341,7 @@ static bool movescom(coord iq, bool avoid)
        game.ishere = false;
        game.ientesc = false;
        unschedule(FSCDBAS);
-       for_local_enemies(i
+       for (i = 1; i <= game.nenhere; i++
            if (game.quad[game.ks[i].x][game.ks[i].y] == IHS)
                break;
        game.quad[game.ks[i].x][game.ks[i].y] = IHDOT;
@@ -409,7 +409,7 @@ void supercommander(void)
            return;
        }
        sc = game.state.kscmdr;
-       for_starbases(i) {
+       for (i = 1; i <= game.state.rembase; i++) {
            basetbl[i] = i;
            bdist[i] = distance(game.state.baseq[i], sc);
        }
@@ -435,16 +435,16 @@ void supercommander(void)
           without too many Klingons, and not already under attack. */
        ifindit = iwhichb = 0;
 
-       for_starbases(i2) {
+       for (i2 = 1; i2 <= game.state.rembase; i2++) {
            i = basetbl[i2];    /* bug in original had it not finding nearest*/
            ibq = game.state.baseq[i];
            if (same(ibq, game.quadrant) || same(ibq, game.battle) ||
                game.state.galaxy[ibq.x][ibq.y].supernova ||
                game.state.galaxy[ibq.x][ibq.y].klingons > MAXKLQUAD-1) 
                continue;
-           /* if there is a commander, and no other base is appropriate,
-              we will take the one with the commander */
-           for_commanders (j) {
+           // if there is a commander, and no other base is appropriate,
+           //   we will take the one with the commander
+           for (j = 1; j <= game.state.remcom; j++) {
                if (same(ibq, game.state.kcmdr[j]) && ifindit!= 2) {
                    ifindit = 2;
                    iwhichb = i;
@@ -510,35 +510,37 @@ void supercommander(void)
     if (game.state.rembase == 0) {
        unschedule(FSCMOVE);
     }
-    else for_starbases(i) {
-       ibq = game.state.baseq[i];
-       if (same(ibq, game.state.kscmdr) && same(game.state.kscmdr, game.battle)) {
-           /* attack the base */
-           if (avoid)
-               return; /* no, don't attack base! */
-           game.iseenit = false;
-           game.isatb = 1;
-           schedule(FSCDBAS, 1.0 +2.0*Rand());
-           if (is_scheduled(FCDBAS)) 
-               postpone(FSCDBAS, scheduled(FCDBAS)-game.state.date);
-           if (damaged(DRADIO) && game.condition != docked)
-               return; /* no warning */
-           game.iseenit = true;
-           pause_game(true);
-           proutn(_("Lt. Uhura-  \"Captain, the starbase in "));
-           proutn(cramlc(quadrant, game.state.kscmdr));
-           skip(1);
-           prout(_("   reports that it is under attack from the Klingon Super-commander."));
-           proutn(_("   It can survive until stardate %d.\""),
-                  (int)scheduled(FSCDBAS));
-           if (!game.resting)
-               return;
-           prout(_("Mr. Spock-  \"Captain, shall we cancel the rest period?\""));
-           if (ja() == false)
+    else {
+       for (i = 1; i <= game.state.rembase; i++) {
+           ibq = game.state.baseq[i];
+           if (same(ibq, game.state.kscmdr) && same(game.state.kscmdr, game.battle)) {
+               /* attack the base */
+               if (avoid)
+                   return; /* no, don't attack base! */
+               game.iseenit = false;
+               game.isatb = 1;
+               schedule(FSCDBAS, 1.0 +2.0*Rand());
+               if (is_scheduled(FCDBAS)) 
+                   postpone(FSCDBAS, scheduled(FCDBAS)-game.state.date);
+               if (damaged(DRADIO) && game.condition != docked)
+                   return; /* no warning */
+               game.iseenit = true;
+               pause_game(true);
+               proutn(_("Lt. Uhura-  \"Captain, the starbase in "));
+               proutn(cramlc(quadrant, game.state.kscmdr));
+               skip(1);
+               prout(_("   reports that it is under attack from the Klingon Super-commander."));
+               proutn(_("   It can survive until stardate %d.\""),
+                      (int)scheduled(FSCDBAS));
+               if (!game.resting)
+                   return;
+               prout(_("Mr. Spock-  \"Captain, shall we cancel the rest period?\""));
+               if (ja() == false)
+                   return;
+               game.resting = false;
+               game.optime = 0.0; /* actually finished */
                return;
-           game.resting = false;
-           game.optime = 0.0; /* actually finished */
-           return;
+           }
        }
     }
     /* Check for intelligence report */
@@ -608,7 +610,7 @@ void movetholian(void)
     game.ks[game.nenhere] = game.tholian;
 
     /* check to see if all holes plugged */
-    for_sectors(i) {
+    for (i = 1; i <= QUADSIZE; i++) {
        if (game.quad[1][i]!=IHWEB && game.quad[1][i]!=IHT)
            return;
        if (game.quad[QUADSIZE][i]!=IHWEB && game.quad[QUADSIZE][i]!=IHT)
index a1e1377f1e37a94cedf2fffcdded6ac2081a1d10..8f45cfbcf682f4a44568a23d08953d331d454082 100644 (file)
@@ -335,7 +335,7 @@ void torpedo(double course, double r, coord in, double *hit, int i, int n)
        case IHR: /* Hit a regular enemy */
        case IHK:
            /* find the enemy */
-           for_local_enemies(ll)
+           for (ll = 1; ll <= game.nenhere; ll++)
                if (same(w, game.ks[ll]))
                    break;
            kp = fabs(game.kpower[ll]);
@@ -380,7 +380,7 @@ void torpedo(double course, double r, coord in, double *hit, int i, int n)
        case IHB: /* Hit a base */
            skip(1);
            prout(_("***STARBASE DESTROYED.."));
-           for_starbases(ll) {
+           for (ll = 1; ll <= game.state.rembase; ll++) {
                if (same(game.state.baseq[ll], game.quadrant)) {
                    game.state.baseq[ll]=game.state.baseq[game.state.rembase];
                    break;
@@ -501,7 +501,7 @@ void torpedo(double course, double r, coord in, double *hit, int i, int n)
        game.quad[w.x][w.y]=IHDOT;
        game.quad[jw.x][jw.y]=iquad;
        prout(_(" displaced by blast to %s "), cramlc(sector, jw));
-       for_local_enemies(ll)
+       for (ll = 1; ll <= game.nenhere; ll++)
            game.kdist[ll] = game.kavgd[ll] = distance(game.sector,game.ks[ll]);
        sortklings();
        return;
@@ -597,7 +597,7 @@ void attack(bool torps_ok)
     if (game.skill <= SKILL_FAIR) 
        where = sector;
 
-    for_local_enemies(loop) {
+    for (loop = 1; loop <= game.nenhere; loop++) {
        if (game.kpower[loop] < 0)
            continue;   /* too weak to attack */
        /* compute hit strength and diminish shield power */
@@ -722,7 +722,7 @@ void attack(bool torps_ok)
        }
     }
     /* After attack, reset average distance to enemies */
-    for_local_enemies(loop)
+    for (loop = 1; loop <= game.nenhere; loop++)
        game.kavgd[loop] = game.kdist[loop];
     sortklings();
     return;
@@ -758,7 +758,7 @@ void deadkl(coord w, feature type, coord mv)
        switch (type) {
        case IHC:
            game.comhere = false;
-           for_commanders (i)
+           for (i = 1; i <= game.state.remcom; i++)
                if (same(game.state.kcmdr[i], game.quadrant)) 
                    break;
            game.state.kcmdr[i] = game.state.kcmdr[game.state.remcom];
@@ -797,7 +797,7 @@ void deadkl(coord w, feature type, coord mv)
     /* Remove enemy ship from arrays describing local conditions */
     if (is_scheduled(FCDBAS) && same(game.battle, game.quadrant) && type==IHC)
        unschedule(FCDBAS);
-    for_local_enemies(i)
+    for (i = 1; i <= game.nenhere; i++)
        if (same(game.ks[i], w))
            break;
     game.nenhere--;
@@ -1138,9 +1138,10 @@ void phasers(void)
        irec=0;
        do {
            chew();
-           if (!kz) for_local_enemies(i)
-               irec+=fabs(game.kpower[i])/(PHASEFAC*pow(0.90,game.kdist[i]))*
-                   (1.01+0.05*Rand()) + 1.0;
+           if (!kz)
+               for (i = 1; i <= game.nenhere; i++)
+                   irec += fabs(game.kpower[i])/(PHASEFAC*pow(0.90,game.kdist[i]))*
+                       (1.01+0.05*Rand()) + 1.0;
            kz=1;
            proutn(_("%d units required. "), irec);
            chew();
@@ -1175,7 +1176,7 @@ void phasers(void)
        if (game.nenhere) {
            extra = 0.0;
            powrem = rpow;
-           for_local_enemies(i) {
+           for (i = 1; i <= game.nenhere; i++) {
                hits[i] = 0.0;
                if (powrem <= 0)
                    continue;
index 7e5c411d511013cff951cdebd9ab2d4fc50139ef..aeefdb49c8fdddbcc4d4b76d39e5d2c67567c9a8 100644 (file)
@@ -270,8 +270,8 @@ void events(void)
                break;
            }
            i = 0;
-           for_starbases(j) {
-               for_commanders(k)
+           for (j = 1; j <= game.state.rembase; j++) {
+               for (k = 1; k <= game.state.remcom; k++)
                    if (same(game.state.baseq[j], game.state.kcmdr[k]) &&
                        !same(game.state.baseq[j], game.quadrant) &&
                        !same(game.state.baseq[j], game.state.kscmdr)) {
@@ -320,7 +320,7 @@ void events(void)
            if (evcode==FCDBAS) {
                unschedule(FCDBAS);
                /* find the lucky pair */
-               for_commanders(i)
+               for (i = 1; i <= game.state.remcom; i++)
                    if (same(game.state.kcmdr[i], game.battle)) 
                        break;
                if (i > game.state.remcom || game.state.rembase == 0 ||
@@ -358,7 +358,7 @@ void events(void)
            }
            /* Remove Starbase from galaxy */
            game.state.galaxy[game.battle.x][game.battle.y].starbase = false;
-           for_starbases(i)
+           for (i = 1; i <= game.state.rembase; i++)
                if (same(game.state.baseq[i], game.battle))
                    game.state.baseq[i] = game.state.baseq[game.state.rembase];
            game.state.rembase--;
@@ -700,7 +700,7 @@ void nova(coord nov)
                        break;
                    case IHB: /* Destroy base */
                        game.state.galaxy[game.quadrant.x][game.quadrant.y].starbase = false;
-                       for_starbases(i)
+                       for (i = 1; i <= game.state.rembase; i++)
                            if (same(game.state.baseq[i], game.quadrant)) 
                                break;
                        game.state.baseq[i] = game.state.baseq[game.state.rembase];
@@ -744,7 +744,7 @@ void nova(coord nov)
                    case IHC: /* Damage/destroy big enemies */
                    case IHS:
                    case IHR:
-                       for_local_enemies(ll)
+                       for (ll = 1; ll <= game.nenhere; ll++)
                            if (same(game.ks[ll], scratch))
                                break;
                        game.kpower[ll] -= 800.0; /* If firepower is lost, die */
@@ -825,16 +825,14 @@ void supernova(bool induced, coord *w)
        /* Scheduled supernova -- select star */
        /* logic changed here so that we won't favor quadrants in top
           left of universe */
-       for_quadrants(nq.x) {
-           for_quadrants(nq.y) {
+       for (nq.x = 1; nq.x <= GALSIZE; nq.x++)
+           for (nq.y = 1; nq.y <= GALSIZE; nq.y++)
                stars += game.state.galaxy[nq.x][nq.y].stars;
-           }
-       }
        if (stars == 0)
            return; /* nothing to supernova exists */
        num = Rand()*stars + 1;
-       for_quadrants(nq.x) {
-           for_quadrants(nq.y) {
+       for (nq.x = 1; nq.x <= GALSIZE; nq.x++) {
+           for (nq.y = 1; nq.y <= GALSIZE; nq.y++) {
                num -= game.state.galaxy[nq.x][nq.y].stars;
                if (num <= 0)
                    break;
@@ -862,8 +860,8 @@ void supernova(bool induced, coord *w)
        coord ns;
        /* we are in the quadrant! */
        num = Rand()* game.state.galaxy[nq.x][nq.y].stars + 1;
-       for_sectors(ns.x) {
-           for_sectors(ns.y) {
+       for (ns.x = 1; ns.x <= QUADSIZE; ns.x++) {
+           for (ns.y = 1; ns.y <= QUADSIZE; ns.y++) {
                if (game.quad[ns.x][ns.y]==IHSTAR) {
                    num--;
                    if (num==0)
index a8eb87b3ab6769876c61efb262865576e3408cd1..63a51c7e485dd2f9519fe9960e1916f0fed48735 100644 (file)
@@ -53,7 +53,7 @@ void imove(bool novapush)
                /* Don't do it if being pushed by Nova */
                if (game.nenhere != 0 && !novapush) {
                    newcnd();
-                   for_local_enemies(m) {
+                   for (m = 1; m <= game.nenhere; m++) {
                        finald = distance(w, game.ks[m]);
                        game.kavgd[m] = 0.5 * (finald + game.kdist[m]);
                    }
@@ -195,7 +195,7 @@ no_quad_change:
     /* No quadrant change -- compute new avg enemy distances */
     game.quad[game.sector.x][game.sector.y] = game.ship;
     if (game.nenhere) {
-       for_local_enemies(m) {
+       for (m = 1; m <= game.nenhere; m++) {
            finald = distance(w, game.ks[m]);
            game.kavgd[m] = 0.5 * (finald+game.kdist[m]);
            game.kdist[m] = finald;
@@ -203,7 +203,8 @@ no_quad_change:
        sortklings();
        if (!game.state.galaxy[game.quadrant.x][game.quadrant.y].supernova)
            attack(false);
-       for_local_enemies(m) game.kavgd[m] = game.kdist[m];
+       for (m = 1; m <= game.nenhere; m++)
+           game.kavgd[m] = game.kdist[m];
     }
     newcnd();
     drawmaps(0);
@@ -989,7 +990,7 @@ void mayday(void)
     }
     else {
        ddist = FOREVER;
-       for_starbases(m) {
+       for (m = 1; m <= game.state.rembase; m++) {
            xdist = QUADSIZE * distance(game.state.baseq[m], game.quadrant);
            if (xdist < ddist) {
                ddist = xdist;
@@ -1163,7 +1164,7 @@ void abandon(void)
        for (;;) {
            /* position next to base by trial and error */
            game.quad[game.sector.x][game.sector.y] = IHDOT;
-           for_sectors(l) {
+           for (l = 1; l <= QUADSIZE; l++) {
                game.sector.x = 3.0*Rand() - 1.0 + game.base.x;
                game.sector.y = 3.0*Rand() - 1.0 + game.base.y;
                if (VALID_SECTOR(game.sector.x, game.sector.y) &&
index e9cfcc2c7bb38180fd8bfc9d4ab1085e5a31e075..5f31e5de8dcb809b865d47bf1d19fa7c8b4d6338 100644 (file)
@@ -499,8 +499,8 @@ void deathray(void)
        proutn(_("Spock-  \"I believe the word is"));
        prouts(_(" *ASTONISHING*"));
        prout(_(" Mr. Sulu."));
-       for_sectors(i)
-           for_sectors(j)
+       for (i = 1; i <= QUADSIZE; i++)
+           for (j = 1; j <= QUADSIZE; j++)
                if (game.quad[i][j] == IHDOT)
                    game.quad[i][j] = IHQUEST;
        prout(_("  Captain, our quadrant is now infested with"));
index fa9d2e47b9942330aca984cab801084a1fc6dfc0..3c672186f7d6a9aeb9deec00d80312b05c9fdb7d 100644 (file)
@@ -195,8 +195,8 @@ void rechart(void)
 {
     int i, j;
     game.lastchart = game.state.date;
-    for_quadrants(i)
-       for_quadrants(j) 
+    for (i = 1; i <= GALSIZE; i++)
+       for (j = 1; j <= GALSIZE; j++)
            if (game.state.galaxy[i][j].charted) {
                game.state.chart[i][j].klingons = game.state.galaxy[i][j].klingons;
                game.state.chart[i][j].starbase = game.state.galaxy[i][j].starbase;
@@ -223,9 +223,9 @@ void chart(void)
        prout(_("(Last surveillance update %d stardates ago)."),
              (int)(game.state.date-game.lastchart));
     prout("      1    2    3    4    5    6    7    8");
-    for_quadrants(i) {
+    for (i = 1; i <= GALSIZE; i++) {
        proutn("%d |", i);
-       for_quadrants(j) {
+       for (j = 1; j <= GALSIZE; j++) {
            char buf[4];
            if ((game.options & OPTION_SHOWME) && i == game.quadrant.x && j == game.quadrant.y)
                proutn("<");
@@ -412,7 +412,7 @@ void srscan(void)
        newcnd();
     for (i = 1; i <= QUADSIZE; i++) {
        proutn("%2d  ", i);
-       for_sectors(j) {
+       for (j = 1; j <= QUADSIZE; j++) {
            sectscan(goodScan, i, j);
        }
        skip(1);
index 83655765d25c17c532ad4c389f38ea585cfd1318..c8112e0ff17a2beffdd71e61e83e7a06b9cb1469 100644 (file)
@@ -223,9 +223,9 @@ void setup(bool needprompt)
     game.landed = false;
     game.alive = true;
     game.docfac = 0.25;
-    for_quadrants(i)
-       for_quadrants(j) {
-       struct quadrant *quad = &game.state.galaxy[i][j];
+    for (i = 1; i <= GALSIZE; i++)
+       for (j = 1; j <= GALSIZE; j++) {
+           struct quadrant *quad = &game.state.galaxy[i][j];
            quad->charted = 0;
            quad->planet = NOPLANET;
            quad->romulans = 0;
@@ -256,8 +256,8 @@ void setup(bool needprompt)
     game.lastchart = FOREVER;
     // Put stars in the galaxy
     game.instar = 0;
-    for_quadrants(i)
-       for_quadrants(j) {
+    for (i = 1; i <= GALSIZE; i++)
+       for (j = 1; j <= GALSIZE; j++) {
            int k = Rand()*9.0 + 1.0;
            game.instar += k;
            game.state.galaxy[i][j].stars = k;
@@ -607,8 +607,8 @@ void newqad(bool shutup)
        game.ientesc = true;
     }
     // Clear quadrant
-    for_sectors(i)
-       for_sectors(j) 
+    for (i = 1; i <= QUADSIZE; i++)
+       for (j = 1; j <= QUADSIZE; j++)
            game.quad[i][j] = IHDOT;
     q = &game.state.galaxy[game.quadrant.x][game.quadrant.y];
     // cope with supernova
@@ -627,7 +627,7 @@ void newqad(bool shutup)
        for (i = 1; i <= game.klhere; i++)
            w = newkling(i);
        // If we need a commander, promote a Klingon
-       for_commanders(i)
+       for (i = 1; i <= game.state.remcom; i++)
            if (same(game.state.kcmdr[i], game.quadrant))
                break;
                        
index 5ea29e9a07f96f96062326f7f3ed0b69370b0631..63a967996edbfced2e5fff75f2bf8fb8eb92a226 100644 (file)
--- a/src/sst.h
+++ b/src/sst.h
  */
 #define VALID_QUADRANT(x, y)   ((x)>=1 && (x)<=GALSIZE && (y)>=1 && (y)<=GALSIZE)
 #define VALID_SECTOR(x, y)     ((x)>=1 && (x)<=QUADSIZE && (y)>=1 && (y)<=QUADSIZE)
-#define for_quadrants(i)       for (i = 1; i <= GALSIZE; i++)
-#define for_sectors(i)         for (i = 1; i <= QUADSIZE; i++)
-#define for_commanders(i)      for (i = 1; i <= game.state.remcom; i++)
-#define for_local_enemies(i)   for (i = 1; i <= game.nenhere; i++)
-#define for_starbases(i)       for (i = 1; i <= game.state.rembase; i++)
 
 typedef struct {int x; int y;} coord;