Commit graph

54 commits

Author SHA1 Message Date
Erik Ogenvik
514d0812a0 Added basic awareness for navigation.
"Awareness" refers to an entity's view of the surrounding world with
regards to how the entity could navigate. We use Recast/Detour to build
a navmesh for the entity.

However, since each world can have many NPCs, each one with their own
mind, we don't want to keep a complete navmesh for each single mind.
This will quickly become expensive. Therefore we want to share
awarenesses between multiple entities of the same type. So, for example,
all fishes handled by the same ai client will share one single awareness
of the world.
This to some degree involves some cheating, since AI minds now might get
knowledge of the world they otherwise wouldn't have. We consider this to
not be such a big issue. If this is unacceptable for some worlds these
should then disable awareness sharing and take the resource hit.
2016-03-19 23:05:13 +01:00
Erik Ogenvik
f8932858fd Enable aiclient.
The idea is that the aiclient runs in a separate process and handles all
AI functionality.
This is done by having a "possession" client which recieves possession
requests from the server, and spawns new AI clients for each request.
2015-05-24 11:25:06 +02:00
Alistair Riddoch
53a2e90507 Add a note about the socket dir hack 2012-12-04 22:37:49 +00:00
Erik Ogenvik
cdbc2dbdeb Make sure socket directory exists.
This fixes issues with building and installing in Hammer.
2012-12-03 22:50:27 +01:00
Alistair Riddoch
a4b89f0db0 Add support for compiling in C++11 mode 2012-11-30 00:17:28 +00:00
Al Riddoch
76dea9d8d3 2009-03-10 Al Riddoch <alriddoch@googlemail.com>
* scripts/extract_revision.sh: A new script to extract a build ID
	  revision number differently depending on what source control
	  is being used.

	* Makefile.am: Add the new script to dist.

	* server/Makefile.am: Use the new script, and add the generated
	  buildid.cpp to the distributed sources.
2009-03-10 17:43:05 +00:00
Al Riddoch
fdc3590418 2008-09-16 Al Riddoch <alriddoch@googlemail.com>
* Doxyfile, Makefile.am, configure.ac, index.dox,
	  data/architecture.dox, dox/Makefile.am, dox/architecture.dox,
	  dox/index.dox: Move the non-embedded documentation into its
	  own directory to keep the root a bit cleaner.
2008-09-16 22:18:39 +00:00
Al Riddoch
18501a7e46 2008-06-07 Al Riddoch <alriddoch@googlemail.com>
* Makefile.am, scripts/cyphesis-setup.sh: Add the setup script to the
	  build.
2008-06-07 13:54:43 +00:00
Al Riddoch
b4ee1fdbd7 2008-06-04 Al Riddoch <alriddoch@googlemail.com>
* Makefile.am, libraries/Makefile.am: Fix the recursive rules
	  so a complete distribution package is built.
2008-06-04 18:02:37 +00:00
Al Riddoch
0a87aab96c 2007-07-07 Al Riddoch <alriddoch@zepler.org>
* Makefile.am, scripts/cyphesis-setup.sh: Get the script for setting
	  up database working fairly smoothly.
2007-07-07 16:21:12 +00:00
Al Riddoch
23090634f6 2007-03-08 Al Riddoch <alriddoch@zepler.org>
* Makefile.am: Remove GNU echo isms.

	* rulesets/basic/mind/goals/common/move.py: Modify the pick_up_focus()
	  goal so it clears the focus. gather() now gathers things
	  indefinitely.

	* rulesets/mason/define_world.py: Add a test script for warriors to
	  gather stuff.
2007-03-08 14:14:00 +00:00
Al Riddoch
5ea10f9ded 2007-02-17 Al Riddoch <alriddoch@zepler.org>
* scripts/cyphesis-setup.sh: Add new untested script that automates
	  setting up a database account for cyphesis.

	* Makefile.am: Add a message to the end of the install output
	  informing that the setup script needs to be run to sort out
	  the database access.
