On Sat, 31 Jan 1998, John Evans wrote:
> I am having a most interesting time with set_fighting. For some reason, it
> likes to crash my MUD without (from what I can tell) rhyme or reason.
[gdb and code snipped]
> I checked my set_fighting vs. stock set_fighting code and they are
> identical exept for the fact that I renamed the IS_AFFECTED macro to
> AFF_FLAGGED to be more consitent with the rest of the macros.
I found the following line at the top of set_fighting():
assert(!FIGHTING(ch));
If you do:
set_fighting(ch, vict);
and ch is already fighting someone that assert() call forced the MUD to
shutdown.
This seemed like a problem to me, so I removed that line and replaced it
with:
if (FIGHTING(ch))
return;
That way nothing harmful happens by interrupting an ongoing fight and the
MUD doesn't get shutdown.
Anyone see anything wrong with this fix?
John Evans <evansj@hi-line.net> -- http://www.hi-line.net/~evansj/
Any sufficiently advanced technology is indistinguishable from magic.
--Arthur C. Clarke
+------------------------------------------------------------+
| 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