Commit graph

21 commits

Author SHA1 Message Date
Al Riddoch
58da870ddf 2007-06-22 Al Riddoch <alriddoch@zepler.org>
* server/CorePropertyManager.cpp: Finish installing the burn speed
	  property, now tested.

	* rulesets/Thing.cpp, rulesets/Thing.h: Remove legacy Burn operation
	  handler.
2007-06-22 12:42:35 +00:00
Al Riddoch
8b9be9421a 2007-06-21 Al Riddoch <alriddoch@zepler.org>
* server/CorePropertyManager.cpp: Add a new active dynamic property
	  "burn_speed" for things that can burn.
2007-06-21 21:02:39 +00:00
Al Riddoch
bb6ba14903 2007-06-21 Al Riddoch <alriddoch@zepler.org>
* rulesets/ActivePropertyFactory.h,
	  rulesets/ActivePropertyFactory_impl.h: Add a new type of property
	  builder than can install multiple operation handlers.

	* server/CorePropertyManager.cpp: Add a new active dynamic property
	  "biomass" for things which can be eaten, which handles the Eat
	  operation.

	* rulesets/Food.cpp, rulesets/Food.h: Remove the old Eat operation
	  handler.

	* data/basic.xml, data/mason.xml: Give all the food entity rules
	  some biomass.
2007-06-21 20:26:53 +00:00
Al Riddoch
7f2891c0c4 2007-01-27 Al Riddoch <alriddoch@zepler.org>
* rulesets/ActivePropertyFactory_impl.h: Correct the header guard
	  comments.

	* rulesets/SolidProperty.cpp, rulesets/SolidProperty.h: New property
	  to handler whether an entities bbox is solid or not.

	* rulesets/EntityPropertyFactory.cpp, rulesets/EntityPropertyFactory.h,
	  rulesets/EntityPropertyFactory_impl.h: New property factory
	  for properties the contructor of which takes an entity pointer of
	  the owning entity.

	* server/CorePropertyManager.cpp: Install the SOLID property on demand.

	* data/basic.xml: Make area entities non-solid by default, so you don't
	  collide with them.
2007-01-27 16:35:36 +00:00
Al Riddoch
664e4b6b6c 2007-01-21 Al Riddoch <alriddoch@zepler.org>
* server/CorePropertyManager.cpp: Fix the creation of entities
	  as a result of the decays property so they don't get velocity
	  and bbox from the entity that spawned them.
2007-01-21 19:53:37 +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
e656990464 2007-01-11 Al Riddoch <alriddoch@zepler.org>
* server/CorePropertyManager.cpp: Modify DECAYS Delete handler so
	  that the parent entity handles the creation of entities that
	  have resulted from the decay.

	* rulesets/Character.cpp: Call Entity::operation() from operation()
	  to ensure operation handlers are called, and all future
	  modifications get picked up too.

	* data/basic.xml, data/mason.xml: Add a DECAYS property leaving a
	  skull to all humanoid classes.
2007-01-11 00:26:44 +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
be32cb9565 2007-01-03 Al Riddoch <alriddoch@zepler.org>
* server/CorePropertyManager.cpp: Get rid of a warning about a missing
	  return value.

	* tests/AtlasFileLoadertest.cpp: Fix a warning about comparing signed
	  and unsigned integers.
2007-01-03 22:29:46 +00:00
Al Riddoch
d89d57f6e6 2006-12-29 Al Riddoch <alriddoch@zepler.org>
* rulesets/OutfitProperty.cpp, rulesets/OutfitProperty.h:
	  Remove the flags constructor argument, as this type of property
	  doesn't work that way.

	* server/CorePropertyManager.cpp: Add OUTFIT property to the
	  dynamic properties handled by the property manager.
2006-12-29 00:41:18 +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
e879f341f9 2006-10-24 Al Riddoch <alriddoch@zepler.org>
* man/Makefile.am: Add rules to create man pages for every command,
	  which refer to the combined pages for all commands.

	* man/cyaddrules.1, man/cyconvertrules.1, man/cydumprules.1,
	  man/cyloadrules.1, man/cypasswd.1: Generate new pages as described
	  above.

	* man/cycmd.sgml: Fix argument name in cycmd man page.

	* man/cyclient.1, man/cycmd.1, man/cycmd.sgml, man/cyphesis-tools.1,
	  man/cyphesis.1: Re-generate existing man pages.

	* common/PropertyFactory.h, common/PropertyFactory_impl.h: Pass in
	  pointer to the entity when creating a new property using the
	  factory.

	* server/CorePropertyManager.cpp: Make sure the entity pointer is
	  passed to the property factory as required.
2006-10-23 23:38:41 +00:00
Al Riddoch
a894a1b324 2006-08-07 Al Riddoch <alriddoch@zepler.org>
* server/CorePropertyManager.cpp: Delete all the property
	  factories on shutdown, to keep the memory usage clean.
2006-08-07 20:02:54 +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
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
b8d4454f46 2006-06-29 Al Riddoch <alriddoch@zepler.org>
* server/CorePropertyManager.cpp: Add properties for START_INTERSECTIONS
	  and END_INTERSECTIONS.
2006-06-29 15:45:55 +00:00
Al Riddoch
aedb277897 2006-06-29 Al Riddoch <alriddoch@zepler.org>
* 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.
2006-06-29 14:57:19 +00:00
Al Riddoch
cec9814a60 2006-06-26 Al Riddoch <alriddoch@zepler.org>
* 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.
2006-06-26 15:50:43 +00:00
Al Riddoch
eb64132657 2006-06-26 Al Riddoch <alriddoch@zepler.org>
* 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.
2006-06-26 15:28:43 +00:00
Al Riddoch
87505c6098 2006-06-26 Al Riddoch <alriddoch@zepler.org>
* 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.
2006-06-26 00:21:32 +00:00