Commit graph

37 commits

Author SHA1 Message Date
Erik Ogenvik
79d6bda7b2 Properly remove properties with delegates. 2014-08-26 21:09:02 +02:00
Erik Ogenvik
5b96570547 Call "remove" when removing properties.
Since some properties are class properties without any state we need to
add a "remove" method to call, rather than putting cleanup logic in the
destructor.
2013-11-24 20:23:45 +01:00
Olek Wojnar
7f9ff2246d Remove CVS $Id tags
The legacy tags are causing build issues in Debian.
2013-07-15 20:31:59 +02:00
Alistair Riddoch
3d6f39cdee Modify Property install method to take name
This change also switches DecaysProperty to using delegates as a proof of
concept.
2013-02-13 00:45:36 +00:00
Alistair Riddoch
4a9c7078f7 Refactor to use LocatedEntity as base class
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.
2013-01-17 10:17:07 +00:00
Alistair Riddoch
bb394504ca Ensure base classes have protected copy constructor.
This prevents corruption due to slicing.
2013-01-08 00:27:04 +00:00
Alistair Riddoch
72c956d4b4 First pass at copy method for all property classes 2013-01-07 23:03:25 +00:00
Alistair Riddoch
508a98bb49 Add an operation method to Property interface 2013-01-03 23:17:51 +00:00
Alistair Riddoch
ac37383d8a Convery all the property get functions 2011-09-29 17:36:26 +01:00
Alistair Riddoch
82bf59ef65 Remove unneeded includes. 2009-08-22 11:22:20 +01:00
Alistair Riddoch
f78063eff0 Default flags in the property constructor to zero 2009-05-14 00:19:44 +01:00
Al Riddoch
7b13237be2 2009-03-04 Al Riddoch <alriddoch@googlemail.com>
* common/Property.h: Add flag for class properties which must be
	  converted to instance properties on installation as they require
	  per-entity state.
2009-03-04 18:07:26 +00:00
Al Riddoch
c1e6553c28 2008-10-14 Al Riddoch <alriddoch@googlemail.com>
* common/Property.cpp, common/Property.h: Add a doc group for
	  Property flags, and document them all in it.
2008-10-14 00:59:28 +00:00
Al Riddoch
3c56ee8027 2008-09-27 Al Riddoch <alriddoch@googlemail.com>
* common/Property.h, common/Property_impl.h, common/Property.cpp:
	  Re-write the core property classes to embed their own data,
	  rather than refer to it. This makes DynamicProperty obsolete.
2008-09-27 15:51:16 +00:00
Al Riddoch
d656b2c708 2008-09-23 Al Riddoch <alriddoch@googlemail.com>
* common/Property.h: Add a flag to indicate a properties value
	  has been changed, but the new value has not been broadcast.

	* rulesets/Thing.cpp: Re-write the Update handler to ignore the
	  operation arguments, and broadcast an update for all properties
	  marked as unsent.

	* rulesets/Character.cpp: Update all code which sent an update
	  operation so that it sets the flags rather than naming them
	  in the argument.
2008-09-22 23:47:04 +00:00
Al Riddoch
25d40f9ceb 2008-09-06 Al Riddoch <alriddoch@googlemail.com>
* common/Property.h: Add two more flags, one to indicate a property
	  is stored in the class, and one used to implement boolean
	  properties very efficiently.
2008-09-06 19:06:53 +00:00
Al Riddoch
fb278302b0 2008-08-23 Al Riddoch <alriddoch@googlemail.com>
* common/Property.h: Add helper functions to make it easy and clear
	  to manipulate flags.

	* common/Database.cpp, common/Database.h: Expand the entity database
	  table to include LOC and update sequence number. Implement new
	  functions that insert test entity data into entity and property
	  tables.

	* rulesets/LocatedEntity.h: Add an accessor providing direct access to
	  the properties dictionary for persistence.

	* server/Persistance.cpp: Remove the bounding box chunk from the
	  entity table schema.

	* server/StorageManager.cpp: Implement inserting and updating rows
	  into the Entity and Propertiy tables.
