Second set of Moves and Year update

This commit is contained in:
Antz 2015-01-20 21:31:46 +00:00 committed by Antz
parent 9d20fe2b32
commit 12257a5bc2
493 changed files with 491 additions and 491 deletions

View file

@ -0,0 +1,143 @@
/*
* MaNGOS is a full featured server for World of Warcraft, supporting
* the following clients: 1.12.x, 2.4.3, 3.3.5a, 4.3.4a and 5.4.8
*
* Copyright (C) 2005-2015 MaNGOS project <http://getmangos.eu>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
* World of Warcraft, and all World of Warcraft or Warcraft art, images,
* and lore are copyrighted by Blizzard Entertainment, Inc.
*/
#include "DB2Stores.h"
#include "DBCStores.h"
#include "Policies/Singleton.h"
#include "Log.h"
#include "ProgressBar.h"
#include "SharedDefines.h"
#include "ObjectGuid.h"
#include "DB2fmt.h"
#include <map>
DB2Storage <ItemEntry> sItemStore(Itemfmt);
DB2Storage <ItemCurrencyCostEntry> sItemCurrencyCostStore(ItemCurrencyCostfmt);
DB2Storage <ItemExtendedCostEntry> sItemExtendedCostStore(ItemExtendedCostEntryfmt);
typedef std::list<std::string> StoreProblemList1;
uint32 DB2FileCount = 0;
static bool LoadDB2_assert_print(uint32 fsize,uint32 rsize, const std::string& filename)
{
sLog.outError("Size of '%s' setted by format string (%u) not equal size of C++ structure (%u).",filename.c_str(),fsize,rsize);
// ASSERT must fail after function call
return false;
}
struct LocalDB2Data
{
LocalDB2Data(LocaleConstant loc)
: defaultLocale(loc), availableDb2Locales(0xFFFFFFFF) {}
LocaleConstant defaultLocale;
// bitmasks for index of fullLocaleNameList
uint32 availableDb2Locales;
};
template<class T>
inline void LoadDB2(LocalDB2Data& localeData, StoreProblemList1& errors, DB2Storage<T>& storage, std::string const& db2Path, std::string const& filename)
{
// compatibility format and C++ structure sizes
MANGOS_ASSERT(DB2FileLoader::GetFormatRecordSize(storage.GetFormat()) == sizeof(T) || LoadDB2_assert_print(DB2FileLoader::GetFormatRecordSize(storage.GetFormat()), sizeof(T), filename));
++DB2FileCount;
std::string db2Filename = db2Path + filename;
if (storage.Load(db2Filename.c_str(), localeData.defaultLocale))
{
for(uint8 i = 0; fullLocaleNameList[i].name; ++i)
{
if (!(localeData.availableDb2Locales & (1 << i)))
continue;
LocaleNameStr const* localStr = &fullLocaleNameList[i];
std::string db2_dir_loc = db2Path + localStr->name + "/";
std::string localizedName = db2Path + localStr->name + "/" + filename;
if(!storage.LoadStringsFrom(localizedName.c_str(), localStr->locale))
localeData.availableDb2Locales &= ~(1<<i); // mark as not available for speedup next checks
}
}
else
{
// sort problematic db2 to (1) non compatible and (2) nonexistent
if (FILE* f = fopen(db2Filename.c_str(), "rb"))
{
char buf[100];
snprintf(buf, 100, " (exist, but have %d fields instead " SIZEFMTD ") Wrong client version DB2 file?", storage.GetFieldCount(), strlen(storage.GetFormat()));
errors.push_back(db2Filename + buf);
fclose(f);
}
else
errors.push_back(db2Filename);
}
}
void LoadDB2Stores(const std::string& dataPath)
{
std::string db2Path = dataPath + "dbc/";
LocaleNameStr const* defaultLocaleNameStr = NULL;
StoreProblemList1 bad_db2_files;
LocalDB2Data availableDb2Locales(LocaleConstant(0));//defaultLocaleNameStr->locale));
LoadDB2(availableDb2Locales,bad_db2_files,sItemStore, db2Path,"Item.db2");
LoadDB2(availableDb2Locales,bad_db2_files,sItemCurrencyCostStore, db2Path,"ItemCurrencyCost.db2");
LoadDB2(availableDb2Locales,bad_db2_files,sItemExtendedCostStore, db2Path,"ItemExtendedCost.db2");
// error checks
if (bad_db2_files.size() >= DB2FileCount)
{
sLog.outError("Incorrect DataDir value in worldserver.conf or ALL required *.db2 files (%d) not found by path: %sdb2", DB2FileCount, dataPath.c_str());
exit(1);
}
else if (!bad_db2_files.empty())
{
std::string str;
for (StoreProblemList1::iterator i = bad_db2_files.begin(); i != bad_db2_files.end(); ++i)
str += *i + "\n";
sLog.outError("Some required *.db2 files (%u from %d) not found or not compatible:\n%s",(uint32)bad_db2_files.size(), DB2FileCount, str.c_str());
exit(1);
}
// Check loaded DB2 files proper version
if (!sItemStore.LookupEntry(83086) || // last item added in 4.3.4 (15595)
!sItemExtendedCostStore.LookupEntry(3872) ) // last item extended cost added in 4.3.4 (15595)
{
sLog.outString("");
sLog.outError("Please extract correct db2 files from build %s", AcceptableClientBuildsListStr().c_str());
exit(1);
}
sLog.outString();
sLog.outString( ">> Initialized %d db2 stores", DB2FileCount );
}

