=============================================================================

Fri  17 Dec 10:28:12 CET 2021

1. APPDATA (roaming) is used for system files (please use the bat file for this).
2. gnu17 (for c17 standard) is default.
3. SUBVER was changed to avoid conflicts with the windows.h 'SUBVER'.
4. Implemented WIN32 API code to the windows build to give it more of a native feel
5. Implemented a Launcher so it is easier to use command line arguments and launch Larn
6. Removed 'pounds' and added 'units' to the weight to make it more universal
7. Added a check after being slain to prevent the player from accidentally skipping it by pressing a key

~Gibbon

=============================================================================

Mon  21 Dec 18:17:12 CET 2020

1. Added some 'size_t' over 'int' to help with some 64bit - 32bit comparisons
2. Removed WINDOWS build variable (only MSVC now for Windows)
3. Cleaned up some files
4. Removed Fred Fish's atgoto implementation and added my own from tgoto.c in libtermlib
5. Added better letters for DND Store and Bank of Larn on the home level

~Gibbon

=============================================================================

Mon  15 Oct 13:26:54 CET 2020

1. Fixed a bug where prompt would not appear on objects, leading to a duplication of inventory

~Gibbon

=============================================================================

Wed  1 Jan 08:37:44 CET 2020

1. Changed colour to only show on the '@' player.
2. Removed the Longsword of Hymie and replaced with the
	Longsword of Slashing.

~Gibbon

=============================================================================

Tue Dec 17 20:34:23 CET 2019

1. Optimised colour outputs for dark and light terminal backgrounds.
2. Fixed colour leakage on 'HP' stats.
3. Implemented Larn 12.0 style objects (removed hack-style) objects.

~Gibbon

=============================================================================

Mon Mar 25 12:18:54 EDT 2019

Fixed a bug with running.  The internal timer did not advance, which means
that slow monsters moved at the wrong speed (either they didn't move at all,
or they moved at normal speed) and bank interest didn't accumulate.

--hymie!

=============================================================================

Thu Mar 14 10:02:08 EDT 2019

Took out the tax bill.  It was a stupid time-wasting feature, and there is
a bug to get around it easily anyway.

Delcaring this 14.1

--hymie!

=============================================================================

Mon Mar 11 15:36:19 EDT 2019

Fixed an infinite loop when creating treasure vaults after difficulty
level 2.

I think I fixed the seg fault.

--hymie!

=============================================================================

Tue Sep 18 08:34:19 EDT 2018

Oh no, sometimes I get a segmentation fault on level 10, and I don't know
why, and I can't make it happen "on command".

--hymie!

=============================================================================

Tue Aug 28 14:02:26 EDT 2018

Found a bug where anytime the game asks you to pick a direction,
for example, open a door, the screen redraws.  That just looks ugly.

--hymie!

=============================================================================

Fri May 11 13:48:15 EDT 2018

Toned down the Longsword of Hymie a bit
* It gives you "Half Expanded Awareness" ... but only if the sword is
  not negatively enchanted

A scroll of magic mapping will tell you what floor you are on, if you
have teleported and don't know.

I'm thinking about renaming the Longsword of Hymie to the Longsword of Gibbon.
:)

--hymie!

=============================================================================

September 18th - October 4th 2016

1. Cleaned up the Windows build a little
2. Increased color usage (inventory) and picking up items
3. Nerfed OHSWORD and added AWARENESS trait to it
4. Bug fixes
5. Some functions cleaned up
6. Mazefile has 30th anniversary map added

~Gibbon

=============================================================================

August - September 17th 2016

1. Increased color usage
2. Fixed some bugs
3. Improved some functions (math) for treasure room generation
4. Improved Windows support via Win32a pdcurses use and VC project files

~Gibbon

=============================================================================

July 26th 2016

1. Finally changed the 'clear()' function which was conflicting with curses 'clear()'.
	This is now called 'screen_clear()' to differentiate it.
2. Cleaned up some files.
3. Implemented initial color stuff (menu stats and player '@').

~Gibbon

=============================================================================

May 26 2016

1. Fixed a bug for web and sleep spells not appearing cleanly on a newline.

~Gibbon

=============================================================================

April 27 2016

1. Fixed some warnings from debug builds
2. Fixed old style functions

~Gibbon

=============================================================================

April 26 2016

1. Fixed incorrect text positions in the store when your inventory is full
2. Using -std=gnu11 for C is now a requirement (on GCC)

~Gibbon

=============================================================================

April 18 2016

