Replace common pattern by new LIMIT_TO()
authorMarkus Armbruster <armbru@pond.sub.org>
Mon, 14 Jan 2013 21:34:05 +0000 (22:34 +0100)
committerMarkus Armbruster <armbru@pond.sub.org>
Thu, 6 Jun 2013 17:52:25 +0000 (19:52 +0200)
Signed-off-by: Markus Armbruster <armbru@pond.sub.org>
include/misc.h
src/lib/commands/edit.c
src/lib/commands/load.c
src/lib/commands/setres.c
src/lib/commands/setsect.c
src/lib/common/hap_fact.c
src/lib/subs/attsub.c
src/lib/subs/shpsub.c
src/lib/subs/supply.c
src/lib/update/populace.c
src/util/fairland.c

index fddfb6ed80b39e5dbcb2554080490457bbfe9e5a..9fc06f4051cfef673620907e34d0b5895f3354cd 100644 (file)
@@ -29,6 +29,7 @@
  *
  *  Known contributors to this file:
  *     Doug Hay, 1998
+ *     Markus Armbruster, 2004-2013
  */
 
 #ifndef MISC_H
@@ -37,6 +38,9 @@
 #define MAX(a,b) ((a) > (b) ? (a) : (b))
 #define MIN(a,b) ((a) < (b) ? (a) : (b))
 
+#define LIMIT_TO(val, min, max) \
+    ((val) < (min) ? (min) : (val) > (max) ? (max) : (val))
+
 #ifdef _WIN32
 #include "w32misc.h"
 #endif /* _WIN32 */
index ff941085d2be3f752f06190618fc44e9e664e606..b553a7973becf7cf3e0182574158049e2f093fe2 100644 (file)
@@ -402,16 +402,6 @@ pr_ship(struct shpstr *ship)
     pr("\n");
 }
 
