Commit graph

57 commits

Author SHA1 Message Date
Alistair Riddoch
d93b907aa2 Remove opInstall
The only purpose was to support opEnumerate
2013-02-27 22:21:36 +00:00
Manohar Vanga
b492776aec Added a 'teleport' attribute to the boat. Added new op 'teleport'. 2010-08-17 11:47:59 +05:30
Alistair Riddoch
1445afdd07 Install the custom connect op-definition 2009-11-18 16:00:44 +00:00
Alistair Riddoch
d36e7ef2a1 Remove unneeded includes. 2009-08-22 17:06:59 +01:00
Alistair Riddoch
f4eb24187e Use the new header rather than including every custom op header. 2009-07-05 15:58:26 +01:00
Alistair Riddoch
b39adcb9b5 Add thought and goal_info to the operations supported in the core 2009-05-21 18:44:40 +01:00
Alistair Riddoch
cd1f42c3f9 Rename Inheritance class files to match class name. 2009-03-20 15:31:38 +00:00
Al Riddoch
74ba744157 2008-03-26 Al Riddoch <alriddoch@googlemail.com>
* common/Actuate.h, common/Makefile.am, common/custom.cpp,
	  common/op_switch.h, common/operations.cpp: Add Actuate to the
	  cyphesis core custom operations.

	* rulesets/Entity.cpp, rulesets/Entity.h, rulesets/Character.cpp:
	  Add handlers for Actuate to the operation routing interface.

	* data/devices.xml: Add example device.

	* data/Makefile.am: Add new devices file.

	* data/operations.xml: Remove temporary soft Actuate definition.
2008-03-26 01:34:15 +00:00
Al Riddoch
b4c79181c5 2008-01-12 Al Riddoch <alriddoch@googlemail.com>
* common/BaseEntity.cpp, common/custom.cpp, common/inheritance.cpp,
	  common/inheritance.h, common/op_switch.h, common/types.h,
	  rulesets/Character.cpp, rulesets/Creator.cpp,
	  rulesets/PythonThingScript.cpp, server/Account.cpp,
	  server/Connection.cpp, server/ExternalMind.cpp,
	  tests/OOGThingtest.cpp, tests/inheritancetest.cpp:
	  Remove a set of pointless definitions, and use the originals
	  throughout the code.
2008-01-12 22:41:10 +00:00
Al Riddoch
ef304a66a0 2007-07-04 Al Riddoch <alriddoch@zepler.org>
* data/basic.xml: Provide entirely data driven definitions for Cut
	  and Chop ops.

	* common/Chop.h, common/Cut.h, common/Makefile.am, common/custom.cpp,
	  common/operations.cpp, common/types.h, tests/Makefile.am,
	  tests/Tasktest.cpp, tests/allOperations.h,
	  tests/inheritancetest.cpp: Remove the hard coded Cut and Chop op
	  definitions completely from the build.
2007-07-04 22:00:14 +00:00
Al Riddoch
ef4942372a 2007-07-04 Al Riddoch <alriddoch@zepler.org>
* data/basic.xml: Strip entity scripts off pickaxe and shovel.

	* rulesets/World.h, rulesets/World.cpp: Remove handlers used to
	  to implement pickaxe and shovel, which are now handled as tasks.

	* common/Delve.h, common/Dig.h, common/Mow.h, common/custom.cpp,
	  common/operations.cpp: Remove a bunch of operations from the build
	  which were only used to do things in an over simple hard coded way.
2007-07-04 21:20:40 +00:00
Al Riddoch
f8aefa673a 2007-06-28 Al Riddoch <alriddoch@zepler.org>
* common/BaseEntity.cpp, common/BaseEntity.h, common/custom.cpp,
	  common/op_switch.h, rulesets/BaseMind.cpp, rulesets/Character.cpp,
	  rulesets/Character.h, rulesets/Thing.cpp, rulesets/Thing.h,
	  tests/EntityExerciser.h: Remove the long obsolete Action op from
	  the core code.
