2013-12-20 19:02:42 +00:00
# ifndef REFERENCEABLECHECKSTAGE_H
# define REFERENCEABLECHECKSTAGE_H
# include "../world/universalid.hpp"
# include "../doc/stage.hpp"
# include "../world/data.hpp"
# include "../world/refiddata.hpp"
namespace CSMTools
{
class ReferenceableCheckStage : public CSMDoc : : Stage
{
public :
2013-12-29 20:02:53 +00:00
ReferenceableCheckStage ( const CSMWorld : : RefIdData & referenceable , const CSMWorld : : IdCollection < ESM : : Race > & races , const CSMWorld : : IdCollection < ESM : : Class > & classes , const CSMWorld : : IdCollection < ESM : : Faction > & factions ) ;
2013-12-20 19:02:42 +00:00
virtual void perform ( int stage , std : : vector < std : : string > & messages ) ;
virtual int setup ( ) ;
private :
2013-12-30 12:23:16 +00:00
//CONCRETE CHECKS
2013-12-20 19:02:42 +00:00
void bookCheck ( int stage , const CSMWorld : : RefIdDataContainer < ESM : : Book > & records , std : : vector < std : : string > & messages ) ;
2013-12-20 21:31:17 +00:00
void activatorCheck ( int stage , const CSMWorld : : RefIdDataContainer < ESM : : Activator > & records , std : : vector < std : : string > & messages ) ;
2013-12-21 11:07:40 +00:00
void potionCheck ( int stage , const CSMWorld : : RefIdDataContainer < ESM : : Potion > & records , std : : vector < std : : string > & messages ) ;
void apparatusCheck ( int stage , const CSMWorld : : RefIdDataContainer < ESM : : Apparatus > & records , std : : vector < std : : string > & messages ) ;
2013-12-22 13:22:03 +00:00
void armorCheck ( int stage , const CSMWorld : : RefIdDataContainer < ESM : : Armor > & records , std : : vector < std : : string > & messages ) ;
2013-12-22 13:32:42 +00:00
void clothingCheck ( int stage , const CSMWorld : : RefIdDataContainer < ESM : : Clothing > & records , std : : vector < std : : string > & messages ) ;
2013-12-22 13:42:17 +00:00
void containerCheck ( int stage , const CSMWorld : : RefIdDataContainer < ESM : : Container > & records , std : : vector < std : : string > & messages ) ;
2013-12-23 11:32:35 +00:00
void creatureCheck ( int stage , const CSMWorld : : RefIdDataContainer < ESM : : Creature > & records , std : : vector < std : : string > & messages ) ;
2013-12-26 11:59:43 +00:00
void doorCheck ( int stage , const CSMWorld : : RefIdDataContainer < ESM : : Door > & records , std : : vector < std : : string > & messages ) ;
2013-12-30 12:23:16 +00:00
void ingredientCheck ( int stage , const CSMWorld : : RefIdDataContainer < ESM : : Ingredient > & records , std : : vector < std : : string > & messages ) ;
void creaturesLevListCheck ( int stage , const CSMWorld : : RefIdDataContainer < ESM : : CreatureLevList > & records , std : : vector < std : : string > & messages ) ;
void itemLevelledListCheck ( int stage , const CSMWorld : : RefIdDataContainer < ESM : : ItemLevList > & records , std : : vector < std : : string > & messages ) ;
void lightCheck ( int stage , const CSMWorld : : RefIdDataContainer < ESM : : Light > & records , std : : vector < std : : string > & messages ) ;
void lockpickCheck ( int stage , const CSMWorld : : RefIdDataContainer < ESM : : Lockpick > & records , std : : vector < std : : string > & messages ) ;
void miscCheck ( int stage , const CSMWorld : : RefIdDataContainer < ESM : : Miscellaneous > & records , std : : vector < std : : string > & messages ) ;
void npcCheck ( int stage , const CSMWorld : : RefIdDataContainer < ESM : : NPC > & records , std : : vector < std : : string > & messages ) ;
2014-01-03 10:31:54 +00:00
void weaponCheck ( int stage , const CSMWorld : : RefIdDataContainer < ESM : : Weapon > & records , std : : vector < std : : string > & messages ) ;
void probeCheck ( int stage , const CSMWorld : : RefIdDataContainer < ESM : : Probe > & records , std : : vector < std : : string > & messages ) ;
void repairCheck ( int stage , const CSMWorld : : RefIdDataContainer < ESM : : Repair > & records , std : : vector < std : : string > & messages ) ;
void staticCheck ( int stage , const CSMWorld : : RefIdDataContainer < ESM : : Static > & records , std : : vector < std : : string > & messages ) ;
2014-01-06 17:43:44 +00:00
//FINAL CHECK
void finalCheck ( std : : vector < std : : string > & messages ) ;
2014-01-02 19:20:18 +00:00
//TEMPLATE CHECKS
2014-01-03 10:31:54 +00:00
template < typename ITEM > void inventoryItemCheck ( const ITEM & someitem , std : : vector < std : : string > & messages , const std : : string & someid , bool enchantable ) ; //for all enchantable items.
template < typename ITEM > void inventoryItemCheck ( const ITEM & someitem , std : : vector < std : : string > & messages , const std : : string & someid ) ; //for non-enchantable items.
template < typename TOOL > void toolCheck ( const TOOL & sometool , std : : vector < std : : string > & messages , const std : : string & someid , bool canbebroken ) ; //for tools with uses.
template < typename TOOL > void toolCheck ( const TOOL & sometool , std : : vector < std : : string > & messages , const std : : string & someid ) ; //for tools without uses.
2014-01-05 16:31:54 +00:00
template < typename LIST > void listCheck ( const LIST & somelist , std : : vector < std : : string > & messages , const std : : string & Som ) ;
2014-01-02 19:20:18 +00:00
2013-12-28 16:35:04 +00:00
const CSMWorld : : RefIdData & mReferencables ;
2013-12-30 12:23:16 +00:00
const CSMWorld : : IdCollection < ESM : : Race > & mRaces ;
const CSMWorld : : IdCollection < ESM : : Class > & mClasses ;
const CSMWorld : : IdCollection < ESM : : Faction > & mFactions ;
2014-01-06 17:43:44 +00:00
bool mPlayerPresent ;
2013-12-20 19:02:42 +00:00
} ;
}
# endif // REFERENCEABLECHECKSTAGE_H