Re: Autoequip

From: Per Widerlund (pewi@lysator.liu.se)
Date: 06/02/96


> > 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