*******************************************************************************
*                                                                             *
*                                   HISTORY                                   *
*                                                                             *
*******************************************************************************
* Always read the changes between the versions if you are upgrading to a new  *
* version!                                                                    *
*******************************************************************************


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 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.
- Registered Myself & Sean Clarke.
- 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.
- Registered Eric De Jong.


v2.12a/b/c - 01-09-93/11-09-93/15-09-93

- Registered Herman Stevens & Erno Tuomainen.
- Registered Rick Lembree & Jean-Jack Riethoven.
- Registered ALan Bland (A freebie :)).


v2.13 - 16-09-93

- Registered Metin A. Savignano.
- If there are characters >128 (hi-ascii) in the word, they get typed
  automatically. (So foreign languages should be better supported now).
  This means you can't use a hi-ascii character for the first character
  in a word. I didn't know an nicer solution for this.


v2.13a - 29-09-93

- Registered Rob Mantel.


v2.14 - 13-10-93

- A little problem in the 'interface' routine (handshaking between nodes) was
  discovered. When players would frequently enter & leave the interface (the
  same players, without leaving the program), an 'out of memory' error would
  be shown when paging. This should be fixed now. (It was NOT a memory error,
  but I forgot to clear a variable when entering the interface routine).


v2.15 - 15-10-93

- Bug report from Alan Bland. Problems in the chat-start routine. I hope this
  has fixed it (Never could reproduce it here...)
- Registered Peter Partridge & Suzy Mehlhorn.


v2.15a - 28-10-93

- Received English word file from John Paul Lonie. To use this file, delete
  the words.txt, and rename words.txt.english to words.txt.
- Registered John Paul Lonie.


v2.16 - 17-11-93

- Registered Stig Poulsen.
- Registered users can now use their BBS name as an option in the command
  line. The syntax is now: Typer "Your BBS name here". The BBS name may not
  be longer than 75 characters. (This was a requested feature).


v2.17 - 21-11-93

- Fixed a harmless BYTE-READ from $00000000. Thanks to Adam Sjoegren for
  the bug report. (This bug was introduced in v2.16 when you didn't use
  the 'BBSName' argument.)


v2.18 - 09-12-93

- Registered A.J. Brouwer & Kevin Miller.
- Added new keyword to the config file: PAUSE (boolean value, TRUE or FALSE).
  This keyword controls the value of the PAUSE flag on the node after the
  user leaves the door. Default is FALSE (flag stays off, Xon/Xoff flowcontrol
  ignored). On my BBS, the PAUSE flag is always off, but someone considered
  it a bug if I didn't turn it back on :-)). (And since I couldn't find a
  quick way to read the flag, I made it a keyword).

Someone should consider writing docs for me :-) Mine stink...


v2.20 - 05-01-93

- Registered Jim Hendry.
- In battlemode, it is no longer required that both nodes use the same
  words.txt file (so you can change it at any time you want).
- Changed the directory for the wordfiles. The wordfiles are now expected
  to be in 'Doors:Typer/Wordfiles/' instead of in the 'Doors:Typer/' dir.
  Be sure to move your own files to this directory!
- Implemented basic multi-language support. When starting, the door first
  tries to find 'words.txt.x' (where x is the menuset the player uses), if
  it can't find this file, or it couldn't be opened, the door searches for
  'words.txt'. If both files can't be opened, the games waits one second and
  retries. When the files can't be opened then, the player gets a message
  to call the Sysop!
- See installation part in the Sysop document for instructions to install
  the wordfiles.
- Changed the documentation to a little more usable form.
- A remaining filelock will be removed upon leaving the door (forced or
  otherwise). I hope this'll prevent the last known bug from creeping up.
- Included some examples for changing wordfiles. You can use these to
  customize HyperTyper on your own system.
