OpenMW
|
00001 #ifndef GAME_MWMECHANICS_SPELLS_H 00002 #define GAME_MWMECHANICS_SPELLS_H 00003 00004 #include <map> 00005 #include <string> 00006 00007 #include "../mwworld/ptr.hpp" 00008 00009 #include "magiceffects.hpp" 00010 00011 namespace ESM 00012 { 00013 struct Spell; 00014 } 00015 00016 namespace MWMechanics 00017 { 00018 class MagicEffects; 00019 00024 class Spells 00025 { 00026 public: 00027 00028 typedef std::map<std::string, std::vector<float> > TContainer; // ID, normalised magnitudes 00029 typedef TContainer::const_iterator TIterator; 00030 00031 private: 00032 00033 TContainer mSpells; 00034 std::string mSelectedSpell; 00035 00036 public: 00037 00038 void purgeCommonDisease(); 00039 void purgeBlightDisease(); 00040 void purgeCorprusDisease(); 00041 void purgeCurses(); 00042 00043 TIterator begin() const; 00044 00045 TIterator end() const; 00046 00047 void add (const std::string& spell); 00049 00050 void remove (const std::string& spell); 00053 00054 MagicEffects getMagicEffects() const; 00056 00057 void clear(); 00059 00060 void setSelectedSpell (const std::string& spellId); 00062 00063 const std::string getSelectedSpell() const; 00065 00066 bool hasCommonDisease() const; 00067 00068 bool hasBlightDisease() const; 00069 00070 void visitEffectSources (MWMechanics::EffectSourceVisitor& visitor) const; 00071 }; 00072 } 00073 00074 #endif