Commit graph

151 commits

Author SHA1 Message Date
Al Riddoch
9efdc006aa 2007-01-27 Al Riddoch <alriddoch@zepler.org>
* server/Account.cpp: Remove the hack that ensures players always
	  create a settler if they try and create a character that does not
	  exist. Handle setting initial attributes unique to player characters
	  here, rather than setting the defaults on the classes.

	* data/mason.xml: Remove initialising status to a ery low value to
	  make settlers and goblins starve easily.

	* data/basic.xml: Set the mass of a arrow to something sane.
2007-01-27 15:07:54 +00:00
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
73e636a85b 2007-01-17 Al Riddoch <alriddoch@zepler.org>
* server/Account.cpp: Fix the name of character inventory items.

	* server/Connection.cpp: Stop any movement when the client
	  disconnects.
2007-01-17 10:04:14 +00:00
Al Riddoch
041f41c7a8 2007-01-16 Al Riddoch <alriddoch@zepler.org>
* data/mason.xml: Adjust the bbox on the knife like a whole load.

	* server/Account.cpp: Hack some clothes into the startup inventory.
2007-01-16 17:01:40 +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
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
484657515c 2006-08-07 Al Riddoch <alriddoch@zepler.org>
* server/Account.cpp: Rename some variables to clearer meanings.
	  Only send confirmation of subscription on entity creation if
	  the entity created is a character. Otherwise it is still created,
	  and can be manipulated, but not directly controlled by the
	  client.
2006-08-07 17:58:23 +00:00
Al Riddoch
61e42dbd17 2006-08-07 Al Riddoch <alriddoch@zepler.org>
* server/Account.cpp: Only add initial inventory items if the entity
	  being created is a character. Add some comments.
2006-08-07 17:47:43 +00:00
Al Riddoch
f23d374bc1 2006-08-07 Al Riddoch <alriddoch@zepler.org>
* server/Account.cpp: Report an error if a logout is received by
	  an account which is not connected.
2006-08-07 11:06:41 +00:00
Al Riddoch
ad7eae558d 2006-07-08 Al Riddoch <alriddoch@zepler.org>
* server/Account.cpp: Re-order checks for increased robustness.
	  Add more error reports.

	* server/CommMDNSPublisher.cpp: Remove a redundant FIXME.
2006-07-09 00:04:37 +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
07da807b3b 2006-06-06 Al Riddoch <alriddoch@zepler.org>
* common/BaseEntity.cpp, rulesets/Character.cpp, rulesets/Creator.cpp,
	  server/Account.cpp, server/Admin.cpp, server/Connection.cpp,
	  server/Lobby.cpp, server/WorldRouter.cpp: Don't bother with serial
	  numbers on ops generated inside the server. They just leak and upset
	  clients.
2006-06-07 00:13:39 +00:00
Al Riddoch
4bfb14f060 2006-06-05 Al Riddoch <alriddoch@zepler.org>
* server/Connection.cpp, server/CommClient.cpp, server/Account.cpp:
	  Only set refnos on ops if the client has set a serial number.

	* rulesets/Character.cpp: Simplify handling the transfer of
	  operations from client to in-game. Don't give new operations
	  serial numbers at this point.
2006-06-05 12:57:29 +00:00
Al Riddoch
aade70dbb6 2006-06-01 Al Riddoch <alriddoch@zepler.org>
* server/Account.cpp: Add op to notify client when account object
	  is modified.
2006-06-01 10:26:34 +00:00
Al Riddoch
abeb2a55bf 2006-05-14 Al Riddoch <alriddoch@zepler.org>
* rulesets/Character.cpp: Be more severe about error messages if
	  client sends an action op. Remove obsolete comments.
	  Warn if client sends a Set op. Don't accept look ops with
	  an arg containing no ID - nothing sends this, and nothing should.

	* rulesets/Thing.cpp: Add an error report if an explicit Action op
	  is received by an entity.
