Commit graph

220 commits

Author SHA1 Message Date
Al Riddoch
291621d9e8 * watchdog/*.c: Corrected C++ style comments in c code.
* */*: Fixed mistake in copyright statement.

	* tools/cypasswd.cpp: Fixed usage message.

	* tools/cycmd.cpp: Added tools for sending administrative commands
	  to server.

	* server/server.cpp: Send terminate instruction to metaserver on
	  server shutdown.

Al Riddoch (alriddoch@zepler.org)
2001-03-16 11:38:14 +00:00
Al Riddoch
f4784cf895 * *: Removed use of "using namespace ..." throughout.
* modules/Location.h: Fixed error in inRange() and finally got rid
	  of the Compiler warning.

	* rulesets/Food.cpp: Fleshed out the cooking code, including how
	  food burns when it is overcooked.

	* rulesets/Stackable.cpp: Implemented divide.

	* common/persistance.*: Added the beginnings of a database backend
	  using the Berkeley db library.

	* server/Account.cpp: Modified addObject, because the attrivutes
	  added by BaseEntity::addObject are not important to accounts.

Al
2001-03-14 12:31:16 +00:00
Al Riddoch
3a5e4e56c0 * Changed oplist to use std::vector. Recoded and re-optimised use
of oplist to take advantage of vector's best performance.

	* Modified OP_SWITCH macros to improve speed, and made it inlinable.

	* Cleaned up python interface code to improve compile and link time.

	* Moved custom operation definitions in one header file per class
	  to improve modularity and compile time.

	* Modified boundingbox handling so it now uses size and median.

	* Added collision check and inbox member function to Vector3D class.

	* Added collision prediction and checking to Location and Vector3D
	  classes.

	* Added collision prediction into MovementInfo class.

	* Modified Thing::operator[] so that static attributes can be handled
	  and added Thing::set() which must be used to modify attributes.

	* Added collision resolution so characters can no longer walk through
	  each other.

	* Moved weight attribute to being static attribute of Thing, so it
	  can be much more easily handled in movement code.

Al
2001-02-26 14:41:10 +00:00
Al Riddoch
4e1527c238 * all files: Re-worked the way debugging is handled to that it no
longer gives warnings.

Al
2001-01-25  Al Riddoch  <ajr@ecs.soton.ac.uk>
2001-02-04 07:08:07 +00:00
Al Riddoch
e7eb28366c * all file: Added copyright statement
Al
2001-01-26 16:38:23 +00:00
Al Riddoch
959ba0128d 2001-01-24 Al Riddoch <ajr@ecs.soton.ac.uk>
* Throughout entire code base:
	  Removed all obsolete code and commented out code relating to porting
	  from python. Removed interim data types bad_type and None. Added
	  const throughout where apropriate. Change various flags to bool
	  type. Removed unused members.

	* Added TODO list.

Al
2001-01-24 15:45:58 +00:00
Al Riddoch
f92ff1cb46 * Massive code cleaning efforts, removing dead code, trimming reviewing
and shifting code around to optimise it.

	* Heavy use of inlining to improve code performance.

	* Added global exception handler to catch exceptions while processing
	  operations.

Al
2000-12-12 13:10:17 +00:00
Al Riddoch
4343c8d383 * Removed lots of extraneous debugging output, and turned the rest
off using debug flags.

	* Added halt_time, which is number of seconds server should run before
	  it exits.

	* Cleaned a bunch if the remaining memory leaks.

	* Cleaned up the way time is handled.

	* More tweaks to Python code and API to get Acorn working.

	* Inlined some methods into the class definitions, for performance.

	* Updated movement code to sort out setting mode properlly, and
	  deal with stuttering NPC movement.

