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).
_______________________________
Bug fixes for the 1.4 release.
No change in the engine (changes in Solarus Quest Editor only).
_______________________________
Solarus 1.4.1 (2015-05-09)
_______________________________
Bug fixes for the 1.4 release.
Engine changes
--------------
* Fix crash with doors whose opening condition is an item (#686).
* Fix the size of custom entities supposed to be optional (#680).
* Fix the hero's sprite reset to default ones when changing equipment (#681).
* Fix animated tiles freezed when running a quest a second time (#679).
* Fix saving empty files.
* Print an error message when there is no font in the quest.
_______________________________
Solarus 1.4.0 (2015-05-02)
_______________________________
The new quest editor release!
Engine changes
--------------
* Solarus now compiles with C++11.
* Solarus Quest Editor was rewritten and is now in a separate repository.
* Solarus can now be used as a library in other projects.
* Add a command-line flag -win-console=yes to see output on Windows (#550).
* Add unit tests.
* Fix a crash if an entity has a sprite without animation.
* Fix crash when using the -no-video command-line option.
* Fix assertion when a crystal block has less than 4 frames.
* Fix hero freeze when a treasure's dialog is missing (#595).
* Fix hero stuck in dynamic tiles just enabled on him (#89).
* Fix hero sometimes moving in wrong directions (#677).
* Fix tunic and sword collision when their sprite is changed (#617).
* Fix slightly incorrect position of carried item sometimes (#660).
* Fix crash when a tileset image is missing (#590).
* Don't die if the animation of a pickable treasure is missing.
Lua API changes
---------------
Changes that introduce incompatibilities:
* Text surfaces: the size must now be set at runtime instead of in fonts.dat.
* Text surfaces: the default font is now the first one in alphabetical order.
Changes that do not introduce incompatibilities:
* sol.text_surface.create() now accepts a size parameter (default is 11).
* Add a function sol.main.get_os().
* Fix sprite:on_frame_changed() called twice on animation/direction change.
Data files format changes
-------------------------
You can use the script
editor/resources/tools/data_files_conversion/1.3_to_1.4/update_quest.lua
to automatically update your data files.
Don't forget to make a backup first.
* fonts.dat no longer exists. Fonts are a resource like others now (#611).
* Fonts are now in a "fonts" directory instead of "text".
* Maps: shop treasures have a new property "font".
_________________________________
Bug fixes for the 1.3 release.
Solarus Quest Editor changes
----------------------------
* Fix opening an empty sprite (#581).
* Sort resources in the quest tree by natural order (#579).
_______________________________
Solarus 1.3.0 (2014-08-21)
_______________________________
The sprite editor release!
Engine changes
--------------
* Fix a crash when creating a timer from game:on_started() (#575).
* Fix hero:save_solid_ground having no effect on water/lava/prickles (#567).
Lua API changes
---------------
Changes that do not introduce incompatibilities:
* Add mouse functions and events.
* Add a method sprite:get_animation_set_id() (#552).
* Add a method sprite:has_animation() (#525).
* Add a method sprite:get_num_directions().
* Add a method hero:get_solid_ground_position() (#572).
* Add a method switch:get_sprite().
* Allow to customize the sprite and sound of switches (#553).
* Add a method enemy:get_treasure() (#501).
* Fix the write directory not having priority over the data dir since 1.1.
* Fix pickable/destructible:get_treasure() returning wrong types.
* Fix custom entity collision detection when the other is not moving (#551).
* Allow to call map methods even when the map is not running.
Data files format changes
-------------------------
You can use the script
editor/resources/tools/data_files_conversion/1.2_to_1.3/update_quest.lua
to automatically update your data files.
Don't forget to make a backup first.
* Maps: New properties sprite, sound for switches (#553).
* Maps: The subtype of switches is now a string.
* Tilesets: The id of a tile pattern is now a string (#559).
Solarus Quest Editor changes
----------------------------
* Add a sprite editor (#135). By Maxs.
* Add a zoom level of 400%. By Maxs.
* Add keyboard/mouse zoom features to sprites and tilesets. By Maxs.
* Add Lua syntax coloring (#470). By Maxs.
* Add a close button on tabs (#439). By Maxs.
* Rework the quest tree to show the file hierarchy and Lua scripts. By Maxs.
* Add specific icons for each resource type in the quest tree.
* Move the entity checkboxes to the map view settings panel. By Maxs.
* Allow to change the id of a tile pattern in the tileset editor (#559).
* Don't initially maximize the editor window.
* Fix converting quests to several versions in one go.
Engine changes
--------------
* Fix entity:is_in_same_region() giving wrong results
* Fix custom_entity:set_can_traverse() giving opposite results.
* Fix custom_entity:on_interaction() not always called.
* Fix custom_entity sprite collision issues with some entities
* Fix a crash in enemy:restart() when the enemy is dying
* Fix hero:set_tunic_sprite_id() resetting the direction to right
* Fix timer:get_remaining_time() always returning 0
* Fix declaring global variables from a map script
* Fix the hero sometimes moving while no keys are pressed
* Fix on_joypad events not always working
* Add an error when a hero sprite animation is missing
Solarus Quest Editor changes
----------------------------
* Fix corrupted image in quest created by Quest > New quest
* Fix tiles created on invisible layer
* Fix crash when an NPC sprite does not have 4 directions
the SDL packages. From ChangeLog:
Engine changes
--------------
* Upgrade to SDL 2 (#262). Thanks Vlag.
* Accelerate video operations in GPU if available. Expect huge speedups.
* Add the hq2x, hq3 and hq4x pixel filter algorithms as new video modes.
* Make the window resizable (#338).
* Use LuaJIT if available instead of vanilla Lua for better performance.
* New map entity type: custom entities, fully scripted (#323).
* Conveyor belts are now called streams and can be non-blocking (#288).
* Collision rules of streams (conveyor belts) are now like holes.
* Rewrite the main loop with a constant timestep (#351).
* Show a dialog box in case of fatal error.
* The "wide" video modes do not exist anymore. SDL2 does the job now.
* Fix enemy:on_hurt() that was wrongly called when immobilized.
* Fix life and money exceeding the max when the max changes (#355).
* Make stairs sounds optional (#364).
* Make more checks in sprite files to avoid crashes (#357).
* Fix RandomMovement speed that was not taken into account (#361).
* Set the default speed of StraightMovement to 32 instead of 0 (#343).
* The size of all map entities must be a multiple of 8 (#358).
* Thrown entities (pots, bombs...) can now fall to a lower layer (#349).
* Running into a crystal or a solid switch now activates it (#193).
* The hero can now jump over distant crystal blocks (#42).
* The shield no longer protects while using the sword or carrying (#192).
* Fix collisions detected on disabled entities (#455).
* Fix pixel collisions coordinates when sprites move (#372).
* Fix a slowness when loading maps (#374).
* Fix crash when accessing a map not active anymore (#371).
* Fix crash when changing the movement of the hero (#392).
* Fix crash when calling hero:start_treasure() with wrong parameters (#391).
* Fix crash when calling game:has/get/set_ability() with wrong name (#408).
* Fix a crash when creating two entities with the same name (#370).
* Fix issues with unobtainable treasures.
* Fix the starting location wrongly saved with special destinations (#375).
* Fix map:set_tileset() sometimes moving the hero near the map border (#400).
* Fix enemies stuck on blocks (#360).
* Fix enemies stuck on crystal blocks (#41).
* Fix human NPCs not automatically showing "walking" when moving (#336).
* Fix the hero leaving the grabbing state even while the game is suspended.
* Fix low walls in dynamic tiles behaving like normal walls.
* Fix wrong collisions of right-up and left-down diagonal jumpers.
* Fix jumpers that could be traversed sideways (#481).
* Fix blocks no longer stopping when aligned on the grid since Solarus 0.9.3.
* Fix entities not always shown when they have no optimization distance.
* Call hero:on_removed() and stop hero timers when stopping the game (#421).
* Don't die if the map or destination saved no longer exists (#301).
* Don't die if a map has no destination. Show an error and go to 0,0 instead.
* Don't die if hero:teleport() attempts to go to a non-existing place.
* Don't die if attempting to start a game without map.
* Don't die if attempting to start a non-existing dialog.
Data files format changes
-------------------------
You can use the script tools/data_files_conversion/1.1_to_1.2/update_quest.lua
to automatically update your data files.
Don't forget to make a backup first.
* Languages: New syntax of strings.dat easier to read and parse (#170).
* Maps: The world property is now optional (#128).
* Maps: Destructibles no longer have subtypes, they are customizable (#270).
* Maps: Rename entity shop_item to shop_treasure.
* Maps: Rename entity conveyor_belt to stream with new features (#288).
* Maps: Teletransporters transition property is now a string (#402).
* Maps: Walls have a new property "stops_projectiles".
* Sounds: Running into a wall now plays a sound other than "explosion" (#297).
Lua API changes
---------------
Changes that introduce incompatibilities:
* Video mode names have changed: no more wide, fullscreen ou windowed names.
* sol.video.switch_mode() no longer changes the fullscreen flag.
* surface:set_transparency_color() no longer exists. Use surface:clear().
* sol.audio.play_music("none") is replaced by sol.audio.play_music(nil).
* on_key_pressed() and on_character_pressed() are now both called (#344).
* Destructible objects no longer show hardcoded dialogs (#270).
* map:create_destructible() has no hardcoded subtypes anymore (#270).
* map:create_teletransporter(): the transition is now a string (#402).
* map:create_shop_item() is replaced by map:create_shop_treasure().
* map:create_conveyor_belt() is replaced by map:create_stream() (#288).
* The state "conveyor belt" no longer exists in hero:get_state() (#288).
* The built-in strength of the sword has changed (#426).
* Bosses are not initially disabled anymore (#448).
* Call enemy:on_hurt() before enemy:on_dying() (#325).
* enemy:on_hurt() no longer takes a life_lost parameter (#426).
* The built-in defense of the tunic has changed (#428).
* enemy:get/set_magic_damage() no longer exists (#428).
* hero:start_hurt() no longer takes a magic parameter (#428).
* hero:start_hurt() now hurts the hero even when enemies cannot.
* Enemies have now a default size of 16x16 and origin of 8,13 (#354).
* The size of enemies must be a multiple of 8 (#358).
* item:on_pickable_movement_changed replaced by pickable:on_movement_changed.
* pickable:get_treasure() now returns the item instead of the item's name.
* Timers: returning true in the callback now repeats the timer (#152).
* sol.timer.start() now always returns the timer, even if its delay is zero.
Changes that do not introduce incompatibilities:
* New Lua type and methods for custom map entities.
* New API of destructible objects, fully customizable now (#270).
* Colors now take an optional alpha value as fourth component.
* New functions sol.video.get/set/reset_window_size().
* New method surface:clear().
* Add loop and callback features to sol.audio.play_music() (#280).
* New function sol.main.get_metatable(), allows to implement shared behaviors.
* The lifetime of a menu can now be another menu.
* New method menu:is_started().
* Attempt to stop a menu already stopped is no longer an error.
* New method map:get_hero() (#362).
* map:get_world() can now return nil because the world is now optional (#128).
* map:create_wall() accepts a new property "stops_projectiles".
* Entity names are now auto-incremented to simplify their creation.
* New method entity:get_game() (#363).
* New methods entity:bring_to_front() and entity:bring_to_back() (#273).
* entity:test_obstacles() now takes an optional layer parameter.
* New methods enemy:get_attack_consequence(), get_attack_consequence_sprite().
* The event entity:on_created() is now called for all types of entities.
* New event enemy:on_hurt_by_sword() to customize the sword strength (#426).
* New event enemy:on_attacking_hero() to customize attacks (#356).
* New event enemy:on_hurting_hero() to customize hurting the hero (#428).
* New event hero:on_hurt() to customize the defense of the equipment (#428).
* hero:start_hurt() now takes an optional entity and sprite (#417).
* New methods hero:is/set_invincible() and hero:is/set_blinking() (#418).
* New methods hero:get/set_animation() to set custom animations (#155).
* New methods hero:get/set_sword_sound_id() to change the sword sound (#155).
* New methods to set custom tunic, sword and shield sprites (#155).
* New event sensor:on_left() (#339).
* New event block:on_moving() (#334).
* New functions to get/set the properties of teletransporters (#403).
* New functions to get/set the properties of blocks.
* New methods to simulate game commands, by mrunderhill (#382).
* New event sensor:on_left() (#339).
* New event block:on_moving() (#334).
* New event teletransporter:on_activated() (#312).
* New event destination:on_activated() (#312).
* movement:on_position_changed() now takes x and y parameters (#342).
* Fix movement:start() raising an error if the optional callback is nil.
* Fix random_movement:get_max_radius() that was not working.
* Check the parameter sign in game:add/remove life/money/magic (#416).
* Check the parameter sign in item:add/remove_amount.
* Fix timer:is_suspended_with_map() that was not working.
* Fix crash when calling timer:set_suspended_with_map() without game started.
* New methods timer:get/set_remaining_time.
* New function sol.main.get_elapsed_time() to get the simulated time (#424).
* New function sol.input.get_key_modifiers() to get the key modifiers state.
Solarus Quest Editor changes
----------------------------
* The editor is now built with Maven (#365).
* Multiple entities can now be resized at the same time (#405).
* Copy-pasting entities now pastes them at the cursor (#404).
* The map view can now be dragged using the middle mouse button (#413).
* Zoom in/out in the map view using the middle mouse wheel (rekcah1986).
* Add buttons to edit or refresh the tileset from the map view (#425).
* The tileset view can now be dragged using the middle mouse button (#427).
* Selecting a tile now highlights its pattern in the tileset view (#290).
* Ctrl/Shift+click even on an entity now starts a selection rectangle (#410).
* Tile patterns can now be moved in the tileset editor (#422).
* The id and name of a new resource and now asked in a single dialog (#321).
* Show the old value in the dialog to change an id/name (#468) (rekcah1986).
* The order of resources in the quest tree can now be changed (#319).
* Increase the stepsize when scrolling the map view.
* Center the dialog of editing an entity (#443).
* Add a scroller to dialogs that are too high (#437) (rekcah1986).
* Show the map or tileset name in the "do you want to save" dialog.
* Show quest name and resource ids in the tree view (thanks rekcah1986).
* Don't place new tiles below other entities if there are some (#461).
* Fix hidden entities getting selected when clicked (#460).
* Fix selecting entities losing their order when changing the layer.
* Fix NullPointerException when canceling the Open Project dialog.
* Fix freeze if tiles don't exist when changing the tileset of a map.
* Fix the tree not refreshing when deleting a resource (#335).
* Fix the tileset editor not always showing the save dialog on closing.
* Fix the num_columns property of sprites wrongly parsed.
* Fix wrong displaying of right-up and left-down diagonal jumpers.
* Switches, crystals and crystal blocks now show their actual sprite (#376).
* Fix a libmodplug compilation problem due to wrong sndfile.h (#324).
* Fix teletransporters activated while coming back from falling (#346).
* Fix a crash when changing the hero state in block:on_moved (#340).
* Fix enemy death detection when falling into hole, lava or water (#350).