forked from wesnoth/wesnoth
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathchangelog
14401 lines (14234 loc) · 725 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
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
Version 1.13.11+dev:
* User Interface:
* Improved outro screen.
* Fixed a few cases of data not displaying in the MP Join Game screen.
* Fixed required addon names not displaying properly when joining an
MP game.
* WML engine:
* Fixed units shown with [move_units_fake] disappearing between steps
(bug #1516).
* Miscellaneous and bug fixes:
* Fixed standing animation toggle not taking immediate effect (bug
#1653).
* Fixed error when de-assigning village with [capture_village].
* Enabled the use of Open Type Font (.otf) fonts.
* Fresh installs of the game will now open in fullscreen by default.
Version 1.13.11:
* Add-ons client:
* Added an order dropdown that allows you to sort add-ons by the time of
latest update or original upload (issue #1747)
* Players will now be prompted to update outdated dependencies alongside
downloading missing ones when installing an add-on.
* Add-ons server:
* Empty passphrases from malfunctioning clients that do not provide or
generate a passphrase otherwise are now rejected instead of treated as
valid.
* Campaigns:
* The Cutscene_Minimal theme is now used in all dialog-only scenarios that
have `linger=no` in [end_level].
* An Orcish Incursion:
* New story art.
* A Tale of Two Brothers:
* Added a full set of hints on easy difficulty.
* Delfador's Memoirs:
* Iliah-Malal can now be killed by either undead or Delfador in S19
* S19 has been rebalanced to increase difficulty and allow player & enemy
to field more units.
* Descent into Darkness:
* 'Endless Night' now has accurate & improved scenario objectives. It also
has received improvements in dialog, map appearance, and difficulty.
* S08/S09 A Small Favor 2/3 - Fixed bug preventing door operation/usage.
* Fixed and improved appearance and handling of the wose.
* Other minor fixes and improvements.
* Packaging
* Renamed the target and binary for the Boost unit tests from `test` to
`boost_unit_tests`. This quells warnings from CMake about reserved target
names, and reduces confusion about which `test` is intended: the wesnoth
executable or the standard shell command.
* The CMake build system now uses standard Kitware-supported variables
from the `GNUInstallDirs` module. Distributions might have to change
the defaults to suit their FHS needs.
* The previous addition of `GNUInstallDirs` necessitates a bumping of the
CMake minimum requirements, which is now at 2.8.5. Most distributions
already use a CMake version above 3.0, so this would only affect users
of vintage CMake versions.
* higher resolutions of the application icon have been added and are now
stored in the hicolor icon theme's directory
* Language and i18n:
* Updated translations: British English, Chinese (Simplified), Czech,
Italian, Spanish
* Lua API:
* New wesnoth.unit_types[] getters:
* `advances_to`
* `advances_from`
* `profile`
* `small_profile`
* The wml module now offers another new way of accessing WML variables:
wml.variables is a simple wrapper around wml.get|set_variable.
* unit.id is now a modifiable field for off-map (Lua-only) units.
* Allow moving on-map units by setting `unit.x` and `unit.y` fields, or with
`unit.loc = {x, y}` or `unit.loc = {x = x, y = y}`
* Added `side.chose_random` getter.
* Lua GUI2 API: added support for slider callbacks via
`wesnoth.set_dialog_callback`.
* Multiplayer:
* Dark Forecast: Fixed broken faction and leader selection.
* Rename the Khalifate to Dunefolk. This includes renaming all the faction's
units.
* Performance:
* GUI2 windows no longer redraw everything 50 times per second. This reduces
CPU usage in fullscreen windows such as MP lobby by about 85 %.
* Miscellaneous low-level optimizations in game rendering code, improving
performance ingame by up to 50 %.
* Units:
* Changed resistances and hitpoints for Tentacle of the Deep.
* User Interface:
* Removed broken Unit Box and Widescreen themes.
* Fixed a bug that partially prevented movement feedback announce messages
to be displayed (UI regression bug #2130, affecting 1.13.8 and 1.13.10).
* New, greatly simplified display of games in the MP Lobby.
* Fixed individual Join/Observe buttons acting on the wrong game in the MP
Lobby.
* Greatly improved behavior of sliders.
* Fixed crash when modifying an existing friend entry in Preferences.
* Fixed players being unable to start campaigns in MP mode.
* Added confirmation prompt when clearing map labels.
* Added show_border= key to the [main_map_border] to control whether map
borders draw. Right now this is utilized in the cutscene themes.
* If [main_map_border] background_image= is empty, the game map background
will be plain black.
* New really nice HD main menu/storyscreen background.
* WFL Engine:
* A new string `insert()` function has been added, similar to `replace()`.
* WML Engine:
* Added a `major_amla` option in AMLAs to keep the XP bar teal-white rather
than purple for AMLAs that behave similar to regular advancements.
(for example, Quenoth Youth in UtBS or similar unit lines)
* File paths with backslashes are no longer allowed. This ensures that a UMC
author can't accidentally use them and make an add-on that breaks on
GNU/Linux and macOS.
* File paths are now case sensitive even on Windows.
* [show_if] is now usable in the [objectives] subtag [gold_carryover].
* Macro SCEPTRE_OF_FIRE_EFFECT damage increased to 15x4 so Sceptre is an
improvement over the uncut ruby of fire (14x4) in TRoW.
* Added [lua] as a conditional tag, with identical syntax.
The code in such a tag must return a true or false value.
* Lua errors now cause as a condition to fail instead of pass.
* New `formula=` key in [set_variable] allows evaluating a WFL formula with
the variable, which may be either a scalar or a container.
* A missing [event] `name=` key will now raise a WML error instead of being
silently ignored.
* Units hidden with [hide_unit] will remain hidden after reloading saves.
* Fixed regression where most SUF keys would match all units if given "" as
a value.
* Miscellaneous and bug fixes:
* Suggested save file names now use spaces instead of underscores.
* Fixed crash after canceling add-on download (bug #2203)
* Fixed ingame help showing units you haven't encountered (bug #2135)
* Fixed the opacity IPF resetting to 0 if the value given was 100% or
greater (bug #2185).
* Fix recalls updating shroud immediately when "Delay Shroud Updates" is set
(bug #2196)
* Fixed not being able to undo previous moves after entering planning mode
(bug #2303)
* Fixed image cache being shared between campaigns.
Version 1.13.10:
* Add-ons client:
* A list of illegal filenames is displayed if any are found by the server
when uploading.
* Add-ons server:
* A list of illegal filenames is sent to the client if any are found during
the upload validation process. Only clients supporting this new
functionality can display the list.
* Fix an issue where the implementation of the hashing function used for
add-on passphrases was changed since 1.13.8, breaking existing hashes
(bug #2068).
* Campaigns:
* Delfador's Memoirs:
* Clarified and fixed objectives in many places.
* Improved appearance and flow of dialog in several places.
* Some minor gameplay changes to improve the story.
* Delfador now progresses properly from Mage Journeyman to Elder Mage.
* Fixed some other bugs.
* S07, A Night in the Swamp has been rebalanced on easy & hard.
* S09, Houses of the Dead, has been rebalanced.
* S18, The Portal of Doom, has been rebalanced.
* Iliah-Malal is now an Ancient Lich in S18 & 19.
* Language and i18n:
* Updated translations: British English
* Lua API:
* Upgrade to Lua 5.3.4.
* Multiplayer:
* Fixed a bug where the client would return to titlescreen on receiving a
redirect message from the server, which made connecting to the official
server via the "connect to official server" button impossible.
* Miscellaneous and Bug Fixes:
* Updated our included Spirit Po version from 1.0.1 to 1.1.2.
* Fix idle AI being replaced by default AI under certain circumstances on
loading of mid-scenario saves (bug #1955)
* Fix rare AI crashes in the move-to-any-target candidate action and the
Fast Micro AI
* Fix poisoner FAI to prevent flood of error messages in Legend of Wesmere
(bug #1999)
Version 1.13.9:
* Add-ons client:
* Fix HTML injection exploit in the wesnoth_addon_manager web index
generation functionality.
* Campaigns:
* Reordered beginner campaigns to be friendlier to new players.
* Delfador's Memoirs:
* Replaced incorrect 'Defeat all enemies' objectives with more specific
'Defeat all enemy leaders'.
* Increased difficulty, clarified objectives, & improved feel of S21 & S22.
* Riders are now guaranteed to go for a signpost in S21 on all levels.
* Heir to the Throne:
* Fixed thieves in 'Siege of Elensefar' getting duplicated.
* Fixed Void Armor not doing anything.
* Fixed translatibility of countdown in 'Test of the Clans'.
* Northern Rebirth:
* Fixed backdoor lever opening the wrong location in 'The Pursuit'.
* Secrets of the Ancients:
* Fix delay when additional enemies appear in S21 (issue #1706)
* Fix bug when finding bird bones reported here:
https://forums.wesnoth.org/viewtopic.php?f=4&t=46480#p614781
* Under the Burning Suns:
* Fixed crash in 'Out of the Frying Pan'.
* New unit sprites: Quenoth Mystic line, Quenoth Flanker line, Flesh Golem.
* Fixed Ethereal Shadow and Ethereal Nightgaunt having nightstalk even when
they shouldn't.
* Balance changes to the Quenoth elves:
* Formation ability now has looser adjacency requirements.
* Quenoth Scouts have a non-slowing sling at lvl 1 instead of bolas.
* Adjusted stats of some units.
* Graphics:
* Added portrait for Giant Rat.
* Fixed transparency artifacts in scaled portraits and other message images
(issue #1570).
* Fixed issue with jumpy animations on faster speeds (issue #1565).
* Added some new item and scenery images
* Language and i18n:
* Updated translations: British English, Chinese (Simplified), Italian,
Polish, Scottish Gaelic, Slovak, Spanish
* Lua API:
* Add wesnoth.format function to substitute variables into a string.
* Add wesnoth.format_conjunct_list and wesnoth.format_disjunct_list.
* New global "wml" table groups together all the functions for working
with WML tables, and its subtable "wml.variable" groups functions
for working with WML variables. Most of these are functions previously
found only in helper.lua; they no longer need a require to use.
* Warnings for using deprecated Lua functions now only appear in debug mode.
* wesnoth.game_config is now accessible in application and mapgen kernels,
though some of its contents are missing.
* New extra argument to wesnoth.match_location and wesnoth.get_locations
allows specifying the teleport_unit.
* Support the extra wesnoth.match_unit arguments also in wesnoth.get_units
* Fix wesnoth.put_unit not correctly deciding whether to fire the unit placed
event in some situations
* wesnoth.debug() can now be called from map generators or plugins. It is
also deprecated, however; you should use wml.tostring() instead.
* Multiplayer:
* When set to remember your password, Wesnoth now encrypts it. It is still
possible to obtain the password from preferences, but it's no longer as
trivial as before.
* Fixed crash when loading a replay stored on the server (Bug #1762)
* Fixed delay or clients getting stuck when starting a mp game (Bug #1674)
* Fix bug where leader can become unable to be killed (issue #1666)
* Performance:
* Rewrote the FPS cap implementation. This greatly improves
smoothness ingame.
* Each invalidated hex is now only redrawn once, not twice. This almost
halves CPU usage ingame.
* Implemented GUI canvas caching. It speeds up multiple areas, but especially
the story screen.
* Terrains:
* Added ruined version of encampment terrain.
* New stone floor terrain.
* Gates now have new terrain codes to grant more control for map makers.
The old codes are now deprecated (issue #1839)
* Units:
* Added new lvl 0 Giant Scorpling, leveling into the Giant Scorpion.
* Tweak some costs for lvl 3 units.
* User Interface:
* Fixed loyal and aged traits missing from help (issue #1935).
* Unit recall dialog now sorts the units by both level and required XP for
their next level-up (issue #1738).
* Enable the use of tab to switch between text fields in most dialogs.
* Color-code modifiers in trait tooltips
* Translation teams in credits are now listed in alphabetical order of the
localized language name (rather than the English language name).
* Allow deleting saves with the Delete key in the Load dialog.
* Fixed team selection screen often ignoring attempts to scroll (bug #1632).
* Input Method Editor support in most textboxes (except in-game chat)
* Campaign dialog now uses different-coloured victory wreaths depending on
the difficulty you beat the campaign on
* Campaign dialog can now be sorted in alphabetical or chronological order
* Fixed a number of issues with hotkeys
* Fixed the viewport being moved when changing the zoom level
* Fixed an occasional interface hang where only the menus work
* Trait description tooltips now color-code modifiers
* Fix about window not showing Mac notifications as available
* Add descriptive tooltips for all text elements in the top status bar
* The current screen position is now saved in savefiles
* Removed emacs keybindings in text fields (Ctrl+A, Ctrl+U, Ctrl+E)
Ctrl+A now selects all text in the field.
* Fix addon manager closing when canceling an operation
* Addons can now be filtered to show only publishable addons
* WFL Engine
* Add owner key to terrain space callable, for villages
* Location formulas in [tunnel] now have a teleport_unit variable
* Fix a crash when attempting to call a non-existent function
* The following previously FormulaAI-exclusive functions are now also
available in filter formulas (SUF, SLF, SSF, SWF):
adjacent_locs, location_in_radius, get_unit_type, unit_at, defense_on,
chance_to_hit, movement_cost
* New builtin functions for manipulating locations
(available to all formulas):
adjacent_locs, are_adjacent, relative_dir, direction_from,
rotate_loc_around
* New enemy_of function checks if its second argument is
an enemy of the first
Arguments can be side or unit objects, or integer side indices (1..n)
* WML Engine
* If ai_algorithm is used in [modify_side][ai], it now replaces the whole AI
with the contents of [modify_side][ai], instead of appending these
parameters.
* New [credits_group] tag can be used by non-campaign addons to group several
[about] tags under a single header. This is a toplevel tag, not a subtag
of [era] or [modification].
* An empty id key in SUF no longer matches all units;
instead, it matches none.
* Fix [primary_attack] and [secondary_attack] in [kill]
* Fix [kill] not affecting recall list units
* Fix [scroll] with omitted x or y
* Fix [story] not showing if all parts are conditional
* Fix some hotkeys not working (issues #1737 and #1769)
* New vision_cost and jamming_cost keys in SUF
* Integer SUF keys (eg level) now accept a list of ranges
* Fix $other_unit SUF variable being unavailable in nested [and] [or] [not]
* Unit ability values can now be specified with WFL
* The {ABILITY_TELEPORT} macro no longer uses internal variable substitution,
meaning that it can be used in an event without specifying
delayed_variable_substitution=yes.
(This also applies to {ABILITY_BACKSTAB} and {ABILITY_LEADERSHIP}.)
* Add fire_event key to [unit] which determines whether to fire a unit
placed event.
* [resolution] window_width/height now specifies the minimum window size
for that resolution to be chosen
* formula code is now supported in abilities and weapon specials (fr #1436)
* The allow_new_game= in [scenario] now defaults to false (it still
defaults to true in [multiplayer])
* Add [cancel_action] (bug #1427)
* Allowed TerrainGraphicsWML random_start= to optionally take a positive
integer to limit the range of the random shift of the animation start time
* new attributes mp_village_gold, mp_village_support, mp_shroud, mp_fog in
[multiplayer] that are used as default values for the corresponding
attributes in [side]
* Miscellaneous and Bug Fixes:
* Add --report/-R command line switch for printing the same report from the
Game Version dialog's clipboard function to stdout.
* Fixed programmatically killed unit flashing after its death animation
* On GNU/Linux the game no longer minimizes when it loses focus in
fullscreen mode (bug #1606)
* Fixed whiteboard crash on delete action with multiple moves (bug #1842)
* Fix units being unable to step on hexes with too high movecosts
(bug #1473)
* Improved and more detailed FPS display
* Fix minimap being sometimes black in mp create (bug #1484)
* Optimized unit filters
* Fixed bug #1837 empty tags missing in [store_unit]
* Fixed preferences not being saved if they weren't in the currently
selected tab when the settings dialog was closed.
Version 1.13.8:
* Campaigns:
* Son of the Black-Eye:
* Balancing changes for 'Silent Forest'.
* Under the Burning Suns:
* New sprites for Quenoth Youth (Kaleh and Nym) and Human Commander.
* Applied a color shift to the human units in S8 and S9 to give them a more
unique look.
* Editor:
* Fixed a crash when placing units.
* Restored the ability to preview different ToDs. Note this still does not
work when invoked form the Custom ToD window.
* Fixed editor sides not having the correct side number.
* Redesigned Windows, Areas, and Sides menus.
* The Windows menu will now display maps starting from 1 rather than 0.
This is likewise reflected in the default map filename.
* Scenario names are now displayed in more places if available.
* Formula Engine:
* Fixed garbage data showing up in stack traces in the event of an error.
* Object types can now be used in contexts where previously only a list or
map was accepted - for example in the filter() function. They will be
treated as a map in such cases.
* Graphics:
* Fixed items not receiving ToD lighting.
* Portraits for many Walking Corpse and Soulless race variants.
* New animations: Dwarvish Fighter idle.
* Language and i18n:
* Updated translations: British English, Chinese (Simplified), Lithuanian,
Slovak, Spanish
* Lua Engine:
* Add wesnoth.log_replay which exposes a little-used functionality of
injecting arbitrary logging data into a saved game.
* Small change to animator API - facing parameter replaced with target and
required to be a space adjacent to the unit.
* New modifiable theme attribute in wesnoth.game_config
* New wesnoth.zoom() function allows changing the zoom level
* The wesnoth.scroll function scrolls the screen by an offset, similar to
[scroll]. For example, wesnoth.scroll(5, -2)
* New is_local attribute in side proxy table allows you to detect whether
or not the side is controlled by a network player. Note that use of this
has the potential for OOS errors.
* New wesnoth.music_list table which allows controlling the music playlist:
* wesnoth.music_list[1] etc returns mutable information about a specific
track on the playlist
* #wesnoth.music_list counts the number of tracks on the playlist
* wesnoth.music_list.current returns mutable information about the
currently-playing track
* wesnoth.music_list.current_i returns the index of the current track on
the list. It is writable, allowing you to switch to any track on the
list. This respects fade values.
* wesnoth.music_list.all returns a copy of the playlist that can be
stored in a variable.
* wesnoth.music_list.play plays a specific track (as [music]play_once=yes)
* wesnoth.music_list.add appends a track to the playlist (as
[music]append=yes)
* wesnoth.music_list.clear clears the current playlist
* wesnoth.music_list.next fades out the current track and moves to a new
track on the playlist
* wesnoth.music_list.force_refresh forces any pending playlist changes
to be immediately applied
* wesnoth.music_list.volume attribute gets/sets the current music
volume, as [volume]music=
* Each track has modifiable shuffle, once, ms_before, ms_after
attributes and read-only append, immediate, name, title attributes.
They are also comparable with == or ~=
* wesnoth.set_music is now deprecated, in favour of the above new API
* New wesnoth.sound_volume function gets/sets the current sound volume, as
[volume]sound=
* New wesnoth.show_story function launches the storyscreen viewer
* wesnoth.dofile now forwards any excess arguments to the file in the
"..." argument
* wesnoth.require can now load all modules in a directory and accepts some
shortened paths, for example omitting the ".lua" file extension and
searching in the current directory.
* When you require a package that has no return value, you now get a table
that errors on any access to it, rather than nil.
* New wesnoth.create_weapon function to make a weapon that's not attached
to a unit (which could be useful for animations)
* New wesnoth.show_message function shows a simple alert dialog, possibly
with a choice
* New wesnoth.alert and wesnoth.confirm functions - simple shortcuts for
the above.
* Functions for working with hex locations have been added under wesnoth.map
In particular, helper.distance_between is deprecated in favour of
wesnoth.map.distance_between
* The following existing functions now also work in plugins and map
generators: wesnoth.log, wesnoth.get_time_stamp, wesnoth.get_image_size
* Several error messages now point more accurately to the actual location
of the error.
* wesnoth.simulate_combat output has additional keys:
* untouched (in first two return values) indicates whether the unit took
any damage
* number (in second two return values) contains the Lua index of the
attack, as opposed to attack_num which contains the WML index.
* weapon (in second two return values) contains the actual weapon userdata
* New methods in location_set: of_triples, to_triples, random
* New animations key in Lua unit proxy returns a list of defined flags for
animation
* New functional.lua file implements a number of higher-order functions
from WFL
* The length operator now works on translatable strings, returning the
length of the translation.
* wesnoth.set_side_variable and unit.variables can now clear variables
* helper.get_variable_array and helper.set_variable_array now work on
units and sides (pass a unit, side, or side number as an extra parameter)
Note: helper.get_variable_proxy_array does *not* work on units and sides
* helper.rand now has a second parameter that defaults to wesnoth.random
* Add wesnoth.game_config.victory_music and wesnoth.game_config.defeat_music
setters
* Add wesnoth.game_config.scenario_id getter
* wesnoth.set_next_scenario() was replaced with
wesnoth.game_config.next_scenario setter/getter
* wesnoth.set_dialog_value can now (un-) fold GUI2 tree view nodes
* Multiplayer:
* Fixed statistics being lost when reloading an MP game.
* Performance:
* Greatly speeded up switching between add-ons in the add-on manager
(bug #25523)
* User Interface:
* Updated Attack Predictions dialog to GUI2.
* Updated Story screen to GUI2.
* Double-clicking an add-on now installs, updates, uninstalls or publishes
it depending on the situation.
* Fixed file path being truncated on the wrong side in the File Browser.
* Improved Hotkey category sorting interface in Preferences.
* Improved Addon Manager and MP Staging interfaces at low resolutions.
* Fixed bug that allows you to use the minimap to bypass view locking
* You can now change the theme (in preferences) while a game is in progress.
* Fixed units moving after in game help exit. (#24644)
* Fixed a bug that caused rapid announce messages to overlap each other.
(bug #21634)
* Fix buttons disappearing while menus are open.
* Fix map labels disappearing when a dialog is open.
* Improve tooltip placement.
* Move recruit/recall to top of context menu
* Add a hotkey to launch test scenarios from the titlescreen
* Added a Cutscene and Minimal Cutscene theme for UMC authors to use.
* Improve layout of MP Create at low resolutions.
* Game Load screen now lists the gold and total number of units for each
side.
* Textboxes now have a blinking cursor when focused.
* multi pages can now contain different types of pages
* WML Engine:
* Add base_income key to [store_side]
* Fix issues with alpha animations on hidden units (#14503)
* Extensions to GUI2 Canvas ([drawing] tag in dialogs):
* New [round_rectangle] shape - a rectangle plus corner_radius
* [circle] shape can now be drawn filled; color key is now border_color
* [image] has new resize_mode=tile_center
* Canvas colors can now be expressed as formulas. The formula must return
the color as a list of its components, eg "([r, g, b, a])"
* Empty tags are no longer written to the configs of [unit]s and [side]s.
* New [change_theme] tag to change the theme mid-scenario
* New [zoom] tag allows changing the zoom level from an event
* [kill]animate=yes now plays victory animations if applicable
* [kill] now supports [primary_attack] and [secondary_attack] for the
animation
* Fix [volume] not accepting 100% as the new volume.
* New concat_to_* keys in unit_type inheritance allow amending keys
* Accept [story] as ActionWML in events
* Added a ~NO_TOD_SHIFT() ImagePathFunction which can be used on terrain and
item images to prevent them from being affected by ToD lighting.
* [unit]placement=name is now [unit]location_id=name and also honours the
new overwrite and passable keys, deprecating placement=map_overwrite etc.
* New zoom_levels key in [game_config] defines the allowed zoom levels.
* The default color list is now defined via a default key in [color_range],
rather than the default_color_list key in [game_config][colors].
* Standard Unit Filter has new ability_type_active and trait keys
* Standard Weapon Filter has new special_active key
* [animate_unit] now raises an error if the flag key is missing
* Fix [set_variable][join] not working with translatable strings
* [sound_source] now starts playing the sound immediately
* New voice key in [message] and [story][part]
* [objectives] now supports delayed_variable_substitution=yes and also
delayed substitution with $|variable syntax.
* Items in [options] now support container variables again.
* Miscellaneous and bug fixes:
* Fixed base animation showing on walking corpse & soulless bats
(bug #25673)
Version 1.13.7:
* AI:
* Fix a performance regression in complex combat situations such as the
"Oath of Allegiance" UMC campaign.
* Fix some Micro AIs and AI helper functions not working correctly for AI
sides under shroud
* New function ai_helper.find_path_with_shroud()
* Campaigns:
* Eastern Invasion:
* In 'Weldyn Besieged', redesigned the way in which revealing the
identities of the liches works.
* Descent Into Darkness:
* Fixed certain units not having the 'guardian' special in 'Descent into
Darkness'.
* Heir to the Throne:
* Fixed bug allowing the wrong person to receive the Sceptre of Fire.
* Fixed inconsistencies in Li'sar's sprites and animations when she has the
scepter.
* New death animation for Asheviere.
* Secrets of the Ancients:
* New campaign added to mainline (Intermediate level, 21 scenarios).
* The Hammer of Thursagan:
* New sprites for Dwarvish Witness line.
* Under the Burning Suns:
* Fixed difficulty levels with the original units not working.
* New sprites and animations for Spider Lich.
* Various balancing changes, bug fixes and improvements to the new units.
* Major changes:
* Kaleh and Nym movement points increased from 5 to 6.
* Moon Singer branch removed.
* Added winged lvl4 advancement for Quenoth Druid.
* Support ability now only lowers adjacent upkeep costs by 1.
* Graphics:
* New or improved sprites: Royal Warrior, Walking Corpse line wolf variation.
* Improved terrain graphics: lava, volcano, lightbeam.
* Improved the fake map border terrain so that it now connects with the real
map borders and can better be used to change the apparent shape of the map.
* Smoother fade transitions between differently colored time areas.
* Adjacent castles of different types now have fewer glitches between them.
* Fixed glitches between various mountain tiles (introduced in 1.13.3).
* Fixed units getting submerged on some bridge types when placed over water.
* Updated Mermaid Initiate portrait.
* Language and i18n:
* Updated translations: British English, Czech, German, Portuguese (Brazil),
Scottish Gaelic
* Lua API:
* New wesnoth.set_side_id function can change flag, color, or both; it automatically
updates cached flag info for you (but you may still need to redraw to see it).
* The wesnoth.place_shroud and wesnoth.clear_shroud functions can alter shroud data
for a single side. They accept a list of locations, a shroud data string, or the
special value "all".
* New wesnoth.is_fogged and wesnoth.is_shrouded calls test the visibility level
of a hex for a particular side.
* New wesnoth.create_animator call produces an object that can be used to run
animations for a group of units
* New Lua API functions for altering AI:
* wesnoth.switch_ai replaces the entire AI with a definition from a file
* wesnoth.append_ai appends AI parameters to the configuration; supports goals,
stages, and simple aspects.
(Aspect tags are not fully parsed; only the id and facet subtags are used.)
* wesnoth.add_ai_component, delete_ai_component, change_ai_component
These do the work of the [modify_ai] tag for a single side.
* Side proxy changes:
* flag and flag_icon are never an empty string
* New mutable keys: suppress_end_turn_confirmation, share_vision
* New read-only keys: share_maps, share_view
num_units, num_villages, total_upkeep, expenses, net_income
* Existing keys made mutable: shroud, fog, flag, flag_icon
* wesnoth.scroll_to_tile now accepts a third boolean argument - if true, the scroll
is skipped when the tile is already visible onscreen.
* The config accessors in the helper module now give a sensible error message if
something other than a config is passed as the first argument.
* wesnoth.deselect_hex no longer deselects units; it only unhighlights the hex.
* wesnoth.select_unit with no argument (or nil argument) now deselects any unit.
* Fix lua side:matches always iterating over all units on the map.
* Multiplayer:
* New maps: 2p Clearing Gushes, 2p Hellhole, 2p Ruined Passage,
2p Ruphus Isle, 2p Swamp of Dread, 2p The Walls of Pyrennis,
2p Tombs of Kesorak, 4p Bath of Glory, 4p Geothermal.
* Updated maps: Fallenstar Lake.
* Units:
* Several changes to names of attacks:
* Shock Trooper, Iron Mauler, Mage of Light: maces and morning stars
changed to flails.
* Arif, Ghazi, Khalid, Shuja: long sword changed to sword.
* Mighwar, Monawish: long sword changed to longsword.
* Updated unit descriptions: Orcish Grunt line, Merman Fighter line,
Sergeant, Lieutenant, General, Peasant, Royal Warrior, Ancient Lich,
Dwarvish Steelclad.
* Changed (mainly reduced) recruit costs of many high-level units:
* Dwarvish Lord, Direwolf Rider, Troll Warior, Banebow, Draug.
* Elvish Avenger, Champion, Hero, High Lord, Marksman, Marshall,
Ranger, Sharpshooter.
* Mage of Light, Fugitive, Huntsman, Ranger.
* Batal, Hadaf, Mighwar, Mufariq, Rasikh, Shuja, Tineen.
* User Interface:
* List boxes now keep the selected item visible when you change the sorting
option.
* The Addon Manager has a brand new interface.
* Modification selection is now always available when selecting a SP campaign.
* Scrolling the Editor palette no longer also scrolls the map.
* Removed the old GUI1 MP screens.
* Ensured dialogs with unit preview panes start with some extra space.
* Fixed an issue where certain long labels would cause scrollbars to appear.
* Greatly reduced the number of zoom levels available.
* Experimental change: removed scrollbar up/down buttons.
* Converted Hotkey Bind popup to GUI2.
* Fixed TC color in Faction Select sometimes not matching the side's selection.
* Ensured sides are always ordered by index in MP Staging.
* Wesnoth Formula Engine:
* New str_upper and str_lower functions for case transformations
* WML Engine:
* Update [store_side] to store everything in corresponding wesnoth.sides[*].__cfg
and additional keys: num_units, num_villages, total_upkeep, expenses, net_income
* Removed LOW_MEM option when building.
* Add color= attribute to [floating_text]
* Add ~CHAN() IPF that allows altering images according to formulas
It takes up to 4 WFL formulas, one for each channel (red, green,
blue, alpha); each works the same as the ~ADJUST_ALPHA() formula.
* New ability_type key in standard unit filters matches if the unit has any
ability of the specified type (tag name).
* Terrain flags "_border" and "_board" are now automatically set for every
tile, indicating whether it is on the map border or not.
* SUF type_tree renamed to type_adv_tree for consistency with [hide_help]
* [message]s no longer trigger a scroll if the unit is onscreen.
* Removed the ~DARKEN() and ~BRIGHTEN() IPFs.
* {SOUND_POISON} and {SOUND_SLOW} have been deprecated and replaced with empty
macros.
* [tunnel] now accepts delayed_variable_substitution=yes/no.
* [on_redo] is now deprecated and does nothing if used
* Miscellaneous and bug fixes:
* Fixed severe lag/freeze on slow PCs (bug #25356)
* Updated wmlscope to handle the square braces syntax in file paths
* Fixed an issue preventing quick replay when joining multiplayer matches
* Resolved crash on Help when font scaling set to 115% or greater (bug #25292)
* Resolved crash when viewing Help in CJK languages (bug #253334)
* Fixed [campaign][option] tags not being properly considered.
* Fixed an issue where team names could get corrupted in SP.
* Zoom levels no longer get reset between loading games.
* Do not load the Markov name generator if a CFG generator could be loaded.
* Exit "quick replay" mode in MP games once the game is caught up.
Version 1.13.6:
* AI:
* Added new high_xp_attack candidate action to default AI. This CA performs
attacks on enemy units so close to leveling that the default AI's combat CA
would not attack them.
* New Micro AI: Assassin Squad AI
* Fix bug #23720, AI units with max_moves=0 do not attack.
* Fix bug #22179: [disable] weapon special is ignored by AI. A second
instance of the AI also ignoring this special under different circumstances
has also been fixed.
* Fix bug of Experimental AI recruiting sometimes failing under shroud
* Fix some mainline campaigns custom AIs not working due to syntax changes
after the AI refactoring for Wesnoth 1.13.5 (e.g. bug #25123)
* Significantly improve move times for AI sides with many guardians
* Micro AIs, other Lua AIs and ai_helper.lua utility functions:
* Correctly and consistently deal with invisible units
* New ai_helper functions get_attackable_enemies, get_visible_units,
is_attackable_enemy, is_incomplete_move, is_incomplete_or_empty_move,
is_visible_unit and robust_move_and_attack
* Renamed function ai_helper.to_triple to LS_to_triples for consistency
with other functions
* Some internal changes to fix rarely occurring bugs and to improve
robustness and speed
* Campaigns:
* Eastern Invasion:
* Fixed broken village encounters.
* Tweaked the balance of Scenario 2.
* Heir to the Throne:
* Reworked the map and added new AI behavior in 'The Princess of Wesnoth'.
* Delfador's Memoirs:
* S9: Resolved inability to end level even when Delfador has the Staff
(bug #24951)
* S17: Resolved Wesnoth units returning to recall list not being healed
properly (bug #24952)
* S19: Resolved undead veterans victory condition not working properly.
* Under the Burning Suns:
* Redesign of all desert elf units (currently optional, selectable through
the difficulty menu).
* Graphics:
* Improved or new terrain graphics:
* New wooden floor variation and transitions.
* New aquatic encampment.
* New aquatic castles.
* Reworked stone walls so they take up less space and improved transitions.
* Added Wooden and Rusty Gates.
* Improved connections between castle and wall terrains, allowing castles and
keeps to be placed adjacent to walls without glitches in most cases.
* New sprite for Tentacle of the Deep.
* Tweaked colors for all time schedules.
* Language and i18n:
* Updated translations: Finnish, Polish, Russian
* Lua API:
* Upgrade to Lua 5.3.3+
Consult http://www.lua.org/ for a full change list and updated documenation.
* bit32 functions removed
* utf8 support added
* Added new function wesnoth.fire_event_by_id to fire an event with a given ID.
* Added new function wesnoth.remove_modifications, which removes applied
modifications of the chosen type from a unit. The most efficient use is to
remove all modifications with a specific duration value.
Also callable as u:remove_modifications.
* The built-in conditionals have_unit, have_location, and variable are now
present in the wesnoth.wml_conditionals table. This means they can be
directly called, extended with new features, or even overridden with custom
implementations.
* New recall_filter field in unit proxy returns the [filter_recall] config
* New variations field in unit_type proxy returns a list of unit variations
Each member is a full unit_type describing that variation.
The table is iterable with pairs().
* Lua side, unit_type, and unit attack proxies can now be compared with ==
with identity semantics. (Previously, each time such a proxy was obtained,
it would produce a new object that did not compare equal to any others.)
* Lua unit_type lists (wesnoth.unit_types and unit_type.variations) are now
countable with the Lua length operator.
* Lua dialog functions now support the stacked widget and the unit preview pane
* New wesnoth.show_menu function shows a dropdown menu at the mouse location
* Lua attack proxy has new read_only field which is true for unit_type attacks
If true, attempts to change the attack will result in an error.
* The name field in Lua attack proxy is now writable
* The attacks field in the Lua unit proxy is now writable
Specifically, attacks may be replaced, appended (by assigning a new ID or
the next valid index), or removed (by setting a field to nil).
* wesnoth.show_message_dialog supports second_portrait and second_mirror keys
in its first argument, which produces a dialog with two portraits.
* The callable userdata returned by wesnoth.textdomain can now be called with
an additional two parameters (a plural string and a count) in order to support
gettext plurals.
* New matches function in team and unit attack metatables, which test if the
side or weapon matches a filter.
* helper.lua metatables are now protected from external access; getmetatable()
will return a descriptive string instead of the metatable.
* ai.aspects.attacks no longer returns a full attacks analysis. Instead it
returns a table with "own" and "enemy" keys containing the valid units
for attackers and targets. The function ai.get_attacks() still returns the
full attack analysis.
* Aspect fetcher functions (eg ai.get_aggression()) are now deprecated in favour
of the ai.aspects table.
* The location_set iter and stable_iter functions can now be called with no argument.
In this case, they return an iterator suitable for use in a for loop.
* New wesnoth.wml_matches_filter function takes a WML table and a WML filter and tests
if the table matches the filter. The filter syntax is as with [filter_wml].
* Music and sound effects:
* Added a preference to pause the music when the game loses focus.
* Now the music fades out between scenarios.
* Networking
* Ported campaignd to use boost.asio instead of SDL_net.
* Removed unit tests for old networking stack. This was the last part that
depended on SDL_net
* Performance:
* When a heuristic determines that it's probably faster, the game predicts
battle
outcome by simulating a few thousand fights instead of calculating exact
probabilities. This method is inexact, but in very complex battles
(extremely high HP, drain, slow, berserk, etc.) it's significantly faster than the
default damage calculation method.
* Units:
* Changed the sound for the melee attack of the
Loyalist Bowman, Orcish Crossbowman and Orcish Slurbow.
* User Interface:
* Trait descriptions in the help are now generated. (This makes user-defined
traits show up in the help as well.)
* Fix game map sometimes showing and buttons sometimes not rendered properly
in story screen (bug #24553)
* Improved font rendering on Windows.
* Redesigned gamestate inspector window.
* Recall dialog no longer shows units that no leader on the map can recall
(due to the [filter_recall] not matching)
* Weapon specials only gained through AMLAs now get a help topic
* The "Cores" button on the title screen is now hidden if no cores other
than the default are installed
* Redesigned game dropdown/context menu appearance
* New categories bar in hotkey preferences allows you to filter hotkeys
* Fix issue with the title screen not redrawing when the window size or
fullscreen setting changes with a dialog open over it.
* Restored descriptions for choices in combobox-based Advanced Preferences
entries (lost in 1.13.3).
* When using the --wconsole option, the game now prints a prompt in the event
of a fatal error to avoid closing the console before the error can be seen.
* Restored GUI2 textbox selection highlight lost in version 1.13.3.
* Added a "Draw Number of Bitmaps" option to the map editor, for terrain
graphics diagnostics.
* Ported file chooser dialog to GUI2, and redesigned it to include a
bookmarks bar with predefined and user-defined shortcuts.
* Tweaked the border/groove color scheme on textboxes and sliders to better
reflect their state and mimic window and button borders.
* The following dialogs have been converted to GUI2: Unit Recall, Unit List,
Game Stats, MP Create, MP Game Lobby, Faction Select, Unit Advance.
* Improved UI responsiveness.
* Tab completion in the Lua console is improved. It can now handle paths
containing square brackets (though it won't complete them) and will not
offer keys that are not valid identifiers.
* WML Engine:
* Added ignore_special_locations=yes|no, default no, to [terrain_mask] to
ignore the special locations given in the mask, leaving all those on the
underlying map unchanged.
* [terrain_mask] starting locations and special locations are relative to
the mask. Existing names replace any in the underlying map regardless of
their location. Each name as a unique location; but a location may have
any number of names. While a map/mask can give only one name per location;
stacking masks allows multiple names. Names cannot be removed.
* Added {HAS_NO_TURN_LIMIT} macro for objectives
* New attributes for [message] with [option]
* Added variable= to [message]: if specified, gives variable name to
receive the [option] index (1..n) selected
only used if any [option] appear
* Added value= to [option]: if specified, gives value to store in variable
instead of index number, only used if variable= appears in [message]
* New second_unit, second_image, second_mirror attributes for showing two
portraits on a single message.
* New attributes for [role]:
* search_recall_list=yes|no|only(default yes) controls where to look
* reassign=yes|no(default yes) if no, check for a unit and do not assign to
another
* [auto_recall] sub-tag, if assigned to recall list, gives [recall]
attributes (no SUF)
* [else] sub-tag, WML to execute if no unit found for the role
* New help_text= key for [trait] to set the description displayed in the
help.
* Added tag id= [fire_event], which allows raising events by id
* [modify_unit] now understands [effect] tags, which it applies directly.
This replaces the use of [object] with no_write=yes (which will be removed
in the next release).
* Add [object]take_only_once=yes|no (default yes) - if set to no, automatic
tracking is disabled for this object (allowing it to be taken multiple
times even if it has an id).
* New [remove_object] tag which removes applied [object]s from matched units;
it can filter on the entire [object] WML. The most efficient use is to
remove all objects with a specific duration value.
* Renamed [foreach] variable= to array=
* Renamed [foreach] item_var= to variable=
* Fixed several bugs in the name generation of the map generator
* Fixed issues with using [endlevel] in victory/defeat events
* The {MAGENTA_IS_THE_TEAM_COLOR} macro is no longer needed in [unit_type]
It is now the default behaviour unless overridden with the flag_rgb key.
* New key type_tree in unit filters - similar to type, but also matches any
possible advancements of the specified unit types.
* [options][combo] in [scenario], [modifications], etc has been renamed
to [choice] (which is more accurate). The old name still works for now.
* ~ADJUST_ALPHA() image path function now takes a WFL formula. It can access
the following variables: x, y, width, height, red, green, blue, alpha.
It no longer accepts a percentage (use ~O() for that).
* Fixed [rule] in [terrain_mask] ignoring use_old=yes
* Fixed filter returning invalid locations if invalid locations were given
in a variable that was used with find_in=
* Moves cave map generator to lua. scenario_generation=cave is now deprecated and
will be removed soon. The Lua version has feature parity with the old one, but
the syntax is a little different. It supports both map_generation and
scenario_generation.
* Tunnel functionality was expanded and the default behavior was altered in
order to make moves through tunnels consistent with all other moves:
* Vison through tunnels is now possible and enabled by default. It can be
turned off by setting allow_vision=no in the [tunnel] tag.
* Own and allied units on tunnel exits do not block the tunnel any more.
The blocking behavior can be reenabled by setting pass_allied_units=no
in the [tunnel] tag.
* Added text_alignment= key to [story][part] to specify horizonal alignment of
text.
* [set_variable] now supports abs= (absolute value), power= (raise to
power) and root= (extracts root, 'square' is the only value currently
supported) keys
* Individual [terrain_graphics] rotations can now be skipped entirely by
using "skip" in the rotations= list.
* WML macros can now include optional arguments with default values that the
caller can override.
* Miscellaneous and bug fixes:
* A new way to make units invulnerable for debugging: select the unit and type
";unit invulnerable=yes". This method operates by decreasing the opponent's hit
chance to zero: as a result, it doesn't slow down damage prediction unlike the
"increase HP to ridiculous levels" method.
* The ;choose_level command now works in the tutorial and in [test] scenarios
* Fixed a stray ; character appearing pre-entered in the command console.
* Fixed bug in wesnothd that was causing server crashes if game with
multiple network and local players was ran.
* Added a tab to run the wmlxgettext tool to GUI.pyw
* Fixed problem with Spectre's hitpoint bar positioning.
* Fixed crash when unit with planned actions is killed before those actions are
completed (bug #20071)
* Show correct number of attacks in case of swarm weapon special (bug #24978)
* Fixed bug that icons of buttons under the minimap disappeared when the
player opened and closed a menu.
* Correct unit recall count in statistics when undoing a unit recall (bug #25060)
* Add tip to recall units instead of recruiting them if costs exceed 20 gold (recruitment costs)
* Resolve sides in map editor not having a proper side number and subsequently
causing a crash upon editing (bug #25093)
* Avoid rare cases of mini-map producing a divide-by-zero error (bug #25155)
* [filter_vision]: fix bug of filter not matching own/allied hidden units
* Prevent crash on quitting scenario with planned recruits present (bugs #24022/25193)
Version 1.13.5:
* Campaigns:
* An Orcish Incursion:
* Linaera can recruit Mage, and cannot recruit Elves
* Heir to the Throne:
* Add journey tracks for 19c/20b path.
* New sprites for Li'sar.
* S10: Clarify objectives and change egg image on capture.
* S19c: Removed the undead and the swamps.
* Tutorial
* Improve translatability for languages with gender-dependent pronouns
* S1: Fix unit being deselected after the select message
* S2: Highlight (outline) talked-about locations
* Legend of Wesmere
* S3: fix bug which silently disabled Urudin retreat AI
* Graphics:
* Updated generic portrait of Mermaid Initiate.
* Added generic portrait for Giant Spider.
* Language and i18n:
* Updated translations: British English, Galician, German, Italian, Japanese,
Polish, Portuguese, RACV, Russian, Scottish Gaelic, Spanish
* Networking:
* Reworked the multiplayer server to use asio functions for networking
operations instead of SDL_net, thus it no longer depends on SDL_net and SDL.
* The client now uses boost::asio for communication with wesnothd too.
* Removed support for SDL 1.2. SDL 2 is now the only supported version.
* Terrains:
* Changed terrain code of Desert Mountains from Mdy to Mdd.
* Editor:
* Allow to set special locations in the editor which can then be read by wml.
* User Interface:
* Fix flickering caused by tooltips, closing windows and tabbing into the game (bug #24532)
* Various design improvements to GUI2 widgets
* New simpler GUI2 loading screen
* New colored cursor graphics
* Fixed Mage of Light halo appearing in the top-left corner of the screen
while the mage is moving (bug #23712).
* Fixed Observers icon appearing behind other top bar items in MP games on
horizontal UI resolutions < 1024 (bug #24455).
* Fixed ToD schedule progress indicator appearing behind other top bar items
on vertical UI resolutions < 600.
* Improved the dialog for choosing what to do when a player leaves in
multiplayer.
* The side overview now also shows allied human sides in sp even if
they aren't discovered yet
* Added an option to disable the loadingscreen animation since it caused
bugs in some configurations.
* Added a gui method to activate loggers (Preferences -> Advanced -> Logging)
loggers activated in the gui print just like loggers activated in the
command line (i.e. messages appear in the console)
* The Lua console screen now has a clear button
* Fix bug #24762: Editor actions are out of sync after resizing.
* Increased the font size for text in buttons.
* Changed unit help topics to use smaller images on smaller monitors.
* WML engine:
* Add color= attribute to [message].
* Add [else], search_recall_list=, auto_recall= to [role]
* Fix some issues with [foreach]
* Fix some issues with backstab-like weapon specials
* Support [effect]times=<integer>
* Add highlight=yes|no to [scroll_to], [scroll_to_unit], [message]
Defaults to no in the first two cases, yes in the third
If yes, the target hex is outlined.
* New ~SCALE_INTO(w,h) IPF which preserves aspect ratio, using bilinear
interpolation scaling.
* New ~SCALE_INTO_SHARP(w,h) IPF which preserves aspect ratio, using
nearest neighbor scaling.
* Support delayed_variable_substitution= in [on_undo], [on_redo]
Note that this means $unit.x and $unit.y may not reflect the unit's
true location, so using [unstore_unit] on $unit may have unexpected effects.
This applies to $second_unit too. The $x1, $y1, $x2, $y2 variables work fine
though, so in most cases they can be used instead. Anything else in $unit
or $second_unit is also fine.
* formula= in SUF can now reference $other_unit via the formula variable "other"
* formula= now supported in location, side, and weapon filters
* Weapon filters now support number, parry, accuracy, and movement_used
* New [has_attack] in standard unit filters; supercedes has_weapon= and
uses full weapon filter.
* lua_function=var.member now works in SUF; however, 'var' still needs to
be a global variable.
* Added new keys name_generator, male_name_generator and female_name_generator
for the [race] tag to declare a context-free grammar to describe how names
are derived
* Modification tags in [modify_unit] now support delayed_variable_substitution
(This means [advancement], [object], and [trait] tags.)
* All looping tags now give an error if they contain no [do] tag.