Commit graph

232 commits

Author SHA1 Message Date
Al Riddoch
6e5ca40d72 2007-01-17 Al Riddoch <alriddoch@zepler.org>
* rulesets/Entity.h, rulesets/Entity.cpp: Set argument names on
	  some methods. Add a new method allowing a property to be set
	  externally.

	* server/ExternalProperty.cpp, server/ExternalProperty.h: Add a new
	  property which reflects whether an entity is connected to the
	  outside world via an external mind.

	* server/Connection.cpp, server/Connection.h: Add a new method which
	  hooks up an avatar to the connection, installing an ExternalProperty
	  if necessary.

	* server/Account.cpp: Use the new Connection method to hook up
	  existing avatars.
2007-01-17 23:00:56 +00:00
Al Riddoch
325780d652 2007-01-14 Al Riddoch <alriddoch@zepler.org>
* common/Property.cpp: Add some specialisations that are useful
	  to cover in the tests, even though we are not using them in
	  the server yet.

	* common/inheritance.h: Provide an accessor for the dictionary of
	  class objects for testing purposes.

	* rulesets/AreaProperty.cpp: Use Map() rather than isMap() once we
	  have already tested it.

	* rulesets/Entity.cpp: Remove some debug output.

	* server/CorePropertyManager.cpp: Remove some debug output.

	* tests/PropertyExerciser.h, tests/PropertyExerciser.cpp: Fill out
	  the functionality of the property tester. Add functions to get
	  random values. Use vector for value storage to make it easier
	  to generate the random values.

	* tests/AllPropertytest.cpp: Cover all the property classes we can
	  test.

	* tests/Makefile.am: Add mercator libraries to the property test,
	  as we are now testing the terrain property.
2007-01-14 21:55:21 +00:00
Al Riddoch
cc98de2816 2007-01-10 Al Riddoch <alriddoch@zepler.org>
* common/types.h: Add an entity pointer to the handler function
	  pointer arguments.

	* rulesets/ActivePropertyFactory_impl.h: Fix the guard comment.

	* rulesets/Character.cpp: Remove debugging output.

	* rulesets/Entity.cpp: Fix new property code so it now sets the
	  value. Improve the debug reporting when dealing with op handlers.

	* rulesets/mason/define_world.py: Test the decays property.

	* server/CorePropertyManager.cpp: Add a DECAYS property and a
	  test handler for it.
2007-01-10 21:58:49 +00:00
Al Riddoch
e25322a3bf 2007-01-05 Al Riddoch <alriddoch@zepler.org>
* rulesets/Entity.h, rulesets/Entity.cpp: Add a mechanism to make
	  signal connection to Entity::containered single shot only.

	* rulesets/OutfitProperty.cpp: Make the connect to garments
	  containered signal single shot, to avoid having to disconnect it.
2007-01-05 17:19:25 +00:00
Al Riddoch
0db8e92e35 2007-01-05 Al Riddoch <alriddoch@zepler.org>
* rulesets/OutfitProperty.cpp, rulesets/OutfitProperty.h:
	  Add a virtual destructor, for strict correctness.

	* rulesets/Entity.cpp: Clean up variable names in destroy().
	  Moving moving contents into LOC on destruction, remove the
	  ref counts to the destroyed entity held by its contents.
	  This means Characters can now get deleted.
2007-01-05 02:58:52 +00:00
Al Riddoch
e51e78927b 2007-01-03 Al Riddoch <alriddoch@zepler.org>
* rulesets/AtlasProperties.cpp, rulesets/AtlasProperties.h:
	  Add 3 custom property classes used to handle very commonly
	  used properties that are hard coded in Atlas more efficiently.

	* rulesets/Entity.cpp: Use the new performance property code in
	  Entity.
2007-01-03 21:55:30 +00:00
Al Riddoch
23851b3fd0 2007-01-01 Al Riddoch <alriddoch@zepler.org>
* rulesets/Character.cpp, rulesets/Creator.cpp, rulesets/Entity.cpp,
	  rulesets/Entity.h, rulesets/Pedestrian.cpp, rulesets/Py_Thing.cpp,
	  rulesets/Stackable.cpp, rulesets/Thing.cpp, rulesets/World.cpp:
	  Remove m_world member variable from all Entity classes, and
	  access the world manager object as a singleton.
2007-01-01 17:57:06 +00:00
Al Riddoch
e7c7e232ac 2006-12-26 Al Riddoch <alriddoch@zepler.org>
* client/CharacterClient.cpp, client/ClientConnection.h,
	  rulesets/Character.cpp, rulesets/Character.h, tools/cyaddrules.cpp,
	  tools/cyconfig.cpp, tools/cyconvertrules.cpp, tools/cyctrl.cpp,
	  tools/cydumprules.cpp, tools/cyloadrules.cpp, tools/cypasswd.cpp:
	  Add inline documentation.

	* client/CharacterClient.h, client/CharacterClient.cpp: Remove
	  overriden sight operation handlers, as they are no longer
	  present in the base class, and will never be called.

	* client/ClientConnection.h: Remove obsolete unimplemented template
	  declaration.

	* rulesets/Entity.cpp: Remove documentation for an argument that was
	  never there.

	* tools/cyctrl.cpp: Mark as removed from the build.

	* Add a FIXME about removing hard coded gender property
