/TGame/TCommon/Entity/EntityVisitorIf.h

http://awoe.googlecode.com/ · C Header · 52 lines · 24 code · 11 blank · 17 comment · 0 complexity · dec0f341405b4db54680cb8c5cff6b3c MD5 · raw file

  1. #ifndef __ENTITY_Visitor_INTERFACE__
  2. #define __ENTITY_Visitor_INTERFACE__
  3. #include "Entry/LibExportCom.h"
  4. class EntityP;
  5. class EntityM;
  6. class EntityD;
  7. class EntityP;
  8. class EntityN;
  9. class EntityS;
  10. class EntityR;
  11. class EntityImp;
  12. //
  13. // Entity Visitor Interface
  14. // For iterating all entities in the entity container or manage with a for each interface.
  15. //
  16. class TCOM_API IEntityVisitor
  17. {
  18. public:
  19. virtual ~IEntityVisitor() {}
  20. //
  21. // visit player entity
  22. virtual bool visitP(EntityP& e) = 0;
  23. //
  24. // visit role entity
  25. virtual bool visitR(EntityR& e) = 0;
  26. //
  27. // visit monster entity
  28. virtual bool visitM(EntityM& e) = 0;
  29. //
  30. // visit destructible entity
  31. virtual bool visitD(EntityD& e) = 0;
  32. //
  33. // visit static entity
  34. virtual bool visitS(EntityS& e) = 0;
  35. //
  36. // visit NPC entity
  37. virtual bool visitN(EntityN& e) = 0;
  38. // visit other entity
  39. virtual bool visit(EntityImp& e) = 0;
  40. };
  41. #endif