2014-08-26 21:55:31 +06:00
|
|
|
#ifndef CSM_TOOLS_BODYPARTCHECK_H
|
|
|
|
#define CSM_TOOLS_BODYPARTCHECK_H
|
|
|
|
|
2022-01-22 15:58:41 +01:00
|
|
|
#include <components/esm3/loadrace.hpp>
|
2014-08-26 21:55:31 +06:00
|
|
|
|
|
|
|
#include "../world/idcollection.hpp"
|
|
|
|
|
|
|
|
#include "../doc/stage.hpp"
|
|
|
|
|
2022-10-19 19:02:00 +02:00
|
|
|
namespace CSMDoc
|
|
|
|
{
|
|
|
|
class Messages;
|
|
|
|
}
|
|
|
|
|
|
|
|
namespace CSMWorld
|
|
|
|
{
|
|
|
|
class Resources;
|
|
|
|
}
|
|
|
|
|
|
|
|
namespace ESM
|
|
|
|
{
|
|
|
|
struct BodyPart;
|
|
|
|
struct Race;
|
|
|
|
}
|
|
|
|
|
2014-08-26 21:55:31 +06:00
|
|
|
namespace CSMTools
|
|
|
|
{
|
|
|
|
/// \brief VerifyStage: make sure that body part records are internally consistent
|
|
|
|
class BodyPartCheckStage : public CSMDoc::Stage
|
|
|
|
{
|
|
|
|
const CSMWorld::IdCollection<ESM::BodyPart>& mBodyParts;
|
|
|
|
const CSMWorld::Resources& mMeshes;
|
|
|
|
const CSMWorld::IdCollection<ESM::Race>& mRaces;
|
2018-06-20 00:20:03 +02:00
|
|
|
bool mIgnoreBaseRecords;
|
2014-08-26 21:55:31 +06:00
|
|
|
|
|
|
|
public:
|
|
|
|
BodyPartCheckStage(const CSMWorld::IdCollection<ESM::BodyPart>& bodyParts, const CSMWorld::Resources& meshes,
|
|
|
|
const CSMWorld::IdCollection<ESM::Race>& races);
|
|
|
|
|
2020-10-16 22:18:54 +04:00
|
|
|
int setup() override;
|
2014-08-26 21:55:31 +06:00
|
|
|
///< \return number of steps
|
|
|
|
|
2020-10-16 22:18:54 +04:00
|
|
|
void perform(int stage, CSMDoc::Messages& messages) override;
|
2014-08-26 21:55:31 +06:00
|
|
|
///< Messages resulting from this tage will be appended to \a messages.
|
|
|
|
};
|
|
|
|
}
|
|
|
|
|
2015-03-11 10:54:45 -04:00
|
|
|
#endif
|