From b1f5b70e91b07c8b9924a157029f227d2c3e2f1b Mon Sep 17 00:00:00 2001 From: skotlex Date: Fri, 15 Sep 2006 01:02:20 +0000 Subject: - Updated the item_db search functions so that when returning the dummy-item, it first updates the nameid to match the requested one, this prevents pc_additem later on giving you an item with ID 500 instead of the ID requested. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@8764 54d463be-8e91-2dee-dedb-b68131a5f0ec --- src/map/itemdb.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'src/map/itemdb.c') diff --git a/src/map/itemdb.c b/src/map/itemdb.c index 51560f8db..db21927a4 100644 --- a/src/map/itemdb.c +++ b/src/map/itemdb.c @@ -53,6 +53,7 @@ int itemdb_searchjname_sub(int key,void *data,va_list ap) char *str; str=va_arg(ap,char *); dst=va_arg(ap,struct item_data **); + if(item == &dummy_item) return 0; if( strcmpi(item->jname,str)==0 ) *dst=item; return 0; @@ -142,7 +143,9 @@ struct item_data* itemdb_exists(int nameid) struct item_data* id; if (!nameid) return NULL; id = idb_get(item_db,nameid); -// if (id == &dummy_item) return NULL; //Let dummy items go through... technically they "exist" because someone already has them... + //Adjust nameid in case it's used outside. [Skotlex] + if (id == &dummy_item) + dummy_item.nameid = nameid; return id; } @@ -249,6 +252,7 @@ struct item_data* itemdb_load(int nameid) static void* return_dummy_data(DBKey key, va_list args) { if (battle_config.error_log) ShowWarning("itemdb_search: Item ID %d does not exists in the item_db. Using dummy data.\n", key.i); + dummy_item.nameid = key.i; return &dummy_item; } -- cgit v1.2.3-70-g09d2