All IG code should use the interface of LocatedEntity when dealing
with any entity, rather than sometimes requiring Entity. Add virtual
functions to the interface where required, and modify all other interfaces
to stop them using Entity. This makes the code way cleaner, and much better
de-coupled.
* tests/Entitytest.cpp: Update so that it no longer expects the
contains property to be set by default.
* tests/EntityReftest.cpp: Fix tests so that when calling destroy
on an Entity, it's hierarchy is as expected.
* tests/Areatest.cpp, tests/Charactertest.cpp, tests/Creatortest.cpp,
tests/Entitytest.cpp, tests/Foodtest.cpp, tests/Linetest.cpp,
tests/Planttest.cpp, tests/Stackabletest.cpp, tests/Structuretest.cpp,
tests/Thingtest.cpp, tests/Worldtest.cpp: Remove mass from the
attribute names assumed in the entity tests.
* tests/Areatest.cpp, tests/Charactertest.cpp, tests/Creatortest.cpp,
tests/Entitytest.cpp, tests/Foodtest.cpp, tests/Linetest.cpp,
tests/Planttest.cpp, tests/Stackabletest.cpp,
tests/Structuretest.cpp, tests/Thingtest.cpp,
tests/Worldtest.cpp: Remove the STATUS and NAME properties
from those expected to be on all entities.
* tests/ThingupdatePropertiestest.cpp: Comment out all the code
as it depends on the NAME property being hard coded.
* rulesets/Entity.cpp: Initialise motion pointer to zero, so
so tests know whether it is there.
* rulesets/Thing.cpp: Don't attempt to do a movement update if
LOC is zero. It is a sign something not quite right is going on.
* tests/IGEntityExerciser.h: Check motion is not null before using
it.
* rulesets/Entity.h, rulesets/Entity.cpp: Add getProperty method
which allows the property object of an attribute to be accessed.
* tests/IGEntityExerciser.h, tests/Entitytest.cpp: Add tests for
getProperty() basic functionality.
* common/inheritance.cpp, common/inheritance.h: Re-introduce
opEnumerate function as its useful for scripts, and tests.
* tests/inheritancetest.cpp: Add necessary includes to pick up
operation class numbers.
* tests/Areatest.cpp, tests/BaseEntitytest.cpp,
tests/Charactertest.cpp, tests/Creatortest.cpp,
tests/EntityExerciser.h, tests/Entitytest.cpp,
tests/Foodtest.cpp, tests/Linetest.cpp, tests/OOGThingtest.cpp,
tests/Planttest.cpp, tests/Stackabletest.cpp,
tests/Structuretest.cpp, tests/Thingtest.cpp, tests/Worldtest.cpp:
Remove all uses of the removed op subscription mechanism.
* tests/Charactertest.cpp, tests/Creatortest.cpp:
Update tests to check for all static attributes.
* tests/Entitytest.cpp, tests/Structuretest.cpp,
tests/Thingtest.cpp: Update the number of attributes
entities should have, now that LOC may not be present.
* tests/Areatest.cpp, tests/Entitytest.cpp, tests/Foodtest.cpp,
tests/Linetest.cpp, tests/Planttest.cpp, tests/Stackabletest.cpp,
tests/Structuretest.cpp, tests/Thingtest.cpp, tests/Worldtest.cpp,
tests/inheritancetest.cpp, tests/utilitytest.cpp, tools/cycmd.cpp,
tools/cyconvertrules.cpp, tools/cydbload.cpp, tools/cyisoload.cpp,
tools/cyloadrules.cpp, tools/cypasswd.cpp: Convert code to using
Atlas Message typedefs as found in Atlas-C++ 0.6 to aid
conversion later.
* tests/allOperations.h: Add a header which pulls in headers for
every type of operation.
* tests/BaseEntitytest.cpp, tests/Entitytest.cpp,
tests/OOGThingtest.cpp: Make use of the allOperations header,
and common IG test thoroughly.
* tests/EntityExerciser.h: Make entity reference protected for use
by other exercisers.
* tests/IGEntityExerciser.h, tests/Entitytest.cpp: Implement
and use the attribute testing code.
* common/BaseEntity.cpp: Add in the unimplemented subscribe
method.
* tests/EntityExerciser.h: Add new functionality to properlly
exercise the dispatch/subscription mechansim.
* tests/BaseEntitytest.cpp, tests/OOGThingtest.cpp: Update tests
to use new EntityExerciser functionality.
* tests/IGEntityExerciser.h, tests/Entitytest.cpp: New test for
testing the IG Entity base class.