
Whack-A-Mole for OS/2!
----------------------

- ... good fun on your PC screen ....  It's the perfect thing for those
  short breaks between other tasks when you just need to unwind and
  waste some time.
                - OS/2 e-Zine!, October 1996

This is my OS/2 interpretation of a carnival game called Whack-A-Mole.
The original was a board with some holes in it.  Mechanical "Moles"
would briefly stick their heads out from a random hole.  The player
had to whack the mole with a mallet before it returned to its hole.
I have taken license with some of the features.  Rather than being
limited to four or five holes, these moles have the freedom to
appear anywhere on your screen, even on top of one another.  If you
are opposed to whacking moles, and have the appropriate bitmaps handy,
whack Bob Dole, your boss, or Barney the Dinosaur instead.  Whack-A-Mole
is SHAREWARE.  Please read the registration information in this document.

Thanks for trying Whack-A-Mole!

New in Version 1.20!
-------------------
- Drag and Drop!  You can now drag image files and wav files directly
  onto the settings notebook.

- Support for any image files supported by OS/2!  For Warp 4 users,
  this means that JPEG, TIFF, GIF, TARGA and more are supported.

- An effort toward internationalization.

- Unfortunately, registration keys.  The first two features above are
  disabled in the unregistered version.

Installation
------------
New Install - Simply copy the executable and dlls to the same directory
(or place the dlls in your libpath), create an object for it on your
desktop, and start banging away.  The first time it runs, Whack-A-Mole
will create a file called Whack.ini in the same directory as the
executable.

!!!! NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE !!!!
Upgrade - Please delete your whack.ini file before upgrading to version
1.20.  For maintainability's sake, I have switched the ini file format to
that used by OS/2 INI files.  I have also integrated the high score file
with the INI file.  If you are a registered user and are really attached
to your high scores, uuencode and email me your whack.hsc file, and I'll
convert it for you.  Otherwise, just delete it.

The Controls
------------
Number of Moles:  This control will let you adjust the number of moles
                  in a game, from ten up to 1000.  The default is 22.

Speed:  This control lets you adjust the frequency at which moles
        appear.  Note that the speed control has no effect on the new
        Surprise! level.

Restore Defaults:  This control restores the default number of moles
                   and default speed.

Start Game: I think this one is self explanatory.

Stop Game:  Ditto.

Settings...:    This brings up the Settings notebook.  The notebook
                currently has three pages.

    Notebook Page 1:    This page contains image options and a preview
                        of the currently loaded image.  The name of the
                        current image is displayed at the top.  Buttons
                        allow you to change the image or restore the
                        default image.  Registered users may also drag
                        image files directly onto the preview window.
                        Note:  The only file format supported in the
                        unregistered version is OS/2 bitmap.

    Notebook Page 2:    This page contains sound effect options.  The name
                        of the current sound effect is displayed at the
                        top.  Buttons allow you to change and try out
                        sound effects, and restore the default effect.  A
                        checkbox allows you to disable the sound.
                        Registered users may drag WAV files directly onto
                        the notebook page.

                        If you don't have multimedia installed or don't
                        have a sound card, the options on this page will
                        be disabled.  If you have multimedia AND a sound
                        card supported by OS/2, and the options are
                        disabled, it's a bug.  Please let me know about
                        it.

    Notebook Page 3:    This page contains the settings for level of play
                        and for choosing the things that are saved to your
                        ini file when you exit the program.  The play
                        levels are:
                            Hey, I'm Serious! - This is the default play
                            level.  It's exactly what was in previous
                            versions.

                            Child's Play - For young children, just
                            learning to use a mouse, this level pops 'em
                            up slower and leaves 'em up longer.

                            Surprise! - Who knows when it'll pop up?
                            Other than that it'll be sometime between one
                            minute and one half hour since the last one, I
                            don't even know when.

                        The Save On Exit options are:
                            Bitmap Setting - Save the current bitmap
                            setting whenever you exit the program.

                            .WAV Setting - Save the current sound effect
                            setting whenever you exit the program.

                            Speed Setting - Save the current speed setting
                            whenever you exit the program.

                            Level Setting - Save the current play level
                            setting whenever you exit the program.

                            Mole Count Setting - Save the current number
                            of moles whenever you exit the program.

                In addition to the notebook pages, the Settings dialog has
                three buttons.  Defaults, Save, and Done.  Defaults will
                restore the default values for bitmap, sound, and play
                level.  Save will save the current options, and Done will
                dismiss the notebook.

High Scores:    Displays the 10 best scores achieved.  In the high
                scores dialog box, you have the option to clear the
                high scores.  I placed this button far from the Ok
                button to make it more difficult to hit by accident.
                The high score dialog is context sensitive.  It shows
                only the high scores achieved at the current level of
                play.  Likewise, the CLEAR button will only clear the
                scores for the present level of play.

About Whack-A-Mole: Displays the support and copyright information for
                    Whack-A-Mole.  It also allows you to enter your
                    registration key.

Quit:   Another one that needs no explanation.


The Play
--------
Simply adjust the above-mentioned controls as desired, and hit the
start game button.  As moles appear in random locations on the screen,
you must whack them as quickly as possible.  The titlebar of the main
window will keep track of the number of moles created thus far in the
game.  If you don't want to play all the way to the end, simply whack
the moles covering the Stop Game or Quit button, and click on said
button.  All the moles will disappear, and the game will be over.


