diff -ru v1.5c/Charsheets/template.tex v1.5d/Charsheets/template.tex
--- v1.5c/Charsheets/template.tex Mon Jan 10 02:23:26 2000
+++ v1.5d/Charsheets/template.tex Mon Aug 13 09:43:47 2001
@@ -198,7 +198,7 @@
% here and print them from Central/misc-money.tex to put in the packet by hand.
%
% If your game isn't using cash, you'll want to just delete this whole
-% section (and the Czar should delete the bin/game.config line for it).
+% section (and the Czar should delete the bin/packets.config line for it).
%
\begin{extractable}{Money}
\extract{ \cash{100} }
diff -ru v1.5c/LaTeX/Central/rules.tex v1.5d/LaTeX/Central/rules.tex
--- v1.5c/LaTeX/Central/rules.tex Tue Jan 4 20:46:23 2000
+++ v1.5d/LaTeX/Central/rules.tex Mon Aug 13 01:46:41 2001
@@ -1,6 +1,5 @@
\documentclass{game}
-\usepackage{sheets}
-
+\usepackage[inlineheaders]{sheets}
\renewcommand\sheetname{Rules}
\begin{document}
@@ -8,23 +7,31 @@
\name{\Huge Rules for \gamename}
\begin{center}
-Written and GMed by {\bf LIST OF GMS} \\
+Written and GMed by \textbf{LIST OF GMS} \\
\copyright MIT Assassins' Guild and above GM team
\end{center}
% Delete this section!
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\vspace{1cm} {\em
-
-This rules template assumes you're using the Standard Rules.
-If you're not, well then, blow away everything from here down, of course.
+\vspace{1cm}
+\begin{em}
-It's not difficult to write rules based on the SR from scratch, but
-this template provides a convenient checklist.
+\textbf{This rules template assumes you're using the Standard Rules.
+If you're not, well then, blow away everything from here down.}
+\vskip\baselineskip
+
+This is a template for game-specific rules sets based on
+the Standard Rules. It's easy enough to write such rules without
+it, but it can at least serve as a convenient checklist, so you
+probably want to at least glance through it.
+
+In some areas it also includes FAQs, i.e.~things that players will
+probably ask about if your rules about that area don't cover them;
+consider saving time and sanity by including the information here.
-Since there's very little that {\bf has} to be in a game-specific rules
-set, almost everything is in the {\bf comments} of this file. GMs can
+Since there's very little that \textbf{has} to be in a game-specific rules
+set, almost everything is in the \textbf{comments} of this file. GMs can
go through those and turn them into actual appropriate material where
necessarily. Usually you'll be able to just erase most comment sections
without putting in any material.
@@ -34,13 +41,136 @@
to delete this section\ldots.)
If you want to be able to provide a latex'able rules.tex to the players,
-you'll have to not use Template features at all, of course. If you do
-want to use the Standard Rules, see {\tt /mit/jemorris/Rules} for
-a vanilla-latex rules template.
+you'll have to not use Template features at all, of course.
+See \verb$~jemorris/Rules/$ for a vanilla-latex template for SR-based rules.
-} \vspace{1cm}
+\vspace{1cm}
+\end{em}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Delete the above section!
+
+
+\textbf{\gamename} uses the Standard Rules. If you are not familiar with
+Guild standard rules, please \emph{read that.} (They're available
+at \texttt{http://web.mit.edu/jemorris/Rules} and
+in \texttt{/mit/jemorris/Rules}.) Experienced SR users, see the ``Edition
+History'' appendix.
+
+% Settle which combat system is used:
+You need not read all of the Combat Systems appendix; we use only the
+\emph{[MA/MD/HP; Starlight; Rock, Paper, Scissors; Phi; Cinematic]} system.
+[Or ``you don't need the Combat Systems appendix, we use our own system.'']
+
+This document covers only material that augments or overrides the
+Standard Rules. In particular, note \emph{[identify which sections
+that are overridden---quite possibly none at all, in which case you
+could change this paragraph to: This document covers only material that
+augments the Standard Rules (we override nothing).]}
+
+%% You may not need to put anything for this section at all, since typical
+%% things like badges or money only need mention if yours are special or
+%% have mechanics, and atypical things like combat cards only need mention
+%% if you're actually using them.
+%
+% Stuff you should have in your packet...
+% Badges tell you... [if you have age or anything publically encoded]
+% Money is... [if you have a physrep that's not bills or otherwise obvious]
+%
+%% Note that if you don't say anything, by default guns are just like
+%% everything else --- ie you need an item card, but not a sticker.
+%
+% Guns require [item cards / stickers / both item cards and stickers /
+% neither item cards nor stickers, any physrep is a gun]
+
+%% You only need to put something here for a long game if you have
+%% mysterious tunnel systems and so on. Short games always need this.
+%
+%% Long game:
+% [Locations] are not normal game locations; you can't go there unless
+% specifically directed to, as per the SR.
+%
+%% Short game:
+% Game takes place in [areas]; you can't go elsewhere unless specifically
+% directed to. Note that you are expected to be in game areas at all times
+% during the game.
+
+%% You probably want to include this section (you probably have no Dead Time).
+%
+% Game starts at 6pm Friday and ends at noon next Sunday; wrapup is at 2pm.
+% There will be a Game Break from Tues 6am until Weds 6pm.
+% GMs will be available from [time] to [time] every day; outside those
+% hours is Dead Time.
+
+%% What you need to include here depends on the combat system.
+%
+% Typical [stats] are... --- MA/MD/HP, RPS, Phi
+% Typical Hits and Blocks on a card are... --- Cinematic
+% Weapon/armor effects are... --- MA/MD/HP, RPS
+% Known weapon-like Phis are... --- Phi
+% You heal at... --- MA/MD/HP, RPS, Cinematic
+% (and at what time? noon? when you sleep? what if you pull all-nighters?)
+%
+% Cinematic/RPS/Phi allow coordination by default; include overrides here.
+
+%% You may or may not need to say anything here.
+%% Guns have default effects from the SR if you don't say anything about them.
+%
+% Disc guns represent... [and do... if not the default]
+% Dart guns represent... [and do... if not the default]
+% Other attack forms... [throwing knives (probably ping-pong balls)]
+% [weird attacks (probably foam pellets); if you have these, say what it is
+% that characters see (maybe nothing) when players see someone holding a
+% pellet (or whatever) ready, e.g. ``hand charged with mystic power'']
+
+
+%% If ingame explosives exist, you want to say what's known about them;
+%% if they don't, you might want to state their non-existence.
+%% FAQs: Can anyone arm them, or does it take skill? Ditto for disarming?
+%% Can you read the timer to see how long is left? Can you move an armed
+%% bomb without setting it off?
+%% Important: What effects do they have? You might not be able to answer
+%% that publically, but it's always nicer if you can so that explosions
+%% don't always require a GM. If your explosives always have item cards
+%% with the effects printed on them, you might want to just say that.
+%
+% Explosives....
+
+%% You need administrative information either here or in your Scenario.
+%
+% The Control Room is.... The Common Room is....
+% [Also where the Queue Room is if you have that separate (uncommon nowadays).]
+% The Box is in....
+%
+% Mail for the GMs should be sent to \texttt{[game]-gms@mit.edu}.
+% GMs can be found online by zephyring -c ...; please don't subscribe there
+% yourself, we'll answer you on personals.
+% [GM cellphones/pagers and when it's ok to use them, if there are some
+% and that information isn't on the playerlist.]
+
+%% You need something here if you have headbands besides white.
+%
+% [color] headbands mean [...] [etc]
+
+%% You only need something here if you want something other than the defaults.
+%
+% Phones...
+% Athena... [zephyr, email, other]
+
+%% You only need something here if you have other public mechanics. E.g.,
+%
+% One of your stats is psionic power...
+%
+% If you watch someone from within ZoC for five minutes, you may
+% ask to see their Appearance A card...
+%
+% A door is locked if...
+%
+% The jail is at... Only [] can put people in... Only [] can get people out...
+% You can/can't [talk to / attack / ...] people there by....
+
+
+\end{document}
+
diff -ru v1.5c/LaTeX/Lists/characters.tex v1.5d/LaTeX/Lists/characters.tex
--- v1.5c/LaTeX/Lists/characters.tex Thu Nov 18 17:54:38 1999
+++ v1.5d/LaTeX/Lists/characters.tex Mon Aug 13 04:18:45 2001
@@ -5,7 +5,7 @@
%% {last; first; middle; prefix; suffix} % name
%% {number; desc; ghost} % for badges
%% {clump; position} % playerlist (see playerlist.tex)
-%% {hp; ma; md; mdelta} % stats
+%% {ma; md; hp; mdelta} % stats
%% }
% This associates all that information with the \Ccontrol_sequence.
% Remember that your macro name (Ccontrol_sequence) must be letters only.
@@ -33,7 +33,7 @@
% will be reverse-video, for GMs and Observers. And omit as many things
% from the tail of the stats arguments as you want, and those
% columns will be left blank (or with default).
-% E.g. {hp; ma; md} (gets the default mdelta).
+% E.g. {ma; md; hp} (gets default mdelta) or {ma; md} (default hp and mdelta).
% Defaults: (Czar, document here what defaults you have in custom.sty)
%
diff -ru v1.5c/LaTeX/Styles/abilities.sty v1.5d/LaTeX/Styles/abilities.sty
--- v1.5c/LaTeX/Styles/abilities.sty Tue Dec 21 02:59:36 1999
+++ v1.5d/LaTeX/Styles/abilities.sty Wed Aug 15 01:40:21 2001
@@ -46,7 +46,14 @@
\vbox to \abil@height{\hsize=\abil@width
\efftext \break \vfil
% now frame the effect
- \fboxsep=.1in \framebox[\hsize]{\vbox{\advance\hsize by-2\fboxsep #3}}%
+ \fboxsep=.1in \fboxrule=.5pt
+ \framebox[\hsize]{%
+ \vbox{%
+ \advance\hsize by -2\fboxsep\relax
+ \advance\hsize by -2\fboxrule\relax
+ #3\relax
+ }%
+ }%
\break \vfil
\gamename \hfill \transfer
}%
diff -ru v1.5c/LaTeX/Styles/badges.sty v1.5d/LaTeX/Styles/badges.sty
--- v1.5c/LaTeX/Styles/badges.sty Sun Jan 2 04:23:07 2000
+++ v1.5d/LaTeX/Styles/badges.sty Sun Aug 19 16:55:01 2001
@@ -29,48 +29,53 @@
\parindent 0pt % don't indent paragraphs
\centering % keep everything centered
-\baselineskip 0pt \lineskip 0pt % ignore min spacing as necessary
+\lineskip 0pt \lineskiplimit 10in % no interline glue ever
% For what we do here it actually seems to be easier / more straightforward
% to toss in some color-frobbing postscript than to use the color package cmds.
-\def\@ps#1{\special{ps:#1}}
+% (Plus this way we can stick to level one postscript and maybe have the
+% Guild printers be happier with it.)
%
-\def\rvstart{% % Reverse Video Start
- \@ps{gsave 0.3 setgray}\vrule height\badgeheight width\hsize \@ps{grestore}%
- \vskip-\badgeheight \smallskip \@ps{gsave 1 setgray}%
+\newcommand\ps@gray[2]{\special{ps: gsave #1 setgray}#2\special{ps: grestore}}
+\newcommand\graybox[3]{%
+ \leavevmode
+ \setbox\z@=\hbox{\ps@gray{#1}{#3}}%
+ \ps@gray{#2}{\rlap{\vrule\@height\ht\z@\@depth\dp\z@\@width\wd\z@}}%
+ \box\z@\relax
}
-\def\rvend{\@ps{grestore}} % Reverse Video End
-
-\newif\ifghostly
+% ghosts/GMs/etc (and Not Here) are reverse video, white on very-dark-grey
+\newcommand\@ReverseVideoBox{\graybox{1}{.333}} % third arg will follow
% when \name is called, we'll make a badge for \me
\renewcommand\doname{%
- \testinfo\me{ghost}\ifinfo \ghostlytrue \else \ghostlyfalse \fi
- %
+ \testinfo\me{ghost}%
+ \ifinfo\let\@FaceSide\@ReverseVideoBox \else\let\@FaceSide\hbox \fi
% cards.sty will frame the badge for us
\makecard{%
- \vbox to 2\badgeheight{\hsize=\badgewidth % 2 sides high, one side wide
- \vbox to \badgeheight{% % id side
- \ifghostly\rvstart\fi
- \smallskip
- \head@line \break\vfil
- {\Huge \me{char}}\break\vfil % character name
- {\huge \me{player}}\break\vfil % player name
- {\LARGE \me{number}}\break\vfil % number
- {\LARGE \me{desc}}\break\vfil % description
- \gamename\break\vfil
- \ifghostly\rvend\fi
- }%
- \rotatebox[origin=c]{180}{% % Not Here side is upside-down
- \vbox to \badgeheight{%
- \rvstart % and is always reverse video
+ \vbox{\hsize=\badgewidth
+ \@ReverseVideoBox{%
+ \rotatebox[origin=c]{180}{%
+ \vbox to \badgeheight{%
+ \smallskip
+ \head@line\break\vfil
+ \hbox{\reallybig I'M NOT HERE}\break\vfil
+ \gamename\break\smallskip
+ }% end \vbox to \badgeheight
+ }% end \rotatebox
+ }% end \@ReverseVideoBox
+ \break
+ \@FaceSide{%
+ \vbox to \badgeheight{%
+ \smallskip
\head@line \break\vfil
- \hbox{\reallybig I'M NOT HERE}\break\vfil
+ {\Huge \me{char}}\break\vfil % character name
+ {\huge \me{player}}\break\vfil % player name
+ {\LARGE \me{number}}\break\vfil % number
+ {\LARGE \me{desc}}\break\vfil % description
\gamename\break\smallskip
- \rvend % done with reverse video
- }%
- }%
- }%
- }%
-}
+ }% end \vbox to \badgeheight
+ }% end \@FaceSide
+ }% end \vbox
+ }% end \makecard
+}% end \renewcommand\doname
diff -ru v1.5c/LaTeX/Styles/cards.sty v1.5d/LaTeX/Styles/cards.sty
--- v1.5c/LaTeX/Styles/cards.sty Sun Jan 2 04:23:07 2000
+++ v1.5d/LaTeX/Styles/cards.sty Sun Aug 19 17:55:15 2001
@@ -15,12 +15,20 @@
%% ``mirror'' (mirror-sided cards, same thing on each side)
%% and can optionally include a dimension (specifying the margin
%% to leave around each side of each card) or two dimensions
-%% (to specify the horizontal and vertical margins separately);
-%% margins will get the default specified below if omitted.
-%% E.g. in a style file,
-%% \RequirePackage[single]{cards} % single-sided, default margins
-%% \RequirePackage[double,.5cm]{cards} % double-sided, .5cm all around
-%% \RequirePackage[mirror,.5cm,1cm]{cards} % mirrors, .5cm horiz, 1cm vert
+%% (to specify the horizontal and vertical margins separately).
+%%
+%% If invoked without dimensions, double- or mirror-sided cards will
+%% use the \card@default@margin specified below, while single-sided
+%% cards will default to zero margin. (Because printer alignment
+%% isn't a concern with single-sided cards, so you usually want to
+%% save scissors work via merger of neighboring cards' borders.)
+%%
+%% E.g. in a .sty file
+%% \RequirePackage[double]{cards} % double-sided, default margins
+%% \RequirePackage[single]{cards} % single-sided, no margins
+%% \RequirePackage[mirror,0.5cm]{cards} % mirrors, .5cm all around
+%% \RequirePackage[single,1ex,1em]{cards} % single-sided, 1ex horiz, 1em vert
+%%
%% In a .tex file you'd use \usepackage instead of \RequirePackage, of course.
%% Commands provided:
@@ -46,11 +54,12 @@
\setleftmargin{.3in}
\setrightmargin{.3in}
\topskip=0pt
-\headsep=0pt
\unitlength=1in % provide default for those using the picture environment
-% default margins around each card if not set as a package option
+% default margins around each card if not set as a package option;
+% this value is for double- and mirror-sided cards, if single-sidedness
+% is selected it will be reset to zero!
%
\newcommand\card@default@margin{.2cm}
@@ -80,6 +89,8 @@
\special{header=simplex} % force single-sided printing
\newcommand\makecard[1]{\make@card{#1}{}}
\newcommand\card@skip@back{}
+ % no printer-alignment worries here, so save scissors work
+ \renewcommand\card@default@margin{0pt}
}
\DeclareOption{double}{
\special{header=duplex} % force double-sided printing
@@ -111,6 +122,10 @@
% If either/both margins haven't been set, give them the default.
\ifdim\horiz@margin<0pt\relax \horiz@margin=\card@default@margin \fi
\ifdim\vert@margin<0pt\relax \vert@margin=\card@default@margin \fi
+% Want extra margin at top in case there's headers; it can go away
+% if they're single-sided, but *not* for zero-vert-margins on
+% asymmetric double-sided since headers can interfere on *either* side.
+\headsep=\card@default@margin
@@ -129,13 +144,14 @@
\newbox\front@card
\newbox\back@card
-% current column of cards
-\newbox\front@column \setbox\front@column=\vtop{}
-\newbox\back@column \setbox\back@column=\vtop{}
+% current column of cards; use \vtop 'cause it looks a bit nicer
+% if they line up at the tops, with any empty spaces at the bottoms
+\newbox\front@column \global\setbox\front@column=\vtop{}
+\newbox\back@column \global\setbox\back@column=\vtop{}
% current page of cards
-\newbox\front@page \setbox\front@page=\hbox{}
-\newbox\back@page \setbox\back@page=\hbox{}
+\newbox\front@page \global\setbox\front@page=\hbox{}
+\newbox\back@page \global\setbox\back@page=\hbox{}
% for misc calculations
\newdimen\card@ht
@@ -177,27 +193,31 @@
% now put the margins in and frame it
\rebox@card\front@card
\rebox@card\back@card
-
- % it's bigger by the frame thickness on each side now
- \advance\card@wd by 2\card@border
- \advance\card@ht by 2\card@border
+ % framing may have altered the dimens (at least via the border)
+ \card@wd=\wd\front@card
+ \card@ht=\ht\front@card
+ \advance\card@ht by \dp\front@card
% can we fit this in the current column?
\card@tmp=\ht\front@column
\advance\card@tmp by \dp\front@column
\advance\card@tmp by \card@ht
+ \advance\card@tmp by \headsep % lost this space at the top
+ \advance\card@tmp by -\vert@margin % don't count bottommost glue
\ifdim\card@tmp>\textheight \put@column \else \@keepcardtrue \fi
\if@keepcard % \pageof will punt the card that would make the next page
\card@tmp=\wd\front@column
\ifdim\card@tmp<\card@wd \card@tmp=\card@wd \fi
- \global\setbox\front@column=\vtop{\card@whitespace
- \hbox to \card@tmp{\box\front@column\hfill}%
- \hbox to \card@tmp{\box\front@card\hfill}%
+ \global\setbox\front@column=\vtop{\hsize=\card@tmp
+ \card@whitespace % no uncontrolled whitespace;
+ \unvbox\front@column % previous contents,
+ \hbox to \hsize{\box\front@card\hfill}% % plus front of new card
}%
- \global\setbox\back@column=\vtop{\card@whitespace
- \hbox to \card@tmp{\hfill\box\back@column}%
- \hbox to \card@tmp{\hfill\box\back@card}%
+ \global\setbox\back@column=\vtop{\hsize=\card@tmp
+ \card@whitespace % no uncontrolled whitespace;
+ \unvbox\back@column % previous contents,
+ \hbox to \hsize{\hfill\box\back@card}% % plus back of new card
}%
\fi
}
@@ -205,13 +225,13 @@
% put a frame around the card with the proper margins around that
\newcommand\rebox@card[1]{%
- \setbox#1=\hbox to \card@wd{\card@whitespace
+ \setbox#1=\hbox{\card@whitespace % no uncontrolled whitespace
\hspace\horiz@margin % left margin
- \vtop to \card@ht{%
+ \vbox{\hsize=\inner@wd
\vspace\vert@margin % top margin
- \framebox[\inner@wd]{% % center it in here
- \hfill
- \vtop to \inner@ht{\hsize=\inner@wd\vfill\box#1\vfill}%
+ \framebox[\hsize]{% % center it in here, both ways
+ \hfill
+ \vbox to \inner@ht{\vfill\box#1\vfill}%
\hfill
}%
\vspace\vert@margin % bottom margin
@@ -227,10 +247,12 @@
\advance\card@tmp by \wd\front@column
\ifdim\card@tmp>\textwidth \put@page \else \@keepcardtrue \fi
\if@keepcard
- \global\setbox\front@page=\hbox{\card@whitespace
- \box\front@page\box\front@column}%
- \global\setbox\back@page=\hbox{\card@whitespace
- \box\back@column\box\back@page}%
+ \global\setbox\front@page=\hbox{\card@whitespace % no uncontrolled space;
+ \unhbox\front@page % previous contents,
+ \box\front@column}% % plus front of newly finished column
+ \global\setbox\back@page=\hbox{\card@whitespace % no uncontrolled space;
+ \box\back@column % add back of newly finished column
+ \unhbox\back@page}% % to previous contents
\fi
\global\setbox\front@column=\vtop{}%
\global\setbox\back@column=\vtop{}%
@@ -241,10 +263,10 @@
\newcommand\put@page{%
\ifdim\wd\front@page>0pt
\hbox to \textwidth{\unhbox\front@page\hfill}%
- \break
+ \vfil\pagebreak
\ifx\card@skip@back\ThisMacroHadBetterNotBeDefined
\hbox to \textwidth{\hfill\unhbox\back@page}%
- \break
+ \vfil\pagebreak
\fi
\global\setbox\front@page=\hbox{}%
\global\setbox\back@page=\hbox{}%
@@ -262,7 +284,7 @@
% flush pending cards, then fill up the page with the given card
\newdef\pageof[1]{%
\newpage
- #1%
+ #1\relax
\loop
\@keepcardfalse
\putcard
diff -ru v1.5c/LaTeX/Styles/charextracts.sty v1.5d/LaTeX/Styles/charextracts.sty
--- v1.5c/LaTeX/Styles/charextracts.sty Sun Jan 9 03:49:18 2000
+++ v1.5d/LaTeX/Styles/charextracts.sty Thu Aug 9 06:44:50 2001
@@ -65,17 +65,17 @@
% When GMs do things in a charsheet that need to be passed along
-% to extractables --- e.g. use \newpronoun or \newcommand or something
+% to extractables---e.g. use \newpronoun or \newcommand or something
% to create a \foobar that they stick in a memory packet, item, \name,
-% whatever --- they're supposed to do it inside a \frobbies at the top
-% of the charsheet, so that it can get passed along to the extractables
+% whatever---they're supposed to do it inside one or more \frobbies at the
+% top of the charsheet, so that it can get passed along to the extractables
% so that the extracted .tex for the mempackets etc doesn't break on it.
% Of course, they don't get passed to list-types, so GMs shouldn't
% be *too* enthusiastic about simultaneously giving list-type macros args
% and doing clever new-macro things in them.
%
\newcommand\frobbies@set{}
-\newcommand\frobbies[1]{\add@to@macro\frobbies@set{#1}#1}
+\newcommand\frobbies[1]{\add@to@macro\frobbies@set{#1^^J}#1}
\@onlypreamble\frobbies
@@ -336,12 +336,16 @@
\def\extract@secret{^^J\dosecretextracts^^J^^J}% initialize, will add to it
\to@extract{\documentclass{game}}%
\to@extract{#2^^J}%
+ % Repeat the charsheet's frobbies. Writing them out will double any #s,
+ % but we first write them out *inside* \newcommand\frobbies{...}, which
+ % neatly undoubles them, and then execute \frobbies to get them.
+ \to@extract{\newcommand\frobbies}%
\begingroup
- \to@extract{\note{Extracted Frobbies:}}%
\tmp@str\expandafter{\frobbies@set}%
- \immediate\write\extract@tex{\the\tmp@str^^J}%
+ \immediate\write\extract@tex{{^^J\the\tmp@str}}%
\endgroup
- \to@extract{\begin{document}^^J}%
+ \to@extract{\frobbies}%
+ \to@extract{^^J\begin{document}^^J}%
\begingroup
\tmp@str\expandafter{\me}%
\immediate\write\extract@tex{\string\name{\the\tmp@str}^^J}%
diff -ru v1.5c/LaTeX/Styles/custom.sty v1.5d/LaTeX/Styles/custom.sty
--- v1.5c/LaTeX/Styles/custom.sty Fri Jan 14 16:15:30 2000
+++ v1.5d/LaTeX/Styles/custom.sty Wed Aug 15 03:51:36 2001
@@ -197,6 +197,7 @@
% on the result, such that it DTRT. You don't actually need to understand
% any of that, but I thought I'd explain it since I use it there. You might
% find it useful if you define similar conditional combos.
+% See macro-glossary.html for \testinfo, \ifinfo, \testnonzero, \ifnonzero.
% Assuming that you kept the ``gender'' entry that the default \useformat has,
diff -ru v1.5c/LaTeX/Styles/extractable.sty v1.5d/LaTeX/Styles/extractable.sty
--- v1.5c/LaTeX/Styles/extractable.sty Sun Jan 9 03:49:18 2000
+++ v1.5d/LaTeX/Styles/extractable.sty Mon Aug 13 06:40:57 2001
@@ -10,7 +10,9 @@
\RequirePackage{fullpage}
\RequirePackage{fancyheadings}
%
-\pagestyle{fancy}
+% Put off invoking the fancy headings until after the preamble is done
+% with frobbing \textwidth, so that it knows how wide to make things.
+\AtBeginDocument{\pagestyle{fancy}}
\newdef\baselabel{\me{}}% \me defaults to saying ``Unowned'' until set by \name
\lhead{\baselabel}
\rhead{Page \thepage}
diff -ru v1.5c/LaTeX/Styles/game.cls v1.5d/LaTeX/Styles/game.cls
--- v1.5c/LaTeX/Styles/game.cls Thu Apr 6 02:24:21 2000
+++ v1.5d/LaTeX/Styles/game.cls Thu Aug 9 10:28:34 2001
@@ -32,8 +32,8 @@
\begingroup
\catcode`$=13 \def$#1 {}
\catcode`:=13 \def:#1 {hrs }
- \xdef\cvs@date{2000/04/06 06:24:21 UTC}
- \xdef\cvs@name{v1-5c }
+ \xdef\cvs@date{2001/08/09 14:28:34 UTC}
+ \xdef\cvs@name{v1-5d }
\ifx\cvs@name\empty \gdef\cvs@name{dev} \fi
\endgroup
\ProvidesClass{game}[\cvs@date\space Assassins' Guild game template \cvs@name]
@@ -453,13 +453,14 @@
\newdef\semicolon[0]{;} % \newdef [0] --> no args but requires braces
\newif\if@semicolon
+\def\LiteralSemicolon{;}
\def\test@semicolon#1{\@semicolonfalse\dotest@semicolon#1\de@lim}
\def\dotest@semicolon#1{
\def\@temp{#1}
\ifx\@temp\de@lim
\let\@NEXT\relax
\else
- \ifx\@temp\semicolon\@semicolontrue\fi
+ \ifx\@temp\LiteralSemicolon\@semicolontrue\fi
\let\@NEXT\dotest@semicolon
\fi
\@NEXT
diff -ru v1.5c/LaTeX/Styles/money.sty v1.5d/LaTeX/Styles/money.sty
--- v1.5c/LaTeX/Styles/money.sty Thu Apr 6 02:24:22 2000
+++ v1.5d/LaTeX/Styles/money.sty Mon Aug 13 06:11:27 2001
@@ -41,21 +41,30 @@
\m@neyheight=1.1in % actual height is this plus twice \fboxsep
\fboxsep=5pt % margin from frame
\fboxrule=0pt % leave visible frame to cards.sty
+\parindent=0pt
+
+\newbox\GameNameB@x \setbox\GameNameB@x=\hbox{\small\gamename}
+\newbox\GameDateB@x \setbox\GameDateB@x=\hbox{\small\gamedate}
+\newlength\Pic@Ht
+\Pic@Ht=.95\m@neyheight
+\advance\Pic@Ht by -\ht\GameNameB@x \advance\Pic@Ht by -\dp\GameNameB@x
+\advance\Pic@Ht by -\ht\GameDateB@x \advance\Pic@Ht by -\dp\GameDateB@x
+\newbox\PicB@x
+\setbox\PicB@x=\hbox{\includegraphics[height=\Pic@Ht]{icon.eps}}
\newbox\sidebox
\newcommand\m@ney[2]{%
\centering % center all text
\setbox\sidebox=\vbox to \m@neyheight{\hsize=1in
{\Huge#1}\break\vfil{\Large#2\break\ifnum#1=1\bill@one\else\bill@many\fi}}%
+ % *after* \sidebox is set with normal baseline spacing, kill line spacing:
+ \lineskiplimit=10in \lineskip=0pt
\makecard{%
\fbox{%
\copy\sidebox
- \hfill
\vbox to \m@neyheight{\hsize=1.6in
- \vfil\includegraphics[height=.85\m@neyheight]{icon.eps}\break
- \gamename\break\vfil
+ \unhcopy\GameNameB@x \vfill \unhcopy\PicB@x \vfill \unhcopy\GameDateB@x
}%
- \hfill
\copy\sidebox
}%
}%
diff -ru v1.5c/LaTeX/Styles/sheets.sty v1.5d/LaTeX/Styles/sheets.sty
--- v1.5c/LaTeX/Styles/sheets.sty Tue Jan 4 20:47:40 2000
+++ v1.5d/LaTeX/Styles/sheets.sty Mon Aug 13 11:56:04 2001
@@ -9,29 +9,60 @@
% Written/edited by David Oh, November 1, 1991.
% Certain Parts Copyright (C) David Oh and the MIT Assassin's Guild 1991
% Modified for use in `One is not a Prime Number.' (1992)
-% Modified again for use in 'Midnight in Moscow, Take 2'' (1994)
+% Modified again for use in 'Midnight in Moscow, Take 2' (1994)
% and some more by Jeremy Brown, Aug. 24 1994
% and for Moon Over Bourbon Street some more by Jeremy Brown, June, 1995
% and for Catastrophe some more by Jeremy Brown, Oct, 1996
% and for the Template (TM) by Jamie Morris, Spring 1998 and later
+%%%%%%%%%%%%%%%%%%%
+% Package options %
+%%%%%%%%%%%%%%%%%%%
+%
+\newdimen\InlineHeaderIndent \InlineHeaderIndent=0pt
+\DeclareOption{inlineheaders}{\InlineHeaderIndent=\parindent}
+%
+\ProcessOptions\relax
+
+
+%%%%%%%%%%%%%%%%%%
+% Other packages %
+%%%%%%%%%%%%%%%%%%
+%
\RequirePackage{graphicx} % for including postscript graphics
\RequirePackage{doublespace} % for setting default linespacing
\setstretch{1.2}
-
-%%%%%%%%%%%%%%%%%%%
-% Set up margins %
-%%%%%%%%%%%%%%%%%%%
-
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Set up margins and headers %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
\topmargin -0.5in
\textheight +9.0in
\oddsidemargin -.25in
\evensidemargin \oddsidemargin
\textwidth +7.0in
-
+%
+\ifdim\InlineHeaderIndent=0pt
+ % leave section headers alone (non-inline)
+\else
+ \font\HeaderFont=phvb % Helvetica-Bold
+ \newdimen\HeaderOutdent
+ \HeaderOutdent=\oddsidemargin\relax
+ \advance\HeaderOutdent by .667in\relax
+ \ifdim\HeaderOutdent>.5in\relax \HeaderOutdent=.5in\relax \fi
+ \newcommand\MakeInline[2]{
+ \expandafter\renewcommand\csname#1\endcsname{
+ \@startsection{#1}{#2}
+ {-\HeaderOutdent}{.5\baselineskip}{-\InlineHeaderIndent}{\HeaderFont}
+ }
+ }
+ \MakeInline{section}{1}
+ \MakeInline{subsection}{2}
+ \MakeInline{subsubsection}{3}
+\fi
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -117,4 +148,4 @@
%Mike's adds, edited
\newdef\topquote[2]{%
- \begin{quotation} \em #1 \par \leftskip=0pt plus1fill #2 \end{quotation}}
+ \begin{quotation} \em #1 \par \flushright #2 \end{quotation}}
diff -ru v1.5c/bin/doc v1.5d/bin/doc
--- v1.5c/bin/doc Thu Jan 13 00:37:59 2000
+++ v1.5d/bin/doc Mon Aug 13 10:56:34 2001
@@ -49,7 +49,7 @@
or &usage;
GAME::chdir "html";
-my @html = sort grep { /\.html$/ and -r } GM::contents;
+my @html = sort grep { /\.html$/ and -f } GM::contents;
my $file;
my $target = shift or die map { "\t$_\n" } map { /(.*)\.html$/ } @html;
diff -ru v1.5c/bin/extractor v1.5d/bin/extractor
--- v1.5c/bin/extractor Tue Jan 11 21:31:34 2000
+++ v1.5d/bin/extractor Mon Aug 13 14:50:13 2001
@@ -23,7 +23,7 @@
or
gmX extractor
mycard.sty
which:
-alias dvips '\dvips -R' - alias dogame 'setenv TEXINPUTS .:$GAME/LaTeX//: ; setenv DVIPSHEADERS $GAME/LaTeX/Postscript: ; cd $GAME' @@ -100,11 +98,6 @@ get the ones in newtex. Either way you'll get latex2e, but with newtex all sorts of spiffy latex packagest that aren't in the default athena places are automatically available. - -Permanently giving dvips the -R option causes it to run securely; -otherwise .dvi files can make it execute arbitrary shell commands. -(Xdvi runs securely by default; it's inconsistent and annoying that -dvips doesn't.)
The sample aliases have a GM working on both Buffy (which put its Template tree in a "Template" dir on its top level) and Terror (which diff -ru v1.5c/html/intro.html v1.5d/html/intro.html --- v1.5c/html/intro.html Thu Apr 6 03:01:11 2000 +++ v1.5d/html/intro.html Sat Aug 18 09:42:53 2001 @@ -6,12 +6,20 @@
Introduction (All GMs)
-This is the Assassin Game Template v1-5c +
This is the Assassin Game Template v1-5d (version info here). In order for a team to use this package successfully, you should declare one person to be Production Czar, and put them in charge of understanding this documentation in depth. The html docs will note if they're Czar-specific; most are for all GMs.
+ + ++ Warranty: the Template is free software; you didn't pay us anything, + and neither did anyone else. As such, it comes with this firm guarantee: + If it breaks, you get to keep both pieces. +
+Getting started
diff -ru v1.5c/html/list-extractable.html v1.5d/html/list-extractable.html --- v1.5c/html/list-extractable.html Sat Jan 8 19:23:50 2000 +++ v1.5d/html/list-extractable.html Mon Aug 13 01:58:19 2001 @@ -61,7 +61,7 @@ bluesheet.sty and greensheet.sty; we'll start with\ProvidesPackage{pinksheet} % let latex check that this is the desired package -\RequirePackage{sheets} % base this on the "sheets" package +\RequirePackage{sheets} % base this on the "sheets" package (w no options) \renewcommand\sheetname{Pinksheet} % gets printed on sheet headerBecause the sheets.sty package already sets up a nice format for sheets, @@ -86,6 +86,10 @@ the bottom right corner of the name should show up. (It'll be blank when there isn't a char name to put there.) +You can use
\RequirePackage[inlineheaders]{sheets}
+to get "inline" (aka "run-in") headers for\section
, +\subsection
, and\subsubsection
. The default +LaTeX/Central/rules.tex does this.
(Q: Why the Czar?
A: Not because preliminary
is complex, but because if multiple
@@ -181,8 +182,9 @@
use a different set of printers than everyone else.
--all-characters, -a
---extract, -e
--ingame, -i [=mode]
+--ingame[=mode], -i[mode]
--ingame, -i
by itself causes all actions to both read
from and write to the $GAME/Charsheets/* subdirs (where other
GMs can look at them and where they won't vanish at logout)
instead of the gmX-provided temp dir.
- --ingame=w, -i=w, -iw
will read from the temp dir
+ --ingame=w, -iw
will read from the temp dir
for its first action (unless that's --extract
, which
has to read from $GAME/Charsheets), but will write from that
to the ingame dirs, from which subsquent actions will read.
@@ -269,17 +271,16 @@
the temp dirs; -iw -xdg
would read the temp .dvi,
show it to you (-x), dvips it (-d) to the ingame Charsheets/PS,
and gv that (-g) from there.
- --ingame=r, -i=r, -ir
is the inverse of "w";
+ --ingame=r, -ir
is the inverse of "w";
it will read from the ingame dirs for its first action
(which only makes a difference if that's not --extract
),
write the results to the temp dir, then stay entirely in the temp
for subsequent actions. That is, if you did -eli
, you
can -d -ir
to get from the ingame dvi to temp-dir ps.
-i
can take an argument, be careful bundling it;
- "-alxi
" and "-alxi=w
" are ok, or even
- "-alxiw
", but "-ialx
" is
- "-i=a -l -x
" which is wrong.
+ Since -i
can take an argument, we recommend not bundling it;
+ "-alxi
" works, as does "-alxiw
",
+ but "-ialx
" is "-ia -l -x
" which is wrong.
--only
\ProvidesPackage{seduction} % let latex to check that this is desired package \RequirePackage{extractable} % early line in any tex-type style package -\RequirePackage{cards} % base style of any card package -\singlesidecards{.2cm}{.2cm} % single-sided cards, .2cm margins all around +\RequirePackage[single]{cards} % single-sided flavor of base cards package \newdef\seduction[3]{\makecard{% % make the card #1 #2 % attack type and rating \includegraphics[width=1cm]{#3} % gratuitous picture diff -ru v1.5c/html/version.html v1.5d/html/version.html --- v1.5c/html/version.html Sat May 27 17:38:48 2000 +++ v1.5d/html/version.html Sun Aug 19 18:01:48 2001 @@ -4,8 +4,8 @@ -Version 1.5c
-released 05/27/2000
+Version 1.5d
+released 08/19/2001
This file is intended to let you know how the Template you just grabbed for your game has changed since the last time you wrote a game with it. @@ -18,13 +18,13 @@ information may tend to change as you incorporate patches.
Revisions are listed in chronological order. Each is given in three -sections: USER is material of interest to all Template users. CZAR -isn't of interest to most users but the Czar should read it. -Everything beyond what even the Czar should know is marked HACKER, for -the benefit of those who do really serious fiddling. Note that all -three will often give a very short description of an area of change -and point you towards appropriate documentation. Also, really teensy -tweaks, especially to docs, might not be listed anywhere.
+sections: USER is material of interest to all Template users. +CZAR isn't of interest to most users but the Czar should read +it. Everything beyond what even the Czar should know is marked +HACKER, for the benefit of those who do really serious +fiddling. Note that all three will often give a very short description of an +area of change and point you towards appropriate documentation. Also, really +teensy tweaks, especially to docs, might not be listed anywhere.Since we may have discovered issues (and maybe patched them) more recently than your copy, that information is kept @@ -45,7 +45,7 @@
1.1
released 10/31/1998
-USER: +1.1 USER
--config
+ argument to use a different one, so that GMs can use different sets of
printers and so on. Note that the game.config "paths" information
of what directories are where, which teams rarely if ever changed,
is not in packets.config; instead all paths have defaults and you
@@ -652,7 +640,7 @@
dvips -R
from
+ dotfiles.html.dvips -Pprintername foo
instead of
+ dvips foo -o ; lpr -Pprintername foo.ps
.)
+
+