[Circle] Crumble Obj bug

From: Haddixx (haddixx@megamed.com)
Date: 07/31/96


I'm having a problem with a function that is supposed to crumble and
object after the timer expires.  What happens is if a character is wield
or wearing an item that is supposed to be crumbled the MUD crashes.  If
it is just in the inventory or in the room, no crash.  I have been able
to track down the line that is causing the mud to crash but I don't
understand why or how to fix it.

void crumble_obj(struct char_data *ch, struct obj_data *obj)
{
   struct obj_data *loop;
   int index;
   char debug[80];
   
   if (obj->in_room != NOWHERE)   /* In a room */
   {              
      if (world[obj->in_room].people) 
      {
         act("A quivering horde of maggots consumes $p.",
           TRUE, world[obj->in_room].people, obj, 0, TO_ROOM);
         act("A quivering horde of maggots consumes $p.",
           TRUE, world[obj->in_room].people, obj, 0, TO_CHAR);
	   
         for(loop = obj->contains; loop; loop = obj->contains) 
	 {
            obj_from_obj(loop);
            obj_to_room(loop, obj->in_room);
         }
      }
   } 
   else if(!obj->in_obj)  /* Worn or inventory */
   {                  
      act("$p decays in your hands.", FALSE, ch, obj, 0, TO_CHAR);
      for(loop = obj->contains; loop; loop = obj->contains) 
      {
         obj_from_obj(loop);
         obj_to_char(loop, ch);
      }
      if (!obj->carried_by)
      {
         for(index = 0; index < NUM_WEARS; index++)
	 {
----------->if(GET_EQ(ch, index) && ch->equipment[index] == obj)
crash       {
here	      obj = unequip_char(ch, index);   
	    }
	 }    
      }	      
   } 

  It crashes when checking if an item is at any of the wear locations. 
I guess it checks the first wear location (lightsource if memory serves
me) and gets a segmentation fault because nothing is there?  Does anyone
know how to fix this problem?

-Brian


-- 
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Haddixx             |   -=-=-Implementor of Avalanche MUD-=-=-    |   
+ Brian M. Menges     + Running at: 143.207.31.45 8000              +
| haddixx@megamed.com |   Web Page: http://www.megamed.com/~haddixx |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+-----------------------------------------------------------+
| Ensure that you have read the CircleMUD Mailing List FAQ: |
|   http://cspo.queensu.ca/~fletcher/Circle/list_faq.html   |
+-----------------------------------------------------------+



This archive was generated by hypermail 2b30 : 12/07/00 PST