(strtox, strtoy): New. Use it instead of inputxy() to avoid the

double-remainder problem: x-coordinate SHRT_MAX+1 is truncated to 0 by
cast to coord, then converted by xabs().  This is wrong unless WORLD_X
divides SHRT_MAX+1.
(sarg_xy, sarg_getrange, sarg_range): Use them.
(inputxy): No longer used, remove.

(sarg_type): Use NS_UNDEF instead of 0.

(sarg_list): Change confusing loop control.  Properly diagnose
overlong lists; used to silently ignore list tail and return MAX+1,
which made a later snxtitem_list() fail.

(atoip): No longer used, remove.  Parsing was broken anyway.

(sarg_type, sarg_xy, sarg_area, sarg_range, sarg_list, sarg_getrange):
Use plain char * instead of s_char *.
This commit is contained in:
Markus Armbruster 2004-04-07 17:13:47 +00:00
parent 543b0cba4f
commit 5d302eaad5
6 changed files with 131 additions and 150 deletions

View file

@ -204,7 +204,6 @@ extern int updates_disabled(void);
extern int emp_config(char *file);
extern void print_config(FILE * fp);
extern int atoip(s_char **);
extern int roll(int);
extern int roundavg(double);
extern int chance(double);
@ -460,11 +459,11 @@ extern void retreat_land(struct lndstr *, s_char);
extern int check_retreat_and_do_shipdamage(struct shpstr *, int);
extern int check_retreat_and_do_landdamage(struct lndstr *, int);
/* sarg.c */
extern ns_seltype sarg_type(s_char *);
extern int sarg_xy(s_char *, coord *, coord *);
extern int sarg_area(s_char *, register struct range *);
extern int sarg_range(s_char *, coord *, coord *, int *);
extern int sarg_list(s_char *, register int *, int);
extern ns_seltype sarg_type(char *);
extern int sarg_xy(char *, coord *, coord *);
extern int sarg_area(char *, register struct range *);
extern int sarg_range(char *, coord *, coord *, int *);
extern int sarg_list(char *, register int *, int);
/* satmap.c */
extern void satdisp(struct sctstr *, int, int);
extern void satmap(int, int, int, int, int, int);