Re: NEWBIE[CODE] making a new macro for spell types

From: Christopher Daly (
Date: 03/19/00

-----Original Message-----
From: Ron Martin <>
Date:         Sun, 19 Mar 2000 21:24:28 -0500
Subject: Re: [CIRCLE] NEWBIE[CODE] making a new macro for spell types

> > --<SNIP>--
> > #define GET_LEVEL(ch)   ((ch)->player.level)
> >
> > What i don't get is where does ch come in? i know it is a structure
> of
> --<SNIP>--
> #defines simply tell the preprocessor to expand certain text to other
> things.  I'm sure that clears it up, so later.
> Just kidding!!!!  The above example tells the computer to change all
> instances of "GET_LEVEL(ch)" to "((ch)->player.level)".  The "ch"
> could
> be replaced by "x" or "character_player".  It just acts as a place
> holder, in a way.  Whenever you put in your code
> some_integer = GET_LEVEL(some_character);
> it turns into:
> some_integer = ((some_character)->player.level);

I looked up structure pointer operators in my C book and it
said that the value to the left of the operator was a pointer
declared to point to a structure, and the value on the right
was actually a name of a member of that structure....

I know i'm missing something, but there are no structures named
ch...there is no member called player...and i would think that
if ch was somehow initialized to point to struct char_data
you could just write  ch->level...

I know i'm wrong, but i can't for the life of me figure out how...
i'm sure once i get it, the code will become that much clearer...
Any help would be appreciated...

ASk one question and all of a sudden you got ten new ones, and you're
11 behind :)

     | Ensure that you have read the CircleMUD Mailing List FAQ:  |
     |  |

This archive was generated by hypermail 2b30 : 04/10/01 PDT