i'm attaching a diff that we use. it appears to fix (have not found a case where it does not) the issue where some foraged items echo the "inedible" message even though they are actually clickable food items. this uses a hack that assumes items NEVER have their high bit set, since i set the high bit so that the parent method can extract the info and echo the appropriate message. FNW (and company) may have a better fix for this when the tradeskill revisions go live.
Code:
Index: zone/forage.cpp
===================================================================
RCS file: /home/cvs/EQEmu-0.7.0-934/zone/forage.cpp,v
retrieving revision 1.1.1.1
diff -r1.1.1.1 forage.cpp
100c100,102
< if (RunQuery(query, MakeAnyLenString(&query, "SELECT itemid,chance FROM forage WHERE zoneid= '%i' and level <= '%i' LIMIT %i", ZoneID, skill, FORAGE_ITEM_LIMIT), errbuf, &result))
---
> if (RunQuery(query, MakeAnyLenString(&query,
> "SELECT forage.itemid, forage.chance, items.itemtype FROM forage, items WHERE zoneid= '%i' and level <= '%i' and items.id = forage.itemid LIMIT %i",
> ZoneID, skill, FORAGE_ITEM_LIMIT), errbuf, &result))
104a107,111
>
> if( atoi( row[ 2 ] ) == 14 )
> {
> item[ index ] |= 0x80000000;
> }
369a377,382
> if( foragedfood & 0x80000000 )
> {
> stringid = FORAGE_FOOD;
> }
> foragedfood &= 0x7fffffff;
>