[CF-Devel] archetype bug - current cvs unplayable

Jan Echternach echter at informatik.uni-rostock.de
Thu Nov 23 15:49:30 CST 2000


On Thu, Nov 23, 2000 at 01:03:55PM -0800, Peter Mardahl wrote:
>
     
      Whatever the problem is, it is pretty  subtle if it is in 
     
     >
     
      the spell code.
     
     
I think I've found the bug:  FLAG_BERSERK was added and NUM_FLAGS
increased, but not all places that use NUM_FLAGS were updated!  One
place is get_ob_diff(), I don't know if there are others.  Please use
'grep' and examine _all_ places - that's the best method to prevent
such bugs (and to fix lots of other bugs as a side effect).

The effect in get_ob_diff() is that whenever an object's FLAG_ALIVE
differs from its archetype's FLAG_ALIVE and the object is written to a
temporary map file, an "Object 0" or "Object 1" line is written to the
file.  When such a map is read back the archetype's name is destroyed.
Easiest way to reproduce:  Cast a "build lighning wall".  But there
could also be maps that alter an objects FLAG_ALIVE.

>
     
      2)  Lack of "poison fog" archetype.  This SHOULD only have effect if
     
     >
     
      someone casts "poison fog":  however, "poison fog" is disabled.
     
     >
     
      Maybe the failed search for this archetype sets up the heisenbug?
     
     >
     
      Reviewing THIS code, I doubt it as well.
     
     
Looks harmless, even though it causes an annoying error message that
activates the debugger everytime the server is started.

-- 
Jan

    
    


More information about the crossfire mailing list