*******************************************************************************
*                                                                             *
*                             H Y P E R T Y P E R                             *
*                                                                             *
*                                    v2.12                                    *
*                                                                             *
*******************************************************************************


*******************************************************************************
*                                INTRODUCTION                                 *
*******************************************************************************

v1.00

HyperTyper is a doorgame I saw on a MS-DOS BBS two days ago (I was asked
several times to visit the new BBS of a friend of mine, and after ten times,
I finally called). It is very simple, but highly addictive. The object of the
game is to become the fastest typist on the BBS, that's all :-).


The version on the IBM has still some more features, but they'll have to wait
until I'll figure out how to implement them (I asked the original autor for the
source, but he told me NO!. When I received his answer, this door was already
done :-)). 


It is a nice door, so try it out !



v2.00 addendum:

In my opinion, this version is now far superior to the MS-Dos version. Every
feature supported in the MS-Dos version is included in this one (Except that
in this version, users CANNOT add words to the words.txt file!).

- The ansi graphics of the DLG version looks better,
- The input routines are better (MS-Dos version discards some of the input if
  the user types too fast!!),
- The DLG version supports DLG's inform command. Users will be told if someone
  has beaten them!
- Bonus points are awarded for fast typers in the DLG version,
- The DLG version supports TRUE multiuser games! The MS-Dos version only has
  a 'Play vs Sysop' mode, in which the user must use the lower characters, and
  the Sysop uses the upper characters (The Sysop must press caps-lock :-)).
- The DLG version features true highscores! Only a user's highest score is kept
  in the list!
- Incoming broadcasts are captured and shown in the multi-user page system
  (featuring a very nice who's online window), and in the menu screen.
- Chat mode included after playing a game in battle mode, so you can tell your
  opponent about the fact that you have a tenniselbow, and that he has gotten
  all the easy words :-)).
- The DLG version has a statistics list, with 10 methods to sort it :-)


Features the MS-Dos version has, and the DLG version doesn't:

- The DLG version doesn't have a 'suggest word' feature (I hate those!).
- The MS-Dos version places random dots on the places left open when the laser
  moves to the right. It looks nice, but also it looks quite stupid to have
  a 'space background' on the left, and just a black screen on the right.


It is one of the most addictive doorgames I know for DLG Pro, so I suggest you
give it a try on your board! (And pay the shareware :-))



*******************************************************************************
*                                INSTALLATION                                 *
*******************************************************************************

After unpacking the archives, place all files in DOORS:Typer/ (Create this
directory).


After this, you must create a menu item for this door. (Preferably one in 
every menu! :-)). My entry looks like this:

[ 1] Letter:                   H
[ 2] Executable: (path/name)   DOORS:Typer/Typer
[ 4] Description:              HyperTyper - Who is the best typist on the BBS?
[ 5] Type:                     Executable
[ 6] Help File:                DOORS/H
[ 7] Lower level:              1
[ 8] Upper level:              255
[ 9] Hidden:                   YES
[10] Load type:                OVERLAY
[11] Ask user if sure:         NO
[12] Pend messages:            YES
[13] Cli mode:                 NO
[14] Pause on completion:      NO
[15] Log value:                None
[16] Activity string:          Is waiting at the HyperTyper menu! (Join him!)
[17] Priority:                 DEFAULT
[18] Edit help file


If you're using a version <2.00, please delete all files in your directory.
Use the clear (0 byte files) in this archive! This is because the scoring has
changed dramatically.



*******************************************************************************
*                              SHAREWARE NOTICE                               *
*******************************************************************************

v1.00

This door is SHAREWARE, which means it is free to distribute to anyone you
want! (I even encourage you to do so). However, if you use this door on your
BBS, you must pay the shareware fee, or remove it after 30 days. I don't have
any crippled features in this program, because I simply want to see if there
are honest people in the world!


v2.10:

Since nobody paid up, I've crippled it. Not in a heavy way, but the Statistics
display routine won't work on unregistered copies and a irritating startup
screen will be displayed.


The shareware fee for this program is 10 US dollars. Registration means you'll
receive bugfixes, updates and a registrated copy of this door. 


Please support shareware! It gives the programmer an extra push to continue
programming.



*******************************************************************************
*                                    NOTES                                    *
*******************************************************************************

The words used in the game are in Dutch! You can edit this file by editing the
file 'Words.txt'. Be careful! Words may not be longer than 25 characters, and
there can be no more than 1000 words in the list! (Should be enough). If
someone has made a list of English words, please dump it on my BBS, so I can
include it in later versions.


I still haven't got an English words.txt file. Can somebody send me a decent
on to include in the archive? The first person to send an English wordsfile
over 500 words will get a free registration for this door :)


Never delete the datafiles completely! If you want to restart the door, simply
copy the empty files of the archive into the Doors:Typer directory or clear the
files manually.


