Re: positions

From: Edward J Glamkowski (eglamkowski@angelfire.com)
Date: 02/06/99


On Sat, 6 Feb 1999 12:42:16    Richard Glover wrote:
>Having STATE_x is better for more than just MOUNTED.  You should also look
>at putting STATE_SLEEPING, STATE_STUNNED, etc for these.  Since you can be
>sitting and alseep, they should be 2 different things.  You'll just need to
>add in some macros and check throughout the code for checked against GET_POS
>since they use <, >, or = and make the appropriate changes.
>

I just started working on a change over and two things
have occurred to me - one, flying players (AFF_FLYING)
can decidedly be either on the ground (STATE_STANDING)
or in the air (STATE_FLYING), which opens up an
interesting can of worms...  and two (and FAR more
significant), by redefining the POS_x values to
bitvector form, you don't actually need to change much
of the existing code.  Since (1 << 5) is still a
regular number (16), for example:

assume GET_POS(ch) = POS_RESTING

old:
if (GET_POS(ch) > POS_SLEEPING) { blah; } ==>
if (5 > 4) { blah; }

new:
if (GET_POS(ch) > POS_SLEEPING) { blah; } ==>
if ((1 << 5) > (1 << 4)) { blah; } ==>
if (16 > 8) { blah; }

so all the existing checks should still work.
Yes, some changes are still necessary, yes, but it
doesn't totally break everything.



Angelfire for your free web-based e-mail. http://www.angelfire.com


     +------------------------------------------------------------+
     | Ensure that you have read the CircleMUD Mailing List FAQ:  |
     |  http://qsilver.queensu.ca/~fletchra/Circle/list-faq.html  |
     +------------------------------------------------------------+



This archive was generated by hypermail 2b30 : 12/15/00 PST