summaryrefslogtreecommitdiff
path: root/src/map/npc.c
diff options
context:
space:
mode:
authorJared Adams <jaxad0127@gmail.com>2009-02-15 12:37:03 +0000
committerJared Adams <jaxad0127@gmail.com>2009-02-15 12:37:03 +0000
commitb152e7e73348473517a58f3ad005fbc3d89fc541 (patch)
tree7ac8b227fb6ab4e89902769906382ae5330259d7 /src/map/npc.c
parent6841ab57286c04fce48224c91142d48503ab4cc1 (diff)
downloadtmwa-b152e7e73348473517a58f3ad005fbc3d89fc541.tar.gz
tmwa-b152e7e73348473517a58f3ad005fbc3d89fc541.tar.bz2
tmwa-b152e7e73348473517a58f3ad005fbc3d89fc541.tar.xz
tmwa-b152e7e73348473517a58f3ad005fbc3d89fc541.zip
Allow shop parsing to continue after bad item name
Diffstat (limited to 'src/map/npc.c')
-rw-r--r--src/map/npc.c25
1 files changed, 14 insertions, 11 deletions
diff --git a/src/map/npc.c b/src/map/npc.c
index 932bb6b..2cdcf00 100644
--- a/src/map/npc.c
+++ b/src/map/npc.c
@@ -1236,19 +1236,22 @@ static int npc_parse_shop(char *w1,char *w2,char *w3,char *w4)
if (sscanf(p, "%d:%d", &nameid, &value) == 2) {
} else if (sscanf(p, "%s :%d", name, &value) == 2) {
id = itemdb_searchname(name);
- if (id == NULL) break;
- nameid = id->nameid;
+ if (id == NULL) nameid = -1;
+ else nameid = id->nameid;
} else break;
- nd->u.shop_item[pos].nameid = nameid;
- if (value < 0) {
- int temp = abs(value);
- if (id == NULL) id = itemdb_search(nameid);
- value = id->value_buy;
- if (temp % 2) value = value / ((temp + 1) / 2);
- else value = value * (temp / 2);
+
+ if (nameid > 0) {
+ nd->u.shop_item[pos].nameid = nameid;
+ if (value < 0) {
+ int temp = abs(value);
+ if (id == NULL) id = itemdb_search(nameid);
+ value = id->value_buy;
+ if (temp % 2) value = value / ((temp + 1) / 2);
+ else value = value * (temp / 2);
+ }
+ nd->u.shop_item[pos].value = value;
+ pos++;
}
- nd->u.shop_item[pos].value = value;
- pos++;
p=strchr(p,',');
}
if (pos == 0) {