2006-05-14 02:26:17 +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
50639486d2 2006-01-26 Al Riddoch <alriddoch@zepler.org>
* server/Account.cpp, server/Admin.cpp: Improve error messages
	  when client use Set ops incorrectly.
2006-01-26 03:45:03 +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
51a7f9cdd9 2006-01-17 Al Riddoch <alriddoch@zepler.org>
* server/Account.cpp: When allowing a character to create a character
	  even though it has specified a type that does not exist, install
	  a dummy type record for the non-existant type to keep Eris happy.
2006-01-17 15:04:28 +00:00
Al Riddoch
4ec5eb78e1 2006-01-16 Al Riddoch <alriddoch@zepler.org>
* server/Account.cpp: Modify interim hack that allows characters
	  of any type to be created so that it suppresses the character
	  creation error op.
2006-01-16 19:02:51 +00:00
Al Riddoch
4398c2cbbd 2006-01-11 Al Riddoch <alriddoch@zepler.org>
* common/log.cpp, server/Account.cpp, server/Connection.cpp,
	  server/server.cpp: Make server logs much more machine readable
	  by removing stray colons, standardising field semantics, and
	  cleaning up messages.
2006-01-11 02:36:16 +00:00
Al Riddoch
64bb25a1bc 2006-01-10 Al Riddoch <alriddoch@zepler.org>
* server/Account.cpp: Re-order checks so that type is checked
	  for before checking to see if its legal. Add temporary code
	  to force settler if an unknown character type is specified.

	* server/Player.cpp: Remove some tests no longer required
	  because they have already been checked in Account::CreateOperation.
2006-01-10 21:58:04 +00:00
Al Riddoch
43dfa66b1f 2005-12-30 Al Riddoch <alriddoch@zepler.org>
* server/Account.cpp: Move character creation logging to a place
	  where the information is easier to get to.

	* server/Connection.cpp: Add logging of taking existing character.
2005-12-30 22:33:11 +00:00
Al Riddoch
5aa723ac9e 2005-12-30 Al Riddoch <alriddoch@zepler.org>
* common/log.h, common/log.cpp: Add logging function for logging
	  regular server activity, for statistics purposes, to a file.

	* server/Account.cpp, server/Connection.cpp, server/server.cpp:
	  Add log calls to recall typical events.

	* tools/cycmd.cpp: Set a name on the admin agent avatar.
2005-12-30 22:11:23 +00:00
Al Riddoch
712a09d046 2005-11-12 Al Riddoch <alriddoch@zepler.org>
* client/BaseClient.cpp, common/BaseWorld.cpp, common/id.cpp,
	  common/id.h, rulesets/MemMap.cpp, server/Account.cpp,
	  server/Admin.cpp, server/Connection.cpp, server/Persistance.cpp,
	  server/Restoration.cpp, server/WorldRouter.cpp, server/server.cpp:
	  Add intgerId() function to convert ID strings to integers, and
	  check the conversion went okay.
2005-11-12 00:18:47 +00:00
Al Riddoch
24505edda1 2005-11-11 Al Riddoch <alriddoch@zepler.org>
* common/BaseEntity.h, common/OOGThing.cpp, common/OOGThing.h,
	  server/Account.cpp, server/Account.h, server/Admin.cpp,
	  server/Admin.h, server/Connection.cpp, server/ExternalMind.cpp,
	  server/ExternalMind.h, server/Lobby.cpp, server/Lobby.h,
	  server/Peer.cpp, server/Persistance.cpp, server/Player.cpp,
	  server/Player.h, server/ServerRouting.cpp,
	  server/SlaveClientConnection.cpp, server/server.cpp:
	  Add integer ID handling to accounts, and some other OOG
	  objects.
