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
|
9 August 2001, Michal Valvoda
* Gordon's destroy_item() fix included
* Complete clean-up of dungeon.cc::give_item() + few changes
for example
- Until now was a lot of items colored twice (by give_item()
and by item_colour()) and sometimes differently
- every item goes to right MSLOT-no more MISCELLANY in MSLOT_POTION
- magical items (wands, scrolls, potions) distribution
* repel undead is working again (in turn_undead() was missing call for
behavior_event())
* added messages for rotting chunks/corpses in player's inventory
* message when Corona wears out + few other new messages
* fixed some (I hope that all) problems with "polymorph other".
As side effect of some solutions
- MONS_HUMAN and MONS_ELF are now valid and fully functional
polymorph targets
- useless MONS_ANOTHER_LAVA_THING was changed to
MONS_SALAMANDER (in case of problem switch it off in dungeon.cc,
yes, there because water and lava monsters are generated differently)
* Renamed MSLOT_UNASIGNED_I to MSLOT_MISCELLANY, added NUM_MISCELLANY
* rewrote misc. object generation to use NUM_MISCELLANY.
Not important for now but I have many new misc. objects I want to include
after release and it will help later. Also new code is much more readable
and easier to modificate.
* inteligent monsters now pick up gold
* added some new unrand artifacts
(ring of Shadows is getting a bit tired :)
* added underground rivers and lakes,
improved water generation
* 3 new compile options
#define USE_NEW_UNRANDS - switches new unrands on
#define USE_RIVERS - switches new underground rivers and lakes on
#define MISSILE_TRAILS_OFF - turns misile trails off.
- not optimal, but works well on
many computers
- defaultly unset
* other minor fixes and updates
* changes.400 updated
Notes:
! generation of water and lava monsters isn't very nice, an it would be
fine to change it one day
! spells in WIZARD mode probably should be cast with some power
BUGLIST:
LEGEND
** outstanding bug; reproduced or definitely needs fixing
xx outstanding bug report; unreproducable, currently unfixable,
or not a candidate for 4.0.0 release
== fixed and released in some form (alpha, beta, etc - see version.h)
-- fixed bug, not yet released
** Various XXX and FIXME comments throughout code from Brent.
== 1. Casting "Corona" at self shows message "The 0 hits you !" and
hurts you (same for Hibernation, maybe also other spells.)
>> fixed Corona and Hibernation. Possible that other spells still
>> allow this goofy behavior.
== 2. Dwarven hunters starts with CYAN leather armor (maybe also
others). It should be BROWN.
== 3. Missing space in message "You feel verybuoyant !" (same problem
with "You feel morebuoyant !")
== 4. No message when you quaff potion of restore abilities and nothing
happens.
> fixed by Brent?
== 5. Maybe there should be some message when you cast "Static
Discharge" and no monster around.
== 6. Inscription on "Innate abilities, Weirdness & Mutations" screen
should be centered (my fault).
== 7. Polymorph and unpolymorph messages are really odd -
e.g. I polymorphed kobold and I got message
"The stone giantThe kobold evaporates and reforms as a stone giant."
== 8. Empty ebony casket should be DARKGREY and not BLACK.
== 9. Rare weapons (quick blade, double/triple sword etc.) aren't as
rare as they should be.
> line 2006 in dungeon.cc should be 1+random(10) <= rarity
== 11. Missing space in "Elyvilondemands penance!". Of course, same
problem with other gods.
== 12. 2 messages when wearing crystal armor about that it's too
cumbersome
== 13. map under DOS is working bad - each next line is shifted by one
character
LRH - At line 1810 of view.cc, in the map function, there is a
for loop involved in printing the map. At present it's
for (i = 0; i < 79; i ++);. To work under DOS, the 79 should
be 80, otherwise the map is skewed to the left and looks
very ugly.
== 14. stoneskin isn't working - if you look at cast_stoneskin() zou
will see it does nothing with AC
> I have a fix for this - basically remove the 'else' before the
> transformation-AC-adjustment switch in player.cc::{player}_AC().
> There's another "bug" there, too, which is that the corresponding
> 'if' ought to include '|| you.attr[ATTR_TRANSFORMATION] =
TRAN_BLADE_HANDS'.
== 15. Saw "a buggy helmet"
"a buggy orange potion"
"a buggy red potion"
== 16. Buggy targeting - can't hit monsters in LOS. Could fix.. both
for throwing and beaming?
== 17. A hill Orc Chaos Knight (Zom) started with 14/15 hit points. !?
== 20.One more thing that needs cleaning: the new invisible monster code.
You don't get a message when your missile hits a monster, but you
*do* get a message when your missile *misses* an invisible monster.
IMO if we do make invisible monsters harder to detect than they
were, we ought to make these (absent) messages exactly opposite:
no message for miss, yes message for hit.
xx 21. wearing Troll Hide, read unknown scroll, ASSERT(index < SIZE) in
FixVec fails, abortion, core.
== 22. Amulet of Rage isn't auto-identified when put on, but ability is
visible in 'A' menu.
== 23. torment_monsters in spells4.cc asserts like crazy. It should have a line
like:
if (mon != NON_MONSTER) {
> fixed again; player wasn't getting hit. Not adding magic resist.
== 24. In dungeon.cc there's a huge function called builder() with some code at
the bottom that looks like this:
if ( you.where_are_you == BRANCH_HALL_OF_BLADES )
{
for (bi = 1; bi < GXM; bj++)
for (bj = 1; bj < GYM; bi++)
if ( grd[bi][bj] >= DNGN_STONE_STAIRS_DOWN_I && grd[bi][bj]
<= DNGN_ROCK_STAIRS_UP )
grd[bi][bj] = DNGN_FLOOR;
}
The increment in the for loops should be swapped.
== 25. A backtrace does indeed reveal the problem. From line 2432 of
monstuff.cc:
for (count_x = 0; count_x < 3; count_x++)
for (count_y = 0; count_y < 3; count_y++)
{
good_move[count_x][count_y] = true;
...
if ( grd[monster->x + count_x - 1][monster->y + count_y - 1] < okmove )
{
good_move[count_x][count_y] = false;
continue;
}
There's a monster at (39, 69), the above loop references (38,70).
== 26. This line
unsigned char grik = grd[monster->x + mmov_x][monster->y + mmov_y];
from monstuff.cc around line 2730 is also causing an ASSERT failure.
GDL: in fact, there are a bunch of places in monstuff.cc where fleeing
or confused monsters can try to "run off the map", apart from the
'good move' checking in bug 25 above.
== 27. monsters equipped with missile weapons
commonly associated with launchers who
insist on tossing the missiles by hand.
== 28.About line 909 of monstuff.cc is
if ( show[monster->x - you.x_pos + 6][monster->y - you.y_pos + 6] )
The electric eel is at (48,36), I'm at (55,32), so we're indexing (-1,10).
The array show is 19x19, and I'm thinking the +6 should be +9.
There's a similar construct for lava snakes a little further up.
== 29. An indexing error in item_use.cc, line 3092 or so, after reading a scroll
of enchant armour while not wearing body armour.
you.inv_type[you.equip[EQ_BODY_ARMOUR]] is inspected even though
you.equip[EQ_BODY_ARMOUR] is -1.
do
{
affected = 1 + random2(6);
}
while ( you.equip[affected] == -1 );
// NOTE: It is assumed that armour which changes in this way
// does not change
// into a form of armour with a different evasion modifier.
if ( you.inv_type[you.equip[EQ_BODY_ARMOUR]] == ARM_DRAGON_HIDE
|| you.inv_type[you.equip[EQ_BODY_ARMOUR]] == ARM_ICE_DRAGON_HIDE
.
.
.
)
== 31. I just disarmed a blade trap, and the game seemed to hang.
Since TRAP_BLADE are of type DNGN_TRAP_MECHANICAL, this code in misc.cc,
line 1492 or so, tries to make a stack of trap items:
if ( trap_category(env.trap_type[i]) == DNGN_TRAP_MECHANICAL )
{
for (j = 0; j < 20; j++)
{
itrap(&beam[0], i); // places items (eg darts), which will automatically stack
if ( j > 10 && one_chance_in(3) )
break;
}
}
But misc::itrap() doesn't create these blades, and instead:
default:
getch();
break;
waits for input. It seems like a very strange default. Ultimately,
you can wait it out by moving back and forth. Then you find a few
questionable item where the trap was.
== 32. Banishing self to Abyss when you are at Abyss does really
strange effects
("The 0 hits you !" - I really don't understand why)
Propably it's connected with 0-beams problem -
some spells shows message "The 0 hits you !" when cast at player
I suggest some kind of check whenever is 0-beam casted (e.g. if
its targeted at player then shows message "It's not good idea."
or so)
== 33. I don't know how it happened but I've found 2 off-screen corridors.
(Btw. I hopped it was fixed)
- Finally, what you've all been waiting for: a fix for the
infamous "corridor off the screen bug" (or at least one of its
aspects). In dungeon.cc in vault_grid(...), add the line
(vgrid == '\0') ? DNGN_ROCK_WALL :
amongst all of the other ones. The problem was that the
vault code was null-terminating some of the lines of the map,
causing the default of DNGN_FLOOR to be put in place of all
the '\0's.
== 34. Potions, scrolls & wands are not updated when wielded and used.
== 35. I've already reported this one but I remind that -
When zapping some bolt towards the top of the screen and
gaining level during it the rest of the bolt is drawn at the
bottom of the screen (at message lines)
== 36. Missing space in message "<Servant>is recalled."
e.g. "Mummyis recalled."
== 37. Redundant space in message "You are diseased."
== 38. Why is "demon whip of flaming" white ? I've found such one.
>> demon weapons are always given random colours.
>> MV: Should not be fixed now.
== 39. "Summon Daeva" spell summons Angel.
Why ? "Daeva" exists and it's possible
to summon it during summon_ice_beast_etc()
== 40. At fight.cc::monster_die() is line
( you.religion == GOD_VEHUMET
&& (!player_under_penance()
&& random2(you.piety) >= 20) )
There should be 30 and not 20, because piety equal to 30 is limit
for this ability (see religion.cc).
== 41. It was mentioned already but -
Descriptive messages like
"It's lightly enchanted to do more damage."
can never appear because of badly placed brackets - {}
in describe.cc::describe_weapon()
Program gets on line
if ( item_dam >= NWPN_SINGING_SWORD )
and if this fails the programs continues on the line
int spec_ench = item_dam % 30;
and it means it can't get to messages about enchantment.
Or am I missing something ?
== 42.In monstuff.cc::mons_speaks() is few times used sprintf() insteed
of strcat(), e.g.
sprintf(info, " %s \"Help!\"",
coinflip() ? "yells" : "wails");
Problem is that in the begining _info_ contains name of the monster
but sprintf() deletes it. It means that output is
e.g. " yells "Help!"" instead of "Sigmund yells "Help!""
== 43. Which compile time options will be made standard? What are the the
appropriate defaults for the config file (set in initfile.cc)? These
have to be laid out before the release.
SEPARATE_SELECTION_SCREENS_FOR_SUBSPECIES I vote no on this one. Could be made into an initfile or command
line option if people really want it, but there just aren't enough
subspecies to justify it.
ALLOW_DRACONIAN_TYPE_SELECTION This one is typically considered "cheating". Part of the fun of
being draconian is finding out what you actually are.
USE_ELVISH_GLAMOUR_ABILITY Haven't really tried out glamour. The grey elf or two I've played
that has had it has never really successfully used it.
USE_BETTER_MINOR_MAGIC_BOOKS These should be okay now.
USE_NEW_CLOUD_CODE This code is pretty cool, I sometimes wonder about potential
twinkiness at high levels with this in a corridor (where it
could fill quite a stretch reaching more than a half dozen
squares from the center of the effect in a single turn).
Maybe a safeguard should be added to keep the effect within
a certain radius from the target?
USE_SILENCE_CODE I've never been overly fond of silence. I don't like the
way it cancels enemy priests and spellcasters.
USE_HARDER_AC_RULES Things are more sane with is option, unless scaled demonspawn
transformers turn into scaly spiders.
USE_NEW_ALTAR_CODE I liked things a bit more random. I once had orcish mines with
three Ely altars (which I thought was pretty interesting).
Modifying this code so there's at least a chance of an outside
altar would be nice.
USE_NEW_MINIVAULTS These are probably okay.
USE_GOD_COLOURS We do much worse than this right now with all the channels on.
// > USE_GOD_COLOURS
// Yes. Actually, this option should probably be either removed or replaced with
a USE_MESSAGE_CHANNEL_COLOURS option or some such (gods are just part of
this system now). Brings back to mind the possibility of specifying
non-colour-based highlighting options like "stars", "capitalized",
"indented", and such. Would have to switch from an enum to a bitfield,
and the initfile parser would have to be adjusted, but other than that
it would be simple to do.
USE_OPTIONAL_WIZARD_DEATH Test option, don't need this.
USE_LIGHTER_MAGIC_ITEMS These are reasonable.
USE_NEW_TORMENT_CODE This is good.
USE_SEMI_CONTROLLED_BLINK It's powerful, but as long as it needs the blink spell and
a separate form of teleport control it's probably okay.
As an all in one spell it's over powered (but that's only
in the code for wizard mode testing right now).
USE_NEW_COMBAT_STATS Not sure these really have much of an effect on anyone's
game. Could be left out.
USE_SPELLCASTER_AND_RANGER_WANDERER_TEMPLATES Not sure about the wanderers. The ranger and spellcaster templates
might just be encouraging people to try and re-roll for twinkiness.
Might be best with just the basic warrior wander type.
USE_SKILL_POOL_DRAIN This one is pretty silly. There's no real reason to punish people
who get a large pool (mostly from killing a large monster or two).
To increase the cost because of that doesn't make much sense, and
the skill cost doesn't need to be made any tighter (it might even
be due for a bit of loosening).
USE_NEW_RANDOM Should be default, the suggestion to reverse it into USE_OLD_RANDOM
is probably good.
From Michal:
> SEPARATE_SELECTION_SCREENS_FOR_SUBSPECIES
No.
> ALLOW_DRACONIAN_TYPE_SELECTION
No.
> USE_ELVISH_GLAMOUR_ABILITY
Yes. Works fine.
> USE_BETTER_MINOR_MAGIC_BOOKS
Yes.
> USE_NEW_CLOUD_CODE
Yes.
> USE_SILENCE_CODE
> I've never been overly fond of silence. I don't like the
> way it cancels enemy priests and spellcasters.
I don't think so.I vote for this.
> USE_HARDER_AC_RULES
Yes.
> USE_NEW_ALTAR_CODE
> I liked things a bit more random. I once had orcish mines with
> three Ely altars (which I thought was pretty interesting).
> Modifying this code so there's at least a chance of an outside
> altar would be nice.
Agree
> USE_NEW_MINIVAULTS
Yes.
> USE_GOD_COLOURS
Yes.
> USE_OPTIONAL_WIZARD_DEATH
> Test option, don't need this.
Of course no.
> USE_LIGHTER_MAGIC_ITEMS
Yes.
> USE_NEW_TORMENT_CODE
Yes.
> USE_SEMI_CONTROLLED_BLINK
Yes.
> USE_NEW_COMBAT_STATS
> Not sure these really have much of an effect on anyone's
> game. Could be left out.
I think this one is OK, I vote for.
> USE_SPELLCASTER_AND_RANGER_WANDERER_TEMPLATES
Yes.
> USE_SKILL_POOL_DRAIN
No.
xx 44. might want to branch off a version of the source for the next release,
with the unused spells and code cut out (along with some of the
unimporant comments). The full code would naturally still be used
as the development code.
** 45. documentation (crawl.txt, crawl.6 will probably need some changes)
== 46. bow messages on skill screen might take up too much real estate
(things are already tight for people on 24 line terminals once they
get all the skills)
== 47. very noisy gcc --Wall compile (it was bad before, I'm afraid I've
made it worse, it's hard to tell I get a lot of warnings from
curses that have to do with some unimportant system conflicts).
Oh, in makefile.sol... one of the $(INCLUDES) is spelled INCLUDE
== 48. giant spores sometimes seg fault when exploding (I added a simple check
for NULL, but that's probably not the problem)
ugly, ugly, ugly, ugly. But fixed. the problem was that spores
were kind of cleaned up before exploding (so that the death message
wouldn't come twice), but then they fell through to the "handle
special ability" case the next time through the "monster action" loop
and all hell broke loose.
== 50. look into why you.equip[EQ_WEAPON] (aka weapon) is used in
fight.cc::monster_fight() and monster_attack() (ie. when the
player isn't even involved!)
> no effect in monster_attack()
> bizarre use in monster_fight() - the
attacking monster gets several attributes of the player's
weapon!!! This is clearly wrong.
> MSLOT_WEAPON was also used in a couple places where hand_use
was required.
== 51. BUG: no "scores" file == segfault.
> some pretty nasty bugs in the score file stuff. Cleaned up segfault
> and some ranking bugs. Scores file is now proper text; Crawl can
> still read old scores files. Scores of 0 no longer printed. No more
> segfault on non-existent file.
xx 52. 'X' (view map) causes core dumps on terminals larger than 64 lines?
> could not repro on Win32. Tried 65 line terminal, 'X' look no problem.
== 53. Anyway, up on onelist.com (or egroups.com, whatever)
is an updated mon-spll.h file including the enums for
MST_foo and a couple MS_foo that Brent had missed
in the file ... note that the comments before these lines
in mon-util.cc:
static unsigned char mspell_list[][7] = {
#include "mon-spll.h"
};
are duplicitous of those in mon-spll.h, and can probably
be struck (or vice versa?) ... I had also thought that there
was a MS_foo matching value 100 (the beastly equivalent
of SPELL_NO_SPELL) ... maybe Gordon can add it in?
clear application to mon-spll.h and monstuff::handle_spell().
of course, one could go whole hog and add enum constants
for the "slots" in the template (actually the position *less one*
would be enummed, see handle_spell() and mons_spell_list()
for details) ...
these lines in monstuff::handle_spell() can be enummed
with the appropriate MST_foo enum constants:
int msecc = ((monster->type == MONS_HELLION) ? 30 :
(monster->type == MONS_PANDEMONIUM_DEMON) ? 119
: monster->number);
[[ 30 == MST_BURNING_DEVIL, 119 == MST_GHOST ]]
that 119 value also turns up in mon-until::mons_spell_list() ... but
this gets into "overlap land" because these values are stored in the
sec field of the monster struct, which stores a number of values
unrelated to spell-casting (though I guess applying the template
enum throughout the codebase is one way of sifting out when sec
values are used for one purpose instead of another ...) *ANYWAY*
== 54.In enum.h --
/* these are for the player spell struct, we'll see what's what later
*/
#define SPELL_FOOD(x) (x)
#define SPELL_MANA(x) (x)
#define SPELL_LEVEL(x) (x)
All of the above can be killed, as the macros are no longer used.
The SPELL_EXCLUSION enumeration (right below the macro
definitions) can also be killed, as I never implemented it, and in
hindsight, if it is ever to be stuck back into the player spell
data structures, there is a much better way of doing it. So, please
yank these out, before someone gets hurt :P
So, this bit in spl-util.cc can also be axed:
/* //jmf: commented out; add field `restriction' to spell struct if desired
// (and if anyone finds a use for such a thing)
int spell_restriction( int which_spell, int which_restriction )
{
int this_restriction = (int) seekspell(which_spell)->restriction;
return ( this_restriction == which_restriction );
} // end spell_restriction()
*/
== 55. Minor typo:
MST_RAKSHAKA
should be
MST_RAKSHASA
so that it matches up with the monster's actual
name throughout the codebase. Nothing major,
but it will require fixing (present in enum.h and
the enummed mon-spll.h I just uploaded).
== 56. "* * * LOW HITPOINT WARNING * * *
You die..."
At that point, it's really too late. The warning perhaps
ought to occur at the beginning of the player's turn as
opposed to when the character takes damage.
I've also seen two warnings in one combat turn ... can't
remember if death accounted for one of them.
> The problem is that the check is you.hp... it should be (you.hp > 0)...
> I quick-fixed that one while I was trying to get the code out the
> door and missed.
== 57. Hunger messages don't seem to appear, even if their color is set.
> Gave general cleanup of food.cc; merged hunger_warning and food_change.
> removed unnecessary modification of hunger status from level save/load,
> fixed up some logic problems.
== 59. Lot's of the enums in enum.h have trailing commas, eg
enum CONFIRM_LEVEL
{
CONFIRM_NONE_EASY,
CONFIRM_SAFE_EASY,
CONFIRM_ALL_EASY,
};
I don't think this is legal in ANSI C.
> Borland C++ didn't complain with Wall, so it's not a problem.
== 61. In libmac.cc there's a function called FlashButton. The line that calls
HiliteControl should look like this:
HiliteControl(control, kControlEntireControl);
== 62. In message.cc mpr's definition includes default arguments. This isn't
legal C++ (only the declaration can have default arguments). The same
applies to random_near_space and simple_monster_message in monstuff.cc,
apply_random_around_player in spells4.cc, and yesno in stuff.cc.
== 63. monspeak.cc needs to include monspeak.h at the top of the file, not
monstuff.h.
== 64. overmap.cc includes curses.h, this should be wrapped in #if !macintosh.
> Acutally it should be wrapped if USE_CURSES is not defined. Which it is now.
== 65. spl-util.cc should include the standard limits.h instead of the
non-standard values.h and should use INT_MAX instead of MAXINT.
== 66. The MacStuff directory should be deleted.
== 67. Very Old Buglet:
Spider Form spell turns one into a black 's', which corresponds
in monsterland to a scorpion, while giving one all the features
of the noble wolf spider, represented by a brown 's'.
== 68. It's really not that bad. Worse is the fact that I noticed that
breathe fire gives a bonus if the player is transformed (doesn't
matter what: Ice Beast, Blade Hands, or Dragon)... that's a bug.
== 69. player.cc - If you look at line 2312 you'll see that
redraw_screen () is called. But it's problem under
DOS because redraw_screen() is defined only under
PLAIN_TERM.
See stuff.cc - there is
#ifdef PLAIN_TERM
void redraw_screen( void );
> got rid of all of the plain_term() wrappers around redraw_screen.
> instead, redraw_screen() becomes a no-op for non-plain term systems.
> I hate seeing #defines all over (supposedly) non-system dependent code!!!
== 70. view.cc - at two place there is
#ifdef DOS_TERM
puttext(2, 1, 34, 17, buffy);
#endif
Probably it's possible to compile that with some compilers
but not all and corretly it should be
#ifdef DOS_TERM
puttext(2, 1, 34, 17, buffy.buffer());
#endif
== 71. When you cast "Twist" spell and choose direction you'll always get
message
"There is no monster there!"
even if it's not true. If you want to hit monster you have to target
monster by using "*" or "+". At least this spell shouldn't ask for
direction but for target.
xx 72. After battle with guardian naga character is told he is not carrying anything.
> don't see how this could happen.. g. nagas can't affect player inventory.
> must have hit a key that tried to use an inv type you didn't have, or num_inv_items
> got out of whack.
xx 73. Some initial prompts not prompt colour. I'll have to document which.
== 74. Throwing anything left seems to cause a segfault and core file ... hmmm ...
item_use.cc, line 1294: DUMB BAD CODE! Throwing anything while weilding
nothing results in a crash. Clearly someone plays neither Transmuters nor
Monks. Clearly we need some function to safely get the current weapon.
== 75. Throwing stuff while weak: I'm of the opinion that things thrown ought
to land at least next to the player, while currently, large things end
up at the player's feet. This annoys me - "I didn't say (d)rop, I said
(t)hrow!".
> it's a playability issue, especially with large amounts of items and
> autopickup. All thrown objects will go at least 1 square - we'll
> consider a 'throw' of a very heavy object equivalent to 'shove' it. :)
== 77. line 234 of mon-util.cc ought to be:
"if (mc == MONS_PLAYER_GHOST || mc == MONS_PANDEMONIUM_DEMON)"
but instead it's:
""
This will fix the elemental damage problem I was complaining about --
clearly Linux does not automagically give clean pages.
== 78. Remove trailing commas in enum.h
== 79. Stores are still trying to sell me gold pieces, and at extortionary rates.
== 81. + spells4.cc::418 assert failed: ASSERT( targs[i].x != 0 && targs[i].y != 0 );
should this be ( targs[i].x || targs[i].y ) ? (YES)
== 82. if (mons_flag(monster->type, M_SPEAKS) && one_chance_in(21)
&& !silenced(monster->x, monster->y))
{
mons_speaks(monster); // mv: removed silence check
}
That check for silence shouldn't be there, because mons_speaks()
handles silence by itself - see monspeak.cc (Btw. I've already removed
this check when I wrote mons_speak(), but somebody have returned
it back *grin* ).
== 83. However, in a couple places in acr.cc, there is code like this:
if (grd[you.x_pos][you.y_pos] == DNGN_LAVA
|| grd[you.x_pos][you.y_pos] == DNGN_DEEP_WATER)
{
if (you.species == SP_MERFOLK)
{
mpr("You dive into the water and return to your normal form.");
merfolk_start_swimming();
}
fall_into_a_pool(true, grd[you.x_pos][you.y_pos]);
}
== 84. // From: Daniel Ligon <makmorn@qis.net>
[easy_butcher]
// When I see it happen, I have no weapon in hand and no weapon in the
// "a" slot. After hitting "D" to Dissect, I am prompted for a weapon.
// I can choose a cursed weapon of either known or unknown status and will
// receive a message that the weapon sticks to my hand. In both cases,
// I return to unarmed after butchering - and the weapon is now identified
// as being cursed.
Okay, then the problem isn't with the original check... all that
needs to be done is make sure that is the target weapon (after the
call to wield_weapon which does all the validating and prompting)
isn't removed if it's cursed. Should be a fairly simple check,
although it has to validate if a weapon is wield first (of course).
== 85. This seems to be a new bug (can't see an obvious cause)...
Brain Worms seem to have a sticky flame attack now.
> SOMETHING was(is?) setting mon->number to be equal to mon_type. This
> was setting butterflies (MONS_BUTTERFLY == 66) to have a colour
> of 66, and brain worms (MONS_BRAIN_WORM == 69) to have the
> spell type of MST_MOTTLED_DRAGON (69). Why?? I don't know yet.
>> turned out to be define_zombie. Random zombies were not getting
>> zombified due to some parameters getting passed incorrectly from mons_place().
>> all quasi-zombies were getting correct mons->number set but then mon->type
>> was not being set.
== 86. This appears in player.cc::player_hunger_rate()
// jmf: hunger isn't fair while you can't eat
// Actually, it is since you can detransform any time you like - bwr
if (you.attribute[ATTR_TRANSFORMATION] == TRAN_AIR)
return 0;
Some testing reveals that in fact one cannot untransform ("You're too
hungry.") nor even turn visible. If hunger was not meant to preclude
these reversions, there's a bug in the ability code.
- Josh
I would guess that there is a bug in the ability code wrt
untransform - I have not looked at the code for this in a
while, but the "untransform" ability is likely lumped with
all other abilities in terms of forcing a check of one's
current hunger level before proceeding further into checks
and then (finally) triggering the ability.
Trivial fix, that is where the bug is: the ability code (98%
certain) - it does not make sense to attach a hunger cost
to detransformation, unless you wanted to curse players
first learning how to transform with costs on both ends
(it takes effort to change shape, effort to change back).
The latter model of double-ended costs associated with
transformations make sense, but I do not believe this was
the intended model in Crawl.
xx 87. PS: I was looking through player.cc because a white imp "chilled" my
mummy assassin. Still looking for how that could happen.
> everything seems to be WAD:
> could have been wearing two rings of fire, or dragon armour, or had a
> randart with cold susceptability. Mummy only gives resist, not immune.
== 88. PPS: White imps seem to pick up darts & stuff, while red imps don't.
IMHO that's exactly backwards. White imps are have a much better
range attack than darts provide, while a dart-throwing red imp
would be a major pain.
> actually the issue is gmon_use (the last parameter in mon-data.h)
> - red imps have 1 (opens doors) while white imps have 3 (doors,
> weapons & armour). sorry not explicit enough.
>> No, make white_imp.gmon_res=1; red_imp.gmon_res=3. Current values
>> but reversed.
== 89. PPPS: Noticed punctuation creep: "You can't weild a two handed weapon
*AND* a shield at the same time." Patriots should conserve stars.
== 90. The eat chunks on the ground prompt is uncoloured.
Following prompts are coloured.
== 91. Prompt & crashes: try doing an x-look while you
can't see any monsters, then press '+'. You will
get a nice, shiny new core file in your directory.
The x-look prompt also claims to allow you to go
to the current target using 'p', but does not. 'P'
does nothing.
== 92. Elves in their Halls seem to wear a lot of Orcish armour.
== 93. > And finally to end on a good note...
> I've love what has been done with the coloring, the autopickup and
> the automatic door opening. This is *very* useful and as a user I
> truly do appreciate the effort here. (It would still be nice to be
> able to pick up gold when your slots are full but I'm not going to
> complain.)
Argh. I haven't checked the latest dev source (but I will
this weekend), but is this still the case? If so, can Gordon
please put it in the bug queue as something to fix for the
upcoming release of 3.*cough* ???
== 94.
> I was descending through the Elven Halls, and reached level 6. On this
> level were three stairwells down to level 7, and an entrance to the
> Labyrinth.
>
> It is my habit to descend/ascend each stairwell as I find them, since
> the dungeon areas of crawl are sometimes disconnected. So I believe
> the three stairwells on this level actually did lead to level 7.
>
> After filling my gut on fresh elven meat, I descended in the Labyrinth,
> spiraled in to the Minotaur, slew it, grabbed its stash, and ascended
> back to the Elven Halls, appearing at one of the stairwells down.
>
> But now all three of the down stairwells on this level lead to the
> Labyrinth rather than level 7, and the Labyrinth is being mapped.
I can verify that I had visited Elven Halls level 7 (I had saved a
copy of my player files before entering the Labyrinth). As it happens,
level 7 was the bottom of the Elven Halls with the Vault.
I cleaned out the Vault, then returned to the Labyrinth. Once again
returning from the Labyrinth caused all the stairwells on level 6 to
lead to a mappable Labyrinth.
>> Fixed. up_stairs() was not correctly setting was_a_labyrinth in
>> the call to load(), and so the labyrinth level would get saved
>> _over_ the n+1 th 'real' level. REALLY BAD. Yuck. Bleah!
== 95. Auto-butcher + Staff of Power + dagger in off slot.
Every time a corpse is butchered max SP is reduced...
This probably has to do with the fact that staves of power are one of
the few things that are toggled on wield/unwield (a lot of the other
properties are calculated as required).
== 97. The routine mon-util::seekmonster() needs to check that
>
> mon_entry[(*p_monsterid)]
>
> is not -1 before returning
>
> &mondata[mon_entry[(*p_monsterid)]]
>
== 98. In my current game, I found an entrance to the Hall of Blades on
> level 4 of the Vaults. I entered, killed a few weapons, and returned.
> Upon returning, the game crashed. When I restarted, I was on level 1
> of the Crypt. I exited the Crypt was back at the entrance I had found
> on level 3 of the Vaults.
>
- Fix for the Hall of Blades staircase bug... Although the
staircases leading out of the HoB are called staircases "back
to the crypt", and although the enum for them describes them
as returning to the crypt, and although climbing one of them
sends you to the crypt, they are in fact supposed to lead back
to the vaults, and the level range of the HoB has been set
accordingly. To fix:
- Change the name of the enum DNGN_RETURN_CRYPT_II to
DNGN_RETURN_VAULTS_II (may need to be _II or _III)
- Change in direct.cc, in look_around(...), "A staircase
leading back to the crypt" to "A staircase leading back to
the vaults"
- Do the same in item.cc in item_check(), where it tells you
what you're standing on
- And, finally, in up_stairs() in misc.cc, the case for
DNGN_RETURN_VAULTS_II (or whatever it's changed to) needs to set
you.where_are_you to BRANCH_VAULTS.
>> this code needs a complete overhaul to be more comprehensible,
>> but I don't know if I'm up to it at the moment. :\
== 99. There was lava in the Crypt. I don't object to it, but it seems a
> little out of character, much like Josh's observation that elves wear
> a lot of orcish armour.
== 100. Characters who might go berserk while fighting, say from the mutation
> or wielding a randart, can have go_berserk() called on them while they're
> already berserk.
>> which is fine. Fixed up berserk messages for all possible situations -
>> no more double messages, or inappropriate ones.
== 101. I've run across a couple Borises in my current game. It must be a
> popular name among Liches.
>> fixed. Bad range check in dungeon.cc.
== 102. If a monster tries to mutate you and fails due to your resistance
> to such, you get a message from mutate() - "You feel rather odd for a
> moment." and from direct_effect() - "You feel very weird for a moment."
>> fixed all manner of mutation messages.
== 103. Removing a ring of strength causes these messages:
>
> You are being crushed by all of your possessions.
> You possessions no longer seem quite so burdensome.
>
> since this happens in item_use::remove_ring():
>
> case RING_STRENGTH:
> decrease_stats(STAT_STRENGTH, (you.inv_plus[ring_wear_2] % 100), true);
> increase_stats(STAT_STRENGTH, 50, true);
> break;
>
> The suppress_msg flag of decrease_stats and increase_stats does not get
> passed to player::burden_change(), which has no arguments.
>
> It is interesting to compare that code with similar code to remove the
> strength one gets from a randart ring. From it_use2::unuse_randart():
>
> const int str_plus = inv_randart_wpn_properties( unw, 0, RAP_STRENGTH );
> if (str_plus != 0)
> {
> you.strength -= str_plus;
> you.max_strength -= str_plus;
> you.redraw_strength = 1;
> }
>
== 104. There is a monster named "another lava thing". Not a bad name, but
> it leads to "You kill the another lava thing!" messages. Perhaps a name
> change to "mother of all lava things" or "lava thing's cousin".
> "another lava thing" has no stats in mon-data.h, so it was
> obviously a dummy placeholder and has been removed from possible
> generation lists.
== 105. Assorted typos:
>
> You possessions no longer seem quite so burdensome.
> You heara loud "Zot"!
>
> File name: Minh.txt
> File name: Minh.txted successfully.
== 106. Something causes misformatting of the descriptions for
> SPELL_APPORTATION and RING_TELEPORT_CONTROL;
== 107. After I picked something up, I could drop one thing, but nothing after
// that. I think we ought to have periodic checks that num_inv_items is
// correct - recounting once per turn is not a significant calculation.
Ah! There's the problem... that variable was deprecated a while back
and replaced with explicit code in the standard places (because it
was impossible to keep it up to date). If someone is actually making
use of it again then of course the entire system is going to break
down.
>> really deprecated this time.
== 108. Fixed apply_area_within_radius(). Makes far fewer unnecessary calculations
now.
== 109. Fixed rendering slowdown on windows console.
== 110. Scorefile reading doesn't pick up special characters like a-umlaut or e-ague
== 111. I was in the Tomb, slaying mummies with style and grace, so naturally
a fair amount of cursing of my stuff took place.
The Ring of Shadows now has an inv_plus of 100, I assume since
monstuff::curse_an_item() adds 100 to inv_plus. I can't remove it,
since inv_plus > 80. It is not labeled as cursed and scrolls of remove
curse are ineffective since inv_plus < 130. I suggest that, for now,
curse_an_item() should leave randarts alone.
As an aside, is "artefact" a valid variant spelling of "artifact"?
== 112. Another result of the great Mummy slaying was that my flesh would
rot away. I think display_char_status() should list this.
xx 113. I came a across a butterfly which had color 66. I could not
determine why (N.B. 66 is MONS_BUTTERFLY.. what's going on?!)
> me neither. All calls to create butterflies should go through
> define_monster(), which sets m->number to 0..15. See #85.
== 114. in view.cc, inside the #ifdef DOS_TERM things there are some
bad things happening to the puttext calls. buffer.buffer()
should be replaced with buffer, and buffer2.buffer() (or is it
buffer.buffer2()? I forget) should be replaced with buffer2.
Otherwise it refuses to compile (this may be an incompatibility
between borland C++ and djgpp, Gordon)
MV: Buffer.buffer() should be only buffer. Problem is with _buffy_ which
needs to be _buffy.buffer()_.
== 115. Also in view.cc in noisy() at 1304 the distance function is
being used wrongly. Change if (dist <= distance(... to
if (dist >= distance(.... This problem caused most monsters on
a level to wake up as soon as a noise was made, and was why
characters were getting mobbed.
== 116. the init file is broken, at least under DOS. It is reading
in the player's name okay and is finding the other options,
but when read_bool() tries to work out whether an option is
followed by "true"/"1" or "false"/"0" it fails to detect
anything and just goes with the default. I don't know how any
of the weird code in initfile.cc works (what was wrong with
the stdlib string functions?) but, at a guess, this might
have to do with the way DOS writes End Of Line in its text
files - if a line is concluded by something other than
'\0' the string code might fail. But that's just a guess.
>> made a couple changes and it seems to work fine on win32..
>> but this is highly dependent on the compiler's implementation
>> of the standard string template (grrr!)
== 117. A blank/empty scorefile will not be updated; scores of 0 not kept.
> both fixed.
== 118. If you aren't carrying anything except money, you can't drop it (money)
> can now specify quantity of money to drop. Accepts any value.
== 119. My character entered the Tomb, arriving in the upper left hand corner,
at position (9,7). I tried to target, and failed the ASSERT for the
mgrd array. This took place around line 1227 of direct.cc in the
mons_find() routine. const int targ_x = you.x_pos + temp_xps - 17;
const int targ_y = you.y_pos + temp_yps - 9;
const int targ_mon = mgrd[ targ_x ][ targ_y ];
In this case, you.y_pos is 7, temp_yps is 1, and so targ_y is -1.
== 120. The Amulet of Cekugob does not stop one from teleporting when one
has the teleport mutation.
== 121. I entered Hell from level 22. When I exited Hell I was placed on
dungeon level 27.
BWR:I believe this was the better alternative of earlier problems dealing
with returning to the main dungeon... used to be you could end up on
level zero, or on a semi-random level inside solid rock. After those
problems were fixed the portals seemed to work as above.
== 122. When I returned to Hell, I was placed on one of the down stairwells.
== 123. Remove which piece of jewellery?
That isn't a piece of jewellry.
Webster has jewelry, jeweled. Changed all occurances.
== 124. Oops, that ring feels deathly cold.
B - a cursed amulet of the gourmand (around neck)
xx 126. I hit a giant spore with a bolt of poison flame, and the critter
> didn't explode. It just disappeared.
LRH writes:
Not sure exactly, but I'm pretty sure that if you do enough
damage to a spore with a single attack it will fail to explode.
The relevant code should be in monster_die().
== 127. A fire giant hit my Spriggan (AC: 5, EV: 13) with several fire balls
> over a few turns, but none hurt much. I didn't get any messages about
> resisting the effects. Is this the odd fire resistance problem?
>> monster fireball damage wasn't being set correctly.
== 128. The Spriggan has strength 10 and dexterity 21. When he wields a bow
> or crossbow, I get the message:
>
> Your relatively low strength is limiting your use of this weapon.
>
> I don't think strength has any effect with crossbow, and probably doesn't
> effect bows.
BWR: As a side note, is the low Throwing skill message still on the skills
screen? Has anybody tested it with all the skills yet (there is a
lack of room, and the screen should fit in 24 lines). Maybe that
message would be better as a message when wielding the bow itself,
although I'm not sure how much the mechanic is required (I typically
upped Throwing skill along with Bows because it's a cheaper and faster
way to up accuracy and damage than raising Bows alone).
== 129. The file makefile.obj seems to be missing... this is a problem
for most of the other makefiles which include it.
== 130. The APPNAME in makefile.sol should probably be changed back to crawl.
== 132. In spells0.cc should be also included stdio.h under DOS
because sprintf() is used.
xx 133. > Are you going to do the player-ghost/demonlord "structure" as well?
//
Um, dare I ask, why? I've never looked at this part of the code.
BWR:
It's currently an array of chars. It would probably be easier to
understand as a struct with fields for AC, max HP, spells, resistances
and such.
== 134. When I cast Static Discharge, I get occasional fails of the ASSERT
on line 419 of spells4.cc: for (int i = 0; i < targs_found; i++)
{
ASSERT( targs[i].x && targs[i].y );
func( targs[i].x, targs[i].y, divided_power, 0 );
}
> Fixed. Brent's algorithm is sound, but his coding wasn't. :P
== 135. When I use the Sif Muna granted ability of Selective Amnesia, I hit
an array bounds assert in seekspell() - which is exactly:
return &spelldata[plyrspell_list[spell]];
The value of spell is 210 (SPELL_NO_SPELL), and so plyrspell_list[]
goes out of bounds (it is not protected by the Fix[Ary|Vec] stuff)
which then triggers spelldata[] going out of bounds.
>> plyrspell_list[xx] being set to SPELL_NO_SPELL _before_ call
>> to spell_power. stupid logic error.
== 136. I swung my Staff of Air:
You miss the imp.
You miss the imp.the imp is jolted.
You are wielding a staff of air.
== 137. I'm wearing an amulet of the gourmand, but I never seem to get labelled
as being Full (or Engorged).
>> is this a problem? Gourmand allows you to eat rotten/contaminated flesh,
>> how could this be related?
== 138. Trolls can eat huge amount of chunks of flesh without becoming full
> oops. Nobody could ever get full. Stupid logic error.
== 139. Name in INI file causes crash unless all caps.
xx 140. Non-Beams displayed one cell at a time (thanks to Michal)
== 141. M_SPELLCASTER removed from ball lightning.
== 142. All beams/missiles leave a visible trail now (at least until window
redraw). Was too hard to get right w.r.t. killed creatures and cloud
trails, and most liked it the other way anyways.
== 143. Some enchantment beam behavior fixed.
== 144. Update & examine command-line switches & options
// - update & verify behavior of command line switches & options
Monochrome isn't connected to anything. The "no colour" option could
be handled by imposing a set of colour macros (if they were made widely
available)... most monochrome systems can do bold/standout, although
that typically ends up backwards or ugly (if it's done via reverse).
Could possibly just be removed rather than bother with it.
The "-nb" (no black) option is obsolete with colour macroing.
Basic options to consider:
- list scores (param for top X)
- select race/class
- character name (for loading and starting new character)
- pointer to game directory (ala crawl_dir option)
- pointer to initfile (ala CRAWL_RC environment variable)
Later things can get fancy, but we should at least have those.
xx 145. I'm playing the latest win32 binary pre-release (January 11).
The first problem is that I can't get to the religion screen. To produce
'^' with my keyboard I have to press <Shift> + <the button with ^>
followed by a space. However, in Crawl this doesn't work (it used to work
with earlier versions before this series of win32 binary pre-releases).
All I get is 'Unknown command'.
== 146. When zapping a wand of Draining at a line of Kobolds and Big Kobolds,
: the game froze if something was killed. The game was recoverable, and
: the bug repeated itself. Killing these by hand caused no problems.
: Using this wand on other creatures caused no problems.
>> probably related to double-whammy monsters were suffering from poison/
>> draining. Hit dice might have gone below zero, etc.
== 147. Any ranged attack that hits you has a chance of destroying
: your scrolls, not just fire-based ones, and they all give the message
: that your scroll has burst into flames. Confused the heck outta me
: the first time it happened. "The puff of frost hits you! One of your
: scrolls bursts into flames!"
== 148.
: 1 other thing I just thought of. When targetting in version 3.43
: you could use the dot on the keypad to select the target. Now, to
: use that dot, I have to use the shift button with it.
xx 149. Also it seems like mummies have lost some of their cold resistance... I
had trouble with an ice dragon that should probably have been real easy...
on the other hand fire damage does not seem to be all that nasty to them
anymore (I dunno about the mummy monster but this seems to be the case for
mummy player chars, none of my equipment provided fire resistance).
== 150. Fixed new description() problem. Oops.
== 151. Changed some messages for burning and chilling monster attacks.
note that mummies _could_ be chilled by melee attacks - "chilled" in fact
means that the player resists cold. New messages are tied to actual
extra damage from fire/cold.
== 152. Fixed "always poison/drain" on beams/bolts that didn't actually
hit (problem with side effects in check_mons_resists() ->
mons_adjust_flavoured())
xx 153. The level files for my characters don't seem to get deleted, even after
the character dies. I'm assuming that they're meant to be deleted, as
they used to be... or is there some reason that the game now keeps them?
> can't repro - works fine on 2000.
== 154. I found one of those checkerboard-like rooms with alternating wall and
floor squares (you know what I mean? The ones where you can only move
diagonally, sort of like the Hive, but occuring in the regular
dungeon?)... it was made of metal walls, and had a small open area in the
middle. There were some items which seem like they should have been
placed inside the open area, but were inside the walls instead, and
therefore inaccessible. I can't figure out how to get Crawl to dump a
screenshot, but I'll recreate it here, using X to represent a wall.
.X.XXXX
X.X.[.X
.X.X@)X
X.XX!.X
.X..XXX
X...X.X
.X.X'X.
All three of the items around my character are inside walls; examining
them says:
You see a [item name] here.
A metal wall.
You can't move on to them or anything. Note that if you shifted them all
three squares down and two to the left, they'd fit nicely in that little
open area, which leads me to suspect that possibly that's where they were
meant to be.
>> several places in dungeon.cc where this could happen. Think I've squished
>> them.
== 155. I'd suggest killing /unused, but only after moving oldmaps.txt
into /misc. Within /misc, scoretab.cc should probably be updated
to the new scorefile format (or killed) and untab.pl should be
killed, as it is an unreliable detab script - rh.bat seems
near useless.
In /Docs (why is this uppercase?), NEW.txt is empty, buglist.txt
should be updated to the current status (about which, Gordon only
knows), I need to migrate messlog into changes.340, changes.340
needs to be renamed changes.400, the remaining files need to be
updated.
The old LOS code can die, I think I lost my fascination with it.
I don't believe anyone else was defending its existence.
== 156. On this topic, I get tons of warnings about FixVec.h and FixAry.h
not having a final newline. Could you add one to these?
== 157. The compiler also noted a problem in dungeon.cc:
if (you.where_are_you == BRANCH_CRYPT || you.where_are_you == BRANCH_TOMB)
{
if (type_floor == DNGN_LAVA)
type_floor = DNGN_SHALLOW_WATER;
if (type_2 == DNGN_LAVA)
type_2 == DNGN_SHALLOW_WATER;
}
The last statement should probably be an assignment.
== 158. Finally, I can't compile dungeon.cc at all:
dungeon.cc: In function `void link_items ()':
dungeon.cc:6395: warning: comparison between signed and unsigned integer expressions
FixVec.h: In method `FixedVector<TYPE, SIZE>::FixedVector (TYPE, TYPE, ...)
[with TYPE = char, int SIZE = 7]':
dungeon.cc:7998: instantiated from here FixVec.h:125: `char' is promoted to `int'
when passed through `...' FixVec.h:125: (so you should pass `int' not `char' to `va_arg')
This also affects spells4.cc (instantiated from line 729).
== 159. Problems with print_description() under DOS?
Stupid, stupid, stupid.. good god. used .data() instead of .c_str()
== 160. Make Boris back into a non-Unique and give him appropriate mons_speak()
== 161. More portable savefile format.
== 162. Well, played with the new pre release, speed is the same (drat) and the
ghoul food bug still exists... the one where they have to eat a meat
ration to cure the 'hungry' status. Haven't hit on any other bugs yet but
I've only run 3 characters who all had very short lives.
== 164. Direct-effect monster castings (smiting, etc) would crash the
game (forgot to set beam_source for non-beam type attacks).
== 165. The warning messages given for wielding objects should also be given
at the start of the game (if applicable).
== 166. Anyways, I'm starting to
think that the margin should be a little smaller, the 79 colomn one is
just too wide to read comfortably... a 70 column one should be fine.
== 167.
// > All staves work like this - the special power can activate even if
// > you miss your foe by a mile.
// >
// > Is this desired behavior?
//
// I would think not.
** 168. Enable loading of 3.30/1.x chars & level files.
== 169. When casting Corona and hitting somebody I'm allways getting
additional message "Nothing appears to happen.".
eg. The goblin is outlined in light.
Nothing appears to happen.
(silly logic problem)
== 170. In ouch.cc is under DOS missing #include <file.h>
== 171. There is still small problem with new print_description().
Description window for DOS is (25,1,80,25) - see for example
describe_spell(). It means that lineWidth in print_description()
can't be 70 under DOS_TERM and should be 54 or so (of course
those windows can be changed but it's much more work).
DOS term and shoul be 54.
== 172. I started a grey elf wizard and it begins play with an orcish robe, not an
elven one. (flimsy coding)
== 173.
"You miss the ice beast.
The ice beast hits you!
The ice beastchills you.
Ouch! That really hurt!"
== 174. tag.h and monstuff.cc need final newlines
== 175. tags.cc and files.cc include mem.h, but gcc doesn't come with one.
The routine memcpy is declared in string.h, which is already included
in these files, so commenting out worked for me.
== 176. spells3.cc has the same problem with FixVec.h that dungeon.cc had
in pr6.
I guess around line 729 or so. :) g++ -Wall -DLINUX -g -DDEBUG -c spells3.cc
FixVec.h: In method `FixedVector<TYPE, SIZE>::FixedVector (TYPE, TYPE, ...)
[with TYPE = unsigned char, int SIZE = 7]':
spells3.cc:729: instantiated from here
FixVec.h:125: `unsigned char' is promoted to `int' when passed through `...'
FixVec.h:125: (so you should pass `int' not `unsigned char' to `va_arg')
== 177. Was just looking at that code, and noticed the comment about the
"other five gods" (the one's the player cannot start the game
worshipping). Anyways, that comment was added there before the
always_greet option, which does meet the requirement for filling
in the extra gods (since the real purpose of always_greet is to
remind the player of some non-obvious details about their character
in case they haven't been playing in a while (ie. race, class, deity,
weapon penalty).
== 178. Could you please put the string "-O2 -fno-strength-reduce" in your makefiles
dealing with GCC? It'll speed up the game by a *huge* amount. (The
-fno-strength-reduce is to get around a bug in many versions of GCC.)
Because of the exceeding slowness in the released versions, I compiled my own
version, which leads to point
== 179. Why in the name of Cthulu did you remove "#include <files.h>" from ouch.cc?
To misquote Rufus Wainwright, "Cause all I get is instant errors/Instant errors
Instant errors".
== 180. Update scorefile format to a delimited ACSII numeric representation.
(hmmm - will take some thought)
xx 181. I am not sure if its a bug or not, but using pr7 on NT4, every now and
again when I die, Crawl causes a general protection fault (or whatever its
called in NT) and the game crashes. The good side to this is I don't lose
my character and can go back to my last save and keep playing.
> When I'm having a good character going ("good" being
> 1000+ points or so), the game tends to crash when the character dies.
== 182. I just got the mutation "you can exhale a cloud of poison" but I recieved
no special ability to activate it. At the time of the mutation, I was
wearing a ring of shadows that gave me the ability to turn invisible.
Perhaps the ring interfered with it? Hope this helps.
> data error in mutation.cc. Fixed. Nagas now get breathe poison
> sometimes if they _would_ have got the spit poison mutation.
jmf> That mutation ought only occur for Nagas. A non-Naga getting
jmf> the mutation is a bug.
xx 183. Move rand(), random(), srand(), srandom() to libxxx
> behavior is too complicated..
== 184. Files are not cleaned up in DOS - see end_game() in ouch.cc
== 185. Fixed more monster spell crashing-if-kills-player problems.
== 186. Quokkas have no mass, hence they never leave corpses.
> That was there original stat, should probably be set to 200.
== 187. I found lots of bug while using 'recall undead slave' skill.
I noticed this bug as well. Seems the recall spell places your servants in
spaces next to you, regardless if there is already something there or not.
In effect, monsters which are stacked seem unable to move, including
hostile monsters. When the top monster leaves the space the game places a
"floor" tile there.
> really, really dumb logic error - corrupted mgrd as a side effect!!
== 188. Several piles of gold on the same spot should merge
>> so should other things. Fixed item_place() and drop_gold() appropriately.
== 189. Merfolk hunters not available, NEWGAME.CC suggests they should
== 190. Weld potion drank should dissappear from the screen
== 191. First the bug: While in the Abyss, I came across an orange 8. Hit x and positioned
the cursor over it to see what it was (thinking it was probably a type
of golem I'd never seen or something) and it said:
>> There was a tiny bit of overlap between the area which got nuked and
>> the area that got transferred. Probably left pointers to invalid
>> items lying around, which would produce exactly this:
!questionable item (c100, +0, p50, p(2)50, d0:q0)
== 192. Now the complaint: Because you can use the letter keys to move around,
the numeric pad
has obviously been modified so that the numbers map on to the letter
keys... but there is a problem with this, namely that 7 maps on to y,
and can therefore be used to answer in the affirmative to a question.
I now realize why easy_confirm exists, since some people no doubt use
the letter keys to move and may accidentally say yes to something they
didn't intend to... but for those of us who use the numeric pad, the
option doesn't seem to make much sense, since your finger doesn't come
near the 'y' key all that often, so I just had it set to all. Then I
was in a situation with one of my best characters ever where there was
lava directly north of me and I wanted to move northwest, but my
finger hit directly between the two keys, basically hitting 8 then 7
in rapid succession, plunging me into the lava and killing me. I
suggest one of two things; either make the numeric pad work the same
way as the letters ONLY for movement, since the only time other than
movement when you're going to receive input from the numeric pad is
when it's accidental, or at least put a warning in the init.txt where
it talks about easy_confirm saying something like "WARNING TO KEYPAD
USERS: The number 7 is mapped on to the letter 'y,' which can result
in accidentally answering yes to questions; it is suggested that you
leave easy_confirm off."
== 193. > An orc priest who hellfired him.
>> fixed in general non-tracer spell cleanup. Oops.
== 194. Scrolls of immolation don't do anything. The big fireball
: appears on the screen, centred on you, but it doesn't damage you or
: any of the creatures surrounding you, and doesn't have any other
: effects. I'm assuming that this is a bug.
> Good catch. Direct explosions were being treated as tracers. :P
== 195. A more minor bug: if you read a scroll of teleportation, then
: start butchering a corpse, you'll continue to butcher the corpse even
: after you've teleported, successfully chopping it to pieces, even
: though it hasn't come with you.
== 196. Well, the title says it all, but, when I reach level 27 of the dungeon the game
crashes (not a windows page fault, a 'dos page fault'). The character has not
retrieved any of the runes of zot yet, so I figure I'll try again after getting
one (or if that don't cure it 3 just in case). I'm on a windows 98 computer
running the DOS compilation of pre release 7. I also had a few times on level
26 where I couldn't move (alt tabbing out and forcing the game closed worked
but I was set back a ways... so I made it a point to level level 26 hehe). One
other thing I noticed was the dungeon clean up never happened (on level 25 but
I had no problems on that level even after the floor was full). New monsters
seemed to get weapons and armor but no more corpses once the floor was full.
Something else I've always wondered about was the slime pits, are you supposed
to get a rune of zot out of there or does the royal jelly 'eat' it or
something, I've never gotten anything from there but it seems like it's the
kind of place that would have one (specially with a monster that is no where
else in the game sitting in a pre-fab dungeon).
...and then this follow-up on Feb 9th...
I mention the runes because it was level 27 I was trying to enter when it
crashed on me, I wasn't actually entering zot, just the level with all the
gateways to zot. Was just trying to go down there to get a little more exp
before I went to get the runes necessary to get into zot (the advantage of
being a mummy... you can go do things in squirly order according to whim hehe
mannix writes:
Just confirmed it, lvl 27 is definitely a gaurenteed crash, even with 3
(well, 4... got two in pandemonium... should that have been possible?) I
still crashed when I tried to enter lvl 27. On the other hand I've found
some fairly nifty places to explore for exp :). Another problem I found
was that in a lot of areas the dungeon clean up is not nearly aggressive
enough, I'd go so far as to say that when it happens all non-quest items
should probably be removed, in some areas after spending a bit of time
repeatedly killing random monsters (the joys of playing a mummy hehe) item
drops would show up something like 'item 923589237 has dropped' (and
that's a sure sign of impending doom, or at least a lock up on exit). I
worked around the problem on one level by using my own clean up method...
summoning imps/demons... some of them will pick up weapons (and in places
like hall of blades that's all you'll normally see) and when they
dissappear those items are gone for good.
== 197. : Using a spell staff of smiting in melee combat reveals the following message:
: You're wielding some sort of staff I've never heard of. (fight.cc)
== 198. Trying to cast Apportation on a pile of gold crashes the game
(division by zero)
== 199. Draconian Hunters start with a club instead of a bow.
> It's a little bit worse than that... The bow is clobbered into being
> a club instead of the leather armour being turned into a robe (draconians
> shouldn't being wearing leather armour since it doesn't fit).
== 200. Need more aggressive item cleanup.
>> perhaps trigger this on item creation, if a spot can't be found.. go
>> through the item list destroying less valuable items or small piles of
>> gold.
== 201. Teleporting a fish (by hitting it with weapon of distortion) might
cause misc. problems - e.g. fish is teleported again and again
(because it lands on the floor)
> won't happen; checked & rewrote bits of monster_teleport() to be
> more readable, but the code was fine.
== 202. I was getting mutations after wielding/unwielding weapon of
distortion
> yes, it's in the code. Nice eh?
== 203.Darts of bugginess found in shop
> dumb logic in dungeon.cc::items()
xx 204. Electric eels sometimes shoots lightning to strange (probably
random) places and not at player.
> don't see how.
== 205. Put in a fix for scorefile lines longer than 80 chars (will break)
== 206. a new score at the bottom of the list would not be added.
== 207. Misc documentation changes from Don
== 208. Won't get "Sorry, you can't target what you can't see." when you're
just looking around.(with 'x')
== 209. Improved 'C' command (gives XP left to go)
== 210. Far strike & twist could not target with direction keys (they are
pseudo-direct effects, which screwed stuff up. Argh!). Changed mode
for those spells to DIR_TARGET, which means hitting a direction key will
take player into targetting mode. No doubt will be hearing gripes about
this too.
== 211. Patched up multiuser compile.
== 212. Quokkas don't generate corpses now. Someone else wants to revamp
the corpse system, go for it.
== 213. Easy butcher defaults to false now.
== 214. Options for Race & Class added to init file
== 215. Replace mutate() calls for miscast effects with addition to mutagenic
radiation; perhaps all miscasts (may) add to this, and high level miscasts
changed to give_bad_mutation?
>> done. all spell miscasts give small mutagens; high level spell miscasts
>> can get pretty nasty too, but still only small chances of mutation unless
>> you're also invisible/hasted/wielding nasty artifact.
>> missing a couple high level spells badly in quick succession can be really
>> nasty. I'll leave it as an easter egg. :)
== 216. Monsters won't throw stuff if they can melee.
== 218. Misc stylistic & code fixes from Jesse
== 219. Charmed monsters will no longer be described as 'friendly'.
== 220. Brave attempt made to use correct pronouns (introduced mons_pronoun)
== 221. Shop names more visible when looking around & moving
== 222. Can now pickup auto-combine items even with full pack
== 223. scrolls of fear won't auto-identify if nobody is scared by them.
== 224. "Killed by giant ant" when smitten from afar by Orc priest?
> very subtle. Death_source can be zero, since it is an index into
> the monster array. But I didn't think it could be - if killed by
> monster#0, scores like this would be generated:
:4:0:89:Methea:0:6:3::3:14:3:0:0:0::2:0:0:0:0:
> which would be translated to "killed by a giant ant"
== 225. Don't generate monsters in LOS?
== 226. Get name after race & class (pretty easy now)
== 227. Fixed up some job titles.
xx 228. Game crash on character death; after equip list, but before hiscore list
== 229. Massive speedup on win95/98. Fixed all cursor dance and buffering
problems. Fullscreen is still pokey on most machines, but it's finally
playable.
== 230. No staircases to Zot on level 27 (dlevel == 26). It looks like a
piece of code in dungeon.cc::builder() may be changing stairways to Zot
to dungeon floors, regardless of level (occurs after place_branch_
entrances())
== 231. crawl -plain now actually uses non-gfx character set
== 232. All female uniques are now properly gendered (missing break statement)
== 233. Divine resistance messaged a bit better (w.r.t. Xom, Makhleb)
== 234. messaging for vampiric attacks fixed up.
== 235. Monsters generated on teleport traps will have unobtainable loot!
> shouldn't generate them on tport traps any more.
== 236. Fixed DOS include of <files.h>
== 237. Fixed overly long string in '?' screen
== 238. More multiuser fixups. Changed default makefile to linux.
== 239. Moved god favor messages more in line with prayer messages (too confusing
otherwise). Fixed a couple grammatical errors.
== 240. Can't hit some monsters in LOS (rounding problem?)
Need to rewrite for integer math. :P
== 241. Crash on long player names (duh!)
== 242. Miscellaneous spelling/grammatical errors
== 243. Do something about this: probably remove from compile options. But leave
bow/throwing warning in, as it is a _very_ important penalty.
: One odd thing, though. I chose a Human Fighter with a short sword and when
: I began the game I get "Your relatively low dexterity is limiting your use
: of your weapon." Other than the three occurrences of "your" in this
: sentence, I find it odd that 10 dexterity is too low to wield a short
: sword. Or is this a bug?
"Your relatively low <foo> is limiting use of your <weapon name>."
Would be a slight alteration to kill one "your" and actually
designate the weapon being affected (I know it is pretty clear
that the only weapon affected is the one wielded, but I like
some things spelled out).
To avoid those excessively long weapon names with all the plusses
and things, the weapon name string should probably be just the base
weapon type (e.g., "short sword" instead of "+1, +2 short sword of
orc-slaying and back-scratching"). As the str/dex modifiers are
based on the base type and not all that other goodness, this seems
an ok thing to do.
Anyway ... I still think that this check ought to be performed
prior to weapon selection by a player at start-up, so that he
or she knows his/her character will be handicapped by the choice
of one weapon type or another. I think that thread was raised
briefly last week or so.
== 244. The game crashes when I start a monk.
In skills2::wield_warning(), these two statements need to be swapped:
int wepType = you.inv_type[you.equip[EQ_WEAPON]];
// early out - no weapon
if (you.equip[EQ_WEAPON] == -1)
return;
== 246. Rewrote monster behavior routines.
== 247. Cleaned up some function prototypes in dungeon.cc
== 249. Put gendering into monspeak.cc
>> couldn't find anything.. wonder what Michal meant?
== 250. More typos
== 251. remove caps from filenames
== 252. Summoned critter problems:
From: "Ben Goetter" <goetter@m...>
Sent: Thursday, March 15, 2001 9:45 PM
Subject: Crawl 4.0pr10z 13 Mar report Bug report: summoned creatures are
appearing in the same space as the
caster. (Cast spell, summoned creature not visible; move one space,
creature appears in space vacated by caster.)
<FIXED>
Date: Fri, 16 Mar 2001 09:00:41 PST
From: tgord <clubs-mail@y...>
Subject: Re: Crawl 4.00 pr10zf [Yahoo! Clubs: Linley's Dungeon Crawl]
I've noticed that summoned monsters sometimes appear on the other sides of
walls now. ^^^^^^^^^^^
<FIXED, for player summons>
== 253. Change messages for weidling awkward weps to show up only at
values <= -4 (for real problems) and change message to "not taking
full advantage of the weapon" or somesuch. More flavour, too..
maybe messages like "you're too clumsy" for dex<10; others for
high (but unbalanced) stats: "You'd be (a lot) better with
that weapon if you were (stronger/more dextrous)"
xx 254. Give Earth Elementalists a few stones (say 10-15) to help them
get started?
>> addressed with the new, 'easier to run away from' monster AI?
== 255. I thought someone had added the MST_* enum usage to mon-data.h,
== 256. Would be nice if the wizard patch I put up in the files directory
made it into the code.
== 257.PS Oh, using crawl -scores leaves the terminal in a bad mode...
stty sane is required to sort things out (either curses shouldn't be brought
up with this option, or it should be shut down properly).
Just change the exit() call to a stuff::end() call.
// check for highscore list - must be done BEFORE libw32c init
if (Options.sc_entries > 0)
{
cprintf(" Best Crawlers -"EOL);
hiscores_print_list();
end(0);
} The argument to end() is the exit value. That should probably be 0,
rather than 1, since there's no error here.
== 258. This bug ( if it is a bug ) has been around for a while... it seems
: that sometimes when you poison a monster and it dies from the poison,
: it gives you exp, and other times it doesn't. Is there some logic
: behind this? A low level character of mine just barely managed to
: kill an OOD hippogriff using poison, and got gypped of the exp. =(
>> Very old problem in beam code; poison_monster was being called
>> incorrectly.
xx 259. I once got a corpse from a summoned snake - I hadn't been
able to reproduce it, but it's corroboration.
== 260. Give monsters large bonus while target is MHITYOU and behavior is
BEH_WANDER, during player stealth checks - monsters will still be on
the lookout for the player.
Give a small chance each clock tick of deleting the MHITYOU; i.e. monster
'forgets' about the player. Stupid monsters forget faster..
== 261.
I was playing a transmuter, and noted that I was getting "You
punch the <foo>" messages while fighting in spider form. I'm not
getting the unarmed punch attack, so I think the verb comes from
fight::weapon_type_modify(), which doesn't take transformations into
account:
static int weapon_type_modify(int weapnum, char *noise, char *noise2,
int damage)
{
int weap_type = WPN_UNKNOWN; if (damage >= HIT_WEAK)
{
if (weapnum == -1)
weap_type = WPN_UNARMED;
else
{
if (you.inv_class[weapnum] == OBJ_STAVES)
weap_type = WPN_QUARTERSTAFF;
else if (you.inv_class[weapnum] == OBJ_WEAPONS)
weap_type = you.inv_type[weapnum];
}
} strcpy(noise2, ""); switch (weap_type)
{ ... case WPN_UNARMED:
if (you.species == SP_TROLL || you.mutation[MUT_CLAWS])
{
if (damage < HIT_MED)
strcpy(noise, "claw");
else if (damage < HIT_STRONG)
strcpy(noise, "mangle");
else
strcpy(noise, "eviscerate");
}
else
{
if (damage < HIT_MED)
strcpy(noise, "punch");
else
strcpy(noise, "pummel");
}
return damage; ... }
}
xx 262.
from Win32 precompiled pr10 on Windows 2000:
You see here a white potion.
B - a white potion
Drink which item? (I choose B)
You feel much better.
Eat which item?
That banana was delicious!
B - a white potion
You finish eating.
>> Must have had autopickup off, but I cannot reproduce.. think it
>> might have been fixed by fixes to message.cc
== 263. When i name a character 'con' or 'Con' it freezes the game.
== 264. Generate wandering monsters on/near stairs about 10% of the time,
regardless of player position, but disallow banding and generate a
message ("A %d enters from above/below!") if player is around.
== 265. Has anyone else noticed that after a draconian dies, every high-score on the
screen is listed as having been a draconian? When a non-draconian dies, the
draconian is listed as having come from race "Yr".
== 266. Cleaned up monster blinking.
== 267. Monsters following up the stairs if they are "not aware" of the player (odd!)
== 268. Some problems with monsters not following player position correctly, or
just plain waggling back and forth when they should be beating on the player.
Sigh.. gotta look closer at those movement routines. :P Not ready for
prime time yet.
== 269. Simple fix to handle_behavior()
== 270. After a while, crawl again went of bounds, this time with this
backtrace:
#6 0x80e9119 in seekmonster (p_monsterid=0xbffff1e0) at mon-util.cc:816
#7 0x80e91bc in mons_intel (mc=-1) at mon-util.cc:837
#8 0x80db2a7 in behavior_event (mon=0x8247e90, event=1, param=0)
at monstuff.cc:394
#9 0x81339c7 in noisy (loudness=8 '\b', nois_x=45 '-', nois_y=34 '"')
at view.cc:1249
#10 0x8132927 in monster_grid (do_updates=true) at view.cc:941
#11 0x8131bca in viewwindow2 (draw_it=0 '\000', do_updates=true) at view.cc:574
#12 0x8052f76 in input () at acr.cc:2020
The bad thing here is that line #7 has mc=-1, and seekmonster() will use
that as an index.
== 271. Could we tie this to smartitude? Killer Bees and other insects can
forget that I exist when they can't see me while Liches ought to
cast 'detect exact player loaction' and Dig or teleport their way
to me, for a LOOOOOOOONG time after I damage one.
== 272. Cleaned up abyss generation; there was a monster leak and some very strange
code.
== 273. Fixed minor screen redraw problem (screen should have updated before monsters'
turn, but it wasn't. Caused some odd SFX artifacts, like beams/missiles going
through walls)
== 274. Fixed nasty bug with cornered monsters which had them looping from flee->
cornered->seek->flee->...
== 275. Fixed small logic error with perma-mutations
== 276. I was invisible and an orc spotted me, shouted, and then came at me.
== 277. gotta clean up monster target aquisition and release. Make more 'sensible'
>> Add 'persist' variable; which is # of turns a monster will go towards their
>> CURRENT target even if it is not in LOS anymore.
== 278. Fixed type usage problem with quadrant_blink()
== 279. Made monsters move a little more unpredictably along oblique paths
== 280. Fixed up all cases I could find of friendly monsters frying players
(NOTE: they might still do so as part of calculated plans to help the player
out - some collateral damage is acceptable!)
== 281. "The your cursed +1 robe is stuck to your body."
"You are a elf wizard."
== 282. Can't pick a target with Apportation spell.
>> works fine for me. Added a helpful message.
== 283. It seems that sometimes monsters are not interested at you even if
you shout ("!") at them. Or is it feature ?
>> nope, bug. Any noise coming from the player's position should alert
>> hostiles within range depending on the volume of the noise.
== 284. Sometimes monsters (rats, bats and probably others) attacks you,
but they are still described as "not interested".
>> fixed in direct.cc.
== 285. I have also
made some changes to the file attributes when it is compiled with MULTIUSER
option turned on, since I think the player's save and level files should NOT
be group writeable :), but the score file should be.
>> .sav and level files are private (600). Ghost and score files are not (664)
== 286. There seems to be a more serious bug with summoning monsters in Crawl pr11:
: I`ve found that summoned creatures aren`t giving any experience to your
: character when they kill things any more, which makes summoners a bit crap.
:
: Also, when my Chaos Knight summoned a demon ( yquxy whatsit) it kept trying
: to eat my intelligence and mutate me, which has never happened before.
: Demons killing monsters didn`t give me any message from Makhleb either.
Both fixed. #1 is logic problem, #2 is generic friendly fire problem.
== 287.
I'm playing pr11, DOS version. My merfolk healer was in a situation like
this:
................. (water squares...
..;;.............
.................
.................
.................
.................
.................
......;.......... water squares end)
......@.......... this is solid ground
The placing of the symbols is not accurate.
Now none of the eels could hit me with their blasts. The eel right next to
my character kept shooting straight upwards and the two eels farther away
kept missing me by my right side. At least one of them also hit the eel
right next to me. I killed the nearest eel, after which the other two just
kept missing me. My character was not invisible.
: Also, it's not just electric eels. Storm dragons also tend to shoot in
: the exact opposite direction to the character. Looks to me like it might
: be a sign problem...
>> ugh. bad side effect from tracer explosions. Fixed.
== 288. Fixed whopper of a bug with generation of fast monsters which often hung
the game (especially in areas with lots of fast monsters, like the hive).
== 289. Brent's balance patches
>> applied all, reduced missile damages by 1 to compensate. Gave daggers
>> and spears better chances to hit.
== 290. The "temporarily insulated" message is weak... it's kind of
confuing and looks a bit like a bug. Better would be a "god
protected you" message after the explosion... that would tell
both the source and the reason for the insulation.
>> agreed. Changed to post-divine blast message.
== 291. Hate to follow up to myself, but a small thing was brought to
my attention. Now that the dice for damage are one based, this
means that Magic Dart is now really the best first level spell,
this being because it uses the 3dX notation (ie dam > 100), so
it does a minimum of three damage (which isn't bad) and always
hits (which makes this too good for a spell which is very common).
So I'm suggesting that the damage for Magic Dart be converted to:
damage = 1 + (power / 2) (this is in it_use2.cc).
>> changed to 1+pow/4.
== 292. The third ability gained by followers of Zin is pestilence. This summons
a variety of bugs that hopefully will helpfully kill off whatever happens
to be bugging you.
Trouble is, every time my character uses it at least one my little
chitinous friends gets killed. Zin doesn't like that, so my character
feels guilty.
The same thing happens with the fifth ability, Summon Guardian, but
it's not so bad there. The summoned Angel (or Daeva, for fans of the
TSO) can generally take care of itself, although I did lose a Daeva to
a dragon once. Luckily it left behind a long sword of holy wrath to
assuage my guilt.
>> add a flag to god-summoned critters so that their death doesn't cause
>> piety loss. Summoned friendlies will still give piety loss; the 'good'
>> gods don't appreciate you summoning beings as cannon fodder!
>> tried to apply the god_gift flag wherever it made sense; Zin Pestilence
>> was the only place I could find.
== 293. Finally found and fixed 'critters summoned out of LOS' bug.
== 294. Fixed logic problem in quadrant_blink()
== 295. Fixed buffer overflow in acr.cc during char dumps.
== 296. Fixed minor display problem in backlight_monsters()
== 297. Added Guus' -plain and doc patches
== 298. CHMOD_PUBLIC now uses 664 instead of 666.
xx 299. Actually, there was at least the comment from the newsgroup
about elven conjurors starting with the Ice/Air book (because
they're better at Air than Earth and equal in Fire and Ice).
The actual spells tend to lean a bit more to the Fire/Ice
side so I really don't see why they shouldn't have the choice
(or rather why anyone should have this auto-picked). Adding a
selection screen and an initfile option wouldn't be that hard.
== 300. Change magic dart damage to 2+power/4
== 301.
>I'm wearing a ring of Shadows. When I try to take it off, it says
: >that it's stuck to me. When I 'v'iew it, it says that it has a curse
: >placed upon it. But it doesn't show up as cursed in my inventory
: >list, and scrolls of remove curse don't work.
:
: Oh... and if it helps at all: I killed a mummy at a certain point,
: with no apparent curse effect. This may be how the ring got cursed
>> the check for randart rings was looking for 200, but the actual
>> inv_dam value for randart rings is 201. "Pluses2" of 100 is not
>> well defined in the code... :(
== 302. Abyss go to shits after abyss_teleport()
>> wasn't setting terrain to DNGN_UNSEEN. Was using old (stupid)
>> value of 30 (white triangle!)
== 303. In fact, they seem able to sneak right up to alert monsters and still
deliver the first blow. I think that such a blow should sometimes count
as a stabbing attack, just as blows delivered to fleeing or confused
monsters currently are. Currently such attacks have a
random2(200) <= you.skills[SK_STABBING] + you.dex
chance of being stabs.
>>Gave chance if monster isn't paying attention to you (foe != MHITYOU), but
>>stab bonus is much lower (3) than stabbing a sleeping/fleeing monster.
== 304. Not sure if you saw my big report on roguelike.misc, since it hasn't
: been fixed and doesn't seem to appear on the 'to do' list. The spell
: 'Lee's Rapid Deconstruction' doesn't do any damage at present. It
: occasionally destroys the wall which is targetted, but I detonated 20
: walls next to a rat and didn't scratch it. This leaves Earth Mages
: without an area-effect damage spell, which is rather detrimental to
: their health :(.
>> Fixed. Needed subtle wrinkle in explosion map, as well as some
>> fixes to the spell itself.
== 305. Currently, if you skip the first naming screen but use the second
you can overwrite a previous game. Although this is unusual
behaviour, it's not very desirable, it should at least warn
about this and potentially give an option to load the old game.
>> fixed. good catch.
== 306. Wielding a bunch of stones and trying to throw one of them,
results in all of the stones being thrown (and potentially disappearing
as well).
>> Very, very subtle bug in beam.cc inherited from original codebase.
>> Fixed.
== 307. monster_move(monster);
// reevaluate behavior, since the monster's
// surroundings have changed (it moved)
handle_behavior(monster);
Some monsters are getting killed on their move, and then the
code in handle_behavior() will fail an ASSERT since monster->type
will be -1.
== 308. After one hit with a poison dart, "the goblin looks rather
more sickly". The non-"...more..." message is (repeatably)
never shown. - Josh PS: Could we consolidate the poison-effect-namespace to either
"ill" + "rather more ill" or "sickly" + "rather more sickly"?
I favor the former.
>> oops. simple messaging problem. Similar prob. in sticky flame.
== 309. Only one bug found - in newgame.cc (line 2222) should be used
strnicmp() instead of strncmpi(), because the second one isn't
existing function :)
From BWR:
>Actually, we should probably avoid both, I don't think they're
>very stardard (BSDish systems will use "case" over "i").
>strncmp() is POSIX (among others) so it's okay, but the case
>insensitive compare almost always causes problems (if we're going
>to use it, we should probably have it defined somewhere, so it
>can be adjusted or handled by autoconf (should we go that route)).
>> correct - neither are POSIX. However it is being used in a DOS/win32
>> section only, and strnicmp() is the proper call as Michael pointed out.
== 310. I've looked at monster pronouns and IMO (supported by dictionary)
Erica and Frances should be female and Francis should be male.
Probably also description of uniques could be slightly changed
according their gender, for example
Jessica - "An evil apprentice sorceress."
>> done.
== 311.
In either event, to get crawl to compile, the str<foo>cmp(x,y) == NULL
in initfile.cc needs to be changed to "...== 0". The line is near 520.
== 312. Change shops back to old [0][5+i] item location. Leave items
carried (ie not on grid) at 0,0. Make sure to modify link_items();
keep compatibility with old saved games.
== 313. I think giving Ogre and Troll Fighters Dodging 2 is probably in order.
== 314. Fleeing monsters were not taking advantage of the flexible movement
code (Guus)
== 315. Gave monsters a little better chance of sniffing out foes (stealthy
players will fare better). After arriving at target x,y, will do a check
for continuing on via ESP/noise/whatever.
== 316. Removed ability of monsters to see through walls. :)
== 317. : Just tried casting Tukima's dance while wielding an artifact weapon.
: I get the message "You hear a popping sound." and although my artifact
: stays in my hand, something that looks like a Shadow appears. Its
: name: 36317738 iron wands. If you 'x' it and hit '?' it says "A
: dancing weapon floating in the air." just as if the spell had worked
: right. The thing even moves and attacks like a summoned monster, and
: seems to have combat stats of some sort, since it can kill things.
: When the spell expires, it says "The weapon drops from the air." as
: normal, but the monster just ceases to exist; it doesn't leave a copy
: of the weapon behind or anything. You can even summon several of
: these "36317738 iron wands."
>> ugh, two separate logic problems in dancing_weapon(). Fixed.
xx 318. I could be wrong, but I think that the Orcish Mines had no scrolls,
potions, wands, rings, or amulets. Very odd. But since Gordon just
rewrote dungeon.cc, we should wait for reports about pr13.
>> this is working exactly as designed, if I read the original code correctly.
== 319. But I failed in my casting too often, and the
buildup of mutagenic energy had some unfortunate effects. Even after I
gained some levels in Divination, and my Success chance was up to Fair,
I failed to successfully cast the spell sufficiently often that I mutated.
So be wary of casting even second level spells.
from BWR:
We've have people getting mutations here from level one spells.
I'm thinking that at the very least we need to lower the baseline
for noticing that you're accumulating radiation... and possibly
put in some warning messages so people know that they're getting
a bit "hot" and that they need to take it easy for a while.
>> messaging much better. toned down nastiness from low level spell failure.
>> made my easter egg much less abusable.
== 321. I do wonder that Zin wasn't upset when I zapped the Angel initially.
>> Zin is stupid and can't differentiate between a hurtful and helpful
>> spell. Perhaps a small subset could be classed as obviously harmful,
>> so that if you e.g. healed or hasted the daeve it wouldn't get pissed.
>> have to be done in beam.cc, I think... any non-enchantment would be
>> classified as harmful, I think. (?) Other enchantments would have to
>> go in a big if/switch.
>> this will also help to NOT piss monsters off if you're trying to help
>> them.
== 322. 2) Item clean-up in the dungeon seems far more
aggressive than before. I've dropped items,
popped down a staircase and right back up,
only to find everything I dropped gone, gone,
gone! This would be on "cleared" levels where
the likelihood of item overload is almost nil.
Is this a change in gameplay that I missed? In
pr13, I am finding myself holding onto *everything*
because I *know* that if I drop it and leave the
level it will simply disappear ... a PITA situation
for low-strength characters wanting to stash some
extra stuff for later.
>> oops. Somehow broke item save/reload for any item dropped by player
>> or monster. Took closer look, cleaned up horrible hacky code. :P
== 324. Make random zombie generation reflect the actual level; it is currently
random.
>> no more horribly OOD zombies.
== 325. Monsters with OFFENSIVE spells in mspell[2] will still use them
on the player (sigh..)
>> fixed all cases in mon-spell.h
== 326. Accidentally doubled the number of monsters created w/ level.
== 327. : Scrolls of fear appear to be bugged. Read one, got messages saying
: that the monsters were frightened (ie, not "The blah resists."), but
: they kept moving towards me and attacking me.
== 328. In pr12, my Troll could see an unseen horror. He was not wearing any
devices that could lend him see invisible, and orcish wizards were
turning invisible earlier in the game.
>> oops. logic problem in mons_del_ench()
== 329. Sigmund and other uniques appearing multiple times
>> logic error in dungeon.cc
== 330. Magical staves are described using the old style (speed)
== 332. Monsters walk into clouds, except for intelligent ones?? Check code:
mannix writes:
Now here's an idea to which I can warm: stupid animals
thinking "where there's smoke, there's fire", and more
intelligent critters in possession of the ability to
discern betwen the two.
== 333. Monster Placement: is there a place where, if you can't find a sensible
location for a monster in a group, you just put that one anywyere?
I think that's part of what makes monsters appear in LOS ... I just
got a gnoll and two orcs.
>> stupid error in monplace.cc. Forgot that distance() function returns squared
>> values.
== 334. Shapeshifters: one turned into a Swamp Worm. This ought not happen,
as those are water-only monsters, despite their worm designation.
>> fixed. Won't let monster poly into water-based monster on land.
== 335. dungeon.cc::pick_an_altar(): needs to have a case added, near line 5988:
case BRANCH_SLIME_PITS:
case BRANCH_ECUMENICAL_TEMPLE: //jmf: ADD THIS LINE
altar_type = DNGN_FLOOR;
break;
... to prevent "bonus" altars in the Temple. This was probably the
original author's bug (i.e.: mine).
== 336. So the city-like dungeon code has some sort of an off-by-one error.
The "buildings" (squares with doors) once were separated by at least
one space of floor; no longer! Furthermore, they once didn't overlap.
The changes provide much more interesting cities, however the door
generation hasn't quite caught up. I've seen things like:
#########
####+...#
#####...#
#####...#
#########
... where it's fairly obvious what went wrong. (I discovered these
types of things when playing a gnome.)
The quick fix would be to restore the 'air' around buildings, but
IMHO that would be a loss. The new cities are so much cooler.
A more complex fix would be in two steps:
1) make sure there's a passageway around the border of the level.
A single sweep setting all those squares to floor would be fine.
>> tightened up door placement in box_room(); since both city_level()
>> and plan_4() use it, stuff works better now.
== 337.
Sticky Flame puts monsters in the player's thrall
This last one is really bizarre, because it doesn't happen
in the wizard mode compile (although I can take that character
over to the normal version and have it happen there).
It's intestesting to note that these monsters end up with
enchantment number 30, which is one less than the sticky
flame enchantments... in the wizard mode they seem to get
enchantment number 60 (which is one less than the other
set of monster sticky flame enchantments... also known
as POISON_IV). I'm wondering if anyone else can verify
this.
I suspect that there's some problems in the enchantment system, which
could be responsible for both of these. Looking at sticky flame today
it seems that my sticky flame ends up as ENCH_POISON_III or _IV
(59 or 60) regardless of playing crawl or wizcrawl. The in-thrall
thing seems to not be happening right now. It occurs to me that I
never actually got "burn" messages in pr12 when I was using napalm
(I hit an Ice Dragon about six times with it and it never seemed
to take any damage after the initial hit)... looking at the code now,
I'm pretty sure I should have been (and that any appearance of working
in the recent past might have in fact been delayed poisoning).
>> Fixed. sticky_flame_monster() was badly broken. gawd I bunged that up.
== 338. As a side note, I now backstab bats quick often (I take it that
this is a side effect of the new backstabing situtation). I'm
not really sure I should be able to do that (or more to the point,
does this mean I can expect regular backstabbing of ball lightning
and spatial vortices which might be a bigger problem).
== 339. In Win32 pr13, if you set class = C in init.txt, your character will be a
priest ('c') instead of a wanderer ('C'). This happens regardless of if
your race allows wanderers.
>> bug in initfile.cc
== 340. Basically, nowdays if you turn a bat into an undead slave,
it suddenly comes to it's senses and becomes an inadvertant
killing machine (well against monsters that can't easily kill
it in one hit), as it walks straight up to them and hits them
3 or 4 times a round. Undead bats should still flutter around
(that's what keeps them in check considering their amazing speed).
== 341. I've run into some surprisingly powerful ghosts in pr13.
They are only overly powerful in non-wizard compiles; the
two times I switched to a wizard-compile they acted normal. One
was casting MS_ENERGY_BOLT instead of either magic
dart or throw flame (the two spells that character knew).
>> very bad indexing bug in ghost loading. Who knows what else
>> this was screwing up.. :P
== 342. Some attempts to animate a skeleton result in a puff of smoke in addition
(I think) to a new slave.
== 343. We've had several reports here about necromancers zombies and skeletons
actually getting poisoned from time to time by monsters. As far as
I can tell this really shouldn't be happening.
>> probably a side-effect of messed up enchantment code.
xx 344. If you start a game with -plain, Save, then continue the game without -plain,
then the displayed map for remembered locations uses the -plain characters.
If you start a game without -plain, Save, then continue the game with -plain,
then the displayed map for remembered locations uses the extended characters.
== 345. I haven't heard this one mentioned, but when wielding an ego item you
typically get this:
d - an elven short sword (weapon in hand)
Wielding this short sword is a little awkward.
It softly glows with a divine radiance!
The elven short sword should be id'd as "holy wrath" in the first line...
it was unid'd when I did this, so it looks like a simple case of moving
the identify code to a place before the printing.
xx 346. Breathing fire via the mutation prints this unnecessary line:
" .\n"
xx 347. I got a segfault when entering the abyss; wasn't playing under
gdb, for some reason, so didn't get a stackdump. Sorry.
== 348. Brent's XP patches
== 349. Josh's sludge elf, etc patches
== 350. In mon_util.c::define_monsters(), there are some mystical values
assigned to m2_sec, some of which can be made more apparent by
using the appropriate MST_* values.
== 351. Actually, a thought just occured to me that the new stabbing
code that gives occasional backstabs against flutterers, is
probably very annoying to Paladins. We might need at least an
additional check to prevent some of the excusable backstabs from
being naughty... perhaps it's just as simple as only making
attacks on fleeing, sleeping, and confused monsters call naughty
(in which case, it might be reasonable to remove the random
chance for TSO applying penance).
One of the problems with confusion based stabbing is that some
monsters are created with it, and most of those probably shouldn't
be backstabable (various voritices, ball lightning, vapours). So
maybe we might need some way of distinguishing if the stab is
appropriate (or if not that, we should probably leave them off the
above list for naughtiness).
>> new code to void backstabbing against flutterers (solely because
>> they are flutterers) and perma-confused critters (solely because
>> of confusion).
== 352. in check_mons_magres(), the return value for the special "< 6"
bonus is backwards. I'm probably to blame for not noticing that
the function is logically backwards, I probably got confused by
one of the cases in spells4.cc which use this function backwards
(a few of which are my own).
== 353. I added a "gotoxy( 18, 9 )" to the top of our direction function,
which nicely solved the porblem where the cursor was left at the
end of a prompt (ie for conjure flame).
xx 354. We've had a report of skeletons picking up skeletons.
xx 355. I've had several people reporting some oddness when returning
to a level via a straight up and down... things like monsters
completely disappearing and traps being created.
== 356. pets seem to try and track the target monster even when they're
on the wrong level. Basically, if you go down stairs and tell
your pets to attack something and the go upstairs to try and
bring more pets down, the upstairs pets will be running around
wildly... going downstairs and killing the target made the
upstairs pets return to the master homing behaviour.
>> simple fix. Set pet_target to MHITNOT on level change.
== 357. The lastest in the bizarre happenings around here was a friendly
player ghost... wonderful entertainment as it would should out
things like "Run, I'll cover you" and such.
>> always a possible problem; some fields were left uninitialized from
>> monster_cleanup(), and never initialized in the ghost code!!
== 358. Removed digging ability from Disrupt()
== 359. Added 'random' beam that affects each cell as one of { fire,
cold, magic, electricity, poison, negative energy, acid }. Only
used in my easter egg so far.
== 360. Maybe we should instead be considering shifting the greater
vaults down to level 10+, and the lesser vaults to 7+ (there
are many more mini-vaults (and better quality these days, and
this does have the advantage removing dlev 4 guardian naga
encounters... we've had several).
== 361. Okay, compiled it up and the only problem was that link_items() is
declared both static and extern (removed the static prototype).
== 362. One other little problem: The magic resistance check for monsters
is now correct, but there are some inappropriate calls to it over
in spells4.cc (in particular Twist is currently unusable).
>> reversed the logic.. this was just too non-intuitive and backwards.
== 363. Move the Crawl.mcp file out of the source folder.
== 364. Add "#define ESCAPE 0x1B" to defines.h
== 365. In eat_food() in food.cc add some code before the "You don't have
any such object." case:
if (keyin == ESCAPE)
return;
== 366. lava_spaces and water_spaces in builder_monsters() in dungeon.cc
aren't inited. (This looks like a nasty bug).
6) In quadrant_blink() in spells4.cc there's a line that reads "while
(!done && random2(100) < pow--);". Please move the semi-colon to its
own line.
== 367. Snakes now flutter like bats did. They also display the "not interested
in you" message when e'x'amined.
Josh:
I've had a batty frog and batty snake. Both had the old
'not interested in you' inspection message. Most frogs
and snakes were not batty.
>> oops. Monster->flags was not being set to 0 at monster creation.
== 368. in monstuff.cc::handle_spell(), the CONFUSION && !vapour
should probably be changed to use M_CONFUSION to be generic.
== 369. the contamination messages should probably be in the warning channel
== 370. wizard's hats say they give AC, but they don't
xx 371.Fireballs are rather larger than I remember.
Mana explosions from magic accumulation are the same size (very big).
I'm pretty sure the former is unintentional; is the latter?
== 372. There's an illiterate "it's" in the description of Silence. The word
ought to be "its". (This is a peeve of mine. "We hate's them, ye's
presciou's!")
beam.cc::2753
- hearMsg = "You hear a gentle \'poof\'";
+ hearMsg = "You hear a gentle \'poof\'.";
== 373. I haven't seen any miscast effects except for the irradiation one.
I think this is due to a loop in spell.cc which tries to figure out
which school of miscast-effects applies to a given spell. The loop is
a bit past line 300 and seems to ignore the new 'bitmap' representation
of spell-schools. I know that miscast_effects is getting bogus sptyps.
Full, real fix:
unsigned int sptype = 0;
do {
sptype = 1 << (random2(SPTYP_LAST_EXPONENT+1));
} while (!spell_typematch(spc2, sptype));
== 374.
newgame.cc::3410 + if (you.species == SP_HILL_DWARF ||
+ you.species == SP_MOUNTAIN_DWARF)
+ you.skills[SK_MACES_FLAILS] = 1;
+ else
you.skills[SK_SHORT_BLADES] = 1;
== 375. Later in newgame.cc: Now that Sludge Elves suck at enchantments
and conjurations, we could remove the options for them to be Conjurers,
Reavers, Enchanters and Crusaders.
** 376. Something is still deleting the ABJ_xx enchantment for summoned
monsters. Don't know what though.
== 377. Fixed magic resistance of normal & small snakes.
== 378. case CLOUD_POISON:
case CLOUD_POISON_MON:
if (mons_res_poison(monster->type) > 0)
continue;
if (monster->hit_points >= random2avg(37, 4))
continue;
break;
THIS IS WRONG VVV
// dumb monsters can be fooled by smoke
if (mons_intel(monster->type) > I_ANIMAL || coinflip())
continue;
// this isn't harmful, but dumb critters might think so.
case CLOUD_GREY_SMOKE:
case CLOUD_GREY_SMOKE_MON:
if (mons_res_fire(monster->type) > 0
|| (monster->inv[MSLOT_ARMOUR] != NON_ITEM
&& mitm.special[monster->inv[MSLOT_ARMOUR]] % 30
== SPARM_FIRE_RESISTANCE))
{
continue;
}
== 379. Brent's 'friend-brand' patch
== 380. Undead should *not* have morale failures, nor should the dumber ones avoid
flaming clouds of death (brown & white 'z's & 'Z's). Skeletal warriors
might avoid FCoD since they do make one other intelligent decision (wrt/
casting their spell), but they ought never run away.
>> who says running away is due to morale failure?
>> REALLY dumb (I_PLANT) creatures will now walk through harmful clouds.
>> this includes most of the shambling (mindless) undead
== 381. quadrant_blink() from Brent
Brent Ross <bwross@c...>
In this method, what we're going to try for is the best match, and
allow the number of choices to be based on power. The basic hope
is that while even high power characters have to put up with some
randomness, the diameter of the cone decreases making it more
reliable.
let line = line segment extending out from player in the chosen dir
let best = NO_SQUARE
for i = 1 to f(power)
targ = random nearby square
if (dist( targ, line ) < dist( best, line)) then
best = targ
else if (dist( targ, line ) == dist( best, line )) then
// Not really sure we want this part, maybe we should throw in
// a random to keep the distance sane.
if (dist( targ, player ) > dist( best, player )) then
best = targ
endif
endif
endfor
if (best == NO_SQUARE)
mpr( "teleport control screwed up" )
random_blink
else
player = best
endif
== 382. De-twink wanderers
>> undefined USE_SPELLCASTER_AND_RANGER_WANDERER_TEMPLATES until we have
>> "hedge" magic.
== 383. Check that all spell books are listed for generation.. at least war chants
is missing.
== 384. Add "Blowgun" (launcher) and "needle" (ammo)
: basically, go through all code looking for BOW, add blowgun
: go through all code looking for ARROW, add needle
: assassins now start w/ blowgun & needles
except for deep elves; they get hand xbows since they tend to
suck at HTH and will rely more on ranged damage.
: some chance for needles of Foo? (dungeon.cc) just poisoned
: some chance for blowguns of Foo? (dungeon.cc) of venom
: must remember to add in to item generation tables. :)
: change throw_it() so that blowguns and thrown darts are
very quiet; all others make a noise - check fight.cc for
a good noise value. Note that alert() is simply not called.
: give a couple monsters blowguns & needles to start
: needles get damaged far less often (but make them rarer;
maybe only carried by assassinish-monsters.
: Needle trap at higher levels; could be a source of needles?
TODO: dungeon.cc::give_item() . which monsters have bguns/needles?
other files not searched for WPN_BOW and MI_ARROW (our template for
this stuff):
== 385. fixed logic problem in cast_sandblast()
== 386. If I cast a fire spell at something in the water, it leaves a trail of
steam behind it. A fireball should have the same effect (but of course
over a larger area)
== 387. Josh' new diff (mostly Xom acts)
== 388. A Skeletal Warrior just drank a potion of healing. This strikes me as
wrong, from both pseudo-physiological and gameplay perspectives.
== 389. I saw hellwing which polymorphed jackal to lava fish. Probably
this is not bug but we should consider this.
== 390. We've had
someone complain here about his Ogre not being able to wear one.
I thought we had decided that caps and wizard hats were wearable
by all characters, regardless of headsize or horns.
Anyone remember?
>> there's a comment in item_use about caps & wiz hats being
>> wearable by anyone "unless their head is too big (ogres, etc)"
== 391. I've found a number of eggplants in pr15, err, 4.1.15
(these were supposed to be MI_NEEDLE.. what happened!?)
== 392.
I made it to the Abyss... Now I'm stuck in this loop in
dungeon::define_zombie(): while(true)
{
// this limit can be updated if mons->number goes >8 bits..
test = random2(182); // not guaranteed to be valid, so..
cls = mons_charclass(test);
if (cls == MONS_PROGRAM_BUG || mons_rarity(cls) == 0)
continue;
>> VERY tricky to fix correctly.. no wonder it was never done.
(which monsters to allow as zombies in the abyss?)
BWR:
Or perhaps just picks with the base level set as high as
possible... which will allow for Zombie Titans (which are high
enough level that they're never "naturally" generated, I believ
Well simulacrums are out right away. They don't appear naturally
anywhere, due to the fact they sublimate away. On a similar note,
ball lightning shouldn't be generated anywhere, but I believe I
accidentally put them in the Realm of Zot... short lived creatures
should have to be summoned in. As for zombie/skeletons or even spectres (which I don't believe
are generated anywhere.... Spectral Warriors are generated,
but they're like Skeletal Dragons in that they're completely
different... don't think I've ever seen a Spectral "Thing"
in any dungeon, at least not one I didn't create myself) are
probably okay in the abyss... there are things like abominations,
necrophages, skeletal dragons/warriors there already. Spectres
might also be interesting in the Realm of Zot.
== 393. Oh, dear. I think I might have left in a debugging bit that changes _all_
generated traps to needle traps - they're supposed to be fairly rare, and only
seen below level 3!
== 394. It looks like the logic in poison_monster() needs adjusting, too, if you're
getting credit for monsters done in by the poison from needle traps. Ah well.
== 395. // * fixed: magical staves now described with new speed
Actually, there's still one problem here. The '%' needs to be doubled,
since the description string will eventually be fired through cprintf()...
it currently gets dropped in both cases (weapon and stave).
xx 396. An eloquent method of handling this would be to 'queue' shouting messages
between character actions and conflating multiple shouts into a single
message ("Several <foo>s shout" or whatever), possibly conflating by
monster type ("Several <foo>s shout out! A <bar> yelps!") so that the
player can be alerted to unique shouts and/or get the *flavor* of all
the various bellowing beasties.
== 397. Make zombie monsters appear a few levels (3-4?) earlier than their non-zombie
counterparts
== 398.
> I was blowing needles at an orc wizard, and he very politely gathered
> all the needles up for me. I appreciated him doing that rather than
> casting those nasty spells at me. :)
Now, I thought that logic had been fixed (at least, in the case
of darts) such that monsters with potent HTH or spell attacks would
not lower themselves to gather scattered items for characters :P
>> fixed better. Monsters won't pick up if there's not much there, they're
>> not wandering, and they already have ammo. Fleeing monsters never stop
>> to pick up ammo.
== 399. Needle traps will poison the player even if he or she resists poison.
xx 400. Some first level spells won't allow the player to target him- or herself.
This means that a player can't use those spells to see if he or she
resists their damage type. Knowing if one resists a damage type is useful
when trying on mysterious rings.
>> need some restructuring to do this; burn_freeze() isn't set up to
>> actually affect the player. :P
== 401. Personally,
I think Ijyb should probably get an XP modifier of 5 (and even
then is still worth 40 xp)
== 403.
I think some kind of notice should be given, when body wich is carried
becomes rottens. And ghouls should definetly be able to see when
chunks of meat become rotten. As should everyone else, I think.
>>mv: added appropriate messages
== 404. My Draconian monk (not so difficult as you might think) got mangled
by a goblin with seemingly limitless ammount of scrolls of summoning.
He summoned like 5-7 abdominations before my monk got killed. And
this was at level 2. Extremely bad luck or bug?
== 405. Crash in pr14
This occurred in the Realm of Zot, while attacking an Orb of Fire, which had
just exploded.
>> very nasty. Fleeing monsters with "emergency" spells requiring tracers
>> would crash the game.
xx 406.
When using Stone Skin with Dragonian it says "Your skin feels harder"
and "Your skin feels tender" instead of "Your scales feel harder" and
"You scales feel softer".
>> These guys still have skin underneath all those scales..
== 407. Fix quadrant blink again:
Which gives us the one-step formula:
dist = abs( (y - you.y_pos) * (tx - you.x_pos)
- (x - you.x_pos) * (ty - you.y_pos) ) / s
where (x,y) is the player's targeted square/vector,
(tx,ty) is the spell's targeted square,
(you.x_pos, you.y_pos) is the player's position,
and s is the distance between (x,y) and (you.x_pos, you.y_pos).
The important thing to notice here is that s is constant for all
of the trials (one or root-2), and since we don't care about
an accurate measurement (only a relative one between trials),
we can reduce it to one
== 408. Although, 'f' does fire needles correctly, the ')' command doesn't
actually show that this is the case (see command.cc::list_weapons()).
== 409. Poisoned needle gives messages in bad order. Patch from Guus.
== 410. > I just noticed that my character has a Dex of 63. I've chosen every
> ability increase to be in dex, and he occasionally wields an artefact
> dagger that is +3 to dex. I don't think it relates to save files,
> as I haven't saved the game in three days.
The stat growth is caused by autobutchering when the butchering weapon
has a stat bonus. I get the stat bonus when I wield the weapon, but do
not relinquish the bonus when I unwield it.
>> ewww. this was ugly.
xx 411. I was playing a Spriggan Transmuter when i entered the mines. I was
overwhelmed by +10 Orcs so i went back up. One orc followed me. I
then started running away until i was several spaces away, turned and
cast disrupt killing the orc. As the orc died the stairs to the
mines disappeared.
>> can't reproduce.
== 412. I've been trying out Chaos Knights and the critters that Xom summons
for you have this annoying habit of polymorphing the bad guys to
*way* OOD monsters. For example, my last knight was level 3 and is
listed at -19/28 HPs in the morgue file. This was one spell and he
was at full health when it happened. Although this was before the
latest patch so perhaps it's related to the other OOD problems.
== 413. >I've seen that disorder message a few times too. The first time the
>game hung when I tried to go back up to that level. After that I
>avoided loading those levels again. :-) There really needs to be
>better sanity checking here. It's not right that a bad level can be
>generated and only found when the player stumbles across a bad pile
>of items.
From what I can remember, this kind of thing is almost
certainly the result of bugs in either the monster inventory
code or the code responsible for placing monster corpses on
death. The behaviour where the player picks up an item and
it doesn't get listed in the inventory tended to be caused
by the existence of a link to an item with a quantity of 0
(this also causes "a scrolls labelled SDFKLSFD" - when the
quantity is zero it puts an 's' on 'scroll' but leaves the 'a'
in front).
== 414. Characters cannot exercise fighting, weapon, or unarmed combat skills
against plants/fungi, so perhaps they shouldn't exercise stabbing.
And plants/fungi should probably always appear disinterested.
This assassin has also been paralyzing monsters, but can't seem to stab
one afterwards.
== 415. My assassin carefully approached his victim:
Move the cursor around to observe a square.
Press '?' for a monster description.
A plant.
It doesn't appear to be interested in you.
Floor.
>> obviously need some kind of data-driven thingie here for stabbing / paying
>> attention.
== 416. I fire a "Disrupt" at a worm just off screen (as I'm running away):
You kill the worm!
Nothing appears to happen.
== 417. He was standing on a down stairwell. He had full view of each of the
adjacent squares, but not all of distance 2 squares. He was at a little
over half his hp, and I hit '5' to rest and recover.
Suddenly there was a bellow, and a hydra was beside him. The hydra
proceeded to lay the smack down, slaying the poor assassin. I guess
it's poetic justice, since the assassin slew quite a few monsters
by suddenly appearing beside them, fiery blade in hand.
>> almost definitely a result of the new 'near stairs' code. Needs some
>> refinement, I suppose. (evil grin)
== 418. Elyvilon got upset when a needle trap killed a monster just after
I had prayed. :)
== 419. Over the course of the game I obtained around a dozen blowguns and only
one crossbow, so they may be too numerous.
(most blowguns came from the ground)
== 420. Two minor quibbles on spell descriptions.
a) Unlike the other brand weapon spell dscriptionss, the Poison Weapon
spell description does not mention that the spell won't work on
branded weapons.
b) The description of the Disrupt spell says that the spell "disrupts the
matter of another creature's body", but the spell also affects
creatures with non-material bodies.
== 421. Fixed formatting problem with randart descriptions
== 422. Changed slaying to be a little less powerful.
== 423. Butchering with bare hands and a short blade in slot a doesn't
switch back to bare hands. (Naturally, I'm using the experimental
auto switch when butchering -setting.)
== 424. mons_speed() should be extern, remove static declaration from mon-util.
** 425. I have a ring of Baldness that somehow got cursed and now I am
stuck with it. Scrolls of remove curse have no effect.
Its not bad ring, but the increased metabolism isn't nice.
== 426. More inventory problems:
while playing 4.0.0b16 I found two bugs:
1) when picking up items from the floor, after picking them up - it says "no
more items" (but it picks up the item). This bug is strange it happens only
at the very beginning of the game. For some reason after descending to Level
2 it has stopped from happening.
2) picking up items from the same type: when you have say 2-chokos and there
is on the floor another one then when you stand on top of it - it says
3-chokos(it takes into account the ones you have in your inventory). Or the
other solution is that when you pickit up from the floor it replaces your
previous chokos with the last amount of that type picked up. (Because I had
2 chokos and after picking 3 chokos = I got 3, so it could be either
problem...dunno)
== 427. Fix descrip. for rings of slaying.
== 428. I met monsters with infinite potions. I hope it's also fixed.
== 429.
in monstuff.cc::handle_nearby_ability() should be also handled
monsters behaviour - BEH_WANDER and BEH_SEEK, beacuse monsters speak
even if they don't know about player. Also it looks that Giant
eyeball can stare at player even if he isn't noticed (or if he is
invisible, but it's probably feature)
== 430. Michal's patch (new unrands?)
>> mv: now included - not only unrands but mainly clean-ups and minor upgrades
== 431. In view.cc:viewwindow2() was buffy changed from unsigned char to
unsigned short (I'm talking about
FixedVector <unsigned char, BUFFER_SIZE> buffy).
But at least with my compiler it doesn't work and viewwindow2()
doesn't show anything (only black screen). When I changed buffy back
to unsigned char it started to work again.
== 432. Giant eyeballs no longer stare at friends.
== 433. You throw a dart.
You throw a dart.
You throw a poisoned orcish dart.
You shoot a poisoned needle.
You shoot a poisoned needle.
You hear a grinding noise.
... with a dex 18 / darts 7 / throwing 4 player!
This is repeatable, and at times, I managed to
clear a rock wall with just two needles!!! Couple
this with the durability of needles, and players
have a poor-man's dig spell at their disposal.
== 434.
I think I will change this condition so that a
monster with no ammo won't bother picking any up,
unless their melee attack really sucks.
== 435.
You destroy the shapeshifter zombie!
I sneak up on a defenseless cockroach and crush it with
my quarterstaff, only to be messaged that my character's
stabbing skill has increased. Is is just me, or does the
idea of stabbing with a quarterstaff seem a bit off? I
weakly suggest changing the name of the skill to something
less tied to impaling weapon types. "Ambush" skill or
"Bushwhack" skill or something similar.
>> no more shapeshifter zombies. Improved messaging for stabbing.
** 436.
Hi,
Could you add a description of the / and * keys to the help screen? Keypad is
not always useable, especially not with ctrl and shift keys, this might help
some people. Patch attached.
== 437.
Note the extra space before the period:
Methea's ghost stares at you . You feel cold.
This is a common construction used (I presume)
in mon_speak() [or whatever]. There should be
a comma placed after the verb ['begs' in this
case] for grammar's sake:
Methea's ghost begs "Please don't hurt me!"
== 439.
Package: crawl
Version: 1:4.0.0beta16-1
Severity: minor
Another small upstream gameplay issue. In the context of a rat I had
summoned attacking a kobold which was wielding a poisoned dagger:
The rat hits the kobold.
The rat hits the kobold!
The kobold hits the rat with a runed dagger!
The rat looks ill.
You kill the rat!
That felt strangely unrewarding.
The rat's corpse disappears in a puff of smoke!
The rat was killed by the kobold (via poison), not by me, but the messages
seem to indicate I killed it.
This may be very tricky to reproduce, unfortunately :(
== 440.
> * removed: no more spellcasting wanderers, until such time as we
> have some reasonable "hedge magic", which I will not add before
> release.
A healthy percentage of my wanderers still start out with magic
skills.
>> but not spells.
== 442. Repel undead doesn't seem to actually repel the undead.
>> mv: fixed
== 443. The enslaved stay enslaved even when you attack them.
== 444. Change 'points' to 'point' if points needed == 1 in 'C' message
== 445.
This is me and a summoned zombie vs. a goblin:
You miss the goblin.
The goblin hits you with a club!
The giant cockroach zombie misses the goblin.
The goblin fails to defend itself.
You kill the goblin!
>> very possible. Goblin was concentrating on the cockroach (lucky
you!)
== 446. Add ???'s patch for FreeBSD support
== 447. Zombie generation hangs in the various hells, the crypt, and probably
slime pits, ecu. temple, and others.
>> think I got all cases of levels with no zombifiable native life.
== 448. Monster polymorph can hang in HoB:
>> only valid monster for poly in HoB is Dancing weapon, which is EXPLICITLY
NOT a valid poly target. So it hangs. Duh!
== 449. Shapeshifters no longer gain the extra abilities (spells, specials)
of their forms (they used to - I considered this a bug).
== 450. Incredibly, monster enchantments were not being reset when a new level
was generated. This is an absolute showstopper and has probably corrupted all
games in progess. Most notable with permanent enchantments like shapeshifter -
this is what caused the "shapeshifter" dancing weapons that Josh (indirectly)
reported.
** 451. As you read the scroll, it crumbles to dust.
Your club glows black for a moment.
Drop which item?
You drop a +0 dwarven hand axe.
You are empty-handed.
-- 452.
I hit an assert failure after reading a scroll of curse armour. From the
traceback, we see an immediate problem at the call to itemname::in_name()
at line 3358 of item_use.cc. The object to be named is -1.
#6 0x80b1797 in in_name (inn=-1, des=4 '\004',
str_pass=0x825b9a0 "a +1,+0 elven long sword") at itemname.cc:69
#7 0x80b125b in read_scroll () at item_use.cc:3358
#8 0x8050e2d in input () at acr.cc:880
Doing a quick compare between the pr16 & pr17 code, I think this line:
ok_to_curse[i] == (you.equip[i] != -1
&& you.inv_plus[you.equip[i]] < 130);
should be:
ok_to_curse[i] = (you.equip[i] != -1
&& you.inv_plus[you.equip[i]] <= 130);
** 453.
DOS, 486sx
4.1.16 Floating above a (dart) trap discovers it but gives no message.
I'd like to see a message when Coronas wear out.
>> mv: added
4.1.17 Loading the game; Okawaru says: Welcome, disciple.
A monster called "a human" was displayed as a darker (non-visible)
floor tile.
>> mv: fixed
** 454 .Goblins and orcs still get infinite potions of healing??
** 455. I'm playing Crawl pr17 (I double-checked this time) under Solaris, and I just
got the "Too many items" bug with a minotaur monk. It had to do with a
cursed runed leather armor that I was carrying. I had a bunch of stuff in
my inventory, and read a scroll of detect curse (this is how I discovered
that the armor was cursed). So I dropped the armor and moved to another
spot. There I dropped some weapons that I wasn't interested in. I stepped
back to this spot later, there's a cursed runed leather armor. There's also
a cursed runed leather armor on the spot where I actually dropped it. I
picked one up and dropped in on the other, looked, and "Too many items." The
game hung when I tried to save. :^/
** 456. I was playing the same minotaur monk (I was able to salvage the game) when I
saw what I thought was a statue (an '8'). When I looked at it, I saw:
You see 26 !questionable item (c100,t0,p0,p(2)0,d0:q26)s here.
** 457.
I was wandering along when I met a hobgoblin. I kill him and decide to pick
up his weapon to see if it's good. I then get "do you want to pick up
hobgoblin corpse (y/n/a/q)"(or something like that). I type no. "do you
want to pick up hobgoblin corpse" No. "do you want... " no ad nauseum. I
give up and press q the game crashes. I restart and load the autosave.
Same thing happens. I this time press a and get
x - a hobgoblin corpse
x - a hobgoblin corpse
x - a hobgoblin corpse etc
It won't stop doing that
Yours
William Hull
Another one:
at another time there was this situation:
###
@g! the potion is yellow
###
###
@!! after killing the goblin,a second yellow potion appeared
###
but walking over both just gave me the msg "m - a yellow potion" twice.
afterwards i had just one yellow potion in my pack.
(more)
The item bug (duplicate items and potential lockup) seems to happen whenever
a monster picks something up off the floor. The most recent incident is
typical (at least in my games).
#'####
#!
# ###
#K#
#
<@ ###
Near the door is an emulsified red potion. After I kill the kobold (who had
previously been wandering around, i.e. he wasn't asleep), I find that he was
carrying an emulsifed red potion. Coincidence? I think not. In this
instance, I left the potion where it was sitting and checked out the potion
near the door. Underneath the potion is a kobold corpse. I go up the stairs
to the previous level, then return; the corpse and potion near the door are
gone. From previous experience, I know that picking up both potions/corpses
would have left me with just one potion/corpse in my inventory (assuming I
didn't have any before), and picking up one potion/corpse and dropping it
on top of the other potion/corpse will create the "Too many items" bug, and
cause the game to hang when saving the level.
(more)
Sorry to follow up on my own post, but I was browsing through the sources and
I noticed that in pickup() in items.cc, relink_cells() is called after the
player successfully picks up an item off of the floor. No such function is
called in handle_pickup() in monstuff.cc. Perhaps handle_pickup() should
call relink_cells() (which we know works) instead of trying to update the
igrd array itself.
-- 458. My char with some stabbing skill stabbed a mimic wich was nerly dead
after many rounds of battle. I know there is bonus when attacking a
fleeing moster, but mimics cannot flee.
>> fixed. Immobile monsters cannot flee.
** 459. An artifact weapon of holy wrath does allow a demonspawn to wield it, wich
is bug or maybe not.
** 460. ..to Sif Muna, so I went back to the Temple and converted. Little did I know
that Vehumet would hold a grudge. I survived a blue demon, an abomination,
and several magical blasts, but Vehumet eventually blasted me when I was low
on HP and did me in. *sigh*
Anyway, here's the buglet: the high score list claims that my character was
killed by bad targeting.
-- 461. There is another one in monstuff.cc in handle_scroll when checking for
negative numbers of scrolls...
And yes it would be cool if they removed all the warnings (or at least
most of them). Removing unused variables would be a first step.
>>
** 462. In the dos binary of Crawl 17, when running the game with "crawl -plain"
option, the game screen is totally black. I still get the player statistics
and messages, but the map display that you normally see is blacked out.
This is bad because the normal crawl display (without -plain) is a bit buggy
for me. (no cursor under the character). I also kinda prefer the #
character for walls (got used to ADOM) :)
xx 463. Beam tracers: tweak to take into account what might happen if they _miss_.
** 464. Level draining can cause -1/-1 -magic when used against ogre (or maybe
troll) character.
== 465. Automatic weapon change when dissectiong gives a litle funny messages when
berserk:
Switching to your swap slot weapon.
You are too berserk!
Maybe you should try using a sharper implement.
Switching back to a - the uncursed great mace "Res".
>> mv: fixed
xx 466. My deep elf summoner cast summon demon from a staff of summoning (A
great item for a starting summoner.), and received an orange demon,
which proceded to attack me. None of the other demons had attacked. Is
this a bug, or is there some way to make demons hostile?
>> 1 in 4 chance of hostile demon.
-- 467. Ettins have no description. I just met an elf and I think those should only
appear as corpses. It had description "A monster whose description has yet
to be written.".
== 468. Invalid polymorph targets (this has been reported several times).
There are several generic monster types which are _not_ valid poly.
targets: 'human' and 'elf' being two of the more common results when
polymorphing stuff. And yet, 'human' should probably be given some
generic statistics and then allowed as a target (it makes sense, after
all).
>> mv: fixed now
|