* Substantial re-work of object model. Moved many attributes out
of BaseEntity class. Changed WoldRouter so it now handles
objects in terms of Entity, rather than BaseEntity.
* Code cleanups, including removing reduntant includes, and
getting rid of C style comments.
* Fixed the way attributes are handled in Set operations and
when merging from an Atlas::Message::Object. This fixed
problem with setting gender of characters.
* rulesets/Pedestrian.*, rulesets/Movement.*: Re-named
Movement variables to make them clearer. Added in
separate handling for collisions from moving to
target position. Modified collision handling so
objects can slide next to each other.
* rulesets/Thing.cpp, rulesets/Character.cpp: Cleaned up and
rationalised movement code. Much shorter, faster and
more compact than before.
* Made better use of iterators throughout, eliminating unnecessary
lookups, and copying of data.
* Moved all virtual functions out of header files, making
less work for the linker.
* Made more use of const references to avoid the need to copy
data before being able to inspect it.
Al Riddoch <alriddoch@zepler.org>
instead of pointer.
* physics/Vector3D.h: Re-ordered functions to allow correct inlining.
Changed member names to correct convention.
* rulesets/MemMap.cpp,rulesets/MemMap_methods.h: Re-ordered function
to allow inlining, and moved non-inlinable functions into .cpp file.
* Changed new operation initialisation to be done at construction
time instead of imediatly after construction for performance
reasons.
* server/WorldTime.*: Modified member names for convention, and
moved non-inlineable function to .cpp file.
Al Riddoch <alriddoch@zepler.org>
begin with a lower case letter and do not contain _.
* Fixed retrieval of Account from database so that the Account
is now correctly referenced in the server object.
* common/types.h: Changed type name to make them clearer.
* rulesets/Character.h: Moved MovementInfo into its own class
file, and made it a base class, with a Pedestrian super class.
This allows different types of movement handling classes
to be used to handle things that move differently.
Al Riddoch <alriddoch@zepler.org>
script types to be cleanly dropped in.
* Re-work on server and communication related classes to use
references where they are apropriate. Code is now much more
robust.
* Huge cleanup of header files removing redundant includes.
* server/WorldRouter.h: Removed is_object_deleted because it
is broken and not used.
* server/Connection.h: Removed unused disconnect() methods.
* rulesets/Entity.*: Added new in game base class from which
all mind and object classes are derived. This removes
clutter of Thing class from mind classes.
* aiclient/*: Progress with creating AI client for mind handling.
* common/globals.*: Moved some globals out of server specific files.
* rulesets/Makefile.am: Separated rulesets code into 3 almost stand
alone packages; entities, mind and python interface code.
Acorn may well not work now, but I would apreciate it if people could
test the code on their setups. Lots of code has changed, and almost
everything is now cleaner.
Al Riddoch <alriddoch@zepler.org>
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>
deer, with same basic code as pig.
* server/server.cpp: Pass on objects which are not know by the
Atlas::Objects::Decoder straight to the operation handler.
* server/Admin.*: Re-structured the way commands are handled from
admin client, so that apropriate operations are used instead of
always using Set.
* server/Admin.cpp: Added saving world state to the database.
* tools/cycmd.cpp: Updated to use the new admin command semantics.
Added save command.
* common/persistance.*: Added interface for saving world status.
* common/database.*: Added interface for deleting contents of database.
Al Riddoch (alriddoch@zepler.org)
* server/Admin.cpp: Fixed returning of info op from database load
message, and counting of objects loaded from database.
* configure.in: Added readline check for cycmd.
Al Riddoch (alriddoch@zepler.org)
the server database.
* configure.in: Added check for coal (0.2) which is used in map
loader tool.
* common/database.cc: Modified database initialisation functions
so that whether or not the database should be created can be
specified. Added separate function for decoding a database
object into an Atlas::Message::Object. Fix to the way objects
are added to the database which solves some corruption problems.
* common/database.*: Added database iterator class that can be
used to iterate over the database.
* server/Admin.cpp: Added handler for admin load command, which
loads world state from database.
* server/WorldRouter.*: Tweak to allow objects added to world
to have pre-defined id.
Al Riddoch (alriddoch@zepler.org)
when part of entity leaves box to when the whole entity leaves the
box.
* basic.vconf: Make tent use the structure base class.
* client/define_world.py: Add bounding box to tent.
* tools/cycmd.cpp: Added password entry.
* server/Admin.cpp: Added "stat" admin command, to get server
details.
* server/CommClient.h: Fixed include dependencies.
* common/persistance.cpp: Added findAccount() method for systems
without db3.
* rulesets/Thing.cpp: Added sending Apperance and Disappearance
operations to static entities when another entity moves out
of sight.
* rulesets/Character.cpp: Added check to make sure an entity does
not collide with itself.
* rulesets/Thing.cpp: Added check to make sure entity does not move
inside itself.
* rulesets/Py_Location.cpp: Modified python location.copy() method
so that only the position and velocity is copied. This should
bounding boxes getting set on things which should not have them.
* rulesets/Character.cpp: Added return statement to movement
handling, so move ops without arguments are not handled.
Al Riddoch (alriddoch@zepler.org)
sent to the admin account on the server.
* server/WorldRouter.cpp: Removed mechanism for shutting down server
after a fixed run period.
* server/Admin.*: Added reception of Set operation by admin account
` which contain commands from an admin client. Implemented shutdown
command, which sets a flag indicating server shutdown should start.
* server/server.cpp: Added output indicating that shutdown is taking
place, to make it clear that it is not a crash.
Al Riddoch (alriddoch@zepler.org)
* */*: 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)
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
* 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