* client/ClientConnection.cpp, server/CommClient.cpp: Clarify the
error messages about non operation objects on the wire, and
use the same messages in the client.
* server/Account.cpp: Rename some variables to clearer meanings.
Only send confirmation of subscription on entity creation if
the entity created is a character. Otherwise it is still created,
and can be manipulated, but not directly controlled by the
client.
* server/Connection.h, server/Connection.cpp: Change disconnectObject
to removePlayer to make it clearer what the return value means,
and return a pointer to the removed object if it is a player account.
* server/Connection.cpp: When removing an account which has been
logged out, remove all its characters which are not currently in
use from the connections list.
* server/CommSlaveClient.cpp, server/CommSlaveClient.h: Require an
ID to be passed into the constructor for a slave connection.
* server/CommSlaveListener.cpp: Generate an ID for client connections
to a slave server, and pass it into the CommSlaveClient constructor.
* server/CommServer.cpp: Remove FIXME and replace with comments
explaining the choice of value for epoll_create(). Check if
epoll_wait is returning the maximum events possible, so we know
if we should enlarge the array.
* server/CommMDNSPublisher.cpp: Report a warning if avahi frees
a watch data structure, which is currently not implemented.
Move checks on the event type avahi requires to the callback
called by avahi, so it is only checked once. Ensure that no
events are flagged once the events have been processed.
* server/Connection.h, server/Connection.cpp: Move the code that
decouples an object from the subscribed connection into its
own function, so the same code is invoked from two different
places.
* common/Use.h, common/Wield.h, common/Generic.h: Mark unused files
as removed from the build.
* common/Attack.h, common/Burn.h, common/Chop.h, common/Connect.h,
common/Cut.h, common/Delve.h, common/Dig.h, common/Drop.h,
common/Eat.h, common/Monitor.h, common/Mow.h, common/Nourish.h,
common/Pickup.h, common/Setup.h, common/Tick.h, common/Unseen.h,
common/Update.h: Add class documentation to all the custom
properties.
* common/DynamicProperty.h, client/ClientPropertyManager.h,
server/CorePropertyManager.h, server/PersistantThingFactory.h,
server/ScriptFactory.h, server/WorldRouter.cpp: Add documentation
to some places where it is missing.
* Doxyfile, client/define_world.cpp, client/define_world.h,
common/CustomOp.cpp, common/CustomOp.h, common/CustomOp_impl.h,
common/Load.h, common/Save.h, common/inheritance_impl.h,
common/operations.h, common/refno.h, common/utility.cpp,
common/utility.h, rulesets/Combat.h, rulesets/Entity_getLocation.h,
rulesets/Fell.h, rulesets/MemMap_methods.h, rulesets/Py_Optime.cpp,
rulesets/Py_Optime.h, rulesets/ThingFactory.h,
server/CommIdleSocket.h, server/ServerRouting_methods.h,
tools/Formatter.cpp, tools/Formatter.h, tools/cydbload.cpp,
tools/cyisoload.cpp: Make doxygen skip code that has been removed
and is just left in cvs for reference.
* rulesets/Thing.cpp, server/WorldRouter.cpp: Remove broadcasting
an appearance from Setup handlers, and put it WorldRouter when
the entity is added to the world, to take out the special case
from the Setup operation handler.
* server/EntityFactory.h, server/EntityFactory.cpp: Improve test
for task classes by checking if the class parent has already been
installed as a class.
* server/WorldRouter.h, server/WorldRouter.cpp: Re-write the way
broadcasts are handled, so the code is cleaner, and non
perception operations are properlly broadcast without the
need to store an explicit list of all entities in the world.
* common/const.h: Remove obsolete config option to disable
range checks and calculations.
* client/ObserverClient.cpp, rulesets/Movement.cpp,
server/Admin.cpp, tools/AdminClient.h, tools/cycmd.cpp:
Remove const.h from files which no longer require it.
* rulesets/Python_API.cpp: Remove python bindings for obsolete
constants.
* rulesets/Thing.cpp, rulesets/World.cpp, server/WorldRouter.cpp:
Remove obsolete rotten code for handling sight without ranges.
* tests/consttest.cpp: Remove tests for removed constants.
* common/PropertyManager.cpp: When the PropertyManager is deleted,
set the instance variable to 0.
* server/EntityFactory.cpp, server/EntityFactory.h: Add a destructor
so the property manager can be deleted at shutdown.
* client/ClientPropertyManager.cpp, client/ClientPropertyManager.h:
A new class as a dummy property manager for the client side.
Never creates property objects.
* client/client.cpp: Instantiate the client property manager
during client initialisation.
* server/EntityFactory.cpp: Instatiate the server property manager
during server intialisation.
* common/PropertyManager.h: Add the singletons accessor, and
make the addProperty member return a pointer to the property.
* server/CorePropertyManager.h, server/CorePropertyManager.cpp:
Implement creating properties for server side entity objects.
* rulesets/Entity.cpp: Use the property manager singleton to
create properties if a new attribute is set which is not already
a property, and its also not already a soft attribute.
* FIXME, Makefile.am: Add new FIXME file which documents FIXMEs in
the code.
* server/EntityFactory.cpp: Remove the terrain feature classes
implemented as hard coded classes.
* data/basic.xml: Add the terrain feature classes as soft data
defined classes.
* common/DynamicProperty.h, common/DynamicProperty_impl.h:
Add a second dynamic property template which can wrap any
property class, not just instances of Property<>.
* server/CorePropertyManager.cpp: Install a property factory for
COORDS, to handle the coordinates in a line.
* common/DynamicProperty.cpp, common/PropertyFactory.cpp: Remove
unnecessary template instanciations.
* rulesets/Entity.cpp, server/Account.cpp, server/Admin.cpp,
server/Connection.cpp, server/EntityFactory.h,
server/Persistor_impl.h, tools/cycmd.cpp:
Switch from using deprecated sigc++ 1.2 headers to the right
sigc++ 2.0 equivalents.
* common/DynamicProperty.cpp, common/DynamicProperty.h,
common/DynamicProperty_impl.h: New property class for handling
properties or attributes added on the fly which need to store the
value.
* common/PropertyFactory.cpp, common/PropertyFactory_impl.h,
server/CorePropertyManager.cpp: Use DynamicProperty in the
property factories for properties created on the fly.
* configure.ac: Add check for recent gcc versions, and turn of
strict aliasing on versions which have trouble with python
pointer casting.
* common/PropertyFactory_impl.h, server/CorePropertyManager.cpp:
Return safe values from function stubs to get rid of compiler
warnings.
* common/PropertyFactory.cpp, common/PropertyFactory.h,
common/PropertyFactory_impl.h, common/PropertyManager.cpp,
common/PropertyManager.h: Add new classes to automate the
creation of property objects for known property types.
* server/CorePropertyManager.cpp, server/CorePropertyManager.h:
Manager object that will coordinate creating properties
when they are added to entities.
* common/BaseEntity.cpp, rulesets/Character.cpp, rulesets/Creator.cpp,
server/Account.cpp, server/Admin.cpp, server/Connection.cpp,
server/Lobby.cpp, server/WorldRouter.cpp: Don't bother with serial
numbers on ops generated inside the server. They just leak and upset
clients.
* server/Connection.cpp, server/CommClient.cpp, server/Account.cpp:
Only set refnos on ops if the client has set a serial number.
* rulesets/Character.cpp: Simplify handling the transfer of
operations from client to in-game. Don't give new operations
serial numbers at this point.
* common/BaseWorld.h, rulesets/Creator.cpp, rulesets/World.cpp,
server/WorldRouter.cpp, server/WorldRouter.h, tests/TestWorld.h:
Pass perceptive entities to the world by pointer rather than
by ID, avoiding a lookup in the dictionary.