Commit graph

46 commits

Author SHA1 Message Date
Al Riddoch
861facab1d 2006-05-07 Al Riddoch <alriddoch@zepler.org>
* common/accountbase.cpp, server/Admin.cpp, server/Persistance.cpp,
	  server/server.cpp, server/slave.cpp: Add more checks to ensure
	  that not getting an ID from the database always fails cleanly.
2006-05-07 00:10:10 +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
287a9bc660 2005-11-23 Al Riddoch <alriddoch@zepler.org>
* client/BaseClient.cpp, common/Database.cpp, rulesets/MemMap.cpp,
	  server/Connection.cpp, server/EntityFactory.cpp, server/Peer.cpp,
	  server/Persistance.cpp, server/Restoration.cpp,
	  server/ServerRouting.h: Update integer ID related checks now that
	  integerId() function has changed.
2005-11-23 11:55:08 +00:00
Al Riddoch
d24a86968c 2005-11-12 Al Riddoch <alriddoch@zepler.org>
* common/Database.cpp, common/Database.h, common/id.h, common/id.cpp:
	  Make newId() functions return the integer value.

	* common/newid.cpp: Break newId out into its own file, and make
	  it handle whether or not the database should issue IDs.

	* server/Connection.cpp, server/Persistance.cpp,
	  server/WorldRouter.cpp, server/server.cpp: Simply generating IDs
	  by just using the newId() function, and use its return value.
2005-11-12 01:40:37 +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
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
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
bbeb9403d4 2004-10-04 Al Riddoch <alriddoch@zepler.org>
* server/Connection.cpp: Move the code to handle destruction of
	  a connection into the destructor. The destroy method can go
	  once this is well tested.

	* server/CommListener.cpp: Return -1 on error.

	* server/Persistance.cpp: Return a different error code depending
	  on why database init failed.

	* server/server.cpp: Try and provide more helpfull error messages
	  depending on why database init failed.
2004-10-04 00:52:32 +00:00
Al Riddoch
3dc25b698f 2004-10-03 Al Riddoch <alriddoch@zepler.org>
* common/Database.cpp, common/Database.h, common/accountbase.cpp,
	  common/accountbase.h, server/Persistance.cpp, server/Persistance.h,
	  server/server.cpp, tools/cyloadrules.cpp, tools/cypasswd.cpp:
	  Use int for returning error status.
2004-10-03 01:50:49 +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
71a1c70fa1 2004-07-20 Al Riddoch <alriddoch@zepler.org>
* client/CreatorClient.cpp, rulesets/BaseMind.cpp,
	  rulesets/MemEntity.cpp, rulesets/MemEntity.h,
	  rulesets/MemMap.cpp, rulesets/MemMap.h, rulesets/Py_Map.cpp:
	  Set time on memory entities when we update them.

	* common/BaseWorld.h: Make object accessor const.

	* common/Database.cpp, common/Database.h, common/accountbase.cpp,
	  server/Connection.cpp, server/Persistance.cpp,
	  server/WorldRouter.cpp: Rename function to get new ID from
	  database to more correctly reflect its role.

	* rulesets/PythonMindScript.cpp: Use get rather than getAdd
	  to sort out to and from of ops send to mind scripts.
2004-07-20 20:27:56 +00:00
Al Riddoch
12c86f9e3b 2004-07-14 Al Riddoch <alriddoch@zepler.org>
* common/Database.h, common/Database.cpp: Modify relation code
	  to allow partial support for foreign key constrains to maintain
	  referential integrity. Full support will work when (if) primary
	  keys are inherited.

	* server/Persistance.h, server/Persistance.cpp: Use updated relation
	  code for the accounts to characters relation.
2004-07-14 18:31:07 +00:00
Al Riddoch
74244d514f 2004-06-15 Al Riddoch <alriddoch@zepler.org>
* common/Database.cpp, common/globals.cpp, rulesets/Area.cpp,
	  rulesets/Python_API.cpp, server/Connection.cpp,
	  server/Persistance.cpp: Ensure that all output goes either via
	  the log system, or only in debug macros.
