On Sat, 30 Mar 1996, Graham Gilmore wrote:
> I want to make some changes to objects and wear locations, so
> that I can implement worn items which cover more than one location (eg: a
> plate armor which covers body, legs, arms, head, etc.). However, I have
> a choice available.
> I can either include pointers in a location structure pointing to
> the next location upon which the object in question is worn. While this
> seems simple, I have also made changes allowing for multiple objects (of
> different kinds) to be worn on the same location; 4 types, to be
> precise. This solution would require 4 different "next" pointers.
> The other solution is simply to have each location in question
> point to the same object. Now this is simpler, but I'm a bit leery of
> having multiple wear locations pointing to one object; I can imagine
> strange events if say I removed the object from one location but forgot
> to remove it from another.... Is this solution as error-prone as it
> seems to be, or should I have no worries about it? My common sense tells
> me the first solution is the way to go, but I've been wrong before. I'd
> rather not stick in the extra 4 pointers per location per character, if I
> don't have to.. I've already inflated the memory requirements for a
> char_data enough as it is :)
What I did for body and 2 handed locations is just make a whole new
location for BODY and 2HANDED, and then in perform_wear() i check if
you're wearing something on arms/legs/chest, if so, you cannot wear body
eq, and if you're wearing body eq you cant wear arms/legs/chest eq, just
a few simple
if ((where == WEAR_BODY) && (GET_EQ(ch, WEAR_ARMS) || GET_EQ(ch, WEAR_LEGS) || GET_EQ(ch, WEAR_CHEST))) {
send_to_char("You are already wearing something on your arms/legs/chest.\r\n", ch);
return;
}
not sure if thats the exact code, but its somewhat like that
This archive was generated by hypermail 2b30 : 12/07/00 PST