Re: [Circle] Secret Doors

From: Daniel Koepke (dkoepke@california.com)
Date: 11/14/96


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