2006-12-26 18:24:24 +00:00
Al Riddoch
02cf540c09 2006-12-10 Al Riddoch <alriddoch@zepler.org>
* rulesets/Entity.cpp, rulesets/Entity.h, rulesets/Task.h,
	  rulesets/TerrainProperty.cpp, rulesets/TerrainProperty.h,
	  rulesets/Thing.cpp, rulesets/World.cpp, server/TrustedConnection.cpp,
	  server/WorldRouter.cpp: Add inline documentation.
2006-12-10 17:53:52 +00:00
Al Riddoch
59da4c51dc 2006-12-03 Al Riddoch <alriddoch@zepler.org>
* common/types.h: Add a function pointer type, and related
	  typedefs for functions which handle an operation.

	* rulesets/Entity.cpp, rulesets/Entity.h: Add a map of operation
	  handlers so that any operation type can be handled by data
	  defined handlers.

	* rulesets/ActivePropertyFactory.cpp, rulesets/ActivePropertyFactory.h,
	  rulesets/ActivePropertyFactory_impl.h: Add a new type of property
	  factory, which installs a handler when the property is added to
	  an entity.

	* server/CorePropertyManager.cpp: Test out the new property factory
	  and handler mechanism with a new property called "attachment".
2006-12-03 06:31:43 +00:00
Al Riddoch
9a56dac06c 2006-10-26 Al Riddoch <alriddoch@zepler.org>
* Add RCS Id keywords to every file, for better version tracking.
2006-10-26 00:48:00 +00:00
Al Riddoch
e3ddc8900c 2006-08-01 Al Riddoch <alriddoch@zepler.org>
* rulesets/Entity.h, rulesets/Entity.cpp, rulesets/Character.h,
	  rulesets/Character.cpp: Remove now empty operation methods.
2006-08-01 14:01:15 +00:00
Al Riddoch
e96db99501 2006-08-01 Al Riddoch <alriddoch@zepler.org>
* rulesets/Entity.cpp: Remove script override calls from the
	  individual C++ operation methods, as script overrides are
	  now done centrally.
2006-08-01 13:07:35 +00:00
Al Riddoch
d699a4ef8c 2006-08-01 Al Riddoch <alriddoch@zepler.org>
* rulesets/Entity.h, rulesets/Entity.cpp: Add a override of
	  BaseEntities operation() method which handles calling
	  script operation handlers directly, rather than relying
	  on the C++ handlers to check for them later.

	* rulesets/Character.cpp, rulesets/BaseMind.cpp: Check for script
	  operation handlers centrally in Character and BaseMind too.
2006-08-01 11:17:16 +00:00
Al Riddoch
c4b542af2a 2006-07-22 Al Riddoch <alriddoch@zepler.org>
* rulesets/Entity.cpp, rulesets/Thing.cpp, rulesets/Thing.h:
	  Move Look and Create handlers into Thing from Entity, so Entity is
	  a more abstract for all IG entities.
2006-07-22 18:13:29 +00:00
Al Riddoch
d55f933d8c 2006-07-05 Al Riddoch <alriddoch@zepler.org>
* rulesets/Entity.cpp: Remove debug output.

	* server/CorePropertyManager.cpp: Remove more debug output.
2006-07-04 23:48:19 +00:00
Al Riddoch
640c3d28d7 2006-07-03 Al Riddoch <alriddoch@zepler.org>
* client/Py_CreatorClient.cpp, rulesets/Character.cpp,
	  rulesets/Entity.cpp, rulesets/Entity.h, rulesets/Food.cpp,
	  rulesets/Pedestrian.cpp, rulesets/Plant.cpp, rulesets/Py_Mind.cpp,
	  rulesets/Py_Thing.cpp, rulesets/Thing.cpp, server/WorldRouter.cpp:
	  Rename Entity members get(), set() and has() to getAttr(), setAttr()
	  and hasAttr().
2006-07-03 01:41:29 +00:00
Al Riddoch
1d53fa068f 2006-07-03 Al Riddoch <alriddoch@zepler.org>
* 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.
2006-07-03 01:29:07 +00:00
Al Riddoch
60c62e2d86 2006-06-26 Al Riddoch <alriddoch@zepler.org>
* 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.
2006-06-26 16:49:25 +00:00
Al Riddoch
7b9625335e 2006-06-06 Al Riddoch <alriddoch@zepler.org>
* rulesets/Entity.cpp, rulesets/Creator.cpp, common/BaseEntity.cpp:
	  Catch the last few places, and ensure refno is only set if
	  serialno is set on the causing op.
2006-06-07 00:02:05 +00:00
Al Riddoch
febbca1390 2006-06-06 Al Riddoch <alriddoch@zepler.org>
* rulesets/Entity.h, rulesets/Entity.cpp: Add a function to handle
	  all the changes required when the LOC or container of an entity
	  changes.

	* rulesets/Motion.cpp, rulesets/Thing.cpp: Use changeContainer()
	  rather than repeating the code in three places.
