Avoid a nasty bug in planet-name display, and fix another boolean.
authorEric S. Raymond <esr@thyrsus.com>
Tue, 19 Sep 2006 19:20:43 +0000 (19:20 +0000)
committerEric S. Raymond <esr@thyrsus.com>
Tue, 19 Sep 2006 19:20:43 +0000 (19:20 +0000)
src/events.c
src/moving.c
src/planets.c
src/setup.c
src/sst.h

index 995440148009341200d19fe9f21e9a877e0c9ab3..5f1c6008604957c805d8960105454b9e13d9050b 100644 (file)
@@ -238,7 +238,7 @@ void events(void)
                }
                else prout(_("(Shields not currently useable.)"));
            }
-           newqad(0);
+           newqad(false);
            /* Adjust finish time to time of tractor beaming */
            fintim = game.state.date+game.optime;
            attack(0);
index 126d3baa13ecd63c12158781a8ddfeefdf7c3a97..4908236004714ff29d1b7bd1e126859eea5d6d74 100644 (file)
@@ -113,7 +113,7 @@ void imove(void)
                skip(1);
                prout(_("Entering %s."), cramlc(quadrant, game.quadrant));
                game.quad[game.sector.x][game.sector.y] = game.ship;
-               newqad(0);
+               newqad(false);
                if (game.skill>SKILL_NOVICE) attack(0);
                return;
            }
@@ -824,7 +824,7 @@ void timwrp()
        postpone(FTBEAM, game.optime);
        game.damage[DRADIO] += game.optime;
     }
-    newqad(0);
+    newqad(false);
     events();  /* Stas Sergeev added this -- do pending events */
 }
 
@@ -943,7 +943,7 @@ void mayday(void)
        }
        /* Since starbase not in quadrant, set up new quadrant */
        game.quadrant = game.state.baseq[line];
-       newqad(1);
+       newqad(true);
     }
     /* dematerialize starship */
     game.quad[game.sector.x][game.sector.y]=IHDOT;
index dd04b621b9ee330409cdcc676358e48336b15493..8d387af691a5404025307dfe759070ffd455a36f 100644 (file)
@@ -512,9 +512,10 @@ void deathray(void)
 
 char *systemname(int pindx)
 {
-    /* the below array shoud not be static, or it won't gettextize
+    static char copy[BUFSIZ];
+    /* the below array should not be static, or it won't gettextize
      * because of the early initialization. */
-    char *names[NINHAB] =
+    char *names[NINHAB+1] =
     {
        /*
         * I used <http://www.memory-alpha.org> to find planets
@@ -553,7 +554,7 @@ char *systemname(int pindx)
        _("Marcos XII"),                /* TOS: "And the Children Shall Lead", */
        _("Omega IV"),          /* TOS: "The Omega Glory" */
        _("Regulus V"),         /* TOS: "Amok Time */
-       _("Deeva"),             /* TOS: "Operation -- Annihilate!" */
+       _("Deneva"),            /* TOS: "Operation -- Annihilate!" */
        /* Worlds from BSD Trek */
        _("Rigel II"),          /* TOS: "Shore Leave" ("III" in BSD) */
        _("Beta III"),          /* TOS: "The Return of the Archons" */
@@ -570,7 +571,8 @@ char *systemname(int pindx)
        _("Coridan (Desotriana)"),      /* TOS: "Journey to Babel" */
        _("Iotia"),             /* TOS: "A Piece of the Action" */
 #endif
-   };
+    };
 
-    return names[pindx];
+    strcpy(copy, names[pindx]);
+    return copy;
 }
index 812a6c177a6be30f6497e53aafec93801797117e..e56e1e3f3585b5540009e5095f732d806ea650e3 100644 (file)
@@ -181,11 +181,10 @@ void abandn(void)
        prout("the Federation in a prisoner-of-war exchange.");
        nb = Rand()*game.state.rembase+1;
        /* Set up quadrant and position FQ adjacient to base */
-       if (game.quadrant.x!=game.state.baseq[nb].x || game.quadrant.y!=game.state.baseq[nb].y) {
-           game.quadrant.x = game.state.baseq[nb].x;
-           game.quadrant.y = game.state.baseq[nb].y;
+       if (!same(game.quadrant, game.state.baseq[nb])) {
+           game.quadrant = game.state.baseq[nb];
            game.sector.x = game.sector.y = 5;
-           newqad(1);
+           newqad(true);
        }
        for (;;) {
            /* position next to base by trial and error */
@@ -199,7 +198,7 @@ void abandn(void)
            if (l < QUADSIZE+1) break; /* found a spot */
            game.sector.x=QUADSIZE/2;
            game.sector.y=QUADSIZE/2;
-           newqad(1);
+           newqad(true);
        }
     }
     /* Get new commission */
@@ -450,7 +449,7 @@ void setup(int needprompt)
     prout("Good Luck!");
     if (game.state.nscrem) prout("  YOU'LL NEED IT.");
     waitfor();
-    newqad(0);
+    newqad(false);
     if (game.nenhere-iqhere-game.ithere) game.shldup = true;
     if (game.neutz) attack(0); // bad luck to start in a Romulan Neutral Zone
 }
@@ -592,7 +591,7 @@ void newkling(int i, coord *pi)
     game.kpower[i] = Rand()*150.0 +300.0 +25.0*game.skill;
 }
 
-void newqad(int shutup) 
+void newqad(bool shutup) 
 {
     int i, j;
     coord w;
index 8651afd849224e987eff13a79403326a6b2a5c45..27040e8ae52f194d5b2eedd07d8a9b1374ac059e 100644 (file)
--- a/src/sst.h
+++ b/src/sst.h
@@ -367,7 +367,7 @@ void skip(int);
 void prout(char *, ...);
 void proutn(char *, ...);
 void stars(void);
-void newqad(int);
+void newqad(bool);
 bool ja(void);
 void cramen(int);
 void crmshp(void);