StevEngine
StevEngine is a customizable C++ game engine.
Loading...
Searching...
No Matches
ResourceManager.hpp
1#pragma once
2#include <SDL.h>
3#include <string>
4#include <map>
5
6namespace StevEngine {
7 namespace Resources {
11 class Resource {
12 friend class ResourceManager;
13 public:
15 const unsigned short id;
16
18 const std::string path;
19
24 SDL_RWops* GetSDLData() const;
25
30 std::string GetStrData() const;
31
36 const char* GetRawData() const;
37
42 int GetSize() const;
43
44 private:
45 Resource();
46 Resource(std::string path, const char* data, const int size);
47 const char* data;
48 const int size;
49 static unsigned short currentId;
50 };
51
58 class ResourceManager {
59 public:
60 ResourceManager();
61
68 const Resource& GetFile(unsigned short id) const;
69
76 const Resource& GetFile(std::string path) const;
77
84 void AddFile(std::string path, const char* data, const int size);
85
93 template<int hexSize = 2> void AddFileFromHex(std::string path, const char* hex, const int size);
94
95 private:
97 std::map<unsigned short, const Resource> resources;
98
100 std::map<std::string, unsigned short> pathToId;
101 };
102
104 extern ResourceManager resourceManager;
105 }
106}
Manages loading and access to game resources.
Definition ResourceManager.hpp:58
const Resource & GetFile(unsigned short id) const
Get resource by ID.
Definition ResourceManager.cpp:32
void AddFileFromHex(std::string path, const char *hex, const int size)
Add resource from hex string data.
Definition ResourceManager.cpp:57
void AddFile(std::string path, const char *data, const int size)
Add resource from raw data.
Definition ResourceManager.cpp:51
Container for loaded resource data.
Definition ResourceManager.hpp:11
const unsigned short id
Unique resource identifier.
Definition ResourceManager.hpp:15
std::string GetStrData() const
Get resource data as string.
Definition ResourceManager.cpp:85
const std::string path
Path to resource file.
Definition ResourceManager.hpp:18
SDL_RWops * GetSDLData() const
Get SDL-compatible data handle.
Definition ResourceManager.cpp:82
const char * GetRawData() const
Get raw resource data.
Definition ResourceManager.cpp:79
int GetSize() const
Get size of resource data.
Definition ResourceManager.cpp:76