//unfortunately, have to wrap the docs in a C comment for doxygen
// vim:tw=74:formatoptions-=l
/**
\page dirconf Directory Configuration
QuakeForge allows the structure of the game data directory tree to be
specified at run time. The default configuration is given below, but can be
overridden by setting the \c fs_dirconf Cvar to point to a configuration
file (eg, "~/.quakeforge/gamedir.conf"
)
\verbatim
QF = {
Path = "QF";
};
Quake = {
Inherit = QF;
Path = "id1";
GameCode = "progs.dat";
HudType = "id";
};
QuakeWorld = {
Inherit = (Quake);
Path = "qw";
SkinPath = "${path}/skins";
GameCode = "qwprogs.dat";
HudType = "id";
};
"Hipnotic" = {
Inherit = (Quake);
Path = "hipnotic";
HudType = "hipnotic";
};
"Rogue" = {
Inherit = (Quake);
Path = "rogue";
HudType = "rogue";
};
"qw:qw" = {
Inherit = (QuakeWorld);
};
"qw:*" = {
Inherit = (QuakeWorld);
Path = "$gamedir";
};
"nq:*" = {
Inherit = (Quake);
Path = "$gamedir";
};
"hipnotic:*" = {
Inherit = (Hipnotic);
Path = "$gamedir";
};
"rogue:*" = {
Inherit = (Rogue);
Path = "$gamedir";
};
"abyss" = {
Inherit = (Quake);
Path = "abyss";
};
"abyss:*" = {
Inherit = (abyss);
Path = "$gamedir";
};
\endverbatim
The directory config is a collection of tags with collections of
attributes. Normally, the tags will be in the form of either
\"[name]\"
or \"[name]:*\"
. The first form is
usually used for allowing inheritance (via the \c Inherit attribute)
Supported attributes are:
Path
GameCode
HudType
SkinPath
\${path}
. This attribute is ignored
by nq clients and servers.SoundPath
\${path}/sound
ModelPath
\${path}/progs
MapPath
\${path}/maps
.ShotsPath
QF
.\$NAME
or \${NAME}
, where the latter is
useful when the end of \c NAME is ambiguous (eg,
\${NAME}STUFF
vs \$NAME/STUFF
).
Supported vars are:
gamedir
-game [modname]
on the command line (nq) or the
gamedir [modname]
console command.path
\$
\$
into an attribute is by using
\$\$