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
|
+--------------------------------------------------------+
| CCC OOO N N QQQ U U EEEEE SSSS TTTTT |
| C C O O NN N Q Q U U E S T |
| C O O N N N Q Q U U EEE SSS T |
| C C O O N NN Q Q U U E S T |
| CCC OOO N N QQ Q UUU EEEEE SSSS T |
+--------------------------------------------------------+
Conquest HISTORY
Version 8.1 (stable)
- changes since the last development release (8.0.1q)
- fixed bad bug that could prevent a ship from seeing enemy
torps that were fired at it from >ACCINFO_DIST away,
depending on the firing ship's war settings.
Ouch.
- block updates when a RELOAD is occuring to prevent
possbility of sending a corrupt packet stream. This could
also happen when starting a client recording.
- fixed problem with around() and round() which depend on
BSD rint(). rint() seems to screw up rounding when the
fractional part is exactly .5 - rounding down on even
numbers, rounding up on odd. How odd. Now use our own
rounding function that always does the right thing.
- the wrong team was logged as the geno'd team to the logfile.
- remove code that killed armies on ships belonging to a
geno'd team. I did not expect that code would cause a war
in itself :)
- here is a brief overview of major features/changes since
last stable release (8.0.1)
- GLUT based OpenGL client, conquestgl.
- the conqreplay program is gone, as the clients, conquest
(curses) and conquestgl (OpenGL) are now used to replay
.cqr files via the '-P <cqrfile>' cmdline option.
- The game protocol changed (in devel version 8.0.1j). This
protocol corrects some shortcomings in the 8.0.1 protocol
(like doomsday, planet realness, etc), and now provides
for client-side computation of torpedo and planet
movement. This makes the game smoother, particularly in
conquestgl, and significantly cuts down on the network
bandwidth required.
- a variety of game related bugs fixed, including, but not
limited to:
- doomsday protocol was 'missing'.
- planet 'realness' was never propagated to a client.
- geno's against the feds were rarely counted.
- Slingshot flag could be bypassed.
- a planet's army count is sent immediately to a newly
scanning ship.
- a bug in system entry selection could cause you
to get stuck in Murisak when entering the game.
- several lock contention, and signal interrupt
issues/races fixed.
- FEEDBACK messages are now sent directly to the client
without making a round trip through the common block.
- UDP support (auto-negotiated, but still perhaps a bit
weak) for ship motion data.
- UDP support can be disabled by specifying the '-u'
option to the client.
- Improve TCP performance via TCP_NODELAY.
- use CTL-R in the cockpit to force a complete packet
refresh from the server.
- new user options (~/.conquestrc)
- 'do_enemyshipbox' - when set to 'true', will draw a 1
pixel red square around enemy ships in the LR/SR views.
(GL client only).
- 'do_draw_viewerbg' - define this as 'true' if you want
to see the rather attractive background image (Hubble
Ultra Deep Field) displayed in the viewer. (GL client
only).
- conqdriv
- conqdriv now updates planet positions every 10th/sec.
Previously these were only updated every 5 seconds.
This provides much smoother planet movement, especially
in the GL client.
- conqdriv now updates a ship's orbital position every
10th/sec rather than 1/sec. This makes orbiting
planets much smoother.
- meta server/protocol changes
- The meta protocol has been updated to support new
'server_contact' and 'localtime' fields.
- the meta server now sorts the server list by the number
of currently active players, rather than the server
registration order.
- meta selection code in client can now differentiate
between incompatible servers.
- fixed a bug where the meta server could not distinguish
between multiple servers that were running on the same
host, but listening on different ports.
- much code restructuring, new libraries, removal of dead code.
- The rest of this section are the devel release notes leading
up to this stable release. Probably uninteresting unless
you want some more details :)
# 8.0.1q 12/11/2004 (devel)
- FEEDBACK messages (beaming/bombing, etc) are now sent
directly from the server rather than being enqueued into the
common block's message ring for later delivery. This avoids
alot of uneccessary lock contention, and makes sure the
client gets feedback messages quickly, without making a trip
through the common block.
- a server's client update interrupts are now blocked when a
lock is aquired, and unblocked when the lock is released.
This avoids some potential races that could cause a lock to
be held too long, or to be improperly interrupted.
- fixed a couple of problems with counting geno's. Reported
by Cat. Fed geno's were almost never counted properly.
- when couping, re-couped planets should not be marked
scannable by anything other than the coup'ing team.
- when cloaked and in orbit, approximate location data was not
available to other ships as it should be for any cloaked
ship that is moving.
- When a team is geno'd, all armies of that team still
residing on live ships are also destroyed. A message is
sent to a team when it is genocided notifying them of this.
- semaphore interface cleaned up
- fixed potential core in GL.c when padding message lines.
This could happen most often when getting (i)nfo or locking
onto a planet.
- recording/playback of planet 'realness' was broken. Now it
isn't.
# 8.0.1p 11/21/2004 (devel)
- added ping capability. The GL client (conquestgl) will now
ping the server every 2 seconds. This measures the average
TCP round-trip time (in ms) to the server and back. To see
the ping time, enable the status line in the cockpit by
typing 'ALT-S' when playing. Note, this is total round-trip
time.
- update meta protocol to add 'contact' - (server operator
contact), and 'walltime' (local server time) to the meta
protocol. The Meta protocol version is now at 2. The meta
protocol is backward compatible with all servers and
clients so there should be no compatibility problems.
With servers and clients that support the version 2 meta
protocol, a check is now also done in the client's Server
Select page to ensure that you will only be allowed to
connect to servers that are protocol compatible with your
client. Incompatible servers will be highlighted in blue on
the meta select page. This is more for the future since no
current incompatible server supports the v2 meta protocol
anyway.
- now disabling the SlingShot flag works in all cases like
it's supposed to :)
- added "server_contact=" to the system-wide conquestrc file.
- fixed bogus towedby reports when you attempt to tow a ship,
but you are already being towed.
# 8.0.1o 11/21/2004 (devel)
- incorporates 8.0.1n patch that fixes protocol problem with
letting the client know the true 'realness' of a planet.
- fixed planet sending logic to account for newly scanned
planets. Previously, it could take up to 5 seconds for the
client to be told the true army count of a planet that was
just scanned for the first time.
You should now get the real army count almost immediately
after scanning a planet for the first time.
- increased packet timeout waits for the initial server/client
negotiation sequence that could cause problems connecting to
a server with a high lag. Where it used to only wait about
10 seconds for the initial hello packets from the server, it
now waits 60 seconds for example. On a really laggy server
it may take a minute or more to fully connect, by which time
you will problably not want to play on that server anyway :)
- small bug in curses client (conquest) that could cause
problems if other than expected packets came in during
welcome phase
- In meta list, [ENTER] can be used as well as [TAB] to
select a server to connect to.
# 8.0.1m 11/14/2004 (devel)
- builds under cygwin (11/11/2004) again. Both the server and
clients (including the OpenGL client, conquestgl) seem to
run fine again.
SW OpenGL is a little slow, but playable (depending on your
processor speed). You may want to turn off the viewer
background image in (O)ptions to gain more FPS. I get about
20 FPS in SR view on a Pentium M 1.8 Ghz, fast enough for
conquest's needs :)
Make sure to read README.cygwin for important info on
building under Cygwin.
- updated autotools/libtools to deal with some cygwin issues
with curses linking.
- move rndini() calls to be before rndlb usage to prevent
infinite loops in rndlb on cygwin systems.
- doomsday protocol was not being recorded in client-side
game recordings. Sorry.
- removed last traces of glut bitmap font usage
- cleanup in asle 4 (render.c)
- remove old, unused code (CONQUEST_USER, ALT_RND, etc)
- Use ALT-S to toggle display of FPS and Kb/s stats in
cockpit (conquestgl).
- use CTL-R in the cockpit to force a complete packet refresh
from the server.
# 8.0.1l 10/22/2004 (devel)
- finshed implementation of variable encapsulated packet
handling. Should make it easier to add packet types in the
future without neccessarily breaking network compatiblity.
Of course, if the server/client does not understand the
enacpsulated packet type, it will just discard it. This is
better than losing packet sync and ruining your whole day :)
- I am switching over the main public server (1701) to this
release so it can get more testing. This means that after
this release, you will need a 8.0.1j or better client in
order to connect to any of the conquest.radscan.com servers.
I really hope to keep these network incompatibilities to a
minimum in future releases.
Of course for you die-hard retro telnet users, you shouldn't
notice any change :)
- I think the GL client is working well enough for a stable
release now. Of course there are tons of things that could
be done to pretty it up more, but it's good enough for now.
# 8.0.1k 9/25/2004 (devel)
- when entering a game, pointer troubles could cause a
client to get stuck sitting on top of Murisak, or offered
the wrong list of systems to enter from, if their team
owned more than one system.
- user config viewer background preference was not honored
during replay of a previously recorded game. (conquestgl)
- modifiers (shift, ctl, etc) were improperly discarded when
decoding the macro FKeys. (conquestgl)
# 8.0.1j 9/11/2004 (devel)
- conquestgl
- implemented background image (Hubble Ultra Deep Field) to
viewer. Added user option 'do_draw_viewerbg' to enable. It
is enabled by default cause it just looks so darn good :)
ALT-B can be used to temporarily toggle it on/off while in
the CP if it proves too distracting.
- fixed viewer backgroud image to be displaced properly when
in Murisak centered LR view.
- Using [SPACE] to toggle between ship and Murisak centered LR
scans will only work when in LR mode. No more inadvertant
switching.
- more GL and render cleanups.
- corrected bug in modifier key handling. Several other
potential key problems also fixed.
- texture handling cleanups
- planet and doomsday blend modes fixed so background image no
longer interferes
- fixed bug in options (GL) display where when the number of
options exactly matched the number that could be displayed
onscreen caused nothing to be displayed at all.
- got rid of drawBox() - no longer used anywhere.
- cleaned up the viewer background (vbg.tga) texture (reduced
gamma).
- conquestd
- an attempt at better handling of UDP write errors that
sometimes occurs when UDP was successfully negotiated, but
the server finds itself unable to send them. If more than
15 write UDP errors are detected during the course of a
session, the server will switch to TCP only, and a message
will be sent to the client informing it of that fact.
# 8.0.1i 9/03/2004 (devel)
- conquestgl
- when in the cockpit, various screens that used to be
seperate such as help, userlist, planetlist, etc, are now
displayed on top of the cockpit display, which is then made
transparent. This allows you to still see what is going on
with your ship while reading the info.
This also works when playing back a recorded game.
Now you can see your ship explode while looking at the
userlist for example :)
- redid the viewer fonts - now use a tex mapped font as well,
instead of the glut bitmap fonts.
- fixed up GL version of cvtcoords to remove artifacts in when
objects were considered to be 'in view'. Previously the
cvtcoords function from the curses client was being used to
determine this... This could cause objects (planets, etc) to
'disappear' when close to the min/max X/Y coordinates.
Objects will now move properly into and out of view now in
the viewer.
- corrected perspective correction misunderstandings on my
part :) Planet and ship labels now are always positioned
correctly regardless of your position relative to the
object. Planets and ships are likewise positioned
properly in relation to each other.
- recolorized army count in planet names on long range display.
- more GL related cleanups and re-organization.
# 8.0.1h 8/10/2004 (devel)
- conquestgl
- added proper moon texture for Luna.
- torp packets are no longer sent, only recorded. TorpEvent
packets are the only torp packets sent to the client now.
- cleaned up GL.c a lot. No longer use a seperate window (and
associated GL context) for the viewer.
# 8.0.1g 8/08/2004 (devel)
- Planet and torpedo trajectories are now computed in the
client for smoother motion and a significant reduction in
the packet count needed from the server.
The network protocol version changed as a result so only new
clients can play with new servers.
Recording files (.cqr) are still compatible.
The common block was not changed so your universe will
continue to work.
- got rid of conqreplay program. The clients (conquest and
conquestgl) are now used to playback recordings using the -P
option.
- fixed CPCMD_RELOAD to properly send a full update to the
client when a client starts recording.
- addition of new CP_VARIABLE/SP_VARIABLE packet types so
that new packets types can be added cleanly without
neccessarily having to break the network protocol.
- corrected pointer alignment issue with ctime() on Sparc
architectures (or any other architecture that does not
tolerate misaligned pointers). Reported by Clint Adams
(Debian).
# 8.0.1f 7/11/2004 (devel)
- conquestgl
- switch to TARGA (.tga) format textures rather than BMP.
That alpha channel comes in handy.
- replaced lousy classd texture with a Mars texture. Maybe
someone wants to create individual textures for each
planet someday? :)
- added new torp texture rather than re-using the star texture.
- redid torp rendering somewhat.
- hitting [SPACE] while looking at long-range map will toggle
between a Murisak centered, or ship centered map. The
default map display is whatever you set for the
'do_local_lrscan=' option in your ~/.conquestrc file.
# 8.0.1e 7/7/2004 (devel)
- patch from Clint Adams correcting a strange typedef bug in
datatypes.h that niether of my compilers detected.
Also, add $(DESTDIR) to the image copy routines in
Makefile.am.
- cleaned up some logic in the server so that uneccessary
computations are not performed on each iter - improving
efficiency.
- moved planet driver into conqlb
- fixed sign bug in client meta list that caused high numbered
ports to be listed as a negative number on the meta server
list displayed in the client.
- moved duplicate GL/curses client hello() functions into
single clientHello() function in client.c.
# 8.0.1c 7/2/2004 (devel)
- UDP support for torp, ship, and planet 'location' packets.
UDP is auto-negotiated, and appears to be NAT firewall safe.
Use the '-u' option to conquestgl or conquest to disable udp
negotiation if you are having problems with it.
You can see whether or not your client has successfully
negotiated UDP with the server by looking at the (O)ptions
screen in the client, where UDP status is listed as 'On' or
'Off'.
If you run server, you will need to also allow UDP port 1701
(default) into your network in addition to the TCP port 1701
you already allow.
UDP packets are used only for sending frequent 'location'
data to clients, which improves the smoothness of play,
especially in the OpenGL client, conquestgl.
- bugs in nWelcome node that prevented server error conditions
from being displayed to the user were fixed. (conquestgl)
# 8.0.1b 5/31/2004 (devel)
- use TCP_NODELAY to send packets immediately rather than save
them up before sending.
- add check for stdint.h, and use those defines if available
in datatypes.h
# 8.0.1a 5/08/2004 (devel)
- Adds a GLUT/OpenGL client, conquestgl. Oh yes.
- See http://radscan.com/conquest/index.html for a couple of
screen shots.
- The gl client is called 'conquestgl' - use this to run the
OpenGL version of the client. The curses client
'conquest' is still present of course, for those who
really dig the retro experience.
- if you do not have OpenGL and GLUT libraries/headers on
your system, supply the '--disable-gl' command line
argument to the 'configure' script, as in:
./configure --disable-gl
This will prevent the GL related clients and libraries from
being compiled, and you will be stuck with the curses only
client :)
- Note, the GL client does not provide a 6 DOF (flight
simulator-type) playing experience. Sorry - that would be
an entirely new game. OpenGL and GLUT are used to
basically present the same game experience as the current
curses client, however, the use of a graphical client
provides a much nicer experience visually. To be honest,
I never use the curses client to play anymore :)
- phaser shots from other ships are rendered in the GL
client.
- new user option:
do_enemyshipbox
when set to 'true', will draw a 1 pixel red square around
enemy ships in the LR/SR views in the GL client.
- currently the maximum Frames Per Second (FPS) is capped
around 100. A 10ms delay will be inserted between
frames if the FPS exceeds 75, which is really more than
sufficient for conquestgl's rendering requirements.
- there are no specific GL extensions required or used.
OpenGL 1.1 and greater should be sufficient for
building/running conquestgl.
I have not tried running conquestgl on a software GL
implementation like Mesa. With a fast enough processor,
it could be playable though, since we are not talking
about Quake 3 rendering requirements here :)
- the mouse is not used in conquestgl - everything still
runs by keyboard :)
- up to 36 macros can be handled in conquestgl:
F1 - F12
SHIFT F1 - F12
CTL F1 - F12
- conquestgl can also play conquest recording (.cqr) files.
Use the -P 'cqr filename' option.
conquestgl -P dethfun.cqr
It's much nicer to watch recordings in the OpenGL version
than using the curses-only 'conqreplay' program.
Other than this, the options are the same for conquestgl
as the curses client 'conquest'.
- there are many enhancements that could be made to the
various displays still:
- a better conquest logo display
- phasers should probably be drawn using an alpha blended
texture rather than a blended line.
- need a better way to display explosions
- need to increase line length and number of lines for the
display of incoming messages.
- the list goes on. Sigh.
- conquestd/conqdriv changes
- on entry to the game, the server will send a complete user
list to the client. Previously, only users currently
playing in the game or present in the history list were
sent to the client. This means the '(U)ser list' option
in the clients will list all of the users now.
- conqdriv now updates planet positions every 10th/sec.
Previously these were only updated every 5 seconds. This
provides much smoother planet movement, especially in the
GL client. Of course this increases the required bandwith
some. If this is too much for your internet connection,
reduce your 'updates_per_sec' option.
- conqdriv now updates a ship's orbital position every
10th/sec rather than 1/sec. This makes orbiting planets
much smoother - this is more noticable in the GL client.
- missing doomsday protocol added. Believe it or not, with
the 8.0.1 release version. I forgot to added the protocol
for the doomsday. Using an older client (pre 8.0.1a) will
results in an 'invisible' doomsday machine. Upgrade to a
8.0.1a or better client. The GL client uses a texture made
from the original Star Trek episode "The Doomsday Machine"
:)
- conqmeta changes
- meta server now sorts output server list by the number of
currently active players, rather than the server
registration order.
- fixed a bug where the meta server could not distinguish
between multiple servers that were running on the same
host, but listening on different ports.
- alot of restructuring of the code and the creation of new
libraries.
- No UI specific code is present in libconquest anymore.
- new generic libUi
- all curses functions and the functions that depend on them
are now in libUiCU
- GL related functions and their dependants are located in
libUiGL.
- curses related functions removed from libconqclnt and
libconqserv
- new color implemetation, (colors.h) - UI agnostic.
- much cleanup up of c_defs.h.
- conqnews.doc renamed to HISTORY.
- added CREDITS file to give credit where credit is due
(netrek for the original pixmaps that formed the basis of
the ship textures in conquestgl, etc)
Version 8.0.1 (stable) 1/17/2004
- fixed rather serious problem with dead() handling. When you
were killed by an external (ship, sun, etc), you could get
stuck in dead() once your ship exploded.
I recommend that server operators upgrade to this version.
- cleaned up some logic that should allow conquestd to handle
unexpected client disconnects better.
- fixed a VACANT check in conquestd:newship(). It might
resolve an issue some users have seen where if their
connection is terminated unexpectedly, they cannot reconnect
to their ship for awhile ("already playing on another ship")
because conquestd thinks it's still alive and active.
If you still see this problem, let me know as well as a way
to reproduce it.
- fixed a stupid bug that prevented compilation on non-linux
systems.
- added some casts for sa_addr in the network connection
routines to eliminate some gcc warnings.
- force 1-byte alignment of the wire packet structs to avoid
future troubles.
- a variety of other minor fixes and adjustments.
- added patches from Clint Adams, adding portable snprintf()
and friends.
- Cygwin support under MS Windows (tested with XP):
- read README.cygwin for cygwin requirements and information.
- added better mmap() check for cygwin systems. We don't
use MAP_FIXED in Conquest anyways, so we don't care if it
doesn't work.
- default to 'Users" conquest group for cygwin.
- isagod() checks pretty much disabled for conqoper under
cygwin. If you can get a shell, you can run conqoper, as
there is no root user.
- deals with .exe extensions properly
- packet.c - clientPackets[]/serverPackets[] struct arrays
are statically defined and no longer exported. cygwin's
linker seems to have 'issues' with external references to
struct arrays.
- sem.c - some changes to deal with unimplemented cygwin
semctl() operations.
- rxvt's choice of colors seems to be off... non-bold white
(from conquest's perspective) comes out as black. The
normal Cygwin console seems to work fine.
Version 8.0 (stable) 12/13/2003
- the official v8.0 release
- fixed bug in meta.c that counted active ships improperly. Same
with PrintStatus in clntauth.c.
- conqdriv will kill VACANT ships if the Vacant flag is not
enabled for the server and it happens to find a vacant ship.
- PrintStatus in clntauth.c will now show the server's local
time as sent in the server's spServerStat_t packet.
- changed AllowSigquit option to AllowVacant, to more properly
reflect it's purpose.
7.2h
- This is a prerelease version of the Conquest v8.0 client/server
release. Much has changed. Read the docs (README, SERVER.TXT,
etc) if you really must know all the details.
- added meta server browser into conquest. To get a list of
servers registered with the meta server, and select one to play
use the '-m' option to conquest.
$ conquest -m
- updated documentation, for release.
7.2e, 7.2f, 7.2g,
- various bug fixes
7.2d
- merge of CS-12 (client/server branch) into main branch (7.2d)
- removed '-p <port>' option from conquest. To specify a port
other than the default, add it to the server name seperated
by a colon. For example, to connect to a server at
conquest.radscan.com, port 1702, use:
conquest -s conquest.radscan.com:1702
- added meta server (conqmetad) and functionality to conquestd,
based on a suggestion and some ideas from Josef Jahn.
- meta server listens on TCP and UDP port 1700. The UDP port is
incoming only, and is used to recieve updates from
conquestd's. TCP is outbound only, and will dump the current
server list and their stats ('|' delimited) upon connect.
Try the cgi script at
http://radscan.com/cgi-bin/conqmeta.pl, or run conquest
with the '-m' option.
- See README and SERVER.TXT for server configuration and options.
- fixed conquestd and conquest to improve responsivness. conquest
will now process packets as soon as they are received regardless
of the update rate, instead of wating for a timer cycle.
conquestd updates the client whenever the client does
something (raise shields, etc).
These changes made a huge diff in responsiveness to
commands, especially at lower update rates. Sorry about that
oversight :)
- client now processes incoming packets while in help, userlist,
etc, rather than only when at the battle screen.
7.2c-cs-12
- feedback messages are no longer recorded. Tersables are only
recorded if the user has them enabled when the recording was
made. Server recordings never contain Tersables.
- notify opers when someone enters conqoper
- opers get all messages sent to GOD
- fixed problem with reserved ship slots and no valid process
controlling them in newship(). Also, when disconnecting from
the main menu, turns off the ship before exiting.
- clean up of the conf stuff
- send relevant User packet *before* sending a Hist packet.
- new '-t' option for conquest.
When conquest is run with the '-t' flag, then no attempt will be
made to read or write a user config file. This is useful for
people who still want to run telnetable servers, yet prevent
such users from stomping over each other's settings.
Such users always use the default options, which means they will
need to set them to their preferences whenever they enter the
game, since they are never saved. If you (the user) find this
annoying, then download the src, and use the client to connect
to the server properly :).
- new 'conquestsh' program for telnetable servers. When setting
up a telnetable server, use 'conquestsh' as the user's shell
program. conquestsh exec's the conquest client bianary, passing
the '-t' flag, and the '-s localhost' flag. Feel free to edit
this program for your site, for example if you want the
telnetable client to connect to a different server than
'localhost'.
- removed OpenGL/X11 dependancies that snuck in. We aren't ready
for that yet. :)
7.2c-cs-11
This is the first release of a development version of the
client/server conquest. There have been quite a few changes from
v7.x! Please read this document for the juicy details ;-)
The common block revision has changed, making this version
incompatible with previous versions.
Of course the major change in this release is that conquest uses a
network based client server model. There is now a seperate
conquestd program that listens to network requests from clients
(conquest). If you want to run a game on your machine, you will
need to start conquestd like so:
/opt/conqnet/bin/conquestd &
Please read SERVER.TXT for intructions on how to run a secure
game, and the options available.
I would do this from a seperate non-privileged account of course,
if you intend to invite the unwashed internet masses onto your
server to play.
If you just type 'conquest', it will try to attach to the conquest
daemon on your local host. To connect to a remote host, use the
'-s' switch.
This will take you to the login screen. Choose a username,
password etc, login, and kick some ass.
I have setup a public server here for this release that you can
connect to like so:
conquest -s conquest.radscan.com
Once an official 'stable' release is made, the old telnet server
there (v7.2) will be pointed toward the new version, for those who
don't want to use the client.
There may eventually be multiple servers running (one for
experienced players, for example, running on a different port.)
- conquest is now client/server. In the old days, the conquest
binary had to be run on the same machine as the common block
(universe). In order to run a 'server', a telnet interface was
required so remote players could connect.
Now, conquest is a client that can connect over the network to
any conquest server (conquestd). In the future, there will be a
graphical client, using OpenGL to render the main battle
screen. It won't be a 6 DOF combat simulator, but it should
look alot nicer than the curses interface :)
The protocol is endian safe of course.
- The conquest login screen provides information about the server
you are attached to - number of active ships, server name,
enabled flags (see below), MOTD, etc.
- The daemon (conquestd) listens on TCP port 1701 by default. You
can change this by supplying '-p <port>' to the conquestd
command line.
If you want to run your own public internet server, you need to
allow tcp/1701 into your firewall (or whatever port you
configured your server to use). I would recomend running the
daemon as an unprivileged user. Oh, and if it's going to be
available to the internet at large, run conquestd with the '-m'
option, so it will notify the metaserver so others can find your
game.
Please read SERVER.TXT for information on running a server.
- Client Updates. From the options menu, a player can set the
update interval anywhere from 1 to 10 updates per second. The
default is currently 5. There is no AllowFastUpdates capability
anymore. I would not recommend 10 per second on a modem. Try
different ones until you find one that works best for your
connection. In the old conquest, 1 and 2 were the only options.
- Conquest operators are now defined as any user with the
OOPT_OPER option set in his or her user profile. They will be
listed in the (U)ser list with a '+' to the left of their name.
Currently a user marked with OPER can only start and stop server
recordings from within the game using 'EXEC' messages sent to
GOD. Other than that, there is no difference compared to a
normal user.
Of course, only someone with shell access on the server machine,
and who is a member of the conquest group can run the conqoper
program. Root can always run conqoper.
In the future, more EXEC commands may be provided to conquest
operators so they can become the tin plated dictators with
delusions of godhood most of them secretly want to be. :)
- Previous versions of conquest (v7.x) used to distinguish
between 'local' and 'remote' users. Local users were users who
were playing conquest from a shell account on the machine where
conquest was installed. Remote users were users playing from a
generic conquest account, usually setup by the system
administrator, that had the conquest executable as the shell.
In this way a 'server' could be run by providing telnet access
to this special account from the internet.
'Remote' users were denoted by a '@' next to their usernames in
conquest.
Since Conquest now uses a client server model, all users are
remote. The '@' tag is gone. Even playing on a local machine
is still accomplished by connecting to a local conquest server
via TCP, so there is no such thing as a 'local' user anymore.
Also for this reason, the conquest client is no longer
set-groupid conquest - no need, since no special privileges or
access is required. If you can connect to a server, you can
play.
- user and system configuration (conquestrc) have changed
significantly. Some options are gone now, others moved into
user config, etc.
Many of the Sysconf options have been moved into User options
(ETA stats, LR torpscan, etc).
Some user options like clear_old_msgs have been removed.
The 'compile options' are no longer viewable, since they don't
matter much from the player perspective, and are of no use to a
client anyway.
The server (conquestd) advertises certain game flags enabled by
the conquest operator (using conqoper) to the client. These
flags are displayed on the client login screen, as well as from
within the client's (O)ptions Menu. The flags are configured by
the operator using the Option menu in conqoper.
The current flags are:
Refit - refits are allowed. You can refit to
one of the 3 types of conquest ships
when you have at least one kill, and
are orbiting a team owned planet.
Vacant - vacant ships are allowed. A ship goes
vacant when a client exits the game
without self destructing first, while
flying a ship.
When vacant ships are disabled by the
oper, such ships are immediately killed
by a 'lightning bolt'.
NOTE: In previous versions of conquest,
oper's would always go vacant in this
case, regardless of the vacant option
setting. In this version, every user
is subject to this option.
SlingShot - the SlingShot bug is enabled. This is
a towing bug that existed in the
original VMS/RatFor version of
conquest. It's a fun bug, and I
recieved several emails about it when I
inadvertantly fixed it in a later
version without understanding it's
significance.
If you don't know what it does,
well... figure it out! You'll need a
buddy to make it work though ;-)
NoDoomsday - when set, the doomsday machine is
prevented from randomly starting up and
trashing the universe.
Killbots - when this option is enabled, robots are
created with a random kill point
value. The kill points a ship has
affects the efficiency of it's engines,
the strength of it's weapons, etc.
Normally when a robot is created (by
attacking an unguarded homeplanet, etc),
it is initialized to 0 kills. When
this option is enabled, a kills value
is randomly selected. This means that
a new robot might prove to be much more
deadly than the default 0 kill robot.
This may not be a good option to enable
on a public server where newcomers play.
Fighting a 25 kill robot takes some
skill ;-)
SwitchTeam - when enabled, users can switch teams at
the conquest main menu.
- the 'I' command is no longer provided. All of those options
have been added to the User options menu.
- Users can no longer have multiple ships running at the same
time. If you have a vacant ship, you will be automatically
attached to it. The game still has most of this code present,
so this feature could be added back in the future if enough
people whine.
- When using the (U)sers command in the client, only those users
attached to currently active ships, or attached to entries in
the History ring will be listed. There is no point in checking
500 user slots on each client update ;-)
For this reason, only the conqoper program will be able to list
*all* users.
- the client creates it's logfile in your home directory
(~/.conquest.log). The conquest server, driver, etc, will still
use the system log. Check these for any errors or other
oddities.
- When you die, you now get to see your ship explode first before
being taken to the 'dead' screen.
- Recording.
- Recording has been completely reworked. Unfortunately, any
previous CQR files are incompatible with this release.
- you can now select the long range or short range view of a
ship you are watching in conqreplay.
- The new format uses the same packet protocol that the clients
use. This means recording files (cqr's) are *much* smaller
and much more efficient (cpu-wise) during the recording
process.
Another benefit is endian safety. With the old format,
recordings could only be played back on the same machine
architecture the cqr was created on. Since the recording data
is now based on the packet protocol, recordings are now
completely endian safe (network byte order is used). So now,
some poor slob on his Sun SPARC can play back a recording I
make on a lintel machine.
- There are two types of recordings: client and server.
- see the README file, 'Recording' section for more information
on the differences between the two, and how to create and
play them back.
- Thanks to Clint Adams, the autoconf stuff has been significantly
updated.
- I looked upon my creation, and saw that it was good. :)
7.2b 1/6/2003
- some reorganization of a few data structures - sysconf,
userconf, HasColor, etc..
- Logon() now specifically looks up the CONQUEST_USER home dir in
/etc/passwd for cases where one is using a telnet daemon to
automatically start conquest. The is needed since telnetd does
not changedir to the conquest homedir before execing the
conquest executable.
7.2a 12/9/2002
- big patch from Clint Adams adding automake/libtool support and
changing direct references from sys_errlist[] to strerror()
- added new 'Friend' target for messages. You can send a message
to all friendly ships by specifying 'fr'as the destination for a
message.
- added 'distress_to_friendly' option. If true, sends distress
calls to all friendly ships, not just your teammates. The
default is off.
- added a new, experimental AltHUD option. This is like the
regular HUD, but adds some of the information returned from
infoship and infoplanet calls to the lower alert line on the
main display. This can be useful in battle when messages or
other commands remove the info after requesting it.
Current info presented is:
FA: (Firing Angle). This lets you know the direction that any
further firing requests will use, unless a direction is
explicitly specified to the 'p' or 'f' commands.
TA/D: (Target Angle / Distance). This item displays the Target
name, Target Angle and Target Distance obtained in the
last infoship/infoplanet request, and is updated whenever
you do an info command on any ship or planet.
There may be more items forthcoming, though space is limited.
The idea here is to present or preserve information that the
user can already request. It isn't intended to provide a 'auto
targeting' or other type of advantage. It's for information
purposes only ;-)
To use this, enable the 'Allow Alt HUD' option in the (O)ptions
menu from within conquest. Set to 'false' by default.
Version 7.2 Sun Dec 1 15:55:27 MST 2002 Jon Trulson <jon@radscan.com>
- patch from Clint Adams for conqai.c changing 'char arg' to
'int arg' for getopt.
- fix problem in conqai.c defend() that would allow multiple
robot defenders. This was fairly serious to poor newbies
;-) This bug was introduced in 7.1.2. Sorry.
- fixup remote login screen a little, provide a status line
(number of live users, ships, their status, etc)
Next maybe we can add a MOTD and a QOTD...
- reworked cdredo() logic to redraw screen properly in
cdget*(). ^L should work properly during prompting now.
- bumped up to v7.2. Let's be bold and daring.
Version 7.1.2 Sun Jul 4 16:19:40 MST 2002 Jon Trulson <jon@radscan.com>
- a long overdue update
- automatically exclude VACANT ships when deciding whether to
create a robot when a home planet is attacked. This problem
allowed some remote players to take over home planets
without the excitement and stimulation of having to deal
with the robots in the process. Shame on you ;-)
- way past due for a public update. Sorry.
- added the ability to record and playback games ;-)
For example:
conquest -r somefile.cqr
Then to play it back:
conqreplay -f somefile.cqr
This isn't available to remote players, as I don't know of a
secure, reliable way to get the recoded file back to the
remote user.
12/27/2001
- added patches by Clint Adams to handle configure's various
install location options (libexecdir, sysconfigdir, etc).
The programs and data files will be installed according to
the values of these items.
If you already are using an older version of Conquest, you
will need to move a couple of files to their new homes
before running conqoper or conquest if you want to preserve
your current state and configuration.
Old files:
<prefix>/conquest/etc/conquest.common.img
<prefix>/conquest/etc/conquest.log
<prefix>/conquest/etc/conquestrc
New files:
<prefix>/var/conquest/conquest.common.img
<prefix>/var/conquest/conquest.log
<prefix>/etc/conquestrc
Other files have moved as well, but these are the important
ones for preserving state.
Version 7.1.1 Wed Dec 26 15:04:50 MST 2001 Jon Trulson <jon@radscan.com>
- corrected problem where genos weren't always counted.
- sends a message when a user leaves the game
- fixed bug that allowed a refit while carrying armies
- 'E' distress call provides more info. Can be used as a
quick status report to team mates.
- many things now logged, like resignations, most conqoper
actions, and other things...
- corrected problem where DEL wouldn't work properly
on some systems for deleting text.
Version 7.1 Mon Jan 1 11:45:20 MST 2001 Jon Trulson <jon@radscan.com>
- added a ship refit capability. It's sys-wide configurable
(allow_refits), and enabled by default. This allows users
to be able to change ship types once they have at least one
kill, and are orbiting a team owned planet. There are 3
ship types: Scout (Orion equiv), Destroyer
(Klingon/Federation equiv) and Cruiser (Romulan equiv).
Robots will be given a random ship type when they enter the
game.
Users will get whatever shiptype is normal for their team
until they change it. Use the 'r' option to refit during
play.
This change required a new common block, so I had to reset
it, losing all current user data on the conquest.radscan.com
server. Sorry.
The ship type a user is using can be determined by doing an
(i)nfo on the ship. Also, the '(/)player list' option will
show an 'S' (Scout), 'D' (Destroyer), or 'C' (Cruiser) next
to their ship number, indicating the variety they are
flying.
- Worked with Jef Poskanzer (the original Conquest God) to fix
semaphore problems on Sparc systems, and added a new
'--with-conquest-group=<groupname>' option to the configure
script so that you can easily choose which group you want
conquest to run under.
Oh, and we did skirmish a bit, and I actually blew him up
;-)
- added message logging sys-wide option (log_messages). Now
all messages can be saved into the logfile.
- skip users with a negative difftime so they are not expired.
I had a problem with my system clock one day - it reset to
1996. And of course, after logging into Conquest, it
proceeded to expire all remote users. Bummer.
- Fixed typo in remote user login screen.
Version 7.0.1 Fri Sep 3 18:20:52 MST 1999 Jon Trulson <jon@radscan.com>
- This is a maintenance release, fixing some minor bugs and
a major one for RH6.0 (uhg), as well as a new port.
- Conquest now runs on on Digital Unix V4.0 (OSF1). Thanks to
an old Conquest junkie, Jim Anderson (janderson@NOVALIS.COM)
for this port. Thanks Jim!
DU has the same lex problem that Solaris has... See the
SOLARIS/DU NOTES section in the INSTALL file for a hacky
workaround. If anyone has the magic syntax to achieve the
same effect, but work on all systems, please let me know...
It's annoying.
- configure.in modified so that the options used on an UNKNOWN
system type are more likly to succeed (it no longer assumes a
UnixWare system).
- one fix to options.c, the ESC cancel wasn't working right
- a cast problem picked up by Jim Anderson while doing the OSF/DU
port
- and of course, the addition of the -D__NO_MATH_INLINES CFLAG
required on RH6.0 systems to work around a bug that
caused strange conqdriv failures.
Version 7.0 Thu Jan 28 21:14:41 MST 1999 Jon Trulson <jon@radscan.com>
- Remote User support, which should make things much nicer for
operators and internet players. A 'remote' player's usernames
are always prefixed with an '@' character in all output that
shows usernames. See the file SERVER.DOC for information on
how to setup and run a conquest server.
- A new (O)ptions menu is now available at the Conquest main
menu, as well as while playing the game. This menu allows
users to view the options compiled into Conquest, view the
system-wide options set by the Conquest operator, View/Edit
the users ~/.conquestrc options, View/Edit macros, and for
remote users: change your password. Operators can change a
remote user's password in the (e)dit User option in
conqoper. The conqoper program now lets operators View/Edit
the system-wide configurables... Per-item help text for each
option is also available. You should never need to manually
edit the conquestrc files again ;-)
- conoper now understands some command line options. Try
'conqoper -?' to see which ones. These make it rather
trivial to reset the game on a regular basis from crontab for
example.
- common block data has been completely restructured.
Actually, it is structured *now*, as opposed to the 70 or so
parallel arrays that used to be there ;-) The code is much
easier to read and maintain, and several bugs were
identified and fixed as a result.
- new sys-wide options:
allow_switchteams - whether new users are allowed to
switch teams at the main menu
user_expiredays - number of days of inactivity for a
user before s/he is expired.
- approximate elapsed time (accurate to 1 minute) per player
is displayed for each entry in (H)istory now.
- the ETA algorithm used for ship-to-ship (only) scans has
been re-worked somewhat. Now ship/ship ETA's are calculated
using an average closure rate. This mean you need to scan a
ship at least twice in a row to get reasonable ETA's. A
single scan will assume that both ships are heading directly
at each other, as no closure rate information is available.
It will also list the ETA as 'never' if there's no hope
you'll ever intercept the target ship.
- keypad keys are translated into direction keys - now you can
aim, and set course using the keypad the same way the
direction keys are used.
- new common block of 256KB - room for 500 users. (ha!)
- standardized 'more' and 'done' prompts.
- renamed at386 terminfo entry to at386-uwcq to avoid conflict
with linux's at386 entry. This entry is used by UnixWare
users that play from the console.
## Now for the bug fixes ##
- fixed neg array reference in messaging code.
- fixed neg array ref and write in conqoper that corrupted the
message ring, user block, and anything else laying around.
But only on Tuesdays.
- fixed negative Users[] array ref in conqoper sighandler.
- fixed off by one in takeplanet() that allowed you to conquer
the universe without taking RigelB.
- fixed conqoper to not send entry msg when COMMONBLOCK is
invalid. (can you say segv?)
- fixed invisible user bug (resign, then re-enter). Now
Conquest exits when you resign.
- fixed evil self destruct bug that caused two killship()
calls to be executed when a user was killed while in the
process of self destructing.
- added extra checks for linux glibc problem, where for some
reason fd_set is declared as a typedef rather than a
struct. Wierd.
- elapsed time bugs fixed. Again. 'VACANT' ships no longer
add to the elapsed/cpu times for teams and users.
- (U)ser Statistics, and (S) More User Statistics screens now
track arriving/departing users in real-time.
- fixed locking bug in initeverything().
- bug in listplan() ((?) Planet List) that corrupted page
header fixed.
- many bugs and oddities with cdgetp() (line based input
routine) fixed. Perhaps I should give the 'readline'
library a try??
- the lastentry time for a user is now updated whenever a user
enters a ship, not just when the ship is first initialized.
- isagod() checks are more stringent and reliable.
- clog buffer increased. Large logging events don't cause a
segv anymore.
- fixed bug in astservice relating to message display timing
for those with 25 line screens. Those without 25 lines (on
which messages are displayed on the 23rd line), shouldn't
miss messages anymore when entering a command at the same
time a message is being displayed. Those with 25 line
terminals will get messages asyncronously on the 25th line,
regardless of whether you're issuing other commands at the
time or not.
- fixed bug where switching teams and then dying in a
reincarnated ship would 'do the wrong' thing regarding
ship's team selection when you re-entered the game. This
rather esoteric bug was found by Dave Payne. Of course. ;-)
- conqoper watch(): doomsday 'type' member and display code
removed - useless. The doomsday's status is now displayed
symbolically in the doomsday watch() screen.
- DCL subshell code finally excorsized. Don't need it, don't
want it. ;-)
- all debug related logging turned off.
- on planet list, number of armies is displayed in same color
as planet now.
Version 6.6 Thu Dec 24 16:03:31 1997 Jon Trulson <jon@radscan.com>
- added 20 new 'extra' play planets for use by enterprising
universe developers. The various planet listers modified
to support more than one page of planets.
- switched to the use of 'double' as the floating point type
instead of 'float'
- new common block due to the float -> double change, and the
new play planets.
- full coloring of LR/SR displays. The color scheme used is
alert based.. ie: dangerous things (like enemy ships or
planets) are red, team things are green etc.
- all other text in the game (and conqoper) was colored by
David Payne <davep@radscan.com> using a new cprintf()
function that can handle embedded attribute codes.
- color in conqoper is different, as an operator doesn't
(supposedly) take sides. The goal in conqoper was to use
coloring for enhancement only (except when watching a ship).
- exploding ships. Ouch. Implemented by 'faking' a special
type of torp launch.
- the messages sent regarding entering/dying in conquest
now use per ship information, rather than per user
information. This make things consistent, and also
works properly for users with multiple ships.
- watch display in conqoper is now interupt driven, like
conquest.
- watch display in conqoper modified to use '<>' or arrow
keys to switch from ship to ship. Dave Payne provided
this patch.
- debug doomsday screen removed, watch display in conqoper
now lets you watch from the doomsday's perspective.
Patch by Dave Payne.
- most frequently used commands (like (r)obot, (k)ill,
(/)player list, etc) are available from watch in
conqoper. Patch by Dave Payne.
- (e)dit user in conqoper now removes the '+' current
field indicator as you move around between the various
options.
- destroying a warlike ship, no longer causes 'invisible'
sticky war with that team if you weren't officially at war
with that team when you killed it (but it was at war with you).
- beaming armies down to a self-ruled planet without bombing
it, no longer works. You could take planets this way without
suffering any damage, but it would take a long time, and alot
of armies. Now when you beam armies down to a self-ruled
planet, it is considered an act of war, just like bombing is.
- playlist now lists the PID of the controlling ship, or
"VACANT" if the ship has no controlling process, or "ROBOT"
if the ship is a robot.
- you can type long messages now. While typing a mesage, when
you reach the end of the line, what you've typed is sent,
followed by a '-', and then you are prompted for more text.
Much easier to type long messages. Thanks to Dave Payne
for this patch.
- Conquest has been ported to Solaris 2.6 using gcc 2.7.2.1
- the display will now operate properly when changing your
name while flying. Yes. I got killed by changing my name,
and forgetting no screen updates were taking place. I had
24 kills too. ;-)
- a bug in the driver that caused ship headings to briefly
go negative or invalid during a slow turn has been fixed.
- a bug in towing that miscalculated relative velocities between
two ships has been fixed. This bug was in the original RATFOR
code.
- fixed bug in untow that caused incorrect warp factors to be
set for the towed ship when it was untractored, and the
tower was in orbit. Can you say "hyperdimensional
shifting"? This bug was in the original RATFOR code.
- the handling of multiple ships, and entering while already
playing are much improved. Now you get the option of
re-incarnating to other ships (if you are allowed multiple
ships), and/or creating a new one. Players who are not
allowed multiple ships will no longer be blown out of the
game if the same user tries to enter conquest (from another
terminal for instance).
- lots of lint based cleanup... found and fixed several
'minor' bugs that way. *Lots* of unused variables and code
removed.
- gamlb module removed - no longer needed
- most translation (Ratfor to C) macros removed.
- combined ioxlb.c, ionlb.c, and ioplb.c into one module:
iolb.c
- removed conqfig.c module - relevant defs are in defs.h
- Reviewing messages lets you scroll back and forth using
the arrow keys.
- display code moved into new display.c module
- several rounding problems related to using abs() when should
have been using fabs() fixed.
- bug fixed in buildai() that scaled fuel incorrectly causing
robots to do dumb things when fuel was low (they always
thought they had plenty of fuel). This fix has resulted
in smarter robots. Two rules in conqrule had to be modified
to cover up a logic 'hole' that became apparent when this bug
was fixed. This bug was in the original RATFOR code.
- some terminfo entries that work good with conquest are now
supplied with the source distribution.
- a new 'realclean' target is provided in the Makefile. This
target is the same as a 'make clean', but additionally
removes files generated by configure. You will need to
re-run configure after a 'make realclean'.
- some commenting spiffed up.
Version 6.4 Fri Mar 28 15:09:02 1997 Jon Trulson <jon@radscan.com>
- changed phaser graphics to stop when it hits a ship. Can be
handy when 'probing' for a cloaked ship, when you're also
cloaked.
- docloak() fixed so that engine overload is checked, not weapons
overload in determining whether you can cloak.
- if you destroy another ship, you're automatically at sticky war
with that team.
- now when you fire torps, phasers are aimed as well.
- fixed safectoi() bugs. finally. ctoi() and ctor() modified
accordingly.
- fixed misspelling in conqstrat so that ROB_SILENT is a valid
action.
- fixed bugs in targeting. Invalid targets are now reported as
such.
- configure.in modified so that libl.a/libfl.a (flex/lex) libs
are looked for if the other can't be found.
Version 6.3 Tue Dec 24 16:59:20 1996 Jon Trulson <jon@radscan.com>
- the conqstrat rule parser is now operational! Now you can rebuild
or modify the robot strategy tables. The current strategy
table used by the robots as shipped is defined in conqdata.h.
This file was generated by conqstrat using the conqrule file,
which defines the robot's actions under certain conditions.
I've already added one rule that should lessen accidental
robot sun-deaths. No more than 32 rules can be defined.
I'm willing to incorporate other 'amusing' robot strategy
definitions into the Conquest distribution if mailed to me.
Enjoy ;-)
- fixed bugs in special() causing certain lookups to return
inaccurate or invalid responses, like 'iwp'.
- added allow_sigquit in sys-wide conquestrc file. If true
then all players can exit immediately using SIGQUIT (normally
^\).
- moved player death notification msg code to killship() from
dead(). Now you get a message when a robot dies too.
- fixed nasty variable collision bug with uname under newer
Linux's... This caused a SEGV when uname[][] was mapped into
the common block. I wonder why :-)
- added extra check to cdinit() to ensure the bkgset() function
isn't used with ncurses.
Version 6.0 Sat Nov 30 22:50:25 1996 Jon Trulson <jon@radscan.com>
- Conquest now uses GNU's autoconf facility for portability.
- This version has been compiled on FreeBSD 2.2 100696-SNAP.
- increased MAX_MACROS from 12 to 24. Now SHIFT F1-12 can
be defined as well. Your terminfo entry must be configured
properly to take advantage of any of the Fkeys and the
keypad.
- The common block was modified to support 'phantom' kills for
robots. To enable this, define do_random_robotkills=true
in the system-wide conquestrc file. If defined, robots
will be created with a random kills value, possibly making
them stronger, but without screwing up the statistics. Makes
them a little tougher and unpredictable. Probably not for new
players though ;-)
- made some curses calls more efficient.
- robots now use 30/70 power allocations instead of the old 40/60.
- lots of fixes to the semaphore code to support linux and
FreeBSD. Modified semaphore stats line in conqoper to
provide more information.
- c_sleep() behaves itself better under linux/fbsd
- ibuf.c: - moved ibuf related vars from global.h to a new ibuf.h
where they belong.
- added capability to use 25th line on display (if you have it)
to display messages. Much nicer. On some terminals you may
need to set LINES=25 and export it in your shell before
firing up conquest. If you have color, messages will be
displayed in cyan.
- fixed rounding bugs in safectoi() and oneplace()
- ^L (refresh) handling is much faster, and turns off
the display interrupt before refreshing to prevent screen
corruption.
- if you don't have 25 lines, you will no longer get messages
while reviewing old ones, causing strangness.
- sighandler modified. CO's need to use QUIT (^\) to exit
(without self-destructing) instead of INTR.
- removed syscall RESTART dependancies. Too unreliable.
- added support for fastupdate option (see ~/.conquestrc and
the system-wide conquestrc file). This means that on systems
that support setitimer(), you can get 2 updates per sec,
rather than one. You get no advantage over another player if
your doing 2 updates per sec, and the other player is only
doing one, it just makes things seem a little smoother.
- conqoper modified to support the -C (create new sys-wide
conquestrc file) option. If the system-wide conquestrc
file is determined to be out of date, conquest and conqoper
will warn you when starting up, and use internal defaults for
any new options, until it's updated by 'conqoper -C'.
- mods to player edit so that arrow keys/keypad can be used for
navigating around the screen in conqoper.
- many more formatting bugs fixed in conqoper.
- modified planetlist screen to mark 'core' planets (planets
you have to take to conquer the universe) with a preceeding
'+' sign.
- replaced bogus PLANET_SHITFACE with PLANET_ALTAIR, a new,
non-core planet, yet *quite* valuable strategically. ;-)
Since it's creation, many fierce battles have been fought
over Altair. heh
- tweaked shield alert displays during a red/yellow alert to be more
consistent.
- removed blink attr for anything other than a red alert status
with your shields down.
- tweaked secdriv() to multiply the cooldown factors of weap and
engines by PLANET_REPAIR_FAC if orbiting a friendly populated
planet. This means you cool down faster in orbit about a
friendly planet.
- made an adjustment to PHASER_HIT to compensate for the new 70/30
energy split. Rom's had too much adv at close range. They could
kill you with 2-3 phaser hits, even with shields up. Romulan
phasers are still quite deadly up close.
- tweaked COMMONSTAMP (new common block), DOUBLE_E_KILLS (to 40.0),
MIN_COUP_MINUTES (not as long), MIN_UNINHAB_MINUTES (not as long).
- configuration code mostly rewritten to make more maintainable.
- modified cdinit() to not use bkgdset(...) if running under
ncurses. It has a bug that corrupts the colors if a backgroud
is set, but not at color pair 0 (which under SVID is illegal).
Bummer. if using ncurses, you might prefer a black background,
so if running under an xterm, set your background to black.
- fixed oppedit so that (T)eam ownership works, and in the
right circumstances.
- changed newrob() to disable OPT_ALERTBELL so that conqoper
won't beep when watch()'ing a robot.
- conqutil.c: - fixed ownership problems when the log file is
created.
- do_fastupdate and do_limitbell options added to ~/.conquestrc
- players, by default, can now switch teams at the main menu in
conquest.
- many other small fixes.
Version 5.8 Thu Jul 11 11:24:38 1996 Jon Trulson <jon@radscan.com>
- this version now runs on Linux. This port was done by
David Payne <davep@radscan.com>. Here are the requirements:
GCC 2.7.2
libc.so.5.2.18
ncurses-1.9.9e
kernel 1.99.14 (pre-2.0.14)
see the README.linux file (in the src dist) for more
information.
- a new option, rcv_player_msgs has been added to ~/.conquestrc.
See ~/.conquestrc for more info on this option.
- lots of code cleanup in all modules. Dead functions
removed.
- conqoper's debugdisplay now shows torp status for a ship
symbolically.
- all planet lists in conqoper and conquest are now sorted
alphabetically. Additionally, all user lists are now sorted
by skill level.
- torpedo launch() code made more efficient in it's use of
semaphore operations. The number of semaphore operations
required to launch a spread (3) has been reduced by 2/3
from 12 semops per spread, to 4. This should improve
'hairy' battle performance noticably (on a 486 anyway).
- Made message beeping for conqoper #definable - see defs.h.
By default it's off. When there's alot of message traffic,
it can beep continously. How annoying.
- changed logic in conqoper's planet list to eliminate 1
second delay when entering that mode.
- changed planet HELL from Empire armies to Self Ruled
armies. There is no Empire team at this time.
- randomized 'virtual armies' for suns. Used to determine
the damage a ship takes when passing near/over one.
- Suns are now immune from Malthusian Crisises. This problem
sometimes resulted in *weak* suns.
- Jinx is no longer created with 512 armies. Ooops. ;-)
- fixed macro expansion bug that sometimes caused a Malthusian
crisis to set a planet's population to 0. This made for
easy pickings.
- Conquest no longer requires the 'conquest' user account.
The 'conquest' group will always be required (unless you
run an 'insecure' game (planned for the future - see TODO)).
- added check to conquest/conqoper that requires your terminal
to have at least 80 cols, and 24 lines.
Version 5.7 Sat May 25 01:01:17 1996 Jon Trulson <jon@radscan.com>
- this version now supports a system-wide configuration file.
Available options are:
do_lr_torpscan - can see friendly torps on an LR scan?
do_local_lrscan - LR (M)ap is ship centered or Murisak
centered?
do_etastats - show ETA's on (I)nfo commands?
no_doomsday - disable the doomsday machine?
see /opt/conquest/etc/conquestrc for further information.
- improved robustness of semaphore code. You can now
conquer the universe without killing the game and your
login session.
- improved signal handling. You can't susp out anymore
and SIGQUIT/SIGTERM are enabled for conquest gods only.
- conquest now determines whether a user is a conquest
god by checking to see if they are a member of the
conquest group in /etc/group. The root user is always
a conquest god. Being a conquest god means you can run
the conqoper program.
- fixed bug that made cpu usage stats totally bogus dude.
They should now be reasonably accurate.
- fixed bug in the beaming code that caused extra beeping
if you were beaming armies down to a hostile planet, and
you were also within red-alert range of an enemy ship.
- off-by-one error in robot defend() routine fixed. Now
Romulans have defenders.
- robots are no longer created with random kills. It
screwed up the statistics too much.
- changed locking info bar in conqoper to display some
semaphore statistics.
Version 5.6 Thu May 2 02:55:15 1996 Jon Trulson <jon@radscan.com>
- implemented the pagefile() function, so now there is documentation
available from within conquest. Try the (n)ews and (h)elp lesson
from the conquest welcome screen. NOTE: If your reading this,
then you have already tried the (n)ews option ;-)
- this version of conquest now supports semaphores to syncronize
writes to the conquest common block. No longer should you be
subject to random SEGV's due to 2 conquest's trying to aquire
the same lock. Yes! Note: this is still undergoing testing.
- the TAB key can now be used to ask for your 'next' last info. ie:
it is equivalent to typeing 'i<TAB>'. This matches the command
change I made awhile back where RETURN is equivalent to 'i<RETURN>'
- added code (enabled by defining DO_LR_TORPSCAN in defs.h)
that allows you to see your torps, and friendly torps
on a long range scan. This option may may moved to the
system configuration file when that capability is added in the
future.
- added code to conqoper that will let the operator monitor
semaphore usage on the main screen. Unfortunately, I can't
seem to figure out how to get certain information, like the
PID of the last process to alter the semaphore(s). Right
now all this info will tell you is: The status of the
semaphores (LOCKED ("*") or UNLOCKED ("")), the number of
semaphore operations (since the last Universe INIT), and
the date/time of the last operation.
- several more small fixes, and some dead code removed.
Version 5.5 Sun Apr 28 18:04:51 1996 Jon Trulson <jon@radscan.com>
- A user-customizable configuration file, ~/.conquestrc, is
now available!
The ~/.conquestrc file is now automatically created in the users
home directory if the file does not exist, or is out-of-date.
This file allows users to customize certain playing attributes
for conquest, as well as providing the only method whereby the
FKey macros (F1-12) can be defined. See your ~/.conquestrc
file for information on the options available.
If your ~/.conquestrc file is out-of-date, a new one will be
created and your current settings (those that are still
applicable with the new version) will be preserved in it.
Note: Any comments (beginning with '#') that you add to the
file WILL NOT be preserved if conquest decides to update your
~/.conquestrc file.
- fixed bug in dead() that sometimes prevented one from knowing
exactly how one died. Kind of anti-climactic don't you think?
- fixed torp formatting bug in conqoper's debugdisplay()
- fixed lower() and upper() so that the strings are actually operated
on properly. Due to a bug I introduced, they actually had no
effect. Sorry.
- added ENABLE_MACROS to defs.h to enable the ibuf.c module. needed
to support macros (defined in your ~/.conquestrc file).
This option may be added to the system wide conquest config
file when that capability becomes available.
- added DO_LOCAL_LRSCAN to defs.h to determine whether (M)ap
has it's original meaning (a fixed map of the universe with
Murisak at the center), or is more real by acting like a Long
Range scan (a dynamic map with your ship at the center).
This option may be added to the system wide conquest config
file when that capability becomes available.
- conquest versioning is now handled by the version.c module
instead of hardcoded VERSION_NUMBER and VERSION_DATE macros.
- switched experimental weapons alloc range back to 30/70 from
10/90. 10/90 was way too deadly when the romulans were firing
at you (close range) with 90% weapons allocation!
- modified dobeam() so that you could take any planet with 0
armies, even if you weren't at war with the team that 'owned' the
planet - applies to home system planets only.
- modified astservice() to make sure a msg was actually delivered
before beep'ing at the user.
- added conf_MessageBell check to astservice(). If TRUE, you get
a beep whenever you receive a message. See ~/.conquestrc
- fixed some formatting problems in conqoper's debugging watch()
- fixed the orbital velocity of Syrinx. It was way too slow.
- added conf_NoRobotMsgs check to readmsg(). If TRUE you won't
get msgs back from friendly robots. See ~/.conquestrc
- fixed many small formatting errors in status reports like
team stats and user stats pages.
- secdrive() modified so that fuel usage depends on *actual* warp,
and NOT on your *desired* warp.
- adjusted DOUBLE_E_KILLS up to 35.0 from 25.0. This means you
will need 35.0 kills to double your efficiency. It may move
upwards again depending...
- fixed a bad clog() call
- removed dead/obsolete code, more of that to come I'm sure...
Version 5.4 Mon Apr 1 01:59:17 1996 Jon Trulson <jon@radscan.com>
- first semi-production version. It's been about 3 years
since I started this port. And what phun it's been! ;-)
- ibuf.c - an initial run at an FKey macro capability.
- rewrote iochav() using poll() and getmsg(). Seems to work...
- removed ALT_IOCHAV #define - no such animal anymore. eventually, all
ALT_* #defines will go away.
- eliminated dependancies on the conquest UID and conquest
GID. These are now determined at run-time. Eventually,
conquest will no longer require it's own user in order to run.
To prevent cheating however, a conquest group will always be
required.
- added DEBUG_LOCKING and DEBUG_MACROS debugging capability.
- turned off DEBUG_SIG and DEBUG_IO. they seem to be okay for now...
- re-did arrows() function *again* using original alg, and a
fixed mod360().
- fixed mod360() to (properly) use fmodf() instead of mod(). Now it
works without rounding errors caused by using the integer version
of mod() ;-)
- modified command() to allow '*' to = 'd' - det torps, and
'[RETURN]' to equal 'i\r' - get last info. modified dohelp()
accordingly.
- added priority code to conqinit, so conquest will run at
CONQUEST_PRI, and conqdriv will run at CONQDRIV_PRI.
It makes the game much more 'snappy' and doesn't appear to affect
system performance. This requires the TSHAR privilege
(Unixware 1.x, 2.x, SVR4.2). If the appropriate privilege
is unavailable, a complaint will be written to the
conquest.log file, though the game will still run. On systems
that don't support the privilege mechanism, your currently
SOL. Conquest was not designed to run SUID root (which
would be required), and I don't think any game has a
right to be. Eventually, (if there's enough demand) the
relevant portions of code could be SUID safe. I just
prefer the privilege mechanism, as it's more specific as to
the kind of privileges I need, and more secure.
- changed sendmsg() to allow a [RETURN] to act like [TAB], ie:
send message to last person I sent a msg to.
- modified display() to blink-red the shields indicator if they are
down, and you're at yellow or red alert. Monochrome screens now
use A_REVERSE | A_BOLD for red, instead of A_BLINK | A_BOLD.
- tweaked cloak code a wee bit to make it more usable, though
not *too* usable ;-)
- modified CLOAK_SMEAR_DIST to 800 from 500 to make it a little more
vague when scanning for a cloaked ship.
Version 5.3(-) Sat Mar 16 22:11:20 1996 Jon Trulson <jon@radscan.com>
This section describes versions at or below Version 5.3. This
was the version that was actually running well enough to play some
decent games with a couple of friends with minimal bugs and crashing.
This was about 1 year after I had progressed with the port far enough
to have the major components working (semi) correctly, as well as the
fortran common block implementation operational. I could actually
fly a ship. Wow.
- added extra check to PVLOCK() to make sure we *actually* got the
lock.
I swear. Semephores are on the way. Honest. ;-)
- cleaned up code in tableai(). removed commenting I put there
a long time ago... I think the robot code is working fine ;-)
- fixed delete bug in cdgetp().
- removed/replaced all scopy() calls - uhg.
- added HAS_SETITIMER to defs.h. If defined, use set/getitimer
routines instead of alarm().
- created clog() function to be used to log msgs to the logfile.
This used to be done by cerror(), which would also send a god
msg if '@' was the first char in the message. This was stupid.
(although mine ;-).
cerror() was changed to ONLY send god messages, while clog() sends
it's messages ONLY to the logfile.
- added notimeout() curses call in another attempt to solve some
timing problems, and delays when reading the function keys. It
seems to work, and has removed many unexplained 1 seconds delays
when doing certain things. And even with the timer disabled,
function keys still seem to work, and without a 1 second delay
after typing one.
- removed sc*() and en*() dead functions...Yeah!
- Much clean up and removal of uneeded code.
- Fixed bug that would cause core dump if TERM not set properly.
- Fixed bug introduced by me earlier causing some messages not to
show up.
- oppedit(): implemented editing of army, scan, and uninhabitable
time. These options were commented out in the original code.
- removed/cleaned up transitional macros used early on by me
during the VAX/VMS RatFor to Unix/C translation process.
- initship() - fixed ulastentry indexing bug.
- fmtminutes() - fixed formatting bug.
- conqdriv:iterdrive() - fixed typo in array index.
- Added signal handling capability. Now Gods can INTR out nicely,
others can't. Many small bug fixes.
- conqdriv: added signal trapping capability so that KB interrupts
are ignored, and conqdriv will die gracefully when getting a
SIGTERM.
- Added new function KPAngle() to return an angle depending on which
keypad key (or arrow key) was pressed.
- rewote arrows() function. (This translates 'qweasdzc' keys
into directions (in degrees). This funtion has NOTHING to do
with your keyboard's arrow keys/keypad keys.)
- fixed planet formatting bug.
- another attempt at using the curses input routines. Changed
input routine return values to int's so can decode terminfo data on
keypad and arrow keys.
- Changed team effectiveness values back to their original settings.
I shouldn't have messed with mother nature.
- fixed death certificate so that correct data is shown.
- modp1() now handles negative numbers correctly.
- histlist(), loghist(): fixed some bugs... no more trashing
of entries, and histlist() now lists hists correctly :-)
- planlist(): fixed loop bug that output bogus info.
- added ETA calculation ability to infoplanet() and infoship().
Enabled by defining DO_ETASTATS in defs.h.
This option may be added to the system wide conquest config
file when that capability becomes available.
- doinfo(): fixed bug that prevented 's<shipno>' from working.
- Added Colors! If your terminal/terminfo entry supports them
conquest will use them! Much cooler.
- fixed menu(): switchteams logic.
- fixed dobeam(): up/down selection bug.
- fixed rndini(): wrong seed init function being called - srand(),
should have been srand48().
- fixed rndint(): was returning (low, high], should have been
(low, high).
- Added PVLOCK/UNLOCK capability, fixed some minor bugs, changed cloak
code so that a cloaked, warp 0 ship is invisible to alert scanners.
Increase torp fuse to 50 seconds, thereby increasing range.
- Added msync() to implement the upchuck() function.
# #
# # # #### ##### #### ##### # #### ## #
# # # # # # # # # # # # # # #
####### # #### # # # # # # # # # #
# # # # # # # ##### # # ###### #
# # # # # # # # # # # # # # # #
# # # #### # #### # # # #### # # #####
##### ###### ###### ###### ##### ###### # # #### ######
# # # # # # # # ## # # # #
# # ##### ##### ##### # # ##### # # # # #####
##### # # # ##### # # # # # #
# # # # # # # # # ## # # #
# # ###### # ###### # # ###### # # #### ######
The following is the original conqnews.doc file distributed with
the VAX/VMS DECUS distribution, circa 1985.
It is provided for historical reasons only and should not be
viewed as completely (or even remotely) accurate. Hehe.
Enjoy!
---
08Sep85: A completely new robot strategy has been installed!
Watch out, because robots are smart now.
16Jun84: You can now get a list of recent users with the 'H'
command.
13Jun84: The new user stats page finally works!
11Jun84: You can now get info on a user.
09Jun84: Hacking on temperature. Weapons and engines now have a
chance of breaking when they get too hot. Tuning will
continue for a little while.
27May84: Bombing and beaming have been modified so that the
baud rate of your terminal doesn't have such a large
effect.
22Feb84: Message editing implemented. If you enter enter line
feed as the target of a message, you can send a new
message by editing the target and text from the last
message you sent (or attempted to send).
19Feb84: You can now do info on "time".
11Feb84: The driver bug that made bombing easy and ships faster
than speeding torps has been fixed. Also, it is no
longer possible for two terminals to control the same
ship. Now, when you reincarnate, you get to keep the
same ship number.
15Jan84: You can now switch teams as long as you haven't
entered any ships since the last time you resigned.
Weapons defaulting implemented; firing a weapon
without specifying a direction defaults to the last
direction you fired any weapon.
14Jan84: The tractor command has been split into two commands.
Use 't' to tractor another ship and 'u' to untractor
or attempt to break free of another ships tractor
beams. Also, when you attempt to tractor a ship, its
velocity relative to your ship must be warp 2 or less.
Shields now regenerate twice as fast (4 units per
second) when they are down.
09Jan84: Robot ships now automatically defend the home system
from attack. Ship tuning continues.
20Dec83: Massive ship tuning in progress...
10Dec83: A new fuel usage formula has been installed; now any
activity that uses fuel generates heat and adds to the
temperature of the ship. Also, a bug which caused the
autopilot to overshoot planets has been discovered and
fixed.
17Nov83: Phaser base hits have been lowered from 100 to 92.
13Nov83: New statistics are being kept (but currently, there is
no way to display them). Typing "i<cr>" will now give
info on the last thing you ask for info on.
03Nov83: A better acceleration formula has been installed.
23Oct83: Tractor beams aren't quite so deadly anymore. (This is
a major blow to Klingon battle tactics.) A new
acceleration formula that is team dependent has been
added. An orbit speed limit has been imposed so now
you cannot orbit if you are going faster than warp 2.
16Oct83: Ships now enter at least accurate info distance away
from their nearest enemy.
15Oct83: It is now possible to change war and peace settings
from the menu.
06Oct83: Shell spawning was removed. Spawn to DCL instead.
19Sep83: The first Decus distribution of Conquest was mailed
today.
05Sep83: Torpedo detonation has been worked over so that all of
your active torpedoes go off when you die; this means
that you should always get credit for when your torps
kill the ship that killed you. Spawning to DCL was
added, use '$' followed by a line feed to spawn a
process.
01Sep83: The race dependent weapons factors have been tuned,
now Orions are 0.83, Klingons and Federations are 1.0,
and Romulans are 1.17. The course command has been
modified so that when you set course for a planet, you
get the same information as you do with the info
command. Also, when you set course for another ship,
if you terminate your command with line feed, you will
get info on the ship.
29Aug83: The Evil Display Bug took heavy damage yesterday and
finally fell this evening. Services will be held
Wednesday at the Red Hour.
24Aug83: The phaser command modified to set last phaser
direction even if your phasers are not ready yet. The
planet list is now sorted by planet name.
13Aug83: Torp alert code added. Now you will always be warned
when enemy torps get within accurate info range.
Code added to (hopefully) prevent driver thrashing
when cpu time is at a premium.
Cloaking modified to allow "silent running", i.e. you
can stay cloaked at warp zero for a long time. Also,
cloaking fuel cost depends on speed (cloaking at warp
10 is *very* expensive).
Towing modified; the maximum towing distance is now
larger. Also, breaking free of an unfriendly ships tow
does not always succeed and trying freezes your ship
up for a whole second.
12Aug83: Weapon tuning continues. Phasers are still quite
strong but this will be corrected in the near future.
Now distance is used to break ties when you are
searching for weak planets. This means that if you ask
for info on the weakest planet with 10 or more armies
and two planets have 10 armies each, you will be told
about the closer of the two. Also, the info command
has been modified to warn you that a planet is hostile
when you get info on it.
17Jul83: Several bugs related to the conversion to the new
ratfor fixed. Ken's version of phaser graphics added
(complaints to him). Also, there is now a user option
for phaser graphics.
04Jul83: Conquest now runs from decnet ports!
03Jul83: Planet movement is three times smoother. Novice
players will now enjoy fantastic phaser graphics.
Firing phasers no longer locks up your ship, but you
still can't fire them more often than once a second.
Torpedos are... different. (Ken was *not* amused.) The
remote terminal bug is almost fixed.
On its one year anniversary, Conquest now runs on two
Vaxen.
Remember, this is Be Kind to Klingons week, so don't
aim for Ken's gonads.
14Jun83: Full duplex screen updating implemented. Now you can
see your enemy attacking even when you are
constructing an insult for him. Common block updating.
Now the common block is flushed to the disk every 5
minutes. This should take care of the time warp
problem.
23May83: Captured system entry now works. The evil course 360
wandering bug has been fixed.
13May83: Even more driver hacking, now the "phase" of the
Universe is kept in the common block. This means that
five minute things will happen every five minutes of
game time, etc. You can now send mail to "The
Implementors" by sending a message to "i". Finally,
the self-destruct code was modified so that it really
takes fifteen seconds to exit, even if some cretin is
running rat4.
07May83: Tuned driver startup logic. Added a new "nearest"
thing to look for, nearest team planet, "ntp". This
was done to appease the Conquest God, who was not
happy with the hack to "nap". Also, all of the nearest
planet special strings may now be qualified with an
army threshold. A new user option, "terse", has been
added. For the most part, turning this option shortens
the "press space for more" prompts. The manual entry
has been revised; check it out for more information.
29Apr83: A new and improved Conquest manual entry has been
written and installed. The user rating formula has
been improved. When getting information on or setting
course for the nearest army planet, "nap", only
planets that are owned by your team and have more than
three armies are considered. Also, if you terminate an
information command with LF instead of CR, you will
get info about the second nearest object. Code was
added to automatically disable insert and delete line
display. (That's right, you can throw away your local
copy of termcap without getting seasick!) Inverse
video has been added to the pagefile routine. Finally,
the Conquest operator program is even MORE powerful
than before.
14Apr83: New command implemented. ^R now can be used to force
the screen to be updated completely. Also, a new user
option forces the screen to always be completely
updated, even during battle.
12Apr83: Many, many more bugs fixed. Many more features added.
Now LF can be used to send a message to the last ship
you sent to. Driver hacking is now complete; it is
IMPOSSIBLE for more than one driver to run at the same
time. It is not possible to run a driver manually from
a terminal. The player ships now notice that the
driver has died within 5 seconds. When a the player
who has the driver exits Conquest, he causes the
driver to kill itself; the other players then bid for
running it. This means that the Game is not
interrupted just because someone logs off.
19Mar83: Many, many bugs fixed. Many features added. Cloaking
now works. Also, enhanced informational scanning
implemented.
08Dec82: Re-organized the display somewhat to enable the
terminal package to make use of clear-to-end-of-line.
04Nov82: Implemented some restrictions on playing: no playing
over dialups, by GUEST, or during prime time
(7:00-18:00 weekdays). Priority is set to 2.
28Oct82: Fixed bug in bombarding.
25Oct82: Added n, ne, ns, np, nep, nr, nf, and na.
24Oct82: Added a number of new features, the biggest of which
is orbiting planets. Also I juggled some of the
parameters in an attempt to make the teams more equal.
18Oct82: Added a "shit-list" flag, to prevent obnoxious people
from playing. Added a real neat feature which finally
lets broadcast messages from the outside world get
through. Made the game run at a lower priority.
13Oct82: Changed the "p" command to not enter a mode. Now it
just fires a single torp and goes back to command
mode.
06Oct82: Fixed a bug, added a feature. Recompiled with the
re-written raw I/O library - should go faster now.
22Sep82: Added a "last words" feature - when you conquer, you
get to leave a message for everyone to see.
20Sep82: Minor tuning mods. Also the doomsday machine is now
both less common and more sadistic.
13Sep82: After three weeks of downtime, I finally found the
major bug in the slow-turning code. As usual, a
strongly-typed language would have caught it right
away. I believe there are still some minor problems
with slow turning - let me know if you notice
anything.
23Aug82: Turning now takes time, and it takes more time the
faster you are going. Slow down to turn.
20Aug82: Ken the Kunning Klingon discovered an embarrassing bug
- I had a test reversed in the routine takeplanet so
that every time you conquered a planet you also
conquered the Universe.
18Aug82: Fixed annoyingly persistent bug which prevented
planets from being taken.
08Aug82: Couping should work now. Watch out for the doomsday
machine.
29jul82: I did some rewriting to try and get the driver to
restart automatically when it dies. It doesn't quite
work yet, so beware...
27Jul82: Arrow keys work. Locking onto planets works.
25Jul82: The universe was conquered for the first time tonight,
by the Orions. It almost worked perfectly. At the last
instant, the common block got locked up. Also, the
Orion team didn't get credit for the win. Both bugs
should be fixed now, so I am looking forward to the
next conquest.
24Jul82: Engine temperature and fuel consumption are now pretty
much working. I still have to do some fiddling with
the constants to get things exactly right.
18Jul82: Fixed a bug which prevented anyone but Romulans from
killing people. On second thought, maybe I should have
left it in...
16Jul82: More commands added, including info. Also,
self-destruct now works even if the driver is dead.
This should make Mister Xavier happy.
12Jul82: You can now change course and fire torpedoes.
Commander Saavik immediately took advantage of this by
traveling to Earth and destroying hoardes of
feddie-bears.
03Jul82: The display works pretty well now. More commands work.
The first interplanetary voyage took place today:
Commander Saavik piloted the Romulan flagship to
Sirius. The ship was incinerated upon arrival. Saavik
then journeyed to the edge of the galaxy, where she
was one again incinerated. Score: galaxy 2, Saavik 0.
02Jul82: The display started working today. Some commands work.
28Jun82: Ships are flying now. However, the display generation
and command interpretation still needs to be done, so
it is not much use.
27Jun82: The news option was installed today. Ships should be
flying pretty soon. The driver is working, I just have
to add the code to launch a ship.
|