Assets.hpp 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. /**
  2. * Triangles
  3. * Copyright (C) 2016 POSITIVE MENTAL ATTITUDE
  4. *
  5. * This program is free software: you can redistribute it and/or modify
  6. * it under the terms of the GNU General Public License as published by
  7. * the Free Software Foundation, version 3 of the License.
  8. *
  9. * This program is distributed in the hope that it will be useful,
  10. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  11. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  12. * GNU General Public License for more details.
  13. *
  14. * You should have received a copy of the GNU General Public License
  15. * along with this program. If not, see <http://www.gnu.org/licenses/>.
  16. */
  17. #pragma once
  18. #include <SFML/Graphics.hpp>
  19. #include <SFML/Audio.hpp>
  20. #include <unordered_map>
  21. /**
  22. * @class Assets
  23. * @author POSITIVE MENTAL ATTITUDE
  24. * @date 06/09/16
  25. * @file Assets.hpp
  26. * @brief Your standard asset manager. Does not work properly and leaks memory when switching gamestates. Meh.
  27. */
  28. class Assets
  29. {
  30. public:
  31. Assets(const Assets& copy) = delete;
  32. Assets& operator=(const Assets&) = delete;
  33. Assets() = default;
  34. ~Assets();
  35. sf::Texture& loadTexture(std::string file);
  36. sf::SoundBuffer& loadSound(std::string file);
  37. sf::Font& loadFont(std::string file);
  38. private:
  39. std::unordered_map<std::string, sf::Texture> textures;
  40. std::unordered_map<std::string, sf::SoundBuffer> sounds;
  41. std::unordered_map<std::string, sf::Font> fonts;
  42. };