2004-06-15 18:06:59 +00:00
Al Riddoch
98c7fc5f62 2003-08-13 Al Riddoch <alriddoch@zepler.org>
* common/const.cpp, common/const.h: Add a const for the default
	  admin password hash, with a view to removing the plain text
	  default admin password.

	* server/Persistance.cpp: Ensure that the database contains an
	  admin account on startup.

	* common/Database.cpp: Move the call to register the ID generating
	  sequence out of the code for creating IG entity tables, as it is
	  also required by OOG entities, in particular the admin account
	  bootstrap.

	* client/ObserverClient.cpp, client/ObserverClient.h,
	  client/client.cpp: Modify client so that it no longer attempts to
	  get account details from the database, or from a hard coded default.
	  It will now attempt a trusted login, or rely on password provided
	  by config option.
2003-08-12 23:45:40 +00:00
Al Riddoch
ddca42e1df 2003-07-21 Al Riddoch <alriddoch@zepler.org>
* server/Persistance.cpp, server/Restoration.cpp: Use DatabaseResult
	  clear() method to free result objects.

	* server/CommMetaClient.cpp: Free address info in the event of a socket
	  failure.
2003-07-21 11:46:36 +00:00
Al Riddoch
88bb8c6a42 2003-05-04 Al Riddoch <alriddoch@zepler.org>
* Clean up member variable names.
2003-05-04 18:31:38 +00:00
Al Riddoch
b24ad0c18a 2003-03-22 Al Riddoch <alriddoch@zepler.org>
* client/CommClient.cpp, client/CreatorClient.cpp,
	  client/ObserverClient.cpp, client/Py_CreatorClient.cpp,
	  common/BaseEntity.cpp, common/BaseEntity.h,
	  common/types.h, rulesets/Area.cpp, rulesets/BaseMind.cpp,
	  rulesets/Character.cpp, rulesets/Entity.cpp,
	  rulesets/Food.cpp, rulesets/Line.cpp,
	  rulesets/MemMap.cpp, rulesets/Pedestrian.cpp,
	  rulesets/Plant.cpp, rulesets/Py_Mind.cpp,
	  rulesets/Py_Object.cpp, rulesets/Py_Thing.cpp,
	  rulesets/Python_API.cpp, rulesets/Stackable.cpp,
	  rulesets/Thing.cpp, rulesets/World.cpp,
	  server/Account.cpp, server/Admin.cpp, server/CommClient.cpp,
	  server/CommServer.cpp, server/Connection.cpp,
	  server/EntityFactory.cpp, server/Lobby.cpp,
	  server/Persistance.cpp, server/Player.cpp,
	  server/ServerRouting.cpp, server/WorldRouter.cpp:
	  Switch to using Element as name for Atlas::Message::Object,
	  to avoid name clashes on Object, and bring into line with
	  the way Atlas-C++ will be.
2003-03-23 00:55:09 +00:00
Al Riddoch
15ef748518 2003-03-07 Al Riddoch <alriddoch@zepler.org>
* Use " instead of < when including application headers.

	* Re-work the interface between server and worldrouter objects
	  so that the are less tied together, and more flexible.
2003-03-07 00:22:12 +00:00
Al Riddoch
ba2c5485da 2003-01-12 Al Riddoch <alriddoch@zepler.org>
* common/Database.cpp, common/Database.h: Add functions for removing
	  relation rows. Modify entity select method to handle an empty loc
	  correctly.

	* rulesets/Thing.cpp: Correct indenting.

	* rulesets/World.cpp: Trigger update in SetOperation() correctly.

	* server/Account.cpp, server/Persistance.cpp, server/Persistance.h:
	  Inform Persistance modules when the account loses a character, so
	  this change is reflected in the database.

	* server/Persistor.cpp: Move comments into the correct place.

	* server/Restoration.cpp, server/Restorer.cpp, server/Restorer.h,
	  server/Restorer_impl.h: Persist and restore the world entity
	  attributes. Remove redundant argument from Restorer::populate().
2003-01-12 15:06:09 +00:00
Al Riddoch
f6dc20a9d2 2003-01-05 Al Riddoch <alriddoch@zepler.org>
* common/Database.cpp: Fix some errors in the entity table
	  creation code.

	* server/Persistor.cpp, server/Persistor.h, server/Persistor_impl.h:
	  Switch to using pointers instead of references with signals
 	  to comply with sigc++ 1.2.

	* tools/cycmd.cpp: Add a missing header, require for sigc++ 1.2.

	* server/Persistance.cpp: Fixed error message.