2007-06-27 23:59:02 +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
7ecdd70478 2006-08-02 Al Riddoch <alriddoch@zepler.org>
* common/custom.cpp: Modify Burn to inherit from Affect, as it is
	  is not a pure action.
2006-08-02 10:34:52 +00:00
Al Riddoch
6e101bedf7 2006-05-30 Al Riddoch <alriddoch@zepler.org>
* common/custom.cpp: Add Update operation type to those registered
	  with Atlas.
2006-05-30 01:21:48 +00:00
Al Riddoch
6a0a1ac44a 2006-04-24 Al Riddoch <alriddoch@zepler.org>
* common/custom.cpp: Add a "task" base class to the inheritance tree.

	* server/EntityFactory.h, server/EntityFactory.cpp: Add
	  functionality to allow task rules to be installed and updated from
	  an admin client. Improve the error reporting for a number of error
	  conditions.

	* server/Connection.cpp: Correct the copyright dates.

	* server/Admin.cpp: Improve error reporting for a number of error
	  conditions. Remove obsolete commented out code for installing
	  rules using Set ops, and add error notification when the
	  admin client attempts to update an op definition. Allow the
	  admin client to install an op definition.
2006-04-24 12:37:33 +00:00
Al Riddoch
c8cd54ef12 2006-01-20 Al Riddoch <alriddoch@zepler.org>
* common/Pickup.h, common/Drop.h, common/custom.cpp,
	  common/operations.cpp, common/types.h: Add and install two new
	  op types for Pickup and Drop.

	* rulesets/Thing.cpp: Send sights of Pickup and Drop when characters
	  perform this actions implicitly with move ops.
2006-01-20 02:11:40 +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
1ab13bf6c3 2005-10-18 Al Riddoch <alriddoch@zepler.org>
* rulesets/Character.cpp: Fix handling of Touch op so it now
	  returns a Sight(Touch) rather than an Action op to indicate
	  what has occured.

	* common/custom.cpp: Fix inheritance of Attack op to Action.

	* TODO: Add a note about optimising the mind operation interface.
2005-10-18 21:46:42 +00:00
Al Riddoch
d734f92e0e 2005-10-01 Al Riddoch <alriddoch@zepler.org>
* common/custom.cpp: Install the Monitor op type, which was missing.

	* server/Admin.cpp: Use class_no to determine op types rather
	  than string type.
2005-10-01 20:43:42 +00:00
Al Riddoch
f3a20714ec 2005-09-26 Al Riddoch <alriddoch@zepler.org>
* common/BaseEntity.cpp, common/custom.cpp, common/op_switch.h,
	  common/types.h, rulesets/BaseMind.cpp, rulesets/Character.cpp,
	  rulesets/Creator.cpp, rulesets/Food.cpp, rulesets/Plant.cpp,
	  rulesets/Thing.cpp, rulesets/World.cpp, server/Admin.cpp,
	  server/Admin.cpp: Replace OpNo enumeration with defines for the
	  integer class numbers.  Expand the switch statements used for op
	  dispatch because runtime extended op definitions don't have a const
	  number.

	* server/EntityFactory.cpp: Re-order installation of ops to ensure
	  the number registered in enumeration maps is the one returned by
	  the Atlas factories.

	* rulesets/Character.cpp: Improve debug output for op handling when
	  debug is enabled for this file.
2005-09-26 00:06:19 +00:00
Al Riddoch
68fdae5266 2005-09-18 Al Riddoch <alriddoch@zepler.org>
* common/Attack.h, common/operations.cpp, common/types.h:
	  Add a new Attack operation type.

	* common/op_switch.h, common/BaseEntity.h, common/BaseEntity.cpp,
	  rulesets/BaseMind.cpp, rulesets/BaseMind.h,
	  rulesets/Character.cpp, rulesets/Character.h: Add handlers to base
	  classes for Attack op.
2005-09-18 02:03:37 +00:00
Al Riddoch
c3f98a2ad5 2005-09-16 Al Riddoch <alriddoch@zepler.org>
* common/custom.cpp: Remove some operation types only used in
	  scrypts.

	* data/basic.xml, data/mason.xml: Add the operation definitions
	  into the rule files.
