While making a new patch recently, I noticed that the 'enchant
weapon' spell was a little funny looking... Though I don't have the code
directly infront of me, I do seem to remember seeing something that looked
like this:
for (i = 0; i < MAX_OBJ_AFFECT; i++)
if (obj->affected[i].location != APPLY_NONE)
return;
Which reads to me as:
Return unless the first spot is free.
Shouldn't this be something more like:
for (i = 0; i < MAX_OBJ_AFFECT && obj->affected[i].location != APPLY_NONE; i++);
if(i == MAX_OBJ_AFFECT)
return;
Which reads something more like 'find the first free spot. If none
are free, then return'.
To get more specific, it should look for 2 free spots, since
enchant weapon uses 2 affected spots, one for hit, one for damage...
And to get even more nitpicky, the obj->affected[].location/modifer
lines below should use i and i+1, not 0 and 1.. else.. it will always
overwrite the first affection. Not a problem with the current way its put
in, but thats cause you can't enchant an item with any previously existing
affectations...
PjD
+------------------------------------------------------------+
| Ensure that you have read the CircleMUD Mailing List FAQ: |
| http://qsilver.queensu.ca/~fletchra/Circle/list-faq.html |
+------------------------------------------------------------+
This archive was generated by hypermail 2b30 : 12/15/00 PST