Welcome to the changelog for Angband 4. This file tracks the changes made since
3.5.1.

Angband 4.2.6
=============

This version includes changes to device activation, many corrections and
improvements to the borg automatic player, and several bug fixes.  Changes
affecting gameplay are:

 - Like digging, failure to activate a magical device automatically retries
   the activation until successful or disturbed.  Make utility devices,
   elemental rings, and dragon armor easier to activate.  Devices to slow
   monsters, wands of fire balls and dragon's flame, rods of fire bolts,
   and rods of treasure location are now more difficult to activate.  Change
   the activation difficulties for artifacts so they are better aligned with
   the nature of the activation.  Change a constant in the failure rate
   calculation to tighten the transition from high to low failure rates:
   effects that change a player's device skill will have more of an impact
   if the skill is close to the activation difficulty for the device.
 - When following a precomputed path (moving to a grid designated by the mouse,
   targeting interface, or autoexplore commands) automatically open doors or
   clear impassable rubble and continue moving when the neighbors of the door
   or rubble are known.
 - Object descriptions now include the effect of curses in the displayed hit,
   damage, and armor class values.
 - Messages for detection now distinguish between gold on the floor and
   other objects (thanks to PowerDiver).
 - Objects and spells that used SPOT effects with LIGHT_WEAK or DARK_WEAK
   now use SPHERE instead so they can not damage the player.
 - Change the target handling for a druid's Lightning Strike:  do not require
   a known grid and target the player if the target is given as a direction or
   is not a passable grid in the line of sight.
 - If a necromancer's Command spell is resisted, deduct mana and take a
   turn (thanks to RegalStar).
 - Mithril arrows and shots weigh 50% less; mithril shots ignore acid and fire
   (thanks to edz314).
 - Increase the curse removal power of staves of remove curse to distinguish
   them from scrolls of remove curse (thanks to Mitze).
 - Increase the escorts for Grishnákh and Golfimbul:  both can also have cave
   orcs as escorts.
 - Change the edges of the Cracks of Doom vault so magic mapping clearly
   identifies the entrances (thanks to Mikolaj).
 - Change handling of keymaps so the keymap aborts when the next key does not
   correspond to a command, a command fails due to a missing prerequisite or
   to a player confirmation from an inscription check.  Rework how directions
   are extracted from a keymap.  Allow for a keymap trigger whose action
   starts with ESCAPE to break out of many prompts (thanks to PowerWyrm).
 - Add an option, autoexplore_commands, to have 'p' move to the player to
   the nearest unexplored location and modify the existing '>' and '<' commands
   to move the player to the nearest staircase of the appropriate type when
   not on a staircase (thanks to memmaker).  Whether or not that option is
   set, add to the looking or targeting interface so '>' or '<' move the
   cursor to the nearest appropriate staircase from where the cursor was and
   'x' moves the cursor to the nearest unexplored location to where the cursor
   was (thanks to Gwarl).
 - The notifications shown when the show_damage option is on now include
   information about damage due to effects from spells or magic devices.
   Notifications about damage to the player now take into account damage
   reduction and invulnerability.

There are a handful of notable changes to the Windows front end (thanks to
Klaas van Aarsen):

 - With tiles, the map displayed by 'M' now uses the algorithm that
   Options->Map used.  Options->Map has been removed.
 - Subwindows can have more than 256 rows or columns without drawing artifacts.

The handling of the SDL2 frontend's menus has been rewritten.  Game controller
events are now mapped to keystrokes to invoke commands in the game (thanks to
Alberto Mardegan).

The changes for the borg automatic player are too numerous to list
individually.  They correct many crashes, instances where manual intervention
was needed to allow the borg to make progress, jumping into lava, or cases
where the borg misused a spell (thanks to Adam Goodman, Aodhlin, Jordan
Philyaw, and NetBrian).

