mirror of https://github.com/OpenMW/openmw.git
Feat(CS): Add definition files for selection group record type
parent
c6a1196ec7
commit
5c10727380
@ -0,0 +1,38 @@
|
|||||||
|
#include "selectiongroup.hpp"
|
||||||
|
|
||||||
|
#include "esmreader.hpp"
|
||||||
|
#include "esmwriter.hpp"
|
||||||
|
|
||||||
|
namespace ESM
|
||||||
|
{
|
||||||
|
void SelectionGroup::load(ESMReader& esm, bool& isDeleted)
|
||||||
|
{
|
||||||
|
|
||||||
|
while (esm.hasMoreSubs())
|
||||||
|
{
|
||||||
|
esm.getSubName();
|
||||||
|
switch (esm.retSubName().toInt())
|
||||||
|
{
|
||||||
|
case fourCC("SELC"):
|
||||||
|
mId = esm.getRefId();
|
||||||
|
break;
|
||||||
|
case fourCC("SELI"):
|
||||||
|
selectedInstances.push_back(esm.getRefId().getRefIdString());
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
esm.fail("Unknown subrecord");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void SelectionGroup::save(ESMWriter& esm, bool isDeleted) const
|
||||||
|
{
|
||||||
|
esm.writeHNCRefId("SELC", mId);
|
||||||
|
for (std::string id : selectedInstances)
|
||||||
|
esm.writeHNCString("SELI", id);
|
||||||
|
}
|
||||||
|
|
||||||
|
void SelectionGroup::blank() {}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,34 @@
|
|||||||
|
#ifndef COMPONENTS_ESM_SELECTIONGROUP_H
|
||||||
|
#define COMPONENTS_ESM_SELECTIONGROUP_H
|
||||||
|
|
||||||
|
#include <string>
|
||||||
|
|
||||||
|
#include "components/esm/defs.hpp"
|
||||||
|
#include "components/esm/refid.hpp"
|
||||||
|
|
||||||
|
namespace ESM
|
||||||
|
{
|
||||||
|
class ESMReader;
|
||||||
|
class ESMWriter;
|
||||||
|
|
||||||
|
struct SelectionGroup
|
||||||
|
{
|
||||||
|
constexpr static RecNameInts sRecordId = REC_SELG;
|
||||||
|
|
||||||
|
static constexpr std::string_view getRecordType() { return "SelectionGroup"; }
|
||||||
|
|
||||||
|
uint32_t mRecordFlags = 0;
|
||||||
|
|
||||||
|
RefId mId;
|
||||||
|
|
||||||
|
std::vector<std::string> selectedInstances;
|
||||||
|
|
||||||
|
void load(ESMReader& esm, bool& isDeleted);
|
||||||
|
void save(ESMWriter& esm, bool isDeleted = false) const;
|
||||||
|
|
||||||
|
/// Set record to default state (does not touch the ID).
|
||||||
|
void blank();
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
Loading…
Reference in New Issue