2005-09-16 00:14:18 +00:00
Al Riddoch
19d808718a 2005-09-12 Al Riddoch <alriddoch@zepler.org>
* configure.ac: Increment version to development 0.5.x series.

	* aiclient/ClientAccount.cpp, client/BaseClient.cpp,
	  client/ClientConnection.cpp, common/BaseEntity.cpp,
	  common/Database.cpp, common/custom.cpp, common/inheritance.cpp,
	  common/operations.h, rulesets/BaseMind.cpp, rulesets/Creator.cpp,
	  rulesets/Food.cpp, rulesets/MemMap.cpp, rulesets/Pedestrian.cpp,
	  rulesets/Py_Operation.cpp, rulesets/Py_RootEntity.cpp,
	  rulesets/Python_API.cpp, rulesets/Stackable.cpp, rulesets/Thing.cpp,
	  rulesets/World.cpp, server/CommClient.cpp, server/Connection.cpp,
	  server/WorldRouter.cpp, tests/inheritancetest.cpp,
	  tools/AdminClient.h, tools/cyaddrules.cpp,
	  tools/cycmd.cpp, tools/cydumprules.cpp,
	  tools/cyloadrules.cpp, tools/cypasswd.cpp:
	  Remove unnecessary using directives.

	* common/utility.cpp, common/utility.h,
	  rulesets/BaseMind.cpp, rulesets/Py_Operation.cpp,
	  server/CommClient.cpp, tools/AdminClient.h, tools/cycmd.cpp:
	  Remove obsolete utility function from the build.

	* common/operations.h: Remove unused obsolete header from the
	  build.
2005-09-12 16:21:18 +00:00
Al Riddoch
5fd6bc0abd 2005-09-12 Al Riddoch <alriddoch@zepler.org>
* common/inheritance_impl.h, common/inheritance.h,
	  common/inheritance.cpp, common/custom.cpp: Get rid of the op
	  factory feature of inheritance, as its not required.

	* server/EntityFactory.cpp: Register op types defined in the
	  data into the Atlas factory rather than the old inheritance
	  factory mechanism.
2005-09-12 01:33:53 +00:00
Al Riddoch
6c5aedd3e8 2005-09-12 Al Riddoch <alriddoch@zepler.org>
* common/custom.cpp, rulesets/Character.cpp: Ensure all custom op
	  types are registered with the Atlas factories, and switch
	  to using it for tool operations.
2005-09-12 01:11:35 +00:00
Al Riddoch
ca2d0cc5e5 2005-09-12 Al Riddoch <alriddoch@zepler.org>
* common/Add.h, common/Burn.h, common/Chop.h, common/Connect.h,
	  common/Cut.h, common/Delve.h, common/Dig.h, common/Eat.h,
	  common/Monitor.h, common/Mow.h, common/Nourish.h, common/Setup.h,
	  common/Tick.h, common/Unseen.h, common/Update.h,
	* common/operations.cpp, scripts/gen_op.py:
	  Try a new much simpler way of handling custom ops.

	* common/CustomOp.cpp, common/CustomOp.h, common/CustomOp_impl.h:
	  Remove obsolete old template for custom ops.

	* common/custom.cpp: Install factories in a different way for all
	  the custom op types.
2005-09-12 00:31:15 +00:00
Al Riddoch
776ee701f0 2005-08-29 Al Riddoch <alriddoch@zepler.org>
* server/Account.cpp, rulesets/Thing.cpp, rulesets/Character.cpp:
	  Replace asserts with proper checks that arguments are of the
	  expected type.

	* common/custom.cpp: Put ignite op installation back in.
2005-08-29 03:34:24 +00:00
Al Riddoch
3bb45e6ad0 2005-08-29 Al Riddoch <alriddoch@zepler.org>
* rulesets/basic/mind/goals/common/misc_goal.py: Don't return
	  non-existant ops.

	* rulesets/Thing.cpp: Fix some places where root_operations
	  were being returned.

	* common/inheritance.cpp: Add "affect" operation base class,
	  and fix parents on use and wield.

	* common/custom.cpp: Install atlas factories for custom op
	  types.
