Candy Cruncher
Version 1.50
May 10, 2002
by Pyrogon
http://www.pyrogon.com

*************************
*** TABLE OF CONTENTS ***
*************************

I	System Requirements
II	Troubleshooting
III	Instructions
IV	Registration
V	Technical Support
VI	Credits
VII	Legal Stuff
VIII	Version History

***************************
I.  System Requirements ***
***************************

The following section lists the minimum and recommended system
specifications for Candy Cruncher:

--- MICROSOFT WINDOWS ---

* CPU: Pentium/133MHz or better
* RAM: 32MB or more

* Operating System: Microsoft Windows 95(OSR2), Windows 98,
Windows ME, Windows 2000, Windows NT4 (SP3+) or Windows XP.

* Controls: A standard keyboard is required, and a mouse is
highly recommended.

* Sound: A DirectSound compatible sound card is required for
sound and music, however if no audio is present Candy Cruncher
will still play with sound disabled.

* Graphics: Candy Cruncher requires a 15, 16, 24 or 32-bit display

--- APPLE MAC OS ---
* CPU: 150MHz or better
* RAM: 32MB

* Operating System: Apple MacOS 8.5+

* Graphics: 16-bit ("thousands of colors") is recommended

--- APPLE MAC OS X ---

* CPU: G3/233MHz or better
* RAM: 128MB

* Operating System: Apple Mac OS X 10.1 (untested on 10.0.x
but it may work)

