A feeding filter
Parameters: "s" = signed; "u" = unsigned; "b" = boolean; "r" = readonly
0 - b - perform feeding; Set false to abort the feeding and do absolutely nothing.
1 - ur - character index; 0 to 3;
2 - ur - object database number; 10=misc; 8=potion;
3 - ur - object type; See Object Type Numbers.
4 - ur - object ID.
5 - s - foodValue; Food value to be added.
6 - s - waterValue; Water value to be added.
7 - ur - potion type; See Potion Type Numbers. (-1 if not potion)
8 - ur - potion strength
9 - s - strength adjustment;
10 - s - dexterity adjustment
11 - s - wisdom adjustment
12 - s - vitality adjustment
13 - b - antiVenin
14 - s - stamina adjustment
15 - u - shield strength adjustment
16 - u - shield duration
17 - s - mana adjustment
18 - s - hitpoint adjustment
19 - u - heal count
20 - b - empty flask. Remove Potion from Flask or water from Waterskin.
21 - b - empty hand. Remove the object from hand and delete from dungeon.
22 - b - chew
23 - s - swallow sound. Usually 8. Set to -1 to make no sound.
24 - ur - Party location
25 - s - antiMagic Adjust
26 - s - antiFireAdjust
Parameter #19 is a bit strange. A healing potion causes 'ouches' to disappear.
The code clears random 'ouches' locations. It will try this several times until at least
one 'ouch' is removed or until this count is reached. So if you set this count
to zero then no 'ouches' will be removed. Setting it to one give a small chance
that 'ouches' will be removed. Setting it to 10 will make the probability almost
certain.
Parameter #20 controls whether a waterskin has water removed from it and whether
a potion is converted to an empty flask. This is initially <true> for Potions or non-emtpy Waterskins. If you set
it <false> (zero) then the waterkin or potion can be used again.
Parameter #21 controls whether the object will disappear. This in normally
<true> for food items and <false> for potions and waterskin.
It works generally like this:
1) The parameters are cleared.
2) The normal feeding process is executed. The big differences are that no changes
are made to the character or to the object fed to the character.
Instead, the changes that would have been made are recorded in the parameters.
3) The Feeding Filter is executed.
4) The parameters are applied to the character and to the object.