2007-02-17 20:16:28 +00:00
Al Riddoch
06c98aa5bd 2006-12-27 Al Riddoch <alriddoch@zepler.org>
* Makefile.am: Include buildid script in the distributed sources.

	* tests/consttest.cpp: Remove buildTime and buildDate from the unit
	  test as they are now defined in server/buildid.cpp.
2006-12-27 11:19:19 +00:00
Al Riddoch
09bbd448af 2006-08-02 Al Riddoch <alriddoch@zepler.org>
* scripts/compile_python.py: Add a new script which compiles python
	  files.

	* cyphesis.spec.in: Modify spec to compile installed python
	  scripts, and remove original source for runtime performance
	  and compact package size.
2006-08-02 13:50:05 +00:00
Al Riddoch
974588fb71 2006-08-02 Al Riddoch <alriddoch@zepler.org>
* Doxyfile-python: Add a new doxyfile for building separate docs
	  for the python scripts.
2006-08-02 13:06:58 +00:00
Al Riddoch
852bb1d643 2006-06-30 Al Riddoch <alriddoch@zepler.org>
* FIXME, Makefile.am: Add new FIXME file which documents FIXMEs in
	  the code.

	* server/EntityFactory.cpp: Remove the terrain feature classes
	  implemented as hard coded classes.

	* data/basic.xml: Add the terrain feature classes as soft data
	  defined classes.
2006-06-30 15:11:57 +00:00
Al Riddoch
464f12f78d 2006-01-18 Al Riddoch <alriddoch@zepler.org>
* Makefile.am: Remove TODO.mason, as it contained nothing of note.
2006-01-19 00:09:37 +00:00
Al Riddoch
cf8f490357 2005-06-12 Al Riddoch <alriddoch@zepler.org>
* rulesets/Pedestrian.cpp: Remove some debug output.

	* server/WorldRouter.cpp: Tweak the order of dispatch.

	* cyphesis.spec.in: Clean up the dependencies in the spec.

	* configure.ac: Increment version to 0.3.11.

	* NEWS: Update news item.

	* Makefile.am: Fix rule that tweaks temp dir prefix so it works
	  when destination directory is overriden.

	* Release 0.3.11
2005-06-12 13:09:08 +00:00
Al Riddoch
40cc7f6178 2005-06-07 Al Riddoch <alriddoch@zepler.org>
* Makefile.am: Fixup permissions on the temp directory used for
	  unix sockets.
2005-06-07 15:30:30 +00:00
Al Riddoch
fe78372f72 2004-09-28 Al Riddoch <alriddoch@zepler.org>
* Add manual pages to the build.

	* tools/cyloadrules.cpp: Fix usage information to be clearer.
2004-09-28 19:24:15 +00:00
Al Riddoch
1483ef472d 2004-08-05 Al Riddoch <alriddoch@zepler.org>
* server/WorldRouter.cpp, server/WorldRouter.h: Code formatting
	  cleanups, and some improved comments.
2004-08-05 12:29:11 +00:00
Al Riddoch
a79b9d423c 2004-07-30 Al Riddoch <alriddoch@zepler.org>
* Makefile.am, index.dox, Doxyfile: Add support for doxygen.

	* server/ServerRouting.cpp, server/ServerRouting.h,
	  server/ServerRouting_methods.h: Document a class a bit.
2004-07-30 22:36:47 +00:00
Al Riddoch
a9a01e596d 2004-07-21 Al Riddoch <alriddoch@zepler.org>
* Clean up files for distribution.
2004-07-21 18:11:33 +00:00
Al Riddoch
91c9437c81 2004-07-12 Al Riddoch <alriddoch@zepler.org>
* common/Database.cpp, common/Database.h: Add capability to specify
	  extra columns in generic Atlas database tables. Query the results
	  columns more robustly. Add a ruleset name column to the rules
	  table.

	* server/EntityFactory.cpp: Re-write rule loader to handle new
	  format rules. Tighten up strictness of rule data. It is no
	  longer possible to specify defaults for location in the rule.

	* tools/cyconvertrules.cpp: Ensure that the playable flag is
	  copied across when converting rules.

	* tools/cyloadrules.cpp: Adapt to load the new format rules,
	  including handling the ruleset name column.
