I have put in another flag on doors, EX_SECRET, where it will make a secret
door. I have made it so when you enter a room with a secret door, it will NOT
show up on the autoexits, nor will it tell you the secret doors location simple
by going in that direction bumping into the otherwise secret door, and it says
'the <doorname> seems to be closed'. It WILL show the secret door if it's
opened though. Also It'll show a # by a closed regular door. What I am asking
for is improvement on the code, I want to make this really efficient, I think
the way my code is now, it's kinda kludgy. So, feel free to to comment/help
with this.
Objective, make it so, it uses the least amount of processor time, without
using assembly.. ;) heh.
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_SECRET)) &&
(!IS_SET(EXIT(ch, door)->exit_info, EX_CLOSED)))
sprintf(buf, "%s%s ", buf, dirs2[door]);
else {
if ((IS_SET(EXIT(ch, door)->exit_info, EX_CLOSED)) &&
(!IS_SET(EXIT(ch, door)->exit_info, EX_SECRET)))
sprintf(buf, "%s%s# ", buf, dirs2[door]);
else
if (!IS_SET(EXIT(ch, door)->exit_info, EX_SECRET))
sprintf(buf, "%s%s ", buf, dirs2[door]);
}
sprintf(buf2, "|02[ Exits: %s]|00\r\n",
*buf ? buf : "None! ");
send_to_char(buf2, ch);
}
+-----------------------------------------------------------+
| Ensure that you have read the CircleMUD Mailing List FAQ: |
| http://cspo.queensu.ca/~fletcher/Circle/list_faq.html |
+-----------------------------------------------------------+
This archive was generated by hypermail 2b30 : 12/07/00 PST