7 commits
Author | SHA1 | Message | Date | |
---|---|---|---|---|
rodent
|
b7922190f4 |
Solarus 1.3.1 (2014-08-25)
_________________________________ 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. |
||
rodent
|
b26cfa1df5 |
Bug fixes for the 1.2 release.
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 |
||
rodent
|
d422e0a4cf |
Updated to latest release, 1.2.0. Requires LuaJIT2 and the SDL2 verions 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). |
||
rodent
|
29e9853be7 |
Updated to latest release, 1.1.1. From ChangeLog:
* 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). |
||
rodent
|
6a3ca1db79 |
Updated to latest stable, 1.1.0. Set LUA_VERSION_REQD=51, as the default,
52, doesn't work. Needs -lreadline and something else. Will look into this later. From ChangeLog: Engine changes -------------- * Add a very short sample quest with free graphics and musics (#232, #318). * Allow scripted dialog boxes (#184). * Allow a scripted game-over menu (#261). * Replace the old built-in dialog box by a very minimal one. * Remove the old built-in game-over menu. * Remove the old built-in dark rooms displaying (#205). * New entity: separators to visually separate some regions in a map (#177). * New type of ground: ice (#182). * New type of ground: low walls (#117). * Blocks and thrown items can now fall into holes, lava and water (#191). * Kill enemies that fall into holes, lava and water (#190). * Allow quest makers and users to set the size of the playing area. * Allow maps to have a default destination entity (#231). * A game can now start without specifying an initial map and destination. * Stairs inside a single floor can now go from any layer to a next one (#178). * Fix map menus not receiving on_command_pressed/released() events. * Fix camera callbacks never called when already on the target (#308). * Fix a crash when adding a new menu during a menu:on_finished() event. * Fix a crash when calling hero:start_victory() without sword. * Fix an error when loading sounds (#236). Sounds were working anyway. * Fix a possible memory error when playing sounds. * Fix blocks that continue to follow the hero after picking a treasure (#284). * Fix on_obtained() that was not called for non-brandished treasures (#295). * Jumpers can no longer be activated the opposite way when in water. * Jumpers are now activated after a slight delay (#253). * Sensors no longer automatically reset the hero's movement (#292). * Correctly detect the ground below the hero or any point. * Don't die if there is a syntax error in dialogs.dat. * Show a better error message if trying to play a Solarus 0.9 quest (#260). * Remove built-in debug keys. This can be done from Lua now. * Remove the preprocessor constant SOLARUS_DEBUG_KEYS. * Call on_draw() before drawing menus. * Fix .it musics looping when they should not. * Log all errors in error.txt (#287). * The quest archive can now also be named data.solarus.zip (#293). Data files format changes ------------------------- You can use the script tools/data_files_conversion/1.0_to_1.1/update_quest.lua to automatically update your data files. Don't forget to make a backup first. * Sprites: New syntax easier to read and parse (#168). * project_db.dat: New syntax easier to read and parse (#169). * quest.dat: Allow to specify a range of supported quest sizes. * Maps: Add the property "default" to destinations. * Maps: Make optional the property "destination" of teletransporters. * Tilesets: The ground value of diagonal walls with water has changed. * Tilesets: New ground values "ice" and "low_wall". * dialogs.dat: Allow any property in dialogs. dialog_id and text are mandatory. * languages.dat no longer exists. Languages are in project_db.dat now (#265). Lua API changes --------------- Changes that introduce incompatibilities: * map:is_dialog_enabled() is replaced by game:is_dialog_enabled(). * map:start_dialog() is replaced by game:start_dialog(). * Remove map:draw_dialog_box(), no longer needed. * Remove map:set_dialog_style(): replace it in your own dialog box system. * Remove map:set_dialog_position(): replace it in your own dialog box system. * Remove map:set_dialog_variable(): use the info param of game:start_dialog(). * Make map:get_entities() returns an iterator instead of an array (#249). * Replace map:set_pause_enabled() by game:set_pause_allowed(). * Make the enemy:create_enemy() more like map:create_enemy() (#215). * Remove sol.language.get_default_language(), useless and misleading (#265). * Remove sol.main.is_debug_enabled(). * Remove map:get_light() and map:set_light() (#205). * In game:get/set_ability(), ability "get_back_from_death" no longer exists. * Empty chests no longer show a dialog if there is no on:empty() event (#274). Changes that do not introduce incompatibilities: * game:get/set_starting_location(): map and destination can now be nil. * hero:teleport(): make destination optional (maps now have a default one). * map:create_teletransporter(): make destination optional. * Add a function sol.video.get_quest_size(). * Make map:get_camera_position() also return the size of the visible area. * Add a method entity:is_in_same_region(entity). * Add a method entity:get_center_position(). * Add methods entity:get_direction4_to(), entity:get_direction8_to() (#150). * Add a method game:get_hero(). * Add methods hero:get/set_walking_speed() (#206). * Add hero:get_state() and hero:on_state_changed() (#207). * Add events separator:on_activating() and separator:on_activated() (#272). * Add methods enemy:is/set_traversable() (#147). * Add a method enemy:immobilize() (#160). * Add on_position_changed() to all entities, not only enemies (#298). * Add on_obstacle_reached() to all entities, not only enemies (#298). * Add on_movement_changed() to all entities, not only enemies (#298). * Add on_movement_finished() to all entities, not only enemies/NPCs (#298). * target_movement:set_target(entity) now accepts an x,y offset (#154). * Add a method game:is_pause_allowed(). * Add a method map:get_ground() (#141). * Add a method map:get_music() (#306). * Add an optional parameter on_top to sol.menu.start. * Add sprite:on_animation_changed() and sprite:on_direction_changed() (#153). * Add a function sol.input.is_key_pressed(). * Add a function sol.input.is_joypad_button_pressed(). * Add a function sol.input.get_joypad_axis_state(). * Add a function sol.input.get_joypad_hat_direction(). * Add functions sol.input.is/set_joypad_enabled() (#175). * Add a function sol.audio.get_music() (#146). * Add a function sol.audio.get_music_format(). * Add a function sol.audio.get_music_num_channels(). * Add functions sol.audio.get/set_music_channel_volume() for .it files (#250). * Add functions sol.audio.get/set_music_tempo() for .it files (#250). * Return nil if the string is not found in sol.language.get_string(). * sol.language.get_dialog() is now implemented. * Add a function game:stop_dialog(status) to close the scripted dialog box. * Add an event game:on_dialog_started(dialog, info). * Add an event game:on_dialog_finished(dialog). * Add functions game:start_game_over() and game:stop_game_over (#261). * Add events game:on_game_over_started(), game:on_game_over_finished (#261). * Add sol.file functions: open(), exists(), remove(), mkdir() (#267). Solarus Quest Editor changes ---------------------------- * Add a GUI to upgrade automatically quest files to the latest format (#247). * Remove the initial prompt dialog to open a quest (#264). * Replace non-free images by new icons (#245). * Add tooltips to the add entity toolbar. * Simplify the add entity toolbar by showing only one icon per entity type. * Survive when images cannot be found (#256). * Create more content when creating a new quest (#258, #279). * Improve error messages. * Fix a crash when creating a destructible without tileset selected (#283). * Fix the sprite field disabled in the NPC properties dialog (#303). |
||
rodent
|
7f6b599856 |
Updated to latest release. No big changes pkgsrc-wise. From ChangeLog:
solarus-1.0.4 (2013-06-26) Bug fixes for the 1.0 release. Solarus changes: * Don't die if a script tries so show a missing string (#237). * Don't die if a treasure has a variant unexistent in the item sprite. * Fix customization of joypad commands. solarus-1.0.3 (2013-06-25) Bug fixes for the 1.0 release. Solarus changes: * Fix blocks not completely moved since Solarus 1.0.2. solarus-1.0.2 (2013-06-22) Bug fixes for the 1.0 release. Solarus changes: * Fix a crash when a treasure callback changes the hero's state (#224). * Fix a crash when a victory callback changes the hero's state. * Fix a crash due to invalid sprite frame when animation is changed (#26). * Fix an assertion error with FollowMovement of pickables. * Fix the fullscreen mode not working on Mac OS X 10.7+ (#213, #220). * Fix pickable treasures that could be obtained twice sometimes. * Fix fade-in/fade-out effects on sprites that did not work (#221). * Fix sol.audio.play_music() that failed with "none" or "same" (#201). * Fix item:set_sound_when_brandish() that did not work. * Fix diagonal movement that could bypass sensors since Solarus 1.0.1. * Fix circle movement not working after entity:set_enabled(true). * Fix detection of movement finished for NPCs. * Fix memory issues with menus (#210). * Fix handling of nil parameter in boolean setters (#225). * Fix hangling the default language. * Correctly suspend timers when set_suspended_with_map is called. * When a sprite is suspended, suspend its transitions (#226). * Don't die if a music or a sound cannot be found. * Don't die if an image cannot be found. * Don't die if running a savegame without starting location specified. * Don't die if a script refers to a non-existing equipment item. * Don't die if the self parameter is missing when calling a method (#219). * Fix dangling pointers after removing some kind of entities. Solarus Quest Editor changes: * Editor: allow to create map entities from the quest tree (#208). * Editor: fix a typo in the bomb flower sprite (#214). * Editor: fix a possible NullPointerException when opening an invalid map. Documentation changes: * Documentation: add the syntax specification of maps and tilesets. |
||
rodent
|
e9456c27bb |
Import solarus-1.0.1 as games/solarus.
Solarus is an open-source Zelda-like 2D game engine licensed under GPL. It is written in C++ and runs quests scripted in Lua. |