mirror of
				https://github.com/OpenMW/openmw.git
				synced 2025-10-31 14:56:38 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			95 lines
		
	
	
	
		
			4 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			95 lines
		
	
	
	
		
			4 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| #ifndef CSM_TOOLS_TOPICINFOCHECK_HPP
 | |
| #define CSM_TOOLS_TOPICINFOCHECK_HPP
 | |
| 
 | |
| #include <set>
 | |
| 
 | |
| #include <components/esm/loadclas.hpp>
 | |
| #include <components/esm/loaddial.hpp>
 | |
| #include <components/esm/loadfact.hpp>
 | |
| #include <components/esm/loadglob.hpp>
 | |
| #include <components/esm/loadgmst.hpp>
 | |
| #include <components/esm/loadrace.hpp>
 | |
| #include <components/esm/loadregn.hpp>
 | |
| 
 | |
| #include "../world/cell.hpp"
 | |
| #include "../world/idcollection.hpp"
 | |
| #include "../world/infocollection.hpp"
 | |
| #include "../world/refiddata.hpp"
 | |
| #include "../world/resources.hpp"
 | |
| 
 | |
| #include "../doc/stage.hpp"
 | |
| 
 | |
| 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);
 | |
| 
 | |
|         virtual int setup();
 | |
|         ///< \return number of steps
 | |
| 
 | |
|         virtual void perform(int step, CSMDoc::Messages& messages);
 | |
|         ///< 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;
 | |
| 
 | |
|         // These return false when not successful and write an error
 | |
|         bool verifyActor(const std::string& name, const CSMWorld::UniversalId& id, CSMDoc::Messages& messages);
 | |
|         bool verifyCell(const std::string& name, const CSMWorld::UniversalId& id, CSMDoc::Messages& messages);
 | |
|         bool verifyFactionRank(const std::string& name, int rank, const CSMWorld::UniversalId& id,
 | |
|             CSMDoc::Messages& messages);
 | |
|         bool verifyItem(const std::string& 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 std::string& name, const CSMWorld::IdCollection<T>& collection,
 | |
|             const CSMWorld::UniversalId& id, CSMDoc::Messages& messages);
 | |
| 
 | |
|         // Common error messages
 | |
|         void writeMissingIdError(const std::string& specifier, const std::string& missingId,
 | |
|             const CSMWorld::UniversalId& id, CSMDoc::Messages& messages);
 | |
| 
 | |
|         void writeDeletedRecordError(const std::string& specifier, const std::string& recordId,
 | |
|             const CSMWorld::UniversalId& id, CSMDoc::Messages& messages);
 | |
| 
 | |
|         void writeInvalidTypeError(const std::string& specifier, const std::string& invalidId,
 | |
|             CSMWorld::UniversalId::Type invalidType, const std::string& expectedType,
 | |
|             const CSMWorld::UniversalId& id, CSMDoc::Messages& messages);
 | |
|     };
 | |
| }
 | |
| 
 | |
| #endif
 |