2008-08-23 17:53:43 +00:00
Al Riddoch
08050f8b83 2008-08-18 Al Riddoch <alriddoch@googlemail.com>
* common/Property.h, common/Property.cpp: Add two new functions to the
	  property API which facilitate using properties for default values.
2008-08-18 16:11:59 +00:00
Al Riddoch
cf489d335e 2008-08-14 Al Riddoch <alriddoch@googlemail.com>
* common/Property.h: Make property flags writable so they can be
	  used for more versatile things. Add constants defining some flags
	  and masks.

	* tests/Propertytest.cpp: Add assertions to ensure the flags and
	  masks work as intended.
2008-08-14 17:44:26 +00:00
Al Riddoch
22bdff6acd 2007-12-21 Al Riddoch <alriddoch@zepler.org>
* common/Property.h, common/Property.cpp: Add a soft property class,
	  which can take values of any type.

	* rulesets/Entity.cpp: Use soft property for any values for which
	  there is no assigned property factory, and avoid using raw atlas
	  attributes completely.
2007-12-24 00:06:20 +00:00
Al Riddoch
bf1e9a5a15 2006-12-27 Al Riddoch <alriddoch@zepler.org>
* rulesets/GuiseProperty.cpp, rulesets/GuiseProperty.h:
	  New property class to handle guise data. I think we had decided
	  to call this property something else, but I can't remember what.

	* common/Property.h, rulesets/EntityProperty.h,
	  rulesets/LineProperty.h: Regularise argument names in property
	  classes, to make checking easier and reduce chance of mimatched
	  overriding.
2006-12-27 00:32:32 +00:00
Al Riddoch
0f44eff410 2006-12-26 Al Riddoch <alriddoch@zepler.org>
* client/BaseClient.cpp, client/BaseClient.h,
	  client/ClientConnection.cpp, common/AtlasFileLoader.cpp,
	  common/AtlasFileLoader.h, common/BaseEntity.cpp, common/BaseEntity.h,
	  common/Property.h, common/accountbase.cpp, common/accountbase.h,
	  rulesets/ActivePropertyFactory.h,
	  rulesets/ActivePropertyFactory_impl.h, rulesets/Area.cpp,
	  rulesets/Area.h, rulesets/AreaProperty.cpp, rulesets/AreaProperty.h,
	  rulesets/BaseMind.cpp, rulesets/BaseMind.h, server/Account.cpp,
	  server/Admin.cpp, server/Admin.h, server/ArithmeticFactory.h,
	  tests/Makefile.am, tools/AdminClient.cpp, tools/AdminClient.h,
	  tools/cycmd.cpp: Add inline documentation.

	* rulesets/ActivePropertyFactory.h: Use handler function pointer
	  typedef for readability.

	* rulesets/AreaProperty.cpp, rulesets/AreaProperty.h: Fix PropertyBase
	  overriding by adding const to the right methods.
2006-12-26 14:30:42 +00:00
Al Riddoch
cd3857589b 2006-12-12 Al Riddoch <alriddoch@zepler.org>
* Doxyfile: Add tools to the documented code.

	* index.dox: Update documentation index.

	* tools/cycmd.cpp: Add a document page for this tool.

	* common/DynamicProperty.h, common/Property.cpp, common/Property.h,
	  rulesets/AreaProperty.h, rulesets/CalendarProperty.h,
	  rulesets/EntityProperty.h, rulesets/LineProperty.h,
	  rulesets/StatisticsProperty.h, rulesets/TerrainProperty.h:
	  Add all property classes into a property group.
2006-12-12 19:52:36 +00:00
Al Riddoch
defed47f1f 2006-12-12 Al Riddoch <alriddoch@zepler.org>
* configure.ac: Increment version.

	* common/const.h: Declare a doxygen group for all the consts.

	* common/operations.cpp, common/Add.h, 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:
	  Declare a doxygen group for all custom operations.

	* rulesets/Area.h, rulesets/Character.h, rulesets/Creator.h,
	  rulesets/Entity.h, rulesets/Food.h, rulesets/Line.h,
	  rulesets/Missile.h, rulesets/Plant.h, rulesets/Stackable.h,
	  rulesets/Structure.h, rulesets/World.h: Declare a doxygen group
	  for in game entity classses.

	* common/Property.h, common/Property_impl.h, server/ScriptFactory.cpp,
	  server/ScriptFactory.h, server/SlaveClientConnection.cpp,
	  server/SlaveClientConnection.h: Add some more inlined documentation.
