% This macro source file is from the four volume series
% "TeX in Practice" by Stephan von Bechtolsheim, published
% 1993 by Springer-Verlag, New York.
% Copyright 1993 Stephan von Bechtolsheim.
% No warranty or liability is assumed.
% This macro may be copied freely if no fees other than
% media cost or shipping charges are charged and as long
% as this copyright and the following source code itself
% is not changed. Please see the series for further information.
%
% Version: 1.0
% Date: May 1, 1993
%
%
% This source code is documented in 36.2.4, p. IV-141.
% Original source in file "o3.TEX", starting line 444.
\wlog{L: "ola-2p.tip" ["o3.TEX," l. 444, p. IV-141]}%
% This file DOES NOT belong to format "texip."
\InputD{namedef.tip}
\catcode`\@ = 11
\def\FigurePlacementFileName{\jobname.fip }
\newcount\Fco
\newread\FigurePlacementStreamIn
\newwrite\FigurePlacementStreamOut
\def\ReadTheFigurePlacementFile{%
   \Fco = 1
   \openin\FigurePlacementStreamIn = \FigurePlacementFileName
   \ActuallyReadFigurePlacementFile
   \immediate\openout\FigurePlacementStreamOut =
       \FigurePlacementFileName
}
\def\ActuallyReadFigurePlacementFile{%
   \ifeof\FigurePlacementStreamIn
       \closein\FigurePlacementStreamIn
       \let\ReadInFigurePlacementFileNext = \relax
   \else
       \read\FigurePlacementStreamIn to \ALineFromTheFile
       \def\ParMeansDone{\par}%
       \ifx\ALineFromTheFile\ParMeansDone
       \else
           \NameEdef{Fig-\the\Fco}{\ALineFromTheFile}
           \advance\Fco by 1
       \fi
       \let\ReadInFigurePlacementFileNext =
               \ActuallyReadFigurePlacementFile
   \fi
   \ReadInFigurePlacementFileNext
}
\newcount\FBTwoCount
\FBTwoCount = 1
\newif\ifLeftSideCaption
\def\FBTwoPass #1#2#3{%
   \PrepareFigureBoxes{#1}{#2}{#3}
   \insert\FigureIns{%
       \write\FigurePlacementStreamOut{\the\pageno}
       \if\NameDefinedConditional{Fig-\the\FBTwoCount}%
           \wlog{Figure \the\FBTwoCount:
                   \NameUse{Fig-\the\FBTwoCount}}%
           \expandafter\ifodd\NameUse{Fig-\the\FBTwoCount}%
               \LeftSideCaptionfalse
           \else
               \LeftSideCaptiontrue
           \fi
       \else
           \LeftSideCaptiontrue
       \fi
       \ifLeftSideCaption
           \hbox{%
               \valign{%
                   ##\vfil
               \cr
                   \copy 1\cr
                   \copy 0\cr
               }%
           }%
       \else
           \hbox{%
               \valign{%
                   ##\vfil
               \cr
                   \copy 0\cr
                   \copy 1\cr
               }%
           }%
       \fi
   }
   \advance\FBTwoCount by 1
}
\def\OutCaptionGameTwoPass{%
   \setbox0 = \box\voidb@x
   \setbox1 = \box\voidb@x
   \ifodd\pageno
       \dimen0 = 0pt
       \let\Header = \RightHeader
       \let\Footer = \RightFooter
   \else
       \dimen0 = \DiffWidth
       \let\Header = \LeftHeader
       \let\Footer = \LeftFooter
   \fi
   \shipout\vbox{%
       \hrule height 1pt
       \vskip 5pt
       \Header
       \vskip 12pt
       \ifvoid\FigureIns
       \else
           \box\FigureIns
           \vskip\skip\FigureIns
       \fi
       \moveright\dimen0 \BoxR 255
       \vskip 12pt
       \Footer
   }
   \global\advance\pageno by 1
   \ifnum\outputpenalty > -20000
   \else
       \dosupereject
   \fi
}
\catcode`\@ = 12