* Graphics: Candy Cruncher will run with an 8, 16 or 32-bit display,
however for best graphics and performance 16-bit ("thousands of
colors") is recommended.

--- LINUX/FREEBSD ---

* CPU: Pentium/133MHz or better
* RAM: 32MB RAM

* Operating System: Linux kernel 2.2 or later with glibc 2.1 or 
later.  Unix variants with a Linux binary compatibility layer, such 
as FreeBSD, may be suitable, but are unsupported. The installation 
should be independent of distribution, user interface, and 
package manager.

* Graphics: XFree86 4.0 or later recommended.  Other targets such
as XFree86 3.3 and fbcon may be suitable, but are unsupported.
Candy Cruncher is best played on a 16-bit, local display, but
should be able to run on any target supported by Simple 
DirectMedia Layer (http://www.libsdl.org)

* Sound: Direct access to /dev/dsp is recommended.  Other targets
such as esd and artsd may be suitable, but are unsupported.  Candy
Cruncher should be able to output sound by any means supported by
Simple DirectMedia Layer (SDL).

--- POCKET PC ---

* CPU: StrongARM, MIPS or SH-3
* RAM: 16MB

* Operating System: WinCE 3.0, PocketPC 2000, PocketPC 2002

* Graphics: 16-bit color preferred, will run on grayscale or
8-bit color however these will be significantly slower than
16-bit color

* Sound: any Win32 compliant sound system

--- SHARP ZAURUS ---
* Any Sharp Zaurus should be compatible with Candy Cruncher

**********************
II.  Troubleshooting *
**********************

While we have attempted to make Candy Cruncher as bug free as 
possible, we recognize that some problems may arise.  If you have
a bug to report, please send as much information as possible to
support@pyrogon.com and we will attempt to resolve the problem to
the best of our abilities.

--- MICROSOFT WINDOWS ---

Candy Cruncher requires Microsoft DirectX to be installed.  For
the latest version of DirectX visit:

http://www.microsoft.com/directx

If Candy Cruncher runs slowly in windowed mode, you may wish to
try switching to full screen (registered version only).  Alternatively, 
make sure your desktop is set to 16-bit color (also known as
"65536 colors" or "thousands of colors").

--- MAC OS X ---
--- SHARP ZAURUS ---
No troubleshooting recommendations.

--- POCKET PC ---
Some handheld units have notoriously poor graphics performance,
and as such probably will not run Candy Cruncher very well.
Specific models include SH3 versions of the HP Jornada
series (Jornada 545) and black and white models such as the
Compaq iPAQ 3600.

The Jornada 525 (8-bit color) will not run Candy Cruncher
adequately.

--- LINUX AND COMPATIBLE OPERATING SYSTEMS ---
 
Running the game over X11's network protocol is very slow, 
and we do not recommend it. If the game feels sluggish, you 
can try the "--hwcursor" command line option to get a better 
mouse response. For the true hackers, there is a 
dynamically-linked version of the game included, so you can 
drop in your own version of SDL, SDL_ttf, or SDL_mixer as you 
see fit, but we don't support the dynamic binary at all.


*******************
III. Instructions *
*******************

The object of Candy Cruncher is to line up and remove complete
rows or columns of candy.  Each level requires you to remove
a certain number of rows or columns before time expires.

Clicking on a candy adjacent to the blank space will swap
the blank space and candy.  The only exception is the Dreaded
Black Jellybean, which cannot be moved.  You can also use
the arrow keys on your keyboard to move the blank space.

HINT: Instead of clicking, you can hold down the mouse button
and "drag" the space around!  It takes some practice, but it
boosts your speed dramatically!

HINT: You can move an entire block of candies over!  Try clicking
two candies past the space; as long as there are no Black
Jellybeans between the space and the candy, the entire group
should shift over together!

ZAURUS/POCKET PC: Use the stylus just like you would use the
mouse!

When a row or column is completed it disappears and the board
is adjusted appropriately.  In addition, every time a row or
column is completed you gain back some time on the clock.  The
number of points scored for a successful row or column completion
depends on the candy and the current level.

Later levels introduce the mystery candy, which acts as a "wildcard"
and can thus be used to fill in a missing piece.  For example, if
a row has 5 candy corns and a mystery candy, it will complete
the row.  In addition, the mystery candy has a powerful capability
when completing a row with a Dreaded Black Jellybean....

Clicking on the Fullscreen or Windowed button toggles between
fullscreen and windowed playing modes.  If you find that
the game is running slowly in a window, try it in fullscreen
mode.  This is not applicable on PDA Pocket PC or Zaurus.

Clicking on the Pause button pauses the game.  A cover will be
be placed over the playfield so that you can't cheat by looking 
ahead!  In addition, if Candy Cruncher is minimized or loses 
focus (for example, an "instant messenger" window pops up 
while you play), it will automatically pause!

Finally, if your score is greater than one of the current high
scores, you will be prompted for your name so that your own score
can be recorded in the high scores list!  NOTE: On PocketPC and
Zaurus versions, only the score is recorded.

********************
* IV. Registration *
********************

If you enjoy playing the demo version of Candy Cruncher you'll
want to register it for new features!

Registering Candy Cruncher removes annoying nag screens and waiting
periods.  In addition, it gives you all the candies, levels and 
features past level 6!

To register on-line, go to www.pyrogon.com/games/candycruncher and 
follow the instructions.  You can automatically reach the site
by clicking on the "Buy Now!" button.

After purchase you will be sent an e-mail with your license
name and registration code.  When you start up Candy Cruncher, select
Unlock from the main screen and enter your registration name and
code EXACTLY as they appear in your registration e-mail and start
crunching!

************************
* V. Technical Support *
************************

In the unlikely event that you experience problems with Candy Cruncher,
you can contact us at support@pyrogon.com or visit us on the
Web at www.pyrogon.com.

If you can, please include the following information along with the
description of your problem:

Computer manufacturer and type
Operating system
CPU Type and Speed
Amount of RAM
Soundcard Type
Videocard Type
Registration name and code (if applicable)

***************
* VI. Credits *
***************

Candy Cruncher was created by Pyrogon:

Programming:	
   Brian Hook

Art:
   Rosie Cosgrove

Additional help was provided by the following:

Original Design:		
   Jennifer Hook

Additional Programming:
   Ryan C. Gordon - Unix Port
   David Hedbor - Qt/SDL and Zaurus Port
   Zachary J. Slater - Unix Port Installer

Music composed and performed by:		
   Ian Livingstone (http://www.mediathemes.co.uk)

Special Thanks:
   "Katravax"
   Ben Hines
   Tom Hubina
   Mike Kulas
   Peter Lincroft
   Cara McDermott
   Jim McNally
   Sam Nova
   Casey Muratori
   Marty Rabens
   Jeff Roberts
   Jan Roza
   Lorene Shaw
   Luc van den Borre
   Ramona and Donnie Young
   our many other friends and families for their
      support, advice, feedback and encouragement!

********************
* VII. Legal Stuff *
********************

SOFTWARE LICENSE AGREEMENT:

This software license agreement is a legal
agreement between you, the end-user, and
Pyrogon Incorporated.

Candy Cruncher ("the software product") 
is Copyright 2001-2002 by Pyrogon Incorporated.
All Rights Reserved worldwide.

By installing or using the Software 
Product, you agree to abide by the 
terms in this agreement.

The software product is licensed, and not
sold.  By purchasing the software product,
you are being granted a non-exclusive license
to install and use the software product on
one personal computer.  You are also granted
the right to make one archival copy of the
software product for the purposes of data
backup.

The software product is provided "as is",
without warranty of any kind, either expressed
or implied, regarding the operation of the
software product, including warranties of 
merchantability or its fitness for use for any 
particular purpose. By installing the software 
product, you agree to accept all liability 
regarding its use or misuse.

You may not disassemble, decompile, or 
Otherwise reverse engineer the Software 
Product or any of its data in any manner.
You may not distribute add-ons or levels of any 
kind for use with the Software Product without 
the expressed written consent of Pyrogon 
Incorporated.  You will reasonably ensure that
the registraton codes you acquire by purchasing
The Software Product will be protected from
redistribution or public display.

=== Copyright ===

Candy Cruncher (C) 2002 Pyrogon, Inc.
All other copyrights and trademarks are property 
of their respective owners.  

All rights reserved.

=== Simple Directmedia Layer and related libraries ===

Candy Cruncher, on certain platforms, uses Simple Directmedia 
Layer (SDL) and associated libraries (SDL_ttf and SDL_mixer). 
These libraries, in source and binary form, may be obtained 
from http://www.libsdl.org/ ... They are used in this product 
under the terms of the GNU Lesser General Public License (GNU 
LGPL). The LGPL's text may be found at:

   http://www.gnu.org/licenses/lgpl.txt
 
=== Ogg Vorbis ===

Candy Cruncher uses the Ogg Vorbis codec for streaming audio from
Xiphophorous, licensed under the following terms:

"Copyright (c) 2001, Xiphophorus

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:

- Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.

- Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.

- Neither the name of the Xiphophorus nor the names of its contributors
may be used to endorse or promote products derived from this software
without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."

*************************
* VIII. VERSION HISTORY *
*************************
1.50
- MASSIVE changes!  More candies, a tutorial, new sound engine,
  faster performance, clear high scores, integrated demo/unlocked
  version, you name it!

1.42
- re-architected sound code so that we have our own audio mixer
- added dithering to the MacOS X surface routines
- fixed "last flash" on exit
- changed WinThreads to use CreateThread instead of _beginthread
- bumped up thread priority on audio thread

1.41
- put back in CPU usage niceness

1.40
- dirty rectangles implementation

1.35
- changed KC_A...KC_Z back to lower range
- added more verbose event printing capabilities

1.34
- more PG framework integration
- removed Dev/Framework from global include paths and added project relative
  paths to each project file (Win32)
1.33
- DEMO: fixed crash bug when hitting Tab in the "Fullscreen only" window
- DEMO: reduced length of demo wait if you haven't played at least 10 times
- DEMO: buy now buttons now take you directly to order forms

1.32
- added "Buy Now" button to exit screen of the demo

1.31
- fixed logic bug in the demo version, causing improper display of
  info screens 
- integrated Linux version and did some directory moving

1.21
- fixed start level bonus bug.  If you chose a higher start level
  WITHOUT restarting your current game, you'd get the bonus for
  the next level you made.

1.20
- got rid of SWGS_PAUSED and replaced with proper pause variable
- revamped to use new PG infrastructure
- Win32: no longer specify DSBLOCK_ENTIREBUFFER when Lock()ing code, 
  which was causing problems on NT4 and Win95
- combined LDA and Pyrogon EXEs, now differentiate via registry
  entries and assets
- re-implemented sound manager
- Win32: converted to WaitForSingleObject instead of polling a global
  in streaming audio code
- Win32: fixed "alt key stuck" problem when doing alt-enter to go to
  fullscreen
- Win32: check system registry for pause splash screen

1.17
- calling RestoreDisplayMode() explicitly when shutting down DD
- no longer draw Buy Now when paused for RA build

1.16
- cleaned up key handling support
- Win32 version now derives archive file from path name

1.15.RC3
- Mac version no longer draws custom cursor.  Should feel more responsive as a result.
- Mac version no longer prints console tracing
- cut and paste support 

1.15.RC0
- you can now quit with Cmd-Q or Alt-f4 when paused
- start level bonus is now printed

1.15.B00
- first Mac OS X version!
- removed "for Windows" bit from the exit screen
- fixed some Apple UI consistency bugs (e.g. not supporting Cmd-Q, Quit event 
  from Dock)

1.12.xx (internal only)
- bonus for starting at later levels! (6/25K, 10/75K, 14/150K, 18/300K, 22/500K)
- RA support
- automatically paused when losing focus, however no longer
  unpauses when focus is regained
- bounce sounds no longer overlap

1.11.B00 (internal only)
- when counting down time bonus, licorice no longer blinks
- converted all BMPs to 16-bit TGAs
- implemented HGDI2DDisplayDevice and blitter
- removed DirectDraw support
- streaming audio now implemented without notifications
- changed compiler detection conditionals
- event record/playback implemented
- reduced CPU utilization when paused
- removed splash screens for smaller download and faster
  startup times
- demand load some assets to speed up load times
- implemented Mac/Carbon version
- changed icon display behaviour
- removed a lot of state machine ugliness and replaced
  with modal dialog handlers
- added PGxxxx sub-framework for UI items
- frame rate counter added
- game over is shown before taking you to high scores
- options don't restart the game in full version
- minor aesthetic changes
- now says "fullscreen on/off" instead of "windowed/fullscreen"
- hardcoded clear color support

1.10.RC3
- DEMO ONLY: fixed several bugs related to the demo, specifically
	* game would pause (instead of auto-unpausing) doing a Restart
	* game could get in an infinite loop with the "Full version only"
	  dialog boxes if you clicked on multiple items while the
	  dialog box was active.
- fixed up some of the control paths

1.10.RC2

- release candidate

1.10.x

*** ALL BUILDS ***

- bonus for remaining time when a level is completed!
- fixed privileges problem where we were creating keys
  in HKEY_LOCAL_MACHINE.  This caused problems for users
  on NT, XP or Win2K who did not have privileges to 
  modify those registry entries.  Adjusted now so that
  if we can't access HKLM we attempt to use
  HKEY_CURRENT_USER
- floater scores no longer inadvertently "linger"
- converted tile animations to JPEG
- converted most sound effects to Ogg Vorbis
- added animation for exploding black jellybean
- added sounds for candy cane introduction, black jellybean
  destruction, level up and one more to go
- new registry interface subsystem, including attempts to
  write to HKEY_CURRENT_USER when HKEY_LOCAL_MACHINE fails
- all options are now saved and reloaded
- sound plays when clicking on menu options
- new options dialog which now allows you to specify sound and
  music enabled/disabled separately; choice of starting level (full
  version only); alarm sound can be disabled; and you can now
  configure the arrow keys to "move space" or "move candy".
- restart button
- level entry in the high scores area expanded to 3 digits
- time for each level is now specified per level instead of globally
- added a loading progress bar
- fixed bug where if we failed to get a notification object
  the game would crash instead of just disabling music.  This is 
  only an issue on VERY old sound cards with VERY old drivers.
- added hint page about sliding the space and reduced time
- added distribution partner conditionals and assets
- made first two levels last MUCH longer
- (debug only) level warp now unbounded
- switched to external PYZ files

*** DEMO VERSION ***
- added a reverse progress bar for exit screen

*** FULL VERSION ***
- clicking on the game area will unpause a paused game
- choice of start level in options menu

1.05.4
- added commas to numbers

1.05.3
- fixed minor bug with keyboard handling after Game Over

1.05.2 (DEMO VERSION ONLY)
- fixed minor bug with pink "peek through" for "Maybe Later" icon

1.05.1
- fixed minor bug where hitting enter after the High Scores screen would
  cause the game to immediately start instead of taking the player to
  the info start screen
1.05
- first official release
- fixed show stopper bug where blank would disappear due to race condition
- "declick" the mouse when losing focus or going to fullscreen

1.04
- fixed bug with click/drag support
- added keyboard support

1.03
- minor aesthetic changes
- click/drag support!
- tweaking game balance

1.02
- fixed typos in some messages
- demo is now limited to playing 50 times

1.01 
- added "floater" scores

1.00 
- first internal release candidate

