[CF List] problem with some diseases

Mark Wedel mwedel at sonic.net
Thu Jul 11 23:07:36 CDT 2002


Peter Mardahl wrote:
>
     
      So what you're saying is, in the archetypes file,
     
     >
     
      allow things like
     
     >
     
      "damage_adjusted_by_caster_level 1",
     
     >
     
      and then have the archetype reading code,
     
     >
     
      based on what type of thing it's reading,
     
     >
     
      translate that into the appropriate in-code
     
     >
     
      parameter change, such as making the damage negative?
     
     >
     
     
     >
     
      Well, you do gain clarity from the archetype writer's point
     
     >
     
      of view, at the expense of enormously more complicated
     
     >
     
      archetype file parsing and maintenance.  The way the loader
     
     >
     
      works right now just wouldn't support such functionality,
     
     >
     
      it'd have to be rewritten and would have to do two passes
     
     >
     
      through each object, one to figure out its type, and the
     
     >
     
      second to interpret all the parameters specific to that
     
     >
     
      type.
     
     
  Or ordering of values in the archetype field itself becomes important (eg, 
type must be specified before anything that depends on type.)

  I will note that the disease bug in question would probably still have occured 
even with such code.

  However, if the names are unique for all objects, this is pretty easy to do - 
now just the saver is more complex (ok, this is a disease, and hp is negative, 
so we save it as hd_ajuster_percent) or something like that.

  I believe Bob Tanner actually did some experimentation to have crossfire use 
XML for its object format.  Making such a switch would be a big change.


>
     
      I think someone else's suggestion (Andrew's I think) of
     
     >
     
      a front-end like crossedit providing boxes like "LOCKCODE"
     
     >
     
      where you type in a number, and then setting "value" or whatever
     
     >
     
      in the archetypes makes
     
     >
     
      sense and doesn't force a  change to the existing code,
     
     >
     
      though THAT has to be maintained too.
     
     
  Yep.

Certainly the documentation is wanting.  But at least for many of these newer 
things, like diseases, there is clear documentation which describes the inner 
workings.

  The problem, and cause of most obscure bugs, are things like last_heal getting 
used to store permanent experience.  Would be much better if that was simply 
called perm_exp or something.  No one probably knows every variable meaning and 
how the value works with the object, so if your going through doing a big 
update, some of these are going to mess you up, whether they are called slaying 
or path_to_map in the arch file - if they are all called slaying in the object, 
that creates confusion.




    
    


More information about the crossfire mailing list