2014-01-14 11:25:35 +00:00
|
|
|
#ifndef OPENMW_ESM_CELLID_H
|
|
|
|
#define OPENMW_ESM_CELLID_H
|
|
|
|
|
2022-12-01 18:37:35 +00:00
|
|
|
#include <components/esm/refid.hpp>
|
2023-08-08 19:41:44 +00:00
|
|
|
#include <cstdint>
|
2022-12-01 19:02:39 +00:00
|
|
|
#include <string>
|
2014-01-14 11:25:35 +00:00
|
|
|
|
|
|
|
namespace ESM
|
|
|
|
{
|
|
|
|
class ESMReader;
|
|
|
|
class ESMWriter;
|
|
|
|
|
|
|
|
struct CellId
|
|
|
|
{
|
|
|
|
struct CellIndex
|
|
|
|
{
|
2023-08-08 19:41:44 +00:00
|
|
|
int32_t mX;
|
|
|
|
int32_t mY;
|
2014-01-14 11:25:35 +00:00
|
|
|
};
|
|
|
|
|
2023-01-19 16:31:45 +00:00
|
|
|
std::string mWorldspace;
|
2014-01-14 11:25:35 +00:00
|
|
|
CellIndex mIndex;
|
|
|
|
bool mPaged;
|
|
|
|
|
|
|
|
void load(ESMReader& esm);
|
|
|
|
void save(ESMWriter& esm) const;
|
2023-02-19 20:18:15 +00:00
|
|
|
|
|
|
|
// TODO tetramir: this probably shouldn't exist, needs it because some CellIds are saved on disk
|
|
|
|
static CellId extractFromRefId(const ESM::RefId& id);
|
2014-01-14 11:25:35 +00:00
|
|
|
};
|
2014-02-23 20:39:18 +00:00
|
|
|
|
|
|
|
bool operator==(const CellId& left, const CellId& right);
|
|
|
|
bool operator!=(const CellId& left, const CellId& right);
|
2015-07-17 18:49:10 +00:00
|
|
|
bool operator<(const CellId& left, const CellId& right);
|
2014-01-14 11:25:35 +00:00
|
|
|
}
|
|
|
|
|
2015-03-11 14:54:45 +00:00
|
|
|
#endif
|