View file

@ -0,0 +1,42 @@
/*
* MaNGOS is a full featured server for World of Warcraft, supporting
* the following clients: 1.12.x, 2.4.3, 3.3.5a, 4.3.4a and 5.4.8
*
* Copyright (C) 2005-2015 MaNGOS project <http://getmangos.eu>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
* World of Warcraft, and all World of Warcraft or Warcraft art, images,
* and lore are copyrighted by Blizzard Entertainment, Inc.
*/
#ifndef MANGOS_DB2STORES_H
#define MANGOS_DB2STORES_H
#include "Common.h"
#include "Database/DB2Store.h"
#include "DB2Structure.h"
#include <list>
extern DB2Storage <ItemEntry> sItemStore;
extern DB2Storage <ItemCurrencyCostEntry> sItemCurrencyCostStore;
extern DB2Storage <ItemExtendedCostEntry> sItemExtendedCostStore;
void LoadDB2Stores(const std::string& dataPath);
DB2Storage <ItemEntry> const* GetItemDisplayStore();
#endif

View file

@ -0,0 +1,96 @@
/*
* MaNGOS is a full featured server for World of Warcraft, supporting
* the following clients: 1.12.x, 2.4.3, 3.3.5a, 4.3.4a and 5.4.8
*
* Copyright (C) 2005-2015 MaNGOS project <http://getmangos.eu>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
* World of Warcraft, and all World of Warcraft or Warcraft art, images,
* and lore are copyrighted by Blizzard Entertainment, Inc.
*/
#ifndef MANGOS_DB2STRUCTURE_H
#define MANGOS_DB2STRUCTURE_H
#include "Common.h"
#include "DBCEnums.h"
#include "Path.h"
#include "Platform/Define.h"
#include <map>
#include <set>
#include <vector>
// Structures using to access raw DB2 data and required packing to portability
struct ItemEntry
{
uint32 ID; // 0
uint32 Class; // 1
uint32 SubClass; // 2
int32 Unk0; // 3
int32 Material; // 4
uint32 DisplayId; // 5
uint32 InventoryType; // 6
uint32 Sheath; // 7
};
struct ItemCurrencyCostEntry
{
//uint32 id; // 0
uint32 itemid; // 1
};
#define MAX_EXTENDED_COST_ITEMS 5
#define MAX_EXTENDED_COST_CURRENCIES 5
enum ItemExtendedCostFlags
{
ITEM_EXTENDED_COST_FLAG_UNK = 0x01, // guild related
ITEM_EXTENDED_COST_FLAG_SEASON_IN_INDEX_0 = 0x02, // currency requirements under these indexes require season count
ITEM_EXTENDED_COST_FLAG_SEASON_IN_INDEX_1 = 0x04,
ITEM_EXTENDED_COST_FLAG_SEASON_IN_INDEX_2 = 0x08,
ITEM_EXTENDED_COST_FLAG_SEASON_IN_INDEX_3 = 0x10,
ITEM_EXTENDED_COST_FLAG_SEASON_IN_INDEX_4 = 0x20,
};
struct ItemExtendedCostEntry
{
uint32 Id; // 0
// // 1 unk, old reqhonorpoints
// // 2 unk, old reqarenapoints
uint32 reqarenaslot; // 3 m_arenaBracket
uint32 reqitem[MAX_EXTENDED_COST_ITEMS]; // 5-8 m_itemID
uint32 reqitemcount[MAX_EXTENDED_COST_ITEMS]; // 9-13 m_itemCount
uint32 reqpersonalarenarating; // 14 m_requiredArenaRating
//uint32 // 15 m_itemPurchaseGroup
uint32 reqcur[MAX_EXTENDED_COST_CURRENCIES]; // 16-20
uint32 reqcurrcount[MAX_EXTENDED_COST_CURRENCIES]; // 21-25
// 26 reputation-related
// 27 reputation-related
uint32 flags; // 28
// // 29
// // 30
bool IsSeasonCurrencyRequirement(uint32 i) const
{
MANGOS_ASSERT(i < MAX_EXTENDED_COST_CURRENCIES);
// start from ITEM_EXTENDED_COST_FLAG_SEASON_IN_INDEX_0
return flags & 1 << (i + 1);
}
};
#endif