The 'new' locking mechanism hasn't been tested long, and I hope it'll work for
everybody! Previous versions would not work correctly under OS 3.0 if what 
Eric De Jong told me was correct. Please let me know if there are any problems
getting this door to work 100%. It has been played here about 130 times 
without any problems at all. (I had one guru once due to an error in v2.00, 
before that, it had been played 200 times or something like that).


I want every little bug reported ASAP!!


To contact me, send mail in the DLG_CHAT or DLG_DEV mail area to me, or send
mail and registrations to:

	Wim Rumping
	Sandenburg 108
	1965 NM  Heemskerk
	The Netherlands

	BBS: The miningship 'Red Dwarf' +31-2510-47830 (** Trapdoor node! **)
					+31-2510-39479 (Crappy phone line!)
	Fido: 2:285/404.20
	Bos : 99:999/1.0
	Amy : 39:151/105.0 
       


*******************************************************************************
*                                   THANKS TO:                                *
*******************************************************************************

Eric De Jong / Digital Desert for being my 'private' support BBS, and reporting
the problems with the busy locking under OS 3.0.

Erno Tuomainen / Moonlight Sonata for sending me the first bugreport ever. :-) 

TPT for the dlg.library & help in the DLG.DEV area.

Sean Clarke for being the ONLY person who registered before the crippling took
place. (It wasn't $10, but it's the thought that counts :))

Eddy Carroll for the 2nd bugreport.

All players on my own BBS for playtesting this door.



*******************************************************************************
*                        THINGS I WANT TO ADD/CHANGE                          *
*******************************************************************************

- Optimize the sourcecode. (It's simply becoming too long. Some things can be
  done easier/faster).
 


*******************************************************************************
*                                   HISTORY                                   *
*******************************************************************************

v1.00 - 09-07-93

First version.


v1.10 - 11-07-93

- Incoming broadcasts are displayed in the menu.
- Actionstrings added in the game, so users looking at a Who's online door can
  view the players progress :-)
- Made a start with the Two player mode by adding an Interface routine in which
  a user can page another user to play with him. Also added a Who's online
  display in this interface. The ports looked at are configurable in the config
  file I've added. (Note that you can't use more than 9 ports). It looks the
  best when you're using 5 ports. This interface can only be entered when a
  user's baudrate is at least 4800 baud. (Because the 2 player mode will need
  a lot of fast ansi sequences, which simply won't be possible on 2400 baud).
  Paging of another user isn't implemented yet.
- Changed a problem concering the highscore routine. Inform to the losers
  should be okay now :-).
- Cheaters using an 'abcdefghijklmnopqrstuvwxyz' type macro CAN'T cheat
  anymore! 8 Typingerrors per word will cost 1 point from a user's score.
- The highest level is now set at 21. (The beam can't move out of the window
  anymore).
- My highest score is 1283 points :-) Beat that....


v1.20 - 12-07-93

- The scores.dat file was corrupted today. I can't find out why, but it looks
  like the fileread routine read 2 characters AFTER the linefeed. Can't seem
  to reproduce it though... If anyone can give more information, please!!!
  (I've taken some preventive measurements, but still it couldn't have
  happened!)
- Captured broadcasts won't get updated if the standard statusline was already
  on the screen, this way it looks nicer :-)
- Whenever you score bonus points, this is displayed at the position where you
  removed the word. (ie. +7). It gives you an extra push :-) My score now is
  1687 (But a user of mine got 1837 :-( ).
    *** These scores are now invalid. They should lie around the 1300 ***
- Changed the layout of the built-in Who's Online a little. Name length is now
  21 characters instead of 20.
- Removed some typing errors from the words.txt file (And added a few words).


v1.30 - 15-07-93

- Forgot to include the data files in the archive of the previous version. :-(
- Improved and completed the Who's online & page screen.
- Paging system added for Battle Mode.
- Battle Mode added.
- Menu layout has changed somewhat.
- Added two new keywords in the config file. SYSOPNAME is the name of the
  Sysop (Error messages will be sent to him). MSGPRI is the priority of the
  messaging system used by this door. This should be set at the taskpriority
  of the door (on my system, this is 1, which is the default value).
- Added baudrate checking on single player games (2400 baud is the minimum).
- Expanded the 'manual.ansi' file.
- Removed a bug which created an event.log file for non-existing highscore
  entries. This created a harmless even.log file in the root of the Harddisk
  containing my User: directory.
- Sh*t! While cleaning up my code, I've found a bug in the score routine! The
  bonus was added TWICE! to a user's score. This means that the highscore data
  files must be cleared because the scores are invalid...
- Added chatmode after playing the game in battle mode. It is quite simple, but
  it should be adequate for most occasions.
- Decided that the version I'll let loose on the unsuspecting world is going
  to be v2.0 :-))


v1.40 - 16-07-93

- Removed the '_' cursor from the chatmode. It was more irritating than it
  was useful.
