Resource.h 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. #pragma once
  2. #include <Bild.h>
  3. using namespace Framework;
  4. class ColorMode
  5. {
  6. private:
  7. int ref;
  8. public:
  9. ColorMode();
  10. virtual Bild *colorImage( Bild *zImg, int color );
  11. ColorMode *getThis();
  12. ColorMode *release();
  13. };
  14. class AlphaColorMode : public ColorMode
  15. {
  16. private:
  17. unsigned char alpha;
  18. public:
  19. AlphaColorMode( unsigned char alpha );
  20. Bild *colorImage( Bild *zImg, int color ) override;
  21. };
  22. class MaskColorMode : public ColorMode
  23. {
  24. private:
  25. int colorToReplace;
  26. public:
  27. MaskColorMode( int colorToReplace );
  28. Bild *colorImage( Bild *zImg, int color ) override;
  29. };
  30. enum ResourceIds
  31. {
  32. R_BARIERE,
  33. R_BASE,
  34. R_PFEIL_GESCHOSS,
  35. R_PFEIL,
  36. R_LEBEN,
  37. R_SCHILD,
  38. R_SCHUH,
  39. R_GEIST,
  40. R_ROLLE,
  41. R_ROLLE_OBEN,
  42. R_ROLLE_LINKS,
  43. R_ROLLE_RECHTS,
  44. R_ROLLE_UNTEN,
  45. R_STURM,
  46. R_STURM_OBEN,
  47. R_STURM_LINKS,
  48. R_STURM_RECHTS,
  49. R_STURM_UNTEN,
  50. R_DRACHENAUGE,
  51. R_DRACHENAUGE_GESCHOSS,
  52. R_FEUERBALL,
  53. R_FEUERBALL_GESCHOSS,
  54. R_FEUERBALL_TREFFER,
  55. R_ENTERHAKEN_SEIL,
  56. R_ENTERHAKEN_SPITZE,
  57. R_ENTERHAKEN_ITEM,
  58. R_MINE,
  59. R_MINE_GESCHOSS,
  60. R_RWEISHEIT,
  61. R_RBOSHEIT,
  62. R_RLEBEN,
  63. R_RTEMPO,
  64. R_SCHALTER,
  65. R_SCHIENE,
  66. R_SPIELER_STIRBT,
  67. R_SPIELER,
  68. R_SPIELER_RECHTS,
  69. R_SPIELER_LINKS,
  70. R_TUNNEL,
  71. R_UMLENKUNG
  72. };
  73. class ResourceRegistry;
  74. class Resource
  75. {
  76. private:
  77. ResourceIds id;
  78. int color;
  79. int ref;
  80. RCArray< Bild > images;
  81. public:
  82. Resource( ResourceIds id, int color );
  83. virtual Resource *createColoredResource( int color, ColorMode *mode ) const;
  84. Iterator< Bild * > getImages() const;
  85. ResourceIds getId() const;
  86. int getColor() const;
  87. Resource *getThis();
  88. Resource *release();
  89. friend ResourceRegistry;
  90. };
  91. class ResourceRegistry
  92. {
  93. private:
  94. RCArray< Resource > resources;
  95. Text spielPfad;
  96. Text mapPfad;
  97. int ref;
  98. public:
  99. ResourceRegistry( Text spielPfad, Text mapPfad );
  100. Resource *getResource( ResourceIds id, int color, ColorMode *mode = 0, Text path = "" );
  101. Resource *zResource( ResourceIds id, int color, ColorMode *mode = 0, Text path = "" );
  102. ResourceRegistry *getThis();
  103. ResourceRegistry *release();
  104. };