32
src/game/Server/DB2fmt.h Normal file
View file

@ -0,0 +1,32 @@
/*
* MaNGOS is a full featured server for World of Warcraft, supporting
* the following clients: 1.12.x, 2.4.3, 3.3.5a, 4.3.4a and 5.4.8
*
* Copyright (C) 2005-2015 MaNGOS project <http://getmangos.eu>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
* World of Warcraft, and all World of Warcraft or Warcraft art, images,
* and lore are copyrighted by Blizzard Entertainment, Inc.
*/
#ifndef MANGOS_DB2SFRM_H
#define MANGOS_DB2SFRM_H
const char Itemfmt[]="niiiiiii";
const char ItemCurrencyCostfmt[]="di";
const char ItemExtendedCostEntryfmt[]="nxxiiiiiiiiiiiixiiiiiiiiiixxixx";
#endif

View file

@ -2,7 +2,7 @@
* MaNGOS is a full featured server for World of Warcraft, supporting
* the following clients: 1.12.x, 2.4.3, 3.3.5a, 4.3.4a and 5.4.8
*
* Copyright (C) 2005-2014 MaNGOS project <http://getmangos.eu>
* Copyright (C) 2005-2015 MaNGOS project <http://getmangos.eu>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by

View file

@ -2,7 +2,7 @@
* MaNGOS is a full featured server for World of Warcraft, supporting
* the following clients: 1.12.x, 2.4.3, 3.3.5a, 4.3.4a and 5.4.8
*
* Copyright (C) 2005-2014 MaNGOS project <http://getmangos.eu>
* Copyright (C) 2005-2015 MaNGOS project <http://getmangos.eu>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by

View file

@ -2,7 +2,7 @@
* MaNGOS is a full featured server for World of Warcraft, supporting
* the following clients: 1.12.x, 2.4.3, 3.3.5a, 4.3.4a and 5.4.8
*
* Copyright (C) 2005-2014 MaNGOS project <http://getmangos.eu>
* Copyright (C) 2005-2015 MaNGOS project <http://getmangos.eu>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by

View file

