diff options
author | Intel <chemicstry@gmail.com> | 2014-11-07 17:39:16 +0200 |
---|---|---|
committer | Intel <chemicstry@gmail.com> | 2014-11-07 17:39:16 +0200 |
commit | 7c72f27b7c83b10636e57e30ca036f5b6bc5820e (patch) | |
tree | 54990b3864fdc1ac5c2be02dc63007f1a634f2ff /src | |
parent | e289335e0afb383e30a82a8585fe8430810f35da (diff) |
Core/DataStores: Updated ChatChannels.dbc, ChrClasses.dbc, ChrRaces.dbc structs
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/Chat/Channels/Channel.cpp | 6 | ||||
-rw-r--r-- | src/server/game/DataStores/DBCStores.cpp | 4 | ||||
-rw-r--r-- | src/server/game/DataStores/DBCStructure.h | 98 | ||||
-rw-r--r-- | src/server/game/DataStores/DBCfmt.h | 4 | ||||
-rw-r--r-- | src/server/game/Entities/Player/Player.cpp | 28 | ||||
-rw-r--r-- | src/server/game/Entities/Unit/StatSystem.cpp | 8 | ||||
-rw-r--r-- | src/server/game/Globals/ObjectMgr.cpp | 4 | ||||
-rw-r--r-- | src/server/game/Globals/ObjectMgr.h | 16 | ||||
-rw-r--r-- | src/server/game/Guilds/GuildFinderMgr.cpp | 5 | ||||
-rw-r--r-- | src/server/game/Handlers/CharacterHandler.cpp | 22 | ||||
-rw-r--r-- | src/server/scripts/Commands/cs_learn.cpp | 2 | ||||
-rw-r--r-- | src/server/scripts/Commands/cs_reset.cpp | 2 |
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)) |