[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