The Scoring
-----------
I had a rough time deciding how to score this, but finally decided on
the following:

Level                   Whack Time              Points
------------------------------------------------------
Hey, I'm Serious!       < .5s                   4*Speed
                        .5s - 1s                3*Speed
                        1s - 1.5s               2*Speed
                        1.5s - 2s               1*Speed
                        > 2s                    0
Child's Play            < 1.25s                 4*Speed
                        1.25s - 2.5s            3*Speed
                        2.5s - 3.75s            2*Speed
                        3.75s - 5s              1*Speed
                        > 2s                    0
Surprise                < .5s                   4
                        .5s - 1s                3
                        1s - 1.5s               2
                        1.5s - 2s               1
                        > 2s                    0

At the end of the game, if you've made it into the top 10, you'll be
given a chance to enter your name (up to 32 characters).  The top 10
high scores will then be displayed.

Internationalization
--------------------
I've moved most of my resources, and all of my strings, out of the
executable and into the included wam001.dll (001 is the US country
code).  If you wish to translate the strings in Whack-A-Mole to
your native language, please email me.  I will send the file wam001.h,
which you should translate and send back to me as wamXXX.h, where
XXX is your country code.

As the new resource DLLs become available, I will place them on my
home page at

    http://www.randomc.com/~erlkonig

Note to DBCS users:  I'm pretty sure this won't work for you.  I don't
have any way to test DBCS code.  My apologies.

Future Plans
------------
* Use a second bitmap, so that when you whack the mole, it changes to
  a bloody mole or something.  I actually have the bloody mole bitmap, but
  need to add the code.

* Allow the player to use different mouse cursors.

* Animate the mouse cursor, so that the mallet looks like it's swinging.

* Online help?  The game's still small, but it's growing.  If you think
  it needs online help, then email me.

Performance is a priority, so I will weigh the performance hit of any
new features before deciding to add them.  If there are any new features
that you would like to see, feel free to contact me.  I'll be much more
likely to add the features if you are a registered user ( see below ).  I
am also interested in ideas for new projects.  If there's something you
want for OS/2, contact me about it.

Please email your suggestions and bug reports to
    erlkonig@alum.mit.edu


Known Bugs
----------
None.  Finally.


Registration
------------
If you like the game, you must register it after 14 days.  The cost is
only $7.00 US (check or money order only, for your safety), sent to:

Matthew Wagner
PsychoSemantic Software
6001 TRACY VALLEY DR
NORCROSS GA 30093

If you provide me with your email address, I will email your registration
key and keep you informed of updates.  Otherwise, please provide a
self-addressed stamped envelope.  Your registration is valid for all
future shareware releases of Whack-A-Mole.  If a large wealthy company
buys the rights from me, you're at their whim.

Note to those who are already registered.  I have emailed your
registration key to the address you provided with your registration.  If
you have not received your key, please contact me at

    erlkonig@alum.mit.edu.

License and Disclaimer
----------------------
By using this software, you agree to the following terms.

Whack-A-Mole is not free.  The shareware version of Whack-A-Mole is
licensed to you to try for 14 days.  At the end of that period, you
must register the software or remove all copies from your system.
Upon registering, you are licensed to install Whack-A-Mole on as
many computers as you desire, provided only one copy will be in use at
any given time.  You may freely distribute the unregistered version of
Whack-A-Mole, provided that you distribute the entire archive, original
and unmodified, including this documentation.  You may not alter,
disassemble, or otherwise reverse engineer Whack-A-Mole.

If you are dissatisfied with Whack-A-Mole, I will be happy to refund
your registration fee.  There are no other warranties, express or implied.
The author and PsychoSemantic Software are not responsible for any damage,
direct or indirect, caused to your computer, productivity, or anything
else by this software.  This software is not warranted to be free of bugs.

This software may not be used for military purposes.  It may be used by
military personnel for nonmilitary purposes only.

History
-------
1.22    April 6, 1997       Changed the history list to say April, 1997
                            instead of 1996 for the previous two releases.
                            Got my first translation, which required some
                            code changes to automatically position buttons
                            and such.
1.21    April 5, 1997       Oops.  I was never really able to test the
                            country stuff.  Fixed a bug to not pop up
                            a message box when the country DLL isn't
                            found.
1.20    April 1, 1997       Added drag and drop for image and sound files.
                            Added support for new image formats.  Fixed
                            bugs.  Rewrote high score code again.  Added
                            registration key, sigh.
1.10    September 22, 1996  Added new speed levels and save options.
                            Reworked high score file handling to better
                            fit additional speed levels.
1.01    September 12, 1996  Fixed path bug
1.0     September 2, 1996   Initial Release

About the Author
----------------
I received my BS in Mathematics from MIT in 1993, and my MS in Applied
Mathematics from the University of Arizona in 1995.  I program in C (and
am learning C++) on OS/2, MVS, AS400, and Windows NT for FormMaker
Software, Inc.  I'm writing OS/2 shareware on the side to help pay back my
large college debt.


Thanks
------
A short list of those I'm indebted to.

* Andy Key, for releasing his excellent GBM source to the public domain.
* Whoever wrote BITMAP32 and published the source on the DevCon cd's.
* The guys at FormMaker software, for testing this stuff and ragging me
  when it didn't work.
* Mike Compton at FormMaker, for drawing my bitmaps.
* The authors of all the excellent OS/2 software, for setting a great
  example.
* Everyone who registers Whack-A-Mole and helps support further OS/2
  development.