2004-07-12 10:58:20 +00:00
Al Riddoch
690da937b0 2004-05-23 Al Riddoch <alriddoch@zepler.org>
* tools/cywatchdog.cpp, tools/cyctrl.cpp, tools/cycmd.cpp,
	  server/CommUnixListener.cpp, client/ClientConnection.cpp,
	  Use var/tmp for temporary files and sockets.

	* Give sty type a default bbox, rather than using instance
	  attributes.

	* Clean up data files in the top level Makefile.am.

	* Remove some unused files from the distribution.
2004-05-23 00:28:07 +00:00
Al Riddoch
4e1246f393 2003-11-21 Al Riddoch <alriddoch@zepler.org>
* Ensure var directory for unix socket is available at install time.
2003-11-21 01:44:25 +00:00
Al Riddoch
a7e72848db 2003-09-09 Al Riddoch <alriddoch@zepler.org>
* tests/logtest.cpp, tests/EntityExerciser.h,
	  tests/BaseEntitytest.cpp: Add some unit tests. Lots more to
	  come.
2003-09-09 01:58:16 +00:00
Al Riddoch
31b9eb4af2 Fixed up rpm spec. 2002-10-07 00:21:18 +00:00
Al Riddoch
cb64e81540 2002-10-05 Al Riddoch <alriddoch@zepler.org>
* tools/cyphesis-setup: Clean up syntax.

	* cyphesis.init, cyphesis.sysconfig, cyphesis.spec.in:
	  Init script and sysconfig for rpm and other packaging.
2002-10-05 14:44:21 +00:00
Al Riddoch
7de9d40633 2002-09-14 Al Riddoch <alriddoch@zepler.org>
* server/Admin.cpp: Cleaned up an unimplemented feature, and added it
	  to the TODO.

	* server/Account.h, server/Account.cpp: Removed unused obsolete code for
	  checking character types.

	* rulesets/Python_API.cpp: Add new globals module to python API which exposes
	  core settings to the python scripts.

	* rulesets/basic/hooks/ruleset_import_hooks.py: Abolish autogeneration of
	  this file using new globals module in the python API.

	* configure.in, cyphesis-config.in: Expose conf and data dirs.

	* tools/cyphesis-setup: New script to set the server up.

	* tools/cyconfig.cpp: New tool to make persistant changes to the server config.
2002-09-14 18:46:34 +00:00
Al Riddoch
65b6539b49 2002-09-13 Al Riddoch <alriddoch@zepler.org>
* server/ServerRouting.cpp, common/const.h, common/const.cpp: Put all
	  the build dependant code in const.cpp, so no other file is
	  dependant on config.h.

	* Add a cyphesis-config script, so other programs can tell where its
	  installed.

	* Rework many of the build files so they are cleaner.

	* Fix the readline C++ sanity check.
2002-09-13 10:23:31 +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
c657678a96 2002-06-11 Al Riddoch <alriddoch@zepler.org>
* tools/Makefile.am, server/Makefile.am, client/Makefile.am,
	  autogen.sh, configure.in: Removed some overcomplicated and
	  unrealistic build options. Sort out all the library checking
	  to use the macros.

	* Makefile.am: Reinclude acorn maps for packaging as Acorn.

	* cyphesis.spec.in: Bring rpm spec up to date, with packages
	  for server, libs and game data.

	* rulesets/Makefile.am: Fixed distribution of ruleset hooks .in file.
2002-06-11 11:30:45 +00:00
Al Riddoch
1db61173cc 2002-06-10 Al Riddoch <alriddoch@zepler.org>
* Write rpm spec dividing stuff up into server package, lib
	  packages, and game packages. Clean up configure, and use autoconf
	  to process ruleset_import_hooks.py.
