On Sat, 6 Apr 2002, Moppe Sewerin wrote:
> A bit Spaghetti code; with some pointless comparisons, but it works!
Yikes, you weren't kidding about that. It's nearly a maintainence
nightmare. A quick, untested revision:
void
do_auto_exits ( struct char_data *ch )
{
int door, slen = 0;
*buf = '\0';
for ( door = 0; door < NUM_OF_DIRS; door++ )
{
if ( EXIT(ch, door) && EXIT(ch, door)->to_room != NOWHERE )
{
if ( *buf != '\0' )
slen += sprintf(slen + buf, ", ");
if ( !EXIT_FLAGGED(EXIT(ch, door), EX_ISDOOR) )
slen += sprintf(slen + buf, "%s", dirs[door]);
else if ( EXIT_FLAGGED(EXIT(ch, door), EX_CLOSED) )
slen += sprintf(slen + buf, "[%s]", dirs[door]);
else
slen += sprintf(slen + buf, "(%s)", dirs[door]);
}
}
sprintf(buf2, "%sExits: %s.%s\r\n", CCCYN(ch, C_NRM),
(*buf != '\0' ? buf : "None", CCNRM(ch, C_NRM));
send_to_char(buf2, ch);
}
-dak
--
+---------------------------------------------------------------+
| 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