There is one change that can break compatibility with a game in progress
or prevent reuse of a randart file from earlier versions of 4.2:  the misnamed
FIRE_BOLT72 activation is now FIRE_BALL72.  If a game in progress uses
randarts and an artifact has that activation, the randart file will fail to
load.  A workaround is to edit the randart file and replace FIRE_BOLT72 with
FIRE_BALL72.

Prebuilt binaries for NDS and 3ds are no longer available.  Patches to restore
building Angband for those systems are welcome.

Angband 4.2.5
=============

This version sees the return of the borg automatic player, removed in the major
restructure leading up to version 4.0.0, resurrected by Adam Goodman.  In now
standard fashion, it also contains a great many bug fixes and code improvements
by backwardsEric.  Headline changes are:
 - return of the borg
 - fix problems caused by some necromancer spells
 - hydras now bash rather than open doors
 - clarification of symbols on the character sheet
 - torch random artifacts can drop deeper in the dungeon
 - improvements to stats and debug commands
 - autobuild for NDS, DOS, msys2 and nmake
 - too many areas of code improvement to mention individually

Angband 4.2.4
=============

This version contains a LOT of bug-fixing and code improvements, again
mostly by backwardsEric.  The main changes were:

 - use C99 types instead of the angband special types
 - Single Combat maybe finally bug-free
 - improvements to the birth process
 - improvements to the NDS port
 - many improvements to auto-building and all the front ends
 - improvements to changing of background colours
 - adding of a panic directory for panic saves
 - new tests, and improvements to current ones
 - re-organisation of effects code
 - add a player argument to a lot of functions that needed it
 - import a lot of historical documentation
 - lots of tidying and neatening

Angband 4.2.3
=============

This version contains considerable bug-fixing - mostly by backwardsEric.  There
is also a new offical site, basically the same as the old rephial.org but hosted
on Github at http://angband.github.io/angband.  The main changes were:

 - updates to necromancer and ranger spells
 - improvements to quiver inscriptions
 - many improvements to dungeon generation, especially robustness
 - many improvements to testing and building the game, especially with SDL2
 - make the duration of multiple timed effects exactly the same
 - allow selection for effects that used to give a random choice of effects
 - fix a bug that made radius of artifact lights too small by one
 - improvements to handling in-game information on effects
 - better documentation in datafiles
 - debugging commands now use the Angband 4 command system
 - upgrade of the NDS port to the 3DS with many improvements

Angband 4.2.2
=============

This version is almost entirely bug-fixing and quality-of-life improvements,
plus a few balance tweaks.  The game was also set up to automatically build and
run tests on Github.

 - many bugfixes and UI improvements
 - a further significant overhaul of blackguard spells
 - tweaks to some priest spells
 - new knowledge menu for player shapes
 - increase to chest frequency
 - uniques can no longer be trampled
 - adjustment to food system, including much quicker reduction of Full status
 - afraid monsters with nowhere to run become held
 - throwing weapons can be stored in the quiver
 - improved method for default stat point allocation at birth
 - tweaks to powerful modifiers in randart generation

Angband 4.2.1
=============

This version is maybe best described as consolidating the big changes made in
version 4.2.0. Again, there are too many individual changes to list, so this
is a summary.

 - percentage combat is refined to become an actually playable option
 - improvements to throwing
 - update to town generation
 - a major update to the new blackguard class
 - several tweaks to the other new classes
 - many improvements to the MacOS front-end particularly, but also others
 - improvements to tiles
 - addition of fancy color-cycling of monsters
 - configurability of character sheet
 - inclusion of some new, rare level types
 - experimental Windows curses and SDL2 console ports added
 - many small bugs fixed and quality-of-life improvements made

Angband 4.2.0
=============

This version is mainly a major overhaul of classes and the monster list.  As
for the last two 4.x.0 releases, there are too many individual changes to list,
so what follows is a summary.

