mirror of
https://github.com/OpenMW/openmw.git
synced 2025-03-29 03:36:40 +00:00
Feat(CS): Add definition files for selection group record type
This commit is contained in:
parent
c6a1196ec7
commit
5c10727380
3 changed files with 73 additions and 1 deletions
|
@ -166,7 +166,7 @@ add_component_dir (esm3
|
||||||
inventorystate containerstate npcstate creaturestate dialoguestate statstate npcstats creaturestats
|
inventorystate containerstate npcstate creaturestate dialoguestate statstate npcstats creaturestats
|
||||||
weatherstate quickkeys fogstate spellstate activespells creaturelevliststate doorstate projectilestate debugprofile
|
weatherstate quickkeys fogstate spellstate activespells creaturelevliststate doorstate projectilestate debugprofile
|
||||||
aisequence magiceffects custommarkerstate stolenitems transport animationstate controlsstate mappings readerscache
|
aisequence magiceffects custommarkerstate stolenitems transport animationstate controlsstate mappings readerscache
|
||||||
infoorder timestamp formatversion landrecorddata
|
infoorder timestamp formatversion landrecorddata selectiongroup
|
||||||
)
|
)
|
||||||
|
|
||||||
add_component_dir (esmterrain
|
add_component_dir (esmterrain
|
||||||
|
|
38
components/esm3/selectiongroup.cpp
Normal file
38
components/esm3/selectiongroup.cpp
Normal file
|
@ -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() {}
|
||||||
|
|
||||||
|
}
|
34
components/esm3/selectiongroup.hpp
Normal file
34
components/esm3/selectiongroup.hpp
Normal file
|
@ -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 a new issue