2002-06-10 22:03:33 +00:00
Al Riddoch
9633f7f5fd 2002-06-10 Al Riddoch <alriddoch@zepler.org>
* Makefile.am, cyphesis.spec.in: Clean up install process, and update
	  rpm spec.
2002-06-10 00:44:59 +00:00
Al Riddoch
716cb0f8de 2002-04-25 Al Riddoch <alriddoch@zepler.org>
* rulesets/Entity.cpp, rulesets/Entity.h, rulesets/Character.cpp,
	  rulesets/Character.h, rulesets/Thing.cpp, rulesets/Food.cpp:
	  Renamed weight member as mass, and use this name in Atlas,
	  as this is a better convention, and has already been adopted in
	  stage.

	* Switched python code to using mass instead of weight, as it is
	  a more accurate term.

	* common/globals.cpp, common/globals.h, tools/cyloadrules.cpp:
	  Put admin modifiable config in etc instead of share directory.

	* Don't build cycmd if readline is not available. Untested, and
	  probably nasty.
2002-04-26 08:08:48 +00:00
Al Riddoch
83c53f06c6 2002-03-11 Al Riddoch <alriddoch@zepler.org>
* server/WorldRouter.cpp: Eliminate unnecessary call to opEnumerate()
	  and enhance debugging output.

	* server/Player.cpp: Correct the use of string.compare() in older
	  versions of libstdc++.

	* common/types.h: Added enumeration for other operations, not
	  handled by the core, but considered valid. Added new type
	  for storing mapping between operation parents and their
	  enumerated type.

	* common/op_switch.h: Separate handling of operations known to
	  be invalid from operations which are valid, but not explicitly
	  added to the core.

	* common/inheritance.h, common/inheritance.cpp, common/custom.cpp:
	  Provide global operation mapping where enumeration of operations
	  can be looked up. Install all types handled by the core, and
	  types known to be used in scripts.

	* common/BaseEntity.h, common/BaseEntity.cpp: Add object specific
	  operation mapping where operation types each object is subscribed
	  to can be enumerated, and others are rejected. Add mechanism
	  so that objects can add to the mapping, this subscribing to
	  operations. This makes enumerating operations much cheaper, and
	  eliminates the overhead of handling ops an object has no interest
	  in.

	* rulesets/Thing.h, rulesets/Thing.cpp: Add mechanism so scripts
	  can subscribe to operations.

	* rulesets/Character.h, rulesets/Character.cpp:
	  Add subscription mechanism for ops going to and from
	  the mind.

	* rulesets/BaseMind.h, rulesets/BaseMind.cpp:
	  Add subscription mechanism for sight and sound perception
	  operations sub operations, and provide an interface to it
	  for scripts.

	* server/Connection.cpp, server/Admin.cpp, server/Account.cpp,
	  rulesets/World.cpp, rulesets/World.h, rulesets/Thing.cpp,
	  rulesets/Stackable.cpp, rulesets/Plant.cpp, rulesets/Food.cpp,
	  rulesets/Character.cpp, rulesets/BaseMind.cpp:
	  Add subscriptions to operations for all core base classes.

	* rulesets/Python_API.cpp: When script is created, go through
	  methods, and subscribe to the operations which are handled by
	  them.

	* rulesets/Character.cpp: When calculating orientation of a walking
	  character, assume it is standing upright.

	* physics/Vector3D.h: Add versions of mag() and distance() which
	  omit the square root calculations, so that when their values
	  are only used for comparison, the expensive square root
	  calculations can be ommited. Add new version of collision
	  and range checking functions which provide the optimal
	  interface to the application. Add versions of methods which
	  modify this rather than creating a new operation to eliminate
	  wasted copies.

	* physics/Quaternion.cpp: Make use of faster interface provided
	  by Vector3D.

	* physics/BBox.h: Add new version of collision checking function
	  which provides optimal interface to the application.

	* modules/Location.h, modules/Location.cpp: Add new functions
	  to optimally calculate the distance between any two entities.

	* modules/Location.h: Re-write collision and range functions to
	  make much more optimal use of Vector3D, BBox and distance
	  functionality.

	* rulesets/Py_Vector3D.cpp, rulesets/Pedestrian.cpp,
	  rulesets/Movement.cpp, rulesets/Entity.cpp, rulesets/Character.cpp:
	  Eliminate implicit copies from vector arithmetic.

	* rulesets/Pedestrian.cpp, rulesets/MemMap.cpp, common/const.h:
	  Re-write code which uses magnitude of vectors to use the square
	  of the magnitude instead, as it is much cheaper to calculate.