1. Hardcoded help text into help.c
2. Allowed players to escape from the 'O' command
3. Added a function for displaying 'back to game' (like retcont)
4. Changed some text around to make it suitable for other scenarios
5. Radically changed the directory structure (bringing it into the 21st century)
6. Made a new set of *nix compatible makefiles

~Gibbon

=============================================================================

April 12 2016

1. Rewrote the readboard, writeboard and makeboard functions to be standard C.
2. Entirely removed the help code.  Help is now in a .txt file to be read manually,
	this isn't the 80's and we have filespace for a few extra bytes of text ;)
3. Hardcoded the welcome message into help.c
4. Cleaned up a few functions.
5. Removed macros defining functions for Windows and *NIX.  Wrapped these up into ifdefs
	and updated some deprecated functions to their modern counterparts.
6. General cleaning, bug fixing and improvements.

~Gibbon

=============================================================================

April 5 2016

1. Cleaned up some debug warnings in GNU/Linux
2. Fixed some incorrectly written function definitions (old style)
3. Removed the Flail and added Hymie's sword (because he has really contributed).  This is not available in the store's, it    can only be found from adventuring and slaying.
4. Fixed some tgoto definitions which were defined twice.
5. Removed the need for a password for WIZARD mode.  It's in the source
   and it was a waste of keystrokes to keep typing it.
6. Removed the wearing of a shield by default in WIZARD mode.  Cheaters shouldn't get
   extra help ;)
7. Posix-ify the nap function.

Flail was removed because I'll need to do some curses stuff to add an extra length to the
objects, otherwise curses goes nuts and it ain't pretty :)

~Gibbon

=============================================================================

March 30 2016

1. Removed previous changes for termcap and fred fish files due to Linux somewhere
Requiring them to run.  I'll remove these in the future but for GNU/Linux it'll need
more research and a dedicated fix for this platform.

~Gibbon

=============================================================================

March 5th 2016

1. Cleaned up io.c variables and custom declarations of termcap routines.
2. De-fished io.c and tgoto to use standard termcap routines.
3. Removed tgoto.c and .h (Fred Fish files).

~Gibbon

=============================================================================

February 26 2016

1. Replaced crusty 80's random seed macro with one that is easier to maintain (tested level generation, save and load).
2. Added stdlib.h to relevant files for 'random' function.
3. Cleaned up Bank display of text.
4. Added ability to have multiple scores in the same scorefile.

~Gibbon

=============================================================================

February 20 - 22 2016

1. Fixed final warnings from debug and -Werror

~Gibbon

=============================================================================

February 11 - 19 2016

1. Removed variables from larnfunc.h and added them to header files.
2. Cleaned up some internal things.

~Gibbon

=============================================================================

January 1st/2nd 2016

1. Removed kbhit functions for Unix-like systems (inc kbhit.c .h).
2. Implemented recommended standard C fflush(NULL) in-place of lflushall.
For Windows, this is kept for now.
3. Created larn.h for keeping most of the headers in.
4. Fixed code so it can be built on BSD systems.

~Gibbon

=============================================================================

December 29th 2015

