Re: BUG report

From: Daniel W. Burke (dwb@ix.netcom.com)
Date: 08/18/95


>On Thu, 17 Aug 1995, Daniel W. Burke wrote:
>
>> same for detect invis potions also.... appears to be a general bug 
with 
>> durations......
>> 
>> hmm..... what's the number range for sh_int?   if it's not that 
high, 
>> the when it hits the limit it will go negative..... maybe for 
>> duration's a MAX duration has to be defined somewhere....
>
>sh_int is typedef'ed as an unsigned short integer.  I'm no C guru so I 

>don't know exactly what this will look like in practice, but if you 
>assume an integer is 16 bits, then a short int would be 8 bts.  The 
>unsigned part has me a little puzzled, but since negative values are 
used 
>in the code, that sign has to come from somewhere, so knock off one 
more 
>bit for the sign.  What you've got left is 7 bits for a maximum value 
of 
>127 before you run into negative values.
>
>Solution?  Setting a max duration as stated above seems to be the best 

>way to handle it.  You could also make duration a regular int, though 
>this may cause problems (I believe you'd have to change the 
pfiles...ugh).
>Setting a limit wouldn't be tough.  Just add a little routine in like:
>
>if (duration < -1) duration = 127;
>
>That would take advantage of the fact that 127 + 1 = -128 if my theory 
is 
>correct.
>
>Sam
>

I'm not sure about 127 being the positive limit.... I seem to remember 
seeing durations around 200.....



This archive was generated by hypermail 2b30 : 12/18/00 PST