2005-11-11 16:03:14 +00:00
Al Riddoch
162f57955e 2005-11-11 Al Riddoch <alriddoch@zepler.org>
* common/types.h, server/Persistance.h, common/BaseWorld.h,
	  common/BaseWorld.cpp, server/WorldRouter.cpp:
	  Switch core world map to reference by integer ID rather than string.
	  Add version of getEntity() which converts from string to integer
	  automatically.

	* rulesets/Character.cpp, rulesets/Thing.cpp, rulesets/World.cpp,
	  server/EntityFactory.cpp,
	  Use getEntity() when looking up an entity, so that conversion of
	  ID from string to integer is automatic.

	* rulesets/BaseMind.cpp, rulesets/MemMap.cpp, rulesets/MemMap.h:
	  Switch to using integer IDs in MemMap's core mapping.

	* server/Account.cpp, server/Account.h: Switch a few function
	  parameters to use integer ID values, making the code cleaner.

	* server/Account.cpp, server/Admin.cpp, server/Persistance.cpp:
	  Handle string ID to integer conversions as required.
2005-11-11 02:04:56 +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
39918324e0 2005-08-31 Al Riddoch <alriddoch@zepler.org>
* common/inheritance.h: Set the correct objtype on the Root meta class.

	* rulesets/Character.cpp, rulesets/Food.cpp, rulesets/Plant.cpp,
	  rulesets/Stackable.cpp, rulesets/Thing.cpp, server/Account.cpp,
	  server/Admin.cpp, server/Connection.cpp, tools/AdminClient.cpp,
	  tools/cycmd.cpp: Switch to renamed copyAttr() method from
	  Atlas-C++.
2005-08-30 23:53:34 +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
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
3b7b1d413a 2005-04-11 Al Riddoch <alriddoch@zepler.org>
* server/Account.cpp, server/Admin.cpp, server/CommClient.cpp,
	  server/Connection.cpp: Don't set refno on unicast OOG ops,
	  instead set them at the interface with the client in one
	  place.

	* server/WorldRouter.cpp: Modify setting refno on IG ops so its
	  now only set on unicast responses.

	* rulesets/Creator.cpp: Set refno on responses direct ops from creator
	  clients more manually.

	* common/BaseEntity.cpp: Only set refno on unicast error ops.

	* common/refno.h: Disable as this file is no longer used.
2005-04-11 21:51:41 +00:00
Al Riddoch
92dfc4ca95 2005-04-06 Al Riddoch <alriddoch@zepler.org>
* rulesets/Thing.cpp: Remove obsolete commented out code.

	* server/Account.cpp, server/Connection.cpp:
	  Add a note about serialno/refno handling when code sends ops
	  directly to the client.

	* server/CommClient.cpp, server/CommClient.h: Clean up some debug
	  code, and method names.

	* server/Lobby.cpp: Fix a case where a private message would fail
	  silently if account had logged on recenlty but was no longer.
2005-04-06 00:41:28 +00:00
Al Riddoch
5e5f3b1967 2005-04-05 Al Riddoch <alriddoch@zepler.org>
* server/Account.cpp: Improve checks to make sure account is connected
	  when processing ops.

	* server/Admin.cpp: Improve logout op handling so its cleaner, and
	  improve a couple of variable names.
2005-04-05 17:25:12 +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
7d34694403 2004-01-13 Al Riddoch <alriddoch@zepler.org>
* common/BaseWorld.h, rulesets/Entity.h, rulesets/MemMap.cpp,
	  server/Account.cpp, server/WorldRouter.cpp, server/WorldRouter.h:
	  Use reference count functions to handle deleting entities.
	  Modify main op queue to hold a reference to the entity the op
	  is from. Fix up arg naming conventions in WorldRouter.
2005-01-13 23:35:36 +00:00
Al Riddoch
2b75aa5b06 2004-12-06 Al Riddoch <alriddoch@zepler.org>
* rulesets/Character.cpp, rulesets/Pedestrian.cpp,
	  rulesets/Py_World.cpp, rulesets/PythonThingScript.cpp,
	  rulesets/Thing.cpp, server/Account.cpp, server/Admin.cpp,
	  server/Connection.cpp, server/Restoration.cpp:
	  Remove unnecessary includes of common/BaseWorld.h.
