forked from teamnwah/openmw-tes3coop
Save/load global map
parent
e62bf8fca9
commit
e0de76a6f7
@ -0,0 +1,26 @@
|
||||
#include "globalmap.hpp"
|
||||
|
||||
#include "esmreader.hpp"
|
||||
#include "esmwriter.hpp"
|
||||
#include "defs.hpp"
|
||||
|
||||
unsigned int ESM::GlobalMap::sRecordId = ESM::REC_GMAP;
|
||||
|
||||
void ESM::GlobalMap::load (ESMReader &esm)
|
||||
{
|
||||
esm.getHNT(mBounds, "BNDS");
|
||||
|
||||
esm.getSubNameIs("DATA");
|
||||
esm.getSubHeader();
|
||||
mImageData.resize(esm.getSubSize());
|
||||
esm.getExact(&mImageData[0], mImageData.size());
|
||||
}
|
||||
|
||||
void ESM::GlobalMap::save (ESMWriter &esm) const
|
||||
{
|
||||
esm.writeHNT("BNDS", mBounds);
|
||||
|
||||
esm.startSubRecord("DATA");
|
||||
esm.write(&mImageData[0], mImageData.size());
|
||||
esm.endRecord("DATA");
|
||||
}
|
@ -0,0 +1,34 @@
|
||||
#ifndef OPENMW_COMPONENTS_ESM_GLOBALMAP_H
|
||||
#define OPENMW_COMPONENTS_ESM_GLOBALMAP_H
|
||||
|
||||
#include <vector>
|
||||
|
||||
namespace ESM
|
||||
{
|
||||
class ESMReader;
|
||||
class ESMWriter;
|
||||
|
||||
// format 0, saved games only
|
||||
|
||||
///< \brief An image containing the explored areas on the global map.
|
||||
struct GlobalMap
|
||||
{
|
||||
static unsigned int sRecordId;
|
||||
|
||||
// The minimum and maximum cell coordinates
|
||||
struct Bounds
|
||||
{
|
||||
int mMinX, mMaxX, mMinY, mMaxY;
|
||||
};
|
||||
|
||||
Bounds mBounds;
|
||||
|
||||
std::vector<char> mImageData;
|
||||
|
||||
void load (ESMReader &esm);
|
||||
void save (ESMWriter &esm) const;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif
|
Loading…
Reference in New Issue