This is quite a big commit, and most of Acorn now works. Performance seems
to be good too.
2000-12-11 13:06:12 +00:00
Al Riddoch
21b18875f6 * Started working on sorting out memory leaks.
* Implemented python function to deal with not being able to check
	  type of python objects implemented in C.

	* Added method to thing for extracting location data from a
	  Message::Object

	* More work on python references to improve leakage.

	* Added flag so that python Operation object can own
	  the operation they point to, and thus delete it in dealloc().

	* Implemented find_by_location() and find_by_type() as required in
	  MemMap, and corresponding python interface.

	* Put in temporary work around to deal with the fact that a mind
	  does not know its name. Currently the mind is not able to
	  discover any of its bodies attributes, and I am not sure how
	  to solve this.

	* Fixed Location and Vector3D so they use operator bool() to detect
	  whether they are set.

	* Fixed bugs in getting parent from Location in python which caused
	  segfaults.

	* Imported all the basic ruleset entity python scripts.


Goals now work to some extent, though nothing moves around still. The main
priority is to work out how minds inherit the attributes of their
bodies, and keep them up to date. aloril?

Al
2000-12-04 20:08:21 +00:00
Al Riddoch
222786df66 * Added support for decoding Sound operations in BaseMind.
* Added Talk operation throughout operation handling code.

	* Added basic WorldTime class together with python wrapper.
	  Can fill in functionality as required.

	* Put debugging back in cos I still need it.

Python mind code now gets talk ops. Some tweaking still to go.
2000-11-29 15:19:36 +00:00
Al Riddoch
e156a2b6f1 * Disabled some of the excessive debugging messages.
* Implemented getting and setting of to and from in operations
	  using map to lookup what the mind knows about the entities
	  in question. This involved adding an extra field to the
	  RootOperationObject structure to store to and from entities.

	* Sorted out base_init() python member so __init__() of all
	  classes in inheritance tree are called.

	* Started work on set_kw() replacement.

	* Added python module finding mechanism which is required to deal
	  with rulesets correctly. I am not convinced this works.

Al
2000-11-24 01:41:06 +00:00
Al Riddoch
971a6df68d * Bug fix that meant that updates to MemMap object caused segfault.
Al
2000-11-21 22:15:46 +00:00
Al Riddoch
166696fab6 * Fixed setting location of newly created objects
* Fixed setting weight as float on default Thing.

	* Added more support for mode and face in movement code.

	* Cleaned up the debugging output code.

	* Fixed looking, and added support for contains attribute

Al
2000-11-10 20:41:24 +00:00
Al Riddoch
fc4ab2b5fe * Removed two conflicting "WorldRouter * world" members from
class hierarchy.

	* Added setting of refno to operations, so client can tell
	  what they apply to.

	* Sorted out initialisation of python path.

	* Added loading of admin account, allowing admin client to communicate.

	* Made sure all attributes of created objects are set, so that
	  character gender works.

	* Added face attribute to Thing, to indicate what direction it faces!

	* Modified error operation so it complies with traditional format

Al
2000-11-10 00:57:34 +00:00
Al Riddoch
f3f1e4fd39 * More movement fixes, including lots of clearer debugging output.
Still does not seem to correctly handle moves which don't
	  specify direction.

Al
2000-11-05 16:08:17 +00:00
Al Riddoch
bd9aecbcfa Modified all internal operation handling functions so they now return a list
of Operations instead of just one. Debugged movement, which now works, but
does not yet stop when it reaches the destination.

Al
2000-08-31 21:48:46 +00:00
Al Riddoch
d6a56f6764 The basic world model now works. Operation get routed effectively between
objects in the world, mind and external minds. You can now log in, create
a character, and witness other operations in the world through receiving
sight operations.

Al
2000-08-26 15:11:24 +00:00
Al Riddoch
604d22f80d Lots more code added, and WorldRouter can now send operations around
Now adding character body and mind code so mind and body abstraction can
work and communication between client and server character entity can
work. The code is not currently in any particular state, but I have not
commited for a while, so I am doing it now for security.
Al
2000-08-25 17:54:30 +00:00
Al Riddoch
2af3db08b1 Can now connect, login or create account, and create a character, which is
then added to the world. Socket code has been tweaked so it now handles
client disconnection a little better.

Al
2000-08-21 11:31:18 +00:00
Al Riddoch
52e69e1137 Account related files required for account management
Al
2000-08-19 16:44:19 +00:00