Commit graph

276 commits

Author SHA1 Message Date
Al Riddoch
7a4b45a702 * Fixed and changes to code so that operations created in python
mind code are delivered as required.

Only 6 days until I promised I would have this stuff working. Lets see how
whether I can keep my promises.
Al
2000-11-26 19:58: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
b295f6f1ec * Added oplist python interface, and implemented returning of
operations from python code.

Al
2000-11-23 14:32:00 +00:00
Al Riddoch
f3d553368b * Filled out the python common.const module will all its values.
* Added code required to create an operation from with python.

	* Modified the Thing python interface so that python objects
	  that Atlas doesn't want to know about are stored in a normal
	  attributes list.

Al
2000-11-21 19:24:29 +00:00
Al Riddoch
c72c97b351 * Filled in BaseMind functionality so it now keeps memory map up to date. Added necessary features to Python/C++ interface
for sight operations to be passed onto python code after processing
	  in C++. Added new type of op switch to deal with operations
	  in the argument of a sight/sound operation.

	* Added features to Opeation python interface for args to be
	  accessed as if operation is a sequence object.

	* Implemented python API for C++ memory map class.

	* Added utility function which uses code borrowed from Atlas-C++
	  to convert a Message::Object into something from the Objects
	  code.

Al
2000-11-19 20:18:24 +00:00
Al Riddoch
f2928e6310 * Moved some of BaseMind functionality in a python class and
added the necessary interface code.

	* Initial port of MemMap class from python to C++, together with
	  python interface. Hopefully maintenance of MemMap can be kept
	  in C++ for speed if possible.

Al
2000-11-19 00:02:29 +00:00
Al Riddoch
24bd5394fb * Sorted out error handling from python code, and no-longer treat
no method as an error.

	* Got python interface code to the point that python classes can now
	  access the C++ attributes of a Thing.

	* Split the python interface code into separate files depending
	  on the type of C++ class the code relates to.

Al
2000-11-17 00:18:32 +00:00
Al Riddoch
6bb82c3197 * Added more Python/C API code. Basic framework now exists for
creating and manipulating Operations in the python code.

Al
2000-11-14 15:52:10 +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
3316e1e1cb * Added more refno capabilities
* Fixed some operation instantiation bugs

	* Added full support for creator entity. Admin client can now populate
	  the world with items and NPCs.

Al
2000-11-10 03:29:00 +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
882bb2fc2b * Added enough python interface to load a simple module, get the
class from it, instantiate that class, and call operation methods
	  from it. Still to be implented is the Atlas-C++ API for embedded
	  python.

Al
2000-11-08 01:02:02 +00:00
Al Riddoch
943aafe3c1 * Fixed movement code so that id of object to be moved is correctly
present. uclient now sees movement. Woohoo!

Al
2000-11-07 23:30:49 +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
a8e31c364a * Improved debugging output in movement code, and fixed some critical
bugs which meant that movement was not working correctly.

Al
2000-11-04 18:44:43 +00:00
Al Riddoch
550beb9cc8 * Modified legacy location code so it is now activated by a single
#define

Al
2000-11-03 14:44:05 +00:00
Al Riddoch
3ba5e76833 * Added temporary support for old Atlas style location object
in entity to move operations. This allows uclient to work for
	  now until it moves over to the latest Atlas spec.
2000-11-02 23:47:19 +00:00
Al Riddoch
6b7b2c18d6 * Fixed some attributes of in-game object
* Added temporary support for old style Atlas location so we still
	  work with uclient.
2000-11-02 20:38:18 +00:00
Al Riddoch
6e203f465a * Fixed it so that server does not exit if client negotiation fails.
* Cleaned up detection of disconnected client

	* Re-wrote thing factory so it is now a static object instance rather
	  that a static method, and added the beginnings of support for
	  python "Thing" classes.
2000-11-02 18:59:58 +00:00
Al Riddoch
6326fa76f1 Added handling of client disconnection 2000-10-24 17:44:50 +00:00
Al Riddoch
c67a08d027 * Fixed movement code which now works.
* Fixed set operation, and added attributes map to Thing.

	* Started adding Python interface code.

        * Starting changelog from initial attempt to port cyphesis into C++.
2000-10-24 12:50:22 +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
f273b17336 Thanks to karsten for sorting out my auto* issues, we can now detect where
atlas is correctly.

Implemented most of the mind<->body interaction required for Character(),
and most of the operation handling for Thing(). Entities should now be
able to do stuff in the world.

Left to do, I need to work out how to implement the set operation,
and then work out a mechanism for returning multiple operation from
a function.

Al
2000-08-30 17:49:11 +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
8266592142 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:51:43 +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