Here's the Duris method.... /* these two work together to give us many possible positions. */ /* postures */ #define POS_PRONE 0 #define POS_KNEELING 1 #define POS_SITTING 2 #define POS_STANDING 3 #define NUM_POSITIONS 4 /* status */ #define STAT_DEAD BIT_3 #define STAT_DYING BIT_4 #define STAT_INCAP BIT_5 #define STAT_STUNNED STAT_INCAP #define STAT_SLEEPING BIT_6 #define STAT_RESTING BIT_7 #define STAT_NORMAL BIT_8 #define STAT_MASK (BIT_9 - 4) #define GET_POS(ch) ((ch)->char_specials.position & 3) #define GET_STAT(ch) ((ch)->char_specials.position & STAT_MASK) #define MIN_POS(ch, v) \ ((GET_POS(ch) >= (ubyte)((v) & 3)) && \ (GET_STAT(ch) >= (ubyte)((v) & STAT_MASK))) #define SET_POS(ch, v) ((ch)->char_specials.position = (ubyte)(v) Enjoy.... Erik Madison ICQ #13940294 www.greyhawk.org fafhrd@greyhawk.org >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. > >Rick > >-----Original Message----- >From: Edward J Glamkowski <eglamkowski@angelfire.com> >To: CIRCLE@post.queensu.ca <CIRCLE@post.queensu.ca> >Date: Friday, February 05, 1999 4:47 PM >Subject: positions > > >>Having just added mounts to my mud, I added in a >>POS_MOUNTED to allow for certain skills that can be >>used only from horseback (e.g. a jousting skill). >>To this end, I am thinking of making fighting a state >>instead of a position so I can have players engaged >>in combat while remaining mounted. >> >>But before I do this, I would like to hear opinions on >>making such a change. The alternative would be to >>create an additional position POS_MOUNTED_FIGHTING >>and everywhere it currently checks for POS_FIGHTING >>have it also check for POS_MOUNTED_FIGHTING. > > > +------------------------------------------------------------+ > | Ensure that you have read the CircleMUD Mailing List FAQ: | > | http://qsilver.queensu.ca/~fletchra/Circle/list-faq.html | > +------------------------------------------------------------+ +------------------------------------------------------------+ | 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