@ -0,0 +1,359 @@
/*
* MaNGOS is a full featured server for World of Warcraft, supporting
* the following clients: 1.12.x, 2.4.3, 3.3.5a, 4.3.4a and 5.4.8
*
* Copyright (C) 2005-2015 MaNGOS project <http://getmangos.eu>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
* World of Warcraft, and all World of Warcraft or Warcraft art, images,
* and lore are copyrighted by Blizzard Entertainment, Inc.
*/
#include "Common.h"
#include "DBCStructure.h"
#include "DBCStores.h"
#include "SharedDefines.h"
int32 SpellEntry::CalculateSimpleValue(SpellEffectIndex eff) const
{
if(SpellEffectEntry const* effectEntry = GetSpellEffectEntry(Id, eff))
return effectEntry->CalculateSimpleValue();
return 0;
}
ClassFamilyMask const& SpellEntry::GetEffectSpellClassMask(SpellEffectIndex eff) const
{
if (SpellEffectEntry const* effectEntry = GetSpellEffectEntry(Id, eff))
return effectEntry->EffectSpellClassMask;
static ClassFamilyMask const emptyCFM;
return emptyCFM;
}
SpellAuraOptionsEntry const* SpellEntry::GetSpellAuraOptions() const
{
return SpellAuraOptionsId ? sSpellAuraOptionsStore.LookupEntry(SpellAuraOptionsId) : NULL;
}
SpellAuraRestrictionsEntry const* SpellEntry::GetSpellAuraRestrictions() const
{
return SpellAuraRestrictionsId ? sSpellAuraRestrictionsStore.LookupEntry(SpellAuraRestrictionsId) : NULL;
}
SpellCastingRequirementsEntry const* SpellEntry::GetSpellCastingRequirements() const
{
return SpellCastingRequirementsId ? sSpellCastingRequirementsStore.LookupEntry(SpellCastingRequirementsId) : NULL;
}
SpellCategoriesEntry const* SpellEntry::GetSpellCategories() const
{
return SpellCategoriesId ? sSpellCategoriesStore.LookupEntry(SpellCategoriesId) : NULL;
}
SpellClassOptionsEntry const* SpellEntry::GetSpellClassOptions() const
{
return SpellClassOptionsId ? sSpellClassOptionsStore.LookupEntry(SpellClassOptionsId) : NULL;
}
SpellCooldownsEntry const* SpellEntry::GetSpellCooldowns() const
{
return SpellCooldownsId ? sSpellCooldownsStore.LookupEntry(SpellCooldownsId) : NULL;
}
SpellEffectEntry const* SpellEntry::GetSpellEffect(SpellEffectIndex eff) const
{
return GetSpellEffectEntry(Id, eff);
}
SpellEquippedItemsEntry const* SpellEntry::GetSpellEquippedItems() const
{
return SpellEquippedItemsId ? sSpellEquippedItemsStore.LookupEntry(SpellEquippedItemsId) : NULL;
}
SpellInterruptsEntry const* SpellEntry::GetSpellInterrupts() const
{
return SpellInterruptsId ? sSpellInterruptsStore.LookupEntry(SpellInterruptsId) : NULL;
}
SpellLevelsEntry const* SpellEntry::GetSpellLevels() const
{
return SpellLevelsId ? sSpellLevelsStore.LookupEntry(SpellLevelsId) : NULL;
}
SpellPowerEntry const* SpellEntry::GetSpellPower() const
{
return SpellPowerId ? sSpellPowerStore.LookupEntry(SpellPowerId) : NULL;
}
SpellReagentsEntry const* SpellEntry::GetSpellReagents() const
{
return SpellReagentsId ? sSpellReagentsStore.LookupEntry(SpellReagentsId) : NULL;
}
SpellScalingEntry const* SpellEntry::GetSpellScaling() const
{
return SpellScalingId ? sSpellScalingStore.LookupEntry(SpellScalingId) : NULL;
}
SpellShapeshiftEntry const* SpellEntry::GetSpellShapeshift() const
{
return SpellShapeshiftId ? sSpellShapeshiftStore.LookupEntry(SpellShapeshiftId) : NULL;
}
SpellTargetRestrictionsEntry const* SpellEntry::GetSpellTargetRestrictions() const
{
return SpellTargetRestrictionsId ? sSpellTargetRestrictionsStore.LookupEntry(SpellTargetRestrictionsId) : NULL;
}
SpellTotemsEntry const* SpellEntry::GetSpellTotems() const
{
return SpellTotemsId ? sSpellTotemsStore.LookupEntry(SpellTotemsId) : NULL;
}
uint32 SpellEntry::GetManaCost() const
{
SpellPowerEntry const* power = GetSpellPower();
return power ? power->manaCost : 0;
}
uint32 SpellEntry::GetPreventionType() const
{
SpellCategoriesEntry const* cat = GetSpellCategories();
return cat ? cat->PreventionType : 0;
}
uint32 SpellEntry::GetCategory() const
{
SpellCategoriesEntry const* cat = GetSpellCategories();
return cat ? cat->Category : 0;
}
uint32 SpellEntry::GetStartRecoveryTime() const
{
SpellCooldownsEntry const* cd = GetSpellCooldowns();
return cd ? cd->StartRecoveryTime : 0;
}
uint32 SpellEntry::GetMechanic() const
{
SpellCategoriesEntry const* cat = GetSpellCategories();
return cat ? cat->Mechanic : 0;
}
uint32 SpellEntry::GetRecoveryTime() const
{
SpellCooldownsEntry const* cd = GetSpellCooldowns();
return cd ? cd->RecoveryTime : 0;
}
uint32 SpellEntry::GetCategoryRecoveryTime() const
{
SpellCooldownsEntry const* cd = GetSpellCooldowns();
return cd ? cd->CategoryRecoveryTime : 0;
}
uint32 SpellEntry::GetStartRecoveryCategory() const
{
SpellCategoriesEntry const* cat = GetSpellCategories();
return cat ? cat->StartRecoveryCategory : 0;
}
uint32 SpellEntry::GetSpellLevel() const
{
SpellLevelsEntry const* levels = GetSpellLevels();
return levels ? levels->spellLevel : 0;
}
int32 SpellEntry::GetEquippedItemClass() const
{
SpellEquippedItemsEntry const* items = GetSpellEquippedItems();
return items ? items->EquippedItemClass : -1;
}
SpellFamily SpellEntry::GetSpellFamilyName() const
{
SpellClassOptionsEntry const* classOpt = GetSpellClassOptions();
return classOpt ? SpellFamily(classOpt->SpellFamilyName) : SPELLFAMILY_GENERIC;
}
uint32 SpellEntry::GetDmgClass() const
{
SpellCategoriesEntry const* cat = GetSpellCategories();
return cat ? cat->DmgClass : 0;
}
uint32 SpellEntry::GetDispel() const
{
SpellCategoriesEntry const* cat = GetSpellCategories();
return cat ? cat->Dispel : 0;
}
uint32 SpellEntry::GetMaxAffectedTargets() const
{
SpellTargetRestrictionsEntry const* target = GetSpellTargetRestrictions();
return target ? target->MaxAffectedTargets : 0;
}
uint32 SpellEntry::GetStackAmount() const
{
SpellAuraOptionsEntry const* aura = GetSpellAuraOptions();
return aura ? aura->StackAmount : 0;
}
uint32 SpellEntry::GetManaCostPercentage() const
{
SpellPowerEntry const* power = GetSpellPower();
return power ? power->ManaCostPercentage : 0;
}
uint32 SpellEntry::GetProcCharges() const
{
SpellAuraOptionsEntry const* aura = GetSpellAuraOptions();
return aura ? aura->procCharges : 0;
}
uint32 SpellEntry::GetProcChance() const
{
SpellAuraOptionsEntry const* aura = GetSpellAuraOptions();
return aura ? aura->procChance : 0;
}
uint32 SpellEntry::GetMaxLevel() const
{
SpellLevelsEntry const* levels = GetSpellLevels();
return levels ? levels->maxLevel : 0;
}
uint32 SpellEntry::GetTargetAuraState() const
{
SpellAuraRestrictionsEntry const* aura = GetSpellAuraRestrictions();
return aura ? aura->TargetAuraState : 0;
}
uint32 SpellEntry::GetManaPerSecond() const
{
SpellPowerEntry const* power = GetSpellPower();
return power ? power->manaPerSecond : 0;
}
uint32 SpellEntry::GetRequiresSpellFocus() const
{
SpellCastingRequirementsEntry const* castReq = GetSpellCastingRequirements();
return castReq ? castReq->RequiresSpellFocus : 0;
}
uint32 SpellEntry::GetSpellEffectIdByIndex(SpellEffectIndex index) const
{
SpellEffectEntry const* effect = GetSpellEffect(index);
return effect ? effect->Effect : SPELL_EFFECT_NONE;
}
uint32 SpellEntry::GetAuraInterruptFlags() const
{
SpellInterruptsEntry const* interrupt = GetSpellInterrupts();
return interrupt ? interrupt->AuraInterruptFlags : 0;
}
uint32 SpellEntry::GetEffectImplicitTargetAByIndex(SpellEffectIndex index) const
{
SpellEffectEntry const* effect = GetSpellEffect(index);
return effect ? effect->EffectImplicitTargetA : TARGET_NONE;
}
int32 SpellEntry::GetAreaGroupId() const
{
SpellCastingRequirementsEntry const* castReq = GetSpellCastingRequirements();
return castReq ? castReq->AreaGroupId : 0;
}
uint32 SpellEntry::GetFacingCasterFlags() const
{
SpellCastingRequirementsEntry const* castReq = GetSpellCastingRequirements();
return castReq ? castReq->FacingCasterFlags : 0;
}
uint32 SpellEntry::GetBaseLevel() const
{
SpellLevelsEntry const* levels = GetSpellLevels();
return levels ? levels->baseLevel : 0;
}
uint32 SpellEntry::GetInterruptFlags() const
{
SpellInterruptsEntry const* interrupt = GetSpellInterrupts();
return interrupt ? interrupt->InterruptFlags : 0;
}
uint32 SpellEntry::GetTargetCreatureType() const
{
SpellTargetRestrictionsEntry const* target = GetSpellTargetRestrictions();
return target ? target->TargetCreatureType : 0;
}
int32 SpellEntry::GetEffectMiscValue(SpellEffectIndex index) const
{
SpellEffectEntry const* effect = GetSpellEffect(index);
return effect ? effect->EffectMiscValue : 0;
}
uint32 SpellEntry::GetStances() const
{
SpellShapeshiftEntry const* ss = GetSpellShapeshift();
return ss ? ss->Stances : 0;
}
uint32 SpellEntry::GetStancesNot() const
{
SpellShapeshiftEntry const* ss = GetSpellShapeshift();
return ss ? ss->StancesNot : 0;
}
uint32 SpellEntry::GetProcFlags() const
{
SpellAuraOptionsEntry const* aura = GetSpellAuraOptions();
return aura ? aura->procFlags : 0;
}
uint32 SpellEntry::GetChannelInterruptFlags() const
{
SpellInterruptsEntry const* interrupt = GetSpellInterrupts();
return interrupt ? interrupt->ChannelInterruptFlags : 0;
}
uint32 SpellEntry::GetManaCostPerLevel() const
{
SpellPowerEntry const* power = GetSpellPower();
return power ? power->manaCostPerlevel : 0;
}
uint32 SpellEntry::GetCasterAuraState() const
{
SpellAuraRestrictionsEntry const* aura = GetSpellAuraRestrictions();
return aura ? aura->CasterAuraState : 0;
}
uint32 SpellEntry::GetTargets() const
{
SpellTargetRestrictionsEntry const* target = GetSpellTargetRestrictions();
return target ? target->Targets : 0;
}
uint32 SpellEntry::GetEffectApplyAuraNameByIndex(SpellEffectIndex index) const
{
SpellEffectEntry const* effect = GetSpellEffect(index);
return effect ? effect->EffectApplyAuraName : 0;
}

