forked from widelands/widelands
-
Notifications
You must be signed in to change notification settings - Fork 0
/
ChangeLog
5094 lines (4766 loc) · 272 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
[TOC]
## Release 1.2
### Animations, Icons and Overlays
- Remove leftover individual animation frames of buildings (#5269)
- Upscaled editor splash image (#5634)
- Move empty sign on Atlantean mines to make it visible when status labels are shown (#5642)
- Redesigned Amazon frontiers and flags with more visible playercolour (#5714)
- Updated Frisian Campaign Portraits (#5737)
- Add high resolution images for Empire ship (#5950)
- More playercolour for amazon ship (#6109)
- Add high resolution images for most tribe immovables (#6137)
- High resolution images of basic wares from blender models (CB #4576 / GH #6235)
- Bigger `menu.png` for Amazon ship (#6143)
- Optimize images with PNGQuant (CB #4754 / GH #6392)
### Tutorials and Campaigns
- Minor tweaks in emp03 to reflect user comments in #5478 (#5648)
- Fri05 (#5712)
- Scenario "Island hopping" fix (#5746)
- Carry over ship names in Atlantean campaign (#5781)
- Tutorial 01 fixes (#5909)
- Fix Food Production objective in first atlantean campaign (#6081)
- Fix changed tab name in encyclopedia tutorial (CB #4707 / GH #6344)
- Fix building window name and translation regressions in emp04 and tut01 (GH #6380 / CB #4743)
- Make open building window checks in campaigns saveloading resistant and other campaign fixes (CB #4747 / GH #6385)
- Campaign consistency fixes (CB #4755 / GH #6393)
### Scripting
- Limit `set_soldiers` to 10000 soldiers (#5568)
- Add function `LuaMap::wrap_field` with wraparound (#5739)
- Using helper functions in performance texts. (#5773)
- Make Amazon treetop sentry placeable by scripts (#5821)
- Optimize `LuaField` garbage collecting efficiency (#5839)
- Validate that all tribes possess all special animations (#5862)
- Fix constructionsite former buildings in Lua `place_building` (#5857)
- Add "all" to `player:get_buildings()` and `player:get_constructionsites()` (#5988)
- Cleanup: variable `dirname` is local in all lua files (#5986)
- Lua scripts can use `wl.Descriptions().building_descriptions` (#5993)
- Move `lunit.lua` in `test/scripting/` (#5996)
- Add new building type market to `is_building()` (#6015)
- Fix upcasting map object descriptions to Lua (#5997)
- Misc API Enhancements (#5975)
- Write map tags array in `wl_map_info`
- Add function `LuaWorker::evict`
- Add property `LuaMapObject.exists`
- Expose worker buildcost to `modify_unit`
- UI Plugins (#5872, CB #4420 / GH #6030)
- Lua UI API Extensions (#5933)
- Read+Write access to most properties of all kinds of UI elements at runtime
- Add support for checkboxes, radio groups, unique windows, spinboxes, sliders (all three flavours), progress bars, editboxes and multiline editboxes
- Cleanup: Deduplicate index variables in Lua `get_x_descriptions` (#6026)
- Cleanup: Remove last uses of deprecated `tribe.carrier2` and `tribe.carrier` (#6025)
- Win condition artifacts minor fix (#6042)
- Implement `walk=<direction>` in worker programs (CB #4467 / GH #6149)
- Pass correct parameter to lua_typename() (CB #4646 / GH #6282)
- Add Lua APIs for Missing Bob Types (#6125): `PinnedNote`, `NavalInvasionBase`, `ShipFleetYardInterface`, `FerryFleetYardInterface`
- Clarify use of spinbox parameters from Lua (CB #4734 / GH #6371)
- Fix icons on dropdowns in Lua API (CB #4742 / GH #6379)
### Maps
- Map Required Widelands Version Check (#5884)
- Add a building plot to unusable port island on Calvisson (#6084)
- Remove unwinnable-with-autocrat hint from map Crossing The Horizon
### Add-Ons
- Allow themes to replace arbitrary UI images (#5734)
- Allow starting new game with additional world add-ons (#5718)
- Enable World Add-Ons in Random Matches & Maps (#5753)
- Make richtext.lua styleable and allow partial theme addons (#5748)
- Make `modify_unit` index lookup load-order-safe (#5871)
- Disallow add-ons which are incompatible with the current Widelands version (#5879)
- Fix add-ons admin dialog Enter key handling (#5763)
- Turn unguaranteed add-on dependency check assert into a conditional (#5829)
- Add-Ons Packager: Compute Minimum Widelands Version For Maps (#5905)
- Do not hide Add-On comment text during layout (#6032)
- Fix false positives in add-ons packager change detection (#6033)
- Add missing `richtext_escape` for add-ons error message (#6049)
- Don't require World add-ons to be globally enabled for dependent Maps add-ons (#6057)
### Saveloading
- Allow loading another replay in replay mode (#5611)
- Fix saving game with new name (#5639)
- Replays: Single-File, Optional Writing, Autodeleting (#5645)
- Fix Filesystem Errors from ReplayWriter (#5724)
- Save only used terrains in terrain packet (#5803)
- Fix Shipyard/PortDock/FleetInterface Load Order Regression (#5928)
- Building Stats Menu checks if saveloaded selection is still available (#6050)
- Settlers2/RTTR Map Loading Fixes (#6054)
- Support RTTR Maps
- Fixes for stones placement
- Allow up to 8 players
- More useful error messages for invalid maps
- Fix `PlayerMessageCommand` Saveloading (#6097)
- Fix double cleanup for direct loading of invalid replay (#6098)
- Reinitialize forester cache when reloading (#6105)
- Do not save partially initialized window (GH #6223 / CB #4564)
- Save and load garrison settings (#5983)
- Remove v1.0 compatibility code (CB #4615 / GH #6276)
- Allow loading last savegame/replay/edited map from the command line (CB #4470 / GH #6153)
- Remove invalid NavalInvasionBase cleanup assert (CB #4723 / GH #6360)
### AI
- Small AI Fixes (#5683)
- AI Diplomacy (#5774)
- Make AI supplycheck non recursive and more efficient (#5866)
- Navalwarfare AI (CB #4441 / GH #6083)
- Fix integer overflow in AI ship utilisation calculation (CB #4713 / GH #6350)
- Make AI set port garrison according to soldier availability (GH #6351 / CB #4714)
### Gameplay
- Configurable Win Condition Duration (#5380)
- Seed random number generator before starting new game (#5608)
- Fix trainingsites' definition of when a soldier is present (#5640)
- Fix portspace detection (#5647)
- Cancel battles when players negotiate truce (#5665)
- Allow letting individual productionsites produce indefinitely (#4961)
- Naming Warehouses and Ships (#5703)
- Forbid soldiers leaving buildings through the wall (#5728)
- Make "Fogless" a Game Setting (#5733)
- Fix sleep times in production buildings (#5778)
- Fix player end status handling (#5826)
- Refactor Game Configuration Flags (#5863)
- Link ship/ferry yards to fleets and produce ships/ferries as needed (#5912)
- Fix wild pointer dereference during ship removal (#5966)
- Win condition Wood Gnome can have several winners (#5952)
- Count trees for start conditions like Poor Hamlet (#5964)
- Clean up legacy resource handling code (#6000)
- Cleanup failed game state before entering menu after game error (#6004)
- Free Unsent PlayerCommands on Cleanup (#6011)
- Well-defined shipyards collaboration (#6070): When a shipyard has multiple shipconstructionsites nearby, then on each working cycle a random site to work on is picked.
- Custom Ship & Warehouse Naming Lists (#6056)
- Add mutex locks for economy creation/deletion (#6091)
- Safeguard pathfinding with a mutex (#6104)
- Emergency saving enhancements (#6108)
- Emergency saves from network games are now saved as network savegames instead of singleplayer savegames.
- During the emergency save, show a game saving progress screen like for manual saves.
- More consistent worker eviction (#6136)
- Further enhancements for ship construction (#6129)
- Add quartz to the Amazon economy (CB #4512 / GH #6170)
- Amazon starting conditions: Fix input quantities in stone workshop (GH #6178 / CB #4520)
- Cancel battles only when players negotiate real truce (CB #4574 / GH #6233)
- Fix evicting of secondary workers (CB #4657 / GH #6294)
- Increase amount of coal in Amazon starting conditions (CB #4681 / GH #6318)
- Make Amazons poor hamlet more forgiving with tools (CB #4554 / GH #6211)
- Naval warfare baseplate implementation
- Naval Warfare: Healing (#5795)
- Naval Warfare: Onboard Soldiers Attack Bonus (#5796)
- Naval Warfare: Invasion Strategy (#5847)
- Naval Warfare: Coastal Invasion (#5859)
- Naval Warfare: Invasion Enhancements (#5869)
- Naval Warfare: Better Invasion End Detection (#5887)
- Naval Warfare: Make detected portspaces addressable for expeditions (#5929)
- Garrisons for Warehouses and Warships (#5930)
- Position attacking warships 2 nodes west of the defender (#5947)
- Fix Warship Soldiers Capacity & Requesting Issues (#5953)
- Fix stacking order of new ship battles (#5962)
- Make `Game::random_location()` Normalize Coords (#5976)
- Don't detect portspace under own port (#5974)
- Fail safely when ship destination dock is unreachable (#5972)
- Fix soldier request deletion when ship is destroyed (#5989)
- Forbid soldiers boarding ships on high sea (#6006)
- Update expedition swimmable directions on every field (#6018)
- Forbid ships from sailing through too-narrow straits (#6013)
- Reroute ships on the way to port-under-construction upon port completion (#6045)
- Misc Naval Warfare Segfault/Assert Fixes (#6066)
- Fix assert failure during soldier swapping on a warship with maximal soldier capacity
- Transport ships skip updating warship soldier requests and kickouts
- Make `SoldierList` robust against map object removal (#6087)
- Make AttackPanel/Window robust against object deletion (#6123)
- Fix naval battle stacking in complex situations (#6071)
- Stop ship battles when ship is destroyed (#6099)
- Garrisoned soldiers shouldn't count towards economy target (#6086)
- Invasion soldiers conquer portspace for the duration of the invasion (#6115)
- Warships don't detect own ports as portspaces (#6088)
- Guard against invalid ship battle situations (#6140)
- Track warship soldier requests (#6122)
- Initialise `Game::naval_warfare_allowed_` as `false` (CB #4749 / GH #6387)
- Fix replay desync with timed win conditions
### User Interface
- Default select the first worker to kick from a production site (#5515)
- Do not cut filename extension for directories (#5623)
- Consume every keydown event in editbox (#5626)
- Show name and experience type of missing workers (#5432)
- Delete selected text on text input (#5633)
- Show coming and absent soldiers in building soldier list (#5437)
- Draw Actual Game Speed (#5621)
- Make diplomacy window available to spectators (#5609)
- Fix cursor flashing (#5674)
- Redesign Diplomacy Accept/Reject/Retract UI (#5670)
- Allow retracting your own pending invitations and join requests.
- Join requests may be approved or rejected by any member of the team, not just the player the request was made to.
- Removed the confirmation popup and instead added the buttons to the diplomacy window.
- Prompt for confirmation before resigning.
- Quick Navigation GUI (#5487)
- UI Elements Fixes And Tweaks (#5668)
* Allow using PageUp/PageDown and Ctrl+scroll in sliders and spinboxes to change the value faster
* Make sure that no slider nor spinbox can wrap around due to integer overflow
* Add missing changed() call in spinbox when value is set to min/max (fixes warning update in Editor/Map Options/Ferry Range)
* Decrease width of big step buttons of spinboxes (should help dealing with #5631)
* Fix updating slider position when min/max is changed (affected attack window)
* Add "Click to sort/reverse" to table header tooltips (requested by @frankystone for map selection)
* Reset sorting order when user changes column to sort by
* Handle big step in inputqueue
* Allow using Shift + arrow keys in priority slider to set all input priorities at once
* Stabilize selection end in editbox (fixes #5676)
* Handle big step in soldier capacity settings
* Converted all users of `get_keyboard_change()` to handle big step, remove `enable_big_step` option
- Add shortcut keys for all menu items (#5705)
* add shortcut to statistics button tooltip in interactive_spectator.cc
* unify Load and Save hotkeys
* change some editor tool hotkeys and make all tools use Shift modifier
* editor new map window: create new map when terrain is doubleclicked
* editor: remove Alt modifier for third tool function (old TODO item)
* editor: ask for exit confirmation even if map is not modified (still skip on Ctrl+click)
* ask for exit confirmation in main menu (can be skipped by Ctrl+clicking)
- Worker and Soldier Statistics Tweaks (#5607)
- Fix incorrect genstats labels font colour
- Add statistics about civil buildings defeated
- Workers without buildcost and soldiers now don't count for the workers graph
- Refactored military graph calculation
- Show total number of soldiers in soldier stats window
- Pinned Notes (#5569)
- Show flags preview in road building mode when Ctrl is held (#5557)
- Fix SoldierList off-by-one buffer overflow (#5726)
- Trigger `closed` signal when closing unique window (#5731)
- Add tooltips to ItemWaresDisplay and fix icons alignment (#5729)
- Fix heap-use-after-free in `BuildingWindow::init` (#5720)
- Keep player colours if unchanged when changing slot (#5719)
- Fix hang on building window warp (#5747)
- Add Go To Road button to fieldaction roadbuild window (#5732)
- Fix crash when dialog opens while dragging map (#5752)
- Make Info Panel a Snap Target & Remove "Snap Only When Overlapping" Option (#5566)
- Merge Add-On Dirnames in Map Select UIs (#5766)
- Disable fastclick during game loading (#5780)
- Fix collapsing input queues and other window handling fixes and enhancements (#5785)
- Fix window Z ordering priorities (#5812)
- Fix segfault in Panel::move_to_top() (#5824)
- Sorting maps by size sorts by number of fields (#5842)
- Integrate EditBox and MultilineEditbox with the primary selection buffer (#5835)
- Watch window fixes and tweaks (#5820)
- Improve landmark behaviour when game main window is resized (#5825)
- Darken background behind modal windows (#5867)
- Fix Window::move_out_of_the_way() (#5841)
- Refine game error handling (#5735)
- Fix modality and threading issues around `StoryMessageBox` (#5897)
- More Editbox Accessibility (#5873): Handle double-click, triple-click, Ctrl+Backspace, Ctrl+Delete
- Minimap Improvements (#5876)
- Highlight traffic jams
- Highlight attacks
- Show artifacts in editor
- Fix contrasts between layers
- Make Main Menu Dropdown Entries a Bigger Click Target (#5902)
- Unify `EditBox` and `MultilineEditbox` (#5900)
- Layout ship window before setting fastclick target (#5942)
- Fix regression in `EditBox::scroll_cursor_into_view` (#5946)
- Fix Segfault in `FieldActionWindow` (#5982)
- Revert preventing `move_inside_parent()` to move `UniqueWindow`s with saved position (#5995)
- Name All UI Elements (#5963)
- Remove hardcoded panel sizes in launch game window (#6016)
- Do not layout invisible box items (#6035). Resolves game setup UI regressions.
- Fix `Window::move_inside_parent` bottom docking (#6055)
- Options Window Cleanup (#6059)
- Remove mouse grab option
- Make syncstream writing a command-line-only option
- Redesign sound options layout
- Fix layouting for checkboxes and translation stats text
- User Inactivity Detection (#6048)
- Autosaves are skipped if the user has not been active since the last autosave,
or if gametime progressed by less than half of the autosave interval. Autosaves can also happen during pauses.
This behaviour can be toggled via an option (default: on).
- If the user is inactive for a configurable time span (default: disabled), the game is automatically set to paused.
- Fix racecondition segfault when opening building window (#6065)
- Fix editbox horizontal scrolling mouse clicks regression (#6060)
- Fix LaunchMPG Layouting Segfault (#6079)
- Fix more box regressions (#6101)
- Fix input queue priority indicators positions
- Fix LaunchMPG client box scrolling
- Draw system clock also in main menu (#6103)
- Debugconsole and input history improvements (#5944)
- Allow saving favourite colours in colour chooser (#6124)
- Remember more settings in stock/unique window (#6128)
- Fix selection cursor setting after picking custom starting position (#6082, #6152)
- Different overlay image for valid custom starting positions (#6148)
- Refactor `WaresDisplay` ware list handling (#6144)
- Fix comment box overflow (CB #4499 / GH #6157)
- Do not handle_mousein in ware display (CB #4501 / GH #6159)
- Fix heap-use-after-free in message preview drawing (CB #4511 / GH #6169)
- Game title box (GH #6172 / CB #4514)
- Add zero check for division in textinput (GH #6218 / CB #4559)
- Fix duplicated richtext wrapping in messagebox (CB #4587 / GH #6246)
- Ask for more information when reporting crashes (CB #4592 / GH #6252)
- Fix end status text sorting in game summary window (CB #4539 / GH #6197)
- Fix size assert for very large panels (CB #4652 / GH #6289)
- Refactor technical info box to handle long lines better (CB #4662 / GH #6299)
- Allow sending expeditions and warships to specific ports, ships, and notes (#5786)
- Send message when ship arrives at player-specified destination (#5832)
- Naval Warfare: Attack UI Refactoring (#5885)
- Naval Warfare: Attack Anything in Range (#5908)
- Naval Warfare: Show fleet strength in general statistics (#5926)
- Disambiguate selectable ship click targets (#5938)
- Don't refresh inexistent soldier box in warehouse csite window (#5968)
- Forbid spectators setting ship destination (#6010)
- Redesign ship healthbar/bonus rendering to fix overflow-hang (#6039)
- Warship soldier capacity setting enhancements (#6044)
- Allow changing soldier capacity and preference while refitting to warship.
- Turn "click soldier to send away" info texts into tooltips to make windows narrower.
- Forbid changing soldier capacity in replays (#6053)
- Misc sea-fighting-related UI tweaks (#6142)
- The attack window now uses bigger icons for ships to display the health bar properly, and also draws ship icons as background.
- Clicking and dragging on an empty part of the soldier list drags the window now.
- The ship window shows the warship's health.
- Fixes the bug with filtering the ship destination dropdown.
- Sinking ships show their status text as "Sinking" and their health as zero.
- Added an assert so if a very weird, very rare GL race condition is encountered in a debug build we might get a helpful backtrace of all threads.
- Make naval warfare a game flag, disabled by default (CB #4547 / GH #6205)
- Don't send "known portspace" messages for ship underway to destination (CB #4655 / GH #6292)
- Show total number of ships in seafaring stats menu (CB #4685 / GH #6322)
- Fix duplicated setting name for replay shortcuts (CB #4721 / GH #6358)
- Fix deadlock in mutex responsiveness code (CB #4726 / GH #6363)
- Use unique names for map object windows (CB #4737 / GH #6374)
- Speed up Wares Display Drawing (GH #6382 / CB #4744)
### Internationalization
- String Fixes (#5710, #5782, #5999, CB #4697 / GH #6334)
- Capitalisation of tribe names (#5910, #5913, #5916)
- Keep PO and POT files in sync in translations updates (#6027)
- Translations update CI: Commit pure translations separately (#6064)
- Make spinbox current value and change-by value translatable separately (CB #4612 / GH #6273)
- Don't assemble partial string for detected portspace tooltip (CB #4718 / GH #6355)
- Turn confusing translators comment into helpful (CB #4728 / GH #6364)
### Help and Documentation
- Encyclopedia Hyperlinks (#5533)
- Fix buildings help button (#5661)
- Explain clearer what an economy is (#5630)
- Trainingsite encyclopedia enhancements (#5673)
- Further fixes of economy gametips (#5711)
- Fix performance text in encyclopedia and sleep times in production buildings where the workers need some experience (#5768)
- Update keyboard controls help and generate it semi-automatically (#5717)
- Follow links in building help window (#6003)
- Helptexts about roads blocking shorelines for workers (#6014)
- Update performance helptext for buildings producing more wares (#5861)
- Some documentation rephrasings (#6041)
- Documentation: attribute name with underline (and not space) (CB #4536 / GH #6194)
- Doc Lua API: current examples for get_build_id() (GH #6209 / CB #4552)
- Update performance helptext for comparable buildings between tribes, small sites (GH #6068 / CB #4435)
- Fix documentation for workers (GH #6244 / CB #4585)
- Doc for lua function update_toolbar() matches code (CB #4594 / GH #6254)
- Extend documentation about attributes of units (GH #6195 / CB #4537)
- Documentation: place_road() needs a flag, not a field (GH #6262 / CB #4601)
- Fix documentation of the objectives lua interface (CB #4613 / GH #6274)
- Lua doc: explain `wl.Game().real_speed` a bit better (CB #4665 / GH #6302)
- Lua styles documentation (CB #4704 / GH #6341)
- Add images to theme documentation for fonts and buttons (CB #4695 / GH #6332)
- Lua doc about playernumber fixed (CB #4535 / GH #6193)
- Turn function mentions into links in richtext.lua examples section (CB #4738 / GH #6375)
### Editor
- Explain waterway setting in Editor Map Options and add toolips to all map tags (#5653)
- Map Generator Add-Ons & Map Generating Dialog Accessibility Tweaks (#5537)
- Editor: Show Starting Positions on Minimap (#5704)
- Fix segfault in multiselect editor tools (#5708)
- 3-Click Map Publishing as Add-On Inside the Editor (#5635)
- Fix Editor Add-Ons Postloading (#5783)
- Editor immovables menu: Added size to tooltip (#5849)
- Editor Automatic Tree Placement Tool (#5848)
- Fix editor painting mode regression (#5856)
- Z-Order Map Options Window Above Save Map Window (#5956)
- Editor Tool Random Gap (#5864)
- Select info tool after opening history window (#6002)
- Sanitize suggested teams lineups (CB #4673 / GH #6310)
### Graphics Engine
- Show chat with customized player colours (#5671)
- Indicate soldier preference in milsite stats string (#5730)
- Fix map pixel to triangle computation regression (#5740)
- Work around `glewInit` crash on Wayland (#5784)
- Fix undefined `GLEW_ERROR_NO_GLX_DISPLAY` (#5804)
- Replace directory with animation_directory in animations (#5519)
- Linkify URLs in Rendered Text (#5870)
- Scalable Buildhelp Overlays (#5868)
- Implement padding numbers with digit width space UTF-8 characters (#5883)
- Remove superfluous `SDL_GetModState()` calls (#5945)
- Allow lookup of richtext inline images without specifying scale suffix (#5935)
- Continuous Bob Animations (#5954)
- Force all textures to 32bit for Mesa 23.x (#6072)
- Correct float-int type mismatch in fragment shader's alpha calculation (CB #4586 / GH #6245)
### Networking
- Networking log output and formatting usage cleanups (#5560)
- Prevent spectating host from changing game speed (#5604)
- Show enabled game-relevant add-ons before hosting (#5599)
- Disambiguate temporary savegame for multiple LAN games (#5875)
- Show error message immediately when host leaves metaserver game (#6012)
- Game client win condition duration bugfixes (#6073): The duration spinbox is disabled for the gameclient, and an update from the host triggers no `changed()` signals on the client.
- Fix chat player color indices if some players are not in the game (#6069)
- Fail gracefully in LAN setup when network access restricted (#6076)
- Fix custom naming lists for spectators (#6107)
- Game Chat Accessibility Tweaks (#6127)
- Sanitize network game player names more thoroughly (#6132)
- Fix calling emergency save from GameHost::disconnect_client() (CB #4597 / GH #6258)
- Set timeout for add-ons network I/O (CB #4739 / GH #6376)
### Build System
- Fix undefined `PATH_MAX` (#5615)
- Drop support for g++-5 and g++-6 (#5541)
- Require libpng >= 1.6 (#5625)
- Fix Clang15 Compiler Warnings (#5629)
- Replace `sprintf` with `snprintf` (#5651)
- Switch to C++17 (#5672)
- CI enhancements (#5682, #5750, #5759. #5761, #5772, #5794, #5799, #5831, #5837, #5845, GH #6352 / CB #4715)
- Fix more clang-tidy checks (#5679, #5689, #5696, #5684, #5695, #5693, #5690, #5694, #5692, #5685, #5688, #5698, #5697, #5686, #5699, #5687, #5691, #5681, #5709)
- Fix member initializer ambiguity regression
- Added sharpyuv as new SDL_Image extra lib (#5756)
- Fix build with gcc 13 by including `<cstdint>` (#5765)
- Support compilation with musl libc (#5764)
- Fix Windows Logging for Unit Tests (#5877)
- Update SDL versioning check scheme
- Fix Compilation with GCC 13.1 and AppleClang (#5903)
- Add missing `#include <cstdint>`
- Ignore new false-positive compiler warnings
- Fix CMake version check warning
- Resolve static libraries during configuration (#5914)
- Disable ignored clang-tidy checks in the config file (#5917)
- Build vcpkg packages weekly (#5904)
- Remove hard-coded library paths for MinGW builds (#5921)
- Cache clang-tidy output (#5922)
- Enforce use of global vcpkg in CI (#5934)
- CMakeLists Cleanups for RelWithDebInfo (#5943)
- CI: Push vcpkg ref only to main repo (#5977)
- Define `PRIuS` using `PRIuPTR` if available (#5979)
- Set fixed MSVC toolset version (#6007, #6147)
- Resolve compiler warnings (#6021)
- Re-enable `-Werror` for GCC 13.1.1+
- Update Clang version in CI
- Resolved most GCC warnings
- Resolved warnings in MinGW builds
- Fix documentation CI workflow (#6062, #6089)
- Fix MinGW library linking order (#6111)
- Report all validation errors by update_appdata.py (#6116)
- Remove formatting workarounds (fixes GH #5221)
- Rename brotli static dependency (GH #6177 / CB #4519)
- Improve vcpkg update check (GH #6181 / CB #4523)
- Use cmakes newer FindPython module (CB #4525 / GH #6183)
- Python files require python3 explicitly (CB #4529 / GH #6187)
- Fix vcpkg cache restore (GH #6198 / CB #4540)
- Fix revision detection, bump cmake version (CB #4550 / GH #6207)
- `update_authors` minor enhancement (GH #6117 / CB #4453)
- Update toolset.json path (GH #6234 / CB #4575)
- Improve update translations stats (GH #6120 / CB #4456)
- Fix msys2 Windows builds (GH #6265 / CB #4604, GH #6278 / CB #4617)
- Fix building on FreeBSD / OpenBSD (CB #4600 / GH #6261)
- Fix error detected by shellcheck in compile.sh (GH #6268 / CB #4607)
- Install fixed version of 32bit glbinding (GH #6287 / CB #4650)
- Fix building with external minizip (GH #6279 / CB #4618)
- New Msys dependencies (GH #6281 / CB #4645)
- Update `download_asio.sh` to asio version 1.28.0 (CB #4616 / GH #6277)
- MinGW dependency system (CB #4653 / GH #6290)
- Skip CI workflows where nothing changed (CB #4644 / GH #6257, CB #4672 / GH #6309, GH #6320 / CB #4683)
- Speed up all_tribes tests in the testsuite (GH #6353 / CB #4716)
- Update MacOS CI (CB #4719 / GH #6356)
- Regression tests for start and win conditions, fix race regressions (CB #4524 / GH #6182)
- Add gettext tools to vcpkg dependencies (GH #6389 / CB #4751)
- Suppress unsafe buffer usage warning on Clang (CB #4770 / GH #6408)
### Other Issues
- Caret-escape control characters in strings (#5496)
- Add pull request template
- Call `SDL_PumpEvents` from main thread only (#5656)
- Add mutexes for Notifications backend (#5715)
- Add timeout support to regression_test.py and improve output (#5806)
- Add amazons all buildings test to test suite (#5817)
- Make `WLApplication::get()` return reference (#5906)
- Support `SIGUSR1` to toggle verbose output (#5911)
- Increase regression test suite sleep times (#5918)
- Translations sync workflow updates:
- Disable single-line-diff-skipping in translations update because Transifex timestamps no longer get updated reliably
- Skip timestamp-only POT changes during translations update (#5937)
- Skip POT-Creation-Date only changes in PO files too (#5941)
- Translation update: Exit cleanly when nothing needs to be committed (#5959)
- Remove unused code from regression_test.py (#5987)
- Self-diagnose crashes (#6100)
- Add `.editorconfig` for automatic indentation in many editors (CB #4415 / GH #6019)
- Update copyright end year to 2024
- Fix title in test of `string_bformat.lua` of `lua_testsuite.wmf` (CB #4647 / GH #6283)
- Logic exception handling fixes (#6053): Forward logic thread exceptions to main thread's handler
- Fix some segfaults related to `Map::calc_distance` (#6135)
- Deadlock-related improvements (#6139)
- Detect and break deadlocks
- Refactor NoteThreadSafeFunction handling
- Correct naval warfare rebasing artifacts (CB #4699)
- Refactor commandline handling (CB #4471 / GH #6154)
## Release 1.1
### Animations, Icons and Overlays
- Fix some "deprecated pictures parameter" warnings (#4908)
- Create spritesheets (#4935)
- Spritesheet cleanup & campaigns (#4974)
- Updated barbarian barracks graphics by DragonAtma (#4977)
- Spritesheets fixes and cleanups (#5049)
- Upscaled Splashscreen (#5183)
- Optimize images with PNGQuant (#5204)
- Fix pause and jump in empire mill animation (#5270)
- Add high resolution images for Empire buildings (#5376)
- Add high resolution images for Atlantean buildings (#5384)
- Add some new main menu background images (#5606)
### Sounds and Music
- Write config after sound initialization (#4940)
- Enable custom in-game music (#5138)
### Tutorials and Campaigns
- Emp02: Allow sheep farm and weaving mill with barracks (#5048)
- Add "Along the river" scenario (#5062)
- Trident of Fire Fixes (#5198)
- Fix player detection and slot usage
- Fix shipyard wasting a ware and therefore not providing a ship for AI
- Fixes workerpart of #2933
- Fixed flooding and foresting functions
- Changed the map slightly to fix #3878
- Fixed starting position
- Changed Player positions for balance
- Fixed accessibility of volcano craters
- Fixed lua volcano scripting
- No remains of lava after eruption is gone
- Rocks are not removed by lava anymore
- For each lava field a region of radius 1 is considered for removal
- Basic control tutorial: only show first object once (#5338)
- Fix legacy scenario units load order (#5350)
- Atlantean02 (#5196)
- Fri04 (#5104)
- Fri03 Tweaks (#5104)
### Scripting
- Replenish reed in Frisian trading outpost (#4955)
- Add enhancement method for buildings to Lua (#4989)
- Added more ship names for Amazon tribes (#5034)
- Amazon encyclopedia enhancements (#5037)
- Added lore for Dressmakery
- Added help text and lore for liana cutter's hut
- Added tips for amazons
- Tips on liana cutters, wilderness keepers, water gatherers, ropes, jungle masters, rare wood plantations and gold mines.
- Last change for now, to add info for plantations to close off #4981.
- Added extra note to wilderness keeper as that is necessary info not covered elsewhere.
- Atlantean and Amazon soldier prefs (#5047): Sets military sites with 4+ soldiers to request heroes by default, and Atlantean small tower now requests rookies by default.
- Support more properties in `modify_unit` (#4866)
- Extend productionsite/worker program failure handling (#5146)
- Allow specifying `callworker` failure handling method
- Allow suppressing sending out-of-resource notifications in programs
- Decouple Registries (#5169)
- Add script to check for optional Lua parentheses (#4787, #5225, #5226)
- Clean up `descriptions` vs `wl.Descriptions()` in init.lua files (#5296)
- Restore global descriptions for savegame compatibility (#5393)
- Fix Lua Scripting Multithreading (#5475)
- Fixes in dump- and load economy scripts (#5601)
### Maps
- Fix map preview heights rendering (#5488)
- Optimized height calculation for map preview (#5492)
### Add-Ons
- Use shared_ptr for AddOnInfo (#4747)
- Fix duplicate description registries by add-ons (#4760)
- Add-Ons Webserver (#4934)
- Add-ons: Disambiguations for dither layers and registries (#4936)
- Fix add-on translation handling glitches (#4976)
- Refactor `ui_fsmenu/addons.*` (#5012)
- Add-On UI Tweaks (#5061)
- Fix add-on comment layouting glitch
- Make dependency checking more clever
- Packager enhancements
- Fix multiple-dependency logic
- Add-Ons Packager File Name Handling (#5074)
- Fix invalid file/dir names in the packager
- Add UI to set dirnames
- Enable save/discard buttons after editing displayname
- Allow loading add-ons with unit replacements first (#5141)
- Update Add-Ons Manager for Protocol Version 5 (#5039)
- Speed up add-on remote interaction window (#5076)
- Add-Ons Protocol Version 6 (#5092)
- Show server name and check add-on version before upload (#5234)
- Disable add-ons manager autoconnect and autologin (#5245)
- Update Add-On Upload to Command Version 2 (#5231)
- Fix Add-Ons Admin Menu Visibility (#5266)
- Refactor Add-Ons Postloading (#5286)
- Fix tribes postloading again and add regression test (#5323)
- v1.0 backwards compatibility for world/tribe add-ons (#5353)
- Fix too-early add-on descriptions registries & legacy scenario units loading (#5480)
- Remove outdated info that add-on maps should not be zipped (#5538)
### Saveloading
- In-game game/scenario loading (#4843)
- Adds a Load Game button to the in-game menu (singleplayer only) to allow loading a new game in-game
- Adds a Restart Scenario button to the in-game menu in singleplayer scenarios
- Adds a Next Mission button to the Victory message box in singleplayer campaigns and tutorials
- GameController is now handled by `shared_ptr`
- Reset Lua interface when loading games in-game (#4954)
- Fix invalid resource loading (#4918)
- Fix replay writing in savegames created from replays (#4972)
- Implement saveloading unique windows (#4823)
- Fix immovable savegame compatibility Long Long Way (#5060)
- Cleanup player end statuses on loading (#5070)
- Fix `DescriptionManager` Stacking (#5386)
- Saveload `destruction_blocked` Property (#5450)
- Relax Invalid Assumption in AttackWindow Saveloading (#5597)
- Fix fri03 v1.0 Saveloading Compatibility (#5510)
### AI
- Miscellaneous AI Fixes (#4995)
- Fix auto speed (#5149)
- Moved autospeed detection to defaultai.cc
- Changed the documentation of the commandline option --auto_speed
- Added some debug log
- Adding performance statistics for AI tasks (#5156)
- AI improvements - change of scoring, training (#5168)
- Update_all_bfCheck bf redesign (#5171)
- Introducing limit for fields to be updated (#5173)
- Introducing limit for fields to be updated
- Increasing number of checked unusable fields
- Adding expiration info, increasing max fields to check
- Training of AI (#5213, #5278)
- AI: Update bf redesign (#5216): Perfomance improvement of buildable fields check in AI code
- Considering distance to warehouse when starting new buildings (#5229)
- Malus variable introduced
- Considering only connected flags
- Training
- Misc AI Fixes (#5263)
- Fix basic_amount handling of wells, hunters and fishers
- Deduplicated magic numbers
- Made the well necessity more generic algorithm susceptible
- Moved detection of neededness by stocklevel to the appropriate part of the code
- Tried to delay first warehouse a bit
- Prioritized fruit collectors if supporter nearby
- Insert a safeguard bonus for basic wells
- Fixing wrong initialization of AI `last_seen_time` (#5284)
- Refactoring of `construct_building` (#5282)
- Fixing bug #5375 - update buildable fields crash (#5378)
- Stop loop after iterator is invalidated in defaultai (#5401)
- Remove NOCOM comments (#5430)
- AI Training (#5439)
- Improving building and dismantling mil. sites (#5446)
- Add AI Basic Decision Algorithm For Accepting Diplomacy (#5457)
- Rework AI Military Site Dismantlement (#5449)
### Gameplay
- Fixed the `SupplyList::remove_supply` crash (#4913)
- Multiplayer template game (#4884)
- Fix constructionsite enhancement race condition (#5002)
- Catch invalid cast in `Carrier::transport_update` (#5009)
- Fix race condition when changing military-constructionsite soldier capacity (#5007)
- Fix another race condition in constructionsite enhancing (#5033)
- Support having more than 2 carriers on a road (#4938)
- Intelligent worker reordering (#5099)
- Remove messages of muted buildings (#5109)
- Fix worker reordering stack overflow (#5125)
- Remove messages when muting building via "mute all" (#5130)
- Fix Port Paths Reordering On Port Removal (#5154)
- Check for unknown wares/workers when loading economy profiles (#5215)
- Ensure Notifications only reach the topmost DescriptionManager (#5184)
- Unmark Amazons as Experimental (#5442)
- Diplomacy (#5091)
- Made diking part of the official tribe (#5104)
- Fix Segfault on Building Dismantle (#5482)
- Do not delete units during random game loading (#5590)
- Prevent shipwright from building ferries where no ferry can live (#5534)
### User Interface
- Add Spinbox background (#4859)
- Blinking caret for EditBox and MultilineEditBox (#4860)
- Remove invisible scrollbar in dropdown (#4883)
- Option to invert map movement (#4831)
- Automatically enable themes after installing (#4734)
- Screenshot notification (#4949)
- Add soldiers overview tab to WarehouseWindow (#4901)
- Multiplayer savegame setup UI improvements (#4968)
- Show message box when a replay desyncs (#4896)
- Change tab panel hotkeys to `CTRL+<num>` (#4993)
- Fix richtext escape issues in message boxes (#4879)
- Fastplace Shortcuts (#4849)
- Mousewheel and key fixes (#5053)
- Allow textually filtering dropdowns (#5040)
- Unify arrow and +/- handling for spinbox and slider (#5054)
- Also refactors hardcoded key scancode detection
- Disable keys for fullscreen and screenshot when changing shortcuts (#5066)
- Only handle textinput when dropdown is expanded (#5065)
- Add technical info to About window (#5071)
- Add more uses for mousewheel scrolling (#5068)
- Fix race condition when resizing game window (#5067)
- Allow the same fastplace shortcut for different tribes' buildings (#5073)
- Fix segfault when no modal panel exists (#5093)
- Fix Save Game Window Layout Issues (#5105)
- Fix mouse fastclick offset for construction site windows (#5107)
- Convert Attack Box to Window (#5094)
- Fastplace Groups (#5110)
- Use `unique_ptr` for settings box in construction site window (#5116)
- Hide Empty Input Queue Displays (#5139)
- Protect map object drawing with a mutex (#5147)
- Fix spacing in warehouse window soldiers tab (#5185)
- Fix `nullptr` dereference in `BaseListselect::handle_key()` (#5212)
- Window Clicking Behaviour Fixes (#5219): Fix clicking a window not changing tool in editor. Also make the window focused.
- Keep progress window open until game is ready (#5191)
- Use correct mechanism to hide dropdown list (#5237)
- Enable Hotkeys in Dropdowns (#5238)
- Fix Race Condition in Attack Window (#5235)
- Dropdown shortcuts for ingame and editor (#5261)
- Remove OK button in non-modal story boxes (#5292)
- Fix texthandling for dropdowns (#5281)
- Show port space hint in buildhelp (#5267)
- Ships on minimap (#5297)
- No hotkey for empty dropdown entry (#5320)
- Fix Sound Options Panel Styling (#5372)
- Fix Duplicated Workareas Display Bug (#5371)
- Pan map view to keep it centered when resizing game window (#5388)
- Fix collapsing permanently collapsed input queues (#5426)
- Fix infinite loop at startup map panning (#5429)
- Add highlighting of filter text in dropdown list (#5443)
- Fix save dialog and debug window text input bug (#5421)
- Workaround for inverted horizontal scrolling bug in SDL (#5394, #5543)
- Fix fake-modal in-game load dialog releasing modal grab (#5454)
- Make space available as dropdown hotkey & only trigger hotkey when not filtered (#5441)
- Add-Ons Admin Dialog Accessibility (#5452)
- Enable Enter/Escape keys
- Focus list initially
- Make Save/Load Game Dialog Truly Modal (#5491)
- Warp mouse to target when launching attack (#5497)
- Richtext-Escape Hotkey Strings (#5499)
- Consistent UI Keyboard Selection (#5495)
- Misc Replay Fixes (#5554)
- Use default display flags in replays
- Skip version mismatch message on Ctrl+click
- Don't warp mouse to dropdown if it's already there (#5536)
### Internationalization
- Localize certain hotkeys (#4784)
- Disambiguate productionsites' worker(s) missing/coming strings (#4971)
- Some renamings and string fixes (#4956)
- Renamed tundra/taiga terrains
- Renaming the “Statistics” labels to “Status”
- Some helptext fixes
- More missing gettext calls in emp04 (#4983)
- Improved exception reporting (#5003)
- Fix exception reporting in the game logic thread.
- Adds `--verbose-i18n` flag.
- Fix Transifex String Issues (#5072, #5399, #5462)
- Fix Lua `(n|p)gettext` ignoring textdomains (#5080)
- Properly format `size_t` type printf placeholder (#5096)
- Tx String and CLI Help Fixes (#5179)
- More Stringfixes (#5190)
- Fix unhealthy usage of `split` in language menu (#5241)
- Skip installing locales when translations are disabled (#5302)
- Tut01 String Fix (#5327)
- Military capacity string refactor (#5476)
- Sort xgettext inputs in translations update
### Help and Documentation
- Fix documentation wl (#4920)
- Add theme image `ending.png` to themes documentation (#4945)
- Lua doc enhancements (#4984)
- Add produced wares and workers to productionsites encyclopedia (#5205)
- Pulled out code and first working solution
- Use visionrange only for militarysites
- Fixed documentation for ware_help.lua
- Added example fix failure for documentation
- Fixed documentation for format_help
- Added recuited workers part to Production section
- Fixed charcoal burner and aqua farm help with dummy program
- Fixed links for documentations svg-images (#5209)
- World immovables in encyclopedia (#5077)
- Made all tribes available for lua
- Corrected grapevine size to small to be consistent with other tribe immovables
- Changed "Space required:" to "Size:" and added a walkability hint
- Cleared the list of world immovables of all immovables with size "none"
- Display only one entry per treetype
- Filter amazon tree doublettes
- Use species as title for trees
- Added menu icons for dead and felled tree to be shown as image
- Cleared tribes immovables that are fields from world immovables regardless of addon status
- Fixed Size text for immovables
- Fixed amazons resi menu icon size
- Atlantean Lore (#5271)
- `tips/singleplayer.lua`: Reduce use of "Our" (#5349)
- Add Empire Lore Texts (#5285)
### Editor
- Editor toolsize menu: use spinbox instead of custom dialog (#4990)
- Add offset to editor info windows (#5145)
- Editor: Add toggle maximum building spaces option (#5220)
- Convert all show/hide toggles to use display flags
- Editor: History of last tool settings (#5365)
- Enable Enter in Editor Map Options Window (#5503)
### Graphics Engine
- Catch crash when preloading minimap (#5021)
- Fix a texture deletion from wrong thread (#5174)
- Fix linking the OpenGL library (#5299)
- Calculate max battle animation height (#5381)
- Thread safe destructor for Texture `shared_ptr` (#5436)
- Use SDL Relative Mouse Mode (#5494)
- Set SDL hint for relative mouse mode (#5504)
- Support Non-Indexed Terrain Textures (#5545)
- Use old style name for SDL pixelformat (#5547)
### Networking
- Break mutex deadlock in GameClient (#4948)
- Fix game client deletion crash (#4970)
- Keep GameController pointer alive for template game (#5128)
- Replace Boost::Asio → Asio (#5164, #5532)
- Fix Description Index Misordering from UI Code (#5288)
- Fix sync report requesting during game startup (#5382)
### Build System
- Autogenerate and compare datadir version file (#4853)
- Make `compile.sh` show help for invalid arguments (#4979)
- `compile.sh` improvements (#4980)
- Implement local default options for `compile.sh`
- Argument checking for `-j`
- Add an override for every switch
- Support custom `-D` options to CMake
- Add option to skip datadir version check (#4987)
- Modify compiler static dependencies (#4991, #4992)
- Linux: only enable backtrace when using glibc (#5011)
- cmake: add support for None build type (#5010)
- Added missing direct include (#5025)
- Fix clang compiler warnings (#5057)
- Fix compiling error introduced by boost 1.77 (#5063)
- Honour `--(no|with)-asan`-option regardless of ARGV-order (#5078)
- Fix Brotli Windows CI Error (#5079)
- Build System Update (#5085, #5513, #5539)
- Silence an undesired naming scheme warning in the SDL2 finding module
- Add a customized copy of CMake's deprecated Documentation module as recommended
- Update latest g++/clang versions in the CI
- Treat enabled compiler warnings as errors in debug builds
- Allow silencing compile.sh status messages with `-q`
- Fix Clang 13 Warnings (#5088)
- Handle undefined `__WORDSIZE32_SIZE_ULONG` (#5098)
- Enable ASan in the Testsuite (#5090)
- Allow validating `appdata.xml` with `appstream-util` if `appstreamcli` is not available (#5084)
- `appdata.xml`: Add leading `~` to release names as necessary to force proper ordering (#5102)
- Deprecate Boost (#5101)
- Refactor String Assembly / Boost Format (#5081)
- Clean some more clang-tidy checks (#5108, #5131, #5289, #5319)
- Resolve thread sanitizer issues (#5114)
- Increased thread safety using atomic member variables
- New compile option to build with TSan
- Replace Boost Unit Tests (#5122, #5137)
- Compile on MacOS 11 and M1 Arm Processor (Apple Silicon) (#5112)
- Fix Frequent Testsuite Timeouts (#5129)
- Replace `boost::signals2` (#5133, #5144)
- GitHub MSVC CI Action (#5132)
- Replace Boost UUID, Boost SHA1, and `std::rand` (#5124)
- Deploy build artifacts to automated pre-release (#5143)
- Replace `boost::format` (#5118, #5163, #5178, #5207)
- Remove `graphic_text_layout` dependency from `io_filesystem` (#5161)
- Resolve MSVC warnings (#5157)
- Fix older g++ optimization segfaults (#5176)
- Fix -O3/-O2 typos (#5187)
- Dependencies: Asio include handling, Solus support, installation script coverage (#5182, #5524)
- Don't require Homebrew to be installed at `/usr/local` (#5208)
- CMakeLists.txt: Use a list for many build flags (#5328)
- Only use embedded minizip if not installed (#5360, #5392)
- Put binaries in correct locations when installing (#5359)
- Enable Include Order Codecheck on Header Files (#5373)
- Move definition of `WL_INSTALL_BINDIR` (#5383)
- Remove `SYSTEM` from `target_compile_options` (#5396)
- CMakeLists.txt: add custom uninstall target (#5358)
- Resolve relative parts before uninstalling empty dirs (#5417)
- Reformat version string (remove markdown format) (#5385)
- Xenial's CMake version does not know `VERSION_GREATER_EQUAL`, use `NOT VERSION_LESS` instead
- `compile.sh` fix and tweaks (#5465)
- Fix non-portable globbing
- Add `--dry-run`
- Break up the CMake command line for readibility
- Added new SDL2-image dependencies to static linking (#5472)
- Added static SDL2 targets for transitioning (#5484)
- Update screenshots in `appdata.xml` (#5598)
### Other Issues
- Command line overhaul (#4806)
- Multithreading (#4319)
- Resolve threading race conditions by assigning mutex locking priorities (#4943)
- Fix more threading-related issues (#4966)
- Set Windows logging dir in all website main functions (#4973)
- Continue parsing commandline without datadir (#5134)
- Allow using `--script` with `--new_game_from_template` (#5153)
- Extend copyright script to update year in all files (#5188)
- Add check for missing copyright headers (#5223)
- Preallocate task stack before program update (#5406)
- Fix use of vector fill constructor (#5409)
- Update testsuite compilers and OSs for Jammy (#5415)
- Integrate AppImage building into CI (#5377)
- Readme Typo Fixes (#5461)
- Fix race in use of `logic_thread_locked` (#5419)
- Disable logging in notifications test (#5490)
- Fix non-i18n Spelling Issues Reported by Lintian (#5502, #5512)
## Release 1.0
### Animations, Icons and Overlays
- Optimized pngs (#3959)
- Improve spritesheet exporting (#3756)
- Fix cropping algorithm
- Support reexporting spritesheets
- Catch mismatch with number of scales in directional animations
- Basename is redundant when it's identical to the animation name, so making it optional
- Frisian toolbar icons (#4231)
- Add Frisian toolbar icons
- Delete atlantean toolbar
- Amazon & Frisian graphics (#4554)
- Tapir & Tapir Farm (#4631)
- New empire barracks graphics by DragonAtma (#4668)
- Building animation for empire barracks by DragonAtma (#4695)
- New barbarians barracks graphics by DragonAtma (#4785)
- fix graphic glitch in Barbarian flag (#4910)
- New atlantean barracks graphics by DragonAtma (#4923)
### Sounds and Music
- Track `descriptions` instances to fix a sound handler bug (#4687)
### Tutorials and Campaigns
- `3997_emp03_messagebox` (#4012)
- changed artifact model picture to landscape
- fixed div width and alignment
- Campaign Empire 02: improved scenario continuity (#4038): Trigger mining infrastructure objective when marble mine is done.