summarylogtreecommitdiffstats
path: root/.CHANGELOG
diff options
context:
space:
mode:
Diffstat (limited to '.CHANGELOG')
-rw-r--r--.CHANGELOG5462
1 files changed, 2747 insertions, 2715 deletions
diff --git a/.CHANGELOG b/.CHANGELOG
index ebb2cfecf341..0fb90192aac5 100644
--- a/.CHANGELOG
+++ b/.CHANGELOG
@@ -1,2715 +1,2747 @@
-Version history
-===============
-
-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.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