View file

@ -2,7 +2,7 @@
* MaNGOS is a full featured server for World of Warcraft, supporting
* the following clients: 1.12.x, 2.4.3, 3.3.5a, 4.3.4a and 5.4.8
*
* Copyright (C) 2005-2014 MaNGOS project <http://getmangos.eu>
* Copyright (C) 2005-2015 MaNGOS project <http://getmangos.eu>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by

View file

@ -2,7 +2,7 @@
* MaNGOS is a full featured server for World of Warcraft, supporting
* the following clients: 1.12.x, 2.4.3, 3.3.5a, 4.3.4a and 5.4.8
*
* Copyright (C) 2005-2014 MaNGOS project <http://getmangos.eu>
* Copyright (C) 2005-2015 MaNGOS project <http://getmangos.eu>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by

View file

@ -2,7 +2,7 @@
* MaNGOS is a full featured server for World of Warcraft, supporting
* the following clients: 1.12.x, 2.4.3, 3.3.5a, 4.3.4a and 5.4.8
*
* Copyright (C) 2005-2014 MaNGOS project <http://getmangos.eu>
* Copyright (C) 2005-2015 MaNGOS project <http://getmangos.eu>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by

View file

@ -2,7 +2,7 @@
* MaNGOS is a full featured server for World of Warcraft, supporting
* the following clients: 1.12.x, 2.4.3, 3.3.5a, 4.3.4a and 5.4.8
*
* Copyright (C) 2005-2014 MaNGOS project <http://getmangos.eu>
* Copyright (C) 2005-2015 MaNGOS project <http://getmangos.eu>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by

