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 fs_dirconf
Cvar to point to a configuration file (eg, "~/.quakeforge/gamedir.conf"
)
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"; };
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 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
. Attribute allow variable substitution. Variables can take the form of either $NAME
or ${NAME}
, where the latter is useful when the end of 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
Path
attribute. If the current tag does not set the Path
attribute, this variable will be undefined. $
$
into an attribute is by using $$