Subversion Repositories WoWGM

Rev

Rev 8 | Blame | Compare with Previous | Last modification | View Log | RSS feed

#ifndef  _WOWCLIENTDB_H_
#define  _WOWCLIENTDB_H_

template <class T>
class WowClientDB {

        public:

                void*                           vtable1;
                int                                     m_loaded;
                int                                     m_numRecords;
                int                                     m_maxID;
                int                                     m_minID;
                char const*     m_stringTable;
                void*                           vtable2;
                T*                                      m_firstRow;
                T**                                     m_rows;

};


// TODO:
struct SpellRec {

        unsigned int    m_ID;
        unsigned int    m_category;
        unsigned int    m_dispelType;
        unsigned int    m_mechanic;
        unsigned int    m_attributes;
        unsigned int    m_attributesEx;
        unsigned int    m_attributesExB;
        unsigned int    m_attributesExC;
        unsigned int    m_attributesExD;
        unsigned int    m_attributesExE;
        unsigned int    m_attributesExF;
        unsigned int    m_attributesExG;
        unsigned int    m_shapeshiftMask[2];
        unsigned int    m_shapeshiftExclude[2];
        unsigned int    m_targets;
        unsigned int    m_targetCreatureType;
        unsigned int    m_requiresSpellFocus;
        unsigned int    m_facingCasterFlags;
        unsigned int    m_casterAuraState;
        unsigned int    m_targetAuraState;
        unsigned int    m_excludeCasterAuraState;
        unsigned int    m_excludeTargetAuraState;
        unsigned int    m_casterAuraSpell;
        unsigned int    m_targetAuraSpell;
        unsigned int    m_excludeCasterAuraSpell;
        unsigned int    m_excludeTargetAuraSpell;
        unsigned int    m_castingTimeIndex;
        unsigned int    m_recoveryTime;
        unsigned int    m_categoryRecoveryTime;
        unsigned int    m_interruptFlags;
        unsigned int    m_auraInterruptFlags;
        unsigned int    m_channelInterruptFlags;
        unsigned int    m_procTypeMask;
        unsigned int    m_procChance;
        unsigned int    m_procCharges;
        unsigned int    m_maxLevel;
        unsigned int    m_baseLevel;
        unsigned int    m_spellLevel;
        unsigned int    m_durationIndex;
        unsigned int    m_powerType;
        unsigned int    m_manaCost;
        unsigned int    m_manaCostPerLevel;
        unsigned int    m_manaPerSecond;
        unsigned int    m_manaPerSecondPerLevel;
        unsigned int    m_rangeIndex;
        float                                   m_speed;
        unsigned int    m_modalNextSpell;
        unsigned int    m_cumulativeAura;
        unsigned int    m_totem[2];
        unsigned int    m_reagent[8];
        unsigned int    m_reagentCount[8];
        unsigned int    m_equippedItemClass;
        unsigned int    m_equippedItemSubclass;
        unsigned int    m_equippedItemInvTypes;
        unsigned int    m_effect[3];
        unsigned int    m_effectDieSides[3];
        float                                   m_effectRealPointsPerLevel[3];
        unsigned int    m_effectBasePoints[3];
        unsigned int    m_effectMechanic[3];
        unsigned int    m_implicitTargetA[3];
        unsigned int    m_implicitTargetB[3];
        unsigned int    m_effectRadiusIndex[3];
        unsigned int    m_effectAura[3];
        unsigned int    m_effectAuraPeriod[3];
        float                                   m_effectAmplitude[3];
        unsigned int    m_effectChainTargets[3];
        unsigned int    m_effectItemType[3];
        unsigned int    m_effectMiscValue[3];
        unsigned int    m_effectMiscValueB[3];
        unsigned int    m_effectTriggerSpell[3];
        float                                   m_effectPointsPerCombo[3];
        unsigned int    m_effectSpellClassMaskA[3];
        unsigned int    m_effectSpellClassMaskB[3];
        unsigned int    m_effectSpellClassMaskC[3];
        unsigned int    m_spellVisualID[2];
        unsigned int    m_spellIconID;
        unsigned int    m_activeIconID;
        unsigned int    m_spellPriority;
        char*                                   m_name_lang;
        char*                                   m_nameSubtext_lang;
        char*                                   m_description_lang;
        char*                                   m_auraDescription_lang;
        unsigned int    m_manaCostPct;
        unsigned int    m_startRecoveryCategory;
        unsigned int    m_startRecoveryTime;
        unsigned int    m_maxTargetLevel;
        unsigned int    m_spellClassSet;
        unsigned int    m_spellClassMask[3];
        unsigned int    m_maxTargets;
        unsigned int    m_defenseType;
        unsigned int    m_preventionType;
        unsigned int    m_stanceBarOrder;
        float                                   m_effectChainAmplitude[3];
        unsigned int    m_minFactionID;
        unsigned int    m_minReputation;
        unsigned int    m_requiredAuraVision;
        unsigned int    m_requiredTotemCategoryID[2];
        unsigned int    m_requiredAreasID;
        unsigned int    m_schoolMask;
        unsigned int    m_runeCostID;
        unsigned int    m_spellMissileID;
        unsigned int    m_powerDisplayID;
        float                                   m_effectBonusCoefficient[3];
        unsigned int    m_descriptionVariablesID;
        unsigned int    m_difficulty;

};


// TODO:
extern WowClientDB<SpellRec> * g_spellDB;

#endif // ifndef _WOWCLIENTDB_H_