Не знаю, правильно ли я делаю, но суть такова: есть объект, на котором может быть закреплено X разных блоков с двигателями, при этом каждый блок с двигателями имеет Y разных двигателей. Так как значения заданы в отдельном файле, заранее определить не получится. А брать по максимуму не очень экономично в плане ресурсов. Написал такие структуры:
// Одиночный трастер
typedef struct
{
sf::String textureLocation; // Текстура объекта
sf::Vector2f attachmentPoint; // Точка крепления в px
sf::Vector2f size; // Размер объекта в метрах
float textureRotation; // Ориентация текстуры
float maxAngle; // Максимальное отклонение при повреждении
float thrust; // Тяга трастера
float specificImpulse; // Удельный импульс трастера
} thrusterType;
// Блок трастеров
typedef struct
{
sf::String textureLocation; // Текстура объекта
sf::Vector2f attachmentPoint; // Точка крепления в px
sf::Vector2f size; // Размер объекта
float textureRotation; // Ориентация текстуры
// Информация о трастерах в составе блока
thrusterType thrusters[];
} thrusterMountType;
// Информация об объекте
typedef struct
{
sf::String textureLocation; // Текстура объекта
sf::Vector2f centerMass; // Центр масс
sf::Vector2f size; // Размер объекта
float textureRotation;
float massDry; // Сухая масса
float massFuel; // Масса топлива
int n;
// Информация о блоках трастеров в составе объекта
thrusterMountType thrusterMount[];
} physicalObjectType;
Вот только компилятор такое воспринимать отказывается, так это создает двумерный безразмерный массив. Каким образом можно переделать?