2006-06-05 23:18:55 +00:00
Al Riddoch
f113567e9b 2006-05-10 Al Riddoch <alriddoch@zepler.org>
* common/Property.h, common/Property_impl.h,
	  rulesets/AreaProperty.cpp, rulesets/AreaProperty.h,
	  rulesets/CalendarProperty.cpp, rulesets/CalendarProperty.h,
	  rulesets/Entity.cpp, rulesets/EntityProperties.cpp,
	  rulesets/LineProperty.cpp, rulesets/LineProperty.h,
	  rulesets/Py_Thing.cpp, rulesets/StatisticsProperty.cpp,
	  rulesets/StatisticsProperty.h, rulesets/TerrainProperty.cpp,
	  rulesets/TerrainProperty.h: Change return value of Property::get
	  to bool, and use it to indicate if the property has a value.
2006-05-10 13:46:15 +00:00
Al Riddoch
a884fa4866 2006-05-06 Al Riddoch <alriddoch@zepler.org>
* common/Database.cpp, common/newid.cpp, server/server.cpp:
	  Modify new ID checks so that code still runs when database is
	  unavailable, and events requiring new IDs fail cleanly.

	* server/Connection.cpp: Report a failure to create a player
	  account if no ID available.

	* rulesets/BaseMind.cpp: When processing appearance ops, handle
	  stamp more efficiently, report an error if ID is missing
	  from argument.

	* server/IdlePSQLConnector.cpp, server/IdlePSQLConnector.h:
	  Implement re-connecting to the Database if connection is lost.

	* rulesets/Character.cpp, rulesets/Entity.cpp, rulesets/Thing.cpp:
	  Ensure STAMP is present on appearance op args.

	* server/CommListener.cpp, server/CommListener.h,
	  server/CommPeerListener.cpp, server/CommPeerListener.h,
	  server/CommSlaveListener.cpp, server/CommSlaveListener.h,
	  server/CommUnixListener.cpp, server/CommUnixListener.h:
	  Add a return value to method for creating new client socket
	  objects, and use it to return failure if no ID is available
	  from the database for a new object.

	* rulesets/Py_Point3D.cpp, rulesets/Py_Vector3D.cpp,
	  rulesets/Python_API.cpp: Add "new" method for class wrappers, and
	  call the in place constructor from new rather than init. Re-write
	  internal function for creating new instances so it uses the "new"
	  method.

	* rulesets/Py_Statistics.cpp: Remove some obsolete code inadvertedly
	  copied from another file. Comment out some unused code to get rid
	  of a warning.

	* server/CommPSQLSocket.cpp: Clear the database connection from
	  destructor.

	* tests/python_class.cpp: A new test for experimenting with new
	  Python wrappers.
2006-05-06 21:36:57 +00:00
Al Riddoch
2132917436 2006-02-18 Al Riddoch <alriddoch@zepler.org>
* common/BaseEntity.h, common/BaseWorld.h, common/Property.h,
	  modules/Location.h, rulesets/Entity.cpp, rulesets/Entity.h,
	  server/Account.cpp, server/Account.h, server/Admin.cpp,
	  server/Admin.h, server/Connection.cpp, server/Connection.h,
	  server/Persistor.cpp, server/Persistor.h, server/Persistor_impl.h,
	  tools/cycmd.cpp: Update usage of sigc++ to the native 2.0 API
	  rather than the deprecated compatability API. Eleminate the
	  manual disconnection code for deleted objects, as this is now
	  handled automatically by sigc::trackable.
2006-02-18 21:56:43 +00:00
Al Riddoch
2368dc8db8 2006-02-10 Al Riddoch <alriddoch@zepler.org>
* rulesets/World.cpp: Re-write look handling to use existing
	  addToEntity() to create an atlas representation of the entity
	  rather than doing most by hand. This ensures that properties
	  and attributes now work on the world.

	* rulesets/Entity.cpp: Ensure that the best use is made of static
	  attributes on RootEntity.
