#ifndef COMPONENTS_ESM_ESMBRIDGE #define COMPONENTS_ESM_ESMBRIDGE #include #include #include #include namespace ESM4 { struct Cell; } namespace ESM { struct Cell; struct CellId; struct RefId; struct CellVariant { protected: std::variant mVariant; public: explicit CellVariant(const ESM4::Cell& cell) : mVariant(&cell) { } explicit CellVariant(const ESM::Cell& cell) : mVariant(&cell) { } bool isEsm4() const { return std::holds_alternative(mVariant); } const ESM4::Cell& getEsm4() const; const ESM::Cell& getEsm3() const; }; } #endif