2003-01-05 21:44:56 +00:00
Al Riddoch
d30400de55 2003-01-05 Al Riddoch <alriddoch@zepler.org>
* common/Database.cpp, common/Database.h: Modify relation
	  table create query to allow different types of relation,
	  with constraints to be added. Implement function to
	  add rows to a relation. Modify result iterator constrcter
	  so it returns end() if the result is empty.

	* server/Persistance.cpp, server/Persistance.h: New methods
	  to handle populating a newly restored account object
	  with characters, and syncing newly created characters to
	  the relation that links them with their account.

	* server/Account.cpp, server/Account.h: New method to
	  add existing characters to this account. Inform persistance
	  system when we get a newly created character.

	* server/Connection.cpp: Ask persistance system to populate
	  newly restored account with its characters.
2003-01-05 19:55:52 +00:00
Al Riddoch
562cd2a7ce 2003-01-05 Al Riddoch <alriddoch@zepler.org>
* server/Connection.cpp, server/ServerRouting.h:
	  Rename function for querying account by its name.

	* server/Persistance.cpp, server/Persistance.h: Remove obsolete
	  function for loading Admin account.
2003-01-05 15:26:07 +00:00
Al Riddoch
5ef716948f 2003-01-05 Al Riddoch <alriddoch@zepler.org>
* common/globals.cpp, common/globals.h, server/Connection.cpp,
	  server/Persistance.cpp, server/Persistance.h, server/ServerRouting.cpp,
	  server/server.cpp: Move restricted flag out of persistance into
	  globals.

	* server/Account.h, server/Admin.cpp, server/Connection_methods.h,
	  server/WorldRouter.cpp: Remove unnecessary includes.

	* server/ServerRouting.cpp: No longer necessary to load the admin
	  account at startup. Can be loaded on demand.
2003-01-05 01:28:49 +00:00
Al Riddoch
0c78cf0b43 2003-01-03 Al Riddoch <alriddoch@zepler.org>
* common/BaseEntity.h, server/Persistor.h: Make inheritance of
	  SigC::Object virtual, although multiple inheritance is not planned.

	* common/Database.cpp, common/Database.h: Remove legacy account
	  table, and add support for generic non-inherited tables for OOG
	  data.

	* common/Database.cpp, common/Database.h: Add general methods for
	  running queries and reporting errors, and cut down duplicated
	  code elsewhere by using them.

	* common/accountbase.cpp, common/accountbase.h: Remove code
	  that used old account table, and replace with stubs. New
	  account yet to be written.

	* server/Account.cpp, server/Account.h, server/Admin.cpp,
	  server/Admin.h, server/Player.cpp, server/Player.h:
	  Allow an id to be specified when creating an account.

	* server/Persistance.cpp: Re-write account persistance methods
	  to use new table.

	* server/Restoration.cpp: Clarify debug output.
2003-01-03 17:14:28 +00:00
Al Riddoch
8d7eb1b6e1 2002-12-28 Al Riddoch <alriddoch@zepler.org>
* common/BaseEntity.cpp, common/BaseEntity.h, rulesets/Character.cpp,
	  rulesets/Food.cpp, rulesets/Thing.cpp, rulesets/World.cpp:
	  Add arg to error method specifying where the error should go. Use
	  this arg to ensure that errors don't get broadcast.

	* common/Database.cpp, common/Database.h, common/const.cpp,
	  server/Persistor.cpp, server/Restoration.cpp,
	  server/WorldRouter.cpp
	  Change id and loc column in entity tables to integer for
	  performance. Add id generator sequence to database

	* common/Database.cpp, common/Database.h, server/Persistance.cpp,
	  server/Persistance.h: Remove old legacy world, mind and server
	  tables as they are no longer used.

	* common/BaseEntity.cpp, common/Load.h, common/Save.h,
	  common/custom.cpp, common/op_switch.h, common/operations.cpp,
	  common/operations.h, common/types.h, rulesets/BaseMind.cpp,
	  rulesets/BaseMind.h, rulesets/Character.cpp, rulesets/Character.h,
	  server/Admin.cpp, server/Admin.h, server/server.cpp,
	  tools/cycmd.cpp: Remove Load and Save ops.

	* rulesets/Area.cpp, rulesets/Character.cpp, rulesets/Line.cpp,
	  rulesets/Plant.cpp: Fix != to |= when setting update flags.

	* server/CommMetaClient.cpp, server/CommMetaClient.h,
	  server/CommServer.cpp, server/CommServer.h, server/server.cpp:
	  Add mechanism for sockets to be called whenever the server
	  is idle, so that they do period things. Use this mechanis,
	  to handle sending periodic packets to the metaserver, removing
	  special case code from CommServer.
