XBoing Changes
==============

Version 1.6 - 6th August 1993
-----------------------------

- Replied to mail argghhh.
- Added version number to presents screen.
- Fixed multiball bug where there may be 2 balls bouncing - i dies and you have
  none spare so it ends - no longer the case.
- Added some more doco to INSTALL and README
- Added a new special effect where the specials flash around on the intros.
- Changed the thankyou to thank you!! Requested too :-)
- NULL terminated the string returned form strftime() function in highscore.c
- Added some new backgrounds from Anthony's Icons Volume 1.3.
- Killed of the spin.au file as it kills the audio for some reason - put
  a new one in called intro.au that is a powerdown sound.
- All buttons now shoot bullets in game mode. Also the button starts of the
  ball instead of the space bar now.
- Starting level code added. You can start at any level but the highscore
  table will subtract the starting level from the level attained so the scores
  are kept even. ie: start = 34  end = 67  level = 33
- Answered mail - more patches.
- Note that xnews slows the game down heaps. Bummer.
- Lots of people getting bad drawable errors :-(
- FAST_SPEED has been changed from 3L to 1L for gruntish speed.
  thanks - billr@saab.cna.tek.com
- Changed a few levels like 7 & 8 to make them a tad easier.
- Changed the corner bouncing - idea pgh@computer-science.strathclyde.ac.uk
- Now supports NCD audio format. Thanks to Dave Lemke <lemke@verbosa.ncd.com>
- Fixed up SUNaudio.c to not have #ifdefs AUDIO.. everywhere - not needed now.
- Fixed up Imakefile so it wont install sounds if not required.
- Global highscore file only has one entry per person now. So god like beings
  cannot completely take over the whole scoreboard!!
- All level and score functions use u_long so that I can use htonl ntohl for
  network independent conversion of the score and level. May now work over
  networks where the machine has different byte ordering for score file only.
- Added a killer mode where the ball turns red and the ball goes through all
  blocks like butter. It is activated after 10 bonuses have been collected.
- Only real errors now get written to stderr - all others to stdout.
- Added some patches to Imakefile for audio on sparcs jra@hrcms.jazz.att.com
  Also patched SUNaudio.c so that it opens the audio device without hanging.
- Pointer grabbing is now an option with default OFF.
- Fixed bug in options code.
- You can now set the maximum value for the audio volume.
- Fixed a bug in the bonus coin code where on some levels they never appeared.
- Added heaps to the manual page especially on the options.
- Fixed bug with ball being killed off - didn't work correctly.
- No longer exits with errorcode 1 on normal exits.
- Changed the func RenderShape() so it only creates one huge backing store
  pixmap and reuses it so it reduces calls to server.
- MAXPATHLEN not found on SYSV apparently and bug in highscore.c fixed. Thanks
  to John M. Scott <jmscott@setex.august.com>
- Now displays how many bonuses you have during level.
- Plays sound when touching a block
- Added 3 env variables for the highscore file, levels dir, and sounds dir so
  that you can change them to point to your own cheat level files!!

- Following changes provided by :-
   - Jean Yves VIONDURY (viondury@mururoa.imag.fr) and
     Olivier DUMAS (dumas@mururoa.imag.fr) from Bull-IMAG, France.

    . The ball bounce on the paddle has been modified, so that the ball can
      be oriented better than before.
    . The autotilt-random function has been changed, to make the auto-tilt
      function more reliable.
    . Speed modifiers due to Warp values now propose a linear evolution.
    . The global high score file is locked when updated, to avoid conflicts
      and score losses when several people finish their game at the same time.
      This feature hasn't been extensively tested, as these situations aren't
      easy to provoke. But we rely on the system to make it work properly.

- You will all notice the improved ball bouncing off the paddle thanks to the
  above dudes. Thanks again.
- Thanks to christos@deshaw.com for the patch on alt.sources regarding the
  extra error cases in error.c and the ansi trigraphs bug.
- Supports HP audio which I think is .au format as well on the device.
- Discovered the UNOFFFICIAL patch on export. Hmm - don't like the flag change!
- Sent a patch by soulard@corto.inria.fr that fixes the problem where the
  teleport can have problems when it puts the ball in an enclosed area. Thanks.
- Added a paddle shrink and expand block - removed paddlesize getting smaller
  as you get higher in the levels as it is too hard.
- Added README's in all subdirectories. Cleaned up code and directory.


Version 1.5 - 23rd July 1993
----------------------------

- Thanks for all the responses :-) I think I better post it to news!
  Our machine is slowwwwwing down from all those ftpers! I asked for it!
- After first posting I received quite a few mail messages about the
  Imakefile and compiling on other machines. Well I never said it would
  so I have now added the patches/suggestions.
- The semicolin missing was unfortunate. I use gcc by default and that
  of course didn't need that line of code. Sorry folks.
- Colourmap problems - well I did warn that it only works for colour!
  I'll try to get it to work for greyscale - XPM handles it but the
  pixmaps look bad as they were designed for colour only. Sorry.
- I forgot a manual page - Done. Please forgive me if it is pox as it is
  my first go at nroff.
- Updated the Imakefile more to include the directory installation.
- A few lose ends in highscore.c fixed. Also took some useless stuff out of
  the Imakefile.
