Edward J Glamkowski wrote: > 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. IMO, it's a great idea. I think I might implement it in my MUD :). The only thing is that you have to change positions in bitvecter to like, dead, aware, not_aware, sitting (resting=not_aware+sitting), standing (there would be one standing+not_aware, between standing and siting), and various other things you could do with it. Good idea, again. -Axiem -axiem@swbell.net +------------------------------------------------------------+ | 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