2004-12-06 22:08:36 +00:00
Al Riddoch
a394cd8e48 2004-12-06 Al Riddoch <alriddoch@zepler.org>
* common/BaseEntity.cpp, common/BaseWorld.h, common/refno.h,
	  common/serialno.h, rulesets/Character.cpp, rulesets/Creator.cpp,
	  rulesets/World.h, server/Account.cpp, server/Admin.cpp,
	  server/Connection.cpp, server/Lobby.cpp, server/ServerRouting.h,
	  server/WorldRouter.cpp, server/WorldRouter.h, tests/Creatortest.cpp,
	  tests/Worldtest.cpp: Simplify the way operation refnos and serialnos
	  are handled, getting rid of some unnecessary virtual methods and
	  functions.
2004-12-06 21:56:47 +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
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
0e721ecc96 2004-11-24 Al Riddoch <alriddoch@zepler.org>
* common/utility.cpp: Add a FIXME note about more correctly
	  converting a message to an op.

	* server/CommClient.h, server/CommClient.cpp: Call new shutdown()
	  method in skstream instead of close when disconnecting or
	  timing out, so that the socket is still valid. Otherwise
	  there is no reliable way to detect that the socket is no longer
	  connected.

	* server/CommClient.h, server/CommClient.cpp, server/Account.cpp,
	  server/Connection.h, server/Connection.cpp: Rename close() to
	  disconect() to more accuratly reflect its function.

	* server/CommServer.h, server/CommServer.cpp: Add an implementation
	  based on epoll which is used if available. Much more efficient
	  and scalable.

	* tools/cycmd.cpp: Fix a couple of memory leaks.
2004-11-24 01:19:31 +00:00
Al Riddoch
3bc8a55ea4 2004-11-16 Al Riddoch <alriddoch@zepler.org>
* rulesets/Character.cpp: Clarify error message on tool use.

	* rulesets/Thing.cpp: Allow setting of mode attribute from args
	  of move op for efficiency.

	* server/Player.cpp, server/Admin.cpp, server/Player.cpp:
	  Add TO to all accounts at the account level, so the client
	  can tell they are for the account.
2004-11-16 01:09:57 +00:00
Al Riddoch
c4a92de9f3 2004-11-06 Al Riddoch <alriddoch@zepler.org>
* aiclient/ClientConnection.cpp, client/BaseClient.cpp,
	  client/CharacterClient.cpp, client/ClientConnection.cpp,
	  common/Database.cpp, common/FormattedXMLWriter.cpp,
	  common/inheritance.cpp, common/refno.h, common/terrain_utils.cpp,
	  common/type_utils.h, common/utility.cpp, modules/WorldTime.cpp,
	  modules/WorldTime.h, physics/Collision.cpp, rulesets/Area.cpp,
	  rulesets/BaseMind.cpp, rulesets/Character.cpp, rulesets/Entity.cpp,
	  rulesets/Line.cpp, rulesets/MemMap.cpp, rulesets/MemMap_methods.h,
	  rulesets/Movement.cpp, rulesets/Plant.cpp, rulesets/Py_Map.cpp,
	  rulesets/Py_Object.cpp, rulesets/Py_Operation.cpp,
	  rulesets/Py_Oplist.cpp, rulesets/PythonMindScript.cpp,
	  rulesets/PythonThingScript.cpp, rulesets/Python_API.cpp,
	  rulesets/Stackable.cpp, rulesets/TerrainProperty.cpp,
	  rulesets/Thing.cpp, rulesets/World.cpp, server/Account.cpp,
	  server/CommClient.cpp, server/CommServer.cpp, server/Connection.cpp,
	  server/EntityFactory.cpp, server/Lobby.cpp, server/Persistance.cpp,
	  server/Player.cpp, server/Restoration.cpp, server/ServerRouting.cpp,
	  server/WorldRouter.cpp, tests/EntityExerciser.h,
	  tests/IGEntityExerciser.h, tests/inheritancetest.cpp,
	  tools/cycmd.cpp, tools/cyconvertrules.cpp, tools/cydbload.cpp,
	  tools/cyloadrules.cpp:
	  Tweak for loops to avoid creating a temporary iterator each
	  iteration.

	* tests/type_utilstest.cpp: New test for function which does
	  list conversions.
