#pragma once #include "mapfile/mapmodel.h" class idDeclEntityDef; class idGame; class idGroupState { public: idStr groupName; unsigned int state = 0; }; class idMapEditorStates { public: virtual ~idMapEditorStates() = default; idList groupStates; idList layerStates; idList groupColors; }; class idRefMapDef { public: idStr mapName; idStr worldSpawnText; }; class idMapEntity : public idMapGroups { public: ~idMapEntity() override = default; idDeclEntityDef* entityDef = nullptr; idMapModel model; idMapEntity* parentReference = nullptr; idStr refId; idList layerList; }; class alignas(4) idMapFile { public: virtual ~idMapFile() = default; idStr name; int version = 0; unsigned int fileTime = 0; unsigned int geometryCRC = 0; bool hasPrimitiveData = false; idList entities; idMapEditorStates groupStates; idList referenceMaps; idMapEntity* parentReference = nullptr; bool expandReferences = false; idGame* game = nullptr; bool entitiesAreReference = false; bool ignoreGroupInfo = false; }; #if INTPTR_MAX == INT32_MAX static_assert(sizeof(idMapEditorStates) == 52, "Recovered idMapEditorStates ABI changed"); static_assert(sizeof(idMapEntity) == 124, "Recovered idMapEntity ABI changed"); static_assert(sizeof(idMapFile) == 152, "Recovered idMapFile ABI changed"); #endif