diff --git a/include/map.h b/include/map.h index d8e83c6d..973a7f74 100644 --- a/include/map.h +++ b/include/map.h @@ -61,8 +61,7 @@ extern void blankfill(char *, struct range *, int); extern void border(struct range *, char *, char *); /* src/lib/subs/maps.c */ extern int do_map(int bmap, int unit_type, char *arg1, char *arg2); -extern int display_region_map(int bmap, int unit_type, coord curx, - coord cury, char *arg); +extern int display_region_map(int, int, coord, coord, char *, char *); extern int bmaps_intersect(natid, natid); extern int share_bmap(natid, natid, struct nstr_sect *, char, char *); diff --git a/include/prototypes.h b/include/prototypes.h index 704d071a..07a03b64 100644 --- a/include/prototypes.h +++ b/include/prototypes.h @@ -464,7 +464,7 @@ extern int cando(int, int); extern int check_lmines(coord, coord, double); extern int move_ground(struct sctstr *, struct sctstr *, double, char *, - int (*)(coord, coord, char *), + int (*)(coord, coord, char *, char *), int, int *); extern int fly_map(coord, coord); /* mslsub.c */ diff --git a/src/lib/commands/expl.c b/src/lib/commands/expl.c index 125cebac..e128015c 100644 --- a/src/lib/commands/expl.c +++ b/src/lib/commands/expl.c @@ -39,7 +39,7 @@ #include "optlist.h" #include "plague.h" -static int explore_map(coord curx, coord cury, char *arg); +static int explore_map(coord, coord, char *, char *); int explore(void) @@ -274,7 +274,7 @@ explore(void) /*ARGSUSED*/ static int -explore_map(coord curx, coord cury, char *arg) +explore_map(coord curx, coord cury, char *arg1, char *arg2) { struct nstr_sect ns; struct sctstr sect; diff --git a/src/lib/commands/move.c b/src/lib/commands/move.c index 4ffde824..8668a735 100644 --- a/src/lib/commands/move.c +++ b/src/lib/commands/move.c @@ -41,7 +41,7 @@ #include "plague.h" -static int cmd_move_map(coord curx, coord cury, char *arg); +static int cmd_move_map(coord, coord, char *, char *); int move(void) @@ -341,9 +341,9 @@ move(void) */ /*ARGSUSED*/ static int -cmd_move_map(coord curx, coord cury, char *arg) +cmd_move_map(coord curx, coord cury, char *arg1, char *arg2) { - return display_region_map(0, EF_SHIP, curx, cury, arg); + return display_region_map(0, EF_SHIP, curx, cury, arg1, arg2); } int diff --git a/src/lib/commands/tran.c b/src/lib/commands/tran.c index 991eb23a..849a417f 100644 --- a/src/lib/commands/tran.c +++ b/src/lib/commands/tran.c @@ -28,7 +28,7 @@ * * Known contributors to this file: * Steve McClure, 2000 - * Markus Armbruster, 2006-2009 + * Markus Armbruster, 2006-2011 */ #include @@ -40,8 +40,8 @@ #include "plane.h" #include "ship.h" -static int tran_pmap(coord curx, coord cury, char *arg); -static int tran_nmap(coord curx, coord cury, char *arg); +static int tran_pmap(coord, coord, char *, char *); +static int tran_nmap(coord, coord, char *, char *); static int tran_nuke(void); static int tran_plane(void); @@ -245,13 +245,13 @@ tran_plane(void) */ /*ARGSUSED*/ static int -tran_pmap(coord curx, coord cury, char *arg) +tran_pmap(coord curx, coord cury, char *arg1, char *arg2) { - return display_region_map(0, EF_PLANE, curx, cury, arg); + return display_region_map(0, EF_PLANE, curx, cury, arg1, arg2); } static int -tran_nmap(coord curx, coord cury, char *arg) +tran_nmap(coord curx, coord cury, char *arg1, char *arg2) { - return display_region_map(0, EF_NUKE, curx, cury, arg); + return display_region_map(0, EF_NUKE, curx, cury, arg1, arg2); } diff --git a/src/lib/subs/maps.c b/src/lib/subs/maps.c index 305960ed..2a1d4dcc 100644 --- a/src/lib/subs/maps.c +++ b/src/lib/subs/maps.c @@ -420,29 +420,21 @@ unit_map(int unit_type, int uid, struct nstr_sect *nsp, char *originp) int display_region_map(int bmap, int unit_type, coord curx, coord cury, - char *arg) + char *arg1, char *arg2) { char coordinates[80]; - char *map_flag_arg; - if (!arg || !*arg) { + if (!arg1 || !*arg1) { struct natstr *np; np = getnatp(player->cnum); sprintf(coordinates, "%d:%d,%d:%d", xrel(np, curx - 10), xrel(np, curx + 10), yrel(np, cury - 5), yrel(np, cury + 5)); - arg = coordinates; - map_flag_arg = NULL; - } else { - map_flag_arg = strchr(arg, ' '); - if (map_flag_arg != NULL) { - *map_flag_arg++ = '\0'; - while (isspace(*map_flag_arg)) map_flag_arg++; - } + arg1 = coordinates; } player->condarg = NULL; - return do_map(bmap, unit_type, arg, map_flag_arg); + return do_map(bmap, unit_type, arg1, arg2); } int diff --git a/src/lib/subs/move.c b/src/lib/subs/move.c index 478b43b4..748548ed 100644 --- a/src/lib/subs/move.c +++ b/src/lib/subs/move.c @@ -47,8 +47,8 @@ static int move_map(coord curx, coord cury, char *arg); int move_ground(struct sctstr *start, struct sctstr *end, double weight, char *path, - int (*map)(coord, coord, char *), int exploring, - int *dam) + int (*map)(coord, coord, char *, char *), + int exploring, int *dam) { struct sctstr sect; struct sctstr next; @@ -62,6 +62,9 @@ move_ground(struct sctstr *start, struct sctstr *end, size_t len; double mobility = start->sct_mobil; int dir; + char scanspace[1024]; + char *argp[128]; + int ac; int intcost; int takedam = *dam; int out = 0; @@ -119,7 +122,7 @@ move_ground(struct sctstr *start, struct sctstr *end, oldy = cury; if (!movstr || *movstr == 0) { if (exploring) { - map(curx, cury, NULL); + map(curx, cury, NULL, NULL); } else { move_map(curx, cury, NULL); } @@ -168,15 +171,23 @@ move_ground(struct sctstr *start, struct sctstr *end, *movstr = 0; continue; } - movstr++; if (dir == DIR_MAP) { + ac = parse(movstr, scanspace, argp, NULL, NULL, NULL); + if (ac == 1) { + pr("Use of '%c' without a space before its argument is deprecated.\n" + "Support for it will go away in a future release\n", + *movstr); + argp[1] = argp[0] + 1; + } if (!exploring) - map(curx, cury, movstr + 1); + map(curx, cury, argp[1], argp[2]); *movstr = 0; continue; - } else if (dir == DIR_STOP) + } + movstr++; + if (dir == DIR_STOP) break; - else if (dir == DIR_VIEW) { + if (dir == DIR_VIEW) { pr("%d%% %s with %d civilians.\n", sect.sct_effic, dchr[sect.sct_type].d_name, sect.sct_item[I_CIVIL]); continue;