LambdaHack v0.10.0.0 Release Notes

    • Even in the subtle hit animation indicate who is the victim
    • โž• Add a missing space between 'modify terrain stat' and '5' with square font
    • ๐Ÿ’ป Make Burn as valuable as other damage for consistent UI display
    • ๐Ÿ‘‰ Show very good no-timeouts weapons at the correct position
    • Partially hash-cons ItemQuant, with very modest effect
    • ๐Ÿ”„ Change some occurences of trivial Quant to quantSingle
    • Simplify skill and place menu code
    • Don't multiply initialPlaces when preparing place display
    • Consume places for places menu more eagerly
    • Eliminate space leak when creating items
    • Avoid memory leak due to caves used for levels on a list
    • Fit the short help blurb in 4 lines
    • Start the game with a confirmation prompt
    • โฑ Sort weapons wrt timeout and item kinds ID as well
    • Simplify querying skills of the leader
    • Avoid long animations before the extra burn or wound animations
    • ๐Ÿ”„ Change combat animations to easily distinguish attacker from attacked
    • Let AI displace teammates when no risk of displacing back
    • Restrict AI use of stash guards less harshly
    • โž• Add a comment about allies stealing each other's stashes
    • ๐Ÿ‘ Let AI keep fleeing if no support gained
    • โœ‚ Remove a few redundant TypeFamilies pragmas
    • Explain in a comment why on a level with stash many sleeping may accumulate
    • ๐Ÿ‘‰ Make safari scenario harder now that aliens are buffed up
    • Let AI displace friends less often
    • โœ… Unify the test for item being damaging
    • ๐Ÿ‘Œ Improve module haddocs for content
    • Hide unneeded content group name patterns
    • โž• Add short-caves debug game mode
    • Display melee damage even if there's no ranged damage
    • โฌ‡๏ธ Reduce the number of calls to foeRegularAssocs
    • ๐Ÿ‘‰ Make sure AI actions are not recursive, even shallowly
    • โฌ‡๏ธ Reduce the number of calls to currentSkillsClient
    • Speed up skill arithmetic
    • Math order of cases in processWatchfulness with the order in type definition
    • โœ‚ Remove inlines that stopped helping in GHC 8.8 and that obstruct profiling
    • Compute friendAssocs only once for each actor AI processing
    • Limit and speed up invalidating BFS
    • Speed up a few significantly expensive functions
    • ๐Ÿ‘‰ Use the JS splitmix optimization
    • ๐Ÿ‘‰ Tweak random numbers code a bit
    • ๐Ÿ‘Œ Improve haddocks of the dice mechanism
    • ๐Ÿ‘Œ Improve help display a bit
    • ๐Ÿšš Move ClientOptions.hs to adhere to the convention about module hierarchies
    • Meld LH and Allure content, continued
    • Port over oil explosions that harm the targeted actor from Allure
    • Meld LH and Allure cave and item content
    • State the number of item in equipment even when removing from it
    • Explain the goofy handling of recharging in stash
    • Regenerate tile even if kind not changed, but all embeds gone
    • Permit altering tiles with items on them
    • Don't leave stash unguarded if friends may spawn
    • โž• Add stash detection effect
    • Cap stat bonuses when assigning AI value to items
    • Value skill bonuses differently for each skill
    • Be even more specific when describing what an actor does on a tile
    • โœ… Adjust the SDL test to run without installing fonts, as Debian requires
    • Don't let projectiles ever cause normal tile transitions
    • ๐Ÿ‘‰ Tweak pushing via an embed
    • โž• Add Q&A about hearing
    • ๐Ÿ‘‰ Tweak item valuations to make awkward armours wearable by AI
    • When describing an actor, say if it's pushed
    • ๐Ÿšš Push towards embed, not in direction of previous movement
    • Simplify key bindings display code
    • ๐Ÿ’ป Clean up naming of column offset in UI
    • Ensure no missing space between columns of help text
    • Prevent a trailing space
    • Don't activate barrels via mist
    • Don't treat blasts that damage through effects as mists
    • Don't let on noise distance if nobody can hear it directly
    • Differentiate the sound of projectile and actor hitting a tile
    • Emit sound also when an actor hits a tile
    • Display close and out-of-level noises with special colours
    • Display noise distance information
    • Send noise distance information
    • ๐Ÿ”จ Refactor hearing
    • ๐Ÿคก Mock up extended hearing
    • ๐Ÿ‘ Give better message when not enough skill to melee
    • Disturb resting when calm enough again
    • Don't summon by hitting a projectile
    • ๐Ÿ‘‰ Make actor aggresive if only one is not guarding stash on the level
    • Ban teleporting immobile foes; they come back and their loot is lost
    • Validate that item group names are short enough
    • Cath too long group names
    • Catch empty group names
    • Let more actors start sleeping
    • Consistently create on the ground all items looted from terrain
    • Mark game modes already won in this difficulty
    • Clear screen after start ASAP
    • ๐Ÿ‘‰ Use the AttrLine smart constructor or assertions as appropriate
    • ๐Ÿ“‡ Rename firstParagraph
    • ๐Ÿ‘‰ Tweak types to work with the stricter smart constructor
    • ๐Ÿšš Move assertion about trailing whitespace to a smart constructor
    • Eliminate trailing spaces in help and item menus
    • Replace a momentarily trailing space with nbsp
    • Don't define special messages with space, they are added automatically
    • ๐Ÿšš When splitting lines, remove the trailing spaces
    • Simplify a condition in splitAttrPhrase
    • Don't add a space when appending a report that starts with newline
    • Don't produce backdrop on black background
    • โšก๏ธ Optimize truncateAttrLine and truncateOverlay
    • Mark assertions expensive in menus
    • ๐Ÿ‘‰ Make avoiding SDL frame drawing more fine-grained
    • Simplify SDL frame drawing based on previous frame
    • โšก๏ธ Optimize menu scrolling via an extra texture
    • Don't waste healing items when HP low ceiling
    • Don't display that foes don't know their weapon when only you don't
    • Reflect keybindings change in the start scenario menu
    • Permit hero AI to consume elixirs
    • Don't flee if can kill a blocking enemy instead
    • ๐Ÿ‘‰ Make fast or hasted actors willing to close in for melee
    • Compensate for overhead of animals when creating conditions
    • Mark organs that are ready to expire once applyPeriodicLevel runs
    • Avoid stating that an organ will last for 0s
    • ๐Ÿ‘‰ Tweak slightly AI item preferences
    • Get rid of DropBestWeapon
    • ๐Ÿ›ฐ Don't rechare nor discharge projecile payloads
    • Start dicharging with strongest weapons
    • Let Discharge add to cooldown, not reset
    • โฑ Discharge only items with a timeout
    • ๐Ÿ‘ Consider as support only actors that can harm in melee
    • ๐Ÿ‘‰ Make organs (minimally) accessible from triggering
    • Let AI trigger items among organs
    • ๐Ÿ˜Œ Relax trigger stat 1 restrictions
    • ๐Ÿ‘‰ Tweak AI item use preferences valuation
    • ๐Ÿ‘Œ Improve the gameover item menu message
    • Record duplication of items to avoid absurd gameover messages
    • Discharge not only equipment, but also organs
    • Don't paralyse the last AI stash guard
    • Give AI stash guard more freedom if friends adjacent
    • ๐Ÿ‘‰ Make AI keep guarding even if teammates on the level may leave it
    • Don't let AI leave stash unless foes harm it
    • Don't abandon stash when teammates temporarily immobile
    • Prevent displacing a stash guard
    • Don't abandon stash if temporarily nonmoving
    • Abandon stash if under heavy fire
    • ๐Ÿ‘€ Don't abandon stash unless foes seen
    • Don't use aidTgtToPos unless necessary
    • If enemy in light, pelt him instead of leaving dark
    • Don't stop fleeing into hideout after 5 turns even if foes appear
    • Target dark if fleeing and no foes targetted
    • Efficiently find closest hideout for AI
    • Tabulate hideout tiles predicate
    • Factor out distanceBfs
    • Don't hog leadership just because weak and enemies close
    • When fleeing and soon after target only actors that can't melee
    • Stop fleeing if not hit and possibly friends managed to join
    • Take into account recent fleeing when taking off light
    • Simplify hinders
    • In AI action choice use recent fleeing instead of this and last turn distress
    • Don't overwrite fleeing record if fled recently
    • Don't chase foes if fled recently
    • GC fleeing record when actor lost
    • Extend fleeing state from 1 to 5 turns
    • Store not only fleeing position but also fleeing start time
    • Reorder organs
    • ๐Ÿ‘‰ Make two organs not LH-specific
    • Don't undervalue weapons with drop condition
    • ๐Ÿ‘‰ Make it possible for animals to mark levels as explored
    • ๐Ÿ‘‰ Make slack tactics AI less erratic when focused or distressed
    • โž• Add a comment about animals bad at changing levels
    • Let AI displace any sleeping blockers
    • Don't let AI actors fall asleep if not relaxed
    • Don't force animals to change target just before reaching it
    • ๐Ÿ‘Œ Improve condAimCrucialM for vector targets
    • โœ… Flesh out the crawl survival test scenario
    • ๐Ÿ‘‰ Make crafting act as if on bottom level
    • ๐Ÿšš Move skill checks from pathfinding to targetting and restrict immovable actors
    • Forbid making missiles hungry, asleep, etc.
    • โšก๏ธ Optimize processTileActions
    • ๐Ÿ‘‰ Make sure projectiles can modify terrain even if safe from effects
    • Don't reset TVector target, because it's set manually
    • Create a central staircase
    • Display ranged damage even when limited space in menu line
    • Shorten the display of weapons if not enough space
    • Don't consider enemy projectiles for determining if AI is in melee
    • ๐Ÿ‘‰ Make poison less deadly in corridors
    • Eliminate the stash domination exploit
    • ๐Ÿ‘‰ Make guessing if AI was hit by projectiles more accurate
    • Prevent wounded animals from closing in agains mutliple enemies
    • In messages tell discharge from recharge effects
    • ๐Ÿ‘‰ Make smell more important that stairs, again
    • Clean up vector target code
    • Melee non-targets if target not worth killing
    • Don't perform all monadic actions that compute strategies before choosing one
    • Don't retarget actor if blocked by the very actor and so can melee it
    • Simplify target shoice for slack doctrine factions
    • Sort items in lists in normal texts
    • Help AI unlock the dungeon if stash guard helds the key
    • Prevent animals from eating their own meat
    • Prevent creating new items via throwing others, with ikit
    • ๐Ÿšฆ Signal specially when an item is located in a stash, as well
    • Say when an item appears in a stash, etc.
    • Don't warn if selected missile from stash can't be picked up
    • Don't flee if back next turn
    • When fleeing don't remember the last targetted enemy
    • ๐Ÿšš Move keybinding content definitions to match display order
    • ๐Ÿ’ป Prevent, in UI, removing from equipment if not calm
    • ๐Ÿšš Warn when illegal item movement attempted
    • Display stash blurb also when switching the leader
    • Don't let stash guards leave levels
    • Don't prevent displacing a friend if only half of a loop is present
    • Don't neglect guarding stash unless no buddies to help
    • ๐Ÿ‘‰ Tweak AI conditions
    • Don't flee if own stash close unless completely overwhelmed
    • Easily displace teammates that guard the stash
    • Mention stash when walking over a tile
    • Do not flee and be reluctant to chase when guarding stash
    • Introduce guarding own stash
    • ๐Ÿ‘‰ Make isDoor more accurate
    • Don't make a rumble when door closes
    • Tabulate isOpenable and isClosable
    • ๐Ÿ‘‰ Make tall staircases more likely now that they are often broken
    • ๐Ÿ‘‰ Make types a bit more strict in stairs calculation
    • Simplify stair number computation
    • ๐Ÿ“‡ Rename cextraStairs
    • ๐Ÿ”„ Change the semantics of cextraStairs
    • Separate stair number computation and level generation
    • Compute abandoned stairs earlier
    • ๐Ÿ“š Correct the documentation of cextraStairs
    • Roll extra stairs earlier
    • Roll cave kinds earlier
    • Simplify shuffling caves
    • When transforming walkable tiles, don't insist on embed activations
    • Ban crafting and terrain transformation in the same action
    • Try to make the terrain transformation specs more readable
    • Prevent the exploit of using cover against non-moving shooters
    • ๐Ÿ‘‰ Make makeLine non-monadic
    • Keep the data invariant of @arenas@ for longer
    • Make the interrupted running display look less corrupted
    • โž• Add and tweak comments about item maps
    • โšก๏ธ Update the manual and keybindings printout
    • ๐Ÿ‘‰ Tweak the wording of keybidings descriptions
    • Prevent marking inert items as (charging)
    • โž• Add ANY_FLASK group
    • ๐Ÿ‘‰ Make sure impression is dropped before other conditions
    • ๐Ÿ– Handle failed bump-modification without embed activation
    • ๐Ÿ”„ Change the key for new game, not to mix up with 'n'o
    • โœ‚ Remove misleading comment about tiles being explorable
    • In message fits in one long line, don't wrap it into small lines
    • Don't make consumables with Ascend effect worthless
    • ๐Ÿ”„ Change division by zero into an assertion failure
    • ๐Ÿ‘€ Comment why 'seen' sometimes gets from 100% to 99%
    • Validate HideAs in content instead of asserting its property later on
    • ๐Ÿ‘‰ Tweak (speedup the tiniest bit) updAlterTile
    • Stop leader before leaving dark in a more useful way
    • Don't equip light even if enemy only remembered
    • Simplify the interesting target conditions for AI
    • Flee through dark not only when starting in light
    • Chase and flee through dark even if not starting from light
    • Simplify the chasing ambient light condition
    • Prefer leaders that don't step into light
    • Detour when chasing, to avoid lit spots
    • Prefer fleeing into dark spots
    • Don't flee from projectiles if can't flee into the dark
    • Prevent AI from vainly chasing fast shooters
    • ๐Ÿ‘‰ Tweak and simplify AI fleeing condition
    • Help AI sidestep a blocking meleeing friend
    • Let AI go towards enemy stash even if in melee
    • Join melee from twice longer distance
    • ๐Ÿ“‡ Rename CURIOUS_ITEM
    • Don't display 0 ranged damages
    • โž• Add missing content group definitions
    • Simplify content validation
    • Check that content group names are all listed
    • Let the draft detector emit noise and sound
    • ๐Ÿ‘‰ Tweak the engine to accomodate a detection device that pings
    • Prevent non-humans from hogging key items and so blocking progress
    • Reorder item definition to match those of Allure for diffing
    • Don't emit server leader change messages if known to client
    • Comment about the trade-offs of weapon benefit calculation
    • Mark the lore screen with crafting recipes
    • Don't confusingly refuse to display the pushing effect for shields
    • Increase minimal damage taken, regardless of armor, to 5%
    • Be pendantic when emitting messages about creating items
    • Don't say that a projectile is wounded
    • ๐Ÿ‘‰ Show enemy HP under the selected item
    • Simplify strongestMelee
    • โž• Add an alias for picking up all items, etc.
    • Sort out naming of item and embed activations
    • Simplify revCmdMap
    • Warn when embeds activated, but transformation failed
    • Check dangerous tools use even when nested in transformations
    • Don't transform terrain when bumping
    • Let pathfinding avoid vicinity of enemies
    • ๐Ÿ‘‰ Make it easy to discern an attack on teammate among many messages
    • Don't display misleading condition drop messages
    • Visually distinguish embed names and descriptions
    • Permit fractional FPS, for debugging
    • Colour-code map position descriptions
    • ๐Ÿšš Move the run macro to where all other engine macros are defined
    • โœ… Permit unknown command, for testing
    • ๐Ÿคก Simplify and clarify the mock
    • Unify repeatHumanTransition 1 and macroHumanTransition
    • Reflect in types that macro frame stack is never empty
    • ๐Ÿ‘‰ Make more space for explicit import lists
    • ๐Ÿ“‡ Rename components of the macro data structure
    • Drive the point home that repeatHumanTransition 1 /= macroHumanTransition
    • โž• Add tests that illustrate not creating new buffers for in-game macros
    • Touch up the macro code a bit
    • โž• Add tests showing lack of referential transparency of named macros
    • Don't prompt about recording a macro it's part of macro replay
    • Warn when pick up not to equipment due to low calm
    • Display how many items in equipment when equipping
    • Refuse to equip if equipment full
    • โœ… Separate testing harness import from game content import
    • โž• Add a helper function to shorten tests
    • ๐Ÿ“‡ Rename the semantics functions
    • Implement the desired semantics of RepeatLast
    • โœ… Sketch the desired semantics of RepeatLast via tests
    • โšก๏ธ Use the same updateLastAction function in test mock
    • Collect a more precise last action key
    • ๐Ÿคก Simplify slightly the mock
    • Grey out more (all?) illegal commands
    • โž• Add special messages when illegally flinging or applying
    • Go even through stores that all factions have empty
    • โช Revert banning stores for all actors based on the first checked
    • โž• Add special messages when illegally moving items from or to eqp or ground
    • Forbid unequipping items when not calm, again
    • Don't ignore illegal stores if once shown
    • Display the number of items in equipment even when not calm
    • ๐Ÿ‘€ Write client RNG seed to UI RNG seed numbers at game restart
    • ๐Ÿ’พ Save UI random seed to avoid boring messages if many save/loads
    • โž• Add a comment about stealth viable for tactics, but not strategy
    • Reset C-f when x-hair automatically changed
    • Pick as leaders also the actors that could melee but should not
    • ๐Ÿ‘‰ Make animals unable to catch projectiles
    • Don't cycle xhair through own stash
    • Display slideshows normall unless really too long, not just excessively long
    • Give more time to view a frame when frame level changes
    • Be more verbose when kicking terrain
    • Prevent the inability of taking off max calm draining items
    • Re-assign action repeating keys
    • Clean up macro command's texts
    • Place ikit item in a semi-random way
    • ๐Ÿ‘‰ Tweak content group names for display
    • Avoid 'of gain of gain' in item descriptions
    • Don't talk about blocking when no kinetic damage dealt
    • Match the order of game over lore screens with in-game lore menu
    • Prevent AI from imbibing a potion of panic
    • Don't call a tile alterable if embeds have no effects
    • Prefer leaders that target enemy stashes
    • Don't chase stashes of friends and neutrals
    • When creating items on the floor during dungeon generation, create ikit items
    • When embedding items in tiles, optionally generate more items
    • โฑ Redesign so that charging items can be determined even if timeout unknown
    • Clean up some instance deriving
    • โœ… Factor out two more pure functions about macros to use in unit tests
    • ๐Ÿ“œ Permit creation of input content without parsing a config file
    • โœ… Factor out pure function about macros to use in unit tests
    • Record nested macros on stack
    • Snatch enemy stash ASAP if adjacent
    • โœ… Port tests to tasty
    • Undo the attempt to end game when player kills window
    • โœ‚ Remove a spurious recordHistory
    • ๐Ÿ‘€ Make sure verifyCaches error doesn't obscure RNG seed of the crashing run
    • Don't let big actors auto-craft at death
    • In menus show how long conditions will last
    • Tell how for long an actor is going to be slowed when first affected
    • Tell how for long an actor is slowed in total after extra slowness, etc.
    • Tell how much poisoned actor is in total after extra poison, etc.
    • Don't display the mandatory turn frame if a frame already displayed this turn
    • ๐Ÿ–จ Don't draw (and printscreen) identical frames, even if small fonts used
    • ๐Ÿ›ฐ Don't trigger terrain if projectile has lost its payload
    • Enable cooking of food thrown into fire
    • Don't spam when blasts transform terrain
    • Simplify dieSer
    • Ensure the last step of projectile flight is shown
    • โœ‚ Remove a repeated check
    • Be more verbose when transforming items with scrolls
    • Display level where the stash is, as a reminder
    • Don't displace sleeping immobile actors
    • Simplify checking if an item is identified
    • Prevent AI from putting most weapons in reserve
    • Let AI be eager to equip unidentified and good unique items
    • Don't be too verbose with tile altering when leader stands on it
    • Don't craft from equipment due to possible involuntary harm
    • โœ‚ Remove altering via dropping items; too disaster-prone
    • ๐Ÿ”จ Refactor handleDir
    • Permit indicating the zero vector with mouse
    • Colour and reword the message about consuming items
    • Be a bit more verbose about tile changes
    • Don't inform about a projectile's equipment
    • Avoid hitting 'feebly' with a heavy hammer
    • ๐Ÿ‘‰ Show, e.g., harpoon as an obvious choice for throwing despite usable for melee
    • Don't summon by hitting a friend
    • Don't hit delicately just because the weapon was not identified
    • Prevent AI from wasting time throwing very weak projectiles
    • Avoid 'chip of scientific explanation turns out to be', when identifying
    • ๐Ÿ‘Œ Improve item destruction messages
    • โž• Add OnUser effect constructor
    • Avoid 'the pair turns out to be' when identifying
    • When short name requested, don't append numbers and parens
    • Prevent VerbMsgFail being repeated 99 times
    • Describe how colours correspond to tile properties
    • Let even unskilled actors take over stash
    • Take over stash also when actor dominated or created
    • Target enemy stash in preference even to enemy actors
    • โž• Add comments about salter and pathfinding
    • Avoid 'controlled by Controlled foo'
    • Avoid 'hits delicately' with a 14 HP wounding hammer
    • Ensure in content that Burn is positive
    • Mark weapon burning and wounding on HUD, to avoid hammers all look benign
    • Clarify that chosen weapon needs not be optimal for a foe
    • ๐Ÿ‘Œ Improve display of places lore
    • Pick up enemy summoning periodic items to deny them to foes
    • Don't send the SfxTrigger messages to the client
    • Mention that stats menu summarizes the organ menu
    • โž• Add sample cabal.project.local files
    • Introduce VerbMsgFail effect
    • Let crafting use up terrain, if successful
    • Don't split tile properties description by description of things on the tile
    • Avoid crafting via walking into a worshop tile
    • Introduce SeqEffect to use for crafting creation in place of AndEffect
    • ๐Ÿšš Let components 'disappear', not 'be removed' during crafting
    • ๐Ÿ‘Œ Improve crafting recipe description
    • Automatically identify crafted items
    • When cratfing, use tools but destroy components
    • ๐Ÿ†“ Don't create items in equipment if not enough free slots
    • When crafting, apply as many copies of durable items as required, not just one
    • Don't crash if crafting fails due to unique already generated
    • ๐Ÿ‘Œ Improve debugging of item creation
    • Don't display thrown damage for organs
    • Flesh out projectiles opening terrain and flying through
    • Require embed activation even for item-fueled terrain transformations
    • Don't spam if recording is a part of a macro
    • ๐Ÿ‘‰ Make the summary of killed enemies less confusing
    • Let some explosions destroy terrain
    • โž• Add black backdrop beneath prop font overlays, for readability
    • Be even less verbose in descriptions of items with crafting
    • Validate that item definitions have slots whenever expected
    • ๐Ÿ“‡ Rename the Macro type
    • Record also in-game menu navigation keys
    • Recover macro's recording order invariant
    • Document Macro, swap types in smacroBuffer's Either type
    • Wrap the macro buffer into a newtype
    • Encode recording state in type of macro buffer
    • Be more precise when reporting OnCombine effects
    • Format crafting recipes in a more readable way
    • Gather effects application flags into one record, for redability
    • โž• Add an assertion that catches ItemQuant data invariant violation
    • Ignore timeouts when using tools or transforming terrain
    • Don't apply kinetic damage when using tools or transforming terrain
    • ๐Ÿ–จ Generalize printing crafting recipes to many products
    • ๐Ÿ“‡ Rename the dagger item definition to match Allure
    • ๐Ÿ“œ Help parsing recipes with bullets
    • Avoid spike 2d1 (cooldown 8) of cooldowns at 4
    • Typeset crafting recipes slightly
    • ๐Ÿ“‡ Rename the whetstone item definition to match Allure
    • Don't repeat crafting recipes in OnCombine descriptions
    • ๐Ÿ‘‰ Show full crafting recipes only in lore menu, not when targeting
    • Speed up and simplify the use of countIidConsumed
    • Alter ConsumeItems and unify with ChangeWith
    • โž• Add optional count parameter to effect CreateItem
    • Validate that item definition parameters in content are positive
    • Display details of item crafting effects
    • โž• Add ConsumeItems effect
    • Let AI ignore potentially unopenable entrances, to avoid AI loops
    • ๐Ÿ‘Œ Improve messages related to Discharge effect
    • Simplify checking actor presence on a level
    • โž• Add the Discharge effect
    • Be more verbose when loot created
    • Don't complain about failed transformation if embedded item triggered
    • โช Revert "Break thrown non-unique items, even if durable"
    • Let projectiles trigger only easiest embeds and alterings
    • In tile content specify if projectiles may trigger actions
    • Display when ending a flight, to make harpoon a sensible weapon
    • When actor lacks tools to transform a tile, inform him
    • Break thrown non-unique items, even if durable
    • Squash repeated terrain transformation tools in descriptions
    • Confirm that a weapon is to be used for transformation
    • List tools needed for transformation in terrain description
    • Factor out client altering conditions
    • Unify altering by bumping and altering by pointing and server conditions
    • Don't waste turn when altering fails, but waste when embed triggering fails
    • Factor out listToolsForAltering and subtractGrpfromBag
    • Permit the use of tile altering tools with different durabilities
    • ๐Ÿ“œ Factor out parseTileAction
    • Don't count repetitions in OneOf effect description
    • Prefer non-durable altering tools, even in equipment
    • Avoid message about triggering a 'way' without any more details
    • ๐Ÿ“‡ Rename terrain patterns that denote possibly depleted resource
    • Consider durable tools last for terrain alteration
    • ๐Ÿ–จ Process tile features in order to prefer trap disarming to triggering
    • Prevent embeds triggering each other in a loop
    • Simplify applying embeds
    • Display untruncated (and mangled) messages in teletype mode
    • ๐Ÿ‘‰ Make frontendName to avoid losing message in teletype frontend
    • Clean up the presentation of group name patterns again
    • ๐Ÿ‘Œ Verify that singleton group names are so
    • Separate singleton kind group names
    • Validate that some more kind groups are singletons
    • ๐Ÿ“‡ Rename HideAs to PresentAs for item kinds
    • Simplify individual content validation due to stronger global validation
    • Check that group names unique and not void
    • Supply group names to the content creation and validation function
    • ๐Ÿ‘Œ Improve special gameover messages
    • Clean up the lists of hardwired patterns
    • Get rid of OVER in pattern names
    • Clean up the DEFENSELESS vs VULNERABLE mixup
    • โœ‚ Remove foldl from prelude to prevent space leaks
    • Group the patterns yet slightly differently
    • Catch empty OneOf during item content validation
    • Group the patterns slightly differently
    • Be consistent in taking only first word as game mode name
    • Rename PHD_DEFENSE_QUESTION to VULNERABILITY_BALM for diffing with Allure
    • Group TileKind patterns
    • โœ‚ Remove IsString instance of GroupName to catch typos
    • Reorder code in content files
    • ๐Ÿ‘‰ Make embed content patterns different from tile patterns
    • ๐Ÿ‘‰ Use PatternSynonyms for all content
    • Permit and use PatternSynonyms in some ItemKind-related code
    • Don't crash when some items consumed during dropping
    • Don't warn about untriggered embeds; altering may be the focus
    • Don't report exploiting if not triggered
    • Let terrain be changed with items even when embeds not untriggered
    • Be less verbose when losing items
    • Be more verbose when losing items due to tile altering
    • Report which embedded item was exploited so that 'Nothing happens' makes sense
    • Don't report items appearing under projectiles that are already spent
    • Reword command category headings
    • ๐Ÿšš Don't move away staircase inhabitants if projectile is changing levels
    • Let only visible projectiles discover hidden tiles, etc.
    • Don't display vacuus menu mode switch symbols
    • ๐Ÿš€ Waste items for altering only if voluntary or released as projectile
    • Get rid of spam about inability to modify terrain
    • Identify item lost in order to modify terrain
    • Let projectiles alter terrain, but not when just flying over it
    • Don't check alter skill when projectiles do the altering
    • ๐Ÿ‘Œ Improve comments about the 6 tile modifying constructors
    • Don't modify terrain by just walking over it
    • Permit the use of equipment for modifying terrain
    • Warn when no items to modify terrain
    • Prefer durable items for altering tiles
    • Don't destroy but apply durable items used to alter tiles
    • โž• Add tile alteration that demands and consumes items
    • ๐Ÿ‘Œ Improve description of cooking effects
    • โž• Add OrEffect binary constructor
    • Replace Composite by a binary constructor
    • Display failure message when embed not under feet triggered vacuusly
    • ๐Ÿ†“ Don't light adjacent tiles for free
    • Avoid 'you look less hungry' about the pointman
    • When smashed item exhibits no effect, don't warn
    • Report tile changes under a big actor
    • Generally never alter tile if under feet and embed not triggered
    • Detect when dropping or destroying items is vacuus
    • Only alter tiles via walking on them if any embed triggered
    • Don't spam when embed doesn't trigger when walked over
    • Implement DestroyItem effect
    • Let embedded items react to items dropped over them
    • Explain away only pointman moving
    • Inform about automatic melee in the in-game help
    • Mention that all factions and actors are equal
    • Reverse stars and underscores in HP bar in HUD
    • Stress suvival in the game manual
    • ๐Ÿ‘‰ Make skill check for embedded items on the client consistent with server
    • Give hints when terrain can't be entered nor modified
    • Describe hunger removing items, etc., with more detail
    • Mention leap frog in game manual
    • When scrapping message repetitions, ignore trailing EOLs
    • Don't spam about items underfoot at game start, when they are also 'located'
    • Report moving player's stash on a new line, mostly for starting screen
    • Bring back scenario notes at game start and resume
    • Bring back notes in challenges menu
    • ๐Ÿ– Handle the meta note about scenario separately
    • Mention challenges in the high score entries
    • โœ‚ Remove the Show instance of ScoreRecord
    • Invalidate inMelee when weapons dropped or picked up
    • โœ… Use --assertExplored in makefile tests
    • ๐Ÿ‘Œ Verify the commandline assertion about explored level
    • Don't assert exploration if another game started in a debug run
    • โž• Add a debug commandline option to verify explorers are not stuck
    • ๐Ÿ‘‰ Make projectile-less actors randomly more aggressive
    • โž• Add a bit of histeresis when fleeing
    • Destroy proportional font textures to avoid freezes when they pile up
    • Prevent AI from running away from helpless foe
    • Stop targetting foes once they lose all weapons
    • Let AI do more vs foe with HP <= 0 to avoid stalemate if foe regenerates fast
    • Don't spuriously check if TEnemy is a foe
    • ๐Ÿ‘Œ Improve documentation of targeting
    • Don't attack hapless nonmoving foes at range also
    • Don't normally target nonmoving actors that can only melee
    • ๐Ÿ‘‰ Use actorWorthMelee in inMelee
    • Melee a targeted foe even if not worth meleeing otherwise
    • Don't target hapless uninteresting foes
    • Don't melee a foe with only benign weapons
    • Don't consider foes with benign weapons a threat
    • Only consider actor in melee if adjacent foes worth meleeing
    • Don't interrupt running if benign melee actor adjacent
    • Introduce the count of benign weapons of an actor
    • ๐Ÿ‘‰ Make sure tutorial scenarios have enough melee weapons
    • Avoid checking isModifiable once more, in verifyAlters
    • Consistently check isModifiable together with embeds
    • Mark the new request failures as impossible on the server
    • โž• Add some internal operations, for future easier profiling
    • โœ‚ Removed TileOpenClosed error message
    • Further enhancements in tile closing
    • โœ‚ Removed TriggerTile
    • โœ‚ Remove commandline default that forced Just that is interpreted as game reset
    • Bring back the way dungeon generation perturbed random rolls
    • ๐Ÿ‘€ Make 64bit native and 32bit browser games play the same with the same RNG seed
    • ๐Ÿ‘€ Keep a separate random seed for UI
    • ๐Ÿ‘‰ Use bitmaskWithRejection form randomR
    • โž• Add some BENCHOPTS
    • ๐Ÿ‘‰ Use splitmix
    • ๐Ÿšš Suggest switching to another teammate if movement skill drained
    • 0๏ธโƒฃ Turned off showing of default --maxFps value
    • โž• Additional logPriority value and defaultMaxFps
    • ๐Ÿ’ป Couple command line options are now clamped or checked before they're set
    • Only run with selected actors that are not yet at goal
    • ๐Ÿšš Hint about menus in movement stst too low message
    • ๐Ÿšš Hint to wake up if movement skill drained by sleep
    • Display also own asleep actors green on HUD
    • ๐Ÿ‘‰ Make the heading of item menu when inspecting an organ less confusing
    • Tell that second 'f' projects
    • โž• Add a comment about the 'exploit' verb
    • Do not mention 'trunk' in weapon strike messages
    • Do not mention 'trunk' in armor blocking messages
    • Suggest in history menu to press RET
    • Get rid of Server.EndM
    • ๐Ÿ‘‰ Make sure closing window in rage at defeat/win saves game
    • Mention in the manual that HP starts at half max
    • Reformat game peculiarities list in the manual
    • Don't announce pushing that has no effect
    • Try to make the under AI control prefix less confusing
    • Let animations be toggled in main menu
    • Don't display buttons on a separate line unless message is very long
    • โž• Add a newline after scenario description
    • Avoid blank lines in history
    • Overhaul the order and blurbs of game modes
    • ๐Ÿ‘‰ Make raid scenario squad-based
    • Display scenario descriptions in their submenu
    • Don't show backstory in submenus of the main menu
    • Rework new game start menus
    • โž• Add a visual separator between new games in history
    • Reverse the order history messages are displayed in
    • Copy the list of distinguishing features from Allure homepage
    • Restructure chronologically the game manual with verbs as section titles
    • Avoid empty paragraphs
    • Ignore linebreaks when showing the condensed history line
    • Underline that mouse is optional
    • ๐Ÿ‘‰ Make 'crosshair' on the status line uniform with other headers
    • Bring back the help prompt that doesn't confusingly mention advancing
    • Mark overful HP and Calm specially on HUD
    • โž• Add some blank lines when stacking command lists
    • Stress that mouse is optional
    • ๐Ÿšš Move mouse help screens earlier
    • Don't indent help parts by proportional space width
    • Clarify the structure of help information
    • Don't show 'crosshair' when not aiming
    • Get rid of 'x-hair'
    • ๐Ÿ‘‰ Make collective running less prominent in help; tweak help
    • Mark some text files as out of date
    • โž• Add a paragraph break before nearby item summary
    • Accept longer menu messages
    • โž• Add a paragraph break before cave description
    • Warn that over-max HP gain is transient
    • Mark deaths with paragraphs and display 'Alas' already at incapacitation
    • โž• Add a line break after gameover identification of items
    • โž• Add a couple of line-breaks to reports
    • ๐Ÿ“‡ Rename emptyAttrString, which was misleading
    • Introduce a newtype of attribute lines with no linebreaks
    • Prevent backstory overflow in main menu with proportional font
    • ๐Ÿšš Move O command just after I command in help
    • When toggling autoplay, as with y/n, not SPACE/ESC
    • ๐Ÿšš Let left and right arrow keys move between sides of help screen
    • Fine-tune helps screens for display side-by-side
    • Naively cram help screens side by side
    • ๐Ÿ”€ Merge the two item command help pages
    • ๐Ÿ‘‰ Use proportional font for help, dashboard and item menu
    • ๐Ÿšš Use square font for movement scheme help paragraph
    • ๐Ÿ‘‰ Make it possible to use many fonts in help
    • ๐Ÿšš Get rid of MoveKeys.txt
    • Set up main menu for both proportional and square fonts
    • โœ‚ Remove backstory from help screens
    • โž• Add backstory to main menu, set up for square font, for now
    • With square font, add extra space before item symbol
    • Represent button width as a datatype
    • Parameterize all typesetting by the font setup (multi or single)
    • ๐Ÿ‘ Pass along information about supported fonts
    • Let sdl frontend really handle the setup with no prop nor mono font
    • Gut out ascii art
    • โž• Add blank space around some lines of overlays
    • Take all items with *, not !
    • โšก๏ธ Update the item removal verb
    • Switch a single place lore display to mono font
    • Render skill menu and item lore menu with proper fonts
    • Display item symbol in item menu in square font
    • Display label and symbol in items overlay using square fonts
    • Display at most 3 lines of buttons when too little space for menu
    • ๐Ÿ‘‰ Make a mouse misclick error easier to understand
    • Don't wrap Mono keys after a prompt
    • Overlay in square font when basic frame is under animations
    • ๐Ÿ’ป Introduce a separate UI coordinate system
    • ๐Ÿ‘‰ Make boxSize even
    • Don't highlight wrong overlays when buttons highlighted
    • ๐Ÿ’ป Avoid proportional font in button-like UI areas
    • Permit overlays with gaps
    • Name font kinds consistently
    • Display some overlays in monospace font
    • Display history labels in mono font
    • Specify fonts also in slideshows
    • ๐Ÿšš Move the definitions of DisplayFont and FontOverlayMap
    • Propagate the choice of fonts for overlays
    • Generalize drawOverlay to specify desired font for each overlay
    • Generalize overlays to let them start at arbitrary X offsets
    • Eliminate overlayFrameWithLines
    • ๐Ÿ‘ Document better the overlay types
    • ๐Ÿšš Move ColorMode to another module
    • Specify when to use which kind of main font
    • โž• Add monospace rectangular font to game configuration
    • โœ‚ Remove the old woff font
    • โž• Add new fonts, proportional and monospace
    • Specify size of the message font separately
    • Don't cursor highlight break up proportional font message chunks
    • Don't let space break up prorpotional font message chunks
    • Render the extra overlays in proportional font
    • ๐Ÿ‘ If message font supported, pass overlay over instead of rendering
    • ๐ŸŽ‰ Initialize also the message font in SDL frontend
    • โž• Add message overlay font to game configuration
    • Comment about why animals rarely eat food
    • ๐Ÿ“‡ Rename tactics to doctrine
    • Get rid of the henchman notion
    • ๐Ÿ“‡ Rename leader to pointman
    • ๐Ÿ– Handle UpdTimeItem when container not visible (CStash), but item visible
    • ๐Ÿ‘Œ Improve command descriptions
    • ๐Ÿšš Redefine key bindings not to collide with new movement keys
    • ๐Ÿšš Detect collisions of keybindings with movement keys
    • ๐Ÿšš Use the keys freed by removing the right hand movement setup
    • ๐Ÿšš Replace right hand with left hand movement keys
    • ๐Ÿ’ป Main inventory the main store in game help and UI
    • ๐Ÿšš Move total value display to all posessions menu
    • ๐Ÿšš Identify items at any item move, in case they are thrown at stash
    • Avoid spam about actors getting braced
    • Mention in failure messages that hoard accessed when stading over it
    • Mention in failure messages that too low Calm for Eqp
    • Attempt to display handling of multiple items more succintly
    • ๐Ÿšš Bring back UpdMoveItem to have better messages
    • ๐Ÿšš Properly describe item move actions
    • Lose access to stash when enemy steps on it
    • ๐Ÿšš Say who's stash is an item moved to, unless it's ours
    • Announce that enemy stash found
    • ๐Ÿ‘‰ Make sure to let clients know even the human trinket items at gameover
    • ๐Ÿ‘€ Let new stash correctly overwrite old, even if old not seen
    • Introduce PosSightLevels and use for CStash containers
    • ๐Ÿ‘€ Get rid of seenAtomicGeneralCli
    • Simplify handleAndBroadcast
    • ๐Ÿ‘‰ Make updTimeItem more loose when enemy CStash is considered
    • Don't carry item definitions in commands that don't create items
    • Register on the client the items necessary for commands
    • Analyze what items client needs to know to process a command
    • Clean up creation vs spotting of actors and items
    • โž• Add UpdRegisterItems to be used instead of many ad-hoc calls currently
    • Be permissive when performing atomic action wrt CStash
    • Simplify SfxStrike, etc., and don't require access to store's bag
    • Simplify PosFidAndSight
    • โœ‚ Remove UpdMoveItem atomic command that is not too common without CInv any more
    • Simplify handling of CStash action visiblity
    • Display also enemy stashes in position description
    • Let actors learn stash positions when they come into view
    • Mark on the map enemy stashes as well
    • ๐Ÿ”จ Refactor UpdStashFaction to let enemies see it sometimes
    • โž• Add shared stash position to team's perception
    • Say in position description that stash is there
    • Mark own shared stash position with white box
    • โœ‚ Remove gstash handling in atomic commands
    • ๐Ÿšš Move CStash in server code, not atomic commands
    • Avoid catch-all in cmdAtomicSemSer
    • Introduce UpdStashFaction
    • Do not produce a now unused ItemFull for inventory
    • When moving items, don't cycle to Ground, when over stash
    • ๐Ÿ’ป In UI don't try to use CGround when over CStash
    • Don't let AI consider floor items at it shared stash location
    • When scanning a map, don't consider own stash an ordinary pile of items
    • โšก๏ธ Update atomic position information for shared stash
    • ๐Ÿ‘‰ Make eqp, not stash, unavailable when low Calm
    • 0๏ธโƒฃ Make CStash the new implicit default when picking up items
    • Gut out CInv and CSha and replace it with CStash represented on the map
    • โœ‚ Remove the unused effect ActivateInv
    • โฌ†๏ธ Bump version, anticipating major inventory logic overhaul
    • Reword the MOwned item dialog mode blurbs
    • Simplify the header of the lore menus
    • ๐Ÿ”„ Change meny keys / and ? to > and <
    • โšก๏ธ Update scenario names in the manual
    • Mention the ! key whenever KP_* is mentioned
    • Simplify and fix placement of --more- prompts
    • ๐Ÿ”„ Change the AttrString word gluing operation and fix drawFrameStatus
    • Slightly fix speed calculation to agree with what's on the wiki
    • ๐Ÿ›  Fix wrong alignment of level percent seen
    • ๐Ÿ›  Fix autoexplore with changing crosshair
    • ๐Ÿ›  Fix goto not interrupted change of crosshair
    • ๐Ÿ›  Fix the valuation of OnUser effect
    • ๐Ÿ›  Fix the lack of the last backdrop line in the game greeting blurb
    • ๐Ÿ›  Fix memory leak in placesFromState
    • ๐Ÿ›  Fix double braced due the hack for skill-less yelling
    • ๐Ÿ›  Fix order of using weapons inconsistent with HUD
    • ๐Ÿ›  Fix actor that can't wait not ignored as a pointman even when inactive
    • ๐Ÿ›  Fix stash guard preferred as pointman
    • ๐Ÿ›  Fix AI leader choice to really prefer old leader and to avoid light more
    • ๐Ÿ›  Fix raid scenario starting with two faction close to escape
    • ๐Ÿ›  Fix random number out of range on 32bit JS
    • ๐Ÿ›  Fix teleport effect from stash item not identifying it
    • ๐Ÿ›  Fix warnings in gtk frontend
    • ๐Ÿ›  Fix the extra blank menu line starting too late
    • ๐Ÿ›  Fix section links in the game manual
    • ๐Ÿ›  Fix and simplify rules for disabling tile transformation
    • ๐Ÿ›  Fix missed blank prefixes of empty lines inside text
    • ๐Ÿ›  Fix and simplify projectiles activating and transforming terrain, again
    • ๐Ÿ›  Fix projectiles not able to lit up oil
    • ๐Ÿ›  Fix padded empty string overwriting UI elements
    • ๐Ÿ›  Fix the position of second column with square font
    • ๐Ÿ›  Fix trailing spaces in dashboard
    • ๐Ÿ›  Fix a trailing space in a message
    • ๐Ÿ›  Fix disable extra empty shadow line at the bottom of menus
    • ๐Ÿ›  Fix determining if item identified in permittedPrecious
    • ๐Ÿ›  Fix an actor pulling himself
    • ๐Ÿ›  Fix desynchronized copy-pasted actorVulnerable code
    • ๐Ÿ›  Fix history message display header
    • ๐Ÿ›  Fix Calm measurement code to match code documentation
    • ๐Ÿ›  Fix sleeping stash guard not considered a guard
    • ๐Ÿ›  Fix reaching escape from below when all levels explored
    • ๐Ÿ›  Fix hero AI sometimes not exploring levels fully
    • ๐Ÿ›  Fix weapon order of Smithhammer
    • ๐Ÿ›  Fix messages about melee-only armor deflecting missiles
    • ๐Ÿ›  Fix wrong condition, wrongly reducing fleeing behaviour
    • ๐Ÿ›  Fix comments about slack doctrine targets
    • ๐Ÿ›  Fix assertion failure when targetting a tile under oneself
    • ๐Ÿ›  Fix code documentation about inventory stores
    • ๐Ÿ›  Fix the unequipping failure message condition
    • ๐Ÿ›  Fix wrong cave reversal when generating dungeon
    • ๐Ÿ›  Fix non-pointman heroes meleeing healing geysers
    • ๐Ÿ›  Fix poisons never activating and never running out
    • ๐Ÿ›  Fix registering if altering failed due to bumping
    • ๐Ÿ›  Fix a bushy patch that can block starting actors
    • ๐Ÿ›  Fix diverging definitions of foes worth killing
    • ๐Ÿ›  Fix barrels not destroyed by bumping
    • ๐Ÿ›  Fix inability to open doors due to no embeds
    • ๐Ÿ›  Fix projectiles not to bump off, but to transform terrain
    • ๐Ÿ›  Fix the display of level in stash menu header
    • ๐Ÿ›  Fix alliance placing to put heroes over stairs
    • ๐Ÿ›  Fix a wrong message when displacing a waking foe
    • ๐Ÿ›  Fix AI not eating and not removing other bad conditions
    • ๐Ÿ›  Fix nested macros
    • ๐Ÿ›  Fix wrong game mode started due to only the first word inspected
    • ๐Ÿ›  Fix the result of AndEffect
    • ๐Ÿ›  Fix the warning when flinging benign items
    • ๐Ÿ›  Fix a loop when actor pushed to another level via stairs
    • ๐Ÿ›  Fix melee disrupting pushed flight
    • ๐Ÿ›  Fix unidentified weapons marked in HUD as without timeout
    • ๐Ÿ›  Fix modelling wear and tear with DestroyItem
    • ๐Ÿ›  Fix mixed up resistance conditions
    • ๐Ÿ›  Fix item dropping crashes when OnSmash effects remove them while dropped
    • ๐Ÿ›  Fix an AI loop when applying a recharging item
    • ๐Ÿ›  Fix some no-fence places not appearing in statistics
    • ๐Ÿ›  Fix display of empty lists of tools for terrain transformations
    • ๐Ÿ›  Fix referring in the server code to definitions from the client internals
    • ๐Ÿ›  Fix embedded items activated twice
    • ๐Ÿ›  Fix an attempt to consume more items than there exist
    • ๐Ÿ›  Fix broken running macro
    • ๐Ÿ›  Fix activating embeds
    • ๐Ÿ›  Fix repeating predefined macros
    • ๐Ÿ›  Fix unsafe recording
    • ๐Ÿ›  Fix in-game macro system
    • ๐Ÿ›  Fix discharging an item that is not recharged
    • ๐Ÿ›  Fix consumeItems missing in an export list
    • ๐Ÿ›  Fix missing spaces in describeToolsAlternative
    • ๐Ÿ›  Fix display of tool alternatives
    • ๐Ÿ›  Fix random results of sortEmbeds
    • ๐Ÿ›  Fix checks if actors in combat
    • ๐Ÿ›  Fix the semantics of Discharge effect
    • ๐Ÿ›  Fix a crash when updating invisible item timer
    • ๐Ÿ›  Fix altering skill check in the client
    • ๐Ÿ›  Fix omission of OpenWith when OpenTo is considered
    • ๐Ÿ›  Fix unidentified embedded items impossible to trigger
    • ๐Ÿ›  Fix usage of outdated state component when altering tiles
    • ๐Ÿ›  Fix an attempt to apply a used up embedded item
    • ๐Ÿ›  Fix the direction of < and > scrolling in ending screens
    • ๐Ÿ›  Fix rubble tile definition wrt order of activated features
    • ๐Ÿ›  Fix old actor body used after altering caused by collision with terrain
    • ๐Ÿ›  Fix wrong condition for alien captured at victory message
    • ๐Ÿ›  Fix moving only all or none items between containers
    • ๐Ÿ›  Fix crash when actor not visible after triggering an item
    • ๐Ÿ›  Fix crash when dopping previous may destroy next items
    • ๐Ÿ›  Fix projectile altering a tile too many times at once
    • ๐Ÿ›  Fix DropItem reporting no activation due to item vanishing earlier
    • ๐Ÿ›  Fix off-by-one when picking projectiles with enough range
    • ๐Ÿ›  Fix trying to destroy an empty item bag when modifying terrain with it
    • ๐Ÿ›  Fix assumption that if last actor is alien, game is won
    • ๐Ÿ›  Fix no identification message sometimes in the first turn
    • ๐Ÿ›  Fix compilation without EXPOSE_INTERNAL
    • ๐Ÿ›  Fix the trap of drain Calm item in equipment that can't be removed
    • ๐Ÿ›  Fix tiles never altered via walking on them
    • ๐Ÿ›  Fix articles incorrectly recognized in words that end similarly
    • ๐Ÿ›  Fix wrong calculation of number of non-durable weapons
    • ๐Ÿ›  Fix incorrect conjugation
    • ๐Ÿ›  Fix a corruption of backstory text
    • ๐Ÿ›  Fix first character of buttons sometimes overwritten by space
    • ๐Ÿ›  Fix wrongly displaying a special ending for small scenarios
    • ๐Ÿ›  Fix other frontends wrt engine and sdl2 frontend changes
    • ๐Ÿ›  Fix proportional overlay overwriting first character of mono one
    • ๐Ÿ›  Fix help setup for large screens
    • ๐Ÿ›  Fix broken item menu with square font
    • ๐Ÿ›  Fix wrong button initial position with square font
    • ๐Ÿ›  Fix distant overlays wrongly getting a highlighted line
    • ๐Ÿ›  Fix SDL frontend truncating proportional font lines
    • ๐Ÿ›  Fix and tweak measuring texts in various fonts
    • ๐Ÿ›  Fix empty menus in single font mode
    • ๐Ÿ›  Fix spurious ending prompt in single-font setup
    • ๐Ÿ›  Fix padding of line chunks overwriting subsequent chunks
    • ๐Ÿ›  Fix display of history
    • ๐Ÿ›  Fix buttons holding other locations of an item
    • ๐Ÿ›  Fix not shown highlight of prop font lines
    • ๐Ÿ›  Fix spurious empty line between header and menu
    • ๐Ÿ›  Fix use of fromAscList where fromDistinctAscList would do
    • ๐Ÿ›  Fix spacing in history display
    • ๐Ÿ›  Fix off-by-one crash in history
    • ๐Ÿ›  Fix mouse clicks on buttons in small font areas
    • ๐Ÿ›  Fix updateLine for the case of multiple overlays
    • ๐Ÿ›  Fix overrun in mouse help table
    • ๐Ÿ›  Fix history highlight restricted to 80 columns
    • ๐Ÿ›  Fix menu highlight splitting proportional text chunks
    • ๐Ÿ›  Fix proportional texts never wiped out
    • ๐Ÿ›  Fix horizontal starting points of message chunks
    • ๐Ÿ›  Fix a syntax error stemming from wrong CPP
    • ๐Ÿ›  Fix illegal containers creeping into item choice
    • ๐Ÿ›  Fix cmdAtomicSemSer for UpdMoveItem
    • ๐Ÿ›  Fix AI not sidestepping explosive tiles, even if it could
    • ๐Ÿ›  Fix AI not sidestepping nearby actors
    • ๐Ÿ›  Fix cmdAtomicSemSer in the presense of CStash that acts like CFloor
    • ๐Ÿ›  Fix broken atomic commands assigned wrong LevelId
    • ๐Ÿ›  Fix visible enemy stash position not updated, because foes not seen
    • ๐Ÿ›  Fix countless typos
    • Start using cabal-plan
    • ๐Ÿ›  Fix and improve Makefile, cabal file and CI scripts
    • ๐Ÿ‘Œ Improve and update game manual and help texts wrt game changes
    • ๐Ÿ— Tweak travis scripts and building docs in README