Autoeq patch

From: Zizazat Lazuras (zizazat@INAV.NET)
Date: 08/24/97


I had added an autoeq patch (from the FTP site) awhile back, and it seemed
to be fine, but now when some characters are loging in it crashes.

The syslog says this:
circle: handler.c:528: unequip_char: Assertion `((ch)->equipment[ pos])'
failed.

But gdb gives me this:
#0  0x40071159 in __kill ()
#1  0x4004041d in gsignal ()
#2  0x807c446 in Crash_load (ch=0x823b148) at objsave.c:536
#3  0x8076847 in nanny (d=0x825fe00, arg=0xbffff86c "1") at
interpreter.c:1577

The fragment from objsave looks like this:

          if (cont_row[0]) { /* content list existing */
            if (GET_OBJ_TYPE(obj) == ITEM_CONTAINER) {
              /* rem item ; fill ; equip again */
              obj = unequip_char(ch, locate-1);
              obj->contains = NULL; /* should be empty - but who knows */
              for (;cont_row[0];cont_row[0] = obj1) {
                   1 = cont_row[0]->next_content;
                obj_to_obj(cont_row[0], obj);
              }
              equip_char(ch, obj, locate-1);

So I am guessing that the char comming into the game has a backpack
equipped with items in it. (I have a backpack slot I added to wear_pos).
Is it passing a -1 somewhere? I do not understand this code very much.

The assert from handler is this, BTW:
  assert(GET_EQ(ch, pos));

--Ziz, NetShamen
Eternal Empire MUD
empire.zonenet.net 2000


     +------------------------------------------------------------+
     | Ensure that you have read the CircleMUD Mailing List FAQ:  |
     | http://democracy.queensu.ca/~fletcher/Circle/list-faq.html |
     +------------------------------------------------------------+



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