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 *);
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 */
#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)
/*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;
#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)
*/
/*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
*
* Known contributors to this file:
* Steve McClure, 2000
- * Markus Armbruster, 2006-2009
+ * Markus Armbruster, 2006-2011
*/
#include <config.h>
#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);
*/
/*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);
}
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
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;
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;
oldy = cury;
if (!movstr || *movstr == 0) {
if (exploring) {
- map(curx, cury, NULL);
+ map(curx, cury, NULL, NULL);
} else {
move_map(curx, cury, NULL);
}
*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;