summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorLucki2022-10-22 12:51:51 +0200
committerLucki2022-10-22 12:51:51 +0200
commit4154e4f585fc54fe4b9f3c2eca0abcf3340c4ce8 (patch)
treefbbe2e04dfbb27b98ec12453e7f61df08eff21b6
parent4227f60300fb69e20676fa715da5a7a3aa2ed70d (diff)
downloadaur-4154e4f585fc54fe4b9f3c2eca0abcf3340c4ce8.tar.gz
upgpkg: lix 0.10.0-1
upstream release
-rw-r--r--.CHANGELOG7532
-rw-r--r--.SRCINFO6
-rw-r--r--PKGBUILD4
3 files changed, 3809 insertions, 3733 deletions
diff --git a/.CHANGELOG b/.CHANGELOG
index 5f4bcba55719..ab20182da5b0 100644
--- a/.CHANGELOG
+++ b/.CHANGELOG
@@ -1,3728 +1,3804 @@
-Version history
-===============
-
-0.9.48
-------
-
-2022-10-15
-
-Don't cap level search results at 18, but show all results. Downside: Now, I
-expect the search to be slow when you enter the first one-two letters. We'll
-see what is worse and can still improve the search in the future.
-
-Always return to lobby after playing multiplayer with a single tribe, even
-when that tribe hasn't fulfilled the hidden save requirement from
-singleplayer. Lix has never properly supported 1-tribe multiplayer, but Lix
-has never explicitly disallowed it either.
-
-The connection picker in the networking menu will now connect when you press
-the generic Okay hotkey, in addition to the networking menu hotkey.
-
-Fixed option dialog's help text for the username option: All translations
-explained ./data/user/yourname.txt, which is out of use since 2017. Now,
-all translations explain ./user/options.sdl, the correct save file.
-
-Added FreeDesktop resources in ./data/desktop/ by Matthias Mailänder. Thanks!
-I don't know yet where to put such resources (that aren't needed directly by
-Lix while Lix is running) in the future; ./data/ is catch-all for now.
-
-
-0.9.47
-------
-
-2022-08-11
-
-Add Swedish translation of the Lix user interface by Sanchez. Thanks!
-
-Fix #387: Update skill panel on tweak. Now, after shifting a skill assignment
-forward or backward by a single frame in the replay tweaker, the skill panel
-updates all skill buttons' counts accordingly. This matters when some skills
-assignments have become illegal in the now-edited replay.
-
-
-
-0.9.46
-------
-
-2022-06-25
-
-Added geoo's new multiplayer maps, including the two asymmetric maps
-Uphill Battle and Ivory Tower. Updated some of geoo's maps:
-Fixed the drop straight into exit pit in Rescue Ranger Trolls.
-Added block to default version of Ghetto Party. Minor other changes.
-
-Added Kingshadow's new multiplayer levels. Updated Kingshadow's levels, e.g.,
-added a missing trap to Straight & Curved 4p.
-
-Prevent infinite fallers at the sides of Flopsy's Rescue Plan 5p by
-narrowing the map horizontally to the existing terrain.
-
-Renamed my old 2p map Rescue Rangers to Fry-Day to avoid a name collision with
-the popular maps Rescue Ranger Trolls and Rescue Rangers Double Team.
-
-Fix #434: Always topology-wrap newly inserted pieces in the editor to avoid
-running into some strict assertions in a debug build. There should have been
-no bug here in release builds. Improved some assertion texts.
-
-
-
-0.9.45
-------
-
-2022-05-21
-
-Added many multiplayer levels by Flopsy, including Krypton Factor race.
-
-Added multiplayer levels by Kingshadow: Straight & Curved,
-Marble Puzzle League, Spiral Spyfall, The Ascending Lix Scenario,
-Tricky Breakthrough.
-
-Added tags ($TAG lines in levels) to several maps by Flopsy.
-
-Fix lagging client in a 10-hour netgame. This was an esoteric bug that never
-surfaced in normal usage. When the same networking game (not netplay session
-or server run, but really individual game; what happens after you click
-"ready" in the lobby) ran for over 10 hours, the client would stop
-updating at the normal speed of 15 physics updates per second, and instead run
-at 10 frames per second.
-
-Make Lix compile with the newly released DMD 2.100.0.
-
-Mention FreeGameDev IRC channel #lix in the main readme. QuakeNet #lix
-is still the development channel. I still recommend QuakeNet #lix to find
-players, with FreeGameDev #lix as an alternative.
-
-
-
-0.9.44
-------
-
-2022-03-03
-
-Fix a memory-corrupting bug when sending chat messages.
-I introduced this bug in 0.9.43.
-
-Fix #432: Don't resave watched multiplayer replays. The bug was: After the
-replay, we entered the end-of-singleplayer dialog, and this dialog always
-re-saved the watched replay as a new multiplayer replay. Now, we directly
-return to the replay browser. The end-of-singleplayer dialog doesn't appear
-and doesn't save a duplicate.
-
-
-
-0.9.43
-------
-
-2022-03-29
-
-Fix server-side permutation bug: In 0.9.42, the server re-rolled the
-permutation of starting points for every player. This desynched the maps --
-unless you were only playing 2-player on perfectly symmetrical maps and never
-used directional force.
-
-Don't send up to 300 nullbytes on short chat packets, send only the necessary
-bytes. Keep max chat length at 300 UTF-8 code units.
-
-In the lobby, sort the list of players. First criterion: Players sort higher
-than observers. Second criterion: Red sorts higher than orange, yellow, ...
-Third criterion: Within each color, sort by player name. Ready/unready doesn't
-affect sorting. It's easier now to see which/how many colors are in use, but
-I'll leave open github issue #407: Color buttons in lobby, show current usage.
-
-Disable the expensive level-drawing unittest that also didn't clean up
-its file in ./export/.
-
-macOS: Rely on pkg-config according to Allegro's documentation here:
-https://github.com/liballeg/allegro5/blob/master/README_pkgconfig.txt
-Before, on macOS ARM64, ld didn't find the Allegro libs even with pkg-confic
-installed; see github issue #430.
-
-Remove obsolete build documentation ./doc/build/allegro5.txt and
-cross-reference more clearly between other files in ./doc/build/.
-
-
-
-0.9.42
-------
-
-2022-02-25
-
-Don't focus the IP address entry field in the lobby when you select "connect
-to somebody else". The focusing led to a bug that is now fixed: The field
-would even be unhidden and focused whenever the lobby window reappeared after
-a game, when you were already connected and in a room.
-
-Alleviated enet versioning mismatch: derelict-enet offers D bindings only for
-enet 1.3.15, but the binaries of enet 1.3.16 or the current enet 1.3.17 have
-differently-sized struct ENetPeer. Now, the Lix server computes the struct
-size at runtime, allowing to run with all enet binaries >= 1.3.13.
-
-Fixed a theoretically possible, although unlikely, memory leak in networking.
-
-Fixed a linker warning about max!(int, int). Now, Lix's code itself generates
-zero warnings again.
-
-Refactored the server-side networking code. Rooms carry their own logic. This
-will help in the future to support version restrictions per room.
-
-Fixed DMD 64-bit build on all operating systems by avoiding obscure usercode
-that crashes DMD.
-
-Linux build notes: Added workaround for LDC running out of stack space. You
-can raise the stack size in the current shell with: ulimit -s 16384
-
-Windows 32-bit build notes: Added DLL download for LDC-compatible 32-bit
-libraries.
-
-Removed note from April 2020 in the readme about compilers before LDC 1.21;
-compilers that old aren't prevalent anymore.
-
-
-
-0.9.41
-------
-
-2022-01-06
-
-Support tags in level files to help organize the multiplayer levels. Levels
-can contain zero or more tags, one per line. Edit tags with a text editor; we
-can work towards better editing support in Lix itself in the future. Example:
-$TAG mytag
-
-The editor loads and saves tags, but doesn't yet display them anywhere and
-doesn't offer to edit them. The level browsers don't print tags anywhere
-either yet.
-
-The level search (in the singleplayer or multiplayer browser) will find
-tags, but you have to enter the exact tag completely. Half-words that
-appear inside tags do not find that tag. (I'm not yet sure if this behavior
-is best; we can change it.)
-
-
-
-0.9.40
-------
-
-2021-12-13
-
-Added configurable hotkeys to play next levels from the end-of-singleplayer
-screen. Default is F1 to replay the same level, Space to play the next level,
-F to play the next unsolved level. There is no default hotkey to save the
-replay manually; you can configure it.
-
-Hotkey reminders on buttons are printed in slightly darker text. They're
-still brighter than the button itself, but darker than the main button text.
-
-Fix #417: The editor shows all teams per gadget. Example: 4 players A, B, C, D
-and the map has 2 exits. Before 0.9.40, the editor printed on the exits: A, B.
-Now, the editor print on the exits the outcome of distributing the 4 players
-round-robin to the exits: AC, BD.
-
-Clarify tile group names in the documentation doc/formats/level.txt: Groups
-can have any name, not necessarily only a number. Since I don't have support
-in the program for copying tile groups between levels, you can at least rename
-the groups in one level, e.g, by search-and-replace, then copy-paste them into
-the second level, and have no name clashes.
-
-Fixed exits order in Tunnel of Love 6p. There were 7 exits in a 6-player map,
-leading to apparent removal of a necessary exit in play. Now it has 6 exits.
-
-Added new multiplayer maps by Flopsy: The Lix and the Saboteurs 4p, 6p, 8p.
-
-Clarify documentation on tile groups in doc/format/level.txt: Tile groups
-can have any names. When you copy tile groups by hand between levels, you
-can first rename them with text replacement.
-
-Allow warnings when building Lix. This circumvents a warning in Phobos that
-would otherwise abort the build: Duplicate symbol for max!(int, int).max,
-_D3std9algorithm10comparison__T3maxTiTiZQjFNaNbNiNfiiZi.
-
-
-
-0.9.39
-------
-
-2021-10-12
-
-Added a dedicated end-of-singleplayer screen to show stats of the finished
-attempt, to offer the immediate next level, and to offer the next unsolved
-level in case the player has already solved the immediate next level.
-
-Darkened the labels "by" and "Goal:" in front of level nameplates in
-the browser and in the end-of-level screen. They're now darker than the
-normal text color. Title, author and goal stand out better in their normal
-text color now.
-
-Re-added 3 levels -- Fill the Floor, Interval Training, Chaos Theory --
-to single/clam/Outtakes. Fill the Floor and Interval Training originally
-needed variable spawn intervals during play; now, they employ floaters and
-runners at fixed spawn intervals. Chaos Theory originally needed the nuke
-to solve; now, it employs manually assigned exploders to fling.
-
-Updated the Lix source code to comply with the future meaning of the "in"
-keyword. Updated Lix for package optional 1.3.0 instead of 0.6.3.
-
-
-
-0.9.38
-------
-
-2021-06-27
-
-Windowed mode at 1280x720 is now the default on running Lix for the very first
-time. Before, the default was software fullscreen a.k.a. fullscreen window.
-
-Smaller widescreen resolutions such at 1280x720 that would barely fail to pick
-2x for the skill panel icons (instead of the tiny 1x) will get slightly higher
-panel to accomodate the better-looking 2x skill icons.
-
-Adjusted text vertical offset to vertically center text on buttons better at
-1280x720. 1280x800 is still okay, text is now slightly too high here. The text
-positioning is already full of hacks and compromises, anything better either
-needs more hacks or a clean do-over. I feel like a 90's website designer.
-
-The main menu preserves the background's aspect ratio. To fill a screen that
-is not 4:3, it crops the background's sides.
-
-Revenge of the Giant Crab (2p): Added decoration, walkers 10->30, overtime
-30->90 seconds.
-
-Fix #424: Always show the level title in the lobby under the graphical preview,
-even when we return from a netgame.
-
-Fix #423: De-duplicate the multiplayer level tree, as reported by Dullstar.
-I had extra copies of Along the Fabrics of Your Clothing in the 8p directory.
-
-Updated Allegro DLLs to Allegro 5.2.7.1. You can check what Lix uses at
-runtime with Lix's command-line argument: --allgero-version
-
-I build the 32-bit Windows release with LDC, not with DMD. LDC generates
-faster-running machine code, exactly what we want for a release version. Tell
-me in case you run into any problems. (64-bit Windows release has always been
-built with LDC and it still is.)
-
-During compilation, Lix prints target architecture, OS, and compiler.
-
-Fix deprecations for DMD 2.097.0: In the source code, the "body" keyword is
-finally deprecated. Converted the entire codebase to the "do" keyword in front
-of function bodies. Added "static import std.stdio;" to access std.stdio.File
-in Lix's file.filename.base.
-
-Documentation: src/icon/readme.txt has CRLF line endings, to be readable in
-Windows Notepad. (Documentation should have CRLF endings, code should have LF
-endings.) Removed note in the 32-bit DMD Windows build notes about NuGet libs,
-DMD 32-bit doesn't play well with them.
-
-The build documentation points to new archives (lix-dlls-libs-dmd32.zip,
-lix-dlls-libs-ldc32.zip, lix-dlls-libs-win64.zip) because the .lib files
-can be incompatible between compilers.
-
-
-
-0.9.37
-------
-
-2021-05-17
-
-Added new maps from the multiplayer level contest. Thanks,
-Dominator_101, Dullstar, Flopsy, geoo, IchoTolot, WillLem!
-Includes Dominator_101's Rescue Rangers Double Team.
-
-Fixed flickering mouse cursor in the dialog that aborts a networking game.
-Before, when you hovered over a lix in the background of the dialog, the
-cursor would osciallte between open and closed. Now, the cursor stays closed
-because you can't assign to lix during the dialog.
-
-Partly address #234: When you resize the map in the editor, the editor will
-zoom out as far as it can to show you the entire map. It's still disorienting
-to resize maps with large empty areas.
-
-Fix: When you verified a directory containing 0 replays in the GUI verifier,
-the GUI verifier didn't print the line that you can now click to exit. Now
-it prints that line.
-
-In the main menu, below the version number, print name of operating system and
-32/64-bit for which the running version is built.
-
-The debugging build's user options defaults show the phyus/FPS. This only
-matters when you run a debugging build without a user option file
-user/options.sdl. The normal release build defaults to not showing phyus/FPS
-until you enable it in the options menu.
-
-In dub.json, removed obsolete architecture restriction for Windows builds
-with LDC.
-
-The Windows 64-bit build notes point to LDC's multilib release instead of to
-the pure 64-bit release. You can use LDC's installer or LDC's 7z download. The
-main difference is that LDC's lib/ dir is now called lib64/. Updated
-http://www.lixgame.com/dow/lix-dlls-libs-win64.zip with the new directory name
-lib64/ instead of lib/.
-
-Documented the level format in doc/formats/level.txt. Documented in the
-Windows build notes doc/build/win*.txt where to get Allegro binaries from
-NuGet.
-
-
-
-0.9.36
-------
-
-2021-02-24
-
-Add a whopping 66 multiplayer maps by Flopsy, including Perfect Situation.
-
-Fix #413: The new-level button in the editor will now ask for data loss
-before clearing the map and clearing the undo buffer. You can click Save,
-Discard, or Cancel.
-
-Reword the grid tooltip in the editor to clarify that it will affect future
-moves; it will have no immediate effect on the current selection.
-Before: "Grid 2: Rounds tiles' coordinates to multiples of 2."
-Now: "Grid 2: Tiles will move in steps of 2 pixels."
-Thanks to WillLem for feedback and wording.
-
-Support a hidden option (not in the options menu) that allows you to suppress
-the editor's offset of copypasted tiles; this is (16,16) by default.
-(Hidden options are hacks; for the long term, I need to visualize the copying
-in place.) For now, to suppress the offset, put in your user/options.sdl:
-editorCopiedTilesOffset 0
-
-Mouse speed on Linux defaults to 10, not 20. This produces better results
-on my machine when (fast movement frees mouse) is off, the default on Linux.
-I haven't examined the speed on other systems yet.
-
-Update the build docs in doc/build/ about minimum compiler versions.
-
-In the doc/formats/ directory, document replay pointing, terrain lines in
-levels, groups in levels.
-
-
-
-0.9.35
-------
-
-2020-12-24
-
-Undo/redo feature: The editor allows full undo and redo. Everything that is
-visible in the editor's level display is undoable: Tile moves, z-reorderings,
-additions, deletions, copying, rotations, mirroring, darkening, and changing
-the level's height, width, wrappings, and background color. Pressing the
-button to create a new level clears the undo history. Changing the level's
-name, lix, save requirement, player count, or skillset isn't undoable, but
-doesn't clear the undo history either; you can still undo earlier things.
-This undo/redo feature has been in development for 7 months.
-
-Fix #406: The camera rounds correctly to determine the mouse coordinates
-in the level. Before, with deep zoom, the mouse seemed to select things
-1 pixel too far right and 1 pixel too far down.
-
-Fix #405: The editor reinitializes its camera when the level's torus wrapping
-changes. This prevents graphical leftovers.
-
-Fixed compilation errors that appeared with DMD 2.094.2.
-
-Added build notes for a 64-bit Windows build with DMD. I encourage to use LDC
-instead of DMD for release builds, but it's good to have more options.
-
-
-
-0.9.34
-------
-
-2020-10-11
-
-lemforum: Backroute fixes for 6 levels, mainly due to Wibble's backroutes:
-Bipolar Maniac, initial lix 10->11, floaters 5->6.
-Las Ranas Hermanas, raise frogs.
-Triangle Inequality, eliminiate trivializing backroute.
-One Lix Showdown, likely functional but slightly unelegant fix.
-Some Like to Run, faster spawn interval, needs checking.
-Skulls, Sludge and Steel - possible fix, needs checking.
-(No fixes yet for Duality and Dream the impossible Dream.)
-
-Fix #404: The 64-bit Windows enet.dll crashed on hosting a networking game.
-Now, I ship a new 64-bit enet.dll, version 1.3.12, that fixes the crash
-on Windows, even though it still crashes in Wine.
-
-Support 32-bit Windows again: I publish 32-bit Windows binaries in the github
-releases and added linker flags for the 32-bit Windows DMD build in dub.json.
-
-Updated D source libraries in dub.json: derelict-enet 4.1.0 -> 4.2.0,
-taggedalgebraic 0.11.12 -> 0.11.18. This should have no visible effects.
-
-Credit minim in doc/thanks.txt for upscaling the GUI icons to 150%, 200%, 300%
-of the C++ Lix icons for 640x480 = 100%. minim worked on these icons in 2016.
-
-Remove doc/oldwish.txt, it has become outdated. The text is preserved at:
-https://www.lemmingsforums.net/index.php?topic=5132.0
-Let's file issues on github instead.
-
-
-
-0.9.33
-------
-
-2020-08-09
-
-Fix #402: With more than 18 assignments, the tweaker doesn't mispaint the
-line for current physics update over the tape recorder buttons anymore.
-
-Fix #401: The tweaker erases the lines properly when two assignments change
-order from tweaking. This fixes a mispainting of assignment lines.
-
-Fix #385: Before, with 18 or more assignments, the completely filled tweaker
-always hid the assignments that came last in the replay. Now, the tweaker
-hides assignments that are far away from the current physics update. Now, to
-view early assignments, rewind the game. To see late assignments, forward the
-game.
-
-
-
-0.9.32
-------
-
-2020-08-01
-
-Distribution: Lix has an openSUSE package for easy installation on openSUSE
-Linux, thanks to Martin H.! This is our third Linux packaging after Debian and
-Arch. Updated Lix's readme and documentation.
-
-Added Raymanni's crab trap at images/raymanni/crab.T.txt. There is an example
-level, Crab Nightmare, in levels/misc/simon/crabnightmare.txt.
-
-Added Thirteen Little Skills (version 2), a level contest entry by Proxima.
-
-Every Lix for Herself (lemforum Lovely): Quicken the spawn interval, to
-make it nicer to assign floaters to lix from the leftmost hatch.
-
-Multiplayer: Pressing twice the end-game key (Esc by default) doesn't
-exit the match, but rather opens and cancels the exit-match dialog.
-This avoids accidental exiting. To exit the match via keyboard,
-press Esc, then the key to delete files/lose data.
-
-Replay tweaker: Add an extra line for the currently-shown physics update.
-
-Remove the unnecessary translatable string optionShowButtonHotkeys. Button
-hotkeys are always shown, there is no option to disable that; this option was
-removed in Lix 0.9.30. This removes the leftover language field, so that
-data/language/*.txt doesn't warn on loading a language.
-
-Code: Fix deprecations according to DMD 2.093: Annotate ref-returning
-functions with return
-
-
-
-0.9.31
-------
-
-2020-04-23
-
-Compiling yourself: On Windows, Lix requires LDC 1.21.0, LDC or newer to
-compile out of the box. For LDC 1.20.1 or older, in Lix's dub.json file, you
-must first change all appearances of "-entry:wmainCRTStartup"
-with "-entry:mainCRTStartup".
-See doc/build/win64.txt, section "Old LDC versions" for details.
-
-Compiling yourself: Increased version of dependency sdlang-d: 0.10.4 -> 0.10.6,
-so that Lix still compiles with older versions of DMD, with the current stable
-DMD 2.091.0, and with even newer versions.
-
-Fix #394: The editor now sorts tilesets alphabetically by the shown directory,
-which is its second-level-nested directory in images/.
-Old order: forest/, occult/, abstract/, construction/, ..., because forest and
-occult were in images/amanda/ and abstract, construction were in images/geoo/.
-New order: abstract/, beach/, bricks/, carnival/, construction/, ..., forest/,
-..., occult/, ..., irrespective of the unshown author's name.
-
-Fixed a backroute in Ifo Island. The building at the bottom takes longer now.
-
-
-
-0.9.30
-------
-
-2019-12-28
-
-Fix #339: Imploder animation: Now, purple stars and vortexes circle around the
-center, then get sucked into the center. The old animation was too slow
-and subtle.
-
-Fix #388: Oblivion sound was too noisy and high-pitched. Replaced this
-sound effect with meow-like voice acting that is not shrill.
-
-lemforum: ccexplore fixed a backroute in Brickout.
-
-Always print hotkeys on buttons' lower-right corner. Removed user option that
-toggled whether hotkeys would be printed on buttons.
-
-Code: Remove body encounters from physics implementation; these happened at
-(foot - 4), (foot - 8), (foot - 12). Always check foot encounters instead.
-Before, only fire hazards checked for body encounters. Draw larger trigger
-area (in the editor) for fire to compensate. No changes to file formats. No
-changes to physics.
-
-Multiplayer maps: Added Down with Frogs by Flopsy.
-Added remake of Humps (2-player map from 2010) using Lix's earth terrain.
-Removed endless falls at the side of Honeypots.
-
-
-
-0.9.29
-------
-
-2019-07-18
-
-Observers in a networking game begin zoomed out; they see the entire map
-without any extra input.
-
-In multiplayer, there are no more black boxes on the score graph after a nuke.
-The black boxes obscured the bars of low-scoring players. The black boxes were
-a hack solution before we had the nice score board when you mouse over the
-score graph. Now, to see who nuked, mouse over the score graph.
-
-Partially fix #385: The replay tweaker displays only the first 18 plies
-(= assignments or nukes) instead of painting the 19th, 20th, ... ply over the
-remainder of the panel. In the long run, the tweaker needs a scrollbar.
-
-The tweaker explains itself with short text while it has no plies to show yet.
-This is better than presenting the tweaker as a completely blank GUI widget.
-
-Fix #327: After you save a replay manually from the replay browser, the browser
-reloads the directory and immediately shows the newly saved file.
-
-Fix: The splat ruler draws properly again when the mouse is on the map (i.e.,
-off the panel). 0.9.28 had a bug where the ruler would only draw while the
-mouse was on the panel instead of on the land.
-
-Fix: In multiplayer battles, you can zoom again, even though there is no
-GUI button to zoom. By default, zoom is bound to the mouse wheel.
-
-Fix #317: In a deeply nested directory hierarchy, the browsers' breadcrumb
-navigation condenses some higher-level directories into a single button.
-The top-level directory keeps its exclusive button at the very left.
-
-Removed a default keybinding duplication: Highlight goals and splat ruler were
-both bound to Tab. Now, only the splat ruler is bound to Tab, highlight goals
-has no default hotkey.
-
-
-
-0.9.28
-------
-
-2019-07-07
-
-Replay tweaker: A new feature for singleplayer puzzle solving. To open the
-replay tweaker, click the filmstrip button in the panel. The tweaker allows
-you to move and delete assignments deep in the replay without erasing
-any other assignments. The tweaker is not perfect yet: I'm sure we'll find
-many ways to improve it.
-
-Added 22 singleplayer levels from various level design contests. They are in
-levels/single/misc/contests/. All levels are proven solvable. Some proofs may
-be backroutes. For Key to the Sacred Kingdom, I chose its version 9, the
-miniature, but extended it with decoration from its big version 7. Adapted
-Long Division to 0.9 physics, it's fairer now and less nasty.
-
-Fix #364: If the enet DLL is missing, the networking lobby prints an error
-message to its console. Before, the game would crash from an uncaught
-exception.
-
-Code: Fix deprecations for dmd 2.087.0: Don't initialize immutable variables
-in thread-local static this(), instead initialize them in shared static this().
-Lix should now compile warning-free.
-
-
-
-0.9.27
-------
-
-2019-05-20
-
-Fixed a backroute in The Bottomless Closet, a miniature by geoo.
-
-Fix #379: The editor avoids cloning tiles outside of the map. Usually, the
-editor moves freshly-cloned tiles down-right by (16, 16). Sometimes, this
-would move tiles out of the map. New behavior: If a cloned tile would move out
-of the map, or even very close to the edge (= undercutting a safety margin of
-16 pixels), all cloned tiles are moved up-left by (16, 16) instead. If neither
-offset keeps all tiles on the map, we move down-right by (16, 16) and accept
-that some are outside. In torus directions, tiles are always on the map within
-the safety margin.
-
-Fix #380: While you change the background color in the editor's map dialog,
-the level behind the dialog previews your chosen color in real time. When
-you press OK, the color stays; when you press Cancel, the color reverts.
-
-Code: Fixed deprecations, now Lix compiles warning-free on dmd 2.086.0.
-
-Code: Removed module constructors and moved construction of user options
-into al_run_main. We hope to troubleshoot a segfault on macOS with this,
-github issue #381. Renamed DisplayTryMode to ScreenChoice.
-
-
-
-0.9.26
-------
-
-2019-04-24
-
-Added 24 singleplayer levels in misc/lemforum-outtakes. These levels were
-once part of out flagship pack lemforum, but have been taken out over time.
-They're all proven solvable with 0.9 physics.
-
-Fixed #301: Separated the ping-exit functionality from show-splat-ruler.
-In multiplayer, there are now two buttons. Both have much clearer icons
-(an exit with beams, a ruler) instead of the generic cool shades.
-
-Fixed #293: Savestate icon, don't use floppy disk (means: write file).
-Now, the icon to save state is a flag, and the icon to load state is
-a flag with an arrow pointing towards it. Once a savestate exists,
-the load icon (default hotkey F2) is to the left of the save icon
-(default hotkey F3), to have their default hotkeys (F2, F3) in ascending
-order. (Before, load appeared to the right of save).
-
-Renamed the level folder "Community Collab Project" to "Collab"
-for concise breadcrumb navigation captions, preventing abbreviation.
-
-Attributed correct authors (Rubix/Simon, Simon/Wuzzy) on two tutorials.
-
-Rewrote screen options functions, to rule out a possible source of a crash
-on macOS (no more try-return-catch, always return outside of try/catch).
-See issue #381: macOS 10.14: Black screen then crash.
-
-Rewrote internal graphics code to get already-cached images more efficiently.
-
-
-
-0.9.25
-------
-
-2019-02-04
-
-Added 44 singleplayer levels in levels/single/misc: 17 miniatures by Simon and
-geoo, 13 levels by mobius (originally called leftovers and non-tutorials), 10
-levels by Nessy, 4 non-miniatures by Simon. These levels were released around
-2017 and 2018 on Lemmings Forums and are now part of the main download.
-
-Added 15 tutorials for basic skill usage. A new Lix installation will still
-highlight Any Way You Want as first level, not the tutorials.
-
-Eased the 2-player multiplayer map Anything Can Work: Removed buzzsaws, added
-terrain to allow a downwards route without preparatory platforming above exits.
-
-Fixed deprecations (silent conversion from size_t to int in loop indices)
-to allow a warning-free building with the current compiler DMD 2.084.
-
-Refactored code for clarity: Alcol constructors -> al_map_rgba_f, magic
-numbers in EffectManager -> enums. Split ScoreBoard into two classes and
-moved to the GUI code, to decouple from gameplay.
-
-
-
-0.9.24
-------
-
-2019-01-03
-
-Work around bug #372 (garbled exit markers): Removed alpha channel from
-data/images/goalmark.I.png. Arrow's white overlay is entirely opaque. Made
-overlay line thinner to compensate for the fully-opaque overlay. This should
-avoid #372 to trigger at all. Everything should recolor properly.
-
-Multiplayer directories: Sort authors with easier multiplayer maps.
-Easy means that it's easy to save lix against opponents that do nothing.
-Reason: New players click on the first-listed authors very often.
-This is not an ideal permanent solution, but we have needed something like
-this quickly for the Debian 10 release.
-
-New multiplayer maps by Flopsy: Cascade Squared (4p, 6p, 8p) and
-The Storeroom (6p, 8p).
-
-Fix bug with _order.X.txt files: When you go to a dir A with order file, then
-go to a different dir B without order file but with files named like those in
-A, the files in B are now sorted alphabetically, not wrongly by the order
-file from A.
-
-The options file ./user/options.sdl contains a comment explaining that
-screenMode 0 is windowed, 1 is software fullscreen, 2 is hardware fullscreen.
-
-
-
-0.9.23
-------
-
-2018-12-09
-
-xmas2018: Fixed backroutes in Home Time for Santa, Snow Cat Love,
-Decorate the Tree, Past the Xmas Tree.
-
-ClamLix: Time is Running Out, decorated the steel with a steel hourglass.
-
-Fix #371: Miners throw a pickaxe again when they cancel on steel. Diggers
-won't throw pickaxes anymore by mistake when they cancel on steel.
-
-Added a manpage for Linux package maintainers: doc/lix.6, thanks to tarzeau.
-
-
-
-0.9.22
-------
-
-2018-11-30
-
-Include xmas2018: a new singleplayer pack with 24 holiday-themed levels.
-
-Fix #350: In singleplayer, the splat ruler button tooltip claimed falsely
-that this button also pings hatches and exits, but it does that only in
-multiplayer. Fixed this tooltip. (Issue #301 remains: In multiplayer, this
-button should be functionally split into two buttons.)
-
-Support 64-bit Windows builds with LDC >= 1.13.0-beta2. I encourage all
-Windows users to choose the 64-bit build over the 32-bit build, hoping to
-avoid the out-of-RAM crashes on large maps.
-
-Binary downloads are now hosted on github, not on Lix's homepage.
-
-Binary download archives carry a version number in their filename and unpacked
-Lix directory. With self-contained Lix (i.e., not installed system-wide via a
-Linux package manager), you should still update existing self-contained Lix as
-usual by copying your user files, custom levels, and replays from the old
-directory into the new.
-
-Fix #369: When you build from source and choose a debugging version instead
-of a release version, Lix will start windowed by default, not with software
-fullscreen. User options can override this as usual.
-
-Updated the DAllegro5 bindings to 4.0.4+5.2.0 and removed Lix's allegro-color
-dependency on all platforms.
-
-Many refactorings in the source code for physics updates. No physics changes.
-This will be useful in case I manage efficient skill blueprints a.k.a. skill
-shadows.
-
-
-
-0.9.21
-------
-
-2018-10-19
-
-Fix #313: Options and trophies (level checkmarks) are now saved in ./user/,
-not in ./data/user/yourname.txt. In the future, whenever you update Lix by
-hand, copy the folder user/ into the new installation. Old settings and
-trophies are imported: To update to 0.9.21, you should still copy
-./data/config.txt and ./data/user/yourname.txt to let Lix 0.9.21 import your
-old settings and write them to ./user/.)
-
-Fix #255: Trophies (level checkmarks) are associated to levels by the levels'
-basename (the part of the filename that is independent from directories),
-author, and English title. Trophies are not associated to full level path
-anymore, even though they remember that path as extra information. This means
-that you keep your trophy even when its level moves to a different rank
-directory.
-
-lemforum: Feel the Pressure: Hopeless -> Daunting. This Is a Stickup: Daunting
--> Vicious. Evacuate the Sinking Ship: Vicious -> Hopeless. Little Miner
-Puzzle 1: Adjusted height of one bar to avoid accidental splatting while a
-miner is working. The Borderland: Added buzzsaw that This Lix Is Your Lix
-(repeat) already had.
-
-Raymanni's Holiday exit: Enlarged sprite at the bottom to look better when
-the exit sits on bumpy terrain.
-
-Fix #359: When you have lost singleplayer and the game tells you to framestep
-back or abort, you can doubleclick the nuke to quit.
-
-Fix #323: Wide, flat torus maps start with less default zoom (you see a larger
-portion of the level).
-
-Editor: All steel is offered in a single flat list. I've sorted the more
-commonly used tiles to the top of this list.
-
-Editor: Removed an invisible extra button that 0.9.20 mistakenly generated
-and that sometimes became visible when you hovered over the 3 rightmost text
-buttons in the panel and held the mouse key down.
-
-Fix #363: Editor: The terrain browser does not offer the 3 directories
-./authorName/steel/, to de-clutter the tileset list.
-
-Fix #355: Multiplayer: Exit markers are solid, colorful arrows instead of
-large lixes. They still go behind the terrain. The outline of your own arrow
-is drawn semi-transparent over the terrain.
-
-The networking menu offers to host a game (a server will run within Lix) and
-offers to change the port for listening or connecting.
-
-Fix #358: In a networking room, the current level title is printed under the
-preview image, above the chat.
-
-License: During the CC0 public domain waiver, I mention explicitly that the
-levels are CC0.
-
-Server executable understands the switch --port <number> to listen on a
-different port.
-
-Server is now its own dub package in ./src/server/ in the Lix repository.
-Documented how to build and run standalone server executable in Lix's main
-README.md.
-
-Code: I refactored Hatch to contain Graphic instead of to inherit from
-Graphic. Hatches remember which players spawn from them. Physics remain
-identical. (I tested a lot manually, no automatic test; I still lack physics
-unittests in general.)
-
-Git users: I version-control dub.selections.json now. If you get merge issues,
-delete your local copy and then pull.
-
-
-
-0.9.20
-------
-
-2018-09-23
-
-Backroute fixes in Continuum Hypothesis and Inside the Fourth Wall.
-Fewer lixes in Undercutting the Competition.
-
-Reshaded rectangular blocks in matt/marble: Shading at the left and top should
-only become lighter towards the outside. Before, the blocks looked flattened.
-Diagonal blocks in matt/marble still have this issue.
-
-Fix #349: Mirror button icon shows horizontal mirroring with two triangles,
-not vertical mirroring with an upside-down tree anymore.
-
-Partially fix #348: Custom grid button shows size of current custom grid.
-
-Center images on BitmapButtons more accurately.
-
-Removed unused UI graphics: Spawn interval graphic, hint selection graphic,
-editor hatch direction graphic that is shown with a unicode arrow instead.
-
-Fix #356: When you specify -w or --resol=XXXxYYY on the command line,
-loading/switching the user configuration will not override the command line's
-resolution in this session.
-
-Reorganized the trophy area of the singleplayer browser: Don't draw last
-game's results over the personal best of lix saved.
-
-dub package Optional: I use Optional 0.6.3 now instead of Optional 0.4.x. This
-requires a recent compiler (I know that 2.082 or newer works) when you build
-Lix yourself.
-
-
-
-0.9.19
-------
-
-2018-08-10
-
-RepForLev: For a highlighted level in the singleplayer browser, you can enter
-the new dialog RepForLev that will offer all replays that start with the
-basename of the highlit level. (If the level file is "mylevel.txt", RepForLev
-will offer all replays that start with "mylevel-".)
-
-lemforum, some backroute fixes: Get Hype, remove flinging backroute. Toccata,
-use Proxima's backroute fix against a solution that takes 30 minutes. Striking
-News, add water pit at the top, different cactus placement at the bottom.
-Behind Bars, save 8/10.
-
-Multiplayer maps: Flopsy's shorter Block Chaos, Harden the Paint. Raymanni's
-Rainbow Road, The Frog-Hotel, Follow the Thread.
-
-Fix #354: Prevent the one-pixel-thick line of graphical garbage at the right
-edge of the map. This line occurred with some noninteger zooms during
-play/editor.
-
-Fix #344: Guideline pieces are selectable from the terrain browser again.
-Depth-2-directories (e.g., "geoo/construction/") are listed as only the second
-directory ("construction/") in the root selection of tile browser.
-
-
-
-0.9.18
-------
-
-2018-07-01
-
-lemforum: Behind Bars 7/10->8/12 to remove backroute. One Step Off
-80/80->20/20. Segmentation Fault 20/40->21/40. Merge Sort, hollow terrain
-to remove red herrings. Rhapsody in Blue, aligned traps to terrain
-(removes 1-pixel gaps). Removed obviously unassignable
-imploders/exploders/cubers according to save requirement.
-
-Rubix's levels: Lost Underground, cap reachable ceiling more clearly.
-Removed obviously unassignable imploders/exploders/cubers.
-
-Tiles: Raymanni's improved carnival exit, cleaner large proxima/tiles/orange2.
-
-Fix #23: Don't show obsolete replay arrows/pickaxes/sounds when you
-framestep after a quickload.
-
-Fix #346: When you watch a replay, interrupt, and win, the solution
-replay is auto-saved.
-
-Singleplayer exits the level after nuking instead of prompting to
-framestep back.
-
-On display creation, the mouse cursor centers on the Lix window. This prevents
-edge scrolling when watching replays from the command line.
-
-Fix #340: For translations, use format strings (containing %s, %d with runtime
-checks) instead of several concatenated translated strings.
-
-Fix #341: Translate the output of the replay verifier.
-
-Fix #342: Better grammar, fewer Denglish (English words in the German
-translation even though good German words exist), add umlauts. Thanks to
-Wuzzy for this patch!
-
-In displayed strings, use typographical quotation marks. In file/shell output,
-use double quotes both to begin and end instead of asymmetric quotes.
-
-
-
-0.9.17
-------
-
-2018-05-27
-
-lemforum/Hopeless: Swapped Bipolar Maniac (now 3rd) and Systematic Separation
-(now 10th) in Hopeless.
-
-Score board in multiplayer: Hover over the score graph to see player names,
-exact lix counts, and exact number of scored points, in a large tooltip.
-
-Fix #319: The terrain/steel browsers offer all dirs of depth 2 in images/ at
-once. After navigating to such a depth-2-dir, the terrain/steel browsers offer
-in one flat list all tiles recursively found in that dir.
-
-Don't save other people's winning replays as your own checkmarks. Correctly
-save checkmarks after playing levels passed to Lix on the command line.
-
-On loading a replay with zero players, don't crash anymore, instead create one
-player with the singleplayer color.
-
-The Windows download contains Allegro 5.2.4 DLLs. These newer DLLs fix any
-remaining chance that Lix starts without sound when starting Lix from the
-Windows 8/10 quicklaunch bar.
-
-Lix has a new command-line switch --allegro-version to print the version
-number of the dynamically-loaded Allegro DLLs.
-
-Build system: Lix builds with both the most recent DMD 2.080 and with the
-better-optimizing LDC. I added allegro_color to the link libs. I require D
-Allegro 5 bindings of version >= 4.0.2 to fix a stack overflow in Debian
-LDC-built Lix.
-
-0.9.16
-------
-
-2018-05-01
-
-lemforum: Removed backroutes in We're in This One Together (added steel)
-and From the Other Side (larger fire pit).
-
-Fix #328: Automatic replays are saved after multiplayer games again.
-
-Fix: Watching a multiplayer replay will never save another replay.
-
-I credit our contributors in doc/thanks.txt. Let me know if anything there
-is inaccurate.
-
-0.9.15
-------
-
-2018-04-20
-
-Behind You, Down Among the Dead Lix: Removed backroutes. Added Twelve-Bar
-Blues, a new multiplayer map by Proxima.
-
-Fix #326: In the editor, clicking steel, then opening the terrain browser
-won't override the current terrain directory any more. You can still click on
-a regular terrain piece to open the terrain browser on its directory.
-
-Fix #325: The default steel directory is images/geoo/steel/.
-
-Fix #332: Tile groups will always be saved with relative coordinates that
-are all >= 0, even when some of their parts have transparent boundaries.
-(There is a bug left behind where tile groups with coordinates < 0 are loaded
-wrongly on torus maps, but changing the interpretation of a level file affects
-physics; thus, that second fix is postponed.)
-
-0.9.14
-------
-
-2018-04-03
-
-Waltz in C Sharp Miner, removed backroute.
-
-Moved Arty's race maps (Heart of a Gambler, one map per player count, 2-8
-players) from network/*p/arty to network/races/arty.
-
-Fix #314, #315, #318: When you win a singleplayer game or win an edited
-replay, either browser shows the game's stats under the preview and saves the
-replay automatically. (These bugs were regressions after I removed the
-end-of-singleplayer dialog.)
-
-Fix: The command-line verifier generates checkmarks again.
-
-0.9.13
-------
-
-2018-03-14
-
-Close to the Edge, save 46/50->16/20. Building Block Maze, SI 32->50. The
-Abominable Snowlix, save 15/30->5/10. Block Chaos, walkers 20->60, overtime
-1:00->2:00.
-
-Fix #312: Splat ruler option is now public. Choose one of three ruler designs.
-Default is the 3-bar ruler with huge snap distance from 0.9.5 to 0.9.10.
-
-Fix #308: Include Zanzindorf's lasers.
-
-Fix #305: Autosave 4 pairs of savestates, not 3, on most maps, for performant
-framestepping/multiplayer.
-
-Fix #55: Remove dialog on winning singleplayer. You go to the browser
-immediately after winning the level. Game pauses after losing, allowing you to
-framestep backwards or restart with the regular commands. I hope this
-satisfies the desire for a next-level button in the old dialog.
-
-Fix #302: Remove end-of-multiplayer dialog. You go to the lobby immediately
-after finishing a networking game. The lobby console shows the result, but I
-plan to show better statistics here. This fixes the bug where observers were
-shown instead of players in the end-of-multiplayer dialog.
-
-Fix #309: Show indexing progress of the search dialog. I still don't cache the
-search results; maybe the indexing feels still too slow on older computers
-even when its progress is shown.
-
-When you show FPS and Phyus, I don't display VRAM anymore. Reason: Once VRAM
-got cached on huge maps, the Lix-estimated VRAM usage didn't match the real
-VRAM usage anyway.
-
-New build dependency, Optional type. This is a source-only dependency and is
-automatically fetched by dub.
-
-Batch file to build Lix on Windows conveniently by double-clicking.
-
-0.9.12
-------
-
-2018-02-23
-
-Multiplayer maps: Arty's Let Them Eat Cake (rename of Feaster Island),
-Layer of Hell, Flopsy's Block Chaos, Nessy's Abandoned Sanctuaries.
-
-lemforum: Some Cunning/Daunting levels reordered. This Lix, extra sawblade.
-Bipolar Maniac, imploders 5->1 because the level is lose-1. Tribute to
-Benny Hill, imploders 1->0.
-
-On previewing/editing maps with more than 2.8 x 2^20 pixels (about 2.8
-million pixels), Lix warns that these maps will likely crash. You can still
-play and edit these maps normally. The warning is not perfect, but OK for now;
-any real fix will be difficult.
-
-Fix #229: Tooltips for all skills and all buttons during play.
-
-Fix #306: `--fullscreen' command-line switch works again.
-
-Allow the command-line parameter `--' to terminate switches. Subsequet
-arguments will be interpreted as files even if they look like switches.
-
-Linking on Linux: In dub.json, specify only `allegro-5', not `allegro', and
-let dub use pkg-config to deduce linker flags (typically -lallegro).
-
-
-0.9.11
-------
-
-2018-02-07
-
-New multiplayer maps: Schism 2p by me, Team Attack 2p by Yung. Fixed exit
-order in Pave the Way 4p.
-
-Implemented geoo's design for a splat ruler with only two bars. Both bars snap
-to terrain up to 16 pixels away. Hidden user option SPLAT_RULER_DESIGN in the
-config file can be set to 0 for this ruler, or to 1 or 2 for the three-pronged
-rulers from Lix 0.9.4 or 0.9.10.
-
-Fix #220: On losing network connection, don't crash, but go back to the
-Connect screen of the lobby.
-
-Fix #297: In the singleplayer browser, removed the gap between the delete and
-back buttons.
-
-Fix #298: Option to invert the hold-to-scroll direction.
-
-Fix #292: geoo/construction/Laser* flashes more clearly, to distinguish the
-lasers frmo red abstract pipes.
-
-Fix #303: Print names of missing tiles on the level preview.
-
-Previews in level browsers downscale the level more smoothly.
-
-Mitigate #296 (RAM balloons to 1.5 GB on Windows) without solving it:
-Auto-savestate every 12 frames, not every 10, and keep 3 pairs, not 4.
-
-Option to display torus seams is off by default.
-
-In data/transl/*.txt, merged option titles and option descriptions in the same
-line per option, instead of having two lines per option.
-
-0.9.10
-------
-
-2018-01-30
-
-Updated Arty's multiplayer maps, removed Knock 'em Dead, added Feaster Islands.
-
-Fix #294: Loading manual savestates could occasionally desync physics.
-This fix is covered with an automatic regression test.
-
-Fix #295: Stateload won't preserve the future when you wish to discard
-replay actions undone with framestepping. Covered with an automatic
-regression test.
-
-Fix #250: Permanent abilities appear as little icons over your own lix.
-
-Slightly reduced Lix's hunger for RAM by running the garbage collection
-more often. I still have to debug this gigantic hunger for RAM properly.
-On large maps, Lix might want 1.5 GB on Windows and 500 MB on Linux.
-
-Hardcoded the first miner eye position for the fuse and ability icons. Reason:
-This miner pose covers the eye with her arm.
-
-Don't paint over the level search button when the directory list updates.
-
-Translated the search string "Search for filenames or level titles".
-
-Removed the unused multiplayer jingles from data/sound/.
-
-Editor shows coordinates only in decimal, not in hex. The map size dialog
-still displays the size both in decimal and in hex.
-
-Editor doesn't count exits in singleplayer maps, to improve the visible
-difference between singleplayer and multiplayer maps.
-
-Documented SiegeLord's batch file for the Windows build. Discourage installing
-extra software on Windows merely to build 64-bit. 32-bit Lix runs fine and
-is easier to build.
-
-0.9.9
------
-
-2018-01-22
-
-Added Arty's multiplayer maps: Knock 'em Dead, Pyramid Scheme, Pandemonium
-Box. Modified Rubix's Access Denied to make it completely symmetric.
-
-Fix #289: Replays that didn't point to levels, or even empty text files,
-crashed the replay browser on highlight.
-
-Fix #290: Fixed crash when running Lix from the quicklaunch bar on Windows.
-Allegro 5 has an issue where the Windows sound driver depends on an active
-display, and I assumed that the sound initialization would always succeed.
-I've reordered my initializations and display an error message, not crash, in
-case the sound driver still fails to initialize, which should be rare.
-
-Fix #288: Added optional program-wide hotkey to take a screenshot of the
-entire Lix window, saved in the export directory. No default keybinding.
-Plays disksave.ogg on screenshotting.
-
-Fix #291: Replay verifier called from the replay browser won't interrupt
-the main menu music.
-
-Fix #286: The player list in the multiplayer lobby won't draw over other parts
-of the window.
-
-The splat ruler isn't drawn while the mouse hovers over the panel. All three
-colored bars of the ruler are drawn at 80 % opacity, not 100 %, to keep
-terrain details visible behind. Activating splat ruler/exit ping doesn't play
-a sound effect anymore.
-
-Drew sunglasses icon and multiplayer nuke icon at scale 200 %.
-
-Savestates during game play clock.ogg, not disksave.ogg, because they aren't
-written to disk. disksave.ogg is always played quietly, not loudly, because
-the sound file is extremely loud already.
-
-0.9.8
------
-
-2018-01-15
-
-lemforum: Lix Cannon, cover confusing gaps that were solid. Pipe Dream, remove
-miners, improve lower route. Snow Jump, raise two pieces slightly.
-
-Fix #285: Solving singleplayer replays are auto-terminated with a nuke if you
-leave a game with ESC before the game is over.
-
-Fix #281: Explain airclick to cancel replays in a tooltip.
-
-When you scroll at the screen edge, a tooltip explains hold-to-scroll.
-
-Fix #279: With music enabled, but no music installed, the main menu explains
-how to download the music archive from the Lix website. Text will appear in
-the corner of the screen, not as a dialog box.
-
-Fix: Sound volume setting had no effect.
-
-Editor shows mouse coordinates in the panel, in addition to the piece
-coordinates that it has already shown before.
-
-TAB is default binding for the splat ruler/exit ping. If you keep your old
-user file, this change will not affect your bindings.
-
-Removed unused hotkey to cycle spectated teams. When I have a better ingame
-score board with player names, I'll think about how to implement this.
-
-Removed unused strings from translation files in data/transl/. Each file lost
-over 60 strings, mostly leftovers from C++ Lix.
-
-0.9.7
------
-
-2018-01-03
-
-lemforum: Path to Mahiman, fixed backroute by early bashing.
-
-ClamLix: Swapped Inside the Fourth Wall with Urban Ledge-End. Applied mobius's
-fix to Square Squabble from 2017-12-28.
-
-Removed silent tile replacements, e.g., `moon.D' to `moon'. I've fixed about
-20 levels that still used outdated tile names. I will make a pull request
-against NepsterLix with these replacements.
-
-Fix #276: Replay browser prints the pointed-to filename, to avoid confusion
-what the pointedTo button does. I'd like to improve level-to-replay-matching
-further.
-
-Fix #278: Don't link against allegro_main on any system. Linking against that
-produced warnings on Windows and program-terminating errors during dynamic
-library loading on Mac.
-
-Fix #114: Don't index tiles at program start, allow adding tiles to the tree
-while Lix is running. This made the code far simpler. You still cannot change
-tiles while Lix is running because the file is read only once, then cached.
-
-Fix #275: When a basher ran out of earth to bash, some basher code ran on
-walker memory, failing asserts in debugging mode. I don't believe this fix
-changes physics, therefore no major version number bump.
-
-Fix #41: Options menu offers hardware fullscreen. This shouldn't be used
-normally, only when software fullscreen brings problems.
-
-Fix #238: Lobby uses radio buttons for choice of server. We hide the manual
-address field when central server is chosen.
-
-Fix: The level-to-image exporter crashed when called from the command line.
-
-Document where to download music in the main readme, in the detailed build
-notes, and in the notes for package maintainers.
-
-I ship the Windows binaries with newer Allegro libraries, their version is
-now 5.2.3. Any Allegro 5.2.x should work well with Lix.
-
-0.9.6
------
-
-2017-12-26
-
-Added Raymanni's Holiday tileset. Thanks so much for this beautiful set!
-
-Added multiplayer maps by IchoTolot. Removed my worst old multiplayer maps.
-
-Rubix's singleplayer, reduced initial lix in 3 levels to combat long waits
-when route is finished. Cropped small lemforum/Quirky maps with repeating
-decoration from 640x400 to 640x320. Compression Method 2 has a 2nd hatch.
-
-Fix #251: geoo/construction/pillar_* looks hexagonal instead of round, and
-looks more like concrete, to avoid confusion with steel.
-
-Fix #79: geoo/construction/squisher.T has a flashing exclamation sign and
-looks different from pillar terrain. It's now clearer where terrain ends and
-where the trap begins.
-
-Fix #253: Level search matches the level author, too, not merely the level's
-name and path.
-
-Fix #222: When you enter a different windowed resolution, (un)check
-windowed/fullscreen, or load a user config file, the program immediately
-switches to the desired resolution and screen mode. You don't have to exit and
-restart.
-
-Fix #249: Editor, rectangle dragging: Prefer to drag 1xN rectangles instead of
-(full-width)xN on torus maps.
-
-Fix #219: On torus maps, editor draws hatch/goal annotations properly across
-torus seams.
-
-Fix: Restarting the level from the end-of-level dialog resets speed to normal.
-
-Fix #226: Enforce datafiles (= on missing important files, print & log error
-even in release mode), don't assert for datafiles
-
-Log unplayable music only once per file per program start.
-
-0.9.5
------
-
-2017-12-13
-
-In NepsterLix/Moon, 10 levels got backroute fixes on 2017-11-30. All levels
-are proven solvable.
-
-In ClamLix/Outtakes, beautified Korean Border Crossing (version from
-2017-12-13) and Abridged Version v1. All levels remain solvable.
-
-Merged multiplayer maps by Arty: Blow Your Top, Shaft of Chaos, Showdown at
-Chainsaw Gap.
-
-Distinguished the pillars in matt/bricks from steel by yellow-brown color.
-Still to do: Distinguish pillars in geoo/construction from steel.
-
-Fix #272: Always draw splat ruler in front of terrain. Draw splat ruler even
-when it doesn't snap to anything.
-
-Fix #263, fix #269: Network game computes correct overtime when somebody
-nukes before saving lix, then saves some. This fixes crashes from assertion
-failures in the debugging build.
-
-Fix #209: The replay verifier called from the replay browser creates
-checkmarks when it finds solving replays whose player name matches the user's
-name. Command-line verification doesn't create any checkmarks.
-
-Fix #271: Verifier distinguishes normal failures without lix left from
-failures from running more than 5 minutes after the final skill assignment.
-
-Fix #157: Playing back winning replays on a wrong level version turned your
-correct checkmarks into '?!'. Now, replays will only affect checkmarks when
-the played level matches exactly.
-
-Fix #260: When you interrupt or modify a replay, then save it, your name
-replaces the old player name in the replay.
-
-Better key names on Windows when remapping hotkeys. If you still see keycode
-numbers instead of a proper key name, please tell me key and number.
-
-Translated leftover options to German: Sound and music volume, fast movement
-frees mouse, unpause on skill assignment.
-
-Fixed links in the build instructions that were still pointing to asdfasdf;
-they now point to lixgame.com.
-
-
-0.9.4
------
-
-2017-11-30
-
-ClamLix is included, a singleplayer pack with 113 levels. All levels are
-proven solvable. Thanks, Clam, Forestidia, and mobius!
-
-New multiplayer maps by Arty, Flopsy, and Yung. In particular, more maps for 7
-and 8 players. Some fixes to multiplayer maps by geoo and Steve.
-
-lemforum's Eye of the Needle: removed a backroute. Rubix's Holly Jingle: save
-99/99 -> save 10/10.
-
-Restarting a level disables fast-forward or turbo-fast-forward.
-
-Fix #267: Allow multiple hotkeys per skill.
-
-Fix #257: When A's lix enters B's exit, B will hear the saving sound.
-
-Splat ruler. In multiplayer, the splat ruler is combined with the
-exit-highlighting-function. Needs feedback.
-
-Score graph marks players who nuked with black-and-white squares. Ideally, I
-find a better solution.
-
-Fix: Disable editor grid-size hotkey whenever an editor window is open.
-
-Fixed an assertion failure in the debugging build when dragging quickly in the
-editor.
-
-Fix #258: The multiplayer server crashed when somebody left, then the
-remaining players started a game. Still needs field testing.
-
-0.9.3
------
-
-2017-11-18
-
-Music: Download http://www.lixgame.com/dow/lix-music.zip and extract
-into your Lix root dir. You can create additional subfolders in ./music/
-and put your own tracks inside -- ideally as .ogg, .mod, .xm, .it, or .s3m.
-Lix will play a random track per level.
-
-Fix #216: The manual savestate function will now always overwrite the
-savestate replay with the current replay.
-
-Improved the mouse handling on Windows, there should be fewer odd jumps
-of Lix's cursor over half the game window.
-
-When you restart a level during pause, the game unpauses.
-
-0.9.2
------
-
-2017-10-22
-
-Rubix reordered his singleplayer levels and added the Community Collab
-Project: 4 levels in single/rubix/Extras.
-
-lemforum: Path to Mahiman, removed indirect jump backroute. Runaround up to
-Cunning, Raindow Road down to Quirky.
-
-Fix #252: Level search queries won't match the prefix 'levels/' in the
-filenames because all levels would match.
-
-Fix #256: When you export levels to images or save replays manually, the
-button replacement will not say "done", but instead tell you the filename.
-
-Fix #254: When you run out of VRAM during a level, the game won't crash, but
-instead stop making internal savestates. This won't display a warning, it will
-merely log. Recalculation due to incoming network packets will take longer,
-but that's better than crashing. The game remains VRAM-hungry and this
-solution is not ideal.
-
-0.9.1
------
-
-2017-10-05
-
-Fix #243: Sounds play in the lobby or browser when somebody joins or when
-somebody picks a map. When observers browse for maps and others start a game,
-the observer's browser closes, and the observer will see the game.
-
-Fix #244: Malformed UTF-8 in files within the level tree (e.g., zip archive)
-won't crash the Lix level search anymore. The offending file still will not
-appear as a searchable level; instead, the offending filename is logged. I
-validate all keyboard input for UTF-8.
-
-Fix #246: Tiles with coordinates far out-of-bounds crashed the editor once
-torus wrapping became enabled. Will now torus-wrap these tiles properly.
-
-Fix #247: The lix under the mouse is lighlighted far brighter and gets a dark
-outline to its left, right, and above it.
-
-Fix #248: Multiplayer colors: Purple is lighter. Black is darker. Yellow is
-darker and has less green hue.
-
-Removed a backroute in lemforum's Duality from abusing decoration.
-
-Added about 40 remakes by Proxima of maps from 2009. I've
-inserted the maps in their original authors' directories.
-
-Removed hidden water in Sharing the Water Supply 4p. Removed duplicate map
-files for Going Up 7p/8p.
-
-0.9.0
------
-
-2017-09-28
-
-Raymanni's Toy, Lab, and Gore tilesets to v3: Raymanni has drawn Lab monitors,
-Gore tentacles, eyes, and a bonesaw, a Toy chalkbox, and several more. All
-tiles have shading from the top-left as normal for Lix tiles. Thanks!
-
-Added Proxima's and mobius's multiplayer levels, merged geoo's level changes
-for the tileset update.
-
-Level search.
-
-Fix #230: Frogs ate cubers, and flung cubers reanimated. Now, cubers stay dead.
-
-Fix #231: Tumblers oscillated in thin walls. Now, tumblers will either move or
-land. (The tumbler code is not perfect yet, I'm planning to rewrite it, but
-the rewrite's subtle physics changes would invalidate too many replays still.)
-
-Fix #214: Players permute correctly in networking games.
-
-Fix #239: The server sends a permutation of correct size. This fixes wrong
-hatch/goal distributions in games with many observers and larger teams.
-
-Fix #217: Skip remaining overtime when everybody has nuked or finished
-playing.
-
-Race maps (= maps that have zero overtime) nuke automatically on the first
-scoring.
-
-Fix #240: Observers don't have to cancel the end-of-game dialog anymore. I
-print the game result to the console. This is not beautiful, but it's an
-acceptable medium-term solution.
-
-0.8.8
------
-
-2017-09-24
-
-(Still 0.8.5 physics: This 0.8.8 still has the severe bug where you can fling
-cubers and thereby reanimate them, leading to wrong counts of lix alive. 0.9
-will fix this.)
-
-Merged 9 new multiplayer maps by Colorful Arty. Merged multiplayer map updates
-by geoo.
-
-All racing maps, and geoo's Tower Defense 22934, have zero overtime. All other
-maps have nonzero overtime.
-
-The ping button highlights both your hatches and your exits in multiplayer.
-
-Multiplayer colors: Orange and yellow are more distinct. Grey is lighter. Blue
-and black are darker.
-
-Warn about fewer key collisions in the the options tab for hotkeys in menus.
-
-Linux packaging: You can override the XDG install path with a custom path, see
-doc/build/package.txt. In the git repository, data/images/lix_logo.svg has a
-large logo as SVG. I don't ship that in the download because it's over 3 MB.
-
-0.8.7
------
-
-2017-09-19
-
-The out-of-skills beep was too trigger-happy: When we clicked a mining lix
-and had miners left in the skill panel, the game beeped as if we were out of
-skills. Fixed.
-
-0.8.6
------
-
-2017-09-19
-
-Fix #227: Lobby player list shows 8 entries at a time and scrolls. Before, it
-let the the 9th, 10th, ..., button bleed underneath the list.
-
-Fix #228: Edge scrolling requires the hardware mouse inside the window.
-
-Fix #229: Pressing the hotkey of an empty skill deselects all skills instead
-of keeping the previous selection.
-
-Included Rubix's variants on Marble Run, Eater Island, Diagonal 8p, and
-removed dead space on Across the Gap. Everybody else: Post your multiplayer
-maps, then I can include them in the next version.
-
-Optionally print during play the number of physics updates, frames per second,
-and a ballpark guess of allocated VRAM.
-
-0.8.5
------
-
-2017-09-09
-
-Fix #244: Grouping certain tiles led to an assertion failure: The game
-attempted to cut the group like a gridded animation. Fixed.
-
-Most of #216: Ping button: A small button in multipalyer games, next to the
-nuke. Button clicks highlight all own goals for 4 seconds by flashing them
-inside black and white boxes above the terrain. Can be hotkeyed; by default,
-no key is bound.
-
-Fix #162: In the hotkey options, if you bind the same key twice, all its
-bindings show in red. You can decide whether to remove one binding or keep
-all.
-
-Fix: When the editor inserts a tile from the terrain browser into a level, the
-tile will be aligned to the grid.
-
-I enforce bitmap creation: If you run out of VRAM, Lix should now terminate
-with a proper exception, not crash later in unrelated functions. If you crash,
-screenshot the error, or send me [tt]data/log.txt[/tt].
-
-I optimized the lix Job hierarchy for speed: Lixes are value types, and carry
-their job as a value type within themselves. (Drawing many exploder fuses at
-once is still slow. Organ Symphony will still kill the framerate.)
-
-Fix #211: On Linux, you can pass a compiler switch to make Lix system-wide
-installable, follwing the XDG base directory structure. For arbitrary
-installation paths, open an issue on github.
-
-0.8.4
------
-
-2017-08-30
-
-Fix #4 and #213: Some graphics cards cannot load textures wider or taller than
-4096 pixels. Amanda's tar and occult hatch were too wide. Now, I allow
-two-dimensional spritesheets for single-animation gadgets, and I've
-rearranged the frames in the tar and occult hatch. In Lix, looks and physics
-should be unaffected.
-
-lemforum: Over the Hump out, Duality in. Duality and Round Trip swap places
-within Daunting.
-
-5 new multiplayer maps by Rubix.
-
-0.8.3
------
-
-2017-08-27
-
-Fix #176: Make a tile group with at least one non-dark tile where all non-dark
-tiles are covered entirely by dark tiles. This crashed the game before. This
-crash is now fixed.
-
-Fix #191: Initial zoom on tall narrow maps (e.g., Rubix's Hamunaptra for 4
-players) is fit-to-height, or zoom 1 if fit-to-height would zoom even further
-out. Initial zoom on small narrow maps (e.g., The Runaround) fits the entire
-map on the screen, obviating scrolling, allowing dark borders.
-
-Merged editor's Topology and Looks dialogs into a single new Map dialog.
-No new functionality yet. I'm thinking about custom screen starts.
-
-For a new player, the singleplayer browser highlights Any Way You Want,
-the first map of the lemforum pack.
-
-lemforum, Forest of Fears: Wider exit platform, should look less cramped now.
-
-0.8.2
------
-
-2017-08-24
-
-Fixed magic crash: The Wine build, in release mode, run in Wine but not in
-Windows, crashed on entering a nonexistant user name. This would have been
-very bad because can't do anything on new installation before entering a name.
-The fix is pure magic, a mere rearrangement of lines. Fixed for safety, even
-though it was OK in Windows.
-
-0.8.1
------
-
-2017-08-24
-
-The save-as browser (used by the editor to save levels) allows to create
-new directories.
-
-Editor defaults to 30 seconds of overtime on new levels. Singleplayer levels
-discard their time.
-
-Removed hints during levels and manual screen start.
-
-Rebevelled [tt]matt/underworld/{00,01,02}.png[/tt]: Better shading, these
-bricks don't look flattened near their left edge anymore.
-
-lemforum: Sinking Ship, geoo is author. namida written in only small letters.
-Setting a Fundament, renamed to Cubic Interpolation. Forest of fears, removed
-2 backroutes.
-
-0.8.0
------
-
-2017-08-22
-
-Stable 0.7.22 physics. I would like to keep these physics at least for several
-months.
-
-Tooltips during game explain directional select, priority invert,
-and double-click on nuke. Can disable tooltips in the options menu.
-
-Removed the unused editor button to add decoration. To fill the void,
-the button to add terrain is twice as large. Not perfect, but good for now.
-
-0.7.22
-------
-
-2017-08-20
-
-Physics: Flinging downwards initializes pixelsFallen with the distance that
-speed-0 tumblers normally fall before reaching the given speed. Still, all
-flinging overwrites pixelsFallen without respect to earlier values. Tumblers
-splat when pixelsFallen on impact is larger than 126.
-
-Re-introduced downwards steam and the 2016 decoration on Goblin City, Gomen
-ne, 100 Ways to Die.
-
-Digger unchanged since 0.7.19: Still 5/9 with anti-razor-edging. Discussing.
-
-lemforum: Bulldozer out, Sinking Ship v2 in. Empty Space reverted to the 2014
-version, rejecting both propesed versions from 2017. Renamed Cuber Replacement
-to Jack in the Box.
-
-0.7.21
-------
-
-2017-08-18
-
-Fix: The last exiter didn't play the exiter sound.
-
-Renamed Rubix's "Just a Minute... (Part three)" to "Come on Down! The Price Is
-Right", which is almost too long but still fits well.
-
-Removed lemforum/wip-0.7/ and images/geoo/construction/chain1.png, the
-now-obsolete tile because its size doesn't conform to multiples of 8.
-[url=http://www.lixgame.com/etc/unused-levels-0.7.zip]Download unused levels
-and chain1[/url].
-
-Removed simon/wood/ tileset. I've replaced these tiles with Matt's wooden
-planks in the 3 multiplayer levels by Rubix used them:
-Going Up, Coming Down (2p); Naoh's Ark (2p), Naoh's Ark (Team).
-
-0.7.19
-------
-
-2017-08-16
-
-Physics: Digger has anti-razor-edging: Whenever a digger ignores steel, he
-cannot remove earth pixels beyond the steel in the same row. (The digger stays
-at 5/9 steel sensitivity, i.e., chokes on steel in the central 10 of 18 hi-res
-pixels and continues despite steel in the outermost 4 hi-res pixels on either
-side.)
-
-Updated lemforum's Down Among the Dead Lix, Let's All Go Down the Strand,
-Division of Labor, Empty Space is Hardly a Waste (Proxima's 2017-08-15
-version). Theresa v2 has been up-to-date since 0.7.16.
-
-Merged Rubix's remakes of The Clairvoyant and Flatlined. Thanks!
-
-Removed the downwards steam. I adapted the decoration in the only 3 lemforum
-levels that used downwards steam: Giblin City, Gomen Ne, 100 Ways To Die.
-(Downwards transportation beams are slow, not intended to kill, and therefore
-still in the game.)
-
-In the editor, you can delete tiles by dragging them onto the panel. While
-hovering over the panel with dragged tiles, the mouse cursor becomes a
-trashcan and the tiles become invisible.
-
-Fix: Drag tiles around in the editor, tap the tile-deleting hotkey, and
-continue to drag around nothing. The game crashed. Fixed by stopping the
-dragging on deleting a selection.
-
-Fix #174: The ingame level map, during non-integral zoom, sometimes
-didn't initialize/overwrite outside rows of pixels. Fixed by rounding up.
-
-Fix #201: The ingame level map during large integral zoom that didn't
-divide the length of the map, didn't initialize/overwrite outside rows of
-pixels. Fixed by rounding up.
-
-0.7.18
-------
-
-2017-08-12
-
-Tumblers remember how many pixels they have moved downwards since (they got
-flung for the last time, or since they moved upwards, whatever of these
-happened later). When non-floatable tumblers hit the ground, they splat if the
-fallen hi-res pixels exceed 126. They ignore the y-speed for splatting.
-
-I've drawn 4 new digger frames before the animation loop begins.
-
-In multiplayer, when overtime starts, the bell sounds and the console warns
-about how much time will be left before the nuke.
-
-0.7.17
-------
-
-2017-08-10
-
-100 % proof coverage for lemforum and NepsterLix! Thanks to all who submit
-replays. The coverage is for the 5/9 digger.
-
-Rubix's singleplayer levels are almost covered: 155/157. Uncovered levels are
-The Clairvoyant and Flatlined, these Oriental levels need an overhaul due to
-tileset breakage. I'll PM Rubix. Removed The More You Know because that's a
-nuke level, but D Lix locks the exits during the nuke. Lowered initial lix on
-many levels.
-
-No decision yet for the digger. 5/9 is implemented. I'm leaning towards
-keeping this 5/9 digger, but I want to read over yesterday's chatlogs again
-and Proxima might post to the 0.7-steel-sensitivity topic.
-
-0.7.16
-------
-
-2017-08-09
-
-All water gadgets in images/simon have multiples of 16 for their sizes: 48x48
-or 48x32 or 48x16. The old water size was 50x50. I've looked through all
-singleplayer levels -- lemforum, NepsterLix, and Rubix -- and fixed the few
-water placements that had not yet looked good with 48x48.
-
-All triggered gadgets (triggered traps and triggered flingers) have two rows
-of animations: The first row loops while idle, the second row plays while
-busy. After the final frame of the second row has played, the gadget will
-eat another lix and jump back to the frontmost frame of the second row, or,
-if nobody is in range, begin looping the idling animation from the front.
-
-Kept digger at 5/9 sensitivity for now: Digger chokes on steel when the
-innermost 10 of 18 pixels contain any steel. I should make a final decision
-this week.
-
-Rubix's singleplayer levels, Perplexing: Lowered initial lix on some levels.
-Coverage 108/158 -> 119/158, need 39 more.
-
-Get Hype and Theresa V2 merged into lemforum from the 0.7-lemforum thread.
-lemforum coverage is 239/240, need 1 more: Theresa V2.
-
-0.7.15
-------
-
-2017-08-04
-
-Revert basher mask: Bottom 16 pixels are steel-sensitive, not only the
-bottom 13. I.e., we have 2, not 5, insensitive pixels over the sensitive.
-
-Replay verifier logs to `data/verifier.txt' and closes the file after
-writing its last line or after closing the dialog.
-
-0.7.14
-------
-
-2017-08-02
-
-Proxima's planned changes to the lemforum pack. Snowball Battle: Spawn
-interval 20->22, to keep it solvable.
-
-0.7.13
-------
-
-2017-08-01
-
-Physics: The basher ignores steel in its top 5/18 rows, not merely 2/18.
-The digger ignores steel in its 4 outermost hi-res pixels on both sides,
-not merely in its outermost 2 on each side. The digger digs every (16*n)
-frames following its assignment, not already every (16*n - 4).
-
-Fixed bug #202: Small levels image-export with all stats again, not only
-with their skills.
-
-0.7.12
-------
-
-2017-07-31
-
-lemforum pack: Simple renamed to Lovely. Some backwards-compatibility code
-that converts progress checkmarks during loading the user file.
-
-lemforum/wip-0.7 has all levels in consideration for lemforum pack's stable
-release with 0.7.x in 2 weeks. I hope all levels are up-to-date.
-
-Raymanni's 3 water tiles have higher trigger areas. (Lixes drown earlier and
-higher up than before when they drop into the water.)
-
-Zoom 1x is always allowed, even if the level doesn't fill the available area.
-
-Fix #206: Editor browsers show the innermost directory of hatches, goals,
-traps, and other gadgets.
-
-Goals are locked during the nuke. The nuke is purely for decoration and
-to finish replays in style.
-
-Mouse code reverted to the 0.6 mouse code. If anybody has trouble, tell me.
-
-Keyboard key duration before first repeat for moving selected editor
-pieces: 0.33 seconds -> 0.2 seconds.
-
-Lots of multiplayer nuke code that handles conceding and calling for the nuke.
-When you press the nuke button, you lose control over your lix, overtime
-starts, but your lix don't explode yet. We'll see how it feels.
-
-Editor allows to set overtime in multiplayer levels. Existing multiplayer
-levels are tagged with the correct player number.
-
-0.7.11
-------
-
-When you want to nuke, you can't assign skills anymore. The game core dismisses
-assignments after your nuke, and the GUI shows zero skills.
-
-Game doesn't show FPS in the panel by default. It's an option still.
-
-0.7.10
-------
-
-2017-07-17
-
-Updated lemforum/Vicious/_order.X.txt, ordering One-Lix Showdown.
-
-0.7.9
------
-
-2017-07-17
-
-Physics change:
-Reverted the physics change from 0.7.8: The walker skill behaves like in 0.6
-again. Either the lix cancels her activity and walks on, or turns.
-
-Shotgun-debugged mobius's mouse problem by applying a Linux workaround for
-all systems. I couldn't test, hope this helps.
-
-More lemforum level pack coverage. Only 7 levels left to cover:
-fromtheotherside.txt metalcitymayhem.txt thecontinuum.txt
-dreamtheimpossible.txt lixsterquadrille.txt survivalofthecraft.txt
-toccata.txt
-
-0.7.8
------
-
-2017-07-01
-
-Physics change:
-0.6 walker: If target lix is working, revert to walker. Otherwise, turn.
-0.7.8 walker: If target lix is working, revert to walker. Turn in every case.
-
-0.7.6
------
-
-2017-06-20
-
-Fix: Builders and platformers duplicate bricks for free when turning at
-blockers. Before, number bricks left decreased for these extra bricks.
-
-0.7.5
------
-
-2017-06-20
-
-lemforum: Completely Ridiculous Level is narrower by 48 pixels.
-203/240 levels are proven solvable in 0.7 physics, let's cover 37 more.
-
-Down-facing tumblers drown head-first, not feet-first.
-
-0.7.4
------
-
-2017-06-14
-
-simon/oriental/bonsai: This tree got lixes stuck beneath its leaves.
-Changed some pixels and therefore the tree's physics. Didn't affect any
-levels for the worse.
-
-Rubix's Pleasand and Sinister are 100 % covered. The higher difficulties
-aren't covered yet.
-
-When you verify dirs in the replay browser, that dir becomes the most recent
-dir for exiting and restarting the browser.
-
-0.7.3
------
-
-2017-06-14
-
-NepsterLix is 100 % solvable with 0.7.2 physics.
-
-The replay browser offers a button "Verify dir" that verifies all replays
-in the current directory, recursing through subdirectories. Lix shows the
-results in the GUI and copies them to the logfile.
-
-0.7.2
------
-
-2017-06-11
-
-Blocker field is back like in 0.6: LLLLLL-RRRRRR against everything.
-This is simplest and allows crowd-follows-builder in at least 70 % of the
-cases.
-
-0.7.1
------
-
-2017-05
-
-Blocker fields by geoo's suggestion, LLLLLL-RRRRRR against nonbuilders and
-LLLLL---RRRRR against builders.
-
-0.7.0
------
-
-2017-05
-
-Lots of changes, see experimental version thread on lemmingsforums.com.
-
-0.6.39
-------
-
-2017-07-01
-
-The replay browser allows you to batch-verify all replays in the current
-directory. The results are printed on screen and to the logfile.
-
-Fixed 3 backroutes in NepsterLix; the changed levels are A Day in Lixtown,
-House of the Mad Trickster, and No Matter What I Try.
-
-0.6.38
-------
-
-2017-05-14
-
-Fixed #158: When you exported levels as images from the game and your game's
-resolution was not 640x480, the images had blank stripes instead of skillbars.
-
-Editor draws teams on hatches and goals. (Bug: When you have fewer gadgets
-of either type than teams, only the first team will be drawn.)
-
-Editor terrain browser shows more tiles with smaller buttons.
-
-0.6.37
-------
-
-2017-04-29
-
-Codebase builds with dmd 2.074.
-
-Fix #197: Create a new level, never save, then instruct the editor to exit.
-When the editor asks about potential data loss, choose to save. The buttons
-in the save browser didn't work, the level was lost. This is now fixed.
-
-Fix #198: When the editor inserts a tile from a browser, the new tile
-aligns to the grid.
-
-0.6.36
-------
-
-2017-04-28
-
-Re-enable the option to untrap mouse with fast movement. I have a kludgy fix
-against the buggy mouse jump (Arch 2016, Allegro 5.2, my old code or Allegro
-generated extra move events when I merely wanted to warp the mouse).
-* This kludge is only helpful when you always trap the mouse inside Lix.
-* If you allow the mouse to leave with fast movement, you'll still have a
- warp when you begin right-click scrolling. Need kludge on top of kludge?
-* The kludge is only active on Linux, I've static-if'd it away elsewhere.
-
-0.6.35
-------
-
-2017-04-25
-
-Fix #183: Multiplayer panel shows only number of saved, not any requirement.
-We can still improve this later, e.g., by showing the score of the best
-opponent.
-
-Fix #180: Chat during play implemented.
-
-Fix #181: Chat message length is unlimited. The entry box scrolls along.
-
-Fix #146: Skill arrows scale only once. There are only 1x-zoomed arrows,
-they are drawn straight to the map, then scroll and zoom along with the
-terrain. Maybe GUI-scaled arrows should move as GUI components along with
-the scrolling, but that would be very hard and force frequent total redraws.
-
-0.6.34
-------
-
-2017-04-16
-
-Fix #192: While you are in the multiplayer level browser, incoming console
-messages don't overwrite the browser anymore.
-
-Fix #194: Show both the score bar graph and the tape recorder buttons
-when you watch a saved multiplayer replay.
-
-Fix #195: Client shows version mismatch in their console when they attempt to
-connect to a server running an incompatible version. Versions X.Y.Z are
-compatible iff they have the same X and the same Y. The patch version Z
-doesn't matter.
-
-Fixed asserts in the delayed exploder code. Undelayed, lix explode in the next
-fame following their assignment. Delayed exploders explode in the 75-th-next
-frame after the assignment, this is 74 frames later than undelayed.
-
-Removed my desert tileset (images/simon/desert). It has become unacceptable
-MS-Paint programmer art. Almost nobody used it. The levels "Hrududu" and
-"Group Therapy" used it for decoration, I have re-decorated them in similar
-style. The asymmetric multiplayer maps "Shine On You Crazy Lix" used desert
-for the main terrain. I won't ship these until they're redesigned; this is
-a good opportunity to fix the advantage of the higher-spawning players.
-
-0.6.33
-------
-
-2017-04-14
-
-Fix #182: Timed exploders in multiplayer have a nice burning fuse. I examine
-the spritesheet for the eye position. The fuse burns slow at the beginning,
-then faster when it's short, for visibility.
-
-Fix #193: Most opponents' sounds aren't played. Opponents' deaths and baseball
-bats still play sounds.
-
-Fix #168: Server resets all room data once a room is empty, and deallocates
-the level. Before, you could find old levels when entering a new room.
-
-NaOH's forest exit has animated candles. Physics remain identical.
-
-Singleplayer nuke buttons don't have a red background anymore. I want to
-redesign multiplayer nuke buttons, e.g., by printing overtime on them.
-
-0.6.32
-------
-
-2017-04-11
-
-Partly fix #182: Draw a rudimentary exploder flame over the lix's head
-in multiplayer. I don't draw a fuse yet, and I don't examine the spritesheet
-for the exact eye position.
-
-Fix #190: Override "asdfasdf.ethz.ch" with "lixgame.com" in outdated
-config files left behind by C++ Lix.
-
-0.6.31
-------
-
-2017-04-06
-
-Fix #186: Observers can't assign skills even locally.
-
-Fix #58: Option to keep replay actions after framestepping backwards over them,
-this is enabled by default. mobius likes to remove them on framestepping.
-
-Don't float-downscale UI CutbitElements, always display at integer scale >= 1.
-
-Removed images/matt/oriental/dragon.png. That tile was huge, clashed
-in style with other pieces, and is nowhere used.
-
-0.6.30
-------
-
-2017-03-30
-
-Fix #184: Observing players don't add colors to the game. There is still a
-bug with observers: The can assign skills, changing their own replay, even
-though others won't interpret these assignments.
-
-Maybe fix #177: Multiplayer or state-loaded singleplayer produced outdated
-land, even though physics were correct. Copying the land without transparency
-should fix that.
-
-0.6.29
-------
-
-2017-03-29
-
-Moved gamestate memory management from GC with manual GC calls to reference
-counting. Maybe that fixes #177, outdated terrain during multiplayer?
-
-Fix #179: Unfocus lobby chat when a game starts.
-
-Fix #178: Don't flash the R for replaying during multiplayer.
-
-Fix #185: Hotkeyed zoom during multiplayer, even if the button isn't shown.
-
-Fix #171: Terrain browser doesn't upscale small tiles.
-
-0.6.28
-------
-
-2017-03-18
-
-First version for the networking test on lemmingsforums.net.
-
-Removed the option to untrap the mouse with quick mouse movements. This
-option was buggy on linux and has always required workarounds. To untrap
-the mouse now, press Alt+Tab.
-
-Matt's winter hatch has no snow, but wooden triangles.
-
-0.6.27
-------
-
-2017-03-16
-
-In multiplayer, the server sends time-syncing packets to all players in a
-room. This happens every 0.5 seconds during the first few seconds in the game,
-and every 5 seconds later on. Players adjust their physics' speed to match.
-Even if players open the ESC menu, a networked game will continue to run.
-
-0.6.26
-------
-
-2017-03-09
-
-NepsterLix 1.6 is an excellent singleplayer puzzle pack with 106 levels.
-It was released in 2016, now it's finally included in the main download.
-
-Sharper small text on small resolutions such as 800x600 and below: Instead
-of small shadow text, I print small text with a dark outline.
-
-More networking code: Transferring and interpreting game data works.
-Can't interrupt other players' replay actions anymore. Game's network
-connection is picked up by lobby after game. But the server doesn't yet
-send time-syncing packets every few seconds, thus clients will time-shift.
-
-0.6.25
-------
-
-2017-03-05
-
-The Windows executable has a Lix icon in the file manager. On all operating
-systems, the application window and taskbar entry have a Lix icon.
-
-0.6.24
-------
-
-2017-03-04
-
-Fix #167: Editor button zooms again. Map is rezoomed when editor resizes map.
-
-Fix #170: Game crashed due to the Nurse indexing players in the replay by
-PlNr. Now, the replay uses a PlNr-indexed associative array.
-
-I offer more zoom values: 1/sqrt(2), 1, sqrt(2), 2, 3, 4, 6, 8, 16, and
-fitting the level's width or height to screen.
-
-0.6.23
-------
-
-2017-03-02
-
-Fewer zooms are considered similar. This addresses Nepster's concerns:
-http://www.lemmingsforums.net/index.php?topic=3128.msg63116#msg63116
-
-Fix #169: I validate all user files for good UTF-8 before calling Phobos.
-
-Implemented the transparent console for networking messages during play.
-
-I've worked on starting networking games and transferring game data.
-I haven't tested this yet, don't expect anything yet.
-
-0.6.22
-------
-
-2017-02-18
-
-When you zoom in or out, the mouse points to the same pixel on the land
-before and after the zoom. Exception: Map scrolling is restricted on low zoom.
-
-Fix: In-game map boundary was sometimes too thin, there was a 1-pixel wide
-column or row of non-erased pixels between the boundary and the land.
-
-Fix #94: Show spawn interval only when hovering over a hatch. I'm showing
-it in the panel still, not laid over the hatch, which would have been better.
-
-If a map is taller than wide, it tries to fit its width to the screen width,
-not the height.
-
-0.6.21
-------
-
-2017-02-16
-
-Merged a contribution by CyberShadow to upscale the 640x480 GUI icons
-for high resolutions by integer factors when no high-res icon exists. Thanks!
-
-Initial zoom fits the level height on the screen height, allowing horizontal
-scrolling if the map is very wide. Exception: The map is only slightly wider
-than the screen, then initial zoom fits the width on the screen width,
-generating a black border at the top.
-
-When you increase the zoom factor, the game centers on the mouse cursor.
-
-0.6.20
-------
-
-2017-02-04
-
-Code compiles with dmd 2.073: Masks initialize at runtime, before main menu.
-I removed tharsis.prof, that dependency didn't build with dmd 2.072.
-
-Reworkings under the hood towards minimum viable multiplayer. In case you
-have replays from old C++ Lix, you can watch them in D Lix now. But you still
-cannot start multiplayer games yet in D Lix.
-
-0.6.19
-------
-
-2016-11-01
-
-I require Allegro 5.2 now instead of 5.0.
-
-Included Rubix's levels. They're all solvable in D Lix.
-
-Fix #159: Better encapsulation for physics caching. Don't switch timelines
-merely by framestepping back. Maybe this fixes Rubix's sporadic crashes, #154.
-
-Fix #24: GUI text vertically centered on buttons. I'd like to see how this
-looks on Windows machines.
-
-More work on the networking lobby. You can chat, browse rooms, send and receive
-levels, but can't start a game yet.
-
-0.6.18
-------
-
-2016-10-08
-
-Fix: When you picked a tile from the editor's tile browsers, the tile wouldn't
-appear in the level. Now it does again.
-
-0.6.17
-------
-
-2016-09-21
-
-Fix #153: I have culled the no-effect decoration. The still decoration is now
-solid terrain. Animated decoration is gone, except for the beach bonfire, which
-became a fire trap. I have changed levels that I distribute with the game to
-use the new tiles. Backwards compatibility for levels that I don't maintain:
-The level loading function silently replaces decoration with the new tiles.
-
-I removed the auto-replacements for Matt's terrain that I made in 2010 and
-2011. Almost no levels relied on them anymore, and I've changed the remaining
-two levels that did. These levels remain functionally identical.
-
-Fix #156: Switching to a parent directory in the singleplayer browser clears
-the preview again.
-
-Rubix has created a cute sound for (singleplayer, you have lost too many lix).
-It's included, and plays once when triggered, not five times like the old tick.
-
-The warning sound for empty skill doesn't play on mouse click, only on hotkey.
-
-0.6.16
-------
-
-2016-09-14
-
-Fix #152: The singleplayer browser has a button to create a new level.
-This button is always visible, whether a level is selected or not.
-
-Fixed smearing FPS text in the editor.
-
-0.6.15
-------
-
-2016-09-13
-
-Started networking backend, lobby, and console. You can log onto the central
-server at lixgame.com and chat.
-
-Fix #145: The editor calced twice after its boxes lost focus. You could cancel
-a box with a hotkey, and the editor interpreted the hotkey itself once more.
-
-Fix #151: When there is no savestate, the state-load button is hidden.
-
-Fast movement frees mouse: This option is off by default.
-
-0.6.14
-------
-
-2016-09-01
-
-Command-line switches to jump into play:
- lix level.txt plays the level.
- lix replay.txt plays the replay against its included level.
- lix --pointed-to replay.txt plays the replay against its pointed-to level.
- lix level.txt replay.txt plays the replay against the given level.
-
-Minor bugs left behind here: Depending on from where the levels are run,
-they do or don't generate checkmarks. Auto-replays should always be saved,
-even if, when not run from the root directory, the replays are called unknown.
-
-Command-line switch to export images. The following command-line exports as
-images the two given levels, and all levels recursively found in mydir:
- lix --image level1.txt level2.txt mydir
-
-Fix #149: Singleplayer always displays a dialog at end of play again,
-so you can control the entire application with the mouse alone. You can
-framestep back from this dialog.
-
-0.6.13
-------
-
-2016-08-27
-
-Lemforum levels got updates from August 2016. I deleted the tutorial levels:
-The lemforum pack is our flagship pack and starts with very easy levels.
-Other packs need not provide tutorial levels.
-
-Fix #142: There is a virtual file system. It recognizes ./ and ../ now.
-Other directories, in particular installations in Linux File System Hierarchy
-trees, aren't supported yet, but the necessary changes have become easy.
-
-Fix #148: When you fail a singleplayer level, the game halts and allows you
-to go back in time. It doesn't spawn a dialog box anymore.
-
-Fix #144: In the editor, when you mirrored a piece with transparent pixels at
-its sides, the piece moved. Entire selections diverged on repeated mirroring.
-
-Fix #84 and #90: The options menu explains its options, except on the editor
-tab. The box near the menu's bottom provides two lines of explanation.
-
-0.6.12
-------
-
-2016-08-07
-
-Fix #134: Select multiple tiles in the editor and press rotate.
-The tiles rotate correctly with respect to each other. Rotating 4 times
-puts them back exactly where they started, they don't wander. This works
-even if oddly-sized tiles or unrotatable gadgets are in the selection.
-
-Fix #139: The browsers for hatches, goals, decoration, and hazards display
-all tiles in the images/ tree in one listing.
-
-Fix #140: The terrain browser starts browsing from the directory of the
-tile you have selected at the moment. If you haven't selected anything,
-they start from the directory from which you've most recently added a tile.
-
-Fix #143: The file selector scrolls to the final row, even if it's less
-than half-filled. Before, the scrollbar looked like there were more files,
-but didn't make the tiler display these extra files.
-
-Swapped author and level title in the editor's constant-setting window.
-
-0.6.11
-------
-
-2016-08-06
-
-lemforum pack: Many updates by Proxima and geoo. Fewer lix in Hopeless.
-geoo has rebuilt Spin Geometry with completely new terrain, and renamed it
-to All Aboard the Pain Train. Off the Rails is now Railroad Plot, and
-Derailed Level got a derailing locomotive as decoration.
-
-Fix #117: Name-asking menu for new players exits with plain Esc. I don't
-display anything for this.
-
-Fix #131 and #111: Simpler starting zoom. Depending on your game
-resolution, either all levels start as 1x or all levels start as 2x. Test
-and see if you like the zoom for your resolution.
-
-Fix #122: When you continue from a saved replay, then win, or save
-manually, the new replay goes into the correct directory and points to the
-correct level file.
-
-Fix #133: The singleplayer menu shows the player's best score: Lix saved
-and skills used.
-
-Fix #138: Editor hotkeys work even while you're dragging. The buttons on
-screen are disabled for the mouse during drag.
-
-Fix #127: I hide dot-files, like .git, in level directories.
-
-0.6.10
-------
-
-2016-07-31
-
-In the lemforum pack, 237 of all 240 levels are guaranteed to be solvable.
-The remaining possibly-unsovable levels are Trading and Cooperating,
-The Mile High Club, and Striking News at Ten.
-
-Fix #116: Editor shows the top-left point of a multiple selection, the minimal
-coordinate each in both the x- and y-direction.
-
-Fix #130: After state-loading a different timeline, framestepping moved back
-to the undesired timeline. Now, I discard old savestates until the merge base
-of the two timelines, and recompute from there on savestate.
-
-Fix #91: Editor buttons are disabled when dragging.
-
-0.6.9
------
-
-2016-07-27
-
-Miners throw their pickaxe into the air when they hit steel.
-
-Option: Do fast mouse movements untrap the mouse from windowed Lix?
-
-lemforum pack updated by Proxima, again first 5 ranks solvable.
-
-0.6.8
------
-
-2016-07-22
-
-Decoration updated on Any Way You Want, The Road Goes Ever On, Just Stop
-the Bleeding.
-
-Fix #125: disksave.ogg was too loud, changed from 0 dBFS to -4.5 dBFS.
-
-0.6.7
------
-
-2016-07-22
-
-The lemforum pack's first 5 ranks are guaranteed to be solvable. geoo has
-given maintenance of the lemforum pack to Proxima. Proxima has spent days
-on careful level adaption to D Lix and difficulty reordering.
-Out: Get Down From There, Minimalism Part 3.
-In: Don't Look Back (jagged floor instead of a time-limit gadget),
- Canadian Glade (inspired by Get Down From There, uses the forest tileset).
-
-Fix #111: Initial zoom on torus maps was too zoomed in.
-
-Fix #112: Hotkey labels ran over nearby buttons.
-
-Fix #118: When Lix wasn't the foreground window, it trapped the mouse
-nonetheless when the cursor passed over the inactive window. Now, you must
-click into the window to trap the mouse. This fix made visible another bug:
-In the inactive Lix, the ingame cursor moves offset from the hardware cursor.
-
-Worked on #124: I don't add 0x0 as a fullscreen mode anymore.
-
-0.6.6
------
-
-2016-07-17
-
-The lemforum community pack has Proxima's suggestions up to 2016-07-17.
-Several levels have moved between ranks. Some have been replaced entirely:
-Out: Minimalism (Part 1), Fear of Heights, That Pesky Gap, Don't Look Back,
- Too Far to Walk
-In: A Necklace of Raindrops, The Road Not Taken, All Around the World,
- Diggin' the Air, A Soulful Bounding Leap
-
---coverage switch to use along with --verify, to compute level directory
-coverage. From all levels that reside in level directories from where you
-have tested at least one pointed-to level of a replay with --verify,
---coverage lists those levels that didn't enjoy even a single solution.
-Please read levmaint.txt for detailed instructions. Example command line:
-
- lix --verify=replays/path/to/dir --coverage
-
-Fix #113: Shorter key names with unicode symbols. In particular, keys on
-the numeric pad have a nice symbol that looks like the keypad.
-
-Fix #120: Topology updates correct equation, not only the horizontal equation
-
-Some assertions to debug issue #121 on MacOS.
-
-0.6.5
------
-
-2016-07-03
-
-Fix #103: When you re-enter the window, the ingame mouse starts moving from
-where the hardware mouse entered the window.
-
-Fix #108: Adventure Playground displays again in the preview and is playable.
-
-The replay browser has two buttons to start replays: One replays against the
-included level, one replays against the pointed-to level.
-
-Updated the lemforum community pack to geoo89/lixlfpack commit 2a91852.
-This reorders some levels. Two levels have been replaced entirely:
-Out: Three Days of the Condor, Absolute Zero
-In: Lixes in Motion, Eye of the Needle
-
-Afterwards, the lemforum pack got fewer initial lix in the lower three ratings
-Simple, Quirky, Cunning. Proxima has played all these levels, tested for
-solvability under a fixed spawn interval, and recommended lower initial lix
-counts that keep the level idea fully intact. We have removed about 2,000 lix.
-
-0.6.4
------
-
-2016-06-27
-
-Editor increases the level's $BUILT when saving a changed level.
-
-Fix #106: With mixed dirs and files, picker couldn't scroll to the last file.
-Fix #107: Prefer queuing builders to spamming, then you couldn't queue at all.
-
-New user option to unpause on skill assignments.
-
-Tutorial levels are solvable again, and you can't die in them as easily.
-
-0.6.3
------
-
-2016-06-22
-
-Fix #97: The game advances physics on assignment and unpauses on nuking.
-
-The browsers' breadcrumbs are wider and less tall. I don't display the current
-directory in the browser's title bar anymore. The picker shows 20 files
-instead of 19, this fixes #96.
-
-The preview draws a dark border around the level instead of the menu color.
-Under the preview, I write the level name.
-
-0.6.2
------
-
-2016-06-20
-
-Multiple hotkeys can be bound to the same function. By default, the editor
-moves tiles both with the arrow keys and with ESDF. Pause is bound to [Space]
-and to the middle mouse button.
-
-Editor grouping, ungrouping, saving, and save-as can be hotkeyed.
-
-0.6.1
------
-
-2016-06-18
-
-Editor displays the trigger area of all gadgets.
-
-0.6.0
------
-
-2016-06-15
-
-Physics: Imploder mask is symmetric. It's wider by 1 lo-res pixel to the right.
-
-You can drag the scrollbar thumb with the left mouse button.
-
-0.5.0
------
-
-2016-06-14
-
-Physics: Groups with steel have correct distribution of steel, earth, air.
-
-I highlight on the map the lix under the mouse cursor who would get assigned.
-
-The Editor allows to ungroup tiles.
-
-I show hatch spawn direction, describe hovered tiles, and use a more
-peaceful color flow for hovers and selections. Save-as forbids special chars.
-
-The game shows the constant spawn interval in the panel. I don't know
-whether I want to keep this and make an icon for it, or whether people
-don't need it later.
-
-0.4.4
------
-
-2016-06-06
-
-Bugfixes for these github issues:
-#67: Z-ordering several tiles
-#85: Hover sorting guarantees group's z-order
-#81: Crash on nonexistant base directory of a browser
-Button hotkeys are drawn on top of buttons, not behind main text.
-
-I now try to paint the screen black immediately on display creation.
-I don't want a white flash before showing the main menu. I have to test at
-Icho's Windows machine whether this prevents the white flash.
-
-0.4.3
------
-
-2016-06-02
-
-Loading levels auto-converts from no-overwrite to tile groups.
-
-Even in a release build, an on-the-fly conversion takes 5.5 seconds for
-A Day In Lixtown and 1.2 seconds for Heed the Traffic Light. Lixtown has 2000
-pieces and does fancy tricks with no-overwrite. I have to decide whether
-the performance is acceptable, whether to improve the algorithm, or whether
-to save converted levels to file.
-
-Merged a tree tile by Amanda to prevent getting stuck in its leaves.
-
-Editor remembers the recently-loaded or recently-saved file, similar to how
-the game remembers the recently-played level. The singleplayer browser
-shows the most recent file.
-
-Don't show elapsed time in singleplayer. It looks like a time limit.
-Does anyone want the elapsed time shown nonetheless?
-
-0.4.2
------
-
-2016-06-01
-
-Level reads and writes tile groups.
-
-The game renders groups with correct air parts inside.
-I haven't tested steel, I expect bugs when grouping steel.
-
-There is no conversion yet from no-overwrite to groups.
-
-0.4.1
------
-
-2016-05-25
-
-Game and editor draw a thin line at the torus seam. This is optional.
-
-The automatic screen start snaps to the level boundary if it's close to it
-and the level has no wrapping in that direction.
-
-Started tile grouping using Nepster's algorithm. Thanks for the straightforward
-idea in O(n^2), with tips on how to optimize to O(n log n) if wanted!
-
-0.4.0
------
-
-2016-05-23
-
-Physics change: Climbers couldn't ascend into 1-pixel high gaps with an
-overhanging ceiling.
-
-Fix #73: Tile selection boxes were offset. Reason: A5 rotates tiles clockwise.
-Many parts of the D Lix source assumed a counter-clockwise rotation.
-
-0.3.7
------
-
-2016-05-21
-
-The editor's save-as dialog is implemented. It doesn't preview the old level,
-but asks before overwriting.
-
-0.3.6
------
-
-2016-05-18
-
-Editor: new file, quit, and save to existing file are implemented. The editor
-asks whether you would like to save when you would lose data on new or quit.
-
-Fixed an editor crash on querying terrain on tiles with negative coordinates.
-
-The editor saves to ./levels/editor-emergency-save.txt when you click save-as,
-because save-as is not implemented yet. The editor saves to that file too
-on assertion fails, as a safeguard.
-
-0.3.5
------
-
-2016-05-15
-
-geoo has designed awesome glyphs, representing mouse wheel and buttons.
-The infinity symbol is now a big lemniscate. I've included the new glyphs
-in the default font. Thank you, geoo!
-
-Editor has a window to set the main level constants, and another to set
-the level topology. Non-browser-opening editor buttons have words, not icons.
-This addresses issue #74 partially.
-
-The editor can only set the English level title. You can set the intended
-number of players per level, but that field has no effect anywhere yet.
-
-0.3.4
------
-
-2016-05-08
-
-Right mouse button, middle mouse button, wheel up, wheel down are all available
-keys to map in the hotkey dialog. There are two keys to map for zoom now.
-Default value for zoom-in is wheel-up, default for zoom-out is wheel-down.
-
-Removed the boolean options that became superfluous after allowing mouse
-buttons as hotkey bindings. Set the edge scroll speed to 0 to disable it.
-
-Pause accepts two keybindings. I'd like multiple keys for any function.
-
-Singleplayer browser shows author and save requirement, allows to delete level.
-
-Culled variable spawn interval UI and level variables.
-
-Fixed wrong phymap querying: clamping coordinates on a torus must wrap them.
-
-Fixed a crash, the game tried to dispose a null state after long play.
-
-0.3.3
------
-
-2016-05-03
-
-Fix #42: Zoom increases at level start until at least 70 % of map screen
-space is filled. This makes for dynamic zoom per level, per resolution.
-
-Fix #31: I drew air where solid after batch-framestepping, when lots of
-drawing and removing happened in short succession. geoo has suggested
-the new algorithm that's both simpler and bug-free. Thanks!
-
-0.3.2
------
-
-2016-05-03
-
-Editor skill window: Clicking the label "Fling-exploder" affects checkbox,
-too. Buttons resized and captioned according to Proxima's suggestions.
-
-0.3.1
------
-
-2016-05-01
-
-File picker scrolls with the mouse wheel.
-
-Replay browser can delete files and lists player names next to files.
-
-The editor keeps the manual or automatic screen start from old levels,
-even though it cannot change the screen start yet.
-
-Fix #66: Boolean options react to mouse clicks on their label, not only
-to mouse clicks on the checkbox itself.
-
-0.3.0
------
-
-2016-04-27
-
-Physics change: We don't check for physics near the eye, which would have
-depended on the spritesheet. Instead we check at (foot) + (0, y), where
-y is 0, -4, -8, and -12. This check is independent from the current lix job.
-Rationale: http://www.lemmingsforums.net/index.php?topic=2678
-
-0.2.49
-------
-
-2016-04-27
-
-Level and replay browsers select adjacent directories and files by hotkey.
-
-Tile browsers in the editor remember the last-chosen tile's directory,
-and use the screen real estate better with 6 x 10 items at a time.
-
-0.2.48
-------
-
-Fix: Singleplayer results overwrite outdated level results.
-
-Editor rotates and mirrors terrain pieces, and toggles the dark flag.
-
-When you enter a directory in a browser and the picker highlights the
-recent file, this file is scrolled into view.
-
-0.2.47
-------
-
-2016-04-20
-
-Fix #65: Sign error when computing the offset for steel checks. The error
-shifted steel checks too far into the ground and to the right.
-
-Backwards framestepping is accelerated by 1/lag, where the lag is measured
-as ratio (FPS / ideal number of FPS). Slight difference in memory management
-for savestates, but no manual management yet.
-
-0.2.46
-------
-
-2016-04-20
-
-Fix regression #64: Options menu didn't offer choice of language.
-
-Fix minor bug #62: Profiling via version statements, not empty structs that
-would make a call to an allocating string-formatter.
-
-Fixed a crash on opening non-UTF8 files in the Lix file format reader.
-
-Editor allows to clone and z-order-rearrange tiles. There is a bug left behind
-when reordering many pieces at once: Sometimes, they reorder among each other
-only, producing no change after the entire reordering command.
-
-Sound effects are loaded lazily, that boosts the program start.
-
-0.2.45
-------
-
-2016-03-11
-
-Editor UI allows to set the grid by mouse and hotkeys, as in C++/A4 Lix.
-
-Editor moves tiles according to the grid. The clicked-and-dragged tile snaps
-to the grid. All other selected tiles move along with it, without snapping to
-grid themselves. When moving by keyboard, nothing snaps to grid. The behavior
-in this paragraph is identical to C++/A4 Lix.
-
-Editor saves on exiting to ./levels/editor-test.txt.
-
-0.2.44
-------
-
-2016-03-30
-
-Browsers offer breadcrumb navigation to pick directories.
-We're missing some central features in these browsers now:
-https://github.com/SimonN/LixD/issues/63
-
-Fixed imports for dmd 2.071.
-
-0.2.43
-------
-
-2016-03-26
-
-Editor offers the window to set skills.
-
-The chosen ploder is loaded and offered during play. Levels remember the
-chosen ploder, even if 0 ploders are available. The ploder shown on the
-panel is the nuke skill.
-
-Bug #4 (game ignores tiles that don't fit into VRAM) doesn't crash anymore,
-but ignores the tile instead. The game shows the missing-image error.
-
-0.2.42
-------
-
-2016-03-23
-
-Editor adds pieces selected from the tile browser. Editor moves tiles by
-keyboard and mouse. No snapping to grid yet.
-
-Fixed #57: The builder gets closer to a vertical wall before stopping.
-Fixed #60: The editor selects newly-added tiles immediately.
-Fix: Editor-added tiles are clamped to the map, they don't spawn off-bounds.
-Fix: The file listing ignores files with pre-extension X, like _order.X.txt.
-
-Rewrote many functions everywhere to take one Point instead of 2 ints.
-I have to test for performance regressions.
-
-0.2.41
-------
-
-2016-03-18
-
-Singleplayer browser, replay browser, and editor terrain browser all use
-the new file picker.
-
-Bugs:
-* Keyboard controls for file up/down are missing. Regression due to rewrite.
-* Scrollbar doesn't react to mouse wheel, or to clicks on the track or car.
-* Replay browser formats the button like the level browser. There is a
- child class for replay button formatting, which I am not using yet.
-
-Misdesign: Picker should control UpOneDirButton. See comment in uponedir.d.
-
-0.2.40
-------
-
-2016-03-13
-
-Editor has a terrain browser that can only exit. No browsing for terrain yet.
-There's a scrollbar in that terrain browser. The buttons at its end can be
-clicked and move the car. The car doesn't do anything when dragged or pulled.
-
-0.2.39
-------
-
-Fixed bug #51: Basher always left relics after his first swing.
-
-0.2.38
-------
-
-Editor moves tiles by dragging with the mouse. No keyboard movement yet.
-
-0.2.37
-------
-
-2016-03-06
-
-Editor can select all tiles.
-
-Editor can add and remove tiles to/from the existing selection.
-
-0.2.36
-------
-
-2016-03-05
-
-Fixed the bug described in 0.2.35: Frame-spanning goes across or not across
-the torus seam, according to mouse position on the screen. I like the results
-in many cases so far. Anything more would require tracking the map scrolling.
-
-Editor has a button for frame-dragging. The button's on-ness and its hotkey
-are handled in a nonstandard way, which we want.
-
-Editor has a zoom button toggling between 1x, 2x, 4x zoom, like the game.
-We should brainstorm about the zoom UI, and about default zoom.
-
-0.2.35
-------
-
-2016-03-05
-
-Editor frame dragging implemented. It selects the correct pieces on a torus.
-
-Bug: It doesn't yet span the frame in the correct direction. Right now,
-it always spans so that the torus seam is not included.
-
-0.2.34
-------
-
-2016-03-03
-
-Top edge kills unconditionally.
-
-The editor counts and annotates hatches and exits.
-
-0.2.33
-------
-
-2016-03-01
-
-I run D's garbage collection whenever there are obsolete game states during
-play. Profiling result: My 9-year-old laptop takes 3 ms per collection.
-At 16.6 ms per frame, this slows down the back-by-1-second command.
-My goal is to attack this bug: https://github.com/SimonN/LixD/issues/38
-Let's see whether anybody experiences this bug #38 still, then think again.
-
-0.2.32
-------
-
-2016-03-01
-
-Application starts much faster. All bitmap-loading and recoloring is lazy.
-Only eye matrix generation is eagerly done at application start.
-
-0.2.31
-------
-
-2016-02-28
-
-Implemented editor delete button.
-
-0.2.30
-------
-
-2016-02-27
-
-Fix #52: Mose over a transparent terrain tile, gadget behind it:
-This selects the gadget now. Before, it selected the terrain tile.
-
-0.2.29
-------
-
-2016-02-25
-
-Editor selects pieces on mouse click. No moving yet.
-
-Game starts slightly faster, because I'm not searching through all internal
-graphics of all resolutions. Most internal graphics are loaded lazily.
-Spritesheet/player-dependent GUI elements are still eagerly loaded, so there
-is opportunity for optimization here.
-
-0.2.28
-------
-
-2016-02-24
-
-Fix: Replays were saved with a null $BUILT instead of the level's $BUILT.
-
-Editor mouse hovering: Solid pixels are more important than the selection box.
-Holding priority invert inverts the entire sequence of terrain and gadgets.
-
-Refactored the code, Filename and Date are immutable by default.
-
-0.2.27
-------
-
-2016-02-21
-
-Fix #49: Animate gadgets (most importantly, water and fire) on level start.
-
-0.2.26
-------
-
-2016-02-21
-
-Game saves level result on leaving play, or on loading an old state.
-Autoreplays are only saved on leaving the game. Should they be saved on
-reaching the end-of-game dialog already?
-
-0.2.25
-------
-
-2016-02-20
-
-The singleplayer browser shows checkmarks next to solved levels. However,
-the game doesn't save any new checkmarks on winning yet.
-
-0.2.24
-------
-
-2016-02-17
-
-The editor draws white rectangles around all mouse-hovered terrain pieces.
-Refactored TerPos and GadPos to be subclasses of AbstractPos, not structs.
-
-Fix: Editor dark terrain doesn't overwrite gadgets anymore.
-
-0.2.23
-------
-
-2016-02-16
-
-Editor renders terrain and gadgets. It uses the same scroll starting position
-as the game. I want to reintroduce the manual scroll starting position.
-
-0.2.22
-------
-
-2016-02-15
-
-Fixed #44: We sort dirs and levels according to the listing _order.X.txt.
-
-0.2.21
-------
-
-2016-02-14
-
-In singleplayer, lix start spawning 1 second after level start, not 4 seconds
-after start. The nan-nan sound is played when you start the game, or whenever
-you revert to the starting position.
-
-Fixed #48: Assertion failure of climber on torus maps.
-Fixed sprite positioning of the climber.
-
-0.2.20
-------
-
-2016-02-12
-
-The panel displays elapsed minutes and seconds since level start.
-
-Time limits or overtime haven't been introduced yet. I'm considering to
-cull singleplayer time limits from the game altogether.
-
-0.2.19
-------
-
-2016-02-11
-
-Fixed an assert fail for new users upon entering the singleplayer browser.
-
-Added a command-line switch to force true fullscreen an arbitrary resolution.
-This makes the game run for Ramond. If you have problems getting Lix to run,
-try the following, replacing 1600x900 with your possibly different resolution:
-
- lix --hardfull=1600x900
-
-0.2.18
-------
-
-2016-02-10
-
-Sped up turbo-fast-forward: I auto-savestate only every 50 frames instead of
-every 10 frames during turbo-fast-forward.
-
-0.2.17
-------
-
-2016-02-09
-
-Tiles are loaded differently, depending on whether they're terrain or gadgets.
-Terrain tiles are loaded with an extra physics map, and a white copy of
-themselves for fast dark-drawing.
-
-I don't think this speeds up the creation of the physics mask, I'm still pretty
-slow with that. This vastly speeds up the creation of the level preview image
-and the VRAM level bitmap. There is profiling by RAM/VRAM and by drawing mode
-of the tiles.
-
-Fixed an assert fail in the file listings used by the browser.
-
-Fixed #40: Misaligned image/physics for dark piece.
-I want to ask Clam before I close this issue.
-
-Culled the trampolines.
-
-0.2.16
-------
-
-2016-02-06
-
-Started the editor. It displays terrain and can be exited.
-There is much to do still with terrain handling, dark, and no-overwrite.
-
-0.2.15
-------
-
-2016-02-04
-
-Slightly simplified the keyboard code. I don't believe this fixes Nepster's
-stuck keys, but it might be worthwhile to ask Nepster nonetheless about it.
-
-0.2.14
-------
-
-2016-02-03
-
-Culled the per-level option to set a custom screen starting position.
-The game centers on the average position of all hatches. This accounts
-for arbitrary distributions of hatches on tori.
-
-0.2.13
-------
-
-2016-02-02
-
-Blocker -> walker: removed 1 frame of the anim, to mimick C++ behavior.
-There is an entire unused frame now in the blocker->walker anim now.
-
-Most things -> walker: Added a stand-still walker frame.
-
-Floater y speed should match C++ floater.
-
-0.2.12
-------
-
-2016-02-02
-
-Platformer should behave as in C++ Lix now: The first brick is 8 pixels long,
-all bricks while kneeling are 6 pixels long.
-
-0.2.11
-------
-
-2016-02-01
-
-Fixed left-facing bashers, they now ignore steel in the top 2 hi-res pixels.
-
-Floater assignments don't cancel the builder queue anymore.
-
-0.2.10
-------
-
-2016-01-31
-
-Disabled the extra console on Windows by linking with -L/subsystem:windows.
-
-Panel offers imploders.
-
-Listing the included level's name in the replay browser when the pointed-to
-level is not there. There's a bug left over for now anyway, see commit message.
-
-0.2.9
------
-
-2016-01-31
-
-Fixed 3 little bugs: Effects are correctly deleted after framestepping back.
-On deleting a replay, the browser highlights the next one correctly again.
-The file browser title bar shows the correct subdirectory on browser startup.
-
-0.2.8
------
-
-2016-01-31
-
-Implement #34: The game mimicks the level tree when saving replays.
-
-0.2.7
------
-
-2016-01-30
-
-Fix #35: Omitting drawing allowed bypassing traps.
-
-The lix eye coordinate is used to determine where trigger areas affect the
-lix. Before this fix, the eye coordinate was only updated on drawing the
-lix, becasue the fuse should be positioned there. This allowed to bypass
-traps with the head.
-
-Also refactored over 1,000 lines of game code, for a slightly better separation
-of physics model and controlling/drawing code.
-
-0.2.6
------
-
-2016-01-28
-
-Fixed crash during replay verification upon nuking.
-
-0.2.5
------
-
-2016-01-28
-
-Making shutdown much faster by not freeing any RAM or VRAM.
-This is standard for RAM, I have to read up on VRAM practises.
-
-Loading way less internal data for replay verification, speeding up the
-startup in that mode massively. We have to decide whether the spritesheet
-should affect physics. Right now, existence of frames and eye positions
-are meaningful for the physics.
-
-0.2.4
------
-
-2016-01-27
-
-Noninteractive Replay verification implemented.
-Run it from the command line, as in C++ Lix:
-bin/lix --verify=replays/solutions
-bin/lix --verify=replays/manual/myreplay.txt
-
-Fix: Don't save every possible replay into replays/network/.
-
-Refactoring: Renamed PerformedActivity to Job. Made graphic objects, lixes,
-and gadgets take a Topology on construction instead of a Torbit. This makes
-the design much more lightweight, we don't even have to generate a Map for the
-noninteractive Game.
-
-0.2.3
------
-
-2016-01-26
-
-Command-line argument `--fullscreen' forces fullscreen, no matter what the
-user settings are.
-
-The menu-OK hotkey always performs the most sensible action in the window
-during a singleplayer game: resume if it's not at the end, exit if won,
-restart if failed.
-
-Editor button in the singleplayer browser, but it doesn't do anything yet.
-
-0.2.2
------
-
-2016-01-25
-
-Fix #15: Basher always left relics. The basher mask is 2 pixels wider in D
-Lix. The relics check accounts for that now.
-
-We wanted to start the basher faster by 2 frames in C++ Lix, to make it
-more powerful. Right now, this is implemented in D Lix, because I used as
-many recommendations by geoo as I could. In light of the mask that reaches
-further by 2 pixels, we should discuss that again. The faster-starting
-basher is still OK, probably.
-
-0.2.1
------
-
-2016-01-25
-
-Implemented ask-for-username menu when no name is given. This prevents having
-no name set, and therefore being unable to save options.
-
-Covered the empty space for the spawnint buttons with the info bar for now.
-
-0.2.0
------
-
-2016-01-24
-
-This is a test release, designed to try singleplayer. Don't replace your
-existing installation of Lix with this D/A5 port yet. Keep it separate.
-
-Minim has designed several scaled-up versions of the internal graphics.
-They're visible whenever the game's resolution is at least 1.5 times as big
-as the old 640x480. Many thanks to Minim for this work!
-
-Levels and terrain graphics have been updated from C++ Lix.
-
-I'm cross-compiling to Windows from Linux now. Let me know of any problems.
-
-0.1.40
-------
-
-2016-01-23
-
-Top-left corner of map shows the floating 'R' while replaying. The FPS are
-shown on the panel right now, that's intended as a temporary solution only.
-
-Lix target info in the panel shows (RCF) for runners/climbers/floaters, and
-displays the number of bricks left for builders and platformers.
-
-Replays cancel on LMB anywhere, and on activating the nuke.
-
-Fix: With lixes returning equal priority, the closest one to the cursor is
-preferred for an assignment. Previous bug: the farthest one was preferred.
-Inverting priority doesn't invert this check, which is correct.
-
-0.1.39
-------
-
-2016-01-22
-
-Fix #32: With mouse speed different from 20, RMB-scrolling continued to
-move even after the mouse has stopped moving, as long as RMB was kept down.
-
-0.1.38
-------
-
-2016-01-22
-
-The panel info bar uses the correctly recolored garden icons. They have the
-correct shadow, according to the user's GUI color settings. (Even though, like
-all GUI parts, they aren't recolored until the next program start.)
-
-graphic.gralib has been refactored into a package for better readability.
-
-0.1.37
-------
-
-2016-01-21
-
-The replay browser can delete replays. It asks for confirmation with a message
-box and moves the highlighting to the next replay.
-
-During the game, the panel's info bar shows colored icons with numbers,
-instead of the previously text-only lix counts.
-
-0.1.36
-------
-
-2016-01-19
-
-Faster drawing code, by holding bitmaps. Empty skills don't show their hotkey.
-Fixed an assert fail on framestepping backwards across Phybit.needCol.
-
-0.1.35
-------
-
-2016-01-18
-
-Hatches marked as rotated in the level format spawn lemmings facing left.
-
-0.1.34
-------
-
-2016-01-18
-
-Replays are saved automatically on quitting a solved singleplayer level.
-This still holds for exiting the game with Shift+Esc immediately.
-No replay tree yet; replays are saved as manual/*.txt or solved/*.txt.
-
-0.1.33
-------
-
-2016-01-18
-
-Fix #12: Builders, platformers and cubers won't overwrite existing terrain.
-Fix #22: Terrain removers don't draw over steel pixels.
-
-Neither fix has affected physics. The remover visuals were particularly
-urgent, because they made steel transparent, even though they didn't remove
-the steel.
-
-These fixes are implemented with iteration over the lookup map, then issuing
-many copies of 1x1 rectangles to the graphics card. This is likely slower
-than hardware shaders that examine the existing pixel. It's faster than
-making lots of 1x1 sub-bitmaps on the heap, then destroying these again.
-
-(Miner hits steel on my 9.5-year-old laptop: 30 ms for 1x1 sub-bitmaps, 7 ms
-for 1x1 rectangles. Miner digging only through non-steel earth is much faster,
-about 0.1 ms, and therefore uses the previously existing drawing code.)
-
-The cuber sprite is transparent where it has been drawn to land already.
-Now, the player can guess much better when which pixels are added.
-I've added a few sparky lines to the cuber's last few frames.
-
-I have removed the tumbler assert. See comment on issue #21:
-https://github.com/SimonN/LixD/issues/21
-
-0.1.32
-------
-
-2016-01-17
-
-Fix #28: Empty skills are now re-selected if replenished after state loading.
-Fix #29: Drawing explosions properly now.
-
-I haven't tested implosions. They should be drawn behind the terrain anyway,
-or get a completely new animation.
-
-0.1.31
-------
-
-2016-01-16
-
-Basher ignores top two rows of his 18 rows for steel.
-
-Partial fix of #22: basher/miner cancels on hitting steel, but still takes
-out some of the graphics. Physics are correct.
-
-After class Game finishes, the correct browser is loaded, either singleplayer
-or replay. Browsers exit on RMB. No option to auto-save singleplayer replays
-that fail the level.
-
-0.1.30
-------
-
-2016-01-15
-
-Replay browser implemented. Loads replays, renders the correct level in the
-preview. Program main loop calls game with the correct level and replay file,
-the game plays back the correct replay. After viewing the replay, the program
-goes back to the singleplayer browser, not to the replay browser.
-
-Framestepping backwards is more performant over long distances, it omits
-unnecessary intermediate savestates that would be discarded anyway. More ideas:
-https://github.com/SimonN/LixD/issues/26
-
-Slightly better text shadow positioning. Removed demo and benchmark code.
-
-0.1.29
-------
-
-2016-01-12
-
-Level preview renders and scales the level correctly, instead of displaying
-only a colorful rectangle.
-
-User savestating is implemented including saving/loading, but it doesn't
-preserve effects, see issue #23.
-
-Fixed bug #13: Framestepping buttons execute continuously on holding RMB.
-
-0.1.28
-------
-
-Implemented the nuke.
-
-Implemented replay arrows upon skill assignments, which are correctly
-played back during framestepping and after restarting the level.
-
-Explosions, flying pixels, and flying terrain remover equipment isn't in yet.
-
-0.1.27
-------
-
-Miner implemented with geoo's anti-shock C++ code.
-
-Flingers and trampolines are implemented.
-
-0.1.26
-------
-
-2016-01-04
-
-Singleplayer browser remembers the most recently played level.
-
-Fixed bug #18: Assigning runner to a walker didn't make her run immediately.
-Fixed bug #20: Assigning exploder to builder crashed the game due to
-inability to return skills.
-
-Fixed climber horizontal alignment with the wall, the alignment was set
-correctly previously, but never reset correctly.
-
-Exploder with flinging is now implemented similar to how it was in C++.
-It should be checked for accuracy, once loading replays from disk is
-implemented.
-
-Fixed a crash on becoming tumbler. There is still an elusive assert fail
-triggerable in the tumbler function. That should be debugged once replays
-can be loaded from disk.
-
-0.1.25
-------
-
-2016-01-03
-
-Fixed bug #19: Tumbler selected only frames 2 or 3. Now, it selects its frame
-by angle of flight now, while not advancing too far in any single frame.
-https://github.com/SimonN/LixD/issues/19
-
-0.1.24
-------
-
-2016-01-02
-
-Fixed bug #10: Map drawing: Target area too large.
-https://github.com/SimonN/LixD/issues/10
-
-0.1.23
-------
-
-2016-01-01
-
-Options menu complete. Some options don't do anything yet, but are loaded/saved
-correctly nonetheless. Removed fullscreen resolution option. Switching users
-works. Switching Language works.
-
-I found the first bug of 2016 in the D compiler. ^_^
-
-0.1.22
-------
-
-2015-12-31
-
-Implemented GUI elements: Text entry, number picker, hotkey picker.
-In the options menu, implemented 2/3 hotkey pages, and the graphics page.
-Each hotkeyed button displays its hotkey in the bottom-right-hand corner.
-
-Added 0.5f to the djvuM offset (the main font's vertical position), now
-it looks great on 640x480, 800x600, 1280x1024, and 1400x1050.
-
-0.1.21
-------
-
-2015-12-29
-
-Implemented goals (exits), triggered traps, and dying outside of the level.
-Implemented the Esc-during-level menu and the end-of-level menu. No browser
-to save/view replays yet. Begun implementing the options menu.
-
-0.1.17
-------
-
-2015-12-17
-
-Bugfix: Blockers are now released upon walker assignment.
-
-0.1.16
-------
-
-2015-12-16
-
-All skills are implemented fully or mostly each, except for the miner,
-which is missing completely still. Effects, like arrows, flying dig hammers,
-and explosions, are missing.
-
-Skills behave mostly identical to C++ Lix. Some extremely arcane behavioral
-bugs were fixed while porting; report if things behave obviously strangely.
-Probably also report if things behave differently.
-
-Known differences: Exploder crater is 1 pixel smaller, diameter of 46 pixels
-instead of 47 pixels, but should be completely symmetrical now. Blocker
-doesn't get released on walker assignment; this fixed only in 0.1.17.
-
-0.1.12
-------
-
-2015-11-30
-
-Implemented builder and digger. The builder still draws on top of existing
-land, which is merely a visual bug, not a physics bug. The digger makes
-steel transparent, but the steel and terrain data inside the steel remains
-present for physics; again only a visual bug.
-
-0.1.5
------
-
-2015-11-19
-
-Map detects mouse on the land properly, at least with zoom == 1. Priority
-computation has been ported over. You can click lix and hear the assign
-sound being played if the assignment were legal. Assignments aren't in yet.
-
-0.1.4
------
-
-2015-11-15
-
-Walker, Faller and Ascender are implemented and should perform like their
-C++ versions. I would like to keep close to the C++ behavior for now.
-Savestates have been implemented for framestepping. Skill assignments
-are not possible yet.
-
-0.1.2
------
-
-2015-10-30
-
-Started implementing Lix skills. There will likely be no problem with them
-scanning the terrain from the lookupmap. I'm anxious about them writing to
-the terrain later on, when the more interesting skills get added.
-
-0.1.0
------
-
-2015-08-24
-
-First Windows build released on Lemmings Forums as a smoke test. It runs
-well for most people. Drawing has bad performance still with about 3,500
-animated gadgets, but is much better with about 200 than in the previous
-months.
-
-0.0.0
------
-
-2015-02-28
-
-Started development by porting the fundamental Lix graphic classes from
-Allegro 4.4 to Allegro 5 with the D Programming Language.
-
-C++ Lix
--------
-
-2006 to 2016
+Version history
+===============
+
+0.10.0
+------
+
+2022-10-23
+
+The server allows 0.9 and 0.10 in separate rooms. Decide with your friends
+whether and when to update as a group to Lix 0.10.
+
+Both 0.9 and 0.10 players can chat with each other in the server's lobby. The
+0.10 client will see both 0.9 and 0.10 rooms, and print a console error when
+you attempt to join a 0.9 room. Since 0.9 has no such functionality, the
+server will not show 0.10 rooms to 0.9 players at all; instead, the server
+will write a chat message to those 0.9 players in the lobby if any 0.10 rooms
+exist, suggesting to update to 0.10.
+
+Renamed the server executable from server to lixserv.
+
+Added handicap for multiplayer games. If you're too strong for your group,
+consider to click the handicap icon with the unbalanced scales in the game
+room. You can choose fewer initial lix, fewer skills, a spawn delay, fewer
+points per lix saved, or any combination of these four handicap types.
+
+Fix #265: Allow simultaneous exiting. When you're playing a race map and reach
+the exit at the same time as one or more different teams, all teams will score.
+Before, only the red team would score.
+
+Fix #311: Top and bottom of maps are hollow. Terrain checks beyond those edges
+will not behave as if the edge row's terrain extended infinitely. Now, only the
+left and right edges of the level extend terrain in this way, not all four
+edges. Staircases built to the deadly ceiling will kill the builder as before,
+but now all following walkers will also leave the level and die.
+
+Adapted the singleplayer levels Cry for Me, Baywatch, and Walking in a Winter
+Wonderland to work well with the hollow ceiling.
+
+Allow ability assignments (climber, floater, runner) to blockers. For now,
+these assignments have low priority; we can raise the priority after
+playtesting as a UI change without changing physics.
+
+Fix blocker dancing: Now, walkers (and other non-blockers) don't move when
+they're both in a left-forcing blocker field and in a (different blocker's)
+right-forcing blocker field. Before, walkers would move sideways through the
+fields, turning each phyu. This looked like dancing.
+
+Fix #266: Grant batters extra backwards range against blockers. We keep
+forward batter range vs. blockers as in 0.9, even though it's a lot of forward
+range so the batter sprite needn't overlap the blocker to still bat the
+blocker. Nobody has complained so far, and it's nice to bat blockers without
+awkward precision. We keep the batter range against other activities.
+
+Half-fixed #397: The faller's distance in pixels fallen will not overflow
+the 32-bit int anymore. I didn't fix the overflow for physics updates yet, you
+can still play longer than what fits into the 32-bit int that counts physics
+updates (4.5 years at normal speed, or 46 days at turbo-fast-forward).
+
+Moved the frogs' trigger areas downward by 1 pixel, so that the coordinates
+are divisble by 2. No levels broke from this, not even Las Ranas Hermanas.
+
+Fix #410: Removed spike at top of both matt/beach/04 tiles (day and night).
+Before, both tiles had identical masks; now, both tiles still have identical
+masks, although the mask is different than before. There is no odd prong
+at the top right of those tiles anymore.
+
+Fix #414: Fixed transparency/air pixels in earth.png from the Oriental set.
+The top row of pixels was not fully transparent (that would be 0 % alpha);
+it had an estimated 5 % alpha. Lix treats that as solid. Walkers were walking
+over solid, nearly invisible pixels. Now, earth.png has full transparency
+above the earth. No levels broke from this change.
+
+Fixed #322: Don't wrap during tile group construction: Now, when you load a
+tile group on a small torus map, Lix will construct the group without wrongly
+wrapping the group's elements before grouping. Only when Lix has fully
+constructed the group tile, Lix will insert the group into the torus level.
+
+
+
+0.9.48
+------
+
+2022-10-15
+
+Don't cap level search results at 18, but show all results. Downside: Now, I
+expect the search to be slow when you enter the first one-two letters. We'll
+see what is worse and can still improve the search in the future.
+
+Always return to lobby after playing multiplayer with a single tribe, even
+when that tribe hasn't fulfilled the hidden save requirement from
+singleplayer. Lix has never properly supported 1-tribe multiplayer, but Lix
+has never explicitly disallowed it either.
+
+The connection picker in the networking menu will now connect when you press
+the generic Okay hotkey, in addition to the networking menu hotkey.
+
+Fixed option dialog's help text for the username option: All translations
+explained ./data/user/yourname.txt, which is out of use since 2017. Now,
+all translations explain ./user/options.sdl, the correct save file.
+
+Added FreeDesktop resources in ./data/desktop/ by Matthias Mailänder. Thanks!
+I don't know yet where to put such resources (that aren't needed directly by
+Lix while Lix is running) in the future; ./data/ is catch-all for now.
+
+
+0.9.47
+------
+
+2022-08-11
+
+Add Swedish translation of the Lix user interface by Sanchez. Thanks!
+
+Fix #387: Update skill panel on tweak. Now, after shifting a skill assignment
+forward or backward by a single frame in the replay tweaker, the skill panel
+updates all skill buttons' counts accordingly. This matters when some skills
+assignments have become illegal in the now-edited replay.
+
+
+
+0.9.46
+------
+
+2022-06-25
+
+Added geoo's new multiplayer maps, including the two asymmetric maps
+Uphill Battle and Ivory Tower. Updated some of geoo's maps:
+Fixed the drop straight into exit pit in Rescue Ranger Trolls.
+Added block to default version of Ghetto Party. Minor other changes.
+
+Added Kingshadow's new multiplayer levels. Updated Kingshadow's levels, e.g.,
+added a missing trap to Straight & Curved 4p.
+
+Prevent infinite fallers at the sides of Flopsy's Rescue Plan 5p by
+narrowing the map horizontally to the existing terrain.
+
+Renamed my old 2p map Rescue Rangers to Fry-Day to avoid a name collision with
+the popular maps Rescue Ranger Trolls and Rescue Rangers Double Team.
+
+Fix #434: Always topology-wrap newly inserted pieces in the editor to avoid
+running into some strict assertions in a debug build. There should have been
+no bug here in release builds. Improved some assertion texts.
+
+
+
+0.9.45
+------
+
+2022-05-21
+
+Added many multiplayer levels by Flopsy, including Krypton Factor race.
+
+Added multiplayer levels by Kingshadow: Straight & Curved,
+Marble Puzzle League, Spiral Spyfall, The Ascending Lix Scenario,
+Tricky Breakthrough.
+
+Added tags ($TAG lines in levels) to several maps by Flopsy.
+
+Fix lagging client in a 10-hour netgame. This was an esoteric bug that never
+surfaced in normal usage. When the same networking game (not netplay session
+or server run, but really individual game; what happens after you click
+"ready" in the lobby) ran for over 10 hours, the client would stop
+updating at the normal speed of 15 physics updates per second, and instead run
+at 10 frames per second.
+
+Make Lix compile with the newly released DMD 2.100.0.
+
+Mention FreeGameDev IRC channel #lix in the main readme. QuakeNet #lix
+is still the development channel. I still recommend QuakeNet #lix to find
+players, with FreeGameDev #lix as an alternative.
+
+
+
+0.9.44
+------
+
+2022-03-03
+
+Fix a memory-corrupting bug when sending chat messages.
+I introduced this bug in 0.9.43.
+
+Fix #432: Don't resave watched multiplayer replays. The bug was: After the
+replay, we entered the end-of-singleplayer dialog, and this dialog always
+re-saved the watched replay as a new multiplayer replay. Now, we directly
+return to the replay browser. The end-of-singleplayer dialog doesn't appear
+and doesn't save a duplicate.
+
+
+
+0.9.43
+------
+
+2022-03-29
+
+Fix server-side permutation bug: In 0.9.42, the server re-rolled the
+permutation of starting points for every player. This desynched the maps --
+unless you were only playing 2-player on perfectly symmetrical maps and never
+used directional force.
+
+Don't send up to 300 nullbytes on short chat packets, send only the necessary
+bytes. Keep max chat length at 300 UTF-8 code units.
+
+In the lobby, sort the list of players. First criterion: Players sort higher
+than observers. Second criterion: Red sorts higher than orange, yellow, ...
+Third criterion: Within each color, sort by player name. Ready/unready doesn't
+affect sorting. It's easier now to see which/how many colors are in use, but
+I'll leave open github issue #407: Color buttons in lobby, show current usage.
+
+Disable the expensive level-drawing unittest that also didn't clean up
+its file in ./export/.
+
+macOS: Rely on pkg-config according to Allegro's documentation here:
+https://github.com/liballeg/allegro5/blob/master/README_pkgconfig.txt
+Before, on macOS ARM64, ld didn't find the Allegro libs even with pkg-confic
+installed; see github issue #430.
+
+Remove obsolete build documentation ./doc/build/allegro5.txt and
+cross-reference more clearly between other files in ./doc/build/.
+
+
+
+0.9.42
+------
+
+2022-02-25
+
+Don't focus the IP address entry field in the lobby when you select "connect
+to somebody else". The focusing led to a bug that is now fixed: The field
+would even be unhidden and focused whenever the lobby window reappeared after
+a game, when you were already connected and in a room.
+
+Alleviated enet versioning mismatch: derelict-enet offers D bindings only for
+enet 1.3.15, but the binaries of enet 1.3.16 or the current enet 1.3.17 have
+differently-sized struct ENetPeer. Now, the Lix server computes the struct
+size at runtime, allowing to run with all enet binaries >= 1.3.13.
+
+Fixed a theoretically possible, although unlikely, memory leak in networking.
+
+Fixed a linker warning about max!(int, int). Now, Lix's code itself generates
+zero warnings again.
+
+Refactored the server-side networking code. Rooms carry their own logic. This
+will help in the future to support version restrictions per room.
+
+Fixed DMD 64-bit build on all operating systems by avoiding obscure usercode
+that crashes DMD.
+
+Linux build notes: Added workaround for LDC running out of stack space. You
+can raise the stack size in the current shell with: ulimit -s 16384
+
+Windows 32-bit build notes: Added DLL download for LDC-compatible 32-bit
+libraries.
+
+Removed note from April 2020 in the readme about compilers before LDC 1.21;
+compilers that old aren't prevalent anymore.
+
+
+
+0.9.41
+------
+
+2022-01-06
+
+Support tags in level files to help organize the multiplayer levels. Levels
+can contain zero or more tags, one per line. Edit tags with a text editor; we
+can work towards better editing support in Lix itself in the future. Example:
+$TAG mytag
+
+The editor loads and saves tags, but doesn't yet display them anywhere and
+doesn't offer to edit them. The level browsers don't print tags anywhere
+either yet.
+
+The level search (in the singleplayer or multiplayer browser) will find
+tags, but you have to enter the exact tag completely. Half-words that
+appear inside tags do not find that tag. (I'm not yet sure if this behavior
+is best; we can change it.)
+
+
+
+0.9.40
+------
+
+2021-12-13
+
+Added configurable hotkeys to play next levels from the end-of-singleplayer
+screen. Default is F1 to replay the same level, Space to play the next level,
+F to play the next unsolved level. There is no default hotkey to save the
+replay manually; you can configure it.
+
+Hotkey reminders on buttons are printed in slightly darker text. They're
+still brighter than the button itself, but darker than the main button text.
+
+Fix #417: The editor shows all teams per gadget. Example: 4 players A, B, C, D
+and the map has 2 exits. Before 0.9.40, the editor printed on the exits: A, B.
+Now, the editor print on the exits the outcome of distributing the 4 players
+round-robin to the exits: AC, BD.
+
+Clarify tile group names in the documentation doc/formats/level.txt: Groups
+can have any name, not necessarily only a number. Since I don't have support
+in the program for copying tile groups between levels, you can at least rename
+the groups in one level, e.g, by search-and-replace, then copy-paste them into
+the second level, and have no name clashes.
+
+Fixed exits order in Tunnel of Love 6p. There were 7 exits in a 6-player map,
+leading to apparent removal of a necessary exit in play. Now it has 6 exits.
+
+Added new multiplayer maps by Flopsy: The Lix and the Saboteurs 4p, 6p, 8p.
+
+Clarify documentation on tile groups in doc/format/level.txt: Tile groups
+can have any names. When you copy tile groups by hand between levels, you
+can first rename them with text replacement.
+
+Allow warnings when building Lix. This circumvents a warning in Phobos that
+would otherwise abort the build: Duplicate symbol for max!(int, int).max,
+_D3std9algorithm10comparison__T3maxTiTiZQjFNaNbNiNfiiZi.
+
+
+
+0.9.39
+------
+
+2021-10-12
+
+Added a dedicated end-of-singleplayer screen to show stats of the finished
+attempt, to offer the immediate next level, and to offer the next unsolved
+level in case the player has already solved the immediate next level.
+
+Darkened the labels "by" and "Goal:" in front of level nameplates in
+the browser and in the end-of-level screen. They're now darker than the
+normal text color. Title, author and goal stand out better in their normal
+text color now.
+
+Re-added 3 levels -- Fill the Floor, Interval Training, Chaos Theory --
+to single/clam/Outtakes. Fill the Floor and Interval Training originally
+needed variable spawn intervals during play; now, they employ floaters and
+runners at fixed spawn intervals. Chaos Theory originally needed the nuke
+to solve; now, it employs manually assigned exploders to fling.
+
+Updated the Lix source code to comply with the future meaning of the "in"
+keyword. Updated Lix for package optional 1.3.0 instead of 0.6.3.
+
+
+
+0.9.38
+------
+
+2021-06-27
+
+Windowed mode at 1280x720 is now the default on running Lix for the very first
+time. Before, the default was software fullscreen a.k.a. fullscreen window.
+
+Smaller widescreen resolutions such at 1280x720 that would barely fail to pick
+2x for the skill panel icons (instead of the tiny 1x) will get slightly higher
+panel to accomodate the better-looking 2x skill icons.
+
+Adjusted text vertical offset to vertically center text on buttons better at
+1280x720. 1280x800 is still okay, text is now slightly too high here. The text
+positioning is already full of hacks and compromises, anything better either
+needs more hacks or a clean do-over. I feel like a 90's website designer.
+
+The main menu preserves the background's aspect ratio. To fill a screen that
+is not 4:3, it crops the background's sides.
+
+Revenge of the Giant Crab (2p): Added decoration, walkers 10->30, overtime
+30->90 seconds.
+
+Fix #424: Always show the level title in the lobby under the graphical preview,
+even when we return from a netgame.
+
+Fix #423: De-duplicate the multiplayer level tree, as reported by Dullstar.
+I had extra copies of Along the Fabrics of Your Clothing in the 8p directory.
+
+Updated Allegro DLLs to Allegro 5.2.7.1. You can check what Lix uses at
+runtime with Lix's command-line argument: --allgero-version
+
+I build the 32-bit Windows release with LDC, not with DMD. LDC generates
+faster-running machine code, exactly what we want for a release version. Tell
+me in case you run into any problems. (64-bit Windows release has always been
+built with LDC and it still is.)
+
+During compilation, Lix prints target architecture, OS, and compiler.
+
+Fix deprecations for DMD 2.097.0: In the source code, the "body" keyword is
+finally deprecated. Converted the entire codebase to the "do" keyword in front
+of function bodies. Added "static import std.stdio;" to access std.stdio.File
+in Lix's file.filename.base.
+
+Documentation: src/icon/readme.txt has CRLF line endings, to be readable in
+Windows Notepad. (Documentation should have CRLF endings, code should have LF
+endings.) Removed note in the 32-bit DMD Windows build notes about NuGet libs,
+DMD 32-bit doesn't play well with them.
+
+The build documentation points to new archives (lix-dlls-libs-dmd32.zip,
+lix-dlls-libs-ldc32.zip, lix-dlls-libs-win64.zip) because the .lib files
+can be incompatible between compilers.
+
+
+
+0.9.37
+------
+
+2021-05-17
+
+Added new maps from the multiplayer level contest. Thanks,
+Dominator_101, Dullstar, Flopsy, geoo, IchoTolot, WillLem!
+Includes Dominator_101's Rescue Rangers Double Team.
+
+Fixed flickering mouse cursor in the dialog that aborts a networking game.
+Before, when you hovered over a lix in the background of the dialog, the
+cursor would osciallte between open and closed. Now, the cursor stays closed
+because you can't assign to lix during the dialog.
+
+Partly address #234: When you resize the map in the editor, the editor will
+zoom out as far as it can to show you the entire map. It's still disorienting
+to resize maps with large empty areas.
+
+Fix: When you verified a directory containing 0 replays in the GUI verifier,
+the GUI verifier didn't print the line that you can now click to exit. Now
+it prints that line.
+
+In the main menu, below the version number, print name of operating system and
+32/64-bit for which the running version is built.
+
+The debugging build's user options defaults show the phyus/FPS. This only
+matters when you run a debugging build without a user option file
+user/options.sdl. The normal release build defaults to not showing phyus/FPS
+until you enable it in the options menu.
+
+In dub.json, removed obsolete architecture restriction for Windows builds
+with LDC.
+
+The Windows 64-bit build notes point to LDC's multilib release instead of to
+the pure 64-bit release. You can use LDC's installer or LDC's 7z download. The
+main difference is that LDC's lib/ dir is now called lib64/. Updated
+http://www.lixgame.com/dow/lix-dlls-libs-win64.zip with the new directory name
+lib64/ instead of lib/.
+
+Documented the level format in doc/formats/level.txt. Documented in the
+Windows build notes doc/build/win*.txt where to get Allegro binaries from
+NuGet.
+
+
+
+0.9.36
+------
+
+2021-02-24
+
+Add a whopping 66 multiplayer maps by Flopsy, including Perfect Situation.
+
+Fix #413: The new-level button in the editor will now ask for data loss
+before clearing the map and clearing the undo buffer. You can click Save,
+Discard, or Cancel.
+
+Reword the grid tooltip in the editor to clarify that it will affect future
+moves; it will have no immediate effect on the current selection.
+Before: "Grid 2: Rounds tiles' coordinates to multiples of 2."
+Now: "Grid 2: Tiles will move in steps of 2 pixels."
+Thanks to WillLem for feedback and wording.
+
+Support a hidden option (not in the options menu) that allows you to suppress
+the editor's offset of copypasted tiles; this is (16,16) by default.
+(Hidden options are hacks; for the long term, I need to visualize the copying
+in place.) For now, to suppress the offset, put in your user/options.sdl:
+editorCopiedTilesOffset 0
+
+Mouse speed on Linux defaults to 10, not 20. This produces better results
+on my machine when (fast movement frees mouse) is off, the default on Linux.
+I haven't examined the speed on other systems yet.
+
+Update the build docs in doc/build/ about minimum compiler versions.
+
+In the doc/formats/ directory, document replay pointing, terrain lines in
+levels, groups in levels.
+
+
+
+0.9.35
+------
+
+2020-12-24
+
+Undo/redo feature: The editor allows full undo and redo. Everything that is
+visible in the editor's level display is undoable: Tile moves, z-reorderings,
+additions, deletions, copying, rotations, mirroring, darkening, and changing
+the level's height, width, wrappings, and background color. Pressing the
+button to create a new level clears the undo history. Changing the level's
+name, lix, save requirement, player count, or skillset isn't undoable, but
+doesn't clear the undo history either; you can still undo earlier things.
+This undo/redo feature has been in development for 7 months.
+
+Fix #406: The camera rounds correctly to determine the mouse coordinates
+in the level. Before, with deep zoom, the mouse seemed to select things
+1 pixel too far right and 1 pixel too far down.
+
+Fix #405: The editor reinitializes its camera when the level's torus wrapping
+changes. This prevents graphical leftovers.
+
+Fixed compilation errors that appeared with DMD 2.094.2.
+
+Added build notes for a 64-bit Windows build with DMD. I encourage to use LDC
+instead of DMD for release builds, but it's good to have more options.
+
+
+
+0.9.34
+------
+
+2020-10-11
+
+lemforum: Backroute fixes for 6 levels, mainly due to Wibble's backroutes:
+Bipolar Maniac, initial lix 10->11, floaters 5->6.
+Las Ranas Hermanas, raise frogs.
+Triangle Inequality, eliminiate trivializing backroute.
+One Lix Showdown, likely functional but slightly unelegant fix.
+Some Like to Run, faster spawn interval, needs checking.
+Skulls, Sludge and Steel - possible fix, needs checking.
+(No fixes yet for Duality and Dream the impossible Dream.)
+
+Fix #404: The 64-bit Windows enet.dll crashed on hosting a networking game.
+Now, I ship a new 64-bit enet.dll, version 1.3.12, that fixes the crash
+on Windows, even though it still crashes in Wine.
+
+Support 32-bit Windows again: I publish 32-bit Windows binaries in the github
+releases and added linker flags for the 32-bit Windows DMD build in dub.json.
+
+Updated D source libraries in dub.json: derelict-enet 4.1.0 -> 4.2.0,
+taggedalgebraic 0.11.12 -> 0.11.18. This should have no visible effects.
+
+Credit minim in doc/thanks.txt for upscaling the GUI icons to 150%, 200%, 300%
+of the C++ Lix icons for 640x480 = 100%. minim worked on these icons in 2016.
+
+Remove doc/oldwish.txt, it has become outdated. The text is preserved at:
+https://www.lemmingsforums.net/index.php?topic=5132.0
+Let's file issues on github instead.
+
+
+
+0.9.33
+------
+
+2020-08-09
+
+Fix #402: With more than 18 assignments, the tweaker doesn't mispaint the
+line for current physics update over the tape recorder buttons anymore.
+
+Fix #401: The tweaker erases the lines properly when two assignments change
+order from tweaking. This fixes a mispainting of assignment lines.
+
+Fix #385: Before, with 18 or more assignments, the completely filled tweaker
+always hid the assignments that came last in the replay. Now, the tweaker
+hides assignments that are far away from the current physics update. Now, to
+view early assignments, rewind the game. To see late assignments, forward the
+game.
+
+
+
+0.9.32
+------
+
+2020-08-01
+
+Distribution: Lix has an openSUSE package for easy installation on openSUSE
+Linux, thanks to Martin H.! This is our third Linux packaging after Debian and
+Arch. Updated Lix's readme and documentation.
+
+Added Raymanni's crab trap at images/raymanni/crab.T.txt. There is an example
+level, Crab Nightmare, in levels/misc/simon/crabnightmare.txt.
+
+Added Thirteen Little Skills (version 2), a level contest entry by Proxima.
+
+Every Lix for Herself (lemforum Lovely): Quicken the spawn interval, to
+make it nicer to assign floaters to lix from the leftmost hatch.
+
+Multiplayer: Pressing twice the end-game key (Esc by default) doesn't
+exit the match, but rather opens and cancels the exit-match dialog.
+This avoids accidental exiting. To exit the match via keyboard,
+press Esc, then the key to delete files/lose data.
+
+Replay tweaker: Add an extra line for the currently-shown physics update.
+
+Remove the unnecessary translatable string optionShowButtonHotkeys. Button
+hotkeys are always shown, there is no option to disable that; this option was
+removed in Lix 0.9.30. This removes the leftover language field, so that
+data/language/*.txt doesn't warn on loading a language.
+
+Code: Fix deprecations according to DMD 2.093: Annotate ref-returning
+functions with return
+
+
+
+0.9.31
+------
+
+2020-04-23
+
+Compiling yourself: On Windows, Lix requires LDC 1.21.0, LDC or newer to
+compile out of the box. For LDC 1.20.1 or older, in Lix's dub.json file, you
+must first change all appearances of "-entry:wmainCRTStartup"
+with "-entry:mainCRTStartup".
+See doc/build/win64.txt, section "Old LDC versions" for details.
+
+Compiling yourself: Increased version of dependency sdlang-d: 0.10.4 -> 0.10.6,
+so that Lix still compiles with older versions of DMD, with the current stable
+DMD 2.091.0, and with even newer versions.
+
+Fix #394: The editor now sorts tilesets alphabetically by the shown directory,
+which is its second-level-nested directory in images/.
+Old order: forest/, occult/, abstract/, construction/, ..., because forest and
+occult were in images/amanda/ and abstract, construction were in images/geoo/.
+New order: abstract/, beach/, bricks/, carnival/, construction/, ..., forest/,
+..., occult/, ..., irrespective of the unshown author's name.
+
+Fixed a backroute in Ifo Island. The building at the bottom takes longer now.
+
+
+
+0.9.30
+------
+
+2019-12-28
+
+Fix #339: Imploder animation: Now, purple stars and vortexes circle around the
+center, then get sucked into the center. The old animation was too slow
+and subtle.
+
+Fix #388: Oblivion sound was too noisy and high-pitched. Replaced this
+sound effect with meow-like voice acting that is not shrill.
+
+lemforum: ccexplore fixed a backroute in Brickout.
+
+Always print hotkeys on buttons' lower-right corner. Removed user option that
+toggled whether hotkeys would be printed on buttons.
+
+Code: Remove body encounters from physics implementation; these happened at
+(foot - 4), (foot - 8), (foot - 12). Always check foot encounters instead.
+Before, only fire hazards checked for body encounters. Draw larger trigger
+area (in the editor) for fire to compensate. No changes to file formats. No
+changes to physics.
+
+Multiplayer maps: Added Down with Frogs by Flopsy.
+Added remake of Humps (2-player map from 2010) using Lix's earth terrain.
+Removed endless falls at the side of Honeypots.
+
+
+
+0.9.29
+------
+
+2019-07-18
+
+Observers in a networking game begin zoomed out; they see the entire map
+without any extra input.
+
+In multiplayer, there are no more black boxes on the score graph after a nuke.
+The black boxes obscured the bars of low-scoring players. The black boxes were
+a hack solution before we had the nice score board when you mouse over the
+score graph. Now, to see who nuked, mouse over the score graph.
+
+Partially fix #385: The replay tweaker displays only the first 18 plies
+(= assignments or nukes) instead of painting the 19th, 20th, ... ply over the
+remainder of the panel. In the long run, the tweaker needs a scrollbar.
+
+The tweaker explains itself with short text while it has no plies to show yet.
+This is better than presenting the tweaker as a completely blank GUI widget.
+
+Fix #327: After you save a replay manually from the replay browser, the browser
+reloads the directory and immediately shows the newly saved file.
+
+Fix: The splat ruler draws properly again when the mouse is on the map (i.e.,
+off the panel). 0.9.28 had a bug where the ruler would only draw while the
+mouse was on the panel instead of on the land.
+
+Fix: In multiplayer battles, you can zoom again, even though there is no
+GUI button to zoom. By default, zoom is bound to the mouse wheel.
+
+Fix #317: In a deeply nested directory hierarchy, the browsers' breadcrumb
+navigation condenses some higher-level directories into a single button.
+The top-level directory keeps its exclusive button at the very left.
+
+Removed a default keybinding duplication: Highlight goals and splat ruler were
+both bound to Tab. Now, only the splat ruler is bound to Tab, highlight goals
+has no default hotkey.
+
+
+
+0.9.28
+------
+
+2019-07-07
+
+Replay tweaker: A new feature for singleplayer puzzle solving. To open the
+replay tweaker, click the filmstrip button in the panel. The tweaker allows
+you to move and delete assignments deep in the replay without erasing
+any other assignments. The tweaker is not perfect yet: I'm sure we'll find
+many ways to improve it.
+
+Added 22 singleplayer levels from various level design contests. They are in
+levels/single/misc/contests/. All levels are proven solvable. Some proofs may
+be backroutes. For Key to the Sacred Kingdom, I chose its version 9, the
+miniature, but extended it with decoration from its big version 7. Adapted
+Long Division to 0.9 physics, it's fairer now and less nasty.
+
+Fix #364: If the enet DLL is missing, the networking lobby prints an error
+message to its console. Before, the game would crash from an uncaught
+exception.
+
+Code: Fix deprecations for dmd 2.087.0: Don't initialize immutable variables
+in thread-local static this(), instead initialize them in shared static this().
+Lix should now compile warning-free.
+
+
+
+0.9.27
+------
+
+2019-05-20
+
+Fixed a backroute in The Bottomless Closet, a miniature by geoo.
+
+Fix #379: The editor avoids cloning tiles outside of the map. Usually, the
+editor moves freshly-cloned tiles down-right by (16, 16). Sometimes, this
+would move tiles out of the map. New behavior: If a cloned tile would move out
+of the map, or even very close to the edge (= undercutting a safety margin of
+16 pixels), all cloned tiles are moved up-left by (16, 16) instead. If neither
+offset keeps all tiles on the map, we move down-right by (16, 16) and accept
+that some are outside. In torus directions, tiles are always on the map within
+the safety margin.
+
+Fix #380: While you change the background color in the editor's map dialog,
+the level behind the dialog previews your chosen color in real time. When
+you press OK, the color stays; when you press Cancel, the color reverts.
+
+Code: Fixed deprecations, now Lix compiles warning-free on dmd 2.086.0.
+
+Code: Removed module constructors and moved construction of user options
+into al_run_main. We hope to troubleshoot a segfault on macOS with this,
+github issue #381. Renamed DisplayTryMode to ScreenChoice.
+
+
+
+0.9.26
+------
+
+2019-04-24
+
+Added 24 singleplayer levels in misc/lemforum-outtakes. These levels were
+once part of out flagship pack lemforum, but have been taken out over time.
+They're all proven solvable with 0.9 physics.
+
+Fixed #301: Separated the ping-exit functionality from show-splat-ruler.
+In multiplayer, there are now two buttons. Both have much clearer icons
+(an exit with beams, a ruler) instead of the generic cool shades.
+
+Fixed #293: Savestate icon, don't use floppy disk (means: write file).
+Now, the icon to save state is a flag, and the icon to load state is
+a flag with an arrow pointing towards it. Once a savestate exists,
+the load icon (default hotkey F2) is to the left of the save icon
+(default hotkey F3), to have their default hotkeys (F2, F3) in ascending
+order. (Before, load appeared to the right of save).
+
+Renamed the level folder "Community Collab Project" to "Collab"
+for concise breadcrumb navigation captions, preventing abbreviation.
+
+Attributed correct authors (Rubix/Simon, Simon/Wuzzy) on two tutorials.
+
+Rewrote screen options functions, to rule out a possible source of a crash
+on macOS (no more try-return-catch, always return outside of try/catch).
+See issue #381: macOS 10.14: Black screen then crash.
+
+Rewrote internal graphics code to get already-cached images more efficiently.
+
+
+
+0.9.25
+------
+
+2019-02-04
+
+Added 44 singleplayer levels in levels/single/misc: 17 miniatures by Simon and
+geoo, 13 levels by mobius (originally called leftovers and non-tutorials), 10
+levels by Nessy, 4 non-miniatures by Simon. These levels were released around
+2017 and 2018 on Lemmings Forums and are now part of the main download.
+
+Added 15 tutorials for basic skill usage. A new Lix installation will still
+highlight Any Way You Want as first level, not the tutorials.
+
+Eased the 2-player multiplayer map Anything Can Work: Removed buzzsaws, added
+terrain to allow a downwards route without preparatory platforming above exits.
+
+Fixed deprecations (silent conversion from size_t to int in loop indices)
+to allow a warning-free building with the current compiler DMD 2.084.
+
+Refactored code for clarity: Alcol constructors -> al_map_rgba_f, magic
+numbers in EffectManager -> enums. Split ScoreBoard into two classes and
+moved to the GUI code, to decouple from gameplay.
+
+
+
+0.9.24
+------
+
+2019-01-03
+
+Work around bug #372 (garbled exit markers): Removed alpha channel from
+data/images/goalmark.I.png. Arrow's white overlay is entirely opaque. Made
+overlay line thinner to compensate for the fully-opaque overlay. This should
+avoid #372 to trigger at all. Everything should recolor properly.
+
+Multiplayer directories: Sort authors with easier multiplayer maps.
+Easy means that it's easy to save lix against opponents that do nothing.
+Reason: New players click on the first-listed authors very often.
+This is not an ideal permanent solution, but we have needed something like
+this quickly for the Debian 10 release.
+
+New multiplayer maps by Flopsy: Cascade Squared (4p, 6p, 8p) and
+The Storeroom (6p, 8p).
+
+Fix bug with _order.X.txt files: When you go to a dir A with order file, then
+go to a different dir B without order file but with files named like those in
+A, the files in B are now sorted alphabetically, not wrongly by the order
+file from A.
+
+The options file ./user/options.sdl contains a comment explaining that
+screenMode 0 is windowed, 1 is software fullscreen, 2 is hardware fullscreen.
+
+
+
+0.9.23
+------
+
+2018-12-09
+
+xmas2018: Fixed backroutes in Home Time for Santa, Snow Cat Love,
+Decorate the Tree, Past the Xmas Tree.
+
+ClamLix: Time is Running Out, decorated the steel with a steel hourglass.
+
+Fix #371: Miners throw a pickaxe again when they cancel on steel. Diggers
+won't throw pickaxes anymore by mistake when they cancel on steel.
+
+Added a manpage for Linux package maintainers: doc/lix.6, thanks to tarzeau.
+
+
+
+0.9.22
+------
+
+2018-11-30
+
+Include xmas2018: a new singleplayer pack with 24 holiday-themed levels.
+
+Fix #350: In singleplayer, the splat ruler button tooltip claimed falsely
+that this button also pings hatches and exits, but it does that only in
+multiplayer. Fixed this tooltip. (Issue #301 remains: In multiplayer, this
+button should be functionally split into two buttons.)
+
+Support 64-bit Windows builds with LDC >= 1.13.0-beta2. I encourage all
+Windows users to choose the 64-bit build over the 32-bit build, hoping to
+avoid the out-of-RAM crashes on large maps.
+
+Binary downloads are now hosted on github, not on Lix's homepage.
+
+Binary download archives carry a version number in their filename and unpacked
+Lix directory. With self-contained Lix (i.e., not installed system-wide via a
+Linux package manager), you should still update existing self-contained Lix as
+usual by copying your user files, custom levels, and replays from the old
+directory into the new.
+
+Fix #369: When you build from source and choose a debugging version instead
+of a release version, Lix will start windowed by default, not with software
+fullscreen. User options can override this as usual.
+
+Updated the DAllegro5 bindings to 4.0.4+5.2.0 and removed Lix's allegro-color
+dependency on all platforms.
+
+Many refactorings in the source code for physics updates. No physics changes.
+This will be useful in case I manage efficient skill blueprints a.k.a. skill
+shadows.
+
+
+
+0.9.21
+------
+
+2018-10-19
+
+Fix #313: Options and trophies (level checkmarks) are now saved in ./user/,
+not in ./data/user/yourname.txt. In the future, whenever you update Lix by
+hand, copy the folder user/ into the new installation. Old settings and
+trophies are imported: To update to 0.9.21, you should still copy
+./data/config.txt and ./data/user/yourname.txt to let Lix 0.9.21 import your
+old settings and write them to ./user/.)
+
+Fix #255: Trophies (level checkmarks) are associated to levels by the levels'
+basename (the part of the filename that is independent from directories),
+author, and English title. Trophies are not associated to full level path
+anymore, even though they remember that path as extra information. This means
+that you keep your trophy even when its level moves to a different rank
+directory.
+
+lemforum: Feel the Pressure: Hopeless -> Daunting. This Is a Stickup: Daunting
+-> Vicious. Evacuate the Sinking Ship: Vicious -> Hopeless. Little Miner
+Puzzle 1: Adjusted height of one bar to avoid accidental splatting while a
+miner is working. The Borderland: Added buzzsaw that This Lix Is Your Lix
+(repeat) already had.
+
+Raymanni's Holiday exit: Enlarged sprite at the bottom to look better when
+the exit sits on bumpy terrain.
+
+Fix #359: When you have lost singleplayer and the game tells you to framestep
+back or abort, you can doubleclick the nuke to quit.
+
+Fix #323: Wide, flat torus maps start with less default zoom (you see a larger
+portion of the level).
+
+Editor: All steel is offered in a single flat list. I've sorted the more
+commonly used tiles to the top of this list.
+
+Editor: Removed an invisible extra button that 0.9.20 mistakenly generated
+and that sometimes became visible when you hovered over the 3 rightmost text
+buttons in the panel and held the mouse key down.
+
+Fix #363: Editor: The terrain browser does not offer the 3 directories
+./authorName/steel/, to de-clutter the tileset list.
+
+Fix #355: Multiplayer: Exit markers are solid, colorful arrows instead of
+large lixes. They still go behind the terrain. The outline of your own arrow
+is drawn semi-transparent over the terrain.
+
+The networking menu offers to host a game (a server will run within Lix) and
+offers to change the port for listening or connecting.
+
+Fix #358: In a networking room, the current level title is printed under the
+preview image, above the chat.
+
+License: During the CC0 public domain waiver, I mention explicitly that the
+levels are CC0.
+
+Server executable understands the switch --port <number> to listen on a
+different port.
+
+Server is now its own dub package in ./src/server/ in the Lix repository.
+Documented how to build and run standalone server executable in Lix's main
+README.md.
+
+Code: I refactored Hatch to contain Graphic instead of to inherit from
+Graphic. Hatches remember which players spawn from them. Physics remain
+identical. (I tested a lot manually, no automatic test; I still lack physics
+unittests in general.)
+
+Git users: I version-control dub.selections.json now. If you get merge issues,
+delete your local copy and then pull.
+
+
+
+0.9.20
+------
+
+2018-09-23
+
+Backroute fixes in Continuum Hypothesis and Inside the Fourth Wall.
+Fewer lixes in Undercutting the Competition.
+
+Reshaded rectangular blocks in matt/marble: Shading at the left and top should
+only become lighter towards the outside. Before, the blocks looked flattened.
+Diagonal blocks in matt/marble still have this issue.
+
+Fix #349: Mirror button icon shows horizontal mirroring with two triangles,
+not vertical mirroring with an upside-down tree anymore.
+
+Partially fix #348: Custom grid button shows size of current custom grid.
+
+Center images on BitmapButtons more accurately.
+
+Removed unused UI graphics: Spawn interval graphic, hint selection graphic,
+editor hatch direction graphic that is shown with a unicode arrow instead.
+
+Fix #356: When you specify -w or --resol=XXXxYYY on the command line,
+loading/switching the user configuration will not override the command line's
+resolution in this session.
+
+Reorganized the trophy area of the singleplayer browser: Don't draw last
+game's results over the personal best of lix saved.
+
+dub package Optional: I use Optional 0.6.3 now instead of Optional 0.4.x. This
+requires a recent compiler (I know that 2.082 or newer works) when you build
+Lix yourself.
+
+
+
+0.9.19
+------
+
+2018-08-10
+
+RepForLev: For a highlighted level in the singleplayer browser, you can enter
+the new dialog RepForLev that will offer all replays that start with the
+basename of the highlit level. (If the level file is "mylevel.txt", RepForLev
+will offer all replays that start with "mylevel-".)
+
+lemforum, some backroute fixes: Get Hype, remove flinging backroute. Toccata,
+use Proxima's backroute fix against a solution that takes 30 minutes. Striking
+News, add water pit at the top, different cactus placement at the bottom.
+Behind Bars, save 8/10.
+
+Multiplayer maps: Flopsy's shorter Block Chaos, Harden the Paint. Raymanni's
+Rainbow Road, The Frog-Hotel, Follow the Thread.
+
+Fix #354: Prevent the one-pixel-thick line of graphical garbage at the right
+edge of the map. This line occurred with some noninteger zooms during
+play/editor.
+
+Fix #344: Guideline pieces are selectable from the terrain browser again.
+Depth-2-directories (e.g., "geoo/construction/") are listed as only the second
+directory ("construction/") in the root selection of tile browser.
+
+
+
+0.9.18
+------
+
+2018-07-01
+
+lemforum: Behind Bars 7/10->8/12 to remove backroute. One Step Off
+80/80->20/20. Segmentation Fault 20/40->21/40. Merge Sort, hollow terrain
+to remove red herrings. Rhapsody in Blue, aligned traps to terrain
+(removes 1-pixel gaps). Removed obviously unassignable
+imploders/exploders/cubers according to save requirement.
+
+Rubix's levels: Lost Underground, cap reachable ceiling more clearly.
+Removed obviously unassignable imploders/exploders/cubers.
+
+Tiles: Raymanni's improved carnival exit, cleaner large proxima/tiles/orange2.
+
+Fix #23: Don't show obsolete replay arrows/pickaxes/sounds when you
+framestep after a quickload.
+
+Fix #346: When you watch a replay, interrupt, and win, the solution
+replay is auto-saved.
+
+Singleplayer exits the level after nuking instead of prompting to
+framestep back.
+
+On display creation, the mouse cursor centers on the Lix window. This prevents
+edge scrolling when watching replays from the command line.
+
+Fix #340: For translations, use format strings (containing %s, %d with runtime
+checks) instead of several concatenated translated strings.
+
+Fix #341: Translate the output of the replay verifier.
+
+Fix #342: Better grammar, fewer Denglish (English words in the German
+translation even though good German words exist), add umlauts. Thanks to
+Wuzzy for this patch!
+
+In displayed strings, use typographical quotation marks. In file/shell output,
+use double quotes both to begin and end instead of asymmetric quotes.
+
+
+
+0.9.17
+------
+
+2018-05-27
+
+lemforum/Hopeless: Swapped Bipolar Maniac (now 3rd) and Systematic Separation
+(now 10th) in Hopeless.
+
+Score board in multiplayer: Hover over the score graph to see player names,
+exact lix counts, and exact number of scored points, in a large tooltip.
+
+Fix #319: The terrain/steel browsers offer all dirs of depth 2 in images/ at
+once. After navigating to such a depth-2-dir, the terrain/steel browsers offer
+in one flat list all tiles recursively found in that dir.
+
+Don't save other people's winning replays as your own checkmarks. Correctly
+save checkmarks after playing levels passed to Lix on the command line.
+
+On loading a replay with zero players, don't crash anymore, instead create one
+player with the singleplayer color.
+
+The Windows download contains Allegro 5.2.4 DLLs. These newer DLLs fix any
+remaining chance that Lix starts without sound when starting Lix from the
+Windows 8/10 quicklaunch bar.
+
+Lix has a new command-line switch --allegro-version to print the version
+number of the dynamically-loaded Allegro DLLs.
+
+Build system: Lix builds with both the most recent DMD 2.080 and with the
+better-optimizing LDC. I added allegro_color to the link libs. I require D
+Allegro 5 bindings of version >= 4.0.2 to fix a stack overflow in Debian
+LDC-built Lix.
+
+0.9.16
+------
+
+2018-05-01
+
+lemforum: Removed backroutes in We're in This One Together (added steel)
+and From the Other Side (larger fire pit).
+
+Fix #328: Automatic replays are saved after multiplayer games again.
+
+Fix: Watching a multiplayer replay will never save another replay.
+
+I credit our contributors in doc/thanks.txt. Let me know if anything there
+is inaccurate.
+
+0.9.15
+------
+
+2018-04-20
+
+Behind You, Down Among the Dead Lix: Removed backroutes. Added Twelve-Bar
+Blues, a new multiplayer map by Proxima.
+
+Fix #326: In the editor, clicking steel, then opening the terrain browser
+won't override the current terrain directory any more. You can still click on
+a regular terrain piece to open the terrain browser on its directory.
+
+Fix #325: The default steel directory is images/geoo/steel/.
+
+Fix #332: Tile groups will always be saved with relative coordinates that
+are all >= 0, even when some of their parts have transparent boundaries.
+(There is a bug left behind where tile groups with coordinates < 0 are loaded
+wrongly on torus maps, but changing the interpretation of a level file affects
+physics; thus, that second fix is postponed.)
+
+0.9.14
+------
+
+2018-04-03
+
+Waltz in C Sharp Miner, removed backroute.
+
+Moved Arty's race maps (Heart of a Gambler, one map per player count, 2-8
+players) from network/*p/arty to network/races/arty.
+
+Fix #314, #315, #318: When you win a singleplayer game or win an edited
+replay, either browser shows the game's stats under the preview and saves the
+replay automatically. (These bugs were regressions after I removed the
+end-of-singleplayer dialog.)
+
+Fix: The command-line verifier generates checkmarks again.
+
+0.9.13
+------
+
+2018-03-14
+
+Close to the Edge, save 46/50->16/20. Building Block Maze, SI 32->50. The
+Abominable Snowlix, save 15/30->5/10. Block Chaos, walkers 20->60, overtime
+1:00->2:00.
+
+Fix #312: Splat ruler option is now public. Choose one of three ruler designs.
+Default is the 3-bar ruler with huge snap distance from 0.9.5 to 0.9.10.
+
+Fix #308: Include Zanzindorf's lasers.
+
+Fix #305: Autosave 4 pairs of savestates, not 3, on most maps, for performant
+framestepping/multiplayer.
+
+Fix #55: Remove dialog on winning singleplayer. You go to the browser
+immediately after winning the level. Game pauses after losing, allowing you to
+framestep backwards or restart with the regular commands. I hope this
+satisfies the desire for a next-level button in the old dialog.
+
+Fix #302: Remove end-of-multiplayer dialog. You go to the lobby immediately
+after finishing a networking game. The lobby console shows the result, but I
+plan to show better statistics here. This fixes the bug where observers were
+shown instead of players in the end-of-multiplayer dialog.
+
+Fix #309: Show indexing progress of the search dialog. I still don't cache the
+search results; maybe the indexing feels still too slow on older computers
+even when its progress is shown.
+
+When you show FPS and Phyus, I don't display VRAM anymore. Reason: Once VRAM
+got cached on huge maps, the Lix-estimated VRAM usage didn't match the real
+VRAM usage anyway.
+
+New build dependency, Optional type. This is a source-only dependency and is
+automatically fetched by dub.
+
+Batch file to build Lix on Windows conveniently by double-clicking.
+
+0.9.12
+------
+
+2018-02-23
+
+Multiplayer maps: Arty's Let Them Eat Cake (rename of Feaster Island),
+Layer of Hell, Flopsy's Block Chaos, Nessy's Abandoned Sanctuaries.
+
+lemforum: Some Cunning/Daunting levels reordered. This Lix, extra sawblade.
+Bipolar Maniac, imploders 5->1 because the level is lose-1. Tribute to
+Benny Hill, imploders 1->0.
+
+On previewing/editing maps with more than 2.8 x 2^20 pixels (about 2.8
+million pixels), Lix warns that these maps will likely crash. You can still
+play and edit these maps normally. The warning is not perfect, but OK for now;
+any real fix will be difficult.
+
+Fix #229: Tooltips for all skills and all buttons during play.
+
+Fix #306: `--fullscreen' command-line switch works again.
+
+Allow the command-line parameter `--' to terminate switches. Subsequet
+arguments will be interpreted as files even if they look like switches.
+
+Linking on Linux: In dub.json, specify only `allegro-5', not `allegro', and
+let dub use pkg-config to deduce linker flags (typically -lallegro).
+
+
+0.9.11
+------
+
+2018-02-07
+
+New multiplayer maps: Schism 2p by me, Team Attack 2p by Yung. Fixed exit
+order in Pave the Way 4p.
+
+Implemented geoo's design for a splat ruler with only two bars. Both bars snap
+to terrain up to 16 pixels away. Hidden user option SPLAT_RULER_DESIGN in the
+config file can be set to 0 for this ruler, or to 1 or 2 for the three-pronged
+rulers from Lix 0.9.4 or 0.9.10.
+
+Fix #220: On losing network connection, don't crash, but go back to the
+Connect screen of the lobby.
+
+Fix #297: In the singleplayer browser, removed the gap between the delete and
+back buttons.
+
+Fix #298: Option to invert the hold-to-scroll direction.
+
+Fix #292: geoo/construction/Laser* flashes more clearly, to distinguish the
+lasers frmo red abstract pipes.
+
+Fix #303: Print names of missing tiles on the level preview.
+
+Previews in level browsers downscale the level more smoothly.
+
+Mitigate #296 (RAM balloons to 1.5 GB on Windows) without solving it:
+Auto-savestate every 12 frames, not every 10, and keep 3 pairs, not 4.
+
+Option to display torus seams is off by default.
+
+In data/transl/*.txt, merged option titles and option descriptions in the same
+line per option, instead of having two lines per option.
+
+0.9.10
+------
+
+2018-01-30
+
+Updated Arty's multiplayer maps, removed Knock 'em Dead, added Feaster Islands.
+
+Fix #294: Loading manual savestates could occasionally desync physics.
+This fix is covered with an automatic regression test.
+
+Fix #295: Stateload won't preserve the future when you wish to discard
+replay actions undone with framestepping. Covered with an automatic
+regression test.
+
+Fix #250: Permanent abilities appear as little icons over your own lix.
+
+Slightly reduced Lix's hunger for RAM by running the garbage collection
+more often. I still have to debug this gigantic hunger for RAM properly.
+On large maps, Lix might want 1.5 GB on Windows and 500 MB on Linux.
+
+Hardcoded the first miner eye position for the fuse and ability icons. Reason:
+This miner pose covers the eye with her arm.
+
+Don't paint over the level search button when the directory list updates.
+
+Translated the search string "Search for filenames or level titles".
+
+Removed the unused multiplayer jingles from data/sound/.
+
+Editor shows coordinates only in decimal, not in hex. The map size dialog
+still displays the size both in decimal and in hex.
+
+Editor doesn't count exits in singleplayer maps, to improve the visible
+difference between singleplayer and multiplayer maps.
+
+Documented SiegeLord's batch file for the Windows build. Discourage installing
+extra software on Windows merely to build 64-bit. 32-bit Lix runs fine and
+is easier to build.
+
+0.9.9
+-----
+
+2018-01-22
+
+Added Arty's multiplayer maps: Knock 'em Dead, Pyramid Scheme, Pandemonium
+Box. Modified Rubix's Access Denied to make it completely symmetric.
+
+Fix #289: Replays that didn't point to levels, or even empty text files,
+crashed the replay browser on highlight.
+
+Fix #290: Fixed crash when running Lix from the quicklaunch bar on Windows.
+Allegro 5 has an issue where the Windows sound driver depends on an active
+display, and I assumed that the sound initialization would always succeed.
+I've reordered my initializations and display an error message, not crash, in
+case the sound driver still fails to initialize, which should be rare.
+
+Fix #288: Added optional program-wide hotkey to take a screenshot of the
+entire Lix window, saved in the export directory. No default keybinding.
+Plays disksave.ogg on screenshotting.
+
+Fix #291: Replay verifier called from the replay browser won't interrupt
+the main menu music.
+
+Fix #286: The player list in the multiplayer lobby won't draw over other parts
+of the window.
+
+The splat ruler isn't drawn while the mouse hovers over the panel. All three
+colored bars of the ruler are drawn at 80 % opacity, not 100 %, to keep
+terrain details visible behind. Activating splat ruler/exit ping doesn't play
+a sound effect anymore.
+
+Drew sunglasses icon and multiplayer nuke icon at scale 200 %.
+
+Savestates during game play clock.ogg, not disksave.ogg, because they aren't
+written to disk. disksave.ogg is always played quietly, not loudly, because
+the sound file is extremely loud already.
+
+0.9.8
+-----
+
+2018-01-15
+
+lemforum: Lix Cannon, cover confusing gaps that were solid. Pipe Dream, remove
+miners, improve lower route. Snow Jump, raise two pieces slightly.
+
+Fix #285: Solving singleplayer replays are auto-terminated with a nuke if you
+leave a game with ESC before the game is over.
+
+Fix #281: Explain airclick to cancel replays in a tooltip.
+
+When you scroll at the screen edge, a tooltip explains hold-to-scroll.
+
+Fix #279: With music enabled, but no music installed, the main menu explains
+how to download the music archive from the Lix website. Text will appear in
+the corner of the screen, not as a dialog box.
+
+Fix: Sound volume setting had no effect.
+
+Editor shows mouse coordinates in the panel, in addition to the piece
+coordinates that it has already shown before.
+
+TAB is default binding for the splat ruler/exit ping. If you keep your old
+user file, this change will not affect your bindings.
+
+Removed unused hotkey to cycle spectated teams. When I have a better ingame
+score board with player names, I'll think about how to implement this.
+
+Removed unused strings from translation files in data/transl/. Each file lost
+over 60 strings, mostly leftovers from C++ Lix.
+
+0.9.7
+-----
+
+2018-01-03
+
+lemforum: Path to Mahiman, fixed backroute by early bashing.
+
+ClamLix: Swapped Inside the Fourth Wall with Urban Ledge-End. Applied mobius's
+fix to Square Squabble from 2017-12-28.
+
+Removed silent tile replacements, e.g., `moon.D' to `moon'. I've fixed about
+20 levels that still used outdated tile names. I will make a pull request
+against NepsterLix with these replacements.
+
+Fix #276: Replay browser prints the pointed-to filename, to avoid confusion
+what the pointedTo button does. I'd like to improve level-to-replay-matching
+further.
+
+Fix #278: Don't link against allegro_main on any system. Linking against that
+produced warnings on Windows and program-terminating errors during dynamic
+library loading on Mac.
+
+Fix #114: Don't index tiles at program start, allow adding tiles to the tree
+while Lix is running. This made the code far simpler. You still cannot change
+tiles while Lix is running because the file is read only once, then cached.
+
+Fix #275: When a basher ran out of earth to bash, some basher code ran on
+walker memory, failing asserts in debugging mode. I don't believe this fix
+changes physics, therefore no major version number bump.
+
+Fix #41: Options menu offers hardware fullscreen. This shouldn't be used
+normally, only when software fullscreen brings problems.
+
+Fix #238: Lobby uses radio buttons for choice of server. We hide the manual
+address field when central server is chosen.
+
+Fix: The level-to-image exporter crashed when called from the command line.
+
+Document where to download music in the main readme, in the detailed build
+notes, and in the notes for package maintainers.
+
+I ship the Windows binaries with newer Allegro libraries, their version is
+now 5.2.3. Any Allegro 5.2.x should work well with Lix.
+
+0.9.6
+-----
+
+2017-12-26
+
+Added Raymanni's Holiday tileset. Thanks so much for this beautiful set!
+
+Added multiplayer maps by IchoTolot. Removed my worst old multiplayer maps.
+
+Rubix's singleplayer, reduced initial lix in 3 levels to combat long waits
+when route is finished. Cropped small lemforum/Quirky maps with repeating
+decoration from 640x400 to 640x320. Compression Method 2 has a 2nd hatch.
+
+Fix #251: geoo/construction/pillar_* looks hexagonal instead of round, and
+looks more like concrete, to avoid confusion with steel.
+
+Fix #79: geoo/construction/squisher.T has a flashing exclamation sign and
+looks different from pillar terrain. It's now clearer where terrain ends and
+where the trap begins.
+
+Fix #253: Level search matches the level author, too, not merely the level's
+name and path.
+
+Fix #222: When you enter a different windowed resolution, (un)check
+windowed/fullscreen, or load a user config file, the program immediately
+switches to the desired resolution and screen mode. You don't have to exit and
+restart.
+
+Fix #249: Editor, rectangle dragging: Prefer to drag 1xN rectangles instead of
+(full-width)xN on torus maps.
+
+Fix #219: On torus maps, editor draws hatch/goal annotations properly across
+torus seams.
+
+Fix: Restarting the level from the end-of-level dialog resets speed to normal.
+
+Fix #226: Enforce datafiles (= on missing important files, print & log error
+even in release mode), don't assert for datafiles
+
+Log unplayable music only once per file per program start.
+
+0.9.5
+-----
+
+2017-12-13
+
+In NepsterLix/Moon, 10 levels got backroute fixes on 2017-11-30. All levels
+are proven solvable.
+
+In ClamLix/Outtakes, beautified Korean Border Crossing (version from
+2017-12-13) and Abridged Version v1. All levels remain solvable.
+
+Merged multiplayer maps by Arty: Blow Your Top, Shaft of Chaos, Showdown at
+Chainsaw Gap.
+
+Distinguished the pillars in matt/bricks from steel by yellow-brown color.
+Still to do: Distinguish pillars in geoo/construction from steel.
+
+Fix #272: Always draw splat ruler in front of terrain. Draw splat ruler even
+when it doesn't snap to anything.
+
+Fix #263, fix #269: Network game computes correct overtime when somebody
+nukes before saving lix, then saves some. This fixes crashes from assertion
+failures in the debugging build.
+
+Fix #209: The replay verifier called from the replay browser creates
+checkmarks when it finds solving replays whose player name matches the user's
+name. Command-line verification doesn't create any checkmarks.
+
+Fix #271: Verifier distinguishes normal failures without lix left from
+failures from running more than 5 minutes after the final skill assignment.
+
+Fix #157: Playing back winning replays on a wrong level version turned your
+correct checkmarks into '?!'. Now, replays will only affect checkmarks when
+the played level matches exactly.
+
+Fix #260: When you interrupt or modify a replay, then save it, your name
+replaces the old player name in the replay.
+
+Better key names on Windows when remapping hotkeys. If you still see keycode
+numbers instead of a proper key name, please tell me key and number.
+
+Translated leftover options to German: Sound and music volume, fast movement
+frees mouse, unpause on skill assignment.
+
+Fixed links in the build instructions that were still pointing to asdfasdf;
+they now point to lixgame.com.
+
+
+0.9.4
+-----
+
+2017-11-30
+
+ClamLix is included, a singleplayer pack with 113 levels. All levels are
+proven solvable. Thanks, Clam, Forestidia, and mobius!
+
+New multiplayer maps by Arty, Flopsy, and Yung. In particular, more maps for 7
+and 8 players. Some fixes to multiplayer maps by geoo and Steve.
+
+lemforum's Eye of the Needle: removed a backroute. Rubix's Holly Jingle: save
+99/99 -> save 10/10.
+
+Restarting a level disables fast-forward or turbo-fast-forward.
+
+Fix #267: Allow multiple hotkeys per skill.
+
+Fix #257: When A's lix enters B's exit, B will hear the saving sound.
+
+Splat ruler. In multiplayer, the splat ruler is combined with the
+exit-highlighting-function. Needs feedback.
+
+Score graph marks players who nuked with black-and-white squares. Ideally, I
+find a better solution.
+
+Fix: Disable editor grid-size hotkey whenever an editor window is open.
+
+Fixed an assertion failure in the debugging build when dragging quickly in the
+editor.
+
+Fix #258: The multiplayer server crashed when somebody left, then the
+remaining players started a game. Still needs field testing.
+
+0.9.3
+-----
+
+2017-11-18
+
+Music: Download http://www.lixgame.com/dow/lix-music.zip and extract
+into your Lix root dir. You can create additional subfolders in ./music/
+and put your own tracks inside -- ideally as .ogg, .mod, .xm, .it, or .s3m.
+Lix will play a random track per level.
+
+Fix #216: The manual savestate function will now always overwrite the
+savestate replay with the current replay.
+
+Improved the mouse handling on Windows, there should be fewer odd jumps
+of Lix's cursor over half the game window.
+
+When you restart a level during pause, the game unpauses.
+
+0.9.2
+-----
+
+2017-10-22
+
+Rubix reordered his singleplayer levels and added the Community Collab
+Project: 4 levels in single/rubix/Extras.
+
+lemforum: Path to Mahiman, removed indirect jump backroute. Runaround up to
+Cunning, Raindow Road down to Quirky.
+
+Fix #252: Level search queries won't match the prefix 'levels/' in the
+filenames because all levels would match.
+
+Fix #256: When you export levels to images or save replays manually, the
+button replacement will not say "done", but instead tell you the filename.
+
+Fix #254: When you run out of VRAM during a level, the game won't crash, but
+instead stop making internal savestates. This won't display a warning, it will
+merely log. Recalculation due to incoming network packets will take longer,
+but that's better than crashing. The game remains VRAM-hungry and this
+solution is not ideal.
+
+0.9.1
+-----
+
+2017-10-05
+
+Fix #243: Sounds play in the lobby or browser when somebody joins or when
+somebody picks a map. When observers browse for maps and others start a game,
+the observer's browser closes, and the observer will see the game.
+
+Fix #244: Malformed UTF-8 in files within the level tree (e.g., zip archive)
+won't crash the Lix level search anymore. The offending file still will not
+appear as a searchable level; instead, the offending filename is logged. I
+validate all keyboard input for UTF-8.
+
+Fix #246: Tiles with coordinates far out-of-bounds crashed the editor once
+torus wrapping became enabled. Will now torus-wrap these tiles properly.
+
+Fix #247: The lix under the mouse is lighlighted far brighter and gets a dark
+outline to its left, right, and above it.
+
+Fix #248: Multiplayer colors: Purple is lighter. Black is darker. Yellow is
+darker and has less green hue.
+
+Removed a backroute in lemforum's Duality from abusing decoration.
+
+Added about 40 remakes by Proxima of maps from 2009. I've
+inserted the maps in their original authors' directories.
+
+Removed hidden water in Sharing the Water Supply 4p. Removed duplicate map
+files for Going Up 7p/8p.
+
+0.9.0
+-----
+
+2017-09-28
+
+Raymanni's Toy, Lab, and Gore tilesets to v3: Raymanni has drawn Lab monitors,
+Gore tentacles, eyes, and a bonesaw, a Toy chalkbox, and several more. All
+tiles have shading from the top-left as normal for Lix tiles. Thanks!
+
+Added Proxima's and mobius's multiplayer levels, merged geoo's level changes
+for the tileset update.
+
+Level search.
+
+Fix #230: Frogs ate cubers, and flung cubers reanimated. Now, cubers stay dead.
+
+Fix #231: Tumblers oscillated in thin walls. Now, tumblers will either move or
+land. (The tumbler code is not perfect yet, I'm planning to rewrite it, but
+the rewrite's subtle physics changes would invalidate too many replays still.)
+
+Fix #214: Players permute correctly in networking games.
+
+Fix #239: The server sends a permutation of correct size. This fixes wrong
+hatch/goal distributions in games with many observers and larger teams.
+
+Fix #217: Skip remaining overtime when everybody has nuked or finished
+playing.
+
+Race maps (= maps that have zero overtime) nuke automatically on the first
+scoring.
+
+Fix #240: Observers don't have to cancel the end-of-game dialog anymore. I
+print the game result to the console. This is not beautiful, but it's an
+acceptable medium-term solution.
+
+0.8.8
+-----
+
+2017-09-24
+
+(Still 0.8.5 physics: This 0.8.8 still has the severe bug where you can fling
+cubers and thereby reanimate them, leading to wrong counts of lix alive. 0.9
+will fix this.)
+
+Merged 9 new multiplayer maps by Colorful Arty. Merged multiplayer map updates
+by geoo.
+
+All racing maps, and geoo's Tower Defense 22934, have zero overtime. All other
+maps have nonzero overtime.
+
+The ping button highlights both your hatches and your exits in multiplayer.
+
+Multiplayer colors: Orange and yellow are more distinct. Grey is lighter. Blue
+and black are darker.
+
+Warn about fewer key collisions in the the options tab for hotkeys in menus.
+
+Linux packaging: You can override the XDG install path with a custom path, see
+doc/build/package.txt. In the git repository, data/images/lix_logo.svg has a
+large logo as SVG. I don't ship that in the download because it's over 3 MB.
+
+0.8.7
+-----
+
+2017-09-19
+
+The out-of-skills beep was too trigger-happy: When we clicked a mining lix
+and had miners left in the skill panel, the game beeped as if we were out of
+skills. Fixed.
+
+0.8.6
+-----
+
+2017-09-19
+
+Fix #227: Lobby player list shows 8 entries at a time and scrolls. Before, it
+let the the 9th, 10th, ..., button bleed underneath the list.
+
+Fix #228: Edge scrolling requires the hardware mouse inside the window.
+
+Fix #229: Pressing the hotkey of an empty skill deselects all skills instead
+of keeping the previous selection.
+
+Included Rubix's variants on Marble Run, Eater Island, Diagonal 8p, and
+removed dead space on Across the Gap. Everybody else: Post your multiplayer
+maps, then I can include them in the next version.
+
+Optionally print during play the number of physics updates, frames per second,
+and a ballpark guess of allocated VRAM.
+
+0.8.5
+-----
+
+2017-09-09
+
+Fix #244: Grouping certain tiles led to an assertion failure: The game
+attempted to cut the group like a gridded animation. Fixed.
+
+Most of #216: Ping button: A small button in multipalyer games, next to the
+nuke. Button clicks highlight all own goals for 4 seconds by flashing them
+inside black and white boxes above the terrain. Can be hotkeyed; by default,
+no key is bound.
+
+Fix #162: In the hotkey options, if you bind the same key twice, all its
+bindings show in red. You can decide whether to remove one binding or keep
+all.
+
+Fix: When the editor inserts a tile from the terrain browser into a level, the
+tile will be aligned to the grid.
+
+I enforce bitmap creation: If you run out of VRAM, Lix should now terminate
+with a proper exception, not crash later in unrelated functions. If you crash,
+screenshot the error, or send me [tt]data/log.txt[/tt].
+
+I optimized the lix Job hierarchy for speed: Lixes are value types, and carry
+their job as a value type within themselves. (Drawing many exploder fuses at
+once is still slow. Organ Symphony will still kill the framerate.)
+
+Fix #211: On Linux, you can pass a compiler switch to make Lix system-wide
+installable, follwing the XDG base directory structure. For arbitrary
+installation paths, open an issue on github.
+
+0.8.4
+-----
+
+2017-08-30
+
+Fix #4 and #213: Some graphics cards cannot load textures wider or taller than
+4096 pixels. Amanda's tar and occult hatch were too wide. Now, I allow
+two-dimensional spritesheets for single-animation gadgets, and I've
+rearranged the frames in the tar and occult hatch. In Lix, looks and physics
+should be unaffected.
+
+lemforum: Over the Hump out, Duality in. Duality and Round Trip swap places
+within Daunting.
+
+5 new multiplayer maps by Rubix.
+
+0.8.3
+-----
+
+2017-08-27
+
+Fix #176: Make a tile group with at least one non-dark tile where all non-dark
+tiles are covered entirely by dark tiles. This crashed the game before. This
+crash is now fixed.
+
+Fix #191: Initial zoom on tall narrow maps (e.g., Rubix's Hamunaptra for 4
+players) is fit-to-height, or zoom 1 if fit-to-height would zoom even further
+out. Initial zoom on small narrow maps (e.g., The Runaround) fits the entire
+map on the screen, obviating scrolling, allowing dark borders.
+
+Merged editor's Topology and Looks dialogs into a single new Map dialog.
+No new functionality yet. I'm thinking about custom screen starts.
+
+For a new player, the singleplayer browser highlights Any Way You Want,
+the first map of the lemforum pack.
+
+lemforum, Forest of Fears: Wider exit platform, should look less cramped now.
+
+0.8.2
+-----
+
+2017-08-24
+
+Fixed magic crash: The Wine build, in release mode, run in Wine but not in
+Windows, crashed on entering a nonexistant user name. This would have been
+very bad because can't do anything on new installation before entering a name.
+The fix is pure magic, a mere rearrangement of lines. Fixed for safety, even
+though it was OK in Windows.
+
+0.8.1
+-----
+
+2017-08-24
+
+The save-as browser (used by the editor to save levels) allows to create
+new directories.
+
+Editor defaults to 30 seconds of overtime on new levels. Singleplayer levels
+discard their time.
+
+Removed hints during levels and manual screen start.
+
+Rebevelled [tt]matt/underworld/{00,01,02}.png[/tt]: Better shading, these
+bricks don't look flattened near their left edge anymore.
+
+lemforum: Sinking Ship, geoo is author. namida written in only small letters.
+Setting a Fundament, renamed to Cubic Interpolation. Forest of fears, removed
+2 backroutes.
+
+0.8.0
+-----
+
+2017-08-22
+
+Stable 0.7.22 physics. I would like to keep these physics at least for several
+months.
+
+Tooltips during game explain directional select, priority invert,
+and double-click on nuke. Can disable tooltips in the options menu.
+
+Removed the unused editor button to add decoration. To fill the void,
+the button to add terrain is twice as large. Not perfect, but good for now.
+
+0.7.22
+------
+
+2017-08-20
+
+Physics: Flinging downwards initializes pixelsFallen with the distance that
+speed-0 tumblers normally fall before reaching the given speed. Still, all
+flinging overwrites pixelsFallen without respect to earlier values. Tumblers
+splat when pixelsFallen on impact is larger than 126.
+
+Re-introduced downwards steam and the 2016 decoration on Goblin City, Gomen
+ne, 100 Ways to Die.
+
+Digger unchanged since 0.7.19: Still 5/9 with anti-razor-edging. Discussing.
+
+lemforum: Bulldozer out, Sinking Ship v2 in. Empty Space reverted to the 2014
+version, rejecting both propesed versions from 2017. Renamed Cuber Replacement
+to Jack in the Box.
+
+0.7.21
+------
+
+2017-08-18
+
+Fix: The last exiter didn't play the exiter sound.
+
+Renamed Rubix's "Just a Minute... (Part three)" to "Come on Down! The Price Is
+Right", which is almost too long but still fits well.
+
+Removed lemforum/wip-0.7/ and images/geoo/construction/chain1.png, the
+now-obsolete tile because its size doesn't conform to multiples of 8.
+[url=http://www.lixgame.com/etc/unused-levels-0.7.zip]Download unused levels
+and chain1[/url].
+
+Removed simon/wood/ tileset. I've replaced these tiles with Matt's wooden
+planks in the 3 multiplayer levels by Rubix used them:
+Going Up, Coming Down (2p); Naoh's Ark (2p), Naoh's Ark (Team).
+
+0.7.19
+------
+
+2017-08-16
+
+Physics: Digger has anti-razor-edging: Whenever a digger ignores steel, he
+cannot remove earth pixels beyond the steel in the same row. (The digger stays
+at 5/9 steel sensitivity, i.e., chokes on steel in the central 10 of 18 hi-res
+pixels and continues despite steel in the outermost 4 hi-res pixels on either
+side.)
+
+Updated lemforum's Down Among the Dead Lix, Let's All Go Down the Strand,
+Division of Labor, Empty Space is Hardly a Waste (Proxima's 2017-08-15
+version). Theresa v2 has been up-to-date since 0.7.16.
+
+Merged Rubix's remakes of The Clairvoyant and Flatlined. Thanks!
+
+Removed the downwards steam. I adapted the decoration in the only 3 lemforum
+levels that used downwards steam: Giblin City, Gomen Ne, 100 Ways To Die.
+(Downwards transportation beams are slow, not intended to kill, and therefore
+still in the game.)
+
+In the editor, you can delete tiles by dragging them onto the panel. While
+hovering over the panel with dragged tiles, the mouse cursor becomes a
+trashcan and the tiles become invisible.
+
+Fix: Drag tiles around in the editor, tap the tile-deleting hotkey, and
+continue to drag around nothing. The game crashed. Fixed by stopping the
+dragging on deleting a selection.
+
+Fix #174: The ingame level map, during non-integral zoom, sometimes
+didn't initialize/overwrite outside rows of pixels. Fixed by rounding up.
+
+Fix #201: The ingame level map during large integral zoom that didn't
+divide the length of the map, didn't initialize/overwrite outside rows of
+pixels. Fixed by rounding up.
+
+0.7.18
+------
+
+2017-08-12
+
+Tumblers remember how many pixels they have moved downwards since (they got
+flung for the last time, or since they moved upwards, whatever of these
+happened later). When non-floatable tumblers hit the ground, they splat if the
+fallen hi-res pixels exceed 126. They ignore the y-speed for splatting.
+
+I've drawn 4 new digger frames before the animation loop begins.
+
+In multiplayer, when overtime starts, the bell sounds and the console warns
+about how much time will be left before the nuke.
+
+0.7.17
+------
+
+2017-08-10
+
+100 % proof coverage for lemforum and NepsterLix! Thanks to all who submit
+replays. The coverage is for the 5/9 digger.
+
+Rubix's singleplayer levels are almost covered: 155/157. Uncovered levels are
+The Clairvoyant and Flatlined, these Oriental levels need an overhaul due to
+tileset breakage. I'll PM Rubix. Removed The More You Know because that's a
+nuke level, but D Lix locks the exits during the nuke. Lowered initial lix on
+many levels.
+
+No decision yet for the digger. 5/9 is implemented. I'm leaning towards
+keeping this 5/9 digger, but I want to read over yesterday's chatlogs again
+and Proxima might post to the 0.7-steel-sensitivity topic.
+
+0.7.16
+------
+
+2017-08-09
+
+All water gadgets in images/simon have multiples of 16 for their sizes: 48x48
+or 48x32 or 48x16. The old water size was 50x50. I've looked through all
+singleplayer levels -- lemforum, NepsterLix, and Rubix -- and fixed the few
+water placements that had not yet looked good with 48x48.
+
+All triggered gadgets (triggered traps and triggered flingers) have two rows
+of animations: The first row loops while idle, the second row plays while
+busy. After the final frame of the second row has played, the gadget will
+eat another lix and jump back to the frontmost frame of the second row, or,
+if nobody is in range, begin looping the idling animation from the front.
+
+Kept digger at 5/9 sensitivity for now: Digger chokes on steel when the
+innermost 10 of 18 pixels contain any steel. I should make a final decision
+this week.
+
+Rubix's singleplayer levels, Perplexing: Lowered initial lix on some levels.
+Coverage 108/158 -> 119/158, need 39 more.
+
+Get Hype and Theresa V2 merged into lemforum from the 0.7-lemforum thread.
+lemforum coverage is 239/240, need 1 more: Theresa V2.
+
+0.7.15
+------
+
+2017-08-04
+
+Revert basher mask: Bottom 16 pixels are steel-sensitive, not only the
+bottom 13. I.e., we have 2, not 5, insensitive pixels over the sensitive.
+
+Replay verifier logs to `data/verifier.txt' and closes the file after
+writing its last line or after closing the dialog.
+
+0.7.14
+------
+
+2017-08-02
+
+Proxima's planned changes to the lemforum pack. Snowball Battle: Spawn
+interval 20->22, to keep it solvable.
+
+0.7.13
+------
+
+2017-08-01
+
+Physics: The basher ignores steel in its top 5/18 rows, not merely 2/18.
+The digger ignores steel in its 4 outermost hi-res pixels on both sides,
+not merely in its outermost 2 on each side. The digger digs every (16*n)
+frames following its assignment, not already every (16*n - 4).
+
+Fixed bug #202: Small levels image-export with all stats again, not only
+with their skills.
+
+0.7.12
+------
+
+2017-07-31
+
+lemforum pack: Simple renamed to Lovely. Some backwards-compatibility code
+that converts progress checkmarks during loading the user file.
+
+lemforum/wip-0.7 has all levels in consideration for lemforum pack's stable
+release with 0.7.x in 2 weeks. I hope all levels are up-to-date.
+
+Raymanni's 3 water tiles have higher trigger areas. (Lixes drown earlier and
+higher up than before when they drop into the water.)
+
+Zoom 1x is always allowed, even if the level doesn't fill the available area.
+
+Fix #206: Editor browsers show the innermost directory of hatches, goals,
+traps, and other gadgets.
+
+Goals are locked during the nuke. The nuke is purely for decoration and
+to finish replays in style.
+
+Mouse code reverted to the 0.6 mouse code. If anybody has trouble, tell me.
+
+Keyboard key duration before first repeat for moving selected editor
+pieces: 0.33 seconds -> 0.2 seconds.
+
+Lots of multiplayer nuke code that handles conceding and calling for the nuke.
+When you press the nuke button, you lose control over your lix, overtime
+starts, but your lix don't explode yet. We'll see how it feels.
+
+Editor allows to set overtime in multiplayer levels. Existing multiplayer
+levels are tagged with the correct player number.
+
+0.7.11
+------
+
+When you want to nuke, you can't assign skills anymore. The game core dismisses
+assignments after your nuke, and the GUI shows zero skills.
+
+Game doesn't show FPS in the panel by default. It's an option still.
+
+0.7.10
+------
+
+2017-07-17
+
+Updated lemforum/Vicious/_order.X.txt, ordering One-Lix Showdown.
+
+0.7.9
+-----
+
+2017-07-17
+
+Physics change:
+Reverted the physics change from 0.7.8: The walker skill behaves like in 0.6
+again. Either the lix cancels her activity and walks on, or turns.
+
+Shotgun-debugged mobius's mouse problem by applying a Linux workaround for
+all systems. I couldn't test, hope this helps.
+
+More lemforum level pack coverage. Only 7 levels left to cover:
+fromtheotherside.txt metalcitymayhem.txt thecontinuum.txt
+dreamtheimpossible.txt lixsterquadrille.txt survivalofthecraft.txt
+toccata.txt
+
+0.7.8
+-----
+
+2017-07-01
+
+Physics change:
+0.6 walker: If target lix is working, revert to walker. Otherwise, turn.
+0.7.8 walker: If target lix is working, revert to walker. Turn in every case.
+
+0.7.6
+-----
+
+2017-06-20
+
+Fix: Builders and platformers duplicate bricks for free when turning at
+blockers. Before, number bricks left decreased for these extra bricks.
+
+0.7.5
+-----
+
+2017-06-20
+
+lemforum: Completely Ridiculous Level is narrower by 48 pixels.
+203/240 levels are proven solvable in 0.7 physics, let's cover 37 more.
+
+Down-facing tumblers drown head-first, not feet-first.
+
+0.7.4
+-----
+
+2017-06-14
+
+simon/oriental/bonsai: This tree got lixes stuck beneath its leaves.
+Changed some pixels and therefore the tree's physics. Didn't affect any
+levels for the worse.
+
+Rubix's Pleasand and Sinister are 100 % covered. The higher difficulties
+aren't covered yet.
+
+When you verify dirs in the replay browser, that dir becomes the most recent
+dir for exiting and restarting the browser.
+
+0.7.3
+-----
+
+2017-06-14
+
+NepsterLix is 100 % solvable with 0.7.2 physics.
+
+The replay browser offers a button "Verify dir" that verifies all replays
+in the current directory, recursing through subdirectories. Lix shows the
+results in the GUI and copies them to the logfile.
+
+0.7.2
+-----
+
+2017-06-11
+
+Blocker field is back like in 0.6: LLLLLL-RRRRRR against everything.
+This is simplest and allows crowd-follows-builder in at least 70 % of the
+cases.
+
+0.7.1
+-----
+
+2017-05
+
+Blocker fields by geoo's suggestion, LLLLLL-RRRRRR against nonbuilders and
+LLLLL---RRRRR against builders.
+
+0.7.0
+-----
+
+2017-05
+
+Lots of changes, see experimental version thread on lemmingsforums.com.
+
+0.6.39
+------
+
+2017-07-01
+
+The replay browser allows you to batch-verify all replays in the current
+directory. The results are printed on screen and to the logfile.
+
+Fixed 3 backroutes in NepsterLix; the changed levels are A Day in Lixtown,
+House of the Mad Trickster, and No Matter What I Try.
+
+0.6.38
+------
+
+2017-05-14
+
+Fixed #158: When you exported levels as images from the game and your game's
+resolution was not 640x480, the images had blank stripes instead of skillbars.
+
+Editor draws teams on hatches and goals. (Bug: When you have fewer gadgets
+of either type than teams, only the first team will be drawn.)
+
+Editor terrain browser shows more tiles with smaller buttons.
+
+0.6.37
+------
+
+2017-04-29
+
+Codebase builds with dmd 2.074.
+
+Fix #197: Create a new level, never save, then instruct the editor to exit.
+When the editor asks about potential data loss, choose to save. The buttons
+in the save browser didn't work, the level was lost. This is now fixed.
+
+Fix #198: When the editor inserts a tile from a browser, the new tile
+aligns to the grid.
+
+0.6.36
+------
+
+2017-04-28
+
+Re-enable the option to untrap mouse with fast movement. I have a kludgy fix
+against the buggy mouse jump (Arch 2016, Allegro 5.2, my old code or Allegro
+generated extra move events when I merely wanted to warp the mouse).
+* This kludge is only helpful when you always trap the mouse inside Lix.
+* If you allow the mouse to leave with fast movement, you'll still have a
+ warp when you begin right-click scrolling. Need kludge on top of kludge?
+* The kludge is only active on Linux, I've static-if'd it away elsewhere.
+
+0.6.35
+------
+
+2017-04-25
+
+Fix #183: Multiplayer panel shows only number of saved, not any requirement.
+We can still improve this later, e.g., by showing the score of the best
+opponent.
+
+Fix #180: Chat during play implemented.
+
+Fix #181: Chat message length is unlimited. The entry box scrolls along.
+
+Fix #146: Skill arrows scale only once. There are only 1x-zoomed arrows,
+they are drawn straight to the map, then scroll and zoom along with the
+terrain. Maybe GUI-scaled arrows should move as GUI components along with
+the scrolling, but that would be very hard and force frequent total redraws.
+
+0.6.34
+------
+
+2017-04-16
+
+Fix #192: While you are in the multiplayer level browser, incoming console
+messages don't overwrite the browser anymore.
+
+Fix #194: Show both the score bar graph and the tape recorder buttons
+when you watch a saved multiplayer replay.
+
+Fix #195: Client shows version mismatch in their console when they attempt to
+connect to a server running an incompatible version. Versions X.Y.Z are
+compatible iff they have the same X and the same Y. The patch version Z
+doesn't matter.
+
+Fixed asserts in the delayed exploder code. Undelayed, lix explode in the next
+fame following their assignment. Delayed exploders explode in the 75-th-next
+frame after the assignment, this is 74 frames later than undelayed.
+
+Removed my desert tileset (images/simon/desert). It has become unacceptable
+MS-Paint programmer art. Almost nobody used it. The levels "Hrududu" and
+"Group Therapy" used it for decoration, I have re-decorated them in similar
+style. The asymmetric multiplayer maps "Shine On You Crazy Lix" used desert
+for the main terrain. I won't ship these until they're redesigned; this is
+a good opportunity to fix the advantage of the higher-spawning players.
+
+0.6.33
+------
+
+2017-04-14
+
+Fix #182: Timed exploders in multiplayer have a nice burning fuse. I examine
+the spritesheet for the eye position. The fuse burns slow at the beginning,
+then faster when it's short, for visibility.
+
+Fix #193: Most opponents' sounds aren't played. Opponents' deaths and baseball
+bats still play sounds.
+
+Fix #168: Server resets all room data once a room is empty, and deallocates
+the level. Before, you could find old levels when entering a new room.
+
+NaOH's forest exit has animated candles. Physics remain identical.
+
+Singleplayer nuke buttons don't have a red background anymore. I want to
+redesign multiplayer nuke buttons, e.g., by printing overtime on them.
+
+0.6.32
+------
+
+2017-04-11
+
+Partly fix #182: Draw a rudimentary exploder flame over the lix's head
+in multiplayer. I don't draw a fuse yet, and I don't examine the spritesheet
+for the exact eye position.
+
+Fix #190: Override "asdfasdf.ethz.ch" with "lixgame.com" in outdated
+config files left behind by C++ Lix.
+
+0.6.31
+------
+
+2017-04-06
+
+Fix #186: Observers can't assign skills even locally.
+
+Fix #58: Option to keep replay actions after framestepping backwards over them,
+this is enabled by default. mobius likes to remove them on framestepping.
+
+Don't float-downscale UI CutbitElements, always display at integer scale >= 1.
+
+Removed images/matt/oriental/dragon.png. That tile was huge, clashed
+in style with other pieces, and is nowhere used.
+
+0.6.30
+------
+
+2017-03-30
+
+Fix #184: Observing players don't add colors to the game. There is still a
+bug with observers: The can assign skills, changing their own replay, even
+though others won't interpret these assignments.
+
+Maybe fix #177: Multiplayer or state-loaded singleplayer produced outdated
+land, even though physics were correct. Copying the land without transparency
+should fix that.
+
+0.6.29
+------
+
+2017-03-29
+
+Moved gamestate memory management from GC with manual GC calls to reference
+counting. Maybe that fixes #177, outdated terrain during multiplayer?
+
+Fix #179: Unfocus lobby chat when a game starts.
+
+Fix #178: Don't flash the R for replaying during multiplayer.
+
+Fix #185: Hotkeyed zoom during multiplayer, even if the button isn't shown.
+
+Fix #171: Terrain browser doesn't upscale small tiles.
+
+0.6.28
+------
+
+2017-03-18
+
+First version for the networking test on lemmingsforums.net.
+
+Removed the option to untrap the mouse with quick mouse movements. This
+option was buggy on linux and has always required workarounds. To untrap
+the mouse now, press Alt+Tab.
+
+Matt's winter hatch has no snow, but wooden triangles.
+
+0.6.27
+------
+
+2017-03-16
+
+In multiplayer, the server sends time-syncing packets to all players in a
+room. This happens every 0.5 seconds during the first few seconds in the game,
+and every 5 seconds later on. Players adjust their physics' speed to match.
+Even if players open the ESC menu, a networked game will continue to run.
+
+0.6.26
+------
+
+2017-03-09
+
+NepsterLix 1.6 is an excellent singleplayer puzzle pack with 106 levels.
+It was released in 2016, now it's finally included in the main download.
+
+Sharper small text on small resolutions such as 800x600 and below: Instead
+of small shadow text, I print small text with a dark outline.
+
+More networking code: Transferring and interpreting game data works.
+Can't interrupt other players' replay actions anymore. Game's network
+connection is picked up by lobby after game. But the server doesn't yet
+send time-syncing packets every few seconds, thus clients will time-shift.
+
+0.6.25
+------
+
+2017-03-05
+
+The Windows executable has a Lix icon in the file manager. On all operating
+systems, the application window and taskbar entry have a Lix icon.
+
+0.6.24
+------
+
+2017-03-04
+
+Fix #167: Editor button zooms again. Map is rezoomed when editor resizes map.
+
+Fix #170: Game crashed due to the Nurse indexing players in the replay by
+PlNr. Now, the replay uses a PlNr-indexed associative array.
+
+I offer more zoom values: 1/sqrt(2), 1, sqrt(2), 2, 3, 4, 6, 8, 16, and
+fitting the level's width or height to screen.
+
+0.6.23
+------
+
+2017-03-02
+
+Fewer zooms are considered similar. This addresses Nepster's concerns:
+http://www.lemmingsforums.net/index.php?topic=3128.msg63116#msg63116
+
+Fix #169: I validate all user files for good UTF-8 before calling Phobos.
+
+Implemented the transparent console for networking messages during play.
+
+I've worked on starting networking games and transferring game data.
+I haven't tested this yet, don't expect anything yet.
+
+0.6.22
+------
+
+2017-02-18
+
+When you zoom in or out, the mouse points to the same pixel on the land
+before and after the zoom. Exception: Map scrolling is restricted on low zoom.
+
+Fix: In-game map boundary was sometimes too thin, there was a 1-pixel wide
+column or row of non-erased pixels between the boundary and the land.
+
+Fix #94: Show spawn interval only when hovering over a hatch. I'm showing
+it in the panel still, not laid over the hatch, which would have been better.
+
+If a map is taller than wide, it tries to fit its width to the screen width,
+not the height.
+
+0.6.21
+------
+
+2017-02-16
+
+Merged a contribution by CyberShadow to upscale the 640x480 GUI icons
+for high resolutions by integer factors when no high-res icon exists. Thanks!
+
+Initial zoom fits the level height on the screen height, allowing horizontal
+scrolling if the map is very wide. Exception: The map is only slightly wider
+than the screen, then initial zoom fits the width on the screen width,
+generating a black border at the top.
+
+When you increase the zoom factor, the game centers on the mouse cursor.
+
+0.6.20
+------
+
+2017-02-04
+
+Code compiles with dmd 2.073: Masks initialize at runtime, before main menu.
+I removed tharsis.prof, that dependency didn't build with dmd 2.072.
+
+Reworkings under the hood towards minimum viable multiplayer. In case you
+have replays from old C++ Lix, you can watch them in D Lix now. But you still
+cannot start multiplayer games yet in D Lix.
+
+0.6.19
+------
+
+2016-11-01
+
+I require Allegro 5.2 now instead of 5.0.
+
+Included Rubix's levels. They're all solvable in D Lix.
+
+Fix #159: Better encapsulation for physics caching. Don't switch timelines
+merely by framestepping back. Maybe this fixes Rubix's sporadic crashes, #154.
+
+Fix #24: GUI text vertically centered on buttons. I'd like to see how this
+looks on Windows machines.
+
+More work on the networking lobby. You can chat, browse rooms, send and receive
+levels, but can't start a game yet.
+
+0.6.18
+------
+
+2016-10-08
+
+Fix: When you picked a tile from the editor's tile browsers, the tile wouldn't
+appear in the level. Now it does again.
+
+0.6.17
+------
+
+2016-09-21
+
+Fix #153: I have culled the no-effect decoration. The still decoration is now
+solid terrain. Animated decoration is gone, except for the beach bonfire, which
+became a fire trap. I have changed levels that I distribute with the game to
+use the new tiles. Backwards compatibility for levels that I don't maintain:
+The level loading function silently replaces decoration with the new tiles.
+
+I removed the auto-replacements for Matt's terrain that I made in 2010 and
+2011. Almost no levels relied on them anymore, and I've changed the remaining
+two levels that did. These levels remain functionally identical.
+
+Fix #156: Switching to a parent directory in the singleplayer browser clears
+the preview again.
+
+Rubix has created a cute sound for (singleplayer, you have lost too many lix).
+It's included, and plays once when triggered, not five times like the old tick.
+
+The warning sound for empty skill doesn't play on mouse click, only on hotkey.
+
+0.6.16
+------
+
+2016-09-14
+
+Fix #152: The singleplayer browser has a button to create a new level.
+This button is always visible, whether a level is selected or not.
+
+Fixed smearing FPS text in the editor.
+
+0.6.15
+------
+
+2016-09-13
+
+Started networking backend, lobby, and console. You can log onto the central
+server at lixgame.com and chat.
+
+Fix #145: The editor calced twice after its boxes lost focus. You could cancel
+a box with a hotkey, and the editor interpreted the hotkey itself once more.
+
+Fix #151: When there is no savestate, the state-load button is hidden.
+
+Fast movement frees mouse: This option is off by default.
+
+0.6.14
+------
+
+2016-09-01
+
+Command-line switches to jump into play:
+ lix level.txt plays the level.
+ lix replay.txt plays the replay against its included level.
+ lix --pointed-to replay.txt plays the replay against its pointed-to level.
+ lix level.txt replay.txt plays the replay against the given level.
+
+Minor bugs left behind here: Depending on from where the levels are run,
+they do or don't generate checkmarks. Auto-replays should always be saved,
+even if, when not run from the root directory, the replays are called unknown.
+
+Command-line switch to export images. The following command-line exports as
+images the two given levels, and all levels recursively found in mydir:
+ lix --image level1.txt level2.txt mydir
+
+Fix #149: Singleplayer always displays a dialog at end of play again,
+so you can control the entire application with the mouse alone. You can
+framestep back from this dialog.
+
+0.6.13
+------
+
+2016-08-27
+
+Lemforum levels got updates from August 2016. I deleted the tutorial levels:
+The lemforum pack is our flagship pack and starts with very easy levels.
+Other packs need not provide tutorial levels.
+
+Fix #142: There is a virtual file system. It recognizes ./ and ../ now.
+Other directories, in particular installations in Linux File System Hierarchy
+trees, aren't supported yet, but the necessary changes have become easy.
+
+Fix #148: When you fail a singleplayer level, the game halts and allows you
+to go back in time. It doesn't spawn a dialog box anymore.
+
+Fix #144: In the editor, when you mirrored a piece with transparent pixels at
+its sides, the piece moved. Entire selections diverged on repeated mirroring.
+
+Fix #84 and #90: The options menu explains its options, except on the editor
+tab. The box near the menu's bottom provides two lines of explanation.
+
+0.6.12
+------
+
+2016-08-07
+
+Fix #134: Select multiple tiles in the editor and press rotate.
+The tiles rotate correctly with respect to each other. Rotating 4 times
+puts them back exactly where they started, they don't wander. This works
+even if oddly-sized tiles or unrotatable gadgets are in the selection.
+
+Fix #139: The browsers for hatches, goals, decoration, and hazards display
+all tiles in the images/ tree in one listing.
+
+Fix #140: The terrain browser starts browsing from the directory of the
+tile you have selected at the moment. If you haven't selected anything,
+they start from the directory from which you've most recently added a tile.
+
+Fix #143: The file selector scrolls to the final row, even if it's less
+than half-filled. Before, the scrollbar looked like there were more files,
+but didn't make the tiler display these extra files.
+
+Swapped author and level title in the editor's constant-setting window.
+
+0.6.11
+------
+
+2016-08-06
+
+lemforum pack: Many updates by Proxima and geoo. Fewer lix in Hopeless.
+geoo has rebuilt Spin Geometry with completely new terrain, and renamed it
+to All Aboard the Pain Train. Off the Rails is now Railroad Plot, and
+Derailed Level got a derailing locomotive as decoration.
+
+Fix #117: Name-asking menu for new players exits with plain Esc. I don't
+display anything for this.
+
+Fix #131 and #111: Simpler starting zoom. Depending on your game
+resolution, either all levels start as 1x or all levels start as 2x. Test
+and see if you like the zoom for your resolution.
+
+Fix #122: When you continue from a saved replay, then win, or save
+manually, the new replay goes into the correct directory and points to the
+correct level file.
+
+Fix #133: The singleplayer menu shows the player's best score: Lix saved
+and skills used.
+
+Fix #138: Editor hotkeys work even while you're dragging. The buttons on
+screen are disabled for the mouse during drag.
+
+Fix #127: I hide dot-files, like .git, in level directories.
+
+0.6.10
+------
+
+2016-07-31
+
+In the lemforum pack, 237 of all 240 levels are guaranteed to be solvable.
+The remaining possibly-unsovable levels are Trading and Cooperating,
+The Mile High Club, and Striking News at Ten.
+
+Fix #116: Editor shows the top-left point of a multiple selection, the minimal
+coordinate each in both the x- and y-direction.
+
+Fix #130: After state-loading a different timeline, framestepping moved back
+to the undesired timeline. Now, I discard old savestates until the merge base
+of the two timelines, and recompute from there on savestate.
+
+Fix #91: Editor buttons are disabled when dragging.
+
+0.6.9
+-----
+
+2016-07-27
+
+Miners throw their pickaxe into the air when they hit steel.
+
+Option: Do fast mouse movements untrap the mouse from windowed Lix?
+
+lemforum pack updated by Proxima, again first 5 ranks solvable.
+
+0.6.8
+-----
+
+2016-07-22
+
+Decoration updated on Any Way You Want, The Road Goes Ever On, Just Stop
+the Bleeding.
+
+Fix #125: disksave.ogg was too loud, changed from 0 dBFS to -4.5 dBFS.
+
+0.6.7
+-----
+
+2016-07-22
+
+The lemforum pack's first 5 ranks are guaranteed to be solvable. geoo has
+given maintenance of the lemforum pack to Proxima. Proxima has spent days
+on careful level adaption to D Lix and difficulty reordering.
+Out: Get Down From There, Minimalism Part 3.
+In: Don't Look Back (jagged floor instead of a time-limit gadget),
+ Canadian Glade (inspired by Get Down From There, uses the forest tileset).
+
+Fix #111: Initial zoom on torus maps was too zoomed in.
+
+Fix #112: Hotkey labels ran over nearby buttons.
+
+Fix #118: When Lix wasn't the foreground window, it trapped the mouse
+nonetheless when the cursor passed over the inactive window. Now, you must
+click into the window to trap the mouse. This fix made visible another bug:
+In the inactive Lix, the ingame cursor moves offset from the hardware cursor.
+
+Worked on #124: I don't add 0x0 as a fullscreen mode anymore.
+
+0.6.6
+-----
+
+2016-07-17
+
+The lemforum community pack has Proxima's suggestions up to 2016-07-17.
+Several levels have moved between ranks. Some have been replaced entirely:
+Out: Minimalism (Part 1), Fear of Heights, That Pesky Gap, Don't Look Back,
+ Too Far to Walk
+In: A Necklace of Raindrops, The Road Not Taken, All Around the World,
+ Diggin' the Air, A Soulful Bounding Leap
+
+--coverage switch to use along with --verify, to compute level directory
+coverage. From all levels that reside in level directories from where you
+have tested at least one pointed-to level of a replay with --verify,
+--coverage lists those levels that didn't enjoy even a single solution.
+Please read levmaint.txt for detailed instructions. Example command line:
+
+ lix --verify=replays/path/to/dir --coverage
+
+Fix #113: Shorter key names with unicode symbols. In particular, keys on
+the numeric pad have a nice symbol that looks like the keypad.
+
+Fix #120: Topology updates correct equation, not only the horizontal equation
+
+Some assertions to debug issue #121 on MacOS.
+
+0.6.5
+-----
+
+2016-07-03
+
+Fix #103: When you re-enter the window, the ingame mouse starts moving from
+where the hardware mouse entered the window.
+
+Fix #108: Adventure Playground displays again in the preview and is playable.
+
+The replay browser has two buttons to start replays: One replays against the
+included level, one replays against the pointed-to level.
+
+Updated the lemforum community pack to geoo89/lixlfpack commit 2a91852.
+This reorders some levels. Two levels have been replaced entirely:
+Out: Three Days of the Condor, Absolute Zero
+In: Lixes in Motion, Eye of the Needle
+
+Afterwards, the lemforum pack got fewer initial lix in the lower three ratings
+Simple, Quirky, Cunning. Proxima has played all these levels, tested for
+solvability under a fixed spawn interval, and recommended lower initial lix
+counts that keep the level idea fully intact. We have removed about 2,000 lix.
+
+0.6.4
+-----
+
+2016-06-27
+
+Editor increases the level's $BUILT when saving a changed level.
+
+Fix #106: With mixed dirs and files, picker couldn't scroll to the last file.
+Fix #107: Prefer queuing builders to spamming, then you couldn't queue at all.
+
+New user option to unpause on skill assignments.
+
+Tutorial levels are solvable again, and you can't die in them as easily.
+
+0.6.3
+-----
+
+2016-06-22
+
+Fix #97: The game advances physics on assignment and unpauses on nuking.
+
+The browsers' breadcrumbs are wider and less tall. I don't display the current
+directory in the browser's title bar anymore. The picker shows 20 files
+instead of 19, this fixes #96.
+
+The preview draws a dark border around the level instead of the menu color.
+Under the preview, I write the level name.
+
+0.6.2
+-----
+
+2016-06-20
+
+Multiple hotkeys can be bound to the same function. By default, the editor
+moves tiles both with the arrow keys and with ESDF. Pause is bound to [Space]
+and to the middle mouse button.
+
+Editor grouping, ungrouping, saving, and save-as can be hotkeyed.
+
+0.6.1
+-----
+
+2016-06-18
+
+Editor displays the trigger area of all gadgets.
+
+0.6.0
+-----
+
+2016-06-15
+
+Physics: Imploder mask is symmetric. It's wider by 1 lo-res pixel to the right.
+
+You can drag the scrollbar thumb with the left mouse button.
+
+0.5.0
+-----
+
+2016-06-14
+
+Physics: Groups with steel have correct distribution of steel, earth, air.
+
+I highlight on the map the lix under the mouse cursor who would get assigned.
+
+The Editor allows to ungroup tiles.
+
+I show hatch spawn direction, describe hovered tiles, and use a more
+peaceful color flow for hovers and selections. Save-as forbids special chars.
+
+The game shows the constant spawn interval in the panel. I don't know
+whether I want to keep this and make an icon for it, or whether people
+don't need it later.
+
+0.4.4
+-----
+
+2016-06-06
+
+Bugfixes for these github issues:
+#67: Z-ordering several tiles
+#85: Hover sorting guarantees group's z-order
+#81: Crash on nonexistant base directory of a browser
+Button hotkeys are drawn on top of buttons, not behind main text.
+
+I now try to paint the screen black immediately on display creation.
+I don't want a white flash before showing the main menu. I have to test at
+Icho's Windows machine whether this prevents the white flash.
+
+0.4.3
+-----
+
+2016-06-02
+
+Loading levels auto-converts from no-overwrite to tile groups.
+
+Even in a release build, an on-the-fly conversion takes 5.5 seconds for
+A Day In Lixtown and 1.2 seconds for Heed the Traffic Light. Lixtown has 2000
+pieces and does fancy tricks with no-overwrite. I have to decide whether
+the performance is acceptable, whether to improve the algorithm, or whether
+to save converted levels to file.
+
+Merged a tree tile by Amanda to prevent getting stuck in its leaves.
+
+Editor remembers the recently-loaded or recently-saved file, similar to how
+the game remembers the recently-played level. The singleplayer browser
+shows the most recent file.
+
+Don't show elapsed time in singleplayer. It looks like a time limit.
+Does anyone want the elapsed time shown nonetheless?
+
+0.4.2
+-----
+
+2016-06-01
+
+Level reads and writes tile groups.
+
+The game renders groups with correct air parts inside.
+I haven't tested steel, I expect bugs when grouping steel.
+
+There is no conversion yet from no-overwrite to groups.
+
+0.4.1
+-----
+
+2016-05-25
+
+Game and editor draw a thin line at the torus seam. This is optional.
+
+The automatic screen start snaps to the level boundary if it's close to it
+and the level has no wrapping in that direction.
+
+Started tile grouping using Nepster's algorithm. Thanks for the straightforward
+idea in O(n^2), with tips on how to optimize to O(n log n) if wanted!
+
+0.4.0
+-----
+
+2016-05-23
+
+Physics change: Climbers couldn't ascend into 1-pixel high gaps with an
+overhanging ceiling.
+
+Fix #73: Tile selection boxes were offset. Reason: A5 rotates tiles clockwise.
+Many parts of the D Lix source assumed a counter-clockwise rotation.
+
+0.3.7
+-----
+
+2016-05-21
+
+The editor's save-as dialog is implemented. It doesn't preview the old level,
+but asks before overwriting.
+
+0.3.6
+-----
+
+2016-05-18
+
+Editor: new file, quit, and save to existing file are implemented. The editor
+asks whether you would like to save when you would lose data on new or quit.
+
+Fixed an editor crash on querying terrain on tiles with negative coordinates.
+
+The editor saves to ./levels/editor-emergency-save.txt when you click save-as,
+because save-as is not implemented yet. The editor saves to that file too
+on assertion fails, as a safeguard.
+
+0.3.5
+-----
+
+2016-05-15
+
+geoo has designed awesome glyphs, representing mouse wheel and buttons.
+The infinity symbol is now a big lemniscate. I've included the new glyphs
+in the default font. Thank you, geoo!
+
+Editor has a window to set the main level constants, and another to set
+the level topology. Non-browser-opening editor buttons have words, not icons.
+This addresses issue #74 partially.
+
+The editor can only set the English level title. You can set the intended
+number of players per level, but that field has no effect anywhere yet.
+
+0.3.4
+-----
+
+2016-05-08
+
+Right mouse button, middle mouse button, wheel up, wheel down are all available
+keys to map in the hotkey dialog. There are two keys to map for zoom now.
+Default value for zoom-in is wheel-up, default for zoom-out is wheel-down.
+
+Removed the boolean options that became superfluous after allowing mouse
+buttons as hotkey bindings. Set the edge scroll speed to 0 to disable it.
+
+Pause accepts two keybindings. I'd like multiple keys for any function.
+
+Singleplayer browser shows author and save requirement, allows to delete level.
+
+Culled variable spawn interval UI and level variables.
+
+Fixed wrong phymap querying: clamping coordinates on a torus must wrap them.
+
+Fixed a crash, the game tried to dispose a null state after long play.
+
+0.3.3
+-----
+
+2016-05-03
+
+Fix #42: Zoom increases at level start until at least 70 % of map screen
+space is filled. This makes for dynamic zoom per level, per resolution.
+
+Fix #31: I drew air where solid after batch-framestepping, when lots of
+drawing and removing happened in short succession. geoo has suggested
+the new algorithm that's both simpler and bug-free. Thanks!
+
+0.3.2
+-----
+
+2016-05-03
+
+Editor skill window: Clicking the label "Fling-exploder" affects checkbox,
+too. Buttons resized and captioned according to Proxima's suggestions.
+
+0.3.1
+-----
+
+2016-05-01
+
+File picker scrolls with the mouse wheel.
+
+Replay browser can delete files and lists player names next to files.
+
+The editor keeps the manual or automatic screen start from old levels,
+even though it cannot change the screen start yet.
+
+Fix #66: Boolean options react to mouse clicks on their label, not only
+to mouse clicks on the checkbox itself.
+
+0.3.0
+-----
+
+2016-04-27
+
+Physics change: We don't check for physics near the eye, which would have
+depended on the spritesheet. Instead we check at (foot) + (0, y), where
+y is 0, -4, -8, and -12. This check is independent from the current lix job.
+Rationale: http://www.lemmingsforums.net/index.php?topic=2678
+
+0.2.49
+------
+
+2016-04-27
+
+Level and replay browsers select adjacent directories and files by hotkey.
+
+Tile browsers in the editor remember the last-chosen tile's directory,
+and use the screen real estate better with 6 x 10 items at a time.
+
+0.2.48
+------
+
+Fix: Singleplayer results overwrite outdated level results.
+
+Editor rotates and mirrors terrain pieces, and toggles the dark flag.
+
+When you enter a directory in a browser and the picker highlights the
+recent file, this file is scrolled into view.
+
+0.2.47
+------
+
+2016-04-20
+
+Fix #65: Sign error when computing the offset for steel checks. The error
+shifted steel checks too far into the ground and to the right.
+
+Backwards framestepping is accelerated by 1/lag, where the lag is measured
+as ratio (FPS / ideal number of FPS). Slight difference in memory management
+for savestates, but no manual management yet.
+
+0.2.46
+------
+
+2016-04-20
+
+Fix regression #64: Options menu didn't offer choice of language.
+
+Fix minor bug #62: Profiling via version statements, not empty structs that
+would make a call to an allocating string-formatter.
+
+Fixed a crash on opening non-UTF8 files in the Lix file format reader.
+
+Editor allows to clone and z-order-rearrange tiles. There is a bug left behind
+when reordering many pieces at once: Sometimes, they reorder among each other
+only, producing no change after the entire reordering command.
+
+Sound effects are loaded lazily, that boosts the program start.
+
+0.2.45
+------
+
+2016-03-11
+
+Editor UI allows to set the grid by mouse and hotkeys, as in C++/A4 Lix.
+
+Editor moves tiles according to the grid. The clicked-and-dragged tile snaps
+to the grid. All other selected tiles move along with it, without snapping to
+grid themselves. When moving by keyboard, nothing snaps to grid. The behavior
+in this paragraph is identical to C++/A4 Lix.
+
+Editor saves on exiting to ./levels/editor-test.txt.
+
+0.2.44
+------
+
+2016-03-30
+
+Browsers offer breadcrumb navigation to pick directories.
+We're missing some central features in these browsers now:
+https://github.com/SimonN/LixD/issues/63
+
+Fixed imports for dmd 2.071.
+
+0.2.43
+------
+
+2016-03-26
+
+Editor offers the window to set skills.
+
+The chosen ploder is loaded and offered during play. Levels remember the
+chosen ploder, even if 0 ploders are available. The ploder shown on the
+panel is the nuke skill.
+
+Bug #4 (game ignores tiles that don't fit into VRAM) doesn't crash anymore,
+but ignores the tile instead. The game shows the missing-image error.
+
+0.2.42
+------
+
+2016-03-23
+
+Editor adds pieces selected from the tile browser. Editor moves tiles by
+keyboard and mouse. No snapping to grid yet.
+
+Fixed #57: The builder gets closer to a vertical wall before stopping.
+Fixed #60: The editor selects newly-added tiles immediately.
+Fix: Editor-added tiles are clamped to the map, they don't spawn off-bounds.
+Fix: The file listing ignores files with pre-extension X, like _order.X.txt.
+
+Rewrote many functions everywhere to take one Point instead of 2 ints.
+I have to test for performance regressions.
+
+0.2.41
+------
+
+2016-03-18
+
+Singleplayer browser, replay browser, and editor terrain browser all use
+the new file picker.
+
+Bugs:
+* Keyboard controls for file up/down are missing. Regression due to rewrite.
+* Scrollbar doesn't react to mouse wheel, or to clicks on the track or car.
+* Replay browser formats the button like the level browser. There is a
+ child class for replay button formatting, which I am not using yet.
+
+Misdesign: Picker should control UpOneDirButton. See comment in uponedir.d.
+
+0.2.40
+------
+
+2016-03-13
+
+Editor has a terrain browser that can only exit. No browsing for terrain yet.
+There's a scrollbar in that terrain browser. The buttons at its end can be
+clicked and move the car. The car doesn't do anything when dragged or pulled.
+
+0.2.39
+------
+
+Fixed bug #51: Basher always left relics after his first swing.
+
+0.2.38
+------
+
+Editor moves tiles by dragging with the mouse. No keyboard movement yet.
+
+0.2.37
+------
+
+2016-03-06
+
+Editor can select all tiles.
+
+Editor can add and remove tiles to/from the existing selection.
+
+0.2.36
+------
+
+2016-03-05
+
+Fixed the bug described in 0.2.35: Frame-spanning goes across or not across
+the torus seam, according to mouse position on the screen. I like the results
+in many cases so far. Anything more would require tracking the map scrolling.
+
+Editor has a button for frame-dragging. The button's on-ness and its hotkey
+are handled in a nonstandard way, which we want.
+
+Editor has a zoom button toggling between 1x, 2x, 4x zoom, like the game.
+We should brainstorm about the zoom UI, and about default zoom.
+
+0.2.35
+------
+
+2016-03-05
+
+Editor frame dragging implemented. It selects the correct pieces on a torus.
+
+Bug: It doesn't yet span the frame in the correct direction. Right now,
+it always spans so that the torus seam is not included.
+
+0.2.34
+------
+
+2016-03-03
+
+Top edge kills unconditionally.
+
+The editor counts and annotates hatches and exits.
+
+0.2.33
+------
+
+2016-03-01
+
+I run D's garbage collection whenever there are obsolete game states during
+play. Profiling result: My 9-year-old laptop takes 3 ms per collection.
+At 16.6 ms per frame, this slows down the back-by-1-second command.
+My goal is to attack this bug: https://github.com/SimonN/LixD/issues/38
+Let's see whether anybody experiences this bug #38 still, then think again.
+
+0.2.32
+------
+
+2016-03-01
+
+Application starts much faster. All bitmap-loading and recoloring is lazy.
+Only eye matrix generation is eagerly done at application start.
+
+0.2.31
+------
+
+2016-02-28
+
+Implemented editor delete button.
+
+0.2.30
+------
+
+2016-02-27
+
+Fix #52: Mose over a transparent terrain tile, gadget behind it:
+This selects the gadget now. Before, it selected the terrain tile.
+
+0.2.29
+------
+
+2016-02-25
+
+Editor selects pieces on mouse click. No moving yet.
+
+Game starts slightly faster, because I'm not searching through all internal
+graphics of all resolutions. Most internal graphics are loaded lazily.
+Spritesheet/player-dependent GUI elements are still eagerly loaded, so there
+is opportunity for optimization here.
+
+0.2.28
+------
+
+2016-02-24
+
+Fix: Replays were saved with a null $BUILT instead of the level's $BUILT.
+
+Editor mouse hovering: Solid pixels are more important than the selection box.
+Holding priority invert inverts the entire sequence of terrain and gadgets.
+
+Refactored the code, Filename and Date are immutable by default.
+
+0.2.27
+------
+
+2016-02-21
+
+Fix #49: Animate gadgets (most importantly, water and fire) on level start.
+
+0.2.26
+------
+
+2016-02-21
+
+Game saves level result on leaving play, or on loading an old state.
+Autoreplays are only saved on leaving the game. Should they be saved on
+reaching the end-of-game dialog already?
+
+0.2.25
+------
+
+2016-02-20
+
+The singleplayer browser shows checkmarks next to solved levels. However,
+the game doesn't save any new checkmarks on winning yet.
+
+0.2.24
+------
+
+2016-02-17
+
+The editor draws white rectangles around all mouse-hovered terrain pieces.
+Refactored TerPos and GadPos to be subclasses of AbstractPos, not structs.
+
+Fix: Editor dark terrain doesn't overwrite gadgets anymore.
+
+0.2.23
+------
+
+2016-02-16
+
+Editor renders terrain and gadgets. It uses the same scroll starting position
+as the game. I want to reintroduce the manual scroll starting position.
+
+0.2.22
+------
+
+2016-02-15
+
+Fixed #44: We sort dirs and levels according to the listing _order.X.txt.
+
+0.2.21
+------
+
+2016-02-14
+
+In singleplayer, lix start spawning 1 second after level start, not 4 seconds
+after start. The nan-nan sound is played when you start the game, or whenever
+you revert to the starting position.
+
+Fixed #48: Assertion failure of climber on torus maps.
+Fixed sprite positioning of the climber.
+
+0.2.20
+------
+
+2016-02-12
+
+The panel displays elapsed minutes and seconds since level start.
+
+Time limits or overtime haven't been introduced yet. I'm considering to
+cull singleplayer time limits from the game altogether.
+
+0.2.19
+------
+
+2016-02-11
+
+Fixed an assert fail for new users upon entering the singleplayer browser.
+
+Added a command-line switch to force true fullscreen an arbitrary resolution.
+This makes the game run for Ramond. If you have problems getting Lix to run,
+try the following, replacing 1600x900 with your possibly different resolution:
+
+ lix --hardfull=1600x900
+
+0.2.18
+------
+
+2016-02-10
+
+Sped up turbo-fast-forward: I auto-savestate only every 50 frames instead of
+every 10 frames during turbo-fast-forward.
+
+0.2.17
+------
+
+2016-02-09
+
+Tiles are loaded differently, depending on whether they're terrain or gadgets.
+Terrain tiles are loaded with an extra physics map, and a white copy of
+themselves for fast dark-drawing.
+
+I don't think this speeds up the creation of the physics mask, I'm still pretty
+slow with that. This vastly speeds up the creation of the level preview image
+and the VRAM level bitmap. There is profiling by RAM/VRAM and by drawing mode
+of the tiles.
+
+Fixed an assert fail in the file listings used by the browser.
+
+Fixed #40: Misaligned image/physics for dark piece.
+I want to ask Clam before I close this issue.
+
+Culled the trampolines.
+
+0.2.16
+------
+
+2016-02-06
+
+Started the editor. It displays terrain and can be exited.
+There is much to do still with terrain handling, dark, and no-overwrite.
+
+0.2.15
+------
+
+2016-02-04
+
+Slightly simplified the keyboard code. I don't believe this fixes Nepster's
+stuck keys, but it might be worthwhile to ask Nepster nonetheless about it.
+
+0.2.14
+------
+
+2016-02-03
+
+Culled the per-level option to set a custom screen starting position.
+The game centers on the average position of all hatches. This accounts
+for arbitrary distributions of hatches on tori.
+
+0.2.13
+------
+
+2016-02-02
+
+Blocker -> walker: removed 1 frame of the anim, to mimick C++ behavior.
+There is an entire unused frame now in the blocker->walker anim now.
+
+Most things -> walker: Added a stand-still walker frame.
+
+Floater y speed should match C++ floater.
+
+0.2.12
+------
+
+2016-02-02
+
+Platformer should behave as in C++ Lix now: The first brick is 8 pixels long,
+all bricks while kneeling are 6 pixels long.
+
+0.2.11
+------
+
+2016-02-01
+
+Fixed left-facing bashers, they now ignore steel in the top 2 hi-res pixels.
+
+Floater assignments don't cancel the builder queue anymore.
+
+0.2.10
+------
+
+2016-01-31
+
+Disabled the extra console on Windows by linking with -L/subsystem:windows.
+
+Panel offers imploders.
+
+Listing the included level's name in the replay browser when the pointed-to
+level is not there. There's a bug left over for now anyway, see commit message.
+
+0.2.9
+-----
+
+2016-01-31
+
+Fixed 3 little bugs: Effects are correctly deleted after framestepping back.
+On deleting a replay, the browser highlights the next one correctly again.
+The file browser title bar shows the correct subdirectory on browser startup.
+
+0.2.8
+-----
+
+2016-01-31
+
+Implement #34: The game mimicks the level tree when saving replays.
+
+0.2.7
+-----
+
+2016-01-30
+
+Fix #35: Omitting drawing allowed bypassing traps.
+
+The lix eye coordinate is used to determine where trigger areas affect the
+lix. Before this fix, the eye coordinate was only updated on drawing the
+lix, becasue the fuse should be positioned there. This allowed to bypass
+traps with the head.
+
+Also refactored over 1,000 lines of game code, for a slightly better separation
+of physics model and controlling/drawing code.
+
+0.2.6
+-----
+
+2016-01-28
+
+Fixed crash during replay verification upon nuking.
+
+0.2.5
+-----
+
+2016-01-28
+
+Making shutdown much faster by not freeing any RAM or VRAM.
+This is standard for RAM, I have to read up on VRAM practises.
+
+Loading way less internal data for replay verification, speeding up the
+startup in that mode massively. We have to decide whether the spritesheet
+should affect physics. Right now, existence of frames and eye positions
+are meaningful for the physics.
+
+0.2.4
+-----
+
+2016-01-27
+
+Noninteractive Replay verification implemented.
+Run it from the command line, as in C++ Lix:
+bin/lix --verify=replays/solutions
+bin/lix --verify=replays/manual/myreplay.txt
+
+Fix: Don't save every possible replay into replays/network/.
+
+Refactoring: Renamed PerformedActivity to Job. Made graphic objects, lixes,
+and gadgets take a Topology on construction instead of a Torbit. This makes
+the design much more lightweight, we don't even have to generate a Map for the
+noninteractive Game.
+
+0.2.3
+-----
+
+2016-01-26
+
+Command-line argument `--fullscreen' forces fullscreen, no matter what the
+user settings are.
+
+The menu-OK hotkey always performs the most sensible action in the window
+during a singleplayer game: resume if it's not at the end, exit if won,
+restart if failed.
+
+Editor button in the singleplayer browser, but it doesn't do anything yet.
+
+0.2.2
+-----
+
+2016-01-25
+
+Fix #15: Basher always left relics. The basher mask is 2 pixels wider in D
+Lix. The relics check accounts for that now.
+
+We wanted to start the basher faster by 2 frames in C++ Lix, to make it
+more powerful. Right now, this is implemented in D Lix, because I used as
+many recommendations by geoo as I could. In light of the mask that reaches
+further by 2 pixels, we should discuss that again. The faster-starting
+basher is still OK, probably.
+
+0.2.1
+-----
+
+2016-01-25
+
+Implemented ask-for-username menu when no name is given. This prevents having
+no name set, and therefore being unable to save options.
+
+Covered the empty space for the spawnint buttons with the info bar for now.
+
+0.2.0
+-----
+
+2016-01-24
+
+This is a test release, designed to try singleplayer. Don't replace your
+existing installation of Lix with this D/A5 port yet. Keep it separate.
+
+Minim has designed several scaled-up versions of the internal graphics.
+They're visible whenever the game's resolution is at least 1.5 times as big
+as the old 640x480. Many thanks to Minim for this work!
+
+Levels and terrain graphics have been updated from C++ Lix.
+
+I'm cross-compiling to Windows from Linux now. Let me know of any problems.
+
+0.1.40
+------
+
+2016-01-23
+
+Top-left corner of map shows the floating 'R' while replaying. The FPS are
+shown on the panel right now, that's intended as a temporary solution only.
+
+Lix target info in the panel shows (RCF) for runners/climbers/floaters, and
+displays the number of bricks left for builders and platformers.
+
+Replays cancel on LMB anywhere, and on activating the nuke.
+
+Fix: With lixes returning equal priority, the closest one to the cursor is
+preferred for an assignment. Previous bug: the farthest one was preferred.
+Inverting priority doesn't invert this check, which is correct.
+
+0.1.39
+------
+
+2016-01-22
+
+Fix #32: With mouse speed different from 20, RMB-scrolling continued to
+move even after the mouse has stopped moving, as long as RMB was kept down.
+
+0.1.38
+------
+
+2016-01-22
+
+The panel info bar uses the correctly recolored garden icons. They have the
+correct shadow, according to the user's GUI color settings. (Even though, like
+all GUI parts, they aren't recolored until the next program start.)
+
+graphic.gralib has been refactored into a package for better readability.
+
+0.1.37
+------
+
+2016-01-21
+
+The replay browser can delete replays. It asks for confirmation with a message
+box and moves the highlighting to the next replay.
+
+During the game, the panel's info bar shows colored icons with numbers,
+instead of the previously text-only lix counts.
+
+0.1.36
+------
+
+2016-01-19
+
+Faster drawing code, by holding bitmaps. Empty skills don't show their hotkey.
+Fixed an assert fail on framestepping backwards across Phybit.needCol.
+
+0.1.35
+------
+
+2016-01-18
+
+Hatches marked as rotated in the level format spawn lemmings facing left.
+
+0.1.34
+------
+
+2016-01-18
+
+Replays are saved automatically on quitting a solved singleplayer level.
+This still holds for exiting the game with Shift+Esc immediately.
+No replay tree yet; replays are saved as manual/*.txt or solved/*.txt.
+
+0.1.33
+------
+
+2016-01-18
+
+Fix #12: Builders, platformers and cubers won't overwrite existing terrain.
+Fix #22: Terrain removers don't draw over steel pixels.
+
+Neither fix has affected physics. The remover visuals were particularly
+urgent, because they made steel transparent, even though they didn't remove
+the steel.
+
+These fixes are implemented with iteration over the lookup map, then issuing
+many copies of 1x1 rectangles to the graphics card. This is likely slower
+than hardware shaders that examine the existing pixel. It's faster than
+making lots of 1x1 sub-bitmaps on the heap, then destroying these again.
+
+(Miner hits steel on my 9.5-year-old laptop: 30 ms for 1x1 sub-bitmaps, 7 ms
+for 1x1 rectangles. Miner digging only through non-steel earth is much faster,
+about 0.1 ms, and therefore uses the previously existing drawing code.)
+
+The cuber sprite is transparent where it has been drawn to land already.
+Now, the player can guess much better when which pixels are added.
+I've added a few sparky lines to the cuber's last few frames.
+
+I have removed the tumbler assert. See comment on issue #21:
+https://github.com/SimonN/LixD/issues/21
+
+0.1.32
+------
+
+2016-01-17
+
+Fix #28: Empty skills are now re-selected if replenished after state loading.
+Fix #29: Drawing explosions properly now.
+
+I haven't tested implosions. They should be drawn behind the terrain anyway,
+or get a completely new animation.
+
+0.1.31
+------
+
+2016-01-16
+
+Basher ignores top two rows of his 18 rows for steel.
+
+Partial fix of #22: basher/miner cancels on hitting steel, but still takes
+out some of the graphics. Physics are correct.
+
+After class Game finishes, the correct browser is loaded, either singleplayer
+or replay. Browsers exit on RMB. No option to auto-save singleplayer replays
+that fail the level.
+
+0.1.30
+------
+
+2016-01-15
+
+Replay browser implemented. Loads replays, renders the correct level in the
+preview. Program main loop calls game with the correct level and replay file,
+the game plays back the correct replay. After viewing the replay, the program
+goes back to the singleplayer browser, not to the replay browser.
+
+Framestepping backwards is more performant over long distances, it omits
+unnecessary intermediate savestates that would be discarded anyway. More ideas:
+https://github.com/SimonN/LixD/issues/26
+
+Slightly better text shadow positioning. Removed demo and benchmark code.
+
+0.1.29
+------
+
+2016-01-12
+
+Level preview renders and scales the level correctly, instead of displaying
+only a colorful rectangle.
+
+User savestating is implemented including saving/loading, but it doesn't
+preserve effects, see issue #23.
+
+Fixed bug #13: Framestepping buttons execute continuously on holding RMB.
+
+0.1.28
+------
+
+Implemented the nuke.
+
+Implemented replay arrows upon skill assignments, which are correctly
+played back during framestepping and after restarting the level.
+
+Explosions, flying pixels, and flying terrain remover equipment isn't in yet.
+
+0.1.27
+------
+
+Miner implemented with geoo's anti-shock C++ code.
+
+Flingers and trampolines are implemented.
+
+0.1.26
+------
+
+2016-01-04
+
+Singleplayer browser remembers the most recently played level.
+
+Fixed bug #18: Assigning runner to a walker didn't make her run immediately.
+Fixed bug #20: Assigning exploder to builder crashed the game due to
+inability to return skills.
+
+Fixed climber horizontal alignment with the wall, the alignment was set
+correctly previously, but never reset correctly.
+
+Exploder with flinging is now implemented similar to how it was in C++.
+It should be checked for accuracy, once loading replays from disk is
+implemented.
+
+Fixed a crash on becoming tumbler. There is still an elusive assert fail
+triggerable in the tumbler function. That should be debugged once replays
+can be loaded from disk.
+
+0.1.25
+------
+
+2016-01-03
+
+Fixed bug #19: Tumbler selected only frames 2 or 3. Now, it selects its frame
+by angle of flight now, while not advancing too far in any single frame.
+https://github.com/SimonN/LixD/issues/19
+
+0.1.24
+------
+
+2016-01-02
+
+Fixed bug #10: Map drawing: Target area too large.
+https://github.com/SimonN/LixD/issues/10
+
+0.1.23
+------
+
+2016-01-01
+
+Options menu complete. Some options don't do anything yet, but are loaded/saved
+correctly nonetheless. Removed fullscreen resolution option. Switching users
+works. Switching Language works.
+
+I found the first bug of 2016 in the D compiler. ^_^
+
+0.1.22
+------
+
+2015-12-31
+
+Implemented GUI elements: Text entry, number picker, hotkey picker.
+In the options menu, implemented 2/3 hotkey pages, and the graphics page.
+Each hotkeyed button displays its hotkey in the bottom-right-hand corner.
+
+Added 0.5f to the djvuM offset (the main font's vertical position), now
+it looks great on 640x480, 800x600, 1280x1024, and 1400x1050.
+
+0.1.21
+------
+
+2015-12-29
+
+Implemented goals (exits), triggered traps, and dying outside of the level.
+Implemented the Esc-during-level menu and the end-of-level menu. No browser
+to save/view replays yet. Begun implementing the options menu.
+
+0.1.17
+------
+
+2015-12-17
+
+Bugfix: Blockers are now released upon walker assignment.
+
+0.1.16
+------
+
+2015-12-16
+
+All skills are implemented fully or mostly each, except for the miner,
+which is missing completely still. Effects, like arrows, flying dig hammers,
+and explosions, are missing.
+
+Skills behave mostly identical to C++ Lix. Some extremely arcane behavioral
+bugs were fixed while porting; report if things behave obviously strangely.
+Probably also report if things behave differently.
+
+Known differences: Exploder crater is 1 pixel smaller, diameter of 46 pixels
+instead of 47 pixels, but should be completely symmetrical now. Blocker
+doesn't get released on walker assignment; this fixed only in 0.1.17.
+
+0.1.12
+------
+
+2015-11-30
+
+Implemented builder and digger. The builder still draws on top of existing
+land, which is merely a visual bug, not a physics bug. The digger makes
+steel transparent, but the steel and terrain data inside the steel remains
+present for physics; again only a visual bug.
+
+0.1.5
+-----
+
+2015-11-19
+
+Map detects mouse on the land properly, at least with zoom == 1. Priority
+computation has been ported over. You can click lix and hear the assign
+sound being played if the assignment were legal. Assignments aren't in yet.
+
+0.1.4
+-----
+
+2015-11-15
+
+Walker, Faller and Ascender are implemented and should perform like their
+C++ versions. I would like to keep close to the C++ behavior for now.
+Savestates have been implemented for framestepping. Skill assignments
+are not possible yet.
+
+0.1.2
+-----
+
+2015-10-30
+
+Started implementing Lix skills. There will likely be no problem with them
+scanning the terrain from the lookupmap. I'm anxious about them writing to
+the terrain later on, when the more interesting skills get added.
+
+0.1.0
+-----
+
+2015-08-24
+
+First Windows build released on Lemmings Forums as a smoke test. It runs
+well for most people. Drawing has bad performance still with about 3,500
+animated gadgets, but is much better with about 200 than in the previous
+months.
+
+0.0.0
+-----
+
+2015-02-28
+
+Started development by porting the fundamental Lix graphic classes from
+Allegro 4.4 to Allegro 5 with the D Programming Language.
+
+C++ Lix
+-------
+
+2006 to 2016
diff --git a/.SRCINFO b/.SRCINFO
index eb493dd6c277..2b792e943b9e 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,6 +1,6 @@
pkgbase = lix
pkgdesc = An action-puzzle game inspired by Lemmings
- pkgver = 0.9.48
+ pkgver = 0.10.0
pkgrel = 1
url = http://www.lixgame.com/
changelog = .CHANGELOG
@@ -14,7 +14,7 @@ pkgbase = lix
depends = enet
depends = hicolor-icon-theme
depends = liblphobos
- source = lix-0.9.48.src.tar.gz::https://github.com/SimonN/LixD/archive/v0.9.48.tar.gz
+ source = lix-0.10.0.src.tar.gz::https://github.com/SimonN/LixD/archive/v0.10.0.tar.gz
source = lix-music-1.zip::http://www.lixgame.com/dow/lix-music.zip
source = lix-allegro::git+https://github.com/SiegeLord/DAllegro5.git#tag=v4.0.4+5.2.0
source = lix-bolts::git+https://github.com/aliak00/bolts.git#tag=v1.3.1
@@ -27,7 +27,7 @@ pkgbase = lix
source = lix-silly::git+https://gitlab.com/AntonMeep/silly.git#tag=v1.0.2
source = lix-taggedalgebraic::git+https://github.com/s-ludwig/taggedalgebraic.git#tag=v0.11.22
source = lix-unit-threaded::git+https://github.com/atilaneves/unit-threaded.git#tag=v0.7.55
- sha512sums = 27e7e432625c9f6197601cea1062f8861cc4f82559f2b7fb74740b137cc6cf6f8bddec8146f821ba477d58676eb7b365922d390fa2fe5e4a649a9a9502afa2dc
+ sha512sums = 92625d77ee2c200b4430c36b9e7cd9bccfd12671e81a6f642cce592c51054e924a50d555aeacdc94f355a6150745cd5eca5296bc0f11636c2a1145627c9d4164
sha512sums = 37349c98b739ea43c25137dd03865f1c9c41eec91e5edc109afd9d50ce3871bd0c7f63c3f3599a47bb4ef52f5bfd14e034010de0ac2aec5a9c0c83eaf0b89425
sha512sums = SKIP
sha512sums = SKIP
diff --git a/PKGBUILD b/PKGBUILD
index 920e4e83a2ff..0837c102c41c 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -4,12 +4,12 @@
# shellcheck disable=2034,2154
pkgname=lix
-pkgver=0.9.48
+pkgver=0.10.0
pkgrel=1
changelog=.CHANGELOG
source=("$pkgname-$pkgver.src.tar.gz::https://github.com/SimonN/LixD/archive/v$pkgver.tar.gz"
"$pkgname-music-1.zip::http://www.lixgame.com/dow/lix-music.zip")
-sha512sums=('27e7e432625c9f6197601cea1062f8861cc4f82559f2b7fb74740b137cc6cf6f8bddec8146f821ba477d58676eb7b365922d390fa2fe5e4a649a9a9502afa2dc'
+sha512sums=('92625d77ee2c200b4430c36b9e7cd9bccfd12671e81a6f642cce592c51054e924a50d555aeacdc94f355a6150745cd5eca5296bc0f11636c2a1145627c9d4164'
'37349c98b739ea43c25137dd03865f1c9c41eec91e5edc109afd9d50ce3871bd0c7f63c3f3599a47bb4ef52f5bfd14e034010de0ac2aec5a9c0c83eaf0b89425')
_gitname=LixD