View Single Post
  #1  
Old 03-05-2007, 10:35 AM
sfisque
Hill Giant
 
Join Date: Oct 2006
Posts: 248
Default Forage message fix

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;
>
Reply With Quote