diff options
Diffstat (limited to '.CHANGELOG')
-rw-r--r-- | .CHANGELOG | 7639 |
1 files changed, 3835 insertions, 3804 deletions
diff --git a/.CHANGELOG b/.CHANGELOG index ab20182da5b0..c95a7a8b08d9 100644 --- a/.CHANGELOG +++ b/.CHANGELOG @@ -1,3804 +1,3835 @@ -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 +Version history
+===============
+
+0.10.1
+------
+
+2022-11-27
+
+The replay browser shows the filename of the currently selected replay in the
+nameplate below the preview, in addition to the existing fields (level name,
+player, pointed-to level). If the replay filename is too long, e.g., because
+you run Lix in a tall (= non-widescreen) resolution, the nameplate shows only
+the hinder part. This way, you'll see both the frontal part of the filename
+in the file picker on the left-hand side and the hinder part of the filename
+in the nameplate on the right-hand side.
+
+Added button to flip tiles vertically in the editor, in addition to the
+existing button that mirrors horizontally. No hotkey is bound by default
+to the vertical flip. You may assign a hotkey yourself.
+
+Hotkey reminders in button corners appear in lighter text than before,
+but still slightly darker than regular text.
+
+In the options menu, moved some menu hotkey options further right on the
+screen, to not overlap with the menu color pickers' description texts
+on tall (= non-widescreen) resolutions.
+
+In geoo's multiplayer map Ghetto Party, replaced imploders with exploders.
+This is funnier and stays true to the original two-player Ghetto Wars.
+
+Pruned empty space around Segmentation Fault in lemforum/Daunting.
+
+
+
+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
|