2005-08-29 02:28:53 +00:00
Al Riddoch
925401e492 2005-08-28 Al Riddoch <alriddoch@zepler.org>
* common/custom.cpp: Install an atlas factory for custom op as a test.

	* rulesets/Py_Operation.cpp: Improve error reporting.

	* rulesets/Python_API.cpp: Fix bug where arguments to ops were
	  ignored.
2005-08-28 15:01:25 +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
5a289d6613 2005-06-30 Al Riddoch <alriddoch@zepler.org>
* common/custom.cpp: Add type for "server" to inheritance mechanism.
2005-06-30 13:05:18 +00:00
Al Riddoch
9b76a9c3a7 2005-05-18 Al Riddoch <alriddoch@zepler.org>
* data/basic.xml, data/mason.xml: Add objtype to all rules.
	  Add a rule for ignite operation definition.

	* common/custom.cpp: Remove hardcoded ignite operation definition.

	* server/EntityFactory.cpp, server/EntityFactory.h: Remove some debug
	  output. Add new code to allow op_definitions to be installed as
	  rules.

	* common/inheritance.cpp, common/inheritance.h: Return an error code
	  when a type without parents gets installed, rather than throwing an
	  exception.

	* tests/inheritancetest.cpp: Fix test so it no longer expects an
	  exception.

	* rulesets/mason/world/objects/clothing/Garment.py: Remove some
	  debug output.

	* tools/AdminClient.cpp: Remove hardcoded objtype, depending instead
	  on objtype from the data file. Fix a bug where the full rule
	  was not getting uploaded when updating an existing rule.
	  Improve error reporting when update fails.
2005-05-17 23:51:26 +00:00
Al Riddoch
6264b84c29 2005-05-17 Al Riddoch <alriddoch@zepler.org>
* data/mason.xml, rulesets/mason/world/objects/tools/Tinderbox.py:
	  Tinderbox for starting fires.

	* common/custom.cpp: Ignite operation for tinderbox.
2005-05-17 00:53:13 +00:00
Al Riddoch
b08caab655 2005-05-16 Al Riddoch <alriddoch@zepler.org>
* data/mason.xml, rulesets/mason/world/objects/clothing/Garment.py:
	  Add experimental garment entity for changing the characters
	  appearance.

	* common/custom.cpp: Add wear operation for use with garments.
2005-05-16 21:39:49 +00:00
Al Riddoch
627484f79b 2005-05-14 Al Riddoch <alriddoch@zepler.org>
* data/mason.xml: Add a new rule for fish.

	* rulesets/mason/define_world.py: Add a shoal of fish to the lake.

	* common/custom.cpp, rulesets/Character.cpp,
	  rulesets/basic/mind/NPCMind.py: Use Unseen operation to notify
	  minds when they attempt to interactive with something that
	  they can't iteract with, either because its outside their
	  area of perception, or because its been deleted.
2005-05-14 15:17:31 +00:00
Al Riddoch
3e0894d9bd 2005-05-12 Al Riddoch <alriddoch@zepler.org>
* rulesets/mason/world/objects/tools/Trowel.py, data/mason.xml:
	  Add a rule for a trowel for planting seeds. Add a rule for spider
	  model.

	* common/custom.cpp: Add custom ops for "sow" and "germinate" for
	  handling seeds.
2005-05-12 18:10:06 +00:00
Al Riddoch
c1d4d91b21 2005-05-07 Al Riddoch <alriddoch@zepler.org>
* common/Add.h, common/custom.cpp, common/operations.cpp,
	  common/types.h: Add new Add operation class.

	* common/BaseEntity.h, common/BaseEntity.cpp, common/op_switch.h,
	  rulesets/Character.cpp, rulesets/Character.h:
	  Add handling for the Add operation into the core operation set.

	* common/Delve.h, common/Dig.h, common/Mow.h: Fix comments.
