From 14bdff735de758412712d0c36af2d4a723752dbc Mon Sep 17 00:00:00 2001 From: skotlex Date: Mon, 10 Jul 2006 15:16:20 +0000 Subject: - One closer inspection, removed that clear in itemdb_reload for a foreach call again. And modified itemdb_load to scrap the dummy item entry from the item_db and replace it with proper data for the item. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@7597 54d463be-8e91-2dee-dedb-b68131a5f0ec --- Changelog-Trunk.txt | 3 +++ src/map/itemdb.c | 13 +++++++++++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt index 832868581..9a0a2e797 100644 --- a/Changelog-Trunk.txt +++ b/Changelog-Trunk.txt @@ -4,6 +4,9 @@ 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/07/10 + * One closer inspection, removed that clear in itemdb_reload for a foreach + call again. And modified itemdb_load to scrap the dummy item entry from the + item_db and replace it with proper data for the item. [Skotlex] * itemdb_reload will clear the itemdb before reloading info instead of only clearing the scripts now. [Skotlex] * Some cleaning of skill_castend_pos2, fixed Gospel, and a diff --git a/src/map/itemdb.c b/src/map/itemdb.c index 56b1182b7..ddae6b38a 100644 --- a/src/map/itemdb.c +++ b/src/map/itemdb.c @@ -228,7 +228,16 @@ static void* create_item_data(DBKey key, va_list args) { */ struct item_data* itemdb_load(int nameid) { - return idb_ensure(item_db,nameid,create_item_data); + struct item_data *id = idb_ensure(item_db,nameid,create_item_data); + if (id == &dummy_item) + { //Remove dummy_item, replace by real data. + DBKey key; + key.i = nameid; + idb_remove(item_db,nameid); + id = create_item_data(key, NULL); + idb_put(item_db,nameid,id); + } + return id; } static void* return_dummy_data(DBKey key, va_list args) { @@ -1193,7 +1202,7 @@ static int itemdb_final_sub (DBKey key,void *data,va_list ap) void itemdb_reload(void) { // free up all item scripts first - item_db->clear(item_db, itemdb_final_sub, 0); + item_db->foreach(item_db, itemdb_final_sub, 0); itemdb_read(); } -- cgit v1.2.3-70-g09d2