version 1.15 | | version 1.16 |
---|
| | |
/* | | /* |
* static char *rcsid_shop_c = | | * static char *rcsid_shop_c = |
* "$Id: shop.c,v 1.15 2002/11/13 04:57:32 garbled Exp $"; | | * "$Id: shop.c,v 1.16 2002/12/03 07:40:18 mwedel Exp $"; |
*/ | | */ |
| | |
/* | | /* |
| | |
| | |
CLEAR_FLAG(tmp, FLAG_UNPAID); | | CLEAR_FLAG(tmp, FLAG_UNPAID); |
items[*numitems].nrof=tmp->nrof; | | items[*numitems].nrof=tmp->nrof; |
| | /* Non mergable items have nrof of 0, but count them as one |
| | * so the display is properly. |
| | */ |
| | if (tmp->nrof == 0) items[*numitems].nrof++; |
items[*numitems].type=tmp->type; | | items[*numitems].type=tmp->type; |
| | |
switch (tmp->type) { | | switch (tmp->type) { |
| | #if 0 |
| | case BOOTS: |
| | case GLOVES: |
case RING: | | case RING: |
case AMULET: | | case AMULET: |
case BRACERS: | | case BRACERS: |
case BOOTS: | | |
case GLOVES: | | |
case GIRDLE: | | case GIRDLE: |
sprintf(buf,"%s %s",query_base_name(tmp,0),describe_item(tmp, NULL)); | | sprintf(buf,"%s %s",query_base_name(tmp,0),describe_item(tmp, NULL)); |
items[*numitems].item_sort = strdup_local(buf); | | items[*numitems].item_sort = strdup_local(buf); |
| | |
items[*numitems].item_real = strdup_local(buf); | | items[*numitems].item_real = strdup_local(buf); |
(*numitems)++; | | (*numitems)++; |
break; | | break; |
| | #endif |
| | |
default: | | default: |
items[*numitems].item_sort = strdup_local(query_base_name(tmp, 0)); | | items[*numitems].item_sort = strdup_local(query_base_name(tmp, 0)); |
items[*numitems].item_real = strdup_local(query_name(tmp)); | | items[*numitems].item_real = strdup_local(query_base_name(tmp, 1)); |
(*numitems)++; | | (*numitems)++; |
break; | | break; |
} | | } |
| | |
qsort(items, numitems, sizeof(shopinv), (int (*)())shop_sort); | | qsort(items, numitems, sizeof(shopinv), (int (*)())shop_sort); |
| | |
for (i=0; i<numitems; i++) { | | for (i=0; i<numitems; i++) { |
new_draw_info(NDI_UNIQUE, 0, op, items[i].item_real); | | /* Collapse items of the same name together */ |
| | if ((i+1)<numitems && !strcmp(items[i].item_real, items[i+1].item_real)) { |
| | items[i+1].nrof += items[i].nrof; |
free(items[i].item_sort); | | free(items[i].item_sort); |
free(items[i].item_real); | | free(items[i].item_real); |
| | } else { |
| | new_draw_info_format(NDI_UNIQUE, 0, op, "%d %s", |
| | items[i].nrof? items[i].nrof:1, |
| | items[i].nrof==1?items[i].item_sort: items[i].item_real); |
| | free(items[i].item_sort); |
| | free(items[i].item_real); |
| | } |
} | | } |
free(items); | | free(items); |
} | | } |