mirror of
				https://github.com/OpenMW/openmw.git
				synced 2025-11-04 06:56:39 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			51 lines
		
	
	
	
		
			991 B
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			51 lines
		
	
	
	
		
			991 B
		
	
	
	
		
			C++
		
	
	
	
	
	
#ifndef OPENMW_ESM_SPEL_H
 | 
						|
#define OPENMW_ESM_SPEL_H
 | 
						|
 | 
						|
#include <string>
 | 
						|
 | 
						|
#include "effectlist.hpp"
 | 
						|
 | 
						|
namespace ESM
 | 
						|
{
 | 
						|
 | 
						|
class ESMReader;
 | 
						|
class ESMWriter;
 | 
						|
 | 
						|
struct Spell
 | 
						|
{
 | 
						|
    enum SpellType
 | 
						|
    {
 | 
						|
        ST_Spell = 0,   // Normal spell, must be cast and costs mana
 | 
						|
        ST_Ability = 1, // Inert ability, always in effect
 | 
						|
        ST_Blight = 2,  // Blight disease
 | 
						|
        ST_Disease = 3, // Common disease
 | 
						|
        ST_Curse = 4,   // Curse (?)
 | 
						|
        ST_Power = 5    // Power, can use once a day
 | 
						|
    };
 | 
						|
 | 
						|
    enum Flags
 | 
						|
    {
 | 
						|
        F_Autocalc = 1,
 | 
						|
        F_PCStart = 2,
 | 
						|
        F_Always = 4 // Casting always succeeds
 | 
						|
    };
 | 
						|
 | 
						|
    struct SPDTstruct
 | 
						|
    {
 | 
						|
        int mType; // SpellType
 | 
						|
        int mCost; // Mana cost
 | 
						|
        int mFlags; // Flags
 | 
						|
    };
 | 
						|
 | 
						|
    SPDTstruct mData;
 | 
						|
    std::string mId, mName;
 | 
						|
    EffectList mEffects;
 | 
						|
 | 
						|
    void load(ESMReader &esm);
 | 
						|
    void save(ESMWriter &esm);
 | 
						|
 | 
						|
    void blank();
 | 
						|
    ///< Set record to default state (does not touch the ID/index).
 | 
						|
};
 | 
						|
}
 | 
						|
#endif
 |