23 #ifndef QDENGINE_QDCORE_QD_RESOURCE_CONTAINER_H 24 #define QDENGINE_QDCORE_QD_RESOURCE_CONTAINER_H 26 #include "qdengine/qdcore/qd_animation.h" 27 #include "qdengine/qdcore/qd_resource_dispatcher.h" 28 #include "qdengine/qdcore/qd_sound.h" 63 return _resource_list;
72 resource_map_t _resource_map;
75 resource_list_t _resource_list;
92 typename resource_map_t::iterator it = _resource_map.find(file_name.
toString());
93 if (it != _resource_map.end()) {
94 _resource_dispatcher.register_resource(it->_value, owner);
99 switch (qdResource::file_format(file_name)) {
111 fr->set_file(file_name);
123 _resource_map[file_name.
toString()] = p;
126 _resource_dispatcher.register_resource(p, owner);
133 typename resource_map_t::iterator it = _resource_map.find(file_name.
toString());
135 if (it == _resource_map.end())
return false;
138 _resource_dispatcher.unregister_resource(p, owner);
140 if (!_resource_dispatcher.is_registered(p)) {
141 _resource_map.
erase(it);
143 if (it2 != _resource_list.
end()) {
145 _resource_list.
erase(it2);
157 if (file_name.
empty())
return NULL;
159 typename resource_map_t::const_iterator it = _resource_map.find(file_name.
toString());
160 if (it != _resource_map.end())
169 if (!(*it)->resource_file().empty()) {
170 T *ptr =
const_cast<T *
>(_resource_dispatcher.find_owner(*it));
178 #endif // QDENGINE_QDCORE_QD_RESOURCE_CONTAINER_H спрайт - .tga.
Definition: qd_resource.h:41
Кадр анимации.
Definition: qd_animation_frame.h:31
Definition: qd_resource_container.h:40
In find(In first, In last, const T &v)
Definition: algorithm.h:225
Звук.
Definition: qd_sound.h:35
звук - .wav.
Definition: qd_resource.h:43
Definition: qd_resource.h:34
анимация - .qda.
Definition: qd_resource.h:39
const resource_list_t & resource_list() const
Возвращает список ресурсов.
Definition: qd_resource_container.h:62
bool empty() const
Definition: path.h:353
Диспетчер ресурсов.
Definition: qd_resource_dispatcher.h:32
iterator end()
Definition: list.h:240
Базовый класс для игровых ресурсов.
Definition: console.h:28
iterator begin()
Definition: list.h:227
Анимация.
Definition: qd_animation.h:57
bool remove_resource(const Common::Path file_name, const T *owner)
Удаляет ресурс, если он нужен только для объекта owner.
Definition: qd_resource_container.h:132
String toString(char separator='/') const
void erase(iterator entry)
Definition: hashmap.h:710
void get_owners(Std::list< T *> &owners)
Возвращает всех владельцев ресурсов
Definition: qd_resource_container.h:167
Definition: list_intern.h:51
iterator erase(iterator pos)
Definition: list.h:95
virtual void set_resource_file(const Common::Path file_name)=0
Устанавливает имя файла, в котором хранятся данные ресурса.
qdResource * add_resource(const Common::Path file_name, const T *owner)
Добавляет ресурс из файла file_name и возвращает указатель на него.
Definition: qd_resource_container.h:91
void push_back(const t_T &element)
Definition: list.h:140
qdResource * get_resource(const Common::Path file_name) const
Возвращает указатель на ресурс, соответствующий файлу с именем file_name.
Definition: qd_resource_container.h:156