2004-11-06 20:36:03 +00:00
Al Riddoch
593e22b4d8 2004-09-05 Al Riddoch <alriddoch@zepler.org>
* rulesets/Character.cpp, server/Account.cpp:
	  Add serialno assignments to character inventory creation ops,
	  and ops from builtin mind.

	* server/WorldRouter.cpp: Remove an obsolete comment.
2004-09-05 01:39:02 +00:00
Al Riddoch
b079641db8 2004-09-04 Al Riddoch <alriddoch@zepler.org>
* rulesets/Character.cpp: Check if a Setup op is for the mind
	  before dispatching to script, and ensure that Appearance
	  is always broadcast.

	* server/Account.cpp: No need to broadcase sight(create) when a
	  character is created by an account.
2004-09-04 14:08:39 +00:00
Al Riddoch
d526d8df78 2004-09-03 Al Riddoch <alriddoch@zepler.org>
* client/CharacterClient.cpp, client/CharacterClient.h,
	  client/CommClient.cpp, common/BaseEntity.cpp,
	  common/BaseEntity.h, common/OOGThing.cpp,
	  common/OOGThing.h, common/op_switch.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/Missile.h, rulesets/Plant.cpp, rulesets/Plant.h,
	  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/ExternalMind.cpp, server/ExternalMind.h,
	  server/Lobby.cpp, server/Lobby.h, server/Player.cpp,
	  server/Player.h, server/WorldRouter.cpp:
	  Re-work basic op dispatch mechanism so result is passed by
	  a reference argument rather than returning by value.
2004-09-03 00:33:19 +00:00
Al Riddoch
511a927e67 2004-09-01 Al Riddoch <alriddoch@zepler.org>
* common/BaseEntity.h, common/OOGThing.h, rulesets/Area.h,
	  rulesets/BaseMind.h, rulesets/Entity.h, rulesets/Food.h,
	  rulesets/Line.h, rulesets/MemEntity.h, rulesets/Missile.h,
	  rulesets/Plant.h, rulesets/Stackable.h, rulesets/Structure.h,
	  rulesets/Thing.h, rulesets/World.h, server/Account.h,
	  server/Connection.h, server/Lobby.h: Update the comments describing
	  the function of these classes.

	* rulesets/Character.h, server/Account.cpp, server/Connection.cpp,
	  server/ExternalMind.cpp, server/ExternalMind.h: Make ExternalMind
	  inherit from BaseEntity, eliminating the need for the name argument
	  to the constructor and simplifying the class greatly by dropping
	  loads of unused inherited functionality.
2004-09-01 10:41:20 +00:00
Al Riddoch
b035ecfaab 2004-08-27 Al Riddoch <alriddoch@zepler.org>
* common/BaseWorld.h, server/CommSocket.h, server/CommIdleSocket.h:
	  Make constructors of some base classes protected.

	* server/Account.cpp: Note a possible bug in the character
	  creation code.

	* server/CommIdleSocket.cpp, server/CommIdleSocket.h,
	  server/CommListener.cpp, server/CommListener.h,
	  server/CommLocalClient.cpp, server/CommMetaClient.cpp,
	  server/CommMetaClient.h, server/CommPSQLSocket.cpp,
	  server/CommPSQLSocket.h, server/CommRemoteClient.cpp,
	  server/CommSocket.cpp, server/CommSocket.h,
	  server/CommUnixListener.cpp, server/CommUnixListener.h:
	  Clean up the Comm classes for consistancy and readability.
2004-08-28 00:58:01 +00:00