home *** CD-ROM | disk | FTP | other *** search
/ Source Code 1994 March / Source_Code_CD-ROM_Walnut_Creek_March_1994.iso / compsrcs / games / volume14 / xbattle / part03 < prev    next >
Encoding:
Internet Message Format  |  1993-01-26  |  49.3 KB

  1. Path: uunet!zephyr.ens.tek.com!master!saab!billr
  2. From: billr@saab.CNA.TEK.COM (Bill Randle)
  3. Newsgroups: comp.sources.games
  4. Subject: v14i074:  xbattle - multi-player battle strategy game for X-Windows, Part03/07
  5. Message-ID: <3513@master.CNA.TEK.COM>
  6. Date: 7 Sep 92 21:22:59 GMT
  7. Sender: news@master.CNA.TEK.COM
  8. Lines: 875
  9. Approved: billr@saab.CNA.TEK.COM
  10.  
  11. Submitted-by: slehar@cns.bu.edu
  12. Posting-number: Volume 14, Issue 74
  13. Archive-name: xbattle/Part03
  14. Environment: Xlib
  15.  
  16.  
  17.  
  18. #! /bin/sh
  19. # This is a shell archive.  Remove anything before this line, then unpack
  20. # it by saving it into a file and typing "sh file".  To overwrite existing
  21. # files, type "sh file -c".  You can also feed this as standard input via
  22. # unshar, or by typing "sh <file", e.g..  If this archive is complete, you
  23. # will see the following message at the end:
  24. #        "End of archive 3 (of 7)."
  25. # Contents:  xbattle.man
  26. # Wrapped by billr@saab on Mon Sep  7 14:18:50 1992
  27. PATH=/bin:/usr/bin:/usr/ucb ; export PATH
  28. if test -f 'xbattle.man' -a "${1}" != "-c" ; then 
  29.   echo shar: Will not clobber existing file \"'xbattle.man'\"
  30. else
  31. echo shar: Extracting \"'xbattle.man'\" \(47864 characters\)
  32. sed "s/^X//" >'xbattle.man' <<'END_OF_FILE'
  33. X.TH XBATTLE 4.0 "Aug 1992"
  34. X.SH NAME
  35. Xxbattle \- a multi-user battle strategy game
  36. X.SH SYNOPSIS
  37. X  xbattle [-<color> <display>...] [-<option> <argument>...]
  38. X.SH
  39. X
  40. XAssign a  team color and display  to  each player, and  any  number of
  41. Xoptions with argument where  required.   <color> can be  a  monochrome
  42. Xtone, -black -white -dark -light, or a color, -red -green -blue -cyan
  43. X-magenta -yellow;  <display> is the  name  of  the x display  for each
  44. Xplayer.  Command line arguments can be  supplied in  any order.  For a
  45. Xquick introduction, go straight to the EXAMPLES section below.   Also,
  46. Xsee  the tutorials  supplied  with   the game, which  are "csh"  shell
  47. Xscripts that start up example games.
  48. X
  49. X.SH OPTIONS 
  50. X.nf
  51. X    [ -options  [<options file>]]
  52. X    [ -bases    <number of bases> 4 teams max.]
  53. X    [ -rbases   <number of randomly placed bases>]
  54. X    [ -armies   <size of initial armies> 4 teams max.]
  55. X    [ -militia  <density of random militia [1-10]>]
  56. X    [ -towns    <density of towns [1-10]>]
  57. X    [ -repeat   no argument- allows command repeat]
  58. X    [ -bound    no argument- allows multiple commands]
  59. X    [ -march    <delay between marches>]
  60. X    [ -erode    <time before erosion>]
  61. X    [ -farms    <rate of universal troop production [1-10]>]
  62. X    [ -decay    <rate of troop decay [1-10]>]
  63. X    [ -fight    <firepower for attack [1-10]>]
  64. X    [ -disrupt  no argument- stop movement under fire]
  65. X    [ -attack   no argument- attack synchronously with "a" key
  66. X    [ -guns     <range of artillery [1-10]>]
  67. X    [ -para     <range of paratroops [1-10]>]
  68. X    [ -hills    <steepness of hills [1-10]>]
  69. X    [ -forest   <thickness of forest [1-10]>]
  70. X    [ -sea      <amount of water on gameboard [1-10]>]
  71. X    [ -wrap     no argument- sets wrap-around mode]
  72. X    [ -seed     <random seed for hills, forest & militia>]
  73. X    [ -horizon  [<view range of enemy troops>]]
  74. X    [ -hidden   no argument- hides enemy command vectors]
  75. X    [ -map      no argument- map features as they appear]
  76. X    [ -basemap  no argument- map bases/towns as with terrain]
  77. X    [ -localmap no argument- map only local area]
  78. X    [ -dig      <cost of terrain digging>]
  79. X    [ -fill     <cost of terrain filling>]
  80. X    [ -build    <cost of base in full troopsquares>]
  81. X    [ -scuttle  no argument- allow base destruction]
  82. X    [ -nogrid   no argument- does not display a grid]
  83. X    [ -speed    <game speed [1-10]>]
  84. X    [ -square   <game square size in pixels>]
  85. X    [ -board    <game board size in squares>]
  86. X    [ -manpos   no argument- allows manual board placement]
  87. X    [ -area        no argument- display troop strength by area
  88. X    [ -hex        no argument- use hexagonal game squares
  89. X    [ -move     <speed of troop movement [1-10]>]
  90. X    [ -reserve  no argument- allow reserves ]
  91. X    [ -digin    <dig-in factor [1-10]>]
  92. X    [ -store    [<save file>]]
  93. X    [ -replay   [<save file>]]
  94. X    [ -edit        [<map file>]]
  95. X    [ -load        [<map file]]
  96. X    
  97. X.fi
  98. X.SH RUN-TIME COMMAND SUMMARY
  99. X
  100. X.SH COMMANDS IN GAMEBOARD
  101. X LEFT MOUSE:          toggle command vector to move troops
  102. X MIDDLE MOUSE:          clear all and set new command vector
  103. X RIGHT MOUSE:          repeat previous command (with -repeat)
  104. X SHIFT-LEFT MOUSE:    march (with -march) fork march (with -hex)
  105. X SHIFT-MIDDLE MOUSE:  force march (with -march) fork march (with -hex)
  106. X SHIFT-RIGHT MOUSE:   paratroops (with -para)
  107. X CONTROL-RIGHT MOUSE: artillery (with -guns)
  108. X ctrl-'s':          pause game
  109. X ctrl-'q':          resume game
  110. X ctrl-'p':          save game state to map file
  111. X 'a':              attack enemy square (-attack)
  112. X 'b':              build base (-build)
  113. X 's':              scuttle base (-scuttle)
  114. X 'f':              fill terrain (-fill)
  115. X 'd':              dig terrain (-dig)
  116. X 'p':              paratroops (with -para)
  117. X 'g':              artillery (with -guns)
  118. X 'z':              cancel all movement
  119. X {'0'-'9'}:          reserve (-reserve)
  120. X
  121. X.SH COMMANDS IN TEXT AREA
  122. X CONTROL-c or CONTROL-q: quit the game
  123. X CONTROL-w: quit game but watch others play on
  124. X CONTROL-g: ring bell on all game displays
  125. X ANY OTHER CHARACTER: append to message string
  126. X
  127. X.SH DESCRIPTION
  128. X
  129. Xxbattle  is a   concurrent  multi-player battle  strategy   game  that
  130. Xcaptures the dynamics  of a  wide  range of military  situations.  The
  131. Xgame board is a matrix of game squares (or hexagons- see "-hex" option
  132. Xbelow) which can be  occupied by troops  of various colors  or shades.
  133. XThe number of troops in a square is indicated by the size of a colored
  134. Xtroop square (or  circle, with "-hex") within the  game   square.  The
  135. Xtroops are commanded by clicking the mouse near the edge of the square
  136. Xin the direction that the movement is to take place.  The command will
  137. Xbe acknowledged by the appearance of a command vector, and thereafter,
  138. Xin each  update cycle, a certain  proportion  of  the troops will move
  139. Xfrom the source  square  to the destination  square until  the  source
  140. Xsquare is exhausted.  Command vectors can be set in several directions
  141. Xat  once, in which case  the movement is   divided evenly between  the
  142. Xvector directions, and the  command  remains  active until  cancelled.
  143. XThus a  trail of squares can be  set up as  a supply   line that  will
  144. Xdeliver troops steadily at  its endpoint.   The command vector remains
  145. Xactive even if the  number of troops  in that square is zero, although
  146. Xthe command vector will then be displayed at half length.  The game is
  147. Xconcurrent, so that  commands  are given continuously  by  all players
  148. Xwithout waiting for  turns.  Different  combinations of options create
  149. Xradically different games, see EXAMPLES below.
  150. X
  151. X.SH Team Colors and Displays (-<color>)
  152. X
  153. XThe game is started from one display, and each player must play from a
  154. Xseparate   display, players being  assigned  to  a  color team by  the
  155. Xcommand  line   option "-<color>   <display>".  The parameter  <color>
  156. Xdetermines the color of the troops of that team, which can be either a
  157. Xmonochrome tone like black, white, dark,  light, or a true  color like
  158. Xred, green, blue,  cyan, yellow and  magenta, although the true colors
  159. Xwill appear on a monochrome monitor  as either black  or white with an
  160. Xidentifying character  in each troop  square which is the first letter
  161. Xof the  color  name.  So  for instance,   the team color  "-red" would
  162. Xappear on  a monochrome monitor as  black with a  letter  "R"   in the
  163. Xmiddle of  each troop square.  A number  of  people can be assigned to
  164. Xthe same team   by repeating the   color for different   displays, for
  165. Xexample "-red  display1 -red  display2", and  each member of  the team
  166. Xwill  be  able  to  command any troops  of  that team.   The <display>
  167. Xargument designates the name of the display on which the  team of that
  168. Xcolor is playing, so each player must be given a  color and a display.
  169. XDisplay  names can be  found with the unix command  "who", which  will
  170. Xlist display names for users in the last column like (cnsxk:0.0).  The
  171. Xsystem console is always designated unix:0.0.  The display name can be
  172. Xmodified  for remote  games,  for   example the terminal  cnsxk:0.0 on
  173. Xpark.bu.edu   (email   address of  machine    "park")   is  designated
  174. Xcnsxk.bu.edu:0.0 .   Xbattle recognizes  :0.0  as the default  (screen
  175. Xzero on the display),  so  the  :0.0 may  be omitted  from the display
  176. Xname.   Xbattle also recognizes a  special  display name  "me",  which
  177. Xmeans the display  from  which  the program is started.   When playing
  178. Xbetween color and monochrome displays the colors can be specified more
  179. Xexactly  by  concatenating  a color name  with  a monochrome name, for
  180. Xexample "-redwhite" (color first),  which would  display  that team as
  181. Xred  on color monitors and white  on monochrome monitors.  All command
  182. Xline  flags and  arguments for the  game can be  given in any order as
  183. Xlong as the argument directly follows its flag, and most arguments are
  184. Xscaled to range from 1 to 10, with 5  being the  default value.  It is
  185. Xalso  possible  to set  different  game  parameters  for the different
  186. Xdisplays, so that the game can be  biased to  favor a less experienced
  187. Xplayer- see BIASED GAMES below.
  188. X
  189. X.SH OPTIONS (-options)
  190. X
  191. XA large variety of game options are available to define the parameters
  192. Xof the game.  In essence, xbattle  is  many  thousands of games rolled
  193. Xinto one.  The options can be presented in any order, and may be typed
  194. Xin with  the command line, or they  can be stored  in an  options file
  195. X(default filename = default.xbo),  or some can be  stored   and others
  196. Xadded to the command line.  The format for the options file is exactly
  197. Xthe same as the format  for the command  line except that in the  file
  198. Xeach option (plus argument, where applicable) is placed  on a separate
  199. Xline.  So, for example, the game...
  200. X
  201. X  xbattle -black me -white cnsxk:0.0 -armies 4 -farms 5 -attack
  202. X
  203. Xcould also be played with the command...
  204. X
  205. X  xbattle -black me -white cnsxk:0.0 -options myoptions.xbo
  206. X
  207. Xwhere the file myoptions.xbo consists of the lines...
  208. X
  209. X  -armies 4
  210. X  -farms 5
  211. X  -attack
  212. X
  213. XThe only command line entries that can NOT be  included in the options
  214. Xfile are the team color and display arguments.
  215. X
  216. X.SH Troops (-bases, -rbases, -armies, -militia)
  217. X
  218. XInitial troop allocation  is controlled  by several  command  options,
  219. Xincluding -bases  <n>, -rbases  <n>,  -armies  <n> and   -militia <n>.
  220. XArmies and  militia are  troops on the  gameboard, whereas bases which
  221. Xare indicated by circles on the gameboard,  provide a steady supply of
  222. Xtroops.  The   -bases option  allocates   <n>  bases  to each    team,
  223. Xsymmetrically arranged on the game board, whereas -rbases <n> arranges
  224. Xthem  randomly   (which works  well  with  the  -horizon option).  The
  225. X-armies option allocates <n> armies (full troop squares) symmetrically
  226. Xarrayed, whereas -militia <n> scatters militia of random strengths to
  227. Xrandom locations, with a probabilistic density  of  <n>.  At least one
  228. Xof these four  options is required  to provide initial troops  for the
  229. Xgame, and they  may be  used in combination.   The -bases  and -armies
  230. Xoptions will only work for four or less teams.
  231. X
  232. X.SH Resupply (-towns, -farms, -decay)
  233. X
  234. XThe bases created by the -bases or -rbases, produce a steady supply of
  235. Xfresh troops.  The bases can be occupied by an  opposing team, and the
  236. Xtroops produced  by such bases are always  the  color of the occupying
  237. Xforce.  The capture of all bases thus  becomes the strategic objective
  238. Xof the  game.  This arrangement  simulates desert warfare, as long and
  239. Xtenuous  supply lines  develop between the  base and the battle areas.
  240. XAnother  form of resupply  is provided by  the  command option "-towns
  241. X<n>".  This  produces a  number of smaller  unoccupied  supply sources
  242. Xscattered randomly over the game board at  a density determined by the
  243. Xargument <n>, and with random  rates of troop production, indicated by
  244. Xthe radius of the circle on the game board.  Towns must be occupied by
  245. Xa team to begin producing troops.  This option  simulates yet a larger
  246. Xscale of operation as the  combatants battle to occupy  the towns.   A
  247. Xmore distributed  form  of resupply  is evoked  by the command  option
  248. X"-farms <n>" whereby  every   square of the   game  board will produce
  249. Xtroops   as soon as   it is occupied,   at a rate  proportional to the
  250. Xargument  <n>,  and the strategic  objective becomes the occupation of
  251. Xthe largest areas  of the  gameboard.  This  option  simulates  a  yet
  252. Xlarger scale of operation and requires complex management of resources
  253. Xto concentrate  the distributed  resources  and deliver  them   to the
  254. Xbattle front.  In  large  scale  scenarios additional  realism may  be
  255. Xadded by  using the -decay  option whereby the  troop  strength in all
  256. Xtroop squares  decays constantly  in proportion  to  the value  of the
  257. Xdecay argument.  This reflects the fact that armies constantly consume
  258. Xresources even  while they are  idle, and  an   army without  constant
  259. Xresupply  will wither  away.  With the  decay option,  a set of bases,
  260. Xtowns or farms can only support armies of limited size, and the armies
  261. Xwill  dynamically grow or shrink until   they reach that  size.  Since
  262. Xthis number  includes the troops  that make  up the  supply  line, the
  263. Xfighting power  of an  army diminishes  with the  length of the supply
  264. Xline.  The default  decay value is   zero, i.e.   no   decay.  All the
  265. Xresupply options can be used in any combination.
  266. X
  267. X.SH Interactive commands (mouse and keyboard)
  268. X
  269. XMovement  commands are  performed with    the left and middle    mouse
  270. Xbuttons, to direct the  command vector.  A  click in the center of the
  271. Xgame square clears all command vectors; a  click near an edge sets the
  272. Xvector in  that direction, and  a  click near a  corner  sets the  two
  273. Xadjacent  vectors.   The left mouse toggles  command vectors while the
  274. Xmiddle   mouse clears existing  vectors  and   sets a  new vector  (An
  275. Xalternative command   system  is  available,  see  COMPILATION OPTIONS
  276. Xbelow).  The right mouse is used to repeat the last used command (with
  277. X-repeat option).  The keyboard is interpreted differently depending on
  278. Xwhether the mouse is positioned on  the gameboard or  on the text area
  279. Xbelow.  On the gameboard,  the the keys control-s and  control-q pause
  280. Xand  resume the game respectively.  The  'z' key  cancels  all command
  281. Xvectors to the square holding the  cursor (like a  click in the center
  282. Xof the square).   The key control-p  saves the current  game to  a map
  283. Xfile (see Saving Game State commands below).  There are also a variety
  284. Xof   keyboard commands available  with   different options, to control
  285. Xspecial functions on the gameboard.  These keystrokes are described in
  286. Xdetail with the description of  the  appropriate  options (see  -guns,
  287. X-para, -build, -scuttle,  -fill, -dig, -reserve).   In the  text  area
  288. Xbelow the keyboard,   the keys control-c and  control-q  both exit the
  289. Xplayer from the game, although the game continues among  the remaining
  290. Xplayers until they  also quit, and  the key  control-w also exits  the
  291. Xplayer, but allows him to continue watching  as the other players play
  292. Xon.  The  rest of  the keyboard  is   used for  communication  between
  293. Xparticipants  through text   lines.  This is  especially useful   when
  294. Xplaying between remote sites- each team has its own text line, and the
  295. Xcolor of  the text matches the color  of the  team.  The control-g key
  296. Xrings the bell on all displays, which can be used to draw attention to
  297. Xa new message.
  298. X
  299. X.SH Enhanced movement commands (-repeat, -bound, -march, -erode)
  300. X
  301. XWith the option "-repeat"  you can repeat  the last command  using the
  302. Xright mouse.   If for example your  last command to a square consisted
  303. Xof a "move up" command  by  clicking near the top  edge of the square,
  304. Xyou can now command other squares to also move up by clicking in those
  305. Xsquares with the right mouse.  That way you no longer have to aim your
  306. Xclick exactly at  the  top side  of  those squares, but can  click the
  307. Xright mouse  anywhere in that  square, which saves time.  This command
  308. Xis supported in biased games- i.e.  it can be set for one team but not
  309. Xanother.  Commands can be made to apply to  more than one  square with
  310. Xthe option "-bound". This is achieved by defining a bounding rectangle
  311. Xwithin which the command is valid.  For  instance,  to command a block
  312. Xof squares to  all move up  simultaneously,  you place your mouse near
  313. Xthe  top edge of a  square (may be  unoccupied, or enemy occupied) and
  314. Xpress the button (setting the command "go up", then you drag the mouse
  315. Xto another game square  where  you release  the button.  The start and
  316. Xend squares  of  the mouse  drag  define  the opposite   corners  of a
  317. Xrectangle within which  all the game  squares occupied  by your troops
  318. Xreceive the command "go up".  With the option "-march <n>", troops may
  319. Xbe  commanded to  march in a  particular direction and  to continue in
  320. Xthat direction without further commands.  March commands are activated
  321. Xwith  shift left  or shift  middle mouse button.  For example,  if you
  322. Xclick near the  top edge of  a  square  with  "shift left mouse",  the
  323. Xtroops will begin to march up, and on arrival  in the next square they
  324. Xwill transfer the  march  command  to  that square so  that they  will
  325. Xcontinue  marching upwards  to the  next   square,  and so forth. If a
  326. Xmarching  column  encounters   hostile forces  the   march command  is
  327. Xcancelled and  the   column stops.   To prevent marching  columns from
  328. Xtravelling  much  faster than  manually  commanded troops,  the  march
  329. Xargument <n> defines the number of game update  cycles that the troops
  330. Xmust wait in each new square before marching on to the next square, so
  331. Xthat "-march 1" will result in a fast  march, whereas "-march 10" will
  332. Xbe slow.   The  "march command" is  indicated on the  game board  by a
  333. Xdouble command  vector (looks  like  an "="  sign)  in the appropriate
  334. Xdirection, and  the march command  is always passed on  to the head of
  335. Xthe  column.  March   commands may be set  in   squares that  are  NOT
  336. Xoccupied by your troops, and will be activated  when a marching column
  337. Xarrives in that square.  This allows you  to define turns  in the path
  338. Xof the marching column to avoid obstacles.  A "stop march" command may
  339. Xalso be set to program the  marching column  to stop  in  that square.
  340. XThis is achieved by clicking "shift left  mouse" in the center of that
  341. Xsquare, and will be  displayed as an  empty box in  that square.  When
  342. Xset  with  the left   mouse, the  march vector   is  overwritten on to
  343. Xexisting command  vectors encountered in the march  path, whereas when
  344. Xset  with  the  middle mouse   the march  vector  removes and replaces
  345. Xexisting command vectors.  March commands are cancelled by clicking on
  346. Xthe  square without  the shift  key.   March  commands  may be  set in
  347. Xsquares that are  beyond the visible  horizon in the  normal way , and
  348. Xwill appear as a double vector in  that square so long  as that square
  349. Xis not a "sea" square.  If the target  square contains invisible enemy
  350. Xtroops,  then the march  command vectors will  appear  initially,  but
  351. Xdisappear again as soon as the enemy  is approached close enough to be
  352. Xvisible.  March commands are specific to the team that sets  them, and
  353. Xdifferent march  commands may be  set by different   teams in the same
  354. Xgame square.  The double command vectors are visible  only to the team
  355. Xthat sets  them.  The  command line  option "erode   <n>"   limits the
  356. Xlongevity of game squares that belong to you but in which there are no
  357. Xtroops.  Normally,  a  passing column of  troops  leaves   behind it a
  358. X"supply line" of command vectors   that can  be  used any time in  the
  359. Xfuture to send further troops along the same path, and  the game board
  360. Xeventually becomes cluttered with such supply lines, many of which are
  361. Xno longer active.  With  "-erode <n>"  such  disused supply lines will
  362. Xbegin  to erode away  stochastically  with time  10*<n>  update cycles
  363. Xafter the time of the last occupation, so that "-erode 1" provides for
  364. Xfast erosion, whereas "-erode 10" is slow.
  365. X
  366. X.SH Combat (-fight, -disrupt, -attack)
  367. X
  368. XWhenever  troops  of different colors occupy  the  same game square, a
  369. Xbattle ensues, indicated by concentric squares of  the two colors, and
  370. Xa  "crossed swords" (X) symbol.  During  battle, one or both sides can
  371. Xincur  losses   according  to     a random nonlinear     function that
  372. Xdisproportionately favors the  more numerous troops.  The steepness of
  373. Xthe nonlinearity, i.e. the advantage given to the more  numerous side,
  374. Xis controlled by  the  -fight parameter.  A  small  value will produce
  375. Xlengthy drawn out battles which favor a  defensive strategy, whereas a
  376. Xlarge  value produces quick decisive battles  where the random element
  377. Xis more  significant,  favoring an  offensive   strategy  even against
  378. Xsuperior odds. In the absence of the -fight option,  the default value
  379. Xof 5 is used.  The -fight parameter is also automatically modulated by
  380. Xthe game  speed  parameter (-speed) in  order to slow down  battles in
  381. Xfast games and vice versa.  Since only 1/3 of the  troops can  enter a
  382. Xsquare in each update cycle (with the default -move 5), attackers of a
  383. Xfull  square are  always outnumbered  initially,  unless a coordinated
  384. Xattack  is launched  from  three  sides   simultaneously.   The  -move
  385. Xargument thus  has   a significant influence on   the efficacy   of an
  386. Xattack.  The -disrupt option dictates  that when a game  square  comes
  387. Xunder  attack,  all its command   vectors  are immediately  cancelled,
  388. Xbreaking supply lines which must be repaired by hand after the attack.
  389. XIn other  words, there can be no  movement under fire, and even  small
  390. Xforces can  be used to provide covering  fire to  "pin down"  a larger
  391. Xforce,  at least until they  are counter-attacked  and eliminated.   A
  392. Xside effect of this  option  is that  when   an attacking  square   is
  393. Xcounterattacked, both squares attemp to  cancel each other's movement,
  394. Xi.e.  to interrupt the attack.  The square that  is  updated next will
  395. Xprevail, cancelling the command vector of the other square.  Since the
  396. Xgame squares  are updated in a  random sequence, there  is  no telling
  397. Xwhich square will prevail, and the commander must click  repeatedly to
  398. Xrenew   the command vector in  order  to  press  home the attack under
  399. Xopposition.  This  simulates the tactical  situation where a commander
  400. Xmust personally intervene to ensure  the  maximal effort is applied at
  401. Xthe most critical  points of  the  battle.   The -attack  option helps
  402. Xsynchronize attacks on  an enemy square from  different  flanks.  When
  403. Xthe mouse  is pointed  to an enemy  troop square  and  the  "a" key is
  404. Xpressed, all friendly squares adjacent  to  it commence a simultaneous
  405. Xattack.
  406. X
  407. X.SH Guns and Paratroops (-guns, -para)
  408. X
  409. XThe command option -guns <n> enables the shift-right mouse to  be used
  410. Xto control artillery, which can be shot  from any occupied gamesquare.
  411. XThe range and direction of the shot are determined by the  position of
  412. Xthe click in the game square, near center for short range and near the
  413. Xedge for long  range, as modulated by  the argument <n>.   Every shell
  414. Xcosts one troop from  the source square and destroys  one troop at the
  415. Xdestination   square.   The fall of  shot  is indicated  by  the brief
  416. Xappearance of a little dot.  With the -horizon option the fall of shot
  417. Xmay not be visible  for  long range  shots,  although invisible  enemy
  418. Xtroops will be destroyed where the shell  falls.  Artillery can damage
  419. Xboth friend and foe, so it must be  used with caution.  Paratroops are
  420. Xenabled  by the option   -para <n>,  and  are launched    similarly to
  421. Xartillery using control-right mouse button.   The cost of dropping one
  422. Xtroop at   the destination square  is three   troops  from the  source
  423. Xsquare, and the drop zone is indicated  by  the  brief appearance of a
  424. Xparachute symbol.
  425. X
  426. X.SH Environment (-hills, -forest, -sea, -wrap, -seed, -erode)
  427. X
  428. XThe command option -hills <n> initializes  random hills which restrict
  429. Xmovement when going from low to high  elevation,  and enhance movement
  430. Xfrom high to  low, but do   not affect  movement  on  the  level.  The
  431. Xelevation is indicated by the shade of gray,  light  for high and dark
  432. Xfor low on monochrome,  and brownish for  high and greenish for low on
  433. Xcolor displays.  The argument controls the amount of energy gained and
  434. Xlost on hills, i.e. the steepness.  Hills provide a tactical advantage
  435. Xwhen  attacking downhill.  With very steep  hills  (-hills 9) movement
  436. Xfrom  very low   to  very   high  elevation  (a  cliff) is   virtually
  437. Ximpossible.  The command option -forest <n> initializes random forests
  438. Xwhich restrict movement within the forest, but do  not affect movement
  439. Xfrom thin to  thick forest.  On both   color and monochrome  displays,
  440. Xthick forest  is  dark, and thin is  light.  When  used in conjunction
  441. Xwith hills,  the forests    thickness correlates  exactly   with  hill
  442. Xelevation.  When  transitioning from one forest  thickness to another,
  443. Xthe  movement is determined by the  destination square, not the source
  444. Xsquare, so  that troops deployed  within  a forest but at the boundary
  445. Xhave a  tactical advantage over those   deployed outside the boundary.
  446. XThe command option -sea <n>  generates randomly distributed bodies  of
  447. Xwater, whose  prevalance is  determined  by  the  argument <n>.   Such
  448. Xbodies of water cannot be crossed by infantry.   A small value creates
  449. Xscattered ponds and lakes, which influences the tactical deployment of
  450. Xtroops, whereas a large value creates a maze-like pattern of fjords or
  451. Xrivers which  isolate blocks of land  into islands which can   only be
  452. Xtaken  by    paratroops.  On monochrome   monitors  water appears dark
  453. Xmottled grey,  and  on color  monitors it is   pale blue.  The command
  454. Xoption -wrap (no arguments) allows wrap-around  on the gameboard.  The
  455. Xcommand  option -seed <n> allows  control  of  the random number seed,
  456. Xotherwise selected based on the  process ID and the time,  and printed
  457. Xto  the text line.   Using  the same  seed   will reproduce the   same
  458. Xconfiguration of hills, towns, seas and militia.
  459. X
  460. X.SH Modify Environment (-dig, -fill, -build, -scuttle)
  461. X
  462. XThe command options -dig and -fill  allow run time modification of the
  463. Xterrain by digging hills down to lower elevation or filling them up to
  464. Xhigher  elevation.  This  allows  the  construction  and breaching  of
  465. Xdefensive  fortifications.   The cost of these  operations is one full
  466. Xtroopsquare, and is accomplished by positioning the mouse on  the full
  467. Xsquare and striking the key  "d" for dig, and "f"  for fill.  With the
  468. X-sea  option, -dig  <n> and -fill  <n>   should  be  supplied with  an
  469. Xargument, whereby, digging  below the lowest  elevation produces a sea
  470. Xat the cost  of <n> full  troopsquares, which  can similarly be filled
  471. Xback up again at the same cost.  The arguments for -dig and -fill must
  472. Xbe the same value (the second argument given will  be applied to both)
  473. Xand  will be ignored for  digging and filling of hills.    Since it is
  474. Ximpossible  to  occupy a  'sea'  square to  fill  it,  filling seas is
  475. Xaccomplished by setting the command vector as if to move into the sea,
  476. Xand  then pressing "f".   For  all  other fill and dig operations  the
  477. Xtroop square may not have any command vectors set.  The -build <n> and
  478. X-scuttle options  allow  the  building and  destruction of   bases (or
  479. Xtowns).  Building is expensive, and requires <n> full troop squares to
  480. Xbuild a complete base.  When the mouse is  positioned on  a full troop
  481. Xsquare and the "b" key is pressed, the troops  are exchanged for a 1/n
  482. Xfraction of a base, displayed as an arc segment.  When  the capture of
  483. Xa base by the enemy seems inevitable, it is often advisable to scuttle
  484. Xthe base  to  prevent it falling  into  enemy   hands.   Scuttling  is
  485. Xperformed by  positioning the mouse on  the base and  pressing the "s"
  486. Xkey.  This reduces the size (and production capacity) of that  base by
  487. Xan amount proportional    to  the  number  of troops  engaged   in the
  488. Xscuttling, and a proportion  of those troops are  expended.   Usually,
  489. Xseveral keystrokes are  required   to complete the destruction.   When
  490. Xused in conjunction  with the -build  option, instead of  reducing the
  491. Xsize of the  base,  each scuttle operation  removes  a   section  (arc
  492. Xsegment) of the base proportional  to the number  of troops engaged in
  493. Xthe scuttling, such  that  a full troop square  can scuttle the entire
  494. Xbase with <n> keystrokes.  A  base will not  produce troops if  even a
  495. Xsingle segment is missing, although of course it  is less expensive to
  496. Xrepair (with "b" build) a base with fewer segments missing.
  497. X
  498. X.SH Visibility (-horizon, -hidden, -map, -basemap, -localmap, -nogrid)
  499. X
  500. XThe command option  -horizon <n>   restricts the view  of enemy  troop
  501. Xdeployment to within <n> squares of any  friendly troops.  Horizon can
  502. Xbe called with no argument, in which case the default <n> = 2 is used.
  503. XIntelligence of  more remote   regions can be   gathered by     use of
  504. Xparatroops.   The command option   -hidden  (no  arguments)  makes the
  505. Xcommand vectors of  the enemy  invisible  at any  range.  The  command
  506. Xoption -map is similar to -horizon except that  it restricts your view
  507. Xof geographical objects  as  well  as  enemy troops, although  it will
  508. X"remember" any terrain that you  have seen once, as if  you had mapped
  509. Xthat information.  The -basemap option maps bases and towns as it does
  510. Xthe  terrain.  The option  -localmap  maps  only the local area around
  511. Xyour  troops, and features  disappear  as you move   away  again.  The
  512. Xoption -nogrid (no arguments) suppresses the display of  a grid on the
  513. Xgame board.
  514. X
  515. X.SH Game Parameters (-speed, -square, -board, -manpos, -area, -hex)
  516. X
  517. XThe -speed <n> option controls  the speed of  the update cycle, making
  518. Xfor a fast or slow game.  A fast  game favors  quick reaction time and
  519. Xfast action, whereas a slow game favors  strategy and  intellect.  The
  520. Xoption -square <size> allows you to set the size of the gamesquares in
  521. Xpixels, and the option -board <size> allows you to set the size of the
  522. Xgame board in squares.  The option -manpos allows  you to position the
  523. Xgame window manually rather than having it appear automatically at the
  524. Xupper left origin,  which  is the default.  With  the -area option the
  525. Xnumber of troops  in a game  square is represented by the  area of the
  526. Xtroop square, rather than  by the length of the  side (or diameter for
  527. Xhex).  The -hex  option  creates  hexagonal gamesquares with  circular
  528. Xtroop symbols instead of rectangular game  and troop  squares.  Troops
  529. Xare commanded  from hexagonal  squares in  the usual  way, except that
  530. Xthey will move in one direction only.  In order to command movement in
  531. Xtwo directions simultaneously, locate the mouse near a  corner  of the
  532. Xgamehex and hold the shift key while clicking.
  533. X
  534. X.SH Troop Movement Parameters (-move, -reserve, -digin)
  535. X
  536. XIn each update cycle some fraction of the troops in a game square move
  537. Xto adjacent squares  indicated by the command  vectors.    The default
  538. Xfraction   is 1/3,  so   that  in each successive  cycle,   1/3 of the
  539. Xremaining  troops  move out of the   square until it is   empty.  That
  540. Xfraction is adjusted with the -move argument, 1 for less movement, and
  541. X10 for more movement.  The -reserve option allows the player to define
  542. Xa level  of  reserves  to remain  in  the square  despite the movement
  543. Xcommand.  For  instance a reserve level   of 5 would ensure  that  the
  544. Xsquare will  maintain a reserve  of 50% capacity, and movement  out of
  545. Xthat  square  will only  occur with  troops  in  excess of the reserve
  546. Xlevel.   The reserve level is  set  in a  particular   game square  by
  547. Xpointing to that square with the mouse and striking  a number key, '1'
  548. Xfor 10% reserves, '2'for 20% reserves, and so forth up to '9'  for 90%
  549. Xreserves.    The   option -digin  <n>  simulates  the  time and effort
  550. Xrequired  for troops  to dig in   and build fortifications.    This is
  551. Xachieved by reducing the  rate of flow  of troops into  a square as it
  552. Xfills up  to capacity, so that to  achieve a really  full troop square
  553. Xthe men  must dig in and settle  down to accomodate the last arrivals.
  554. XThe argument <number> modulates the strength of this effect, from 1 to
  555. X10 for small to large.  -digin is supported in the bias mode.
  556. X
  557. X.SH Store and Replay (-store, -replay)
  558. X
  559. XThe  -store  <file> option allows you  to  store the  graphics drawing
  560. Xcommands to a file, which can be viewed later with the  -replay <file>
  561. Xoption.  When -replay  is used, all  other command options are ignored
  562. Xexcept the -<color> <display> options, which can  be used to  send the
  563. Xreplay to other  displays.  When doing  so, only the <display> portion
  564. Xof the option is used, the <color> is ignored.  So, if you play a game
  565. Xwith  many  command  line parameters  and  several  displays  with the
  566. Xargument -store <file>, after the game you can repeat the same command
  567. Xline but just change -store to -replay, and the game will  be replayed
  568. Xon  the displays  of  all  the  original  combatants.  When xbattle is
  569. Xcalled with  the  -replay option alone, the  default  display will  be
  570. X"me".  If store or replay are called without a  file name, the default
  571. Xname "xbattle.xba" will be used.  In the replay, the view restrictions
  572. Xof  the -horizon option  are  deactivated, i.e.  all  enemy troops are
  573. Xvisible.
  574. X
  575. X.SH Saving Game State Saving, Loading, and Editing (-edit, -load)
  576. X
  577. XThe  game state can  be saved at any point  during  the game  with the
  578. Xcontrol-p  key.   This  creates  a  file  called  "xbattle.xbt", which
  579. Xrepresents the state of the game board at the  time of saving.  Future
  580. Xgames can be started from the saved game state with the command option
  581. X"-load <file>"  where    <file> is  optional  if  the    file name  is
  582. X"xbattle.xbt".  Note that most game parameters  ARE NOT STORED.   Only
  583. Xterrain features    (forest,  hills,  seas,  towns etc.)    and  troop
  584. Xdeployment.  This means that if you were playing with  -farms, -decay,
  585. Xand -guns then you will have to type them in if  you want them for the
  586. Xnew  game.   The terrain  and  boardsize  of  the saved map  file will
  587. Xoverride all terrain and boardsize arguments when loaded.  Game boards
  588. Xcan be created or  modified with  the -edit function, which  is called
  589. Xwith the command option "-edit <file>" where <file> is optional if the
  590. Xfile name is "xbattle.xbt".  With this option, no  game is played, but
  591. Xinstead, the mouse and key commands control the features of the map to
  592. Xbe edited.  To edit an existing file, use "-edit <file>" and  type "l"
  593. Xwhen the editor comes up.  This will  load the  file named in the edit
  594. Xargument.  To save that file, type "d" and  the file will  be saved to
  595. Xthe same file name.   No provision is made for  saving to a  different
  596. Xfile name.  When using the edit mode,  the command line arguments must
  597. Xreflect the  number and color of  players  to be used,  and   the sea,
  598. Xforest or hills  options if they will  be  required.  For example,  to
  599. Xcreate a map called "mymap.xbt" with three color teams and seas, could
  600. Xuse the command  "xbattle -edit mymap.xbt -sea 7  -white me -black you
  601. X-dark you".   Note the  use of the special  display  "you", which is a
  602. Xdummy display  name  used as a place  holder   for the black  and dark
  603. Xcolors.  The interactive commands are as follows:
  604. X
  605. X left button:       lower terrain by one notch (sea lowest)
  606. X middle button:       raise terrain by one notch (sea lowest)
  607. X right button:       toggle between lowest and mid terrain
  608. X
  609. X c:      create city (growth = 100)
  610. X t:      create town (growth = 80)
  611. X v:      create village (growth = 60)
  612. X k:      increase size of city by 5 percent
  613. X j:      decrease size of city by 5 percent
  614. X s:     scuttle city - remove 36 degrees of arc
  615. X b:      build city - add 36 degrees of arc
  616. X
  617. X 0-9:  create troop square with troops of current color
  618. X [:      decrease troop amount by 1
  619. X ]:      increase troop amount by 1
  620. X r:      increment current color
  621. X f:      change color of existent troop square
  622. X d:      dump board with name <filename>
  623. X l:      load board with name <filename>
  624. X e:      exit
  625. X
  626. X.SH BIASED GAMES
  627. X
  628. XThe game can be biased to favor a less experienced  player, or for any
  629. Xother reason, in the following way.  In the normal syntax, the command
  630. Xline argument "-<color>"  is immediately followed  by  the "<display>"
  631. Xargument, for example "-black  me".  It is  possible to define command
  632. Xline  options that are  specific to only  one  display with the syntax
  633. X"-<color> { <options> } <display>" where <options> refers to a list of
  634. Xcommand line options as before,  but is included  in  a set of  braces
  635. Xbetween the team color and the display (note the spaces on either side
  636. Xof the braces).  For example,
  637. X
  638. X  xbattle -black { -fight 10 } me -white { -fight 5 } cnsxk
  639. X
  640. Xwhere black (on display "me") has the  advantage  of greater firepower
  641. Xthan white  (on  display "cnsxk").    Not all options can  be  biased,
  642. Xespecially options that control the global behavior of  the game, such
  643. Xas -speed  and -board.  The  options  that can  be  biased  are -bases
  644. X-rbases -armies -militia -guns -para  -move -reserve -fight -fill -dig
  645. X-scuttle -build -hills -forest -decay -nogrid -square -manpos -horizon
  646. X-map -basemap -localmap -wrap.  Note also that if you are using player
  647. Xspecific and global options, the global  options MUST be listed first,
  648. Xotherwise they will overwrite the play specific options.  For example,
  649. X
  650. X  xbattle -black { -fight 10 } me -white cnsxk -fight 5
  651. X
  652. Xwill result in  a fight  5 for both  players.  In order to achieve the
  653. Xdesired result, the command line must be...
  654. X
  655. X  xbattle  -fight 5 -black { -fight 10 } me -white cnsxk
  656. X
  657. Xwhere the local option overwrites only the black team's fight value.
  658. X
  659. X.SH EXTENSIONS
  660. X
  661. XA great deal of effort  has been made  in the design  of this  game to
  662. Xmake  it as    simple  and   modular as  possible,    with   extensive
  663. Xdocumentation throughout the source code, in the hope that others will
  664. Xcreate new and exciting  variations of the  game while maintaining the
  665. Xelegance and modularity  of the original  design.  I would be grateful
  666. Xif such    variants   were sent  to  us    at   slehar@park.bu.edu and
  667. Xlesher@park.bu.edu  to be combined  into a new version reflecting  the
  668. Xbest of the modifications.
  669. X
  670. X.SH EXAMPLES
  671. X
  672. XHere are some example games to give an idea of  the variability of the
  673. Xparameters.  The  first example is a  simple symmetrical  game between
  674. X"me" in black on my own display, and  a  white opponent on the display
  675. X"cnsxk:0.0".    The troops will  be   rapidly  exhausted in this small
  676. Xskirmish.  
  677. X
  678. X  xbattle -black me -white cnsxk:0.0 -armies 4
  679. X
  680. XThe  next example  adds bases,  which  will  produce a much  prolonged
  681. Xconflict involving long supply lines between the front and  the bases,
  682. Xmuch like  desert warfare.  One conflict in  this  battle represents a
  683. Xskirmish   like the entire  game  of  the  previous  example.  In this
  684. Xexample black is playing on the display cnsxk:0.0, and white is on the
  685. Xsystem console.  Note that the extension ":0.0" can be omitted.
  686. X
  687. X  xbattle -black cnsxk -white unix -armies 4 -bases 2
  688. X
  689. XThe  next example  is a game  with militia scattered around initially,
  690. Xthat  have  to race  to  occupy  the  towns  and  link up with   their
  691. Xcompatriots before they can eliminate  the enemy.   This is a  dynamic
  692. Xscenario requiring tactical and strategic skill and fast reflexes.  In
  693. Xthis example black is playing on  cnsxk:0.0  while white is playing on
  694. Xthe system console of the remote machine thalamus.bu.edu.
  695. X
  696. X  xbattle -black cnsxk -white thalamus.bu.edu -towns 2 -militia 2 -hills 7
  697. X
  698. XHere is a favorite around B.U.   where the land  is broken up  by many
  699. Xbodies  of water creating isolated islands,  and view  of the enemy is
  700. Xrestricted  to   nearby   squares, resulting   in   lots of surprises.
  701. XParatroops can be   used  for reconnaisance by  launching  them   into
  702. Xunknown  sectors, and they  must  be  used  in conjunction with  heavy
  703. Xartillery barages for airborne assaults from one landmass to the next.
  704. XIn this example the color display will show cyan and  red teams, while
  705. Xthe monochrome monitor will  show white and black  teams respectively.
  706. XThe decay  option prevents huge armies from  building up at the end of
  707. Xthe game, and the -store option is used to store this game to the file
  708. X"battle.xba".
  709. X
  710. X  xbattle -cyanwhite thalamus:0.0 -redblack cnsxk -rbases 5 -sea 8 -guns 4 -para 4 -horizon 2 -decay 3 -store xbattle.xba
  711. X
  712. XNow, the previous stored game  is  replayed to the original displays by
  713. Xrepeating the original command line  except that -store  is changed to
  714. X-replay.   This  is convenient  if  you   have command   line  editing
  715. Xfacilities.
  716. X
  717. X  xbattle -cyanwhite thalamus:0.0 -redblack cnsxk -rbases 5 -sea 8 -guns 4 -para 4 -horizon -replay xbattle.xba
  718. X
  719. XWith -replay, all arguments are actually  ignored except the displays,
  720. Xso you could achieve exactly the same result with the simpler command
  721. X
  722. X  xbattle -black thalamus:0.0 -black cnsxk -replay
  723. X
  724. Xwhere the   -black   argument  flags  the subsequent  argument    as a
  725. Xdisplayname,  but  is otherwise  ignored, i.e.  any  color  name would
  726. Xsuffice.  The filename  for -replay  is omitted,  so that the  default
  727. Xfile name "xbattle.xba" is used.
  728. X
  729. XThe next example illustrates the use of the options  file, tribal.xbo,
  730. Xto set  up a  game  including,  decay, seas, farms,  militia, and many
  731. Xother options.
  732. X
  733. X  xbattle -black me -white thalamus -options tribal.xbo
  734. X
  735. XOptions files can also be read in individually for the two players, as
  736. Xin the following example...
  737. X
  738. X  xbattle -options game.xbo -black me -white { -options weak.xbo } thalamus
  739. X
  740. XThis results in a biased game where  both black and white  receive the
  741. Xoptions  defined   in game.xbo,   and  white   receives  some specific
  742. Xhandicaps defined in  weak.xbo.   For example, weak.xbo could define 2
  743. Xrbases instead of 5, horizon of 1 instead of 2, and lower movement and
  744. Xfighting values.  Since these  options  overwrite existing options  in
  745. Xgame.xbo, the command line  arguments   may NOT be typed in  arbitrary
  746. Xorder,  because later options  overwrite  the  earlier options, so the
  747. Xglobal options must  be defined  before they are  overwritten  by  the
  748. Xspecific options to the white team.
  749. X
  750. X.SH PLAYING TIPS
  751. X
  752. XThe first thing you must learn is to  click quickly and  accurately on
  753. Xthe gamesquares.  Do  not focus  your attention  on  one region of the
  754. Xboard, but scan the whole board frequently.  Look  at the big picture-
  755. Xcapture the towns that will  support each other,   especially  a  well
  756. Xpositioned cluster of big towns.  Eliminate all enemy troops from your
  757. Xrear,  and  advance outwards, preferably  from  a corner,  with a well
  758. Xsupplied front.   Travel in convoy  for speed  and  efficiency in safe
  759. Xregions, especially if you are playing  with -decay,  but fan out near
  760. Xthe enemy to  provide alternate routes to  a broad front (click on the
  761. Xcorner to  open  two command  vectors  simultaneously).  Avoid head-on
  762. Xassaults  on the enemy, but rather  dig in and wait  for him to attack
  763. Xwhile you try to turn his flank and cut off his supplies to the front,
  764. Xor concentrate at his weakest points.  Go for the jugular-  attack his
  765. Xsupply sources directly.   When advancing, try  to attack weak squares
  766. Xwith strong ones  to  gain maximum advantage,  and be alert for losing
  767. Xbattles of your weak squares pouring into a strong enemy square, which
  768. Xwill  drain your resources until you  cancel  the attack and build  up
  769. Xreserves.    If however  you  are   fighting  a delaying action,    or
  770. Xretreating under fire then you should attack strong enemy squares with
  771. Xyour  weak ones   on a  broad  front to  conserve resources.  This  is
  772. Xparticularly effective with the -disrupt option.  Always try to attack
  773. Xa square  from two or  more sides, and  build  up  sufficient strength
  774. Xbefore launching an  attack on  a  large square.  Always consider  the
  775. X"manufacturing  capacity" of the enemy, i.e.   the  number and size of
  776. Xbases and towns,  as the one with  the most  capacity  will eventually
  777. Xwin.    Watch out for  single   enemy commandos  near your unprotected
  778. Xbases, especially when playing with paratroops, and use such commandos
  779. Xto good effect against an inattentive opponent.   You  can keep a base
  780. Xfortified while  sending  troops to  the front  by  use   of recurrent
  781. Xconnections, going in loops or in both directions,  or by establishing
  782. Xdead-end branches along the supply line  to accumulate local reserves.
  783. XYou should  always   have a few strong  reserves  near  your base when
  784. Xplaying with  -horizon or -para, to ensure  against surprise  attacks.
  785. XWhen playing with hills, a cliff is best climbed in parallel, i.e.  by
  786. Xsplitting the convoy into multiple parallel  paths up the  cliff face,
  787. Xand the troops can rejoin  at the top.  When playing  with horizon and
  788. Xparatroops  use the paratroops  to gather intelligence from beyond the
  789. Xhorizon.  When playing with paratroops or artillery, you  can create a
  790. Xnetwork of recurrent   connections  near the bases that  will  provide
  791. Xmutual protection by  automatically sending men  into any part of  the
  792. Xnet that is knocked out.   Paratroops are expensive, so  test the  aim
  793. Xwith artillery (right mouse)  before  launching the paratroops  (shift
  794. Xright mouse), although  this  works  only  if  the   -para  and  -guns
  795. Xarguments are equal.  When using artillery, have a large contingent of
  796. Xinfantry  ready to move in immediately  after the  barage.  Paratroops
  797. Xand artillery are helpful,  but  it is the grunts  that  must actually
  798. Xtake the territory.
  799. X
  800. X.SH COMPILATION OPTIONS
  801. X
  802. XCertain other game options or alternatives are allowed at compile time
  803. Xby  editing the file  "extern.h" and  setting  certain global flags to
  804. XTRUE or FALSE, before compiling the program.   The flag UNIX should be
  805. Xset to FALSE if you will be running  on a non-unix platform.   On unix
  806. Xsystems the select() function is used to enhance efficiency and reduce
  807. Xcomputer load.  The INVERT flag may be set to FALSE if you do not like
  808. Xthe appearance of the inverted command vector within the troop square.
  809. XThe VARMOUSE option  may be set  to TRUE  if you would like  the mouse
  810. Xoperations to  be redefined  so    that the left  mouse adds   command
  811. Xvectors, and the middle mouse subtracts such vectors.  The  flag PAUSE
  812. Xmay be set  to FALSE to disable the  ability to  pause and  resume the
  813. Xgame with control-s  and control-q.  The flag  NORAND48 must be set to
  814. XTRUE  if your  system does not define  drand48() and srand48() in  the
  815. Xmath library.   The SHOWFLOW  flag in extern.h  may be set to FALSE to
  816. Xmake the displayed command vectors remain at full length even when the
  817. Xtroop strength is  zero.  The flag  NEWCOLORMAP can be set to  TRUE to
  818. Xcreate a private color map for the game, useful when the default color
  819. Xmap is full.  The flag MULTITEXT can be set  to FALSE, whereby instead
  820. Xof having  a single  text line   for each player,  two text  lines are
  821. Xshared by  all the players.  The flag  MULTIFLUSH can  be set to TRUE,
  822. Xwhereby command vectors appear immediately after the command is given,
  823. Xalthough performance is noticably impaired.
  824. X
  825. X.SH BUGS
  826. X
  827. XWhen the  system is slow, there  is a noticable  time lag  between the
  828. Xmouse positioning and the  keystroke registration, so that a keystroke
  829. Xfor a square pointed to by the mouse might be actually recorded in the
  830. Xnext square the mouse moves to.  Similarly,  a shifted mouse click (as
  831. Xfor paratroops) might be delayed so that  by the  time it is processed
  832. Xthe shift key is no longer being depressed, and it  is recorded  as an
  833. Xunshifted mouse  click (as  for artillery).  Under such circumstances,
  834. Xavoid  issuing  rapid command sequences.   When  playing a remote site
  835. Xover the network, there is often  a lag between  the displays, and the
  836. Xremote  site  plays  at   a disadvantage.  This  problem   is somewhat
  837. Xalleviated by using a slow -speed  value.  When the -disrupt option is
  838. Xused, the multiple  clicks required to  press home an  attack  can bog
  839. Xdown the event queue and lead to slow execution.  The shade "gray2" is
  840. Xavailable, although on  monochrome  monitors  it will  appear the same
  841. Xcolor as the  background,  therefore this is  a "stealth" color.  Some
  842. Xsystems do  not support the random  functions drand48() and srand48(),
  843. Xon such  systems  the  flag  NODRAND48  should    be  set to   TRUE in
  844. Xexternals.h before compilation.  When installing xbattle on a NON-unix
  845. Xsystem, the flag UNIX must be set to FALSE in the  file externals.h to
  846. Xprevent the use of the  unix select() function,  which will  result in
  847. Xgreater  computer load.  Occasionally   an "invisible"  sea  square is
  848. Xgenerated, into which troops  cannot be moved.   The options file does
  849. Xnot  accept the team  color  /  display combination.    When a {player
  850. Xspecific  option} is   followed by a universal  option,  the former is
  851. Xoverwritten  by  the latter,  so  the  {player specific option} should
  852. Xalways follow   the  universal option.   The   "-hex" option  will not
  853. Xsupport the "-horizon" and "-wrap" options simultaneously.
  854. X
  855. X
  856. X.SH AUTHORS
  857. X
  858. XSteve  Lehar, Boston University (slehar@park.bu.edu) and   Greg Lesher
  859. X(lesher@park.bu.edu), and  some   sections  of code  from  Mark  Lauer
  860. X(elric@basser.cs.su.oz.au).  Helpful suggestions,  bug    reports, and
  861. Xideas were gratefully received  from numerous contributors   from  all
  862. Xover the world.
  863. END_OF_FILE
  864. if test 47864 -ne `wc -c <'xbattle.man'`; then
  865.     echo shar: \"'xbattle.man'\" unpacked with wrong size!
  866. fi
  867. # end of 'xbattle.man'
  868. fi
  869. echo shar: End of archive 3 \(of 7\).
  870. cp /dev/null ark3isdone
  871. MISSING=""
  872. for I in 1 2 3 4 5 6 7 ; do
  873.     if test ! -f ark${I}isdone ; then
  874.     MISSING="${MISSING} ${I}"
  875.     fi
  876. done
  877. if test "${MISSING}" = "" ; then
  878.     echo You have unpacked all 7 archives.
  879.     rm -f ark[1-9]isdone
  880. else
  881.     echo You still need to unpack the following archives:
  882.     echo "        " ${MISSING}
  883. fi
  884. ##  End of shell archive.
  885. exit 0
  886.