summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorskotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec>2006-09-15 01:02:20 +0000
committerskotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec>2006-09-15 01:02:20 +0000
commitb1f5b70e91b07c8b9924a157029f227d2c3e2f1b (patch)
tree2830424b08147799a7f19e6183dce8cba4ca139f
parent1d94beb331ab25e52ee2e663db2e353e7dff53f2 (diff)
downloadhercules-b1f5b70e91b07c8b9924a157029f227d2c3e2f1b.tar.gz
hercules-b1f5b70e91b07c8b9924a157029f227d2c3e2f1b.tar.bz2
hercules-b1f5b70e91b07c8b9924a157029f227d2c3e2f1b.tar.xz
hercules-b1f5b70e91b07c8b9924a157029f227d2c3e2f1b.zip
- 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
-rw-r--r--Changelog-Trunk.txt4
-rw-r--r--src/map/itemdb.c6
2 files changed, 9 insertions, 1 deletions
diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt
index 54e510b6f..22f9efc76 100644
--- a/Changelog-Trunk.txt
+++ b/Changelog-Trunk.txt
@@ -4,6 +4,10 @@ AS OF SVN REV. 5091, WE ARE NOW USING TRUNK. ALL UNTESTED BUGFIXES/FEATURES GO
IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK.
2006/09/14
+ * 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. [Skotlex]
* Added a clif_skill_nodamage packet when using Repair Weapon, just to see
what happens. [Skotlex]
* Likely fixed "half" of the alliance being saved, which ends up in guilds
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;
}