1. Renamed OLANCE and OLANCEDEATH to OGREATSWORD and OGREATSWORDDEATH
2. Renamed Lance of Death to Great Sword of Death (a lance isn't a very fearsome weapon)
3. Indented all source files using GNU style
4. Nerfed the Great Sword of Death (-1) and bumped Ring of Protection (+1).  Will make players carving monsters up just that little bit harder and balance it out better as you have strong spells and other bumps by that time.

~Gibbon

=============================================================================

December 21st 2015

1. Merges with 12.3 and 12.4.4 codebases (rebased my fixes from 12.4alpha2)
2. Fixed monster generation
3. Fixed a bug when picking up items that would bump a duplicate entry 2 lines down.
4. General cleaning and fixing
5. Made datafiles .txt

~Gibbon

=============================================================================

December 14 2015

1. A ton of fixes for segfaults
2. Fixed boolean bug preventing the player from falling down pits / bottomless pits
    Math used is now a much more reliable random function which around (1 / 20) times you will fall down a pit and much much less
    a bottomless pit.
3. Monster generation is partially fixed.  More than 1 monster will be generated OR 1 type randomly generated each time the game is loaded (possibility).
4. Player can now pickup scrolls and potions without segfaults (segfaults will still happen when in WIZARD mode (investigating).  But that is only for testing the game anyway.
5. Teleporting now works :)
6. Trapdoors are fixed and happen much more frequently.
7. Fixed segfault on OSX due to setmode.

~Gibbon

=============================================================================

October 24 2015

1. OSX (Darwin) / BSD compatible defines implemented.
2. Darwin binary provided (64bit only)
3. Debug code fixed for Linux and Darwin
4. Linux Debug binary provided (Darwin in the next release)
5. Code cleanup and modernization continuing
6. Ammended the manual for the changes and new additions for the latest 12.50 version of Larn.  Removed a lot of 90's cruft about floppy disks and outdated installation methods.  It is also now a .odt.

Todo:
1. Rewrite the tgoto code to a free implementation

I want to re-license Larn, it is a bit of a pariah without any kind of license and some of the files don't allow commercial use.  Rewrites for these parts of the code should be done.

Darwin binary was built on OSX Mavericks using a freshly compiled ncurses 6.

~Gibbon

=============================================================================

October 11 2015

Changes:

1. setmode in io.c is only for Win32/BSD.  Linux does not have (or need) this function.  BSDs and Solaris systems will have this as it is a traditional UNIX function that is also in Windows.  I ifdef'd this so Linux systems won't even look at it.

2. I cleaned up and ported to modern compilers the conio.h file for linux.  This is included in the code as it is required for the kbhit function.  kbhit is a Windows-only function and this conio.h for Linux contains the definitions that are a direct equivalent of their Windows counterparts.  This is needed for checking for carriage returns, key presses etc.. correctly.  Comments are in polish but you don't need to read the code (unless you really want to).  Windows will continue to use it's own <conio.h> and will ignore this version.

I have included pdcurses.a and panel.a as well as the header files (pdcurses was compiled as 64bit only) so Windows users who are using 8+ (as it is usually 64bit) can use this 'as is'.  Linux and UNIX users can use ncurses.

The code still requires a large amount of cleaning up and modernizing, but for now it is playable and compiles.  I tested saving, scores etc and these are working correctly.

Enjoy :)

~Gibbon

=============================================================================

Larn 12.4.4

Joe Neff found a bug where known spells weren't being saved correctly. Fixed.

================================================================================

Larn 12.4.3

Win32 only. Depends on PDCurses. Name entered at character creation is now used
for scoreboard. Keypad + Shift run supported. All chars used for numerics in
codebas are now ints. Basic work converting to stdlib + curses instead of
the awkward terminal hacks. Very much a work in progress.

================================================================================

Larn 12.4


ANSIfication, ported to Curses, arrow key support,
message system fix, game over confirmation prompt,
removal of platform-specific cruft, removal of most options,
name/sex prompt, ...

================================================================================

Larn 12.3.1

Prompted by Pat Ryan, fix a bug in the dropobj() code in main.c that
allowed the player to drop a negative amount of gold.  In the process, fix
the backwards carriage return logic when printing the error response.
Document the new SIG_RETURNS_INT #define introduced by Bill Randle when the
software was posted.
Prompted by Lasse Oestergaard, guard against out-of-bound array references
in movem.c when on the Home level.  Also fixed a bug where a 'smart' monster
would fail to move towards the player when the player was on the boundary.
Prompted by Mitch Gorman, make the EXTRA #define compile and work under
MS-DOS.

================================================================================

This is a list of the fixes and enhancements made to create Larn V12.3 from
Larn 12.2.  SPOILER ALERT!

1. The player's position is now marked with an ampersand, instead of just with
   the cursor.

2. The 'G' command ("give the stairs a kick") has been removed.  Since you can
   tell the stairs apart (as opposed to the original Larn 12.0), this command
   doesn't make sense anymore.

3. The 'V' command has been removed and its information incorporated into the
   'v' command.

4. An idea from Ultra-Larn: when the player enters the 5th level branch of the
   bank after teleporting, the '?' in the level display is changed to a '5'.

5. Larn -? can be used to print command line arguments.

6. The player is no longer positioned near the shaft of the volcano when
   climbing down to the first volcano level.

7. A couple of pauses were eliminated, making some actions very fast now.

8. The player can no longer escape punishment by donating more gold then he
   possesses when praying at the altar.

9. When performing an action and doing an inventory list, a character typed at
   the "press space for more" prompt is taken as the inventory item to select.
   That is, if you say 'q' for quaff, '*' to see all the potions you can quaff,
   Larn used to require that you type a space before you could select a potion,
   causing the list to disappear.  You can now select an item in the list while
   the list is displayed.  You can also use Escape and Return in place of a
   space.

10. The spells/potions/scrolls inventory ('I' command) are now sorted.

11. The '/' command has been added, to allow the user to identify objects.
    You can choose to either type a character or move the cursor around to
    select a character to identify (a la Hack).  The only limitation is that
    characters that have several objects (weapons, gems, dragons, etc) display
    all the matching object names.

