]> git.pond.sub.org Git - empserver/commitdiff
(tran_map, tran_nmap, tran_pmap): Split tran_map() into tran_nmap()
authorRon Koenderink <rkoenderink@yahoo.ca>
Sun, 9 Jul 2006 18:24:31 +0000 (18:24 +0000)
committerRon Koenderink <rkoenderink@yahoo.ca>
Sun, 9 Jul 2006 18:24:31 +0000 (18:24 +0000)
and tran_pmap() so that unit number arguments are interpreted
sensibly.  Users changed.

(display_region_map): New.
(cmd_move_map, tran_nmap, tran_pmap): Use it.

include/prototypes.h
src/lib/commands/move.c
src/lib/commands/tran.c
src/lib/common/maps.c

index 509ec4956772798d53b7c20b0b9c287f6c447f7d..a8dde780ababb3979dfc016373940573d0aba9fd 100644 (file)
@@ -308,6 +308,7 @@ extern void logerror(char *, ...) ATTRIBUTE((format (printf, 1, 2)));
 /* maps.c */
 extern int draw_map(int, char, int, struct nstr_sect *);
 extern int unit_map(int, int, struct nstr_sect *, char *);
+extern int display_region_map(char *cmd, coord curx, coord cury, char *arg);
 extern int bmaps_intersect(natid, natid);
 extern int share_bmap(natid, natid, struct nstr_sect *, char, char *);
 /* move.c */
index 5bcaf755f8f5cd6626239b9aa14161de2c556e6f..5427832a1ff6443019e9eddf7e1a06cbe99896e3 100644 (file)
@@ -350,11 +350,7 @@ move(void)
 static int
 cmd_move_map(coord curx, coord cury, char *arg)
 {
-    player->argp[0] = "map";
-    player->argp[1] = arg;
-    player->argp[2] = NULL;
-    player->condarg = NULL;
-    return map();
+    return display_region_map("map", curx, cury, arg);
 }
 
 int
index 6a2c7098c4aec76e7e13ce4c1cf426252d51447b..601b1f7b58c46d28884fc52cca9c6dbcaafd0ddf 100644 (file)
@@ -48,7 +48,8 @@
 #include "land.h"
 #include "commands.h"
 
-static int tran_map(coord curx, coord cury, char *arg);
+static int tran_pmap(coord curx, coord cury, char *arg);
+static int tran_nmap(coord curx, coord cury, char *arg);
 static int tran_nuke(void);
 static int tran_plane(void);
 
@@ -120,7 +121,7 @@ tran_nuke(void)
     }
     dam = 0;
     mcost = move_ground(&sect, &endsect, weight,
-                       player->argp[3], tran_map, 0, &dam);
+                       player->argp[3], tran_nmap, 0, &dam);
     if (mcost < 0)
        return 0;
 
@@ -214,7 +215,7 @@ tran_plane(void)
     }
     dam = 1;
     mcost = move_ground(&sect, &endsect, weight,
-                       player->argp[3], tran_map, 0, &dam);
+                       player->argp[3], tran_pmap, 0, &dam);
     dam /= count;
     if (mcost < 0)
        return 0;
@@ -251,11 +252,14 @@ tran_plane(void)
  */
 /*ARGSUSED*/
 static int
-tran_map(coord curx, coord cury, char *arg)
+tran_pmap(coord curx, coord cury, char *arg)
 {
-    player->argp[0] = "map";
-    player->argp[1] = arg;
-    player->argp[2] = NULL;
-    player->condarg = NULL;
-    return map();
+    return display_region_map("pmap", curx, cury, arg);
 }
+
+static int
+tran_nmap(coord curx, coord cury, char *arg)
+{
+    return display_region_map("nmap", curx, cury, arg);
+}
+
index 5c9c5c2b682e46117451722dbf7a9720f5950a03..df8611f84c776f441d47021b7cffa6397339368d 100644 (file)
@@ -356,6 +356,35 @@ unit_map(int unit_type, int uid, struct nstr_sect *nsp, char *originp)
     return RET_OK;
 }
 
+int
+display_region_map(char *cmd, coord curx, coord cury, char *arg)
+{
+    char coordinates[80], *cp;
+
+    player->argp[0] = cmd;
+    if (!arg || !*arg) {
+       struct natstr *np;
+
+       np = getnatp(player->cnum);
+       sprintf(coordinates, "%d:%d,%d:%d",
+           xrel(np, curx - 10), xrel(np, curx + 11),
+           yrel(np, cury - 5), yrel(np, cury + 6));
+       player->argp[1] = coordinates;
+       player->argp[2] = NULL;
+    } else {
+       player->argp[1] = arg;
+       cp = strchr(arg, ' ');
+       if (cp != NULL) {
+           *cp++  = '\0';
+           while (isspace(*cp)) cp++;
+           player->argp[2] = cp;
+       } else
+           player->argp[2] = NULL;
+    }
+    player->condarg = NULL;
+    return map();
+}
+
 int
 bmaps_intersect(natid a, natid b)
 {