-static int
-errcheck(int num, int min, int max)
-{
-    if (num < min)
-       return min;
-    else if (num > max)
-       return max;
-    return num;
-}
-
 static int
 getin(char *buf, char **valp)
 {
@@ -454,7 +444,7 @@ doland(char op, int arg, char *p, struct sctstr *sect)
     case 'o':
        if (arg < 0)
            return RET_SYN;
-       newown = (natid)errcheck(arg, 0, MAXNOC - 1);
+       newown = (natid)LIMIT_TO(arg, 0, MAXNOC - 1);
        pr("Owner of %s changed from %s (#%d) to %s (#%d).\n",
           xyas(sect->sct_x, sect->sct_y, player->cnum),
           cname(sect->sct_own), sect->sct_own, cname(newown), newown);
@@ -475,7 +465,7 @@ doland(char op, int arg, char *p, struct sctstr *sect)
     case 'O':
        if (arg < 0)
            return RET_SYN;
-       oldown = (natid)errcheck(arg, 0, MAXNOC - 1);
+       oldown = (natid)LIMIT_TO(arg, 0, MAXNOC - 1);
        pr("Old owner of %s changed from %s (#%d) to %s (#%d).\n",
           xyas(sect->sct_x, sect->sct_y, player->cnum),
           cname(sect->sct_oldown),
@@ -483,47 +473,47 @@ doland(char op, int arg, char *p, struct sctstr *sect)
        sect->sct_oldown = oldown;
        break;
     case 'e':
-       new = errcheck(arg, 0, 100);
+       new = LIMIT_TO(arg, 0, 100);
        noise(sect, "Efficiency", sect->sct_effic, new);
        sect->sct_effic = new;
        break;
     case 'm':
-       new = errcheck(arg, -127, 255);
+       new = LIMIT_TO(arg, -127, 255);
        noise(sect, "Mobility", sect->sct_mobil, new);
        sect->sct_mobil = new;
        break;
     case 'i':
-       new = errcheck(arg, 0, 127);
+       new = LIMIT_TO(arg, 0, 127);
        noise(sect, "Iron ore content", sect->sct_min, new);
        sect->sct_min = (unsigned char)new;
        break;
     case 'g':
-       new = errcheck(arg, 0, 127);
+       new = LIMIT_TO(arg, 0, 127);
        noise(sect, "Gold content", sect->sct_gmin, new);
        sect->sct_gmin = (unsigned char)new;
        break;
     case 'f':
-       new = errcheck(arg, 0, 127);
+       new = LIMIT_TO(arg, 0, 127);
        noise(sect, "Fertility", sect->sct_fertil, new);
        sect->sct_fertil = (unsigned char)new;
        break;
     case 'c':
-       new = errcheck(arg, 0, 127);
+       new = LIMIT_TO(arg, 0, 127);
        noise(sect, "Oil content", sect->sct_oil, new);
        sect->sct_oil = (unsigned char)new;
        break;
     case 'u':
-       new = errcheck(arg, 0, 127);
+       new = LIMIT_TO(arg, 0, 127);
        noise(sect, "Uranium content", sect->sct_uran, new);
        sect->sct_uran = (unsigned char)new;
        break;
     case 'w':
-       new = errcheck(arg, 0, 100);
+       new = LIMIT_TO(arg, 0, 100);
        noise(sect, "Workforce percentage", sect->sct_work, new);
        sect->sct_work = (unsigned char)new;
        break;
     case 'l':
-       new = errcheck(arg, 0, 127);
+       new = LIMIT_TO(arg, 0, 127);
        pr("Loyalty of %s changed from %d to %d%%\n",
           xyas(sect->sct_x, sect->sct_y, player->cnum),
           sect->sct_loyal, new);
@@ -531,14 +521,14 @@ doland(char op, int arg, char *p, struct sctstr *sect)
        break;
     case 'x':
        old = sect->sct_che;
-       new = errcheck(arg, 0, CHE_MAX);
+       new = LIMIT_TO(arg, 0, CHE_MAX);
        pr("Guerillas in %s changed from %d to %d\n",
           xyas(sect->sct_x, sect->sct_y, player->cnum), old, new);
        sect->sct_che = new;
        break;
     case 'X':
        old = sect->sct_che_target;
-       new = errcheck(arg, 0, MAXNOC - 1);
+       new = LIMIT_TO(arg, 0, MAXNOC - 1);
        pr("Che target of %s changed from %s (#%d) to %s (#%d).\n",
           xyas(sect->sct_x, sect->sct_y, player->cnum),
           cname(old), old, cname(new), new);
@@ -548,32 +538,32 @@ doland(char op, int arg, char *p, struct sctstr *sect)
        break;
     case 'p':
        old = sect->sct_pstage;
-       new = errcheck(arg, 0, PLG_EXPOSED);
+       new = LIMIT_TO(arg, 0, PLG_EXPOSED);
        pr("Plague stage of %s changed from %d to %d%%\n",
           xyas(sect->sct_x, sect->sct_y, player->cnum), old, new);
        sect->sct_pstage = new;
        break;
     case 't':
        old = sect->sct_ptime;
-       new = errcheck(arg, 0, 255);
+       new = LIMIT_TO(arg, 0, 255);
        pr("Plague time of %s changed from %d to %d%%\n",
           xyas(sect->sct_x, sect->sct_y, player->cnum), old, new);
        sect->sct_ptime = new;
        break;
     case 'F':
        old = sect->sct_fallout;
-       new = errcheck(arg, 0, FALLOUT_MAX);
+       new = LIMIT_TO(arg, 0, FALLOUT_MAX);
        pr("Fallout for sector %s changed from %d to %d\n",
           xyas(sect->sct_x, sect->sct_y, player->cnum), old, new);
        sect->sct_fallout = new;
        break;
     case 'a':
-       new = errcheck(arg, 0, 9999);
+       new = LIMIT_TO(arg, 0, 9999);
        noise(sect, "Available workforce", sect->sct_avail, new);
        sect->sct_avail = new;
        break;
     case 'M':
-       new = errcheck(arg, 0, MINES_MAX);
+       new = LIMIT_TO(arg, 0, MINES_MAX);
        sect->sct_mines = new;
        pr("Mines changed to %d\n", new);
        break;
@@ -614,28 +604,19 @@ doland(char op, int arg, char *p, struct sctstr *sect)
        sect->sct_newtype = des;
        break;
     case 'R':
-       if (arg > 100)
-           arg = 100;
-       if (arg < 0)
-           arg = 0;
-       noise(sect, "Road percentage", sect->sct_road, arg);
-       sect->sct_road = arg;
+       new = LIMIT_TO(arg, 0, 100);
+       noise(sect, "Road percentage", sect->sct_road, new);
+       sect->sct_road = new;
        break;
     case 'r':
-       if (arg > 100)
-           arg = 100;
-       if (arg < 0)
-           arg = 0;
-       noise(sect, "Rail percentage", sect->sct_rail, arg);
-       sect->sct_rail = arg;
+       new = LIMIT_TO(arg, 0, 100);
+       noise(sect, "Rail percentage", sect->sct_rail, new);
+       sect->sct_rail = new;
        break;
     case 'd':
-       if (arg > 100)
-           arg = 100;
-       if (arg < 0)
-           arg = 0;
-       noise(sect, "Defense percentage", sect->sct_defense, arg);
-       sect->sct_defense = arg;
+       new = LIMIT_TO(arg, 0, 100);
+       noise(sect, "Defense percentage", sect->sct_defense, new);
+       sect->sct_defense = new;
        break;
     default:
        pr("huh? (%c)\n", op);
@@ -668,7 +649,7 @@ docountry(char op, int arg, char *p, struct natstr *np)
        np->nat_tgms = arg;
        break;
     case 'b':
-       arg = errcheck(arg, 0, 1024);
+       arg = LIMIT_TO(arg, 0, 1024);
        pr("BTU's changed from %d to %d\n", np->nat_btu, arg);
        np->nat_btu = arg;
        break;
@@ -700,10 +681,10 @@ docountry(char op, int arg, char *p, struct natstr *np)
        np->nat_yorg = newy;
        break;
     case 's':
-       np->nat_stat = errcheck(arg, STAT_UNUSED, STAT_GOD);
+       np->nat_stat = LIMIT_TO(arg, STAT_UNUSED, STAT_GOD);
        break;
     case 'u':
-       arg = errcheck(arg, 0, m_m_p_d * 60);
+       arg = LIMIT_TO(arg, 0, m_m_p_d * 60);
        pr("Number of seconds used changed from %d to %d.\n",
           np->nat_timeused, arg);
        np->nat_timeused = arg;
@@ -784,12 +765,11 @@ doship(char op, int arg, char *p, struct shpstr *ship)
        ship->shp_y = newy;
        break;
     case 'T':
-       shp_set_tech(ship,
-                    errcheck(arg,
-                             mchr[(int)ship->shp_type].m_tech, SHRT_MAX));
+       arg = LIMIT_TO(arg, mchr[(int)ship->shp_type].m_tech, SHRT_MAX);
+       shp_set_tech(ship, arg);
        break;
     case 'E':
-       ship->shp_effic = errcheck(arg, SHIP_MINEFF, 100);
+       ship->shp_effic = LIMIT_TO(arg, SHIP_MINEFF, 100);
        break;
     case 'M':
        ship->shp_mobil = arg;
@@ -882,15 +862,14 @@ dounit(char op, int arg, char *p, struct lndstr *land)
        land->lnd_y = newy;
        break;
     case 'e':
-       land->lnd_effic = errcheck(arg, LAND_MINEFF, 100);
+       land->lnd_effic = LIMIT_TO(arg, LAND_MINEFF, 100);
        break;
     case 'M':
        land->lnd_mobil = arg;
        break;
     case 't':
-       lnd_set_tech(land,
-                    errcheck(arg,
-                             lchr[(int)land->lnd_type].l_tech, SHRT_MAX));
+       arg = LIMIT_TO(arg, lchr[(int)land->lnd_type].l_tech, SHRT_MAX);
+       lnd_set_tech(land, arg);
        break;
     case 'a':
        if (p[0] == '~')
@@ -903,7 +882,7 @@ dounit(char op, int arg, char *p, struct lndstr *land)
        }
        break;
     case 'F':
-       land->lnd_harden = errcheck(arg, 0, 255);
+       land->lnd_harden = LIMIT_TO(arg, 0, 255);
        break;
     case 'S':
        land->lnd_ship = arg;
@@ -992,15 +971,14 @@ doplane(char op, int arg, char *p, struct plnstr *plane)
            plane->pln_effic = 0;
        break;
     case 'e':
-       plane->pln_effic = errcheck(arg, PLANE_MINEFF, 100);
+       plane->pln_effic = LIMIT_TO(arg, PLANE_MINEFF, 100);
        break;
     case 'm':
-       plane->pln_mobil = errcheck(arg, -127, 255);
+       plane->pln_mobil = LIMIT_TO(arg, -127, 255);
        break;
     case 't':
-       pln_set_tech(plane,
-                    errcheck(arg,
-                             plchr[(int)plane->pln_type].pl_tech, SHRT_MAX));
+       arg = LIMIT_TO(arg, plchr[(int)plane->pln_type].pl_tech, SHRT_MAX);
+       pln_set_tech(plane, arg);
        break;
     case 'w':
        if (p[0] == '~')
index 59166f275c0ad2ff431cc44251c1c59ea8cbfd32..9916717afa814a89d247c908c90ae8a968b5eb64 100644 (file)
@@ -30,7 +30,7 @@
  *     David Sharnoff, 1987
  *     Ken Stevens, 1995 (rewritten)
  *     Steve McClure, 1998-2000
- *     Markus Armbruster, 2004-2012
+ *     Markus Armbruster, 2004-2013
  */
 
 #include <config.h>
@@ -326,14 +326,8 @@ move_amount(int sect_amt, int unit_amt, int unit_max,
        move_amt = -amount - unit_amt;
     else
        move_amt = load_unload == LOAD ? amount : -amount;
-    if (move_amt > unit_max - unit_amt)
-       move_amt = unit_max - unit_amt;
-    if (move_amt < -unit_amt)
-       move_amt = -unit_amt;
-    if (move_amt > sect_amt)
-       move_amt = sect_amt;
-    if (move_amt < sect_amt - ITEM_MAX)
-       move_amt = sect_amt - ITEM_MAX;
+    move_amt = LIMIT_TO(move_amt, -unit_amt, unit_max - unit_amt);
+    move_amt = LIMIT_TO(move_amt, sect_amt - ITEM_MAX, sect_amt);
     return move_amt;
 }
 
index e1b247eaa6b8411d1f41ef14ecd7cbf416fc1672..6e66143afc3e96d333195a0772ab503ac57e74f4 100644 (file)
@@ -30,6 +30,7 @@
  *     David Muir Sharnoff
  *     Karl Hagen
  *     Steve McClure, 1998
+ *     Markus Armbruster, 2010-2013
  */
 
 #include <config.h>
@@ -64,10 +65,7 @@ setres(void)
        if (!p || !*p)
            return RET_SYN;
        amt = atoi(p);
-       if (amt > 100)
-           amt = 100;
-       if (amt < 0)
-           amt = 0;
+       amt = LIMIT_TO(amt, 0, 100);
        if (!check_sect_ok(&sect))
            return RET_FAIL;
        switch (char0) {
index ab635580096958e12e9fa98b95932342b89488e8..7163a7f9d15dbc738a02c41ff47d72193922f689 100644 (file)
@@ -29,6 +29,7 @@
  *  Known contributors to this file:
  *     David Muir Sharnoff
  *     Steve McClure, 1998
+ *     Markus Armbruster, 2004-2013
  */
 
 #include <config.h>
@@ -73,10 +74,7 @@ setsector(void)
        case 'i':
            current = sect.sct_min;
            current += amt;
-           if (current < 0)
-               current = 0;
-           if (current > 100)
-               current = 100;
+           current = LIMIT_TO(current, 0, 100);
            if (sect.sct_own != 0)
                resnoise(&sect, "Iron ore content", sect.sct_min, current);
            sect.sct_min = (unsigned char)current;
@@ -84,10 +82,7 @@ setsector(void)
        case 'g':
            current = sect.sct_gmin;
            current += amt;
-           if (current < 0)
-               current = 0;
-           if (current > 100)
-               current = 100;
+           current = LIMIT_TO(current, 0, 100);
            if (sect.sct_own != 0)
                resnoise(&sect, "Gold content", sect.sct_gmin, current);
            sect.sct_gmin = (unsigned char)current;
@@ -97,10 +92,7 @@ setsector(void)
            case 'i':
                current = sect.sct_oil;
                current += amt;
-               if (current < 0)
-                   current = 0;
-               if (current > 100)
-                   current = 100;
+               current = LIMIT_TO(current, 0, 100);
                if (sect.sct_own != 0)
                    resnoise(&sect, "Oil content", sect.sct_oil, current);
                sect.sct_oil = (unsigned char)current;
@@ -139,10 +131,7 @@ setsector(void)
        case 'e':
            current = sect.sct_effic;
            current += amt;
-           if (current < 0)
-               current = 0;
-           if (current > 100)
-               current = 100;
+           current = LIMIT_TO(current, 0, 100);
            pr("Efficiency in %s changed to %d.\n",
               xyas(sect.sct_x, sect.sct_y, player->cnum), current);
            sect.sct_effic = current;
@@ -152,10 +141,7 @@ setsector(void)
            case 'i':
                current = sect.sct_mines;
                current += amt;
-               if (current < 0)
-                   current = 0;
-               if (current > MINES_MAX)
-                   current = MINES_MAX;
+               current = LIMIT_TO(current, 0, MINES_MAX);
                if (sect.sct_own != 0 && sect.sct_own == sect.sct_oldown)
                    resnoise(&sect, "Mines", sect.sct_mines, current);
                sect.sct_mines = current;
@@ -163,10 +149,7 @@ setsector(void)
            case 'o':
                current = sect.sct_mobil;
                current += amt;
-               if (current < -127)
-                   current = -127;
-               if (current > 127)
-                   current = 127;
+               current = LIMIT_TO(current, -127, 127);
                pr("Mobility in %s changed to %d.\n",
                   xyas(sect.sct_x, sect.sct_y, player->cnum), current);
                sect.sct_mobil = current;
@@ -179,10 +162,7 @@ setsector(void)
        case 'a':
            current = sect.sct_avail;
            current += amt;
-           if (current < 0)
-               current = 0;
-           if (current > 9999)
-               current = 9999;
+           current = LIMIT_TO(current, 0, 9999);
            pr("Available in %s changed to %d.\n",
               xyas(sect.sct_x, sect.sct_y, player->cnum), current);
            sect.sct_avail = (short)current;
@@ -190,10 +170,7 @@ setsector(void)
        case 'w':
            current = sect.sct_work;
            current += amt;
-           if (current < 0)
-               current = 0;
-           if (current > 100)
-               current = 100;
+           current = LIMIT_TO(current, 0, 100);
            pr("Work in %s changed to %d.\n",
               xyas(sect.sct_x, sect.sct_y, player->cnum), current);
            sect.sct_work = (unsigned char)current;
@@ -201,10 +178,7 @@ setsector(void)
        case 'f':
            current = sect.sct_fertil;
            current += amt;
-           if (current < 0)
-               current = 0;
-           if (current > 100)
-               current = 100;
+           current = LIMIT_TO(current, 0, 100);
            if (sect.sct_own != 0)
                resnoise(&sect, "Fertility content", sect.sct_fertil, current);
            sect.sct_fertil = (unsigned char)current;
@@ -212,10 +186,7 @@ setsector(void)
        case 'u':
            current = sect.sct_uran;
            current += amt;
-           if (current < 0)
-               current = 0;
-           if (current > 100)
-               current = 100;
+           current = LIMIT_TO(current, 0, 100);
            if (sect.sct_own != 0)
                resnoise(&sect, "Uranium content", sect.sct_uran, current);
            sect.sct_uran = (unsigned char)current;
index 1715c3cb7a4ee91f8a7f023e2e0d35fd397b0691..6f43c817e0365bd172788d8d166b776352b99c5c 100644 (file)
@@ -51,11 +51,7 @@ hap_fact(struct natstr *tnat, struct natstr *vnat)
        hap_fact = 2.0;
     else                       /* Target has no happy, worse fighting */
        hap_fact = 0.8;
-    if (hap_fact > 2.0)
-       hap_fact = 2.0;
-    if (hap_fact < 0.8)
-       hap_fact = 0.8;
-    return hap_fact;
+    return LIMIT_TO(hap_fact, 0.8, 2.0);
 }
 
 /* Return happiness required to keep NP's citizens happy.  */
index ef22fac45b158ebbf784344c0827b4094e0349fe..77bb71796aab14bb054957441fc86577cafaa94c 100644 (file)
@@ -29,7 +29,7 @@
  *  Known contributors to this file:
  *     Ken Stevens, 1995
  *     Steve McClure, 1996-2000
- *     Markus Armbruster, 2006-2012
+ *     Markus Armbruster, 2006-2013
  */
 
 #include <config.h>
@@ -2587,9 +2587,5 @@ sector_strength(struct sctstr *sp)
     double base = sp->sct_type == SCT_MOUNT ? 2.0 : 1.0;
     double d = base + (dchr[sp->sct_type].d_dstr - base) * def;
 
-    if (d > dchr[sp->sct_type].d_dstr)
-       d = dchr[sp->sct_type].d_dstr;
-    if (d < base)
-       d = base;
-    return d;
+    return LIMIT_TO(d, base, dchr[sp->sct_type].d_dstr);
 }
