On Fri, 15 Nov 1996, DJ Pure wrote:
> G'Day all.
> 	How do you implement Secret Doors? I can make it so that ANYDOOR is
> secret, but that is not what I really want.
Implement an EX_SECRET flag.  But beware, CircleMUD has a fool
way of dealing with exits in the player files so you'll need to
go playing in db.c a bit (go into setup_dir() and find where it
does:
  if (t[0] == 1)
    world[room].dir_option[dir]->exit_info = EX_ISDOOR;
  else if (t[0] == 2)
    world[room].dir_option[dir]->exit_info = EX_ISDOOR | EX_PICKPROOF;
  else
    world[room].dir_option[dir]->exit_info = 0;
And right before the 'else' do:
  else if (t[0] == 3)
    world[room].dir_option[dir]->exit_info = EX_ISDOOR | EX_SECRET;
  else if (t[0] == 4)
    world[room].dir_option[dir]->exit_info = EX_ISDOOR | EX_SECRET |
					     EX_PICKPROOF;
which will get it to load, etc.)  After you do that you'll need
to go about into act.informative.c and wherever it displays the
exits (the autoexit routine, do_exits, etc.) set it up to not
display rooms that are set EX_SECRET.
While we're speaking of the fool way exits are set up, why ARE
they setup that way!?  It's extremely annoying, if nothing else.
--
Daniel Koepke
dkoepke@california.com
Forgive me father, for I am sin.
+-----------------------------------------------------------+
| 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/18/00 PST