Resource.h 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  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. public:
  25. Bild *colorImage( Bild *zImg, int color ) override;
  26. };
  27. enum ResourceIds
  28. {
  29. R_BARIERE,
  30. R_BASE,
  31. R_PFEIL_GESCHOSS,
  32. R_PFEIL,
  33. R_LEBEL,
  34. R_SCHILD,
  35. R_SCHUH,
  36. R_GEIST,
  37. R_ROLLE,
  38. R_ROLLE_OBEN,
  39. R_ROLLE_LINKS,
  40. R_ROLLE_RECHTS,
  41. R_ROLLE_UNTEN,
  42. R_STURM,
  43. R_STURM_OBEN,
  44. R_STURM_LINKS,
  45. R_STURM_RECHTS,
  46. R_STUMR_UNTEN,
  47. R_DRACHENAUGE,
  48. R_FEUERBALL,
  49. R_FEUERBALL_TREFFER,
  50. R_ENTERHAKEN_SEIL,
  51. R_ENTERHAKEN_SPITZE,
  52. R_ENTERHAKEN_ITEM,
  53. R_MINE,
  54. R_RWEISHEIT,
  55. R_RBOSHEIT,
  56. R_RLEBEN,
  57. R_RTEMPO,
  58. R_SCHALTER,
  59. R_SCHIENE,
  60. R_SPIELER_STIRBD,
  61. R_SPIELER,
  62. R_SPIELER_RECHTS,
  63. R_SPIELER_LINKS,
  64. R_TUNNEL,
  65. R_UMLENKUNG
  66. };
  67. class ResourceRegistry;
  68. class Resource
  69. {
  70. private:
  71. ResourceIds id;
  72. int color;
  73. int ref;
  74. RCArray< Bild > images;
  75. public:
  76. Resource( ResourceIds id, int color );
  77. virtual Resource *createColoredResource( int color, ColorMode *mode ) const;
  78. Iterator< Bild * > getImages() const;
  79. ResourceIds getId() const;
  80. int getColor() const;
  81. Resource *getThis();
  82. Resource *release();
  83. friend ResourceRegistry;
  84. };
  85. class ResourceRegistry
  86. {
  87. private:
  88. RCArray< Resource > resources;
  89. int ref;
  90. public:
  91. ResourceRegistry();
  92. Resource *getResource( ResourceIds id, int color, ColorMode *mode, Text path = "" );
  93. Resource *zResource( ResourceIds id, int color, ColorMode *mode, Text path = "" );
  94. ResourceRegistry *getThis();
  95. ResourceRegistry *release();
  96. };