Hi, Jeremy!
I wrote a msg about removing MOB_ISNPC==PLR_DONTSET hack some time ago.
Now I tried to do it. I changed #define IS_NPC in utils.h to:
#define IS_NPC(ch) ((ch)->pfilepos == -1)
and changed free_char() in db.c slightly:
1) Commented out this block:
/*
if (IS_NPC(ch))
log("SYSERR: Mob %s (#%d) had player_specials allocated!", ......
*/
2) Changed these two lines:
if (!IS_NPC(ch) || (IS_NPC(ch) && GET_MOB_RNUM(ch) == -1)) {
/* if this is a player, or a non-prototyped non-player, free all */
TO:
if (GET_MOB_RNUM(ch) == -1) {
/* only players and non prototyped mobiles have ch->nr == -1, so free all */
Now everything works great!
Btw, circle.exe became 20 kb (!!!) smaller after recompiling.
What do you think about changing this in stock Circle?
Andrey (andrey@alex-ua.com)
aka Zmey//RMUD
+------------------------------------------------------------+
| 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/15/00 PST