Re: Autoexits problem

From: Ben Merton (ben@adventec.com.au)
Date: 09/08/02


Unfortunately this gets me back into the original problem I had with
autoexits, that being with this snippet there will always be a comma at the
end of the exits string. Therefore you end up with:

Exits: North, East, West,.

That was the main reason we had the flagged section was so we could have a
version with comma's and the final value without.

Any suggestions for this would be greatly appreciated :) Thanks for your
help so far!!

Ben

>Your problem is simple. Your flag variable is causing problems and, is
>actually, quite useless. Here, I'll rewrite your code:
>
>void do_auto_exits(struct char_data * ch)
>{
>   int door;
>
>   *buf = '\0';
>
>   for (door = 0; door < NUM_OF_DIRS; door++)
>     if (EXIT(ch, door) && EXIT(ch, door)->to_room != NOWHERE) {
>       if (IS_SET(EXIT(ch, door)->exit_info, EX_CLOSED))
>         sprintf(buf + strlen(buf), " %s(Closed),", capdirs[door]);
>       else
>         sprintf(buf + strlen(buf), " %s,", capdirs[door]);
>     }
>   sprintf(buf2, "&cExits:%s.&n\r\n", ((*buf) ? buf : " None"));
>
>---- End Snippet ----
>
>How clean does that look? Your color code in there is pointless as well.
>Just have it in there at the last line. Shortens the buffer a bit too.

--
   +---------------------------------------------------------------+
   | 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