2002-03-11 18:24:19 +00:00
Al Riddoch
336164884e 2002-01-28 Al Riddoch <alriddoch@zepler.org>
* client/ClientConnection.cpp, client/CommClient.h,
	  common/globals.cpp, common/globals.h, server/server.cpp,
	  tools/cycmd.cpp:
	  Make the TCP port number a global config setting, and
	  ensure it is used everwhere, so it can be overriden, and all
	  clients and tools will use it. Modify behavoir so that any
	  settings overridden on the command line are made semi-permanent
	  in the users home directory, making it easier for users to run
	  two versions on one machine at the same time.

	* common/Database.cpp, common/Database.h: Remove obsolete iterator
	  code. Add a method to clear a given database table.

	* server/Persistance.h, tools/cyloadrules.cpp:
	  Automate loading of the ruleset given in the config file, and
	  the rulesets it depends on, ensuring that the rules table
	  is cleared first.
2002-01-28 11:40:10 +00:00
Al Riddoch
90ec47ab1e * physics/BBox.h, rulesets/Py_BBox.h, rulesets/Py_BBox.cpp:
Added direct support for new format bounding boxes.

	* modules/Location.cpp, modules/Location.h, physics/Vector3D.h,
	  rulesets/Character.cpp, rulesets/Creator.cpp, rulesets/Entity.cpp,
	  rulesets/Movement.cpp, rulesets/Plant.cpp, rulesets/Py_Location.cpp:
	  Switched over to using new format bounding boxes, and re-wrote
	  collision code for this format, making it clearer and more
	  efficient at the same time.

Al Riddoch  <alriddoch@zepler.org>
2001-11-30 14:35:59 +00:00
Al Riddoch
2bccfe6707 * Release cyphesis 0.1.
Al Riddoch  <alriddoch@zepler.org>
2001-11-11 16:27:47 +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
c92c420e0c * watchdog/watchdog.c: Deprecated non-working watchdog program.
* tools/cypasswd.cpp, tools/cycmd.cpp, client/ObserverClient.cpp,
	  common/accountbase.h Added database delete method, which closes
	  the database, and make sure it is used.

	* server/server.cpp: Moved the point where the server drops to
	  a daemon, as doing this after the db was open seems to corrupt
	  the db.

	* common/database.cpp: If a db is opened but not created, then it
	  is read only.

Al Riddoch  <alriddoch@zepler.org>
2001-10-07 01:08:25 +00:00
Al Riddoch
460229d6ab Reorganised and update TODO 2001-10-03 21:19:29 +00:00
Al Riddoch
2b8cfb28f8 * rulesets/acorn/world/objects/plants/Tree.py,
rulesets/acorn/world/objects/plants/Oak.py,
	  rulesets/acorn/world/objects/plants/AppleTree.py:
	  Modified tree code so mode is set to fruit if they are carrying
	  any fruit.

	 * Added xml entity maps for agrilan.

