Re: NODROP

From: Tseran (Tseran@SubDimension.com)
Date: 09/21/02


I had already fixed this problem about 3 years ago, just never even
noticed I had done it until I went back and looked at the code.  This is
what my perform_drop looks like:

void perform_put(struct char_data *ch, struct obj_data *obj,
                      struct obj_data *cont)
{
   if (GET_OBJ_WEIGHT(cont) + GET_OBJ_WEIGHT(obj) > GET_OBJ_VAL(cont, 0))
     act("$p won't fit in $P.", FALSE, ch, obj, cont, TO_CHAR);
   else if ((IN_ROOM(cont) != NOWHERE) && OBJ_FLAGGED(obj, ITEM_NODROP))
     act("You can't seem to let go of $p!", FALSE, ch, obj, 0, TO_CHAR);
   else {
     obj_from_char(obj);
     obj_to_obj(obj, cont);

     act("$n puts $p in $P.", TRUE, ch, obj, cont, TO_ROOM);

     /* Yes, I realize this is strange until we have auto-equip on rent.
-gg */
     if (OBJ_FLAGGED(obj, ITEM_NODROP) && !OBJ_FLAGGED(cont,
ITEM_NODROP)) {
       SET_BIT(GET_OBJ_EXTRA(cont), ITEM_NODROP);
       act("You get a strange feeling as you put $p in $P.", FALSE,
                 ch, obj, cont, TO_CHAR);
     } else
       act("You put $p in $P.", FALSE, ch, obj, cont, TO_CHAR);
   }
}

--
   +---------------------------------------------------------------+
   | FAQ: http://qsilver.queensu.ca/~fletchra/Circle/list-faq.html |
   | Archives: http://post.queensu.ca/listserv/wwwarch/circle.html |
   | Newbie List:  http://groups.yahoo.com/group/circle-newbies/   |
   +---------------------------------------------------------------+



This archive was generated by hypermail 2b30 : 06/25/03 PDT