2005-05-06 23:23:34 +00:00
Al Riddoch
ccb6388908 2005-05-06 Al Riddoch <alriddoch@zepler.org>
* common/Dig.h, common/Mow.h, common/custom.cpp, common/operations.cpp:
	  Add new Dig and Mow operations, for handling resource gathering.

	* rulesets/basic/world/objects/tools/Shovel.py,
	  rulesets/basic/world/objects/tools/Scythe.py,
	  data/basic.xml: Add new scythe and shovel for gathering resources
	  from the terrain.

	* rulesets/basic/world/objects/tools/Pickaxe.py,
	  common/Delve.h: Fix the comments.

	* rulesets/World.cpp, rulesets/World.h: Move code for determining
	  terrain surface type into a method of its own. Implement handlers
	  for Dig and Mow ops.
2005-05-06 01:41:17 +00:00
Al Riddoch
7ba24a29d9 2005-04-21 Al Riddoch <alriddoch@zepler.org>
* common/custom.cpp, common/Delve.h,
	  common/operations.cpp, common/operations.h:
	  Add new delve operation for digging with a pickaxe.

	* data/basic.xml, rulesets/basic/world/objects/tools/Pickaxe.py:
	  Add new pickaxe entity which emits a Delve operation when
	  used.

	* rulesets/Character.cpp: Fix a bug where a segfault occured
	  if an operation was requested by a tool that was unknown to
	  to the core server code. Instead an error message is emitted.

	* rulesets/World.cpp: Subscribe world terrain to delve ops.
2005-04-22 00:29:10 +00:00
Al Riddoch
96b2aa411b 2004-12-16 Al Riddoch <alriddoch@zepler.org>
* common/custom.cpp: Include cleanup.

	* server/CommClient.h, server/CommListener.h, server/CommLocalClient.h,
	  server/CommMetaClient.h, server/CommPSQLSocket.h,
	  server/CommRemoteClient.h, server/CommSlaveClient.h,
	  server/CommSocket.h, server/CommUnixListener.h:
	  Update copyright dates and class descriptions.
2004-12-16 22:56:28 +00:00
Al Riddoch
299efcafdc 2004-12-03 Al Riddoch <alriddoch@zepler.org>
* 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/Py_CreatorClient.cpp, common/BaseEntity.cpp,
	  common/BaseEntity.h, common/BaseWorld.h, common/custom.cpp,
	  common/inheritance.cpp, common/inheritance.h,
	  common/inheritance_impl.h, common/op_switch.h, common/type_utils.h,
	  common/types.h, common/utility.cpp, common/utility.h,
	  modules/Location.cpp, 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/EntityProperties.cpp, rulesets/Entity_getLocation.h,
	  rulesets/Food.cpp, rulesets/Food.h, rulesets/MemMap.cpp,
	  rulesets/MemMap.h, rulesets/Missile.h, rulesets/Pedestrian.cpp,
	  rulesets/Plant.cpp, rulesets/Plant.h, rulesets/Py_Mind.cpp,
	  rulesets/Py_Object.cpp, rulesets/Py_Operation.cpp,
	  rulesets/Py_Operation.h, rulesets/Py_Thing.cpp,
	  rulesets/PythonMindScript.h, rulesets/PythonScript.h,
	  rulesets/PythonThingScript.h, rulesets/Python_API.cpp,
	  rulesets/Script.cpp, rulesets/Script.h, 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/EntityFactory.cpp, server/EntityFactory.h, server/Lobby.cpp,
	  server/Lobby.h, server/Persistance.cpp, server/Persistance.h,
	  server/Persistor.cpp, server/Player.cpp, server/Player.h,
	  server/ServerRouting.cpp, server/ServerRouting.h,
	  server/TrustedConnection.cpp, server/TrustedConnection.h,
	  server/WorldRouter.cpp, server/WorldRouter.h, tests/Areatest.cpp,
	  tests/Charactertest.cpp, tests/Creatortest.cpp,
	  tests/EntityExerciser.h, tests/Entitytest.cpp, tests/Foodtest.cpp,
	  tests/IGEntityExerciser.h, tests/Linetest.cpp, tests/Planttest.cpp,
	  tests/Stackabletest.cpp, tests/Structuretest.cpp, tests/Thingtest.cpp,
	  tests/Worldtest.cpp, tests/allOperations.h, tests/inheritancetest.cpp,
	  tests/utilitytest.cpp, tools/cycmd.cpp:
	  Modify the entity interface so that all Operation methods
	  take references to RootOperation, as its cleaner, and requires
	  less nasty casts. Clean up operations in headers generally.
