forked from solarus-games/solarus
-
Notifications
You must be signed in to change notification settings - Fork 0
/
ChangeLog
376 lines (302 loc) · 16.2 KB
/
ChangeLog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
_______________________________
Solarus 1.2.0 (under development)
_______________________________
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.
* Maps: Rename entity shop_item to shop_treasure.
Lua API changes
---------------
Changes that introduce incompatibilities:
* map:create_shop_item() is replaced by map:create_shop_treasure().
_______________________________
Solarus 1.1.0 (2013-10-13)
_______________________________
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).
__________________________
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.
solarus-1.0.1 (2013-05-12)
Bug fixes for the 1.0 release.
Solarus changes:
* Fix the Mac OS X port.
* Fix jump movement accross two maps ending up in a wall (#189).
* Fix a possible crash in TextSurface.
* Fix the hero disappearing a short time after using the sword (#35).
* Fix the boomerang failing to bring back pickables sometimes (#187).
* Fix parallax scrolling tiles not always displayed (#167).
* Fix the setting joypad_enabled that had no effect (#163).
* Fix doors not working when they require equipment items.
* Fix a possible compilation warning in Surface.cpp.
* Fix creating a transition from the callback of a previous one.
* Fix crystal blocks animated late when coming from a teletransporter (#61).
* Fix arrows that got stopped when outside the screen (#73).
* Fix diagonal movement that failed in narrow passages (#39).
* Don't die if a script makes an error with a sprite (#151).
* Don't die if a script makes an error with an enemy attack consequence.
* Allow enemies to lose 0 life points when attacked (#137).
* Pixel-precise collisions can now also be performed on 32-bit images.
Solarus Quest Editor changes:
* Editor: add the possibility to show or hide each type of entity (#60).
* Editor: keep the map coordinates shown when changing the zoom (#183).
* Editor: fix the map view not updated correctly when changing the zoom (#174).
* Editor: show the correct sprite of destructible objects (#77).
* Editor: show an appropriate error message if the LuaJ jar is missing (#173).
* Editor: fix the title bar string (#176).
Documentation changes:
* Split the C++ documentation and the quest data files documentation (#181).
* Add a search feature to the documentation pages.
solarus-1.0.0 (2013-05-03)
The "I love Lua" release.
This is a major release. The version number switches from 0.x to 1.x
because there is a brand new Lua scripting API.
I now consider that Solarus can be used to create your own Zelda-like
games in decent conditions.
By "in decent conditions", I essentially mean: with a clean and stable
scripting API. Clean because there are nice datatypes now and the API is much
easier to use, less error-prone and more with the Lua spirit.
Stable because future versions of the scripting API will now try to keep
compatibility with existing scripts. Any API change that breaks compatibility
will now be clearly documented.
Data files and scripts written for solarus 0.x are not compatible with
solarus 1.x.
Which is not a problem since until now, I never said you could create a quest
in decent conditions :)
More seriously, I guess I'm the only one to have a lot of data files and
scripts created for solarus 0.x.
Anyway, conversion scripts are provided to upgrade your existing data files,
but not your scripts (the scripting API, which was working but ugly and
unstable, has totally changed).
Changes:
* Rewrite the Lua scripting API from scratch. Cleaner, real datatypes, much
easier to use, less error-prone, much more features, fully documentated.
* All scripts now live in a single Lua world.
* Add support of scripted graphics.
* Add support of scripted menus. Menus like the title screen, the savegames
menu, the pause menu and the HUD are no longer hardcoded into the engine.
* Doors, chests, teletransporters and destinations are now much more flexible
and customizable.
* Except tiles, all map entities can now have a name. The name is now optional.
* Change the format of some data files, including maps and tilesets.
* No more ini data files (removed the dependency to SimpleIni).
* Add conversion scripts to upgrade existing data files (but not scripts).
* Fix infinite explosions of bomb flowers.
This version also include changes from 0.9.3, though 0.9.3 is not released
yet:
* The game screen size can now be set at compilation time.
* Change the savegames directory on Mac OS X.
* Improve the support of Mac OS X, Pandora, Caanoo and other platforms.
* Fix the compilation with Visual C++.
* Fix blocks making sometimes only a half move (#33).
* Fix pixel-precise collisions not always correct (#53).
* Fix the end of target movement on slow machines (#34).
* Fix the hero being freezed when using the hookshot on bomb flowers (#119).
Changes in Solarus Quest Editor:
* First release of a working editor.
* Implement creating a new quest.
* Implement edition of project_db.dat through the quest tree view.
* Allow to show a grid on the map editor.
* Fix a lot of bugs.
solarus-0.9.3 (2013-05-08)
This should be the last release of the 0.9 branch.
Existing games must now upgrade to Solarus 1.0.
However, upgrading to Solarus 1.0 represents a lot of work and testing: in the
meantime, this release introduces important fixes that improve the situation
of existing games.
* The game screen size can now be set at compilation time.
* Change the savegames directory on Mac OS X.
* Improve the support of Mac OS X, Pandora, Caanoo and other platforms.
* Images other than 8-bit can now be used for pixel-precise collisions.
* Fix the compilation with Visual C++.
* Fix the compilation of SimpleIni with gcc 4.7.2.
* Fix blocks making sometimes only a half move (#33).
* Fix pixel-precise collisions not always correct (#53).
* Fix the end of target movement on slow machines (#34).
* Fix the hero being freezed when using the hookshot on bomb flowers (#119).
solarus-0.9.2 (2012-04-03)
* Fix a crash using a teletransporter to the same map while an enemy is dying
* Immobilized enemies restarted too early when using a teletransporter
solarus-0.9.1 (2012-02-12)
* The player can now run with the action key if he has the ability "run"
* Fix locked doors and blocks that could consume more than one small key
* Experimental: new syntax of dialog files in Lua that makes parsing, writing
and translating dialogs easier (a conversion script is available)
* Experimental: optimize displaying and collisions far from the visible area
* Experimental: sensors are not obstacles anymore when jumping or using the
hookshot, they are activated instead
* Include Mac OS X packaging changes to the git repository
* HUD: the 11th heart was not displayed correctly when incomplete
* Lua: improve the prototype of sol.map.destructible_item_create
* Lua: add a function sol.enemy.get_angle_to_hero()
* Lua: add a function sol.main.get_distance(x1, y1, x2, y2)
* Allow the ground sprite below the hero to be tileset dependent
* Show a different sprite animation when plunging into lava or water
* Don't stop the super spin attack on shallow water
* Add debug keys to change the hero's layer
solarus-0.9.0 (2011-12-23)
* Initial release of Solarus without quest data