* common/log.h, common/log.cpp: Add logging function for logging
regular server activity, for statistics purposes, to a file.
* server/Account.cpp, server/Connection.cpp, server/server.cpp:
Add log calls to recall typical events.
* tools/cycmd.cpp: Set a name on the admin agent avatar.
* rulesets/Python_API.cpp: Remove an obsolete commented out function.
* rulesets/CalendarProperty.cpp, rulesets/CalendarProperty.h,
rulesets/World.cpp: Add a new property to handle revealing
astronomical calendar information on the world object, so clients
can get day/night cycle right.
* tools/cycmd.cpp: Improve formatting of output Atlas data, to make
it readable.
* rulesets/Creator.cpp: Reply to client with Unseen op when client
looks for an IG entity by name or type which returns no results.
* tools/cycmd.cpp: Add a cancel command to stop current running task.
Detect Unseen at the end of a flush task, and end the task.
Remove a bunch of debug output. Fix typo in add_agent output.
* tools/cycmd.cpp: Modify flusher so it uses tick ops to schedule
regular queries, until no more are found rather then attempting
to purge all entities asap, which caused race conditions. Check
the type of entities before deleting them.
* rulesets/Creator.cpp: Improve debug output. Don't dispatch ops
from client to creator locally if the are scheduled to occur
in the future.
* rulesets/Creator.cpp: Ensure Look returns nothing when client
is searching by name or type, and nothing is found.
* tools/cycmd.cpp: Add help for some more commands. Ensure help is
formatted ok, no matter how long the commands are. Report an
error if commands that required an argument don't get one.
Ensure find_by_name and find_by_type still work ok if
nothing is seen.
* common/inheritance.h: Set the correct objtype on the Root meta class.
* rulesets/Character.cpp, rulesets/Food.cpp, rulesets/Plant.cpp,
rulesets/Stackable.cpp, rulesets/Thing.cpp, server/Account.cpp,
server/Admin.cpp, server/Connection.cpp, tools/AdminClient.cpp,
tools/cycmd.cpp: Switch to renamed copyAttr() method from
Atlas-C++.
* common/AtlasFileLoader.cpp, common/Database.cpp,
common/FormattedXMLWriter.cpp, common/Property.cpp,
common/accountbase.cpp, rulesets/Character.cpp,
rulesets/Entity_getLocation.h, rulesets/MemMap.cpp,
rulesets/Pedestrian.cpp, rulesets/Plant.cpp,
rulesets/Py_Object.cpp, rulesets/Thing.cpp,
server/Admin.cpp, server/Connection.cpp, server/EntityFactory.cpp,
server/WorldRouter.cpp, tools/AdminClient.cpp, tools/cycmd.cpp,
tools/cyconvertrules.cpp: After an Element has been checked
with isFoo(), it is more efficient to get its value using Foo()
rather than asFoo() which repeats the check.
* data/mason.xml: Add default guise attribute to settler.
* tools/cycmd.cpp: Clearly differentiate between strings and numbers
when outputting Atlas data.
* server/EntityFactory.cpp: Implement reloading scripts when
a client asks to modify an installed type.
* server/Admin.cpp: Re-order checks when client asks to modify
an installed type, so the client doesn't have to set the parents.
* tools/cycmd.cpp: Add a reload command which causes the server
to update an existing type, thus reloading its script if it has
one.
* common/Property.cpp, rulesets/EntityProperties.cpp,
server/Persistor.cpp, server/Restorer.cpp, tools/cycmd.cpp:
Tweak template code to work with stricter standard compliance
of gcc 4.
* rulesets/Character.h, rulesets/Character.cpp: static const
members need to be defined in the .cpp to satisfy all compilers.
* server/CommMaster.cpp, server/CommMaster.h, server/Master.cpp,
server/Master.h: Handlers for a connection to a master server.
* server/CommPeer.cpp: Fix comments.
* server/slave.cpp: Implement connecting to master server on startup.
* tools/cycmd.cpp: Fix bug handling option to connect to slave instead
of server.
* common/globals.cpp, common/globals.h: Separate globals for server
and slave sockets. Add code for reading slave settings.
* client/ClientConnection.cpp, server/server.cpp: Use modified
global socket_name setting.
* server/slave.cpp: Update for changed return values from bool to
int. Remove metaserver functionality. Switch to using
CommSlaveListener.
* tools/cycmd.cpp: Add config option to connect to slave rather
than core server.
* server/CommListener.cpp, server/CommListener.h: Add a virtual
create method, so it can be overriden to make different kinds
of listener.
* server/Peer.cpp, server/Peer.h: New class representing connections
to peer servers.
* server/CommPeer.cpp, server/CommPeer.h: New socket class handling
sockets used to connect to peer servers.
* server/CommPeerListener.cpp, server/CommPeerListener.h: New
listener using new virtual interface in CommListener to accept
peer connections.
* server/CommClient.cpp, server/CommClient.h: Add a new constructor
for creating Atlas socket objects which are not yet open. Makes
this class suitable for establishing as well as accepting
connections. Take out call to Connection::destroy.
* server/CommRemoteClient.h: Fix error in header guards.
* server/Connection.cpp, server/Connection.h: Remove
obsolete destroy() method. Make CommClient member public.
* server/server.cpp: Add new listener for peer connections.
* common/types.h: Add enumeration for new connect operation.
* server/Admin.cpp, server/Admin.h: Add new handler for connect
operations, used by admin client to build peer connections.
* tools/cycmd.cpp: Add new command "connect" for sending
connect ops to server.
* client/ClientConnection.cpp, common/globals.cpp, common/globals.h,
server/CommMDNSPublisher.cpp, server/server.cpp, server/slave.cpp,
tools/cycmd.cpp: Add new port number settings for things like
peer connections, and listen sockets for an AI slave.
* server/CommUnixListener.cpp, server/CommUnixListener.h:
Parameterise socket name for listen socket.
* common/utility.cpp: Add a FIXME note about more correctly
converting a message to an op.
* server/CommClient.h, server/CommClient.cpp: Call new shutdown()
method in skstream instead of close when disconnecting or
timing out, so that the socket is still valid. Otherwise
there is no reliable way to detect that the socket is no longer
connected.
* server/CommClient.h, server/CommClient.cpp, server/Account.cpp,
server/Connection.h, server/Connection.cpp: Rename close() to
disconect() to more accuratly reflect its function.
* server/CommServer.h, server/CommServer.cpp: Add an implementation
based on epoll which is used if available. Much more efficient
and scalable.
* tools/cycmd.cpp: Fix a couple of memory leaks.
* client/ClientConnection.cpp, common/globals.cpp, common/globals.h,
server/CommUnixListener.cpp, tools/cycmd.cpp: Add a global and a
config option for the unix socket filename. Update man pages
to document the config option.
* Require varconf 0.6.2 for its superior command line handling.
* client/client.cpp, common/globals.cpp, server/server.cpp,
server/slave.cpp, tools/cycmd.cpp, tools/cyloadrules.cpp,
tools/cypasswd.cpp: loadConfig() now returns the index of
the first non-option commandline arg.
* client/client.cpp: Use new config feature to allow user to
specify the client function to use on the command line far
more easily.
* tests/Areatest.cpp, tests/Entitytest.cpp, tests/Foodtest.cpp,
tests/Linetest.cpp, tests/Planttest.cpp, tests/Stackabletest.cpp,
tests/Structuretest.cpp, tests/Thingtest.cpp, tests/Worldtest.cpp,
tests/inheritancetest.cpp, tests/utilitytest.cpp, tools/cycmd.cpp,
tools/cyconvertrules.cpp, tools/cydbload.cpp, tools/cyisoload.cpp,
tools/cyloadrules.cpp, tools/cypasswd.cpp: Convert code to using
Atlas Message typedefs as found in Atlas-C++ 0.6 to aid
conversion later.
* rulesets/mason/world/objects/animals/Squirrel.py: Fix import error.
* server/Admin.cpp: Add debug output to installing a class.
* tools/cycmd.cpp: Implement a quick install command to add a new
temporary type to the server.
* tools/cypasswd.cpp, tools/cyloadrules.cpp, tools/cycmd.cpp: Fix
usage functions to output to standard error.
* server/Admin.cpp: Add quick code to install new types.
* tools/cyconvertrules.cpp: Add placeholder for tool to convert
old format rules files into a new format to be common with
indri.
* tools/cywatchdog.cpp, tools/cyctrl.cpp, tools/cycmd.cpp,
server/CommUnixListener.cpp, client/ClientConnection.cpp,
Use var/tmp for temporary files and sockets.
* Give sty type a default bbox, rather than using instance
attributes.
* Clean up data files in the top level Makefile.am.
* Remove some unused files from the distribution.
* tools/cycmd.cpp: Improve server monitoring by correctly separating
OOG ops from IG ops being monitored, and by calculating number
and rate of ops monitored.
* common/BaseWorld.h, server/Connection.h, server/ServerRouting.cpp,
server/ServerRouting.h, server/ServerRouting_methods.h,
server/WorldRouter.cpp, server/WorldRouter.h:
Get rid of obsolete return value, from idle functions, and
adjust WorldRouter::idle() so it only dispatches a certain
number of ops at a time.
* server/Admin.cpp: Remove debugging output for monitoring code.
* server/ExternalMind.cpp, server/ExternalMind.h: Rename member
variables to fit with convention.
* tools/cycmd.cpp: Document monitor features.
* common/BaseEntity.cpp, common/utility.cpp, rulesets/World.cpp,
server/Account.cpp, server/Admin.cpp, server/ServerRouting.cpp,
tools/cycmd.cpp: Change objtype from "object" to "obj" in keeping
with the new Atlas spec., and tolerate either version from
clients for now.
* tools/cycmd.cpp: Handle all ops from server, including unknowns.
Log them to screen including type, to and from.
* server/Admin.cpp: Ensure we distconnect from World.Dispatch
from signal once admin has logged out, or if account is destroyed.
* tools/cycmd.cpp: Add new command to enable and disable server
monitoring.
* server/WorldRouter.cpp, common/BaseWorld.h: Add facility to
notify using a SigC signal each type an op is dispatched.
* server/CommClient.h, server/CommClient.cpp: Fix typo in
overridden method which meant it didn't work.
* server/Admin.h, server/Admin.cpp: Add handler for Monitor operation
which turns on and off sending all IG ops to the admin client.
* rulesets/Python_API.cpp, common/types.h, common/Generic.h,
common/BaseEntity.h: Fix Generic op so it can be used, and
clean up its use. Add an enumeration for monitor ops.
* client/CharacterClient.cpp, client/ClientConnection.cpp,
client/CommClient.cpp, server/Account.cpp,
server/CommClient.cpp, server/Connection.cpp,
tools/cycmd.cpp: Update required headers, now that they
are not all pulled in by Atlas/Objects/Decoder.h.
* tools/cycmd.cpp: Make cycmd a little more flexible about remote
connections and account details, and allow it to attempt commands
without logging in.
* client/ObserverClient.cpp: Remove obsolete database include.
* tools/cycmd.cpp: Modify cycmd so it now uses a unix socket connection
for local server by default.
* server/Lobby.cpp: Add some debugging messages.
* server/CommServer.cpp: Tweak select loop so that closed connections
are cleaned up as soon as they are detected.
* rulesets/World.cpp: Make demo terrain a bit more mountainous.
* Convert entire codebase over to using Atlas-C++ 0.4.90, as
start of transition to 0.6 API.
* tools/cycmd.cpp: Provide full details of entity attributes.
* rulesets/World.cpp: Provide terrain basepoints by x,y index rather
than x,y position, as it makes more sense.