2004-12-03 14:49:13 +00:00
Al Riddoch
e4aa444f3c 2004-11-29 Al Riddoch <alriddoch@zepler.org>
* common/BaseEntity.cpp, common/BaseEntity.h, common/BaseWorld.cpp,
	  common/BaseWorld.h, common/Burn.h, common/Chop.h, common/Cut.h,
	  common/Database.cpp, common/Database.h, common/Eat.h,
	  common/Generic.h, common/Load.h, common/Nourish.h,
	  common/OOGThing.cpp, common/OOGThing.h, common/Save.h,
	  common/Setup.h, common/Tick.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/inheritance.cpp, common/inheritance.h,
	  common/log.cpp, common/log.h, common/op_switch.h, common/random.h,
	  common/serialno.h, common/system.cpp, common/system.h,
	  common/type_utils.h, common/types.h, common/utility.cpp,
	  common/utility.h: Update copyright dates in files as appropriate.
2004-11-29 21:42:00 +00:00
Al Riddoch
5b8bc1eca6 2004-10-26 Al Riddoch <alriddoch@zepler.org>
* common/Generic.h: Add required RootOperation include.

	* common/inheritance.h, common/inheritance.cpp, common/custom.cpp:
	  Add operation factory to the inheritance class, and to all
	  the calls which install new ops.

	* tests/inheritancetest.cpp: Add new test for the op factory
	  capability of inheritance.
2004-10-27 00:10:55 +00:00
Al Riddoch
96f13800c8 2004-08-07 Al Riddoch <alriddoch@zepler.org>
* common/BaseEntity.cpp, common/BaseEntity.h, common/BaseWorld.h,
	  common/Database.cpp, common/Database.h, common/FormattedXMLWriter.cpp,
	  common/FormattedXMLWriter.h, common/accountbase.cpp,
	  common/accountbase.h, common/custom.cpp, common/inheritance.cpp,
	  common/inheritance.h, common/operations.h, common/type_utils.h,
	  common/utility.cpp, common/utility.h, modules/Location.cpp,
	  modules/Location.h, rulesets/Area.cpp, rulesets/Area.h,
	  rulesets/BaseMind.cpp, rulesets/Character.cpp, rulesets/Character.h,
	  rulesets/Creator.cpp, rulesets/Entity.cpp, rulesets/Entity.h,
	  rulesets/Entity_getLocation.h, rulesets/Food.cpp, rulesets/Line.cpp,
	  rulesets/Line.h, rulesets/MemMap.cpp, rulesets/MemMap.h,
	  rulesets/Pedestrian.cpp, rulesets/Plant.cpp, rulesets/Plant.h,
	  rulesets/Py_Mind.cpp, rulesets/Py_Object.cpp, rulesets/Py_Object.h,
	  rulesets/Py_Operation.cpp, rulesets/Py_Thing.cpp,
	  rulesets/Python_API.cpp, rulesets/Stackable.cpp, rulesets/Stackable.h,
	  rulesets/Thing.cpp, rulesets/World.cpp, rulesets/World.h,
	  server/Account.cpp, server/Account.h, server/Admin.cpp,
	  server/Admin.h, server/CommClient.cpp, server/CommClient.h,
	  server/CommListener.cpp, server/CommListener.h,
	  server/CommLocalClient.cpp, server/CommLocalClient.h,
	  server/CommMetaClient.h, server/CommPSQLSocket.h,
	  server/CommRemoteClient.cpp, server/CommRemoteClient.h,
	  server/CommServer.cpp, server/CommServer.h, server/CommSocket.cpp,
	  server/CommSocket.h, server/CommUnixListener.cpp,
	  server/CommUnixListener.h, server/Connection.cpp,
	  server/Connection.h, server/EntityFactory.cpp,
	  server/EntityFactory.h, server/Lobby.cpp, server/Lobby.h,
	  server/Persistance.cpp, server/Persistance.h,
	  server/PersistantThingFactory.h, server/Persistor.cpp,
	  server/Player.cpp, server/Player.h, server/Restorer.h,
	  server/Restorer_impl.h, server/ServerRouting.cpp,
	  server/ServerRouting.h, server/TrustedConnection.cpp,
	  server/TrustedConnection.h, server/WorldRouter.cpp,
	  server/WorldRouter.h: Convert code to using Atlas Message
	  typedefs as found in Atlas-C++ 0.6 to aid conversion later.
