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 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 2026 2027 2028 2029 2030 2031 2032 2033 2034 2035 2036 2037 2038 2039 2040 2041 2042 2043 2044 2045 2046 2047 2048 2049 2050 2051 2052 2053 2054 2055 2056 2057 2058 2059 2060 2061 2062 2063 2064 2065 2066 2067 2068 2069 2070 2071 2072 2073 2074 2075 2076 2077 2078 2079 2080 2081 2082 2083 2084 2085 2086 2087 2088 2089 2090 2091 2092 2093 2094 2095 2096 2097 2098 2099 2100 2101 2102 2103 2104 2105 2106 2107 2108 2109 2110 2111 2112 2113 2114 2115 2116 2117 2118 2119 2120 2121 2122 2123 2124 2125 2126 2127 2128 2129 2130 2131 2132 2133 2134 2135 2136 2137 2138 2139 2140 2141 2142 2143 2144 2145 2146 2147 2148 2149 2150 2151 2152 2153 2154 2155 2156 2157 2158 2159 2160 2161 2162 2163 2164 2165 2166 2167 2168 2169 2170 2171 2172 2173 2174 2175 2176 2177 2178 2179 2180 2181 2182 2183 2184 2185 2186 2187 2188 2189 2190 2191 2192 2193 2194 2195 2196 2197 2198 2199 2200 2201 2202 2203 2204 2205 2206 2207 2208 2209 2210 2211 2212 2213 2214 2215 2216 2217 2218 2219 2220 2221 2222 2223 2224 2225 2226 2227 2228 2229 2230 2231 2232 2233 2234 2235 2236 2237 2238 2239 2240 2241 2242 2243 2244 2245 2246 2247 2248 2249 2250 2251 2252 2253 2254 2255 2256 2257 2258 2259 2260 2261 2262 2263 2264 2265 2266 2267 2268 2269 2270 2271 2272 2273 2274 2275 2276 2277 2278 2279 2280 2281 2282 2283 2284 2285 2286 2287 2288 2289 2290 2291 2292 2293 2294 2295 2296 2297 2298 2299 2300 2301 2302 2303 2304 2305 2306 2307 2308 2309 2310 2311 2312 2313 2314 2315 2316 2317 2318 2319 2320 2321 2322 2323 2324 2325 2326 2327 2328 2329 2330 2331 2332 2333 2334 2335 2336 2337 2338 2339 2340 2341 2342 2343 2344 2345 2346 2347 2348 2349 2350 2351 2352 2353 2354 2355 2356 2357 2358 2359 2360 2361 2362 2363 2364 2365 2366 2367 2368 2369 2370 2371 2372 2373 2374 2375 2376 2377 2378 2379 2380 2381 2382 2383 2384 2385 2386 2387 2388 2389 2390 2391 2392 2393 2394 2395 2396 2397 2398 2399 2400 2401 2402 2403 2404 2405 2406 2407 2408 2409 2410 2411 2412 2413 2414 2415 2416 2417 2418 2419 2420 2421 2422 2423 2424 2425 2426 2427 2428 2429 2430 2431 2432 2433 2434 2435 2436 2437 2438 2439 2440 2441 2442 2443 2444 2445 2446 2447 2448 2449 2450 2451 2452 2453 2454 2455 2456 2457 2458 2459 2460 2461 2462 2463 2464 2465 2466 2467 2468 2469 2470 2471 2472 2473 2474 2475 2476 2477 2478 2479 2480 2481 2482 2483 2484 2485 2486 2487 2488 2489 2490 2491 2492 2493 2494 2495 2496 2497 2498 2499 2500 2501 2502 2503 2504 2505 2506 2507 2508 2509 2510 2511 2512 2513 2514 2515 2516 2517 2518 2519 2520 2521 2522 2523 2524 2525 2526 2527 2528 2529 2530 2531 2532 2533 2534 2535 2536 2537 2538 2539 2540 2541 2542 2543 2544 2545 2546 2547 2548 2549 2550 2551 2552 2553 2554 2555 2556 2557 2558 2559 2560 2561 2562 2563 2564 2565 2566 2567 2568 2569 2570 2571 2572 2573 2574 2575 2576 2577 2578 2579 2580 2581 2582 2583 2584 2585 2586 2587 2588 2589 2590 2591 2592 2593 2594 2595 2596 2597 2598 2599 2600 2601 2602 2603 2604 2605 2606 2607 2608 2609 2610 2611 2612 2613 2614 2615 2616 2617 2618 2619 2620 2621 2622 2623 2624 2625 2626 2627 2628 2629 2630 2631 2632 2633 2634 2635 2636 2637 2638 2639 2640 2641 2642 2643 2644 2645 2646 2647 2648 2649 2650 2651 2652 2653 2654 2655 2656 2657 2658 2659 2660 2661 2662 2663 2664 2665 2666 2667 2668 2669 2670 2671 2672 2673 2674 2675 2676 2677 2678 2679 2680 2681 2682 2683 2684 2685 2686 2687 2688 2689 2690 2691 2692 2693 2694 2695 2696 2697 2698 2699 2700 2701 2702 2703 2704 2705 2706 2707 2708 2709 2710 2711 2712 2713 2714 2715 2716 2717 2718 2719 2720 2721 2722 2723 2724 2725 2726 2727 2728 2729 2730 2731 2732 2733 2734 2735 2736 2737 2738 2739 2740 2741 2742 2743 2744 2745 2746 2747 2748 2749 2750 2751 2752 2753 2754 2755 2756 2757 2758 2759 2760 2761 2762 2763 2764 2765 2766 2767 2768 2769 2770 2771 2772 2773 2774 2775 2776 2777 2778 2779 2780 2781 2782 2783 2784 2785 2786 2787 2788 2789 2790 2791 2792 2793 2794 2795 2796 2797 2798 2799 2800 2801 2802 2803 2804 2805 2806 2807 2808 2809 2810 2811 2812 2813 2814 2815 2816 2817 2818 2819 2820 2821 2822 2823 2824 2825 2826 2827 2828 2829 2830 2831 2832 2833 2834 2835 2836 2837 2838 2839 2840 2841 2842 2843 2844 2845 2846 2847 2848 2849 2850 2851 2852 2853 2854 2855 2856 2857 2858 2859 2860 2861 2862 2863 2864 2865 2866 2867 2868 2869 2870 2871 2872 2873 2874 2875 2876 2877 2878 2879 2880 2881 2882 2883 2884 2885 2886 2887 2888 2889 2890 2891 2892 2893 2894 2895 2896 2897 2898 2899 2900 2901 2902 2903 2904 2905 2906 2907 2908 2909 2910 2911 2912 2913 2914 2915 2916 2917 2918 2919 2920 2921 2922 2923 2924 2925 2926 2927 2928 2929 2930 2931 2932 2933 2934 2935 2936 2937 2938 2939 2940 2941 2942 2943 2944 2945 2946 2947 2948 2949 2950 2951 2952 2953 2954 2955 2956 2957 2958 2959 2960 2961 2962 2963 2964 2965 2966 2967 2968 2969 2970 2971 2972 2973 2974 2975 2976 2977 2978 2979 2980 2981 2982 2983 2984 2985 2986 2987 2988 2989 2990 2991 2992 2993 2994 2995 2996 2997 2998 2999 3000 3001 3002 3003 3004 3005 3006 3007 3008 3009 3010 3011 3012 3013 3014 3015 3016 3017 3018 3019 3020 3021 3022 3023 3024 3025 3026 3027 3028 3029 3030 3031 3032 3033 3034 3035 3036 3037 3038 3039 3040 3041 3042 3043 3044 3045 3046 3047 3048 3049 3050 3051 3052 3053 3054 3055 3056 3057 3058 3059 3060 3061 3062 3063 3064 3065 3066 3067 3068 3069 3070 3071 3072 3073 3074 3075 3076 3077 3078 3079 3080 3081 3082 3083 3084 3085 3086 3087 3088 3089 3090 3091 3092 3093 3094 3095 3096 3097 3098 3099 3100 3101 3102 3103 3104 3105 3106 3107 3108 3109 3110 3111 3112 3113 3114 3115 3116 3117 3118 3119 3120 3121 3122 3123 3124 3125 3126 3127 3128 3129 3130 3131 3132 3133 3134 3135 3136 3137 3138 3139 3140 3141 3142 3143 3144 3145 3146 3147 3148 3149 3150 3151 3152 3153 3154 3155 3156 3157 3158 3159 3160 3161 3162 3163 3164 3165 3166 3167 3168 3169 3170 3171 3172 3173 3174 3175 3176 3177 3178 3179 3180 3181 3182 3183 3184 3185 3186 3187 3188 3189 3190 3191 3192 3193 3194 3195 3196 3197 3198 3199 3200 3201 3202 3203 3204 3205 3206 3207 3208 3209 3210 3211 3212 3213 3214 3215 3216 3217 3218 3219 3220 3221 3222 3223 3224 3225 3226 3227 3228 3229 3230 3231 3232 3233 3234 3235 3236 3237 3238 3239 3240 3241 3242 3243 3244 3245 3246 3247 3248 3249 3250 3251 3252 3253 3254 3255 3256 3257 3258 3259 3260 3261 3262 3263 3264 3265 3266 3267 3268 3269 3270 3271 3272 3273 3274 3275 3276 3277 3278 3279 3280 3281 3282 3283 3284 3285 3286 3287 3288 3289 3290 3291 3292 3293 3294 3295 3296 3297 3298 3299 3300 3301 3302 3303 3304 3305 3306 3307 3308 3309 3310 3311 3312 3313 3314 3315 3316 3317 3318 3319 3320 3321 3322 3323 3324 3325 3326 3327 3328 3329 3330 3331 3332 3333 3334 3335 3336 3337 3338 3339 3340 3341 3342 3343 3344 3345 3346 3347 3348 3349 3350 3351 3352 3353 3354 3355 3356 3357 3358 3359 3360 3361 3362 3363 3364 3365 3366 3367 3368 3369 3370 3371 3372 3373 3374 3375 3376 3377 3378 3379 3380 3381 3382 3383 3384 3385 3386 3387 3388 3389 3390 3391 3392 3393 3394 3395 3396 3397 3398 3399 3400 3401 3402 3403 3404 3405 3406 3407 3408 3409 3410 3411 3412 3413 3414 3415 3416 3417 3418 3419 3420 3421 3422 3423 3424 3425 3426 3427 3428 3429 3430 3431 3432 3433 3434 3435 3436 3437 3438 3439 3440 3441 3442 3443 3444 3445 3446 3447 3448 3449 3450 3451 3452 3453 3454 3455 3456 3457 3458 3459 3460 3461 3462 3463 3464 3465 3466 3467 3468 3469 3470 3471 3472 3473 3474 3475 3476 3477 3478 3479 3480 3481 3482 3483 3484 3485 3486 3487 3488 3489 3490 3491 3492 3493 3494 3495 3496 3497 3498 3499 3500 3501 3502 3503 3504 3505 3506 3507 3508 3509 3510 3511 3512 3513 3514 3515 3516 3517 3518 3519 3520 3521 3522 3523 3524 3525 3526 3527 3528 3529 3530 3531 3532 3533 3534 3535 3536 3537 3538 3539 3540 3541 3542 3543 3544 3545 3546 3547 3548 3549 3550 3551 3552 3553 3554 3555 3556 3557 3558 3559 3560 3561 3562 3563 3564 3565 3566 3567 3568 3569 3570 3571 3572 3573 3574 3575 3576 3577 3578 3579 3580 3581 3582 3583 3584 3585 3586 3587 3588 3589 3590 3591 3592 3593 3594 3595 3596 3597 3598 3599 3600 3601 3602 3603 3604 3605 3606 3607 3608 3609 3610 3611 3612 3613 3614 3615 3616 3617 3618 3619 3620 3621 3622 3623 3624 3625 3626 3627 3628 3629 3630 3631 3632 3633 3634 3635 3636 3637 3638 3639 3640 3641 3642 3643 3644 3645 3646 3647 3648 3649 3650 3651 3652 3653 3654 3655 3656 3657 3658 3659 3660 3661 3662 3663 3664 3665 3666 3667 3668 3669 3670 3671 3672 3673 3674 3675 3676 3677 3678 3679 3680 3681 3682 3683 3684 3685 3686 3687 3688 3689 3690 3691 3692 3693 3694 3695 3696 3697 3698 3699 3700 3701 3702 3703 3704 3705 3706 3707 3708 3709 3710 3711 3712 3713 3714 3715 3716 3717 3718 3719 3720 3721 3722 3723 3724 3725 3726 3727 3728 3729 3730 3731 3732 3733 3734 3735 3736 3737 3738 3739 3740 3741 3742 3743 3744 3745 3746 3747 3748 3749 3750 3751 3752 3753 3754 3755 3756 3757 3758 3759 3760 3761 3762 3763 3764 3765 3766 3767 3768 3769 3770 3771 3772 3773 3774 3775 3776 3777 3778 3779 3780 3781 3782 3783 3784 3785 3786 3787 3788 3789 3790 3791 3792 3793 3794 3795 3796 3797 3798 3799 3800 3801 3802 3803 3804 3805 3806 3807 3808 3809 3810 3811 3812 3813 3814 3815 3816 3817 3818 3819 3820 3821 3822 3823 3824 3825 3826 3827 3828 3829 3830 3831 3832 3833 3834 3835 3836 3837 3838 3839 3840 3841 3842 3843 3844 3845 3846 3847 3848 3849 3850 3851 3852 3853 3854 3855 3856 3857 3858 3859 3860 3861 3862 3863 3864 3865 3866 3867 3868 3869 3870 3871 3872 3873 3874 3875 3876 3877 3878 3879 3880 3881 3882 3883 3884 3885 3886 3887 3888 3889 3890 3891 3892 3893 3894 3895 3896 3897 3898 3899 3900 3901 3902 3903 3904 3905 3906 3907 3908 3909 3910 3911 3912 3913 3914 3915 3916 3917 3918 3919 3920 3921 3922 3923 3924 3925 3926 3927 3928 3929 3930 3931 3932 3933 3934 3935 3936 3937 3938 3939 3940 3941 3942 3943 3944 3945 3946 3947 3948 3949 3950 3951 3952 3953 3954 3955 3956 3957 3958 3959 3960 3961 3962 3963 3964 3965 3966 3967 3968 3969 3970 3971 3972 3973 3974 3975 3976 3977 3978 3979 3980 3981 3982 3983 3984 3985 3986 3987 3988 3989 3990 3991 3992 3993 3994 3995 3996 3997 3998 3999 4000 4001 4002 4003 4004 4005 4006 4007 4008 4009 4010 4011 4012 4013 4014 4015 4016 4017 4018 4019 4020 4021 4022 4023 4024 4025 4026 4027 4028 4029 4030 4031 4032 4033 4034 4035 4036 4037 4038 4039 4040 4041 4042 4043 4044 4045 4046 4047 4048 4049 4050 4051 4052 4053 4054 4055 4056 4057 4058 4059 4060 4061 4062 4063 4064 4065 4066 4067 4068 4069 4070 4071 4072 4073 4074 4075 4076 4077 4078 4079 4080 4081 4082 4083 4084 4085 4086 4087 4088 4089 4090 4091 4092 4093 4094 4095 4096 4097 4098 4099 4100 4101 4102 4103 4104 4105 4106 4107 4108 4109 4110 4111 4112 4113 4114 4115 4116 4117 4118 4119 4120 4121 4122 4123 4124 4125 4126 4127 4128 4129 4130 4131 4132 4133 4134 4135 4136 4137 4138 4139 4140 4141 4142 4143 4144 4145 4146 4147 4148 4149 4150 4151 4152 4153 4154 4155 4156 4157 4158 4159 4160 4161 4162 4163 4164 4165 4166 4167 4168 4169 4170 4171 4172 4173 4174 4175 4176 4177 4178 4179 4180 4181 4182 4183 4184 4185 4186 4187 4188 4189 4190 4191 4192 4193 4194 4195 4196 4197 4198 4199 4200 4201 4202 4203 4204 4205 4206 4207 4208 4209 4210 4211 4212 4213 4214 4215 4216 4217 4218 4219 4220 4221 4222 4223 4224 4225 4226 4227 4228 4229 4230 4231 4232 4233 4234 4235 4236 4237 4238 4239 4240 4241 4242 4243 4244 4245 4246 4247 4248 4249 4250 4251 4252 4253 4254 4255 4256 4257 4258 4259 4260 4261 4262 4263 4264 4265 4266 4267 4268 4269 4270 4271 4272 4273 4274 4275 4276 4277 4278 4279 4280 4281 4282 4283 4284 4285 4286 4287 4288 4289 4290 4291 4292 4293 4294 4295 4296 4297 4298 4299 4300 4301 4302 4303 4304 4305 4306 4307 4308 4309 4310 4311 4312 4313 4314 4315 4316 4317 4318 4319 4320 4321 4322 4323 4324 4325 4326 4327 4328 4329 4330 4331 4332 4333 4334 4335 4336 4337 4338 4339 4340 4341 4342 4343 4344 4345 4346 4347 4348 4349 4350 4351 4352 4353 4354 4355 4356 4357 4358 4359 4360 4361 4362 4363 4364 4365 4366 4367 4368 4369 4370 4371 4372 4373 4374 4375 4376 4377 4378 4379 4380 4381 4382 4383 4384 4385 4386 4387 4388 4389 4390 4391 4392 4393 4394 4395 4396 4397 4398 4399 4400 4401 4402 4403 4404 4405 4406 4407 4408 4409 4410 4411 4412 4413 4414 4415 4416 4417 4418 4419 4420 4421 4422 4423 4424 4425 4426 4427 4428 4429 4430 4431 4432 4433 4434 4435 4436 4437 4438 4439 4440 4441 4442 4443 4444 4445 4446 4447 4448 4449 4450 4451 4452 4453 4454 4455 4456 4457 4458 4459 4460 4461 4462 4463 4464 4465 4466 4467 4468 4469 4470 4471 4472 4473 4474 4475 4476 4477 4478 4479 4480 4481 4482 4483 4484 4485 4486 4487 4488 4489 4490 4491 4492 4493 4494 4495 4496 4497 4498 4499 4500 4501 4502 4503 4504 4505 4506 4507 4508 4509 4510 4511 4512 4513 4514 4515 4516 4517 4518 4519 4520 4521 4522 4523 4524 4525 4526 4527 4528 4529 4530 4531 4532 4533 4534 4535 4536 4537 4538 4539 4540 4541 4542 4543 4544 4545 4546 4547 4548 4549 4550 4551 4552 4553 4554 4555 4556 4557 4558 4559 4560 4561 4562 4563 4564 4565 4566 4567 4568 4569 4570 4571 4572 4573 4574 4575 4576 4577 4578 4579 4580 4581 4582 4583 4584 4585 4586 4587 4588 4589 4590 4591 4592 4593 4594 4595 4596 4597 4598 4599 4600 4601 4602 4603 4604 4605 4606 4607 4608 4609 4610 4611 4612 4613 4614 4615 4616 4617 4618 4619 4620 4621 4622 4623 4624 4625 4626 4627 4628 4629 4630 4631 4632 4633 4634 4635 4636 4637 4638 4639 4640 4641 4642 4643 4644 4645 4646 4647 4648 4649 4650 4651 4652 4653 4654 4655 4656 4657 4658 4659 4660 4661 4662 4663 4664 4665 4666 4667 4668 4669 4670 4671 4672 4673 4674 4675 4676 4677 4678 4679 4680 4681 4682 4683 4684 4685 4686 4687 4688 4689 4690 4691 4692 4693 4694 4695 4696 4697 4698 4699 4700 4701 4702 4703 4704 4705 4706 4707 4708 4709 4710 4711 4712 4713 4714 4715 4716 4717 4718 4719 4720 4721 4722 4723 4724 4725 4726 4727 4728 4729 4730 4731 4732 4733 4734 4735 4736 4737 4738 4739 4740 4741 4742 4743 4744 4745 4746 4747 4748 4749 4750 4751 4752 4753 4754 4755 4756 4757 4758 4759 4760 4761 4762 4763 4764 4765 4766 4767 4768 4769 4770 4771 4772 4773 4774 4775 4776 4777 4778 4779 4780 4781 4782 4783 4784 4785 4786 4787 4788 4789 4790 4791 4792 4793 4794 4795 4796 4797 4798 4799 4800 4801 4802 4803 4804 4805 4806 4807 4808 4809 4810 4811 4812 4813 4814 4815 4816 4817 4818 4819 4820 4821 4822 4823 4824 4825 4826 4827 4828 4829 4830 4831 4832 4833 4834 4835 4836 4837 4838 4839 4840 4841 4842 4843 4844 4845 4846 4847 4848 4849 4850 4851 4852 4853 4854 4855 4856 4857 4858 4859 4860 4861 4862 4863 4864 4865 4866 4867 4868 4869 4870 4871 4872 4873 4874 4875 4876 4877 4878 4879 4880 4881 4882 4883 4884 4885 4886 4887 4888 4889 4890 4891 4892 4893 4894 4895 4896 4897 4898 4899 4900 4901 4902 4903 4904 4905 4906 4907 4908 4909 4910 4911 4912 4913 4914 4915 4916 4917 4918 4919 4920 4921 4922 4923 4924 4925 4926 4927 4928 4929 4930 4931 4932 4933 4934 4935 4936 4937 4938 4939 4940 4941 4942 4943 4944 4945 4946 4947 4948 4949 4950 4951 4952 4953 4954 4955 4956 4957 4958 4959 4960 4961 4962 4963 4964 4965 4966 4967 4968 4969 4970 4971 4972 4973 4974 4975 4976 4977 4978 4979 4980 4981 4982 4983 4984 4985 4986 4987 4988 4989 4990 4991 4992 4993 4994 4995 4996 4997 4998 4999 5000 5001 5002 5003 5004 5005 5006 5007 5008 5009 5010 5011 5012 5013 5014 5015 5016 5017 5018 5019 5020 5021 5022 5023 5024 5025 5026 5027 5028 5029 5030 5031 5032 5033 5034 5035 5036 5037 5038 5039 5040 5041 5042 5043 5044 5045 5046 5047 5048 5049 5050 5051 5052 5053 5054 5055 5056 5057 5058 5059 5060 5061 5062 5063 5064 5065 5066 5067 5068 5069 5070 5071 5072 5073 5074 5075 5076 5077 5078 5079 5080 5081 5082 5083 5084 5085 5086 5087 5088 5089 5090 5091 5092 5093 5094 5095 5096 5097 5098 5099 5100 5101 5102 5103 5104 5105 5106 5107 5108 5109 5110 5111 5112 5113 5114 5115 5116 5117 5118 5119 5120 5121 5122 5123 5124 5125 5126 5127 5128 5129 5130 5131 5132 5133 5134 5135 5136 5137 5138 5139 5140 5141 5142 5143 5144 5145 5146 5147 5148 5149 5150 5151 5152 5153 5154 5155 5156 5157 5158 5159 5160 5161 5162 5163 5164 5165 5166 5167 5168 5169 5170 5171 5172 5173 5174 5175 5176 5177 5178 5179 5180 5181 5182 5183 5184 5185 5186 5187 5188 5189 5190 5191 5192 5193 5194 5195 5196 5197 5198 5199 5200 5201 5202 5203 5204 5205 5206 5207 5208 5209 5210 5211 5212 5213 5214 5215 5216 5217 5218 5219 5220 5221 5222 5223 5224 5225 5226 5227 5228 5229 5230 5231 5232 5233 5234 5235 5236 5237 5238 5239 5240 5241 5242 5243 5244 5245 5246 5247 5248 5249 5250 5251 5252 5253 5254 5255 5256 5257 5258 5259 5260 5261 5262 5263 5264 5265 5266 5267 5268 5269 5270 5271 5272 5273 5274 5275 5276 5277 5278 5279 5280 5281 5282 5283 5284 5285 5286 5287 5288 5289 5290 5291 5292 5293 5294 5295 5296 5297 5298 5299 5300 5301 5302 5303 5304 5305 5306 5307 5308 5309 5310 5311 5312 5313 5314 5315 5316 5317 5318 5319 5320 5321 5322 5323 5324 5325 5326 5327 5328 5329 5330 5331 5332 5333 5334 5335 5336 5337 5338 5339 5340 5341 5342 5343 5344 5345 5346 5347 5348 5349 5350 5351 5352 5353 5354 5355 5356 5357 5358 5359 5360 5361 5362 5363 5364 5365 5366 5367 5368 5369 5370 5371 5372 5373 5374 5375 5376 5377 5378 5379 5380 5381 5382 5383 5384 5385 5386 5387 5388 5389 5390 5391 5392 5393 5394 5395 5396 5397 5398 5399 5400 5401 5402 5403 5404 5405 5406 5407 5408 5409 5410 5411 5412 5413 5414 5415 5416 5417 5418 5419 5420 5421 5422 5423 5424 5425 5426 5427 5428
|
[TOC]
## Release 1.3
### Animations, Icons and Overlays
- New icon for Frisians tribe (CB #4942 / GH #6582)
- Fix double shadow of empire mill (GH #6650 / CB #5010)
- Market graphics for all five tribes (CB #4998 / GH #6638, CB #5005 / GH #6645, CB #5037 / GH #6677)
- New Frisian campaign character portraits (GH #6885 / CB #5245)
- Build animations for most Frisian buildings (CB #5254 / GH #6894, CB #5265 / GH #6905)
### Sounds and Music
- Added the ability to skip to next music track (CB #4928 / GH #6568)
- Musicplayer UI (CB #4945 / GH #6585)
### Tutorials and Campaigns
- bar02: Adjust check for sentry in 'basic economy' objective (GH #6482 / CB #4844)
- Fix empire 4 starting bug (GH #6508 / CB #4869)
- atl01: Don't eat sawdust (GH #6521 / CB #4882)
- Allow garrison in fri03/fri04 scenario ports (GH #6627 / CB #4987)
- Forbid markets in all scenarios and tutorials except ToF and tut04 (CB #4988 / GH #6628)
- Trading Tutorial (CB #4999 / GH #6639, CB #5205 / GH #6846, CB #5216 / GH #6857, CB #5206 / GH #6847, CB #5215 / GH #6856, CB #5250 / GH #6890)
- Advertise tutorial about trade in tips (CB #5214 / GH #6855)
- Fix Lua Functions Usage in atl02 (CB #5249 / GH #6889)
- tut04: Make `wait_for_window_and_tab_or_complain()` function more robust (CB #5252 / GH #6892)
### Scripting
- Add Lua function `play_sound` (CB #4791 / GH #6429)
- New Map Object Program `script=<function>` (CB #4864 / GH #6503)
- Expose more functions to Lua Dropdown and Listselect API (CB #4848 / GH #6486)
- Make mapobjects findeable by their name from worker program findobject (CB #4855 / GH #6493)
- Lua attribute `player.ai_type` (GH #6001 / CB #4412)
- More functions, properties, and classes for the Lua UI API (GH #6555 / CB #4915)
- Improvement of the Lua code of some buildings (GH #6730 / CB #5090)
- Check in tribe loading that buildings don't have more than 3 workareas (CB #5054 / GH #6694)
- Fix `player.end_result` (CB #5146 / GH #6786)
- Add trade extensions to Lua interface and testsuite (CB #5140 / GH #6780)
- Attributes for all map object descriptions (CB #4608 / GH #6269)
- Add `"descname"` property to `modify_unit()` (CB #5143 / GH #6783)
- Allow defining custom naming lists per tribe (CB #5042 / GH #6682)
- Fix Lua doc errors, prevent setting soldiers via `set_workers` and ferries in warehouses (CB #5156 / GH #6796)
- Lua API: `include()` returns the included script's return value (CB #4553 / GH #6210)
- Fix global variable requirement in `send_to_all_inboxes` (GH #6865 / CB #5224)
- Lua Subscribers to signals and notifications (CB #5063 / GH #6703)
### Maps
- Remove playername duplicity from Astoria map (CB #4767 / GH #6405)
- Fix maps requiring "build 22" as minimum version (GH #6693 / CB #5053)
- New maps 2025 (CB #5138 / GH #6778)
- Replaced Europa with AccurateEurope v1.2
- Added Amoebae
- Added Egyptian Mandala v1.2
- Added Forest Valley v2
- Added Tasmanian Black War
- Added The Islands of the Eight Tribes
- Removed Elven Forests
- Removed Twinkling Waves
- Add balancing tag to remaining two official maps (CB #5207 / GH #6848)
### Add-Ons
- Allow plugins to define hyperlink targets (CB #4794 / GH #6432)
- Update add-on i18n for tinygettext (CB #4815 / GH #6453)
- Allow themes to override the dither edge mask (CB #4814 / GH #6452)
- Ignore hidden files when uploading add-on (CB #4779 / GH #6417)
- Make add-on upload more robust against long processing times and show better error messages (CB #4799 / GH #6437)
- Allow changing ware and worker target quantities and preciousness in `modify_unit` (GH #6451 / CB #4813)
- Check for illegal filenames in add-on before upload (GH #6495 / CB #4857)
- Plugins in Main Menu (CB #4748 / GH #6386)
- Show add-ons alpha server name earlier (CB #4911 / GH #6550)
- Keyboard shortcuts for add-ons (CB #4889 / GH #6528)
- Add-Ons Website Maps Integration (CB #4692 / GH #6329)
- Refactor and speedup add-ons manager rebuild (GH #6580 / CB #4940)
- Fix crash when uninstalling the only add-on (CB #4981 / GH #6621)
- Translations for Website Maps (CB #4956 / GH #6596)
- Fixes to Add-On map selection (CB #5030 / GH #6670)
- Fix layout error in LaunchGame desyncing add-on hint (CB #5107 / GH #6747)
- Refactor add-on comments layouting efficiently (CB #5131 / GH #6771)
- Add note and link about GPLv2+ licensing to in-editor map publishing (CB #5153 / GH #6793)
- Fix add-ons comment editor layout assertion (CB #5163 / GH #6803)
- Don't overwrite add-on-defined ware and worker target quantity and preciousness (CB #5244 / GH #6884)
- Add-Ons manager website maps: Allow unbounded filtering (CB #5255 / GH #6895)
### Saveloading
- Productionsite input queue compatibility with notification (GH #6570 / CB #4930)
- Fix map loading compatibility (CB #4966 / GH #6606)
- Fix division by zero in buildingdata packet (CB #5012 / GH #6652)
- Tools for saveloading compatibility testing (CB #4859 / GH #6497)
### AI
- Update some buildings' AI hints (GH #6686 / CB #5046)
- Implement AI response to trade extension proposals (CB #5103 / GH #6743)
### Gameplay
- Fix soldier request for expedition ships (CB #4765 / GH #6403)
- Economic Districts (CB #4708 / GH #6345, CB #5282 / GH #6922)
- Use silk rather than cloth for fishing nets and bows (CB #4866 / GH #6505)
- Button to evict builder from construction-/dismantlesites (CB #4551 / GH #6208)
- Let attacking warship decide battle positions for all participants (CB #5091 / GH #6731)
- Trading (CB #4781 / GH #6419)
- Input Queue Priorities, Capacities, and Pausing (CB #5001 / GH #6641)
- Allow trades to run indefinitely (CB #5000 / GH #6640)
- Moving Trades (CB #5020 / GH #6660)
- Disallow recalling trade carriers underway (CB #5028 / GH #6668)
- Properly cancel/retract trades when destroying market (CB #5035 / GH #6675)
- Extending Trades (CB #5036 / GH #6676)
- Set buildcosts for all tribes’ markets (CB #5041 / GH #6681)
- Sanity-check trade batch counts and batch sizes (CB #5129 / GH #6769)
- Fix assertion thrown by ship expedition (CB #5093 / GH #6733)
- Adjust Frisian Honey Bread Bakery Dismantle Return Wares (GH #6772 / CB #5132)
- Using the buildcost of the port defined in the tribe instead of the buildcost of actual portdock for expedition. (CB #5136 / GH #6776)
- Improve warehouse soldier preference handling (CB #4952 / GH #6592)
- Fix exception on destroying warehouses with garrisons (CB #5151 / GH #6791)
- Fix crashes with ships finding no path to the destination (CB #5021 / GH #6661)
- Fix incrementing `last_detectedportspace_serial_` (CB #5259 / GH #6899)
### User Interface
- Prettier long dropout queues (CB #4789 / GH #6427)
- Add context menus to TextInput and window titlebar (CB #4790 / GH #6428)
- Message preview archiving enhancements (CB #4735 / GH #6372)
- Cancel roadbuilding with Esc key (GH #6456 / CB #4818)
- Ship window improvements (GH #6422 / CB #4784)
- Dropdown Listselect: horizontal centering of pics (CB #4845 / GH #6483)
- Make Show/Hide buildings option in game also affect immovables (CB #4861 / GH #6499)
- Disable objectives button if there are no current objectives (CB #4867 / GH #6506)
- BuildingStatisticsMenu: fix update spam when minimized (CB #4873 / GH #6512)
- Listselect: properly clear entry_cache_ (CB #4879 / GH #6518)
- Listselect: reset/recalculate max_pic_width_ upon clear()/remove() (CB #4846 / GH #6484)
- Improve census and status lines of warehouses (GH #6576 / CB #4936)
- BuildingStatisticsMenu: fix mismatched logic of update_building_list() vs init() (GH #6513 / CB #4874)
- Clear InputQueueDisplay hover marker on mouse-out (CB #4958 / GH #6598)
- Fix in-game loadsave table selection (CB #4961 / GH #6601)
- Trim whitespace from map author lists (GH #6646 / CB #5006)
- Add display selection to graphics options (GH #6342 / CB #4705)
- Let unique window close itself (CB #5029 / GH #6669)
- Trading UI in Market windows and Diplomacy window (CB #4781 / GH #6419)
- Manage trade offers and proposals in market window (CB #4997 / GH #6637)
- Trading boxes layout improvements (CB #5043 / GH #6683)
- Add default fastplace binding for markets (CB #5203 / GH #6844)
- Market window layout fixes (CB #5253 / GH #6893)
- Fix rendering issues in ship window pinned note destination dropdown (CB #5160 / GH #6800)
- UI Pagination Support (GH #6779 / CB #5139)
### Internationalization
- Improvement in some english texts and localization (CB #4797 / GH #6435)
- Update paths for `buildcat.py` (GH #6458 / CB #4820)
- Fix Textdomains for Launch Game Checkboxes (CB #4824 / GH #6462)
- Validate environment locale settings (CB #4817 / GH #6455)
- Don't use whitespace-only translatable string (CB #4943 / GH #6583)
- Tut02 string fix (CB #4959 / GH #6599)
- Improvement in some english texts (CB #5018 / GH #6658)
- Atlantean campaign spelling: Standardize 'Lutas’' to 'Lutas’s' (CB #5055 / GH #6695)
- Allow separate translation of multiscreen option texts (CB #5101 / GH #6741)
- Speed up updating translation statistics (CB #5007 / GH #6647)
- Transifex String Fixes (CB #5130 / GH #6770)
- Correctly ignore changes of `data/i18n/translation_stats.conf` (GH #6878 / CB #5236)
- Fix localization markup in some translatable strings (CB #5279 / GH #6919)
- Allow separate translations for all players and all items (CB #5247 / GH #6887)
### Help and Documentation
- Update performance helptext for comparable buildings between tribes, medium sites (GH #6460 / CB #4822)
- Misc documentation fixes (GH #6540 / CB #4901)
- Documentation fix and examples for `modify_unit` (CB #4932 / GH #6571)
- Documentation fixes for `lua_global` (CB #4920 / GH #6560)
- Encyclopedia: Show Experience chain for all workers in the chain (CB #4951 / GH #6591)
- Update performance helptext for comparable buildings between tribes, big sites (CB #4947 / GH #6587)
- Update performance helptext for farm-like buildings (CB #4725 / GH #6362)
- Encyclopedia: Retrieve soldier training attribute level indicator icons via Lua (CB #5145 / GH #6785)
- Update performance helptext for rest of missing buildings (CB #5040 / GH #6680)
- Remove parentheses in doc about add-ons (CB #5218 / GH #6859)
- README fixes (CB #5264 / GH #6904)
### Editor
- Fix regression: immovables show/hide in editor (CB #4870 / GH #6509)
- Editor Show/Hide option to draw ocean overlays (CB #4821 / GH #6459)
- Add height heat map mode to editor (CB #4410 / GH #5994)
### Graphics Engine
- Show splash screen earlier and reintroduce intro music (GH #6412 / CB #4773)
- Remove hardcoded window border sizes (CB #4778 / GH #6416)
- Fix format strings in gl/initialize.cc (CB #4880 / GH #6519)
- Update window borders on theme change (CB #4885 / GH #6524)
- Use an algorithmically generated palette for ocean colours (CB #4904 / GH #6543)
- Fix pixel coordinate clamping in minimap (CB #4980 / GH #6620)
### Networking
- Update asio interfaces (GH #6665 / CB #5025)
- Increase add-ons networking timeout (GH #6692 / CB #5052)
### Build System
- Fix possibility of random failure in template test (CB #4757 / GH #6395)
- Update vcpkg for sdl2-mixer 2.8.0 (CB #4768 / GH #6406)
- Clear misc clang-tidy-16 checks (GH #6420 / CB #4782)
- Replace gettext with tinygettext (CB #4772 / GH #6411)
- Update i18n.yaml for node.js 20 (CB #4834 / GH #6472)
- Fix new compiler warning on clang-18 (CB #4827 / GH #6465)
- Visible option of RelWithDebInfo build type (CB #4903 / GH #6542)
- Regression test improvements (CB #4876 / GH #6515)
- Temporary windows build fix (CB #4924 / GH #6564)
- Mingw dependencies pin architecture (CB #4925 / GH #6565)
- Add new modplug dependency to sdl2 mixer (GH #6573 / CB #4933)
- Retry hdiutil with any error code (CB #4927 / GH #6567)
- Use all workarounds for hdiutil errors from actions/runner-images#7522 (GH #6574 / CB #4934)
- Compiler fixes for clang-19 (GH #6546 / CB #4907)
- Preserve debug symbols in windows debug builds (GH #6563 / CB #4923)
- Cleanup `check_vcpkg.yaml`, remove option `CMAKE_BUILD_TYPE`, ... (GH #6317 / CB #4680)
- Workflow fixes (CB #4955 / GH #6595)
- Use stable version of sphinx for building documentation (CB #4962 / GH #6602)
- Set CMake policies CMP0177 and CMP0153 (CB #4965 / GH #6605)
- Directly include cstring in machdep.h (CB #4978 / GH #6618) (CB #4979 / GH #6619)
- install-dependencies.sh: Don't error on MacOS when all dependencies already installed. (CB #4983 / GH #6623)
- Remove rav1e dependency for mingw32 (CB #4986 / GH #6626)
- Update mingw sdl-mixer dependencies (CB #5039 / GH #6679)
- Mask Eris `main()` to fix windows builds (CB #5050 / GH #6690)
- Compile C-only libraries with c11 standard (GH #6698 / CB #5058)
- Test checks for correct window (CB #5094 / GH #6734)
- Fix an unused variable warning
- Fixed linking problem under Windows for fprintf (CB #5102 / GH #6742)
- `check_vcpkg.yaml`: refresh `vcpkg_ref` cache on every run (CB #4957 / GH #6597)
- CMake: Added rule to use ccache by default if installed (CB #5031 / GH #6671)
- Fix windows builds ICU dependency (CB #5141 / GH #6781)
- Testsuite: download tests in separate step (CB #5147 / GH #6787)
- Update list of files to check in build workflow (CB #5149 / GH #6789)
- Test: all tribes, remove test of foreign buildings from there (CB #5157 / GH #6797)
- Test battle (CB #5159 / GH #6799)
- Workflow testsuite reports memory leak (CB #5165 / GH #6805)
- Regression test: Improve LSan report (CB #5166 / GH #6806)
- Test for aborting expedition after selecting a destination (CB #5164 / GH #6804)
- Workflow testsuite: optimize xvfb (CB #5213 / GH #6854)
- Doc and test for `set_wares()`, `set_workers()`, ... do to others (CB #5209 / GH #6850)
- Test: `stable_save` with lunit warns (CB #5220 / GH #6860)
- "Modernise" appdata.xml → metainfo.xml (CB #5161 / GH #6801)
- Optimize `utils/build_deps.py` (CB #5228 / GH #6869)
- Update debian packaging filepath appdata → metainfo
- Optimize `utils/find_unused_includes.py` (CB #5229 / GH #6870)
- Fix development version date generation in `update_metainfo.py` (CB #5233 / GH #6874)
- PPA: Do not require license file to equal system-wide one (debian bug 1106308)
- Testsuite skip irrelevant testruns (CB #4677 / GH #6314)
- Testsuite: `check_error` checks exception type (CB #5231 / GH #6872)
- Test editor tests once (CB #5148 / GH #6788)
- Revert enabling LSAN reports until the release (CB #5261 / GH #6901)
- Update vcpkg cache workflow: Fix storing the reference (CB #5256 / GH #6896)
- Add macOS15 intel builds (GH #6908 / CB #5268)
- Remove glbinding from MSYS2 dependency list (GH #6914 / CB #5274)
- Windows ARM support with MSYS2 (CB #5271 / GH #6911)
- Drop CI builds for MacOS 13 as it has been dropped by GH Actions (GH #6925 / CB #5285)
- Workaround for MSVC optimizer bug in the RelWithDebInfo builds (CB #5284 / GH #6924)
### Other Issues
- Strip authors from commit messages in dev-release (CB #4762 / GH #6400)
- Fix use of `push_back()` / `at()=` in preallocated vectors (GH #6464 / CB #4826)
- Refactor and disallow type conversion operators (GH #6373 / CB #4736)
- Make some rawstring in codecheck rules (CB #4828 / GH #6466)
- Remove checking and pinning msvc toolset version in the CI (CB #4858 / GH #6496)
- Flag: fix `nr_of_roads()` (GH #6514 / CB #4875)
- Include missing `<cstdint>` (CB #4883 / GH #6522)
- Remove misplaced, obsolete comment from warehouse.h (GH #6529 / CB #4890)
- BaseListselect::draw() - code gardening (CB #4847 / GH #6485)
- Decomission Listselect<Entry&> (CB #4895 / GH #6534)
- Update compiler versions in CI (CB #4908 / GH #6547)
- Temporary fix for macos CI builds (CB #4912 / GH #6552)
- Update macOS versions in the CI (CB #4809 / GH #6447)
- Split LuaMap into smaller files (GH #6431 / CB #4793)
- Split LuaUi into smaller files (CB #4946 / GH #6586)
- Revert clang-tidy CI to Ubuntu 22.04 with clang-tidy-14 (GH #6603 / CB #4963)
- Run Launchpad mirror CI under 22.04 again
- Split PlayerCommand into smaller files (CB #4786 / GH #6424)
- Splitup worker tasks and programs (GH #6589 / CB #4949)
- Make serial counters for `Economy` and `DetectedPortSpace` properties of `Game` (GH #6611 / CB #4971)
- Fix or categorize new checks in clang-tidy-19 (CB #5011 / GH #6651)
- Remove duplicate clang-tidy checks (CB #5014 / GH #6654)
- Bump AppImage and compiler targets in the CI to Ubuntu Jammy (GH #6673 / CB #5033, CB #5034 / GH #6674)
- Fix error format string in ZipFilesystem (GH #6736 / CB #5096)
- Use 32-bit integer for trade batch counts (CB #5027 / GH #6667)
- Utils: lua style checker, ignore config and fix SyntaxWarning (CB #5221 / GH #6862)
- Threading and locking fixes (CB #5251 / GH #6891)
- Don't use the setup-python workflow action (CB #5269 / GH #6909)
## Release 1.2.1
- Skip invalid map files in editor Load/Save map window (CB #4795 / GH #6433)
- Fix memory leaks in main menu Watch Last Replay (CB #4788 / GH #6426)
- Game setup: Unselect incompatible starting conditions when changing win condition (CB #4777 / GH #6415)
- Add thread identifier to crash reports (CB #4801 / GH #6439)
- Check for invalid combination before calling DefaultAI::expedition_management() (CB #4800 / GH #6438)
- Territorial Lua error fix (CB #4805 / GH #6443)
- Remove AV1 decoder dependency in mingw-64 (CB #4837 / GH #6474)
- Patches to support netbsd-pkgsrc (CB #4851 / GH #6489)
- Keep vcpkg_ref in a repository variable instead of a file (CB #4860 / GH #6498)
- vcpkg workflow fix for v1.2.1
- Fix RelWithDebInfo build type (CB #4854 / GH #6492)
- Fix out-of-bounds memory access when using `--editor` without filename (CB #4894 / GH #6533)
- MacOS and other CI improvements (CB #4899 / GH #6538)
- Temporary fixes for MinGW and MacOS CI builds
- Fix for GH#6444 using mac dylibbundler to packe the .app Bundle (CB #4910 / GH #6549)
- Re-add gettext ubuntu package
- Update translations for v1.2.1 (CB #4916 / GH #6556)
- Replace MD5 checksumming code with `libmd` (CB #4831 / GH #6469)
- Fix LaunchMPG map seafaring check for naval warfare (CB #4918 / GH #6558)
- Fix anchored ship trying to swim towards buffer-underflow (CB #4921 / GH #6561)
- Fix desync in Discovery/New World starting conditions (CB #4926 / GH #6566)
## 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.
- Fixed a file reference in atl01 scenario (#4157)
- Fix link to starting conditions for tutorial1 (#4257)
- Fix image link in first tutorial (#4261)
- Fix empire04 helptexts by changing an obsolete reference (#4267)
- Handle additional expedition items in fri01/fri02 (#4330): Allow taking certain wares and workers to fri02
- Training wheels (#4369, #4406)
- Wait for field action in flags training wheel (#4472)
- Fix crashes in seafaring tutorial (#4615)
- empire 4 script fixes (#4625)
- fixed 2 appearances where the resource was mising the resource prefix
- fixed mine location. Necessary due to changes in mine spot calculation
- Inserted Messages Table
- Disable training wheels code for v1.0 (#4644)
- Third frisian scenario (#4550)
- Fix Trident of Fire player slot detection (#4696)
- Seafaring tutorial: Explain additional expedition items feature (#4711)
- Fix hotkeys in tutorials (#4720)
- Basic Tutorial fixes (#4717)
- Fri03 Fixes (#4738)
- Fix duplicate soldier detection
- Add missing translation markups
- Fix detection of amount of starting gold in fri02 (#4797)
- Fix typo and outdated instructions in emp03 (#4836)
- Empire 04 text improvements (#4844, #4847, #4848, #4852)
- Better fri03 placeholder portraits (#4891)
- Make fri03 starting port indestructible (#4874)
### Scripting
- Parse production outputs (#3983)
- Deduce building outputs from worker and productionsite programs
- Remove outputs tables from Lua
- Replace buildferry with createbob
- Stack lua textdomains in C++ (#4006)
- Stack lua textdomains in C++
- Push and pop correct textdomains for custom scenario buildings
- Detect work area overlaps from MapObject programs (#4014)
- Use information from WorkerProgram, ImmovableProgram and ProductionSiteProgram to calculate work area overlaps
- Distinguish competing, supported and supporting productionsites
- Get rid of default attributes to unclutter the code
- Animation duration units (#4044)
- Implement more human-readable duration units for `animate` programs, e.g. `duration:1m20s500ms`.
- Only the interesting units needs to be specified, e.g. as `duration:35s`.
- Correct shipwright's work area (#4048)
- Add "success:" prefix to number parameters in "grow", "remove" and "transform" immovable programs (#4007)
- Change probability Lua specification from `[0, 255]` to percentage for `transform` and `remove` programs.
- Transform and remove by percent (#4070)
- Rename main immovable program to 'main' (#4086)
- New syntax for productionsite construct program (#4118)
- The worker experience parameter is now optional.
- Use named parameters in ActMine (#4099)
- Convert ambient sound specification to percent notation (#4081)
- Sound priorities now have the range `0.1% - 100%` with new optional parameter `allow_multiple`
- Get rid of silent sound files
- Make priority mandatory
- Rename main productionsite program to 'main' (#4119)
- Shift check for `ActCall` to after all programs are loaded, so we can call them now anything we like.
- Check that productionsites have a `main` program defined.
- New API for remaining Worker programs (#4124)
- breed
- mine
- repeatsearch
- scout
- New API for remaining Immovable programs (#4131)
- `seed=<immovable_name> proximity:<percent>`
- Fix datatypes for probability ranges
- Update documentation
- New API for trainingsite programs (#4126)
- Redesign training programd & add some checks
- Calculate min/max levels from action
- Update documentation
- Get rid of `add_animation`/`add_directional_animation` functions (#4137)
- Separate the definitions of each tribe into separate files (#4134)
- Get rid of global init and preload files
- Define each tribe separately in a `tribes/<tribe_name>` directory
- Shift starting condition and image files into each tribe's directory
- Shift wares' and workers' `default_target_quantity` and `preciousness` to tribe definitions
- Reduce number of disk reading operations in game loading screens
- fix fishermens resource name (#4200)
- Define enhancement cost in base building (#4156)
- Update eris to `1566f6cfa027694941fb34229048e9b576aaa8e5` (#4243)
- Make terrain dither layer unique to prevent hard edges (#4281)
- fix territorial messages by resetting last winning candidate values if no winner candidate available (#4333)
- Zap `luaopen_eris` compiler warning (#4351)
- Cleanup messages (#4386)
- renamed `LuaMessage` to `LuaInboxMessage`; `wl.game.Message` to `wl.game.InboxMessage`
- adjusted main scripting files
- documentation tweaks
- Unify tribes world (#4240)
- Replace `Tribes` and `World` with `Descriptions`
- Consistent function naming in `Descriptions`
- No longer distinguish tribe from world immovables
- Merge `wl.World()` and `wl.Tribes()` (#4412)
- Rename Lua `tribes` object to `descriptions` (#4416)
- Implement percent notation for animation sound probability (#4423)
- Shift asserts in ActTrain to get the log message first for debugging
- Add support for running training wheels in scenarios (#4470)
- Fix Amazons ferry program (#4492)
- Allow hiding fields that are seen by units (#4478)
- Fix argument position in `campaign_message_box` (#4517)
- Make the window's position centered when unspecified.
- This solution removes also some magic numbers for moving the window(s) to the right or to the bottom by getting the width and height of the main window through `wl.ui.MapView()`.
- Allow hiding players from the general statistics menu via Lua (#4520)
- Tweak ATL New World start (#4613)
- Show initial status message for win conditions (#4633)
- New lua methods & properties (#4584)
- Win conditions fixes (#4648)
- Expose win condition name to Lua (#4675)
- HQ Hunter fix (#4683): destroy also conquered milsites
- fix a variable conflict (#4701)
- Discovery and New World starting conditions for amazons (#4705)
- Make atlantean Discovery start easier (#4709)
- Fix artifact messages (#4727)
- Fix amazons fortified village (#4793)
- Add ordered iteration for lua tables (#4818)
- Fix scenario vision bugs (#4832): Added a new option `hide_fields` to unreveal and unexplore fields rather then completely hiding them
- Allow defining target quantity and preciousness for add-on wares and workers (#4825)
### Maps
- Update Crossing The Horizon hint (#4008)
- Fix incorrect allows_seafaring detection (#4082)
- Fix nodecaps calculation error (#4033)
- Update Long Long Way volcanoes minable areas
- Rephrase some map hints (#4211)
- Update Europa Map to v1.2 (#4506)
- Remove version numbers from all maps' file names
- Adjust field size for mountains (#4562)
- v1.0 Maps Review (#4634)
- New map Lesser Ring
- Updated map Wide World
- Deleted map Sun of Fire
- Marked Desert Tournament as unbalanced and renamed it
- Adapt maps' minimum version number (#4646)
### Saveloading
- Replace unknown programs with "work" while saveloading (#3961)
- Add some scenario savegame compabitility (#3963)
- Scenario tribes
- reveal_scenario
- Rip out savegame compatibility code (#3980)
- Fix map compatibility for MapObject Loaders (#4028)
- Fix game saving crash in spectator mode (#4095)
- Speedup player vision packet (#4113): Combine fields data into long strings
- Skip redundant information in view packet (#4144)
- Fix loading critters + resources
- Fix loading critters from map + fix an example
- Fis resources in lua_bases
- Write timestamps in zip filesystem (#4193)
- Fail gracefully on Lua PANIC (#4147)
- Fix description loading in LuaBases (#4182)
- Fix the `stol` saveloading issue (#4387)
- Rediscover kVisible fields when loading the game (#4395)
- Fix Lua savegame compatibility (#4437)
- Unify legacy lookup tables (#4415)
- Merge `WorldLegacyLookupTable` and `TribesLegacyLookupTable` into `DescriptionsCompatibilityTable`.
- Let `Descriptions` handle the lookup to make the saveloading code easier to read
- Fix savegame compatibility #4482 (#4483)
- Saveload lua textdomain stack (#4461): Persist textdomain stack in scripting packet
- Fix saveloading in economy options window (#4498)
- Fix loading saves with see_all players (#4525)
- Saveload `TrainingSite::checked_soldier_training_` to fix a crash (#4524)
- Delete a dead function that causes savegame loading errors
- Allow savegames anywhere (#4515)
- Increase player info packet version (#4581)
- Warn about replay version mismatch (#4605)
- Fix S2 map loader to load stones correctly (#4619)
- Add missing postload call for replays (#4616)
- Hotfix for savegame compatibility #4273 (#4706)
- Immovable savegame compatibility (#4690)
- Reduce crashes from missing add-on dependencies (#4710)
- Don't store Script add-ons in savegames (#4811)
- Fix missing compatibility lookups during gameloading (#4862)
- Fix additional expedition items saveloading (#4921)
### AI
- Fix a crash due to wrong AI Hint (#4191)
- Give the AI its own namespace (#4225)
- Quick AI fix to avoid crashes (#4388)
- AI quick fix (#4401)
- Read mining information for help & AI (#4489)
- Read AI mining hints from production program
- Add building name to deprecation messages
- Automate mining percentages in building help
- mines_percent is unused, so removing it
- Trainingsites only evaluate fish/meat substitutes if present in inputs (#4641)
- Delay AI initalization after scenario init (#4656)
- Fixed an unsafe AI time operation (#4749)
- AI production support (#4618)
- Deprecate `collects_ware_from_map` AI hint
- Deprecate `supports_production_of` AI hint
- Add support for multiple lumberjack/ranger pairs
- Get rid of dirty hack for rare tree cutter/plantation. `amazons_rare_tree_plantation` no longer needs supporters, but the `rare_tree_cutters_hut` still does
- Fix miscategorization of Frisian Fishers being supported by clay pits
- `frisians_reed_farm` is now detected as supporting the `frisians_beekeepers_house`
- Hotfix for Amazon trainingsites
- New property `needed_attributes` for productionsites when the immovable doesn't get removed from the map
- Get rid of hard-coded work area radius when detecting useful immovables near a building
- If a building has no input but some output wares and creates no immovables, but collects some:
- If it produces a construction material
- If it has supporters -> lumberjack
- If it has no supporters -> quarry
- If it produces ware that is not a construction material -> needs berry
- A hunter collects and bob from the map. This adds `amazons_hunter_gatherers_hut` to the list
- If needs water and collects "resource_fish" -> fisher
- If a building has no input and it produces "water" -> well
- If a building supports a lumberjack, it's a ranger
- introduce `number_of_same_nearby` to identify nearby buildings of same type
- if upgrade building needs supporters take this into consideration
- fixes some values in training to make the AI train amazons
- minor updates of basic amounts and other lua values
- Fix AI handling of amazon water gatherer (#4753)
### Gameplay
- Fix 1% too-high soldier evade (#3911)
- Set correct WorkerQueue Economy after economy split (#3939)
- Ignore multiple enhance commands (#3953)
- Fixed two desyncs in New World & Discovery (#3976)
- Clever Critters (#3718)
- Critters can reproduce
- Carnivores can eat other critters
- Herbivores can eat on farm fields, delaying their growth
- Improved critters roaming algorithm
- Critters die of old age
- Immediately-upgraded constructionsites burn no longer (#3988)
- Clear space for portdocks (#3994)
- Fix ware/worker economy mismatch in `set_target_quantity` (#4003)
- Catch economy type mismatch in `Economy::set_target_quantity`
- AI only sets default quantity targets for ware economies
- Fix a crash after cancelling an expedition when no port is left (#4027)
- Disallow enhancing conquered enemy militarysites (#4029)
- Increase critter death chance in crowded regions (#4042)
- Unblock soldiers (#4037): Allow soldiers to pass other soldiers if they are not fighting
- Refactor playerfields visibility (#4046)
- Fix carriers keeping wares (#4076)
- Increased the chance that fugitive workers return to their homeland
- Follow-up cornercase fix against carriers keeping wares (#4104)
- Remember dismantlesite's state when unseeing a field (#4114)
- Remember dismantlesite's state when unseeing a field
- Performance tweak regarding rendering of unexplored fields (#4122)
- Tribes filtering (#3693): Only load the tribes that are actually being used.
- Map object types are registered in a new class `DescriptionManager`
- Each tribe only gets loaded when a player is playing as that tribe
- Buildings and immovables can still be placed via Lua, e.g. we can place a `frisian_fortress` if nobody is playing Frisians. If they need immovables with an attribute, these are loaded dynamically via the attribute.
- Support for custom scenario wares as well as workers and buildings
- Support for overwriting default units via scenario code
- Fix subdirectory handling in zip file system
- Player statistics and allowed ware/worker types are now stored in maps rather than vectors
- Make success of `LuaFlag::set_wares` independent of wares order
- Clean up some superfluous includes
- New test scenario that places all tribes' buildings
- Added new tests to market scenario and lua_testsuite for foreign and custom units
- Added a script for bulk renaming files with `git mv`. It just somehow ended up in this branch...
- For each init.lua, there is a `register.lua` which registers the names and attributes with the engine.
- Custom scenario units to be added to a tribe are now defined via a table rather than special Lua functions
- If you're overwriting a default unit without assigning it to a different tribe, just place an `init.lua` and `register.lua` below `<scenario>/scripting/tribes`. There's no need to list it in `<scenario>/scripting/tribes/init.lua` as well.
- Load world units on demand (#4148)
- World map object descriptions are now registered via `register.lua`
- World map object descriptions are loaded on map load
- Split terrains into separate files so that they can be loaded separately
- Reorganize files according to editor category
- `world/init.lua` now defines the editor category members
- Map objects no longer know about their editor categories
- Internal map object names now need to be globally unique
- Rename all resources, e.g. `coal` -> `resource_coal` to fix conflicts with wares
- Rename `ashes` terrain to `ashes1` to fix conflict with tribe immovable
- Bottom-align icons in editor tools
- Option to let players choose their own starting position (#4158)
- Trigger economy rebalancing on warehouse policy change (#4155)
- Disallow ferries to swim on lava (#4176)
- Target workers to immovables (#4209)
- Fix heap use after free in ShipFleet (#4247)
- Optimize player vision, part 1 (#4270)
- Fix vision glitches (#4283)
- Immovable targeting fixes (#4302)
- Unload expeditions at once (#4313)
- Fix a typo in an assert introduced in #4302
- Optimize player vision, part 2 (#4287)
- Remove unneeded NEVER_HERE in Vision (#4394)
- Wares/Workers Cheats (#4376)
- Change geologist's mountain definition (#4391)
- Ware Priority Improvements (#4441): Redesigned the input queue display from scratch and tidied up the priority backend. New priorites "Very High" (always served first) and "Very Low" (served only when there are no open requests with higher priority).
- New tribe: Amazons (#4424)
- Amazon fixes (#4473)
- Fix crash after evicting a worker (#4496)
- Update partially seen buildings' visibility when placed/removed (#4521)
- Add-Ons (#4464)
- Some more add-on features (#4541)
- Add-On sub-versions in the form 1.2.3
- More modding functions
- Add-On manager layouting tweaks
- new namespace AddOns
- adding productivity threshhold to amazon stonecutter_hut (#4583)
- fix bug 4580 by adopting amazons stonecutters hut to other quarries
- fixed amazon scout gender form
- Targeted Scouting (#4493)
- Fix crash when worker's terraform program fails (#4571)
- Amazons fixes (#4621)
- Fix distribution of idle ships to ports (#4623)
- Fix two crashes with tribe add-ons (#4682)
- Allow starting game from template (#4702)
- Support custom tribes in add-ons (#4708)
- Support custom tribes in add-ons
- Make collectors at last compatible with custom tribes
- Disallow AI players for unsuited tribes
- Update tribe dropdown when setting AI
- Shorten the ripe stage of barley fields (#4712)
- doubled trainers patience due to cycles failing quicker (#4726)
- renamed Youth Gathering to Initiation Site (#4739)
- Fix duplicate description registries by add-ons (#4767)
- Fix replays and savegames with add-on tribes (#4766)
- Fix add-on compatibility issues in random match setup (#4835)
- Add some notes to the random match setup menu
- Prevent crashes with invalid add-on
- Fix several add-on cornercase crashes (#4827)
- 2 crashes with MP games with add-ons
- 1 in SP scenarios
- 1 with custom building enhancements
- 1 with custom worker enhancements
- Rename Cassava Root Field/Plantation → Cassava Field/Plantation (#4850)
- Quickfix against workers reoccupying the building they were evicted from (#4890)
- Fix workers gaining experience for idling (#4905)
### User Interface
- Fix a WException when shift-clicking constructionsite WareQueues (#3949)
- Fix UI bugs (#3970)
- Fix diverse gettext markup bugs where translations weren't being displayed
- Fix textures for stones resources
- Remove pngrewrite from PNG optimization tools, because it broke the textures
- Deactivate translation catalogue updates
- 1 new translatable string in loader UI
- Don't add a dismantle button when no wares will be returned (#3987)
- Additional Expedition Items dropdown sorting order (#4011)
- Sort additional items dropdowns by item descname
- Exclude ferries from the dropdowns
- Continue button in main menu (#4010)
- Button to toggle buildings visibility (#4017)
- Forbid destroying expedition port construction sites (#4039)
- Add buttons to mute/unmute buildings (#4034): Mute/unmute buildings' "out of resources" messages per building, or for all buildings of the same type
- Add new option: Allow diagonal scrolling with numeric keypad (#4050)
- Soldier statistics window (#4018)
- Only show MultilineTextarea scrollbar when really needed (#4068)
- Fix disappearing language stats (#4075)
- Draw window frames with a different colour when focused (#4077)
- Show buildhelp semi-transparent on PreviouslySeen nodes (#4083)
- Remember the active tab when starting/stopping a building (#4111)
- Fixes minimap revealing unseen enemy buildings
- Show partially seen buildings in main view (#4105)
- Rebuild show/hide menu when toggling via hotkeys (#4116)
- Rebuild show/hide menu when toggling via hotkeys
- Don't close menus when pressing hotkeys
- Stop text input fields consuming some hotkeys (#4117)
- Fix detecting whether dropdown fits on screen (#4123)
- Finalize ware selection when mouse leaves WareDisplay (#4129)
- Fix fullscreen switching for Internet lobby (#4128)
- FullscreenMenuInternetLobby now relayouts itself on resolution changes
- Fix focus toggling for editboxes
- Make the Widelands window resizable (#4125)
- Make the Widelands window resizable
- Increase panel size asserts to 10000
- Remove `size >= 0` asserts
- Fix ware indices in ware statistic menu (#4149)
- Extend keyboard support (#4145): Extend keyboard and focus support to most UI elements where it makes sense, and fixes some bugs in focus passing with the Tab key.
- Expose PageUp, PageDown, Home, End, and Mousewheel to BaseListSelect
- Allow checkboxes, spinners and sliders to gain focus
- Fix focus transferring
- Allow buttons to gain focus and fix duplicate calls to child elements
- Don't let dropdowns grab the focus when closing
- Load About screen tab contents on demand (#4163)
- Only show .wgf files in load/save menu (#4192)
- Only show .wgf files in load/save menu to remove incompatibility warnings for files, which clearly are no save games.
- Also works for loading replays, where a .wrpl file has to have a corresponding .wgf file.
- Improve `UI::Box` (#4188): Add support for deletion of panels for `UI::Box` and ignoring invisible panels while layouting.
- Reset dropdown list selection when toggled off (#4205)
- Add copy paste support (#4074)
- Focus tweaks (#4197)
- Fix BaseListselect key handling when no entry selected (#4213)
- Fix window resizing problems (#4183)
- Save maximized state and unmaximized window size on exit
- Set window as not resizable before resizing it
- Add Fullscreen and Maximized to Window Size dropdown
- Set window as not resizable and don't change its size when toggling fullscreen
- Disable resizable window when compiled with SDL < 2.0.5
- Map preview on selection screen (#4201)
- Show map preview in new game screen and replays
- Use faster map loading for website info
- Render starting positions
- take invisble items into account again (#4249)
- Improve debug window (#4244)
- Fix scrolling (#4167)
- Open bobs with double click
- Change structs to classes
- Redesign splash screen and main menu (#4080)
- Let splash screen fade out after a few seconds
- Redesign main menu
- Convert About and Options to modal windows
- Ugly hack to fix dropdowns
- Add some screenshots as main menu backgrounds and use photographs for loading screens.
- Fix windows moving on their own when docking is enabled (#4272)
- Toolbar fix (#4277): Fix toolbar tabbing order and issues with mixing mouse and keyboard controls
- Default show hide options (#4262)
- Default-initialize display flags when no config file exists
- Overhaul of SP and MP launch game screen (#3847)
- Faster minimap previews (#4299)
- Improve minimap rendering speed
- Cache rendered minimaps
- Handle GameDataError during preview rendering (#4315)
- Do not layout invisible items (#4260)
- Refactor string assembly in MapDetailsBox (#4301)
- Make ProgressWindow respond to window resizing (#4310)
- Cleanup LaunchSPG (#4320)
- Refactor checkbox layouting (#4321)
- improve layout in game setup (#4331)
- Draw checkbox borders on top of focus overlay (#4292)
- Clear minimap icon on multiselect (#4342)
- Categorize loadscreens with map-specific themes (#4304)
- Generalize building- and ship windows to use InteractiveBase (#4282)
- Box Layouting Fixes (#4357)
- Fast fix for the drop up menu bug #4341 (#4363)
- Open menu and show message box instantly
- Add a method that shows an item from dropdown menu.
- New method highlights menu items step by step until the target is reached.
- Change the instructions of tutorial 1 to match with its actions.
- Fix WareStatisticsMenu main box assert (#4393)
- Random matches & Editor launching convenience (#4289)
- Allow quick generating of random matches against AIs, and ask editor users to choose their first action before launching the editor
- Beautify random map menu
- Table/Tabpanel Navigation (#4385)
- Implement mousewheel support for TabPanel and fix arrow keys for Table
- Implement PageUp, PageDown, Home, End for Table
- Let TabPanel ignore Left/Right, use Ctrl(+Shift)+Tab instead
- Overhaul building statistics menu (#4390)
- Add tooltips to tablerows (#4358)
- Draw road length tooltip in road building mode (#4381)
- Focus indicator tweaks (#4366)
- Tweak focus indicator display for buttons, dropdowns, and stateboxes
- Don't darken pictorial statebox icons
- Put focus on scrollbar instead of MultilineTextarea
- Add economy options button to warehouses (#4379)
- Main Menu Redesign, Part 2 (#4274)
- Split minimap rendering into stages (#4435)
- Main Menu Redesign, Part 3 (#4425)
- Reset individual training wheels (#4408): Add Options window for deactivating/reactivating individual training wheels
- More box layouting (#4411): Introduce a small inheritance tree of classes that use nested UI::Boxes to avoid any magic numbers and make all setup screens look alike regarding basic widget alignment, padding, etc
- Tweak low productivity threshold in building statistics UI (#4436)
- Tweak low productivity display in building statistics
- Tweak spinbox padding calculations
- Change ware queue priority colors to heatmap (#4467)
- Fix missing spinbox labels in random map window (#4485)
- Fix tooltip position (#4491)
- Fixes for mark/unmark button in training wheel options (#4475)
- Option to destroy attack target instead of conquering (#4477)
- Scale minimap based on the maximum of width and height of map. (#4495)
- Minimap: Use two rows if there are less than 120 pixels available for six buttons (#4536)
- Inform about required restart after installing world add-ons (#4539)
- Refactor toolbar and overlay strings to an info panel (#4526)
- Accessibility Options (#4530)
- New option to scroll the map view when the mouse cursor is near the screen edge
- New option for sticky tooltips: Tooltips stay visible and fixed in place, and can then be made to disappear by clicking anywhere or pressing F2
- Fix two info panel crashes (#4559)
- Move mouse to the place flag button consistently (#4561)
- Main Menu Redesign, Part 4 (#4518)
- Allow configuring playercolor (#4549)
- Fix double-deletion of message previews (#4577)
- Main Menu Redesign, Part 5 (#4572)
- Color chooser enhancements (#4582)
- Color Chooser: Mouse drag support & Enter key (#4591)
- Switch UI themes (#4569)
- Ensure at least one statistics data point (#4593)
- move caret with mouse click in editbox (#4578)
- Disallow random matches if starting positions are too close (#4592)
- Fix statistics plots player colours (#4600)
- Fix Enter/Esc consistency issues (#4597)
- Fix crash in seafaring stats menu (#4609)
- Add-Ons: Screenshots and voting stats (#4552)
- Fix forwarding of keypresses in main menu (#4620)
- Move autosave messages to info panel (#4614)
- Fix game tips display (#4624)
- Configurable keyboard shortcuts (#4476)
- Indicate stock/target amount relations and trends in stock menu (#4529)
- Configurable Keyboard Shortcuts, Part 2 & 3 (#4637, #4640)
- Use Cmd instead of Ctrl as default modifier on MacOS
- implement caret positioning via mouse (#4649)
- Add-Ons Packager (#4603)
- Fix statistics string cache (#4653)
- Fix LAN shortcut in main menu (#4658)
- Disable player and tribe buttons in scenario setup (#4663)
- Select text via mouse (#4660)
- Update hero/rookie radiobuttons (#4657)
- Generalize addon packager (#4667)
- Campaign editing (#4678)
- Multiplayer setup UI fixes (#4691)
- Set minimal progress value in add-on packager (#4714)
- Toggle preserve wares default behaviour with Shift (#4719)
- Relayout stock menu on tab change (#4724)
- Fix scrolling in gamedetails and mapdetails (#4742)
- Fix save game menu buttons (#4751)
- Disable Autofix Dependencies v1.0 (#4736)
- Fix crash on invalid screenshot (#4764)
- No custom starting positions for Discovery (#4765)
- Add-Ons: Get rid of required restarts (#4758): Rebuild the texture atlas instead, and be more intelligent about detecting whether this is required.
- Fix MP dropdown conditions (#4780)
- Prevent large dropdowns dropping out of the screen (#4782)
- Add text size checks in multiline editbox (#4800)
- Add missing richtext escape for map descriptions (#4817)
- Fix initial info panel text visibility (#4810)
- Don't let invisible panels handle keys (#4826)
- Don't jump to undefined landmarks (#4855)
### Internationalization
- Fix some bugs flagged up by the translation validator
- Ship Localization (#4040)
- Localize shipnames
- Shipname consistency in network games
- Show roaming and idle ships as "empty"
- Add localedir parameter (#4112)
- Force pull and skip timestamp-only changes to po directory
- Fix problems with git lockfile during translation updates
- Get rid of duplicate translation fetching for tribes (#4170)
- Get rid of duplicate translation fetching for tribes
- Add examples to documentation
- Get rid of duplicate translation fetching for world (#4171)
- Fix poor hamlet warning message localization (#4293)
- Fix lua ngettext textdomain recognition
- Tribe descnames are already localized when loading the tribe info. (#4336)
- Fix statistics button translation (#4337): Dump the lua value untranslated and let C++ do the translation
- fix player name (#4354)
- Fix typography in tribes (#4474)
- Add missing translators comments (#4487)
- Disambiguate helptexts for soldier-related buildings (#4499)
- Disambiguate soldier strings in training site tooltips (#4501)
- Disambiguate militarysite statistics for tribes (#4502)
- Disambiguate militarysite census for tribes via Lua scripts
- Cache statistics strings to we don't have to keep running the Lua scripts
- Fix Lua npgettext
- Amazons string fixes (#4507)
- Disambiguate messages sent by military sites (#4511)
- Replace remaining occurrences of `set_textdomain` (#4512)
- Improve profile handling of translatable strings (#4547)
- Saved maps' name, descr and hint are now always marked for translation. The author is by default not translated, but if the markup is added manually it will be readded when saving.
- As a side-effect this branch allows us to remove redundant strings from add-on config files.
- Add missing textdomain calls (#4643, #4652)
- Localize timestamps of remote add-ons (#4700)
- Send localized cheating messages (#4462)
- Fixed string issues (#4005, #4723, #4728, #4731, #4752, #4770, #4808, #4846)
- Catch exception on invalid locale (#4725)
- Fix textdomains for add-on maps and support localized map set directory names (#4743)
- Fix npgettext textdomains for add-ons (#4762)
- Tribe-specific No Scout Hut Connected hint (#4770)
- Fix textdomain for keyboard shortcuts (#4799)
- Fix skipping of one-liner diffs in translation updates
- Add missing `pgettext` calls in emp04 (#4830)
### Help and Documentation
- fixed the helptext_note for frisian beekeeper (#3967)
- Corrections to Mask and Warhelm descriptions (#3896)
- Shift production program documentation to source code. (#4045)
- Shift production program documentation to source code
- Add documentation for construct and recruit
- Document animations (#4059)
- Add documentation for `duration` data type to scripting reference
- Shift `animate=` documentation to central location
- Add deprecation warnings
- Fix Empire scenario 4
- Add "becomes" to immovable help (#4071)
- Add immovable transformations to Tribes Encyclopedia
- Expose ShipDescr to Lua
- Add some checks for validating immovable transformations
- Program documentation (#4140)
- Update Production Program documentation
- Modernize program code for empire scenario 4
- Fix help for atlantean labyrinth (#4165)
- adopted mines hint to use new resource names
- Shift tribe helptexts (#4153): Shift tribe helptexts to `units.lua` in order to move the tribe-dependent information out of units.
- Delete obsolete helptexts (#4206)
- Enhance production site help (#4088)
- Add "creates" and "collects" sections to productionsites in the Encyclopedia
- Use created/collected info to add some purpose icons
- Add menu icons to rocks
- Make tree menu icons smaller
- Add regression tests for supporting/supported productionsites
- Fix typos in comments, messages, documentation (#4221)
- Fix representative images in building help (#4298)
- Removed outdated reference to number of tribes (#4312)
- Add helptexts for Frisian immovables (#4361)
- Add helptexts for berry bushes
- Add pond helptexts
- Add explanation for flowering
- Fix lua doc for custom buildings (#4371)
- Start fixing encyclopedia strings (#4551)
- Themes: Docs & Fail Safe (#4594): Fail safe on missing template images, and write documentation for theme definitions
- added info about ports vulnerability to port helptexts and empire 03 (#4665)
- added documentation for start conditions
- Clean up helptexts files (#4756)
- Reworked RST for `lua_game.cc` (#4773)
- Add-Ons: More verbose documentation (#4758)
- Fix documentation 2 (#4776)
- Document `LuaDescriptions::modify_unit` (#4807)
- Fix documentation 3 (#4798)
- Fix documentation `wlmaps` (#4822): Make MapObjectDescription understandable
- Remove pseudo classes HasXy's (#4865)
### Editor
- Fix editor player menu glitches (#4031)
- Fix editor MapOptions tabbing order (#4035)
- Editor Suggested Teams Box (#4023): Add Editor UI for defining suggested teams
- Editor MainMenuLoadOrSaveMap Tweaks (#4101)
- Use dropdown to select between (localized) map names and filenames
- Default to (localized) map names
- Add terrain affinity to editor tooltips (#4185)
- Show preferred terrains tooltips when placing immovables
- Add tree tooltip to terrain help
- Remove obsolete 'likes trees' workaround
- Fix random map generator terrain selection (#4290)
- Use basic tribe info in editor player menu (#4428)
- Tweak some random map terrain definitions (#4449)
- Random map menu tweaks (#4469): Predefined profiles for Default, Alpine, Atoll, Wasteland, Random
- Resize minimap when map size changes to prevent a crash (#4519)
- Resize minimap on map creation (#4560)
- Fix crash when using debug console in editor (#4737)
- Make editor toolsize hotkeys configurable (#4769)
- Fix crash when loading map with not installed add-on in editor (#4900)
- Catch more editor exceptions gracefully (#4902)
### Graphics Engine
- Fix spritesheet representative image display (#3972)
- Fix coordinate maths error in road graphics (#4032)
- Fix `GL_SHADING_LANGUAGE_VERSION` parsing (#4058)
- The version number may be followed by vendor-specific information after a space.
- This fix ensures that it's not glued to the minor version number, which would break lexical_cast.
- Fix z-layering glitches of roads (#4049)
- Use player fields for terrain rendering (#4036)
- Fix terrain glitches in `see_all` mode (#4084)
- Clamp textures to fix artifacts at edges (#4107)
- Remove bytes per pixel check and improve graphics report (#4115)
- Remove bytes per pixel check and improve graphics report
- Improve Codecheck %z detection
- Add advdef to optimize png (#4150)
- Fix blurry sprite rendering at 1x zoom (#4169)
- Align the sprites to whole pixels when at 1x zoom to get pixel-perfect rendering.
- Tweak mouse wheel zooming formula so when we zoom the same number of steps in and out we end up at the same zoom we started at.
- Deactivate optipng
- Fix text baseline and vertical alignment (#4133)
- Determine the real ascent of a rendered string.
- Valign: When aligning text make sure all text nodes in a line are aligned to the same baseline.
- Valign: Change bottom alignment of images to align to the very bottom, not to the text baseline.
- Valign: Top and center alignment were moving some nodes too far up. This was fixed.
- Add tests for spritesheet and file animations (#4064)
- Fix ImageCache/FontHandler initialization order (#4252)
- Fix garbage at sprite edges in tree spritesheets (#4372)
- Optimize drawing overlapping workareas (#4439)
- Set swap interval to 0 (#4430): This reduces graphics latency
- Add-ons performance tweaks (#4694)
- Warn&Exit on too old OpenGL version (#4666)
### Networking
- Fixing not being able to load multiplayer games. (#4402)
- Remove wrong assert in came client (#4443): The information comes from the host at a later point, so we can't guarantee it.
- Chat recipients (#4344)
- Added dropdown menu to select the recipient of a chat message.
- Allow sending chat messages to all team members at once.
- Implement auto-complete for player names in chat with ctrl+space or double-space.
- Fix LAN mapname localization (#4567)
- Add missing postload call (#4568)
- Fix heap-use-after-free in LaunchMPG (#4587)
- MP: Do not load empty map (#4680)
- Add-Ons Sync Safety (#4685)
- Enforce host's choice of add-ons on clients (#4692)
- No message box on `CLIENT_LEFT_GAME` (#4703)
- MP Fixes (#4716)
- Request no bug report for expected disconnects (#4722)
- Fix desyncs with tribe add-ons (#4777)
- Fix uncaught exception on MP add-on mismatches (#4885)
### Build System
- Fix snprintf error for Windows build (#3916)
- Fix Clang compiler warnings (#3991)
- Update keyring of MSYS2
- Enforce clang-tidy checks to clean up the codebase (#4025)
- Add -flto optimization flag with gcc, when building without debugging (=Release)
- Add cross-compile-unit optimization with Linux GCC. (#3879)
- Move MS-Windows and MacOS packaging and integration, clang-tidy checks, and testsuites to GitHub actions
- CMake Cleanups (#4100)
- correct naming of Intl variables
- remove outdated cmake module
- glew fixes
- more variable changes and modules
- use targets for sdl2_image|ttf|mixer
- module/config mode is implicit
- SDL2 itself checks for threads (if not on OSX)
- correct SDL2 linking
- set minimum cmake version to 3.9 (cmake on the trusty images on travis)
- Build a static linked executable with msys2 (Appveyor&Github Workflow) (#3982)
- allow building on Xenial daily ppa
- Update CMakeLists.txt (#4161)
- lower Cmake requirment to 3.5
- re-include the FindICU module for cmake older than 3.7
- show cmake version
- Clean up includes
- Fix CMake packages on Xenial (#4181)
- fixed usage of static glew (#4195)
- Update compiler minimum versions
- Include `<cstdlib>` in files that need it (#4219, #4218)
- Fixes "error: chosen constructor is explicit in copy-initialization" (#4220)
- Replace boost::regex with std::regex (#4199)
- Replace `boost:regex` with `std::regex`
- Upgrade minimum requirement from clang5 to clang6
- fix appveyor cmake (#4246): install msys2 cmake rather then using windows installed one
- Add codecheck rule for image files (#4063): Added a codecheck rule to check if images exist. Only image files that can be found via string literals are being checked.
- Add Codecheck rule for `<cstdlib>` to make `libc++` happy (#4223): Add codecheck rule to ensure cstdlib for older Macs
- Fix Codecheck `<cstdlib>` error message (#4264)
- Fix Codecheck `<cstdlib>` error message
- Strip whitespace from function names
- revert the cmake installation to use system cmake again
- Improve testsuite error handling (#4326)
- Convert `\` in windows path to `/` (#4389)
- Fix transient SDL error handling (#4414)
- Strip comments in codecheck rule (#4481)
- MSVC support (VS 2019) (#4420)
- Add curl dependency
- added libdeflate as static library where tiff is to be linked (#4573)
- Fix linking with opus (#4789)
- Fix MinGW revision detection and linking (#4870)
- Fix codecheck path magic (#4895)
### Other Issues
- Use Ubuntu 20.04 for code formatting (#3946)
- Switch to new version scheme (#4001)
- Use std::make_pair when inserting elements into maps (#4066)
- Turn some enums into enum classes (#4079)
- Removed unused enum `PlayerType`
- Sort directories & files when running optimize_pngs.py (#3958)
- Get rid of some "using namespace" statements (#4094)
- Add Frisians to lua_testsuite map (#4135)
- Fix an `#ifdef` in wlapplication messages (#4166)
- Fix compiler warning about `#elif _WIN32`
- Show game data path on MacOS
- Reduce `graphic.h` includes (#4159)
- Refactor log() output (#4162)
- Add timestamps to log output
- End all log entries with a newline
- Distinguish log levels (info, debug, warning, error)
- Create directory structure in homedir (#4189)
- Create directory structure in homedir for maps, replays and savegames
- Hide empty directories in map selection
- Allow sparse IDs in plot area data (#4179)
- Fix compiler warnings
- Log output formatting (#4212)
- Optimize `ObjectManager::object_still_available()` (#4242)
- Handle video problems of helper applications in CI environment (#4245)
- Restore `object_still_available` to its former "glory" (#4263)
- Using Visual Studio 2019 on appveyor
- Delete the `is_a()` macro (#4297)
- Reducing too strong asserts to an if-clause. (#4364)
- Modernize loops (#4348)
- Remove `ObjectManager::object_still_available` and use `OPtr` instead (#4353)
- Fix simple cppcheck issues (#4355)
- Make `Time` and `Duration` typesafe (#4325)
- Do not use `memset` to initialize arrays in Map (#4377)
- Refactor PartiallyFinishedBuildingDetails (#4397)
- Refactor get_all_tribeinfos() (#4421)
- Shift exception triggering for missing tribe infos to the UI to fix the road tests. Remove some superfluous loalization markers.
- Show messagebox to player instead of crashing
- Get rid of code duplication in `lua_root.cc` (#4419)
- Use `unique_ptr` for building settings (#4448)
- Python 3 compatibility and modernizing; Ensure utils directory works with Python3 (#4546, #4730)
- Clean up superfluous log output (#4755)
- Fix vision unequality operator (#4771)
- Forward compatibility for remote add-ons (#4802)
- Skip preloading invalid add-ons (#4840)
## Build 21
### Animations, Icons and Overlays
- New Road Textures for Frisians
- All animations for soldiers can depend on their training levels.
4 complete sets of animations for the Frisian soldier
- New Widelands logo
- New cornfield images for Atlanteans
- New reedfield graphics (#3500)
- Add support for spritesheets #3162 (#3489)
- Change color code for blue and black player (#3582)
- Add proper menu icons (#3557)
- added proper icons for zoom
- add proper sound options menu
- added icons for gamespeed
- add clock for gamespeed
- Mipmap Spritesheets for all frisian units (#3554)
- Graphics for the stink tree shrub
- Images for new charcoal burner animations, charcoal burner´s house, and the two new pond types
- Add footbridge eye candy (#3610)
- Improve soldier level graphics and chat menu code (#3479)
- Improve visibility of health bar graphs
- Add toggle for soldier level/health bar graphics
- Indicate in building statistics whether workers are on their way
- Small refactoring for chat menu code
- Spritesheet graphics for frisian ferry yard and ferry; nicer placeholders for the other tribes' ferries
- Added 'X' signpost to frisian empty mine anims (#3676)
- Create spritesheets for trees (#3702)
- Spritesheets & MipMaps for Barbarian workers (#3779)
- Fix recycling center hotspot (#3922)
### Sounds and Music
- Complete overhaul of the sound handler
- Categorize sound effects and overhaul the sound options to have
separate sliders for music, UI sounds, chat messages, game messages
and ambient sounds. Available both in-game and in the Fullscreen menu
options.
- Memory saver: Only load sound effects when they are played for the
first time and then keep them in memory until their category is
cleared. Clear the ambient sounds when EditorGameBase gets destroyed
- Implement stereo position and distance for sounds emitted by map
objects. This includes in-game messages to the player that have been
triggered by map objects.
- Website binaries no longer instantiate the global sound handler.
- Switch to ingame music set in netsetup and internet lobby, because
just 1 song can get annoying while waiting for other players.
- Added sound to helmsmithy
- Use sound handler to change music in editor (#3591)
- Play sound on new messages when chat windows is closed (#3586)
### Tutorials and Campaigns
- Fixed formatting of victory messages in Empire scenarios 3 & 4
- Converted campaigns definition to Lua
- Mark scenarios as solved rather than as unlocked
- Always unlock all campaigns
- Overhauled Tutorial 1 & 4
- Fixes and improvements for Empire scenarios 3 + 4
- Fixed bug #1838193: Single player campaigns no longer work
- String improvements for Frisian campaign
- Additional autosave in fri01 (#3567)
- Fixed #3642: add ferries to seafaring tutorial
- Fixes to empire scenario 4 (#3690)
- Fix nil index if Temple of Vesta is trying to donate but was destroyed by enemy
- Give farm plans if player captures the artefact before objective was triggered
- Minimal startconditions (#3689): New hardcore and minimal starting conditions "Poor Hamlet" and "Struggling Outpost" for all tribes
- Fixes to the economy tutorial (#3746)
- Fix image filepath for wheatfields
- Explain wares input queues for wares that are on their way
- Tutorial message: speed change shortcuts (#3761): Added message about keyboard shortcuts to Tutorial 1.
- Seafaring tutorial improvements (#3782)
- Start the Ship Yard objective while the port is still building
- Add Ferry Yard objective (to make a break in ferrying tutorial text)
- Scroll to gold resource indicator
- Refined text about water resources in Barbarian campaign.
- Warfare tutorial - Teach the player about scouting (#3774)
- New objective "Build Scout's Hut"
- New objective "Explore the map"
- More seafaring tutorial improvements (#3788)
- Run waterways tutorial along with shipyard objective
- New objective: Build an iron mine
- Remind player to stop ferry yard production
- Remind player to stop shipyard production when second ship is built
- Evaluate gold mine and ferries simultaneously
- Difficulty stages for scenarios (#3795): Allow campaign designers to define various difficulty stages for campaigns
- Replace deprecated `message_box_objective()` function (#3807)
- Replaced deprecated function `message_box_objective()`
- "Scolded" message box was too high
- Removed height properties
- Updated image links
- Move `new_objectives` over from `richtext_scenarios`
- Replace deprecated reveal_scenario with mark_scenario_as_solved in frisian campaign (#3825)
- Include all scripts in scenarios from the init.lua (#3828)
- Tutorial 01: Click-by-click demonstration of worker area (#3818)
- Fix duplicate campaign descriptions in the campaign select menu (#3892)
### Scripting
- Unified notification code for Territorial Time and Territorial Lord win
conditions
- Added statistics hook for Territorial Time and Territorial Lord win conditions
- Added statistics hook for Artifacts win condition
- Fixed a bug in Artifacts which led to coroutine error if Player defeated when
reaching win condition
- Skip recalculate_allows_seafaring more often when setting/unsetting port
spaces via Lua
- Allow scripts to override the hostility of each player to each other player.
- Renamed some World and Tribes units
- Tribe Immovable: "field" -> "wheat field"
- Tribe Immovable: "reed" -> "reed field"
- Ware: "thatch reed" -> "reed"
- Critter: "elk" -> "moose"
- Added dropdowns to Lua interface
- Territorial Time don't add previous message to status (#3559)
- Allow peaceful mode for territorial time (#3587). Since the game ends after 4 hours anyway, we can also allow peacful mode here.
- Cleanup luainterface include (#3672): Remove superfluous Lua interface include in tribe_descr.cc
- Territorial peaceful (#3717): In peaceful mode, end the territorial win conditions prematurely if no more land can be gained.
- Fix trading outpost and village start condition (#3753)
- Allow starting expeditions and changing a ship's capacity via Lua.
- `count_owned_valuable_fields`: check for `nil` (#3932): assign 0 if player has no valuable fields
### Maps
- Simplifying the Fellowships map, for better playing experience. (#3792)
- More official maps (#3773)
- Made Europa 1.1, Long Long Way v2, No Metal Challenge v2, Astoria 2.R (without artefacts, with ferries), and Escher_Goose_Fish official
- Removed Impact and Volcanic Winter
- Updated Dolomites
### Saveloading
- Add support for critter renamings depending on packet version to
WorldLegacyLookupTable
- New map version property "needs_widelands_version_after" for the website
- Use legacy_lookup_table to avoid thatch_reed problem (#3549). Extend legacy_lookup_table to have consistent code.
- Map saving critical characters (#3590)
- add call edit_box_changed to check for invalid characters
- enable ok button by default
- More verbose progress info during saveloading (#3598)
- Current stats value now is saved. Side effect is that Ai has current stats after saveloading as well
- Rework GamePlayerEconomiesPacket to fix saveloading when 2 ships are on the same location
- Make emergency saves not cause additional crashes (#3710)
- Fix wares stuck on flag after loading (#3712). Legal values for Carrier::promised_pickup_to_ are -1 to 1. Previously values under -1 were used. This compatibility code was supposed to change them to -1 when loading saved games with the old values. Instead it changed values *over* -1 which could cause carriers to forget they acked a ware, and never go to pick it up.
- Make inputqueue saveloading robust (#3707)
- Save `descr().name()` instead of `DescriptionIndex`
- Skip outdated wares/workers when loading `BuildingSettings`
- Make exception for nonexisting input queues more informative
- Improve performance for `BuildingSettings` by using switch statements
- Rework economy savegame compatibility (#3721): Reworked the way old-style economies from b20 savegames are split into new-style economies
- Faster game saving with endless_game_fogless win condition (#3858)
- Fix economy mismatch in Request loading (#3870)
- Load replay savegames in multiplayer screens (#3948)
### AI
- Many hundreds of rounds of AI training
- Performance improvements
- AI is now able to adopt to scenarios to a certain extent
- Implemented AI hints for workers
- We now deduce whether a building is a barracks or recruits other workers from
building outputs
- Moved ware preciousness into a new AI hint object
- Reworked how AI internally calculates utilization of productionsites
- Improved distance calculation between flags and warehouses
- Added AI unit tests
- Relaxed AI requirement for hunters
- AI error is more informative when building is missing the
"collects_ware_from_map" AI hint
- Replace some asserts in the AI with more informative Exceptions for tribe/world designers. (#3524)
- Limit ware/worker preciousness for the AI. (#3530): Warn if ware/worker preciousness is a bit high and throw an exception if it's over 200.
- AI supports seafaring (#3528). This introduces new ai_hint "supports_seafaring", that will be used to boost building score for particular building when on seafaring map.
- AI fixes (#3602)
- fixed crude percent to prevent overflow
- AI worker management
- implemented a worker management for AI Productionsites and mines.
- added a malus for unoccupied sites to the build decisions.
- some small improvements for upgradehandling of buildings
- Added 1 empire toolsmithy to basic economy
- Added barbarian charcoal kiln to basic economy
- Allow ware preciousness of 50 in AI hints. (#3725)
- Remove unused AI properties + some improvements (#3681)
- Remove 'refinedlog', 'rawlog', 'ironore' and granite' parameters
from Ai Code and TribeDescr
- improve AI mines handling
- Make the Ai build mines as needed
- Fix an issue where trainingsite proportion was not taken into account
when upgrading a trainingsite
- Attempt to fix Ai unnecessary dismantling Militarysites
- Fixed bugs in the AI's attack decision algorithm and exposed some weighting factors to the genetic algorithm (#3873)
- preventing zero division in Check_building_necesity (#3910)
### Gameplay
- Improved ware/worker routing algorithm for ships and portdocks
- Added new option 'Peaceful Mode' to the launch game screens
- Fixed diverse bugs in tooltips generated by production programs
- When a mine's main vein is exhausted, don't show tooltip for missing food
- Switch building to unoccupied animation when worker is removed
- Allow basic tasks like carrying out superfluous wares even if not all workers
are present yet
- Do not send soldiers to attack if they are not stationed in a militarysite
any more
- Improve performance and memory usage when loading tribes and world
- Failed programs are now added to the skipped stacks
- Moved sleep behind return/consume/callworker
- Add some sleep time to costly loops in fri02 to prevent freezing
- Split time 50/50 between building/worker for Atlantean fishbreeder
- Fixed a bug where a building remains inactive after kicking a worker
- Added a new option "swim" to the "findspace" worker program that will detect
coastal nodes
- Implemented terraforming:
- Added a new parameter "terraform" to the "findspace" worker program that
will detect nodes where terrains can be terraformed
- Added new optional parameter "enhancement" to terrains for defining
terraforming targets
- Allow constructing buildings over immovables with building parameter
"built_over_immovable" = <immovable attribute>
- Fixed bug #1642882: Port should clear enough land to build
- Fixed bug #1827033: Fix an assert fail because of nullptr destinations in the shipping algorithm
- Tweak trainingsites' sleep/work cycle. Split animation times in half where possible to make the screen less "noisy".
- New planning-ahead ship scheduling algorithm (#3483): Redesigned ship transport algorithm
- When enhancing constructionsite, soldier and inptqueue capacities are subtracted instead of preserved (#3593)
- Ferry (#3481): Rowboats to transport wares over streams
- Balancing tweaks:
- Change Barbarian evade increase per level from 15 to 16.
- Make Empire Piggery work 20% faster
- Empire Vineyards plant a bit faster
- Made piggeries work as fast as donkeybreeders
- Sped up empire vineyard to deliver approx every 40 secs
- Increased basic amount of vineyards to 2
- Made empire weaving mill and weapon smith medium buildings
- Reduced evade trainingcosts from 2 to 1 for empire
- Reduced barbarian evade 2 costs by 1 bread
- Made barbarian farmer as fast as empire and atlantean
- Increased barbarian conquer radius of tower and barrier from 8 to 9
- Adapted frisian farming cycle to match the other tribes
- Reduced frisian food cost for training
- Reduced frisian blacksmithy inputs
- sped up honeybread baking: only 5 secs more than normal bread
- spead up mead brewing by 5 secs (same sleeptime as for beer)
- reduced input of aqua farm
- sped up barbarians smelting works.
- sped up frisian ironsmelting
- reduced buildcost for several buildings
- removed superfluous "remove= chance" commands from berry bushes
- made new frisian small charcoal kiln using ponds of claydigger
- created Stink tree as bush suited for blackland.
- Reduce default target quantity of planks for empire from 40 to 20.
- Improved ferries buildcost and ferry yard working radius
- Productionsite performance (#3645): Changes Productionsite Productivity from attempt based to time based
- made it reach 100 %
- based the statistics period on average working time
- switched back to common time base
- fixed 3 program cycles
- Quarry Productivity Drop Fix (#3933)
- Tribes fixes (#3682)
- increased starting hammers for frisians to 10
- charcoal burner consumes before making a stack, searches for a pond first.
- Collects coal always only making stacks is dependend on economy
- frisian tavern prefers berries over bread
- changed ware order for frisians
- deleted default_target_quantitiy for blacckroot flour
- removed superfluous Ai hints
- Remove experimental mark from Frisians. (#3703)
- Interpolate linear when applying building settings (#3735) (preserve proportions rather than absolute numbers). Fixes #3734, improves the fix for #3592.
- Consistent farmers (#3749): Made farmers consistently use space. they can plant between buildings but not on shore now
- Quickfix for shippingitems without destination (#3751)
- Configurable expeditions & Discovery starting condition (#3692)
- New starting condition Discovery: Start with three expedition ships on the ocean and a handful of starting wares and workers.
- Allow selecting additional wares to take on the expedition in the portdock.
- Soldier healing (#3736): Military sites start healing their soldiers when they're on their way home
- Fix huge soldier healing in the field (#3797): Healing was higher than intended because of min() and max() mix-up.
- Tweaked builtin economy profiles (#3787)
- Fix rookie creation for hero demands (#3804): Requests for heroes should not trigger rookie production
- Fix desyncs due to an uninitialized variable by exposing the Seed radius random factor of trees to the init.lua
- 2940 better trainingsite soldier selection (#3835): Trainingsite attempts to get soldiers that already are partially trained. If the trainingsite fails to train, it switches strategy and requests soldiers that are below the failing level. If training succeeds, the site starts requesting strong soldiers again. If the site does not get new soldiers, it will gradually start accepting all trainable soldiers (old way).
- Let Barbarians produce cloth on maps without seafaring (#3846): Remove productionsite program "checkmap". It is redundant because all buildings that use it also use map_check, which checks for the same thing at construction time.
- Hide economy setting when default target quantity is 0 (#3855) (for atlantean blackroot flour)
- Allow preserving wares left in buildings when dismantling or enhancing (#3844)
- Allow setting economy targets to ∞ (#3837)
- Removed `return=no_stats` from productionsite programs (#3865)
- Barbarian Poor Hamlet fix (#3888): Changed tool order in barbarian metal workshop
- Fixes issue #3869: No training in camp for Empire (#3871)
- Refactor Ship Scheduling (#3857): Reimplements the new planning-ahead shipping algorithm
### User Interface
- Hold down Ctrl when using the capacity arrow buttons in military- and
trainingsites to set the capacity to min/max
- Redesigned the campaign/scenario selection screens to use Box layout
- Fixed fullscreen switching for the campaign/scenario selection screens
- Files to be included in the "load savegame" screens are now determined
by file extension
- Improved layout for the statistics graphs
- Show a port icon on the field where an expedition ship can build a port
- Sort the lobby client list. The admin users will be on top of the list,
followed by registered and unregistered. IRC users are at the bottom.
- Display IRC users' join/part messages
- Automatically set focus to chat input in lobby & multiplayer game setup
- On input queues, hold down Shift to increase/decrease all ware types at the
same time
- On an input queue, hold down Ctrl to allow/disallow all of its ware
- Allow the player to choose the soldiers to send in the attack box
- Indicate overlapping work areas when placing buildings
- Added the hotkey W to enable/disable highlighting workarea overlaps
- Productionsite overlaps are only shown for certain building types
of interest by using the table "indicate_workarea_overlaps"
- Except for scenario and win condition messages, define all font styles via Lua
- Users can define and save their own profiles of economy target quantities
- Don't show % for trend in building statistics overlay
- Increased caret to 14px
- Allow players to define settings for and to enhance buildings under
construction
- Fix positioning of dropdown lists on fullscreen switches
- Define dropdown list height by number of items rather than by pixels on screen
- Bug fix: Panel::free_children() now frees all its children
- Fix toggling of minimized UniqueWindows
- Fixed keyboard map movement when windows are open
- Converted toolbar menus to dropdowns
- Fixed moving the economy options window to top when clicking Configure Economy
- Fix time display in General Statistics (#3486)
- Keyboard handling for the Escape key (#3527): Window closing, opening OptionsMenu and exiting using the keyboard
- Fixed #3320 Building windows too easy to minimize (Ctrl-click)
- Fixed accidental sending of playercommands in ConstructionSiteWindow::think and made soldier capacity buttons repeating (#3562)
- Fix deleting of dropdown lists in UniqueWindow and Player Menu. (#3478)
- Fix changing window width and button location in milsite-constructionsites (#3572): Tie soldier capacity buttons to edges in milsite-csites and set a fixed string width of 145
- Move csite enhance button to caps buttons box (#3575)
- Add Hotkey for General Statistics & Wares Statistics (#3589): Also, capitalized Hotkeys in description i → I, m → M
- Ship statistics: change window size and button placement (#3584). The window and the description row are now 20px wider. Filterbox buttons are now centered.
- Changed spacing for Construction Sites & Warehouses (#3576): Change spacing for construction sites; unify the layout for the priority buttons in warehouses; center "Stopped"-Checkbox.
- Make mouse behavior consitent for FieldActionWindow (#3564)
- Fix heap-use-after-free in dropdown lambdas (#3601)
- Display seafaring buildings at the end of the list (#3566)
- Press Ctrl + F to toggle Fullscreen (#3606)
- make game speed more fine grained (#3611)
- SHIFT + PAGE UP/DOWN = +/- .25x
- CTRL + PAGE UP/DOWN = +/- 10x
- This also works with the menus buttons.
- SHIFT + PAUSE Resets the speed to 1x
- Implemented diagonal scrolling:
- Number pad is now dedicated for map scrolling.
- Number pad: 1/3/7/9 scrolls diagonal.
- 5 works like pressing HOME.
- Arrow keys: LEFT/UP, LEFT/DOWN, RIGHT/UP & RIGHT/DOWN scrolls diagonal
- Scrolling distance is 1/8, with CTRL 1/4 and with SHIFT 1/16 of the screen resolution in x/y-direction and set to smooth.
- MiniMap overhaul (#3616)
- buttons for the MiniMap are in one row
- MiniMap zoom limited to 600px
- MiniMap tries to scale up to 300px/400px in normal mode
- when map has a width of more than 300, zoom is disabled
- disable zoom if the MiniMap height gets greater than the game's
- check size when switching into window mode
- redraw viewport window after resolution change
- MiniMap renderer: tiny refactoring
- Add new Options (#3614)
- add option to only zoom when ctrl is pressed
- read/write sound settings to config on start (fixes #3507)
- add option to disable game clock
- add missing game options to UI
- add a little more spacing for wares decription
- Fix Multiplayer Setup Window (#3580)
- Chatpanel is now properly aligned to the ok and back button
- Chatpanel only has focus when clicked on it (removes cursor when not active)
- Peaceful Mode checkbox has fixed spacing above and below
- Text for missing map/savegame files has been moved to map_info_
- client_info_ has been remove since it does not provide any information of value and only duplicates information already available.
- Full width button for map select.
- Start Game button has been moved below the back button.
- Disable start attack button when zero soldiers are selected
- Progress UI issues (#3644)
- Placeholders in saveloading progress messages
- Wider progress window bar
- FullscreenMenuNetSetupLAN now relayouts itself for resolution switches (#3632)
- Display workarea to illustrate waterway length limit in waterwaybuildingmode
- Loading map menu (#3561): Add support for subdirectories to game loading and saving
- Use dropdowns for filtering mapselect (#3651): Redesign filters in Mapselect to use driopdowns. This saves us horizontal space for translations, and we also gain 1 row of vertical space.
- Add autofit text width capabilities to buttons and dropdowns
- Replace broken "Show all maps" checkbox with button
- Replace team-related checkboxes with dropdown
- Add dropdown for balanced/unbalanced.
- Add dropdown for official/unofficial
- Shift window positions on fullscreen toggle (#3677)
- Make in-game/in-editor windows fit on resolution changes:
- Centered windows stay centered
- Windows that are completely in the right/bottom half keep their relationship to the right/bottom edge
- Windows that don't fit any more are shifted left/up
- Full-size windows get resized instead of shifted (editor load/save map).
- Typo in FieldActionWindow::building_icon_mouse_in (#3661): When placing a constructionsite for a military building or port, highlight overlapping workareas not only for nearby existing milsites & ports but also for nearby milsites & ports under construction
- Fixing dialog for non attackable big buildings (#3684)
- Fixing bug that an attack window can be opened for a not attackable big building.
- Fixing sporadic flickering of newly opened attack window.
- Refactor loader_ui (#3688)
- ProgressWindow and GameTips are now managed by EditorGameGase.
This avoids ownership conflicts and crashes when we run without window.
- Show game tips on scenarios that don't have a special background image
- Remove ProgressWindow as early as possible
- Don't show progress on autosaves and scenario objective saves
- Don't start zoom animation if target zoom is the same as current (#3713). Fixes flickering census strings on invisible map movement #3660
- Use capital letters for shortcuts (#3733)
- Add missing `richtext_escape` to `text_width` function and editbox (#3764)
- Use a dropdown for selecting starting conditions in PlayerDescrGroup.
- Window titlebar buttons (#3763)
- Add buttons to close, pin/unpin and minimize/restore windows to every window's titlebar.
- Pinned windows cannot be closed by right-click, Esc, or the close button, and cannot be minimized.
- Refactor saveloading ui (#3748)
- Further separating of concerns: Extracted savegame loading code (SavegameLoader) and savegame deleting code (SavegameDeleter) into own classes
- Introduced small inheritance hierachy for both of these classes to adhere to different loading/deleting of replays/multiplayer/singleplayer
- Show directory names in game details
- Refactored road and waterway building mode and Lua road building functions and fixed a bug in secret village
- Re-add quick navigation with comma and period keys (#3799)
- Delete Ctrl-F10 hotkey (#3813)
- Fix a bug causing road buttons instead of waterway buttons to be added in waterway building mode when clicking on a field where the waterway can't be built.
- Make wares_in_warehouses the default tab for stock statistics (#3765)
- Add an option to use SDL mouse cursor (#3810)
- Add numpad hotkeys (#3840)
- Handle zooming with numpad +/-/0 keys and = key
- Handle numpad keys in the editor
- Handle filtering game messages with numpad keys
- Handle filtering seafaring statistics with numpad keys
- Handle quick navigation with numpad keys
- Fix visual glitches and division by zero in WuiPlotArea (#3838)
- Fix text alignment problem (#3854)
- Use crude percent from AI for performance statistics string in productionsites
### Internationalization
- Added localized versions to the basic SDL error messages
- Delete translations that are below 10% and that have not had any active translators for 5 years. Removed locales are:
- af_ZA
- ast
- en_CA
- et
- ia
- jv
- mr
- my
- oc
- rw
- si
- vi
Also, removed backend support for Sinhala and Sinhala + Myanmar fonts.
- Return correct description instead of empty string. (#3533): Fix string representation of description negation in production prgrams (Fixes #3510)
- Track po/widelands properly.
- Diverse string fixes for issues reported on Transifex. (#3622)
- Diverse string fixes for issues reported on Transifex.
- Add missing localization for hotkey
- Fix i18n-specific update script creation (#3732)
- Use git status -s in translation update script too
- Add missing entries to buildcat.py (#3814)
- Fix wrong textdomain for some strings (#3853)
- Handle missing locale dir on Windows (#3757)
- Fix transifex issues (#3875)
- Marked tut03 objective headings for translation (#3901)
- Fix textdomain for »New Objective(s)« headers (#3936)
### Help and Documentation
- New Lore texts for Barbarian units and Atlantean Fishbreeder's House
- Documented "strange" behavior of atlanteans mill for players
- Improved headings for worker help
- Fixed path for encyclopedia immovables icon
- Added missing menu icons for immovables
- Update Production Program documentation. Ignore has been changed to Skip.
- Help & tips enhancements (#3772)
- Help/tip on keyboard shortcuts to change game speed
- Help/tips on map view movement
- Sphinx documentation: Corrected typo in documentation of PlayerBase::get_workers() method (#3781)
- Immovable program documentation (#3829)
- Fix duplicated ware help entries (#3889)
- Add missing include in building_help.lua (#3924)
### Editor
- New tool to change the map size
- Add a grid overlay that can be toggled with a button or the hotkey 'G'
- Fix editor loader UI issues (#3653)
- Fix editor selpos assert after map resize (#3767)
- Escape richtext in editor info tool (#3798): Fixes broken info tool texts when the map description or author contains '<' or '>'
- Suggested teams truncated (#3839): Set suggested teams box width to correct calculated parent width and remove superfluous `set_size()`
- Restrict waterway length limit (#3842): Show a warning when the waterway length limit is set to > 20 in the editor map options
- Fix editor resize tool (#3850): Reimplements the map's `resize()` function
### Graphics Engine
- Added support for mipmaps
- Show the work areas of buildings as overlays on triangles
- Add support for map objects' representative images to the font renderer
- Cache soldiers' directional animations as unique_ptr to prevent memory leaks
- On newer libmesa versions, context creation fails if we use
SDL_GL_SetAttribute(SDL_GL_CONTEXT_PROFILE_MASK, SDL_GL_CONTEXT_PROFILE_COMPATIBILITY).
Disabled this, which *should* still give us a reasonable context (either the
core, which is what we need, or compatible which will give us more than we need).
- Handle shading language version error (#3531): Show error message box rather than crashing when reading the shading language version returns an error.
- Abort without failure when there is no working video driver found by SDL. (#3620)
- Handle video problems in CI environment (#3637): Exit with code 2 if the SDL/TTF system is not available and mark tests as skipped in the test suite when this happens.
- Animation uncluttering (#3780)
- Make savegames robust against changes in animation names
- Get rid of Lua tables for "walkload" animation if it's identical
to the "walk" animation
- Prefer "idle" as main animation
- Omit basename when it's identical to the animation name
- Add option to `utils/optimize_pngs.py` for restricting to filename prefix
- Shift definition of animation directory from individual animations to the
map object in order to declutter the Lua tables.
- Add mipmaps to Barbarian Carrier to test the changes
- Fix wrong colors on Big Endian systems (#3890)
- Print endianness on startup
### Networking
- Check for client.type to not confuse IRC and lobby names
- Added checks to networking usernames for illegal usernames. If username is
taken, append number.
- Only display games for the same version and when they are open
- Redesigned login box. Passwords are now replaced with ***.
- Refactored gameclient.h/.cc for better readability
- We now use the loopback network interface for LAN announcements
- We now check the metaserver password without doing a full login
- Added support for /warn and /kick commands of superusers in the internet
gaming lobby
- Fix for corner case: don't set empty game name if no game is present
- Fixed bug #1833352: Disallow empty game names in internet lobby
- Fixed bug # 1842396: Random tribes crash multiplayer client
- Default uuid to empty string rather than nullptr to prevent crashes. #3501 (#3503)
- Allow empty password for unregistered accounts in internet gaming. (#3532)
- Refactoring of the lower layer networking classes (#3540)
- Renamed NetRelayConnection to BufferedConnection and rewrote most of it.
- Made NetClient an adapter to the new BufferedConnection.
- Updated NetHostProxy and NetClientProxy to use the new BufferedConnection.
- The NetHost class (for LAN games) is now using a BufferedConnection per client instead of implementing the networking code itself.
- Removing the no longer needed Deserializer class.
- change address to www in lobby messages (#3571)
- Changing BufferedConnection to be more lenient about network failures (#3579)
- Changing BufferedConnection to be more lenient about network failures.
- Changing position of log output.
- Refactor gamehost (#3545): Refactor gamehost for better readability
- Fixing bug with LAN promotion of games and long map names.
- Don't send too much data over the network at once, keep the buffers empty.
- Speeding up file transfers by sending the whole file at once.
- Switched to alternative low-latency method.
- Removed operating system specific code branch.
- Faster file transfers
- Removing new networking accept code (#3859): The new accept code does not work on Windows, making it impossible to play LAN games with a host running Windows. The reason for this is unknown, but seems to either be in boost or Windows itself. Maybe it can be re-added with some future boost version.
### Build System
- Fixed web links in Windows installer
- Added compile.sh switch -s to skip building the tests
- Link GL libraries instead of setting flags. This fixes AppVeyor failures due
to missing lbpdcurses.dll
- Added basic support for the XDG standard
https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html
- Moved the official repository from Launchpad to GitHub
- Revamp Travis-CI builds (#3508, #3512)
- Document CMake, Ninja, and make options in README
- Add script for installing dependencies (#3523)
- Make UI test more resilient against timeouts. (#3525)
- Add codecheck rule for increment operators. (#3513)
- Fix formatting when updating translations. #3471 (#3504)
- Dependency check doesn't work with ninja, so we run it manually from compile.sh (#3480)
- Replacing a [[ in compile.sh. "sh" does not know what to do with it since it requires "bash".
- Add the latest CLANG and GCC versions to Travis (#3539)
- Clang 8
- Clang 9
- GCC 9.1
- enforce LF for .py .cc .h .lua files
- explicitely set text mode for Popen to avoid ugly binary strings on windows, e.g. rb'24260'[b'f1fa8f3'@b'master'](Release) (#3551)
- Fix detect_revision.py to work with a wide variety of python versions (#3552)
- Update XDG files and move XDG-related stuff from debian/rules to xdg/CMakeLists.txt (#3547)
- utils/update_appdata.py: Make it deterministic
- Sort textdomains in alphanumeric order
- Regenerate XDG files
- Desktop file: Add Keywords
- Update desktop file
- Add Terminal tag
- Add StartupNotify tag
- Add StartupWMClass tag
- XDG files: Add info about old ID
- https://github.com/widelands/widelands/blob/build19/debian/widelands.appdata.xml.stub#L4
- AppData file: Remove icon tag
- The icon should be fetched from the desktop file.
- AppData file: Update links
- Update bugtracker url (Launchpad -> GitHub)
- Update donation url
- Add faq url
- Update help url
- Update homepage url
- Update translate url
- Fix Application ID
- https://github.com/widelands/widelands/issues/3368#issuecomment-529546678
- Update manual
- Move XDG-related stuff from debian/rules to xdg/CMakeLists.txt
- icons
- manual
- desktop file
- AppData file
- Fix old Application ID
- Appveyor: Install InnoSetup dependency beforehand (#3604)
- Format C++ before Lua (#3631)
- Automatically run fix_formatting.py on master and pull requests (#3664): On every push to master and any branch with an open pull request, GitHub runs the formatting suite on it. If there are changes, they are pushed back to the branch.
- Update macOS Travis-CI
- Made some functions const to help the compiler optimize (#3674)
- Made a bunch of functions const
- Got rid of an iterator loop
- Remove unimplemented function `void print_land_stats();`
- Test website binaries on Travis.
- Improve autoformat PR detection and diff info (#3701)
- Check whether the branch has an open PR *after* running fix_formatting. If the user opens the PR within three minutes after pushing, this allows the action to push the changes straight to the new PR, so no "dummy" commit is needed in this case to get the action running.
- Fix `git diff` showing empty in non-PR branches
- Fix some compiler warnings (#3694)
- Catch exception when bzr returns non-zero exit status (#3714): When the bzr command fails to detect a branch the version string correctly falls back to REVDETECT-BROKEN-PLEASE-REPORT-THIS instead of crashing the script
- Fix translations formatting (#3722)
- Add command line switches to `fix_formatting.py` for formatting selectively
- Add formatting directives to translation update script for generated Lua files
- Removing the gce environment setting so build should on hyper-v (with more ram?)
- Let fix_formatting.py format the codecheck directory (#3723)
- Add codecheck directory to pyformat runs
- Give codecheck rules file ending so that fix_formatting will pick them up.
- Format codecheck rules.
- Fix sigsev for XDG_DATA_DIRS (#3700)
- Launchpad mirror (#3766)
- Mirrors all changes at widelands:master to lp:widelands
- Link entries in xdg to debian to fix daily PPA
- Merge latest Debian rules from https://sources.debian.org/src/widelands/1:20-2/debian/rules/ to fix daily PPA
- Fix appdata/desktop filenames
- Fix Debian build errors about missing files
- Only list missing and delete symlinks for debian packaging.
- Fix CRLF/LF handling in LP commit messages
- Copy rather than move icons and appdata for debian packaging
- Prettier stdout files when regression_test is run with python 3 (#3800): Print regression test suite output as raw byte strings
- Fix stalling test suite scenarios (#3784)
- `stable_save` now uses last save time and average frame rate for waiting
- pass desired speed explicitly to `stable_save`
- Update CMakeLists for Ubuntu Focal
- Replace dependency python with python3
- Fix packaging for Focal and #3783
- Fix travis MacOS builds (#3848): On Travis MacOS, gettext needs to be added to the PATH and some CMake CXX and linker flags have to be set because brew force-linking is no longer allowed for whatever reason
- Fix travis failure on gcc-9.1_debug (#3861)
- Improve SDL2 detection on modern systems (#3872)
- Add Git hash to AppVeyor and bzr version numbers (#3894)
- updated innosetup file to reflect new Icu filenames (#3903)
- gcc-10 compatibility (#3908)
- Replaced all uses of boost::bind with lambda functions and added a codecheck rule to deprecate boost::bind() and boost::ref()
- Several AppVeyor/MSYS2 build environment fixes (#3917, #3919)
- Use `detect_revision.py` on AppVeyor
### Other Issues
- Broke down logic library to get rid of some circular dependencies
- Fixed logging for homedir
- We now wait longer in test_inputqueues.lua after stable_save
- Implemented support for GCC 9
- Got rid of duplicate listing of player commands
- Fixed diverse compiler warnings
- Added a README and a CONTRIBUTING file and issue templates for bugs and feature requests
- use proper in-/decrement operators (#3487)
- Declare a variable needed only for an assert in debug builds only (#3568)
- Needed to adopt test suite due to increased conquer range of barbarian tower
- Replace wl.widelands with www.widelands and add some https
- Replace or remove references to Launchpad where possible. (#3628)
- Cleanup includes and forward declarations (#3720)
- Add new script for detecting superfluous includes and forward declarations
- Run the new script on Travis
- Cleanup the codebase
- Larger DescriptionIndex (#3715)
- Change DescriptionIndex data type to uint16_t, because we're running out of IDs for Building Descriptions
- Fix usages of DescriptionIndex
- Rename function `get_resource` to `resource_index` for consistency.
- Delete unneeded boost headers and replace outdated usages (#3724)
- Replace `boost::function` with `std::function`
- Replace `boost::shared_ptr` with `std::shared_ptr`
- Replace `boost::unordered_map` with `std::unordered_map`
- Add codecheck rule so that these won't regress
- Require including `<memory>` for `shared_ptr` via codecheck
- Delete all boost headers that the compiler won't ask for
- Cleanup system includes (#3731)
- Delete all system headers that the compiler won't ask for
- Deprecate `<ctype.h>`, `<io.h>` and `<stdint.h>` in favor of
`<cctype>`, `<cstdio>` and `<cstdint>`
- Fix `USES_BOOST_REGEX` in CMakeLists.txt
- Fix memory leak in ConstructionSite::enhance (#3744)
- Resolve some circular dependencies + shift random library (#3727)
- Split AI hints into separate CMake library
- Shift random library to base
- Delete superfluous scripting/logic.h includes
- Map objects no longer depend on `ui_basic`
- Clean up game_renderer a bit
- Resolve circular dependency between `wui_mapview_pixelfunctions` and `logic_map`
- `create_debug_panels` is a one-liner, no need for a function
- Consistent farmers follow on fix (#3768): Deleted an unused variable
- Fix compiler warnings in MapViewPacket (#3771)
- Added missing `break` in window.cc
- Add lots of optional braces (#3802)
- Unify program parsers (#3805): Refactor program parsers.
- Pull out common code into new class MapObjectProgram
- Fix ware demand checks so that they only affect the correct tribes
- Get rid of extraneous calls to EditorGameBase::postload()
- Small performance tweak for trainingsite programs
- Get rid of now empty helper library
- Fix off-by-one in `get_road()` (#3806): Use `WalkingDir::FIRST_DIRECTION` and `WalkingDir::LAST_DIRECTION` or ranged `for` loops for iterating the roads of a flag
- Updated copyright end year to 2020
- Add optional braces to ui_fsmenu (#3809)
- Removing signal from warelist. (#3845): Removed some dead code, exit more cleanly in some cases, and be more verbose in regression tests. Fixes a GCC9-release regression test failure.
- Cleanup SDL headers (#3743)
- Fix table column index mismatch regression (#3915)
## Build 20
### Animations, Icons and Overlays
- New wheatfield graphics by fraang
- Shorten a soldier's last evade_failure animation if the soldier is about to
die to prevent overlooping.
- The health bar of a soldier now falls gradually during an attack instead of
one-shot.
- New graphics for field selectors and field action tabs
- Special field selector for road building mode
- Added missing call to get_rand_anim when a soldier is dying
- Added missing working animations for barbarians big inn and wood hardener
- Each tribe now has individual resource indicator graphics
- Added util to rename animation files in bulk.
- Fixed bug #1639253: Add missing walkload animation to Atlantean smoker
### Sounds and Music
- New music tracks "Scotty the Scout", "Hypathia's Theme", "We Work in the
Vineyards" and "Running out of Coal" by Stuart Marshall
- New music tracks "Silkweaver's Song" and "The beauty of the flatlands" by
Klaus Halfmann
- Added new sound files for Barbarians Inn + Big-Inn, Empire Inn,
Atlantean Mill, Toolsmith, Smelting-Works, all Weaving Mills, Atlantean
Woodcutter, Sawmill, Stonecutter, Goldspinner.
- Modified smithies sounds to dimmer versions; added tree-falling sounds,
substituted Timber shouting with tree-falling.
- Allocate 32 mixing channels instead of the default 8.
- Never play the same song twice in a row
- Improvements to sounds and the sound mix
### Tutorials and Campaigns
- 2 new missions for the Empire campaign
- 2 new missions for the new Frisians tribe
- Tweaked timings in tutorials and scenarios
- Updated the Economy tutorial to match the new, enhanced encyclopedia
- Add roads to p2 in warfare tutorial because the AI is empty
- Fixed reveal_campaign in bar_01
- Fixed bug #1639514: Barbarian campaign, scenario 2: yellow brother bails out
- Fixed bug #1656192: Economy tutorial assumes window is open
### Scripting
- Updated Eris to version 1.1.2 (Lua 5.3.4)
- Changes and additions to Lua methods and objects:
- New method player:get_produced_wares_count()
- New object LuaMap -> LuaEconomy.
- Added option to Lua function player:hide_fields to mark them as unexplored
- New scripting functions for random and concentric revealing/hiding of
fields
- New attribute 'is_stopped' in LuaProductionSite
- New method 'toggle_start_stop()' in LuaProductionSite
- Added Lua method to get the type of the current game, i.e., single or
multiplayer.
- Changes to territorial win conditions:
- Pulled out common code for Territorial Lord and Territorial Time.
- Ensure that check_player_defeated is called before points are calculated.
- New function to check whether a field is buildable.
- Check if a player still exists before making it the winning player.
Player will also win if there are no other players left.
- Fixed desyncs
- Updated documentation not to use some functions for multiplayer games
- More precise calculation of conquerable fields to make territorial win
conditions playable on all maps
- Various fixes for win conditions:
- Unified some functions for wood_gnome and collectors
- Removed duplicated code and moved it to win_condition_functions
- Notify only every hour, 10 minutes in the last 30 minutes
- Move _game_over function out of the main loop.
- Don't show points when game ended by military defeat
- Main loop ends when time is over or only one faction is left
- Check every second for defeated players
- Refactor initialization of win conditions:
- Shift calculations for territorial functions and Wood Gnome to C++
to improve performance
- Add immovables to the table for territory calculation
- Expose port spaces and max caps to Lua interface
- Fixed bug for Wood Gnome in which a destroyed player would gain infinite
points. Also, no longer calculate score for a defeated player.
- Remove unused parameters of message_box_objective.
- Removed unused parameter 'req_suitability' from function
place_building_in_region in infrastructure.lua
- Added capability to add custom scenario buildings
- Allow writing and loading of campaign data, so that some scenario state can
be transferred from one scenario to the next in campaigns.
- Do not broadcast Lua coroutine error messages to empty player slots.
Also, use richtext_escape on them.
- Orthogonal design for mapobject program names
- Fix unpersisting of LuaImmovableDescription for tribe immovables.
- Safeguard to avoid desyncs when using send_message() from ui.lua
- Add parameter to send_message() to avoid an error
- Fixed a memory leak in persistence.cc
- Fixed bug #1670065: Random tree growth can block building sites needed to
progress in scenario
- Fixed bug #1688655: lua func "place_building_in_region" not work for mines
- Fixed bug #1815283: Nil value in Territorial Lord
- Fixed bug #1790456: The final message in collectors doesn't show the points
of all players anymore
### Maps
- Map tags: Added "1v1" to Firegames, Islands at war and The Pass through
the Mountains. Removed "unbalanced" from The Pass through the Mountains.
- Moved hint texts from map descriptions to hints for the Last Bastion and
Rendez-vous maps.
- Increased maximum number of players from 8 to 16, to be used for testing
purposes.
- Minor fixes to Last Bastion map where a player's expansion could become
completely blocked across the sea
- Fixed bug in Crossing the Horizon map where an artifact couldn't be
conquered by a player
- Fixed desyncs in Smugglers scenario
- Allow random player tribes in scenarios
### Saveloading
- Old scenario save games will no longer work due to changes to the map
scrolling functions.
- Broke savegame compatibility in version bzr8747
- Savehandler: Avoid reading config more than once per game
- Corrupt zip files now appear as "incompatible" on game loading/saving
screens. This fixes stack-buffer-overflows.
- Fixed bugs with missing files/folders in savegames by creating a temporary
map save on game start
- Improved error checking in filesystem functions
- In Load/Save menu for games/replays:
- All deletion errors are caught, player gets a message.
- When deleting multiplayer replays, also the corresponding syncstream file
is deleted.
- After deleting replays, the table now respects the Show Filenames setting.
- In Save menu for maps:
- Errors when trying to create a directory are now caught, player gets a
message.
- Directory creation now doesn't allow names with map extensions, because
the game would just try to interpret them as maps and not show as
directories. A tooltip is shown.
- Directory creation can now also be triggered by pressing Enter in the name
edit box.
- Other file errors are caught and logged:
- Syncstream deletion in SyncWrapper destructor
- In Map::get_correct_loader
- File deletion/renaming in GameClient::handle_packet
- Introduced a new class to robustly handle saving of files (incl. dealing
with backups, handling errors, etc.) and using it whenever maps/games are
being saved.
- Remove superfluous "postload" call from replay
- Added validity checks for S2 map headers to avoid crashes when preloading
invalid S2 map files
- Shift calculation of map fields relevant to win conditions from Lua to C++.
This gives us a huge performance boost during saveloading those win
conditions.
- Fixed bug #1678987: Endless autosave cycles when a save takes longer than
the autosave interval, and inefficient statistics saving
- Fixed bug #1746270: Unable to rename rolling autosave
- Fixed bug #1798812: Saving a game from replay does not show up in load game
menu
### AI
- The AI now uses a genetic algorithm. The genetic parameters are trained and
then kept in .wai files.
- New command line switch --ai_training: Dumps new AI files in home folder and
uses higher mutation ratios
- New command line switch --auto_speed: Activates auto-speed in multiplayer
games
- Various refactorings of AI hints
- Multiple changes to the logic
- Improvements to training sites
- Add support for productionsites that are also supporting site to the AI.
One productionsite can now support multiple wares/productionsites.
- Allow resetting of teams via LUA during game
- Improved selection of which fields to build something on
- Improved identification of unconnectable regions based on walking algorithm.
Used to keep AI from wasting attempts to build something there.
- AI now splits and counts mineable fileds per resource/mine type and uses it
for decision making, ignoring inaccessible fields in the process
- When looking for the nearest buildable spot, the AI will accept mineable
fields also. This affects willingness to expand when there are no buildable
spots nearby, but some mines can be conquered by a new militarysite.
- AI now calculates military strength based on the actual init.lua files
rather than hard-coding the values. This also removes the tribe name
restriction for modders.
- When considering a quarry, the AI makes sure there is at least one rock in
the vicinity. Same for fishers and fish.
- Improved ship exploration decisions for AI.
- AI now considers whether possible sea direction leads to unknown territories
- AI also continues exploring when the last port is lost to prevent crashes.
- Since the AI can handle only 1 expedition at a time, any extra expeditions
are canceled
- Prohibit seafaring buildings for AI on non-seafaring maps. AI can still
handle ships and shipyards that already exist when a map does not allow
seafaring at the moment.
- AI now scans entire map for portspaces
- Fixed endless loop in DefaultAI::dispensable_road_test
- Added one well to the atlantean basic economy, as water is needed
for crucial spidercloth production
- Replaced logic_rand() with std::rand() in seafaring code of AI to fix
desyncs in network gaming
- Fixed bug #1724073: AI crashes when some AI slots are empty
### Gameplay
- New Frisian tribe
- New "Village" starting condition
- New "Barracks" (casern) building for recruiting soldiers. Soldiers are no
longer created by warehouses. Production sites can now have workers as input
to consume.
- Started implementing new "Market" building with a Barbarian prototype.
Not functional yet.
- Balancing: Halved needed experience for Barbarian brewer and blacksmith
- Balancing: Buffed Barbarian and Empire soldiers
- Balancing: Added more trainers to headquarters at game start
- Balancing: Removed meat default target quantity for Barbarians and
Atlanteans
- Balancing: Lowered productivity threshold for lumberjacks to 60%.
- Balancing: Depleted Atlantean crystal (and iron) mines work slightly better
when depleted
- Balancing: Improvements to various production sites' logic
- The worker program "plant" no longer takes "tribe:" as a parameter;
immovables are now identified via their attributes only, and both world and
tribe immovables are searched. As a side effect, tribe immovables can now
have terrain affinity.
- Forester/Ranger now prefers good soil, and is thus more efficient
- Make the scout aware of nearby military sites. The scout now switches
between random walking and doing an excursion to enemy military sites
- When a Fish Breeder's fishing grounds are full, display a special tooltip
instead of sending an "Out of Resources" message
- When a warehouse is destroyed, the maximum number of fleeing units is now
limited to 500 per unit type
- Only cancel expedition if there is a reachable portdock. Show a warning
message to owner.
- Shifted ware hotspot definition from WorkerDescr to CarrierDescr
- Fixed a bug where higher-level workers wouldn't occupy lower-level workers'
working position slots in productionsites
- The port now conquers every location where its military influence is higher
than the influence of other players. This fixes a segfault when all
potential portdock fields are owned by another player, but there is a
portdock location available where the player owning the port has highest
influence.
- Fixed bug in collectors script where a broken message was sent after the
game ended
- Check for visibility of military buildings before permitting attack. This
solves a problem with impregnable castles.
- Improved algorithm for promotion and demotion of roads
- Removed hardcoding for resources
- New return value no_stats for work programs
- Tweaked production programs for shipyards
- Balancing: All Smelting Works, Furnaces, Smokeries, Recycling Center,
Atlantean and Frisian Toolsmithies, Taverns, Inns and Drinking Halls no
longer waste time if a ware is missing and they have to skip a program
- Balancing: Tweaked programs for Weapon/Armor producing buildings
- Balancing: Imperial Armor Smithy produces 1 more Helm per run to balance the
amount of armor types for training
- Balancing: Changed the order of programs in the Atlantean Toolsmithy
- Balancing: Gave the Barbarian Deep Gold Mine the same stats as the Deep Iron
Mine
- Increased the area where the map is recalculated after conquering by 1.
This prevents buildings from sitting between borders.
- Fixed heap-use-after-free in fleet while processing
EditorGameBase::cleanup_objects() when ship has already been deleted
- Allow return on dismantle values without buildcost
- Fix desyncs caused by floating point arithmetic in terrain affinity
- Reset economy serial in Game constructor. This fixes desyncs in replays.
- Stop ware dropoff when the target building has been destroyed. This fixes a
crash when the enemy conquers a militarysite near a warehouse.
- Cancel Worker::fetchfromflag when the building is destroyed/dismantled/
enhanced to prevent crashes
- Fixed bug #963799: shortsighted shipwright (ship in pond)
- Fixed bug #1611323: ships can be built in non-floating spaces (shipyard)
- Fixed bug #1636966: Segfault in battle
- Fixed bug #1637386: Militarysites warn about allies
- Fixed bug #1639444: Workers with wares inside ships can crash the game
- Fixed bug #1643209: No-cost workers are not removed correctly
- Fixed bug #1643284: Ships of a fleet can have the same name
- Fixed bug #1656671: Wares are not always transported to construction site
- Fixed bug #1658456: Imperials: Soldier target quantity not changeable
- Fixed bug #1749586: Fish breeder can't breed fish if the game is loaded
after all fish is caught
### User Interface
- Maps can now be zoomed using the mouse wheel or keyboard keys: CTRL+, CTRL-
to in-/decrease, and CTRL+0 to reset. This also removes 0 as a possible
landmark number.
- All map transitions like jumping in messages and in the buildings menu are
now animated. New command line option "animate_map_panning".
- Moved smooth animation of cursor and MapView from Lua into C++. This fixes
the transitions in tutorials, which were broken when zoomed.
- Show census information on destroyed building with the former building's
name.
- Added supplementary warning to enhancement message for military sites.
- Fixed statistics label overlap. Ware statistics now update their plot range
correctly.
- Removed quick navigation with '.' and ','.
- The game summary window now restores the original desired speed when it's
closed.
- Productionsites no longer close their window when the stop/start button is
pressed.
- Minimized construction windows no longer get maximized when the construction
is finished.
- Window is no longer closed on enhance or dismantle.
- Let the user select multiple entries in a table using Ctrl/Shift + Click
(multiple/range selection) and Ctrl+A (select all) where appropriate.
- Implemented textual and pictorial dropdown menus. Dropdowns are used for win
condition and multiplayer tribe selection in the launch game screens.
- Fullscreen background images are now tiled rather than stretched.
- Stopped fullscreen toggle from flickering.
- The following menus now relayout themselves when fullscreen mode is toggled:
main, multiplayer, single player, about, map selection, options, load game,
save game.
- For multiplayer game setup, use dropdowns instead of buttons to select
player options
- Improved scrollbar and table header layout.
- Remove buttons from economy options window for spectators
- Improvements to StoryMessageBox, keyboard navigation and UI focusing
- Updating all ware priorities of a building when CTRL is pressed while
clicking
- Sorting IRC users behind the players in the lobby
- Replaced get_key_state with SDL_GetModState() to fix keyboard mappings.
- Actionconfirm now uses Box layout and resizes according to text size.
- Display loading times on the console while loading the tribes.
- Simplified the UI::Align enum and various alignment-related cleanup and
fixes.
- Replaced booleans in UI::Box::add() with enum classes for better readability
- Converted all text to new font renderer. Formatting functions for the new
renderer live in data/scripting/richtext.lua
- A more principled fix to dangling object pointers in the UI using Optr<>
- Building Statistics now only show relevant buildings
- Building Statistics now show "under construction" navigation for buildings
being enhanced
- Show in-game clock in release builds too
- In multiplayer games, scroll to starting position when a game is loaded
- New Ship Statistics window
- Bugfixes to multiplayer dropdowns
- Use Lua to define background and button styles
- Background images and colors are now defined in data/templates/default
- Combine common background graphics with color overlays
- Added StyleManager class to load and access backgrounds
- Downscale background images (e.g. campaign maps) on small screens
- New graphics for ui_fsmenu
- Darker background for wui elements
- Fixed keyboard navigation after "remove game" dialog has been displayed
- Modified row selection/display in tables and message list
- Remove focus from editbox in gamechatpanel when it minimizes
- Added tooltip to file save and make directory edit boxes if illegal filename
is being entered
- Added a checkbox to toggle filenames when loading a replay
- Fixed scenario title and tooltip during game setup
- Preselect player names and tribes for non-scenario maps in single player
mode
- Set AI from selection in UI when saveloading
- Missing wares (and workers) are indicated differently in InputQueueDisplays
if the ware is on the way to the building than if it's really missing
- Redesigned and fixed the showing of workarea overlays
- Tweaks for the multiplayer game setup screen: less empty spaces and more
space for important content
- Very large amounts in WaresDisplays are shortened as "10k", "10M", "10G" to
prevent text from flowing over on the left
- When dismantling a building, the building window closes automatically
- Added a dialog for the host when the connection to a client is lost. Allows
the host to select whether to replace the client with an AI or to exit.
- Setting focus to edit box when opening the game save menu
- Don't provide the filename for the standard background image in the progress
window. This fixes image positioning when starting multiplayer games.
- Make dismantle button independent of buildable/enhanced. This fixes missing
Dismantle buttons in Empire scenario 4.
- Improve formatting for user status in the lobby
- Allow hotkey usage while windows are open
- Fixed memory leak in network UI
- Fixed bug #1191295: Seafaring: builder not listed in expedition list in port
- Fixed bug #1635808: Display of worker in training sites is not updated.
- Fixed bug #1653254: Action window of Road stays open under some
circumstances
- Fixed bug #1653460: UI::Panel::get_inner_h() const: Assertion `tborder_ +
bborder_ <= h_' failed
- Fixed bug #1658489: Expedition tab in Port window messed up some times
- Fixed bug #1644553: Crash when buildhelp icon is clicked twice
- Fixed bug #1687043: Memory leak in Multilineeditbox
- Fixed bug #1695701: Crash when a militarysite window is open while the
enemy conquers it by sending a notification.
- Fixed bug #1672059: Selection is not cleared when new message arrives
- Fixed bug #1691336: Building window suddenly appears after construction has
finished
- Fixed bug #1658668: Menu Launch Game: Switching AI player on/off changes AI
setting
- Fixed bug #1656245: Scrolling with mousewheel is slow in some places
- Fixed bug #1769344: High processor load single player launch game screen
- Fixed bug #1785404: Chat does not autoscroll
- Fixed bug #1794063: Extra message arrival sound
- Fixed bug #1801208: Message boxes with long unbreakable strings show empty
### Internationalization
- Removed building names from confirmation messages, as they cause grammar
problems in some languages.
- Production program descnames can now be fetched by pgettext as well as plain
gettext.
- Deleted unused networking messages and unified the "Something went wrong"
message.
- Added a Python script to do automated glossary checks for translations. It
enlists the help of Hunspell and 'misuses' the Transifex note field in order
to reduce noise.
- Implemented glossary generation for the Transifex glossary with help from
the Translate Toolkit (http://toolkit.translatehouse.org/).
- Show translation stats next to the language selection menu and invite
translators if a translation is incomplete, with the help of the Translate
Toolkit. New utils script "update_translation_stats.py" that will write
translation statistics to data/i18n/translation_stats.conf and is called
on every translation pull.
- Fixed various string issues and added some translators' comments
- Completed the switchover to the new font renderer
- Fixed translation of trainingsite program names
- Fix undefined / unexpected behavior in case LANG environment is empty
- Fix fetching of translations when user locale is set to C. If the desired
Widelands locale does not exist, try to fall back to en_US.utf8 to make
libintl happy.
- Adapted buildcat.py to get translations for resources
- Add an extra key to get a translatable author-value in the developers list
- Fixed bug #1636586: Inconsistent localization of player names in Editor
player menu
### Help and Documentation
- Convert editor/game tips to Lua and display them in the in-editor/in-game
help. Added new tips.
- Restructured, enhanced and added to the Lua scripting reference for Tribes.
- Added/Improved documentation for animations, worker programs, worker
helptexts, AI hints, World units and the Richtext system
- Added immovables to in-game help
- Fixed some wrong indentation for the documentation in the website.
- Added toptopple sound documentation in .ods spreadsheet format (LibreCalc)
into 'doc' folder
- Fixed and improved documentation for LuaMapObjectDescription::get_type_name.
- More cross-linking between map object classes and their description objects.
- Fixed some miscellaneous bugs in the LuaMap documentation.
- Use mathjax for latex in docs instead of imgmath
- Enable building documentation with warnings as errors on Travis
- Constructionsites' help button now points to the help for the building being
built
- Documented metaserver command line options
- Added lua_path.cc to the documentation
- Add tribe-specific ware purpose texts to web encyclopedia
- Fixed bug #1792297: Advanced buildings report wrong worker experience in the
encyclopedia
### Editor
- Overhauled the selection menu for critters to give them categories
- Added an option "items per row" and rearranged the terrains and immovables
- Display of bobs, immovables and resources can now be toggled individually
- Fixed drag and drop
- Removed dead code for make infrastructure tool that was never finished
- Fixed keyboard navigation with escape and enter for save map and save game
screens. If the editbox is focused, escape will reset the text if changed,
and close the window if unchanged.
- Refactored Editor Player Menu to use Box layout. Show dismissable warning if
more than 8 players are selected.
- Map Editors now can choose "Random" tribe in the player menu
- Converted editor infotool to new font renderer and added some layout tweaks
- Enable OK button in map options when tags have changed.
- Use temporary container in cleanup_port_spaces to prevent invalid iterators
- Limited the editor undo stack to 500 items to prevent boundless growth of
memory use
- Fixed bug #1627537: Release mouse button does not work when placing things
and mouse gets under a window
- Fixed bug #1738641: Resources can be replaced only once in editor
- Fixed bug #1749146: MultilineEditboxes: Entering text not possible
- Fixed bug #1736086: Saving a map with no player set shows up as having one
player:
- Initialize new maps with 0 players
- Disable selection of maps with 0 players
- Automatically add first player to editor player menu
- Fixed bug #1741779: Description is cut in map options multilineeditbox
- Fixed bug #1782593: Segfault in random map generator
- Fixed bug #1783878: Saved random map does segfault on load if no tribe is
explicitly set
- Fixed bug #1815613: Editor crash when setting new 0,0 coordinates
### Graphics Engine
- Renamed "sub" tag to "div" in new font renderer.
- The new font renderer now sets the width properly and supports player color
for images. Added width property to img tag
- The new font renderer now creates a set of textures that will be blitted
separately by the new class RenderedText. This avoids issues with texture
sizes exceeding the maximum size supported by graphics drivers when
MultilineTextareas get arbitrarily long.
- Fixed incorrect layout of divs with width=fill when the previous div is
wider than 50%
- Fixed superfluous space characters at beginning and end of lines
- Implemented text floating around images
- Messages try to render with the new font renderer first, then fall back to
the old font renderer for layouting messages that haven't been converted yet
(and from savegames).
- All images with player color now receive their color by a common
playercolor_image function. Available player colors are kept in an array.
- Replaced raw pointers in the font renderer with shared_ptr
- Split graphics into multiple Cmake libraries.
- Got rid of EdgeOverlayManager and FieldOverlayManager and shifted their
functionality to local draw() functions in individual classes. Gave the
Interactive* classes their own draw() functions.
- Refactored Tcoords, Fcoords and TriangleIndex
- Force integer precision for overlays. This fixes fuzzy overlay images when
the player hits Ctrl+0 to reset the zoom.
- Show a basic SDL error message box to the user if the shading language
can't be detected or is too old.
- Print the shading language as double to console
- Fix shading language version detection for system locales that don't
use . as a decimal separator
- Fail with SDL messagebox if SDL_BYTESPERPIXEL != 4
- Fixed bug #1674243: Assign owners to neighbors in Player::rediscover_node.
The lack of owners was causing crashes with the road
program, which no longer knew which texture to pick.
- Fixed bug #1711816: Black terrains on fullscreen switch.
### Networking
- Replaced SDL-Net with Boost.Asio
- Added IPv6 support
- Implemented a relay server. Opening a router port is no longer necessary
for the host of internet games
- Improved the online login code by adding semi-constant user ids that are
valid for 12 hours, allowing to reclaim a username after a disconnect
- Increasing password security by no longer storing and transmitting it in
plaintext
- Improvements to Metaserver protocol
- Fixed memory leak in LanGameFinder
- Fixes on the communication between widelands and the metaserver:
- Permit answering PING requests even while logging in
- Print current time to console when logging in
- Ease finding the corresponding log entry on the metaserver when debugging
- Re-enabled and fixed unused code for whisper message to nonexisting player
- Handle error message when trying to join a non-existing game
- Avoid hanging client even after being notified about the non-existing game
- Removed no longer needed error messages
- Fixed bug #1691335: Multiplayer client crashes when the host hasn't selected
a map yet
- Fixed bug #1794339: Segfault joining game
- Fixed bug #1805325: Crash on late joins of LAN games, and display of map
name in LAN lobby.
### Build System
- Windows builds now have a unique app id for every build. This allows
parallel installation of several versions.
- Added support for gcc7 and llvm8.
- Removed "redundant-decls" flag for Windows builds due to conflict between
SDL and MinGW.
- New Macro FALLS_THROUGH; for use in switch statements.
- Let Travis build each commit on MacOS in addition to our Linux builds. Note
that the regression test suite is only run for Linux.
- Allow compiling with AddressSanitizer, and choosing between gcc and clang on
the first compile.
- Deactivated the rich text testing project, as it's currently unmaintained.
- Move website related binaries to base dir in compile.sh
- Do not build website tools on appveyor, this saves 20 minutes on x64 debug
builds
- Check for minor version of CMake
- Only export ICU_ROOT if CMake version is lower than 3.12
- Support for glbinding 3 and new Boost version
- Fix revision detection
- Fixes for handling different Cmake policies
- Use MacOSX.sdk if an appropriate versioned SDK can't be found.
- Add linker flags to please Ubuntu 18.10
- Use more processing units when using the compile script. Defaults to: max.
Processors -1. Can be set with the -j switch.
- Copy the version file instead of moving it, so that the update script can be
run twice in a row.
- Use compile.sh when running update.sh
- Added tags for Flatpak to appdata.xml
- Modernized how Mac OS X releases are done:
- Add CFBundleShortVersionString to Mac builds
- The script for building on macOS uses gcc-7 now. Also it checks whether
the SDK10.7 is installed or not and uses the latest installed version if
it cannot find the old one.
- Choose between compiler clang or gcc, specify build type: debug or release
- Set build target to 10.9 if macOS 10.9 or newer is found
- Append macOS target version to dmg filename
- Fixes for Debian-based software centers:
- Add stock icon to appdata.xml
(c.f. https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=857644)
- Change icon definition in .desktop to be a generic one
- Content ratings are now accepted by the validator, so we've activated them
- Validate .desktop file on translation updates. Removed deprecated category
from .desktop file.
### Other Issues
- Moved utils/fix_lua_tabs.py to utils/fix_formatting.py and added calls to
clang-format and pyformat.
- Cleaned up Windows utils
- Removed unused images
- Fixed a series of compiler warnings for clang, gcc and Windows.
- The ProductionSiteDescr constructor still contained some checks from the
time when they used to inherit from MilitarysiteDescr. Removed this obsolete
code and made working_positions and programs mandatory.
- Used the Notification system to reduce some code interdependency.
- Various code cleanups to make the code more readable.
- Fixed diverse crashes and memory leaks with the help of AddressSanitizer
- Diverse refactorings to use composition over inheritance and to get rid of
multiple inheritance
- Replaced SyncCallback through a std::function<void()>.
- More widespread use of smart pointers
- Untangled MapView and InteractiveBase.
- Cleaned up map handling in EditorGameBase
- Removed some dead code and reduced dependency cycles
- Options screen now saves immediately so that the changes are persistent even
if Widelands crashes afterwards.
- Added 2 new functions to Lua interface: list_directory and is_directory
- Split new function cleanup_portspaces() from allows_seafaring(), and
refactored port spaces checks.
- Only recalculate whether a map allows seafaring when something has changed
- Economies are now mapped to global serials and kept as unique_ptr in the
Player objects
- Exit gracefully if user specifies a datadir that doesn't exist
- More strict sanitizing of chat messages
- Print a welcome message on joining the metaserver
- Write Windows log output to homedir instead of the program dir
- Widelands is now installed into local appdata on Windows
- Copy translation validation results into maintainers' and translators' views
to make them easier for translators to navigate
- Use std::cout for logging when calling terminate on shutdown, because the
logger might not exist any more
- Remove test logging output from production_program.cc
- Use internal names rather than descnames for log messages and workarea IDs
- Refactor website binaries to use a real tree data structure for writing JSON
- Print more information in syncstreams. Create additional smaller syncstream
files containing the last few seconds leading to a desync.
- Added a suppressions file for Valgrind to mask memory errors caused by
backend libraries
- Fixed bug #1648178: Fatal Exception: Bad Cast
- Fixed bug #1743086: ASAN memcopy overlap on Ubuntu Budgie from libSDL
2.0.6+dfsg1 by disabling sound as a workaround to a bug
in the backend
- Fixed bug #1724145: Crashes in master-2511_release_x64 on save, caused by
economy merges making Lua variables go nil
- Fixed bug #1776603: ASAN: wl_map_object_info leaks memory
## Build 19
### Animations, Icons and Overlays
- New animations for Barbarians buildings: Wood Hardener, Farm, Fisher's Hut,
Gamekeeper's Hut, Lumberjack's Hut, Quarry, Ranger's Hut, Taver, Inn,
Big Inn, Warehouse, Scout.
- New animations: Imperial Vintner, Blackroot Field.
- New menu icons: All workers, Blackroot, Pitta Bread, Snack, Ration, Meal,
Spidercloth, Options Menu, Warehouse stock policy, Messages window
- New road textures to improve visibility on all terrains
- Better coloring for workarea pics.
- Fixed hotspot for Babarian Brewer walk animation.
- Fixed bug #1453528: Buildings missing menu icons
- Fixed bug #1408712: Waves are rolling in different speed /rolling angle is
different
- Fixed bug #1407799: Fatal exception: Image not found:
tribes/empire/soldier/untrained.png
- Fixed bug #1324642: Playercolor mask has wrong size
- Fixed bug #829984: Tweak the duck animation
- Fixed bug #672248: Duplicated animations
### Sounds
- Added sounds for Fox, Elk, Wolf, Stag, Boar, Smelting Works, Weapon
Smithies, Ax workshop, Lime Kilns, Taverns, Breweries, Winery,
Wood Hardener.
- Replaced sound for Sheep and Mills.
- Fixed bug #1592692: No production sounds on some maps
- Fixed bug #1536053: Widelands without sound on win
- Fixed bug #1500531: Random corrupted audio (loud garbled noise) when
ox breeder is working for Barbarian tribe.
- Fixed bug #1304638: Wrong sound played
### Tutorials and Campaigns
- Split tutorial into "Basic Control" and "Warefare" and added encancements.
- New "Seafaring" and "Economy" tutorials"
- Redesigned Barbarian campaign to remove topcs that are covered by the
tutorials.
- Fixed bug #1424950: Strange character relationships in the empire campaigns
- Fixed bug #1349378: Get_soldiers doesn't return a table in Island Hopping
- Fixed bug #1311244: Atlantean Mission Trigger fail
- Fixed bug #1298411: No necessity to conquer all military buildings in the
third Barbarian Campaign
- Fixed bug #1286576: Tutorial fails if player is in road building mode when
military building finishes
- Fixed bug #1088222: Barbarians Campaign: small suggestions for improvement
- Fixed bug #674839: Some issues of barbarian tutorial 3
### Maps
- New maps: Archipelago Sea, Dolomites, Wide World
- Removed maps: Dry Riverbed, Long long way, War of the Valleys
- Overhauled maps: Comet Islands, Full Moon, Glacier Lake, Kings and Queens,
Last Bastion, River Explorers, The Nile, Twin Lagoons, Volcanic Winter
- Added "hint" to the json file created by wl_map_info for use on the website.
### Saveloading
- Older savegames can no longer be loaded.
- Older maps can be loaded, but new maps can't be loaded with previous
versions of Widelands.
- User maps are now saved in a 'My Maps' subdirectory to prevent overwriting
of official maps
- No longer write replay files for scenarios
- Implemented rolling autosave
- Disallow changing player slots in single player scenarios.
- Added checks for illegal file names during map saving.
- Fixed a crash where a leaked remnant of the game session would still be
subscribed to the 'changed resolution' event if a savegame failed to load.
- Fixed crash with identical autosave filenames when LAN game is run with
multiple instances of Widelands on a single computer. Also, more informative
error messages in disk_filesystem.cc.
- Fixed bug #1548932: Editor fails on save with zip filesystem
- Fixed bug #1526514: player 2 in "" section [player_2] not found
- Fixed bug #1509172: Editor gives error on saving maps in Windows.
- Fixed bug #1428396: Savefile broken when enemy deafed
- Fixed bug #1413734: Savegame does not load
- Fixed bug #1388028: Unable to load saved game
- Fixed bug #1375915: Scripting files get deleted when a map is resaved
- Fixed bug #1332832: Warning when starting a new game Unused key "name" in
LuaTable.
- Fixed bug #1311716: Segfault when loading a game with nightly build
- Fixed bug #1303669: Reduce size of campaign savegames
- Fixed bug #1302577: Wrong minimap in load dialog when the save game has been
overwritten
- Fixed bug #1254116: Crash on saving game: unprotected error in call to Lua
API (table index is NaN)
- Fixed bug #1228811: Observers savegame contains no minimap.
- Fixed bug #1227984: Autosave should not trigger while game is paused
- Fixed bug #992829: Console output: WARNING: There are 73 unloaded objects.
- Fixed bug #979995: Game crashes with large map when saving
### AI
- AI can now build and use ships
- Improved placing, upgrading and dismantling buildings
- Improved placing and destroying roads.
- AI no longer runs out of wood
- Enhanced military and soldier training strategy
- Reworked the way how AI stores some data in Player object
(GamePlayerAiPersistentPacket)
- Fixed bug #1388255: Widelands crashes when loading a multiplayer game
- Fixed bug #1344288: Segmentation fault - AI building enhancement
- Fixed bug #1342554: [defaultai.cc:2406] Help: I do not know what to do with
a outpost
- Fixed bug #1330070: AI crashes
- Fixed bug #1311790: Assertion error Widelands::StreamWrite::Coords32 shortly
after starting a new game
### Gameplay
- Collectors win condition now reports team scores as well as player scores.
- New win condition: Artifacts
- Added New starting condition "Trading Outpost" that will periodically give
the player some wares if needed (cheat mode)
- Other tribes' buildings that have been conquered can now be dismantled
- Balancing: Added gold to building cost for Atlantean training sites.
Made Barbarian attack stronger.
- When an expedition ship places a port, a bit of land is cleared of trees to
make room for a few buildings.
- Ports can be affected by terrain changes up to 3 tiles away from their original
position, so we recalculate as much when changing a terrain tile.
- New tree/terrain affinity values.
- Forcing a constructionsite properly conquers the area that the finished
building will occupy.
- Reworked find_portdock.
- "Out of resources" messages are now be triggered by productivity
- Engine change: all tribes can now use any building/ware/worker etc.
Use Lua instead of finf file for initialization.
- Ontology cleanup: Internal unit names now match their display names.
Renamed worker program "geologist-find" to "geologist_find" and "playFX" to
"play_sound" and removed unused option "setdescription".
- Added Description objects for all tribe and world entities to Lua interface.
- Removed LuaBaseImmovable::get_size. The corresponding functions now return
strings instead of ints.
- Added LUA interface to ship - RO property shipname
- Updated Eris to version 683ac97476a8634d9e5c17f0dec8dff8b7f3e595 (Lua 5.3).
- Fixed bug #1554552: Wounded attacking soldiers failing to retreat
- Fixed bug #1551578: Fortified Village crashes when building can't be placed.
- Fixed bug #1542703: Crash during battle in editor_game_base.cc:677: Only
allow building a port if all fields can be conquered.
Also added a test for this issue.
- Fixed bug #1525395: Atlantean mines failing to extract all resources
- Fixed bug #1509220: Atlanteans campaign keeps counting 0 ships
- Fixed bug #1504948: Performance issue when "no use for ships on this map"
- Fixed bug #1502458: Carrier hiding in Warehouse/HQ is hardcoded
- Fixed bug #1490116: Fully promoted soldiers remaining in training sites
- Fixed bug #1457425: Fight never ends (also not 2h later)
- Fixed bug #1451078: Labyrinth malfunctions full report
- Fixed bug #1451069: Collectors win condition doesn't count wares in ports
- Fixed bug #1442945: Atlanteans ship construction much faster
- Fixed bug #1442869: Stopped production sites should produce something from
their consumed wares before they stop
- Fixed bug #1434291: Collectors game over message
- Fixed bug #1423468: After reload, all percentages are blue until they are
updated again
- Fixed bug #1420521: Reset target quantity is overwritten easily
- Fixed bug #1407418: Multiple hunters hunt for same animal
- Fixed bug #1402392: Widelands crashed with SIGSEGV in
LuaGame::LuaPlayer::get_buildings()
- Fixed bug #1402231: Wl crashes when saving after port is reduced to
warehouse
- Fixed bug #1395238: Soldiers getting stuck
- Fixed bug #1389211: Port without a portdock (game crashing)
- Fixed bug #1387801: Crash when expedition port is destroyed while wares are
unloaded
- Fixed bug #1344179: Granite mines should check if their output is needed
- Fixed bug #1341662: Remove the animals out of the Barbarian directory
- Fixed bug #1332842: Remove support for different flag and frontier 'styles'.
- Fixed bug #1332455: Productivity of the Atlantean farm does not drop to 0
when it does not work
- Fixed bug #1332452: Crop does not grow
- Fixed bug #1302635: Random tribe selection always gives the same result
- Fixed bug #1302593: Result screen not shown in loaded game when a player was
already defeated in saved game
- Fixed bug #1290123: Delete barbarian stronghold
- Fixed bug #1251914: Soldier stuck in battle animation loop
- Fixed bug #980287: Productivity drops on game load
- Fixed bug #978138: Ship is under fisher's hut
- Fixed bug #902807: Stopped production sites do not have their reserves
filled
- Fixed bug #861761: Improve production prioritisation
- Fixed bug #849896: Heal the highest level, healthiest soldier first
- Fixed bug #653308: The attack dialog is not updating the number of possible
attackers
- Fixed bug #580923: Production of carrier does not respect building costs
### User Interface
- Display Widelands version for each client in Internet lobby.
- Overhaul of diverse menu screens and windows: map and game loading,
in-game Building Statistics, main menu Options and "About Widelands"
- Messages can be filtered
- Added Win condition descriptions as an Objective
- Remember map location markers in singleplayer savegames.
- Ships now have individual names and show their states in the statistics
string
- Added census/statistics strings to ships and ship construction.
- Hide wares which do not need prerequisites and therefore are produced
'endlessly' from configure economy
- Watchwindow fixes: Fixed some oddities such as view duplication:
- Possibly fixed bug #1553699 (probable cause: std::erase used on invalid
position, which results in undefined behavior).
- Highlight the current view button.
- Editor CategorizedItemSelectionMenu no longer grows excessively wide when
multiple items are selected.
- Shifted chat overlay up so it won't overlap with the menu buttons.
- Most UI elements now use the new font renderer
- Various scrollbar-related fixes.
- Fixed handling of Alt key in Linux
- Fixed bug #1566441: String "Saving Game" appears too late
- Fixed bug #1559729: Port space not shown.
- Fixed bug #1542214: Inconsistent ordering of OK/Cancel buttons.
- Fixed bug #1526916: When selecting a map, the parent directory now has a
lower sort order than all other directories.
- Fixed bug #1480937: Escape key doesn't work in all dialogues
- Fixed bug #1451147: Game crashes when headquarters is taken over
- Fixed bug #1426654: Only list compatible .wmf files in the load game dialog
- Fixed bug #1422072: Private message improvements
- Fixed bug #1419537: Allow Observers to show building spaces
- Fixed bug #1413226: Spaces in attack box disappear
- Fixed bug #1412242: Multiplayer save game selection does not show the
filename
- Fixed bug #1371062: Add confirmation dialog to exit game
- Fixed bug #1344350: Constructionsites/dismantlesites only show a dot instead
of building image
- Fixed bug #1342563: When choosing random tribe and castle village, the tribe
can be guessed
- Fixed bug #1339861: Remove the "Military settings" option
- Fixed bug #1322741: Text issue: fps statistics overlaps with xz coordinates
- Fixed bug #1306728: Crash when info window opened if statistics window has
been opened
- Fixed bug #1300359: Installation dialog shows old screenshot
- Fixed bug #1298301: Do not show scenario messages when player is in road
building mode
- Fixed bug #1296655: News window crashes when building has not been seen in
the game
- Fixed bug #1283693: Crash after very long chat message
- Fixed bug #1252625: Plot areas now update their data less often.
- Fixed bug #1247384: Newly conquered building should prefer heroes
- Fixed bug #1232392: Allow tabbing in forms
- Fixed bug #1191556: The "Cancel Expedition" button in Port windows will now
toggle and remove the tab.
- Fixed bug #1167242: Ctrl+destroying a flag with a building does not destroy
the whole road
- Fixed bug #998544: Replay name should contain Widelands version
- Fixed bug #988831: Remove message expiry feature.
- Fixed bug #965633: Set default AI to random tribe
- Fixed bug #964541: Closing building window closes (child) help window
- Fixed bug #744749: Training sites should either show statistics as a
military or as a productionsite
- Fixed bug #736404: Cannot switch from Widelands in full screen on Linux
(alt+tab)
- Fixed bug #682351: Wishlist: Fullscreen toogle also in Menu
- Fixed bug #571796: Stop the rounding to full 10ths for productivity
percentages
- Fixed bug #566729: Add gametime display to replays
- Fixed bug #536230: Building icons in menu are shown without correct
playercolor
### Internationalization
- Big string overhaul to improve translations
- UI redesigns to make translated strings fit
- Automatic font selection and support for Arabic script
- Fixed escaping of special characters in messages
- Richtext and rt_render can now handle
- ngettext and pgettext are now available in Lua
- Fixed bug #1341990: Map names cause confusion in internet play
- Fixed bug #1289698: Sorting maps by name sort by original instead of
translated name
- Fixed bug #1289586: Let tree descriptions use the same size scheme as
buildings
- Fixed bug #1290066: Sort languages by their native names
- Fixed bug #978175: Localization not yet loaded in command line
- Fixed bug #973714: Fonts are different between daily PPA and bzr repository
### Editor
- Merged the four worlds into one, so any entity can be placed on any map now.
- New forested mountain terrains
- Editor now starts with the Info tool instead of the Set Height tool
- The user can choose to display map or filenames when loading or saving a map
- Overhaul of all main menu subenus
- Stopped the infotool from painting and gave it size 1.
- Fixed various cashes in editor when loading a map or using the Set Origin
tool.
- Fixed bug #1535065: Editor crashes with random map regarding player
positions.
- Fixed bug #1532417: Complete indicators for resource water
- Fixed bug #1504366: Editor crashes unexpectedly
- Fixed bug #1426276: Editor Player Menu doesn't update tool overlay when
player is removed
- Fixed bug #1402786: "Set origin" should be in the tools menu
- Fixed bug #1392406: Confirmation dialog when leaving the editor although
Ctrl has been pressed
- Fixed bug #1392215: Secondary and Third Alternative Tool no longer working
in the Editor
- Fixed bug #1378801: Random map: Wasteland % change not reflected in
Mountains %
- Fixed bug #1341112: Editor line abruption in Noise height tool
- Fixed bug #1289575: Dialog for selecting immovable bobs in editor lacks
tooltips
- Fixed bug #1281823: Setting resources via LUA API broken in Editor
- Fixed bug #1174075: Clarify meaning of icons in editor terrain preview
- Fixed bug #1171231: Size of minimap in the editor not changed when new map
is loaded
- Fixed bug #977980: Fish and mountain ressources cannot be removed when they
are on grass
- Fixed bug #821553: Increase maximum number of terrain types
- Fixed bug #768826: Show altitude level in the editor
### Help and Documentation:
- Generic in-game and in-editor help system driven by Lua scripts. All values
except for performance are now read from the current Lua configuration
files.
- Added some performance values for the buildings help text
- Improved documentation: Started adding Tribe and World information to our
online Widelands Scripting Reference.
- Created a new executable 'wl_map_object_info' that will generate JSON files
for updating the encyclopedia on the website.
### Graphics Engine
- Fixed line drawing by replacing the broken use of GL_LINES with a
tessellation algorithm for drawing lines.
- Decoupled UI update frequency from game update frequency (which is now 15
times per second).
- Removed graphic::update() and Panel::update() and always redraw at maxfps.
- Changed default maxfps to 30 (instead of 25).
- Filter all textures linearly instead of near. This looks nicer and texture
bleeding has been taken care of.
- Added a new undocumented command line argument --debug_gl_trace which will
log every OpenGL call that is made, together with arguments, return values
and glError status. This requires that Widelands is build using
-DOPTION_USE_GLBINDING:BOOL=ON. It is a NoOp for GLEW. This will help
debugging non-reproducible OpenGL errors that are reported. Tested with
glbinding 1.1.0.
- More logging when OpenGL is initialized.
- Correctly crop destination and source rectangle while blitting.
- Fixed memory leaks in UI::Table::draw and around code found using the Leaks
tool in Apple's Instruments.
- Fixed bug #1562071: Visual glitch in chat overlay as well as chat overlay
transparency.
- Fixed bug #1535569: Messages window slows down game speed
- Fixed bug #1480928: Lumberjack animation glitches
- Fixed bug #1447333: Crashes on main menu under Windows 7. Mouse movement
seems to trigger this.
- Fixed bug #1424408: Graphics become all white in tutorial
- Fixed bug #1409267: Graphic errors with text on Windows
- Fixed bug #1408707: Water should be dithered as land terrain
- Fixed bug #1397302: Fullscreen Toggle Text Overlay
- Fixed bug #1397301: Screenshots black
- Fixed bug #1393547: Flashing black background when autosaving
- Fixed bug #1389346: Disabling opengl results in black screen
- Fixed bug #1378797: When playing fullscreen mode Unity locks the screen
- Fixed bug #1370144: Playercolor mask is sometimes black
- Fixed bug #1302565: Screenshot shows wrong image when a game is chosen with
the mouse pointer
- Fixed bug #1257476: Crash when attempting to load a game after toggeling
opengl rendering
- Fixed bug #1257320: Strange vertical lines during gameplay
- Fixed bug #1243700: Statistic window displays graph incorrectly when in
hour-mode
- Fixed bug #1215412: Graphic artifacts
- Fixed bug #1203006: Increasing resolution in fullscreen results in the right
and bottom sides not being updated properly
- Fixed bug #1202133: Dialogs (and list of maps) have white background and
repetition
- Fixed bug #1041436: Game jerks and stops after playing awhile. Bzr6421
- Fixed bug #731987: Mouse does not work in full screen on virtual machines
- Fixed bug #647456: Options: colors of the main WL menu changes when changing
the language
- Fixed bug #536559: Fullscreen must not change physical screen resolution
- Fixed bug #536500: Can not toggle fullscreen with Alt+Enter or resize with
w.m.
- Fixed bug #536317: Graphics libraries still in memory when no longer needed
### Other Issues
- Added build instructions for OpenBSD
- Ships get debug window. Also its content are extended.
- Removed --logfile command line flag - use redirects instead.
Added an SDL2 aware logger that replicates writing a stdout.txt on windows.
- Removed --remove-replays and --remove-syncstreams. We now always delete
them if they were autogenerated and older than 4 weeks.
- Added --write-syncstreams option which defaults to true for now.
This will give us more debug information for future desyncs.
- Remove --dedicated commandline option and associated code.
- Added Widelands version to log output
- Moved all data-related directories into a new "data" directory.
- Fixed bug #1581828: Desync while testing bzr8001[bug-1418154-collectors-teams]
- Fixed bug #1562332: Crash with playing chat sound in Internet lobby
- Fixed bug #1522290: Gameplay suddenly gets very slow
- Fixed bug #1503949: Excessive CPU usage and loading time seemingly related
to length of the game
- Fixed bug #1438611: Widelands is leaking memory
- Fixed bug #1413326: Current trunk on Linux cannot join a game that is hosted
on Windows
- Fixed bug #1404478: Windows installer puts string "Widelands" into the
version field
- Fixed bug #1278050: Login problems with metaserver
- Fixed bug #1274279: Metaserver entry in config gets deleted
- Fixed bug #1169445: Commandline options 1/0 <=> true/false on win32
- Fixed bug #1096453: Massive memory leaks
## Build 18
- Added a preview for the costs of a building and the resources gained
through the dismantling of a building.
- Added a button to productionsites for evicting a worker.
- Added control to exchange stationed soldiers of a militarysite
with soldiers of a higher resp. lower level.
- Added seafaring expedition and colonization.
- Added new win condition: Territorial time similar to territorial lord.
- Added a game result screen showing a summary of the game once the game is over
- Added support for a "message of the day" to Widelands and the Widelands' dedicated server.
- Added new game tips.
- Improved start up time through on demand loading of graphics.
- Improved Widelands' rich text rendering engine a lot and improved
all kind of text in different places..
- Improved OpenGL rendering leading to a huge speed up.
- Improved the handling of solders inside trainingssites:
Soliders that did not receive training for some time are now evicted automatically
- Improved the old stock charts and added some new ones.
- Improved graphics and animations on many places.
- Improved graphics used in road building mode to indicate the steepness.
- Improved multiplayer scenario "Smugglers".
- Improved Empire Inn to be backward compatible.
- Improved the handling of game saving
- Improved Widelands' translations and added some new ones.
- Fixed a bunch of memory leaks.
- Fixed a bunch of compiler warnings.
- Fixed an editor crash when trying to save a map inside a subdirectory.
- Fixed bug #535806: Loading images takes a tremendous amount of time
- Fixed bug #536110: Some Map Editor tools (Resources) are not translatable
- Fixed bug #536161: Widelands bundles internal copy of unzip.cc
- Fixed bug #536482: Downgrade skilled workers when possible
- Fixed bug #536507: Autosave after reaching objective
- Fixed bug #536548: Allow control of stationed Soldiers in Military Buildings
- Fixed bug #536571: Empire Inns should be able to produce rations.
- Fixed bug #537194: Unable to see full list of bobs on debug
- Fixed bug #566970: Unable to attack castle
- Fixed bug #576347: show game results screen
- Fixed bug #580905: write building status in a different font color for construction sites
- Fixed bug #657285: Multiple tooltips may be shown when opening building information
- Fixed bug #674600: Long titles in message inbox overlap with time sent
- Fixed bug #674930: Rare bug in soldiers code
- Fixed bug #704637: Does not start (could not set video mode) using too large resolution in fullscreen mode
- Fixed bug #706284: Default save file name is always the first in list
- Fixed bug #714036: Add evict worker button to productionsites
- Fixed bug #706284: Default save file name is always the first in list
- Fixed bug #714036: Add evict worker button to productionsites
- Fixed bug #722087: hard to empty warehouse
- Fixed bug #723113: Weird green granite in the editor on Blackland maps
- Fixed bug #726139: Numeric wares display in warehouses not updating correctly
- Fixed bug #732142: Please choose lighter blue player color
- Fixed bug #738643: Pause game while in 'save'-dialog
- Fixed bug #738895: Show a message when the game is autosaving
- Fixed bug #740401: Preview required building costs before building or upgrading
- Fixed bug #744595: clang llvm 2.9 compiler widelands crash
- Fixed bug #751836: Loading games memory usage
- Fixed bug #763567: Sort Messages in Message Inbox to be most recent on top
- Fixed bug #787217: editor crashes on map load
- Fixed bug #787464: Hard to tell the difference between actual flags and possible flags for
the yellow player
- Fixed bug #796673: Roads "light up" in the fog of war
- Fixed bug #796690: Atleantean resource signs have a red tint
- Fixed bug #802432: wreck sail is blue instead of white
- Fixed bug #803284: While building, show range of the building on construction site
- Fixed bug #818823: Multiplayer game kicked out players after being paused for a while (Broken pipe)
- Fixed bug #825957: Warnings at compile-time (GCC)
- Fixed bug #846409: Improving the load game dialog
- Fixed bug #858517: Counter for 50% of the land in territorial lord doesn't reset
- Fixed bug #861840: building near shoreline
- Fixed bug #898129: Workarea color policy
- Fixed bug #900784: Screen resolution can be set too large in windowed mode
- Fixed bug #902464: Upgrading building: number of wares in stock window not updated
- Fixed bug #902558: Workers returning to a building being dismantled will attempt to enter it
- Fixed bug #913369: Warnings at compile-time (clang/llvm)
- Fixed bug #923702: soldier "lost" if the building he is returning to has been destroyed
- Fixed bug #933747: Text refers to bug #1951113
- Fixed bug #939026: Sea expedition and colonization
- Fixed bug #939709: Make OpenGL terrain rendering less demanding on hardware
- Fixed bug #955908: Open stockstatistics with a button
- Fixed bug #957750: Add Portspace tool doesn't use the toolsize.
- Fixed bug #960370: Atlantean Ship Shows "flashes" on the Hull
- Fixed bug #961548: widelands executable links against boost_unit_test_framework in Debug mode
- Fixed bug #963697: Port build help icon shown, though no port can be build
- Fixed bug #963802: Add option to burn a ship
- Fixed bug #963963: Game crashes when ship construction site cannot be cleared for a new ship
- Fixed bug #965052: Cannot see which map I am currently playing
- Fixed bug #970264: Missing SDL_* libraries lead to rather useless messages
- Fixed bug #970840: new graph: availability of wares
- Fixed bug #972759: barbarian beer icons misleading
- Fixed bug #974679: Inconsistent behaviour in soldier creation leads to irregular economy state
- Fixed bug #975091: Ship freezes loaded with wares upon destruction of destination port
- Fixed bug #975495: lua bug in "Together we are strong" map
- Fixed bug #975840: test_routing.cc:97 Same expression on both sides of '-'
- Fixed bug #975847: increase and decrese resource tool has methods with multiple consecutive returns
- Fixed bug #975852: lua_map has a statement after a return which will never be executed
- Fixed bug #976077: x\y axis in ware statistics are wrong
- Fixed bug #976551: ftbfs with gcc 4.7 if not including <unistd.h>
- Fixed bug #976698: Atlantean saw has misleading description
- Fixed bug #978123: Small icons for wares on ships
- Fixed bug #978169: Global militarysites icons not updated
- Fixed bug #979937: Coal can be replaced by other ressources in the editor
- Fixed bug #982364: Editor in Windows XP suffers high CPU, memory leak
- Fixed bug #982620: "no use for ships on this map" blocks building ships in first Atlantis campaign
(atl01.wmf)
- Fixed bug #983448: Improve OpenBSD support
- Fixed bug #984110: memory leak in src/ai/defaultai.cc:1439
- Fixed bug #984165: Make the increase/reduce wares buttons repeatable
- Fixed bug #984197: Suggestion: Confirmation window for dismantling production building
- Fixed bug #985109: Decreasing vision for node that is not seen
- Fixed bug #986526: Clarify "X player teams" map filter
- Fixed bug #986534: Improve in-game checkboxes
- Fixed bug #986910: Multiplayer game setup does not show team suggestions for maps
- Fixed bug #988498: Suggestion: remove cppcheck related stuff from build
- Fixed bug #988870: Barbarian weaving mill produces endless cloth
- Fixed bug #989483: Widelands host crashes if a client connection breaks
- Fixed bug #989489: After leaving an internet game, Widelands freezes in the lobby
- Fixed bug #990623: Checkboxes should react when hovered by the mouse cursor
- Fixed bug #992466: dedicated server regression: not able to choose map
- Fixed bug #993293: EnsureDirectoryExists() does only work with a path deepth of 1.
- Fixed bug #994712: GPL Text should maybe not be translateable
- Fixed bug #995011: They can attack me but I can't attack them
- Fixed bug #996965: Fail to build on amd64
- Fixed bug #998828: Only coal can be placed in the editor
- Fixed bug #1005955: Start using C++11 features in Widelands sources
- Fixed bug #1008861: Massive memory leak after closing stats window when OpenGL rendering enabled.
- Fixed bug #1016104: The stock plot is quite wrong
- Fixed bug #1019585: Building window background "jumping" when previewing upgrade build cost
- Fixed bug #1020736: CrossPlatform Path fix: remove ":" in path names on Windows
- Fixed bug #1022267: stock chart counts wares in every building
- Fixed bug #1023264: Scouts explore consistently to the west
- Fixed bug #1024549: Crash in Build Cost Preview in Observer Mode
- Fixed bug #1025014: segmentation fault in widelands
- Fixed bug #1025848: --version prints more and less than it should
- Fixed bug #1027058: Connection lost after some time if all players pause in multiplayer
- Fixed bug #1033213: Assertion in nethost is always true
- Fixed bug #1033216: Undefined identifiers used
- Fixed bug #1033615: Consider checking for more warnings when compiling Widelands
- Fixed bug #1044933: Branch condition evaluates to a garbage value in io/filesystem/filesystem.cc
- Fixed bug #1044935: Assigned value is garbage or undefined in graphic/render/terrain_sdl.h
- Fixed bug #1044939: Dead assignment or increment (variables which have values assigned,
but are then never read again)
- Fixed bug #1050431: Worker icons should not contain letters for levels
- Fixed bug #1063233: Starting game while savegame is still being transferred
- Fixed bug #1074655: FPS slowly drops when playing with stock screen open
- Fixed bug #1074979: r6433 has an economy mismatch after building a third port
- Fixed bug #1090433: dedicated server module not working on windows
- Fixed bug #1090887: buildcosts and "wares that get recycled" preview moves the window
- Fixed bug #1093848: Remove ware removes wares without placing them outside the building
- Fixed bug #1094711: Fisher runs out of fish even with double breeders
- Fixed bug #1094750: Usability Suggestion: move economy configuration button to a more obvious location
/ clarify its location in documentation and tips.
- Fixed bug #1095022: Division by zero in ui_basic/slider.cc
- Fixed bug #1095028: Called C++ object pointer is null in ui_basic/table.cc
- Fixed bug #1095034: Called C++ object pointer is null in network/nethost.cc
- Fixed bug #1095695: Middle-clicking in any window will crash the game (assertion error)
- Fixed bug #1095702: Game crashed with OpenGL ERROR: out of memory
- Fixed bug #1096362: Crash when increasing speed in a internet game as observer
(only happens on dedicated servers)
- Fixed bug #1096632: Open windows cause game to stall after several hours
- Fixed bug #1096651: Windowed graphics resolution change does not resize window
- Fixed bug #1096786: Indicate direction of steepness in road building mode
- Fixed bug #1097420: Window tabs in map editor cause exception
- Fixed bug #1098263: Widelands does not start if PC has OpenGL problems
- Fixed bug #1099094: Tutorial description bug
- Fixed bug #1100045: Carriers can/can't be removed from Warehouses
- Fixed bug #1101788: Atlantean stone economy target too low
- Fixed bug #1104462: Untranslatable strings
- Fixed bug #1108083: Construction site window does not display specific building name
- Fixed bug #1115664: Extremely slow framerate/performance with OpenGL
- Fixed bug #1121396: Assertion error upon starting WL (regression after latest opengl changes)
- Fixed bug #1125539: Roads not rendered in road building mode
- Fixed bug #1128114: segmentation fault when running with --dedicated
- Fixed bug #1130469: Textarea does not place cursor correctly on mouse click (map description in the editor)
- Fixed bug #1130905: OpenGL switch to Software Rendering crash
- Fixed bug #1132238: Open buildingwindow after closing of constructionsitewindow when
construction has finished
- Fixed bug #1132466: Evicted workers will become stuck if the are away from home and the building is
not conencted to the road network
- Fixed bug #1132469: List of workers in building window not updating properly
- Fixed bug #1132473: soldier hangs at one point
- Fixed bug #1132476: change yellow color in white(?) - building menu % is unreadable
- Fixed bug #1132774: Assertion in image cache while loading first barbarian campaign
- Fixed bug #1137765: displaying tooltips in fullscreen causes crash
- Fixed bug #1139666: New buildcap allows larger buildings in smaller spaces
- Fixed bug #1142781: Current BZR version leads to compiler errors on Windows
- Fixed bug #1144465: Builder gets "lost" after dismantling site
- Fixed bug #1145376: Dark box when hovering over buildings
- Fixed bug #1150455: Dedicated servermode segfaults on non-existing maps
- Fixed bug #1150517: Crash when closing widelands
- Fixed bug #1153361: OpenPandora patch for FAT FS
- Fixed bug #1159000: Building WL should check whether gettext is installed
- Fixed bug #1159432: Warnings at compile-time in GCC 4.8
- Fixed bug #1159968: Crash in opengl fonthandler_cc:99
- Fixed bug #1162918: Workers exiting warehouse do not follow flag
- Fixed bug #1162920: Shovel icon is unclear
- Fixed bug #1162936: After eviction of a worker, a worker of the same level is requested instead of
the original worker type
- Fixed bug #1167234: Terrain preview in editor shows nothing
- Fixed bug #1170086: Imperial sentry returns more wares when dismantled than it needed
- Fixed bug #1171131: Revision 6559 FTBFS on GNU/Linux due to compile_assert failing
- Fixed bug #1171233: Opening a Widelands file makes all strings appear in English
- Fixed bug #1172197: Seefaring doesn't work on nightly Build
- Fixed bug #1174066: Setting the origin of a map disrupts it
- Fixed bug #1178327: Empire does not have economy target for marble
- Fixed bug #1181132: Random Map: Randomize positioning of start positions
- Fixed bug #1182010: fish breeder does not work
- Fixed bug #1183479: Evict Worker code possibly incomplete
- Fixed bug #1184151: Cant load a saved game after update
- Fixed bug #1186906: Remove entries from the message list that have become obsolete
- Fixed bug #1189615: WL crashes down while ship makes expedition
- Fixed bug #1191554: Game crashes when ship with open window is loaded for expedition
- Fixed bug #1191556: Port window not updated ("Cancel the expedition" starts a new one)
- Fixed bug #1191568: Expedition feature does not work properly in replay mode
- Fixed bug #1191889: Ship loads ware but does not transport it
- Fixed bug #1194194: Show build progress of the current ship
- Fixed bug #1195639: Ports build into water
- Fixed bug #1196194: Game freezes when exploring coast when not at coast
- Fixed bug #1197429: Fail to build in Ubuntu 12.04 LTS
- Fixed bug #1198624: A player should be considered defeated in Autocrat after losing all warehouses,
rather than all buildings
- Fixed bug #1198921: Returning null reference in scripting/lua_game.cc
- Fixed bug #1198930: Use-after-free in wui/building_ui.cc
- Fixed bug #1199653: Unseen port crashes the game when saving
- Fixed bug #1199808: Use-after-free in wui/shipwindow.cc
- Fixed bug #1199812: Use-after-free in economy/economy.cc
- Fixed bug #1199957: Segmentation fault during combat
- Fixed bug #1200952: Make error: /wui/buildingwindow.cc
- Fixed bug #1201081: Building with boost 1.54: "Boost.Signals is no longer being maintained and is
now deprecated. Please switch to Boost.Signals2."
- Fixed bug #1201330: Dangerous variable-length array (VLA) declaration in map_generator.cc
- Fixed bug #1202040: Soldier preference button graphics
- Fixed bug #1202133: Dialogs (and list of maps) have white background and repetition
- Fixed bug #1202146: With opengl enabled, screenshots display edges in terrain strangely
- Fixed bug #1202228: Better controls for specifying preference of strong and weak soldiers
- Fixed bug #1202499: Can't open directory with maps
- Fixed bug #1203121: Latest trunk FTBFS on Ubuntu 12.04
(src/helper.cc:82:8: error: 'mt19937' in namespace 'boost::random' does not name a type)
- Fixed bug #1203329: Possible to trigger a crash by saving between story dialogs
- Fixed bug #1203337: Map name appears untranslated in save dialog, even when translation exists
- Fixed bug #1203338: According to save dialog, campaign maps have 58 players
- Fixed bug #1203439: Crash on saving with no human player
- Fixed bug #1203474: Ingame README needs review
- Fixed bug #1203492: Fail to build in Ubuntu 10.04 LTS
- Fixed bug #1204008: Suggestion: widelands-daily should incorporate recent translations
- Fixed bug #1204144: Cursor Key Navigation in table not complete
- Fixed bug #1204171: Can't select ware in ware statistics window
- Fixed bug #1204199: Buildings and building statistics have different color groups for productivity
- Fixed bug #1204226: FTBFS on Ubuntu 13.04 fixed.
- Fixed bug #1204462: Suggestion: widelands-daily should not only include bzr revision,
but also date/time in the package name
- Fixed bug #1204481: Militarysite initialization
- Fixed bug #1204612: FTBFS on Ubuntu Precise and Lucid ('unique_ptr' is not a member of 'std')
- Fixed bug #1204756: REVDETECT=BROKEN-PLEASE-REPORT-THIS(Release) in PPA builds
- Fixed bug #1205010: segfault on dismantle on conquered enemy building or starting buildings in campaigns
- Fixed bug #1205149: Crash on Ubuntu 12.04 when clicking to open a building window
- Fixed bug #1205457: Fisher produces fish without decreasing resources
- Fixed bug #1205609: Wincondition scripts reloaded too often
- Fixed bug #1205806: Ware statistics window too small for empire warelist
- Fixed bug #1205882: Typo in license text
- Fixed bug #1205901: Value stored to unread variable in map_io/widelands_map_buildingdata_data_packet.cc
- Fixed bug #1206211: "Follow" function in watch window crashes in replays or when playing as a spectator
- Fixed bug #1206441: Autosave leads to crash on replays
- Fixed bug #1206563: Error when loading savegame saved in replay
- Fixed bug #1206712: Endless loop in Layout::fit_nodes
- Fixed bug #1206917: Pausing during save dialog behaves different in replays and games
- Fixed bug #1207069: Seafaring: cancel expedition button on ship
- Fixed bug #1207412: Authors button ingame leads to crash
- Fixed bug #1207477: Assertion `it != end()' failed in message queue
- Fixed bug #1208130: Desync error after clicking "Prefer rookies/heros" buttons in military buildings
- Fixed bug #1208229: Segmentation fault in Widelands::Soldier::attack_update
(this=0x99f1ea0, game=..., state=...) at src/logic/soldier.cc:1003
- Fixed bug #1208440: Some messages directly expired and still play sound
- Fixed bug #1208474: Need a nice compatibility safegame from b17.
- Fixed bug #1209125: FTBFS trunk/6705 on Debian Wheezy
- Fixed bug #1209256: Saving a game not working because of minimap.png code
- Fixed bug #1209283: Crash at end of game (game statistics window)
- Fixed bug #1211248: Add map tag "seafaring" and handle in the UI
- Fixed bug #1211255: Show workarea doesn't work
- Fixed bug #1211898: bzr 6718 segfault building expedition port
- Fixed bug #1212191: 100% training site production without any soldier
- Fixed bug #1212192: Evict worker doesn't work for the second worker
- Fixed bug #1213330: Called C++ object pointer is null in wui /shipwindow.cc
- Fixed bug #1215075: Terrains not translateable - feature not a bug???
- Fixed bug #1215134: Hint text inherited by new map
- Fixed bug #1216278: Assertion failed when making a port at top left position in this safegame
- Fixed bug #1216305: It is possible to place ports via expeditions where players can not build them
via normal expansion
- Fixed bug #1219388: Port spaces missing after change of map origin
- Fixed bug #1219390: Wine farmer missing in description of shovel
- Fixed bug #1219507: Savegame crashes Widelands
- Fixed bug #1219524: Empire bakery drops from 100% to 0% very quickly when no wares are available.
- Fixed bug #1219526: Last received chat message never vanishes from main in game screen
- Fixed bug #1220546: segfault on dismantle a building on ubuntu 12.04
- Fixed bug #1228518: Chat announces defeat of all network players although only one is defeated
- Fixed bug #1228529: Defeated player can see_all, but can only use fieled_action_window on prior seen fields
- Fixed bug #1228592: Internet lobby chat is blocked once another UI part was used (one of the lists, etc.)
- Fixed bug #1228596: Important system messages are not forwarded to ingame chat
## Build 17
- Diversified heal rate for military buildings - the bigger, the quicker.
- Improved and remodelled a lot of the buildings' animations.
- Improved and remodelled a lot of the bobs' animations.
- Improved and remodelled a lot of terrain graphics.
- Improved dedicated server functionality:
- now runable as daemon and thus via init.d script on servers
- added possibility to write server statistics to html files
- added functionality to save the game on the server via chat command.
- added functionality to set up a password for the server.
- added functionality to set a custom message of the day (motd).
- improved client side handling / setting up of dedicated servers.
- Improved a lot of icons and button appearence.
- Improved statistics window.
- Improved the Widelands code to use less resources.
- Improved OpenGL rendering which is now active by default.
- Improved (slightly) the computer player through use of the new
dismantle feature.
- Replaced the old libggz based metaserver support with our own ggz
independed solution, which brings some new features as well:
- The metaserver is now checking whether a game is connectable
if it is not, it sends an error message to the client to
inform it.
- System messages on the metaserver like global announcements
motd changes or Error-Messages are now imported to running
games and shown there as well.
- The metaserver does now check whether a client is still online
regulary and disconnects it, if it isn't.
- If the client gets disconnected from the metaserver during a
running game, the client is able to reconnect silently.
- Games can now have more than 7 connected clients
- The Version of Widelands used in a game is now shown as hover text
in the game list. If a game is connectable, but uses a different
version, a "?" icon is shown to visualise that difference.
- Added a new piece of music to Widelands
- Added new states and animations for unoccupied buildings and empty mines,
to better indicate the current state of a building.
- Made road textures world dependend and improved the style of the roads
for each world.
- Added basic seafaring functionality:
- Ports, ships and shipyards are already working as they should.
- Loading of settlers 2 seafaring maps is supported
- (Scouting and colonization *NOT* yet implemented)
yet implemented.
- Added port buildspace tool to the editor.
- Added a new feature to list maps in the map selection menu in categories
- Added a new feature "dismantle building" allowing to recycle some of
the resource used to build the building.
- Added a new win condition "endless game (no fog)" with completely
visible map from the beginning on.
- Added two multiplayer scenarios.
- Added a big seafaring map, playable as scenario.
- Added feature to play as a random tribe or against a random tribe or
random AI.
- Added click animation for the mouse pointer
- Added automatic release of second carrier (oxen, donkey, horse), if
the road traffic is not that strong anymore, that a second carrier
would be needed.
- Added a new undo/redo feature to the Editor.
- Fixed a bug that disallowed to connect to different servers (via
metaserver) without prior restart of Widelands.
- (Re)Fixed bug #536149: miner/master miner mixed up after enhancing
to deep mine.
- Fixed bug #565406: focus for save window
- Fixed bug #570055: Open house window on doubleclick even when minimized
- Fixed bug #590528: add more details to a replay
- Fixed bug #590631: All workers die, when warehouse/hq is destroyed
- Fixed bug #594686: Roads not rendered correctly in opengl mode on
some systems
- Fixed bug #601400: Request::get_base_required_time:WARNING nr = 1 but
count is 1, which is not allowed according to the
comment for this function
- Fixed bug #649037: Many menus are not repainted in OpenGL mode
- Fixed bug #657266: Unoccupied helmsmithy animation contains a person
- Fixed bug #671485: Aged barbarian ware icons
- Fixed bug #672085: New stock menu layout too high for small resolutions
- Fixed bug #672098: The priority buttons can be deactivated
- Fixed bug #674848: The fight against red player in barbarian tutorial 3
can be won in just one fight
- Fixed bug #683716: Better handling of "no ressources"
- Fixed bug #691928: Message icon is not updated in some cases when
receiving focus
- Fixed bug #695035: Adjusted hotspots of buildings to fit into their space
- Fixed bug #702011: Messages in multiplayer are translated by host
before they are sent to client
- Fixed bug #722196: OpenGL terrain renderer does not dither between
adjacent fields
- Fixed bug #722793: Ducks on land on Three Warriors
- Fixed bug #722796: Minimap not shaded by terrain height in OpenGL
- Fixed bug #723112: The name is not shown for resource coal in the
resource dialog in the editor
- Fixed bug #726699: Make the wares priority buttons in production sites
more intuitive
- Fixed bug #734409: campaign texts about enhancing metalworks
- Fixed bug #731474: Barbarian buildings looking strange when covered
by fog of war
- Fixed bug #738888: Two sentences in game tips are only partly translatable
- Fixed bug #741142: Empire Tut 2 - missing event when barbarians
are detected
- Fixed bug #768828: Fixed the random height tool window in the editor
- Fixed bug #768854: Messages for win condition "Territorial Lord" is not
translated, even though translations exist
- Fixed bug #771962: Alphabetically sorted ware help in translations
- Fixed bug #772003: Bakingtray use the peel icon
- Fixed bug #775132: build-16 Failed to initialize SDL, no valid video driver
- Fixed bug #779967: Text alignment on "Host a new game"
- Fixed bug #786243: Add extra column to stock windows, if size would be to
big for the current screen resolution
- Fixed bug #787365: Constr.Site & Prod.Site: Dim House Picture In
The Background
- Fixed bug #787508: Remove use of barbarian stronghold
- Fixed bug #791421: Editor: Map Options Editbox Keyboard Input
- Fixed bug #795457: focus in chat window
- Fixed bug #799201: New tab icon for workers list
- Fixed bug #805089: Check client in chat commands, when first mentioned.
- Fixed bug #808008: Delete outdated data when updating Widelands on Windows
- Fixed bug #817078: "Watch window" should centre more suitably
- Fixed bug #818784: display player names in status messages when playing
collectors
- Fixed bug #842960: Original building site graphic is visible during
construction sequence
- Fixed bug #852434: no game tips on loading screen as host
- Fixed bug #853217: start multiplayer game with all slots closed
- Fixed bug #855975: Atlantean bakery jumping up, when start working
- Fixed bug #859079: Warning about files (pngs) not found when
starting a new game
- Fixed bug #859081: Dialog briefly shown when clicking in the fog of war
- Fixed bug #865995: Allied soldiers fight when they meet on the battlefield
- Fixed bug #870129: highlighted message can not be marked
- Fixed bug #871401: WaresQueue stock level configuration is ignored
when work fails in Productionsites
- Fixed bug #877710: [windows] window title shows "not responding"
when loading a map
- Fixed bug #884966: Not able to prioritize top row (pita bread) in
battle arena
- Fixed bug #886493: Default AI is set to none
- Fixed bug #886572: After a while, increasing game speed makes the game
lag even at lower speeds
- Fixed bug #887093: Make OpenGL the standard renderer
- Fixed bug #902765: Show buttons in the bottom toolbar in the same
order, also for spectators
- Fixed bug #902823: Show "increase/decrease capacity" buttons only
in "soldiers" tab
- Fixed bug #912486: Maximum FPS button overlaps language list in options
on higher resolutions
- Fixed bug #914462: possible bug in void BulldozeConfirm::think()
- Fixed bug #924140: assertion failed if you press "up/down" button in
an empty message window
- Fixed bug #924768: Rework barbarian barrier's statistics
- Fixed bug #927110: font color not adapted to map color
## Build 16
- Many new graphics, new sounds.
- Added a dedicated server function for terminal use.
- Improved and refactored font handler.
- Removed barbarian Stronghold from list of buildable military sites as
it did not have a real purpose.
- Added a help button + window function (e.g. to explain the multi player
menu).
- Play a fanfare when a military site gets occupied and another fanfare
when the player is under attack
- Reworked the multi player launch game menu - now different clients can
control the same in game player together (share the kingdom) and other
starting positions can be "shared" in as second (third, fourth, ...)
starting position of a player.
- Add a new Atlantean campaign map.
- Add rudimentary support for ships (you can build them, but they are not yet
useful)
- Add support for multiplayer scenarios. No scenario is shipped yet though.
- Added column for the maximal number of players to the map selection menu.
- Reordered wares and workers in logical groups (e.g. food production, ...).
Also fix the Economy Preferences Menu to be similar to the new Warehouse
windows.
- Barbarian lumberjacks now need a felling_axe which is produce in the metal
workshop. The axe is now only produced in the war mill and the axe factory.
This delays barbarian soldier production in the early game, giving the other
tribes more time to equalize their military production. (bug #667286)
- Give Empire +1 basket so that two vineyards can be build right away to fully
saturate the first marble mine.
- Buttons that represent a toggable state are now really toggable buttons in
the user interface.
- Changed the way compressed files are generated (maps, savegames) and read.
Now it is possible to rename maps and savegames but it is not possible
to load maps from version after this change with versions before this change
- Added a dotted frame border to the mini map.
- Work area preview is now on by default.
- New maps: Desert Tournament, Swamp Monks.
- Improved and added many new animations for workers
- Improved and added fighting animations for soldiers
- Implemented teamview for allied players
- Implemented shared kingdom mode, where two or more players control the same
player.
- Added two new maps.
- Added possibility to create and play multiplayer scenarios.
- Do not show building statistic informations of opposing players anymore
- Gave foresters more intelligence - now they do not remove young trees to
replant another anymore and plant the trees that suit the terrain the best.
- Added host commands like /announce, /kick, ... (type /help in chat window
to get a list of available commands).
- Improved defaultAI's behaviour.
- Added "real" work animations for builders and play "idle" animation, if
the builder has nothing to do.
- Made Empire baracks more useful.
- Added player number user interface and automatic start position placement in
random generated maps.
- Improved the heigth generation algorithm of the map autogenerator to produce
more playable maps.
- Added notification messages for players, when military sites are occupied.
- Added teams (alliances can now be defined before start)
- Now the builder does nomore cause the finished building to see its vision
range.
- Many improvements of the graphic rendering engine
- Implemented "stop storing", "out source", "prefare ware" settings for
warehouses.
- Improved military site's and training site's user interface.
- Improved health bar and level icons for soldiers.
- Improved all exisiting campaigns to use lua.
- Added an interactive "start from no knowledge" tutorial.
- Added new music tracks.
- Added winning conditions (endless game, autocrat, collectors, land lord,
wood gnome).
- Added basic opengl rendering support.
- Added many new and improved exisiting translations.
- Removed unused medic code.
- Reduced healing rate of soldiers.
- New keyboard shortcuts for the message window: N, G, Delete.
- New keyboard shortcuts for quick navigation: comma, period, and (Ctrl+)0-9.
- Experience required by workers per level is no longer random.
- Made the empire barracks a little more useful.
- Improved stock menu: Use tabs and add warehouse-only tabs.
- Changed the boss key from F10 to Ctrl+F10.
- Story Message Boxes are nomore closed by right clicking.
- Added command line option to tell Widelands where to search for translations.
- Improved some of the exisiting maps.
- Improved the "user friendly" compile script and moved it to compile.sh
- Fixed the translation system - users should now be able to select any
compiled and installed translation of Widelands.
- Removed scons and replaced it with cmake.
- Fixed two potential security issues (internet gaming)
- Fixed bug #729772: Selection of Widelands.ttf via options menu
- Fixed bug #687342: No longer complain when a master miner is transferred to
a mine to fill a junior position.
- Fixed bug #612348: Soldiers always move out of buildings to battle
- Fixed bug #670980: Cmd_EnemyFlagAction::Write handles disappeared flag
- Fixed bug #697375: Handle state.coords == Null() correctly in soldier attack code
- Fixed bug #691909: Compatibility with old savegames with barbarian battlearena
- Fixed bug #722789: Always flush animations before loading
- Fixed bug #724169: Military site window no longer changes size erratically
- Fixed bug #708328: infinite loop(s) in building_statistics_menu.cc
- Fixed bug #720338: Options show wrong resulution as selected if no
~/.widelands/conf exists
- Fixed bug #536149: miner/master miner mixed up after enhancing to deep mine
- Fixed bug #580073: Objectives menu update
- Fixed bug #695735: Scrollbar damaged in multiline textboxes in (unique)
windows in FS menu
- Fixed bug #659884: Problem with network savegame loading under windows
- Fixed bug #683082: copy constructor should take const argument
- Fixed bug #669085: Wood Lance (Empire ware) is practically invisible
in ware encyclopedia
- Fixed bug #680207: Economy settings missing ores
- Fixed bug #583985 and #573863: Scout did not work as it was supposed to.
- Fixed bug #618449: [fetchfromflag] - building dissappeared.
- Fixed bug #537392: Computerplayer does not adhere to currently allowed
buildings.
- Fixed bug #547090: Make barbarian weaving mill not buildable.
- Fixed bug #577891: Make atlantean small tower less strong.
- Fixed bug #615891: Commandline parameters homedir and datadir parsing.
- Fixed bug #554290: GGZ game hosting on windows was not working before.
- Fixed bug #533245: Buildings statistics were not calculated correctly.
- Fixed some filesystem bugs.
- Fixed desync bug #590458 and allowed syncstream writing without replay writing
- Fixed replay bug when using recursive destroy (pressing Ctrl while destroying)
- Fixed remaining "tabard cycling" problem and cleanup related to recent economy
changes.
- Fixed bug #577247: When constructionsite finishes, set builder's location to
the new building.
- Fixed bug #580377: Member function defined in .cc file should not be declared
inline.
- Fix bug with nosound option.
- Fixed language list, to only show the found languages - that way it should be
clearer to the user, in case when translations were not compiled.
- Fixed directory browsing in Map save dialog of the editor.
- Fixed bug #568371: Stray numbers in player table in GGZ menu.
- Fixed bug #536373: Race between "transfer" and "cancel" signals.
- Fixed bug #569737: Failed assert when trying to overwrite save
- Fixed bug #568373: Removed flag display in the building statistic menu
- Fixed many other bugs.
## Build 15
- Removed registering functionality for metaserver. This is to be compatible
with future changes to the metaserver.
- Small text tweaks and translation updates.
- New graphics for some buildings and menu pics.
- Fix for Multiline Editboxes that could lead the Editor to crash.
- Scout runs a little longer to make it more useful.
- Fixed descyns happening when a scout left his house in network games.
- Healthy soldiers defend while injured ones heal at MilitarySite (bzr:5084)
- Fixed bug when PM is send to the player hosting a network game.
- Fishbreeder no longer complains about no fish found.
- Conquered buildings now appear in statistics.
- Improvements in the build_and_run.sh script and cmake building in general.
- Sound & Music system is now thread safe.
- Win 32 bug fix: Mine symbols were not visible in VC++ builds.
- Fix defending soldiers making invisible and freezing battles.
- Support for building with Visual Studio
- New graphics for some buildings
- Added second carrier type for busy roads (donkeys, oxen, horses)
- Changed localization structure so that we can translate from launchpad.net
- Cmake is now a supported build system
- Lua support (preliminary)
- Fix bug that when a worker program had a createitem command where the
parameter was not the name of a ware type in the tribe, the game would fail
an assertion when the command was executed. Now throw an exception when the
command is parsed. (svn:r4847)
- Implement a the "scout" command in worker programs. Add a worker type "scout"
to each tribe. Such a worker type typically lives in a small house/hut
(productionsite). The productionsite's work program typically consists of a
sleep period, consumption of some food, and sending the worker out to explore
nodes that have never been seen before or not seen recently. (svn:r4840,
svn:r4841, svn:r4843, svn:r4844, svn:r4845)
- In the chat, doubleclicking a username will add @username so that the text
that is written after will be sent as a personal message to that user.
(svn:r4832)
- Implemented double size zoom mode for minimap (svn:r4820, svn:r4821)
- Added login/register menu for games via metaserver (svn:r4818, svn:r4819)
- Added a small scenario part to "The Green Plateau" map (svn:r4808, svn:r4810)
- Improve map select menu - now the "play as scenario" checkbox is only usable,
if the selected map is playable as scenario (= if a file "trigger" exists).
Further it shows a special icon for scenario maps for a direct indication.
(svn:r4807)
- Added new event "seeall" allowing to switch see all mode of a player to
on/off. (svn:r4804, svn:r4878)
- In productionsite programs: Generalize failure handling method to result
handling method. Depending on the result of the called program, the calling
program can now return failed, completed or skipped. It can also chose to
continue execution or repeat the call. (svn:r4781)
- Added new loading screens for Desert, Greenland and Winterland. (svn:r4778,
svn:r4816)
- Improved Battle code
- Added support for soldier combat animations (svn:r4772)
- Let soldiers retreat, when they are injured. Let the player configure in
the game how injured they have to be to retreat. Make it configurable in
scenarios and initializations to what extent a player should be able to
configure this feature during the game. (svn:r4796, svn:r4812)
- New attack user interface (svn:r4802, svn:r4803, svn:r4813)
- Fix bug that if a user sent a private chat message to himself, the nethost
delivered it to him twice. (svn:r4764)
- Added a new map 'Atoll' (svn:r4755)
- Add the production program return condition type "site has" that takes a
group (just like the consume command). Now it is possible to have a statement
"return=failed unless site has bread,fish,meat:4". (svn:r4750)
- When parsing a consume group, check that the count is not so large that the
group can not be fulfilled by the site. For example if a site has "[inputs]"
"smoked_fish=6", "smoked_meat=6" and a program has a consume command with the
group "smoked_fish,smoked_meat:13" it will give an error message (previously
it was just accepted silently). (svn:r4750)
- Fix bug that prevented parsing of a negation condition in a production
program return statement. (svn:r4748)
- Change some productionsites to produce even if the product is not needed, if
none of the inputs nor the site's capacity are needed either, so that wares
of a more refined type are available when they are needed in the future.
(svn:r4746, svn:r4748, svn:r4751)
- Fix broken logic of productionsite program's return command's when-condition.
(svn:r4745)
- Show in the statistics string why a building is not working. (svn:r4744)
- When a productionsite program has been skipped, do not start it again until
at least 10 seconds have passed, to avoid slowing down the simulation. The
drawback is that it may take longer time until the productionsite discovers
that it should produce something (for example because the amount of a ware
type dropped below the target quantity). (svn:r4743)
- Fix bug that 40 characters was read from a file into a buffer that was used
as a 0-terminated string (the building statistics string). This worked as
long as the file provided the 0-terminator. Now make sure that the buffer is
0-terminated regardless of what the file contains. Previously the whole
buffer was written (including the garbage after the terminator). Now only
write the real content. (svn:r4742)
- Fix the editor's trigger time option menu. (svn:r4740)
- Fix the map Sun of fire so that there is no longer possible to walk (attack)
along the coast between players 4 and 5.
- Improvements in replay handling to save diskspace (svn:r4719, svn:r4720)
- Only write syncstreams in multiplayer games
- Delete old (definable) replay files and syncstreams at startup
- Replace the event type that allows or forbids a building type for a player
with 2 separate event types (for allow and forbid respectively). They can
handle multiple building types in the same event and the configuration dialog
is more complete, with icons for the building types. (svn:r4717)
- Implement event types to set the frontier/flag style of a player (can also be
used in initializations). Also implement configuration dialogs for those
event types. (svn:r4709, svn:r4715).
- Change the code so victorious soldiers conquer an opposing militarysite,
instead of destroying it. (svn:r4706 - svn:r4711, svn:r4724, svn:r4727,
svn:r4731, svn:r4732, svn:r4822, svn:r4839)
- Fix bug that caused undenfined behaviour, particularly segmentations faults in
64-bit optimized builds. (svn:r4702)
- Improve player's message queue: (svn:r4698)
- Add only important and not doubled messages.
- Play a sound, if a new message arrives.
- Play special sounds at special events (e.g. "You are under attack")
- Fix bug that a savegame, with a flag on a node that was not interior to the
flag's owner, could be loaded. (svn:r4695)
- Fix bug that a scenario game could be started from a map, where a player did
not have a starting position, causing a failed assertion when trying to
center the view on the player's home location. (svn:r4694)
- Fix out-of-bounds array access bug in network game lobby code. (svn:r4676)
- Fix bug that panel_snap_distance and border_snap_distance were mixed up when
initializing the spinboxes in the options menu. (svn:r4665)
- Fix crash when trying to use the editor to add an event, of type
conquer_area, with the same name as an existing event. (svn:r4655)
- Fix a bug in ids of autogenerated maps and add automatic resource, immovable
and critter placement to the automatic map generation feature. (svn:r4651,
svn:r4679)
- Fix bug that a savegame, with flags on neighbouring map nodes, could be
loaded, leading to errors later on (for example when trying to build a 1-step
road between them). (svn:r4621)
- Fix bug that a savegame, where a flag was placed on one map node but later
was given the coordinates of another map node, could be loaded, leading to
errors later on. (svn:r4620)
- Added more stones to the Elven Forests map. (svn:r4612)
- Improved the selection of which warehouse a produced ware should be
transported to. (svn:r4609)
- Add new music. (svn:r4602, svn:r4611)
- Change the reporting of an error that is found in game data (savegame,
command log, world/tribe definitions) whenever such game data is read (for
example when a replay or new or saved game is started or a new or saved map
is loaded in the editor). Do not include source code filename:linenumber
information (just explain what is wrong with the game data that the user
tried to load). Return to where the user tried to load the game data
(menu/shell). (svn:r4600)
- Fix bug that sometimes a warehouse did not provide a carrier to fulfill a
request when it should. (svn:r4599)
- Change bob movement by eliminating a 10 ms pause before starting to move
along an edge. The game logic could fail and throw an exception if a bob was
moving along a road and the road was split during those 10 ms. Unfortunately
this fix breaks each old savegame with a bob that happens to be in this
state. (svn:r4597)
- Fix memory leaks. (svn:r4567, svn:r4671, svn:r4672, svn:r4673, svn:r4674,
svn:r4675, svn:r4677, svn:r4681, svn:r4682, svn:r4756)
- Fix bug that when the editor's map options window was opened and the map's
description was shorter than a certain length (different for different
locales), the program would crash when a letter was typed in the description
multilineeditbox. (svn:r4563)
## Build 14
- Fix bug that the Firegames map had no water. (svn:r4533)
- New tree and stone graphics for the Blackland world. (svn:r4525, svn:r4526,
svn:r4527, svn:r4528, svn:r4529)
- Fix bug that the Atlantean and Empire Hunter's Houses were not shown as meat
producers in the ware encyclopedia. (svn:r4521)
- Fix bug that in the new event/trigger dialogs, the Ok button was enabled even
when an event/trigger type was selected, for which no options window is
implemented. Nothing happened when the button was pressed. Now the button is
disabled and a note is shown, explaining that an event/trigger of this type
must be created by editing the text files (with a regular text editor instead
of the Widelands editor). (svn:r4512)
- Fix bug that when a ware was waiting at a flag, and the next flag or building
that the ware was waiting to be taken to was removed, anyting could happen
(because of a dangling pointer). (svn:r4508)
- Fix usability problem that accidentally double-clicking on a road could
remove it. (Previously, when clicking on a node that had a road, but a flag
could not be placed there, the mouse cursor would be placed over the button
to remove the road, in the dialog that was opened. Now place the mouse cursor
over the tab icon instead in that case.) (svn:r4490)
- When entering automatic roadbuilding mode after creation of a non-connected
flag, move the mouse cursor to the flag, to offer optimal conditions to
either start building a road, in any direction from that flag, or directly
click on the flag to stop building the road. (svn:r4489)
- Give more progress information during editor startup by showing a message for
each tribe that is being loaded. (svn:r4488)
- When a progress indicator has been shown during animation loading, remove the
message "Loading animations: 99%" afterwards, so that the user is not mislead
to believe that animation loading is still going on, when in fact something
else is taking time. (svn:r4486)
- Some "plastic surgeries" on editor menus.
(svn:r4481, svn:r4482, svn:r4483, svn:r4484, svn:r4485)
- Fix bug that in the editor's event menu, the buttons to change and delete an
event chain where enabled even when no event chain was selected in the list.
This caused a crash when any of the 2 buttons was clicked. (svn:r4480)
- Make sure that every soldier battle property that is loaded from a savegame
and is not compatible with the soldier's type's definition is adjusted to the
nearest valid value. This makes changes to a soldier type's battle properties
affect preexisting savegames when they are loaded with the changed game data.
(svn:r4479)
- Fix bug that a soldier without hitpoints could be loaded from a savegame.
(svn:r4478)
- Fix memory access error caused by a value read from a savegame being used as
an array index without being checked. (svn:r4477)
- Fix null pointer dereference that could be caused by an invalid savegame.
(svn:r4475)
- Fix bug that if a savegame contained a soldier with
max hitpoints < current hitpoints, it was not detected as an error.
(svn:r4474)
- Fix bug that when loading (from a savegame) a bob (such as a worker or wild
animal) that was walking along an edge between 2 neighbouring nodes, it was
not checked that the start time was before the end time. (Both times are
stored in savegames.) (svn:r4470)
- Fix bug that when a military-/trainingsite was loaded from a savegame, it was
not checked whether the configured capacity was within the range of allowed
values, as defined in the site's type. Do not reject the savegame if the
value is outside the range, since the definition may have changed and the
user wants to load the game anyway. Just warn and adjust the variable to the
nearest valid value. (svn:r4468, svn:r4469)
- Fix bug that the parsing of a worker type would allow
max_experience < min_experience. (svn:r4467)
- Fix wrong calculation of the amount of experience that a worker needs to
change its type. The value is chosen randomly in an interval, from
min_experience to max_experience, specified in the soldier's type's
definition. But the calculation had an off-by-one error that caused the value
to never become max_experience, and worse, crash with a division by 0 when
min_experience = max_experience. (svn:r4466)
- Fix bug that the game loading code would accept a soldier with
max_attack < min_attack. (svn:r4465)
- Fix bug that the parsing of a soldier type would allow
max_attack < min_attack. (svn:r4464)
- Fix wrong calculation of a soldier's attack value during battle. The value is
chosen randomly in an interval, from min_attack to max_attack. But the
calculation had an off-by-two error that caused the value to never become
max_attack or max_attack - 1, and worse, crash with a division by 0 when
min_attack + 1 = max_attack. (svn:r4463)
- Fix wrong calculation of a soldier's maximum hitpoints during its creation.
The value is chosen randomly in an interval, from min_hp to max_hp, specified
in the soldier's type's definition. But the calculation had an off-by-one
error that caused the value to never become max_hp, and worse, crash with a
division by 0 when min_hp = max_hp. (svn:r4462)
- Fix bug that a corrupt savegame could cause gametime to go backwards (a
!GameLogicCommand could have a duetime in the past without being detected as
corrupt during load). (svn:r4460)
- Fix invalid memory access bug (causisng random behaviour) when a section file
inside a zip-archive was missing a newline at the end. (svn:r4443)
- Fix bug that trigger building could count large buildings sevaral times
because they occupy several nodes on the map. (svn:r4441)
- Added Italian translation (svn:r4435, svn:r4436)
- Fix drawing of text with non-latin1 characters. (svn:r4421)
- When a soldier steps outside his territory during attack, he searches for
militarysites with defenders. Previously he chose them from any other player.
Now only choose defenders from the player whose territory the soldier steps
on. (svn:r4410)
- Exit with an error when incompatible command line parameters are given,
instead of ignoring it. (svn:r4406)
- Allow starting a replay from the command line by giving the --replay=FILENAME
parameter. If just --replay is given, the program goes directly to the replay
file selection menu. (svn:r4405)
- Fix display of multiline editoboxes when the text has more than one
consecutive linebreak. (svn:r4395)
- Fix navigation in multiline editboxes. When the last line was empty and the
text cursor was at the end of the line above, it was not possible to move the
cursor to the last line with the down arrow key. (svn:r4394)
- Fix bug that the text cursor was not visible when at the beginning of a line
(in a single- or multiline editbox). (svn:r4393).
- Give spectators (see-only) access to the building and economy configuration
windows. Same for players with see-all right (debug builds). (svn:r4380,
svn:r4399)
- When a soldier can not move to its opponent during an attack, do not give up
and quit the program. Instead, let the soldier desert without punishment.
Notify the 2 involved players by adding a message to their message queues and
pausing the game. Also pause and give a message when a worker can not return
home to his building and therefore becomes a fugitive. (svn:r4378)
- Fix bug that the in-/decrease buttons in the editor's noise height options
menu were not repeating. (svn:r4459)
- Fix bug that the buttons in the editor's change resources options menu were
not properly disabled. (svn:r4458)
- Fix bug that the traingingsite window soldier buttons (drop selected soldier,
decrease soldier capacity and increase capacity) were not properly disabled
and that the latter 2 were not repeating. (svn:r4373)
- Fix bug that the building window background graphic was not drawn with
correct playercolour. (svn:r4369)
- Fix bug that buildings that were behind fog were not drawn with correct
playercolour. (svn:r4367)
- Fix bug in buildcaps calculation. Sometimes it was possible to build a large
building at location A and then build a large building at location B. But if
a large building was built at location B first, it was no longer possible to
build a large building at location A. (svn:r4366)
- Fix bug that the content of the interactive player data packet in a savegame
was used without being checked properly, which could lead to a segmentation
fault. (svn:r4353)
- Fix bug in the editor that it was possible to remove a player even though
it was referenced by someting (such as an event or trigger). (svn:r4339)
- Fix bug that for a worker type, an experience value was read and used even
though the worker type could not become some other worker type. (svn:r4328)
- Make the config file format somewhat stricter. Do not allow // comments and
require a section header to be closed with a ']'. (svn:r4285, svn:r4298)
- No longer look for bmp an gif images when searching for animation frames.
This should make animation loading a little faster. (svn:r4278)
- Added and improved some buildings and workers animations (different svn rev.)
- Many graphic system updates including experimental hardware improvements
(many different svn rev.)
- Implemented very basic "dedicated" server (many different svn rev.)
- Improved chat system:
- Added personal messages (use "@username message") (svn:r4186)
- Added a time string in front of each message (svn:r4253)
- Implemented metaserver lobby for internet game (many different svn rev.)
- Implemented check of free diskspace to avoid segfaults (different svn rev.)
- Added new ware icons. (svn:r4152, svn:r4250, svn:r4471)
- Implemented versioning system to avoid that Widelands loads data of old
Widelands versions. (svn:r4133)
- Implemented basic "generate random map" feature. (svn:r4113)
- Implemented basic messaging system to inform players of important events.
(many different svn rev.)
- Improved computer player behaviour (many different svn rev.)
- Computer player should now be able to build up a working infrastructure
(including mining, tools and weapons production and soldier training) and
to attack and defeat their enemies.
- Users are now able, to select the type of a computer player. The
available types are: Aggressive, Normal, Defensive and None. First three
are based upon the improved AI and only behave different in case of
attacking strength and expansion, while latter does simply nothing.
- It is now possible to define the computer player type for camapign maps.
- Throw out the bundled version of scons. Scons is widely available by now and
the bundled version caused more trouble than it was worth: many
incompatibilities, where a distribution-supplied version would have worked
(svn:r3929)
- Fix bug #2351257 - wrong game tips are shown. (svn:r3808)
- Some improvements of tribes economy and soldier balance (svn:r3793,
svn:r3796)
- Added third barbarian campaign (svn:r3790) and improved the already existing
ones (svn:r3775, svn:r3788)
- Added a new trigger for scenario maps: Player defeated (svn:r3789)
- In the editor save dialog; initialize the name box with the map name and do
not react (for example by playing a sound) to clicks in the empty area below
the last file in the listbox (affects all listboxes in the UI). (svn:r3783)
- Fix bug in build13 that the editor save dialog would use the name of the list
item from the second last (instead of the last) click. (svn:r3781)
- Added an editor tool to set a new origin in the map. This will make it
possible to get an island properly centered, instead of divided in 4 corners
when a minimap is generated with an external tool, such as the one used in
the [map download section](http://wl.widelands.org/maps/). The button that
enables the tool is in the map options dialog. (svn:r3778)
- Allow longer text for a world's name and author (to avoid having it cut off
like "The Widelands Development Tea"). (svn:r3777)
- Do not crash when writing an empty file. (svn:r3773)
- Added two new in game and one new menu song. (svn:r3758, svn:r3800)
- Make more configuration options configurable in the options menu. (svn:r2753)
- Fix bugs in the S2 map loader. Trying to load an invalid file could cause
failed assertions in debug builds and probably other bugs in release builds.
(svn:r3750)
- Added new loading screens for winterland and for barbarian campaigns.
(svn:r3748, svn:r3797)
- Allow configuring which information about a building is shown in the
mapview's building census and statistics displays and the building window
title. (svn:r3741)
- Added colorized chatmessages. (svn:r3725)
- Added a lobby to the multiplayer launchgame menu. Now users are not
automatically assigned to players. Users staying in the lobby when the game
begins will become spectators. (svn:r3702, svn:r3703, svn:r3707, svn:r3709,
svn:r3710)
- Fix the map Dry Riverbed so that the mountain pass is passable in both
directions. (svn:r4335)
- Improved the map Plateau so that the players can reach the center even if
another player is fortified there. This is achieved by allowing large
buildings at a few more places in the valleys leading from the starting
positions to the center. Also add some wiese1 (terrain type), which was not
used at all on this map before. Make some small adjustments to the node
heights in the small valley just east of player 1's starting position, so
that the valley becomes more useful. (svn:r3713, svn:r4361, svn:r4362)
- Added two new maps "Twinkling Waves" and "The ancient sun of fire".
(svn:r3689, svn:r4119)
- Fix bug that the editor toolsize menu was not updated when the toolsize was
changed with the keyboard shortcuts. (svn:r3675)
- Implement feature request #1792180 - Allow user to change starting-position.
(svn:r3666, svn:r3667, svn:r3668)
- Editboxes now support UTF8 (unicode) characters, so the players can use their
locale language in game. (svn:r3662, svn:r4398)
- Improve the output of _widelands --help_. (svn:r3660)
- Add a new terrain type, corresponding to Greenland's bergwiese, to Desert.
(svn:r3659)
- Workers that search for an object now prefer one of the nearest. Therefore
they spend less time walking and more time harvesting. (svn:r3658)
- Fix bug that in the military-/trainingsite windows, the name (untranslated)
of the soldier type was shown instead of the descname (translated).
(svn:r3645)
- Fix bug that in the trainingsite window, the ware priority buttons were not
updated. (svn:r3642)
- Fix bug that in the trainingsite window, the column _total level_ was not
sorted correctly for 2-digit values (10 was sorted between 1 and 2).
(svn:r3641)
- Fix bug that when the user typed in the editor's map description input
fields, the world was reparsed on every keystroke, which caused a delay.
(svn:r3640)
- Fix bug that when the loading of a tribe failed, the error message was
insufficient. (svn:r3639)
- Fix bug related to land ownership and military influence when a soldier
arrived to a trainingsite. (svn:r3701)
- Fix bug related to land ownership and military influence when an
event_building was executed. (svn:r3636, svn:r3637)
- Fix bug that when a \_pc-file was missing for an animation frame, the program
did not make it clear that it was the \_pc-file that was missing (the user
was lead to think that it was the main file of the animation frame).
(svn:r3623)
- Fix bugs in the maps _Mystical Maze_ and _Three Warriors_: update tribe name
to _atlanteans_. (svn:r3609, svn:r3612)
- Change the Atlantean Weaponsmithy's program Produce Light Trident to consume
iron (in addition to planks). This makes it necessary to mine iron ore to
produce soldiers, which makes it more difficult to win against the other
tribes (who also require iron for making soldiers) (svn:r3718)
- Fix bug in build13 that the Atlantean Labyrinth's program Upgrade Evade 1
could consume bread and then fail. (svn:r3714)
- Add demand check to _Cloth_ production in _Empire_ _Weaving Mill_.
(svn:r3604)
- Add a program that produces an axe to the Barbarian Metalworks. (svn:r3717)
- Simplify the stoppability rules of building types. Only productionsites are
stoppable. A productionsite type is a stoppable if and only if it is not a
militarysite type. Get rid of the config option to make a building type
stoppable (many building types had "stopable=yes" in their conf-file). Also
get rid of the config options to set custom stop/continue icons for each
building type (this was not used in any of the building types that are
included in the Widelands releases). It is no longer possible to stop a
constructionsite so that the finished building will be set to stopped.
(svn:r3723)
- Get rid of event numbers in event chains. This removes the maximum limit of
99 events in an !EventChain. It also makes diffs much smaller when an event
is inserted, because now the following events do not need to be renumbered.
(svn:r3600)
- For the statistics string of a trainingsite (shown in the mapview near the
trainingsite when S has been pressed), replace strings like "upgrade_evade_0"
(untranslated) with strings like "Upgrade evade 0" (translated). (svn:r3595)
- Fix bugs that ware/worker types were identified by their temporary index
value instead of their permanent name in some places in savegames. The
temporary index values may not be the same when the game is loaded again,
while type names should be the same. (svn:r3593, svn:r4343)
- Implement automatic recursive road removal. When a player holds down Ctrl
when ordering (or confirming, if applicable) the removal of flag or road, do
a recursive removal. If a road removal command is given with the recursive
option, all roads between the start and end flags are removed. Then those
flags that become dead ends are removed recursively. A flag is a dead end if
it does not have a building and roads to at most 1 other flag. (svn:r3591)
- Make immovable animation times random. (svn:r3635)
- Implement natural reproduction for trees. Instead of just growing up and then
idling forever, they seed new trees and eventually die. Dead trees disappear
after a while. Different tree species have different advantages on different
terrain types. This makes it possible for several tree species to survive by
occupying different niches. Increase the working radius of
woodcutters/lumberjacks from 8 to 10. This makes it easier to cover large
areas with a few of them. This is now recommended to keep an area clear of
trees. (svn:r3591, svn:r3610, svn:r3735, svn:r3786, svn:r3828)
- Forbid immovable programs to have transform commands that replace an
immovable with one of the same type. (svn:r3647)
- Get rid of line numbers in immovable programs. (svn:r3591)
- In the worker list window of productionsites; if a worker is missing, show
"(vacant)" if the request for it is open and "(coming)" if the request is in
transfer. (svn:r3591)
- Create a few different player initializations and allow choosing one for each
player when the game is configured. The default initialization is a
headquarters with the usual set of wares/workers/soldiers, so the default
behaviour is unchanged. There is another player initialization called
castle_village that creates a castle (or citadell, depending on tribe) and a
village around it with a warehouse loaded with some wares/workers/soldiers
and some basic production and training buildings. (svn:r3629)
- Do not automatically create a headquarters for each player in scenarios. This
must now be done explicitly with events. Change the existing scenarios
accordingly (and use new headquarter graphics in some of them). (svn:r3591,
svn:r3617, svn:r3737, svn:r4249, svn:r4299)
- Implemented logic for finding a suitable location for a building that will be
created with an event. (svn:r3629)
- When a warehouse is created through an event, allow configuring exactly how
many of each type of ware, worker and soldier that should be created with the
warehouse. (svn:r3591)
- When a productionsite is created through an event, allow configuring exactly
which of the wares and workers that should be created with the
productionsite. (svn:r3591, svn:r3630)
- When a military-/trainingsite is created through an event, allow configuring
exactly how many soldiers at each combination of strength levels that should
be created with the site. (svn:r3628, svn:r3629)
- The builder does no longer enter the building and see the surroundings for a
moment when he has completed the construction. Instead he leaves directly.
(svn:r3590)
- Added new portrait pictures for the campaign maps (svn:r3581, svn:r3632)
- Allow multiple AI implementations (svn:r3574)
- Implement a debug console and add a "switchplayer" command (svn:r3573,
svn:r4370, svn:r4371)
- Fix bug that the back buttons in the campaign selection UI had the wrong
background. (svn:r3619)
- Improvements of full screen menu UI (svn:r3579, svn:r3581)
- Make fullscreen menus dynamic resizable. Now the menus use the same
resolution as the whole game. Still the resolution must be saved in the
config, so it is not yet possible to resize via mouse.
- Clean up menu design, make some menus more straight and intuitive and
follow the same alignment in similar menus.
- Add note to intro screen, so players are not confused anymore, whether
Widelands is still loading.
- Introduce config option and commandline parameter "ui_font". This option
allows the user, to use a different font in the fullscreen menus, which
can be quite important if the resolution is very low and the serif font is
nearly unreadable. Besides a path to a TTF file relative to
<widelands-data>/fonts/ the values "sans" and "serif" are accepted. If an
invalid parameter was given Widelands falls back to UI_FONT_NAME.
- Made the minimap remember its display options during the session (svn:r3572)
- Implemented generation of browsable HTML from game data. (svn:r3548)
- Made it possible to define a default target quantity for a ware type and set
target quantities in the game. (svn:r3543)
- Made Ctrl+S bring up the save game dialog in both gameplay and replay. Added
save button in replay watcher. (svn:r3542)
- Fixed Trigger_Time (and replaced Trigger_Null with it). Introduced
Event_Set_Timer. (svn:r3541, svn:r4485)
## Build 13
- Count casualties/kills, military/civilian buildings lost/defeated and present
them in the general statistics menu (except for civilian buildings defeated,
which is omitted from the user interface) (svn:r3395, svn:r3407).
- Improved map options menu (svn:r3328).
- Improved progresswindow use and added new loading screens (svn:r3249,
svn:r3253, svn:r3275, svn:r3315, svn:r3316).
- Added menu for editor to the mainmenu (svn:r3248).
- Improved save game dialog (svn:r3185, svn:r3189).
- Improved mapselect and launchgame menu (svn:r3243, svn:r3246, svn:r3247,
svn:r3283, svn:r3290).
- Improved ingame UI (svn:r3224).
- Implemented "/me" command for multiplayer chat (svn:r3223).
- Improved multiplayermenu (svn:r3218, svn:r3260, svn:r3261, svn:r3288,
svn:r3289).
- Improved optionsmenu and added possibility to set autosave interval
(svn:r3215).
- Implemented option for maximum FPS to reduce CPU-usage (svn:r3210, svn:r3213,
svn:r3214, svn:r3215, svn:r3220).
- Improved editor new map dialog (svn:r3172, svn:r3331).
- Make automatic roadbuilding mode after creation of non-connected flag
optional (svn:r3177).
- Improved production program handling (svn:r3373, svn:r3384):
- Eliminate the need for line numbers in the programs.
- Fix bug that the consume command required that all wares in a
consume-group must be of the same type. For example the command "2=consume
smoked_fish,smoked_meat 2" required 2 smoked_fish or 2 smoked_meat. Now it
will also work if there is only one of each.
- Change the syntax of a consume-group to ware1[,ware2[,...]][:quantitiy]
(for example "smoked_fish,smoked_meat:2").
- Extend the consume command to take any number of consume-groups (for
example smoked_fish,smoked_meat:2 bread:2"). This means that unless all
consume-groups can be satisfied, nothing is consumed when the command
fails. This will fix many bugs in the game data where programs had for
example "2=consume smoked_fish,smoked_meat 2" and "3=consume bread 2". If
there was not 2 bread, it would consume 2 smoked_fish or 2 smoked_meat and
then fail.
- Get rid of the command check. It was only a work-around for the previously
deficient command consume (and some programs forgot to use it).
- Implement the new command return. It can return from a program. There are
3 different return values; Failed, Completed and Skipped. Only programs
returning Failed and Completed will affect statistics. A program that
reaches the end will be considered to have implicitly returned Completed.
The return command can optionally take a condition. Currently only two
conditions are supported; "economy needs ware_type" and "workers need
experience". The former will allow a program to have a command
"return=skipped unless economy needs marblecolumn". It will prevent Game
Over as a result of a production deadlock on marble when a user forgets to
turn off a stonemason for a while. This fixes the huge problem with
production deadlocks that hit every new player in their first games and
every experienced player once in a while. The condition makes a query to
the economy, which now simply checks if there is no warehouse supplies the
ware type. This can of course be made much smarter later. The latter is
used in the barbarian micro-brewery to let it practice making beer until
the brewer has become a master_brewer even if the economy does not need
any beer.
- Extend the produce command to take any number of ware types with
quantities.
- Fix the call command to validate that the called program exists. This
requires changing declaration order in some data files (for example if
"work" calls "seed", "program=seed" must come before "program=work" in the
"global" section of the productionsite definition. (However the definition
order of the programs does not matter.) This fixes the bug that a call
command may fail at run-time because the called program does not exist.
- Extend the call command with an optional error handling specification
(call=<program_name> [on failure {ignore|repeat|fail}]). It will make it
possible to ignore a failure of a called program and continue the calling
program, or repeat the failed program until it succeeds.
- Extend the sleep and animate commands. If no duration is given as the last
parameter, the return value from a previous action is used for duration.
This makes it possible to for example let the mining command calculate how
long the following sleep/animation should last, depending on ore
concentration and mining depth.
- Get rid of the set command and the associated catch and nostats flags.
- Fix the mine command to parse and validate its parameters at parse-time
instead of at run-time. This fixes the bug that the game engine could fail
with the message "Should mine resource <resource_type>, which does not
exist in world. Tribe is not compatible with world!!" at run-time the
first time a mining command is executed.
- Fix most other commands that had insufficient validation or did parsing at
run-time (for example the consume command reparsed its wares at each
execution).
- Optimize the parsing by eliminating needless string copying.
- Rename the building property "enhance_to" to "enhancement" and validate that
the given building type exists (svn:r3373).
- Improved editor handling of bobs and animals, so they can not be placed on
invalid locations (svn:r3319, svn:r3321).
- Implemented loading of savegames in multi player (svn:r3266, svn:r3270,
svn:r3271)
- Only allow attacking seen buildings (svn:r3173).
- Improved computer player behaviour (svn:r3209).
- Update and cleanup of tribes economies (svn:r3202, svn:r3203, svn:r3204,
svn:r3205, svn:r3206, svn:r3207, svn:r3211, svn:r3237, svn:r3239, svn:r3241,
svn:r3257, svn:r3258, svn:r3269, svn:r3272, svn:r3294, svn:r3307).
- Introduced automatic update of Campaign-list via campaign-menu (svn:r3197,
svn:r3198).
- Added a new in game song
- Added global objects usable in every world (svn:r3308, svn:r3310, svn:r3311).
- Added 12 new maps (9 from map contest) (svn:r3226, svn:r3298, svn:r3305).
- Added atlantean building graphics (svn:r3278, svn:r3295, svn:r3300,
svn:r3309, and many more).
- Added a lot of new sounds and integrated them in the game (svn:r3231,
svn:r3232, svn:r3415, svn:r3419, svn:r3439).
- Rework of campaign missions (svn:r3228, svn:r3233, svn:r3236, svn:r3242).
- Fix bugs in parsing of building types's buildcosts and inputs. Check that the
ware types exist and are not duplicated and that the quantities are within
range (svn:r3373).
- Fix bug in parsing of productionsite types' outputs. Check that the ware
types exist and are not duplicated (svn:r3373).
- Fix bugs in parsing of productionsite types', critter_bob types' and worker
types' programs. If a program was declared twice, it was parsed twice and the
memory used to store the first instance was leaked (svn:r3373).
- Fixed bugs with drop-soldier commands: If such a command was given and then
the game was saved before the command was executed (because the game was
paused), the command was saved incorrectly (svn:r3451, svn:r3456). And even
if the savegame would have had such a command correctly saved, the loading
code would not have recognized it (svn:r3456).
- Removed the trainingsite options window. The "Make heros" button was
suspected of being able to cause desync in network games (svn:r3452).
- Fixed bugs that attack, change-soldier-capacity and set-ware-priority
commands were not recognized when encountered in savegames (svn:r3454,
svn:r3456, svn:r3455).
- Fixed bug that set-ware-priority commands were saved as enhance-building
commands (svn:r3455).
- Change game rule: Forbid upgrading any building to any type of building. Only
allow upgrading to one of the defined enhancements. This is the behaviour
that was intended and that the user interface obeys. Now also the game logic
enforces it. This prevents users from circumventing the user interface and do
arbitrary building upgrades, which other players may consider cheating in a
network game (svn:r3457).
- Fix program crash (or worse) when a worker type was declared to have an
ingredient that had not been defined (svn:r3459).
- Forbid declaring that a building can be enhanced to its own type or the
special type constructionsite (svn:r3460, svn:r3461).
- Do not let the constructionsite crash the game if a building type did not
define a build animation. Use the idle animation instead (svn:r3462).
- Do not crash because of division by 0 when building a building without
buildcost (svn:r3462).
- When building a building without buildcost, complete it immediately instead
of never (svn:r3462).
- Check for mine and size mismatch when parsing building enhancement
definitions. This prevents crashes at run-time (svn:r3463).
- Fixed bug #1792379 - little trees set with editor do not grow (svn:r3317).
- Fixed bug #1913902 - collosseum now trains evade 0 and 1 (svn:r3303).
- Fixed bug that upgraded worker were used in buildings instead of training new
simple ones (svn:r3304).
- Fixed crossplatform network bug (win32 path on unix) (svn:r3293, svn:r3427,
svn:r3429).
- Fixed disk_filesystem handling on win32(svn:r3284, svn:r3285, svn:r3286,
svn:r3287, svn:r3291).
- Fixed strange, unwanted behaviour of multilined editboxes (svn:r3281,
svn:r3282).
- Fixed loading of settlers 2 maps in widelands (svn:r3234, svn:r3235,
svn:r3238, svn:r3250).
- Fixed bug that caused segmentation fault when executing./widelands
--editor=nonexistent_file (svn:r3335).
- Fixed bug that caused segmentation fault when executing./widelands
--scenario=nonexistent_file (svn:r3336).
- Fixed bug that caused invalid use of uninitialized memory when an animation
configuration defined playercolor=true but a mask file was missing
(svn:r3347).
- Fixed bug #1968196 - Scenario-maps are not loaded as one (svn:r3227).
- Fixed bug #1900477 - Objectives description are not translated and objective
names are not included in PO templates (svn:r3225, svn:r3229).
- Fixed hotspots of animals (svn:r3170).
- Fixed editor height tool dialogs (svn:r3171).
- Fixed language-settings-menu for Linux - now Widelands sets
system-language-variable correctly (svn:r3193, svn:r3252, svn:r3262).
- Fixed bug that prevented releasing the last soldier from a trainingsite
(svn:r3179).
- Fixed memory access errors in the game logic, causing segmentation fault or
any kind of strange undefined behaviour (svn:r3184, svn:r3365).
- Fixed bug that the game would abort if an attacking soldier could not find a
path to the target (svn:r3382).
- Fixed memory access error in save game dialog (svn:r3185).
- Fixed many memory access errors when trying to read missing sections in
configuration files (svn:r3195).
- Fixed bug that the computer player did not check if a planned large building
would be completely inside his borders (svn:r3191).
- Fixed bugs that the empire wine bush and barbarian flax and reed lived
forever, blocking the map (svn:r3190, svn:r3527).
- Fixed bug that it was possible to cheat when destroying an enhanceable
building by first ordering and upgrade and then immediately ordering the
destruction of the enhancement-constructionsite. This avoided the burning
phase, which made the space available immediately. (svn:r3513)
- Fixed bug that replay was stopped before all commands had been executed.
(svn:r3539)
## Build 12
- New feature: Additional scenario event types and trigger types.
- New feature: Flags are automatically placed when holding down Ctrl while
building a road.
- New feature: Load maps directly into the editor from the command line
(widelands --editor=<filename>).
- New feature: Navigation in edit boxes.
- New feature: Multiplayer games.
- New and greatly improved animations for a number of workers.
- New animals and new animations for existing animals.
- New singleplayer/multiplayer map.
- New tribe Atlantids.
- Improved the usability of scrollbars, listselects and tables.
- Improvements of Campaign UI (show only revealed campaigns/scenarios).
- Improvements of all single-/multiplayer maps (rebalancing resources).
- Improved the building statistics menu.
- Improved the scenarios to make use of new features.
- Improved the performance of terrain rendering.
- Improved usability of roadbuilding.
- Improved the handling of player colours.
- Improved recovery from bugs during gameplay.
- Improved the battle system.
- Fixed bugs: Several invalid memory accesses, which may have caused random
bugs, such as [#1508297 (Needed images sometimes not saved with
game)](http://sourceforge.net/tracker/index.php?func=detail&aid=1508297&group_id=40163&atid=427221).
- Fixed bug: Workers that become fugitives have a higher chance of finding back
to a warehouse. A flag connected to a warehouse must be close to the worker.
- Fixed bug that the objectives menu was not updated when objectives were
fulfilled during the game.
- Fixed bug that workers would enter a building before arriving at it (entering
it when passing the flag in front of the building). This caused the worker to
start seeing from the building too early.
- Fixed network support for direct IP and LAN games.
- Fixed many gamelogic bugs.
- Removed support for GGZ. Please use the forums and IRC channel to meet for
multiplayer games.
- Many other bugfixes, optimizations and cleanups.
## Build 11
- New feature: Game Tips during loading
- New feature: Progress message windows (Loading-screens)
- New feature: Fog of war
- New feature: Autosave (and emergency-save)
- New feature: Visible Range for bobs and buildings
- New feature: Replay-function
- New feature: volume-sliders for sound and music
- New animations for animals
- New animations for bobs (few trees are falling after they are choped)
- Improvements of the transportationsystem (f.e. ware priority-buttons)
- Improvements of the S2-Map-importation-system.
- Improvements of Multiplayercode.
- Improvements of Campaign UI
- Improvement of "growing tree patch" (seperation of different steps)
- Improvement of single-line-edit-box handling (buttons are not locked anymore)
- Improvement of Ware-image visualisation program.
- Added 2 new multiplayer maps
- Fix of bug 1633431 (Attacking headquarters crashes game.)
- Fix of bug 1451851 (Upgrade building while delievering to/from cause
crash/hang)
- Fix of bug 1690070 (ware: can not move from building A to B )
- Many other bugfixes
## Build 10
- Addition of new tribe "The Empire"
- Tribe "Barbarians" was completely overhauled
- New blender graphics for the Barbarians and the Empire by bithunter32
- New blender graphics for the Empire by !AlexiaDeath
- Addition of new worlds (Blackland, winterland and desert)
- Addition of few new maps
- Addition of two new Empire-campaign-maps
- Addition of three new ingame music-tracks
- A lot of localization-bugs were fixed and new strings for translation were added.
- Widelands now supports 14 languages (cz_CZ, de_DE, en_EN, es_ES, fi_FI,
fr_FR, gl_ES, he_HE, hu_HU, nl_NL, pl_PL, ru_RU, sk_SK, sv_SE)
- New feature: Mouse-over-hover-help
- New feature: Tribe ware encyclopedia
- Mousewheel support integrated (textarea)
- Now using new fonts (!FreeSans and !FreeSerif) licensed under GPL
- Battlecode was reworked
- Menu-resolution set to 800x600 (before 640x480) and added new splash
- Work on ingame window-system
- Richtext-handler was overhauled
- A lot of menu texts and alignments were fixed
- A lot of new button-, icon-, background- and campaign-graphics added.
- A lot of code-cleanup
- Bug fixes, bug fixes, bug fixes
## Build 9half
- Updated Campaign Missions
- Added proper localization support (language selectable in options menu)
- Font renderer now renders multiple newlines correctly and in richtext accepts
<br> as newline
- added localization patch by Josef + beginning of localization
- f now triggers fullscreen ingame
- added new maps from winterwind
- implemented new trigger system. This invalidates every scenario, campaign and
map.
- save now changes into zip files, added option nozip for debugging reasons
- save changed to save into directory
- added trigger conditionals
- Patch to fix graphic problems:
- Alpha instead of clrkey
- Fixed all bugs with !MacOSx
- Caching landscape renderer speeds things up
- Sound patch + Music
- RTF Renderer
- show workarea preview
- new font renderer
## Build 9
- Chat for multiplayer
- Global Stock, Menu structure reworked
- General statistics menu
- Building statistics menu
- Ware Statistics Menu
- Minor changes in barbarians conf files (Descnames mainly)
- added road textures
- Initial Version of game server. Only chatting.
- First version of barbarians tribe comitted
- Added training site/military patch by Raul Ferriz
- fixed "Worker Type 11 not found" bug
- new Tree Graphics from Wolfgang Weidner
- Added patch from Florian Falkner
- new Option Dialog UIListselect can have now a selection-indicator
!WatchWindow
- functionality is user selectable
- Windows can be minimized (middle mouse or Ctrl+left mouse)
- fixed crash when using 32-bit fullscreen mode under win32
## Build 8
- some UI ergonomics (new mapselect dialog,
double click function in listselects)
- resources and default resources support
- loading/saving of maps
- preliminary TT-Font support
- enhancing buildings support
- build animation support
- editor events/trigger
- editor player menu
- editor bob tool
## Build 7
- many new buildings
- improved in-game graphics
- improved in-game UI
- movement speed depends on slope of terrain
- improved watch window functionality
- improved the transport system
- added a 32 bit software renderer
- improved rendering quality
- added infrastructure for real-time in-game debugging and inspection
- various code cleanups and bug fixes
## Build 6
- graphics reworked
- added functionality for the first few buildings
- reworked transport code
- added multiselect option for editor's set texture tool
## Build 5
- added Immovable Tool in editor
- added Map_Loader support
- added support for multifield-fieldsels (for editor and to select areas)
- added height tools in the editor
- added item ware code
- added ware transportation (carriers stay on roads and can carry wares)
- construction sites are implemented
- added support for more (and most importantly: compressed) graphics formats
## Build 4
- added Warehouse options window
- added ware requests
## Build 3
- added !DirAnimations for convenience
- added Economy code
- added record/playback code
- added wares code
- added worker code
- use different background images for different menus
## Build 2
- options handling redesigned
- introduced System
- added keyboard input
- build symbols react to objects now (can not build next to stones etc...)
- only use 8 different types of trees (like Settlers 2)
- unique windows now remember their position
- improved fieldaction mouse placement for fast click-through
- new structure for tribe data
- new terrain textures
- added "fps" key to animations
- renderer uses player colors
- added flags
- added road building
- split of moving and non-moving objects in hierarchy
## Build 1
- First release
|