CArtHandler.h 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. #ifndef CARTHANDLER_H
  2. #define CARTHANDLER_H
  3. #include "../global.h"
  4. #include <string>
  5. #include <vector>
  6. enum EartClass {SartClass=0, TartClass, NartClass, JartClass, RartClass}; //artifact class (relict, treasure, strong, weak etc.)
  7. class CDefHandler;
  8. class DLL_EXPORT CArtifact //container for artifacts
  9. {
  10. public:
  11. bool isAllowed; //true if we can use this artifact (map information)
  12. std::string name;
  13. std::string description;
  14. //std::string desc2;
  15. unsigned int price;
  16. std::vector<ui16> possibleSlots; //ids of slots where artifact can be placed
  17. //bool spellBook, warMachine1, warMachine2, warMachine3, warMachine4, misc1, misc2, misc3, misc4, misc5, feet, lRing, rRing, torso, lHand, rHand, neck, shoulders, head;
  18. EartClass aClass;
  19. int id;
  20. template <typename Handler> void serialize(Handler &h, const int version)
  21. {
  22. h & isAllowed & name & description & price & possibleSlots & aClass & id ;
  23. }
  24. };
  25. class DLL_EXPORT CArtHandler //handles artifacts
  26. {
  27. public:
  28. std::vector<CArtifact*> treasures, minors, majors, relics;
  29. std::vector<CArtifact> artifacts;
  30. void loadArtifacts();
  31. void sortArts();
  32. static int convertMachineID(int id, bool creToArt);
  33. CArtHandler();
  34. template <typename Handler> void serialize(Handler &h, const int version)
  35. {
  36. h & artifacts;
  37. if(!h.saving)
  38. sortArts();
  39. }
  40. };
  41. #endif // CARTHANDLER_H