#ifndef GAME_MWWORLD_CELLS_H #define GAME_MWWORLD_CELLS_H #include #include #include "ptr.hpp" namespace ESM { class ESMReader; } namespace MWWorld { class ESMStore; /// \brief Cell container class Cells { const MWWorld::ESMStore& mStore; ESM::ESMReader& mReader; std::map mInteriors; std::map, CellStore> mExteriors; std::vector > mIdCache; std::size_t mIdCacheIndex; Cells (const Cells&); Cells& operator= (const Cells&); CellStore *getCellStore (const ESM::Cell *cell); void fillContainers (CellStore& cellStore); Ptr getPtrAndCache (const std::string& name, CellStore& cellStore); public: Cells (const MWWorld::ESMStore& store, ESM::ESMReader& reader); ///< \todo pass the dynamic part of the ESMStore isntead (once it is written) of the whole /// world CellStore *getExterior (int x, int y); CellStore *getInterior (const std::string& name); Ptr getPtr (const std::string& name, CellStore& cellStore); Ptr getPtr (const std::string& name); }; } #endif