diff --git a/components/CMakeLists.txt b/components/CMakeLists.txt index e1e5fbe9bf..f28b5ec092 100644 --- a/components/CMakeLists.txt +++ b/components/CMakeLists.txt @@ -39,7 +39,7 @@ add_component_dir (esm loadclas loadclot loadcont loadcrea loadcrec loaddial loaddoor loadench loadfact loadglob loadgmst loadinfo loadingr loadland loadlevlist loadligh loadlock loadprob loadrepa loadltex loadmgef loadmisc loadnpcc loadnpc loadpgrd loadrace loadregn loadscpt loadskil loadsndg loadsoun loadspel loadsscr loadstat - loadweap records aipackage effectlist spelllist variant variantimp loadtes3 cellref + loadweap records aipackage effectlist spelllist variant variantimp loadtes3 cellref filter ) add_component_dir (misc diff --git a/components/esm/filter.cpp b/components/esm/filter.cpp new file mode 100644 index 0000000000..205332f6b5 --- /dev/null +++ b/components/esm/filter.cpp @@ -0,0 +1,20 @@ + +#include "filter.hpp" + +#include "esmreader.hpp" +#include "esmwriter.hpp" + +void ESM::Filter::load (ESMReader& esm) +{ + mFilter = esm.getHNString ("FILT"); +} + +void ESM::Filter::save (ESMWriter& esm) +{ + esm.writeHNCString ("FILT", mFilter); +} + +void ESM::Filter::blank() +{ + mFilter.clear(); +} diff --git a/components/esm/filter.hpp b/components/esm/filter.hpp new file mode 100644 index 0000000000..2dde92fb0e --- /dev/null +++ b/components/esm/filter.hpp @@ -0,0 +1,25 @@ +#ifndef COMPONENTS_ESM_FILTER_H +#define COMPONENTS_ESM_FILTER_H + +#include + +namespace ESM +{ + class ESMReader; + class ESMWriter; + + struct Filter + { + std::string mId; + + std::string mFilter; + + void load (ESMReader& esm); + void save (ESMWriter& esm); + + void blank(); + ///< Set record to default state (does not touch the ID). + }; +} + +#endif