All IG code should use the interface of LocatedEntity when dealing
with any entity, rather than sometimes requiring Entity. Add virtual
functions to the interface where required, and modify all other interfaces
to stop them using Entity. This makes the code way cleaner, and much better
de-coupled.
* common/Identified.cpp, common/Identified.h:
Flatten down the base classes into one called Router.
* client/CharacterClient.cpp, client/CreatorClient.cpp,
rulesets/BaseMind.cpp, rulesets/Character.cpp,
rulesets/Creator.cpp, rulesets/Entity.cpp,
rulesets/LocatedEntity.cpp, rulesets/MemEntity.cpp,
rulesets/Plant.cpp, rulesets/Stackable.cpp,
rulesets/Thing.cpp, rulesets/World.cpp,
server/Account.cpp, server/Admin.cpp,
server/Connection.cpp, server/ExternalMind.cpp,
server/Lobby.cpp, server/Master.cpp,
server/Peer.cpp, server/Player.cpp,
server/ServerRouting.cpp, server/SlaveClientConnection.cpp,
server/TrustedConnection.cpp, tests/LocatedEntitytest.cpp,
tests/ThingupdatePropertiestest.cpp: Update all the operation
routing classes to use the modified base class correctly.
* common/BaseEntity.cpp, common/BaseEntity.h,
common/OOGThing.cpp, common/OOGThing.h: Make files as removed.
* tests/BaseEntitytest.cpp, tests/Makefile.am, tests/OOGThingtest.cpp:
Remove the tests for the above removed files.
* tests/LocatedEntitytest.cpp, tests/ThingupdatePropertiestest.cpp:
Update the tests to call the right base class constructors.
* tests/BaseEntitytest.cpp, tests/EntityExerciser.h,
tests/LocatedEntitytest.cpp, tests/Makefile.am,
tests/OOGThingtest.cpp, tests/OperationExerciser.cpp,
tests/OperationExerciser.h, tests/inheritancetest.cpp: Fix tests
to account for header changes, and the fact that some of the
base classes are now abstract.