diff --git a/include/nsc.h b/include/nsc.h index 75c81a4c..30bc8730 100644 --- a/include/nsc.h +++ b/include/nsc.h @@ -305,6 +305,7 @@ extern void snxtitem_group(struct nstr_item *, int, char); extern void snxtitem_rewind(struct nstr_item *); extern int snxtitem_list(struct nstr_item *, int, int *, int); extern void snxtitem_cargo(struct nstr_item *, int, int, int); +extern int snxtitem_use_condarg(struct nstr_item *); /* src/lib/subs/snxtsct.c */ extern int snxtsct(struct nstr_sect *, char *); extern void snxtsct_area(struct nstr_sect *, struct range *); diff --git a/src/lib/subs/snxtitem.c b/src/lib/subs/snxtitem.c index 33ddb50b..da8b86ad 100644 --- a/src/lib/subs/snxtitem.c +++ b/src/lib/subs/snxtitem.c @@ -28,7 +28,7 @@ * * Known contributors to this file: * Dave Pare, 1989 - * Markus Armbruster, 2009 + * Markus Armbruster, 2009-2011 */ #include @@ -125,12 +125,7 @@ snxtitem(struct nstr_item *np, int type, char *str, char *prompt) default: return 0; } - if (!player->condarg) - return 1; - n = nstr_comp(np->cond, sizeof(np->cond) / sizeof(*np->cond), type, - player->condarg); - np->ncond = n >= 0 ? n : 0; - return n >= 0; + return snxtitem_use_condarg(np); } void @@ -239,3 +234,18 @@ snxtitem_cargo(struct nstr_item *np, int type, np->sel = NS_CARGO; np->next = unit_cargo_first(carrier_type, carrier_uid, type); } + +int +snxtitem_use_condarg(struct nstr_item *np) +{ + int n; + + if (!player->condarg) + return 1; + n = nstr_comp(np->cond, sizeof(np->cond) / sizeof(*np->cond), + np->type, player->condarg); + if (n < 0) + return 0; + np->ncond = n; + return 1; +}