Classes
-------
Two new realms of magic have been added, nature and shadow, to the existing
divine and arcane realms.
 -  Nature realm relies on harnessing the power of the earth, and is opposite
    to the arcane realm, which uses craft and cunning.
 -  Divine realm uses harmony and light, and is opposite to the shadow realm
    which aligns with darkness, power and sacrifice.
 -  Rangers now use nature magic, like the new Druid class
 -  Necromancers are the major shadow caster class
 -  Blackguards are fighters enhanced by shadow magic
 -  Pure casters (mages, priests, druids, necromancers) use five books (down
    from nine)
 -  Hybrid casters (rogues, paladins, rangers, blackguards) use two or three
    books
 -  Classes no longer have different rates of gaining experience

Monsters
--------
Each base monster type has had its game niche reconsidered, and there has been
a general push to use Tolkien-inspired monsters where appropriate.  Some of the
major changes include:
 -  Ainur - most of these now align with one of the great Valar, and have
    corresponding powers
 -  Dragons - these have mostly been made stronger and deeper
 -  Humanoids - dark elves have been replaced with dwarves, gnomes with Drúedain
 -  Hydras - each hydra type is like the previous type with a new head and
    attack added
 -  People - the association of some of these with player classes has been
    expanded to include the new classes
 -  Snakes - some of these are now dangerous
 -  Spiders - more dangerous and deeper, with unique abilities
 -  Trees/Ents - these are new, tough to kill enemies
 -  Wights/Wraiths - wights are all now shallower than wraiths, and the
    Ringwraiths are much deeper

Game Mechanics
--------------
In the course of the class and monster changes, many new mechanics have been
introduced, with some of the major ones being:
 -  Player and monster shapechanges
 -  Variable light and darkness are created by monsters, player gear and player
    spells, and the player has a meter to measure the light level on their
	square
 -  Mages can drain mana from magic devices
 -  Rogues can steal from monsters
 -  Temporary brands and slays (Priests, Paladins, Blackguards)
 -  Necromancers can see in the dark, and can cast less well in light
 -  Healing of hitpoints every turn for a time (Druids)
 -  Control of a monster, including making it attack other monsters
    (Necromancers)
 -  Shield bashes (Warriors, Paladins, Blackguards)
 -  Decoys which monsters will attack instead of the player (Rangers)
 -  Blackguards can go into a state of bloodlust which improves their combat at
    a price
 -  Monsters can whip or spit on the player from nearby
 -  Monster groups act more as a group, with leaders and sometimes bodyguards
 -  Innate spells (e.g. breaths) and cast spells (e.g. bolts) have separate
    frequencies
 -  Deeper in the dungeon shallow monsters are less likely to appear
 -  Monsters can teleport to the player
 -  Spiders can weave webs
 -  Monsters can have innate darkness around them
 -  Traps added that trigger on leaving their square
 -  Ringwraiths can inflict the Black Breath
 -  Monster spells can have different levels depending on monster spell power
 -  The player now has a hunger meter, and food is more important
 -  As with classes, all races gain experience at the same rate, except for
    humans who are faster, and high-elves who are slower
 -  The Temple has been replaced with a Bookseller who sells books of all realms

Code Improvements
-----------------
There have also been some improvements to the codebase, both visible and
invisible to the player.  The main ones are:
 -  Addition of an SDL2 front end
 -  Change to mostly using a single grid rather than x and y coordinates in
    much of the code
 -  More readability of datafiles
 -  Some font improvements
 -  Some new tiles
 -  A new online (rather than in-game) help system
 -  A new experimental (and so far unbalanced) birth option for percentage
    damage
 -  An option to start a new game after dying instead of closing the game and
    re-opening
 -  Many fixes to bugs and memory leaks


Angband 4.1.3
=============

More minor changes and bugfixes, the last of the 4.1.x series.

Changes
-------
 - Passable rubble tiles distinguished from regular rubble
 - Details of different summon types moved to a data file
 - Tweaks to some potions and scrolls
 - Minor improvements to monster lore
 - Reduction in frequency of traps and greater vaults
 - Show if monsters are hasted and slowed when targeting

