00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #if !defined(__INCLUDE_PlacementObjecth_INCLUDE__)
00022 #define __INCLUDE_PlacementObjecth_INCLUDE__
00023
00024 #include <placement/PlacementType.h>
00025
00026 class XMLNode;
00027 class PlacementObject
00028 {
00029 public:
00030 enum Type
00031 {
00032 eModel,
00033 eTarget,
00034 eGroup,
00035 eRandom,
00036 eTank,
00037 eShadow,
00038 eHeight,
00039 eNone
00040 };
00041
00042 static PlacementObject *create(const char *type);
00043
00044 PlacementObject();
00045 virtual ~PlacementObject();
00046
00047 virtual bool readXML(XMLNode *node);
00048 virtual Type getType() = 0;
00049 virtual void createObject(ScorchedContext &context,
00050 RandomGenerator &generator,
00051 unsigned int &playerId,
00052 PlacementType::Position &position) = 0;
00053 };
00054
00055 #endif // __INCLUDE_PlacementObjecth_INCLUDE__