mirror of
https://gitlab.com/OpenMW/openmw.git
synced 2025-02-28 12:40:06 +00:00
Load more ESM4 records
This commit is contained in:
parent
a90815e8ed
commit
ff774d6406
@ -1,5 +1,7 @@
|
|||||||
#include "classes.hpp"
|
#include "classes.hpp"
|
||||||
|
|
||||||
|
#include <components/esm/records.hpp>
|
||||||
|
|
||||||
#include "activator.hpp"
|
#include "activator.hpp"
|
||||||
#include "apparatus.hpp"
|
#include "apparatus.hpp"
|
||||||
#include "armor.hpp"
|
#include "armor.hpp"
|
||||||
@ -49,7 +51,18 @@ namespace MWClass
|
|||||||
Static::registerSelf();
|
Static::registerSelf();
|
||||||
BodyPart::registerSelf();
|
BodyPart::registerSelf();
|
||||||
|
|
||||||
ESM4Static::registerSelf();
|
ESM4Static<ESM4::Activator>::registerSelf();
|
||||||
|
ESM4Static<ESM4::Potion>::registerSelf();
|
||||||
|
ESM4Static<ESM4::Ammunition>::registerSelf();
|
||||||
|
ESM4Static<ESM4::Armor>::registerSelf();
|
||||||
|
ESM4Static<ESM4::Book>::registerSelf();
|
||||||
|
ESM4Static<ESM4::Clothing>::registerSelf();
|
||||||
|
ESM4Static<ESM4::Container>::registerSelf();
|
||||||
|
ESM4Static<ESM4::Door>::registerSelf();
|
||||||
|
ESM4Static<ESM4::Ingredient>::registerSelf();
|
||||||
|
ESM4Static<ESM4::MiscItem>::registerSelf();
|
||||||
|
ESM4Static<ESM4::Static>::registerSelf();
|
||||||
|
ESM4Static<ESM4::Weapon>::registerSelf();
|
||||||
ESM4Light::registerSelf();
|
ESM4Light::registerSelf();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -65,13 +65,8 @@ namespace MWClass
|
|||||||
return MWWorld::Ptr(cell.insert(ref), &cell);
|
return MWWorld::Ptr(cell.insert(ref), &cell);
|
||||||
}
|
}
|
||||||
|
|
||||||
ESM4Static::ESM4Static()
|
void ESM4StaticImpl::insertObjectRendering(
|
||||||
: MWWorld::RegisteredClass<ESM4Static>(ESM4::Static::sRecordId)
|
const MWWorld::Ptr& ptr, const std::string& model, MWRender::RenderingInterface& renderingInterface)
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
void ESM4Static ::insertObjectRendering(
|
|
||||||
const MWWorld::Ptr& ptr, const std::string& model, MWRender::RenderingInterface& renderingInterface) const
|
|
||||||
{
|
{
|
||||||
if (!model.empty())
|
if (!model.empty())
|
||||||
{
|
{
|
||||||
@ -80,37 +75,9 @@ namespace MWClass
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void ESM4Static::insertObject(const MWWorld::Ptr& ptr, const std::string& model, const osg::Quat& rotation,
|
void ESM4StaticImpl::insertObjectPhysics(
|
||||||
MWPhysics::PhysicsSystem& physics) const
|
const MWWorld::Ptr& ptr, const std::string& model, const osg::Quat& rotation, MWPhysics::PhysicsSystem& physics)
|
||||||
{
|
|
||||||
insertObjectPhysics(ptr, model, rotation, physics);
|
|
||||||
}
|
|
||||||
|
|
||||||
void ESM4Static::insertObjectPhysics(const MWWorld::Ptr& ptr, const std::string& model, const osg::Quat& rotation,
|
|
||||||
MWPhysics::PhysicsSystem& physics) const
|
|
||||||
{
|
{
|
||||||
physics.addObject(ptr, model, rotation, MWPhysics::CollisionType_World);
|
physics.addObject(ptr, model, rotation, MWPhysics::CollisionType_World);
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string ESM4Static::getModel(const MWWorld::ConstPtr& ptr) const
|
|
||||||
{
|
|
||||||
return getClassModel<ESM4::Static>(ptr);
|
|
||||||
}
|
|
||||||
|
|
||||||
std::string_view ESM4Static ::getName(const MWWorld::ConstPtr& ptr) const
|
|
||||||
{
|
|
||||||
return {};
|
|
||||||
}
|
|
||||||
|
|
||||||
bool ESM4Static::hasToolTip(const MWWorld::ConstPtr& ptr) const
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
MWWorld::Ptr ESM4Static::copyToCellImpl(const MWWorld::ConstPtr& ptr, MWWorld::CellStore& cell) const
|
|
||||||
{
|
|
||||||
const MWWorld::LiveCellRef<ESM4::Static>* ref = ptr.get<ESM4::Static>();
|
|
||||||
|
|
||||||
return MWWorld::Ptr(cell.insert(ref), &cell);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -1,8 +1,11 @@
|
|||||||
#ifndef GAME_MWCLASS_STATIC_H
|
#ifndef GAME_MWCLASS_STATIC_H
|
||||||
#define GAME_MWCLASS_STATIC_H
|
#define GAME_MWCLASS_STATIC_H
|
||||||
|
|
||||||
|
#include "../mwworld/cellstore.hpp"
|
||||||
#include "../mwworld/registeredclass.hpp"
|
#include "../mwworld/registeredclass.hpp"
|
||||||
|
|
||||||
|
#include "classmodel.hpp"
|
||||||
|
|
||||||
namespace MWClass
|
namespace MWClass
|
||||||
{
|
{
|
||||||
class Static : public MWWorld::RegisteredClass<Static>
|
class Static : public MWWorld::RegisteredClass<Static>
|
||||||
@ -32,31 +35,56 @@ namespace MWClass
|
|||||||
std::string getModel(const MWWorld::ConstPtr& ptr) const override;
|
std::string getModel(const MWWorld::ConstPtr& ptr) const override;
|
||||||
};
|
};
|
||||||
|
|
||||||
class ESM4Static : public MWWorld::RegisteredClass<ESM4Static>
|
namespace ESM4StaticImpl
|
||||||
|
{
|
||||||
|
void insertObjectRendering(
|
||||||
|
const MWWorld::Ptr& ptr, const std::string& model, MWRender::RenderingInterface& renderingInterface);
|
||||||
|
void insertObjectPhysics(const MWWorld::Ptr& ptr, const std::string& model, const osg::Quat& rotation,
|
||||||
|
MWPhysics::PhysicsSystem& physics);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Templated because it is used as a dummy MWClass implementation for several ESM4 recors
|
||||||
|
template <typename Record>
|
||||||
|
class ESM4Static : public MWWorld::RegisteredClass<ESM4Static<Record>>
|
||||||
{
|
{
|
||||||
friend MWWorld::RegisteredClass<ESM4Static>;
|
friend MWWorld::RegisteredClass<ESM4Static>;
|
||||||
|
|
||||||
ESM4Static();
|
ESM4Static()
|
||||||
|
: MWWorld::RegisteredClass<ESM4Static>(Record::sRecordId)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
MWWorld::Ptr copyToCellImpl(const MWWorld::ConstPtr& ptr, MWWorld::CellStore& cell) const override;
|
MWWorld::Ptr copyToCellImpl(const MWWorld::ConstPtr& ptr, MWWorld::CellStore& cell) const override
|
||||||
|
{
|
||||||
|
const MWWorld::LiveCellRef<Record>* ref = ptr.get<Record>();
|
||||||
|
return MWWorld::Ptr(cell.insert(ref), &cell);
|
||||||
|
}
|
||||||
|
|
||||||
public:
|
public:
|
||||||
void insertObjectRendering(const MWWorld::Ptr& ptr, const std::string& model,
|
void insertObjectRendering(const MWWorld::Ptr& ptr, const std::string& model,
|
||||||
MWRender::RenderingInterface& renderingInterface) const override;
|
MWRender::RenderingInterface& renderingInterface) const override
|
||||||
///< Add reference into a cell for rendering
|
{
|
||||||
|
ESM4StaticImpl::insertObjectRendering(ptr, model, renderingInterface);
|
||||||
|
}
|
||||||
|
|
||||||
void insertObject(const MWWorld::Ptr& ptr, const std::string& model, const osg::Quat& rotation,
|
void insertObject(const MWWorld::Ptr& ptr, const std::string& model, const osg::Quat& rotation,
|
||||||
MWPhysics::PhysicsSystem& physics) const override;
|
MWPhysics::PhysicsSystem& physics) const override
|
||||||
|
{
|
||||||
|
insertObjectPhysics(ptr, model, rotation, physics);
|
||||||
|
}
|
||||||
void insertObjectPhysics(const MWWorld::Ptr& ptr, const std::string& model, const osg::Quat& rotation,
|
void insertObjectPhysics(const MWWorld::Ptr& ptr, const std::string& model, const osg::Quat& rotation,
|
||||||
MWPhysics::PhysicsSystem& physics) const override;
|
MWPhysics::PhysicsSystem& physics) const override
|
||||||
|
{
|
||||||
|
ESM4StaticImpl::insertObjectPhysics(ptr, model, rotation, physics);
|
||||||
|
}
|
||||||
|
|
||||||
std::string_view getName(const MWWorld::ConstPtr& ptr) const override;
|
std::string_view getName(const MWWorld::ConstPtr& ptr) const override { return ""; }
|
||||||
///< \return name or ID; can return an empty string.
|
///< \return name or ID; can return an empty string.
|
||||||
|
|
||||||
bool hasToolTip(const MWWorld::ConstPtr& ptr) const override;
|
bool hasToolTip(const MWWorld::ConstPtr& ptr) const override { return false; }
|
||||||
///< @return true if this object has a tooltip when focused (default implementation: true)
|
///< @return true if this object has a tooltip when focused (default implementation: true)
|
||||||
|
|
||||||
std::string getModel(const MWWorld::ConstPtr& ptr) const override;
|
std::string getModel(const MWWorld::ConstPtr& ptr) const override { return getClassModel<Record>(ptr); }
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -7,6 +7,7 @@
|
|||||||
#include <components/debug/debuglog.hpp>
|
#include <components/debug/debuglog.hpp>
|
||||||
|
|
||||||
#include <components/esm/format.hpp>
|
#include <components/esm/format.hpp>
|
||||||
|
#include <components/esm/records.hpp>
|
||||||
#include <components/esm3/cellref.hpp>
|
#include <components/esm3/cellref.hpp>
|
||||||
#include <components/esm3/cellstate.hpp>
|
#include <components/esm3/cellstate.hpp>
|
||||||
#include <components/esm3/containerstate.hpp>
|
#include <components/esm3/containerstate.hpp>
|
||||||
|
@ -60,6 +60,17 @@ namespace ESM4
|
|||||||
struct Reference;
|
struct Reference;
|
||||||
struct Static;
|
struct Static;
|
||||||
struct Light;
|
struct Light;
|
||||||
|
struct Activator;
|
||||||
|
struct Potion;
|
||||||
|
struct Ammunition;
|
||||||
|
struct Armor;
|
||||||
|
struct Book;
|
||||||
|
struct Clothing;
|
||||||
|
struct Container;
|
||||||
|
struct Door;
|
||||||
|
struct Ingredient;
|
||||||
|
struct MiscItem;
|
||||||
|
struct Weapon;
|
||||||
}
|
}
|
||||||
|
|
||||||
namespace MWWorld
|
namespace MWWorld
|
||||||
@ -74,7 +85,10 @@ namespace MWWorld
|
|||||||
CellRefList<ESM::Lockpick>, CellRefList<ESM::Miscellaneous>, CellRefList<ESM::NPC>, CellRefList<ESM::Probe>,
|
CellRefList<ESM::Lockpick>, CellRefList<ESM::Miscellaneous>, CellRefList<ESM::NPC>, CellRefList<ESM::Probe>,
|
||||||
CellRefList<ESM::Repair>, CellRefList<ESM::Static>, CellRefList<ESM::Weapon>, CellRefList<ESM::BodyPart>,
|
CellRefList<ESM::Repair>, CellRefList<ESM::Static>, CellRefList<ESM::Weapon>, CellRefList<ESM::BodyPart>,
|
||||||
|
|
||||||
CellRefList<ESM4::Static>, CellRefList<ESM4::Light>>;
|
CellRefList<ESM4::Static>, CellRefList<ESM4::Light>, CellRefList<ESM4::Activator>, CellRefList<ESM4::Potion>,
|
||||||
|
CellRefList<ESM4::Ammunition>, CellRefList<ESM4::Armor>, CellRefList<ESM4::Book>, CellRefList<ESM4::Clothing>,
|
||||||
|
CellRefList<ESM4::Container>, CellRefList<ESM4::Door>, CellRefList<ESM4::Ingredient>,
|
||||||
|
CellRefList<ESM4::MiscItem>, CellRefList<ESM4::Weapon>>;
|
||||||
|
|
||||||
/// \brief Mutable state of a cell
|
/// \brief Mutable state of a cell
|
||||||
class CellStore
|
class CellStore
|
||||||
|
@ -14,10 +14,6 @@
|
|||||||
#include <components/misc/algorithm.hpp>
|
#include <components/misc/algorithm.hpp>
|
||||||
|
|
||||||
#include <components/esm4/common.hpp>
|
#include <components/esm4/common.hpp>
|
||||||
#include <components/esm4/loadcell.hpp>
|
|
||||||
#include <components/esm4/loadligh.hpp>
|
|
||||||
#include <components/esm4/loadrefr.hpp>
|
|
||||||
#include <components/esm4/loadstat.hpp>
|
|
||||||
#include <components/esm4/reader.hpp>
|
#include <components/esm4/reader.hpp>
|
||||||
#include <components/esm4/readerutils.hpp>
|
#include <components/esm4/readerutils.hpp>
|
||||||
#include <components/esmloader/load.hpp>
|
#include <components/esmloader/load.hpp>
|
||||||
@ -281,6 +277,16 @@ namespace MWWorld
|
|||||||
case ESM::REC_BODY:
|
case ESM::REC_BODY:
|
||||||
case ESM::REC_STAT4:
|
case ESM::REC_STAT4:
|
||||||
case ESM::REC_LIGH4:
|
case ESM::REC_LIGH4:
|
||||||
|
case ESM::REC_ACTI4:
|
||||||
|
case ESM::REC_ALCH4:
|
||||||
|
case ESM::REC_AMMO4:
|
||||||
|
case ESM::REC_ARMO4:
|
||||||
|
case ESM::REC_BOOK4:
|
||||||
|
case ESM::REC_CONT4:
|
||||||
|
case ESM::REC_DOOR4:
|
||||||
|
case ESM::REC_INGR4:
|
||||||
|
case ESM::REC_MISC4:
|
||||||
|
case ESM::REC_WEAP4:
|
||||||
return true;
|
return true;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -31,6 +31,17 @@ namespace ESM4
|
|||||||
struct Cell;
|
struct Cell;
|
||||||
struct Light;
|
struct Light;
|
||||||
struct Reference;
|
struct Reference;
|
||||||
|
struct Activator;
|
||||||
|
struct Potion;
|
||||||
|
struct Ammunition;
|
||||||
|
struct Armor;
|
||||||
|
struct Book;
|
||||||
|
struct Clothing;
|
||||||
|
struct Container;
|
||||||
|
struct Door;
|
||||||
|
struct Ingredient;
|
||||||
|
struct MiscItem;
|
||||||
|
struct Weapon;
|
||||||
}
|
}
|
||||||
|
|
||||||
namespace ESM
|
namespace ESM
|
||||||
@ -106,7 +117,10 @@ namespace MWWorld
|
|||||||
// Special entry which is hardcoded and not loaded from an ESM
|
// Special entry which is hardcoded and not loaded from an ESM
|
||||||
Store<ESM::Attribute>,
|
Store<ESM::Attribute>,
|
||||||
|
|
||||||
Store<ESM4::Static>, Store<ESM4::Cell>, Store<ESM4::Light>, Store<ESM4::Reference>>;
|
Store<ESM4::Static>, Store<ESM4::Cell>, Store<ESM4::Light>, Store<ESM4::Reference>, Store<ESM4::Activator>,
|
||||||
|
Store<ESM4::Potion>, Store<ESM4::Ammunition>, Store<ESM4::Armor>, Store<ESM4::Book>, Store<ESM4::Clothing>,
|
||||||
|
Store<ESM4::Container>, Store<ESM4::Door>, Store<ESM4::Ingredient>, Store<ESM4::MiscItem>,
|
||||||
|
Store<ESM4::Weapon>>;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
template <typename T>
|
template <typename T>
|
||||||
|
@ -8,10 +8,6 @@
|
|||||||
#include <components/esm/records.hpp>
|
#include <components/esm/records.hpp>
|
||||||
#include <components/esm3/esmreader.hpp>
|
#include <components/esm3/esmreader.hpp>
|
||||||
#include <components/esm3/esmwriter.hpp>
|
#include <components/esm3/esmwriter.hpp>
|
||||||
#include <components/esm4/loadcell.hpp>
|
|
||||||
#include <components/esm4/loadligh.hpp>
|
|
||||||
#include <components/esm4/loadrefr.hpp>
|
|
||||||
#include <components/esm4/loadstat.hpp>
|
|
||||||
#include <components/loadinglistener/loadinglistener.hpp>
|
#include <components/loadinglistener/loadinglistener.hpp>
|
||||||
#include <components/misc/rng.hpp>
|
#include <components/misc/rng.hpp>
|
||||||
|
|
||||||
@ -1266,7 +1262,18 @@ template class MWWorld::TypedDynamicStore<ESM::StartScript>;
|
|||||||
template class MWWorld::TypedDynamicStore<ESM::Static>;
|
template class MWWorld::TypedDynamicStore<ESM::Static>;
|
||||||
template class MWWorld::TypedDynamicStore<ESM::Weapon>;
|
template class MWWorld::TypedDynamicStore<ESM::Weapon>;
|
||||||
|
|
||||||
|
template class MWWorld::TypedDynamicStore<ESM4::Activator>;
|
||||||
|
template class MWWorld::TypedDynamicStore<ESM4::Potion>;
|
||||||
|
template class MWWorld::TypedDynamicStore<ESM4::Ammunition>;
|
||||||
|
template class MWWorld::TypedDynamicStore<ESM4::Armor>;
|
||||||
|
template class MWWorld::TypedDynamicStore<ESM4::Book>;
|
||||||
|
template class MWWorld::TypedDynamicStore<ESM4::Clothing>;
|
||||||
|
template class MWWorld::TypedDynamicStore<ESM4::Container>;
|
||||||
|
template class MWWorld::TypedDynamicStore<ESM4::Door>;
|
||||||
|
template class MWWorld::TypedDynamicStore<ESM4::Ingredient>;
|
||||||
|
template class MWWorld::TypedDynamicStore<ESM4::MiscItem>;
|
||||||
template class MWWorld::TypedDynamicStore<ESM4::Static>;
|
template class MWWorld::TypedDynamicStore<ESM4::Static>;
|
||||||
template class MWWorld::TypedDynamicStore<ESM4::Light>;
|
template class MWWorld::TypedDynamicStore<ESM4::Light>;
|
||||||
template class MWWorld::TypedDynamicStore<ESM4::Reference>;
|
template class MWWorld::TypedDynamicStore<ESM4::Reference>;
|
||||||
template class MWWorld::TypedDynamicStore<ESM4::Cell>;
|
template class MWWorld::TypedDynamicStore<ESM4::Cell>;
|
||||||
|
template class MWWorld::TypedDynamicStore<ESM4::Weapon>;
|
||||||
|
@ -42,6 +42,23 @@
|
|||||||
#include "components/esm3/loadsscr.hpp"
|
#include "components/esm3/loadsscr.hpp"
|
||||||
#include "components/esm3/loadstat.hpp"
|
#include "components/esm3/loadstat.hpp"
|
||||||
#include "components/esm3/loadweap.hpp"
|
#include "components/esm3/loadweap.hpp"
|
||||||
|
|
||||||
|
#include <components/esm4/loadacti.hpp>
|
||||||
|
#include <components/esm4/loadalch.hpp>
|
||||||
|
#include <components/esm4/loadammo.hpp>
|
||||||
|
#include <components/esm4/loadarmo.hpp>
|
||||||
|
#include <components/esm4/loadbook.hpp>
|
||||||
|
#include <components/esm4/loadcell.hpp>
|
||||||
|
#include <components/esm4/loadclot.hpp>
|
||||||
|
#include <components/esm4/loadcont.hpp>
|
||||||
|
#include <components/esm4/loaddoor.hpp>
|
||||||
|
#include <components/esm4/loadingr.hpp>
|
||||||
|
#include <components/esm4/loadligh.hpp>
|
||||||
|
#include <components/esm4/loadmisc.hpp>
|
||||||
|
#include <components/esm4/loadrefr.hpp>
|
||||||
|
#include <components/esm4/loadstat.hpp>
|
||||||
|
#include <components/esm4/loadweap.hpp>
|
||||||
|
|
||||||
#include "defs.hpp"
|
#include "defs.hpp"
|
||||||
|
|
||||||
// Special records which are not loaded from ESM
|
// Special records which are not loaded from ESM
|
||||||
|
@ -34,8 +34,7 @@
|
|||||||
|
|
||||||
void ESM4::Activator::load(ESM4::Reader& reader)
|
void ESM4::Activator::load(ESM4::Reader& reader)
|
||||||
{
|
{
|
||||||
mFormId = reader.hdr().record.getFormId();
|
mId = reader.getRefIdFromHeader();
|
||||||
reader.adjustFormId(mFormId);
|
|
||||||
mFlags = reader.hdr().record.flags;
|
mFlags = reader.hdr().record.flags;
|
||||||
|
|
||||||
while (reader.getSubRecordHeader())
|
while (reader.getSubRecordHeader())
|
||||||
|
@ -30,6 +30,9 @@
|
|||||||
#include <cstdint>
|
#include <cstdint>
|
||||||
#include <string>
|
#include <string>
|
||||||
|
|
||||||
|
#include <components/esm/defs.hpp>
|
||||||
|
#include <components/esm/refid.hpp>
|
||||||
|
|
||||||
#include "formid.hpp"
|
#include "formid.hpp"
|
||||||
|
|
||||||
namespace ESM4
|
namespace ESM4
|
||||||
@ -39,7 +42,7 @@ namespace ESM4
|
|||||||
|
|
||||||
struct Activator
|
struct Activator
|
||||||
{
|
{
|
||||||
FormId mFormId; // from the header
|
ESM::RefId mId; // from the header
|
||||||
std::uint32_t mFlags; // from the header, see enum type RecordFlag for details
|
std::uint32_t mFlags; // from the header, see enum type RecordFlag for details
|
||||||
|
|
||||||
std::string mEditorId;
|
std::string mEditorId;
|
||||||
@ -61,6 +64,7 @@ namespace ESM4
|
|||||||
// void save(ESM4::Writer& writer) const;
|
// void save(ESM4::Writer& writer) const;
|
||||||
|
|
||||||
// void blank();
|
// void blank();
|
||||||
|
static constexpr ESM::RecNameInts sRecordId = ESM::RecNameInts::REC_ACTI4;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -35,8 +35,7 @@
|
|||||||
|
|
||||||
void ESM4::Potion::load(ESM4::Reader& reader)
|
void ESM4::Potion::load(ESM4::Reader& reader)
|
||||||
{
|
{
|
||||||
mFormId = reader.hdr().record.getFormId();
|
mId = reader.getRefIdFromHeader();
|
||||||
reader.adjustFormId(mFormId);
|
|
||||||
mFlags = reader.hdr().record.flags;
|
mFlags = reader.hdr().record.flags;
|
||||||
|
|
||||||
while (reader.getSubRecordHeader())
|
while (reader.getSubRecordHeader())
|
||||||
|
@ -30,6 +30,9 @@
|
|||||||
#include <cstdint>
|
#include <cstdint>
|
||||||
#include <string>
|
#include <string>
|
||||||
|
|
||||||
|
#include <components/esm/defs.hpp>
|
||||||
|
#include <components/esm/refid.hpp>
|
||||||
|
|
||||||
#include "effect.hpp" // FormId, ScriptEffect
|
#include "effect.hpp" // FormId, ScriptEffect
|
||||||
|
|
||||||
namespace ESM4
|
namespace ESM4
|
||||||
@ -55,7 +58,7 @@ namespace ESM4
|
|||||||
};
|
};
|
||||||
#pragma pack(pop)
|
#pragma pack(pop)
|
||||||
|
|
||||||
FormId mFormId; // from the header
|
ESM::RefId mId; // from the header
|
||||||
std::uint32_t mFlags; // from the header, see enum type RecordFlag for details
|
std::uint32_t mFlags; // from the header, see enum type RecordFlag for details
|
||||||
|
|
||||||
std::string mEditorId;
|
std::string mEditorId;
|
||||||
@ -79,6 +82,7 @@ namespace ESM4
|
|||||||
// void save(ESM4::Writer& writer) const;
|
// void save(ESM4::Writer& writer) const;
|
||||||
|
|
||||||
// void blank();
|
// void blank();
|
||||||
|
static constexpr ESM::RecNameInts sRecordId = ESM::RecNameInts::REC_ALCH4;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -33,8 +33,7 @@
|
|||||||
|
|
||||||
void ESM4::Ammunition::load(ESM4::Reader& reader)
|
void ESM4::Ammunition::load(ESM4::Reader& reader)
|
||||||
{
|
{
|
||||||
mFormId = reader.hdr().record.getFormId();
|
mId = reader.getRefIdFromHeader();
|
||||||
reader.adjustFormId(mFormId);
|
|
||||||
mFlags = reader.hdr().record.flags;
|
mFlags = reader.hdr().record.flags;
|
||||||
|
|
||||||
while (reader.getSubRecordHeader())
|
while (reader.getSubRecordHeader())
|
||||||
|
@ -31,6 +31,9 @@
|
|||||||
#include <string>
|
#include <string>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
|
#include <components/esm/defs.hpp>
|
||||||
|
#include <components/esm/refid.hpp>
|
||||||
|
|
||||||
#include "formid.hpp"
|
#include "formid.hpp"
|
||||||
|
|
||||||
namespace ESM4
|
namespace ESM4
|
||||||
@ -54,7 +57,7 @@ namespace ESM4
|
|||||||
float mConsumedPercentage{ 0.f };
|
float mConsumedPercentage{ 0.f };
|
||||||
};
|
};
|
||||||
|
|
||||||
FormId mFormId; // from the header
|
ESM::RefId mId; // from the header
|
||||||
std::uint32_t mFlags; // from the header, see enum type RecordFlag for details
|
std::uint32_t mFlags; // from the header, see enum type RecordFlag for details
|
||||||
|
|
||||||
std::string mEditorId;
|
std::string mEditorId;
|
||||||
@ -84,6 +87,7 @@ namespace ESM4
|
|||||||
// void save(ESM4::Writer& writer) const;
|
// void save(ESM4::Writer& writer) const;
|
||||||
|
|
||||||
// void blank();
|
// void blank();
|
||||||
|
static constexpr ESM::RecNameInts sRecordId = ESM::RecNameInts::REC_AMMO4;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -34,8 +34,7 @@
|
|||||||
|
|
||||||
void ESM4::Armor::load(ESM4::Reader& reader)
|
void ESM4::Armor::load(ESM4::Reader& reader)
|
||||||
{
|
{
|
||||||
mFormId = reader.hdr().record.getFormId();
|
mId = reader.getRefIdFromHeader();
|
||||||
reader.adjustFormId(mFormId);
|
|
||||||
mFlags = reader.hdr().record.flags;
|
mFlags = reader.hdr().record.flags;
|
||||||
std::uint32_t esmVer = reader.esmVersion();
|
std::uint32_t esmVer = reader.esmVersion();
|
||||||
mIsFONV = esmVer == ESM::VER_132 || esmVer == ESM::VER_133 || esmVer == ESM::VER_134;
|
mIsFONV = esmVer == ESM::VER_132 || esmVer == ESM::VER_133 || esmVer == ESM::VER_134;
|
||||||
|
@ -31,6 +31,9 @@
|
|||||||
#include <string>
|
#include <string>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
|
#include <components/esm/defs.hpp>
|
||||||
|
#include <components/esm/refid.hpp>
|
||||||
|
|
||||||
#include "formid.hpp"
|
#include "formid.hpp"
|
||||||
|
|
||||||
namespace ESM4
|
namespace ESM4
|
||||||
@ -148,7 +151,7 @@ namespace ESM4
|
|||||||
};
|
};
|
||||||
#pragma pack(pop)
|
#pragma pack(pop)
|
||||||
|
|
||||||
FormId mFormId; // from the header
|
ESM::RefId mId; // from the header
|
||||||
std::uint32_t mFlags; // from the header, see enum type RecordFlag for details
|
std::uint32_t mFlags; // from the header, see enum type RecordFlag for details
|
||||||
|
|
||||||
bool mIsTES4; // TODO: check that these match the general flags
|
bool mIsTES4; // TODO: check that these match the general flags
|
||||||
@ -187,6 +190,7 @@ namespace ESM4
|
|||||||
// void save(ESM4::Writer& writer) const;
|
// void save(ESM4::Writer& writer) const;
|
||||||
|
|
||||||
// void blank();
|
// void blank();
|
||||||
|
static constexpr ESM::RecNameInts sRecordId = ESM::RecNameInts::REC_ARMO4;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -33,8 +33,7 @@
|
|||||||
|
|
||||||
void ESM4::Book::load(ESM4::Reader& reader)
|
void ESM4::Book::load(ESM4::Reader& reader)
|
||||||
{
|
{
|
||||||
mFormId = reader.hdr().record.getFormId();
|
mId = reader.getRefIdFromHeader();
|
||||||
reader.adjustFormId(mFormId);
|
|
||||||
mFlags = reader.hdr().record.flags;
|
mFlags = reader.hdr().record.flags;
|
||||||
// std::uint32_t esmVer = reader.esmVersion(); // currently unused
|
// std::uint32_t esmVer = reader.esmVersion(); // currently unused
|
||||||
|
|
||||||
|
@ -30,6 +30,9 @@
|
|||||||
#include <cstdint>
|
#include <cstdint>
|
||||||
#include <string>
|
#include <string>
|
||||||
|
|
||||||
|
#include <components/esm/defs.hpp>
|
||||||
|
#include <components/esm/refid.hpp>
|
||||||
|
|
||||||
#include "formid.hpp"
|
#include "formid.hpp"
|
||||||
|
|
||||||
namespace ESM4
|
namespace ESM4
|
||||||
@ -81,7 +84,7 @@ namespace ESM4
|
|||||||
float weight;
|
float weight;
|
||||||
};
|
};
|
||||||
|
|
||||||
FormId mFormId; // from the header
|
ESM::RefId mId; // from the header
|
||||||
std::uint32_t mFlags; // from the header, see enum type RecordFlag for details
|
std::uint32_t mFlags; // from the header, see enum type RecordFlag for details
|
||||||
|
|
||||||
std::string mEditorId;
|
std::string mEditorId;
|
||||||
@ -105,6 +108,7 @@ namespace ESM4
|
|||||||
// void save(ESM4::Writer& writer) const;
|
// void save(ESM4::Writer& writer) const;
|
||||||
|
|
||||||
// void blank();
|
// void blank();
|
||||||
|
static constexpr ESM::RecNameInts sRecordId = ESM::RecNameInts::REC_BOOK4;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -34,8 +34,7 @@
|
|||||||
|
|
||||||
void ESM4::Clothing::load(ESM4::Reader& reader)
|
void ESM4::Clothing::load(ESM4::Reader& reader)
|
||||||
{
|
{
|
||||||
mFormId = reader.hdr().record.getFormId();
|
mId = reader.getRefIdFromHeader();
|
||||||
reader.adjustFormId(mFormId);
|
|
||||||
mFlags = reader.hdr().record.flags;
|
mFlags = reader.hdr().record.flags;
|
||||||
|
|
||||||
while (reader.getSubRecordHeader())
|
while (reader.getSubRecordHeader())
|
||||||
|
@ -30,6 +30,9 @@
|
|||||||
#include <cstdint>
|
#include <cstdint>
|
||||||
#include <string>
|
#include <string>
|
||||||
|
|
||||||
|
#include <components/esm/defs.hpp>
|
||||||
|
#include <components/esm/refid.hpp>
|
||||||
|
|
||||||
#include "formid.hpp"
|
#include "formid.hpp"
|
||||||
|
|
||||||
namespace ESM4
|
namespace ESM4
|
||||||
@ -47,7 +50,7 @@ namespace ESM4
|
|||||||
};
|
};
|
||||||
#pragma pack(pop)
|
#pragma pack(pop)
|
||||||
|
|
||||||
FormId mFormId; // from the header
|
ESM::RefId mId; // from the header
|
||||||
std::uint32_t mFlags; // from the header, see enum type RecordFlag for details
|
std::uint32_t mFlags; // from the header, see enum type RecordFlag for details
|
||||||
|
|
||||||
std::string mEditorId;
|
std::string mEditorId;
|
||||||
@ -74,6 +77,7 @@ namespace ESM4
|
|||||||
// void save(ESM4::Writer& writer) const;
|
// void save(ESM4::Writer& writer) const;
|
||||||
|
|
||||||
// void blank();
|
// void blank();
|
||||||
|
static constexpr ESM::RecNameInts sRecordId = ESM::RecNameInts::REC_CLOT4;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -33,8 +33,7 @@
|
|||||||
|
|
||||||
void ESM4::Container::load(ESM4::Reader& reader)
|
void ESM4::Container::load(ESM4::Reader& reader)
|
||||||
{
|
{
|
||||||
mFormId = reader.hdr().record.getFormId();
|
mId = reader.getRefIdFromHeader();
|
||||||
reader.adjustFormId(mFormId);
|
|
||||||
mFlags = reader.hdr().record.flags;
|
mFlags = reader.hdr().record.flags;
|
||||||
|
|
||||||
while (reader.getSubRecordHeader())
|
while (reader.getSubRecordHeader())
|
||||||
|
@ -31,6 +31,9 @@
|
|||||||
#include <string>
|
#include <string>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
|
#include <components/esm/defs.hpp>
|
||||||
|
#include <components/esm/refid.hpp>
|
||||||
|
|
||||||
#include "formid.hpp"
|
#include "formid.hpp"
|
||||||
#include "inventory.hpp" // InventoryItem
|
#include "inventory.hpp" // InventoryItem
|
||||||
|
|
||||||
@ -41,7 +44,7 @@ namespace ESM4
|
|||||||
|
|
||||||
struct Container
|
struct Container
|
||||||
{
|
{
|
||||||
FormId mFormId; // from the header
|
ESM::RefId mId; // from the header
|
||||||
std::uint32_t mFlags; // from the header, see enum type RecordFlag for details
|
std::uint32_t mFlags; // from the header, see enum type RecordFlag for details
|
||||||
|
|
||||||
std::string mEditorId;
|
std::string mEditorId;
|
||||||
@ -62,6 +65,7 @@ namespace ESM4
|
|||||||
// void save(ESM4::Writer& writer) const;
|
// void save(ESM4::Writer& writer) const;
|
||||||
|
|
||||||
// void blank();
|
// void blank();
|
||||||
|
static constexpr ESM::RecNameInts sRecordId = ESM::RecNameInts::REC_CONT4;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -33,8 +33,7 @@
|
|||||||
|
|
||||||
void ESM4::Door::load(ESM4::Reader& reader)
|
void ESM4::Door::load(ESM4::Reader& reader)
|
||||||
{
|
{
|
||||||
mFormId = reader.hdr().record.getFormId();
|
mId = reader.getRefIdFromHeader();
|
||||||
reader.adjustFormId(mFormId);
|
|
||||||
mFlags = reader.hdr().record.flags;
|
mFlags = reader.hdr().record.flags;
|
||||||
|
|
||||||
while (reader.getSubRecordHeader())
|
while (reader.getSubRecordHeader())
|
||||||
|
@ -30,6 +30,9 @@
|
|||||||
#include <cstdint>
|
#include <cstdint>
|
||||||
#include <string>
|
#include <string>
|
||||||
|
|
||||||
|
#include <components/esm/defs.hpp>
|
||||||
|
#include <components/esm/refid.hpp>
|
||||||
|
|
||||||
#include "formid.hpp"
|
#include "formid.hpp"
|
||||||
|
|
||||||
namespace ESM4
|
namespace ESM4
|
||||||
@ -47,7 +50,7 @@ namespace ESM4
|
|||||||
Flag_MinimalUse = 0x08
|
Flag_MinimalUse = 0x08
|
||||||
};
|
};
|
||||||
|
|
||||||
FormId mFormId; // from the header
|
ESM::RefId mId; // from the header
|
||||||
std::uint32_t mFlags; // from the header, see enum type RecordFlag for details
|
std::uint32_t mFlags; // from the header, see enum type RecordFlag for details
|
||||||
|
|
||||||
std::string mEditorId;
|
std::string mEditorId;
|
||||||
@ -67,6 +70,7 @@ namespace ESM4
|
|||||||
// void save(ESM4::Writer& writer) const;
|
// void save(ESM4::Writer& writer) const;
|
||||||
|
|
||||||
// void blank();
|
// void blank();
|
||||||
|
static constexpr ESM::RecNameInts sRecordId = ESM::RecNameInts::REC_DOOR4;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -34,8 +34,7 @@
|
|||||||
|
|
||||||
void ESM4::Ingredient::load(ESM4::Reader& reader)
|
void ESM4::Ingredient::load(ESM4::Reader& reader)
|
||||||
{
|
{
|
||||||
mFormId = reader.hdr().record.getFormId();
|
mId = reader.getRefIdFromHeader();
|
||||||
reader.adjustFormId(mFormId);
|
|
||||||
mFlags = reader.hdr().record.flags;
|
mFlags = reader.hdr().record.flags;
|
||||||
|
|
||||||
while (reader.getSubRecordHeader())
|
while (reader.getSubRecordHeader())
|
||||||
|
@ -30,6 +30,9 @@
|
|||||||
#include <cstdint>
|
#include <cstdint>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
|
#include <components/esm/defs.hpp>
|
||||||
|
#include <components/esm/refid.hpp>
|
||||||
|
|
||||||
#include "effect.hpp"
|
#include "effect.hpp"
|
||||||
|
|
||||||
namespace ESM4
|
namespace ESM4
|
||||||
@ -53,7 +56,7 @@ namespace ESM4
|
|||||||
};
|
};
|
||||||
#pragma pack(pop)
|
#pragma pack(pop)
|
||||||
|
|
||||||
FormId mFormId; // from the header
|
ESM::RefId mId; // from the header
|
||||||
std::uint32_t mFlags; // from the header, see enum type RecordFlag for details
|
std::uint32_t mFlags; // from the header, see enum type RecordFlag for details
|
||||||
|
|
||||||
std::string mEditorId;
|
std::string mEditorId;
|
||||||
@ -74,6 +77,7 @@ namespace ESM4
|
|||||||
// void save(ESM4::Writer& writer) const;
|
// void save(ESM4::Writer& writer) const;
|
||||||
|
|
||||||
// void blank();
|
// void blank();
|
||||||
|
static constexpr ESM::RecNameInts sRecordId = ESM::RecNameInts::REC_INGR4;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -33,9 +33,7 @@
|
|||||||
|
|
||||||
void ESM4::Light::load(ESM4::Reader& reader)
|
void ESM4::Light::load(ESM4::Reader& reader)
|
||||||
{
|
{
|
||||||
FormId formId = reader.hdr().record.getFormId();
|
mId = reader.getRefIdFromHeader();
|
||||||
reader.adjustFormId(formId);
|
|
||||||
mId = ESM::RefId::formIdRefId(formId);
|
|
||||||
mFlags = reader.hdr().record.flags;
|
mFlags = reader.hdr().record.flags;
|
||||||
std::uint32_t esmVer = reader.esmVersion();
|
std::uint32_t esmVer = reader.esmVersion();
|
||||||
bool isFONV = esmVer == ESM::VER_132 || esmVer == ESM::VER_133 || esmVer == ESM::VER_134;
|
bool isFONV = esmVer == ESM::VER_132 || esmVer == ESM::VER_133 || esmVer == ESM::VER_134;
|
||||||
|
@ -33,8 +33,7 @@
|
|||||||
|
|
||||||
void ESM4::MiscItem::load(ESM4::Reader& reader)
|
void ESM4::MiscItem::load(ESM4::Reader& reader)
|
||||||
{
|
{
|
||||||
mFormId = reader.hdr().record.getFormId();
|
mId = reader.getRefIdFromHeader();
|
||||||
reader.adjustFormId(mFormId);
|
|
||||||
mFlags = reader.hdr().record.flags;
|
mFlags = reader.hdr().record.flags;
|
||||||
|
|
||||||
while (reader.getSubRecordHeader())
|
while (reader.getSubRecordHeader())
|
||||||
|
@ -30,6 +30,9 @@
|
|||||||
#include <cstdint>
|
#include <cstdint>
|
||||||
#include <string>
|
#include <string>
|
||||||
|
|
||||||
|
#include <components/esm/defs.hpp>
|
||||||
|
#include <components/esm/refid.hpp>
|
||||||
|
|
||||||
#include "formid.hpp"
|
#include "formid.hpp"
|
||||||
|
|
||||||
namespace ESM4
|
namespace ESM4
|
||||||
@ -47,7 +50,7 @@ namespace ESM4
|
|||||||
};
|
};
|
||||||
#pragma pack(pop)
|
#pragma pack(pop)
|
||||||
|
|
||||||
FormId mFormId; // from the header
|
ESM::RefId mId; // from the header
|
||||||
std::uint32_t mFlags; // from the header, see enum type RecordFlag for details
|
std::uint32_t mFlags; // from the header, see enum type RecordFlag for details
|
||||||
|
|
||||||
std::string mEditorId;
|
std::string mEditorId;
|
||||||
@ -68,6 +71,7 @@ namespace ESM4
|
|||||||
// void save(ESM4::Writer& writer) const;
|
// void save(ESM4::Writer& writer) const;
|
||||||
|
|
||||||
// void blank();
|
// void blank();
|
||||||
|
static constexpr ESM::RecNameInts sRecordId = ESM::RecNameInts::REC_MISC4;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -34,9 +34,7 @@
|
|||||||
|
|
||||||
void ESM4::Static::load(ESM4::Reader& reader)
|
void ESM4::Static::load(ESM4::Reader& reader)
|
||||||
{
|
{
|
||||||
mFormId = reader.hdr().record.getFormId();
|
mId = reader.getRefIdFromHeader();
|
||||||
reader.adjustFormId(mFormId);
|
|
||||||
mId = ESM::RefId::formIdRefId(mFormId);
|
|
||||||
mFlags = reader.hdr().record.flags;
|
mFlags = reader.hdr().record.flags;
|
||||||
|
|
||||||
while (reader.getSubRecordHeader())
|
while (reader.getSubRecordHeader())
|
||||||
|
@ -33,8 +33,7 @@
|
|||||||
|
|
||||||
void ESM4::Weapon::load(ESM4::Reader& reader)
|
void ESM4::Weapon::load(ESM4::Reader& reader)
|
||||||
{
|
{
|
||||||
mFormId = reader.hdr().record.getFormId();
|
mId = reader.getRefIdFromHeader();
|
||||||
reader.adjustFormId(mFormId);
|
|
||||||
mFlags = reader.hdr().record.flags;
|
mFlags = reader.hdr().record.flags;
|
||||||
std::uint32_t esmVer = reader.esmVersion();
|
std::uint32_t esmVer = reader.esmVersion();
|
||||||
bool isFONV = esmVer == ESM::VER_132 || esmVer == ESM::VER_133 || esmVer == ESM::VER_134;
|
bool isFONV = esmVer == ESM::VER_132 || esmVer == ESM::VER_133 || esmVer == ESM::VER_134;
|
||||||
|
@ -30,6 +30,9 @@
|
|||||||
#include <cstdint>
|
#include <cstdint>
|
||||||
#include <string>
|
#include <string>
|
||||||
|
|
||||||
|
#include <components/esm/defs.hpp>
|
||||||
|
#include <components/esm/refid.hpp>
|
||||||
|
|
||||||
#include "formid.hpp"
|
#include "formid.hpp"
|
||||||
|
|
||||||
namespace ESM4
|
namespace ESM4
|
||||||
@ -72,7 +75,7 @@ namespace ESM4
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
FormId mFormId; // from the header
|
ESM::RefId mId; // from the header
|
||||||
std::uint32_t mFlags; // from the header, see enum type RecordFlag for details
|
std::uint32_t mFlags; // from the header, see enum type RecordFlag for details
|
||||||
|
|
||||||
std::string mEditorId;
|
std::string mEditorId;
|
||||||
@ -97,6 +100,7 @@ namespace ESM4
|
|||||||
// void save(ESM4::Writer& writer) const;
|
// void save(ESM4::Writer& writer) const;
|
||||||
|
|
||||||
// void blank();
|
// void blank();
|
||||||
|
static constexpr ESM::RecNameInts sRecordId = ESM::RecNameInts::REC_WEAP4;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -603,7 +603,7 @@ namespace ESM4
|
|||||||
// FIXME: Apparently ModIndex '00' in an ESP means the object is defined in one of its masters.
|
// FIXME: Apparently ModIndex '00' in an ESP means the object is defined in one of its masters.
|
||||||
// This means we may need to search multiple times to get the correct id.
|
// This means we may need to search multiple times to get the correct id.
|
||||||
// (see https://www.uesp.net/wiki/Tes4Mod:Formid#ModIndex_Zero)
|
// (see https://www.uesp.net/wiki/Tes4Mod:Formid#ModIndex_Zero)
|
||||||
void Reader::adjustFormId(FormId& id)
|
void Reader::adjustFormId(FormId& id) const
|
||||||
{
|
{
|
||||||
if (id.hasContentFile() && id.mContentFile < static_cast<int>(mCtx.parentFileIndices.size()))
|
if (id.hasContentFile() && id.mContentFile < static_cast<int>(mCtx.parentFileIndices.size()))
|
||||||
id.mContentFile = mCtx.parentFileIndices[id.mContentFile];
|
id.mContentFile = mCtx.parentFileIndices[id.mContentFile];
|
||||||
@ -611,7 +611,7 @@ namespace ESM4
|
|||||||
id.mContentFile = mCtx.modIndex;
|
id.mContentFile = mCtx.modIndex;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Reader::adjustFormId(FormId32& id)
|
void Reader::adjustFormId(FormId32& id) const
|
||||||
{
|
{
|
||||||
FormId formId = FormId::fromUint32(id);
|
FormId formId = FormId::fromUint32(id);
|
||||||
adjustFormId(formId);
|
adjustFormId(formId);
|
||||||
@ -629,6 +629,13 @@ namespace ESM4
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ESM::FormIdRefId Reader::getRefIdFromHeader() const
|
||||||
|
{
|
||||||
|
FormId formId = hdr().record.getFormId();
|
||||||
|
adjustFormId(formId);
|
||||||
|
return ESM::FormIdRefId(formId);
|
||||||
|
}
|
||||||
|
|
||||||
void Reader::adjustGRUPFormId()
|
void Reader::adjustGRUPFormId()
|
||||||
{
|
{
|
||||||
adjustFormId(mCtx.recordHeader.group.label.value);
|
adjustFormId(mCtx.recordHeader.group.label.value);
|
||||||
|
@ -33,6 +33,7 @@
|
|||||||
#include "common.hpp"
|
#include "common.hpp"
|
||||||
#include "loadtes4.hpp"
|
#include "loadtes4.hpp"
|
||||||
|
|
||||||
|
#include <components/esm/formidrefid.hpp>
|
||||||
#include <components/files/istreamptr.hpp>
|
#include <components/files/istreamptr.hpp>
|
||||||
#include <components/vfs/manager.hpp>
|
#include <components/vfs/manager.hpp>
|
||||||
|
|
||||||
@ -333,12 +334,13 @@ namespace ESM4
|
|||||||
}
|
}
|
||||||
|
|
||||||
// ModIndex adjusted formId according to master file dependencies
|
// ModIndex adjusted formId according to master file dependencies
|
||||||
void adjustFormId(FormId& id);
|
void adjustFormId(FormId& id) const;
|
||||||
|
|
||||||
// Temporary. Doesn't support mod index > 255
|
// Temporary. Doesn't support mod index > 255
|
||||||
void adjustFormId(FormId32& id);
|
void adjustFormId(FormId32& id) const;
|
||||||
|
|
||||||
bool getFormId(FormId& id);
|
bool getFormId(FormId& id);
|
||||||
|
ESM::FormIdRefId getRefIdFromHeader() const;
|
||||||
|
|
||||||
void adjustGRUPFormId();
|
void adjustGRUPFormId();
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user