On fredag, april 5, 2002, at 10:59 , SoulReaper Is here wrote:
> How do i change the autoexits so that it shows even closed doors but
> with a
> # in front of the exit?
This Autoexit code puts all exits with open doors inside (), all exits
with closed doors inside [].
Example:
Exits: north, (east), [south].
A bit Spaghetti code; with some pointless comparisons, but it works!
===== Beginning of Code =====
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 &&
!EXIT_FLAGGED(EXIT(ch, door), EX_CLOSED) && !EXIT_FLAGGED(EXIT(ch, door)
, EX_ISDOOR)) {
if (*buf) {
slen += sprintf(buf + slen, ", ");
}
slen += sprintf(buf + slen, "%s", dirs[door]);
} else if (EXIT(ch, door) && EXIT(ch, door)->to_room != NOWHERE &&
EXIT_FLAGGED(EXIT(ch, door), EX_CLOSED)) {
if (*buf) {
slen += sprintf(buf + slen, ", ");
}
slen += sprintf(buf + slen, "[%s]", dirs[door]);
} else if (EXIT(ch, door) && EXIT(ch, door)->to_room != NOWHERE &&
EXIT_FLAGGED(EXIT(ch, door), EX_ISDOOR) &&
!EXIT_FLAGGED(EXIT(ch, door), EX_CLOSED)) {
if (*buf) {
slen += sprintf(buf + slen, ", ");
}
slen += sprintf(buf + slen, "(%s)", dirs[door]);
}
}
sprintf(buf2, "%sExits: %s.%s\r\n", CCCYN(ch, C_NRM),
*buf ? buf : "None", CCNRM(ch, C_NRM));
send_to_char(buf2, ch);
}
===== End of Code =====
Regards
Måns Sewerin
--
+---------------------------------------------------------------+
| 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