mirror of
https://github.com/OpenMW/openmw.git
synced 2025-02-02 08:15:54 +00:00
20da0892ef
Slowly moving through the open-cs errors Good progress in openCS Very good progress on openCS Getting closer with openCS OpenCS compiles and runs! Didn't have time to test it all though ix openMW everything compiles on windows?? Fix gcc Fix Clang
95 lines
3.4 KiB
C++
95 lines
3.4 KiB
C++
#ifndef CSM_TOOLS_TOPICINFOCHECK_HPP
|
|
#define CSM_TOOLS_TOPICINFOCHECK_HPP
|
|
|
|
#include <set>
|
|
#include <string>
|
|
|
|
#include <apps/opencs/model/world/universalid.hpp>
|
|
|
|
#include <components/esm3/loadinfo.hpp>
|
|
|
|
#include "../world/idcollection.hpp"
|
|
|
|
#include "../doc/stage.hpp"
|
|
|
|
namespace CSMDoc
|
|
{
|
|
class Messages;
|
|
}
|
|
|
|
namespace CSMWorld
|
|
{
|
|
class InfoCollection;
|
|
class RefIdData;
|
|
class Resources;
|
|
struct Cell;
|
|
}
|
|
|
|
namespace ESM
|
|
{
|
|
struct Class;
|
|
struct Dialogue;
|
|
struct Faction;
|
|
struct GameSetting;
|
|
struct Global;
|
|
struct Race;
|
|
struct Region;
|
|
}
|
|
|
|
namespace CSMTools
|
|
{
|
|
/// \brief VerifyStage: check topics
|
|
class TopicInfoCheckStage : public CSMDoc::Stage
|
|
{
|
|
public:
|
|
TopicInfoCheckStage(const CSMWorld::InfoCollection& topicInfos,
|
|
const CSMWorld::IdCollection<CSMWorld::Cell>& cells, const CSMWorld::IdCollection<ESM::Class>& classes,
|
|
const CSMWorld::IdCollection<ESM::Faction>& factions, const CSMWorld::IdCollection<ESM::GameSetting>& gmsts,
|
|
const CSMWorld::IdCollection<ESM::Global>& globals, const CSMWorld::IdCollection<ESM::Dialogue>& journals,
|
|
const CSMWorld::IdCollection<ESM::Race>& races, const CSMWorld::IdCollection<ESM::Region>& regions,
|
|
const CSMWorld::IdCollection<ESM::Dialogue>& topics, const CSMWorld::RefIdData& referencables,
|
|
const CSMWorld::Resources& soundFiles);
|
|
|
|
int setup() override;
|
|
///< \return number of steps
|
|
|
|
void perform(int step, CSMDoc::Messages& messages) override;
|
|
///< Messages resulting from this stage will be appended to \a messages
|
|
|
|
private:
|
|
const CSMWorld::InfoCollection& mTopicInfos;
|
|
|
|
const CSMWorld::IdCollection<CSMWorld::Cell>& mCells;
|
|
const CSMWorld::IdCollection<ESM::Class>& mClasses;
|
|
const CSMWorld::IdCollection<ESM::Faction>& mFactions;
|
|
const CSMWorld::IdCollection<ESM::GameSetting>& mGameSettings;
|
|
const CSMWorld::IdCollection<ESM::Global>& mGlobals;
|
|
const CSMWorld::IdCollection<ESM::Dialogue>& mJournals;
|
|
const CSMWorld::IdCollection<ESM::Race>& mRaces;
|
|
const CSMWorld::IdCollection<ESM::Region>& mRegions;
|
|
const CSMWorld::IdCollection<ESM::Dialogue>& mTopics;
|
|
|
|
const CSMWorld::RefIdData& mReferencables;
|
|
const CSMWorld::Resources& mSoundFiles;
|
|
|
|
std::set<std::string> mCellNames;
|
|
|
|
bool mIgnoreBaseRecords;
|
|
|
|
// These return false when not successful and write an error
|
|
bool verifyActor(const ESM::RefId& name, const CSMWorld::UniversalId& id, CSMDoc::Messages& messages);
|
|
bool verifyCell(const ESM::RefId& name, const CSMWorld::UniversalId& id, CSMDoc::Messages& messages);
|
|
bool verifyFactionRank(
|
|
const ESM::RefId& name, int rank, const CSMWorld::UniversalId& id, CSMDoc::Messages& messages);
|
|
bool verifyItem(const ESM::RefId& name, const CSMWorld::UniversalId& id, CSMDoc::Messages& messages);
|
|
bool verifySelectStruct(
|
|
const ESM::DialInfo::SelectStruct& select, const CSMWorld::UniversalId& id, CSMDoc::Messages& messages);
|
|
bool verifySound(const std::string& name, const CSMWorld::UniversalId& id, CSMDoc::Messages& messages);
|
|
|
|
template <typename T>
|
|
bool verifyId(const ESM::RefId& name, const CSMWorld::IdCollection<T>& collection,
|
|
const CSMWorld::UniversalId& id, CSMDoc::Messages& messages);
|
|
};
|
|
}
|
|
|
|
#endif
|