On Wed, 9 Jan 2002, Karl B Buchner wrote:
>void look_in_direction(struct char_data * ch, int dir){
>        room_rnum original = IN_ROOM(ch);
>        char_from_room(ch);
>        char_to_room(world[original].dir_option[dir].to_room)
>        look_at_room(ch);
>        char_from_room(ch);
>        char_to_room(original);
>}
Ewwww! *gag*
Wouldn't it be better to just do:
void look_in_direction(struct char_data *ch, room_rnum room, int dir)
{
  /* Perhaps you want to sanity check the arguments too? */
  struct room_direction_data *rdata = world[room].dir_option[dir];
  if (rdata) {
    if (rdata->general_description)
      send_to_char(rdata->general_description, ch);
    else
      send_to_char("You see nothing special.\r\n", ch);
    if (EXIT_FLAGGED(rdata, EX_CLOSED) && rdata->keyword) {
      sprintf(buf, "The %s is closed.\r\n", fname(rdata->keyword));
      send_to_char(buf, ch);
    } else if (EXIT_FLAGGED(rdata, EX_ISDOOR) && rdata->keyword) {
      sprintf(buf, "The %s is open.\r\n", fname(rdata->keyword));
      send_to_char(buf, ch);
    }
  } else
    send_to_char("Nothing special there...\r\n", ch);
}
(The astute will notice I basically just replaced "EXIT(ch, dir)" with
"rdata".)
--
George Greer
greerga@circlemud.org
--
   +---------------------------------------------------------------+
   | 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