2006-02-10 00:48:30 +00:00
Al Riddoch
fac57eee73 2006-01-19 Al Riddoch <alriddoch@zepler.org>
* aiclient/ClientAccount.cpp, aiclient/ClientAccount.h,
	  aiclient/ClientConnection.cpp, aiclient/ClientConnection.h,
	  aiclient/client.cpp, aiclient/client.h, client/BaseClient.cpp,
	  client/BaseClient.h, client/CharacterClient.cpp,
	  client/CharacterClient.h, client/ClientConnection.cpp,
	  client/ClientConnection.h, client/CreatorClient.cpp,
	  client/CreatorClient.h, client/ObserverClient.cpp,
	  client/ObserverClient.h, client/Py_CreatorClient.cpp,
	  client/Py_CreatorClient.h, client/client.cpp,
	  client/define_world.cpp, client/define_world.h, common/Add.h,
	  common/Affect.h, common/AtlasFileLoader.cpp,
	  common/AtlasFileLoader.h, common/Attack.h, common/BaseEntity.cpp,
	  common/BaseEntity.h, common/BaseWorld.cpp, common/BaseWorld.h,
	  common/Burn.h, common/Chop.h, common/Connect.h, common/CustomOp.cpp,
	  common/CustomOp.h, common/CustomOp_impl.h, common/Cut.h,
	  common/Database.cpp, common/Database.h, common/Delve.h, common/Dig.h,
	  common/Eat.h, common/FormattedXMLWriter.cpp,
	  common/FormattedXMLWriter.h, common/Generic.h, common/Load.h,
	  common/Monitor.h, common/Mow.h, common/Nourish.h,
	  common/OOGThing.cpp, common/OOGThing.h, common/Property.cpp,
	  common/Property.h, common/Property_impl.h, common/Save.h,
	  common/Setup.h, common/Tick.h, common/Unseen.h, common/Update.h,
	  common/Use.h, common/Wield.h, common/accountbase.cpp,
	  common/accountbase.h, common/const.cpp, common/const.h,
	  common/custom.cpp, common/debug.h, common/globals.cpp,
	  common/globals.h, common/id.cpp, common/id.h, common/inheritance.cpp,
	  common/inheritance.h, common/inheritance_impl.h, common/log.cpp,
	  common/log.h, common/newid.cpp, common/nls.h, common/op_switch.h,
	  common/operations.cpp, common/operations.h, common/random.h,
	  common/refno.h, common/serialno.cpp, common/serialno.h,
	  common/system.cpp, common/system.h, common/terrain_utils.cpp,
	  common/terrain_utils.h, common/type_utils.h, common/types.h,
	  common/utility.cpp, common/utility.h, modules/DateTime.cpp,
	  modules/DateTime.h, modules/Location.cpp, modules/Location.h,
	  modules/WorldTime.cpp, modules/WorldTime.h, physics/BBox.cpp,
	  physics/BBox.h, physics/Collision.cpp, physics/Collision.h,
	  physics/Quaternion.cpp, physics/Quaternion.h, physics/Vector3D.cpp,
	  physics/Vector3D.h, physics/VectorPol.h, rulesets/Area.cpp,
	  rulesets/Area.h, rulesets/AreaProperty.cpp, rulesets/AreaProperty.h,
	  rulesets/ArithmeticScript.cpp, rulesets/ArithmeticScript.h,
	  rulesets/BaseMind.cpp, rulesets/BaseMind.h,
	  rulesets/CalendarProperty.cpp, rulesets/CalendarProperty.h,
	  rulesets/Character.cpp, rulesets/Character.h, rulesets/Combat.cpp,
	  rulesets/Combat.h, rulesets/Container.cpp, rulesets/Container.h,
	  rulesets/Creator.cpp, rulesets/Creator.h, rulesets/Entity.cpp,
	  rulesets/Entity.h, rulesets/EntityProperties.cpp,
	  rulesets/Entity_getLocation.h, rulesets/Fell.cpp, rulesets/Fell.h,
	  rulesets/Food.cpp, rulesets/Food.h, rulesets/Line.cpp,
	  rulesets/Line.h, rulesets/LineProperty.cpp, rulesets/LineProperty.h,
	  rulesets/MemEntity.cpp, rulesets/MemEntity.h, rulesets/MemMap.cpp,
	  rulesets/MemMap.h, rulesets/MemMap_methods.h,
	  rulesets/MindFactory.cpp, rulesets/MindFactory.h, rulesets/Missile.h,
	  rulesets/Motion.cpp, rulesets/Motion.h, rulesets/Movement.cpp,
	  rulesets/Movement.h, rulesets/Pedestrian.cpp, rulesets/Pedestrian.h,
	  rulesets/Plant.cpp, rulesets/Plant.h, rulesets/Py_BBox.cpp,
	  rulesets/Py_BBox.h, rulesets/Py_EntityWrapper.h,
	  rulesets/Py_Location.cpp, rulesets/Py_Location.h,
	  rulesets/Py_Map.cpp, rulesets/Py_Map.h, rulesets/Py_Mind.cpp,
	  rulesets/Py_Mind.h, rulesets/Py_Object.cpp, rulesets/Py_Object.h,
	  rulesets/Py_Operation.cpp, rulesets/Py_Operation.h,
	  rulesets/Py_Oplist.cpp, rulesets/Py_Oplist.h, rulesets/Py_Optime.cpp,
	  rulesets/Py_Optime.h, rulesets/Py_Point3D.cpp, rulesets/Py_Point3D.h,
	  rulesets/Py_Property.cpp, rulesets/Py_Property.h,
	  rulesets/Py_Quaternion.cpp, rulesets/Py_Quaternion.h,
	  rulesets/Py_RootEntity.cpp, rulesets/Py_RootEntity.h,
	  rulesets/Py_Statistics.cpp, rulesets/Py_Statistics.h,
	  rulesets/Py_Task.cpp, rulesets/Py_Task.h, rulesets/Py_Thing.cpp,
	  rulesets/Py_Thing.h, rulesets/Py_Vector3D.cpp,
	  rulesets/Py_Vector3D.h, rulesets/Py_World.cpp, rulesets/Py_World.h,
	  rulesets/Py_WorldTime.cpp, rulesets/Py_WorldTime.h,
	  rulesets/PythonArithmeticScript.cpp,
	  rulesets/PythonArithmeticScript.h, rulesets/PythonMindScript.cpp,
	  rulesets/PythonMindScript.h, rulesets/PythonScript.cpp,
	  rulesets/PythonScript.h, rulesets/PythonThingScript.cpp,
	  rulesets/PythonThingScript.h, rulesets/PythonWrapper.cpp,
	  rulesets/PythonWrapper.h, rulesets/Python_API.cpp,
	  rulesets/Python_API.h, rulesets/Python_Script_Utils.h,
	  rulesets/Script.cpp, rulesets/Script.h, rulesets/Stackable.cpp,
	  rulesets/Stackable.h, rulesets/Statistics.cpp, rulesets/Statistics.h,
	  rulesets/StatisticsProperty.cpp, rulesets/StatisticsProperty.h,
	  rulesets/Structure.cpp, rulesets/Structure.h, rulesets/Task.cpp,
	  rulesets/Task.h, rulesets/TaskScript.cpp, rulesets/TaskScript.h,
	  rulesets/TerrainProperty.cpp, rulesets/TerrainProperty.h,
	  rulesets/Thing.cpp, rulesets/Thing.h, rulesets/ThingFactory.cpp,
	  rulesets/ThingFactory.h, rulesets/World.cpp, rulesets/World.h,
	  rulesets/attributes.h, server/Account.cpp, server/Account.h,
	  server/Admin.cpp, server/Admin.h, server/ArithmeticFactory.cpp,
	  server/ArithmeticFactory.h, server/CommClient.cpp,
	  server/CommClient.h, server/CommIdleSocket.cpp,
	  server/CommIdleSocket.h, server/CommListener.cpp,
	  server/CommListener.h, server/CommLocalClient.cpp,
	  server/CommLocalClient.h, server/CommMDNSPublisher.cpp,
	  server/CommMDNSPublisher.h, server/CommMaster.cpp,
	  server/CommMaster.h, server/CommMetaClient.cpp,
	  server/CommMetaClient.h, server/CommPSQLSocket.cpp,
	  server/CommPSQLSocket.h, server/CommPeer.cpp,
	  server/CommPeer.h, server/CommPeerListener.cpp,
	  server/CommPeerListener.h, server/CommRemoteClient.cpp,
	  server/CommRemoteClient.h, server/CommServer.cpp,
	  server/CommServer.h, server/CommSlaveClient.cpp,
	  server/CommSlaveClient.h, server/CommSlaveListener.cpp,
	  server/CommSlaveListener.h, server/CommSocket.cpp,
	  server/CommSocket.h, server/CommUnixListener.cpp,
	  server/CommUnixListener.h, server/Connection.cpp,
	  server/Connection.h, server/Connection_methods.h,
	  server/EntityFactory.cpp, server/EntityFactory.h,
	  server/ExternalMind.cpp, server/ExternalMind.h,
	  server/Idle.cpp, server/Idle.h, server/Lobby.cpp, server/Lobby.h,
	  server/Master.cpp, server/Master.h, server/Peer.cpp, server/Peer.h,
	  server/Persistance.cpp, server/Persistance.h,
	  server/PersistantThingFactory.cpp, server/PersistantThingFactory.h,
	  server/PersistantThingFactory_impl.h, server/Persistor.cpp,
	  server/Persistor.h, server/Persistor_impl.h,
	  server/Player.cpp, server/Player.h, server/Restoration.cpp,
	  server/Restoration.h, server/Restorer.cpp, server/Restorer.h,
	  server/Restorer_impl.h, server/ScriptFactory.cpp,
	  server/ScriptFactory.h, server/ServerRouting.cpp,
	  server/ServerRouting.h, server/ServerRouting_methods.h,
	  server/SlaveClientConnection.cpp, server/SlaveClientConnection.h,
	  server/TaskFactory.cpp, server/TaskFactory.h,
	  server/TrustedConnection.cpp, server/TrustedConnection.h,
	  server/WorldRouter.cpp, server/WorldRouter.h,
	  server/server.cpp, server/server.h, server/slave.cpp,
	  tests/Areatest.cpp, tests/BaseEntitytest.cpp,
	  tests/Charactertest.cpp, tests/Containertest.cpp,
	  tests/Creatortest.cpp, tests/EntityExerciser.h,
	  tests/EntityFactorytest.cpp, tests/Entitytest.cpp,
	  tests/Foodtest.cpp, tests/IGEntityExerciser.h,
	  tests/Linetest.cpp, tests/Locationtest.cpp, tests/OOGThingtest.cpp,
	  tests/Planttest.cpp, tests/Propertytest.cpp, tests/Stackabletest.cpp,
	  tests/Structuretest.cpp, tests/Tasktest.cpp, tests/TestWorld.h,
	  tests/Thingtest.cpp, tests/WorldTimetest.cpp, tests/Worldtest.cpp,
	  tests/allOperations.h, tests/collisiontest.cpp, tests/consttest.cpp,
	  tests/distancetest.cpp, tests/emergencetest.cpp,
	  tests/inheritancetest.cpp, tests/logtest.cpp, tests/randomtest.cpp,
	  tests/systemtest.cpp, tests/transformtest.cpp,
	  tests/type_utilstest.cpp, tests/utilitytest.cpp,
	  tools/AdminClient.cpp, tools/AdminClient.h, tools/cyaddrules.cpp,
	  tools/cycmd.cpp, tools/cyconfig.cpp, tools/cyconvertrules.cpp,
	  tools/cyctrl.cpp, tools/cydbload.cpp, tools/cydumprules.cpp,
	  tools/cyisoload.cpp, tools/cyloadrules.cpp, tools/cypasswd.cpp,
	  tools/cywatchdog.cpp: Replace the copyright and license statements
	  with new versions that include disclaimer of warranty, and
	  permit distribution under later versions of the GPL.