Bugfixes
--------
 - Correct weapon damage and blows information
 - Fix several minor ID and knowledge bugs
 - Correct some spelling errors in text files
 - Check bounds properly in targeting, preventing the game hanging
 - Fix some interesting room descriptions which were causing disconnected levels
 - Small adjustments to object structures

Angband 4.1.2
=============

This version fixes bugs in 4.1.1 and makes some other small improvements

Angband 4.1.1
=============

This version fixes bugs in 4.1.0, and also introduces for the first time in
Angband the option to play with persistent levels

Angband 4.1.0
=============

This version has the first major gameplay changes since 3.5.0.  Some of these
changes have significant impact on the game, and affect longstanding parts of
the game quite radically.  Given that aver 750 individual changes have been
pushed to the main game repository since the last release, what is presented
here will be more of a summary than a detailed changelog.

Traps
 - The general philosophy is that all players will hit traps at some time
 - Magical trap detection has been removed, except as a spell for mages
 - Active searching has been removed
 - Characters have one chance to detect a trap, on seeing the grid it is on;
   this chance is dependent on searching skill
 - Traps are either physical or magical, and there is a corresponding split
   in the player disarming skill
 - Many new traps have been introduced, and old ones amended
 - Traps are placed almost exclusively at corridor intersections or other
   chokepoints
 - Trap density in vaults is reduced by 75%

Identify
 - ID is now "rune-based"; once an object property is recognised once, it will
   always be recognised on all future items
 - The only forms of magical identify are scrolls and the mage spell, both of
   which identify a single unknown rune
 - All scrolls, potions, mushrooms are identified on their first use
 - Most wands, staffs and rods are identified on first use, the main exceptions
   being when they affect monsters and are tested in the absence of monsters
 - Ego item names become known once all the relevant runes are known

Player knowledge
 - Changes to previously known terrain outside the player's field of view
   (doors opening, etc) are no longer immediately known by the player
 - Secret doors are now always found on stepping adjacent (or at a distance
   by the mage spell)

Dungeon generation
 - A new generation algorithm has been introduced, and appears roughly as often
   as the classical generation algorithm
 - There are many new vaults in the new algorithm, and also new room types -
   huge rooms, rooms of chambers, and interesting rooms (like small vaults)
 - There is also an infrequently occurring generation type, the "moria level",
   which features large rough-edged rooms and many orcs, trolls and ogres
 - Lava has changed from being a visual curiosity in town in 4.0.x to being
   generated in the dungeon; it will burn those without fire immunity
 - Another new type of terrain has been introduced: passable rubble, which
   behaves like regular rubble except it can be walked through

Monsters
 - Monster breaths are now cone-shaped starting at the monster, instead of
   being indistinguishable from ball spells
 - Monster pathfinding has been improved (mostly), with monsters tracking
   explicitly by sight, sound or scent
 - The relationship between player stealth and monsters waking has changed

Random artifacts
 - Lights, rings and amulets are now fully randomised instead of based closely
   on the standard special artifacts
 - The artifact set generation algorithm has been changed so that random
   artifacts no longer correspond to individual standard artifacts, but rather
   are generated so as to get a statistically similar distribution
 - Calculation of object power has been simplified
 - Generating a set of random artifacts now actually writes a data file like
   artifact.txt, which can be used for future games

Curses
 - Sticky curses have been removed completely
 - A large number of new curses have been introduced
 - Items can have multiple curses
 - Curse removal targets individual known curses on items
 - Failed curse removal causes an item to become fragile
 - Fragile items have a chance to be destroyed on future failed curse removals

Status effects
 - Monster status effects have been redone to rebalance reliability and
   effectiveness, so that they may actually be interesting to use
 - New types of status-inducing spells and magic devices have been included

Other
 - Much more detail has been moved out to text files in lib/gamedata
 - Many underlying code improvements

Angband 4.0.5
=============

