CSC3224_Computer_Games_Development / GameEngine / Engine_Resource_Management / ResourceManagement.h
ResourceManagement.h
Raw
#pragma once
#include "../Engine_Common/Common.h"
#include "../Engine_Profiler/Profiler.h"
#include <SFML/Graphics.hpp>
#include <SFML/Audio/Sound.hpp>
#include <SFML/Audio/SoundBuffer.hpp>
#include <unordered_map>
#include <iostream>

class ResourceManagement
{
protected:
// Textures to be loaded
	std::unordered_map <std::string, sf::Texture*> textures;
	std::unordered_map <std::string, sf::SoundBuffer*> sounds;
public:
// Constructor to initalize map for textures and sounds (reserve memory)
	ResourceManagement();
// Destructor to delete last loaded texture and sound
	~ResourceManagement();
// Function to get texture
	sf::Texture* getTexture(std::string textureName);
// Function to get sound
	sf::SoundBuffer* getSound(std::string soundName);
// Function to load the next texture and return a pointer and ID
	sf::Texture* loadTexture(std::string textureName, std::string texturePath);
// Function to load the next sound and return a pointer and ID
	sf::SoundBuffer* loadSound(std:: string soundName, std::string soundPath);
};