У меня есть класс для каждой сущности в игре, у которого есть дочерний класс, используемый для управления некоторыми атрибутами этой сущности.
Класс управления атрибутами содержит std :: список структур, каждая структура имеет данные об одном атрибуте и несколько простых функций для манипулирования этими данными.
Вот некоторый псевдокод, чтобы проиллюстрировать это:
struct stAttribute
{
/* data & functions */
}
class AttributeManager
{
std::list<struct stAttribute> attributeList;
/* ... */
};
class Entity
{
AttributeManager attribMgr;
/* .... */
};
int main(void)
{
Entity ent;
struct stAttribute newAttrib;
/* ... */
ent.attribMgr.attributeList.push_back(x);
return EXIT_SUCCESS;
}
Объекты часто создаются и удаляются в игре во время выполнения, то же самое относится и к атрибутам.
Я начинаю сомневаться в том, что создание их «статически» и сохранение целых структур в списке - хороший выбор. Моя главная забота - производительность.
Было бы лучше выделять память динамически и хранить только указатели на структуры? Освобождение памяти не является проблемой, поскольку удаление атрибутов выполняется классом AttributeManager.