2002-12-28 21:52:32 +00:00
Al Riddoch
27381dd63a 2002-12-10 Al Riddoch <alriddoch@zepler.org>
* common/Database.cpp: Clean up errors in new entity table
	  code.

	* server/EntityFactory.cpp: Switch to using new persistant
	  factories.

	* server/Persistance.cpp: Don't create test tables.

	* server/PersistantThingFactory.h:
	  Clean up the way templates are used here, and simplify.

	* Persistor.h, Persistor.cpp, Persistor_impl.h:
	  Implement object handles the persistance of the rulesets
	  classes. Currently does not implement any of the actual
	  persistance.
2002-12-10 23:38:15 +00:00
Al Riddoch
cb24511ec0 2002-11-25 Al Riddoch <alriddoch@zepler.org>
* common/Database.h, common/Database.cpp, server/Persistance.cpp:
	  Finish entity table creation code, and test it.

	* rulesets/Entity.cpp, rulesets/Entity.h, rulesets/EntityFactory.h,
	  rulesets/PythonThingScript.cpp, rulesets/PythonThingScript.h,
	  rulesets/Python_API.cpp, rulesets/Python_API.h,
	  rulesets/Thing.cpp, rulesets/Thing.h, server/EntityFactory.cpp,
	  server/EntityFactory.h, server/WorldRouter.cpp: Sort out
	  some incorrect use of Thing instead of Entity. Move some code
	  from Thing into Entity.
2002-11-25 22:48:13 +00:00
Al Riddoch
00199f8aa6 2002-07-27 Al Riddoch <alriddoch@zepler.org>
* tools/cyloadrules.cpp, server/server.cpp,
	  aiclient/ClientConnection.cpp, client/ClientConnection.cpp,
	  common/inheritance.h: Use const iterators and references
	  whenever possible.

	* client/CommClient.cpp, client/CreatorClient.cpp,
	  client/ObserverClient.cpp, client/Py_CreatorClient.cpp,
	  common/BaseEntity.cpp, common/BaseEntity.h,
	  common/types.h, rulesets/Area.cpp, rulesets/BaseMind.cpp,
	  rulesets/Character.cpp, rulesets/Entity.cpp,
	  rulesets/Food.cpp, rulesets/Line.cpp,
	  rulesets/MemMap.cpp, rulesets/Pedestrian.cpp,
	  rulesets/Plant.cpp, rulesets/Py_Mind.cpp,
	  rulesets/Py_Object.cpp, rulesets/Py_Thing.cpp,
	  rulesets/Python_API.cpp, rulesets/Stackable.cpp,
	  rulesets/Thing.cpp, rulesets/World.cpp,
	  server/Account.cpp, server/Admin.cpp, server/CommClient.cpp,
	  server/CommServer.cpp, server/Connection.cpp,
	  server/EntityFactory.cpp, server/Lobby.cpp,
	  server/Persistance.cpp, server/Player.cpp,
	  server/ServerRouting.cpp, server/WorldRouter.cpp:
	  Switch to using Fragment as name for Atlas::Message::Object,
	  to avoid name clashes on Object.

	* common/BaseEntity.h: Make BaseEntity inherit from SigC::Object,
	  so signals and callbacks can be used, and add destroyed
	  signal.

	* common/accountbase.h, physics/BBox.h, physics/Quaternion.h,
	  physics/Vector3D.h, rulesets/MemMap_methods.h,
	  rulesets/Movement.cpp, rulesets/Plant.h,
	  rulesets/Py_Operation.cpp, rulesets/PythonMindScript.cpp,
	  rulesets/PythonThingScript.cpp, rulesets/Script.cpp,
	  common/inheritance.cpp: Cleaned up Atlas::Message::Object
	  use, and excessive use of "using ...".

	* rulesets/Movement.h, rulesets/Pedestrian.h:
	  Use forward declarations rather than including Move.h

	* server/Account.cpp, server/Account.h, server/Connection.cpp,
	  server/Connection.h: Use destroyed signal to ensure references
	  to in game entities are removed when those entities are
	  destroyed. Ensure Connection is only destroyed once.