View file

@ -2,7 +2,7 @@
* MaNGOS is a full featured server for World of Warcraft, supporting
* the following clients: 1.12.x, 2.4.3, 3.3.5a, 4.3.4a and 5.4.8
*
* Copyright (C) 2005-2014 MaNGOS project <http://getmangos.eu>
* Copyright (C) 2005-2015 MaNGOS project <http://getmangos.eu>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by

View file

@ -2,7 +2,7 @@
* MaNGOS is a full featured server for World of Warcraft, supporting
* the following clients: 1.12.x, 2.4.3, 3.3.5a, 4.3.4a and 5.4.8
*
* Copyright (C) 2005-2014 MaNGOS project <http://getmangos.eu>
* Copyright (C) 2005-2015 MaNGOS project <http://getmangos.eu>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by

View file

@ -2,7 +2,7 @@
* MaNGOS is a full featured server for World of Warcraft, supporting
* the following clients: 1.12.x, 2.4.3, 3.3.5a, 4.3.4a and 5.4.8
*
* Copyright (C) 2005-2014 MaNGOS project <http://getmangos.eu>
* Copyright (C) 2005-2015 MaNGOS project <http://getmangos.eu>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by

View file

@ -2,7 +2,7 @@
* MaNGOS is a full featured server for World of Warcraft, supporting
* the following clients: 1.12.x, 2.4.3, 3.3.5a, 4.3.4a and 5.4.8
*
* Copyright (C) 2005-2014 MaNGOS project <http://getmangos.eu>
* Copyright (C) 2005-2015 MaNGOS project <http://getmangos.eu>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by