Al Riddoch  <alriddoch@zepler.org>
2001-06-18 18:40:12 +00:00
Al Riddoch
8bea85cdfc * Fixed up build files to install in a conformant way.
* acorn.vconf: Added in new building classes which set up
	  wall objects for collision purposes. Building now seem to
	  work.

	* common/database.cpp, common/database.h, common/globals.cpp,
	  common/globals.h, rulesets/Python_API.cpp, server/server.cpp,
	  watchdog/control.c, watchdog/watchdog.c: Implemented
	  correct way of getting installation directories from
	  autoconf.

	* rulesets/Movement.h, rulesets/Movement.cpp, rulesets/Pedestrian.h,
	  rulesets/Pedestrian.cpp: Fixed collisions with the solid
	  wall of a structure.

	* rulesets/Thing.cpp: Modified setup operation so that a sight
	  of create operation is always generated even if setup is
	  overloaded.

	* Many fixes from Anders Petersson to get the build working under
	  debian.

Al Riddoch  <alriddoch@zepler.org>
2001-06-16 14:19:00 +00:00
Al Riddoch
d74d7117e5 * server/server.cpp, server/CommClient.h, server/Account.h,
server/Account.cpp, rulesets/Entity.h, rulesets/Entity.cpp,
	  rulesets/Character.h, rulesets/Character.cpp, rulesets/BaseMind.h,
	  rulesets/BaseMind.cpp, common/types.h, common/operations.h,
	  common/op_switch.h, common/BaseEntity.h, common/BaseEntity.cpp:
	  Added support for imaginary operations used in a similar way
	  to emoting.

	* server/WorldTime.h: Added update method so underlying DataTime
	  can be updated.

	* server/ServerRouting.h, server/Lobby.h, server/Lobby.cpp
	  server/ServerRouting.cpp, server/Connection.h,
	  server/Connection.cpp, server/Account.h, server/Account.cpp: Added
	  a lobby object which handles lobby chat. Essentially it stores
	  a list of accounts and allows operations to be sent or broadcast
	  to other accounts.

	* rulesets/Py_WorldTime.cpp: Added python is_now() method because
	  using comparison does not appear to work.

	* rulesets/BaseMind.cpp: Added updating of minds WorldTime each
	  time an operation is received.

	* modules/DateTime.h: Added operator << so DateTime can be sent
	  to cout.

	* common/types.h: Added types for storing accounts in Lobby.

Al Riddoch  <alriddoch@zepler.org>
2001-05-29 11:16:09 +00:00
Al Riddoch
81199e0049 * common/BaseEntity.h: Moved many of the extra parts of this file
into individual files for each bit.

	* aiclient/*: Added client mode cyphesis for handling AI in another
	  server. Not yet operational.

	* */*: Moved large and virtual functions out of headers to reduce
	  multiple instance problems, keep the binary size down, and speed
	  up compilation.

	* server/Admin.h/cpp: Added Get operation handling, thus dividing
	  admin commands into two classes, one which does not alter
	  the state of the server, the other which does. Added query
	  command which allows admin client to retrive arbitrary objects
	  from server id dictionary.

Al Riddoch  <alriddoch@zepler.org>
2001-04-05 18:01:12 +00:00
Al Riddoch
dcb7296a61 * common/persistance.*: Added restricted mode set by config file,
which prevents users from being able to create accounts.

	* server/ServerRouting.cpp: Added restricted flag to the
	  server Object passed to client as result of a Get operation, so
	  the client can report it to the user.

	* tools/cypasswd.cpp: Added tool to administrate password database
	  table.

	* server/server.*: Added exit flag to ensure that of exit is requested
	  database is shutdown properlly.

	* server/WorldRouter.cpp: Maintenance shutdown is now done cleanly.

	* server/Connection.cpp: Added code to handle accounts using the
	  persistance system. Accounts would now be handled by the
	  database if the persistance code was complete.

	* common/persistance.*: More work on database code.

Al
2001-03-15 11:41:34 +00:00
Al Riddoch
991d6da9b6 * Added watchdog daemon which handles maintaining a running server
automatically. Work in progress.

Al
2001-02-05 22:17:43 +00:00
Al Riddoch
3f22686e8a Fixed tab errors 2001-01-24 20:31:09 +00:00