2002-07-28 13:34:58 +00:00
Al Riddoch
07a7543461 2002-07-14 Al Riddoch <alriddoch@zepler.org>
* ALL: Cleaned up headers into correct order.

	* common/log.h, common/log.cpp: Write some logging code which
	  handles message of different types using syslog or standard
	  error, depending on whether we are running as a daemon.

	* ALL: Switched to using log() for all output.
2002-07-14 21:04:50 +00:00
Al Riddoch
631f7a3bd4 2002-04-30 Al Riddoch <alriddoch@zepler.org>
* server/Persistance.h, server/Persistance.cpp:
	  Removed legacy code for passing admin account data to the
	  python client.
2002-04-30 13:47:53 +00:00
Al Riddoch
ad6ad55815 2002-04-12 Al Riddoch <alriddoch@zepler.org>
* common/BaseEntity.cpp, common/BaseEntity.h, common/BaseWorld.cpp,
	  common/Database.cpp, common/accountbase.h, modules/WorldTime.h,
	  rulesets/Py_World.cpp, server/Admin.cpp, server/Persistance.cpp,
	  server/Persistance.h:
	  Clean up includes.

	* rulesets/Entity.cpp, rulesets/Entity.h: Write improved way of
	  handling immutable object attributes.

	* server/EntityFactory.cpp, server/Player.cpp, server/Player.h:
	  Implement a character_types attribute on the player account,
	  by adding "playable" tag to rules database, and setting
	  up a set of character types when rules are read from database.
2002-04-12 21:54:44 +00:00
Al Riddoch
7d2e36d685 2002-03-08 Al Riddoch <alriddoch@zepler.org>
* server/Persistance.cpp, server/Connection.cpp, server/Admin.cpp,
	  server/Account.cpp, rulesets/Thing.h, rulesets/Thing.cpp,
	  rulesets/Stackable.cpp, rulesets/Py_Location.cpp,
	  rulesets/Entity.h, rulesets/Entity.cpp, rulesets/Creator.cpp,
	  rulesets/Character.cpp, common/BaseEntity.h, common/BaseEntity.cpp:
	  Get rid of flags used to determine object type, and get rid
	  of use of C style casts to cast between object pointers.
	  Replace both with dynamic casts. Clean up some stray casts
	  left behind from older versions of object structure.

	* physics/Vector3D.cpp: Added note explaining when to use
	  Vector3D::relMag() instead of mag().
2002-03-08 21:48:07 +00:00
Al Riddoch
32b79d1d05 2002-03-05 Al Riddoch <alriddoch@zepler.org>
* tools/cycmd.cpp, client/ClientConnection.cpp:
	  Removed c_str() where not required.

	* server/CommServer.cpp: Cleaned up removal of dead connections.

	* server/server.cpp, server/Persistance.cpp: Get rid of leaks
	  of factory and database connection objects.

	* common/inheritance.h: Detect and flag errors introduced into
	  type tree.

	* rulesets/MindFactory.h: Add method to shutdown factory.
2002-03-05 17:03:13 +00:00
Al Riddoch
32d93aed79 2002-03-03 Al Riddoch <alriddoch@zepler.org>
* common/Database.cpp, common/Database.h, common/accountbase.h,
	  server/Persistance.cpp, server/Persistance.h,
	  tools/cydbload.cpp, tools/cyloadrules.cpp, tools/cypasswd.cpp:
	  Modified class structure of database related classes to get
	  rid on nasty inheritance based idea. Add functionality
	  to handle updating a row as distinct from inserting. Made
	  id column the primary key. Updated tools to make propper use
	  of update functionality.
