Welcome to XLennart...
Ever get the feeling that nothing is going right? You're a sysadmin, and
someone's trying to destroy your computers. The little people running around
the screen are trying to infect your computers with SystenD [TM], a virus
cleverly designed to resemble a popular init system. Your objective is to click
the mouse on them, ending the potential threat. If one of the people reaches a
computer, it will attempt to replace your operating system with the virus it
carries. It will then attempt to run off the screen with your vital software.
The game ends when only 1 (or 0) of your computers are being productive.
Additionally, some computers are connected with network cables. When one
computer on a network becomes infected, a spark will be sent down the cable,
and will infect the computer on the other end when it reaches there.
Clicking the button on one of the little people will cause it to cry out in
pain and melt (id software eat your heart out!), dropping the stolen os if it
is carrying one. If a computer is running SystenD or is temporarily off, the os
can be dragged back to the computer (or another computer compatible with that
os). To extinguish a spark drag the bucket of water from the upper left corner
onto it.
## v0.13.2 / 2017-01-27
Bugs:
* Bump dependencies to latest stable versions. Pango et al. to 3.1.1 and Cairo to 1.15.5. This fixes some compatibility issues we noticed on Linux and Macs.
LGOGDownloader 3.2
- Fixed crash in Website::getGames
* Sometimes JSON value for updates was null. For example when user
owns a dlc but not the base game. This caused a crash due to std::stoi
throwing std::invalid_argument exception.
- Changed --login to use GOG Galaxy login method
* Galaxy login tokens are stored to "$XDG_CONFIG_HOME/lgogdownloader/galaxy_tokens.json"
- Added initial support for some Galaxy API features
- Show product id for game when using --list-details
* Product id is used with some Galaxy related commands
MASTER_SITES= site1 \
site2
style continuation lines to be simple repeated
MASTER_SITES+= site1
MASTER_SITES+= site2
lines. As previewed on tech-pkg. With thanks to rillig for fixing pkglint
accordingly.
0.92.1
- Fixed large menu scale factors (was broken in 0.92.0).
- Fixed PAUSE key (was broken in 0.92.0).
- Updated some of the third-party libraries.
0.92.0
- SDL2 Game Controller support.
- Contrast support with new "contrast" cvar, behaving the same as MarkV.
It may be a useful alternative to the existing gamma control for
laptops in a bright environment, etc. Raising contrast gives less of a
gray/washed out look than raising gamma, but at a disadvantage: colors
near white get clipped to white.
- RMQ protocol (999) support, adapted from RMQEngine.
- New "-protocol x" command line option. Accepted values for 'x' are 15
(NetQuake), 666 (FitzQuake, default), and 999 (RMQ).
- New "setpos" console command.
- New "vid_borderless" cvar for getting a borderless window.
- Increased MAX_MAP_LEAFS from 65535 to 70000 and MAX_LIGHTMAPS from 256
to 512 in order to handle the oms3 map pack.
- Server edicts are now allocated using malloc instead of allocating on
the hunk.
- gl_clear now defaults to 1.
- Fix items falling out of the world on oms3.bsp on SSE builds.
- Worked around an OSX 10.6 driver bug when using FSAA, which was
leading to an unplayable HOM effect on the rest of the screen.
- Fix wrong trace endpoint from the tracepos console command.
- Updated some of the third-party libraries. Other fixes/clean-ups.
0.91.0
- Fix unwanted fog mode change upon video restart.
- Work around Intel 855 bug in status bar drawing with "r_oldwater 0"
and "scr_sbaralpha 0".
- Fix an obscure GLSL bug where changing gamma would result in the
screen turning to noise.
- Fix GLSL gamma causing the tiled screen border to turn white when
"sizedown" is used.
- Fix an alias model VBO renderer bug where a model not precached
during map start wouldn't be drawn.
- Fix the order of OpenGL context creation and window creation in SDL2
video.
- Fix a calling convention issue in windows DPI awareness function
pointers.
- Fix a random texture recoloring after video mode change.
- Fix a liquid turning to garbage after several video mode changes and
"r_oldwater 0".
- Fix a wrong alpha-sorting bug introduced in 0.90.1.
- Fix "flush" command not reloading mdl's from disk (bug introduced in
0.90.1).
- Prevent a possible buffer overflow in Cbuf_Execute (old Q1/Q2 bug).
- Prevent a possible vulnerability in MSG_ReadString (old Q1/Q2 bug).
- New cvars r_lavaalpha, r_slimealpha, r_telealpha for fine-tuning
specific liquid opacities (from DirectQ/RMQEngine, non-archived,
default to 0), and new worldspawn keys _wateralpha, _lavaalpha,
_slimealpha, _telealpha, _skyfog (unique to Quakespasm, similar to
the behaviour of the "fog" worldspawn key).
- GLSL gamma is now supported on older hardware without NPOT extension.
- New r_pos command to show player position.
- NaN detection in traceline with "developer 1" set now warns instead of
errors.
- Update third-party libraries.
- Default max_edicts 8192 (was 2048) and no longer saved to config.cfg.
- Default heapsize 256 MB (was 64 MB).
- Default zone 4 MB (was 384 KB).
- Raised MAX_SFX to 1024 (was 512).
0.90.1
- Fix dynamic light artifact where changing lightmap are rendered one
frame late (bug introduced in 0.90.0).
- Fix texture memory leak when changing video modes with SDL2.
- Fix rare incorrect mdl lighting on 64-bit builds. (details here.)
- Fix fullbrights turning black after "kill" command (bug introduced in
0.90.0).
- Clear all fog values on map change to prevent colored fog carrying
over to jam3_tronyn.bsp.
- Allow loading saves with } character in quoted strings, fixes issue
with retrojam1_skacky.bsp.
- Fix viewmodel not lerping on extended-limit maps.
- Fix crash on out-of-bounds skin number.
- Use multithreaded OpenGL on OS X for better performance.
- New, faster mdl renderer using GLSL. Disable with "-noglslalias".
- New gamma correction implementation using GLSL. Fixes all known gamma
issues (affecting the full display, persisting after quitting, or
darkening the screen on OS X). Disable with "-noglslgamma".
- Use high-quality water by default (r_oldwater 0).
- Shadows use stencil buffer to avoid overlapping artifacts (from MarkV.)
- r_noshadow_list cvar added (from MarkV.)
- Support pausing demo playback with the "pause" command.
- Autocompletion for "game", "record", "playdemo".
- Experimental windowed fullscreen mode available with
vid_desktopfullscreen 1 (only in SDL2 builds, takes effect upon
entering fullscreen mode the next time.)
- Silence "exceeded standard limit" messages unless developer cvar is
>= 1.
- Some spam moved from developer 1 to 2: "can't find tga/lit/ent",
"trying to load ent", "bad chunk length", "meshing",
"PR_AlocStringSlots: realloc'ing"
- Clean up IDE project files to build on fresh systems.
- Update 3rd-party libraries.
LGOGDownloader 3.1
- Make libcurl usage thread-safe (Patch by: Philipp Kerling)
* libcurl internally uses signals by default, which will crash the application when using multiple threads.
* Setting CURLOPT_NOSIGNAL on all handles avoids the crashes and is recommended in the libcurl documentation.
- Made getTerminalWidth detect if it is running in a terminal before trying to get the width (Patch by: Steffan Byrne)
* Before this change, if you tried to pipe the standard out to a file or run this as a process, it would fail.
- Moved global curl init/cleanup and ssl thread setup out of the Downloader class
* Allows using libcurl calls before calling Downloader::init() which can be useful in future
- Some code restructuring
* Moved some code from Downloader::init() to constructor
* Added function API::isLoggedIn()
* Added function Downloader::isLoggedIn()
* Downloader::init() no longer calls Downloader::getGameList() it is now called from other functions when needed
- Fixed some login issues
- Limit download thread count to number of items in download queue
- Rewrote and removed lots of duplicate code from Downloader::checkStatus()
* --status now tries to get remote file hash for patches and language packs
* GOG doesn't provide xml data for extras so we still have to rely on local xml data for those
- Made --list show number of updates for games that have been updated
* Allows user to check for updated games more easily
- Replaced all printf and sprintf calls using new Util::formattedString() function
* Util::formattedString creates formatted std::string using std::snprintf
* Fixes possible buffer overflow in Downloader::printProgress() caused by sprintf call
Now depends on qt5-qt{tools,base}. From changes.txt:
Solarus 1.5.1 (2016-11-29)
__________________________
Engine changes
--------------
* Add Spanish translation of the launcher GUI (thanks Diarandor!).
* Fix registering quest to the launcher at quest install time (#948).
* Fix crash when a carried bomb explodes (#953).
* Fix crash when a scrolling teletransporter is incorrectly placed (#977).
* Fix crash when an entity has a wrong savegame variable type (#1008).
* Fix memory leak when creating lots of surfaces (#962).
* Fix cleanup of the quest files at exit.
* Fix error in sol.main.load_settings() when the file does not exist.
* Fix ground ignored after hero:unfreeze() or back to solid ground (#827).
* Fix entity:get_name() returning nil after the entity is removed (#954).
* Improve error messages of surface creations and conversions.
* Chests: set an initial value "entities/chest" to the sprite field.
Solarus launcher GUI changes
----------------------------
* Start the selected quest by pressing Return or double-clicking (#949).
Sample quest changes
--------------------
* The sample quest is now in a separate repository (#996).
__________________________
Solarus 1.5.0 (2016-07-27)
__________________________
Engine changes
--------------
* Add a launcher GUI to ease chosing a quest and setting options (#693).
* Rename the solarus_run executable to solarus-run.
* Add version number and symbolic links when building the library.
* Add a -lua-console option to run Lua code from the standard input.
* Remove the -win-console option, the preferred way is now to use a GUI.
* Add a -turbo option to run at full speed.
* Add a -lag option to simulate slower systems for debugging.
* Print when the main loop starts and stops.
* Print the Lua version at startup (#692).
* Outputs are now prefixed by [Solarus] and the current simulated time.
* Musics: Add support of custom OGG looping (#643).
* Maps: allow more than 3 layers (#445).
* Improve the performance of loading big maps (#854).
* Improve the performance of custom entity collisions.
* Improve the performance of collisions by using a quadtree.
* Entities far from the camera are no longer suspended.
* The hero no longer automatically jumps when arriving on water (#530).
* Destinations can now set to update or not the starting location (#819).
* Teletransporters on the side of the map now work on all layers (#850).
* Streams can now have a speed of zero (#496).
* Fix crash when main.lua has a syntax error.
* Fix crash with missing directions in sprites controlled by the engine (#864).
* Fix sprite:on_animation_finished() and others not working sometimes (#799).
* Fix error in sprite:set_animation() when the direction is missing (#937).
* Fix straight movement precision.
* Fix freeze when loading a map with tiles outside the limits (#875).
* Fix crash when trying to use a non-saved item (#889).
* Fix sword tapping sound still played when the game is suspended (#797).
* Fix hero:set_invincible() not working without duration (#805).
* Fix lifted item walking animation only accepting 3 frames (#645).
* Fix enemy:set_attack_consequence_sprite() with thrown items (#834).
* Fix custom_entity:set_can_traverse() for doors (#716).
* Fix custom_entity:set_can_traverse_ground() for some grounds (#794).
* Fix custom entity collisions missed for entities that do not move (#671, #883).
* Fix custom_entity:get_modified_ground() returning nothing.
* Fix custom_entity:on_ground_below_changed() not called (#738).
* Fix missing notifications in custom_entity:set_origin() (#880).
* Fix creating an entity with the same name as another one just removed (#795).
* Fix parallax scrolling for dynamic tiles (#816).
* Fix crash when a diagonal tile is not square (#837).
* Fix crash when the teletransporter after stairs is missing.
* Fix non-blocking stream turns after going south (#648).
* Fix text_surface:set_rendering_mode() not working (#833).
* Fix possible freeze when changing the position of a path finding entity.
* Fix circle_movement:set_initial_angle() not working (#721).
* Fix straight movement setting speed to zero when reaching obstacles (#633).
* Fix support of joypads with multiple axes.
* Fix sol.input.get_mouse_coordinates() ignoring the zoom factor (#734).
Lua API changes
---------------
Changes that introduce incompatibilities:
* Fix missing collision detections and entity notifications.
* chest:on_empty() is replaced by chest:on_opened(treasure) (#483).
* Enemy ranks no longer exist, set_hurt_style() needs to be called (#449).
* Items with amount now have a default max amount of 1000 (#688).
* New ability "jump_over_water" in game:get/set_ability(), off by default (#530).
* Fix hero state name "freezed", renamed it to "frozen" (#813).
* Fix map:get_entities() not returning the hero (#670).
* Fix map:create_custom_entity() not erroring when width/height are missing.
* map:get_camera_position() is now deprecated, use camera:get_bounding_box().
* map:move_camera() is now deprecated, use a camera movement instead.
* map:draw_sprite() is now deprecated, use map:draw_visual() instead (#661).
* Fix entity:set_enabled(true) delayed while it blocks the hero (#817).
* Fix brandished treasure sprite and shop treasure sprite not animated (#790).
* circle_movement:get/set_initial_angle() now use degrees (#721).
* Add ability to hide mouse cursor (#891).
Changes that do not introduce incompatibilities:
* Add a function sol.main.get_solarus_version() (#767).
* Add a function sol.main.get_quest_format().
* Add a function sol.main.get_type() (#744).
* Add a method game:set_suspended() (#845).
* Add methods map:get_min_layer() and map:get_max_layer() (#445).
* Add a method map:get_entities_by_type() (#796).
* Add a method map:get_entities_in_rectangle() (#142).
* Add a method map:draw_visual() to draw any drawable object (#661).
* Add a method map:get_camera() (the camera is now a map entity).
* Add methods map:set_world() and map:set_floor() (#656).
* map:get_entities() can now be called without parameter to get all entities.
* map:get_entities*() functions now give entities sorted in Z order (#779).
* Add an event entity:on_movement_started().
* Add a method entity:get_max_bounding_box() considering sprite boxes (#754).
* entity:get_center_position() now also returns the layer.
* Add a method entity:get_facing_position().
* Add a method entity:get_facing_entity() (#877).
* Add a method entity:get_ground_position() (#830).
* Add a method entity:get_ground_below() (#830).
* entity:set_optimization_distance() is now only a hint for the engine.
* entity:test_obstacles() now also works without parameters.
* entity:overlaps() now has an optional collision mode parameter (#748).
* Add entity:get_sprite() to all entities, with an optional name value (#669).
* Add a method entity:get_sprites() (#851).
* Add methods entity:bring_sprite_to_front/back() (#809).
* enemy/custom_entity:create_sprite() now take an optional name value.
* hero:save_solid_ground() can now take a function parameter (#667).
* Add a method hero:start_attack() (#821).
* Add methods npc:is/set_traversable() (#712).
* Add methods chest:get/set_treasure() (#664).
* Add an event chest:on_opened() with treasure info parameters (#483).
* Add methods dynamic_tile:get_pattern_id() and get_modified_ground() (#755).
* Add methods destination:get/set_starting_location_mode() (#819).
* Add a method switch:is_walkable() (#729).
* Add a method switch:is_locked().
* Add a method sprite:get_num_frames() (#818).
* Add methods sprite:get_size() and sprite:get_origin() (#823).
* sprite:set_animation() now takes an optional callback parameter (#861).
* Add a method surface:get_opacity() (#722).
* Add methods surface/text_surface/sprite:get/set_blending_mode (#930).
Data files format changes
-------------------------
* New directory logos to put the logo and icons of your quest, used in the GUI.
* Quest properties: New properties describing the quest, used in the GUI (#838).
* Quest properties: the title_bar property no longer exists, use title instead.
* Maps: New properties min_layer and max_layer (#445).
* Maps: Enemies no longer have a rank property (#449).
* Maps: New property starting_location_mode on destinations (#819).
* Maps: width and height of custom entities are now mandatory as documented.
* Dialogs: Allow empty texts.
Sample quest changes
--------------------
* Lots of new sprites and sounds from Diarandor.
__________________________
Solarus 1.4.5 (2015-11-22)
__________________________
Bug fixes for the 1.4 release.
* Fix file name not shown when there is an error in dialogs file (#718).
* Fix saving special characters in data files (#719).
* Fix sol.main.load_file() returning a string instead of nil on error (#730).
* Fix performance issue when sprites have huge frame delays (#723).
* Fix collisions triggered for removed entities (#710).
* Fix hero disappearing if lifting animation has less than 5 frames (#682).
* Fix collisions with diagonal dynamic tiles larger than 8x8 (#486).
* Fix path finding movement not working with NPCs (#708).
* Fix stuck on non-traversable dynamic tiles covered by traversables (#769).
* Fix collision detection of custom entities that do not move.
* Fix pickables with special movement falling in holes too early.
* Fix blocking streams not working when the hero's speed is greater (#488).
__________________________
Solarus 1.4.4 (2015-08-19)
__________________________
Bug fixes for the 1.4 release.
* Fix pickables falling in holes even when hooked (#740).
__________________________
Solarus 1.4.3 (2015-08-12)
__________________________
Bug fixes for the 1.4 release.
* Fix a compilation error with Mac OS X.
* Fix crash at exit when a surface has a movement with callback (#699).
* Fix crash when removing a custom entity (#690).
* Fix crash when a sprite file is missing or has no animation (#700).
* Fix crash when trying to remove a sprite already removed (#705).
* Fix crash when a custom entity collision or traversable test errors.
* Fix crash when changing hero sprites sometimes.
* Fix crash when sound buffers are full.
* Fix crash in map:get_ground() with out of bounds coordinates.
* Fix Lua error message saying "number expected" instead of "string expected".
* Fix game:set_command_keyboard/joypad_binding refusing parameters.
* Fix map scrolling not working if quest size is not a multiple of 5 (#701).
* Fix camera:move() ignoring separators.
* Fix entities already destroyed when map:on_finished() is called (#691).
* Fix entity:bring_to_front()/back() ignoring the order of obstacles.
* Fix hero stuck on blocks.
* Fix hero going backwards on ice sometimes.
* Fix custom_entity:set_can_traverse_ground() giving opposite result (#668).
* Fix enemy:immobilize() having no effect when already immobilized.
* Fix dying animation of flying and swimming enemies.
* Fix the position of the shadow of pickables when they move.
* Fix pickables not reacting to their ground (#655).
## v0.13.1 / 2017-01-06
Bugs:
* New Windows installations break because Rubygems looks for 1.15.4 and it's not there (yet). Locking into Cairo 1.15.3 and being more conservative from now on.
## v0.13.0 / 2017-01-04
Features:
* `save_pdf`'s `crop marks` have a `:full` option that draw lines across the entire page.
Bugs
* Fix `Squib::DataFrame#to_pretty_text` modification issue (#191)
* Downgraded Pango et al. back to 3.0.9 from 3.1.0 because there are bugs in the new gobject-introspection library.
Chores:
* Shrank the gem itself by ignoring test data. From about 5mb to 64kb - yay!
* Bump roo to newest version (2.7.0).
* Bumped Nokogiri to latest version (1.7.0).
* Re-organized the samples folder for better regression and sanity testing prior to release.