#ifndef CSM_WOLRD_SUBCOLLECTION_H #define CSM_WOLRD_SUBCOLLECTION_H #include "nestedidcollection.hpp" namespace ESM { class ESMReader; } namespace CSMWorld { struct Cell; template<typename T, typename AT> class IdCollection; /// \brief Single type collection of top level records that are associated with cells template<typename ESXRecordT, typename IdAccessorT = IdAccessor<ESXRecordT> > class SubCellCollection : public NestedIdCollection<ESXRecordT, IdAccessorT> { const IdCollection<Cell>& mCells; virtual void loadRecord (ESXRecordT& record, ESM::ESMReader& reader, bool& isDeleted); public: SubCellCollection (const IdCollection<Cell>& cells); }; template<typename ESXRecordT, typename IdAccessorT> void SubCellCollection<ESXRecordT, IdAccessorT>::loadRecord (ESXRecordT& record, ESM::ESMReader& reader, bool& isDeleted) { record.load (reader, isDeleted, mCells); } template<typename ESXRecordT, typename IdAccessorT> SubCellCollection<ESXRecordT, IdAccessorT>::SubCellCollection ( const IdCollection<Cell>& cells) : mCells (cells) {} } #endif