Incremental Engine  1.0.6
A 2D Game Engine to create Idle Games
IncrementalEngine::ResourcesManager Class Reference

#include <Resources.h>

Classes

struct  ResourceItem
 

Public Member Functions

 ResourcesManager ()
 
virtual ~ResourcesManager ()
 
HRESULT Load ()
 
TextureGetTexture (std::string name)
 
SoundGetSound (std::string name)
 

Public Attributes

LPCWSTR Error = L""
 

Private Member Functions

void LoadResource (ResourceItem item)
 
HRESULT GetResourceItem (ResourceItem &resourceItem, std::pair< const std::string, Json > item)
 

Private Attributes

Json _loadedResources = nullptr
 
std::map< std::string, Texture * > _textures
 
std::map< std::string, Sound * > _sounds
 

Detailed Description

Definition at line 15 of file Resources.h.

Constructor & Destructor Documentation

◆ ResourcesManager()

IncrementalEngine::ResourcesManager::ResourcesManager ( )

Definition at line 6 of file Resources.cpp.

6  :
7  Error(L""),
9  _sounds(),
10  _textures()
11  {
12  }

◆ ~ResourcesManager()

IncrementalEngine::ResourcesManager::~ResourcesManager ( )
virtual

Definition at line 14 of file Resources.cpp.

15  {
16  DELETE_RESOURCES(_textures);
17  DELETE_RESOURCES(_sounds);
18  }

Member Function Documentation

◆ GetResourceItem()

HRESULT IncrementalEngine::ResourcesManager::GetResourceItem ( ResourceItem resourceItem,
std::pair< const std::string, Json >  item 
)
private

Definition at line 75 of file Resources.cpp.

76  {
77  try
78  {
79  resourceItem = ResourceItem{
80  item.first, //Name
81  item.second["Type"].string_value(), //Type
82  item.second["Fileroute"].string_value() //Fileroute
83  };
84 
85  return S_OK;
86  }
87  catch (const std::exception& e)
88  {
89  std::string error = "Item load failed. Check file structure. [" + (std::string)e.what() + "]";
90  StringAsWCHAR_ptr(error, Error);
91  return CO_E_ERRORINAPP;
92  }
93  }

◆ GetSound()

Sound * IncrementalEngine::ResourcesManager::GetSound ( std::string  name)

Definition at line 68 of file Resources.cpp.

69  {
70  auto item = _sounds.find(name);
71  assert("The Sound requested is not loaded." && item != _sounds.end());
72  return item->second;
73  }

◆ GetTexture()

Texture * IncrementalEngine::ResourcesManager::GetTexture ( std::string  name)

Definition at line 61 of file Resources.cpp.

62  {
63  auto item = _textures.find(name);
64  assert("The Texture requested is not loaded." && item != _textures.end());
65  return item->second;
66  }

◆ Load()

HRESULT IncrementalEngine::ResourcesManager::Load ( )

Definition at line 20 of file Resources.cpp.

21  {
22  std::ifstream t(PATH);
23  std::string json(
24  (std::istreambuf_iterator<char>(t)),
25  std::istreambuf_iterator<char>()
26  );
27 
28  std::string error = "";
29  _loadedResources = Json::parse(json, error);
30 
31  if (error != "")
32  {
33  StringAsWCHAR_ptr(error, Error)
34  return CO_E_ERRORINAPP;
35  }
36 
37  auto items = _loadedResources.object_items();
38  if (items.empty())
39  {
40  Error = L"Resources load failed. Check file structure.";
41  return CO_E_ERRORINAPP;
42  }
43 
44  HRESULT result;
45  for (auto const& item : items)
46  {
47  ResourceItem resourceItem;
48  result = GetResourceItem(resourceItem, item);
49 
50  if (FAILED(result))
51  {
52  return CO_E_ERRORINAPP;
53  }
54 
55  LoadResource(resourceItem);
56  }
57 
58  return S_OK;
59  }

◆ LoadResource()

void IncrementalEngine::ResourcesManager::LoadResource ( ResourceItem  item)
private

Definition at line 95 of file Resources.cpp.

96  {
97  if (item.Type == "Texture")
98  {
99  Texture* texture = new Texture(item.Fileroute);
100  _textures.insert(_textures.begin(), std::pair<std::string, Texture*>(item.Name, texture));
101 
102  return;
103  }
104 
105  if (item.Type == "Sound")
106  {
107  Sound* sound = new Sound(item.Fileroute);
108  sound->Init();
109  _sounds.insert(_sounds.begin(), std::pair<std::string, Sound*>(item.Name, sound));
110 
111  return;
112  }
113  }

Member Data Documentation

◆ _loadedResources

Json IncrementalEngine::ResourcesManager::_loadedResources = nullptr
private

Definition at line 38 of file Resources.h.

◆ _sounds

std::map<std::string, Sound*> IncrementalEngine::ResourcesManager::_sounds
private

Definition at line 40 of file Resources.h.

◆ _textures

std::map<std::string, Texture*> IncrementalEngine::ResourcesManager::_textures
private

Definition at line 39 of file Resources.h.

◆ Error

LPCWSTR IncrementalEngine::ResourcesManager::Error = L""

Definition at line 21 of file Resources.h.

IncrementalEngine::ResourcesManager::_sounds
std::map< std::string, Sound * > _sounds
Definition: Resources.h:40
IncrementalEngine::ResourcesManager::_textures
std::map< std::string, Texture * > _textures
Definition: Resources.h:39
IncrementalEngine::ResourcesManager::GetResourceItem
HRESULT GetResourceItem(ResourceItem &resourceItem, std::pair< const std::string, Json > item)
Definition: Resources.cpp:75
IncrementalEngine::ResourcesManager::_loadedResources
Json _loadedResources
Definition: Resources.h:38
IncrementalEngine::ResourcesManager::Error
LPCWSTR Error
Definition: Resources.h:21
IncrementalEngine::ResourcesManager::LoadResource
void LoadResource(ResourceItem item)
Definition: Resources.cpp:95