2006-12-12 15:54:20 +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
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
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
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
0057589a56 2005-11-30 Al Riddoch <alriddoch@zepler.org>
* common/Property.h, common/Property_impl.h, common/Property.cpp:
	  Modify property interface to make apropriate methods const,
	  re-order inheritance to eliminate some redundant code.

	* rulesets/EntityProperties.cpp, rulesets/LineProperty.h,
	  rulesets/LineProperty.cpp, rulesets/TerrainProperty.h,
	  rulesets/TerrainProperty.cpp: Update methods to match modified
	  interface.
2005-11-30 18:44:43 +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
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
901cdbff8d 2004-12-28 Al Riddoch <alriddoch@zepler.org>
* common/OOGThing.cpp, common/Property.cpp, common/Property.h,
	  common/Property_impl.h, common/inheritance.h, common/operations.cpp,
	  rulesets/World.cpp: Update some comments.

	* rulesets/Task.h, rulesets/Task.cpp, tests/Tasktest.cpp,
	  rulesets/Fell.h, rulesets/Fell.cpp: New Task interface for
	  tasks which take a while to complete. Sample implentation provided
	  in the form of a Fell task for felling trees.

	* rulesets/Character.cpp, rulesets/Character.h: Try out Task
	  implementation with Fell.
2004-12-28 02:14:17 +00:00
Al Riddoch
e0e9537088 2004-12-26 Al Riddoch <alriddoch@zepler.org>
* common/Property.h, rulesets/Thing.cpp: Clean up some comments.

	* rulesets/EntityProperties.cpp: Remove specialisation of
	  ImmutableProperty::set for EntitySet, as its the same as the
	  default.

	* rulesets/Script.h: Update the copyright date, and clean up some
	  comments.

	* rulesets/Container.cpp, rulesets/Container.h,
	  tests/Containertest.cpp: New virtualised classes for handling
	  entity containership, with API that mimics STL set. To be used to
	  allow entities to handle containership differently.

	* rulesets/EntityProperties.cpp: Add specialisation of
	  ImmutableProperty for Container class.
2004-12-26 23:48:32 +00:00
Al Riddoch
9660738fe2 2004-11-05 Al Riddoch <alriddoch@zepler.org>
* common/Property.cpp, common/Property.h, common/Property_impl.h:
	  Add a default add() method to the Property base class, as its
	  often the same in derived classes.

	* rulesets/TerrainProperty.cpp, rulesets/TerrainProperty.h:
	  Remove add() method, as its now covered by the default in
	  the base class.

	* rulesets/Entity.cpp: Fix for loop not to create temporary for
	  end() on every iteration.
2004-11-05 16:33:51 +00:00
Al Riddoch
1995652f39 2004-11-05 Al Riddoch <alriddoch@zepler.org>
* common/Property.h: Remove obsolete FIXME comment.
2004-11-05 16:20:22 +00:00
Al Riddoch
b06c61deaf 2004-10-31 Al Riddoch <alriddoch@zepler.org>
* common/Property.cpp, common/Property.h, common/Property_impl.h:
	  Add new ImmutableProperty for properties that cannot be
	  modified, and hold a const reference.

	* rulesets/EntityProperties.cpp: Add some specialisations of
	  Property to handle attributes of Entity.

	* rulesets/LineProperty.h, rulesets/LineProperty.cpp:
	  Property class for handling linear list of coordinates.

	* rulesets/TerrainProperty.cpp, rulesets/TerrainProperty.h:
	  Property class for handling Mercator terrain.
2004-10-31 02:36:26 +00:00
Al Riddoch
2a57d3fe20 2004-10-27 Al Riddoch <alriddoch@zepler.org>
* common/Property.cpp, common/Property.h, common/Property_impl.h:
	  New class to automate and simplify handled of hard coded
	  proerties.

	* tests/Propertytest.cpp: Test for new Property class.
2004-10-27 17:30:36 +00:00