Provided by: wordwarvi_1.00+dfsg1-3build1_amd64 bug

NAME

       wordwarvi - Old school '80's style side scrolling space shoot'em up game.

SYNOPSIS

       wordwarvi   [   --bw   ]   [   --blueprint   ]   [   --brightsparks   ]   [   --difficulty
       easy|medium|hard|insane|batshit-insane ] [  --explosionfactor  n  ]  [  --fullscreen  ]  [
       --joystick  device ] [ --nomusic ] [ --nomissilealarm ] [ --norumble ] [ --nostarfield ] [
       --nstars n ] [ --randomize ] [ --randomseed n ] [ --squareexplosions  ]  [  --rumbledevice
       device ] [ --sounddevice n ] [ --thicklines ] [ --width w ] [ --height h ] [ --framerate f
       ] [ --retrogreen ] [ --version ] [ --xmas ]

DESCRIPTION

       wordwarvi, or "Word War vi", is an old school '80's style side scrolling space shoot'em up
       video game.

       You  pilot  your  "vi-per" craft through core memory, trying to avoid OS defenses and wipe
       out the memory hogging emacs processes and rescue lost vi-per pilots (.swp files) stranded
       from crashed vi sessions before heading through the socket to the next node in the cluster
       to do it all over again.

Options:

       --bw   Render the game in black and white, as if on graph paper.

       --blueprint
              Render the game to look like a blueprint.

       --brightsparks
              Enables a visual effect for sparks to be rendered bigger and brighter  than  usual,
              at  the cost of some performance.  It is a matter of personal preference whether it
              looks better or worse.

       --difficulty easy|medium|hard|insane|batshit-insane
              Sets the difficulty level to one of easy, medium, hard, insane, or batshit-insane.

       --explosionfactor n
              Produce explosions with the number of  sparks  multiplied  by  n.   Default  is  1,
              integers  up  to  5  are permitted.  Performance may suffer with large values of n.
              This option only has an effect when the squareexplosions option is not in effect.

       --framerate f
              Sets the target frame rate to f frames per second.  The default is  30  frames  per
              second.   If  your computer is too slow to achieve the specified (or default) frame
              rate at the specified (or default) resolution, decreasing the frame rate  may  make
              the  game respond better.  Likewise, at lower resolutions, higher framerates may be
              possible, or lower resolutions may make the game perform better at  a  given  frame
              rate.  It should be noted that The game is designed (and tested) to be played at 30
              frames per second.

       --fullscreen
              Expand the window to fill the  screen.   This  option  overrides  the  --width  and
              --height options, if either of those are also specified, and scales the graphics to
              the size of the screen.  You can also use the F11 key to toggle between  fullscreen
              and  windowed  mode  after  the  program is started.  If the --fullscreen option is
              used, then the F11 key has no effect.

       --height h
              Sets the window size to h pixels high, scaling  all  graphics  as  necessary.   The
              default is 600 pixels.

       --joystick joystick-device
              Use  the specified device node joystick-device to access the joystick.  The default
              device if this option is not used is /dev/input/js0.  If you  have  more  than  one
              joystick,   or   if   your  OS  presents  joysticks  at  device  nodes  other  than
              /dev/input/js0, that's what this option is for.

       --nomusic
              Don't play  music,  or  even  decode  the  music  files  into  memory.   Cuts  down
              considerably on memory usage.

       --nomissilealarm
              Don't  sound  an  alarm when a missile locks on to your ship.  Some people find the
              sound of the alarm incredibly annoying.  (Alarms are supposed to be annoying.)  The
              audio alarm can also be toggled on and off with the '1' key.

       --norumble
              Don't use joystick rumble effects.

       --nostarfield
              Don't draw a starfield in the background.

       --nstars n
              Controls  how  many stars are rendered.  Valid values for n must be greater than or
              equal to zero, and less than or equal to 600.

       --randomize
              Uses the microseconds value of the clock as the random seed for generating terrain,
              enemy  placement  etc.   If  you get tired of the regular levels, and knowing where
              everything is, this will get you levels that you haven't seen before.

       --randomseed n
              Uses the specified value, n, as the  random  seed  for  generating  terrain,  enemy
              placement  etc.   This  allows  access  to  new  levels which you may play again by
              specifying the same random seed value.  The default random seed value the game uses
              if none is specified is 31415927.

       --squareexplosions
              Makes  explosions square rather than round.  By default spark velocities are chosen
              by simply assigning independent uniformly distributed  random  angle  and  velocity
              (polar  coordinates).  This  results  in  an explosion which is round in shape.  If
              there aren't too many sparks, you don't really  notice.   With  larger  numbers  of
              sparks,  this round shape can become apparent.  The squareexplosions options causes
              a uniformly distributed random x and y and velocity to be chosen  for  each  spark.
              This  saves  the  computation  of  converting  polar coordinates to cartesian.  The
              default used to be square explosions, with round explosions available only  through
              the  old  --roundexplosions  option.  Now round explosions are the default, and the
              --roundexplosions option was inverted and renamed --squareexplosions.

       --rumbledevice d
              Use the specified device for rumble effects (XBox 360 wired  controller  only,  and
              linux  2.6.26  or  better  required.)   The  default  is  /dev/input/event5.   Your
              controller may show up elsewhere, like /dev/input/event6, for example.   Also,  you
              will  have  to (as root) chown this device node to the user you're running the game
              as, and do this again after each boot, and each time you  hotplug  the  controller.
              There  is  probably  a way to get udev to do this for you automatically every time,
              but I don't know what it is offhand, and it may differ from distro to distro.

       --retrogreen
              Does exactly what it sounds like.

       --sounddevice n
              Use alternate sound device n, where n is an integer.  By  default,  wordwarvi  uses
              the  "default" sound device as estimated by the PortAudio library, which is 0.  You
              can specify other numbers if you have other sound cards, or  a  multichannel  sound
              card.

       --starmotion x
              Controls  how  the  starfield  moves.   Possible  values  of x are 'astronomically-
              correct', 'wrong', 'wronger', and 'wrongest'.

       --thicklines
              Render everything with extra thick lines.

       --version
              Print the program's version number and exit.

       --width w
              Sets the window size to w pixels wide, scaling  all  graphics  as  necessary.   The
              default is 800 pixels.

       --xmas Runs  the  program  in  xmas  mode,  if  it  is  not near Christmas.  If it is near
              Christmas, runs the program in non-xmas mode.