More bugfixes, the last of the 4.0.x series.

Changes
-------
 - Randart diggers always have a digging bonus
 - Some improvements to town generation
 - Improvements to probing and monster lore
 - Improvements to OS X port, including making Command-n bring up window n
 - Improvements to object and monster lists
 - Make the store names uniform

Bugfixes
--------
 - Stop properties of examined items from affecting the real player state
 - Make the slay cache work
 - Prevent attempting to buy when the pack is full
 - Fix bug which allowed repeating a purchase after leaving a store
 - Make sure chests are ignored correctly
 - Fix some message issues
 - Fix some monster friends
 - Make Windows sound work properly
 - Remove flicker in center_player option
 - Remove duplicate labels in death info
 - Remove help about bashing and jamming doors
 - Code improvements to directory paths
 - Fix bug where two players temporarily appeared on panel change while runni$
 - Fix subwindow map drawing
 - Plug some memory leaks
 - Grammatical correction to tombstone
 - Stop monster/player/object tiles from disappearing when targeting

Angband 4.0.4
=============

More bugfixes, *maybe* the last of the 4.0.x series.

Changes
-------
 - Remove some global variables
 - Allow ego types to remove flags from base types
 - Make Potions of Resist Poison also cure poison
 - Improve pickup of partial stacks
 - Disturb on first getting the object feeling
 - Minor code improvements

Bugfixes
--------
 - Stop crashes where use of an object destroys the object
 - Let Windows port accept a filename from the command line again
 - Speed up inventory/equipment refresh
 - Let hit to shatter move the player again
 - Stop autoinscriptions preventing object spoiler generation
 - Make study indicator work for books on the ground
 - Stop status effects happening after the player's death
 - Make randart lights keep the original activations
 - Make all new randart sets based on the standard artifacts
 - Stop animations interfering with the target path
 - Allow group monsters to melee the player in open areas again
 - Make info for spells like Banish Evil say "power" rather than "dam"

Angband 4.0.3
=============

More bugfixes, (very) hopefully the last of the 4.0.x series.

Changes
-------
 - Add stair-skip constant, making stairs go up or down that number of levels
 - Another 200 room templates (for a total of 500)
 - A number of code improvements, mainly from PowerWyrm
 - Shorten inventory prompt, put overweight info in 'C' screen

Bugfixes
--------
 - Correct OOD boost for object feelings
 - Really fix lack of artifacts this time
 - Make RNexus prevent hostile teleport level
 - Stop crash from summoning traps
 - Improve object ID from ball spells
 - Stop game hanging on empty quiver
 - Stop crash during inventory item damage by elements
 - Stop auto-ignore from cancelling monster detection
 - Make sure all changes to equipment are counted
 - Correct monster energy/turn order, stopping double moves by slower monsters
 - Correct food descriptions
 - Improve quitting in OS X

Angband 4.0.2
=============

Another bugfix version.

Changes
-------
 - New monster spell messages - thanks Elsairon
 - Put subwindow options in a separate file so they work for all characters
 - Order quiver ammo from worst to best
 - Make resting and statusline display for deep descent work like for recall 

Bugfixes
--------
 - Stop wrong timed effect happening
 - Make cheating death work
 - Make monster lore saving always work
 - Correct melee hit chance calculation
 - Make artifact knowledge show correctly
 - Fix starlight effect (plus some other potential projection issues)
 - Make monster lore save properly after probing
 - Give correct path to tiles in the SDL port
 - Stop monsters shooting other monsters
 - Calculate timed effects (notably temporary resists) properly
 - Limit visual updates during running and resting, speeding these up
 - Track the equipment count correctly
 - Stop the charges from a destroyed device being deducted twice
 - Small changes to build system to work better for servers and BSD
 - Improve bounds checking for grids, preventing some crashes
 - Make the quiver command symbol appear in help file display
 - Fix lack of artifacts
 - Several other minor code improvements

Angband 4.0.1
=============

