#ifndef __PTF_RESOURCE_MANAGER_HPP__ #define __PTF_RESOURCE_MANAGER_HPP__ #include #include #include #include #include #include #include /** * Gestionnaire de ressources du jeu. Conserve des * références vers toutes les ressources pour éviter * de les charger deux fois, permet l'accès uniforme * aux ressources */ class ResourceManager { private: bool preloaded; boost::filesystem::path textures_path; std::unordered_map> textures; boost::filesystem::path fonts_path; std::unordered_map> fonts; boost::filesystem::path levels_path; boost::filesystem::path musics_path; float music_volume; sf::Music music; public: ResourceManager(); /** * Précharge toutes les ressources préchargeables */ void preload(); /** * Récupère une texture préchargée */ sf::Texture& getTexture(std::string name); /** * Récupère une police préchargée */ sf::Font& getFont(std::string name); /** * Récupère le chemin vers le fichier du niveau portant le * nom passé en argument */ std::string getLevelPath(std::string name); /** * Démarre la musique de fond donnée */ void playMusic(std::string name); /** * Arrête la musique de fond */ void stopMusic(); /** * Récupère le volume de la musique de fond */ float getMusicVolume(); /** * Modifie le volume de la musique de fond */ void setMusicVolume(float set_music_volume); }; #endif