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_