******************************** ROOM INFO *******************************

Rooms are not mearly dumb functions that print the view. They can do
anything you want them to really.

Switch() values for room functions:

	0 - Display room description, exits and contents. Called from look().

	1 - Return room in direction dir. Returns -1 or -2 if no room. If
	    -2 then main.c does not send user "You can't go that way" message.
	    Called from which_dir(),move_user() & randmove().

	2 - Intercept or execute command entered by user. Called from exec_com().

	3 - Run any room events. Called from rooms_events().

All the above functions mentioned are in main.c

The global variable "this_room" is set to the number of the room in the
structure array whenever a rooms function is called. This is usefull for
building a mud when you don't know the rooms final position in the array but
still wish to do things like eg "write_room(this_room,"You hear a noise\n");"
See the castle code castle/castle.c for examples.

Generally the room links are set on compilation in the array links[] but this
can be dynamically altered if you wish the room to move eg if its a boat or
if you wish to trap the user somewhere once he has entered.
   If you do wish to make a room a boat for instance, you must either link
a room with an object so that when the user types "board boat" the boat object
will reset the users room to the boat room or you can cheat and do everything
in the room including printing a fake notification of a boat being there. Any
normal object commands the user carries out on the boat eg "get boat" must
then be intercepted by the room or the function eg get() will return a no 
object error.
