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
|
2004-11-09 Al Riddoch <alriddoch@zepler.org>
* Release 1.2.1. Interface version 2.0.0, or 3.0.0 with sigc++ 2.0.
2004-11-07 Al Riddoch <alriddoch@zepler.org>
* test/testConnection.cpp: Add a sigc++ header required to build
this test against sigc++ 2.0.
* Update configure.ac to detect (and prefer) sigc++ 2.0.
2004-11-07 Al Riddoch <alriddoch@zepler.org>
* Eris/SignalDispatcher.h: Add a sigc++ header required to build
against sigc++ 2.0.
2004-06-06 Al Riddoch <alriddoch@zepler.org>
* Fix devel dependencies in rpm spec.
2004-06-03 James Turner <james@worldforge.org>
* XCode project updates
2004-05-19 Al Riddoch <alriddoch@zepler.org>
* Release 1.2.0, interface version 2.0.0
2004-05-19 Al Riddoch <alriddoch@zepler.org>
* Clean up pointless use of a few macros in configure.ac. Trim
version down to 3 numbers, rather than 4.
* Fix deps in rpm spec, and make sure to use the right compiler
flags.
2004-05-19 James Turner <james@worldforge.org>
* Version number tweaks in anticipation of a release
in the next day or two
* Fix eris.dox.in as suggested by Michael Koch
* Add some cvsignore entries
2004-05-18 Al Riddoch <alriddoch@zepler.org>
* Tweak getting of canonical system.
2004-05-15 James Turner <james@worldforge.org>
* Eris/World.cpp, Eris/World.h, Eris/SignalDispatcher.h: Fix how
SIGHT(CREATE) is handled, so the value we emit via GotTime
is correct. This entailed adding a SignalDispatcher3<> template.
2004-05-13 James Turner <james@worldforge.org>
* Eris/World.h, Eris/World.cpp: Add a GotTime signal, and emit it
in response to sight(entity), sight(move) and sight(set). This
entailed using SignalDispatcher2 in a few more places.
2004-05-04 Al Riddoch <alriddoch@zepler.org>
* Eris/TypeDispatcher.h, Eris/Dispatcher.cpp: Add new dispatcher
that deals with objtype being "object" or "obj".
* Eris/Connection.cpp, Eris/Lobby.cpp, Eris/World.cpp: Use the
new dispatcher so we can talk to Atlas-C++ 0.6.
2004-04-19 Al Riddoch <alriddoch@zepler.org>
* Eris/PollDefault.cpp: Ensure that flags don't get broken
if exception gets thrown in PollDefault::poll by catching
and rethrowing.
2004-03-06 Al Riddoch <alriddoch@zepler.org>
* Eris/Entity.cpp, Eris/Entity.h: Make getProperty() member function
const.
2004-03-04 Al Riddoch <alriddoch@zepler.org>
* Bump the interface version so runtime libs for transitional
don't interfere with stable.
* Eris/Metaserver.cpp, Eris/Metaserver.h: Add compatability calls
with development Eris so we can push ahead with UI features
to test development Eris.
Thursday, 5th February 2004, Al Riddoch <alriddoch@zepler.org>
* Update dependencies and header list in the rpm spec.
* Add a few EXTRA_DIST files, include spec, and pgxproj files.
* Release 1.1.1, interface version 1.0.0
Thursday, 5th February 2004, James Turner
* Fix duplicate characters in the Player's list, by discarding
duplicate SIGHTs and locking out calls to refreshCharacterInfo while
a refresh is already in progress
* Switch the internal character storage to be a map, keyed by entity ID,
and make the accessor method (Player::getCharacters()) return a
const reference.
* Various other whitespace changes in Player.cpp
* Bump version to 1.1.1 in anticipation of release
* Set required WFMath version to 0.3.3 for coordinate conversion helpers
Saturday, 24th January 2004, Al Riddoch <alriddoch@zepler.org>
* Eris/UIFactory.h, test/testUtils.cpp: Move cassert includes
around a bit, for fun and profit.
Thursday, 22nd January 2004, Al Riddoch <alriddoch@zepler.org>
* Eris/Exceptions.h Eris/Exceptions.cpp: New files to contain
exception class declarations and definitions.
* Eris/Types.h: Remove exceptions, and clean up types.
* Re-organise includes to use new exceptions header.
Thursday, 22th January, Ron Steinke <rsteinke@w-link.net>
* Remove ::Instantiate() calls from test/*
Thursday, 22nd January 2004, James Turner <james@worldforge.org>
* Remove use of deprecated ::Instantiate() calls
* Require Atlas-C++ 0.4.93 (latest transitional)
Thursday, 22nd January 2004, Al Riddoch <alriddoch@zepler.org>
* Eris/typeService.cpp: Update type service to use Atlas-C++
Class() method, as default constructor now creates an instance.
Monday, 19th January 2004, Al Riddoch <alriddoch@zepler.org>
* Many more include fixups, mostly relating to sigc++.
Sunday, 18th January, Ron Steinke <rsteinke@w-link.net> (don't you love time zones?)
* test/testPlayer.cpp: Added an #include so the tests build again.
Monday, 19th January 2004, Al Riddoch <alriddoch@zepler.org>
* Reorder includes, and elimate unnecessary includes by using
forward declarations throughout.
Sunday, 18th January, Ron Steinke <rsteinke@w-link.net>
* Eris/Avatar.*: Renamed the move() functions to
moveToPoint() and moveInDirection() to avoid
the Point/Vector argument overload.
Sunday, 18th January, James Turner <james@worldforge.org>
* Patch from Ron Steinke : make Factory.h use forward declared Atlas
types, to avoid dragging in huge chunks of Atlas::Objects and all the
Atlas::Mesage stuff.
Saturday, 17th January, Ron Steinke <rsteinke@w-link.net>
* Eris/Avatar.*: Added velocity-based move() methods.
Sunday, 11th January, Ron Steinke <rsteinke@w-link.net>
* Eris/Metaserver.*: On second thought, just move
the snprintf stuff into Metaserver.cpp. That way
Eris should continue to build fine, but dependent
software won't get hit with it.
Sunday, 11th January, Ron Steinke <rsteinke@w-link.net>
* Eris/Metaserver.h: Put an #ifndef __MINGW32__ around
the snprintf and vsnprintf #defines.
Tuesday, 6th January 2004, Al Riddoch <alriddoch@zepler.org>
* Eris/World.h, Eris/World.cpp: Add a signal to indicate if
if a player has successfully taken control of a new or existing
avatar.
Saturday, 20th December, Ron Steinke <rsteinke@w-link.net>
* Don't need Avatar::GotEntity, World::Entered does
the same thing.
Saturday, 20th December, Ron Steinke <rsteinke@w-link.net>
* Added a GotEntity signal to Avatar, so we can connect
callbacks to the character's entity when it arrives.
Friday, 19th December, Al Riddoch <alriddoch@zepler.org>
* Remove Serial from rpm spec as it is not required, and messes up
deps.
Thursday, 19th December, James Turner <james@worldforge.org>
* Remove ancient socket references from Eris/Types.h - long
since deprecated in favour of skstream
Monday, 8th December, James Turner, <james@worldforge.org>
* Fix a warning on Mingw32, due to me using -1 in BaseConnection,
when I should have used the constant supplied by skstream.
Friday, 5th December, Al Riddoch <alriddoch@zepler.org>
* Fix LDADD for testEris so it works right.
Friday, 5th December, Al Riddoch <alriddoch@zepler.org>
* Fix test/Makefile.am so the tests build but don't run.
Tuesday, 2nd December, Al Riddoch <alriddoch@zepler.org>
* Supress unknown pragme warnings, and add canonical macros.
Thursday, 27th November, James Turner <james@worldforge.org>
* Apply Ron's patch for transforming WFMath objects
based on an entity's pos and orientation.
Monday, 24th November, James Turner <james@worldforge.org>
* Add accessor for Person objects directly on Room.
Monday, 24th November, Al Riddoch <alriddoch@zepler.org>
* Eris/Avatar.cpp: Fix all uses of send() to pass a reference
rather than a pointer. Why did this compile?
Sunday, 23nd November, Ron Steinke <rsteinke@w-link.net>
* Added take(), touch(), say(), move(), and place()
methods to Avatar, to complement the existing drop()
method.
Sunday, 2nd November, Ron Steinke <rsteinke@w-link.net>
* Replaced Time::Stamp class with a typedef to
WFMath::TimeStamp (which was originally a copy
of Time::Stamp).
Sunday, 26th October, Ron Steinke <rsteinke@w-link.net>
* Added the capacity to have multiple timeouts with
the same name, as long as they are owned by different
object instances. This fixes a problem with the code
that allows multiple simultaneous Connection instances.
Thursday, 23rd October, Simon Goodall <simon@simongoodall.co.uk>
* Fixed configure.ac to use eris-poll-glib-1.2.pc in second glib test
Monday, 20th October, James Turner <james@worldforge.org>
* Add ProjectBuilder project - currently requires a modified
libsigc++ framework which I'll upload to FTP at some point.
Saturday, 20th September, Ron Steinke <rsteinke@w-link.net>
* Fixed test code so it acutally builds, mostly Atlas
stuff and changing pollDefault to PollDefault (which is
odd, because it's _never_ been pollDefault).
Saturday, 23rd August, Al Riddoch <alriddoch@zepler.org>
* Eris/BaseConnection.cpp: Switch to using skstream::isReady()
instead of the deprecated is_ready().
Friday, 22th August, Ron Steinke <rsteinke@w-link.net>
* Made Poll::new_timeout_ static to keep the Timeout
constructor from instantiating the poll. Otherwise
static timeouts instantiate PollDefault before
we can set the poll instance.
Friday, 22nd August, James Turner <james@worldforge.org>
* Rename configure.in to configure.ac, since we require the newer
version. This stops some autoconf versions moaning about the name,
and helps scripts which detect which autoconf to run by
examining configure.in
* Also add an AC_PREREQ, just for paranoia's sake.
* Fix autogen.sh for the new name
Sunday, 17th August, Ron Steinke <rsteinke@w-link.net>
* Eris/UIFactory.*: Fixes to UI code for change
to atlas-transitional.
Monday, 11th August, James Turner <james@worldforge.org>
* Fix a dumb bug I introduced in June, in handling server-
commaned LOGOUTs. Essentially, I failed to pickup the
anonymous ClassDispatcher below :op:, and hence was
dispatching Player::recvRemoteLogout for every op
recived. Solution is too create an anonymous ClassDispatcher
ourselves, pending a re-think of anonymous dispatchers
at some point in the future.
Thanks to Al Riddoch for the catch.
Monday, 11th August, Al Riddoch <alriddoch@zepler.org>
* Eris/PollDefault.cpp, Eris/PollDefault.h: Fix more incorrect mangling
of Poll by conversion script.
Saturday, 9th August, Al Riddoch <alriddoch@zepler.org>
* Switch all the build files over to using 1.2 API suffix.
* bindings/polls/glib/PollGlib.h, bindings/polls/glib/PollGlibFD.h,
bindings/polls/glib/PollGlibSource.h: Fixed some incorrect
mangling of Poll by the Atlas-C++ conversion script.
Saturday, 9th August, James Turner <james@worldforge.org>
* Convert to Atlas-C++ transitional API. Do not use unless
you know what you're doing. Arrr!
* Also convert to skstream-0.3 and require wfmath 0.3
Tuesday, 22nd July 2003, Ron Steinke <rsteinke@w-link.net>
* Added UI Factory code, based on the new experimental
Janus UI Atlas entities. You need the experimental
janus branch of Atlas-C++ to compile it, so it's
wrapped in a nice-freindly ./configure check.
Monday, 23rd June 2003, Al Riddoch <alriddoch@zepler.org>
* Fix Makefile.ams so that distcheck works.
Friday 13th June, James Turner <james@worldforge.org>
* Fix compilation of the typeService stuff, this once again
provides the danger in committing while in a hurry to play
games ;-)
* Change the dependancy maps to key off of a TypeInfoPtr instead
of the string name.
* Moved all the remaining TypeService methods out of TypeInfo.cpp
and into typeService.cpp where they belong
Monday, 9th June, James Turner <james@worldforge.org>
* Fix a waring in Entity.h spotted by rsteinke
* Rename TypeInfoEngine to TypeService, move
to seperate files, and re-factor TypeInfo code
to know much less about the TypeService's
internal state (which is now private)
* Rename various Type system methods as suggested
by Al Riddoch to be more descriptive and useful
Friday, 30th May 2003, Ron Steinke <rsteinke@w-link.net>
* Fixed a missed Interface -> UserInterface change
in Player.h.
* Added a <cassert> #include in atlas_utils.h, so
the server test builds under g++ 3.3.
Sunday, 25th May 2004, James Turner <james@worldforge.org>
* Start to migrate the test code away from CppUnit,
since ithe typeinfo magic it uses upsets GCC < 3.2
Instead, switch to some fairly basic internal
helpers, since we never did much with CppUnit
anyway.
* Start adding TypeInfo support to the stub server
(using hard coded data, no dependancy on an
external source), so it be a bit more realistic.
* Rewrote testPlayer to test more things, not use CppUnit,
and generally be smarter. Oh, and it uses StubServer,
since StubConnection is a bad idea and will be
going away shortly.
Tuesday, 13th May 2003, Ron Steinke <rsteinke@w-link.net>
* More perl bindings memory management stuff,
primarily handling the World::Destroyed signal.
* Used templates to simplify the perl typemap
stuff a bit, changed the #includes in the modules
to only include the type conversion code
each needs.
Tuesday, 13th May 2003, Ron Steinke <rsteinke@w-link.net>
* Gave the perl bindings better memory management.
The biggest change is that rooms are now passed
around as a lobby pointer and id string, so we
don't get seg faults if room references go stale.
Most of the rest is incrementing/decrementing
the refcounts of the perl SV's that own Connection
and Player instances.
* Added some getConnection()/getLobby()/getPlayer()
accessors to various classes, as needed for the
above memory management code.
* Added an Interface class, for the beginning
of incorporating handling of the soon-to-be-defined
Atlas interface ops (old janus functionality).
Saturday, 10th May 2003, Al Riddoch <alriddoch@zepler.org>
* Incremented version to 0.9.8.1 for a patch release with
working perl bindings.
Saturday, 10th May 2003, Ron Steinke <rsteinke@w-link.net>
* Changed perl bindings build stuff to account
for the @WFMATH_CFLAGS@ @ATLAS_CFLAGS@ -> @WF_CFLAGS@
change
* Added a check for the SigC module to the check for
the sigcperl lib in configure.in
* Got rid of OLD_SIGC_1_0 stuff in bindings, since we're
now requiring libsigc++ 1.2
Friday, 9th May 2003, James Turner <james@worldforge.org>
* Incremented version to 0.9.8 for stable release.
Thursday, 8th May 2003, Ron Steinke
* Changed Al's mkdir -p fix in bindings/Makefile.am
to test -d || mkdir, since that's the way autoconf
does it and it's sure to be portable.
Thursday, 8th May 2003, James Turner <james@worldforge.org>
* Don't make or install eris-config, eris.m4 or
eris-config.1 (the man page). The actual files are still
there, will be removed fairly sooon.
Thursday, 8th May 2003, Al Riddoch <alriddoch@zepler.org>
* Use $(top_buildir) to refer to the top of the build structure,
and remove reference to old src dir from test Makefile.
Thursday, 8th May 2003, Al Riddoch <alriddoch@zepler.org>
* Re-order configure.in so the version variable works.
* Sort out perl bindings dist-hook rule so it works if the
perl directory already exists.
Thursday, 8th May 2003, Al Riddoch <alriddoch@zepler.org>
* test/tests.cpp: Skip the incomplete Player and Lobby tests.
Thursday, 8th May 2003, Al Riddoch <alriddoch@zepler.org>
* test/tests.cpp: Return with the correct exit status if the
tests fail.
Thursday, 8th May 2003, James Turner <james@worldforge.org>
* Updated configure.in to be Autoconf 2.5 happy, removed lots
of deprecated macros
* We now rely on pkg-config versions of sigc++ and all the
WorldForge libs, so configure is smaller and all the
AM_PATH_xxx copies in acinclude.m4 go away and die.
* Made the WFmath handling sane too (we had extra -lwfmath
and such in ERIS_LIBS, which is unecessary since pkg-config
will pick that stuff up for us)
Thursday, 8th May 2003, Ron Steinke
* Added typemaps to perl MANIFEST
* Added a dependency on the build library to
bindings/perl-makefile.stamp, so the modules
get rebuilt if the lib does
Thursday, 8th May 2003, Ron Steinke
* Missed bindings/perl/compile_flags.in. Note that
make distcheck will still not work when building
the perl bindings, since makemaker can't handle
having $(srcdir) and $(bindir) be different
Thursday, 8th May 2003, Ron Steinke
* Added a dist-hook so the perl bindings make it into
the automake tarball
* Fixed the way the perl bindings include the eris
headers to match the new way of doing things
Wednesday, 7th May 2003, James Turner <james@worldforge.org>
* Updated README, INSTALL and AUTHORS in anticipation of
a stable release fairly soon.
Tuesday, 6th May 2003, Ron Steinke
* Further perl bindings build fixes
Tuesday, 6th May 2003, Ron Steinke
* Fixed a problem with the perl bindings not getting
the atlas compile flags, generally cleaned up
the passing of those flags from autoconf to
the perl makemaker build system
Friday, 2nd May 2003, Al Riddoch
* Move code from src subdir to Eris.
* Add second .pc file for glib headers, sort out which version of glib
it depends on, and sort out to handle it in the rpm.
Tuesday, 22nd April 2003, James Turner
* updated README / INSTALL to be up-to-date for the next
release, and converted to plain text (from Abiword)
Monday, 24th March 2003, Al Riddoch
* src/Dispatcher.cpp: Handle missing TO on operations.
Monday, 24th March 2003, Al Riddoch
* bindings/polls/glib/Makefile.am: Move bindings headers to the new
pkgconfig compliant header directory.
Saturday, 1st Febuary 2003, Al Riddoch
* Convert to pkgconfig.
Friday, 31st January 2003, Al Riddoch
* Fix Atlas-C++ compiled flags.
Thursday, 30th January 2003, Al Riddoch
* src/Lobby.h: Make destructor virtual.
* src/Room.cpp, src/Room.h: Simplify to one constructor.
* src/World.cpp: Ensure talk dispatcher names are unique.
Monday, 16th December 2002, Ron Steinke
* src/Avatar.h, src/BaseConnection.h, src/ClassDispatcher.h,
src/Entity.h, src/Metaserver.h, src/Player.h, src/Property.h,
src/Room.h, src/SignalDispatcher.h, src/Timeout.h,
src/TypeInfo.h, src/Wait.h, src/World.h: Changed classes
inheriting 'public SigC::Object' to inherit 'virtual public
SigC::Object' instead, so multiple inheritance will work
Wednesday, 14th December 2002, Al Riddoch
* src/Dispatcher.cpp: Take reference to StdBranchDispatcher before
calling its subdispatchers so it doesn't get deleted before its
finished. Fix use of iterators.
* src/Dispatcher.h, src/Connection.cpp: Make reference handling
methods public, and make connection hold a reference to the
root dispatcher so it doesn't get deleted.
Wednesday, 12th December 2002, Al Riddoch
* src/Avatar.cpp: Fix initialisation of val.
Wednesday, 11th December 2002, Al Riddoch
* test/testPlayer.cpp: std:: namespace fixes.
* configure.in: Handle interface version correctly.
Monday, 2nd December 2002, Ron Steinke
* Fixed check for Perl bindings so it can detect SigCPerl >= 0.2.0,
which uses pkg-config
* Fixed errors in Perl binding build, made some changes necessary
to accomodate libsigc++-1.2
Friday, 29th November 2002, Ron Steinke
* Added PollGlib, with code taken from silence. This is the poll
for use with gtk+, it's called PollGlib because it only depends
on the lower level glib library.
Tuesday, 27th November 2002, Ron Steinke
* Integrated Perl bindings into the build with --enable-perl.
Rebuild dependencies still don't work properly, and make dist
isn't integrated between the automake and makemaker parts.
Tuesday, 26th November 2002, Ron Steinke
* Added a missing forward declaration of World to Factory.h
Monday, 18th November 2002, Ron Steinke
* Changed a bunch of accessors that returned std::string
to return const std::string& instead
Thursday, 14th November 2002, Ron Steinke
* Changed the second argument of Meta::ReceivedServerInfo
from ServerInfo to const ServerInfo&, fixed a typo
Tuesday, 12th November 2002, Ron Steinke
* Added an optional offset to Avatar::drop().
* Split Avatar::InvChanged into Avatar::InvAdded
and Avatar::InvRemoved.
Wednesday, 6th November 2002, Ron Steinke
* Added a signal handler to set Avatar's _entity member
* Added some inventory handling capabilities to Avatar
Tuesday, 5th November 2002, Ron Steinke
* Got Avatar working properly with OpRefnoDispatcher,
and changed existing references in the code to the
op:ig:foo dispatcher to use the appropriate per-World
dispatcher id. Taking/creating characters works again.
Sunday, 3rd November 2002, Al Riddoch
* configure.in: Clean up, and disable static by default.
Sunday, 3rd November 2002, Al Riddoch
* Add rpm spec.
Friday, 1st November 2002, Al Riddoch
* src/World.cpp: Fix calls to SigC::slot so it is sigc++ 1.2
compatable.
Friday, 1st November 2002, Ron Steinke
* Change ArgumentDispatcher to (new) OpRefnoDispatcher in Avatar
* Change std::cerr to log(LOG_DEBUG,...) for debugging code
Friday, 1st November 2002, Al Riddoch
* src/World.cpp: ISO C++ does not allow default value for arg to be
specified in function definition.
Wednesday, 30th October 2002, James Turner
* Commit Ron's Avatar patches : currently got a bug
with the IG-transition INFO op, so don't update unless
you're doing dev work. Also bumped the version to 0.9.7
since this is an API change (rsteinke has diffs for silence
and sear, very minor).
Monday, 28th October 2002, Al Riddoch
* Fix dispatcher removal for the imaginary emote ops fix made on the
9th. October.
Thursday, 24th October 2002, Al Riddoch
* Add checks so it is possible for a connection to send and
receive when its status is DISCONNECTING.
Thursday, 24th October 2002, Simon Goodall
* Clean up DebugDispatchers when deleting Connection object
Wednesday, 09th October 2002, Al Riddoch
* src/ArgumentDispatcher.cpp: Prevent ArgumentDispatcher from
aborting if the object it is passed has no args.
* src/Room.h, src/Room.cpp: Rework handling of imaginary emote
ops to be a bit more general.
Tuesday, September 17, Ron Steinke
* Backed out fix for Connection seg fault, which was
causing problems
Friday, September 13, Ron Steinke
* Added a check to Player::netConnected() that the current
action is null before calling internalLogin(). This
fixes a double login problem if someone else calls
Player::Login() in a BaseConnection::Connected
signal handler before the signal gets to
Player::netConnected().
Sunday, September 1, Ron Steinke
* Enhanced locking in Connection to prevent a segfault when
Connection::disconnect() is called inside a signal emitted
by BaseConnection::recv() (e.g. Player::LogoutComplete)
* Added a lock in PollDefault::poll() to prevent reentrancy,
so we catch it sooner instead of hitting an assert()
in Dispatcher
Wednesday, August 28th, James Turner
* Fix a bug (found by Simon) in Connection::gotData, introduced
by switching the lifetime of the underlying tcp_socket_stream. Basically
we weren't checking if the _stream existing prior to calling isReady.
If the meta-server is being used, and a connection object is created but
not connected, then this bug (a segfault occurs), since the Connection
is registered with the Poll instance and network activity can happen.
* Change the meta-server code to use the same life-time rationale for
it's UDP stream that BaseConnection uses for the Atlas stream. Basically
create the stream on refresh() and not before. This changes the default
behaviour : creating a Meta instance will not trigger a list query. This allows
the client to attach to the relevant signals before any failures can
occurr (thanks Simon)
* Fixed game server list persistance (I hope). If a failure or cancel
occurs while refreshing the list, Eris will revert back to the last
'good' list it recieved (if one exists).
* Converted dispatcher clean up in Lobby dtor to use removeIfDispatcher instead
of lame try { .. } catch {} blocks.
* Added an explicit greater-than comparisom to Timestamp, so the tests compile.
Did GCC 2.9.x implicitly use !(a > b) before? Certainly 3.1 seems not too.
Thursday, August 8th, Al Riddoch
* Fixed sigc++ use so it complies with published APIs, and put
conditionals in to pick up headers for sigc++ 1.0 or 1.2.
Saturday, August 3rd, James Turner
* Change BaseConnection to create a new tcp_socket_stream
for every connect. (And, obviously, hardDisconnect deletes it)
This should fix handling of stream errors, since there is no
safe way to clear the error code apparently.
This change is low impact code-wise (only changes in
BaseConnection.cpp), but needs good testing.
Friday, August 2, Michael Koch
* Patch to declare operators in header file and made method
headers equal to their declaration in header file.
Monday, July 29, Ron Steinke
* Patch to allow multiple Connection instances. Lobby and
TypeInfoEngine are per Connection, World is per Player,
Entity instances are associated with a particular World.
It may be possible at this point to have more than one
Player for a given Connection, someone should check this.
Wednesday, July 3, James Turner
* Compile fixes for OS-X / GCC 3.1
* Renamed Time.h/cpp to Timestamp, since case insensitive file system
means we look like 'time.h', which is really bad.
* Fix include of <multimap.h> to only occur under GCC 2.9.x; I think this
is correct, let me know if not.
Tuesday, July 2, Ron Steinke
* Fixes so the blocking poll handles timeouts
created during callbacks properly
Sunday, June 30, Ron Steinke
* PollDefault fixes
* Timeout::poll() and Timeout::pollAll() now return info
on when to poll again
Wednesday, June 26, Al Riddoch
* Switched to new location for skstream headers.
Monday, June 21, Ron Steinke
* Added an optional timeout argument to PollDefault::poll()
Tuesday, June 18, James Turner
* Make dtor of Meta virtual, just to be safe
Monday, April 29, Ron Steinke
* Added check for fd == INVALID_SOCKET in PollDefault
Sunday, June 2, James Turner
* Safety tweaks in Connection::recv() and Metaserver::recv()
to handle bad sockets without segfaulting. Should
improve reliability of the Dime meta-server code.
Wednesday, May 22, James Turner
* Modified Meta::got_data to be safe even when _stream is
NULL. This is legal when the meta-server has finished
sending us the server list, but there are still
active queries (which is quite commmon, when you think
about it)
Tuesday, May 21, James Turner
* Protected against MOVE ops with no ID argument set: fail
rather than asserting.
* Protected against character refreshed prior to account
login. (Thanks man-di)
Wednesday, May 15, James Turner
* Added implemention of missing getServerCount to the Metaserver
* Fixed the Meta update code to emit CompletedServerList after
the last active query is deleted. [Thanks to Xmp for catching
both issues, which no one has touched before]
* Tweaked emission of CompletedServerList to do the right thing
* Hopefully fixed Meta::doFailure to remove _stream from the Poll
object (should stop the stream of errors in Dime)
* Converted Meta::Failure to pass it's error by const reference,
like all the other signals do
Tuesday, May 14, Al Riddoch
* src/Player.cpp: Ensure that USERNAME is provided for logins.
Sunday, May 5, James Turner
* Fix Connection::Disconneting system (found by unit testing!)
* Made more of the tests work (had to stop using tcp_server_socketm
becuase it seems you must set SO_REUSEADDR before calling bind())
* Fixed some return-by-reference bugs in testUtils, which again
helps more of the tests work.
* Some tests are still not working right, GDB is being unhelpful
though. Investigation by people who's GDB doesn't suck
appreciated (eg, for whom 'break __throw' does the right thing)
Thursday, May 2, James Turner
* Changed Time::Stamp::getCurrent() into a static
factory method now(). The previous syntax looked
really odd.
* Updated all the callers of above.
* Modified stubServer to set SO_REUSEADDR on it's
sockets, which should fix the odd test problems (well some
of them .. it still gets linker errors which is a pain).
Thanks to elefth for spotting this one.
* Added some boot-strapping code to TypeInfo, not sure
how well it will work, but it uses the same path as
loading from atlas.xml, so it should be safe.
Monday, April 29, James Turner
* Add createRoom method to Room, to enable explicit creation
of OOG rooms.
* Added a Changed signal to Room, with identical semantics to
Entity; this can be used to receive notifications when room
attributes such as name, topic and the set of child rooms
changes.
* Extended Lobby to deal with room creation internally,
including a handler for SIGHT(CREATE) ops.
* Made Room::getID() more robust in the case where the ID
is not available; now throws a meaningful exception,
instead of returning an empty ID.
* Added initial lobby tests; as usual only partial coverage,
but better than nothing.
* Changed configure to simply detect CppUnit automatically,
so --enable-cppunit is now uncessary.
* Updated the README and INSTALL documents a bit
* Removed Meta::poll() and made recv() protected; these are
both obsolete since the new Polling system was added.
Monday, April 29, Ron Steinke
* Wrapped calls to PollDefault::removeStream() in Meta in a check
that _stream->is_open()
Sunday, April 28, Ron Steinke
* Fixed signed vs. unsigned problems in Time::Stamp by making
everything signed.
* Added a getCurrent() member function equivalent to getCurrentTime(),
made getCurrentTime() an inline wrapper around it
Sunday, April 28, Al Riddoch
* src/Player.cpp: Fix so that GotAllCharacters is emitted when
there are no characters to get.
Saturday, April 27, James Turner
* Updated configure to use AM_PATH_WFMATH, require
version 0.2.6, and added the macro to acinclude
so people don't get broken.
Wednesday, April 23, James Turner
* Comitting some docs I've been working on since
Christmas, in TeX format initially. Much work ahead,
contributions gladly recieved.
* Removed the old math types code (WFmath is used by
all the clients now)
* Bumped the version up to 0.9.5 now the old
Point / Orientation / BBox stuff is gone.
Wednesday, April 17, James Turner
* Added entity tests (incomplete, and not linking for some
odd reason). Something to do with WFMath I suspect, it's
all rsteinke's fault :)
Wednesday, April 17 2002, Ron Steinke
* Added a test to PollDefault: if there are no file
descriptors, fall out immediately before trying
to poll
Wednesday, April 17 2002, Ron Steinke
* Changed Time::Stamp from a typedef'd struct to a full
class, operator-(const Stamp&, const Stamp&) is now
recognized properly
Monday, April 15 2002, James Turner
* Unit tests! Configure with --enable-cppunit, and do
'make check' to run them. Note they only cover a few
classes at present, feel free to add more, or suggest
them in RT.
Wednesday, April 10 2002, James Turner
* Fixed OOG emotes in Room.cpp (dispatcher logic was totally
wrong, the replacement is big but correct)
* Moved logging resposibilites from Connection to seperate
Log.h file. Presently, this means clients which used to
attach to Eris::Connection::Log should now use
Eris::Logged.
* Updated all the Eris log call sites to use the new impl
* Numerous Metaserver tweaks to make it more stable when
connection errors and timeouts occurs; needs more work,
alas.
Monday, April 08 2002, Al Riddoch
* src/Entity.h, src/Entity.cpp: Add a flag which indicates whether
an entity has a bounding box.
Thursday, April 04 2002, James Turner
* Comitted Ron Steinke's polling changes. These add a new
class (Poll), which is an abstract polling interface
by the connections. A default implementation is supplied,
which simple calls 'select()': to retain the current Eris
behaviour, simple replace Connection::poll(), Meta::poll()
and Timeout::pollAll() with a single call to
Eris::PollDefault::poll() (defined in Eris/PollDefault.h).
If you're using Gtk+ or some other widget set that provides
idle and input notifications, then you can write your
own Poll subclass (or steal one: Ron already has a Gtk+
implementation!) and everything will work.
Friday, March 15 2002, James Turner
* Fixed logic in setContainerById, when the parent was
already defined: was doing 'setContainer(this)' which
is clearly nonsense.
* Added in / corrected lots of debugging stuff
Tuesday, March 12 2002, James Turner
* Fix for #222 - made logic in BaseConnection more robust
in handling unusual cases / states. If there are other
ways to 'wedge' the connections, please let me know.
* Fix for #216 - logic in World::recvSightDelete to fix
container ship of visible contents
* Preliminary work / re-factoring for #217 : added
setContents helper to Entity, and handle that case
in setProperty.
Sunday, March 10 2002, James Turner
* Set a default orientation on Entities, to avoid some
nasty behaviour that Simon was seeing. Set w=1, x/y/z=0.
Friday, March 08 2002, James Turner
* Fixed .so version information. Thanks to Damien for the
motivation, and Ron Steinke for showing me how.
Thursday, March 07 2002, James Turner
* Changed delay on select() to be 0,0 : previously it was
10 milliseconds, which is a bit harsh on the clients.
* Changed World::recvSightMove to use the ID argument of
the Move operation, instead of it's FROM. This should
fix reporting of pick/drop ops. Both these fixes
are suggested by Al Riddoch.
Wednesday, March 06 2002, James Turner
* Fixed character looks to actually work (had name and type
name args to ClaassDispatcher child in the wrong order!)
* Implemented disptch-safe adding and removal of subdispatchers.
Monday, March 04 2002, Al Riddoch
* Fix removal of deleted entities from their container.
Saturday, March 02 2002, James Turner
* Applied Ron Steinke's patch for WFMath support
* Bumped version to 0.9.2 so people can test against the
WFMath-enabled version
* Added README-wfmath-conversion, explaining how to
migrate a client to the new API
Monday, February 11 2002, James Turner
* Implemented Player::getAccountID();
Sunday, February 10 2002, James Turner
* Added wait for INFO(LOGOUT) response from server,
and a timeout in case the server doesn't support that
* Added a signal on Player when a logout completes
* Added a comment in World.cpp about the TO field on
IG LOOK ops.
* Added another 'foundation' dispatcher to Connection
(op:info:op)
Friday, Febuary 08 2002, Al Riddoch
* Clear TO on IG Look ops.
Sunday, February 03 2002, James Turner
* Fixed logout (set FROM)
* Changed character API, let me know what you think.
* Implemented TypeInfo::getParentsAsSet
Tuesday, January 29 2002, James Turner
* Support for sending private chat messages (using a new
'msg' method on Person)
* Root-entity handling fixes on World and Entity
* Person now caches the Lobby it's bound too (should help
when we eventually have multiple connections)
Thursday, January 24 2002, James Turner
* Supports skstream2, thanks to Michael Koch for the
work.
Sunday, January 20 2002, Al Riddoch
* Add children accessor to TypeInfo node.
Friday, January 18 2002, James Turner
* Move lots of extraneous public stuff in TypeInfo
private as it should have been all along. If this
breaks your client code, talk to me, since you
were maybe doing something unwise.
* Added global BoundType signal on TypeInfo, to
inform clients about new types as they become
available. Suggested by Al Riddoch for Equator work.
Thursday, January 17 2002, James Turner
* Further property tweaks suggested by Karsten.
* Added observeProperty accessor to Entity, which allows
easy public monitoring of attribute values.
* Fixed connectOp[To/From]Slot on Entity
* Added getType() helper on Entity that returns the
corresponding TypeInfo*
Tuesday, January 15 2002, James Turner
* Rewrote property handling completely : should be
much simpler (no unsync() / resync()) and much more
flexible now. Properties now have get and set signals
that can be observed for value changes.
* Moved all the attribute handling into setProperty(),
removing the coresponding code from recvSet/Sight/Move.
This unifies the decoding of every attribute, but
also bypasses the Atlas::Objects handling of core
attributes (only relevant for name, location, stamp
and position).
Monday, January 14 2002, James Turner
* Skstream exception handling fixes, suggested by
Stepher Meier.
* Fixed to bugs and general tweaking of attribute synchronisation
in Entity : this code hasn't been excercised before, so it's
a bit wrinkly.
* CodeWarrior and GCC 3.0 return value warning fixes from
Michael Koch and Jesse Jones
Wednesday, December 26 2001, James Turner
* Tweaked configure.in slightly, to use CXXFLAGS. Should
correctly pick up CXXFLAGS / CFLAGS variables if they are set.
* Made an assertion in Room.cpp more verbose becuase I hit it once,
using stage. This maybe a sequencing issue (similar to what
happens when logging in before the type hierarchy has fully
transferred)
* Provide a platform specific way to access the underlying connection
primitive (i.e the socket's file-descriptor under POSIX). This is
to allow efficent integration with the Gtk+ main-loop system,
which cna automatically poll file-descriptors and invoke callbacks.
Saturday, December 22 2001, James Turner
* Committed build improvement by Michael Kocg - Eris now as
an eris-config script and M4 macro file, so much more
reliable configure scripts can be setup by clients.
Friday, December 21 2001, James Turner
* Standardised Entity signals to *not* include 'this' as
an argument. If this behaviour is desired, using SigC::bind()
to achieve the same affect when connection to the Signal.
An example of doing this can be found in silence/src/game.cpp
* Changed a few signals to use pass-by-reference, since this
is valid.
* Calling this version 0.9 in preperation for a beta release in
a few weeks.
Friday, December 14 2001, James Turner
* Correct processing of 'face' attr : it's a unit vector giving
the direction, not a heading float. Thanks to Karsten for the
info, hopefully this should work now.
Wednesday, December 12 2001, James Turner
* Added Quaternion class to Types.h and Types.cpp
* Added _orientation member to Entity, an accessor and code in
recvMode to process it.
* Added a temporary check for the Acorn 0.3/0.4 'face' attribute,
and map it to a quaternion if the orientation attr is not found.
This can be removed in a few weeks, but takes the pressure off
alriddoch to update cyphesis-C++ 'right now'.
All of the above is untested becuase I don't have a graphical client
to test with; it compiles fine, and it's pretty simple, but
beyond that I'm not sure.
* Moved an assert in Room.cpp (line 244) whcih was a bit premature
Wednesday, December 12 2001, James Turner
* Fixed OOG recvAppearance/Disappearance to handle multiple
entities in ARGS. (RT ticket #165). I have verified that the current
behaviour still works, can't test the actual multi-args becuase
no server sends that format (I think)
* Added getVelocity accessor to Entity, which somehow got left out
* Updated Entity::recvMove to update the velocity value.
Thursday, December 06 2001, Al Riddoch
* Strict C++ compliance fixes, tested with gcc3.
Thursday, November 29 2001, Al Riddoch
* src/atlas_utils.h: Avoid copying twice when casting.
* src/Utils.cpp, src/Utils.h: Return const objects.
* src/Types.cpp, src/Types.h, src/Entity.cpp: Remove support for
bmedian attribute now deprecated.
Thursday, November 29 2001, James Turner
* Changed to actually call World::mark[Inv|V]isible from
Entity::setVisible; thus the IEC gets some testing.
* Handle various edge-cases in the IEC correctly, notably
when there are no buckets defined
* Various comment and dead-code clean-ups.
Monday, November 26 2001, James Turner
* Re-built dispatch system with various new features:
* Dispatcher is now abstract, since much logic has been factored
out in the StdBranchDispatcher
* Split Encap dispatcher apart so it only performs de-encapsulation,
no type/class selection
* Class dispatcher now selects the most specialised binding for
a type; i.e if handlers for 'SIGHT' and 'INFO' exist, only the
one for 'SIGHT' will be fired.
* Updated all the users of dispatchers to use the new structure
and interfaces - tested and most things seem to work, including
IG entry. OOG chat emotes are broken, will fix tomorrow.
* Handle Bounding boxes, the 'BMEDIAN' attribute and velocity/
position better in Entity.
* Added BBox to Types
Saturday, November 24 2001, James Turner
* Cleaned up logging output for TypeInfo.cpp
* Extended World to provide a protected mark[Inv/V]isible interface to
entities, so they can control their placement in the invisible entity
cache.
* Added InvisibleEntityCache.[cpp/h] and hooked it into World.cpp
* Added World::tick() method to do periodic updates (eventually motion
prediction and so on), initally just flusing the InvisibleEntityCache
as necessary.
* Updated Time to include an operator- as well as operator+
* Logs in flawlessly with an up-to-date build of Cyphesis-C++!
Thursday, November 22 2001, James Turner
* Lots of TypeInfo changes, basically the whole dependancy system
has been gone over to make it much more robust. There is one
(known) issue remaining, but a large number of other issues have
been fixed, notably that logging in with a current version of
Cyphesis-C++ should work
* Added a 'listUnbound' debugging helper to TypeInfo
* Add a check in Lobby's ctor if the connection is already active;
if so, run the netConnected callback directly. This avoids
incorrect behaviour in certain intialisations orders.
* Rewrote World::recvAppear to deal with every argument in the
list, not just the first one.
* Added isVisible and setVisible methods to Entity, which are
driven off Appearance and Disappearance ops from the server
Sunday, November 18 2001, James Turner
* Changed objectSummary to special case handling of the Root/meta
object (don't report it as <invalid>, it isn't!)
* Made atlas_cast return const, as a matter of policy against
accidental evil
* Login failures now clear the current action / serial in Player
after reporting; thus repeated login attempts now actually work!
(it's really true this time, I promise : I've actually tried it
and it works)
* Move the serialno validator around so it A) only operates on
messages recieved from Atlas (don't worry about redisaptches /
internal crap) and B) correctly handles encapsulation on the
dispatch stack (LeafDispatcher sets and ObjectArrived checks
the back (top) of the stack, not the front)
* Re-wrote 'Connection::clearSignalledWaits' to use a manual iteration,
since I am clearly doing something stupid with STL remove_if; it was
leaving some objects in the queue. My reading for tonight is
Scott Meyer's 'Effective STL', <sigh>
* Added a 'LogLevel' argument to Eris::Log, and changed all the callers to
set it a sensible value; should reduce the amout of crap we have to
wade through.
* Changed atlas_cast to use AsObject().AsMap() since AsMap doesn't
work correctly for RootEntity/Operation : this was causing lots of
strange pseudo-corruption bugs. Eternal gratitude and your first
born to be sacrificed to the greater glory of alriddoch!
Thursday, November 15 2001, James Turner
* Connection::reconnect() now generates a 'Failure' signals instead of
throwing InvalidOperation; I was being a tad aggressive here for no
good reason.
Saturday, November 10 2001, James Turner
* Made TypeInfo::init safe (doesn't assert) during reconnections
* Updated eris.dox.in with better settings
* Added more documentation to classes and generally improved the
quality and accuracy, still a long way to go but getting better
* Made objectSummary much more robust handling suspicious objects,
including a try { .. } catch block for the Atlas exceptions,
and more aggresive IsXXX checking on the Message::Objects.
* Similarly made the getMember/Arg helpers check the structure of
the input objects before extracting the data. This is slower but
all done inside asserts()
* Changed the access control for various methods (eg Room's ctor) as
a result of looking at the generated documentation, to avoid
exposing lots of internal stuff to the client.
Thursday, November 08 2001, James Turner
* Added LoginFailure signal to Player, which is generated instead
of an exception being thrown in response to server-side failures
in account creation / login.
* Updated Player::login/createAccount to work correctly with
multiple attempts / tries. This involved moving the 'Connection'
argument to both up to the Player constructor, where it should
probably have been all along.
Tuesday, November 06 2001, James Turner
* TypeInfo stuff basically works, parses the atlas.xml file
if it's found in the same directory as the program.
* Changed the way INFOs are handled since we have proper
inheritance now
* Various other fixes which needed type data to be working,
e.g. the dispatchers for OOG now bind (correctly) to 'account',
not 'player', so admin accounts and so on will work.
* Probably lots of bugs lying in the grass, but it works okay
and I want to get this commited.
Sunday, October 28 2001, James Turner
* Made dispatchers ref-counted, just like Python and COM. This is
becuase the dispatcher tree turned into a dispatcher graph, so
ownership got more complex.
* Preliminary work on ClassDispatcher to support TypeInfo;
added ClassDispatcher.cpp (not compiled at present) which uses
the TypeInfo functions. The current behaviour is retained, since
it's faster and common (at least for operations which make up the
bulk of the decode traffic), and because it's necssary to
boot-strap the type data transfer.
* Lots of changes to the TypeInfo code so it might actually work:
* Made all those dumb functions into static methods
* Added preliminary support for integer typeids which are coming
with Atlas 0.5.x and will make the world a happier place
* Moved the 'Bound' signal into TypeInfo which is cleaner and gets
rid of a global table
* Still much to do before it compiles or works
Thursday, October 25 2001, James Turner
* Tweaked objectSummary to handle SET ops better, still needs more
work
* Changed the SET op synthesised by Entity::setContainerById to
include the encapsulatig SIGHT : this means the SET actually gets
processed insetad of just being ignored
* In Connection debug mode, store pairs of FROM/SERIALNO for
recieved ops, and ensure their uniqueness. Ops with SERIALNO==0 are
flagged with a warning, this needs to be clarified. This is
correctly flagging the duplicate recieve bug, w00t!
* Re-wrote Connection::clearSignalledWaits to actually work
* Made ~WaitForBase virtual so delete doesn't segfault, d'oh
* Added WaitForBase as a friend of Connection so it can call the new method
addWait which actually puts the WaitFors into the WaitList; this wasn't
happending, hence the bug with WaitFors being fired multiple times.
* Added LeafDispatcher, a base class for (guess what?) leaf dispatchers,
that sets a special attribute (__DISPATCHED__) when it's dispatch()
method is invoked
* Connection::ObjectArrived tests (in debug mode) that all messages
have their __DISPATCHED__ attr set after being dispatched (unless an
exception is thrown). This provides a warning in the log files if
a message is completely ignored and 'drops out the bottom' of the
disaptcher tree
* Updated SignalDisaptcher0/1/2 to inherit from LeafDispatcher and
call it's dispatch implementation.
* Changed World::recvSightCreate to just call recvSightObject with
a synthetic SIGHT op; the possiblity to do special CREATE only
processing still exists, but this avoids problems where
SIGHT(CREATE(entity)), LOOK(entity) and SIGHT(entity) get overlapped
and so on.
Tuesday, October 23 2001, James Turner
* Added objectSummary function in Utils, which gives a compact
string summary of Atlas operations and entities; the heuristics
need some work but the output is usable (in Eris::Log calls for
examples)
* Added a '_debug' option to Connection (always set to true at
present) that controls some Logging output and Atlas send/recv
logging
* Renamed the Atlas log files to make their function more obvious
* Bullet-proofing in World::RecvSight to deal with multiple sights
and unrequested sights of entities.
Wednesday, October 17 2001, James Turner
* Fixed Lobby::join to handle re-joins and actually return
the Room instance.
* Added PrivateTalk signal to Lobby and the necesary code
to emit it.
* Adjusted the inital entry logic for rooms to ensure the
Entered signal is always emitted correctly.
Tuesday, October 16 2001, James Turner <jmtn@blueyonder.co.uk>
* Made Room::say/emote set the loc arg correctly; Eris now works with
both cyphesis and stage, so no one can complain.
Monday, October 15 2001
* Fixed up dispatcher tree some more (sights encap imags), seems
to work with Stage, and Stage works with Process. This is
tenuous validation at best, but it will do. Testing with
cyphesis appreciated.
Sunday, October 14 2001, James Turner
* Added ArgumentDispatcher (map args only, list args are easy too add too).
This is required to route based upon args[loc=ID] in the new OOG
format we are switching too.
* Rebuilt the Room and Lobby OOG routing code for sight / sound / imaginary
apperance / disappearance. The code has been flipped; Lobby sets up
global class selectors for each op, and rooms insert ArgDispatch
children below these to examine the 'loc' attribute.
* This needs some testing and verification, but I can't right now so
comitting and hoping.
Monday, October 01 2001, James Turner
* Support deffered binding of containers in Entity::recvSight,
using the same policy as 'set' uses; i.e creating a secondary
Set operation and deffering it until after the container is
loaded.
* Check for empty location attributes in Entity::recvSight, which
can happen with root / world objects.
* Changed various instances of GetAttr("foo").AsXXX to GetFoo() where
I'd forgotten / didn't know a Foo accessor existed; thanks to
alriddoch for catching these.
* Fix emission of World.Entered signal until both the root entity and
character entity are valid.
* throw an InvalidOperation exception if getRootEntity is called
prior to World.Entered being emitted.
Thu, 27 Sep 2001 13:50:42 +0100, James Turner
* Changed inheritance of BaseException; now inherits from std::runtime_error,
and correctly forwards the error string. As a result, exception.what() will
return a sensible value. Thanks to Karsten Laux for the suggestion.
* Applied Karsten's re-ordering in World::World() (store the instance pointer
before creating the default entity). I have no idea why this went
un-noticed in testing, very strange.
* Added an id member to BaseConnection, to help discriminate connections and
their timeouts. This is important if you're connecting to a server while
the Meta code is querying it : things get confused!. Thanks to Karsten for
the catch on this one.
Sunday, September 16 2001, James Turner <jmtn@blueyonder.co.uk>
* Correclty process the location / contains
attributes to construct the IG entity tree
Monday, September 10 2001, James Turner <jmtn@blueyonder.co.uk>
* Handle both 'account' and 'player' entites in Lobby;
necessary until proper client-side Atlas type handling
is available.
* Configuration changes to lay ground work for Python
bingings - talk to me if you want to help / test
Wednesday, August 29 2001, James Turner <jmtn@blueyonder.co.uk>
* Fixed disconnection (actually call _stream->close())
and hence reconnection - rejoice!
* Added a simple logging system using va_args and a
signal on Connection (Log). Seems to work, and doesn't mess up
ncurses like simply using 'cout' does. Wish I'd done this ages
ago, took about 5 minutes <sigh>.
Tuesday, August 28 2001, James Turner <jmtn@blueyonder.co.uk>
* Added #include "ServerInfo.h" to Metaserver.h so people don't
get hit with a huge raft of STL errors if they forget to include
it themselves.
* Added timeouts to Metaserver and hooked up MetaQuery timeouts
* Fixed various disconnect / reconnect bugs
* Player now hooks Connection::Disconnecting to issue a logout
operation. Currently the reply is undefined so this will always
hit the disconnect timeout.
* Disconnect is still not working quite right.
Monday, August 27 2001, Jmaes Turner <jmtn@blueyonder.co.uk>
* Add timeouts to BaseConnection / Connection, and
exposed in a relatively sane way.
* Modifed Time.h/.cpp to be more portable, and
updated the timing code in Meta that used it.
* Made Connection::disconnect actually do something. This entailed
adding status locking to the connection =>
* Added lock() / unlock() calls to Connection; these can hold the
Connection in a state (currently only DISCONNECTING) while
users of the connection perform tasks. Needs testing of
course, but I think the principle is sound.
Sunday, August 19 2001, James Turner <jmtn@blueyonder.co.uk>
* Added support for emotes to OOG session
* New TypeInfo system (not tested yet)
* Re-wrote the Connection dispatch model to handle
re-dispathces more flexibly.
* Added a zero-argument SignalDispatcher
* Fixed Room Talk and Emote signals to send the
account ID, instead of the user's name.
Friday, August 10 2001, James Turner <jmtn@blueyonder.co.uk>
* Updated README and INSTALL to contains something
vaugely informative.
* Initial work on TypeInfo.cpp/.h classes (not part)
of build at present.
* Entity factories are sorted by a priority now. This
meant using a multimap internally, though I've just
realised a multi-set would be sufficent. D'oh.
Saturday, August 04 2001, James Turner
* Handle sparse rooms without throwing an exceptions;
checks that the 'people' and 'rooms' list exist
before attempting to extract them.
* Fixed file line endings
Sunday, July 29 2001, James Turner
* Added redispatch (re-post) support; needs testing
and documentation but the basics are there and
quite clean.
* Added RecapDsiaptcher and IdDispatcher
* Instance() singleton accessor on Eris::Connection
* Sythetic appearance generation as required
* Fixed dispatcher setup for sound(talk)
* In-game works, with some bug (5 copies of messages!)
Friday, July 27 2001, James Turner
* Renamed methods to leadingLowerCase style, as requested
by Al Riddoch.
* Added std:: prefix to lots of things to make GCC 3.0
happier. Doubtless some remain.
* Fixed context dispatch stack handling when backtracking
occurs (wasn't correclty popping encapsulated objects)
Thursday, July 26 2001, James Turner
* Added Meta-server status codes
* Added 'Failure' signal to Meta
* Much improved meta-server error handling in general
Wednesday, July 25 2001, James Turner
* Changed Dispatcher interface to support passing
multiple objects down the tree. This enables 'context'
to be maintained, i.e encapsualting objects are not
discarded.
* Added SignalDispatcher2, which binds to both the curent
top of the context stack, and it's parent. In theorey,
SignalDispatcher3/4 etc could be provided, but this is
unlikely to occurr much in practice.
* Bumped version to 0.1.3
* Handle Stage RIM Chat bug where ID of certain objects
is not set in SIGHTs (use TO attribute of SIGHT op)
Sunday, July 22 2001, James Turner
* Fixed player to correctly register 'LoggedIn' signal
on Lobby, which was getting ignored.
* Implemented Connection::RemoveDispatcherByPath
Saturday, July 21 2001, James Turner
* Fixed Lobby::Join to match silence-py behaviour
* Added 'Leave' (part) operation to Room, and made the
destructor call it when appropriate.
* Hacking charatcer creation, still being strange
Sunday, July 15 2001, James Turner
* Meta-server code now seems to work, but:
* Rebuilt the query code to build and return ServerInfo objects
* Handle Cyphesis-style anonymous GET replies (no refno set)
Wednesday, July 04 2001, James Turner
* More reconnection work
* Correctly handle NULL stamps (assume unstamped)
* Bumped version to 0.1.2
Tuesday, July 03 2001, James Turner
* Added reconnection support to Connection
* Changes to World to support reconnection
* Correctly validate the entity stamp when processing
APPEARANCE ops.
* Added GetStamp() accessor to Entity
* Set serial number on most out-going ops
Monday, July 02 2001, James Turner
* Added meta-system; needs some work
Wednesday, June 27 2001, James Turner
* Re-factored connection into an underlying layer (BasicConnection)
and a public wrapper (Connection); this is to permit Meta-system
queries using a light-weight connection system.
* Add Appear / Disappear / Entered signals to World
Tuesday, June 26 2001, James Turner
* Updated configure.in to test for skstream header / library
* Updated configure.in to test for Atlas headers and libraries
* OOG System appears to be working with preliminary code in Stage
* Appear / Disappear handled correctly
* Generates correct OOG Talk ops
* Preliminary support for IG operation
Friday, June 15 2001, James Turner
Created initial change-log becuase automake requires it
|