Currently very little is documented or in place, some coding guidelines exist however to make the code easier to understand:
DEFCONSTANT) are put in-between
+-signs, ie +pi+ DEFVAR, not
DEFPARAMETER) are put in-between *-signs,
ie *player*?-suffix, ie
player-dead? and should have no side-effects!-suffix, ie equip-player!&-suffix, ie init-environment&% prefix.
Ane example is %birth-input-char in
birth.lisp which is only input to birth-functionality
and is uninteresting to others. < and >, ie
'<RANGER>DEFINE- prefix
implicitly have global side-effects, ie
define-monster. They will also return the object
they have defined. Do not use the &
suffix. MAKE- are restricted to
non-sideeffect constructors of objects, ie wrapped
MAKE-INSTANCEs. An object is returned from this
kind of function.DEFINE- function/macro, should use the
ESTABLISH- prefix, and return the object in
question. A & suffix is expected. These should
not be called by variant code though, variants should use
DEFINE-. However, if it seems reasonable with a
SETF-match to a GET- function instead
of an ESTABLISH-, use SETF.WITH- prefix, and if it needs a
function to implement itself it should use a
INVOKE-ON- prefix. An example is:
WITH-DUNGEON and it's implementation in
INVOKE-ON-DUNGEON. These macros are allowed to
create side-effects on their arguments. VAN- prefix. Loading
variant-code is also allowed to induce side-effects, ie
registering the variant in appropriate places.COMMON- prefix.
Loading lib/common might also have side-effects.QUERY- prefix. PRODUCE- prefix. Factory-methods should when
possible depend on at least the variant, to be able to control
it.