MOB_SPEC assignment

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


Not sure why this wasn't done before, but I took out the castle.c file
and of course, since I didn't take out the castle mobs, I got a dozen of
these kind of errors:

Sep 17 17:21:25 :: SYSERR: King Welmar (#15001): Attempting to call
non-existing mob function.

Now, I understand the need to have the MOB_SPEC flag, but I hate having
to change the mob files each time.  So I made some changes to allow for
dynamic assignment.  Basically, if you assign a spec to a mob, it adds
the flag.  To make sure no mobs had flags they shouldn't I also made a
change to remove all flags just in case they were added and not the
specs.

In db.c

right after this line in parse_mobile:
   SET_BIT(MOB_FLAGS(mob_proto + i), MOB_ISNPC);
add this:
   REMOVE_BIT(MOB_FLAGS(mob_proto + i), MOB_SPEC);

In spec_assign.c

change ASSIGNMOB to this

void ASSIGNMOB(mob_vnum mob, SPECIAL(fname))
{
   mob_rnum rnum;

   if ((rnum = real_mobile(mob)) != NOBODY) {
     mob_index[rnum].func = fname;
     SET_BIT(MOB_FLAGS(mob_proto + rnum), MOB_SPEC);
   } else if (!mini_mud)
     log("SYSERR: Attempt to assign spec to non-existant mob #%d", mob);
}

Any thoughts or ideas why it shouldn't be done?

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