if (real_mobile(mob) >= 0) mob_index[real_mobile(mob)].func = fname; This is really redundant, it should be saved to a variable. Now I realize why the post months ago about real_* caching worked so well. A patch for it (soon to be on my page): diff -uprN ../stk/spec_assign.c ./spec_assign.c --- ../stk/spec_assign.c Thu Jun 19 00:58:38 1997 +++ ./spec_assign.c Tue Sep 9 23:30:55 1997 @@ -26,8 +26,10 @@ extern struct index_data *obj_index; void ASSIGNMOB(int mob, SPECIAL(fname)) { - if (real_mobile(mob) >= 0) - mob_index[real_mobile(mob)].func = fname; + int rnum; + + if ((rnum = real_mobile(mob)) >= 0) + mob_index[rnum].func = fname; else if (!mini_mud) { sprintf(buf, "SYSERR: Attempt to assign spec to non-existant mob #%d", mob); -- George Greer - Me@Null.net | Genius may have its limitations, but stupidity http://www.van.ml.org/~greerga | is not thus handicapped. -- Elbert Hubbard +------------------------------------------------------------+ | 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