12. The potion of gold detection has been changed into the potion of object
    detection.  It will find scrolls, books, potions, weapons, armor, and
    artifacts.  If you have an old savefile, all gold detection potions get
    turned into object detection potions.

13. It is now possible to find rings of cleverness in the dungeon.

14. It is now possible for killed monsters to drop splint mail, battle axes,
    cookies, and rings of cleverness.

15. Source cleanup, reduction in the size of the executable and the memory
    required, performance improvements.

16. Fix problems with positioning the player when entering or leaving the
    dungeon.  You will no longer find yourself on the opposite side of the
    town level when leaving the dungeon.  You will no longer be able to enter
    the dungeon on top of a monster.

17. Prevented monsters from moving into the dungeon entrance, causing them to
    be destroyed when the player exits the dungeon.  The top dungeon level now
    has the dungeon entrance character where there used to be a space.

18. If you are standing on a chest and try and open it, you will no longer pick
    it up immediately if you have auto-pickup on.

19. Added the capability to add comments to the options file.

20. Fixed the bug where a missing options file prevented anything from being
    displayed.

21. There is now a visible repeat count when greater than 10 (a la Hack).  You
    can also edit the repeat count.

22. The 'm' command has been added to move onto an object without picking it
    up (a la Hack).

23. Fixed a problem where the a) item in the inventory couldn't be dulled.

25. Allow a space between '-o' and the option filename.

26. Fix possible errors when looking at the inventory.

27. Prevent the player from changing levels into a level from the maze file with
    a space that had no means of exit.

================================================================================

This is a list of the fixes and enhancements made to create Larn V12.2 from
Larn 12.0.  SPOILER ALERT!

Changes made to create version 12.2 from 12.1:

1.  Add messages to improve feedback to the user.

2.  Improved screen drawing performance again.

3.  Flying monsters (bats, floating eyes) are no longer affected by traps.

4.  Added HACK-like objects, with 'original-objects' option.

5.  Added 'bold-objects' option.

6.  Fixed a bug where the game would apparently 'hang' for a long period of
    time, especially just after killing a monster with a missile spell.

7.  Prevented invulnerability when doing VPR on a throne or altar.

8.  Scrolls of pulverization now have the same affect when directed against
    an altar or fountain as they did directed against a throne.  VPR spell
    cause a waterlord to appear when used near a fountain.

9.  Added the '@' command and 'auto-pickup' option.

10. Added 'prompt-on-objects' option.

11. Improved monster movement performance again.

12. You can now weild '-' to unweild your weapon.

13. Waterlords can now be found in the dungeon, not just when washing at a
    fountain.

14. The Eye of Larn can now be sold in the Trading Post.

15. Spells can now bounce off mirrors at an angle.


Changes made to create version 12.1 from 12.0:

1.  When drinking at a fountain, "improved sight" caused the "see invisible"
    potion to be known by the player.  The player must now identify the potion
    in the usual manner.

2.  Falling through a pit told you the damage you received, but falling through
    a trap door did not.  Made trap doors act the same as pits.

3.  If you dropped a ring of dexterity/strength/cleverness that had been dulled
    to a negative amount, the corresponding stat was permanently increased.  No
    longer.

4.  The potion of monster location would show invisible monsters as the floor
    character on new levels.  Now prevented.

5.  Selling all your gems at the bank could destroy items in your inventory.

6.  Monster creation was being allowed on closed doors.  This was particularly
    a problem with treasure rooms, since it meant that a monster much too
    powerful for the player to handle was loose in the maze.  Monsters cannot
    now be created on closed doors.

7.  When entering a number (when entering gold amounts) you could not use the
    backspace key to delete digits.  Fixed.

8.  To make it more convenient when selling items in the Larn Trading Post, a
    display of those items in the players inventory that can be sold has been
    added.

9.  Performance of the display has been improved slightly.

10. Monster movement has been improved for large numbers of monsters.  It is
    somewhat better on PC's, even with aggravation.

11. I have added new mazes to LARN.MAZ.

12. A Rogue-like command mode has been added, and is the default.  The
    version 12.0 prompting mode has been preserved for those who like it,
    accessible via a command line option.  Command letters have been added
    to provide the ability to perform all the same actions as the prompt mode.
    The help file and command line help have been updated.  When in command
    mode, the player will automatically pick up objects, and can read, quaff,
    eat, look at, and pick up objects that you are standing on.

    In order to implement the new commands, the A and D commands from version
    12.0 have been changed.  They are now ^A and I.  For consistancy, to see
    the list of known spells at the spell prompt, 'I' also shows all known
    spells.