Controls:

       Arrow keys control movement (or vi's hjkl keys will work too, of course.)

       Q puts in a quarter, and starts the game.

       Z fires a laser

       C drops chaff (to confuse heat seeking missiles).

       B drops bombs.

       G drops a gravity bomb, of which you start with 3.

       Additionally, a game pad or joystick may be used.  I have only tried two controllers,  the
       Microsoft  XBox  360  wired controller, and a Logitech Dual Action Rumble USB gamepad.  On
       these, the first (left) joystick controls your ship.  For other controls, just  press  all
       the  buttons  to  see  what they do, as it's not the same from one controller to the next.
       The rumble effect only works with the XBox 360 wired controller, and then only if you have
       linux kernel 2.6.26 or better.  See also the "--rumbledevice" option.

       m toggles music on/off.

       s toggles sound effects on/off.

       1 toggles the audio missile lock-on alarm on/off.

ENEMIES AND OTHER THINGS YOU MAY ENCOUNTER

       Rockets.  Avoid hitting them.

       Jets, which fire heat seeking missiles.  Avoid the missiles.

       Heat seeking SAMs.  Avoid.

       Octo-viruses and tentacles.  Shoot lightning.  Avoid.

       Blimps (representing emacs).  Will shoot heat seeking missiles.  Will leak LISP code.

       GDB processes.  Will attempt to ptrace you with heat seeking probes.  Avoid and/or kill.

       Cron  Jobs.  Will shoot projectiles at you.  Will attempt to collect the vi .swp files and
       carry them to caldera of the volcano, Mount /dev/null.

       Fuel tanks.  Refuel by hovering over the fuel tanks momentarily.

       Laser cannons.  They will shoot laser bolts at you (obviously).

       WINE bottles.  Bill Gates's finest warship is outfitted with a giant WINE bottle to enable
       it to travel through the linux CORE.  Beware of viruses which may be living inside.

FILES

       /dev/input/js0, the joystick device node.

       /dev/input/event5, the rumble effect device.

       /usr/share/wordwarvi/sounds/*.ogg contain the audio data used by the game.

       ~/.wordwarvi/.highscores Contains high score data.

       ~/.wordwarvi/.exrc This file can be used to customize default settings for the game.  Each
       line of the file controls one aspect of the game.  The following commands are understood.

       set bw Render in black and white.

       set blueprint
              Render in the style of a blueprint.

       set brightsparks
              Render sparks brighter than usual.

       set difficulty=x
              Sets the difficulty level.  Valid  values  are  easy,  medium,  hard,  insane,  and
              batshit-insane.

       set explosionfactor=n
              Produce  explosions  with  the  number  of  sparks  multiplied by n.  Default is 1,
              integers up to 5 are permitted.  Performance may suffer with  large  values  of  n.
              This option only has an effect when the squareexplosions option is not in effect.

       set framerate=n
              Attempt to render the game at n frames per second.

       set fullscreen
              Render the game in full screen mode.

       set height y
              Render the game y pixels high.

       set joystick=dev
              Use joystick input device dev.

       set levelwarp=n
              Warp ahead n levels (if compiled in).

       set nomusic
              Do not play, or even decode music data.

       set nomissilealarm
              Do not sound alarm for missile lock on.

       set nostarfield
              Do not render the background starfield.

       set norumble
              Do not use joystick rumble effects.

       set nstars=n
              Controls  how  many stars are rendered.  Valid values for n must be greater than or
              equal to zero, and less than or equal to 600.

       set retrogreen
              Render in the manner of a vector display from the '70's.

       set randomize
              Use a clock generated random seed to initialize levels.

       set randomseed=n
              Use the specified random seed to initialize levels.

       set rumbledeviced=d
              Use the specified device for rumble effects (XBox 360 wired  controller  only,  and
              linux  2.6.26  or  better  required.)   The  default  is  /dev/input/event5.   Your
              controller may show up elsewhere, like /dev/input/event6, for example.   Also,  you
              will  have  to (as root) chown this device node to the user you're running the game
              as, and do this again after each boot, and each time you  hotplug  the  controller.
              There  is  probably  a way to get udev to do this for you automatically every time,
              but I don't know what it is offhand, and it may differ from distro to distro.

       set squareexplosions
              Makes explosions rectangular  rather  than  round.   See  the  description  of  the
              --squareexplosions option for some explanation of why this even exists.

       set sounddevice=n
              Use the nth sound device for audio output.

       set starmotion=x
              Controls  how  the  starfield moves.  Possible values are 'astronomically-correct',
              'wrong', 'wronger', and 'wrongest'.

       set thicklines
              Render everything with extra thick lines.

       set width=x
              Render the game x pixels wide.

       map key action
              valid actions are:
                   soundeffect  down  up       left      right
                   missilealarm bomb  chaff    quarter   pause
                   2x           3x    4x       5x        6x
                   7x           8x    suicide  thrust    music
                   fullscreen   quit  laser    none      reverse
                   gift
              Valid keys are: a-z, A-Z, 0-9, and most printable characters.  Keypad numerals  0-9
              may  be  specified  as  kp_0  through kp_9, and function keys f1 through f12 can be
              specified f1 through f12 (obviously).  In addition the  following  strings  may  be
              used to specify the corresponding keys:
                   space       enter         return   backspace    delete
                   pause       scrolllock    escape   sysreq       left
                   right       up            down     kp_home      kp_down
                   kp_up       kp_left       kp_right kp_end       kp_delete
                   kp_insert   home          down     end          delete
                   insert

       map button n action
              maps  joystick  button  n (where 0 <= n <= 9) to the specified action.  Actions are
              the same as describe above, with the exception of left, right, up and  down,  which
              are  not yet implemented due to laziness on my part.  In any case, if your joystick
              has  a  button  pad  you  want  to  use  to  control  the  motion   of   the   ship
              (left/right/up/down),  most likely it also has some sort of switch to make this pad
              active instead of one of the sets of x/y joystick  axes.  (e.g.  my  Logitech  Dual
              Action  Rumble is like that.)  If that's the case, then you don't need this feature
              anyway, as the joystick will map those button presses onto the appropriate axes for
              you.

       set joystick-[xy]-axis=n.  Allows specifying different axes for
              control  of the players ship for multi axis joysticks.  By default, the first x and
              first y axes are used (n = 0 for x, n=1 for y) A value of -1 disables control of an
              axis.   See  example  .exrc  file  below to find out why you might want to do that.
              There are pictures at http://wordwarvi.sourceforge.net  which  show  how  the  axis
              numbers  and button numbers map to the physical controls for the Microsoft XBox 360
              controller and the Logitech Dual Action Rumble controller

       Example .exrc file:
                    set fullscreen
                    set retrogreen
                    map z chaff
                    map x bomb
                    map c laser
                    #
                    # to set up "Defender" style joystick
                    # controls, vertical motion controlled
                    # by joystick axis, horizontal motion
                    # controlled only by "reverse", and
                    # "thrust" buttons, with x axis joystick
                    # control disabled.
                    #
                    set joystick-x-axis=-1
                    set joystick-y-axis=0
                    map button 0 thrust
                    map button 1 reverse

GOOD LUCK

       You'll need it.

AUTHOR

       Written by Stephen M. Cameron