%% This code is stolen from gametex.sty by Ken Clary

%%%%%
%% \begin{itemz}[<title>]
%% \end{itemz}
%%
%% \begin{enum}[<title>]
%% \end{enum}
%%
%% \begin{desc}[<title>]
%% \end{desc}
%%
%% These environments are analogous to LaTeX's itemize, enumerate, and
%% description environments.  They typeset material much more
%% compactly.  They also take an optional <title> argument which, when
%% present, will be typeset in bold at the head of the list.  The
%% itemz environment is used (via the tlist environment) for the
%% automated lists at the end of character sheets.
\let\real@item\item
\def\dummy@param{\dummy@param}
\newcommand\tlist@item[1][\dummy@param]{%
  \def\@tmp{#1}%
  \ifx\@tmp\dummy@param%
    \def\@tmp{\real@item}%
  \else%
    \def\@tmp{\real@item[#1]}%
  \fi\@tmp\mbox{}}

\def\@tlistmods{%
  \topsep0pt%
  \partopsep\parskip%
  \itemsep0pt%
  \parsep0pt%
  \parskip0pt%
  \ifnum\@listdepth=1%
    \ifdim\parindent=0pt%
      \leftmargin.25in%
    \else%
      \leftmargin\parindent%
    \fi%
  \fi%
  \def\item{\tlist@item}%
  \rightmargin0pt%
  \itemindent0pt%
  \parindent0pt}

\long\def\@tlisttitle#1{\def\@tmp{#1}\ifx\@tmp\empty\else%
  \par\noindent{\bfseries#1}\nopagebreak\@beginparpenalty\@M\fi}

\newcommand{\itemz}[1][]{%
  \ifnum\@itemdepth>3%
    \@toodeep%
  \else%
    \advance\@itemdepth1%
    \@tlisttitle{#1}%
    \list{-}{%
      \@tlistmods%
      \def\makelabel##1{\hss\llap{##1}}}%
  \fi}
\def\enditemz{\@topsepadd0pt\endlist}

\newcommand{\enum}[1][]{%
  \ifnum\@enumdepth>3%
    \@toodeep%
  \else%
    \advance\@enumdepth1%
    \edef\@enumctr{enum\romannumeral\the\@enumdepth}%
    \@tlisttitle{#1}%
    \expandafter\list\csname label\@enumctr\endcsname{%
      \@tlistmods%
      \usecounter\@enumctr%
      \def\makelabel##1{\hss\llap{##1}}}%
  \fi}
\def\endenum{\@topsepadd0pt\endlist}

\newcommand{\desc}[1][]{%
  \@tlisttitle{#1}%
  \list{}{%
    \@tlistmods%
    \itemindent-\leftmargin%
    \labelwidth0pt%
    \let\makelabel\descriptionlabel}}
\def\enddesc{\@topsepadd0pt\endlist}