From the NannyMUD documentation

LAST CHANGE

2000-12-18

TOPIC

NAME

        vcompile - Virtual compiling of objects.

DESCRIPTION

	vcompile allows for objects without an actual file matching
	the objects filename.

	When the driver is instructed to load a file, it first checks
	if it is already loaded. If not, it looks in the specified
	dir. If there is no file there that can be used, it looks for
	a file named vcompile.c in the dir (and in the parent
	dirs!). If found, that object is loaded and the function
	compile_virtual in it is called with the file name as
	argument. This function should clone an object and return it.

	If anything else than an object is returned, you will get the
	usual error message about trying to load a non-existing
	object.

	The driver now changes file name on the clone to the file name
	given as argument to compile_virtual, and the reset function
	in the object is called with argument -1 .

NOTE

	Unless carefully planned and carried out, an area based on
	virtual locations/objects is the most boring thing there is.

	Be sure your vcompile.c cannot be shadowed.

	Be sure that you don't accept every file name in
	compile_virtual. You should check for the files '.acl', '..'
	and '.', at least. 

	Always put limits on how large the area can become.

	Always have all rooms register with a central object, so the
	area can easily be cleaned out.

	YOU SHALL ALWAYS USE THE PROPERTY "hard_clean_up" IN ROOMS GENERATED
	USING vcompile, UNLESS APPROVED.

EXAMPLE

	Take a careful look at /examples/virtual/vcompile.c .
	Try a 'goto' to any file in that dir.