> > That could result in some strange results with the light in
> > r_mortal_start_room. I don't like any of the solutions very much. The
> > equip should be performed after the player has entered a room.. But
> > that would need quite a lot of work. I think I'll stick to plan A.
> > (Just suppressing the error message in equip_char and unequip_char.)
>
> No it couldn't. They're not really in the room, their in_room is
> set, but we don't put them in the room (eg., they are not in the linked
> list of characters in the room). So, it should have no effect except
> eliminating the error codes.
Hmm. The following is taken from handler.c equip_char():
if (ch->in_room != NOWHERE) {
if (pos == WEAR_LIGHT && GET_OBJ_TYPE(obj) == ITEM_LIGHT)
if (GET_OBJ_VAL(obj, 2)) /* if light is ON */
world[ch->in_room].light++;
} else
log("SYSERR: ch->in_room = NOWHERE when equipping char.");
The way I see it world[r_mortal_start_room].light will get screwed.
If it's as you say and nothing gets affected, could you please explain
how that's possible? Is there any difference between
d->character->in_room and ch->in_room or what?
(I tried setting d->character->in_room in interpreter.c before it calls
Crash_load(), but I still got the SYSERR. Haven't figured that one out
yet.. I've followed the code all the way down to the error message
and it just should not be!? *shrug*)
/Per Widerlund, RiftMUD
This archive was generated by hypermail 2b30 : 12/18/00 PST