- Added a pirate block that will kill the ball when hit. You can shoot the
  pirate 3 times and lose 1000 points, saves your ball though.
- Fixed the bullet bug where sometimes on a new level you couldn't shoot
  even if you had bags of ammo.
- Displays level name when starting.
- The way bonuses are added is much better now. Less time wasting.
- Turned off the graphics exposures in the graphics contexts to speed the
  while event loop up considerably. Wow, what a difference.
- Added the timer and special bonus area after squashing the message area
  smaller. This area will have a count down timer and special modes will be
  indicated in the special area. The bonus screen now uses the timer bonus.
- Added TrueColour to the colour test for all those SGI people.
- Added tink code to clear off tinks.
- Improvement for the bullet/ball collision.
- Added an I key for quick Iconification if the boss walks passed.
- Added a -scores option to print highscores to command line.
- If the user has a '&' in their gecos it should be expanded to their user
  name and then the first letter upper case. Patch by jeff@rd1.interlan.com
- Better parsing of level data. Time bonus is now part of level data.
- Fixed major ball debris bug. Easy - clear background before copying it for
  the backing store. Also done for the paddle/bullet. However, I must fix the 
  collision detection though. Sometimes a bit of a block is cut out. :-(
- Added code so that when the ball get stuck in a loop, if the paddle is not
  hit in n seconds then the board will auto tilt.
- Put code in to time the game and show up in highscore table.
  Updated both the X bit and commandline bit.
- Fiddled with the timing routines. Still a bit dodgy.
- Made some calls in highscore table better and to use misc routines.
- The ball collision detection now uses regions that get created as the block
  is created. This is better than a whole lot of if's if you ask me.
- Also fixed the addbonus code and made a MakeBlockGeometry function to
  make code more modular.
- Added a personal highscore feature. Your highscores get saved to a highscore
  file in your home directory.
- Took out the beep if the key isn't recognisied. Started shitting me!!
- Install procedure finally fixed. yeah.
- Made the mouse move the paddle relative to it's position. Asked for a lot.
- Also a new commandline option [-keys] will disable the mouse mode and only
  allow keys to move the paddle. This is better than having both.
- Added a reverse block - when hit the controls reverse for a time span.
- The highscore file is now always fchmod()ed to make sure permissions are
  correct for all players.
- Added a hyperspace block that will turn off the side wall for the
  ball and it will wrap around as such.
- Fixed the text routine calls in intro.c to use calls in misc.c
- Added SUN audio - yeah yeah yeah again.... -sound option for audio.
- Fixed the Imakefile to use the audio settings and how to find sounds.
- Added some sound effects. More later.
- Added code to highlight the score you just obtained in a game in highscore.
- Adjusted the code in bonus.c to allow the space to pressed to skip bonus
  animations but still add the bonus score onto the score etc.
- Add the specials display at bottom of the window indicating the current
  specials mode.
- Added another 10 levels to make a total of 40 levels. It is rather boring
  creating levels :-)
- Added a ball kill key <d>.
- Highscores are saved when quitting with q key.
- Redesigned the keys screen - added a = audio on/off g = game control
  added 1-9 for speed control
- Added an extra ball animation and block.
- Changed the ball slightly so that it has a white circle around it so it will
  stand out better on all backgrounds.
- Cursor is now gone and grabbed to main window.
- Added applause sound when level is finished.
- Found a bad bug in FreeBlocks() or something. Cool. fixes -static bug.
- The gun.c code is re-written so you can shoot more than 1 bullet at a time
  making a machine gun effect. Really cool!!
- Added the maching gun block. It now lasts for a whole level.
- Removed the fore/background colours for gcand to init.c instead of being
  in the misc.c code - reduces the rendershape routine down by 2 calls.
- Took out the backgrounds that were complicated and guady. 4 of them
- Added a walls off block
- Added a teleport block and it works.
- Audio can now be toggled on or off while playing game. a key
- Added the -setup option so sysops can find out whats going on.
- Removed the sideways level off on scrolling.
- Took out a few shitty things.
- Added the presenting screen and all its quirks. More sounds!
- Added a random block that changes colour every now and then.
- Fixed the event loops so that when it is iconified it uses hardly and cpu
  and is much better on the system. Almost dissapears of top!
- Added multi ball mode - what a change!! Anyway up to six balls can now
  bounce around causing havoc!
- Added sticky paddle block and mode - ball sticks to paddle and requires you
  to shoot it off again.
- Added some neat sound effects - sorry for the voice ones but I am no sound
  expert! :-)
- I think I have removed the flash before the window appears.
- Fixed they way the blocks explode after a bomb block.
- Pause is now more friendly to the system like iconify is.
- added a x2 and x4 bonus as well as fixing the old bonus code.
- Fixed the kill ball routine to work for multi balls - kill first in array.
- Made the x2 x4 turn off for each dead ball.
- You can now shoot some of the specials and get rid of them (3 times)
- Changed the way the ball checks for collisions - works well now - no
  left overs and few muck ups. Cool - at last.
- Manual page update - install updated - readme updated - Imakefile updated
- Fixed a few little bugs - cannot use escape in bonus mode 

Version 1.4/1.0 BETA
--------------------

- Under developement, no time for notes. ;-)

-------------------------------------------------------------------
Justin Kibell - jck@citri.edu.au - +61 3 282 2456 - Vic - Australia