View file

@ -2,7 +2,7 @@
* MaNGOS is a full featured server for World of Warcraft, supporting
* the following clients: 1.12.x, 2.4.3, 3.3.5a, 4.3.4a and 5.4.8
*
* Copyright (C) 2005-2014 MaNGOS project <http://getmangos.eu>
* Copyright (C) 2005-2015 MaNGOS project <http://getmangos.eu>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by

View file

@ -2,7 +2,7 @@
* MaNGOS is a full featured server for World of Warcraft, supporting
* the following clients: 1.12.x, 2.4.3, 3.3.5a, 4.3.4a and 5.4.8
*
* Copyright (C) 2005-2014 MaNGOS project <http://getmangos.eu>
* Copyright (C) 2005-2015 MaNGOS project <http://getmangos.eu>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by

View file

@ -2,7 +2,7 @@
* MaNGOS is a full featured server for World of Warcraft, supporting
* the following clients: 1.12.x, 2.4.3, 3.3.5a, 4.3.4a and 5.4.8
*
* Copyright (C) 2005-2014 MaNGOS project <http://getmangos.eu>
* Copyright (C) 2005-2015 MaNGOS project <http://getmangos.eu>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by

View file

@ -2,7 +2,7 @@
* MaNGOS is a full featured server for World of Warcraft, supporting
* the following clients: 1.12.x, 2.4.3, 3.3.5a, 4.3.4a and 5.4.8
*
* Copyright (C) 2005-2014 MaNGOS project <http://getmangos.eu>
* Copyright (C) 2005-2015 MaNGOS project <http://getmangos.eu>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by

View file

@ -2,7 +2,7 @@
* MaNGOS is a full featured server for World of Warcraft, supporting
* the following clients: 1.12.x, 2.4.3, 3.3.5a, 4.3.4a and 5.4.8
*
* Copyright (C) 2005-2014 MaNGOS project <http://getmangos.eu>
* Copyright (C) 2005-2015 MaNGOS project <http://getmangos.eu>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by