2002-03-03 02:37:35 +00:00
Al Riddoch
c741fda28a 2002-01-27 Al Riddoch <alriddoch@zepler.org>
* common/Database.cpp, common/Database.h,
	  server/Persistance.cpp, server/Persistance.h:
	  Add a new table to store rulesets, so they can be persisted, and
	  edited online.  The new ruleset format integrates information
	  about the class hierarchy, scripting and default attributes.
	  Added low level method to fetch an entire database table as an
	  Atlas map.

	* tools/cyloadrules.cpp: New tool to load rulesets in new xml
	  format into database table.

	* server/EntityFactory.cpp, server/EntityFactory.h:
	  New re-written Entity Factory, to support new rules database
	  table, and better class definition capabilities.

	* rulesets/EntityFactory.cpp, rulesets/EntityFactory.h:
	  Removed from build.

	* client/CommClient.cpp: Redundant include removed.

	* rulesets/ThingFactory.h: Add storage to factory for script
	  info and default attributes.

	* server/WorldRouter.cpp: Switch to using new EntityFactory.

	* server/server.cpp: Removed old ruleset loading code, and now
	  simply load the ruleset names from the config file.

	* tools/cycmd.cpp: Exit correctly if connection fails.
2002-01-27 00:38:27 +00:00
Al Riddoch
f7b9471b2c 2002-01-14 Al Riddoch <alriddoch@zepler.org>
* C++ compliance fixes for gcc 3.
2002-01-14 19:10:16 +00:00
Al Riddoch
e70aed6400 2002-01-13 Al Riddoch <alriddoch@zepler.org>
* client/client.cpp, server/server.cpp, common/globals.cpp,
	  common/globals.h, tools/cycmd.cpp, tools/cydbload.cpp,
	  tools/cypasswd.cpp: Move code for handling loading of config
	  from the command line, user config and global config, into
	  globals.cpp, and make use of it in all tools.

	* tools/cycmd.cpp: Fix objtype on server set commands.

	* common/Database.cpp, common/Database.h: Implemented new database
	  interface to PostgreSQL to replace inadequate db3 code.

	* common/database.cpp, common/database.h: Old code removed from the
	  build.

	* common/accountbase.h, server/Admin.cpp, server/Persistance.cpp,
	  server/server.cpp, tools/cydbload.cpp: Fixed for minor changes
	  in the low level database API.

	* common/globals.h, common/globals.cpp, rulesets/EntityFactory.cpp,
	  server/Admin.cpp, server/CommServer.cpp,
	  Remove varconf header from globals.h, and put in .cpp files
	  where it belongs.
2002-01-13 17:24:53 +00:00
Al Riddoch
aa3f4f0db4 * common/BaseWorld.cpp, common/OOGThing.cpp, rulesets/Entity.cpp,
rulesets/EntityFactory.cpp, rulesets/MindFactory.cpp,
	  rulesets/Stackable.cpp, server/Account.cpp, server/Admin.cpp,
	  server/CommClient.h, server/CommServer.cpp, server/CommServer.h,
	  server/Connection.cpp, server/ExternalMind.cpp,
	  server/Persistance.cpp, server/Persistance.h,
	  server/ServerRouting.cpp, server/WorldRouter.cpp,
	  server/server.cpp: Removed unused includes and code. Added some
	  FIXMEs.

	* rulesets/Thing.cpp: Added TO and FROM to faked Sight(Create()) ops.

	* server/OOG_Thing.cpp, server/OOG_Thing.h: Marked files as removed.

