* common/Database.cpp, common/globals.cpp, common/id.cpp,
common/log.cpp, modules/DateTime.cpp, rulesets/Container.h,
rulesets/Statistics.h, server/CommListener.cpp,
server/CommServer.cpp, tools/cyconfig.cpp, tools/cyconvertrules.cpp:
Add includes required for recent compilers which include less
stuff implicitly in standard headers.
* common/globals.cpp: Add usage information for --help and --version
so that the checker does not warn about them.
* configure.ac: Increment version.
* NEWS: Update NEWS announcement for release.
* Release 0.5.15
* server/Persistance.cpp: Add an information message when attempting
to create a new instance database.
* server/server.cpp: Store a new value for the start of the dynamic
port range, if one is allocated.
* common/globals.cpp: Force the instance name into lower case
alphanumeric, and underscore only. Reject it if it can't easily
be forced.
* common/globals.h, common/globals.cpp: Provide a separate function
for saving user settings back to the home directory. When
configuring a new instance, store the ruleset in user settings,
and log an informational message rather than a warning.
* server/server.cpp: When dynamically assigning a port to a new
instance, store the port in user settings, and log an informational
message. Save the user configuration once the validity has been
completely verified and applied.
* common/globals.cpp, common/globals.h: Add a new config setting for
the instance short name, and support per-instance configuration.
Add config settings for a dynamic port range.
* server/server.cpp: Support per-instance configuration and use a
dynamic port for non-default instances.
* common/globals.cpp, common/globals.h: Modify the loadConfig
function so it takes usage hints, and checks the options in known
sections against those in the usage help.
* client/client.cpp, server/server.cpp, tools/cyaddrules.cpp,
tools/cycmd.cpp, tools/cydumprules.cpp, tools/cyloadrules.cpp,
tools/cypasswd.cpp: Convert all calls to loadConfig to provide
the right hints.
* common/globals.cpp: Add a template function that ensures config
values are read without having to repeat the section and key.
Much less verbose and more obvious. Set the default ruleset in a
more sane way.
* common/globals.cpp: Make a missing config file no longer fatal,
as the default are now sane, and do work.
* server/server.cpp: Fix up some error and status messages.
* common/globals.cpp: Make the default ruleset "mason" as basic
no longer exists in the default install. Remove some error
messages which no longer apply.
* common/log.cpp, common/log.h: Switch to taking a C++ string reference
rather than a char *, as it is not really an optimisation, and it
makes the code simpler to read and write.
* client/BaseClient.cpp, client/ClientConnection.cpp,
common/AtlasFileLoader.cpp, common/BaseEntity.cpp,
common/Database.cpp, common/globals.cpp, common/id.cpp,
common/inheritance.cpp, common/log.cpp, common/log.h,
rulesets/Character.cpp, rulesets/Creator.cpp, rulesets/Entity.cpp,
rulesets/MemMap.cpp, rulesets/Motion.cpp, rulesets/Pedestrian.cpp,
rulesets/Py_Object.cpp, rulesets/Py_RootEntity.cpp,
rulesets/PythonMindScript.cpp, rulesets/PythonThingScript.cpp,
rulesets/Python_API.cpp, rulesets/Thing.cpp, server/Account.cpp,
server/Admin.cpp, server/ArithmeticFactory.cpp,
server/CommClient.cpp, server/CommListener.cpp,
server/CommMDNSPublisher.cpp, server/CommServer.cpp,
server/Connection.cpp, server/EntityFactory.cpp,
server/Persistance.cpp, server/Restoration.cpp,
server/ScriptFactory.cpp, server/TaskFactory.cpp,
server/WorldRouter.cpp, server/server.cpp: Convert over to using
new API correctly.
* data/mason.xml: Add biomass and transient to fircone, making its
script obsolete:
* common/globals.cpp, common/globals.h: Change the type and name
of the ruleset list to a string.
* rulesets/Python_API.cpp, server/EntityFactory.cpp,
server/server.cpp, tools/cyaddrules.cpp, tools/cydumprules.cpp,
tools/cyloadrules.cpp: Switch to using single ruleset config
variable.
* common/globals.cpp: Remove loading config data for inherited
rulesets.
* rulesets/Python_API.cpp: Add the python path for mind code
manually, and only add one path for the ruleset.
* common/globals.cpp: Fix the check_tmp_path() function, so it is
actually checking the path it has been given, add an access check
so we detect a temporary directory that exists but does not have
right permissions. Fix the error reporting when both paths fail.
* common/globals.h, common/globals.cpp: Flag the usage data for
cycmd and database tools. Add an additional argument to the
usage function for programs which take additional non-varconf
arguments.
* tools/cyaddrules.cpp, tools/cycmd.cpp, tools/cydumprules.cpp,
tools/cyloadrules.cpp: Add usage to the rest of the tools.
* client/client.cpp: Add additional argument usage information.
* common/globals.h, common/globals.cpp: Break option data down into
sections, fix scoping, and fill out most of the options used.
* client/client.cpp: Add version and usage reporting calls.
* common/globals.cpp, common/globals.h: Add interfact and mechanism
for showing usage data for all the programs given one central
location for the data.
* server/server.cpp: Test out the usage function.
* tools/cypasswd.cpp: Display usage using the old mechanism.
* commong/globals.h, common/globals.cpp: Add definitions for different
error codes from reading the config file, in particular codes that
indicate that the user has requested version, help or usage
information. Add a function for reporting the version of tools.
* server/server.cpp: Add support for version or usage arguments,
including specific reporting of the server build number, which is
does not apply when reporting the version of other components.
* tools/Makefile.am: Fix the globals modules dependency on consts.
* tools/cypasswd.cpp: Add support for version or usage arguments.
* tools/cypasswd.cpp: Improve the usage documentation.
* common/globals.cpp: Add a varconf parameter lookup to allow
shorthand arguments to be used to request usage information.
* common/globals.cpp: Try and be smarter about the temporary directory
used for logging and socket files so that it works on centrally
installed autopackages.
* common/globals.cpp, common/globals.h: Add a config flag
to control whether database code is enabled.
* server/EntityFactory.cpp, server/EntityFactory.h,
server/PersistantThingFactory.cpp, server/PersistantThingFactory.h,
server/PersistantThingFactory_impl.h, server/Persistor.cpp:
Re-work the persistence code so that persistent or non-persistent
versions of entity factories are installed at startup, removing
the need to check whether the database is enabled during
runtime.
* common/newid.cpp, server/Connection.cpp, server/server.cpp:
Replace the const that used to control whether the database
was used with the config flag.
* configure.ac: Require latest varconf for its new features.
* common/globals.cpp, tools/cyconfig.cpp: Use new varconf scope for
settings to more suitably handle user overidden config settings.
* aiclient/ClientConnection.cpp, aiclient/client.cpp,
client/client.cpp, common/Database.cpp, server/server.cpp,
server/slave.cpp, tools/AdminClient.h, tools/cyaddrules.cpp,
tools/cycmd.cpp: Use new varconf/config.h header.
* acinclude.m4, configure.ac, common/prefix.c, common/prefix.h,
common/Makefile.am, common/globals.cpp, tools/Makefile.am:
Use BinReloc to make cyphesis relocatable on Linux.
* 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.
* 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.
* 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.
* Fix bounding boxes for fir and oak scaling.
* common/globals.cpp: Default to starting at dawn.
* modules/DateTime.h: Make accessors to static vars static.
* server/WorldRouter.cpp: Handle time offest more sanely.
* common/Database.cpp, common/globals.cpp, rulesets/Area.cpp,
rulesets/Python_API.cpp, server/Connection.cpp,
server/Persistance.cpp: Ensure that all output goes either via
the log system, or only in debug macros.
* server/server.cpp, common/globals.cpp, client/client.cpp:
Workaround C++s nasty implicit conversion behavoir.
* common/system.cpp: Be smarted about POSIX signal handling for
segfaults and aborts.
* Update TODO.
* common/globals.cpp, common/globals.h: Add global variable for
the local state directory.
* server/Account.cpp, server/Admin.cpp, server/Admin.h,
server/Player.cpp: Tighten up some operation checking and add Create
handler to Admin in preparation for handling creation of new OOG
things.
* server/CommLocalClient.cpp, server/CommLocalClient.h,
server/CommRemoteClient.cpp, server/CommRemoteClient.h,
server/CommUnixListener.cpp, server/CommUnixListener.h,
server/CommClient.cpp, server/CommClient.h,
server/CommListener.cpp, server/Connection.cpp,
server/Connection.h, server/server.cpp:
Create new listener and connection classes using unix sockets
to allow local trusted connections.
* client/ClientConnection.cpp, client/ClientConnection.h,
client/CommClient.h, client/CreatorClient.cpp,
client/ObserverClient.cpp: Add capability to connect over
unix socket.
* common/globals.cpp, common/globals.h, server/Connection.cpp,
server/Persistance.cpp, server/Persistance.h, server/ServerRouting.cpp,
server/server.cpp: Move restricted flag out of persistance into
globals.
* server/Account.h, server/Admin.cpp, server/Connection_methods.h,
server/WorldRouter.cpp: Remove unnecessary includes.
* server/ServerRouting.cpp: No longer necessary to load the admin
account at startup. Can be loaded on demand.
* common/globals.cpp: Only persist this sessions command line
options if the user is overriding the installation directory.
* cyphesis.vconf, client/Py_CreatorClient.cpp,
client/Py_CreatorClient.h, client/client.cpp:
Add client functionality to allow diferent scripts to be run to
perform different functions on the server.
* client/CharacterClient.cpp: Add debug option.
* rulesets/Character.h: Make mind operation functions virtual,
so they can be overridden.
* common/BaseWorld.h, server/WorldRouter.cpp,
server/WorldRouter.h: Add server functions to search for
entities by name or type.
* rulesets/Creator.h, rulesets/Creator.cpp: Allow creator to
specify a look without an id to search for entities with
a given name or type.
* client/CreatorClient.cpp, client/CreatorClient.h,
client/ObserverClient.cpp, client/ObserverClient.h,
client/Py_CreatorClient.cpp, rulesets/basic/editor.py,
rulesets/mason/define_world.py:
Add support for looking for entities in the world by name or
type from client script, so client scripts can modify existing
world.
* rulesets/Entity.cpp, rulesets/Movement.cpp,
rulesets/Py_Object.cpp, rulesets/Py_Operation.cpp,
rulesets/Py_Oplist.cpp, rulesets/Python_API.cpp,
rulesets/Stackable.cpp, rulesets/Thing.cpp,
rulesets/World.cpp, server/Account.cpp,
server/CommServer.cpp, server/Connection.cpp,
server/Player.cpp, server/ServerRouting.cpp,
server/server.cpp, tools/cycmd.cpp,
tools/cywatchdog.cpp: Code formatting cleanups.
* rulesets/basic/world/objects/tools/Bow.py: Fix up bow so it now
fires correctly.
* ALL: Cleaned up headers into correct order.
* common/log.h, common/log.cpp: Write some logging code which
handles message of different types using syslog or standard
error, depending on whether we are running as a daemon.
* ALL: Switched to using log() for all output.