Bug in sedit (OasisOLC 2.0.x)

From: Thomas Arp (t_arp@stofanet.dk)
Date: 02/17/03


in sedit_parse (case SEDIT_KEEPER)
...
    S_KEEPER(OLC_SHOP(d)) = i;
    if (i == -1)
      break;
    /*
     * Fiddle with special procs.
     */
-    S_FUNC(OLC_SHOP(d)) = mob_index[i].func;
+    S_FUNC(OLC_SHOP(d)) =
+         mob_index[i].func != shop_keeper ? mob_index[i].func : NULL;
    mob_index[i].func = shop_keeper;
    break;
  case SEDIT_OPEN1:
    S_OPEN1(OLC_SHOP(d)) = LIMIT(atoi(arg), 0, 28);
...

(Line break because of mail limits)

Otherwise this will cause recursion in shop.c:SPECIAL(shop_keeper)

Welcor

--
   +---------------------------------------------------------------+
   | 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/26/03 PDT