> > I'm having difficulty determining how to express something. Essentially
I
> > want to be able to check zone information before movement. So say if a
> > zone is numbered less than 100 someone can walk in as a mortal, but over
> > 100 they can't. Or say if the zone top number is over 10000 they can't.
> > Or whatever.
> >
>
> if (world[IN_ROOM(ch)].zone < the_zonenumber_you_wanna_use_here) {
> do somthing;
> return 0;
> }
[-snip-]
Actually, the zone member of the room_data structure is a zone_rnum, if
memory
serves. Furthermore, this check needs to be done when the character is
actually
moved in the given direction. What you probably intended was something along
the lines of:
/*
* do_simple_move() assumes that an exit exists in the indicated direction,
and
* that said direction (and exit) is indeed completely valid. If such an
assumption
* could not be made, we would need additional checks (probably before) this
* one. I would *personally* put this code right after the boat check.
*/
if (zone_table[world[EXIT(ch, dir)->to_room].zone].number < lower_bound ||
zone_table[world[EXIT(ch, dir)->to_room].zone].number > upper_bound) {
do_something();
return (0);
}
-Geoff
--
+---------------------------------------------------------------+
| FAQ: http://qsilver.queensu.ca/~fletchra/Circle/list-faq.html |
| Archives: http://post.queensu.ca/listserv/wwwarch/circle.html |
| Newbie List: http://groups.yahoo.com/group/circle-newbies/ |
+---------------------------------------------------------------+
This archive was generated by hypermail 2b30 : 06/25/03 PDT