2006-01-19 02:17:06 +00:00
Al Riddoch
8cdee66af9 2005-12-11 Al Riddoch <alriddoch@zepler.org>
* rulesets/Script.h, rulesets/Script.cpp: Add a default Script
	  instance for entities that don't have a script.

	* rulesets/Entity.cpp: Assign a pointer to the default script
	  object in constructor, and check for it when deleting scripts.
2005-12-11 19:05:22 +00:00
Al Riddoch
dbc62586d0 2005-12-04 Al Riddoch <alriddoch@zepler.org>
* rulesets/Entity.h, rulesets/Entity.cpp: Add getProperty method
	  which allows the property object of an attribute to be accessed.

	* tests/IGEntityExerciser.h, tests/Entitytest.cpp: Add tests for
	  getProperty() basic functionality.
2005-12-04 03:58:37 +00:00
Al Riddoch
7da6d9838c 2005-11-21 Al Riddoch <alriddoch@zepler.org>
* rulesets/Entity.cpp: Switch to using SignalProperty for BBOX.

	* rulesets/Area.cpp, rulesets/Character.cpp, rulesets/Line.cpp,
	  rulesets/Plant.cpp, rulesets/Py_Location.cpp:
	  Update bbox on location using setBBox(), so cached values are
	  updated.
