[CODE] perform_immort_invis bugfix

From: Andrey Fidrya (andrey@alex-ua.com)
Date: 02/19/00

>        Actually, I did this, and I'm pretty sure I even posted the
>snippet to do so on the list after having some problems with mobs that
>were spec_proc'ed killing or otherwise removing themselves from the game.
>I don't think I heard any feed back from it though...
>letseee..for info, examine

It's very elegant solution! (Creating list of mobiles and pulling off the
mobiles from this list in extract_char())
Probably I'll use it in mobile_activity() in my MUD.
My idea with additional flag isn't too good for mobile_activity() because
there are too many members in list (thousands) and if you have to start
from beginning every time, it can reach num_of_mobiles^2 iterations.
Do_order & perform_immort_invis is different case - usually there
are only few chars in room and its simplier to just mark them in first
cycle and analyse marks in second cycle (starting from beginning
of list each time major action is performed).

To George:
I suggest fixing these bugs by rewriting mobile_activity() using ideas from
and adding my fix with double loop to do_order & perform_immort_invis

>only requires a bit more memory to make a character list, and that
>character list is then reversed each time it is read out.

It's not necessarily reversed. Just add new members to the end
of secondary list (we can keep pointer to last mobile added).


p.s. To All: Please consider my bugfixes in code section of
bugs.circlemud.org - maybe anyone have better solution?

p.s. Sorry for my English. =(
My native lng is Russian.

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

This archive was generated by hypermail 2b30 : 04/10/01 PDT