Al Riddoch  <alriddoch@zepler.org>
2001-10-18 16:06:06 +00:00
Al Riddoch
c0af3c3c63 * aiclient/ClientConnection.cpp, aiclient/client.cpp,
client/ClientConnection.cpp, common/database.h, common/globals.cpp,
	  common/persistance.cpp, common/stringstream.h, server/CommClient.cpp,
	  server/CommServer.cpp, server/Persistance.cpp, tools/cyctrl.cpp,
	  tools/cyctrl.cpp, tools/cydbload.cpp, tools/cyisoload.cpp,
	  tools/cypasswd.cpp: Removed unused config.h.

	* client/ObserverClient.cpp, common/const.h, tools/cycmd.cpp:
	  Use default password if the admin account cannot be fetched from
	  the database.

	* client/Py_CreatorClient.cpp, common/BaseEntity.cpp,
	  common/BaseEntity.h, rulesets/Character.cpp, rulesets/Creator.cpp,
	  rulesets/Entity.cpp, rulesets/Entity.h, rulesets/EntityFactory.cpp,
	  rulesets/MemMap.cpp, rulesets/Py_Mind.cpp, rulesets/Py_Thing.cpp,
	  rulesets/Py_World.cpp, rulesets/Thing.cpp, server/Account.cpp,
	  server/Admin.cpp, server/Connection.cpp, tools/cywatchdog.cpp:
	  Make many of the member variables of Entity protected, and add
	  the required accessors. Changed the name of the id attribute
	  to m_id.

	* common/BaseWorld.h, common/database.cpp, common/persistance.cpp:
	  Removed unused includes.

	* common/Chop.h, common/Cut.h, common/Eat.h, common/Fire.h,
	  common/Generic.h, common/Load.h, common/Nourish.h, common/Save.h,
	  common/Setup.h, common/Tick.h: Moved definition of virtual
	  functions into cpp file, to reduce wasted code.

	* common/Makefile.am: Create cyphesis library, which can be used by
	  other applications to access cyphesis databases.

	* common/config.h, common/database.h, server/Persistance.cpp,
	  tools/cydbload.cpp, tools/cyisoload.cpp, tools/cypasswd.cpp:
	  Remove conditional compilation of db code. db3 is now required.

	* server/WorldRouter.h: Fixed getNewId() so it take const string.

	* server/server.cpp: Removed python shutdown, so it does not
	  mess up the db if it causes a segfault.

Al Riddoch  <alriddoch@zepler.org>
2001-10-17 14:09:42 +00:00
Al Riddoch
15cd627b27 * server/server.cpp: Moved CommServer and CommClient into their own
files. Cleaned up debugging output.

	* rulesets/EntityFactory.h, server/CommServer.h: Fixed headers so
	  the required ones are included.

	* server/Persistance.cpp: Re-wrote shutdown method so it deletes
	  the class instance.

Al Riddoch  <alriddoch@zepler.org>
2001-09-13 18:21:56 +00:00
Al Riddoch
a44ee6f86d * BUGS: Note that C++ version of client currently does not work.
* TODO: Update on important issues which allow easy DOS attacks.

	* client/ClientConnection.cpp, client/ClientConnection.h:
	  Cleaned up unused code from ClientConnection class.

	* client/client.cpp: Removed monitoring section of client
	  so it simply exits once the world is initialised.

	* rulesets/basic/mind/goals/humanoid/werewolf.py:
	  Started work on dynamic goals for playing werewolf.

	* rulesets/werewolf/define_world.py: Added in the mayor, who runs
	  werewolf games.

	* common/BaseEntity.h: Made id of entity private, and implemented
	  accessors.

Al Riddoch  <alriddoch@zepler.org>
2001-09-13 15:21:16 +00:00
Al Riddoch
2fd239e63c * tools/cycmd.cpp: Ensure that login op is flushed after it is sent.
* server/Player.cpp: Arg order of std::string.compare() is
	  incompatable between recent libstdc++ versions. Switch
	  back to old version, still in most common use.

	* rulesets/Thing.cpp: Set refno on ops handled in game.

	* rulesets/Python_API.cpp: Modify Entity() python constructor
	  so that commonly used attributes from old atlas are translated
	  to their modern equivalents.

	* rulesets/Py_Thing.cpp, rulesets/Py_Mind.cpp: Differentiate
	  between previously identical error messages in several places.

	* rulesets/Py_Object.cpp: Rework conversion of python dict to
	  Atlas map to be more efficient and clean.

	* rulesets/Py_Location.cpp: Rework setting of vector parts of
	  location so that it can accept vectors from python in more
	  formats, including lists and tuples.

	* rulesets/Creator.h, rulesets/Character.h, common/BaseEntity.h:
	  Re-order virtual methods declarations to fit a convention.

	* common/stringstream.h: Hardcode use of local stringstream class,
	  as the version provided with older libstdc++ seems to be broken.

	* common/database.cpp: Use the common header to pick the right
	  stringstream implementation.

	* common/BaseWorld.cpp, server/Persistance.cpp: Removed unused
	  stringstream include.

	* rulesets/Creator.cpp: Added extra debug output.

	* client/define_world.h, client/define_world.cpp, client/CommClient.h:
	  Use CreatorClient to store Creators mind, instead of BaseMind.

	* client/client.cpp,
	  client/ObserverClient.h, client/ObserverClient.cpp,
	  client/CreatorClient.h, client/CommClient.h, client/CommClient.cpp:
	  Modify method names to fit capitalisation conventions.

	* client/CreatorClient.cpp: Implement creation of in-game entities,
	  using creator entity.

	* client/CommClient.cpp: Added correct client side monitoring of
	  creator entity.

	* client/ClientConnection.h, client/ClientConnection.cpp: Added
	  pending method to establish if ops are in the queue. Switched send()
	  method so we only send ops. Add setting of serialno of sent
	  ops, starting with an offset of 512.

	* client/CharacterClient.h: Removed unused member, opFound.

	* client/CharacterClient.cpp: Debugged sendAndWait() method.

