Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Updated to latest release, 1.2.0. Requires LuaJIT2 and the SDL2 verio…
…ns of 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).
- Loading branch information