/*========================================== * Loads (and creates if not found) an item from the db. *------------------------------------------*/ struct item_data* itemdb_load(int nameid) { struct item_data *id; if( nameid >= 0 && nameid < ARRAYLENGTH(itemdb_array) ) { id = itemdb_array[nameid]; if( id == NULL || id == &dummy_item ) id = itemdb_array[nameid] = create_item_data(nameid); return id; } id = (struct item_data*)idb_get(itemdb_other, nameid); if( id == NULL || id == &dummy_item ) { id = create_item_data(nameid); idb_put(itemdb_other, nameid, id); } return id; }
/*========================================== * Loads (and creates if not found) an item from the db. *------------------------------------------ */ struct item_data* itemdb_load(int nameid) { 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; }