[CF-Devel] bug in mutliparts (RE: warrior prooving tower)

Andreas Vogl andi.vogl at gmx.net
Mon Aug 13 06:20:31 CDT 2001


>
     
      The pentagrams at /mak/chaos/down5 and /mak/chaos/up5 are broken. The
     
     >
     
      pentagrams did not teleport me anywhere,even after i dropped the required
     
     >
     
      items. I tried this quest a few other times,but i each time,the pentagrams
     
     >
     
      do not teleport me anywhere. The pentagram still takes my items,but does
     
     >
     
      not teleport me anywhere. Could other pentagrams be broken as well,or is
     
     >
     
      it just the warrior tower. Please fix this soon,i really want to fight
     
     >
     
      lorkas.
     
     
Joel S. is pointing out to a serious bug in the way multipart
objects are handled today.
All multisquare teleporters seem to be broken apparently. Even more,
*all* multisquares behave strangely different than they used to.

The reason is that the handling of multipart objects has been changed
fundamentally. Here is an excerpt of "crossfire/doc/map-techical.txt"
(a formidable docu btw.):
  "Multipart objects pose a tricky problem, in that they have to
  appear together in the map file - this makes proper handling of
  layers hard to deal with.
  In old map code, all the single spaces objects were saved, and
  then all the multi part objects were saved.  This effectively
  means that the multi part objects always ended up on top. [...]

  Current code now only saves the head of the object.  When the map is
  loaded, the objects on the map are examined to see what objects need
  to have more objects added on.  Additional parts linked in are put
  just above floor level when linked in, [...]

  The effect of saving only the head does have the effect of not being
  able to customize the non head parts of the object. [...]"

The problem is, that in several cases, all the multisquare objects
(not only the head) need to have certain attributes set in order to
work as they should do. But since only the head is saved, these
attributes are now missing in the other parts.
E.g. to make a multipart invisible, all parts need "invisible 1".
To make it blockable, all parts need "no_pass 1". To make it
work as a teleporter, all parts need the connected and path attributes.
All this is is broken currently.

I think the best solution to this problem would be to make the
code look at the head only, whenever there is a multipart object
to be dealt with. This is already the case for most attributes
(like monster stats) and should be extended to the rest.
Besides, it might be a good idea to place monster multis always ontop
of non-alive multis at map-loading, in order to make multi-teleporters
work.

Andreas V.


    
    


More information about the crossfire mailing list