Re: [CODE] IS_CLASS function

From: krenshala (
Date: 12/11/01

From: Artovil <artovil@ARCANEREALMS.ORG>

> At 09:07 2001-12-11 -0500, Carlos Myers wrote:
> >From: "krenshala" <krenshala@JUMP.NET>
> > > I am currently looking at limits.c and noticed that checks for a
> >particular
> > > class are handled via IS_<CLASS>(ch) (e.g., IS_CLERIC(ch)).  I also
> >that
> > > checks for particular AFF bitvectors are accomplished through the
> > > AFF_FLAGGED(ch,<FLAG>) function.
> > >
> > > Has anyone (aside from me :) considered coding an IS_CLASS(ch,<CLASS>)
> > > function that can replace the IS_<CLASS>(ch) functions?  I would think
> >this
> > > make a nice simplification of the existing code.
> >
> >The problem I have with this is I think that will make things _harder_ to
> >read and understand.
> >
> >Let's compare:
> >
> >     if (IS_MAGIC_USER(ch))
> >         send_to_char("You are a magic user", ch);
> >
> >to:
> >
> >     if (IS_CLASS(ch, CLASS_MAGIC_USER))
> >         send_to_char("You are a magic user", ch);
> >
> >Now tell me.  Which of those two arguments do you find easier to
> >
> >Carlos

If you check my next post you see that I come to a similar conclusion. :/

> Have to reply.  Actually, I find the second version easier to understand;
> which depends on what you are used to I guess.  The reason as to why the
> latter macro would be good could be that he does not want to modify
> AND structs.h every time he adds/removes/changes a class?  Perhaps lazy,
> but it has a point, since the utils.h file is included in every large file
> in the mud, and on some puters that takes ages to compile (but since he
> changes both files it doesn't really matter, yes).  It's just a layout
> issue I guess.
> The first version requires a macro for every class, which is kind of
> redundant.  The second version only requires the actual defines in
> structs.h and the macro in utils.h to work, plus it is easier to do a grep
> on IS_CLASS() than on every darn class there is.
> I have about 10 different magic classes in my MUD, which "forced" me to
> make a macro, IS_MAGI(ch) so that I could check if they were a magic user
> or something else.  This is useful with checks for spells, potions, and
> other things, at least for me.  That is a bad thing, since I have to
> both structs.h and utils.h whenever I decide to change the layout of my
> classes (which doesn't happen very often, of course).  I'd rather have the
> second version here if I could. :)
> Just my two cents...
> Regards,
> /Torgny

This is the situation I was invisioning when I thought of it.  And in the
next post I -do- mention that it would only really help if you plan to have
a large number of classes.


Larry Robinson

   | FAQ: |
   | Archives: |
   | Newbie List:   |

This archive was generated by hypermail 2b30 : 06/24/03 PDT