Bug in stock circle?

From: Paul Siegel (pmsie@CONNCOLL.EDU)
Date: 03/20/98


Well, after hashing out that error I got when I added multiple attacks
in the violence loop of fight.c, I noticed something that may be a bug in
the stock code, but I'm not sure.  In the beginning of the damage
procedure, the code to make sure you're not hitting someone who's already
dead is:

if (GET_POS(victim) <= POS_DEAD) {
    log("SYSERR: Attempt to damage a corpse.");
    die(victim);
    return;                     /* -je, 7/7/92 */
  }

Well, as I found out the hard way, this code won't ever be called.  When
the violence loop is entered, if the code attempts to call the hit
procedure on a victim who is already dead, the system crashes.  Shouldn't
then the afformentioned code exist somewhere much earlier?  Perhaps in the
violence procedure itself?  I'm not too sure, maybe this code does catch
something, but my debugging certainly would have been easier if that
syserr had actaully appeared in my syslog.

Paul


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