aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Chat/Channels/Channel.cpp6
-rw-r--r--src/server/game/DataStores/DBCStores.cpp4
-rw-r--r--src/server/game/DataStores/DBCStructure.h98
-rw-r--r--src/server/game/DataStores/DBCfmt.h4
-rw-r--r--src/server/game/Entities/Player/Player.cpp28
-rw-r--r--src/server/game/Entities/Unit/StatSystem.cpp8
-rw-r--r--src/server/game/Globals/ObjectMgr.cpp4
-rw-r--r--src/server/game/Globals/ObjectMgr.h16
-rw-r--r--src/server/game/Guilds/GuildFinderMgr.cpp5
-rw-r--r--src/server/game/Handlers/CharacterHandler.cpp22
-rw-r--r--src/server/scripts/Commands/cs_learn.cpp2
-rw-r--r--src/server/scripts/Commands/cs_reset.cpp2
12 files changed, 118 insertions, 81 deletions
diff --git a/src/server/game/Chat/Channels/Channel.cpp b/src/server/game/Chat/Channels/Channel.cpp
index 8b4274022c2..73c067ddf99 100644
--- a/src/server/game/Chat/Channels/Channel.cpp
+++ b/src/server/game/Chat/Channels/Channel.cpp
@@ -44,13 +44,13 @@ Channel::Channel(std::string const& name, uint32 channelId, uint32 team):
_flags |= CHANNEL_FLAG_GENERAL; // for all built-in channels
- if (ch->flags & CHANNEL_DBC_FLAG_TRADE) // for trade channel
+ if (ch->Flags & CHANNEL_DBC_FLAG_TRADE) // for trade channel
_flags |= CHANNEL_FLAG_TRADE;
- if (ch->flags & CHANNEL_DBC_FLAG_CITY_ONLY2) // for city only channels
+ if (ch->Flags & CHANNEL_DBC_FLAG_CITY_ONLY2) // for city only channels
_flags |= CHANNEL_FLAG_CITY;
- if (ch->flags & CHANNEL_DBC_FLAG_LFG) // for LFG channel
+ if (ch->Flags & CHANNEL_DBC_FLAG_LFG) // for LFG channel
_flags |= CHANNEL_FLAG_LFG;
else // for all other channels
_flags |= CHANNEL_FLAG_NOT_LFG;
diff --git a/src/server/game/DataStores/DBCStores.cpp b/src/server/game/DataStores/DBCStores.cpp
index af24e182869..653b94ffa2f 100644
--- a/src/server/game/DataStores/DBCStores.cpp
+++ b/src/server/game/DataStores/DBCStores.cpp
@@ -914,13 +914,13 @@ AreaTableEntry const* GetAreaEntryByAreaFlagAndMap(uint32 area_flag, uint32 map_
char const* GetRaceName(uint8 race, uint8 /*locale*/)
{
ChrRacesEntry const* raceEntry = sChrRacesStore.LookupEntry(race);
- return raceEntry ? raceEntry->name : NULL;
+ return raceEntry ? raceEntry->Name_lang : NULL;
}
char const* GetClassName(uint8 class_, uint8 /*locale*/)
{
ChrClassesEntry const* classEntry = sChrClassesStore.LookupEntry(class_);
- return classEntry ? classEntry->name : NULL;
+ return classEntry ? classEntry->Name_lang : NULL;
}
uint32 GetAreaFlagByMapId(uint32 mapid)
diff --git a/src/server/game/DataStores/DBCStructure.h b/src/server/game/DataStores/DBCStructure.h
index 18096038b79..a099680b692 100644
--- a/src/server/game/DataStores/DBCStructure.h
+++ b/src/server/game/DataStores/DBCStructure.h
@@ -699,53 +699,73 @@ struct CharTitlesEntry
struct ChatChannelsEntry
{
- uint32 ChannelID; // 0
- uint32 flags; // 1
- //uint32 // 2 m_factionGroup
- char* pattern; // 3 m_name_lang
- //char* name; // 4 m_shortcut_lang
+ uint32 ID; // 0
+ uint32 Flags; // 1
+ //uint32 FactionGroup // 2
+ char* Name_lang; // 3
+ //char* Shortcut_lang; // 4
};
struct ChrClassesEntry
{
- uint32 ClassID; // 0
- uint32 powerType; // 1 m_DisplayPower
- // 2 m_petNameToken
- char* name; // 3 m_name_lang
- //char* nameFemale; // 4 m_name_female_lang
- //char* nameNeutralGender; // 5 m_name_male_lang
- //char* capitalizedName // 6, m_filename
- uint32 spellfamily; // 7 m_spellClassSet
- //uint32 flags2; // 8 m_flags (0x08 HasRelicSlot)
- uint32 CinematicSequence; // 9 m_cinematicSequenceID
- uint32 expansion; // 10 m_required_expansion
- uint32 APPerStrenth; // 11 Attack Power bonus per point of strength
- uint32 APPerAgility; // 12 Attack Power bonus per point of agility
- uint32 RAPPerAgility; // 13 Ranged Attack Power bonus per point of agility
+ uint32 ID; // 0
+ uint32 PowerType; // 1
+ //char* PetNameToken // 2
+ char* Name_lang; // 3
+ //char* NameFemale_lang; // 4
+ //char* NameMale_lang; // 5
+ //char* Filename; // 6
+ uint32 SpellClassSet; // 7
+ //uint32 Flags; // 8
+ uint32 CinematicSequenceID; // 9
+ uint32 AttackPowerPerStrength; // 10 Attack Power bonus per point of strength
+ uint32 AttackPowerPerAgility; // 11 Attack Power bonus per point of agility
+ uint32 RangedAttackPowerPerAgility; // 12 Ranged Attack Power bonus per point of agility
+ //uint32 DefaultSpec; // 13
+ //uint32 CreateScreenFileDataID; // 14
+ //uint32 SelectScreenFileDataID; // 15
+ //uint32 LowResScreenFileDataID; // 16
+ //uint32 IconFileDataID; // 17
+ //uint32 Unk1; // 18
};
struct ChrRacesEntry
{
- uint32 RaceID; // 0
+ uint32 ID; // 0
uint32 Flags; // 1
- uint32 FactionID; // 2 facton template id
- // 3 unused
- uint32 model_m; // 4
- uint32 model_f; // 5
- // 6 unused
- uint32 TeamID; // 7 (7-Alliance 1-Horde)
- // 8-11 unused
- uint32 CinematicSequence; // 12 id from CinematicSequences.dbc
- //uint32 unk_322; // 13 m_alliance (0 alliance, 1 horde, 2 not available?)
- char* name; // 14 m_name_lang used for DBC language detection/selection
- //char* nameFemale; // 15 m_name_female_lang
- //char* nameNeutralGender; // 16 m_name_male_lang
- // 17-18 m_facialHairCustomization[2]
- // 19 m_hairCustomization
- uint32 expansion; // 20 m_required_expansion
- //uint32 // 21 (23 for worgens)
- //uint32 // 22 4.0.0
- //uint32 // 23 4.0.0
+ uint32 FactionID; // 2 faction template id
+ //uint32 ExplorationSoundID; // 3
+ uint32 MaleDisplayID; // 4
+ uint32 FemaleDisplayID; // 5
+ //char* ClientPrefix; // 6
+ //uint32 BaseLanguage; // 7
+ //uint32 CreatureType; // 8
+ //uint32 ResSicknessSpellID; // 9
+ //uint32 SplashSoundID; // 10
+ //char* ClientFileString; // 11
+ uint32 CinematicSequenceID; // 12
+ uint32 TeamID; // 13 m_alliance (0 alliance, 1 horde, 2 neutral)
+ char* Name_lang; // 14
+ //char* NameFemale_lang; // 15
+ //char* NameMale_lang; // 16
+ //char* FacialHairCustomization[2]; // 17-18
+ //char* HairCustomization; // 19
+ //uint32 RaceRelated; // 20
+ //uint32 UnalteredVisualRaceID; // 21
+ //uint32 UAMaleCreatureSoundDataID; // 22
+ //uint32 UAFemaleCreatureSoundDataID; // 23
+ //uint32 CharComponentTextureLayoutID; // 24
+ //uint32 DefaultClassID; // 25
+ //uint32 CreateScreenFileDataID; // 26
+ //uint32 SelectScreenFileDataID; // 27
+ //float MaleCustomizeOffset[3]; // 28-30
+ //float FemaleCustomizeOffset[3]; // 31-33
+ //uint32 NeutralRaceID; // 34
+ //uint32 LowResScreenFileDataID; // 35
+ //uint32 HighResMaleDisplayID; // 36
+ //uint32 HighResFemaleDisplayID; // 37
+ //uint32 CharComponentTexLayoutHiResID; // 38
+ //uint32 Unk; // 39
};
struct ChrPowerTypesEntry
@@ -1535,7 +1555,7 @@ struct MapEntry
bool IsContinent() const
{
- return ID == 0 || ID == 1 || ID == 530 || ID == 571 || ID == 1116;
+ return ID == 0 || ID == 1 || ID == 530 || ID == 571 || ID == 870 || ID == 1116;
}
bool IsDynamicDifficultyMap() const { return (Flags & MAP_FLAG_DYNAMIC_DIFFICULTY) != 0; }
diff --git a/src/server/game/DataStores/DBCfmt.h b/src/server/game/DataStores/DBCfmt.h
index 92de682017c..0f12fd0f220 100644
--- a/src/server/game/DataStores/DBCfmt.h
+++ b/src/server/game/DataStores/DBCfmt.h
@@ -38,8 +38,8 @@ char const BattlemasterListEntryfmt[] = "niiiiiiiiiiiiiiiiixsiiiixxxxxxx";
char const CharStartOutfitEntryfmt[] = "dbbbXiiiiiiiiiiiiiiiiiiiiiiiixxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxii";
char const CharTitlesEntryfmt[] = "nxssix";
char const ChatChannelsEntryfmt[] = "nixsx";
-char const ChrClassesEntryfmt[] = "nixsxxxixiiiii";
-char const ChrRacesEntryfmt[] = "niixiixixxxxixsxxxxxixxx";
+char const ChrClassesEntryfmt[] = "nixsxxxixiiiixxxxx";
+char const ChrRacesEntryfmt[] = "niixiixxxxxxiisxxxxxxxxxxxxxxxxxxxxxxxxx";
char const ChrClassesXPowerTypesfmt[] = "nii";
char const CinematicSequencesEntryfmt[] = "nxxxxxxxxx";
char const CreatureDisplayInfofmt[] = "nixifxxxxxxxxxxxx";
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp
index 985d03bd539..1d322cf61eb 100644
--- a/src/server/game/Entities/Player/Player.cpp
+++ b/src/server/game/Entities/Player/Player.cpp
@@ -965,7 +965,7 @@ bool Player::Create(ObjectGuid::LowType guidlow, WorldPackets::Character::Charac
SetMap(sMapMgr->CreateMap(info->mapId, this));
- uint8 powertype = cEntry->powerType;
+ uint8 powertype = cEntry->PowerType;
SetObjectScale(1.0f);
@@ -5329,13 +5329,13 @@ void Player::RepopAtGraveyard()
bool Player::CanJoinConstantChannelInZone(ChatChannelsEntry const* channel, AreaTableEntry const* zone)
{
- if (channel->flags & CHANNEL_DBC_FLAG_ZONE_DEP && zone->flags & AREA_FLAG_ARENA_INSTANCE)
+ if (channel->Flags & CHANNEL_DBC_FLAG_ZONE_DEP && zone->flags & AREA_FLAG_ARENA_INSTANCE)
return false;
- if ((channel->flags & CHANNEL_DBC_FLAG_CITY_ONLY) && (!(zone->flags & AREA_FLAG_SLAVE_CAPITAL)))
+ if ((channel->Flags & CHANNEL_DBC_FLAG_CITY_ONLY) && (!(zone->flags & AREA_FLAG_SLAVE_CAPITAL)))
return false;
- if ((channel->flags & CHANNEL_DBC_FLAG_GUILD_REQ) && GetGuildId())
+ if ((channel->Flags & CHANNEL_DBC_FLAG_GUILD_REQ) && GetGuildId())
return false;
return true;
@@ -5400,22 +5400,22 @@ void Player::UpdateLocalChannels(uint32 newZone)
if (CanJoinConstantChannelInZone(channel, current_zone))
{
- if (!(channel->flags & CHANNEL_DBC_FLAG_GLOBAL))
+ if (!(channel->Flags & CHANNEL_DBC_FLAG_GLOBAL))
{
- if (channel->flags & CHANNEL_DBC_FLAG_CITY_ONLY && usedChannel)
+ if (channel->Flags & CHANNEL_DBC_FLAG_CITY_ONLY && usedChannel)
continue; // Already on the channel, as city channel names are not changing
char new_channel_name_buf[100];
char const* currentNameExt;
- if (channel->flags & CHANNEL_DBC_FLAG_CITY_ONLY)
+ if (channel->Flags & CHANNEL_DBC_FLAG_CITY_ONLY)
currentNameExt = sObjectMgr->GetTrinityStringForDBCLocale(LANG_CHANNEL_CITY);
else
currentNameExt = current_zone_name.c_str();
- snprintf(new_channel_name_buf, 100, channel->pattern, currentNameExt);
+ snprintf(new_channel_name_buf, 100, channel->Name_lang, currentNameExt);
- joinChannel = cMgr->GetJoinChannel(new_channel_name_buf, channel->ChannelID);
+ joinChannel = cMgr->GetJoinChannel(new_channel_name_buf, channel->ID);
if (usedChannel)
{
if (joinChannel != usedChannel)
@@ -5428,7 +5428,7 @@ void Player::UpdateLocalChannels(uint32 newZone)
}
}
else
- joinChannel = cMgr->GetJoinChannel(channel->pattern, channel->ChannelID);
+ joinChannel = cMgr->GetJoinChannel(channel->Name_lang, channel->ID);
}
else
removeChannel = usedChannel;
@@ -6617,8 +6617,8 @@ uint32 Player::TeamForRace(uint8 race)
{
switch (rEntry->TeamID)
{
+ case 0: return ALLIANCE;
case 1: return HORDE;
- case 7: return ALLIANCE;
}
TC_LOG_ERROR("entities.player", "Race (%u) has wrong teamid (%u) in DBC: wrong DBC files?", uint32(race), rEntry->TeamID);
}
@@ -21612,8 +21612,8 @@ void Player::InitDataForForm(bool reapplyMods)
default: // 0, for example
{
ChrClassesEntry const* cEntry = sChrClassesStore.LookupEntry(getClass());
- if (cEntry && cEntry->powerType < MAX_POWERS && uint32(getPowerType()) != cEntry->powerType)
- setPowerType(Powers(cEntry->powerType));
+ if (cEntry && cEntry->PowerType < MAX_POWERS && uint32(getPowerType()) != cEntry->PowerType)
+ setPowerType(Powers(cEntry->PowerType));
break;
}
}
@@ -23378,7 +23378,7 @@ void Player::ResetSpells(bool myClassOnly)
ChrClassesEntry const* clsEntry = sChrClassesStore.LookupEntry(getClass());
if (!clsEntry)
return;
- family = clsEntry->spellfamily;
+ family = clsEntry->SpellClassSet;
for (PlayerSpellMap::const_iterator iter = smap.begin(); iter != smap.end(); ++iter)
{
diff --git a/src/server/game/Entities/Unit/StatSystem.cpp b/src/server/game/Entities/Unit/StatSystem.cpp
index 541a7c711ec..729cd4f1a41 100644
--- a/src/server/game/Entities/Unit/StatSystem.cpp
+++ b/src/server/game/Entities/Unit/StatSystem.cpp
@@ -318,17 +318,17 @@ void Player::UpdateAttackPowerAndDamage(bool ranged)
if (ranged)
{
index = UNIT_FIELD_RANGED_ATTACK_POWER;
- val2 = (level + std::max(GetStat(STAT_AGILITY) - 10.0f, 0.0f)) * entry->RAPPerAgility;
+ val2 = (level + std::max(GetStat(STAT_AGILITY) - 10.0f, 0.0f)) * entry->RangedAttackPowerPerAgility;
}
else
{
- float strengthValue = std::max((GetStat(STAT_STRENGTH) - 10.0f) * entry->APPerStrenth, 0.0f);
- float agilityValue = std::max((GetStat(STAT_AGILITY) - 10.0f) * entry->APPerAgility, 0.0f);
+ float strengthValue = std::max((GetStat(STAT_STRENGTH) - 10.0f) * entry->AttackPowerPerStrength, 0.0f);
+ float agilityValue = std::max((GetStat(STAT_AGILITY) - 10.0f) * entry->AttackPowerPerAgility, 0.0f);
SpellShapeshiftFormEntry const* form = sSpellShapeshiftFormStore.LookupEntry(GetShapeshiftForm());
// Directly taken from client, SHAPESHIFT_FLAG_AP_FROM_STRENGTH ?
if (form && form->flags1 & 0x20)
- agilityValue += std::max((GetStat(STAT_AGILITY) - 10.0f) * entry->APPerStrenth, 0.0f);
+ agilityValue += std::max((GetStat(STAT_AGILITY) - 10.0f) * entry->AttackPowerPerStrength, 0.0f);
val2 = strengthValue + agilityValue;
}
diff --git a/src/server/game/Globals/ObjectMgr.cpp b/src/server/game/Globals/ObjectMgr.cpp
index 8ec41b82d7f..c46131270b4 100644
--- a/src/server/game/Globals/ObjectMgr.cpp
+++ b/src/server/game/Globals/ObjectMgr.cpp
@@ -3188,8 +3188,8 @@ void ObjectMgr::LoadPlayerInfo()
info->positionY = positionY;
info->positionZ = positionZ;
info->orientation = orientation;
- info->displayId_m = rEntry->model_m;
- info->displayId_f = rEntry->model_f;
+ info->displayId_m = rEntry->MaleDisplayID;
+ info->displayId_f = rEntry->FemaleDisplayID;
_playerInfo[current_race][current_class] = info;
++count;
diff --git a/src/server/game/Globals/ObjectMgr.h b/src/server/game/Globals/ObjectMgr.h
index 045e8705f19..b56500a1a10 100644
--- a/src/server/game/Globals/ObjectMgr.h
+++ b/src/server/game/Globals/ObjectMgr.h
@@ -1353,8 +1353,24 @@ class ObjectMgr
void LoadRealmNames();
std::string GetRealmName(uint32 realm) const;
+
ExpansionRequirementContainer const& GetRaceExpansionRequirements() const { return _raceExpansionRequirementStore; }
+ uint8 const GetRaceExpansionRequirement(uint8 race)
+ {
+ auto itr = _raceExpansionRequirementStore.find(race);
+ if (itr != _raceExpansionRequirementStore.end())
+ return itr->second;
+ return EXPANSION_CLASSIC;
+ }
+
ExpansionRequirementContainer const& GetClassExpansionRequirements() const { return _classExpansionRequirementStore; }
+ uint8 const GetClassExpansionRequirement(uint8 race)
+ {
+ auto itr = _classExpansionRequirementStore.find(race);
+ if (itr != _classExpansionRequirementStore.end())
+ return itr->second;
+ return EXPANSION_CLASSIC;
+ }
private:
// first free id for selected id type
diff --git a/src/server/game/Guilds/GuildFinderMgr.cpp b/src/server/game/Guilds/GuildFinderMgr.cpp
index 81a16a5d2f1..67a00d3dff8 100644
--- a/src/server/game/Guilds/GuildFinderMgr.cpp
+++ b/src/server/game/Guilds/GuildFinderMgr.cpp
@@ -62,10 +62,9 @@ void GuildFinderMgr::LoadGuildSettings()
bool listed = (fields[5].GetUInt8() != 0);
std::string comment = fields[6].GetString();
- TeamId guildTeam = TEAM_ALLIANCE;
+ TeamId guildTeam = TEAM_NEUTRAL;
if (ChrRacesEntry const* raceEntry = sChrRacesStore.LookupEntry(fields[7].GetUInt8()))
- if (raceEntry->TeamID == 1)
- guildTeam = TEAM_HORDE;
+ guildTeam = (TeamId)raceEntry->TeamID;
LFGuildSettings settings(listed, guildTeam, guildId, classRoles, availability, interests, level, comment);
_guildSettings[guildId] = settings;
diff --git a/src/server/game/Handlers/CharacterHandler.cpp b/src/server/game/Handlers/CharacterHandler.cpp
index afbc283676d..d868cd1bd13 100644
--- a/src/server/game/Handlers/CharacterHandler.cpp
+++ b/src/server/game/Handlers/CharacterHandler.cpp
@@ -356,17 +356,19 @@ void WorldSession::HandleCharCreateOpcode(WorldPackets::Character::CharacterCrea
}
// prevent character creating Expansion race without Expansion account
- if (raceEntry->expansion > Expansion())
+ uint8 raceExpansionRequirement = sObjectMgr->GetRaceExpansionRequirement(charCreate.CreateInfo->Race);
+ if (raceExpansionRequirement > Expansion())
{
- TC_LOG_ERROR("network", "Expansion %u account:[%d] tried to Create character with expansion %u race (%u)", Expansion(), GetAccountId(), raceEntry->expansion, charCreate.CreateInfo->Race);
+ TC_LOG_ERROR("network", "Expansion %u account:[%d] tried to Create character with expansion %u race (%u)", Expansion(), GetAccountId(), raceExpansionRequirement, charCreate.CreateInfo->Race);
SendCharCreate(CHAR_CREATE_EXPANSION);
return;
}
// prevent character creating Expansion class without Expansion account
- if (classEntry->expansion > Expansion())
+ uint8 classExpansionRequirement = sObjectMgr->GetClassExpansionRequirement(charCreate.CreateInfo->Class);
+ if (classExpansionRequirement > Expansion())
{
- TC_LOG_ERROR("network", "Expansion %u account:[%d] tried to Create character with expansion %u class (%u)", Expansion(), GetAccountId(), classEntry->expansion, charCreate.CreateInfo->Class);
+ TC_LOG_ERROR("network", "Expansion %u account:[%d] tried to Create character with expansion %u class (%u)", Expansion(), GetAccountId(), classExpansionRequirement, charCreate.CreateInfo->Class);
SendCharCreate(CHAR_CREATE_EXPANSION_CLASS);
return;
}
@@ -940,10 +942,10 @@ void WorldSession::HandlePlayerLogin(LoginQueryHolder* holder)
if (ChrClassesEntry const* cEntry = sChrClassesStore.LookupEntry(pCurrChar->getClass()))
{
- if (cEntry->CinematicSequence)
- pCurrChar->SendCinematicStart(cEntry->CinematicSequence);
+ if (cEntry->CinematicSequenceID)
+ pCurrChar->SendCinematicStart(cEntry->CinematicSequenceID);
else if (ChrRacesEntry const* rEntry = sChrRacesStore.LookupEntry(pCurrChar->getRace()))
- pCurrChar->SendCinematicStart(rEntry->CinematicSequence);
+ pCurrChar->SendCinematicStart(rEntry->CinematicSequenceID);
// send new char string if not empty
if (!sWorld->GetNewCharString().empty())
@@ -2241,10 +2243,10 @@ void WorldSession::HandleOpeningCinematic(WorldPacket& /*recvData*/)
if (ChrClassesEntry const* classEntry = sChrClassesStore.LookupEntry(_player->getClass()))
{
- if (classEntry->CinematicSequence)
- _player->SendCinematicStart(classEntry->CinematicSequence);
+ if (classEntry->CinematicSequenceID)
+ _player->SendCinematicStart(classEntry->CinematicSequenceID);
else if (ChrRacesEntry const* raceEntry = sChrRacesStore.LookupEntry(_player->getRace()))
- _player->SendCinematicStart(raceEntry->CinematicSequence);
+ _player->SendCinematicStart(raceEntry->CinematicSequenceID);
}
}
diff --git a/src/server/scripts/Commands/cs_learn.cpp b/src/server/scripts/Commands/cs_learn.cpp
index 60523428e6f..886e866d66a 100644
--- a/src/server/scripts/Commands/cs_learn.cpp
+++ b/src/server/scripts/Commands/cs_learn.cpp
@@ -152,7 +152,7 @@ public:
ChrClassesEntry const* classEntry = sChrClassesStore.LookupEntry(handler->GetSession()->GetPlayer()->getClass());
if (!classEntry)
return true;
- uint32 family = classEntry->spellfamily;
+ uint32 family = classEntry->SpellClassSet;
for (uint32 i = 0; i < sSkillLineAbilityStore.GetNumRows(); ++i)
{
diff --git a/src/server/scripts/Commands/cs_reset.cpp b/src/server/scripts/Commands/cs_reset.cpp
index 46fe0c64330..9d2621c0010 100644
--- a/src/server/scripts/Commands/cs_reset.cpp
+++ b/src/server/scripts/Commands/cs_reset.cpp
@@ -93,7 +93,7 @@ public:
return false;
}
- uint8 powerType = classEntry->powerType;
+ uint8 powerType = classEntry->PowerType;
// reset m_form if no aura
if (!player->HasAuraType(SPELL_AURA_MOD_SHAPESHIFT))