65 lines
1.5 KiB
C++
65 lines
1.5 KiB
C++
#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<idGroupState, TAG_IDLIB> groupStates;
|
|
idList<idGroupState, TAG_IDLIB> layerStates;
|
|
idList<idGroupState, TAG_IDLIB> 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<idStr, TAG_IDLIB> 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<idMapEntity*, TAG_IDLIB> entities;
|
|
idMapEditorStates groupStates;
|
|
idList<idRefMapDef, TAG_IDLIB> 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
|