- In single & battle mode games, one point will be deducted from the user's
  score for every 2 errors he makes in a word instead of 8. This is somewhat
  more fair to the people not banging as many keys as they can hit (I am one
  of these keybangers myself :-)).
- In battle mode, more than 10 typing errors in a word means that the word
  won't count. You'll have to type one word more to increase the opponent's
  level!
- Renamed some of the datafiles. 'Data.scores' has become 'Scoredata.single',
  'Highscore.Ansi' has become 'Highscore.single'.


v1.50 - 17-07-93

- Renamed the Battlemode datafiles.
- Highscore lists will now have 15 entries instead of 20.
- Changed the look of the battle mode highscores.
- Users can kick other users away in the Battlemode interface section. (As
  a try-out. If there is too much abuse (which I doubt), I'll remove it).
- Statistics file 'Player.stats' will now be kept. All player info will be
  saved in this file for later use.
- In battlemode, the firstnames of the players are placed in their score-
  window instead of just 'Player' & 'Opponent'.
- Added statistics viewer. Users can sort the statistics in 10 different ways
  to examine it as they want it :-))


v2.00 - 18-07-93

- Added drop-carrier message check from remote in the loop before entering
  chatmode.
- Changed the 'PortRemove' function a bit, it now sends two 'Drop-carrier'
  messages to the remote port, and if the carrier was indeed dropped, the
  port shall wait 2 seconds before it is deactivated. This is done to let
  the remote port notice the 'drop-carrier' messages, so any stray messages
  it sends in these 2 seconds will not be send to a random memory address.
  (However, I should wait completely until the remote sends a replymessage,
  but I'm using a complete asynchronic messaging system, so this would be
  a problem to implement. If these 2 seconds prove to be too short, you
  should raise the message priority!)
- Didn't compile with the 'Optimize' functions in SAS C on. If I compile with
  optimization, the highscores get messed up.
- Changed the timing between words a little in the battlemode. The gameplay
  isn't affected by this, just the coordination between the two tasks is
  now better.
 

v2.01 - 19-07-93

- Tried to remove a little cursorposition bug in the chatter. Sometimes a user
  could type in the remote window (shouldn't be possible).
- Removed a 'fflush(stdout)' from the battlemode gameloop.
- Typing mistake removed.
- Chatmode doesn't send empty messages anymore (less traffic on the
  messageports)
- Added the actionstring "Viewing HyperTyper statistics" to the door.


v2.02 - 20-07-93

- Received bugreport from Erno Tuomainen about enforcerhits (Byte Write to 0).
  The only reason this could be happening was that he was missing a linefeed
  on the last line of his words.txt file. Fixed it anyway. You now don't need
  a linefeed on the last line of your word.txt file.
- Found 4 enforcer hits when entering chat and the opponent had hung up. Should
  be fixed now.
- Redone the remove-port again. The send routine won't send now if a
  message of 'type 10' is received. The old version should guru anyway, but
  Erno Tuomainen said that when somebody dropped the carrier in HyperTyper
  battle mode, his a3000 crashed. (Never happened here). Let's try it :-))
- The remotelaser could get breached by a stray character. Not any more...


v2.03 - 25-07-93 

- Changed the lenght of the message packet string. 400 characters per second
  should be enough.
- Changed the busy locking mechanism, because the normal version I use doesn't
  appear to work on OS 3.0 !!!!! I now use the LockResource method from the
  dlg.library. It is a little slower than before, but still, it should suffice.
  I can always create another method (But I choose for the easy way out :-)).


v2.04 - 26-07-93

- Back to version 2.02, because the DLG locking mechanism didn't work on my
  version of the kickstart (tried semaphores, but they didn't work correctly
  either. After a failed retry, the next try would succeed).
  *** This was happening in another door of me, so I've changed it in this
  *** door too. It turned out to be a silly thing in the clean-up code in that
  *** program, so the v2.03 should work correctly after all!
- Changed the lenght of the message packet string. 400 characters per second
  should be enough.
- Used a Keyfile to lock the door with. Not as nice as the dlg resource
  locking, but it works for me !!!


v2.05 - 01-08-93

- All memory allocation will now be done with the MEMF_CLEAR flag set. This is
  done on request by Eric de Jong.
- Changed the amount of failed messages before error to 120 (was 75). This
  because sometimes (2 times in 200 games) it passed the 75! (Too many failed
  messages error).


v2.10 - 16-08-93

- Bugreport by Eddy Carroll: Drop Carrier in main menu gives infinite loop.
  Fixed this by adding a little output after each character (^C checking only
  works after output).
- Included a second set of empty datafiles so you can easily reset the game.
- Added shareware screen when entering the game.
- Disabled Show Statistics feature for unregistered users.


v2.11 - 16-08-93

- Small bug fixed, didn't close the DLGSerial file after checking.


v2.12 - 26-08-93

- 2400 Baud users now have an increased waiting period between levels. Should
  be more fair now.
- Eric De Jong is now also a registered user.
