]> git.pond.sub.org Git - empserver/blobdiff - src/lib/subs/sarg.c
Update copyright notice
[empserver] / src / lib / subs / sarg.c
index e3faebb11ee8683087809e457a2dfa16edda6e26..cc80ab9a4460248afeddc58e7de4fe5d1d29f296 100644 (file)
@@ -1,6 +1,6 @@
 /*
  *  Empire - A multi-player, client/server Internet based war game.
- *  Copyright (C) 1986-2004, Dave Pare, Jeff Bailey, Thomas Ruschak,
+ *  Copyright (C) 1986-2008, Dave Pare, Jeff Bailey, Thomas Ruschak,
  *                           Ken Stevens, Steve McClure
  *
  *  This program is free software; you can redistribute it and/or modify
@@ -19,9 +19,9 @@
  *
  *  ---
  *
- *  See the "LEGAL", "LICENSE", "CREDITS" and "README" files for all the
- *  related information and legal notices. It is expected that any future
- *  projects/authors will amend these files as needed.
+ *  See files README, COPYING and CREDITS in the root of the source
+ *  tree for related information and legal notices.  It is expected
+ *  that future projects/authors will amend these files as needed.
  *
  *  ---
  *
  * 
  *  Known contributors to this file:
  *     Dave Pare, 1989
+ *     Markus Armbruster, 2004
  */
 
+#include <config.h>
+
 #include <ctype.h>
-#include <string.h>
+#include "file.h"
 #include "misc.h"
-#include "player.h"
-#include "xy.h"
-#include "nsc.h"
-#include "sect.h"
 #include "nat.h"
-#include "file.h"
-#include "prototypes.h"
+#include "nsc.h"
 #include "optlist.h"
+#include "player.h"
+#include "prototypes.h"
+#include "xy.h"
 
 /*
  * returns one of
@@ -49,6 +50,7 @@
  *  #1, lx:ly,hx:hy --> NS_AREA
  *  @x,y:dist  --> NS_DIST
  *  %d or %d/%d/%d --> NS_LIST
+ *  ~ or letter --> NS_GROUP
  *  * --> NS_ALL
  *
  * or 0 for none of the above.
@@ -67,7 +69,7 @@ sarg_type(char *str)
        return NS_AREA;
     if (isdigit(c))
        return NS_LIST;
-    if (c == '~' || isupper(c) || islower(c))
+    if (c == '~' || isalpha(c))
        return NS_GROUP;
     return NS_UNDEF;
 }
@@ -98,6 +100,7 @@ sarg_getrange(char *str, struct range *rp)
 {
     long rlm;
     struct natstr *np;
+    struct realmstr realm;
     char *end;
 
     if (*str == '#') {
@@ -112,11 +115,11 @@ sarg_getrange(char *str, struct range *rp)
                return 0;
        } else 
            rlm = 0;
-       np = getnatp(player->cnum);
-       rp->lx = np->nat_b[rlm].b_xl;
-       rp->hx = np->nat_b[rlm].b_xh;
-       rp->ly = np->nat_b[rlm].b_yl;
-       rp->hy = np->nat_b[rlm].b_yh;
+       getrealm(rlm, player->cnum, &realm);
+       rp->lx = realm.r_xl;
+       rp->hx = realm.r_xh;
+       rp->ly = realm.r_yl;
+       rp->hy = realm.r_yh;
     } else {
        /*
         * full map specification