daleken/
daleken/data/notes/
daleken/data/player/
daleken/data/system/poses/
daleken/doc/Homepage/images/
daleken/log/
Daleken 1.12 Area File Format
-----------------------------

This format is the result of a large amount of hair tearing and a lot of
time spent gnashing teeth.  It is an easy to read format that allows for
both forward and backward compatibility.  Default values are part of the
system so they are easy to compensate for.  Nesting is possible, such as
is demonstrated in the player files for objects.  The format is capable
of reading most data required by the server, with only a few additions
required for unique structures.

Conditions:
	- all data types are known by the server.
	- all lines/sections are terminated by a ';'
	- system requires a key (one word string) and a value.
	- strings are quoted like in C/C++
	- numbers are in the following formats:
		- straight decimal: 345;
		- OR'ed values: 200|100|45;
		- hex: 0xA0;
		- mapped from strings: (dark inside);
		- mapped from strings: (<room> dark inside);
			- this method allows for flexibility
 	- array (a bit that is set, for array of another type)
		- arrays should be able to be indexed so that pieces
		 can be missed (think of skills).
		- use the following format...
		[ @1 "aaa", @2 "xxx", @(<room> dark inside) "xxx" ];
	- a complex section enclosed in curly braces {}

in the reading tables
	- string identifier
	- type of the variable
		- string
		- number
		- vector
		- complex structure
		- linked list
		- one bit is to say if it is an array.
	- a default table to lookup on (for integers only really).
	- A union field with the default value
	  - for a special case/complex section this can have the function
	    to read instead.

area {
name "The Immortal Plane";
plane "Immortal";
};

object {
vnum 700;
name	"flaming gate hell pit";
short	"a &rflaming&x gate to &KHell&x";
long	"Flames erupt from a pit in the ground leading to the depths of Hell.\n";
level	1000;
weight	100;	# a hash is a comment
type	(portal);
# wear	("take" "hold");	# Bit fields start with parentheses
# extra	(none);
material (<material> flame);	# Flag table name in angle brackets
value [		# Arrays start with a square bracket.
	"3266", "0", "0", "0"
];
affect {	# Special fields start with a curly brace.
       name "permanent spell";
       location "flaming shield";
};
event {
      time 12354;
      type ["object decay"];
};
};

room {
vnum 700;
resets {
	M 700 1;
	E 704 "lwielded";
};
};

eof

area {
name "The Immortal Plane";
plane "Immortal";
};

object 700 {
name	"flaming gate hell pit";
short	"a &rflaming&x gate to &KHell&x";
long	"Flames erupt from a pit in the ground leading to the depths of Hell.\n";
level	1000;
weight	100;	# a hash is a comment?
type	(portal);
# wear	("take" "hold");	# Bit fields start with parentheses
# extra	(none);
material (flame);
value [		# Arrays start with a square bracket.
	"3266", "0", "0", "0"
];
affect {	# Special fields start with a curly brace.
       name "permanent spell";
       location "flaming shield";
};
event {
      time 12354;
      type ("object decay");
};
};

room 700 {
resets {
	M 700 1;
	E 704 "lwielded";
};
};

eof