Al Riddoch  <alriddoch@zepler.org>
2001-08-16 17:39:42 +00:00
Al Riddoch
dcc3dfa85a * server/server.cpp, server/CommClient.h, client/ClientConnection.h,
tools/cycmd.cpp: Switched to using skstream library for socket
	  comms instead of hand rolled fstream based version.

	* ALL FILES: Fixed use of std namespace throughout all code.

This server is now ISO C++ compliand and builds with gcc 3.0.

Al Riddoch  <alriddoch@zepler.org>
2001-08-14 17:52:50 +00:00
Al Riddoch
73b210279c * client/client.cpp,
client/ObserverClient.cpp, client/ObserverClient.h,
	  client/ClientConnection.cpp, client/ClientConnection.h,
	  client/define_world.cpp, client define_world.h:
	  Started re-coding of python client code in C++.

	* common/accountbase.h:
	  Database class used for simply accessing accounts.

	* common/OOGThing.cpp, common/OOGThing.h, server/Account.h,
	  server/Routing.h:
	  Moved OOGThing class into common as it is not server specific.

	* common/BaseWorld.cpp, common/BaseWorld.h,
	  server/WorldRouter.cpp, server/WorldRouter.h,
	  rulesets/Entity.h, rulesets/Py_World.cpp,
	  rulesets/PythonThingScript.cpp, rulesets/Python_API.h,
	  rulesets/Thing.cpp, rulesets/Thing.h:
	  Added base class for WorldRouter so that code that previously
	  used WorldRouter now used the interface defined by this
	  new class. This means that the code in rulesets no longer
	  has dependencies on code in server, so can be used in the client.

	* server/ExternalMind.cpp, server/ExternalMind.h,
	  rulesets/Character.h, rulesets/Creator.cpp,
	  server/Account.cpp:
	  Moved ExternalMind class into server as it is server specific,
	  so that there is no dependancy on server in rulesets.

	* server/Persistance.cpp. server/Persistance.h,
	  server/Admin.cpp, server/ServerRouting.cpp, server/server.cpp:
	  Moved high level server specific persistance class into
	  server, so there is no dependency on server in common.

	* common/database.cpp, common/database.h, server/Admin.cpp,
	  tools/cydbload.cpp, tools/cyisoload.cpp, tools/cypasswd.cpp:
	  Increases efficiency of some interfaces by passing Object::MapType
	  instead of MapType, when the value must be a map.

	* modules/WorldTime.cpp, modules/WorldTime.h,
	  rulesets/Py_WorldTime.cpp, rulesets/Python_API.cpp:
	  Brought the version of WorldTime in modules up to date, as this is
	  the version now used.

	* rulesets/Character.cpp, server/WorldRouter.cpp, rulesets/Thing.cpp,
	  server/Admin.cpp:
	  Made world objects dictionary private.

	* rulesets/EntityFactory.cpp, rulesets/EntityFactory.h:
	  Change newThing parameters so entity factory does not need to
	  know about WorldRouter.

	* server/Lobby.cpp: Added support for people and rooms attributes
	  of OOG room class.

Al Riddoch  <alriddoch@zepler.org>
2001-08-13 17:22:27 +00:00