2005-11-21 14:34:03 +00:00
Al Riddoch
bba73b3cf6 2005-11-21 Al Riddoch <alriddoch@zepler.org>
* modules/Location.h, modules/Location.cpp: Add methods to modify
	  bbox, and to report if it has been modifed so that cached values
	  can be computed.

	* common/Property.h, common/Property_impl.h: Add a new type of
	  Property which emits a signal when modified.

	* rulesets/EntityProperties.cpp, rulesets/Entity.cpp: Implement
	  signal Property and use it for bbox, so linking its signal
	  to Location so that the necessary values can be computed after
	  modification.
2005-11-21 02:24:17 +00:00
Al Riddoch
75e9d3a546 2005-11-10 Al Riddoch <alriddoch@zepler.org>
* common/BaseEntity.h, common/BaseEntity.cpp: Add an integer ID
	  member variable, and accessor, and require it to be initialised
	  along with string ID in constructor.

	* common/const.cpp, common/const.h: Add a const for the integer value
	  of the world ID.

	* rulesets/Area.cpp, rulesets/Area.h, rulesets/BaseMind.cpp,
	  rulesets/BaseMind.h, rulesets/Character.cpp, rulesets/Character.h,
	  rulesets/Creator.cpp, rulesets/Creator.h, rulesets/Entity.cpp,
	  rulesets/Entity.h, rulesets/Food.cpp, rulesets/Food.h,
	  rulesets/Line.cpp, rulesets/Line.h, rulesets/MemEntity.cpp,
	  rulesets/MemEntity.h, rulesets/Plant.cpp, rulesets/Plant.h,
	  rulesets/Stackable.cpp, rulesets/Stackable.h, rulesets/Structure.cpp,
	  rulesets/Structure.h, rulesets/Thing.cpp, rulesets/Thing.h,
	  rulesets/World.cpp, rulesets/World.h: Add integer ID handling to
	  constructors of all in-game entity classes.

	* rulesets/MemMap.cpp: Initialise integer ID of entities in the mind
	  map.

	* rulesets/MindFactory.cpp, rulesets/MindFactory.h: Handle integer
	  ID when constructing mind objects.

	* server/EntityFactory.cpp, server/EntityFactory.h,
	  server/PersistantThingFactory_impl.h: Handle integer
	  ID when contructing entity objects.

	* server/Restoration.cpp, server/Restoration.h, server/Restorer.h,
	  server/Restorer_impl.h: Handle integer ID when restoring from
	  database.

	* server/WorldRouter.cpp: Assign integer ID when constructing the
	  world.
2005-11-11 00:06:48 +00:00
Al Riddoch
be74e78b55 2005-10-20 Al Riddoch <alriddoch@zepler.org>
* rulesets/Character.cpp: Audit all mindFooOperation() methods, to
	  ensure operations from the mind or client code are handled in
	  a correct and consistant manner. Improve comments documenting
	  the mind operation interface.

	* rulesets/Entity.cpp: Add comments documenting how externalOperation
	  should be used.
2005-10-20 13:43:04 +00:00
Al Riddoch
a0836a6818 2005-09-28 Al Riddoch <alriddoch@zepler.org>
* modules/Location.cpp, modules/Location.h:
	  Add const accessors for location data, in preparation for
	  adding cached collision data which must be updated every
	  time data is modified.

	* physics/Collision.cpp, rulesets/Character.cpp, rulesets/Entity.cpp,
	  rulesets/Entity.h, rulesets/MemMap.cpp, rulesets/Movement.cpp,
	  rulesets/Pedestrian.cpp, rulesets/Plant.cpp,
	  rulesets/Py_Location.cpp, rulesets/Thing.cpp, rulesets/World.cpp,
	  server/Account.cpp, server/EntityFactory.cpp, server/Persistor.cpp,
	  server/Persistor_impl.h, server/Restorer_impl.h,
	  server/WorldRouter.cpp, tests/Locationtest.cpp:
	  Use the const accessors whenver reading data from Location.
