Subversion Repositories WoWGM

Rev

Go to most recent revision | 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_