2004-08-16 14:26:47 +00:00
Al Riddoch
9add1344a5 2004-06-28 Al Riddoch <alriddoch@zepler.org>
* common/BaseEntity.cpp, common/BaseEntity.h, common/custom.cpp,
	  common/inheritance.cpp, common/op_switch.h, common/operations.cpp,
	  common/operations.h, common/types.h, rulesets/Character.cpp,
	  rulesets/Character.h, tests/EntityExerciser.h, tests/allOperations.h:
	  Add, install, implement and test new op types for Use and Wield.
2004-06-28 01:19:45 +00:00
Al Riddoch
9a7a07007f 2004-01-22 Al Riddoch <alriddoch@zepler.org>
* common/custom.cpp, common/inheritance.cpp, common/operations.cpp,
2004-01-22 03:03:07 +00:00
Al Riddoch
43bbc588bd 2004-01-22 Al Riddoch <alriddoch@zepler.org>
* common/custom.cpp, common/inheritance.cpp, common/operations.cpp,
	  server/EntityFactory.cpp: Use new Atlas-C++ Class() method
	  for class objects.
2004-01-22 00:48:22 +00:00
Al Riddoch
b584b32964 2003-09-08 Al Riddoch <alriddoch@zepler.org>
* client/Py_CreatorClient.cpp, client/Py_CreatorClient.h,
	  rulesets/Py_BBox.cpp, rulesets/Py_BBox.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_Quaternion.cpp, rulesets/Py_Quaternion.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/PythonMindScript.cpp, rulesets/PythonThingScript.cpp,
	  rulesets/Python_API.cpp:
	  Clean up python API code, with decent names for types,
	  decent error reporting, and making the more paranoid checks
	  only present in debug build.

	* common/BaseEntity.cpp, common/BaseEntity.h, server/Account.cpp:
	  Remove pointless method setRefnoOp, and put it in the body as
	  an inline method.

	* common/BaseEntity.h, common/BaseWorld.cpp, common/Setup.h,
	  common/Tick.h, common/operations.h, common/custom.cpp,
	  common/types.h, common/utility.cpp, common/utility.h,
	  modules/Location.h, physics/Vector3D.h, rulesets/BaseMind.cpp,
	  rulesets/Script.h, server/EntityFactory.h:
	  Clean up the dependency trees using more forward declarations.

	* common/inheritance.cpp, common/inheritance.h:
	  Move most of the implementation into the .cpp file as its
	  not suited to inlining.

	* rulesets/MemMap.cpp, rulesets/MemMap.h, rulesets/MemMap_methods.h:
	  Move contents of MemMap_methods.h into the .cpp file, as it is
	  not suited to inlining, and remove the file from the build.
2003-09-07 23:38:32 +00:00
Al Riddoch
0fbfc771ad 2003-08-07 Al Riddoch <alriddoch@zepler.org>
* server/Lobby.cpp: Add some debugging messages.

	* server/CommServer.cpp: Tweak select loop so that closed connections
	  are cleaned up as soon as they are detected.

	* rulesets/World.cpp: Make demo terrain a bit more mountainous.

	* Convert entire codebase over to using Atlas-C++ 0.4.90, as
	  start of transition to 0.6 API.
2003-08-07 23:03:26 +00:00