index e96da87834da6f412b4044aa30636b970939be6b..0682fc22b61f6d253d68103bcb8474a62538bcd2 100644 (file)
@@ -29,7 +29,7 @@
  *  Known contributors to this file:
  *     Ken Stevens, 1995
  *     Steve McClure, 1996-2000
- *     Markus Armbruster, 2006-2012
+ *     Markus Armbruster, 2006-2013
  */
 
 #include <config.h>
@@ -871,10 +871,7 @@ shp_missile_defense(coord dx, coord dy, natid bombown, int hardtarget)
        teff = ship.shp_tech / (ship.shp_tech + 200.0);
        /* raise 4.5 for better interception -KHS */
        hitchance = (int)(gun * eff * teff * 4.5) - hardtarget;
-       if (hitchance < 0)
-           hitchance = 0;
-       if (hitchance > 100)
-           hitchance = 100;
+       hitchance = LIMIT_TO(hitchance, 0, 100);
        hit = pct_chance(hitchance);
 
        mpr(bombown, "%s anti-missile system activated...%s\n",
index ff084dc2d939aef2a4ebda52964172e3eeaddbd8..b820934f72e6459ad934ad83bd170edc4c79d011 100644 (file)
@@ -27,7 +27,7 @@
  *  supply.c: Supply subroutines
  *
  *  Known contributors to this file:
- *     Markus Armbruster, 2004-2011
+ *     Markus Armbruster, 2004-2013
  */
 
 #include <config.h>
@@ -201,11 +201,7 @@ s_commod(struct empobj *sink, short *vec,
 
            /* take off mobility for delivering sect */
            n = roundavg(wanted * weight * move_cost);
-           if (n < 0)
-               n = 0;
-           if (n > sect.sct_mobil)
-               n = sect.sct_mobil;
-           sect.sct_mobil -= n;
+           sect.sct_mobil -= LIMIT_TO(n, 0, sect.sct_mobil);
            if (actually_doit) {
                vec[type] += wanted;
                putsect(&sect);
@@ -219,11 +215,7 @@ s_commod(struct empobj *sink, short *vec,
 
            /* take off mobility for delivering sect */
            n = roundavg(can_move * weight * move_cost);
-           if (n < 0)
-               n = 0;
-           if (n > sect.sct_mobil)
-               n = sect.sct_mobil;
-           sect.sct_mobil -= n;
+           sect.sct_mobil -= LIMIT_TO(n, 0, sect.sct_mobil);
            if (actually_doit) {
                vec[type] += can_move;
                putsect(&sect);
@@ -271,11 +263,7 @@ s_commod(struct empobj *sink, short *vec,
            ship.shp_item[type] -= wanted;
 
            n = roundavg(wanted * weight * move_cost);
-           if (n < 0)
-               n = 0;
-           if (n > sect.sct_mobil)
-               n = sect.sct_mobil;
-           sect.sct_mobil -= n;
+           sect.sct_mobil -= LIMIT_TO(n, 0, sect.sct_mobil);
            if (actually_doit) {
                vec[type] += can_move;
                putship(ship.shp_uid, &ship);
@@ -289,11 +277,7 @@ s_commod(struct empobj *sink, short *vec,
            ship.shp_item[type] -= can_move;
 
            n = roundavg(can_move * weight * move_cost);
-           if (n < 0)
-               n = 0;
-           if (n > sect.sct_mobil)
-               n = sect.sct_mobil;
-           sect.sct_mobil -= n;
+           sect.sct_mobil -= LIMIT_TO(n, 0, sect.sct_mobil);
            if (actually_doit) {
                vec[type] += can_move;
                putship(ship.shp_uid, &ship);
index dc727d43ac38657c379adb3a491a2cd302c51686..4ae8de7c50551bcd0128436cc64a3b223a8fdf6a 100644 (file)
@@ -102,11 +102,7 @@ populace(struct natstr *np, struct sctstr *sp, int etu)
            n -= roundavg(etu * 0.25);
        else
            n += roundavg(etu * 0.125);
-       if (n < 0)
-           n = 0;
-       else if (n > 127)
-           n = 127;
-       sp->sct_loyal = n;
+       sp->sct_loyal = LIMIT_TO(n, 0, 127);
        if (sp->sct_loyal == 0) {
            if (sp->sct_oldown != sp->sct_own) {
                wu(0, sp->sct_own,
index 54ad99f1db8ea2a895a2161b2ced4482ea0537eb..d181da68b4740e0d3c9509e519184dd346ab5ffa 100644 (file)
@@ -378,10 +378,7 @@ parse_args(int argc, char *argv[])
        sp = atoi(argv[4]);
     else
        sp = DEFAULT_SPIKE;
-    if (sp < 0)
-       sp = 0;
-    if (sp > 100)
-       sp = 100;
+    sp = LIMIT_TO(sp, 0, 100);
 
     if (argc > 5)
        pm = atoi(argv[5]);