2005-09-28 23:02:50 +00:00
Al Riddoch
0504e6cf79 2005-09-26 Al Riddoch <alriddoch@zepler.org>
* common/BaseEntity.cpp, common/BaseEntity.h, common/inheritance.cpp,
	  common/inheritance.h, rulesets/BaseMind.cpp, rulesets/BaseMind.h,
	  rulesets/Character.cpp, rulesets/Character.h, rulesets/Entity.cpp,
	  rulesets/Food.cpp, rulesets/Plant.cpp, rulesets/Stackable.cpp,
	  rulesets/Thing.cpp, rulesets/World.cpp, server/Account.cpp,
	  server/Admin.cpp, server/Connection.cpp, server/server.cpp:
	  Remove the subscription mechanism as it is no longer necessary
	  now that operations have class numbers.
2005-09-26 01:56:21 +00:00
Al Riddoch
2ed62f3bf6 2005-09-22 Al Riddoch <alriddoch@zepler.org>
* rulesets/Container.h, rulesets/Container.cpp,
	  rulesets/EntityProperties.cpp: Implement add(Entity) for common
	  poperties, and containers.

	* rulesets/Entity.cpp: Use add(Entity) instead of get() on properties,
	  ensuring that unset properties aren't copied. Fixes problem with
	  bboxes appearing on all entities.
2005-09-22 23:06:45 +00:00
Al Riddoch
85f6672fbe 2005-09-19 Al Riddoch <alriddoch@zepler.org>
* rulesets/Entity.h, rulesets/Entity.cpp: Add default script
	  only handler for Attack ops.

	* rulesets/Character.cpp: When Attack op comes from mind,
	  move it on to the target entity.
2005-09-19 22:36:14 +00:00
Al Riddoch
d52414f72a 2005-09-18 Al Riddoch <alriddoch@zepler.org>
* rulesets/PythonMindScript.cpp, rulesets/PythonMindScript.h,
	  rulesets/PythonThingScript.cpp, rulesets/PythonThingScript.h
	  rulesets/PythonScript.h, rulesets/Script.cpp, rulesets/Script.h:
	  Clean up script API.

	* rulesets/BaseMind.cpp, rulesets/Character.cpp, rulesets/Entity.cpp,
	  rulesets/Food.cpp, rulesets/Plant.cpp, rulesets/Stackable.cpp,
	  rulesets/Thing.cpp: Modify script calls to new API.

	* rulesets/BaseMind.cpp, rulesets/BaseMind.h: All sub_op calls now
	  take const ref for sub_op argument.
2005-09-18 00:55:58 +00:00
Al Riddoch
f2a739734a 2005-09-14 Al Riddoch <alriddoch@zepler.org>
* client/ClientConnection.cpp: Improve error reporting when
	  unexpected object arrives from server.

	* rulesets/Character.cpp: Invert test so that tool use op arguments
	  are now set correctly.

	* rulesets/Entity.cpp: Use proper entities to handle responses to
	  Create and Look ops.

	* server/Connection.cpp, server/EntityFactory.cpp: Improve error
	  reporting using String::compose.

	* server/EntityFactory.cpp: Invert test so that all custom ops
	  now don't fail to get installed. Ensure that custom ops that
	  need to wait for their parent a properly inserted into the
	  waiting queue.
2005-09-13 23:29:42 +00:00
Al Riddoch
8067e23f4e 2005-09-09 Al Riddoch <alriddoch@zepler.org>
* rulesets/Entity.cpp, rulesets/Thing.cpp: Use copy correctly
	  when creating copies of operations.
2005-09-09 22:36:32 +00:00
Al Riddoch
84b04428eb 2005-09-08 Al Riddoch <alriddoch@zepler.org>
* rulesets/Entity.cpp: Update copyright date.

	* rulesets/BaseMind.cpp, rulesets/Entity_getLocation.h,
	  rulesets/Entity.h, rulesets/MemMap.cpp, rulesets/MemMap.h,
	  rulesets/Py_Map.cpp, server/EntityFactory.cpp,
	  server/EntityFactory.h, server/WorldRouter.cpp,
	  client/BaseClient.cpp, client/CreatorClient.cpp:
	  Change various methods to pass entity information
	  around as RootEntity rather than MapType.
2005-09-08 15:03:31 +00:00
Al Riddoch
4afadfd322 2005-08-29 Al Riddoch <alriddoch@zepler.org>
* rulesets/Entity.cpp, rulesets/Thing.cpp: Use static LOC and POS
	  members in RootEntity.

	* rulesets/Entity_getLocation.h: Add some slightly more thorough
	  checking for location data.
2005-08-29 00:44:56 +00:00
Al Riddoch
fdd316b628 2005-08-27 Al Riddoch <alriddoch@zepler.org>
* Port whole code base to Atlas-C++ 0.6 series. Main server binary
	  now links.
2005-08-27 14:52:12 +00:00
Al Riddoch
4d1ec4d2a6 2005-05-09 Al Riddoch <alriddoch@zepler.org>
* rulesets/Entity.cpp, rulesets/Thing.cpp: Move Create op subscription
	  into Entity, as that is where the method is.

	* rulesets/World.cpp: Create a boulder entity when the pickaxe
	  is used on rocky terain.

	* client/CharacterClient.cpp: Don't process ops from the server in
