Something went wrong. Try again.
OpenMW is an open implementation of the Morrowind engine
Something went wrong. Try again.
1.1 kB · 45 lines
C++
12345678910111213141516171819202122232425262728293031323334353637383940414243444546#include "globalmap.hpp"
#include "esmreader.hpp"#include "esmwriter.hpp"
namespace ESM{
void GlobalMap::load(ESMReader& esm) { esm.getHNT("BNDS", mBounds.mMinX, mBounds.mMaxX, mBounds.mMinY, mBounds.mMaxY);
esm.getSubNameIs("DATA"); esm.getSubHeader(); mImageData.resize(esm.getSubSize()); esm.getExact(mImageData.data(), mImageData.size());
while (esm.isNextSub("MRK_")) { esm.getSubHeader(); CellId cell; esm.getT(cell.first); esm.getT(cell.second); mMarkers.insert(cell); } }
void GlobalMap::save(ESMWriter& esm) const { esm.writeHNT("BNDS", mBounds);
esm.startSubRecord("DATA"); esm.write(mImageData.data(), mImageData.size()); esm.endRecord("DATA");
for (std::set<CellId>::const_iterator it = mMarkers.begin(); it != mMarkers.end(); ++it) { esm.startSubRecord("MRK_"); esm.writeT(it->first); esm.writeT(it->second); esm.endRecord("MRK_"); } }
}