This is chiefly a bugfix version.

Changes
-------
 - Allow barehanded combat to get multiple blows
 - Triple the number of room templates

Bugfixes
--------
 - Stop spell books from claiming spells like teleport do damage
 - A lot of coding style consistency improvements
 - Improve device skill boost description
 - Fix resistance to side effects of elemental attacks
 - Reduce carried weight correctly when items leave the gear
 - Remove potential crash when dropping from the equipment
 - Some other minor issues identified by PowerWyrm


Angband 4.0.0
=============

Please note that no 3.x characters, living or dead, will move gracefully into this version.  Finish off your character in your current version before moving over.

In the normal course of events, this file would contain details of every change that has been made since the previous version.  This version is a special case.  There are no gameplay changes, or at least only small details.  There are, however, massive changes to the code base.  The intent is to make the game more modifiable and flexible, and to prepare for big gameplay changes to come.

Summary of Changes
------------------
Core-UI split
 - split the game into core and UI, and stop anything in the core from depending on anything in the UI

Modifiability
 - put many of the game constants in a text file rather than being compiled in, so they are user alterable
 - text data files cleaned up and documented
 - help file for modifying added - lib/help/modifying.txt

Dungeon generation
 - allow saving of dungeon levels and the town
 - allow generation of dungeon levels piece by piece
 - generalise level generation algorithms
 - allow more control over monster generation for thematic purposes
 - allow regions where restrictions apply (eg no ESP or no mapping)
 - there is a 'squares' array containing the terrain, locality info, traps, objects, flow info and monster on each grid

Player knowledge
 - duplicate the dungeon level "cave" struct, so that there is a reality version and a player version

Objects
 - replace pvals (aside from fuel, food etc) by an array of values
 - separate resistances, immunities etc from flags to allow for more values of resistance
 - separate brands and slays from flags to allow more variablilty
 - remove hard-coding of object tvals and svals, so objects can be safely added and moved around in object.txt
 - handle special artifacts straight from artifact.txt, so an unrecognised object kind (like Phial) automatically has a new object kind defined for it
 - put artifact activations in a text file
 - put objects in linked lists tied to the grid, store, monster or player that holds them, rather than indexed in a level-wide list

Inventory, quiver, equipment
 - make ordering of the inventory and quiver a UI construct only
 - use a Poschengband-style equipment template to specify equipment slots (so there is a standard player body, but more could be added)

Monster memory
 - make this a separate file, with full memory obtainable by copying monster.txt

Terrain/traps
 - multiple gameplay-identical terrain types now handled by temporary flags during generation
 - a full terrain flag system to allow easier addition/removal of terrain types
 - make traps separate entities, not terrain
 - make locked/jammed doors just closed doors with a trap
 - remove code reliance on the numerical value of terrain types

Squelch->Ignoring
 - remove all references to 'squelch', replace with 'ignore'
 - add ignore by ego type
 - emphasise the philosophy that the items are still there, just ignored

ID
 - have a separate field for every learnable property of an item
 - remove the IDENT_* flags

Effects
 - have all effects performed by a single function, and definable from text files

Monster attacks
 - put elemental spell effects back in the projection code rather than the spellcasting code
 - put blow effects into seprate handler functions

Player spells
 - generalise to make it easier to introduce new realms, classes, etc
 - have all spell info defined by a text data file

Projection
 - have separate functions to handle effects on terrain, objects, player, monsters
 - clarify different types of projection
 - allow for cone-shaped breaths
 - allow for a wider variety of effects (eg player/monsters pushed by force)

Stats, power, etc
 - refine and generalise stats where possible
 - attempt to clarify all the (frankly) fudge factors so they can more easily be seen and adjusted

General code stuff
 - rename files to be more sensible, or create new ones where needed
 - update debug commands to reflect the current game
 - move data into list-*.h files or edit files where appropriate
 - remove archaic stuff
 - re-organisation of lib directory
 - document!