2005-05-09 18:52:15 +00:00
Al Riddoch
50519549e8 2005-05-04 Al Riddoch <alriddoch@zepler.org>
* rulesets/Entity.cpp, rulesets/Thing.cpp, rulesets/Thing.h:
	  Move standard Create handler into entity so everything can
	  handle create ops.
2005-05-04 22:42:02 +00:00
Al Riddoch
5f34ba522e 2004-01-17 Al Riddoch <alriddoch@zepler.org>
* common/BaseWorld.h, rulesets/Character.cpp, rulesets/Py_World.cpp,
	  rulesets/PythonThingScript.cpp, rulesets/Stackable.cpp,
	  rulesets/Thing.cpp, rulesets/World.cpp, server/Account.cpp,
	  server/Admin.cpp, server/Connection.cpp, server/EntityFactory.cpp,
	  server/Restoration.cpp, server/WorldRouter.cpp, server/WorldRouter.h:
	  Rename some functions in the World interface so they make more
	  sense.

	* rulesets/Entity.cpp, rulesets/Entity.h: Add destroyed flag to
	  Entity so we can tell if its no longer in the world.

	* server/WorldRouter.cpp: Cut down the special case handling of
	  delete ops as we can now broadcast ops from entities that
	  have been removed from the world.
2005-01-17 01:42:25 +00:00
Al Riddoch
fa86baed27 2004-01-16 Al Riddoch <alriddoch@zepler.org>
* rulesets/Entity.cpp: Call decRef() on parent from the destructor
	  so that entities removed from the world can still have a reference
	  to their parent safely.

	* rulesets/BaseMind.cpp, rulesets/MemMap.cpp, tests/distancetest.cpp:
	  Make sure parent is 0 before deleting, as reference counting is not
	  implemented in the mind yet.
2005-01-16 22:42:29 +00:00
Al Riddoch
5100680aa0 2004-01-16 Al Riddoch <alriddoch@zepler.org>
* rulesets/Entity.cpp, rulesets/Entity.h, rulesets/Thing.cpp,
	  server/WorldRouter.cpp: Increment reference count on parent
	  entity when a child has a reference to it.
2005-01-16 14:44:23 +00:00
Al Riddoch
63cc76899b 2004-01-13 Al Riddoch <alriddoch@zepler.org>
* rulesets/Entity.h, rulesets/Entity.cpp, server/WorldRouter.cpp:
	  Add basic reference counting to Entity, and use it for deleting
	  objects from world.
2005-01-13 17:24:39 +00:00
Al Riddoch
3b17d4de51 2004-12-06 Al Riddoch <alriddoch@zepler.org>
* client/BaseClient.cpp, client/BaseClient.h, client/CreatorClient.cpp,
	  client/CreatorClient.h, common/BaseEntity.cpp, common/BaseEntity.h,
	  common/BaseWorld.h, common/OOGThing.cpp, common/OOGThing.h,
	  common/op_switch.h, common/refno.h, common/types.h,
	  rulesets/BaseMind.cpp, rulesets/BaseMind.h, rulesets/Character.cpp,
	  rulesets/Character.h, rulesets/Creator.cpp, rulesets/Creator.h,
	  rulesets/Entity.cpp, rulesets/Entity.h, rulesets/Food.cpp,
	  rulesets/Food.h, rulesets/MemMap.cpp, rulesets/Plant.cpp,
	  rulesets/Plant.h, rulesets/Py_Map.cpp, rulesets/PythonMindScript.cpp,
	  rulesets/PythonThingScript.cpp, rulesets/Stackable.cpp,
	  rulesets/Stackable.h, rulesets/Thing.cpp, rulesets/Thing.h,
	  rulesets/World.cpp, rulesets/World.h, server/Account.cpp,
	  server/Account.h, server/Admin.cpp, server/Admin.h,
	  server/CommClient.cpp, server/Connection.cpp, server/Connection.h,
	  server/Connection_methods.h, server/ExternalMind.cpp,
	  server/ExternalMind.h, server/Lobby.cpp, server/Lobby.h,
	  server/Player.cpp, server/Player.h, server/WorldRouter.cpp,
	  server/WorldRouter.h, tests/Creatortest.cpp, tests/Worldtest.cpp:
	  Add a new Operation typedef to clean up headers, and get round
	  limitation in doxygen.
2004-12-06 16:35:44 +00:00
Al Riddoch
f221ecf2e7 2004-12-03 Al Riddoch <alriddoch@zepler.org>
* common/inheritance.cpp, common/inheritance.h, common/refno.h,
	  common/type_utils.h, rulesets/Entity.cpp, rulesets/LineProperty.cpp,
	  rulesets/MemMap.h, rulesets/Py_Oplist.h, rulesets/Script.h,
	  server/Account.cpp, server/Admin.cpp, server/EntityFactory.h,
	  server/Persistance.h, server/Player.cpp, server/WorldRouter.cpp,
	  tests/EntityExerciser.h, tests/type_utilstest.cpp:
	  Clean up some more redundant includes.
2004-12-03 16:57:31 +00:00