Хранение и извлечение динамически изменяющихся структур - PullRequest
1 голос
/ 28 января 2009

Я создаю игру, используя Allegro / C ++. Игра почти закончена, и теперь я хочу создать редактор карт. Игра содержит множество классов, и их количество будет варьироваться в зависимости от количества объектов, необходимых для карты. Я думал о создании отдельной структуры для хранения данных об уровне и сохранения их в виде карты. Проблема в том, что размер зависит от карты, и я должен использовать указатели для размещения объектов в зависимости от количества. Каков наилучший способ хранить такие данные и извлекать их.

Пример структуры, о которой я думал -

struct Level
{    
    int soldierCount;

    Soldier **soldier;

    int taskCount;

    int *taskPercentage;

    int *taskBitmapX;

    int *taskBitmapY;

};

Ответы [ 2 ]

1 голос
/ 28 января 2009

Итак, что вы хотите сделать, это сериализация.

Я предлагаю просто использовать для этого уже существующую библиотеку. Посмотрите на эту тему: Как сериализовать в C ++?

0 голосов
/ 28 января 2009

Создайте класс для каждой отдельной структуры данных, а затем реализуйте для них функции чтения / записи. Используйте некоторые флаги между записями, чтобы указать тип записи. Для динамических массивов сначала сохраните количество элементов, а затем сохраните элементы.

...