diff --git a/src/game/AchievementMgr.cpp b/src/game/AchievementMgr.cpp index 314a47e9c..045973f7c 100644 --- a/src/game/AchievementMgr.cpp +++ b/src/game/AchievementMgr.cpp @@ -385,7 +385,7 @@ void AchievementMgr::ResetAchievementCriteria(AchievementCriteriaTypes type, uin if((sLog.getLogFilter() & LOG_FILTER_ACHIEVEMENT_UPDATES)==0) sLog.outDetail("AchievementMgr::ResetAchievementCriteria(%u, %u, %u)", type, miscvalue1, miscvalue2); - if (!sWorld.getConfig(CONFIG_GM_ALLOW_ACHIEVEMENT_GAINS) && m_player->GetSession()->GetSecurity() > SEC_PLAYER) + if (!sWorld.getConfig(CONFIG_BOOL_GM_ALLOW_ACHIEVEMENT_GAINS) && m_player->GetSession()->GetSecurity() > SEC_PLAYER) return; AchievementCriteriaEntryList const& achievementCriteriaList = sAchievementMgr.GetAchievementCriteriaByType(type); @@ -625,9 +625,9 @@ void AchievementMgr::SendAchievementEarned(AchievementEntry const* achievement) MaNGOS::AchievementChatBuilder say_builder(*GetPlayer(), CHAT_MSG_ACHIEVEMENT, LANG_ACHIEVEMENT_EARNED,achievement->ID); MaNGOS::LocalizedPacketDo say_do(say_builder); - MaNGOS::PlayerDistWorker > say_worker(GetPlayer(),sWorld.getRate(RATE_LISTEN_RANGE_SAY),say_do); + MaNGOS::PlayerDistWorker > say_worker(GetPlayer(),sWorld.getConfig(CONFIG_FLOAT_LISTEN_RANGE_SAY),say_do); TypeContainerVisitor >, WorldTypeMapContainer > message(say_worker); - cell.Visit(p, message, *GetPlayer()->GetMap(), *GetPlayer(), sWorld.getRate(RATE_LISTEN_RANGE_SAY)); + cell.Visit(p, message, *GetPlayer()->GetMap(), *GetPlayer(), sWorld.getConfig(CONFIG_FLOAT_LISTEN_RANGE_SAY)); } WorldPacket data(SMSG_ACHIEVEMENT_EARNED, 8+4+8); @@ -635,7 +635,7 @@ void AchievementMgr::SendAchievementEarned(AchievementEntry const* achievement) data << uint32(achievement->ID); data << uint32(secsToTimeBitFields(time(NULL))); data << uint32(0); - GetPlayer()->SendMessageToSetInRange(&data, sWorld.getRate(RATE_LISTEN_RANGE_SAY), true); + GetPlayer()->SendMessageToSetInRange(&data, sWorld.getConfig(CONFIG_FLOAT_LISTEN_RANGE_SAY), true); } void AchievementMgr::SendCriteriaUpdate(uint32 id, CriteriaProgress const* progress) @@ -684,7 +684,7 @@ void AchievementMgr::UpdateAchievementCriteria(AchievementCriteriaTypes type, ui if((sLog.getLogFilter() & LOG_FILTER_ACHIEVEMENT_UPDATES)==0) sLog.outDetail("AchievementMgr::UpdateAchievementCriteria(%u, %u, %u, %u)", type, miscvalue1, miscvalue2, time); - if (!sWorld.getConfig(CONFIG_GM_ALLOW_ACHIEVEMENT_GAINS) && m_player->GetSession()->GetSecurity() > SEC_PLAYER) + if (!sWorld.getConfig(CONFIG_BOOL_GM_ALLOW_ACHIEVEMENT_GAINS) && m_player->GetSession()->GetSecurity() > SEC_PLAYER) return; AchievementCriteriaEntryList const& achievementCriteriaList = sAchievementMgr.GetAchievementCriteriaByType(type); diff --git a/src/game/AggressorAI.cpp b/src/game/AggressorAI.cpp index 6cc999ae6..4ab9a7ab2 100644 --- a/src/game/AggressorAI.cpp +++ b/src/game/AggressorAI.cpp @@ -141,7 +141,7 @@ AggressorAI::UpdateAI(const uint32 /*diff*/) bool AggressorAI::IsVisible(Unit *pl) const { - return m_creature->IsWithinDist(pl,sWorld.getRate(RATE_SIGHT_MONSTER)) + return m_creature->IsWithinDist(pl,sWorld.getConfig(CONFIG_FLOAT_SIGHT_MONSTER)) && pl->isVisibleForOrDetect(m_creature,m_creature,true); } diff --git a/src/game/ArenaTeam.cpp b/src/game/ArenaTeam.cpp index 7f1827865..ed4ce5b69 100644 --- a/src/game/ArenaTeam.cpp +++ b/src/game/ArenaTeam.cpp @@ -36,7 +36,7 @@ ArenaTeam::ArenaTeam() m_stats.games_week = 0; m_stats.games_season = 0; m_stats.rank = 0; - if (sWorld.getConfig(CONFIG_ARENA_SEASON_ID) >= 6) + if (sWorld.getConfig(CONFIG_UINT32_ARENA_SEASON_ID) >= 6) m_stats.rating = 0; else m_stats.rating = 1500; @@ -134,7 +134,7 @@ bool ArenaTeam::AddMember(const uint64& PlayerGuid) newmember.games_week = 0; newmember.wins_season = 0; newmember.wins_week = 0; - if (sWorld.getConfig(CONFIG_ARENA_SEASON_ID) >= 6) + if (sWorld.getConfig(CONFIG_UINT32_ARENA_SEASON_ID) >= 6) { if (m_stats.rating < 1000) newmember.personal_rating = 0; @@ -543,7 +543,7 @@ float ArenaTeam::GetChanceAgainst(uint32 own_rating, uint32 enemy_rating) // returns the chance to win against a team with the given rating, used in the rating adjustment calculation // ELO system - if (sWorld.getConfig(CONFIG_ARENA_SEASON_ID) >= 6) + if (sWorld.getConfig(CONFIG_UINT32_ARENA_SEASON_ID) >= 6) if (enemy_rating < 1000) enemy_rating = 1000; return 1.0f/(1.0f+exp(log(10.0f)*(float)((float)enemy_rating - (float)own_rating)/400.0f)); diff --git a/src/game/ArenaTeamHandler.cpp b/src/game/ArenaTeamHandler.cpp index aa0cfc558..1b2d2a9ab 100644 --- a/src/game/ArenaTeamHandler.cpp +++ b/src/game/ArenaTeamHandler.cpp @@ -97,7 +97,7 @@ void WorldSession::HandleArenaTeamInviteOpcode(WorldPacket & recv_data) return; } - if(player->getLevel() < sWorld.getConfig(CONFIG_MAX_PLAYER_LEVEL)) + if(player->getLevel() < sWorld.getConfig(CONFIG_UINT32_MAX_PLAYER_LEVEL)) { SendArenaTeamCommandResult(ERR_ARENA_TEAM_CREATE_S, "", player->GetName(), ERR_ARENA_TEAM_TARGET_TOO_LOW_S); return; @@ -114,7 +114,7 @@ void WorldSession::HandleArenaTeamInviteOpcode(WorldPacket & recv_data) if(player->GetSocial()->HasIgnore(GetPlayer()->GetGUIDLow())) return; - if (!sWorld.getConfig(CONFIG_ALLOW_TWO_SIDE_INTERACTION_GUILD) && player->GetTeam() != GetPlayer()->GetTeam()) + if (!sWorld.getConfig(CONFIG_BOOL_ALLOW_TWO_SIDE_INTERACTION_GUILD) && player->GetTeam() != GetPlayer()->GetTeam()) { SendArenaTeamCommandResult(ERR_ARENA_TEAM_INVITE_SS, "", "", ERR_ARENA_TEAM_NOT_ALLIED); return; @@ -165,7 +165,7 @@ void WorldSession::HandleArenaTeamAcceptOpcode(WorldPacket & /*recv_data*/) return; } - if (!sWorld.getConfig(CONFIG_ALLOW_TWO_SIDE_INTERACTION_GUILD) && _player->GetTeam() != sObjectMgr.GetPlayerTeamByGUID(at->GetCaptain())) + if (!sWorld.getConfig(CONFIG_BOOL_ALLOW_TWO_SIDE_INTERACTION_GUILD) && _player->GetTeam() != sObjectMgr.GetPlayerTeamByGUID(at->GetCaptain())) { // not let enemies sign petition SendArenaTeamCommandResult(ERR_ARENA_TEAM_CREATE_S, "", "", ERR_ARENA_TEAM_NOT_ALLIED); diff --git a/src/game/AuctionHouseHandler.cpp b/src/game/AuctionHouseHandler.cpp index 9f29a99a7..d971c8173 100644 --- a/src/game/AuctionHouseHandler.cpp +++ b/src/game/AuctionHouseHandler.cpp @@ -238,7 +238,7 @@ void WorldSession::HandleAuctionSellItem( WorldPacket & recv_data ) return; } - if( GetSecurity() > SEC_PLAYER && sWorld.getConfig(CONFIG_GM_LOG_TRADE) ) + if( GetSecurity() > SEC_PLAYER && sWorld.getConfig(CONFIG_BOOL_GM_LOG_TRADE) ) { sLog.outCommand(GetAccountId(),"GM %s (Account: %u) create auction: %s (Entry: %u Count: %u)", GetPlayerName(),GetAccountId(),it->GetProto()->Name1,it->GetEntry(),it->GetCount()); @@ -246,7 +246,7 @@ void WorldSession::HandleAuctionSellItem( WorldPacket & recv_data ) pl->ModifyMoney( -int32(deposit) ); - uint32 auction_time = uint32(etime * sWorld.getRate(RATE_AUCTION_TIME)); + uint32 auction_time = uint32(etime * sWorld.getConfig(CONFIG_FLOAT_RATE_AUCTION_TIME)); AuctionEntry *AH = new AuctionEntry; AH->Id = sObjectMgr.GenerateAuctionID(); diff --git a/src/game/AuctionHouseMgr.cpp b/src/game/AuctionHouseMgr.cpp index d729de26f..72adc27bb 100644 --- a/src/game/AuctionHouseMgr.cpp +++ b/src/game/AuctionHouseMgr.cpp @@ -50,7 +50,7 @@ AuctionHouseMgr::~AuctionHouseMgr() AuctionHouseObject * AuctionHouseMgr::GetAuctionsMap( uint32 factionTemplateId ) { - if(sWorld.getConfig(CONFIG_ALLOW_TWO_SIDE_INTERACTION_AUCTION)) + if(sWorld.getConfig(CONFIG_BOOL_ALLOW_TWO_SIDE_INTERACTION_AUCTION)) return &mNeutralAuctions; // team have linked auction houses @@ -69,7 +69,7 @@ uint32 AuctionHouseMgr::GetAuctionDeposit(AuctionHouseEntry const* entry, uint32 { uint32 deposit = pItem->GetProto()->SellPrice * pItem->GetCount() * (time / MIN_AUCTION_TIME ); - return uint32(deposit * entry->depositPercent * 3 * sWorld.getRate(RATE_AUCTION_DEPOSIT) / 100.0f ); + return uint32(deposit * entry->depositPercent * 3 * sWorld.getConfig(CONFIG_FLOAT_RATE_AUCTION_DEPOSIT) / 100.0f ); } //does not clear ram @@ -85,7 +85,7 @@ void AuctionHouseMgr::SendAuctionWonMail( AuctionEntry *auction ) uint32 bidder_accId = 0; // data for gm.log - if( sWorld.getConfig(CONFIG_GM_LOG_TRADE) ) + if( sWorld.getConfig(CONFIG_BOOL_GM_LOG_TRADE) ) { uint32 bidder_security = 0; std::string bidder_name; @@ -465,7 +465,7 @@ AuctionHouseEntry const* AuctionHouseMgr::GetAuctionHouseEntry(uint32 factionTem { uint32 houseid = 1; // dwarf auction house (used for normal cut/etc percents) - if(!sWorld.getConfig(CONFIG_ALLOW_TWO_SIDE_INTERACTION_AUCTION)) + if(!sWorld.getConfig(CONFIG_BOOL_ALLOW_TWO_SIDE_INTERACTION_AUCTION)) { //FIXME: found way for proper auctionhouse selection by another way // AuctionHo use.dbc have faction field with _player_ factions associated with auction house races. @@ -662,7 +662,7 @@ bool AuctionEntry::BuildAuctionInfo(WorldPacket & data) const uint32 AuctionEntry::GetAuctionCut() const { - return uint32(auctionHouseEntry->cutPercent * bid * sWorld.getRate(RATE_AUCTION_CUT) / 100.0f); + return uint32(auctionHouseEntry->cutPercent * bid * sWorld.getConfig(CONFIG_FLOAT_RATE_AUCTION_CUT) / 100.0f); } /// the sum of outbid is (1% from current bid)*5, if bid is very small, it is 1c diff --git a/src/game/BattleGround.cpp b/src/game/BattleGround.cpp index 30796f0de..fce6124d6 100644 --- a/src/game/BattleGround.cpp +++ b/src/game/BattleGround.cpp @@ -471,7 +471,7 @@ void BattleGround::Update(uint32 diff) if (Player* plr = sObjectMgr.GetPlayer(itr->first)) plr->RemoveAurasDueToSpell(SPELL_PREPARATION); //Announce BG starting - if (sWorld.getConfig(CONFIG_BATTLEGROUND_QUEUE_ANNOUNCER_ENABLE)) + if (sWorld.getConfig(CONFIG_BOOL_BATTLEGROUND_QUEUE_ANNOUNCER_ENABLE)) { sWorld.SendWorldText(LANG_BG_STARTED_ANNOUNCE_WORLD, GetName(), GetMinLevel(), GetMaxLevel()); } diff --git a/src/game/BattleGroundMgr.cpp b/src/game/BattleGroundMgr.cpp index 4323b9deb..352b14540 100644 --- a/src/game/BattleGroundMgr.cpp +++ b/src/game/BattleGroundMgr.cpp @@ -178,7 +178,7 @@ GroupQueueInfo * BattleGroundQueue::AddGroup(Player *leader, Group* grp, BattleG uint32 lastOnlineTime = getMSTime(); //announce world (this don't need mutex) - if (isRated && sWorld.getConfig(CONFIG_ARENA_QUEUE_ANNOUNCER_ENABLE)) + if (isRated && sWorld.getConfig(CONFIG_BOOL_ARENA_QUEUE_ANNOUNCER_ENABLE)) { sWorld.SendWorldText(LANG_ARENA_QUEUE_ANNOUNCE_WORLD_JOIN, ginfo->ArenaType, ginfo->ArenaType, ginfo->ArenaTeamRating); } @@ -212,7 +212,7 @@ GroupQueueInfo * BattleGroundQueue::AddGroup(Player *leader, Group* grp, BattleG m_QueuedGroups[bracketId][index].push_back(ginfo); //announce to world, this code needs mutex - if (!isRated && !isPremade && sWorld.getConfig(CONFIG_BATTLEGROUND_QUEUE_ANNOUNCER_ENABLE)) + if (!isRated && !isPremade && sWorld.getConfig(CONFIG_BOOL_BATTLEGROUND_QUEUE_ANNOUNCER_ENABLE)) { if (BattleGround* bg = sBattleGroundMgr.GetBattleGroundTemplate(ginfo->BgTypeId)) { @@ -231,7 +231,7 @@ GroupQueueInfo * BattleGroundQueue::AddGroup(Player *leader, Group* grp, BattleG qHorde += (*itr)->Players.size(); // Show queue status to player only (when joining queue) - if (sWorld.getConfig(CONFIG_BATTLEGROUND_QUEUE_ANNOUNCER_PLAYERONLY)) + if (sWorld.getConfig(CONFIG_BOOL_BATTLEGROUND_QUEUE_ANNOUNCER_PLAYERONLY)) { ChatHandler(leader).PSendSysMessage(LANG_BG_QUEUE_ANNOUNCE_SELF, bgName, q_min_level, q_max_level, qAlliance, (MinPlayers > qAlliance) ? MinPlayers - qAlliance : (uint32)0, qHorde, (MinPlayers > qHorde) ? MinPlayers - qHorde : (uint32)0); @@ -372,7 +372,7 @@ void BattleGroundQueue::RemovePlayer(const uint64& guid, bool decreaseInvitedCou m_QueuedPlayers.erase(itr); // announce to world if arena team left queue for rated match, show only once - if (group->ArenaType && group->IsRated && group->Players.empty() && sWorld.getConfig(CONFIG_ARENA_QUEUE_ANNOUNCER_ENABLE)) + if (group->ArenaType && group->IsRated && group->Players.empty() && sWorld.getConfig(CONFIG_BOOL_ARENA_QUEUE_ANNOUNCER_ENABLE)) sWorld.SendWorldText(LANG_ARENA_QUEUE_ANNOUNCE_WORLD_EXIT, group->ArenaType, group->ArenaType, group->ArenaTeamRating); //if player leaves queue and he is invited to rated arena match, then he have to loose @@ -528,7 +528,7 @@ void BattleGroundQueue::FillPlayersToBG(BattleGround* bg, BattleGroundBracketId ++Horde_itr; //if ofc like BG queue invitation is set in config, then we are happy - if (sWorld.getConfig(CONFIG_BATTLEGROUND_INVITATION_TYPE) == 0) + if (sWorld.getConfig(CONFIG_UINT32_BATTLEGROUND_INVITATION_TYPE) == 0) return; /* @@ -624,7 +624,7 @@ bool BattleGroundQueue::CheckPremadeMatch(BattleGroundBracketId bracket_id, uint // this could be 2 cycles but i'm checking only first team in queue - it can cause problem - // if first is invited to BG and seconds timer expired, but we can ignore it, because players have only 80 seconds to click to enter bg // and when they click or after 80 seconds the queue info is removed from queue - uint32 time_before = getMSTime() - sWorld.getConfig(CONFIG_BATTLEGROUND_PREMADE_GROUP_WAIT_FOR_MATCH); + uint32 time_before = getMSTime() - sWorld.getConfig(CONFIG_UINT32_BATTLEGROUND_PREMADE_GROUP_WAIT_FOR_MATCH); for(uint32 i = 0; i < BG_TEAMS_COUNT; i++) { if (!m_QueuedGroups[bracket_id][BG_QUEUE_PREMADE_ALLIANCE + i].empty()) @@ -663,7 +663,7 @@ bool BattleGroundQueue::CheckNormalMatch(BattleGround* bg_template, BattleGround uint32 j = BG_TEAM_ALLIANCE; if (m_SelectionPools[BG_TEAM_HORDE].GetPlayerCount() < m_SelectionPools[BG_TEAM_ALLIANCE].GetPlayerCount()) j = BG_TEAM_HORDE; - if( sWorld.getConfig(CONFIG_BATTLEGROUND_INVITATION_TYPE) != 0 + if( sWorld.getConfig(CONFIG_UINT32_BATTLEGROUND_INVITATION_TYPE) != 0 && m_SelectionPools[BG_TEAM_HORDE].GetPlayerCount() >= minPlayers && m_SelectionPools[BG_TEAM_ALLIANCE].GetPlayerCount() >= minPlayers ) { //we will try to invite more groups to team with less players indexed by j @@ -1127,7 +1127,7 @@ BattleGroundMgr::BattleGroundMgr() : m_AutoDistributionTimeChecker(0), m_ArenaTe { for(uint32 i = BATTLEGROUND_TYPE_NONE; i < MAX_BATTLEGROUND_TYPE_ID; i++) m_BattleGrounds[i].clear(); - m_NextRatingDiscardUpdate = sWorld.getConfig(CONFIG_ARENA_RATING_DISCARD_TIMER); + m_NextRatingDiscardUpdate = sWorld.getConfig(CONFIG_UINT32_ARENA_RATING_DISCARD_TIMER); m_Testing=false; } @@ -1212,7 +1212,7 @@ void BattleGroundMgr::Update(uint32 diff) } // if rating difference counts, maybe force-update queues - if (sWorld.getConfig(CONFIG_ARENA_MAX_RATING_DIFFERENCE) && sWorld.getConfig(CONFIG_ARENA_RATING_DISCARD_TIMER)) + if (sWorld.getConfig(CONFIG_UINT32_ARENA_MAX_RATING_DIFFERENCE) && sWorld.getConfig(CONFIG_UINT32_ARENA_RATING_DISCARD_TIMER)) { // it's time to force update if (m_NextRatingDiscardUpdate < diff) @@ -1225,19 +1225,19 @@ void BattleGroundMgr::Update(uint32 diff) BATTLEGROUND_AA, BattleGroundBracketId(bracket), BattleGroundMgr::BGArenaType(BattleGroundQueueTypeId(qtype)), true, 0); - m_NextRatingDiscardUpdate = sWorld.getConfig(CONFIG_ARENA_RATING_DISCARD_TIMER); + m_NextRatingDiscardUpdate = sWorld.getConfig(CONFIG_UINT32_ARENA_RATING_DISCARD_TIMER); } else m_NextRatingDiscardUpdate -= diff; } - if (sWorld.getConfig(CONFIG_ARENA_AUTO_DISTRIBUTE_POINTS)) + if (sWorld.getConfig(CONFIG_BOOL_ARENA_AUTO_DISTRIBUTE_POINTS)) { if (m_AutoDistributionTimeChecker < diff) { if (sWorld.GetGameTime() > m_NextAutoDistributionTime) { DistributeArenaPoints(); - m_NextAutoDistributionTime = time_t(sWorld.GetGameTime() + BATTLEGROUND_ARENA_POINT_DISTRIBUTION_DAY * sWorld.getConfig(CONFIG_ARENA_AUTO_DISTRIBUTE_INTERVAL_DAYS)); + m_NextAutoDistributionTime = time_t(sWorld.GetGameTime() + BATTLEGROUND_ARENA_POINT_DISTRIBUTION_DAY * sWorld.getConfig(CONFIG_UINT32_ARENA_AUTO_DISTRIBUTE_INTERVAL_DAYS)); CharacterDatabase.PExecute("UPDATE saved_variables SET NextArenaPointDistributionTime = '"UI64FMTD"'", uint64(m_NextAutoDistributionTime)); } m_AutoDistributionTimeChecker = 600000; // check 10 minutes @@ -1758,14 +1758,14 @@ void BattleGroundMgr::CreateInitialBattleGrounds() void BattleGroundMgr::InitAutomaticArenaPointDistribution() { - if (sWorld.getConfig(CONFIG_ARENA_AUTO_DISTRIBUTE_POINTS)) + if (sWorld.getConfig(CONFIG_BOOL_ARENA_AUTO_DISTRIBUTE_POINTS)) { sLog.outDebug("Initializing Automatic Arena Point Distribution"); QueryResult * result = CharacterDatabase.Query("SELECT NextArenaPointDistributionTime FROM saved_variables"); if (!result) { sLog.outDebug("Battleground: Next arena point distribution time not found in SavedVariables, reseting it now."); - m_NextAutoDistributionTime = time_t(sWorld.GetGameTime() + BATTLEGROUND_ARENA_POINT_DISTRIBUTION_DAY * sWorld.getConfig(CONFIG_ARENA_AUTO_DISTRIBUTE_INTERVAL_DAYS)); + m_NextAutoDistributionTime = time_t(sWorld.GetGameTime() + BATTLEGROUND_ARENA_POINT_DISTRIBUTION_DAY * sWorld.getConfig(CONFIG_UINT32_ARENA_AUTO_DISTRIBUTE_INTERVAL_DAYS)); CharacterDatabase.PExecute("INSERT INTO saved_variables (NextArenaPointDistributionTime) VALUES ('"UI64FMTD"')", uint64(m_NextAutoDistributionTime)); } else @@ -2016,7 +2016,7 @@ void BattleGroundMgr::ScheduleQueueUpdate(uint32 arenaRating, uint8 arenaType, B uint32 BattleGroundMgr::GetMaxRatingDifference() const { // this is for stupid people who can't use brain and set max rating difference to 0 - uint32 diff = sWorld.getConfig(CONFIG_ARENA_MAX_RATING_DIFFERENCE); + uint32 diff = sWorld.getConfig(CONFIG_UINT32_ARENA_MAX_RATING_DIFFERENCE); if (diff == 0) diff = 5000; return diff; @@ -2024,12 +2024,12 @@ uint32 BattleGroundMgr::GetMaxRatingDifference() const uint32 BattleGroundMgr::GetRatingDiscardTimer() const { - return sWorld.getConfig(CONFIG_ARENA_RATING_DISCARD_TIMER); + return sWorld.getConfig(CONFIG_UINT32_ARENA_RATING_DISCARD_TIMER); } uint32 BattleGroundMgr::GetPrematureFinishTime() const { - return sWorld.getConfig(CONFIG_BATTLEGROUND_PREMATURE_FINISH_TIMER); + return sWorld.getConfig(CONFIG_UINT32_BATTLEGROUND_PREMATURE_FINISH_TIMER); } void BattleGroundMgr::LoadBattleMastersEntry() diff --git a/src/game/Channel.cpp b/src/game/Channel.cpp index 5178be19d..c32afa77c 100644 --- a/src/game/Channel.cpp +++ b/src/game/Channel.cpp @@ -82,7 +82,7 @@ void Channel::Join(uint64 p, const char *pass) if(plr) { if(HasFlag(CHANNEL_FLAG_LFG) && - sWorld.getConfig(CONFIG_RESTRICTED_LFG_CHANNEL) && plr->GetSession()->GetSecurity() == SEC_PLAYER && + sWorld.getConfig(CONFIG_BOOL_RESTRICTED_LFG_CHANNEL) && plr->GetSession()->GetSecurity() == SEC_PLAYER && (plr->GetGroup() || plr->m_lookingForGroup.Empty()) ) { MakeNotInLfg(&data); @@ -96,7 +96,7 @@ void Channel::Join(uint64 p, const char *pass) plr->JoinedChannel(this); } - if(m_announce && (!plr || plr->GetSession()->GetSecurity() < SEC_GAMEMASTER || !sWorld.getConfig(CONFIG_SILENTLY_GM_JOIN_TO_CHANNEL) )) + if(m_announce && (!plr || plr->GetSession()->GetSecurity() < SEC_GAMEMASTER || !sWorld.getConfig(CONFIG_BOOL_SILENTLY_GM_JOIN_TO_CHANNEL) )) { MakeJoined(&data, p); SendToAll(&data); @@ -150,7 +150,7 @@ void Channel::Leave(uint64 p, bool send) bool changeowner = players[p].IsOwner(); players.erase(p); - if(m_announce && (!plr || plr->GetSession()->GetSecurity() < SEC_GAMEMASTER || !sWorld.getConfig(CONFIG_SILENTLY_GM_JOIN_TO_CHANNEL) )) + if(m_announce && (!plr || plr->GetSession()->GetSecurity() < SEC_GAMEMASTER || !sWorld.getConfig(CONFIG_BOOL_SILENTLY_GM_JOIN_TO_CHANNEL) )) { WorldPacket data; MakeLeft(&data, p); @@ -342,7 +342,7 @@ void Channel::SetMode(uint64 p, const char *p2n, bool mod, bool set) // allow make moderator from another team only if both is GMs // at this moment this only way to show channel post for GM from another team if( (plr->GetSession()->GetSecurity() < SEC_GAMEMASTER || newp->GetSession()->GetSecurity() < SEC_GAMEMASTER) && - plr->GetTeam() != newp->GetTeam() && !sWorld.getConfig(CONFIG_ALLOW_TWO_SIDE_INTERACTION_CHANNEL) ) + plr->GetTeam() != newp->GetTeam() && !sWorld.getConfig(CONFIG_BOOL_ALLOW_TWO_SIDE_INTERACTION_CHANNEL) ) { WorldPacket data; MakePlayerNotFound(&data, p2n); @@ -398,7 +398,7 @@ void Channel::SetOwner(uint64 p, const char *newname) return; } - if(newp->GetTeam() != plr->GetTeam() && !sWorld.getConfig(CONFIG_ALLOW_TWO_SIDE_INTERACTION_CHANNEL)) + if(newp->GetTeam() != plr->GetTeam() && !sWorld.getConfig(CONFIG_BOOL_ALLOW_TWO_SIDE_INTERACTION_CHANNEL)) { WorldPacket data; MakePlayerNotFound(&data, newname); @@ -446,7 +446,7 @@ void Channel::List(Player* player) size_t pos = data.wpos(); data << uint32(0); // size of list, placeholder - AccountTypes gmLevelInWhoList = (AccountTypes)sWorld.getConfig(CONFIG_GM_LEVEL_IN_WHO_LIST); + AccountTypes gmLevelInWhoList = (AccountTypes)sWorld.getConfig(CONFIG_UINT32_GM_LEVEL_IN_WHO_LIST); uint32 count = 0; for(PlayerList::const_iterator i = players.begin(); i != players.end(); ++i) @@ -538,7 +538,7 @@ void Channel::Say(uint64 p, const char *what, uint32 lang) { if(!what) return; - if (sWorld.getConfig(CONFIG_ALLOW_TWO_SIDE_INTERACTION_CHANNEL)) + if (sWorld.getConfig(CONFIG_BOOL_ALLOW_TWO_SIDE_INTERACTION_CHANNEL)) lang = LANG_UNIVERSAL; uint32 sec = 0; @@ -606,7 +606,7 @@ void Channel::Invite(uint64 p, const char *newname) if (!plr) return; - if (newp->GetTeam() != plr->GetTeam() && !sWorld.getConfig(CONFIG_ALLOW_TWO_SIDE_INTERACTION_CHANNEL)) + if (newp->GetTeam() != plr->GetTeam() && !sWorld.getConfig(CONFIG_BOOL_ALLOW_TWO_SIDE_INTERACTION_CHANNEL)) { WorldPacket data; MakeInviteWrongFaction(&data); diff --git a/src/game/ChannelMgr.cpp b/src/game/ChannelMgr.cpp index e63d7b4dd..a873f4a54 100644 --- a/src/game/ChannelMgr.cpp +++ b/src/game/ChannelMgr.cpp @@ -25,7 +25,7 @@ INSTANTIATE_SINGLETON_1( HordeChannelMgr ); ChannelMgr* channelMgr(uint32 team) { - if (sWorld.getConfig(CONFIG_ALLOW_TWO_SIDE_INTERACTION_CHANNEL)) + if (sWorld.getConfig(CONFIG_BOOL_ALLOW_TWO_SIDE_INTERACTION_CHANNEL)) return &MaNGOS::Singleton::Instance(); // cross-faction if(team == ALLIANCE) diff --git a/src/game/CharacterHandler.cpp b/src/game/CharacterHandler.cpp index 429843e7e..aa1a17501 100644 --- a/src/game/CharacterHandler.cpp +++ b/src/game/CharacterHandler.cpp @@ -87,7 +87,7 @@ bool LoginQueryHolder::Initialize() res &= SetPQuery(PLAYER_LOGIN_QUERY_LOADSOCIALLIST, "SELECT friend,flags,note FROM character_social WHERE guid = '%u' LIMIT 255", GUID_LOPART(m_guid)); res &= SetPQuery(PLAYER_LOGIN_QUERY_LOADHOMEBIND, "SELECT map,zone,position_x,position_y,position_z FROM character_homebind WHERE guid = '%u'", GUID_LOPART(m_guid)); res &= SetPQuery(PLAYER_LOGIN_QUERY_LOADSPELLCOOLDOWNS, "SELECT spell,item,time FROM character_spell_cooldown WHERE guid = '%u'", GUID_LOPART(m_guid)); - if(sWorld.getConfig(CONFIG_DECLINED_NAMES_USED)) + if(sWorld.getConfig(CONFIG_BOOL_DECLINED_NAMES_USED)) res &= SetPQuery(PLAYER_LOGIN_QUERY_LOADDECLINEDNAMES, "SELECT genitive, dative, accusative, instrumental, prepositional FROM character_declinedname WHERE guid = '%u'", GUID_LOPART(m_guid)); // in other case still be dummy query res &= SetPQuery(PLAYER_LOGIN_QUERY_LOADGUILD, "SELECT guildid,rank FROM guild_member WHERE guid = '%u'", GUID_LOPART(m_guid)); @@ -163,7 +163,7 @@ void WorldSession::HandleCharEnumOpcode( WorldPacket & /*recv_data*/ ) { /// get all the data necessary for loading all characters (along with their pets) on the account CharacterDatabase.AsyncPQuery(&chrHandler, &CharacterHandler::HandleCharEnumCallback, GetAccountId(), - !sWorld.getConfig(CONFIG_DECLINED_NAMES_USED) ? + !sWorld.getConfig(CONFIG_BOOL_DECLINED_NAMES_USED) ? // ------- Query Without Declined Names -------- // 0 1 2 3 4 5 6 7 "SELECT characters.guid, characters.name, characters.race, characters.class, characters.gender, characters.playerBytes, characters.playerBytes2, characters.level, " @@ -203,7 +203,7 @@ void WorldSession::HandleCharCreateOpcode( WorldPacket & recv_data ) if(GetSecurity() == SEC_PLAYER) { - if(uint32 mask = sWorld.getConfig(CONFIG_CHARACTERS_CREATING_DISABLED)) + if(uint32 mask = sWorld.getConfig(CONFIG_UINT32_CHARACTERS_CREATING_DISABLED)) { bool disabled = false; @@ -291,7 +291,7 @@ void WorldSession::HandleCharCreateOpcode( WorldPacket & recv_data ) uint32 acctcharcount = fields[0].GetUInt32(); delete resultacct; - if (acctcharcount >= sWorld.getConfig(CONFIG_CHARACTERS_PER_ACCOUNT)) + if (acctcharcount >= sWorld.getConfig(CONFIG_UINT32_CHARACTERS_PER_ACCOUNT)) { data << (uint8)CHAR_CREATE_ACCOUNT_LIMIT; SendPacket( &data ); @@ -307,7 +307,7 @@ void WorldSession::HandleCharCreateOpcode( WorldPacket & recv_data ) charcount = fields[0].GetUInt8(); delete result; - if (charcount >= sWorld.getConfig(CONFIG_CHARACTERS_PER_REALM)) + if (charcount >= sWorld.getConfig(CONFIG_UINT32_CHARACTERS_PER_REALM)) { data << (uint8)CHAR_CREATE_SERVER_LIMIT; SendPacket( &data ); @@ -316,7 +316,7 @@ void WorldSession::HandleCharCreateOpcode( WorldPacket & recv_data ) } // speedup check for heroic class disabled case - uint32 heroic_free_slots = sWorld.getConfig(CONFIG_HEROIC_CHARACTERS_PER_REALM); + uint32 heroic_free_slots = sWorld.getConfig(CONFIG_UINT32_HEROIC_CHARACTERS_PER_REALM); if(heroic_free_slots == 0 && GetSecurity() == SEC_PLAYER && class_ == CLASS_DEATH_KNIGHT) { data << (uint8)CHAR_CREATE_UNIQUE_CLASS_LIMIT; @@ -325,16 +325,16 @@ void WorldSession::HandleCharCreateOpcode( WorldPacket & recv_data ) } // speedup check for heroic class disabled case - uint32 req_level_for_heroic = sWorld.getConfig(CONFIG_MIN_LEVEL_FOR_HEROIC_CHARACTER_CREATING); - if(GetSecurity() == SEC_PLAYER && class_ == CLASS_DEATH_KNIGHT && req_level_for_heroic > sWorld.getConfig(CONFIG_MAX_PLAYER_LEVEL)) + uint32 req_level_for_heroic = sWorld.getConfig(CONFIG_UINT32_MIN_LEVEL_FOR_HEROIC_CHARACTER_CREATING); + if(GetSecurity() == SEC_PLAYER && class_ == CLASS_DEATH_KNIGHT && req_level_for_heroic > sWorld.getConfig(CONFIG_UINT32_MAX_PLAYER_LEVEL)) { data << (uint8)CHAR_CREATE_LEVEL_REQUIREMENT; SendPacket( &data ); return; } - bool AllowTwoSideAccounts = sWorld.getConfig(CONFIG_ALLOW_TWO_SIDE_ACCOUNTS) || GetSecurity() > SEC_PLAYER; - CinematicsSkipMode skipCinematics = CinematicsSkipMode(sWorld.getConfig(CONFIG_SKIP_CINEMATICS)); + bool AllowTwoSideAccounts = sWorld.getConfig(CONFIG_BOOL_ALLOW_TWO_SIDE_ACCOUNTS) || GetSecurity() > SEC_PLAYER; + CinematicsSkipMode skipCinematics = CinematicsSkipMode(sWorld.getConfig(CONFIG_UINT32_SKIP_CINEMATICS)); bool have_same_race = false; @@ -778,7 +778,7 @@ void WorldSession::HandlePlayerLogin(LoginQueryHolder *holder) if(sWorld.IsShutdowning()) sWorld.ShutdownMsg(true,pCurrChar); - if(sWorld.getConfig(CONFIG_ALL_TAXI_PATHS)) + if(sWorld.getConfig(CONFIG_BOOL_ALL_TAXI_PATHS)) pCurrChar->SetTaxiCheater(true); if(pCurrChar->isGameMaster()) diff --git a/src/game/Chat.cpp b/src/game/Chat.cpp index 185bc1e7b..cf7c241a8 100644 --- a/src/game/Chat.cpp +++ b/src/game/Chat.cpp @@ -738,7 +738,7 @@ bool ChatHandler::HasLowerSecurityAccount(WorldSession* target, uint32 target_ac return false; // ignore only for non-players for non strong checks (when allow apply command at least to same sec level) - if (m_session->GetSecurity() > SEC_PLAYER && !strong && !sWorld.getConfig(CONFIG_GM_LOWER_SECURITY)) + if (m_session->GetSecurity() > SEC_PLAYER && !strong && !sWorld.getConfig(CONFIG_BOOL_GM_LOWER_SECURITY)) return false; if (target) @@ -1028,7 +1028,7 @@ valid examples: const char* validSequenceIterator = validSequence; // more simple checks - if (sWorld.getConfig(CONFIG_CHAT_STRICT_LINK_CHECKING_SEVERITY) < 3) + if (sWorld.getConfig(CONFIG_UINT32_CHAT_STRICT_LINK_CHECKING_SEVERITY) < 3) { const std::string validCommands = "cHhr|"; @@ -1047,7 +1047,7 @@ valid examples: ++message; // validate sequence - if(sWorld.getConfig(CONFIG_CHAT_STRICT_LINK_CHECKING_SEVERITY) == 2) + if(sWorld.getConfig(CONFIG_UINT32_CHAT_STRICT_LINK_CHECKING_SEVERITY) == 2) { if(commandChar == *validSequenceIterator) { diff --git a/src/game/ChatHandler.cpp b/src/game/ChatHandler.cpp index b2f5631e9..e6e71691c 100644 --- a/src/game/ChatHandler.cpp +++ b/src/game/ChatHandler.cpp @@ -42,15 +42,15 @@ bool WorldSession::processChatmessageFurtherAfterSecurityChecks(std::string& msg if (lang != LANG_ADDON) { // strip invisible characters for non-addon messages - if(sWorld.getConfig(CONFIG_CHAT_FAKE_MESSAGE_PREVENTING)) + if(sWorld.getConfig(CONFIG_BOOL_CHAT_FAKE_MESSAGE_PREVENTING)) stripLineInvisibleChars(msg); - if (sWorld.getConfig(CONFIG_CHAT_STRICT_LINK_CHECKING_SEVERITY) && GetSecurity() < SEC_MODERATOR + if (sWorld.getConfig(CONFIG_UINT32_CHAT_STRICT_LINK_CHECKING_SEVERITY) && GetSecurity() < SEC_MODERATOR && !ChatHandler(this).isValidChatMessage(msg.c_str())) { sLog.outError("Player %s (GUID: %u) sent a chatmessage with an invalid link: %s", GetPlayer()->GetName(), GetPlayer()->GetGUIDLow(), msg.c_str()); - if (sWorld.getConfig(CONFIG_CHAT_STRICT_LINK_CHECKING_KICK)) + if (sWorld.getConfig(CONFIG_UINT32_CHAT_STRICT_LINK_CHECKING_KICK)) KickPlayer(); return false; } @@ -105,7 +105,7 @@ void WorldSession::HandleMessagechatOpcode( WorldPacket & recv_data ) if(lang == LANG_ADDON) { // Disabled addon channel? - if(!sWorld.getConfig(CONFIG_ADDON_CHANNEL)) + if(!sWorld.getConfig(CONFIG_BOOL_ADDON_CHANNEL)) return; } // LANG_ADDON should not be changed nor be affected by flood control @@ -117,7 +117,7 @@ void WorldSession::HandleMessagechatOpcode( WorldPacket & recv_data ) else { // send in universal language in two side iteration allowed mode - if (sWorld.getConfig(CONFIG_ALLOW_TWO_SIDE_INTERACTION_CHAT)) + if (sWorld.getConfig(CONFIG_BOOL_ALLOW_TWO_SIDE_INTERACTION_CHAT)) lang = LANG_UNIVERSAL; else { @@ -128,13 +128,13 @@ void WorldSession::HandleMessagechatOpcode( WorldPacket & recv_data ) case CHAT_MSG_RAID_LEADER: case CHAT_MSG_RAID_WARNING: // allow two side chat at group channel if two side group allowed - if(sWorld.getConfig(CONFIG_ALLOW_TWO_SIDE_INTERACTION_GROUP)) + if(sWorld.getConfig(CONFIG_BOOL_ALLOW_TWO_SIDE_INTERACTION_GROUP)) lang = LANG_UNIVERSAL; break; case CHAT_MSG_GUILD: case CHAT_MSG_OFFICER: // allow two side chat at guild channel if two side guild allowed - if(sWorld.getConfig(CONFIG_ALLOW_TWO_SIDE_INTERACTION_GUILD)) + if(sWorld.getConfig(CONFIG_BOOL_ALLOW_TWO_SIDE_INTERACTION_GUILD)) lang = LANG_UNIVERSAL; break; } @@ -213,7 +213,7 @@ void WorldSession::HandleMessagechatOpcode( WorldPacket & recv_data ) return; } - if (!sWorld.getConfig(CONFIG_ALLOW_TWO_SIDE_INTERACTION_CHAT) && tSecurity == SEC_PLAYER && pSecurity == SEC_PLAYER ) + if (!sWorld.getConfig(CONFIG_BOOL_ALLOW_TWO_SIDE_INTERACTION_CHAT) && tSecurity == SEC_PLAYER && pSecurity == SEC_PLAYER ) { uint32 sidea = GetPlayer()->GetTeam(); uint32 sideb = player->GetTeam(); @@ -580,9 +580,9 @@ void WorldSession::HandleTextEmoteOpcode( WorldPacket & recv_data ) MaNGOS::EmoteChatBuilder emote_builder(*GetPlayer(), text_emote, emoteNum, unit); MaNGOS::LocalizedPacketDo emote_do(emote_builder); - MaNGOS::PlayerDistWorker > emote_worker(GetPlayer(), sWorld.getRate(RATE_LISTEN_RANGE_TEXTEMOTE), emote_do); + MaNGOS::PlayerDistWorker > emote_worker(GetPlayer(), sWorld.getConfig(CONFIG_FLOAT_LISTEN_RANGE_TEXTEMOTE), emote_do); TypeContainerVisitor >, WorldTypeMapContainer> message(emote_worker); - cell.Visit(p, message, *GetPlayer()->GetMap(), *GetPlayer(), sWorld.getRate(RATE_LISTEN_RANGE_TEXTEMOTE)); + cell.Visit(p, message, *GetPlayer()->GetMap(), *GetPlayer(), sWorld.getConfig(CONFIG_FLOAT_LISTEN_RANGE_TEXTEMOTE)); GetPlayer()->GetAchievementMgr().UpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_DO_EMOTE, text_emote, 0, unit); diff --git a/src/game/Creature.cpp b/src/game/Creature.cpp index 71293ae1f..00358f540 100644 --- a/src/game/Creature.cpp +++ b/src/game/Creature.cpp @@ -490,7 +490,7 @@ void Creature::RegenerateMana() { if(!IsUnderLastManaUseEffect()) { - float ManaIncreaseRate = sWorld.getRate(RATE_POWER_MANA); + float ManaIncreaseRate = sWorld.getConfig(CONFIG_FLOAT_RATE_POWER_MANA); float Spirit = GetStat(STAT_SPIRIT); addvalue = uint32((Spirit / 5.0f + 17.0f) * ManaIncreaseRate); @@ -518,7 +518,7 @@ void Creature::RegenerateHealth() // Not only pet, but any controlled creature if(GetCharmerOrOwnerGUID()) { - float HealthIncreaseRate = sWorld.getRate(RATE_HEALTH); + float HealthIncreaseRate = sWorld.getConfig(CONFIG_FLOAT_RATE_HEALTH); float Spirit = GetStat(STAT_SPIRIT); if( GetPower(POWER_MANA) > 0 ) @@ -537,7 +537,7 @@ void Creature::DoFleeToGetAssistance() if (!getVictim()) return; - float radius = sWorld.getRate(RATE_CREATURE_FAMILY_FLEE_ASSISTANCE_RADIUS); + float radius = sWorld.getConfig(CONFIG_FLOAT_CREATURE_FAMILY_FLEE_ASSISTANCE_RADIUS); if (radius >0) { Creature* pCreature = NULL; @@ -557,7 +557,7 @@ void Creature::DoFleeToGetAssistance() UpdateSpeed(MOVE_RUN, false); if(!pCreature) - SetFeared(true, getVictim()->GetGUID(), 0 ,sWorld.getConfig(CONFIG_CREATURE_FAMILY_FLEE_DELAY)); + SetFeared(true, getVictim()->GetGUID(), 0 ,sWorld.getConfig(CONFIG_UINT32_CREATURE_FAMILY_FLEE_DELAY)); else GetMotionMaster()->MoveSeekAssistance(pCreature->GetPositionX(), pCreature->GetPositionY(), pCreature->GetPositionZ()); } @@ -600,19 +600,19 @@ bool Creature::Create(uint32 guidlow, Map *map, uint32 phaseMask, uint32 Entry, switch (GetCreatureInfo()->rank) { case CREATURE_ELITE_RARE: - m_corpseDelay = sWorld.getConfig(CONFIG_CORPSE_DECAY_RARE); + m_corpseDelay = sWorld.getConfig(CONFIG_UINT32_CORPSE_DECAY_RARE); break; case CREATURE_ELITE_ELITE: - m_corpseDelay = sWorld.getConfig(CONFIG_CORPSE_DECAY_ELITE); + m_corpseDelay = sWorld.getConfig(CONFIG_UINT32_CORPSE_DECAY_ELITE); break; case CREATURE_ELITE_RAREELITE: - m_corpseDelay = sWorld.getConfig(CONFIG_CORPSE_DECAY_RAREELITE); + m_corpseDelay = sWorld.getConfig(CONFIG_UINT32_CORPSE_DECAY_RAREELITE); break; case CREATURE_ELITE_WORLDBOSS: - m_corpseDelay = sWorld.getConfig(CONFIG_CORPSE_DECAY_WORLDBOSS); + m_corpseDelay = sWorld.getConfig(CONFIG_UINT32_CORPSE_DECAY_WORLDBOSS); break; default: - m_corpseDelay = sWorld.getConfig(CONFIG_CORPSE_DECAY_NORMAL); + m_corpseDelay = sWorld.getConfig(CONFIG_UINT32_CORPSE_DECAY_NORMAL); break; } LoadCreaturesAddon(); @@ -961,17 +961,17 @@ float Creature::_GetHealthMod(int32 Rank) switch (Rank) // define rates for each elite rank { case CREATURE_ELITE_NORMAL: - return sWorld.getRate(RATE_CREATURE_NORMAL_HP); + return sWorld.getConfig(CONFIG_FLOAT_RATE_CREATURE_NORMAL_HP); case CREATURE_ELITE_ELITE: - return sWorld.getRate(RATE_CREATURE_ELITE_ELITE_HP); + return sWorld.getConfig(CONFIG_FLOAT_RATE_CREATURE_ELITE_ELITE_HP); case CREATURE_ELITE_RAREELITE: - return sWorld.getRate(RATE_CREATURE_ELITE_RAREELITE_HP); + return sWorld.getConfig(CONFIG_FLOAT_RATE_CREATURE_ELITE_RAREELITE_HP); case CREATURE_ELITE_WORLDBOSS: - return sWorld.getRate(RATE_CREATURE_ELITE_WORLDBOSS_HP); + return sWorld.getConfig(CONFIG_FLOAT_RATE_CREATURE_ELITE_WORLDBOSS_HP); case CREATURE_ELITE_RARE: - return sWorld.getRate(RATE_CREATURE_ELITE_RARE_HP); + return sWorld.getConfig(CONFIG_FLOAT_RATE_CREATURE_ELITE_RARE_HP); default: - return sWorld.getRate(RATE_CREATURE_ELITE_ELITE_HP); + return sWorld.getConfig(CONFIG_FLOAT_RATE_CREATURE_ELITE_ELITE_HP); } } @@ -980,17 +980,17 @@ float Creature::_GetDamageMod(int32 Rank) switch (Rank) // define rates for each elite rank { case CREATURE_ELITE_NORMAL: - return sWorld.getRate(RATE_CREATURE_NORMAL_DAMAGE); + return sWorld.getConfig(CONFIG_FLOAT_RATE_CREATURE_NORMAL_DAMAGE); case CREATURE_ELITE_ELITE: - return sWorld.getRate(RATE_CREATURE_ELITE_ELITE_DAMAGE); + return sWorld.getConfig(CONFIG_FLOAT_RATE_CREATURE_ELITE_ELITE_DAMAGE); case CREATURE_ELITE_RAREELITE: - return sWorld.getRate(RATE_CREATURE_ELITE_RAREELITE_DAMAGE); + return sWorld.getConfig(CONFIG_FLOAT_RATE_CREATURE_ELITE_RAREELITE_DAMAGE); case CREATURE_ELITE_WORLDBOSS: - return sWorld.getRate(RATE_CREATURE_ELITE_WORLDBOSS_DAMAGE); + return sWorld.getConfig(CONFIG_FLOAT_RATE_CREATURE_ELITE_WORLDBOSS_DAMAGE); case CREATURE_ELITE_RARE: - return sWorld.getRate(RATE_CREATURE_ELITE_RARE_DAMAGE); + return sWorld.getConfig(CONFIG_FLOAT_RATE_CREATURE_ELITE_RARE_DAMAGE); default: - return sWorld.getRate(RATE_CREATURE_ELITE_ELITE_DAMAGE); + return sWorld.getConfig(CONFIG_FLOAT_RATE_CREATURE_ELITE_ELITE_DAMAGE); } } @@ -999,17 +999,17 @@ float Creature::GetSpellDamageMod(int32 Rank) switch (Rank) // define rates for each elite rank { case CREATURE_ELITE_NORMAL: - return sWorld.getRate(RATE_CREATURE_NORMAL_SPELLDAMAGE); + return sWorld.getConfig(CONFIG_FLOAT_RATE_CREATURE_NORMAL_SPELLDAMAGE); case CREATURE_ELITE_ELITE: - return sWorld.getRate(RATE_CREATURE_ELITE_ELITE_SPELLDAMAGE); + return sWorld.getConfig(CONFIG_FLOAT_RATE_CREATURE_ELITE_ELITE_SPELLDAMAGE); case CREATURE_ELITE_RAREELITE: - return sWorld.getRate(RATE_CREATURE_ELITE_RAREELITE_SPELLDAMAGE); + return sWorld.getConfig(CONFIG_FLOAT_RATE_CREATURE_ELITE_RAREELITE_SPELLDAMAGE); case CREATURE_ELITE_WORLDBOSS: - return sWorld.getRate(RATE_CREATURE_ELITE_WORLDBOSS_SPELLDAMAGE); + return sWorld.getConfig(CONFIG_FLOAT_RATE_CREATURE_ELITE_WORLDBOSS_SPELLDAMAGE); case CREATURE_ELITE_RARE: - return sWorld.getRate(RATE_CREATURE_ELITE_RARE_SPELLDAMAGE); + return sWorld.getConfig(CONFIG_FLOAT_RATE_CREATURE_ELITE_RARE_SPELLDAMAGE); default: - return sWorld.getRate(RATE_CREATURE_ELITE_ELITE_SPELLDAMAGE); + return sWorld.getConfig(CONFIG_FLOAT_RATE_CREATURE_ELITE_ELITE_SPELLDAMAGE); } } @@ -1176,7 +1176,7 @@ void Creature::DeleteFromDB() float Creature::GetAttackDistance(Unit const* pl) const { - float aggroRate = sWorld.getRate(RATE_CREATURE_AGGRO); + float aggroRate = sWorld.getConfig(CONFIG_FLOAT_RATE_CREATURE_AGGRO); if(aggroRate == 0) return 0.0f; @@ -1196,7 +1196,7 @@ float Creature::GetAttackDistance(Unit const* pl) const // radius grow if playlevel < creaturelevel RetDistance -= (float)leveldif; - if(creaturelevel+5 <= sWorld.getConfig(CONFIG_MAX_PLAYER_LEVEL)) + if(creaturelevel+5 <= sWorld.getConfig(CONFIG_UINT32_MAX_PLAYER_LEVEL)) { // detect range auras RetDistance += GetTotalAuraModifier(SPELL_AURA_MOD_DETECT_RANGE); @@ -1219,7 +1219,7 @@ void Creature::setDeathState(DeathState s) m_deathTimer = m_corpseDelay*IN_MILISECONDS; // always save boss respawn time at death to prevent crash cheating - if (sWorld.getConfig(CONFIG_SAVE_RESPAWN_TIME_IMMEDIATLY) || isWorldBoss()) + if (sWorld.getConfig(CONFIG_BOOL_SAVE_RESPAWN_TIME_IMMEDIATLY) || isWorldBoss()) SaveRespawnTime(); if (canFly() && FallGround()) @@ -1478,7 +1478,7 @@ bool Creature::IsVisibleInGridForPlayer(Player* pl) const if(corpse) { // 20 - aggro distance for same level, 25 - max additional distance if player level less that creature level - if(corpse->IsWithinDistInMap(this,(20+25)*sWorld.getRate(RATE_CREATURE_AGGRO))) + if(corpse->IsWithinDistInMap(this,(20+25)*sWorld.getConfig(CONFIG_FLOAT_RATE_CREATURE_AGGRO))) return true; } } @@ -1509,7 +1509,7 @@ void Creature::CallAssistance() { SetNoCallAssistance(true); - float radius = sWorld.getRate(RATE_CREATURE_FAMILY_ASSISTANCE_RADIUS); + float radius = sWorld.getConfig(CONFIG_FLOAT_CREATURE_FAMILY_ASSISTANCE_RADIUS); if(radius > 0) { std::list assistList; @@ -1537,7 +1537,7 @@ void Creature::CallAssistance() e->AddAssistant((*assistList.begin())->GetGUID()); assistList.pop_front(); } - m_Events.AddEvent(e, m_Events.CalculateTime(sWorld.getConfig(CONFIG_CREATURE_FAMILY_ASSISTANCE_DELAY))); + m_Events.AddEvent(e, m_Events.CalculateTime(sWorld.getConfig(CONFIG_UINT32_CREATURE_FAMILY_ASSISTANCE_DELAY))); } } } @@ -1630,7 +1630,7 @@ bool Creature::IsOutOfThreatArea(Unit* pVictim) const return false; float AttackDist = GetAttackDistance(pVictim); - uint32 ThreatRadius = sWorld.getConfig(CONFIG_THREAT_RADIUS); + uint32 ThreatRadius = sWorld.getConfig(CONFIG_UINT32_THREAT_RADIUS); //Use AttackDistance in distance check if threat radius is lower. This prevents creature bounce in and out of combat every update tick. return !pVictim->IsWithinDist3d(CombatStartX, CombatStartY, CombatStartZ, @@ -1878,7 +1878,7 @@ void Creature::AllLootRemovedFromCorpse() // corpse was not skinnable -> apply corpse looted timer if (!cinfo || !cinfo->SkinLootId) - nDeathTimer = (uint32)((m_corpseDelay * IN_MILISECONDS) * sWorld.getRate(RATE_CORPSE_DECAY_LOOTED)); + nDeathTimer = (uint32)((m_corpseDelay * IN_MILISECONDS) * sWorld.getConfig(CONFIG_FLOAT_RATE_CORPSE_DECAY_LOOTED)); // corpse skinnable, but without skinning flag, and then skinned, corpse will despawn next update else nDeathTimer = 0; @@ -1894,7 +1894,7 @@ uint32 Creature::getLevelForTarget( Unit const* target ) const if(!isWorldBoss()) return Unit::getLevelForTarget(target); - uint32 level = target->getLevel()+sWorld.getConfig(CONFIG_WORLD_BOSS_LEVEL_DIFF); + uint32 level = target->getLevel()+sWorld.getConfig(CONFIG_UINT32_WORLD_BOSS_LEVEL_DIFF); if(level < 1) return 1; if(level > 255) diff --git a/src/game/CreatureEventAI.cpp b/src/game/CreatureEventAI.cpp index 98d6b6bc2..90dcf1087 100644 --- a/src/game/CreatureEventAI.cpp +++ b/src/game/CreatureEventAI.cpp @@ -1136,7 +1136,7 @@ void CreatureEventAI::UpdateAI(const uint32 diff) bool CreatureEventAI::IsVisible(Unit *pl) const { - return m_creature->IsWithinDist(pl,sWorld.getRate(RATE_SIGHT_MONSTER)) + return m_creature->IsWithinDist(pl,sWorld.getConfig(CONFIG_FLOAT_SIGHT_MONSTER)) && pl->isVisibleForOrDetect(m_creature,m_creature,true); } diff --git a/src/game/Formulas.h b/src/game/Formulas.h index 2b2892dce..f96154e14 100644 --- a/src/game/Formulas.h +++ b/src/game/Formulas.h @@ -122,7 +122,7 @@ namespace MaNGOS if(u->GetTypeId()==TYPEID_UNIT && ((Creature*)u)->isElite()) xp_gain *= 2; - return (uint32)(xp_gain*sWorld.getRate(RATE_XP_KILL)); + return (uint32)(xp_gain*sWorld.getConfig(CONFIG_FLOAT_RATE_XP_KILL)); } inline float xp_in_group_rate(uint32 count, bool isRaid) diff --git a/src/game/GameEventMgr.cpp b/src/game/GameEventMgr.cpp index 214301154..1e4b827ed 100644 --- a/src/game/GameEventMgr.cpp +++ b/src/game/GameEventMgr.cpp @@ -481,7 +481,7 @@ void GameEventMgr::UnApplyEvent(uint16 event_id) void GameEventMgr::ApplyNewEvent(uint16 event_id) { - switch(sWorld.getConfig(CONFIG_EVENT_ANNOUNCE)) + switch(sWorld.getConfig(CONFIG_UINT32_EVENT_ANNOUNCE)) { case 0: // disable break; diff --git a/src/game/GameObject.cpp b/src/game/GameObject.cpp index 479bc2878..b2df96073 100644 --- a/src/game/GameObject.cpp +++ b/src/game/GameObject.cpp @@ -448,7 +448,7 @@ void GameObject::Update(uint32 /*p_time*/) m_respawnTime = time(NULL) + m_respawnDelayTime; // if option not set then object will be saved at grid unload - if(sWorld.getConfig(CONFIG_SAVE_RESPAWN_TIME_IMMEDIATLY)) + if(sWorld.getConfig(CONFIG_BOOL_SAVE_RESPAWN_TIME_IMMEDIATLY)) SaveRespawnTime(); UpdateObjectVisibility(); diff --git a/src/game/GossipDef.cpp b/src/game/GossipDef.cpp index 4d185fbf0..d69107792 100644 --- a/src/game/GossipDef.cpp +++ b/src/game/GossipDef.cpp @@ -518,7 +518,7 @@ void PlayerMenu::SendQuestGiverQuestDetails( Quest const *pQuest, uint64 npcGUID } // send rewMoneyMaxLevel explicit for max player level, else send RewOrReqMoney - if (pSession->GetPlayer()->getLevel() >= sWorld.getConfig(CONFIG_MAX_PLAYER_LEVEL)) + if (pSession->GetPlayer()->getLevel() >= sWorld.getConfig(CONFIG_UINT32_MAX_PLAYER_LEVEL)) data << uint32(pQuest->GetRewMoneyMaxLevel()); else data << uint32(pQuest->GetRewOrReqMoney()); @@ -784,7 +784,7 @@ void PlayerMenu::SendQuestGiverOfferReward( Quest const* pQuest, uint64 npcGUID, } // send rewMoneyMaxLevel explicit for max player level, else send RewOrReqMoney - if (pSession->GetPlayer()->getLevel() >= sWorld.getConfig(CONFIG_MAX_PLAYER_LEVEL)) + if (pSession->GetPlayer()->getLevel() >= sWorld.getConfig(CONFIG_UINT32_MAX_PLAYER_LEVEL)) data << uint32(pQuest->GetRewMoneyMaxLevel()); else data << uint32(pQuest->GetRewOrReqMoney()); diff --git a/src/game/Group.cpp b/src/game/Group.cpp index 1532fdbb7..4090d91df 100644 --- a/src/game/Group.cpp +++ b/src/game/Group.cpp @@ -566,7 +566,7 @@ void Group::GroupLoot(const uint64& playerGUID, Loot *loot, Creature *creature) continue; if ( i->AllowedForPlayer(member) ) { - if (member->IsWithinDist(creature, sWorld.getRate(RATE_GROUP_XP_DISTANCE), false)) + if (member->IsWithinDist(creature, sWorld.getConfig(CONFIG_FLOAT_GROUP_XP_DISTANCE), false)) { r->playerVote[member->GetGUID()] = NOT_EMITED_YET; ++r->totalPlayersRolling; @@ -615,7 +615,7 @@ void Group::NeedBeforeGreed(const uint64& playerGUID, Loot *loot, Creature *crea if (playerToRoll->CanUseItem(item) && i->AllowedForPlayer(playerToRoll) ) { - if (playerToRoll->IsWithinDist(creature, sWorld.getRate(RATE_GROUP_XP_DISTANCE), false)) + if (playerToRoll->IsWithinDist(creature, sWorld.getConfig(CONFIG_FLOAT_GROUP_XP_DISTANCE), false)) { r->playerVote[playerToRoll->GetGUID()] = NOT_EMITED_YET; ++r->totalPlayersRolling; @@ -663,7 +663,7 @@ void Group::MasterLoot(const uint64& playerGUID, Loot* /*loot*/, Creature *creat if (!looter->IsInWorld()) continue; - if (looter->IsWithinDist(creature, sWorld.getRate(RATE_GROUP_XP_DISTANCE), false)) + if (looter->IsWithinDist(creature, sWorld.getConfig(CONFIG_FLOAT_GROUP_XP_DISTANCE), false)) { data << looter->GetGUID(); ++real_count; @@ -675,7 +675,7 @@ void Group::MasterLoot(const uint64& playerGUID, Loot* /*loot*/, Creature *creat for(GroupReference *itr = GetFirstMember(); itr != NULL; itr = itr->next()) { Player *looter = itr->getSource(); - if (looter->IsWithinDist(creature, sWorld.getRate(RATE_GROUP_XP_DISTANCE), false)) + if (looter->IsWithinDist(creature, sWorld.getConfig(CONFIG_FLOAT_GROUP_XP_DISTANCE), false)) looter->GetSession()->SendPacket(&data); } } @@ -1374,7 +1374,7 @@ void Group::UpdateLooterGuid( Creature* creature, bool ifneed ) { // not update if only update if need and ok Player* looter = ObjectAccessor::FindPlayer(guid_itr->guid); - if(looter && looter->IsWithinDist(creature, sWorld.getRate(RATE_GROUP_XP_DISTANCE), false)) + if(looter && looter->IsWithinDist(creature, sWorld.getConfig(CONFIG_FLOAT_GROUP_XP_DISTANCE), false)) return; } ++guid_itr; @@ -1387,7 +1387,7 @@ void Group::UpdateLooterGuid( Creature* creature, bool ifneed ) { if(Player* pl = ObjectAccessor::FindPlayer(itr->guid)) { - if (pl->IsWithinDist(creature, sWorld.getRate(RATE_GROUP_XP_DISTANCE), false)) + if (pl->IsWithinDist(creature, sWorld.getConfig(CONFIG_FLOAT_GROUP_XP_DISTANCE), false)) { bool refresh = pl->GetLootGUID() == creature->GetGUID(); @@ -1408,7 +1408,7 @@ void Group::UpdateLooterGuid( Creature* creature, bool ifneed ) { if(Player* pl = ObjectAccessor::FindPlayer(itr->guid)) { - if (pl->IsWithinDist(creature, sWorld.getRate(RATE_GROUP_XP_DISTANCE), false)) + if (pl->IsWithinDist(creature, sWorld.getConfig(CONFIG_FLOAT_GROUP_XP_DISTANCE), false)) { bool refresh = pl->GetLootGUID()==creature->GetGUID(); diff --git a/src/game/GroupHandler.cpp b/src/game/GroupHandler.cpp index 2be09e4de..f2509254b 100644 --- a/src/game/GroupHandler.cpp +++ b/src/game/GroupHandler.cpp @@ -75,7 +75,7 @@ void WorldSession::HandleGroupInviteOpcode( WorldPacket & recv_data ) } // can't group with - if(!sWorld.getConfig(CONFIG_ALLOW_TWO_SIDE_INTERACTION_GROUP) && GetPlayer()->GetTeam() != player->GetTeam()) + if(!sWorld.getConfig(CONFIG_BOOL_ALLOW_TWO_SIDE_INTERACTION_GROUP) && GetPlayer()->GetTeam() != player->GetTeam()) { SendPartyResult(PARTY_OP_INVITE, membername, PARTY_RESULT_TARGET_UNFRIENDLY); return; diff --git a/src/game/GuardAI.cpp b/src/game/GuardAI.cpp index eb8ee62f9..e40f13218 100644 --- a/src/game/GuardAI.cpp +++ b/src/game/GuardAI.cpp @@ -125,7 +125,7 @@ void GuardAI::UpdateAI(const uint32 /*diff*/) bool GuardAI::IsVisible(Unit *pl) const { - return m_creature->IsWithinDist(pl,sWorld.getRate(RATE_SIGHT_GUARDER)) + return m_creature->IsWithinDist(pl,sWorld.getConfig(CONFIG_FLOAT_SIGHT_GUARDER)) && pl->isVisibleForOrDetect(m_creature,m_creature,true); } diff --git a/src/game/Guild.cpp b/src/game/Guild.cpp index 179c0e0bc..7df4a49fe 100644 --- a/src/game/Guild.cpp +++ b/src/game/Guild.cpp @@ -849,7 +849,7 @@ void Guild::LoadGuildEventLogFromDB() if (!result) return; bool isNextLogGuidSet = false; - //uint32 configCount = sWorld.getConfig(CONFIG_GUILD_EVENT_LOG_COUNT); + //uint32 configCount = sWorld.getConfig(CONFIG_UINT32_GUILD_EVENT_LOG_COUNT); // First event in list will be the oldest and the latest event is last event in list do { @@ -889,7 +889,7 @@ void Guild::LogGuildEvent(uint8 EventType, uint32 PlayerGuid1, uint32 PlayerGuid NewEvent.NewRank = NewRank; NewEvent.TimeStamp = uint32(time(NULL)); // Count new LogGuid - m_GuildEventLogNextGuid = (m_GuildEventLogNextGuid + 1) % sWorld.getConfig(CONFIG_GUILD_EVENT_LOG_COUNT); + m_GuildEventLogNextGuid = (m_GuildEventLogNextGuid + 1) % sWorld.getConfig(CONFIG_UINT32_GUILD_EVENT_LOG_COUNT); // Check max records limit if (m_GuildEventLog.size() >= GUILD_EVENTLOG_MAX_RECORDS) m_GuildEventLog.pop_front(); @@ -1415,7 +1415,7 @@ void Guild::LoadGuildBankEventLogFromDB() { // Money log is in TabId = GUILD_BANK_MONEY_LOGS_TAB - // uint32 configCount = sWorld.getConfig(CONFIG_GUILD_BANK_EVENT_LOG_COUNT); + // uint32 configCount = sWorld.getConfig(CONFIG_UINT32_GUILD_BANK_EVENT_LOG_COUNT); // cycle through all purchased guild bank item tabs for (uint32 tabId = 0; tabId < m_PurchasedTabs; ++tabId) { @@ -1580,7 +1580,7 @@ void Guild::LogBankEvent(uint8 EventType, uint8 TabId, uint32 PlayerGuidLow, uin uint32 currentLogGuid = 0; if (NewEvent.isMoneyEvent()) { - m_GuildBankEventLogNextGuid_Money = (m_GuildBankEventLogNextGuid_Money + 1) % sWorld.getConfig(CONFIG_GUILD_BANK_EVENT_LOG_COUNT); + m_GuildBankEventLogNextGuid_Money = (m_GuildBankEventLogNextGuid_Money + 1) % sWorld.getConfig(CONFIG_UINT32_GUILD_BANK_EVENT_LOG_COUNT); currentLogGuid = m_GuildBankEventLogNextGuid_Money; currentTabId = GUILD_BANK_MONEY_LOGS_TAB; if (m_GuildBankEventLog_Money.size() >= GUILD_BANK_MAX_LOGS) @@ -1590,7 +1590,7 @@ void Guild::LogBankEvent(uint8 EventType, uint8 TabId, uint32 PlayerGuidLow, uin } else { - m_GuildBankEventLogNextGuid_Item[TabId] = ((m_GuildBankEventLogNextGuid_Item[TabId]) + 1) % sWorld.getConfig(CONFIG_GUILD_BANK_EVENT_LOG_COUNT); + m_GuildBankEventLogNextGuid_Item[TabId] = ((m_GuildBankEventLogNextGuid_Item[TabId]) + 1) % sWorld.getConfig(CONFIG_UINT32_GUILD_BANK_EVENT_LOG_COUNT); currentLogGuid = m_GuildBankEventLogNextGuid_Item[TabId]; if (m_GuildBankEventLog_Item[TabId].size() >= GUILD_BANK_MAX_LOGS) m_GuildBankEventLog_Item[TabId].pop_front(); @@ -2141,7 +2141,7 @@ void Guild::MoveFromBankToChar( Player * pl, uint8 BankTab, uint8 BankTabSlot, u if (pItemChar) { // logging item move to bank - if (pl->GetSession()->GetSecurity() > SEC_PLAYER && sWorld.getConfig(CONFIG_GM_LOG_TRADE)) + if (pl->GetSession()->GetSecurity() > SEC_PLAYER && sWorld.getConfig(CONFIG_BOOL_GM_LOG_TRADE)) { sLog.outCommand(pl->GetSession()->GetAccountId(),"GM %s (Account: %u) deposit item: %s (Entry: %d Count: %u) to guild bank (Guild ID: %u )", pl->GetName(),pl->GetSession()->GetAccountId(), @@ -2216,7 +2216,7 @@ void Guild::MoveFromCharToBank( Player * pl, uint8 PlayerBag, uint8 PlayerSlot, } // logging item move to bank (before items merge - if (pl->GetSession()->GetSecurity() > SEC_PLAYER && sWorld.getConfig(CONFIG_GM_LOG_TRADE)) + if (pl->GetSession()->GetSecurity() > SEC_PLAYER && sWorld.getConfig(CONFIG_BOOL_GM_LOG_TRADE)) { sLog.outCommand(pl->GetSession()->GetAccountId(),"GM %s (Account: %u) deposit item: %s (Entry: %d Count: %u) to guild bank (Guild ID: %u )", pl->GetName(),pl->GetSession()->GetAccountId(), @@ -2242,7 +2242,7 @@ void Guild::MoveFromCharToBank( Player * pl, uint8 PlayerBag, uint8 PlayerSlot, if (msg == EQUIP_ERR_OK) // merge { // logging item move to bank - if (pl->GetSession()->GetSecurity() > SEC_PLAYER && sWorld.getConfig(CONFIG_GM_LOG_TRADE)) + if (pl->GetSession()->GetSecurity() > SEC_PLAYER && sWorld.getConfig(CONFIG_BOOL_GM_LOG_TRADE)) { sLog.outCommand(pl->GetSession()->GetAccountId(),"GM %s (Account: %u) deposit item: %s (Entry: %d Count: %u) to guild bank (Guild ID: %u )", pl->GetName(),pl->GetSession()->GetAccountId(), @@ -2292,7 +2292,7 @@ void Guild::MoveFromCharToBank( Player * pl, uint8 PlayerBag, uint8 PlayerSlot, } // logging item move to bank - if (pl->GetSession()->GetSecurity() > SEC_PLAYER && sWorld.getConfig(CONFIG_GM_LOG_TRADE)) + if (pl->GetSession()->GetSecurity() > SEC_PLAYER && sWorld.getConfig(CONFIG_BOOL_GM_LOG_TRADE)) { sLog.outCommand(pl->GetSession()->GetAccountId(), "GM %s (Account: %u) deposit item: %s (Entry: %d Count: %u) to guild bank (Guild ID: %u )", pl->GetName(), pl->GetSession()->GetAccountId(), diff --git a/src/game/GuildHandler.cpp b/src/game/GuildHandler.cpp index f44af69a2..caba6462c 100644 --- a/src/game/GuildHandler.cpp +++ b/src/game/GuildHandler.cpp @@ -93,7 +93,7 @@ void WorldSession::HandleGuildInviteOpcode(WorldPacket& recvPacket) return; // not let enemies sign guild charter - if (!sWorld.getConfig(CONFIG_ALLOW_TWO_SIDE_INTERACTION_GUILD) && player->GetTeam() != GetPlayer()->GetTeam()) + if (!sWorld.getConfig(CONFIG_BOOL_ALLOW_TWO_SIDE_INTERACTION_GUILD) && player->GetTeam() != GetPlayer()->GetTeam()) { SendGuildCommandResult(GUILD_INVITE_S, Invitedname, ERR_GUILD_NOT_ALLIED); return; @@ -196,7 +196,7 @@ void WorldSession::HandleGuildAcceptOpcode(WorldPacket& /*recvPacket*/) return; // not let enemies sign guild charter - if (!sWorld.getConfig(CONFIG_ALLOW_TWO_SIDE_INTERACTION_GUILD) && player->GetTeam() != sObjectMgr.GetPlayerTeamByGUID(guild->GetLeader())) + if (!sWorld.getConfig(CONFIG_BOOL_ALLOW_TWO_SIDE_INTERACTION_GUILD) && player->GetTeam() != sObjectMgr.GetPlayerTeamByGUID(guild->GetLeader())) return; if(!guild->AddMember(GetPlayer()->GetGUID(),guild->GetLowestRank())) @@ -891,7 +891,7 @@ void WorldSession::HandleGuildBankDepositMoney( WorldPacket & recv_data ) CharacterDatabase.CommitTransaction(); // logging money - if(_player->GetSession()->GetSecurity() > SEC_PLAYER && sWorld.getConfig(CONFIG_GM_LOG_TRADE)) + if(_player->GetSession()->GetSecurity() > SEC_PLAYER && sWorld.getConfig(CONFIG_BOOL_GM_LOG_TRADE)) { sLog.outCommand(_player->GetSession()->GetAccountId(),"GM %s (Account: %u) deposit money (Amount: %u) to guild bank (Guild ID %u)", _player->GetName(),_player->GetSession()->GetAccountId(),money,GuildId); diff --git a/src/game/InstanceSaveMgr.cpp b/src/game/InstanceSaveMgr.cpp index 49e987832..f8a617bbb 100644 --- a/src/game/InstanceSaveMgr.cpp +++ b/src/game/InstanceSaveMgr.cpp @@ -430,7 +430,7 @@ void InstanceSaveManager::LoadResetTimes() } // load the global respawn times for raid/heroic instances - uint32 diff = sWorld.getConfig(CONFIG_INSTANCE_RESET_TIME_HOUR) * HOUR; + uint32 diff = sWorld.getConfig(CONFIG_UINT32_INSTANCE_RESET_TIME_HOUR) * HOUR; result = CharacterDatabase.Query("SELECT mapid, difficulty, resettime FROM instance_reset"); if(result) { @@ -475,7 +475,7 @@ void InstanceSaveManager::LoadResetTimes() continue; // the reset_delay must be at least one day - uint32 period = uint32(mapDiff->resetTime / DAY * sWorld.getRate(RATE_INSTANCE_RESET_TIME)) * DAY; + uint32 period = uint32(mapDiff->resetTime / DAY * sWorld.getConfig(CONFIG_FLOAT_RATE_INSTANCE_RESET_TIME)) * DAY; time_t t = GetResetTimeFor(mapid,difficulty); if(!t) @@ -635,7 +635,7 @@ void InstanceSaveManager::_ResetOrWarnAll(uint32 mapid, Difficulty difficulty, b CharacterDatabase.CommitTransaction(); // calculate the next reset time - uint32 diff = sWorld.getConfig(CONFIG_INSTANCE_RESET_TIME_HOUR) * HOUR; + uint32 diff = sWorld.getConfig(CONFIG_UINT32_INSTANCE_RESET_TIME_HOUR) * HOUR; uint32 period = mapDiff->resetTime * DAY; time_t next_reset = ((now + timeLeft + MINUTE) / DAY * DAY) + period + diff; // update it in the DB diff --git a/src/game/LFGHandler.cpp b/src/game/LFGHandler.cpp index f9c402d07..8ec053df9 100644 --- a/src/game/LFGHandler.cpp +++ b/src/game/LFGHandler.cpp @@ -68,14 +68,14 @@ static void AttemptJoin(Player* _player) // stop at success join if(plr->GetGroup()->AddMember(_player->GetGUID(), _player->GetName())) { - if( sWorld.getConfig(CONFIG_RESTRICTED_LFG_CHANNEL) && _player->GetSession()->GetSecurity() == SEC_PLAYER ) + if( sWorld.getConfig(CONFIG_BOOL_RESTRICTED_LFG_CHANNEL) && _player->GetSession()->GetSecurity() == SEC_PLAYER ) _player->LeaveLFGChannel(); break; } // full else { - if( sWorld.getConfig(CONFIG_RESTRICTED_LFG_CHANNEL) && plr->GetSession()->GetSecurity() == SEC_PLAYER ) + if( sWorld.getConfig(CONFIG_BOOL_RESTRICTED_LFG_CHANNEL) && plr->GetSession()->GetSecurity() == SEC_PLAYER ) plr->LeaveLFGChannel(); } } @@ -126,20 +126,20 @@ static void AttemptAddMore(Player* _player) // stop at join fail (full) if(!_player->GetGroup()->AddMember(plr->GetGUID(), plr->GetName()) ) { - if( sWorld.getConfig(CONFIG_RESTRICTED_LFG_CHANNEL) && _player->GetSession()->GetSecurity() == SEC_PLAYER ) + if( sWorld.getConfig(CONFIG_BOOL_RESTRICTED_LFG_CHANNEL) && _player->GetSession()->GetSecurity() == SEC_PLAYER ) _player->LeaveLFGChannel(); break; } // joined - if( sWorld.getConfig(CONFIG_RESTRICTED_LFG_CHANNEL) && plr->GetSession()->GetSecurity() == SEC_PLAYER ) + if( sWorld.getConfig(CONFIG_BOOL_RESTRICTED_LFG_CHANNEL) && plr->GetSession()->GetSecurity() == SEC_PLAYER ) plr->LeaveLFGChannel(); // and group full if(_player->GetGroup()->IsFull() ) { - if( sWorld.getConfig(CONFIG_RESTRICTED_LFG_CHANNEL) && _player->GetSession()->GetSecurity() == SEC_PLAYER ) + if( sWorld.getConfig(CONFIG_BOOL_RESTRICTED_LFG_CHANNEL) && _player->GetSession()->GetSecurity() == SEC_PLAYER ) _player->LeaveLFGChannel(); break; @@ -189,7 +189,7 @@ void WorldSession::HandleLfgClearOpcode( WorldPacket & /*recv_data */ ) for(int i = 0; i < MAX_LOOKING_FOR_GROUP_SLOT; ++i) _player->m_lookingForGroup.slots[i].Clear(); - if( sWorld.getConfig(CONFIG_RESTRICTED_LFG_CHANNEL) && _player->GetSession()->GetSecurity() == SEC_PLAYER ) + if( sWorld.getConfig(CONFIG_BOOL_RESTRICTED_LFG_CHANNEL) && _player->GetSession()->GetSecurity() == SEC_PLAYER ) _player->LeaveLFGChannel(); SendLfgUpdate(0, 0, 0); diff --git a/src/game/Level0.cpp b/src/game/Level0.cpp index d49896033..a265405a5 100644 --- a/src/game/Level0.cpp +++ b/src/game/Level0.cpp @@ -142,7 +142,7 @@ bool ChatHandler::HandleSaveCommand(const char* /*args*/) } // save or plan save after 20 sec (logout delay) if current next save time more this value and _not_ output any messages to prevent cheat planning - uint32 save_interval = sWorld.getConfig(CONFIG_INTERVAL_SAVE); + uint32 save_interval = sWorld.getConfig(CONFIG_UINT32_INTERVAL_SAVE); if (save_interval==0 || (save_interval > 20*IN_MILISECONDS && player->GetSaveTimer() <= save_interval - 20*IN_MILISECONDS)) player->SaveToDB(); @@ -158,7 +158,7 @@ bool ChatHandler::HandleGMListIngameCommand(const char* /*args*/) for(; itr != m.end(); ++itr) { AccountTypes itr_sec = itr->second->GetSession()->GetSecurity(); - if ((itr->second->isGameMaster() || (itr_sec > SEC_PLAYER && itr_sec <= (AccountTypes)sWorld.getConfig(CONFIG_GM_LEVEL_IN_GM_LIST))) && + if ((itr->second->isGameMaster() || (itr_sec > SEC_PLAYER && itr_sec <= (AccountTypes)sWorld.getConfig(CONFIG_UINT32_GM_LEVEL_IN_GM_LIST))) && (!m_session || itr->second->IsVisibleGloballyFor(m_session->GetPlayer()))) { if(first) diff --git a/src/game/Level2.cpp b/src/game/Level2.cpp index 3535f0b4d..cda65abc7 100644 --- a/src/game/Level2.cpp +++ b/src/game/Level2.cpp @@ -1256,7 +1256,7 @@ bool ChatHandler::HandleNpcChangeLevelCommand(const char* args) return false; uint8 lvl = (uint8) atoi((char*)args); - if ( lvl < 1 || lvl > sWorld.getConfig(CONFIG_MAX_PLAYER_LEVEL) + 3) + if ( lvl < 1 || lvl > sWorld.getConfig(CONFIG_UINT32_MAX_PLAYER_LEVEL) + 3) { SendSysMessage(LANG_BAD_VALUE); SetSentErrorMessage(true); diff --git a/src/game/Level3.cpp b/src/game/Level3.cpp index de2eef71a..1e2c3a37f 100644 --- a/src/game/Level3.cpp +++ b/src/game/Level3.cpp @@ -2354,7 +2354,7 @@ bool ChatHandler::HandleListItemCommand(const char* args) item_guid,owner_name.c_str(),owner_guid,owner_acc,item_pos); } while (result->NextRow()); - int64 res_count = result->GetRowCount(); + int res_count = (int)result->GetRowCount(); delete result; @@ -2404,7 +2404,7 @@ bool ChatHandler::HandleListItemCommand(const char* args) item_guid,item_s_name.c_str(),item_s,item_s_acc,item_r_name.c_str(),item_r,item_r_acc,item_pos); } while (result->NextRow()); - int64 res_count = result->GetRowCount(); + int res_count = (int)result->GetRowCount(); delete result; @@ -2481,7 +2481,7 @@ bool ChatHandler::HandleListItemCommand(const char* args) PSendSysMessage(LANG_ITEMLIST_GUILD,item_guid,guild_name.c_str(),guild_guid,item_pos); } while (result->NextRow()); - int64 res_count = result->GetRowCount(); + int res_count = (int)result->GetRowCount(); delete result; @@ -4175,7 +4175,7 @@ bool ChatHandler::HandleChangeWeather(const char* args) return false; //Weather is OFF - if (!sWorld.getConfig(CONFIG_WEATHER)) + if (!sWorld.getConfig(CONFIG_BOOL_WEATHER)) { SendSysMessage(LANG_WEATHER_DISABLED); SetSentErrorMessage(true); @@ -4421,8 +4421,8 @@ bool ChatHandler::HandleResetLevelCommand(const char * args) // set starting level uint32 start_level = target->getClass() != CLASS_DEATH_KNIGHT - ? sWorld.getConfig(CONFIG_START_PLAYER_LEVEL) - : sWorld.getConfig(CONFIG_START_HEROIC_PLAYER_LEVEL); + ? sWorld.getConfig(CONFIG_UINT32_START_PLAYER_LEVEL) + : sWorld.getConfig(CONFIG_UINT32_START_HEROIC_PLAYER_LEVEL); target->_ApplyAllLevelScaleItemMods(false); diff --git a/src/game/LootHandler.cpp b/src/game/LootHandler.cpp index 2d3d8b5f2..f523e9ae8 100644 --- a/src/game/LootHandler.cpp +++ b/src/game/LootHandler.cpp @@ -221,7 +221,7 @@ void WorldSession::HandleLootMoneyOpcode( WorldPacket & /*recv_data*/ ) Player* playerGroup = itr->getSource(); if(!playerGroup) continue; - if (player->IsWithinDistInMap(playerGroup,sWorld.getRate(RATE_GROUP_XP_DISTANCE),false)) + if (player->IsWithinDistInMap(playerGroup,sWorld.getConfig(CONFIG_FLOAT_GROUP_XP_DISTANCE),false)) playersNear.push_back(playerGroup); } @@ -312,7 +312,7 @@ void WorldSession::DoLootRelease( uint64 lguid ) // only vein pass this check if(go_min != 0 && go_max > go_min) { - float amount_rate = sWorld.getRate(RATE_MINING_AMOUNT); + float amount_rate = sWorld.getConfig(CONFIG_FLOAT_RATE_MINING_AMOUNT); float min_amount = go_min*amount_rate; float max_amount = go_max*amount_rate; @@ -323,7 +323,7 @@ void WorldSession::DoLootRelease( uint64 lguid ) { if(uses >= min_amount) { - float chance_rate = sWorld.getRate(RATE_MINING_NEXT); + float chance_rate = sWorld.getConfig(CONFIG_FLOAT_RATE_MINING_NEXT); int32 ReqValue = 175; LockEntry const *lockInfo = sLockStore.LookupEntry(go->GetGOInfo()->chest.lockId); diff --git a/src/game/LootMgr.cpp b/src/game/LootMgr.cpp index b76017d1f..d4dde29a7 100644 --- a/src/game/LootMgr.cpp +++ b/src/game/LootMgr.cpp @@ -25,14 +25,14 @@ #include "SharedDefines.h" #include "SpellMgr.h" -static Rates const qualityToRate[MAX_ITEM_QUALITY] = { - RATE_DROP_ITEM_POOR, // ITEM_QUALITY_POOR - RATE_DROP_ITEM_NORMAL, // ITEM_QUALITY_NORMAL - RATE_DROP_ITEM_UNCOMMON, // ITEM_QUALITY_UNCOMMON - RATE_DROP_ITEM_RARE, // ITEM_QUALITY_RARE - RATE_DROP_ITEM_EPIC, // ITEM_QUALITY_EPIC - RATE_DROP_ITEM_LEGENDARY, // ITEM_QUALITY_LEGENDARY - RATE_DROP_ITEM_ARTIFACT, // ITEM_QUALITY_ARTIFACT +static eConfigFLoatValues const qualityToRate[MAX_ITEM_QUALITY] = { + CONFIG_FLOAT_RATE_DROP_ITEM_POOR, // ITEM_QUALITY_POOR + CONFIG_FLOAT_RATE_DROP_ITEM_NORMAL, // ITEM_QUALITY_NORMAL + CONFIG_FLOAT_RATE_DROP_ITEM_UNCOMMON, // ITEM_QUALITY_UNCOMMON + CONFIG_FLOAT_RATE_DROP_ITEM_RARE, // ITEM_QUALITY_RARE + CONFIG_FLOAT_RATE_DROP_ITEM_EPIC, // ITEM_QUALITY_EPIC + CONFIG_FLOAT_RATE_DROP_ITEM_LEGENDARY, // ITEM_QUALITY_LEGENDARY + CONFIG_FLOAT_RATE_DROP_ITEM_ARTIFACT, // ITEM_QUALITY_ARTIFACT }; LootStore LootTemplates_Creature( "creature_loot_template", "creature entry", true); @@ -243,11 +243,11 @@ bool LootStoreItem::Roll(bool rate) const return true; if(mincountOrRef < 0) // reference case - return roll_chance_f(chance* (rate ? sWorld.getRate(RATE_DROP_ITEM_REFERENCED) : 1.0f)); + return roll_chance_f(chance* (rate ? sWorld.getConfig(CONFIG_FLOAT_RATE_DROP_ITEM_REFERENCED) : 1.0f)); ItemPrototype const *pProto = ObjectMgr::GetItemPrototype(itemid); - float qualityModifier = pProto && rate ? sWorld.getRate(qualityToRate[pProto->Quality]) : 1.0f; + float qualityModifier = pProto && rate ? sWorld.getConfig(qualityToRate[pProto->Quality]) : 1.0f; return roll_chance_f(chance*qualityModifier); } @@ -595,11 +595,11 @@ void Loot::generateMoneyLoot( uint32 minAmount, uint32 maxAmount ) if (maxAmount > 0) { if (maxAmount <= minAmount) - gold = uint32(maxAmount * sWorld.getRate(RATE_DROP_MONEY)); + gold = uint32(maxAmount * sWorld.getConfig(CONFIG_FLOAT_RATE_DROP_MONEY)); else if ((maxAmount - minAmount) < 32700) - gold = uint32(urand(minAmount, maxAmount) * sWorld.getRate(RATE_DROP_MONEY)); + gold = uint32(urand(minAmount, maxAmount) * sWorld.getConfig(CONFIG_FLOAT_RATE_DROP_MONEY)); else - gold = uint32(urand(minAmount >> 8, maxAmount >> 8) * sWorld.getRate(RATE_DROP_MONEY)) << 8; + gold = uint32(urand(minAmount >> 8, maxAmount >> 8) * sWorld.getConfig(CONFIG_FLOAT_RATE_DROP_MONEY)) << 8; } } diff --git a/src/game/Mail.cpp b/src/game/Mail.cpp index 6da630d58..b2ae271ad 100644 --- a/src/game/Mail.cpp +++ b/src/game/Mail.cpp @@ -149,7 +149,7 @@ void WorldSession::HandleSendMail(WorldPacket & recv_data ) } // check the receiver's Faction... - if (!sWorld.getConfig(CONFIG_ALLOW_TWO_SIDE_INTERACTION_MAIL) && pl->GetTeam() != rc_team && GetSecurity() == SEC_PLAYER) + if (!sWorld.getConfig(CONFIG_BOOL_ALLOW_TWO_SIDE_INTERACTION_MAIL) && pl->GetTeam() != rc_team && GetSecurity() == SEC_PLAYER) { pl->SendMailResult(0, MAIL_SEND, MAIL_ERR_NOT_YOUR_TEAM); return; @@ -223,7 +223,7 @@ void WorldSession::HandleSendMail(WorldPacket & recv_data ) for(uint8 i = 0; i < items_count; ++i) { Item* item = items[i]; - if (GetSecurity() > SEC_PLAYER && sWorld.getConfig(CONFIG_GM_LOG_TRADE)) + if (GetSecurity() > SEC_PLAYER && sWorld.getConfig(CONFIG_BOOL_GM_LOG_TRADE)) { sLog.outCommand(GetAccountId(), "GM %s (Account: %u) mail item: %s (Entry: %u Count: %u) to player: %s (Account: %u)", GetPlayerName(), GetAccountId(), item->GetProto()->Name1, item->GetEntry(), item->GetCount(), receiver.c_str(), rc_account); @@ -244,7 +244,7 @@ void WorldSession::HandleSendMail(WorldPacket & recv_data ) needItemDelay = pl->GetSession()->GetAccountId() != rc_account; } - if (money > 0 && GetSecurity() > SEC_PLAYER && sWorld.getConfig(CONFIG_GM_LOG_TRADE)) + if (money > 0 && GetSecurity() > SEC_PLAYER && sWorld.getConfig(CONFIG_BOOL_GM_LOG_TRADE)) { sLog.outCommand(GetAccountId(),"GM %s (Account: %u) mail money: %u to player: %s (Account: %u)", GetPlayerName(), GetAccountId(), money, receiver.c_str(), rc_account); @@ -252,7 +252,7 @@ void WorldSession::HandleSendMail(WorldPacket & recv_data ) } // If theres is an item, there is a one hour delivery delay if sent to another account's character. - uint32 deliver_delay = needItemDelay ? sWorld.getConfig(CONFIG_MAIL_DELIVERY_DELAY) : 0; + uint32 deliver_delay = needItemDelay ? sWorld.getConfig(CONFIG_UINT32_MAIL_DELIVERY_DELAY) : 0; // will delete item or place to receiver mail list draft @@ -420,7 +420,7 @@ void WorldSession::HandleMailTakeItem(WorldPacket & recv_data ) uint32 sender_accId = 0; - if( GetSecurity() > SEC_PLAYER && sWorld.getConfig(CONFIG_GM_LOG_TRADE) ) + if( GetSecurity() > SEC_PLAYER && sWorld.getConfig(CONFIG_BOOL_GM_LOG_TRADE) ) { std::string sender_name; if(receive) @@ -897,7 +897,7 @@ void MailDraft::SendReturnToSender(uint32 sender_acc, uint32 sender_guid, uint32 } // If theres is an item, there is a one hour delivery delay. - uint32 deliver_delay = needItemDelay ? sWorld.getConfig(CONFIG_MAIL_DELIVERY_DELAY) : 0; + uint32 deliver_delay = needItemDelay ? sWorld.getConfig(CONFIG_UINT32_MAIL_DELIVERY_DELAY) : 0; // will delete item or place to receiver mail list SendMailTo(MailReceiver(receiver,receiver_guid), MailSender(MAIL_NORMAL, sender_guid), MAIL_CHECK_MASK_RETURNED, deliver_delay); diff --git a/src/game/Map.cpp b/src/game/Map.cpp index 309fb3879..cae29e919 100644 --- a/src/game/Map.cpp +++ b/src/game/Map.cpp @@ -40,7 +40,7 @@ #include "InstanceSaveMgr.h" #include "VMapFactory.h" -#define MAX_CREATURE_ATTACK_RADIUS (45.0f * sWorld.getRate(RATE_CREATURE_AGGRO)) +#define MAX_CREATURE_ATTACK_RADIUS (45.0f * sWorld.getConfig(CONFIG_FLOAT_RATE_CREATURE_AGGRO)) GridState* si_GridStates[MAX_GRID_STATE]; @@ -357,7 +357,7 @@ Map::EnsureGridCreated(const GridPair &p) Guard guard(*this); if(!getNGrid(p.x_coord, p.y_coord)) { - setNGrid(new NGridType(p.x_coord*MAX_NUMBER_OF_GRIDS + p.y_coord, p.x_coord, p.y_coord, i_gridExpiry, sWorld.getConfig(CONFIG_GRID_UNLOAD)), + setNGrid(new NGridType(p.x_coord*MAX_NUMBER_OF_GRIDS + p.y_coord, p.x_coord, p.y_coord, i_gridExpiry, sWorld.getConfig(CONFIG_BOOL_GRID_UNLOAD)), p.x_coord, p.y_coord); // build a linkage between this map and NGridType @@ -838,7 +838,7 @@ Map::Remove(T *obj, bool remove) if( remove ) { // if option set then object already saved at this moment - if(!sWorld.getConfig(CONFIG_SAVE_RESPAWN_TIME_IMMEDIATLY)) + if(!sWorld.getConfig(CONFIG_BOOL_SAVE_RESPAWN_TIME_IMMEDIATLY)) obj->SaveRespawnTime(); DeleteFromWorld(obj); } @@ -2349,7 +2349,7 @@ InstanceMap::InstanceMap(uint32 id, time_t expiry, uint32 InstanceId, uint8 Spaw // the timer is started by default, and stopped when the first player joins // this make sure it gets unloaded if for some reason no player joins - m_unloadTimer = std::max(sWorld.getConfig(CONFIG_INSTANCE_UNLOAD_DELAY), (uint32)MIN_UNLOAD_DELAY); + m_unloadTimer = std::max(sWorld.getConfig(CONFIG_UINT32_INSTANCE_UNLOAD_DELAY), (uint32)MIN_UNLOAD_DELAY); } InstanceMap::~InstanceMap() @@ -2523,7 +2523,7 @@ void InstanceMap::Remove(Player *player, bool remove) sLog.outDetail("MAP: Removing player '%s' from instance '%u' of map '%s' before relocating to other map", player->GetName(), GetInstanceId(), GetMapName()); //if last player set unload timer if(!m_unloadTimer && m_mapRefManager.getSize() == 1) - m_unloadTimer = m_unloadWhenEmpty ? MIN_UNLOAD_DELAY : std::max(sWorld.getConfig(CONFIG_INSTANCE_UNLOAD_DELAY), (uint32)MIN_UNLOAD_DELAY); + m_unloadTimer = m_unloadWhenEmpty ? MIN_UNLOAD_DELAY : std::max(sWorld.getConfig(CONFIG_UINT32_INSTANCE_UNLOAD_DELAY), (uint32)MIN_UNLOAD_DELAY); Map::Remove(player, remove); // for normal instances schedule the reset after all players have left SetResetSchedule(true); diff --git a/src/game/MapInstanced.cpp b/src/game/MapInstanced.cpp index e3a60e562..76a508d98 100644 --- a/src/game/MapInstanced.cpp +++ b/src/game/MapInstanced.cpp @@ -241,7 +241,7 @@ void MapInstanced::DestroyInstance(InstancedMaps::iterator &itr) { itr->second->UnloadAll(true); // should only unload VMaps if this is the last instance and grid unloading is enabled - if(m_InstancedMaps.size() <= 1 && sWorld.getConfig(CONFIG_GRID_UNLOAD)) + if(m_InstancedMaps.size() <= 1 && sWorld.getConfig(CONFIG_BOOL_GRID_UNLOAD)) { VMAP::VMapFactory::createOrGetVMapManager()->unloadMap(itr->second->GetId()); // in that case, unload grids of the base map, too diff --git a/src/game/MapManager.cpp b/src/game/MapManager.cpp index 6c2b8271e..7b0fca258 100644 --- a/src/game/MapManager.cpp +++ b/src/game/MapManager.cpp @@ -36,9 +36,9 @@ INSTANTIATE_CLASS_MUTEX(MapManager, ACE_Thread_Mutex); extern GridState* si_GridStates[]; // debugging code, should be deleted some day -MapManager::MapManager() : i_gridCleanUpDelay(sWorld.getConfig(CONFIG_INTERVAL_GRIDCLEAN)) +MapManager::MapManager() : i_gridCleanUpDelay(sWorld.getConfig(CONFIG_UINT32_INTERVAL_GRIDCLEAN)) { - i_timer.SetInterval(sWorld.getConfig(CONFIG_INTERVAL_MAPUPDATE)); + i_timer.SetInterval(sWorld.getConfig(CONFIG_UINT32_INTERVAL_MAPUPDATE)); } MapManager::~MapManager() @@ -165,7 +165,7 @@ bool MapManager::CanPlayerEnter(uint32 mapid, Player* player) if (entry->map_type == MAP_RAID) { // GMs can avoid raid limitations - if(!player->isGameMaster() && !sWorld.getConfig(CONFIG_INSTANCE_IGNORE_RAID)) + if(!player->isGameMaster() && !sWorld.getConfig(CONFIG_BOOL_INSTANCE_IGNORE_RAID)) { // can only enter in a raid group Group* group = player->GetGroup(); @@ -262,7 +262,7 @@ MapManager::Update(uint32 diff) for(MapMapType::iterator iter=i_maps.begin(); iter != i_maps.end(); ++iter) { checkAndCorrectGridStatesArray(); // debugging code, should be deleted some day - iter->second->Update(i_timer.GetCurrent()); + iter->second->Update((uint32)i_timer.GetCurrent()); } for (TransportSet::iterator iter = m_Transports.begin(); iter != m_Transports.end(); ++iter) diff --git a/src/game/MiscHandler.cpp b/src/game/MiscHandler.cpp index 085ef1682..fe2ee3c65 100644 --- a/src/game/MiscHandler.cpp +++ b/src/game/MiscHandler.cpp @@ -135,8 +135,8 @@ void WorldSession::HandleWhoOpcode( WorldPacket & recv_data ) uint32 team = _player->GetTeam(); uint32 security = GetSecurity(); - bool allowTwoSideWhoList = sWorld.getConfig(CONFIG_ALLOW_TWO_SIDE_WHO_LIST); - AccountTypes gmLevelInWhoList = (AccountTypes)sWorld.getConfig(CONFIG_GM_LEVEL_IN_WHO_LIST); + bool allowTwoSideWhoList = sWorld.getConfig(CONFIG_BOOL_ALLOW_TWO_SIDE_WHO_LIST); + AccountTypes gmLevelInWhoList = (AccountTypes)sWorld.getConfig(CONFIG_UINT32_GM_LEVEL_IN_WHO_LIST); WorldPacket data( SMSG_WHO, 50 ); // guess size data << clientcount; // clientcount place holder @@ -148,7 +148,7 @@ void WorldSession::HandleWhoOpcode( WorldPacket & recv_data ) { if (security == SEC_PLAYER) { - // player can see member of other team only if CONFIG_ALLOW_TWO_SIDE_WHO_LIST + // player can see member of other team only if CONFIG_BOOL_ALLOW_TWO_SIDE_WHO_LIST if (itr->second->GetTeam() != team && !allowTwoSideWhoList ) continue; @@ -280,7 +280,7 @@ void WorldSession::HandleLogoutRequestOpcode( WorldPacket & /*recv_data*/ ) //instant logout in taverns/cities or on taxi or for admins, gm's, mod's if its enabled in mangosd.conf if (GetPlayer()->HasFlag(PLAYER_FLAGS, PLAYER_FLAGS_RESTING) || GetPlayer()->isInFlight() || - GetSecurity() >= (AccountTypes)sWorld.getConfig(CONFIG_INSTANT_LOGOUT)) + GetSecurity() >= (AccountTypes)sWorld.getConfig(CONFIG_UINT32_INSTANT_LOGOUT)) { LogoutPlayer(true); return; @@ -471,7 +471,7 @@ void WorldSession::HandleAddFriendOpcodeCallBack(QueryResult *result, uint32 acc { if(friendGuid==session->GetPlayer()->GetGUID()) friendResult = FRIEND_SELF; - else if(session->GetPlayer()->GetTeam() != team && !sWorld.getConfig(CONFIG_ALLOW_TWO_SIDE_ADD_FRIEND) && session->GetSecurity() < SEC_MODERATOR) + else if(session->GetPlayer()->GetTeam() != team && !sWorld.getConfig(CONFIG_BOOL_ALLOW_TWO_SIDE_ADD_FRIEND) && session->GetSecurity() < SEC_MODERATOR) friendResult = FRIEND_ENEMY; else if(session->GetPlayer()->GetSocial()->HasFriend(GUID_LOPART(friendGuid))) friendResult = FRIEND_ALREADY; @@ -792,7 +792,7 @@ void WorldSession::HandleAreaTriggerOpcode(WorldPacket & recv_data) if(!GetPlayer()->isGameMaster()) { uint32 missingLevel = 0; - if(GetPlayer()->getLevel() < at->requiredLevel && !sWorld.getConfig(CONFIG_INSTANCE_IGNORE_LEVEL)) + if(GetPlayer()->getLevel() < at->requiredLevel && !sWorld.getConfig(CONFIG_BOOL_INSTANCE_IGNORE_LEVEL)) missingLevel = at->requiredLevel; // must have one or the other, report the first one that's missing @@ -1135,7 +1135,7 @@ void WorldSession::HandleInspectOpcode(WorldPacket& recv_data) WorldPacket data(SMSG_INSPECT_TALENT, 50); data.append(plr->GetPackGUID()); - if(sWorld.getConfig(CONFIG_TALENTS_INSPECTING) || _player->isGameMaster()) + if(sWorld.getConfig(CONFIG_BOOL_TALENTS_INSPECTING) || _player->isGameMaster()) { plr->BuildPlayerTalentsInfoData(&data); plr->BuildEnchantmentsInfoData(&data); diff --git a/src/game/Object.cpp b/src/game/Object.cpp index 356d1a1f8..a0ccace90 100644 --- a/src/game/Object.cpp +++ b/src/game/Object.cpp @@ -637,6 +637,7 @@ void Object::BuildValuesUpdate(uint8 updatetype, ByteBuffer * data, UpdateMask * // convert from float to uint32 and send *data << uint32(m_floatValues[ index ] < 0 ? 0 : m_floatValues[ index ]); } + // there are some float values which may be negative or can't get negative due to other checks else if ((index >= UNIT_FIELD_NEGSTAT0 && index <= UNIT_FIELD_NEGSTAT4) || (index >= UNIT_FIELD_RESISTANCEBUFFMODSPOSITIVE && index <= (UNIT_FIELD_RESISTANCEBUFFMODSPOSITIVE + 6)) || @@ -645,6 +646,7 @@ void Object::BuildValuesUpdate(uint8 updatetype, ByteBuffer * data, UpdateMask * { *data << uint32(m_floatValues[ index ]); } + // Gamemasters should be always able to select units - remove not selectable flag else if(index == UNIT_FIELD_FLAGS && target->isGameMaster()) { @@ -1440,21 +1442,21 @@ void WorldObject::MonsterSay(const char* text, uint32 language, uint64 TargetGui { WorldPacket data(SMSG_MESSAGECHAT, 200); BuildMonsterChat(&data,CHAT_MSG_MONSTER_SAY,text,language,GetName(),TargetGuid); - SendMessageToSetInRange(&data,sWorld.getRate(RATE_LISTEN_RANGE_SAY),true); + SendMessageToSetInRange(&data,sWorld.getConfig(CONFIG_FLOAT_LISTEN_RANGE_SAY),true); } void WorldObject::MonsterYell(const char* text, uint32 language, uint64 TargetGuid) { WorldPacket data(SMSG_MESSAGECHAT, 200); BuildMonsterChat(&data,CHAT_MSG_MONSTER_YELL,text,language,GetName(),TargetGuid); - SendMessageToSetInRange(&data,sWorld.getRate(RATE_LISTEN_RANGE_YELL),true); + SendMessageToSetInRange(&data,sWorld.getConfig(CONFIG_FLOAT_LISTEN_RANGE_YELL),true); } void WorldObject::MonsterTextEmote(const char* text, uint64 TargetGuid, bool IsBossEmote) { WorldPacket data(SMSG_MESSAGECHAT, 200); BuildMonsterChat(&data,IsBossEmote ? CHAT_MSG_RAID_BOSS_EMOTE : CHAT_MSG_MONSTER_EMOTE,text,LANG_UNIVERSAL,GetName(),TargetGuid); - SendMessageToSetInRange(&data,sWorld.getRate(IsBossEmote ? RATE_LISTEN_RANGE_YELL : RATE_LISTEN_RANGE_TEXTEMOTE),true); + SendMessageToSetInRange(&data,sWorld.getConfig(IsBossEmote ? CONFIG_FLOAT_LISTEN_RANGE_YELL : CONFIG_FLOAT_LISTEN_RANGE_TEXTEMOTE),true); } void WorldObject::MonsterWhisper(const char* text, uint64 receiver, bool IsBossWhisper) @@ -1503,9 +1505,9 @@ void WorldObject::MonsterSay(int32 textId, uint32 language, uint64 TargetGuid) MaNGOS::MonsterChatBuilder say_build(*this, CHAT_MSG_MONSTER_SAY, textId,language,TargetGuid); MaNGOS::LocalizedPacketDo say_do(say_build); - MaNGOS::PlayerDistWorker > say_worker(this,sWorld.getRate(RATE_LISTEN_RANGE_SAY),say_do); + MaNGOS::PlayerDistWorker > say_worker(this,sWorld.getConfig(CONFIG_FLOAT_LISTEN_RANGE_SAY),say_do); TypeContainerVisitor >, WorldTypeMapContainer > message(say_worker); - cell.Visit(p, message, *GetMap(), *this, sWorld.getRate(RATE_LISTEN_RANGE_SAY)); + cell.Visit(p, message, *GetMap(), *this, sWorld.getConfig(CONFIG_FLOAT_LISTEN_RANGE_SAY)); } void WorldObject::MonsterYell(int32 textId, uint32 language, uint64 TargetGuid) @@ -1516,7 +1518,7 @@ void WorldObject::MonsterYell(int32 textId, uint32 language, uint64 TargetGuid) cell.data.Part.reserved = ALL_DISTRICT; cell.SetNoCreate(); - float range = sWorld.getRate(RATE_LISTEN_RANGE_YELL); + float range = sWorld.getConfig(CONFIG_FLOAT_LISTEN_RANGE_YELL); MaNGOS::MonsterChatBuilder say_build(*this, CHAT_MSG_MONSTER_YELL, textId,language,TargetGuid); MaNGOS::LocalizedPacketDo say_do(say_build); @@ -1546,7 +1548,7 @@ void WorldObject::MonsterTextEmote(int32 textId, uint64 TargetGuid, bool IsBossE cell.data.Part.reserved = ALL_DISTRICT; cell.SetNoCreate(); - float range = sWorld.getRate(IsBossEmote ? RATE_LISTEN_RANGE_YELL : RATE_LISTEN_RANGE_TEXTEMOTE); + float range = sWorld.getConfig(IsBossEmote ? CONFIG_FLOAT_LISTEN_RANGE_YELL : CONFIG_FLOAT_LISTEN_RANGE_TEXTEMOTE); MaNGOS::MonsterChatBuilder say_build(*this, IsBossEmote ? CHAT_MSG_RAID_BOSS_EMOTE : CHAT_MSG_MONSTER_EMOTE, textId,LANG_UNIVERSAL,TargetGuid); MaNGOS::LocalizedPacketDo say_do(say_build); @@ -1764,7 +1766,7 @@ void WorldObject::GetNearPoint(WorldObject const* searcher, float &x, float &y, z = GetPositionZ(); // if detection disabled, return first point - if(!sWorld.getConfig(CONFIG_DETECT_POS_COLLISION)) + if(!sWorld.getConfig(CONFIG_BOOL_DETECT_POS_COLLISION)) { UpdateGroundPositionZ(x,y,z); // update to LOS height if available return; diff --git a/src/game/ObjectAccessor.cpp b/src/game/ObjectAccessor.cpp index f10875c64..eb2c395ee 100644 --- a/src/game/ObjectAccessor.cpp +++ b/src/game/ObjectAccessor.cpp @@ -263,7 +263,7 @@ ObjectAccessor::ConvertCorpseForPlayer(uint64 player_guid, bool insignia) // create the bones only if the map and the grid is loaded at the corpse's location // ignore bones creating option in case insignia if (map && (insignia || - (map->IsBattleGroundOrArena() ? sWorld.getConfig(CONFIG_DEATH_BONES_BG_OR_ARENA) : sWorld.getConfig(CONFIG_DEATH_BONES_WORLD))) && + (map->IsBattleGroundOrArena() ? sWorld.getConfig(CONFIG_BOOL_DEATH_BONES_BG_OR_ARENA) : sWorld.getConfig(CONFIG_BOOL_DEATH_BONES_WORLD))) && !map->IsRemovalGrid(corpse->GetPositionX(), corpse->GetPositionY())) { // Create bones, don't change Corpse diff --git a/src/game/ObjectGridLoader.cpp b/src/game/ObjectGridLoader.cpp index afd6697d4..9935ce23c 100644 --- a/src/game/ObjectGridLoader.cpp +++ b/src/game/ObjectGridLoader.cpp @@ -266,7 +266,7 @@ ObjectGridUnloader::Visit(GridRefManager &m) { T *obj = m.getFirst()->getSource(); // if option set then object already saved at this moment - if(!sWorld.getConfig(CONFIG_SAVE_RESPAWN_TIME_IMMEDIATLY)) + if(!sWorld.getConfig(CONFIG_BOOL_SAVE_RESPAWN_TIME_IMMEDIATLY)) obj->SaveRespawnTime(); ///- object must be out of world before delete obj->RemoveFromWorld(); diff --git a/src/game/ObjectMgr.cpp b/src/game/ObjectMgr.cpp index 8347d9e41..46acb9401 100644 --- a/src/game/ObjectMgr.cpp +++ b/src/game/ObjectMgr.cpp @@ -2224,7 +2224,7 @@ void ObjectMgr::LoadPetLevelInfo() } uint32 current_level = fields[1].GetUInt32(); - if(current_level > sWorld.getConfig(CONFIG_MAX_PLAYER_LEVEL)) + if(current_level > sWorld.getConfig(CONFIG_UINT32_MAX_PLAYER_LEVEL)) { if(current_level > STRONG_MAX_LEVEL) // hardcoded level maximum sLog.outErrorDb("Wrong (> %u) level %u in `pet_levelstats` table, ignoring.",STRONG_MAX_LEVEL,current_level); @@ -2244,7 +2244,7 @@ void ObjectMgr::LoadPetLevelInfo() PetLevelInfo*& pInfoMapEntry = petInfo[creature_id]; if(pInfoMapEntry==NULL) - pInfoMapEntry = new PetLevelInfo[sWorld.getConfig(CONFIG_MAX_PLAYER_LEVEL)]; + pInfoMapEntry = new PetLevelInfo[sWorld.getConfig(CONFIG_UINT32_MAX_PLAYER_LEVEL)]; // data for level 1 stored in [0] array element, ... PetLevelInfo* pLevelInfo = &pInfoMapEntry[current_level-1]; @@ -2282,7 +2282,7 @@ void ObjectMgr::LoadPetLevelInfo() } // fill level gaps - for (uint32 level = 1; level < sWorld.getConfig(CONFIG_MAX_PLAYER_LEVEL); ++level) + for (uint32 level = 1; level < sWorld.getConfig(CONFIG_UINT32_MAX_PLAYER_LEVEL); ++level) { if(pInfo[level].health == 0) { @@ -2295,8 +2295,8 @@ void ObjectMgr::LoadPetLevelInfo() PetLevelInfo const* ObjectMgr::GetPetLevelInfo(uint32 creature_id, uint32 level) const { - if(level > sWorld.getConfig(CONFIG_MAX_PLAYER_LEVEL)) - level = sWorld.getConfig(CONFIG_MAX_PLAYER_LEVEL); + if(level > sWorld.getConfig(CONFIG_UINT32_MAX_PLAYER_LEVEL)) + level = sWorld.getConfig(CONFIG_UINT32_MAX_PLAYER_LEVEL); PetLevelInfoMap::const_iterator itr = petInfo.find(creature_id); if(itr == petInfo.end()) @@ -2622,7 +2622,7 @@ void ObjectMgr::LoadPlayerInfo() sLog.outErrorDb("Wrong level %u in `player_classlevelstats` table, ignoring.",current_level); continue; } - else if(current_level > sWorld.getConfig(CONFIG_MAX_PLAYER_LEVEL)) + else if(current_level > sWorld.getConfig(CONFIG_UINT32_MAX_PLAYER_LEVEL)) { if(current_level > STRONG_MAX_LEVEL) // hardcoded level maximum sLog.outErrorDb("Wrong (> %u) level %u in `player_classlevelstats` table, ignoring.",STRONG_MAX_LEVEL,current_level); @@ -2637,7 +2637,7 @@ void ObjectMgr::LoadPlayerInfo() PlayerClassInfo* pClassInfo = &playerClassInfo[current_class]; if(!pClassInfo->levelInfo) - pClassInfo->levelInfo = new PlayerClassLevelInfo[sWorld.getConfig(CONFIG_MAX_PLAYER_LEVEL)]; + pClassInfo->levelInfo = new PlayerClassLevelInfo[sWorld.getConfig(CONFIG_UINT32_MAX_PLAYER_LEVEL)]; PlayerClassLevelInfo* pClassLevelInfo = &pClassInfo->levelInfo[current_level-1]; @@ -2672,7 +2672,7 @@ void ObjectMgr::LoadPlayerInfo() } // fill level gaps - for (uint32 level = 1; level < sWorld.getConfig(CONFIG_MAX_PLAYER_LEVEL); ++level) + for (uint32 level = 1; level < sWorld.getConfig(CONFIG_UINT32_MAX_PLAYER_LEVEL); ++level) { if(pClassInfo->levelInfo[level].basehealth == 0) { @@ -2720,7 +2720,7 @@ void ObjectMgr::LoadPlayerInfo() } uint32 current_level = fields[2].GetUInt32(); - if(current_level > sWorld.getConfig(CONFIG_MAX_PLAYER_LEVEL)) + if(current_level > sWorld.getConfig(CONFIG_UINT32_MAX_PLAYER_LEVEL)) { if(current_level > STRONG_MAX_LEVEL) // hardcoded level maximum sLog.outErrorDb("Wrong (> %u) level %u in `player_levelstats` table, ignoring.",STRONG_MAX_LEVEL,current_level); @@ -2735,7 +2735,7 @@ void ObjectMgr::LoadPlayerInfo() PlayerInfo* pInfo = &playerInfo[current_race][current_class]; if(!pInfo->levelInfo) - pInfo->levelInfo = new PlayerLevelInfo[sWorld.getConfig(CONFIG_MAX_PLAYER_LEVEL)]; + pInfo->levelInfo = new PlayerLevelInfo[sWorld.getConfig(CONFIG_UINT32_MAX_PLAYER_LEVEL)]; PlayerLevelInfo* pLevelInfo = &pInfo->levelInfo[current_level-1]; @@ -2775,11 +2775,11 @@ void ObjectMgr::LoadPlayerInfo() continue; // skip expansion races if not playing with expansion - if (sWorld.getConfig(CONFIG_EXPANSION) < 1 && (race == RACE_BLOODELF || race == RACE_DRAENEI)) + if (sWorld.getConfig(CONFIG_UINT32_EXPANSION) < 1 && (race == RACE_BLOODELF || race == RACE_DRAENEI)) continue; // skip expansion classes if not playing with expansion - if (sWorld.getConfig(CONFIG_EXPANSION) < 2 && class_ == CLASS_DEATH_KNIGHT) + if (sWorld.getConfig(CONFIG_UINT32_EXPANSION) < 2 && class_ == CLASS_DEATH_KNIGHT) continue; // fatal error if no level 1 data @@ -2790,7 +2790,7 @@ void ObjectMgr::LoadPlayerInfo() } // fill level gaps - for (uint32 level = 1; level < sWorld.getConfig(CONFIG_MAX_PLAYER_LEVEL); ++level) + for (uint32 level = 1; level < sWorld.getConfig(CONFIG_UINT32_MAX_PLAYER_LEVEL); ++level) { if(pInfo->levelInfo[level].stats[0] == 0) { @@ -2803,8 +2803,8 @@ void ObjectMgr::LoadPlayerInfo() // Loading xp per level data { - mPlayerXPperLevel.resize(sWorld.getConfig(CONFIG_MAX_PLAYER_LEVEL)); - for (uint32 level = 0; level < sWorld.getConfig(CONFIG_MAX_PLAYER_LEVEL); ++level) + mPlayerXPperLevel.resize(sWorld.getConfig(CONFIG_UINT32_MAX_PLAYER_LEVEL)); + for (uint32 level = 0; level < sWorld.getConfig(CONFIG_UINT32_MAX_PLAYER_LEVEL); ++level) mPlayerXPperLevel[level] = 0; // 0 1 @@ -2831,7 +2831,7 @@ void ObjectMgr::LoadPlayerInfo() uint32 current_level = fields[0].GetUInt32(); uint32 current_xp = fields[1].GetUInt32(); - if(current_level >= sWorld.getConfig(CONFIG_MAX_PLAYER_LEVEL)) + if(current_level >= sWorld.getConfig(CONFIG_UINT32_MAX_PLAYER_LEVEL)) { if(current_level > STRONG_MAX_LEVEL) // hardcoded level maximum sLog.outErrorDb("Wrong (> %u) level %u in `player_xp_for_level` table, ignoring.", STRONG_MAX_LEVEL,current_level); @@ -2856,7 +2856,7 @@ void ObjectMgr::LoadPlayerInfo() } // fill level gaps - for (uint32 level = 1; level < sWorld.getConfig(CONFIG_MAX_PLAYER_LEVEL); ++level) + for (uint32 level = 1; level < sWorld.getConfig(CONFIG_UINT32_MAX_PLAYER_LEVEL); ++level) { if( mPlayerXPperLevel[level] == 0) { @@ -2873,8 +2873,8 @@ void ObjectMgr::GetPlayerClassLevelInfo(uint32 class_, uint32 level, PlayerClass PlayerClassInfo const* pInfo = &playerClassInfo[class_]; - if(level > sWorld.getConfig(CONFIG_MAX_PLAYER_LEVEL)) - level = sWorld.getConfig(CONFIG_MAX_PLAYER_LEVEL); + if(level > sWorld.getConfig(CONFIG_UINT32_MAX_PLAYER_LEVEL)) + level = sWorld.getConfig(CONFIG_UINT32_MAX_PLAYER_LEVEL); *info = pInfo->levelInfo[level-1]; } @@ -2888,7 +2888,7 @@ void ObjectMgr::GetPlayerLevelInfo(uint32 race, uint32 class_, uint32 level, Pla if(pInfo->displayId_m==0 || pInfo->displayId_f==0) return; - if(level <= sWorld.getConfig(CONFIG_MAX_PLAYER_LEVEL)) + if(level <= sWorld.getConfig(CONFIG_UINT32_MAX_PLAYER_LEVEL)) *info = pInfo->levelInfo[level-1]; else BuildPlayerLevelInfo(race,class_,level,info); @@ -2897,9 +2897,9 @@ void ObjectMgr::GetPlayerLevelInfo(uint32 race, uint32 class_, uint32 level, Pla void ObjectMgr::BuildPlayerLevelInfo(uint8 race, uint8 _class, uint8 level, PlayerLevelInfo* info) const { // base data (last known level) - *info = playerInfo[race][_class].levelInfo[sWorld.getConfig(CONFIG_MAX_PLAYER_LEVEL)-1]; + *info = playerInfo[race][_class].levelInfo[sWorld.getConfig(CONFIG_UINT32_MAX_PLAYER_LEVEL)-1]; - for(int lvl = sWorld.getConfig(CONFIG_MAX_PLAYER_LEVEL)-1; lvl < level; ++lvl) + for(int lvl = sWorld.getConfig(CONFIG_UINT32_MAX_PLAYER_LEVEL)-1; lvl < level; ++lvl) { switch(_class) { @@ -3044,9 +3044,9 @@ void ObjectMgr::LoadGuilds() delete guildBankTabRightsResult; //delete unused LogGuid records in guild_eventlog and guild_bank_eventlog table - //you can comment these lines if you don't plan to change CONFIG_GUILD_EVENT_LOG_COUNT and CONFIG_GUILD_BANK_EVENT_LOG_COUNT - CharacterDatabase.PQuery("DELETE FROM guild_eventlog WHERE LogGuid > '%u'", sWorld.getConfig(CONFIG_GUILD_EVENT_LOG_COUNT)); - CharacterDatabase.PQuery("DELETE FROM guild_bank_eventlog WHERE LogGuid > '%u'", sWorld.getConfig(CONFIG_GUILD_BANK_EVENT_LOG_COUNT)); + //you can comment these lines if you don't plan to change CONFIG_UINT32_GUILD_EVENT_LOG_COUNT and CONFIG_UINT32_GUILD_BANK_EVENT_LOG_COUNT + CharacterDatabase.PQuery("DELETE FROM guild_eventlog WHERE LogGuid > '%u'", sWorld.getConfig(CONFIG_UINT32_GUILD_EVENT_LOG_COUNT)); + CharacterDatabase.PQuery("DELETE FROM guild_bank_eventlog WHERE LogGuid > '%u'", sWorld.getConfig(CONFIG_UINT32_GUILD_BANK_EVENT_LOG_COUNT)); sLog.outString(); sLog.outString( ">> Loaded %u guild definitions", count ); @@ -6939,7 +6939,7 @@ enum LanguageType static LanguageType GetRealmLanguageType(bool create) { - switch(sWorld.getConfig(CONFIG_REALM_ZONE)) + switch(sWorld.getConfig(CONFIG_UINT32_REALM_ZONE)) { case REALM_ZONE_UNKNOWN: // any language case REALM_ZONE_DEVELOPMENT: @@ -7010,11 +7010,11 @@ uint8 ObjectMgr::CheckPlayerName( const std::string& name, bool create ) if(wname.size() > MAX_PLAYER_NAME) return CHAR_NAME_TOO_LONG; - uint32 minName = sWorld.getConfig(CONFIG_MIN_PLAYER_NAME); + uint32 minName = sWorld.getConfig(CONFIG_UINT32_MIN_PLAYER_NAME); if(wname.size() < minName) return CHAR_NAME_TOO_SHORT; - uint32 strictMask = sWorld.getConfig(CONFIG_STRICT_PLAYER_NAMES); + uint32 strictMask = sWorld.getConfig(CONFIG_UINT32_STRICT_PLAYER_NAMES); if(!isValidString(wname,strictMask,false,create)) return CHAR_NAME_MIXED_LANGUAGES; @@ -7030,11 +7030,11 @@ bool ObjectMgr::IsValidCharterName( const std::string& name ) if(wname.size() > MAX_CHARTER_NAME) return false; - uint32 minName = sWorld.getConfig(CONFIG_MIN_CHARTER_NAME); + uint32 minName = sWorld.getConfig(CONFIG_UINT32_MIN_CHARTER_NAME); if(wname.size() < minName) return false; - uint32 strictMask = sWorld.getConfig(CONFIG_STRICT_CHARTER_NAMES); + uint32 strictMask = sWorld.getConfig(CONFIG_UINT32_STRICT_CHARTER_NAMES); return isValidString(wname,strictMask,true); } @@ -7048,11 +7048,11 @@ PetNameInvalidReason ObjectMgr::CheckPetName( const std::string& name ) if(wname.size() > MAX_PET_NAME) return PET_NAME_TOO_LONG; - uint32 minName = sWorld.getConfig(CONFIG_MIN_PET_NAME); + uint32 minName = sWorld.getConfig(CONFIG_UINT32_MIN_PET_NAME); if(wname.size() < minName) return PET_NAME_TOO_SHORT; - uint32 strictMask = sWorld.getConfig(CONFIG_STRICT_PET_NAMES); + uint32 strictMask = sWorld.getConfig(CONFIG_UINT32_STRICT_PET_NAMES); if(!isValidString(wname,strictMask,false)) return PET_NAME_MIXED_LANGUAGES; @@ -7620,7 +7620,7 @@ bool PlayerCondition::IsValid(ConditionType condition, uint32 value1, uint32 val } case CONDITION_LEVEL: { - if (!value1 || value1 > sWorld.getConfig(CONFIG_MAX_PLAYER_LEVEL)) + if (!value1 || value1 > sWorld.getConfig(CONFIG_UINT32_MAX_PLAYER_LEVEL)) { sLog.outErrorDb("Level condition has invalid level %u, skipped", value1); return false; diff --git a/src/game/Pet.cpp b/src/game/Pet.cpp index a4a8edd06..7e8165b5f 100644 --- a/src/game/Pet.cpp +++ b/src/game/Pet.cpp @@ -579,7 +579,7 @@ void Pet::Regenerate(Powers power) case POWER_FOCUS: { // For hunter pets. - addvalue = 24 * sWorld.getRate(RATE_POWER_FOCUS); + addvalue = 24 * sWorld.getConfig(CONFIG_FLOAT_RATE_POWER_FOCUS); break; } case POWER_ENERGY: @@ -696,7 +696,7 @@ void Pet::GivePetXP(uint32 xp) uint32 level = getLevel(); // XP to money conversion processed in Player::RewardQuest - if(level >= sWorld.getConfig(CONFIG_MAX_PLAYER_LEVEL)) + if(level >= sWorld.getConfig(CONFIG_UINT32_MAX_PLAYER_LEVEL)) return; uint32 curXP = GetUInt32Value(UNIT_FIELD_PETEXPERIENCE); @@ -709,7 +709,7 @@ void Pet::GivePetXP(uint32 xp) return; } - while( newXP >= nextLvlXP && level < sWorld.getConfig(CONFIG_MAX_PLAYER_LEVEL) ) + while( newXP >= nextLvlXP && level < sWorld.getConfig(CONFIG_UINT32_MAX_PLAYER_LEVEL) ) { newXP -= nextLvlXP; diff --git a/src/game/PetAI.cpp b/src/game/PetAI.cpp index eab2688fa..7ddd62503 100644 --- a/src/game/PetAI.cpp +++ b/src/game/PetAI.cpp @@ -311,7 +311,7 @@ void PetAI::UpdateAI(const uint32 diff) bool PetAI::_isVisible(Unit *u) const { - return m_creature->IsWithinDist(u,sWorld.getRate(RATE_SIGHT_GUARDER)) + return m_creature->IsWithinDist(u,sWorld.getConfig(CONFIG_FLOAT_SIGHT_GUARDER)) && u->isVisibleForOrDetect(m_creature,m_creature,true); } diff --git a/src/game/PetitionsHandler.cpp b/src/game/PetitionsHandler.cpp index a87c2e699..552216319 100644 --- a/src/game/PetitionsHandler.cpp +++ b/src/game/PetitionsHandler.cpp @@ -110,9 +110,9 @@ void WorldSession::HandlePetitionBuyOpcode(WorldPacket & recv_data) else { // TODO: find correct opcode - if(_player->getLevel() < sWorld.getConfig(CONFIG_MAX_PLAYER_LEVEL)) + if(_player->getLevel() < sWorld.getConfig(CONFIG_UINT32_MAX_PLAYER_LEVEL)) { - SendNotification(LANG_ARENA_ONE_TOOLOW, sWorld.getConfig(CONFIG_MAX_PLAYER_LEVEL)); + SendNotification(LANG_ARENA_ONE_TOOLOW, sWorld.getConfig(CONFIG_UINT32_MAX_PLAYER_LEVEL)); return; } @@ -475,7 +475,7 @@ void WorldSession::HandlePetitionSignOpcode(WorldPacket & recv_data) return; // not let enemies sign guild charter - if(!sWorld.getConfig(CONFIG_ALLOW_TWO_SIDE_INTERACTION_GUILD) && GetPlayer()->GetTeam() != sObjectMgr.GetPlayerTeamByGUID(ownerguid)) + if(!sWorld.getConfig(CONFIG_BOOL_ALLOW_TWO_SIDE_INTERACTION_GUILD) && GetPlayer()->GetTeam() != sObjectMgr.GetPlayerTeamByGUID(ownerguid)) { if(type != 9) SendArenaTeamCommandResult(ERR_ARENA_TEAM_INVITE_SS, "", "", ERR_ARENA_TEAM_NOT_ALLIED); @@ -486,7 +486,7 @@ void WorldSession::HandlePetitionSignOpcode(WorldPacket & recv_data) if(type != 9) { - if(_player->getLevel() < sWorld.getConfig(CONFIG_MAX_PLAYER_LEVEL)) + if(_player->getLevel() < sWorld.getConfig(CONFIG_UINT32_MAX_PLAYER_LEVEL)) { SendArenaTeamCommandResult(ERR_ARENA_TEAM_CREATE_S, "", _player->GetName(), ERR_ARENA_TEAM_TARGET_TOO_LOW_S); return; @@ -622,7 +622,7 @@ void WorldSession::HandleOfferPetitionOpcode(WorldPacket & recv_data) sLog.outDebug("OFFER PETITION: type %u, GUID1 %u, to player id: %u", type, GUID_LOPART(petitionguid), GUID_LOPART(plguid)); - if (!sWorld.getConfig(CONFIG_ALLOW_TWO_SIDE_INTERACTION_GUILD) && GetPlayer()->GetTeam() != player->GetTeam() ) + if (!sWorld.getConfig(CONFIG_BOOL_ALLOW_TWO_SIDE_INTERACTION_GUILD) && GetPlayer()->GetTeam() != player->GetTeam() ) { if(type != 9) SendArenaTeamCommandResult(ERR_ARENA_TEAM_INVITE_SS, "", "", ERR_ARENA_TEAM_NOT_ALLIED); @@ -633,7 +633,7 @@ void WorldSession::HandleOfferPetitionOpcode(WorldPacket & recv_data) if(type != 9) { - if(player->getLevel() < sWorld.getConfig(CONFIG_MAX_PLAYER_LEVEL)) + if(player->getLevel() < sWorld.getConfig(CONFIG_UINT32_MAX_PLAYER_LEVEL)) { // player is too low level to join an arena team SendArenaTeamCommandResult(ERR_ARENA_TEAM_CREATE_S, player->GetName(), "", ERR_ARENA_TEAM_TARGET_TOO_LOW_S); @@ -768,9 +768,9 @@ void WorldSession::HandleTurnInPetitionOpcode(WorldPacket & recv_data) signs = 0; uint32 count; - //if(signs < sWorld.getConfig(CONFIG_MIN_PETITION_SIGNS)) + //if(signs < sWorld.getConfig(CONFIG_UINT32_MIN_PETITION_SIGNS)) if(type == 9) - count = sWorld.getConfig(CONFIG_MIN_PETITION_SIGNS); + count = sWorld.getConfig(CONFIG_UINT32_MIN_PETITION_SIGNS); else count = type - 1; if(signs < count) diff --git a/src/game/Player.cpp b/src/game/Player.cpp index a7ef3ebe8..589b4d83f 100644 --- a/src/game/Player.cpp +++ b/src/game/Player.cpp @@ -346,9 +346,9 @@ Player::Player (WorldSession *session): Unit(), m_achievementMgr(this), m_reputa m_areaUpdateId = 0; - m_nextSave = sWorld.getConfig(CONFIG_INTERVAL_SAVE); + m_nextSave = sWorld.getConfig(CONFIG_UINT32_INTERVAL_SAVE); - // randomize first save time in range [CONFIG_INTERVAL_SAVE] around [CONFIG_INTERVAL_SAVE] + // randomize first save time in range [CONFIG_UINT32_INTERVAL_SAVE] around [CONFIG_UINT32_INTERVAL_SAVE] // this must help in case next save after mass player load after server startup m_nextSave = urand(m_nextSave/2,m_nextSave*3/2); @@ -624,12 +624,12 @@ bool Player::Create( uint32 guidlow, const std::string& name, uint8 race, uint8 // set starting level uint32 start_level = getClass() != CLASS_DEATH_KNIGHT - ? sWorld.getConfig(CONFIG_START_PLAYER_LEVEL) - : sWorld.getConfig(CONFIG_START_HEROIC_PLAYER_LEVEL); + ? sWorld.getConfig(CONFIG_UINT32_START_PLAYER_LEVEL) + : sWorld.getConfig(CONFIG_UINT32_START_HEROIC_PLAYER_LEVEL); if (GetSession()->GetSecurity() >= SEC_MODERATOR) { - uint32 gm_level = sWorld.getConfig(CONFIG_START_GM_LEVEL); + uint32 gm_level = sWorld.getConfig(CONFIG_UINT32_START_GM_LEVEL); if(gm_level > start_level) start_level = gm_level; } @@ -638,9 +638,9 @@ bool Player::Create( uint32 guidlow, const std::string& name, uint8 race, uint8 InitRunes(); - SetUInt32Value (PLAYER_FIELD_COINAGE, sWorld.getConfig(CONFIG_START_PLAYER_MONEY)); - SetUInt32Value (PLAYER_FIELD_HONOR_CURRENCY, sWorld.getConfig(CONFIG_START_HONOR_POINTS)); - SetUInt32Value (PLAYER_FIELD_ARENA_CURRENCY, sWorld.getConfig(CONFIG_START_ARENA_POINTS)); + SetUInt32Value (PLAYER_FIELD_COINAGE, sWorld.getConfig(CONFIG_UINT32_START_PLAYER_MONEY)); + SetUInt32Value (PLAYER_FIELD_HONOR_CURRENCY, sWorld.getConfig(CONFIG_UINT32_START_HONOR_POINTS)); + SetUInt32Value (PLAYER_FIELD_ARENA_CURRENCY, sWorld.getConfig(CONFIG_UINT32_START_ARENA_POINTS)); // Played time m_Last_tick = time(NULL); @@ -901,15 +901,15 @@ int32 Player::getMaxTimer(MirrorTimerType timer) switch (timer) { case FATIGUE_TIMER: - if (GetSession()->GetSecurity() >= (AccountTypes)sWorld.getConfig(CONFIG_TIMERBAR_FATIGUE_GMLEVEL)) + if (GetSession()->GetSecurity() >= (AccountTypes)sWorld.getConfig(CONFIG_UINT32_TIMERBAR_FATIGUE_GMLEVEL)) return DISABLED_MIRROR_TIMER; - return sWorld.getConfig(CONFIG_TIMERBAR_FATIGUE_MAX)*IN_MILISECONDS; + return sWorld.getConfig(CONFIG_UINT32_TIMERBAR_FATIGUE_MAX)*IN_MILISECONDS; case BREATH_TIMER: { if (!isAlive() || HasAuraType(SPELL_AURA_WATER_BREATHING) || - GetSession()->GetSecurity() >= (AccountTypes)sWorld.getConfig(CONFIG_TIMERBAR_BREATH_GMLEVEL)) + GetSession()->GetSecurity() >= (AccountTypes)sWorld.getConfig(CONFIG_UINT32_TIMERBAR_BREATH_GMLEVEL)) return DISABLED_MIRROR_TIMER; - int32 UnderWaterTime = sWorld.getConfig(CONFIG_TIMERBAR_BREATH_MAX)*IN_MILISECONDS; + int32 UnderWaterTime = sWorld.getConfig(CONFIG_UINT32_TIMERBAR_BREATH_MAX)*IN_MILISECONDS; AuraList const& mModWaterBreathing = GetAurasByType(SPELL_AURA_MOD_WATER_BREATHING); for(AuraList::const_iterator i = mModWaterBreathing.begin(); i != mModWaterBreathing.end(); ++i) UnderWaterTime = uint32(UnderWaterTime * (100.0f + (*i)->GetModifier()->m_amount) / 100.0f); @@ -917,9 +917,9 @@ int32 Player::getMaxTimer(MirrorTimerType timer) } case FIRE_TIMER: { - if (!isAlive() || GetSession()->GetSecurity() >= (AccountTypes)sWorld.getConfig(CONFIG_TIMERBAR_FIRE_GMLEVEL)) + if (!isAlive() || GetSession()->GetSecurity() >= (AccountTypes)sWorld.getConfig(CONFIG_UINT32_TIMERBAR_FIRE_GMLEVEL)) return DISABLED_MIRROR_TIMER; - return sWorld.getConfig(CONFIG_TIMERBAR_FIRE_MAX)*IN_MILISECONDS; + return sWorld.getConfig(CONFIG_UINT32_TIMERBAR_FIRE_MAX)*IN_MILISECONDS; } default: return 0; @@ -1248,7 +1248,7 @@ void Player::Update( uint32 p_time ) time_t time_inn = time(NULL)-GetTimeInnEnter(); if (time_inn >= 10) //freeze update { - float bubble = 0.125f*sWorld.getRate(RATE_REST_INGAME); + float bubble = 0.125f*sWorld.getConfig(CONFIG_FLOAT_RATE_REST_INGAME); //speed collect rest bonus (section/in hour) SetRestBonus( float(GetRestBonus()+ time_inn*(GetUInt32Value(PLAYER_NEXT_LEVEL_XP)/72000)*bubble )); UpdateInnerTime(time(NULL)); @@ -1496,7 +1496,7 @@ bool Player::BuildEnumData( QueryResult * result, WorldPacket * p_data ) char_flags |= CHARACTER_FLAG_GHOST; if(atLoginFlags & AT_LOGIN_RENAME) char_flags |= CHARACTER_FLAG_RENAME; - if(sWorld.getConfig(CONFIG_DECLINED_NAMES_USED)) + if(sWorld.getConfig(CONFIG_BOOL_DECLINED_NAMES_USED)) { if(!fields[20].GetCppString().empty()) char_flags |= CHARACTER_FLAG_DECLINED; @@ -1964,7 +1964,7 @@ void Player::RewardRage( uint32 damage, uint32 weaponSpeedHitFactor, bool attack addRage *= 1.3f; } - addRage *= sWorld.getRate(RATE_POWER_RAGE_INCOME); + addRage *= sWorld.getConfig(CONFIG_FLOAT_RATE_POWER_RAGE_INCOME); ModifyPower(POWER_RAGE, uint32(addRage*10)); } @@ -2007,7 +2007,7 @@ void Player::Regenerate(Powers power, uint32 diff) case POWER_MANA: { bool recentCast = IsUnderLastManaUseEffect(); - float ManaIncreaseRate = sWorld.getRate(RATE_POWER_MANA); + float ManaIncreaseRate = sWorld.getConfig(CONFIG_FLOAT_RATE_POWER_MANA); if (recentCast) { // Mangos Updates Mana in intervals of 2s, which is correct @@ -2020,7 +2020,7 @@ void Player::Regenerate(Powers power, uint32 diff) } break; case POWER_RAGE: // Regenerate rage { - float RageDecreaseRate = sWorld.getRate(RATE_POWER_RAGE_LOSS); + float RageDecreaseRate = sWorld.getConfig(CONFIG_FLOAT_RATE_POWER_RAGE_LOSS); addvalue = 20 * RageDecreaseRate; // 2 rage by tick (= 2 seconds => 1 rage/sec) } break; case POWER_ENERGY: // Regenerate energy (rogue) @@ -2028,7 +2028,7 @@ void Player::Regenerate(Powers power, uint32 diff) break; case POWER_RUNIC_POWER: { - float RunicPowerDecreaseRate = sWorld.getRate(RATE_POWER_RUNICPOWER_LOSS); + float RunicPowerDecreaseRate = sWorld.getConfig(CONFIG_FLOAT_RATE_POWER_RUNICPOWER_LOSS); addvalue = 30 * RunicPowerDecreaseRate; // 3 RunicPower by tick } break; case POWER_RUNE: @@ -2084,7 +2084,7 @@ void Player::RegenerateHealth(uint32 diff) if (curValue >= maxValue) return; - float HealthIncreaseRate = sWorld.getRate(RATE_HEALTH); + float HealthIncreaseRate = sWorld.getConfig(CONFIG_FLOAT_RATE_HEALTH); float addvalue = 0.0f; @@ -2317,7 +2317,7 @@ void Player::SetGMVisible(bool on) bool Player::IsGroupVisibleFor(Player* p) const { - switch(sWorld.getConfig(CONFIG_GROUP_VISIBILITY)) + switch(sWorld.getConfig(CONFIG_UINT32_GROUP_VISIBILITY)) { default: return IsInSameGroupWith(p); case 1: return IsInSameRaidWith(p); @@ -2395,7 +2395,7 @@ void Player::GiveXP(uint32 xp, Unit* victim) uint32 level = getLevel(); // XP to money conversion processed in Player::RewardQuest - if(level >= sWorld.getConfig(CONFIG_MAX_PLAYER_LEVEL)) + if(level >= sWorld.getConfig(CONFIG_UINT32_MAX_PLAYER_LEVEL)) return; if(victim) @@ -2422,11 +2422,11 @@ void Player::GiveXP(uint32 xp, Unit* victim) uint32 nextLvlXP = GetUInt32Value(PLAYER_NEXT_LEVEL_XP); uint32 newXP = curXP + xp + rested_bonus_xp; - while( newXP >= nextLvlXP && level < sWorld.getConfig(CONFIG_MAX_PLAYER_LEVEL) ) + while( newXP >= nextLvlXP && level < sWorld.getConfig(CONFIG_UINT32_MAX_PLAYER_LEVEL) ) { newXP -= nextLvlXP; - if ( level < sWorld.getConfig(CONFIG_MAX_PLAYER_LEVEL) ) + if ( level < sWorld.getConfig(CONFIG_UINT32_MAX_PLAYER_LEVEL) ) GiveLevel(level + 1); level = getLevel(); @@ -2557,7 +2557,7 @@ void Player::InitStatsForLevel(bool reapplyMods) PlayerLevelInfo info; sObjectMgr.GetPlayerLevelInfo(getRace(),getClass(),getLevel(),&info); - SetUInt32Value(PLAYER_FIELD_MAX_LEVEL, sWorld.getConfig(CONFIG_MAX_PLAYER_LEVEL) ); + SetUInt32Value(PLAYER_FIELD_MAX_LEVEL, sWorld.getConfig(CONFIG_UINT32_MAX_PLAYER_LEVEL) ); SetUInt32Value(PLAYER_NEXT_LEVEL_XP, sObjectMgr.GetXPForLevel(getLevel())); // reset before any aura state sources (health set/aura apply) @@ -3297,7 +3297,7 @@ void Player::removeSpell(uint32 spell_id, bool disabled, bool learn_low_rank, bo if(sSpellMgr.IsPrimaryProfessionFirstRankSpell(spell_id)) { uint32 freeProfs = GetFreePrimaryProfessionPoints()+1; - if(freeProfs <= sWorld.getConfig(CONFIG_MAX_PRIMARY_TRADE_SKILL)) + if(freeProfs <= sWorld.getConfig(CONFIG_UINT32_MAX_PRIMARY_TRADE_SKILL)) SetFreePrimaryProfessions(freeProfs); } @@ -3690,7 +3690,7 @@ bool Player::resetTalents(bool no_cost) if(m_canTitanGrip) { m_canTitanGrip = false; - if(sWorld.getConfig(CONFIG_OFFHAND_CHECK_AT_TALENTS_RESET)) + if(sWorld.getConfig(CONFIG_BOOL_OFFHAND_CHECK_AT_TALENTS_RESET)) AutoUnequipOffhandIfNeed(); } @@ -4244,7 +4244,7 @@ void Player::ResurrectPlayer(float restore_percent, bool applySickness) //Characters from level 11-19 will suffer from one minute of sickness //for each level they are above 10. //Characters level 20 and up suffer from ten minutes of sickness. - int32 startLevel = sWorld.getConfig(CONFIG_DEATH_SICKNESS_LEVEL); + int32 startLevel = sWorld.getConfig(CONFIG_UINT32_DEATH_SICKNESS_LEVEL); if(int32(getLevel()) >= startLevel) { @@ -4718,7 +4718,7 @@ void Player::LeaveLFGChannel() void Player::UpdateDefense() { - uint32 defense_skill_gain = sWorld.getConfig(CONFIG_SKILL_GAIN_DEFENSE); + uint32 defense_skill_gain = sWorld.getConfig(CONFIG_UINT32_SKILL_GAIN_DEFENSE); if(UpdateSkill(SKILL_DEFENSE,defense_skill_gain)) { @@ -5125,12 +5125,12 @@ bool Player::UpdateSkill(uint32 skill_id, uint32 step) inline int SkillGainChance(uint32 SkillValue, uint32 GrayLevel, uint32 GreenLevel, uint32 YellowLevel) { if ( SkillValue >= GrayLevel ) - return sWorld.getConfig(CONFIG_SKILL_CHANCE_GREY)*10; + return sWorld.getConfig(CONFIG_UINT32_SKILL_CHANCE_GREY)*10; if ( SkillValue >= GreenLevel ) - return sWorld.getConfig(CONFIG_SKILL_CHANCE_GREEN)*10; + return sWorld.getConfig(CONFIG_UINT32_SKILL_CHANCE_GREEN)*10; if ( SkillValue >= YellowLevel ) - return sWorld.getConfig(CONFIG_SKILL_CHANCE_YELLOW)*10; - return sWorld.getConfig(CONFIG_SKILL_CHANCE_ORANGE)*10; + return sWorld.getConfig(CONFIG_UINT32_SKILL_CHANCE_YELLOW)*10; + return sWorld.getConfig(CONFIG_UINT32_SKILL_CHANCE_ORANGE)*10; } bool Player::UpdateCraftSkill(uint32 spellid) @@ -5153,7 +5153,7 @@ bool Player::UpdateCraftSkill(uint32 spellid) learnSpell(discoveredSpell,false); } - uint32 craft_skill_gain = sWorld.getConfig(CONFIG_SKILL_GAIN_CRAFTING); + uint32 craft_skill_gain = sWorld.getConfig(CONFIG_UINT32_SKILL_GAIN_CRAFTING); return UpdateSkillPro(_spell_idx->second->skillId, SkillGainChance(SkillValue, _spell_idx->second->max_value, @@ -5169,7 +5169,7 @@ bool Player::UpdateGatherSkill(uint32 SkillId, uint32 SkillValue, uint32 RedLeve { sLog.outDebug("UpdateGatherSkill(SkillId %d SkillLevel %d RedLevel %d)", SkillId, SkillValue, RedLevel); - uint32 gathering_skill_gain = sWorld.getConfig(CONFIG_SKILL_GAIN_GATHERING); + uint32 gathering_skill_gain = sWorld.getConfig(CONFIG_UINT32_SKILL_GAIN_GATHERING); // For skinning and Mining chance decrease with level. 1-74 - no decrease, 75-149 - 2 times, 225-299 - 8 times switch (SkillId) @@ -5180,15 +5180,15 @@ bool Player::UpdateGatherSkill(uint32 SkillId, uint32 SkillValue, uint32 RedLeve case SKILL_INSCRIPTION: return UpdateSkillPro(SkillId, SkillGainChance(SkillValue, RedLevel+100, RedLevel+50, RedLevel+25)*Multiplicator,gathering_skill_gain); case SKILL_SKINNING: - if( sWorld.getConfig(CONFIG_SKILL_CHANCE_SKINNING_STEPS)==0) + if( sWorld.getConfig(CONFIG_UINT32_SKILL_CHANCE_SKINNING_STEPS)==0) return UpdateSkillPro(SkillId, SkillGainChance(SkillValue, RedLevel+100, RedLevel+50, RedLevel+25)*Multiplicator,gathering_skill_gain); else - return UpdateSkillPro(SkillId, (SkillGainChance(SkillValue, RedLevel+100, RedLevel+50, RedLevel+25)*Multiplicator) >> (SkillValue/sWorld.getConfig(CONFIG_SKILL_CHANCE_SKINNING_STEPS)), gathering_skill_gain); + return UpdateSkillPro(SkillId, (SkillGainChance(SkillValue, RedLevel+100, RedLevel+50, RedLevel+25)*Multiplicator) >> (SkillValue/sWorld.getConfig(CONFIG_UINT32_SKILL_CHANCE_SKINNING_STEPS)), gathering_skill_gain); case SKILL_MINING: - if (sWorld.getConfig(CONFIG_SKILL_CHANCE_MINING_STEPS)==0) + if (sWorld.getConfig(CONFIG_UINT32_SKILL_CHANCE_MINING_STEPS)==0) return UpdateSkillPro(SkillId, SkillGainChance(SkillValue, RedLevel+100, RedLevel+50, RedLevel+25)*Multiplicator,gathering_skill_gain); else - return UpdateSkillPro(SkillId, (SkillGainChance(SkillValue, RedLevel+100, RedLevel+50, RedLevel+25)*Multiplicator) >> (SkillValue/sWorld.getConfig(CONFIG_SKILL_CHANCE_MINING_STEPS)),gathering_skill_gain); + return UpdateSkillPro(SkillId, (SkillGainChance(SkillValue, RedLevel+100, RedLevel+50, RedLevel+25)*Multiplicator) >> (SkillValue/sWorld.getConfig(CONFIG_UINT32_SKILL_CHANCE_MINING_STEPS)),gathering_skill_gain); } return false; } @@ -5201,7 +5201,7 @@ bool Player::UpdateFishingSkill() int32 chance = SkillValue < 75 ? 100 : 2500/(SkillValue-50); - uint32 gathering_skill_gain = sWorld.getConfig(CONFIG_SKILL_GAIN_GATHERING); + uint32 gathering_skill_gain = sWorld.getConfig(CONFIG_UINT32_SKILL_GAIN_GATHERING); return UpdateSkillPro(SKILL_FISHING,chance*10,gathering_skill_gain); } @@ -5277,7 +5277,7 @@ void Player::UpdateWeaponSkill (WeaponAttackType attType) if(m_form == FORM_TREE) return; // use weapon but not skill up - uint32 weapon_skill_gain = sWorld.getConfig(CONFIG_SKILL_GAIN_WEAPON); + uint32 weapon_skill_gain = sWorld.getConfig(CONFIG_UINT32_SKILL_GAIN_WEAPON); switch(attType) { @@ -5365,7 +5365,7 @@ void Player::UpdateSkillsForLevel() uint16 maxconfskill = sWorld.GetConfigMaxSkillValue(); uint32 maxSkill = GetMaxSkillValueForLevel(); - bool alwaysMaxSkill = sWorld.getConfig(CONFIG_ALWAYS_MAX_SKILL_FOR_LEVEL); + bool alwaysMaxSkill = sWorld.getConfig(CONFIG_BOOL_ALWAYS_MAX_SKILL_FOR_LEVEL); for(SkillStatusMap::iterator itr = mSkillStatus.begin(); itr != mSkillStatus.end(); ++itr) { @@ -5910,7 +5910,7 @@ void Player::CheckExploreSystem() else if(p->area_level > 0) { uint32 area = p->ID; - if (getLevel() >= sWorld.getConfig(CONFIG_MAX_PLAYER_LEVEL)) + if (getLevel() >= sWorld.getConfig(CONFIG_UINT32_MAX_PLAYER_LEVEL)) { SendExplorationExperience(area,0); } @@ -5920,7 +5920,7 @@ void Player::CheckExploreSystem() uint32 XP = 0; if (diff < -5) { - XP = uint32(sObjectMgr.GetBaseXP(getLevel()+5)*sWorld.getRate(RATE_XP_EXPLORE)); + XP = uint32(sObjectMgr.GetBaseXP(getLevel()+5)*sWorld.getConfig(CONFIG_FLOAT_RATE_XP_EXPLORE)); } else if (diff > 5) { @@ -5930,11 +5930,11 @@ void Player::CheckExploreSystem() else if (exploration_percent < 0) exploration_percent = 0; - XP = uint32(sObjectMgr.GetBaseXP(p->area_level)*exploration_percent/100*sWorld.getRate(RATE_XP_EXPLORE)); + XP = uint32(sObjectMgr.GetBaseXP(p->area_level)*exploration_percent/100*sWorld.getConfig(CONFIG_FLOAT_RATE_XP_EXPLORE)); } else { - XP = uint32(sObjectMgr.GetBaseXP(p->area_level)*sWorld.getRate(RATE_XP_EXPLORE)); + XP = uint32(sObjectMgr.GetBaseXP(p->area_level)*sWorld.getConfig(CONFIG_FLOAT_RATE_XP_EXPLORE)); } GiveXP( XP, NULL ); @@ -5993,7 +5993,7 @@ int32 Player::CalculateReputationGain(uint32 creatureOrQuestLevel, int32 rep, in { float percent = 100.0f; - float rate = for_quest ? sWorld.getRate(RATE_REPUTATION_LOWLEVEL_QUEST) : sWorld.getRate(RATE_REPUTATION_LOWLEVEL_KILL); + float rate = for_quest ? sWorld.getConfig(CONFIG_FLOAT_RATE_REPUTATION_LOWLEVEL_QUEST) : sWorld.getConfig(CONFIG_FLOAT_RATE_REPUTATION_LOWLEVEL_KILL); if (rate != 1.0f && creatureOrQuestLevel <= MaNGOS::XP::GetGrayLevel(getLevel())) percent *= rate; @@ -6008,7 +6008,7 @@ int32 Player::CalculateReputationGain(uint32 creatureOrQuestLevel, int32 rep, in if (percent <= 0.0f) return 0; - return int32(sWorld.getRate(RATE_REPUTATION_GAIN)*rep*percent/100.0f); + return int32(sWorld.getConfig(CONFIG_FLOAT_RATE_REPUTATION_GAIN)*rep*percent/100.0f); } //Calculates how many reputation points player gains in victim's enemy factions @@ -6240,7 +6240,7 @@ bool Player::RewardHonor(Unit *uVictim, uint32 groupsize, float honor) if (uVictim != NULL) { - honor *= sWorld.getRate(RATE_HONOR); + honor *= sWorld.getConfig(CONFIG_FLOAT_RATE_HONOR); honor *= (GetMaxPositiveAuraModifier(SPELL_AURA_MOD_HONOR_GAIN) + 100.0f)/100.0f; if(groupsize > 1) @@ -6272,26 +6272,26 @@ void Player::ModifyHonorPoints( int32 value ) { if(value < 0) { - if (GetHonorPoints() > sWorld.getConfig(CONFIG_MAX_HONOR_POINTS)) - SetUInt32Value(PLAYER_FIELD_HONOR_CURRENCY, sWorld.getConfig(CONFIG_MAX_HONOR_POINTS) + value); + if (GetHonorPoints() > sWorld.getConfig(CONFIG_UINT32_MAX_HONOR_POINTS)) + SetUInt32Value(PLAYER_FIELD_HONOR_CURRENCY, sWorld.getConfig(CONFIG_UINT32_MAX_HONOR_POINTS) + value); else SetUInt32Value(PLAYER_FIELD_HONOR_CURRENCY, GetHonorPoints() > uint32(-value) ? GetHonorPoints() + value : 0); } else - SetUInt32Value(PLAYER_FIELD_HONOR_CURRENCY, GetHonorPoints() < sWorld.getConfig(CONFIG_MAX_HONOR_POINTS) - value ? GetHonorPoints() + value : sWorld.getConfig(CONFIG_MAX_HONOR_POINTS)); + SetUInt32Value(PLAYER_FIELD_HONOR_CURRENCY, GetHonorPoints() < sWorld.getConfig(CONFIG_UINT32_MAX_HONOR_POINTS) - value ? GetHonorPoints() + value : sWorld.getConfig(CONFIG_UINT32_MAX_HONOR_POINTS)); } void Player::ModifyArenaPoints( int32 value ) { if(value < 0) { - if (GetArenaPoints() > sWorld.getConfig(CONFIG_MAX_ARENA_POINTS)) - SetUInt32Value(PLAYER_FIELD_ARENA_CURRENCY, sWorld.getConfig(CONFIG_MAX_ARENA_POINTS) + value); + if (GetArenaPoints() > sWorld.getConfig(CONFIG_UINT32_MAX_ARENA_POINTS)) + SetUInt32Value(PLAYER_FIELD_ARENA_CURRENCY, sWorld.getConfig(CONFIG_UINT32_MAX_ARENA_POINTS) + value); else SetUInt32Value(PLAYER_FIELD_ARENA_CURRENCY, GetArenaPoints() > uint32(-value) ? GetArenaPoints() + value : 0); } else - SetUInt32Value(PLAYER_FIELD_ARENA_CURRENCY, GetArenaPoints() < sWorld.getConfig(CONFIG_MAX_ARENA_POINTS) - value ? GetArenaPoints() + value : sWorld.getConfig(CONFIG_MAX_ARENA_POINTS)); + SetUInt32Value(PLAYER_FIELD_ARENA_CURRENCY, GetArenaPoints() < sWorld.getConfig(CONFIG_UINT32_MAX_ARENA_POINTS) - value ? GetArenaPoints() + value : sWorld.getConfig(CONFIG_UINT32_MAX_ARENA_POINTS)); } uint32 Player::GetGuildIdFromDB(uint64 guid) @@ -6408,7 +6408,7 @@ void Player::UpdateZone(uint32 newZone, uint32 newArea) { SendInitWorldStates(newZone, newArea); // only if really enters to new zone, not just area change, works strange... - if (sWorld.getConfig(CONFIG_WEATHER)) + if (sWorld.getConfig(CONFIG_BOOL_WEATHER)) { if(Weather *wth = sWorld.FindWeather(zone->ID)) wth->SendWeatherUpdateToPlayer(this); @@ -7644,7 +7644,7 @@ void Player::SendLoot(uint64 guid, LootType loot_type) loot->FillLoot(0, LootTemplates_Creature, this, false); // It may need a better formula // Now it works like this: lvl10: ~6copper, lvl70: ~9silver - bones->loot.gold = (uint32)( urand(50, 150) * 0.016f * pow( ((float)pLevel)/5.76f, 2.5f) * sWorld.getRate(RATE_DROP_MONEY) ); + bones->loot.gold = (uint32)( urand(50, 150) * 0.016f * pow( ((float)pLevel)/5.76f, 2.5f) * sWorld.getConfig(CONFIG_FLOAT_RATE_DROP_MONEY) ); } if (bones->lootRecipient != this) @@ -7682,7 +7682,7 @@ void Player::SendLoot(uint64 guid, LootType loot_type) // Generate extra money for pick pocket loot const uint32 a = urand(0, creature->getLevel()/2); const uint32 b = urand(0, getLevel()/2); - loot->gold = uint32(10 * (a + b) * sWorld.getRate(RATE_DROP_MONEY)); + loot->gold = uint32(10 * (a + b) * sWorld.getConfig(CONFIG_FLOAT_RATE_DROP_MONEY)); } } else @@ -7903,9 +7903,9 @@ void Player::SendInitWorldStates(uint32 zoneid, uint32 areaid) data << uint32(0x8d4) << uint32(0x0); // 5 data << uint32(0x8d3) << uint32(0x0); // 6 // 7 1 - Arena season in progress, 0 - end of season - data << uint32(0xC77) << uint32(sWorld.getConfig(CONFIG_ARENA_SEASON_IN_PROGRESS)); + data << uint32(0xC77) << uint32(sWorld.getConfig(CONFIG_BOOL_ARENA_SEASON_IN_PROGRESS)); // 8 Arena season id - data << uint32(0xF3D) << uint32(sWorld.getConfig(CONFIG_ARENA_SEASON_ID)); + data << uint32(0xF3D) << uint32(sWorld.getConfig(CONFIG_UINT32_ARENA_SEASON_ID)); if(mapid == 530) // Outland { data << uint32(0x9bf) << uint32(0x0); // 7 @@ -12857,7 +12857,7 @@ bool Player::CanSeeStartQuest( Quest const *pQuest ) SatisfyQuestPreviousQuest( pQuest, false ) && SatisfyQuestNextChain( pQuest, false ) && SatisfyQuestPrevChain( pQuest, false ) && SatisfyQuestDay( pQuest, false ) ) { - return getLevel() + sWorld.getConfig(CONFIG_QUEST_HIGH_LEVEL_HIDE_DIFF) >= pQuest->GetMinLevel(); + return getLevel() + sWorld.getConfig(CONFIG_UINT32_QUEST_HIGH_LEVEL_HIDE_DIFF) >= pQuest->GetMinLevel(); } return false; @@ -13226,13 +13226,13 @@ void Player::RewardQuest( Quest const *pQuest, uint32 reward, Object* questGiver QuestStatusData& q_status = mQuestStatus[quest_id]; // Not give XP in case already completed once repeatable quest - uint32 XP = q_status.m_rewarded ? 0 : uint32(pQuest->XPValue( this )*sWorld.getRate(RATE_XP_QUEST)); + uint32 XP = q_status.m_rewarded ? 0 : uint32(pQuest->XPValue( this )*sWorld.getConfig(CONFIG_FLOAT_RATE_XP_QUEST)); - if (getLevel() < sWorld.getConfig(CONFIG_MAX_PLAYER_LEVEL)) + if (getLevel() < sWorld.getConfig(CONFIG_UINT32_MAX_PLAYER_LEVEL)) GiveXP( XP , NULL ); else { - uint32 money = uint32(pQuest->GetRewMoneyMaxLevel() * sWorld.getRate(RATE_DROP_MONEY)); + uint32 money = uint32(pQuest->GetRewMoneyMaxLevel() * sWorld.getConfig(CONFIG_FLOAT_RATE_DROP_MONEY)); ModifyMoney( money ); GetAchievementMgr().UpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_MONEY_FROM_QUEST_REWARD, money); } @@ -14301,7 +14301,7 @@ void Player::SendQuestReward( Quest const *pQuest, uint32 XP, Object * questGive WorldPacket data( SMSG_QUESTGIVER_QUEST_COMPLETE, (4+4+4+4+4) ); data << uint32(questid); - if ( getLevel() < sWorld.getConfig(CONFIG_MAX_PLAYER_LEVEL) ) + if ( getLevel() < sWorld.getConfig(CONFIG_UINT32_MAX_PLAYER_LEVEL) ) { data << uint32(XP); data << uint32(pQuest->GetRewOrReqMoney()); @@ -14309,7 +14309,7 @@ void Player::SendQuestReward( Quest const *pQuest, uint32 XP, Object * questGive else { data << uint32(0); - data << uint32(pQuest->GetRewOrReqMoney() + int32(pQuest->GetRewMoneyMaxLevel() * sWorld.getRate(RATE_DROP_MONEY))); + data << uint32(pQuest->GetRewOrReqMoney() + int32(pQuest->GetRewMoneyMaxLevel() * sWorld.getConfig(CONFIG_FLOAT_RATE_DROP_MONEY))); } data << uint32(10*MaNGOS::Honor::hk_honor_at_level(getLevel(), pQuest->GetRewHonorAddition())); @@ -14730,8 +14730,8 @@ bool Player::LoadFromDB( uint32 guid, SqlQueryHolder *holder ) _LoadArenaTeamInfo(holder->GetResult(PLAYER_LOGIN_QUERY_LOADARENAINFO)); uint32 arena_currency = fields[40].GetUInt32(); - if (arena_currency > sWorld.getConfig(CONFIG_MAX_ARENA_POINTS)) - arena_currency = sWorld.getConfig(CONFIG_MAX_ARENA_POINTS); + if (arena_currency > sWorld.getConfig(CONFIG_UINT32_MAX_ARENA_POINTS)) + arena_currency = sWorld.getConfig(CONFIG_UINT32_MAX_ARENA_POINTS); SetUInt32Value(PLAYER_FIELD_ARENA_CURRENCY, arena_currency); @@ -14926,8 +14926,8 @@ bool Player::LoadFromDB( uint32 guid, SqlQueryHolder *holder ) if(time_diff > 0) { float bubble = fields[24].GetUInt32() > 0 - ? bubble1*sWorld.getRate(RATE_REST_OFFLINE_IN_TAVERN_OR_CITY) - : bubble0*sWorld.getRate(RATE_REST_OFFLINE_IN_WILDERNESS); + ? bubble1*sWorld.getConfig(CONFIG_FLOAT_RATE_REST_OFFLINE_IN_TAVERN_OR_CITY) + : bubble0*sWorld.getConfig(CONFIG_FLOAT_RATE_REST_OFFLINE_IN_WILDERNESS); SetRestBonus(GetRestBonus()+ time_diff*((float)GetUInt32Value(PLAYER_NEXT_LEVEL_XP)/72000)*bubble); } @@ -15135,7 +15135,7 @@ bool Player::LoadFromDB( uint32 guid, SqlQueryHolder *holder ) // GM state if(GetSession()->GetSecurity() > SEC_PLAYER) { - switch(sWorld.getConfig(CONFIG_GM_LOGIN_STATE)) + switch(sWorld.getConfig(CONFIG_UINT32_GM_LOGIN_STATE)) { default: case 0: break; // disable @@ -15146,7 +15146,7 @@ bool Player::LoadFromDB( uint32 guid, SqlQueryHolder *holder ) break; } - switch(sWorld.getConfig(CONFIG_GM_VISIBLE_STATE)) + switch(sWorld.getConfig(CONFIG_UINT32_GM_VISIBLE_STATE)) { default: case 0: SetGMVisible(false); break; // invisible @@ -15157,7 +15157,7 @@ bool Player::LoadFromDB( uint32 guid, SqlQueryHolder *holder ) break; } - switch(sWorld.getConfig(CONFIG_GM_ACCEPT_TICKETS)) + switch(sWorld.getConfig(CONFIG_UINT32_GM_ACCEPT_TICKETS)) { default: case 0: break; // disable @@ -15168,7 +15168,7 @@ bool Player::LoadFromDB( uint32 guid, SqlQueryHolder *holder ) break; } - switch(sWorld.getConfig(CONFIG_GM_CHAT)) + switch(sWorld.getConfig(CONFIG_UINT32_GM_CHAT)) { default: case 0: break; // disable @@ -15179,7 +15179,7 @@ bool Player::LoadFromDB( uint32 guid, SqlQueryHolder *holder ) break; } - switch(sWorld.getConfig(CONFIG_GM_WISPERING_TO)) + switch(sWorld.getConfig(CONFIG_UINT32_GM_WISPERING_TO)) { default: case 0: break; // disable @@ -16161,9 +16161,9 @@ bool Player::_LoadHomeBind(QueryResult *result) void Player::SaveToDB() { - // we should assure this: assert((m_nextSave != sWorld.getConfig(CONFIG_INTERVAL_SAVE))); + // we should assure this: assert((m_nextSave != sWorld.getConfig(CONFIG_UINT32_INTERVAL_SAVE))); // delay auto save at any saves (manual, in code, or autosave) - m_nextSave = sWorld.getConfig(CONFIG_INTERVAL_SAVE); + m_nextSave = sWorld.getConfig(CONFIG_UINT32_INTERVAL_SAVE); //lets allow only players in world to be saved if(IsBeingTeleportedFar()) @@ -16725,7 +16725,7 @@ void Player::UpdateSpeakTime() time_t current = time (NULL); if(m_speakTime > current) { - uint32 max_count = sWorld.getConfig(CONFIG_CHATFLOOD_MESSAGE_COUNT); + uint32 max_count = sWorld.getConfig(CONFIG_UINT32_CHATFLOOD_MESSAGE_COUNT); if(!max_count) return; @@ -16733,7 +16733,7 @@ void Player::UpdateSpeakTime() if(m_speakCount >= max_count) { // prevent overwrite mute time, if message send just before mutes set, for example. - time_t new_mute = current + sWorld.getConfig(CONFIG_CHATFLOOD_MUTE_TIME); + time_t new_mute = current + sWorld.getConfig(CONFIG_UINT32_CHATFLOOD_MUTE_TIME); if(GetSession()->m_muteTime < new_mute) GetSession()->m_muteTime = new_mute; @@ -16743,7 +16743,7 @@ void Player::UpdateSpeakTime() else m_speakCount = 0; - m_speakTime = current + sWorld.getConfig(CONFIG_CHATFLOOD_MESSAGE_DELAY); + m_speakTime = current + sWorld.getConfig(CONFIG_UINT32_CHATFLOOD_MESSAGE_DELAY); } bool Player::CanSpeak() const @@ -17129,21 +17129,21 @@ void Player::Say(const std::string& text, const uint32 language) { WorldPacket data(SMSG_MESSAGECHAT, 200); BuildPlayerChat(&data, CHAT_MSG_SAY, text, language); - SendMessageToSetInRange(&data,sWorld.getRate(RATE_LISTEN_RANGE_SAY),true); + SendMessageToSetInRange(&data,sWorld.getConfig(CONFIG_FLOAT_LISTEN_RANGE_SAY),true); } void Player::Yell(const std::string& text, const uint32 language) { WorldPacket data(SMSG_MESSAGECHAT, 200); BuildPlayerChat(&data, CHAT_MSG_YELL, text, language); - SendMessageToSetInRange(&data,sWorld.getRate(RATE_LISTEN_RANGE_YELL),true); + SendMessageToSetInRange(&data,sWorld.getConfig(CONFIG_FLOAT_LISTEN_RANGE_YELL),true); } void Player::TextEmote(const std::string& text) { WorldPacket data(SMSG_MESSAGECHAT, 200); BuildPlayerChat(&data, CHAT_MSG_EMOTE, text, LANG_UNIVERSAL); - SendMessageToSetInRange(&data,sWorld.getRate(RATE_LISTEN_RANGE_TEXTEMOTE),true, !sWorld.getConfig(CONFIG_ALLOW_TWO_SIDE_INTERACTION_CHAT) ); + SendMessageToSetInRange(&data,sWorld.getConfig(CONFIG_FLOAT_LISTEN_RANGE_TEXTEMOTE),true, !sWorld.getConfig(CONFIG_BOOL_ALLOW_TWO_SIDE_INTERACTION_CHAT) ); } void Player::Whisper(const std::string& text, uint32 language,uint64 receiver) @@ -17527,7 +17527,7 @@ void Player::LeaveAllArenaTeams(uint64 guid) void Player::SetRestBonus (float rest_bonus_new) { // Prevent resting on max level - if(getLevel() >= sWorld.getConfig(CONFIG_MAX_PLAYER_LEVEL)) + if(getLevel() >= sWorld.getConfig(CONFIG_UINT32_MAX_PLAYER_LEVEL)) rest_bonus_new = 0; if(rest_bonus_new < 0) @@ -18604,7 +18604,7 @@ void Player::LeaveBattleground(bool teleportToEntryPoint) bg->RemovePlayerAtLeave(GetGUID(), teleportToEntryPoint, true); // call after remove to be sure that player resurrected for correct cast - if( bg->isBattleGround() && !isGameMaster() && sWorld.getConfig(CONFIG_BATTLEGROUND_CAST_DESERTER) ) + if( bg->isBattleGround() && !isGameMaster() && sWorld.getConfig(CONFIG_BOOL_BATTLEGROUND_CAST_DESERTER) ) { if( bg->GetStatus() == STATUS_IN_PROGRESS || bg->GetStatus() == STATUS_WAIT_JOIN ) { @@ -18702,7 +18702,7 @@ bool Player::IsVisibleInGridForPlayer( Player* pl ) const if(corpse) { // 20 - aggro distance for same level, 25 - max additional distance if player level less that creature level - if(corpse->IsWithinDistInMap(this,(20+25)*sWorld.getRate(RATE_CREATURE_AGGRO))) + if(corpse->IsWithinDistInMap(this,(20+25)*sWorld.getConfig(CONFIG_FLOAT_RATE_CREATURE_AGGRO))) return true; } } @@ -18845,7 +18845,7 @@ template void Player::UpdateVisibilityOf(WorldObject const* viewPoint, DynamicOb void Player::InitPrimaryProfessions() { - SetFreePrimaryProfessions(sWorld.getConfig(CONFIG_MAX_PRIMARY_TRADE_SKILL)); + SetFreePrimaryProfessions(sWorld.getConfig(CONFIG_UINT32_MAX_PRIMARY_TRADE_SKILL)); } void Player::SendComboPoints() @@ -19839,7 +19839,7 @@ void Player::RewardPlayerAndGroupAtEvent(uint32 creature_id, WorldObject* pRewar bool Player::IsAtGroupRewardDistance(WorldObject const* pRewardSource) const { - if (pRewardSource->IsWithinDistInMap(this,sWorld.getRate(RATE_GROUP_XP_DISTANCE))) + if (pRewardSource->IsWithinDistInMap(this,sWorld.getConfig(CONFIG_FLOAT_GROUP_XP_DISTANCE))) return true; if (isAlive()) @@ -19849,7 +19849,7 @@ bool Player::IsAtGroupRewardDistance(WorldObject const* pRewardSource) const if (!corpse) return false; - return pRewardSource->IsWithinDistInMap(corpse,sWorld.getRate(RATE_GROUP_XP_DISTANCE)); + return pRewardSource->IsWithinDistInMap(corpse,sWorld.getConfig(CONFIG_FLOAT_GROUP_XP_DISTANCE)); } uint32 Player::GetBaseWeaponSkillValue (WeaponAttackType attType) const @@ -19938,8 +19938,8 @@ void Player::UpdateAreaDependentAuras( uint32 newArea ) uint32 Player::GetCorpseReclaimDelay(bool pvp) const { - if ((pvp && !sWorld.getConfig(CONFIG_DEATH_CORPSE_RECLAIM_DELAY_PVP)) || - (!pvp && !sWorld.getConfig(CONFIG_DEATH_CORPSE_RECLAIM_DELAY_PVE) )) + if ((pvp && !sWorld.getConfig(CONFIG_BOOL_DEATH_CORPSE_RECLAIM_DELAY_PVP)) || + (!pvp && !sWorld.getConfig(CONFIG_BOOL_DEATH_CORPSE_RECLAIM_DELAY_PVE) )) { return copseReclaimDelay[0]; } @@ -19954,8 +19954,8 @@ void Player::UpdateCorpseReclaimDelay() { bool pvp = m_ExtraFlags & PLAYER_EXTRA_PVP_DEATH; - if ((pvp && !sWorld.getConfig(CONFIG_DEATH_CORPSE_RECLAIM_DELAY_PVP)) || - (!pvp && !sWorld.getConfig(CONFIG_DEATH_CORPSE_RECLAIM_DELAY_PVE) )) + if ((pvp && !sWorld.getConfig(CONFIG_BOOL_DEATH_CORPSE_RECLAIM_DELAY_PVP)) || + (!pvp && !sWorld.getConfig(CONFIG_BOOL_DEATH_CORPSE_RECLAIM_DELAY_PVE) )) return; time_t now = time(NULL); @@ -19987,8 +19987,8 @@ void Player::SendCorpseReclaimDelay(bool load) bool pvp = corpse->GetType()==CORPSE_RESURRECTABLE_PVP; uint32 count; - if( pvp && sWorld.getConfig(CONFIG_DEATH_CORPSE_RECLAIM_DELAY_PVP) || - !pvp && sWorld.getConfig(CONFIG_DEATH_CORPSE_RECLAIM_DELAY_PVE) ) + if( pvp && sWorld.getConfig(CONFIG_BOOL_DEATH_CORPSE_RECLAIM_DELAY_PVP) || + !pvp && sWorld.getConfig(CONFIG_BOOL_DEATH_CORPSE_RECLAIM_DELAY_PVE) ) { count = uint32(m_deathExpireTime-corpse->GetGhostTime())/DEATH_EXPIRE_STEP; if(count>=MAX_DEATH_COUNT) @@ -20505,7 +20505,7 @@ uint32 Player::CalculateTalentsPoints() const uint32 base_talent = getLevel() < 10 ? 0 : getLevel()-9; if(getClass() != CLASS_DEATH_KNIGHT) - return uint32(base_talent * sWorld.getRate(RATE_TALENT)); + return uint32(base_talent * sWorld.getConfig(CONFIG_FLOAT_RATE_TALENT)); uint32 talentPointsForLevel = getLevel() < 56 ? 0 : getLevel() - 55; talentPointsForLevel += m_questRewardTalentCount; @@ -20513,7 +20513,7 @@ uint32 Player::CalculateTalentsPoints() const if(talentPointsForLevel > base_talent) talentPointsForLevel = base_talent; - return uint32(talentPointsForLevel * sWorld.getRate(RATE_TALENT)); + return uint32(talentPointsForLevel * sWorld.getConfig(CONFIG_FLOAT_RATE_TALENT)); } bool Player::IsKnowHowFlyIn(uint32 mapid, uint32 zone) const @@ -20615,7 +20615,7 @@ void Player::_LoadSkills(QueryResult *result) // special settings if(getClass()==CLASS_DEATH_KNIGHT) { - uint32 base_level = std::min(getLevel(),sWorld.getConfig (CONFIG_START_HEROIC_PLAYER_LEVEL)); + uint32 base_level = std::min(getLevel(),sWorld.getConfig (CONFIG_UINT32_START_HEROIC_PLAYER_LEVEL)); if(base_level < 1) base_level = 1; uint32 base_skill = (base_level-1)*5; // 270 at starting level 55 @@ -20740,7 +20740,7 @@ void Player::HandleFall(MovementInfo const& movementInfo) if(damageperc >0 ) { - uint32 damage = (uint32)(damageperc * GetMaxHealth()*sWorld.getRate(RATE_DAMAGE_FALL)); + uint32 damage = (uint32)(damageperc * GetMaxHealth()*sWorld.getConfig(CONFIG_FLOAT_RATE_DAMAGE_FALL)); float height = movementInfo.GetPos()->z; UpdateGroundPositionZ(movementInfo.GetPos()->x, movementInfo.GetPos()->y, height); diff --git a/src/game/PointMovementGenerator.cpp b/src/game/PointMovementGenerator.cpp index c865c0296..d4572eaeb 100644 --- a/src/game/PointMovementGenerator.cpp +++ b/src/game/PointMovementGenerator.cpp @@ -122,5 +122,5 @@ void AssistanceMovementGenerator::Finalize(Unit &unit) ((Creature*)&unit)->SetNoCallAssistance(false); ((Creature*)&unit)->CallAssistance(); if (unit.isAlive()) - unit.GetMotionMaster()->MoveSeekAssistanceDistract(sWorld.getConfig(CONFIG_CREATURE_FAMILY_ASSISTANCE_DELAY)); + unit.GetMotionMaster()->MoveSeekAssistanceDistract(sWorld.getConfig(CONFIG_UINT32_CREATURE_FAMILY_ASSISTANCE_DELAY)); } diff --git a/src/game/QueryHandler.cpp b/src/game/QueryHandler.cpp index 58928d211..41d934a04 100644 --- a/src/game/QueryHandler.cpp +++ b/src/game/QueryHandler.cpp @@ -61,7 +61,7 @@ void WorldSession::SendNameQueryOpcode(Player *p) void WorldSession::SendNameQueryOpcodeFromDB(uint64 guid) { CharacterDatabase.AsyncPQuery(&WorldSession::SendNameQueryOpcodeFromDBCallBack, GetAccountId(), - !sWorld.getConfig(CONFIG_DECLINED_NAMES_USED) ? + !sWorld.getConfig(CONFIG_BOOL_DECLINED_NAMES_USED) ? // ------- Query Without Declined Names -------- // 0 1 2 3 4 "SELECT guid, name, race, gender, class " @@ -111,7 +111,7 @@ void WorldSession::SendNameQueryOpcodeFromDBCallBack(QueryResult *result, uint32 data << uint8(pClass); // class // if the first declined name field (5) is empty, the rest must be too - if(sWorld.getConfig(CONFIG_DECLINED_NAMES_USED) && fields[5].GetCppString() != "") + if(sWorld.getConfig(CONFIG_BOOL_DECLINED_NAMES_USED) && fields[5].GetCppString() != "") { data << uint8(1); // is declined for(int i = 5; i < MAX_DECLINED_NAME_CASES+5; ++i) diff --git a/src/game/QuestDef.cpp b/src/game/QuestDef.cpp index 44a67cf1e..af5ef628c 100644 --- a/src/game/QuestDef.cpp +++ b/src/game/QuestDef.cpp @@ -260,5 +260,5 @@ int32 Quest::GetRewOrReqMoney() const if(RewOrReqMoney <=0) return RewOrReqMoney; - return int32(RewOrReqMoney * sWorld.getRate(RATE_DROP_MONEY)); + return int32(RewOrReqMoney * sWorld.getConfig(CONFIG_FLOAT_RATE_DROP_MONEY)); } diff --git a/src/game/QuestHandler.cpp b/src/game/QuestHandler.cpp index 3148047a7..fdac5cbf4 100644 --- a/src/game/QuestHandler.cpp +++ b/src/game/QuestHandler.cpp @@ -608,7 +608,7 @@ uint32 WorldSession::getDialogStatus(Player *pPlayer, Object* questgiver, uint32 { if ( pQuest->IsAutoComplete() || (pQuest->IsRepeatable() && pPlayer->getQuestStatusMap()[quest_id].m_rewarded)) result2 = DIALOG_STATUS_REWARD_REP; - else if (pPlayer->getLevel() <= pPlayer->GetQuestLevelForPlayer(pQuest) + sWorld.getConfig(CONFIG_QUEST_LOW_LEVEL_HIDE_DIFF) ) + else if (pPlayer->getLevel() <= pPlayer->GetQuestLevelForPlayer(pQuest) + sWorld.getConfig(CONFIG_UINT32_QUEST_LOW_LEVEL_HIDE_DIFF) ) { if (pQuest->HasFlag(QUEST_FLAGS_DAILY)) result2 = DIALOG_STATUS_AVAILABLE_REP; diff --git a/src/game/SkillDiscovery.cpp b/src/game/SkillDiscovery.cpp index 9ff37ef85..6f928a9db 100644 --- a/src/game/SkillDiscovery.cpp +++ b/src/game/SkillDiscovery.cpp @@ -207,7 +207,7 @@ uint32 GetSkillDiscoverySpell(uint32 skillId, uint32 spellId, Player* player) { for(SkillDiscoveryList::const_iterator item_iter = tab->second.begin(); item_iter != tab->second.end(); ++item_iter) { - if (roll_chance_f(item_iter->chance * sWorld.getRate(RATE_SKILL_DISCOVERY)) && + if (roll_chance_f(item_iter->chance * sWorld.getConfig(CONFIG_FLOAT_RATE_SKILL_DISCOVERY)) && item_iter->reqSkillValue <= skillvalue && !player->HasSpell(item_iter->spellId)) return item_iter->spellId; @@ -225,7 +225,7 @@ uint32 GetSkillDiscoverySpell(uint32 skillId, uint32 spellId, Player* player) { for(SkillDiscoveryList::const_iterator item_iter = tab->second.begin(); item_iter != tab->second.end(); ++item_iter) { - if (roll_chance_f(item_iter->chance * sWorld.getRate(RATE_SKILL_DISCOVERY)) && + if (roll_chance_f(item_iter->chance * sWorld.getConfig(CONFIG_FLOAT_RATE_SKILL_DISCOVERY)) && item_iter->reqSkillValue <= skillvalue && !player->HasSpell(item_iter->spellId)) return item_iter->spellId; diff --git a/src/game/SocialMgr.cpp b/src/game/SocialMgr.cpp index 43734a305..3173710c1 100644 --- a/src/game/SocialMgr.cpp +++ b/src/game/SocialMgr.cpp @@ -190,8 +190,8 @@ void SocialMgr::GetFriendInfo(Player *player, uint32 friendGUID, FriendInfo &fri uint32 team = player->GetTeam(); AccountTypes security = player->GetSession()->GetSecurity(); - bool allowTwoSideWhoList = sWorld.getConfig(CONFIG_ALLOW_TWO_SIDE_WHO_LIST); - AccountTypes gmLevelInWhoList = AccountTypes (sWorld.getConfig(CONFIG_GM_LEVEL_IN_WHO_LIST)); + bool allowTwoSideWhoList = sWorld.getConfig(CONFIG_BOOL_ALLOW_TWO_SIDE_WHO_LIST); + AccountTypes gmLevelInWhoList = AccountTypes (sWorld.getConfig(CONFIG_UINT32_GM_LEVEL_IN_WHO_LIST)); PlayerSocialMap::iterator itr = player->GetSocial()->m_playerSocialMap.find(friendGUID); if(itr != player->GetSocial()->m_playerSocialMap.end()) @@ -273,8 +273,8 @@ void SocialMgr::BroadcastToFriendListers(Player *player, WorldPacket *packet) uint32 team = player->GetTeam(); AccountTypes security = player->GetSession()->GetSecurity(); uint32 guid = player->GetGUIDLow(); - AccountTypes gmLevelInWhoList = AccountTypes(sWorld.getConfig(CONFIG_GM_LEVEL_IN_WHO_LIST)); - bool allowTwoSideWhoList = sWorld.getConfig(CONFIG_ALLOW_TWO_SIDE_WHO_LIST); + AccountTypes gmLevelInWhoList = AccountTypes(sWorld.getConfig(CONFIG_UINT32_GM_LEVEL_IN_WHO_LIST)); + bool allowTwoSideWhoList = sWorld.getConfig(CONFIG_BOOL_ALLOW_TWO_SIDE_WHO_LIST); for(SocialMap::const_iterator itr = m_socialMap.begin(); itr != m_socialMap.end(); ++itr) { diff --git a/src/game/Spell.cpp b/src/game/Spell.cpp index eec3f3e1c..cdca126c4 100644 --- a/src/game/Spell.cpp +++ b/src/game/Spell.cpp @@ -3821,7 +3821,7 @@ SpellCastResult Spell::CheckOrTakeRunePower(bool take) { // you can gain some runic power when use runes float rp = float(src->runePowerGain); - rp *= sWorld.getRate(RATE_POWER_RUNICPOWER_INCOME); + rp *= sWorld.getConfig(CONFIG_FLOAT_RATE_POWER_RUNICPOWER_INCOME); plr->ModifyPower(POWER_RUNIC_POWER, (int32)rp); } diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp index fa9a70fce..71ca6d362 100644 --- a/src/game/SpellAuras.cpp +++ b/src/game/SpellAuras.cpp @@ -1032,7 +1032,7 @@ void Aura::_AddAura() { SetAura(false); SetAuraFlags((1 << GetEffIndex()) | AFLAG_NOT_CASTER | ((GetAuraMaxDuration() > 0) ? AFLAG_DURATION : AFLAG_NONE) | (IsPositive() ? AFLAG_POSITIVE : AFLAG_NEGATIVE)); - SetAuraLevel(caster ? caster->getLevel() : sWorld.getConfig(CONFIG_MAX_PLAYER_LEVEL)); + SetAuraLevel(caster ? caster->getLevel() : sWorld.getConfig(CONFIG_UINT32_MAX_PLAYER_LEVEL)); SendAuraUpdate(false); } diff --git a/src/game/SpellEffects.cpp b/src/game/SpellEffects.cpp index b5f29ac85..1a511d15b 100644 --- a/src/game/SpellEffects.cpp +++ b/src/game/SpellEffects.cpp @@ -4106,7 +4106,7 @@ void Spell::EffectEnchantItemPerm(uint32 effect_idx) if (!item_owner) return; - if (item_owner!=p_caster && p_caster->GetSession()->GetSecurity() > SEC_PLAYER && sWorld.getConfig(CONFIG_GM_LOG_TRADE) ) + if (item_owner!=p_caster && p_caster->GetSession()->GetSecurity() > SEC_PLAYER && sWorld.getConfig(CONFIG_BOOL_GM_LOG_TRADE) ) { sLog.outCommand(p_caster->GetSession()->GetAccountId(),"GM %s (Account: %u) enchanting(perm): %s (Entry: %d) for player: %s (Account: %u)", p_caster->GetName(),p_caster->GetSession()->GetAccountId(), @@ -4168,7 +4168,7 @@ void Spell::EffectEnchantItemPrismatic(uint32 effect_idx) if (!item_owner) return; - if (item_owner!=p_caster && p_caster->GetSession()->GetSecurity() > SEC_PLAYER && sWorld.getConfig(CONFIG_GM_LOG_TRADE) ) + if (item_owner!=p_caster && p_caster->GetSession()->GetSecurity() > SEC_PLAYER && sWorld.getConfig(CONFIG_BOOL_GM_LOG_TRADE) ) { sLog.outCommand(p_caster->GetSession()->GetAccountId(),"GM %s (Account: %u) enchanting(perm): %s (Entry: %d) for player: %s (Account: %u)", p_caster->GetName(),p_caster->GetSession()->GetAccountId(), @@ -4299,7 +4299,7 @@ void Spell::EffectEnchantItemTmp(uint32 i) if(!item_owner) return; - if(item_owner!=p_caster && p_caster->GetSession()->GetSecurity() > SEC_PLAYER && sWorld.getConfig(CONFIG_GM_LOG_TRADE) ) + if(item_owner!=p_caster && p_caster->GetSession()->GetSecurity() > SEC_PLAYER && sWorld.getConfig(CONFIG_BOOL_GM_LOG_TRADE) ) { sLog.outCommand(p_caster->GetSession()->GetAccountId(),"GM %s (Account: %u) enchanting(temp): %s (Entry: %d) for player: %s (Account: %u)", p_caster->GetName(), p_caster->GetSession()->GetAccountId(), @@ -5867,7 +5867,7 @@ void Spell::EffectStuck(uint32 /*i*/) if(!unitTarget || unitTarget->GetTypeId() != TYPEID_PLAYER) return; - if(!sWorld.getConfig(CONFIG_CAST_UNSTUCK)) + if(!sWorld.getConfig(CONFIG_BOOL_CAST_UNSTUCK)) return; Player* pTarget = (Player*)unitTarget; @@ -6854,7 +6854,7 @@ void Spell::EffectProspecting(uint32 /*i*/) if(itemTarget->GetCount() < 5) return; - if( sWorld.getConfig(CONFIG_SKILL_PROSPECTING)) + if( sWorld.getConfig(CONFIG_BOOL_SKILL_PROSPECTING)) { uint32 SkillValue = p_caster->GetPureSkillValue(SKILL_JEWELCRAFTING); uint32 reqSkillValue = itemTarget->GetProto()->RequiredSkillRank; @@ -6876,7 +6876,7 @@ void Spell::EffectMilling(uint32 /*i*/) if(itemTarget->GetCount() < 5) return; - if( sWorld.getConfig(CONFIG_SKILL_MILLING)) + if( sWorld.getConfig(CONFIG_BOOL_SKILL_MILLING)) { uint32 SkillValue = p_caster->GetPureSkillValue(SKILL_INSCRIPTION); uint32 reqSkillValue = itemTarget->GetProto()->RequiredSkillRank; diff --git a/src/game/TargetedMovementGenerator.cpp b/src/game/TargetedMovementGenerator.cpp index e61d7753d..0336187d2 100644 --- a/src/game/TargetedMovementGenerator.cpp +++ b/src/game/TargetedMovementGenerator.cpp @@ -153,7 +153,7 @@ bool TargetedMovementGeneratorMedium::Update(T &owner, const uint32 & time_ if (owner.GetObjectSize()) i_destinationHolder.ResetUpdate(50); - float dist = i_target->GetObjectSize() + owner.GetObjectSize() + sWorld.getRate(RATE_TARGET_POS_RECALCULATION_RANGE); + float dist = i_target->GetObjectSize() + owner.GetObjectSize() + sWorld.getConfig(CONFIG_FLOAT_RATE_TARGET_POS_RECALCULATION_RANGE); //More distance let have better performance, less distance let have more sensitive reaction at target move. diff --git a/src/game/TradeHandler.cpp b/src/game/TradeHandler.cpp index f7e1c6cb2..fad430785 100644 --- a/src/game/TradeHandler.cpp +++ b/src/game/TradeHandler.cpp @@ -192,7 +192,7 @@ void WorldSession::moveItems(Item* myItems[], Item* hisItems[]) { // logging sLog.outDebug("partner storing: %u",myItems[i]->GetGUIDLow()); - if( _player->GetSession()->GetSecurity() > SEC_PLAYER && sWorld.getConfig(CONFIG_GM_LOG_TRADE) ) + if( _player->GetSession()->GetSecurity() > SEC_PLAYER && sWorld.getConfig(CONFIG_BOOL_GM_LOG_TRADE) ) { sLog.outCommand(_player->GetSession()->GetAccountId(),"GM %s (Account: %u) trade: %s (Entry: %d Count: %u) to player: %s (Account: %u)", _player->GetName(),_player->GetSession()->GetAccountId(), @@ -207,7 +207,7 @@ void WorldSession::moveItems(Item* myItems[], Item* hisItems[]) { // logging sLog.outDebug("player storing: %u",hisItems[i]->GetGUIDLow()); - if( _player->pTrader->GetSession()->GetSecurity() > SEC_PLAYER && sWorld.getConfig(CONFIG_GM_LOG_TRADE) ) + if( _player->pTrader->GetSession()->GetSecurity() > SEC_PLAYER && sWorld.getConfig(CONFIG_BOOL_GM_LOG_TRADE) ) { sLog.outCommand(_player->pTrader->GetSession()->GetAccountId(),"GM %s (Account: %u) trade: %s (Entry: %d Count: %u) to player: %s (Account: %u)", _player->pTrader->GetName(),_player->pTrader->GetSession()->GetAccountId(), @@ -377,7 +377,7 @@ void WorldSession::HandleAcceptTradeOpcode(WorldPacket& /*recvPacket*/) moveItems(myItems, hisItems); // logging money - if(sWorld.getConfig(CONFIG_GM_LOG_TRADE)) + if(sWorld.getConfig(CONFIG_BOOL_GM_LOG_TRADE)) { if( _player->GetSession()->GetSecurity() > SEC_PLAYER && _player->tradeGold > 0) { diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp index 8453e6554..3031c163a 100644 --- a/src/game/Unit.cpp +++ b/src/game/Unit.cpp @@ -922,7 +922,7 @@ uint32 Unit::DealDamage(Unit *pVictim, uint32 damage, CleanDamage const* cleanDa } // random durability for items (HIT TAKEN) - if (roll_chance_f(sWorld.getRate(RATE_DURABILITY_LOSS_DAMAGE))) + if (roll_chance_f(sWorld.getConfig(CONFIG_FLOAT_RATE_DURABILITY_LOSS_DAMAGE))) { EquipmentSlots slot = EquipmentSlots(urand(0,EQUIPMENT_SLOT_END-1)); ((Player*)pVictim)->DurabilityPointLossForEquipSlot(slot); @@ -932,7 +932,7 @@ uint32 Unit::DealDamage(Unit *pVictim, uint32 damage, CleanDamage const* cleanDa if(GetTypeId()==TYPEID_PLAYER) { // random durability for items (HIT DONE) - if (roll_chance_f(sWorld.getRate(RATE_DURABILITY_LOSS_DAMAGE))) + if (roll_chance_f(sWorld.getConfig(CONFIG_FLOAT_RATE_DURABILITY_LOSS_DAMAGE))) { EquipmentSlots slot = EquipmentSlots(urand(0,EQUIPMENT_SLOT_END-1)); ((Player*)this)->DurabilityPointLossForEquipSlot(slot); @@ -13440,7 +13440,7 @@ void Unit::CleanupDeletedAuras() bool Unit::CheckAndIncreaseCastCounter() { - uint32 maxCasts = sWorld.getConfig(CONFIG_MAX_SPELL_CASTS_IN_CHAIN); + uint32 maxCasts = sWorld.getConfig(CONFIG_UINT32_MAX_SPELL_CASTS_IN_CHAIN); if (maxCasts && m_castCounter >= maxCasts) return false; diff --git a/src/game/UpdateData.cpp b/src/game/UpdateData.cpp index 881f6c784..49105bfad 100644 --- a/src/game/UpdateData.cpp +++ b/src/game/UpdateData.cpp @@ -54,7 +54,7 @@ void UpdateData::Compress(void* dst, uint32 *dst_size, void* src, int src_size) c_stream.opaque = (voidpf)0; // default Z_BEST_SPEED (1) - int z_res = deflateInit(&c_stream, sWorld.getConfig(CONFIG_COMPRESSION)); + int z_res = deflateInit(&c_stream, sWorld.getConfig(CONFIG_UINT32_COMPRESSION)); if (z_res != Z_OK) { sLog.outError("Can't compress update packet (zlib: deflateInit) Error code: %i (%s)",z_res,zError(z_res)); diff --git a/src/game/Weather.cpp b/src/game/Weather.cpp index 301f4fe78..6914af9f1 100644 --- a/src/game/Weather.cpp +++ b/src/game/Weather.cpp @@ -31,7 +31,7 @@ /// Create the Weather object Weather::Weather(uint32 zone, WeatherZoneChances const* weatherChances) : m_zone(zone), m_weatherChances(weatherChances) { - m_timer.SetInterval(sWorld.getConfig(CONFIG_INTERVAL_CHANGEWEATHER)); + m_timer.SetInterval(sWorld.getConfig(CONFIG_UINT32_INTERVAL_CHANGEWEATHER)); m_type = WEATHER_TYPE_FINE; m_grade = 0; diff --git a/src/game/World.cpp b/src/game/World.cpp index da0ad385f..eec4d1814 100644 --- a/src/game/World.cpp +++ b/src/game/World.cpp @@ -241,7 +241,7 @@ World::AddSession_ (WorldSession* s) s->SendAddonsInfo(); WorldPacket pkt(SMSG_CLIENTCACHE_VERSION, 4); - pkt << uint32(getConfig(CONFIG_CLIENTCACHE_VERSION)); + pkt << uint32(getConfig(CONFIG_UINT32_CLIENTCACHE_VERSION)); s->SendPacket(&pkt); s->SendTutorialsData(); @@ -325,7 +325,7 @@ bool World::RemoveQueuedPlayer(WorldSession* sess) pop_sess->SendAddonsInfo(); WorldPacket pkt(SMSG_CLIENTCACHE_VERSION, 4); - pkt << uint32(getConfig(CONFIG_CLIENTCACHE_VERSION)); + pkt << uint32(getConfig(CONFIG_UINT32_CLIENTCACHE_VERSION)); pop_sess->SendPacket(&pkt); pop_sess->SendAccountDataTimes(GLOBAL_CACHE_MASK); @@ -430,581 +430,583 @@ void World::LoadConfigSettings(bool reload) SetMotd( sConfig.GetStringDefault("Motd", "Welcome to the Massive Network Game Object Server." ) ); ///- Read all rates from the config file - rate_values[RATE_HEALTH] = sConfig.GetFloatDefault("Rate.Health", 1); - if(rate_values[RATE_HEALTH] < 0) + m_configFloatValues[CONFIG_FLOAT_RATE_HEALTH] = sConfig.GetFloatDefault("Rate.Health", 1); + if(m_configFloatValues[CONFIG_FLOAT_RATE_HEALTH] < 0) { - sLog.outError("Rate.Health (%f) must be > 0. Using 1 instead.",rate_values[RATE_HEALTH]); - rate_values[RATE_HEALTH] = 1; + sLog.outError("Rate.Health (%f) must be > 0. Using 1 instead.",m_configFloatValues[CONFIG_FLOAT_RATE_HEALTH]); + m_configFloatValues[CONFIG_FLOAT_RATE_HEALTH] = 1; } - rate_values[RATE_POWER_MANA] = sConfig.GetFloatDefault("Rate.Mana", 1); - if(rate_values[RATE_POWER_MANA] < 0) + m_configFloatValues[CONFIG_FLOAT_RATE_POWER_MANA] = sConfig.GetFloatDefault("Rate.Mana", 1); + if(m_configFloatValues[CONFIG_FLOAT_RATE_POWER_MANA] < 0) { - sLog.outError("Rate.Mana (%f) must be > 0. Using 1 instead.",rate_values[RATE_POWER_MANA]); - rate_values[RATE_POWER_MANA] = 1; + sLog.outError("Rate.Mana (%f) must be > 0. Using 1 instead.",m_configFloatValues[CONFIG_FLOAT_RATE_POWER_MANA]); + m_configFloatValues[CONFIG_FLOAT_RATE_POWER_MANA] = 1; } - rate_values[RATE_POWER_RAGE_INCOME] = sConfig.GetFloatDefault("Rate.Rage.Income", 1); - rate_values[RATE_POWER_RAGE_LOSS] = sConfig.GetFloatDefault("Rate.Rage.Loss", 1); - if(rate_values[RATE_POWER_RAGE_LOSS] < 0) + m_configFloatValues[CONFIG_FLOAT_RATE_POWER_RAGE_INCOME] = sConfig.GetFloatDefault("Rate.Rage.Income", 1); + m_configFloatValues[CONFIG_FLOAT_RATE_POWER_RAGE_LOSS] = sConfig.GetFloatDefault("Rate.Rage.Loss", 1); + if(m_configFloatValues[CONFIG_FLOAT_RATE_POWER_RAGE_LOSS] < 0) { - sLog.outError("Rate.Rage.Loss (%f) must be > 0. Using 1 instead.",rate_values[RATE_POWER_RAGE_LOSS]); - rate_values[RATE_POWER_RAGE_LOSS] = 1; + sLog.outError("Rate.Rage.Loss (%f) must be > 0. Using 1 instead.",m_configFloatValues[CONFIG_FLOAT_RATE_POWER_RAGE_LOSS]); + m_configFloatValues[CONFIG_FLOAT_RATE_POWER_RAGE_LOSS] = 1; } - rate_values[RATE_POWER_RUNICPOWER_INCOME] = sConfig.GetFloatDefault("Rate.RunicPower.Income", 1); - rate_values[RATE_POWER_RUNICPOWER_LOSS] = sConfig.GetFloatDefault("Rate.RunicPower.Loss", 1); - if(rate_values[RATE_POWER_RUNICPOWER_LOSS] < 0) + m_configFloatValues[CONFIG_FLOAT_RATE_POWER_RUNICPOWER_INCOME] = sConfig.GetFloatDefault("Rate.RunicPower.Income", 1); + m_configFloatValues[CONFIG_FLOAT_RATE_POWER_RUNICPOWER_LOSS] = sConfig.GetFloatDefault("Rate.RunicPower.Loss", 1); + if(m_configFloatValues[CONFIG_FLOAT_RATE_POWER_RUNICPOWER_LOSS] < 0) { - sLog.outError("Rate.RunicPower.Loss (%f) must be > 0. Using 1 instead.",rate_values[RATE_POWER_RUNICPOWER_LOSS]); - rate_values[RATE_POWER_RUNICPOWER_LOSS] = 1; + sLog.outError("Rate.RunicPower.Loss (%f) must be > 0. Using 1 instead.",m_configFloatValues[CONFIG_FLOAT_RATE_POWER_RUNICPOWER_LOSS]); + m_configFloatValues[CONFIG_FLOAT_RATE_POWER_RUNICPOWER_LOSS] = 1; } - rate_values[RATE_POWER_FOCUS] = sConfig.GetFloatDefault("Rate.Focus", 1.0f); - rate_values[RATE_SKILL_DISCOVERY] = sConfig.GetFloatDefault("Rate.Skill.Discovery", 1.0f); - rate_values[RATE_DROP_ITEM_POOR] = sConfig.GetFloatDefault("Rate.Drop.Item.Poor", 1.0f); - rate_values[RATE_DROP_ITEM_NORMAL] = sConfig.GetFloatDefault("Rate.Drop.Item.Normal", 1.0f); - rate_values[RATE_DROP_ITEM_UNCOMMON] = sConfig.GetFloatDefault("Rate.Drop.Item.Uncommon", 1.0f); - rate_values[RATE_DROP_ITEM_RARE] = sConfig.GetFloatDefault("Rate.Drop.Item.Rare", 1.0f); - rate_values[RATE_DROP_ITEM_EPIC] = sConfig.GetFloatDefault("Rate.Drop.Item.Epic", 1.0f); - rate_values[RATE_DROP_ITEM_LEGENDARY] = sConfig.GetFloatDefault("Rate.Drop.Item.Legendary", 1.0f); - rate_values[RATE_DROP_ITEM_ARTIFACT] = sConfig.GetFloatDefault("Rate.Drop.Item.Artifact", 1.0f); - rate_values[RATE_DROP_ITEM_REFERENCED] = sConfig.GetFloatDefault("Rate.Drop.Item.Referenced", 1.0f); - rate_values[RATE_DROP_MONEY] = sConfig.GetFloatDefault("Rate.Drop.Money", 1.0f); - rate_values[RATE_XP_KILL] = sConfig.GetFloatDefault("Rate.XP.Kill", 1.0f); - rate_values[RATE_XP_QUEST] = sConfig.GetFloatDefault("Rate.XP.Quest", 1.0f); - rate_values[RATE_XP_EXPLORE] = sConfig.GetFloatDefault("Rate.XP.Explore", 1.0f); - rate_values[RATE_REPUTATION_GAIN] = sConfig.GetFloatDefault("Rate.Reputation.Gain", 1.0f); - rate_values[RATE_REPUTATION_LOWLEVEL_KILL] = sConfig.GetFloatDefault("Rate.Reputation.LowLevel.Kill", 1.0f); - rate_values[RATE_REPUTATION_LOWLEVEL_QUEST] = sConfig.GetFloatDefault("Rate.Reputation.LowLevel.Quest", 1.0f); - rate_values[RATE_CREATURE_NORMAL_DAMAGE] = sConfig.GetFloatDefault("Rate.Creature.Normal.Damage", 1.0f); - rate_values[RATE_CREATURE_ELITE_ELITE_DAMAGE] = sConfig.GetFloatDefault("Rate.Creature.Elite.Elite.Damage", 1.0f); - rate_values[RATE_CREATURE_ELITE_RAREELITE_DAMAGE] = sConfig.GetFloatDefault("Rate.Creature.Elite.RAREELITE.Damage", 1.0f); - rate_values[RATE_CREATURE_ELITE_WORLDBOSS_DAMAGE] = sConfig.GetFloatDefault("Rate.Creature.Elite.WORLDBOSS.Damage", 1.0f); - rate_values[RATE_CREATURE_ELITE_RARE_DAMAGE] = sConfig.GetFloatDefault("Rate.Creature.Elite.RARE.Damage", 1.0f); - rate_values[RATE_CREATURE_NORMAL_HP] = sConfig.GetFloatDefault("Rate.Creature.Normal.HP", 1.0f); - rate_values[RATE_CREATURE_ELITE_ELITE_HP] = sConfig.GetFloatDefault("Rate.Creature.Elite.Elite.HP", 1.0f); - rate_values[RATE_CREATURE_ELITE_RAREELITE_HP] = sConfig.GetFloatDefault("Rate.Creature.Elite.RAREELITE.HP", 1.0f); - rate_values[RATE_CREATURE_ELITE_WORLDBOSS_HP] = sConfig.GetFloatDefault("Rate.Creature.Elite.WORLDBOSS.HP", 1.0f); - rate_values[RATE_CREATURE_ELITE_RARE_HP] = sConfig.GetFloatDefault("Rate.Creature.Elite.RARE.HP", 1.0f); - rate_values[RATE_CREATURE_NORMAL_SPELLDAMAGE] = sConfig.GetFloatDefault("Rate.Creature.Normal.SpellDamage", 1.0f); - rate_values[RATE_CREATURE_ELITE_ELITE_SPELLDAMAGE] = sConfig.GetFloatDefault("Rate.Creature.Elite.Elite.SpellDamage", 1.0f); - rate_values[RATE_CREATURE_ELITE_RAREELITE_SPELLDAMAGE] = sConfig.GetFloatDefault("Rate.Creature.Elite.RAREELITE.SpellDamage", 1.0f); - rate_values[RATE_CREATURE_ELITE_WORLDBOSS_SPELLDAMAGE] = sConfig.GetFloatDefault("Rate.Creature.Elite.WORLDBOSS.SpellDamage", 1.0f); - rate_values[RATE_CREATURE_ELITE_RARE_SPELLDAMAGE] = sConfig.GetFloatDefault("Rate.Creature.Elite.RARE.SpellDamage", 1.0f); - rate_values[RATE_CREATURE_AGGRO] = sConfig.GetFloatDefault("Rate.Creature.Aggro", 1.0f); - rate_values[RATE_REST_INGAME] = sConfig.GetFloatDefault("Rate.Rest.InGame", 1.0f); - rate_values[RATE_REST_OFFLINE_IN_TAVERN_OR_CITY] = sConfig.GetFloatDefault("Rate.Rest.Offline.InTavernOrCity", 1.0f); - rate_values[RATE_REST_OFFLINE_IN_WILDERNESS] = sConfig.GetFloatDefault("Rate.Rest.Offline.InWilderness", 1.0f); - rate_values[RATE_DAMAGE_FALL] = sConfig.GetFloatDefault("Rate.Damage.Fall", 1.0f); - rate_values[RATE_AUCTION_TIME] = sConfig.GetFloatDefault("Rate.Auction.Time", 1.0f); - rate_values[RATE_AUCTION_DEPOSIT] = sConfig.GetFloatDefault("Rate.Auction.Deposit", 1.0f); - rate_values[RATE_AUCTION_CUT] = sConfig.GetFloatDefault("Rate.Auction.Cut", 1.0f); - rate_values[RATE_HONOR] = sConfig.GetFloatDefault("Rate.Honor",1.0f); - rate_values[RATE_MINING_AMOUNT] = sConfig.GetFloatDefault("Rate.Mining.Amount",1.0f); - rate_values[RATE_MINING_NEXT] = sConfig.GetFloatDefault("Rate.Mining.Next",1.0f); - rate_values[RATE_INSTANCE_RESET_TIME] = sConfig.GetFloatDefault("Rate.InstanceResetTime",1.0f); - rate_values[RATE_TALENT] = sConfig.GetFloatDefault("Rate.Talent",1.0f); - if(rate_values[RATE_TALENT] < 0.0f) + m_configFloatValues[CONFIG_FLOAT_RATE_POWER_FOCUS] = sConfig.GetFloatDefault("Rate.Focus", 1.0f); + m_configFloatValues[CONFIG_FLOAT_RATE_SKILL_DISCOVERY] = sConfig.GetFloatDefault("Rate.Skill.Discovery", 1.0f); + m_configFloatValues[CONFIG_FLOAT_RATE_DROP_ITEM_POOR] = sConfig.GetFloatDefault("Rate.Drop.Item.Poor", 1.0f); + m_configFloatValues[CONFIG_FLOAT_RATE_DROP_ITEM_NORMAL] = sConfig.GetFloatDefault("Rate.Drop.Item.Normal", 1.0f); + m_configFloatValues[CONFIG_FLOAT_RATE_DROP_ITEM_UNCOMMON] = sConfig.GetFloatDefault("Rate.Drop.Item.Uncommon", 1.0f); + m_configFloatValues[CONFIG_FLOAT_RATE_DROP_ITEM_RARE] = sConfig.GetFloatDefault("Rate.Drop.Item.Rare", 1.0f); + m_configFloatValues[CONFIG_FLOAT_RATE_DROP_ITEM_EPIC] = sConfig.GetFloatDefault("Rate.Drop.Item.Epic", 1.0f); + m_configFloatValues[CONFIG_FLOAT_RATE_DROP_ITEM_LEGENDARY] = sConfig.GetFloatDefault("Rate.Drop.Item.Legendary", 1.0f); + m_configFloatValues[CONFIG_FLOAT_RATE_DROP_ITEM_ARTIFACT] = sConfig.GetFloatDefault("Rate.Drop.Item.Artifact", 1.0f); + m_configFloatValues[CONFIG_FLOAT_RATE_DROP_ITEM_REFERENCED] = sConfig.GetFloatDefault("Rate.Drop.Item.Referenced", 1.0f); + m_configFloatValues[CONFIG_FLOAT_RATE_DROP_MONEY] = sConfig.GetFloatDefault("Rate.Drop.Money", 1.0f); + m_configFloatValues[CONFIG_FLOAT_RATE_XP_KILL] = sConfig.GetFloatDefault("Rate.XP.Kill", 1.0f); + m_configFloatValues[CONFIG_FLOAT_RATE_XP_QUEST] = sConfig.GetFloatDefault("Rate.XP.Quest", 1.0f); + m_configFloatValues[CONFIG_FLOAT_RATE_XP_EXPLORE] = sConfig.GetFloatDefault("Rate.XP.Explore", 1.0f); + m_configFloatValues[CONFIG_FLOAT_RATE_REPUTATION_GAIN] = sConfig.GetFloatDefault("Rate.Reputation.Gain", 1.0f); + m_configFloatValues[CONFIG_FLOAT_RATE_REPUTATION_LOWLEVEL_KILL] = sConfig.GetFloatDefault("Rate.Reputation.LowLevel.Kill", 1.0f); + m_configFloatValues[CONFIG_FLOAT_RATE_REPUTATION_LOWLEVEL_QUEST] = sConfig.GetFloatDefault("Rate.Reputation.LowLevel.Quest", 1.0f); + m_configFloatValues[CONFIG_FLOAT_RATE_CREATURE_NORMAL_DAMAGE] = sConfig.GetFloatDefault("Rate.Creature.Normal.Damage", 1.0f); + m_configFloatValues[CONFIG_FLOAT_RATE_CREATURE_ELITE_ELITE_DAMAGE] = sConfig.GetFloatDefault("Rate.Creature.Elite.Elite.Damage", 1.0f); + m_configFloatValues[CONFIG_FLOAT_RATE_CREATURE_ELITE_RAREELITE_DAMAGE] = sConfig.GetFloatDefault("Rate.Creature.Elite.RAREELITE.Damage", 1.0f); + m_configFloatValues[CONFIG_FLOAT_RATE_CREATURE_ELITE_WORLDBOSS_DAMAGE] = sConfig.GetFloatDefault("Rate.Creature.Elite.WORLDBOSS.Damage", 1.0f); + m_configFloatValues[CONFIG_FLOAT_RATE_CREATURE_ELITE_RARE_DAMAGE] = sConfig.GetFloatDefault("Rate.Creature.Elite.RARE.Damage", 1.0f); + m_configFloatValues[CONFIG_FLOAT_RATE_CREATURE_NORMAL_HP] = sConfig.GetFloatDefault("Rate.Creature.Normal.HP", 1.0f); + m_configFloatValues[CONFIG_FLOAT_RATE_CREATURE_ELITE_ELITE_HP] = sConfig.GetFloatDefault("Rate.Creature.Elite.Elite.HP", 1.0f); + m_configFloatValues[CONFIG_FLOAT_RATE_CREATURE_ELITE_RAREELITE_HP] = sConfig.GetFloatDefault("Rate.Creature.Elite.RAREELITE.HP", 1.0f); + m_configFloatValues[CONFIG_FLOAT_RATE_CREATURE_ELITE_WORLDBOSS_HP] = sConfig.GetFloatDefault("Rate.Creature.Elite.WORLDBOSS.HP", 1.0f); + m_configFloatValues[CONFIG_FLOAT_RATE_CREATURE_ELITE_RARE_HP] = sConfig.GetFloatDefault("Rate.Creature.Elite.RARE.HP", 1.0f); + m_configFloatValues[CONFIG_FLOAT_RATE_CREATURE_NORMAL_SPELLDAMAGE] = sConfig.GetFloatDefault("Rate.Creature.Normal.SpellDamage", 1.0f); + m_configFloatValues[CONFIG_FLOAT_RATE_CREATURE_ELITE_ELITE_SPELLDAMAGE] = sConfig.GetFloatDefault("Rate.Creature.Elite.Elite.SpellDamage", 1.0f); + m_configFloatValues[CONFIG_FLOAT_RATE_CREATURE_ELITE_RAREELITE_SPELLDAMAGE] = sConfig.GetFloatDefault("Rate.Creature.Elite.RAREELITE.SpellDamage", 1.0f); + m_configFloatValues[CONFIG_FLOAT_RATE_CREATURE_ELITE_WORLDBOSS_SPELLDAMAGE] = sConfig.GetFloatDefault("Rate.Creature.Elite.WORLDBOSS.SpellDamage", 1.0f); + m_configFloatValues[CONFIG_FLOAT_RATE_CREATURE_ELITE_RARE_SPELLDAMAGE] = sConfig.GetFloatDefault("Rate.Creature.Elite.RARE.SpellDamage", 1.0f); + m_configFloatValues[CONFIG_FLOAT_RATE_CREATURE_AGGRO] = sConfig.GetFloatDefault("Rate.Creature.Aggro", 1.0f); + m_configFloatValues[CONFIG_FLOAT_RATE_REST_INGAME] = sConfig.GetFloatDefault("Rate.Rest.InGame", 1.0f); + m_configFloatValues[CONFIG_FLOAT_RATE_REST_OFFLINE_IN_TAVERN_OR_CITY] = sConfig.GetFloatDefault("Rate.Rest.Offline.InTavernOrCity", 1.0f); + m_configFloatValues[CONFIG_FLOAT_RATE_REST_OFFLINE_IN_WILDERNESS] = sConfig.GetFloatDefault("Rate.Rest.Offline.InWilderness", 1.0f); + m_configFloatValues[CONFIG_FLOAT_RATE_DAMAGE_FALL] = sConfig.GetFloatDefault("Rate.Damage.Fall", 1.0f); + m_configFloatValues[CONFIG_FLOAT_RATE_AUCTION_TIME] = sConfig.GetFloatDefault("Rate.Auction.Time", 1.0f); + m_configFloatValues[CONFIG_FLOAT_RATE_AUCTION_DEPOSIT] = sConfig.GetFloatDefault("Rate.Auction.Deposit", 1.0f); + m_configFloatValues[CONFIG_FLOAT_RATE_AUCTION_CUT] = sConfig.GetFloatDefault("Rate.Auction.Cut", 1.0f); + m_configFloatValues[CONFIG_FLOAT_RATE_HONOR] = sConfig.GetFloatDefault("Rate.Honor",1.0f); + m_configFloatValues[CONFIG_FLOAT_RATE_MINING_AMOUNT] = sConfig.GetFloatDefault("Rate.Mining.Amount",1.0f); + m_configFloatValues[CONFIG_FLOAT_RATE_MINING_NEXT] = sConfig.GetFloatDefault("Rate.Mining.Next",1.0f); + m_configFloatValues[CONFIG_FLOAT_RATE_INSTANCE_RESET_TIME] = sConfig.GetFloatDefault("Rate.InstanceResetTime",1.0f); + m_configFloatValues[CONFIG_FLOAT_RATE_TALENT] = sConfig.GetFloatDefault("Rate.Talent",1.0f); + if(m_configFloatValues[CONFIG_FLOAT_RATE_TALENT] < 0.0f) { - sLog.outError("Rate.Talent (%f) mustbe > 0. Using 1 instead.",rate_values[RATE_TALENT]); - rate_values[RATE_TALENT] = 1.0f; + sLog.outError("Rate.Talent (%f) mustbe > 0. Using 1 instead.",m_configFloatValues[CONFIG_FLOAT_RATE_TALENT]); + m_configFloatValues[CONFIG_FLOAT_RATE_TALENT] = 1.0f; } - rate_values[RATE_CORPSE_DECAY_LOOTED] = sConfig.GetFloatDefault("Rate.Corpse.Decay.Looted",0.1f); + m_configFloatValues[CONFIG_FLOAT_RATE_CORPSE_DECAY_LOOTED] = sConfig.GetFloatDefault("Rate.Corpse.Decay.Looted",0.1f); - rate_values[RATE_TARGET_POS_RECALCULATION_RANGE] = sConfig.GetFloatDefault("TargetPosRecalculateRange",1.5f); - if(rate_values[RATE_TARGET_POS_RECALCULATION_RANGE] < CONTACT_DISTANCE) + m_configFloatValues[CONFIG_FLOAT_RATE_TARGET_POS_RECALCULATION_RANGE] = sConfig.GetFloatDefault("TargetPosRecalculateRange",1.5f); + if(m_configFloatValues[CONFIG_FLOAT_RATE_TARGET_POS_RECALCULATION_RANGE] < CONTACT_DISTANCE) { - sLog.outError("TargetPosRecalculateRange (%f) must be >= %f. Using %f instead.",rate_values[RATE_TARGET_POS_RECALCULATION_RANGE],CONTACT_DISTANCE,CONTACT_DISTANCE); - rate_values[RATE_TARGET_POS_RECALCULATION_RANGE] = CONTACT_DISTANCE; + sLog.outError("TargetPosRecalculateRange (%f) must be >= %f. Using %f instead.",m_configFloatValues[CONFIG_FLOAT_RATE_TARGET_POS_RECALCULATION_RANGE],CONTACT_DISTANCE,CONTACT_DISTANCE); + m_configFloatValues[CONFIG_FLOAT_RATE_TARGET_POS_RECALCULATION_RANGE] = CONTACT_DISTANCE; } - else if(rate_values[RATE_TARGET_POS_RECALCULATION_RANGE] > ATTACK_DISTANCE) + else if(m_configFloatValues[CONFIG_FLOAT_RATE_TARGET_POS_RECALCULATION_RANGE] > ATTACK_DISTANCE) { sLog.outError("TargetPosRecalculateRange (%f) must be <= %f. Using %f instead.", - rate_values[RATE_TARGET_POS_RECALCULATION_RANGE],ATTACK_DISTANCE,ATTACK_DISTANCE); - rate_values[RATE_TARGET_POS_RECALCULATION_RANGE] = ATTACK_DISTANCE; + m_configFloatValues[CONFIG_FLOAT_RATE_TARGET_POS_RECALCULATION_RANGE],ATTACK_DISTANCE,ATTACK_DISTANCE); + m_configFloatValues[CONFIG_FLOAT_RATE_TARGET_POS_RECALCULATION_RANGE] = ATTACK_DISTANCE; } - rate_values[RATE_DURABILITY_LOSS_DAMAGE] = sConfig.GetFloatDefault("DurabilityLossChance.Damage",0.5f); - if(rate_values[RATE_DURABILITY_LOSS_DAMAGE] < 0.0f) + m_configFloatValues[CONFIG_FLOAT_RATE_DURABILITY_LOSS_DAMAGE] = sConfig.GetFloatDefault("DurabilityLossChance.Damage",0.5f); + if(m_configFloatValues[CONFIG_FLOAT_RATE_DURABILITY_LOSS_DAMAGE] < 0.0f) { - sLog.outError("DurabilityLossChance.Damage (%f) must be >=0. Using 0.0 instead.",rate_values[RATE_DURABILITY_LOSS_DAMAGE]); - rate_values[RATE_DURABILITY_LOSS_DAMAGE] = 0.0f; + sLog.outError("DurabilityLossChance.Damage (%f) must be >=0. Using 0.0 instead.",m_configFloatValues[CONFIG_FLOAT_RATE_DURABILITY_LOSS_DAMAGE]); + m_configFloatValues[CONFIG_FLOAT_RATE_DURABILITY_LOSS_DAMAGE] = 0.0f; } - rate_values[RATE_DURABILITY_LOSS_ABSORB] = sConfig.GetFloatDefault("DurabilityLossChance.Absorb",0.5f); - if(rate_values[RATE_DURABILITY_LOSS_ABSORB] < 0.0f) + m_configFloatValues[CONFIG_FLOAT_RATE_DURABILITY_LOSS_ABSORB] = sConfig.GetFloatDefault("DurabilityLossChance.Absorb",0.5f); + if(m_configFloatValues[CONFIG_FLOAT_RATE_DURABILITY_LOSS_ABSORB] < 0.0f) { - sLog.outError("DurabilityLossChance.Absorb (%f) must be >=0. Using 0.0 instead.",rate_values[RATE_DURABILITY_LOSS_ABSORB]); - rate_values[RATE_DURABILITY_LOSS_ABSORB] = 0.0f; + sLog.outError("DurabilityLossChance.Absorb (%f) must be >=0. Using 0.0 instead.",m_configFloatValues[CONFIG_FLOAT_RATE_DURABILITY_LOSS_ABSORB]); + m_configFloatValues[CONFIG_FLOAT_RATE_DURABILITY_LOSS_ABSORB] = 0.0f; } - rate_values[RATE_DURABILITY_LOSS_PARRY] = sConfig.GetFloatDefault("DurabilityLossChance.Parry",0.05f); - if(rate_values[RATE_DURABILITY_LOSS_PARRY] < 0.0f) + m_configFloatValues[CONFIG_FLOAT_RATE_DURABILITY_LOSS_PARRY] = sConfig.GetFloatDefault("DurabilityLossChance.Parry",0.05f); + if(m_configFloatValues[CONFIG_FLOAT_RATE_DURABILITY_LOSS_PARRY] < 0.0f) { - sLog.outError("DurabilityLossChance.Parry (%f) must be >=0. Using 0.0 instead.",rate_values[RATE_DURABILITY_LOSS_PARRY]); - rate_values[RATE_DURABILITY_LOSS_PARRY] = 0.0f; + sLog.outError("DurabilityLossChance.Parry (%f) must be >=0. Using 0.0 instead.",m_configFloatValues[CONFIG_FLOAT_RATE_DURABILITY_LOSS_PARRY]); + m_configFloatValues[CONFIG_FLOAT_RATE_DURABILITY_LOSS_PARRY] = 0.0f; } - rate_values[RATE_DURABILITY_LOSS_BLOCK] = sConfig.GetFloatDefault("DurabilityLossChance.Block",0.05f); - if(rate_values[RATE_DURABILITY_LOSS_BLOCK] < 0.0f) + m_configFloatValues[CONFIG_FLOAT_RATE_DURABILITY_LOSS_BLOCK] = sConfig.GetFloatDefault("DurabilityLossChance.Block",0.05f); + if(m_configFloatValues[CONFIG_FLOAT_RATE_DURABILITY_LOSS_BLOCK] < 0.0f) { - sLog.outError("DurabilityLossChance.Block (%f) must be >=0. Using 0.0 instead.",rate_values[RATE_DURABILITY_LOSS_BLOCK]); - rate_values[RATE_DURABILITY_LOSS_BLOCK] = 0.0f; + sLog.outError("DurabilityLossChance.Block (%f) must be >=0. Using 0.0 instead.",m_configFloatValues[CONFIG_FLOAT_RATE_DURABILITY_LOSS_BLOCK]); + m_configFloatValues[CONFIG_FLOAT_RATE_DURABILITY_LOSS_BLOCK] = 0.0f; } - rate_values[RATE_LISTEN_RANGE_SAY] = sConfig.GetFloatDefault("ListenRange.Say", 25); - rate_values[RATE_LISTEN_RANGE_YELL] = sConfig.GetFloatDefault("ListenRange.Yell", 300); - rate_values[RATE_LISTEN_RANGE_TEXTEMOTE] = sConfig.GetFloatDefault("ListenRange.TextEmote", 25); + m_configFloatValues[CONFIG_FLOAT_LISTEN_RANGE_SAY] = sConfig.GetFloatDefault("ListenRange.Say", 25); + m_configFloatValues[CONFIG_FLOAT_LISTEN_RANGE_YELL] = sConfig.GetFloatDefault("ListenRange.Yell", 300); + m_configFloatValues[CONFIG_FLOAT_LISTEN_RANGE_TEXTEMOTE] = sConfig.GetFloatDefault("ListenRange.TextEmote", 25); - rate_values[RATE_GROUP_XP_DISTANCE] = sConfig.GetFloatDefault("MaxGroupXPDistance", 74); + m_configFloatValues[CONFIG_FLOAT_GROUP_XP_DISTANCE] = sConfig.GetFloatDefault("MaxGroupXPDistance", 74); /// \todo Add MonsterSight and GuarderSight (with meaning) in mangosd.conf or put them as define - rate_values[RATE_SIGHT_GUARDER] = sConfig.GetFloatDefault("GuarderSight", 50); - rate_values[RATE_SIGHT_MONSTER] = sConfig.GetFloatDefault("MonsterSight", 50); + m_configFloatValues[CONFIG_FLOAT_SIGHT_GUARDER] = sConfig.GetFloatDefault("GuarderSight", 50); + m_configFloatValues[CONFIG_FLOAT_SIGHT_MONSTER] = sConfig.GetFloatDefault("MonsterSight", 50); - rate_values[RATE_CREATURE_FAMILY_ASSISTANCE_RADIUS] = sConfig.GetFloatDefault("CreatureFamilyAssistanceRadius",10); - rate_values[RATE_CREATURE_FAMILY_FLEE_ASSISTANCE_RADIUS] = sConfig.GetFloatDefault("CreatureFamilyFleeAssistanceRadius",30); + m_configFloatValues[CONFIG_FLOAT_CREATURE_FAMILY_ASSISTANCE_RADIUS] = sConfig.GetFloatDefault("CreatureFamilyAssistanceRadius",10); + m_configFloatValues[CONFIG_FLOAT_CREATURE_FAMILY_FLEE_ASSISTANCE_RADIUS] = sConfig.GetFloatDefault("CreatureFamilyFleeAssistanceRadius",30); ///- Read other configuration items from the config file - m_configs[CONFIG_COMPRESSION] = sConfig.GetIntDefault("Compression", 1); - if(m_configs[CONFIG_COMPRESSION] < 1 || m_configs[CONFIG_COMPRESSION] > 9) + m_configUint32Values[CONFIG_UINT32_COMPRESSION] = sConfig.GetIntDefault("Compression", 1); + if(m_configUint32Values[CONFIG_UINT32_COMPRESSION] < 1 || m_configUint32Values[CONFIG_UINT32_COMPRESSION] > 9) { - sLog.outError("Compression level (%i) must be in range 1..9. Using default compression level (1).",m_configs[CONFIG_COMPRESSION]); - m_configs[CONFIG_COMPRESSION] = 1; + sLog.outError("Compression level (%i) must be in range 1..9. Using default compression level (1).",m_configUint32Values[CONFIG_UINT32_COMPRESSION]); + m_configUint32Values[CONFIG_UINT32_COMPRESSION] = 1; } - m_configs[CONFIG_ADDON_CHANNEL] = sConfig.GetBoolDefault("AddonChannel", true); - m_configs[CONFIG_GRID_UNLOAD] = sConfig.GetBoolDefault("GridUnload", true); - m_configs[CONFIG_INTERVAL_SAVE] = sConfig.GetIntDefault("PlayerSaveInterval", 15 * MINUTE * IN_MILISECONDS); + m_configBoolValues[CONFIG_BOOL_ADDON_CHANNEL] = sConfig.GetBoolDefault("AddonChannel", true); + m_configBoolValues[CONFIG_BOOL_GRID_UNLOAD] = sConfig.GetBoolDefault("GridUnload", true); + m_configUint32Values[CONFIG_UINT32_INTERVAL_SAVE] = sConfig.GetIntDefault("PlayerSaveInterval", 15 * MINUTE * IN_MILISECONDS); - m_configs[CONFIG_INTERVAL_GRIDCLEAN] = sConfig.GetIntDefault("GridCleanUpDelay", 5 * MINUTE * IN_MILISECONDS); - if(m_configs[CONFIG_INTERVAL_GRIDCLEAN] < MIN_GRID_DELAY) + m_configUint32Values[CONFIG_UINT32_INTERVAL_GRIDCLEAN] = sConfig.GetIntDefault("GridCleanUpDelay", 5 * MINUTE * IN_MILISECONDS); + if(m_configUint32Values[CONFIG_UINT32_INTERVAL_GRIDCLEAN] < MIN_GRID_DELAY) { - sLog.outError("GridCleanUpDelay (%i) must be greater %u. Use this minimal value.",m_configs[CONFIG_INTERVAL_GRIDCLEAN],MIN_GRID_DELAY); - m_configs[CONFIG_INTERVAL_GRIDCLEAN] = MIN_GRID_DELAY; + sLog.outError("GridCleanUpDelay (%i) must be greater %u. Use this minimal value.",m_configUint32Values[CONFIG_UINT32_INTERVAL_GRIDCLEAN],MIN_GRID_DELAY); + m_configUint32Values[CONFIG_UINT32_INTERVAL_GRIDCLEAN] = MIN_GRID_DELAY; } if(reload) - sMapMgr.SetGridCleanUpDelay(m_configs[CONFIG_INTERVAL_GRIDCLEAN]); + sMapMgr.SetGridCleanUpDelay(m_configUint32Values[CONFIG_UINT32_INTERVAL_GRIDCLEAN]); - m_configs[CONFIG_INTERVAL_MAPUPDATE] = sConfig.GetIntDefault("MapUpdateInterval", 100); - if(m_configs[CONFIG_INTERVAL_MAPUPDATE] < MIN_MAP_UPDATE_DELAY) + m_configUint32Values[CONFIG_UINT32_INTERVAL_MAPUPDATE] = sConfig.GetIntDefault("MapUpdateInterval", 100); + if(m_configUint32Values[CONFIG_UINT32_INTERVAL_MAPUPDATE] < MIN_MAP_UPDATE_DELAY) { - sLog.outError("MapUpdateInterval (%i) must be greater %u. Use this minimal value.",m_configs[CONFIG_INTERVAL_MAPUPDATE],MIN_MAP_UPDATE_DELAY); - m_configs[CONFIG_INTERVAL_MAPUPDATE] = MIN_MAP_UPDATE_DELAY; + sLog.outError("MapUpdateInterval (%i) must be greater %u. Use this minimal value.",m_configUint32Values[CONFIG_UINT32_INTERVAL_MAPUPDATE],MIN_MAP_UPDATE_DELAY); + m_configUint32Values[CONFIG_UINT32_INTERVAL_MAPUPDATE] = MIN_MAP_UPDATE_DELAY; } if(reload) - sMapMgr.SetMapUpdateInterval(m_configs[CONFIG_INTERVAL_MAPUPDATE]); + sMapMgr.SetMapUpdateInterval(m_configUint32Values[CONFIG_UINT32_INTERVAL_MAPUPDATE]); - m_configs[CONFIG_INTERVAL_CHANGEWEATHER] = sConfig.GetIntDefault("ChangeWeatherInterval", 10 * MINUTE * IN_MILISECONDS); + m_configUint32Values[CONFIG_UINT32_INTERVAL_CHANGEWEATHER] = sConfig.GetIntDefault("ChangeWeatherInterval", 10 * MINUTE * IN_MILISECONDS); if(reload) { uint32 val = sConfig.GetIntDefault("WorldServerPort", DEFAULT_WORLDSERVER_PORT); - if(val!=m_configs[CONFIG_PORT_WORLD]) - sLog.outError("WorldServerPort option can't be changed at mangosd.conf reload, using current value (%u).",m_configs[CONFIG_PORT_WORLD]); + if(val!=m_configUint32Values[CONFIG_UINT32_PORT_WORLD]) + sLog.outError("WorldServerPort option can't be changed at mangosd.conf reload, using current value (%u).",m_configUint32Values[CONFIG_UINT32_PORT_WORLD]); } else - m_configs[CONFIG_PORT_WORLD] = sConfig.GetIntDefault("WorldServerPort", DEFAULT_WORLDSERVER_PORT); + m_configUint32Values[CONFIG_UINT32_PORT_WORLD] = sConfig.GetIntDefault("WorldServerPort", DEFAULT_WORLDSERVER_PORT); if(reload) { uint32 val = sConfig.GetIntDefault("SocketSelectTime", DEFAULT_SOCKET_SELECT_TIME); - if(val!=m_configs[CONFIG_SOCKET_SELECTTIME]) - sLog.outError("SocketSelectTime option can't be changed at mangosd.conf reload, using current value (%u).",m_configs[CONFIG_SOCKET_SELECTTIME]); + if(val!=m_configUint32Values[CONFIG_UINT32_SOCKET_SELECTTIME]) + sLog.outError("SocketSelectTime option can't be changed at mangosd.conf reload, using current value (%u).",m_configUint32Values[CONFIG_UINT32_SOCKET_SELECTTIME]); } else - m_configs[CONFIG_SOCKET_SELECTTIME] = sConfig.GetIntDefault("SocketSelectTime", DEFAULT_SOCKET_SELECT_TIME); + m_configUint32Values[CONFIG_UINT32_SOCKET_SELECTTIME] = sConfig.GetIntDefault("SocketSelectTime", DEFAULT_SOCKET_SELECT_TIME); if(reload) { uint32 val = sConfig.GetIntDefault("GameType", 0); - if(val!=m_configs[CONFIG_GAME_TYPE]) - sLog.outError("GameType option can't be changed at mangosd.conf reload, using current value (%u).",m_configs[CONFIG_GAME_TYPE]); + if(val!=m_configUint32Values[CONFIG_UINT32_GAME_TYPE]) + sLog.outError("GameType option can't be changed at mangosd.conf reload, using current value (%u).",m_configUint32Values[CONFIG_UINT32_GAME_TYPE]); } else - m_configs[CONFIG_GAME_TYPE] = sConfig.GetIntDefault("GameType", 0); + m_configUint32Values[CONFIG_UINT32_GAME_TYPE] = sConfig.GetIntDefault("GameType", 0); if(reload) { uint32 val = sConfig.GetIntDefault("RealmZone", REALM_ZONE_DEVELOPMENT); - if(val!=m_configs[CONFIG_REALM_ZONE]) - sLog.outError("RealmZone option can't be changed at mangosd.conf reload, using current value (%u).",m_configs[CONFIG_REALM_ZONE]); + if(val!=m_configUint32Values[CONFIG_UINT32_REALM_ZONE]) + sLog.outError("RealmZone option can't be changed at mangosd.conf reload, using current value (%u).",m_configUint32Values[CONFIG_UINT32_REALM_ZONE]); } else - m_configs[CONFIG_REALM_ZONE] = sConfig.GetIntDefault("RealmZone", REALM_ZONE_DEVELOPMENT); + m_configUint32Values[CONFIG_UINT32_REALM_ZONE] = sConfig.GetIntDefault("RealmZone", REALM_ZONE_DEVELOPMENT); - m_configs[CONFIG_ALLOW_TWO_SIDE_ACCOUNTS] = sConfig.GetBoolDefault("AllowTwoSide.Accounts", false); - m_configs[CONFIG_ALLOW_TWO_SIDE_INTERACTION_CHAT] = sConfig.GetBoolDefault("AllowTwoSide.Interaction.Chat",false); - m_configs[CONFIG_ALLOW_TWO_SIDE_INTERACTION_CHANNEL] = sConfig.GetBoolDefault("AllowTwoSide.Interaction.Channel",false); - m_configs[CONFIG_ALLOW_TWO_SIDE_INTERACTION_GROUP] = sConfig.GetBoolDefault("AllowTwoSide.Interaction.Group",false); - m_configs[CONFIG_ALLOW_TWO_SIDE_INTERACTION_GUILD] = sConfig.GetBoolDefault("AllowTwoSide.Interaction.Guild",false); - m_configs[CONFIG_ALLOW_TWO_SIDE_INTERACTION_AUCTION] = sConfig.GetBoolDefault("AllowTwoSide.Interaction.Auction",false); - m_configs[CONFIG_ALLOW_TWO_SIDE_INTERACTION_MAIL] = sConfig.GetBoolDefault("AllowTwoSide.Interaction.Mail",false); - m_configs[CONFIG_ALLOW_TWO_SIDE_WHO_LIST] = sConfig.GetBoolDefault("AllowTwoSide.WhoList", false); - m_configs[CONFIG_ALLOW_TWO_SIDE_ADD_FRIEND] = sConfig.GetBoolDefault("AllowTwoSide.AddFriend", false); - m_configs[CONFIG_STRICT_PLAYER_NAMES] = sConfig.GetIntDefault ("StrictPlayerNames", 0); - m_configs[CONFIG_STRICT_CHARTER_NAMES] = sConfig.GetIntDefault ("StrictCharterNames", 0); - m_configs[CONFIG_STRICT_PET_NAMES] = sConfig.GetIntDefault ("StrictPetNames", 0); + m_configBoolValues[CONFIG_BOOL_ALLOW_TWO_SIDE_ACCOUNTS] = sConfig.GetBoolDefault("AllowTwoSide.Accounts", false); + m_configBoolValues[CONFIG_BOOL_ALLOW_TWO_SIDE_INTERACTION_CHAT] = sConfig.GetBoolDefault("AllowTwoSide.Interaction.Chat",false); + m_configBoolValues[CONFIG_BOOL_ALLOW_TWO_SIDE_INTERACTION_CHANNEL] = sConfig.GetBoolDefault("AllowTwoSide.Interaction.Channel",false); + m_configBoolValues[CONFIG_BOOL_ALLOW_TWO_SIDE_INTERACTION_GROUP] = sConfig.GetBoolDefault("AllowTwoSide.Interaction.Group",false); + m_configBoolValues[CONFIG_BOOL_ALLOW_TWO_SIDE_INTERACTION_GUILD] = sConfig.GetBoolDefault("AllowTwoSide.Interaction.Guild",false); + m_configBoolValues[CONFIG_BOOL_ALLOW_TWO_SIDE_INTERACTION_AUCTION] = sConfig.GetBoolDefault("AllowTwoSide.Interaction.Auction",false); + m_configBoolValues[CONFIG_BOOL_ALLOW_TWO_SIDE_INTERACTION_MAIL] = sConfig.GetBoolDefault("AllowTwoSide.Interaction.Mail",false); + m_configBoolValues[CONFIG_BOOL_ALLOW_TWO_SIDE_WHO_LIST] = sConfig.GetBoolDefault("AllowTwoSide.WhoList", false); + m_configBoolValues[CONFIG_BOOL_ALLOW_TWO_SIDE_ADD_FRIEND] = sConfig.GetBoolDefault("AllowTwoSide.AddFriend", false); - m_configs[CONFIG_MIN_PLAYER_NAME] = sConfig.GetIntDefault ("MinPlayerName", 2); - if(m_configs[CONFIG_MIN_PLAYER_NAME] < 1 || m_configs[CONFIG_MIN_PLAYER_NAME] > MAX_PLAYER_NAME) + m_configUint32Values[CONFIG_UINT32_STRICT_PLAYER_NAMES] = sConfig.GetIntDefault ("StrictPlayerNames", 0); + m_configUint32Values[CONFIG_UINT32_STRICT_CHARTER_NAMES] = sConfig.GetIntDefault ("StrictCharterNames", 0); + m_configUint32Values[CONFIG_UINT32_STRICT_PET_NAMES] = sConfig.GetIntDefault ("StrictPetNames", 0); + + m_configUint32Values[CONFIG_UINT32_MIN_PLAYER_NAME] = sConfig.GetIntDefault ("MinPlayerName", 2); + if(m_configUint32Values[CONFIG_UINT32_MIN_PLAYER_NAME] < 1 || m_configUint32Values[CONFIG_UINT32_MIN_PLAYER_NAME] > MAX_PLAYER_NAME) { - sLog.outError("MinPlayerName (%i) must be in range 1..%u. Set to 2.",m_configs[CONFIG_MIN_PLAYER_NAME],MAX_PLAYER_NAME); - m_configs[CONFIG_MIN_PLAYER_NAME] = 2; + sLog.outError("MinPlayerName (%i) must be in range 1..%u. Set to 2.",m_configUint32Values[CONFIG_UINT32_MIN_PLAYER_NAME],MAX_PLAYER_NAME); + m_configUint32Values[CONFIG_UINT32_MIN_PLAYER_NAME] = 2; } - m_configs[CONFIG_MIN_CHARTER_NAME] = sConfig.GetIntDefault ("MinCharterName", 2); - if(m_configs[CONFIG_MIN_CHARTER_NAME] < 1 || m_configs[CONFIG_MIN_CHARTER_NAME] > MAX_CHARTER_NAME) + m_configUint32Values[CONFIG_UINT32_MIN_CHARTER_NAME] = sConfig.GetIntDefault ("MinCharterName", 2); + if(m_configUint32Values[CONFIG_UINT32_MIN_CHARTER_NAME] < 1 || m_configUint32Values[CONFIG_UINT32_MIN_CHARTER_NAME] > MAX_CHARTER_NAME) { - sLog.outError("MinCharterName (%i) must be in range 1..%u. Set to 2.",m_configs[CONFIG_MIN_CHARTER_NAME],MAX_CHARTER_NAME); - m_configs[CONFIG_MIN_CHARTER_NAME] = 2; + sLog.outError("MinCharterName (%i) must be in range 1..%u. Set to 2.",m_configUint32Values[CONFIG_UINT32_MIN_CHARTER_NAME],MAX_CHARTER_NAME); + m_configUint32Values[CONFIG_UINT32_MIN_CHARTER_NAME] = 2; } - m_configs[CONFIG_MIN_PET_NAME] = sConfig.GetIntDefault ("MinPetName", 2); - if(m_configs[CONFIG_MIN_PET_NAME] < 1 || m_configs[CONFIG_MIN_PET_NAME] > MAX_PET_NAME) + m_configUint32Values[CONFIG_UINT32_MIN_PET_NAME] = sConfig.GetIntDefault ("MinPetName", 2); + if(m_configUint32Values[CONFIG_UINT32_MIN_PET_NAME] < 1 || m_configUint32Values[CONFIG_UINT32_MIN_PET_NAME] > MAX_PET_NAME) { - sLog.outError("MinPetName (%i) must be in range 1..%u. Set to 2.",m_configs[CONFIG_MIN_PET_NAME],MAX_PET_NAME); - m_configs[CONFIG_MIN_PET_NAME] = 2; + sLog.outError("MinPetName (%i) must be in range 1..%u. Set to 2.",m_configUint32Values[CONFIG_UINT32_MIN_PET_NAME],MAX_PET_NAME); + m_configUint32Values[CONFIG_UINT32_MIN_PET_NAME] = 2; } - m_configs[CONFIG_CHARACTERS_CREATING_DISABLED] = sConfig.GetIntDefault ("CharactersCreatingDisabled", 0); + m_configUint32Values[CONFIG_UINT32_CHARACTERS_CREATING_DISABLED] = sConfig.GetIntDefault ("CharactersCreatingDisabled", 0); - m_configs[CONFIG_CHARACTERS_PER_REALM] = sConfig.GetIntDefault("CharactersPerRealm", 10); - if(m_configs[CONFIG_CHARACTERS_PER_REALM] < 1 || m_configs[CONFIG_CHARACTERS_PER_REALM] > 10) + m_configUint32Values[CONFIG_UINT32_CHARACTERS_PER_REALM] = sConfig.GetIntDefault("CharactersPerRealm", 10); + if(m_configUint32Values[CONFIG_UINT32_CHARACTERS_PER_REALM] < 1 || m_configUint32Values[CONFIG_UINT32_CHARACTERS_PER_REALM] > 10) { - sLog.outError("CharactersPerRealm (%i) must be in range 1..10. Set to 10.",m_configs[CONFIG_CHARACTERS_PER_REALM]); - m_configs[CONFIG_CHARACTERS_PER_REALM] = 10; + sLog.outError("CharactersPerRealm (%i) must be in range 1..10. Set to 10.",m_configUint32Values[CONFIG_UINT32_CHARACTERS_PER_REALM]); + m_configUint32Values[CONFIG_UINT32_CHARACTERS_PER_REALM] = 10; } - // must be after CONFIG_CHARACTERS_PER_REALM - m_configs[CONFIG_CHARACTERS_PER_ACCOUNT] = sConfig.GetIntDefault("CharactersPerAccount", 50); - if(m_configs[CONFIG_CHARACTERS_PER_ACCOUNT] < m_configs[CONFIG_CHARACTERS_PER_REALM]) + // must be after CONFIG_UINT32_CHARACTERS_PER_REALM + m_configUint32Values[CONFIG_UINT32_CHARACTERS_PER_ACCOUNT] = sConfig.GetIntDefault("CharactersPerAccount", 50); + if(m_configUint32Values[CONFIG_UINT32_CHARACTERS_PER_ACCOUNT] < m_configUint32Values[CONFIG_UINT32_CHARACTERS_PER_REALM]) { - sLog.outError("CharactersPerAccount (%i) can't be less than CharactersPerRealm (%i).",m_configs[CONFIG_CHARACTERS_PER_ACCOUNT],m_configs[CONFIG_CHARACTERS_PER_REALM]); - m_configs[CONFIG_CHARACTERS_PER_ACCOUNT] = m_configs[CONFIG_CHARACTERS_PER_REALM]; + sLog.outError("CharactersPerAccount (%i) can't be less than CharactersPerRealm (%i).",m_configUint32Values[CONFIG_UINT32_CHARACTERS_PER_ACCOUNT],m_configUint32Values[CONFIG_UINT32_CHARACTERS_PER_REALM]); + m_configUint32Values[CONFIG_UINT32_CHARACTERS_PER_ACCOUNT] = m_configUint32Values[CONFIG_UINT32_CHARACTERS_PER_REALM]; } - m_configs[CONFIG_HEROIC_CHARACTERS_PER_REALM] = sConfig.GetIntDefault("HeroicCharactersPerRealm", 1); - if(int32(m_configs[CONFIG_HEROIC_CHARACTERS_PER_REALM]) < 0 || m_configs[CONFIG_HEROIC_CHARACTERS_PER_REALM] > 10) + m_configUint32Values[CONFIG_UINT32_HEROIC_CHARACTERS_PER_REALM] = sConfig.GetIntDefault("HeroicCharactersPerRealm", 1); + if(int32(m_configUint32Values[CONFIG_UINT32_HEROIC_CHARACTERS_PER_REALM]) < 0 || m_configUint32Values[CONFIG_UINT32_HEROIC_CHARACTERS_PER_REALM] > 10) { - sLog.outError("HeroicCharactersPerRealm (%i) must be in range 0..10. Set to 1.",m_configs[CONFIG_HEROIC_CHARACTERS_PER_REALM]); - m_configs[CONFIG_HEROIC_CHARACTERS_PER_REALM] = 1; + sLog.outError("HeroicCharactersPerRealm (%i) must be in range 0..10. Set to 1.",m_configUint32Values[CONFIG_UINT32_HEROIC_CHARACTERS_PER_REALM]); + m_configUint32Values[CONFIG_UINT32_HEROIC_CHARACTERS_PER_REALM] = 1; } - m_configs[CONFIG_MIN_LEVEL_FOR_HEROIC_CHARACTER_CREATING] = sConfig.GetIntDefault("MinLevelForHeroicCharacterCreating", 55); + m_configUint32Values[CONFIG_UINT32_MIN_LEVEL_FOR_HEROIC_CHARACTER_CREATING] = sConfig.GetIntDefault("MinLevelForHeroicCharacterCreating", 55); - m_configs[CONFIG_SKIP_CINEMATICS] = sConfig.GetIntDefault("SkipCinematics", 0); - if(int32(m_configs[CONFIG_SKIP_CINEMATICS]) < 0 || m_configs[CONFIG_SKIP_CINEMATICS] > 2) + m_configUint32Values[CONFIG_UINT32_SKIP_CINEMATICS] = sConfig.GetIntDefault("SkipCinematics", 0); + if(int32(m_configUint32Values[CONFIG_UINT32_SKIP_CINEMATICS]) < 0 || m_configUint32Values[CONFIG_UINT32_SKIP_CINEMATICS] > 2) { - sLog.outError("SkipCinematics (%i) must be in range 0..2. Set to 0.",m_configs[CONFIG_SKIP_CINEMATICS]); - m_configs[CONFIG_SKIP_CINEMATICS] = 0; + sLog.outError("SkipCinematics (%i) must be in range 0..2. Set to 0.",m_configUint32Values[CONFIG_UINT32_SKIP_CINEMATICS]); + m_configUint32Values[CONFIG_UINT32_SKIP_CINEMATICS] = 0; } if(reload) { uint32 val = sConfig.GetIntDefault("MaxPlayerLevel", DEFAULT_MAX_LEVEL); - if(val!=m_configs[CONFIG_MAX_PLAYER_LEVEL]) - sLog.outError("MaxPlayerLevel option can't be changed at mangosd.conf reload, using current value (%u).",m_configs[CONFIG_MAX_PLAYER_LEVEL]); + if(val!=m_configUint32Values[CONFIG_UINT32_MAX_PLAYER_LEVEL]) + sLog.outError("MaxPlayerLevel option can't be changed at mangosd.conf reload, using current value (%u).",m_configUint32Values[CONFIG_UINT32_MAX_PLAYER_LEVEL]); } else - m_configs[CONFIG_MAX_PLAYER_LEVEL] = sConfig.GetIntDefault("MaxPlayerLevel", DEFAULT_MAX_LEVEL); + m_configUint32Values[CONFIG_UINT32_MAX_PLAYER_LEVEL] = sConfig.GetIntDefault("MaxPlayerLevel", DEFAULT_MAX_LEVEL); - if(m_configs[CONFIG_MAX_PLAYER_LEVEL] > MAX_LEVEL) + if(m_configUint32Values[CONFIG_UINT32_MAX_PLAYER_LEVEL] > MAX_LEVEL) { - sLog.outError("MaxPlayerLevel (%i) must be in range 1..%u. Set to %u.",m_configs[CONFIG_MAX_PLAYER_LEVEL],MAX_LEVEL,MAX_LEVEL); - m_configs[CONFIG_MAX_PLAYER_LEVEL] = MAX_LEVEL; + sLog.outError("MaxPlayerLevel (%i) must be in range 1..%u. Set to %u.",m_configUint32Values[CONFIG_UINT32_MAX_PLAYER_LEVEL],MAX_LEVEL,MAX_LEVEL); + m_configUint32Values[CONFIG_UINT32_MAX_PLAYER_LEVEL] = MAX_LEVEL; } - m_configs[CONFIG_START_PLAYER_LEVEL] = sConfig.GetIntDefault("StartPlayerLevel", 1); - if(m_configs[CONFIG_START_PLAYER_LEVEL] < 1) + m_configUint32Values[CONFIG_UINT32_START_PLAYER_LEVEL] = sConfig.GetIntDefault("StartPlayerLevel", 1); + if(m_configUint32Values[CONFIG_UINT32_START_PLAYER_LEVEL] < 1) { - sLog.outError("StartPlayerLevel (%i) must be in range 1..MaxPlayerLevel(%u). Set to 1.",m_configs[CONFIG_START_PLAYER_LEVEL],m_configs[CONFIG_MAX_PLAYER_LEVEL]); - m_configs[CONFIG_START_PLAYER_LEVEL] = 1; + sLog.outError("StartPlayerLevel (%i) must be in range 1..MaxPlayerLevel(%u). Set to 1.",m_configUint32Values[CONFIG_UINT32_START_PLAYER_LEVEL],m_configUint32Values[CONFIG_UINT32_MAX_PLAYER_LEVEL]); + m_configUint32Values[CONFIG_UINT32_START_PLAYER_LEVEL] = 1; } - else if(m_configs[CONFIG_START_PLAYER_LEVEL] > m_configs[CONFIG_MAX_PLAYER_LEVEL]) + else if(m_configUint32Values[CONFIG_UINT32_START_PLAYER_LEVEL] > m_configUint32Values[CONFIG_UINT32_MAX_PLAYER_LEVEL]) { - sLog.outError("StartPlayerLevel (%i) must be in range 1..MaxPlayerLevel(%u). Set to %u.",m_configs[CONFIG_START_PLAYER_LEVEL],m_configs[CONFIG_MAX_PLAYER_LEVEL],m_configs[CONFIG_MAX_PLAYER_LEVEL]); - m_configs[CONFIG_START_PLAYER_LEVEL] = m_configs[CONFIG_MAX_PLAYER_LEVEL]; + sLog.outError("StartPlayerLevel (%i) must be in range 1..MaxPlayerLevel(%u). Set to %u.",m_configUint32Values[CONFIG_UINT32_START_PLAYER_LEVEL],m_configUint32Values[CONFIG_UINT32_MAX_PLAYER_LEVEL],m_configUint32Values[CONFIG_UINT32_MAX_PLAYER_LEVEL]); + m_configUint32Values[CONFIG_UINT32_START_PLAYER_LEVEL] = m_configUint32Values[CONFIG_UINT32_MAX_PLAYER_LEVEL]; } - m_configs[CONFIG_START_HEROIC_PLAYER_LEVEL] = sConfig.GetIntDefault("StartHeroicPlayerLevel", 55); - if(m_configs[CONFIG_START_HEROIC_PLAYER_LEVEL] < 1) + m_configUint32Values[CONFIG_UINT32_START_HEROIC_PLAYER_LEVEL] = sConfig.GetIntDefault("StartHeroicPlayerLevel", 55); + if(m_configUint32Values[CONFIG_UINT32_START_HEROIC_PLAYER_LEVEL] < 1) { sLog.outError("StartHeroicPlayerLevel (%i) must be in range 1..MaxPlayerLevel(%u). Set to 55.", - m_configs[CONFIG_START_HEROIC_PLAYER_LEVEL],m_configs[CONFIG_MAX_PLAYER_LEVEL]); - m_configs[CONFIG_START_HEROIC_PLAYER_LEVEL] = 55; + m_configUint32Values[CONFIG_UINT32_START_HEROIC_PLAYER_LEVEL],m_configUint32Values[CONFIG_UINT32_MAX_PLAYER_LEVEL]); + m_configUint32Values[CONFIG_UINT32_START_HEROIC_PLAYER_LEVEL] = 55; } - else if(m_configs[CONFIG_START_HEROIC_PLAYER_LEVEL] > m_configs[CONFIG_MAX_PLAYER_LEVEL]) + else if(m_configUint32Values[CONFIG_UINT32_START_HEROIC_PLAYER_LEVEL] > m_configUint32Values[CONFIG_UINT32_MAX_PLAYER_LEVEL]) { sLog.outError("StartHeroicPlayerLevel (%i) must be in range 1..MaxPlayerLevel(%u). Set to %u.", - m_configs[CONFIG_START_HEROIC_PLAYER_LEVEL],m_configs[CONFIG_MAX_PLAYER_LEVEL],m_configs[CONFIG_MAX_PLAYER_LEVEL]); - m_configs[CONFIG_START_HEROIC_PLAYER_LEVEL] = m_configs[CONFIG_MAX_PLAYER_LEVEL]; + m_configUint32Values[CONFIG_UINT32_START_HEROIC_PLAYER_LEVEL],m_configUint32Values[CONFIG_UINT32_MAX_PLAYER_LEVEL],m_configUint32Values[CONFIG_UINT32_MAX_PLAYER_LEVEL]); + m_configUint32Values[CONFIG_UINT32_START_HEROIC_PLAYER_LEVEL] = m_configUint32Values[CONFIG_UINT32_MAX_PLAYER_LEVEL]; } - m_configs[CONFIG_START_PLAYER_MONEY] = sConfig.GetIntDefault("StartPlayerMoney", 0); - if(int32(m_configs[CONFIG_START_PLAYER_MONEY]) < 0) + m_configUint32Values[CONFIG_UINT32_START_PLAYER_MONEY] = sConfig.GetIntDefault("StartPlayerMoney", 0); + if(int32(m_configUint32Values[CONFIG_UINT32_START_PLAYER_MONEY]) < 0) { - sLog.outError("StartPlayerMoney (%i) must be in range 0..%u. Set to %u.",m_configs[CONFIG_START_PLAYER_MONEY],MAX_MONEY_AMOUNT,0); - m_configs[CONFIG_START_PLAYER_MONEY] = 0; + sLog.outError("StartPlayerMoney (%i) must be in range 0..%u. Set to %u.",m_configUint32Values[CONFIG_UINT32_START_PLAYER_MONEY],MAX_MONEY_AMOUNT,0); + m_configUint32Values[CONFIG_UINT32_START_PLAYER_MONEY] = 0; } - else if(m_configs[CONFIG_START_PLAYER_MONEY] > MAX_MONEY_AMOUNT) + else if(m_configUint32Values[CONFIG_UINT32_START_PLAYER_MONEY] > MAX_MONEY_AMOUNT) { sLog.outError("StartPlayerMoney (%i) must be in range 0..%u. Set to %u.", - m_configs[CONFIG_START_PLAYER_MONEY],MAX_MONEY_AMOUNT,MAX_MONEY_AMOUNT); - m_configs[CONFIG_START_PLAYER_MONEY] = MAX_MONEY_AMOUNT; + m_configUint32Values[CONFIG_UINT32_START_PLAYER_MONEY],MAX_MONEY_AMOUNT,MAX_MONEY_AMOUNT); + m_configUint32Values[CONFIG_UINT32_START_PLAYER_MONEY] = MAX_MONEY_AMOUNT; } - m_configs[CONFIG_MAX_HONOR_POINTS] = sConfig.GetIntDefault("MaxHonorPoints", 75000); - if(int32(m_configs[CONFIG_MAX_HONOR_POINTS]) < 0) + m_configUint32Values[CONFIG_UINT32_MAX_HONOR_POINTS] = sConfig.GetIntDefault("MaxHonorPoints", 75000); + if(int32(m_configUint32Values[CONFIG_UINT32_MAX_HONOR_POINTS]) < 0) { - sLog.outError("MaxHonorPoints (%i) can't be negative. Set to 0.",m_configs[CONFIG_MAX_HONOR_POINTS]); - m_configs[CONFIG_MAX_HONOR_POINTS] = 0; + sLog.outError("MaxHonorPoints (%i) can't be negative. Set to 0.",m_configUint32Values[CONFIG_UINT32_MAX_HONOR_POINTS]); + m_configUint32Values[CONFIG_UINT32_MAX_HONOR_POINTS] = 0; } - m_configs[CONFIG_START_HONOR_POINTS] = sConfig.GetIntDefault("StartHonorPoints", 0); - if(int32(m_configs[CONFIG_START_HONOR_POINTS]) < 0) + m_configUint32Values[CONFIG_UINT32_START_HONOR_POINTS] = sConfig.GetIntDefault("StartHonorPoints", 0); + if(int32(m_configUint32Values[CONFIG_UINT32_START_HONOR_POINTS]) < 0) { sLog.outError("StartHonorPoints (%i) must be in range 0..MaxHonorPoints(%u). Set to %u.", - m_configs[CONFIG_START_HONOR_POINTS],m_configs[CONFIG_MAX_HONOR_POINTS],0); - m_configs[CONFIG_START_HONOR_POINTS] = 0; + m_configUint32Values[CONFIG_UINT32_START_HONOR_POINTS],m_configUint32Values[CONFIG_UINT32_MAX_HONOR_POINTS],0); + m_configUint32Values[CONFIG_UINT32_START_HONOR_POINTS] = 0; } - else if(m_configs[CONFIG_START_HONOR_POINTS] > m_configs[CONFIG_MAX_HONOR_POINTS]) + else if(m_configUint32Values[CONFIG_UINT32_START_HONOR_POINTS] > m_configUint32Values[CONFIG_UINT32_MAX_HONOR_POINTS]) { sLog.outError("StartHonorPoints (%i) must be in range 0..MaxHonorPoints(%u). Set to %u.", - m_configs[CONFIG_START_HONOR_POINTS],m_configs[CONFIG_MAX_HONOR_POINTS],m_configs[CONFIG_MAX_HONOR_POINTS]); - m_configs[CONFIG_START_HONOR_POINTS] = m_configs[CONFIG_MAX_HONOR_POINTS]; + m_configUint32Values[CONFIG_UINT32_START_HONOR_POINTS],m_configUint32Values[CONFIG_UINT32_MAX_HONOR_POINTS],m_configUint32Values[CONFIG_UINT32_MAX_HONOR_POINTS]); + m_configUint32Values[CONFIG_UINT32_START_HONOR_POINTS] = m_configUint32Values[CONFIG_UINT32_MAX_HONOR_POINTS]; } - m_configs[CONFIG_MAX_ARENA_POINTS] = sConfig.GetIntDefault("MaxArenaPoints", 5000); - if(int32(m_configs[CONFIG_MAX_ARENA_POINTS]) < 0) + m_configUint32Values[CONFIG_UINT32_MAX_ARENA_POINTS] = sConfig.GetIntDefault("MaxArenaPoints", 5000); + if(int32(m_configUint32Values[CONFIG_UINT32_MAX_ARENA_POINTS]) < 0) { - sLog.outError("MaxArenaPoints (%i) can't be negative. Set to 0.",m_configs[CONFIG_MAX_ARENA_POINTS]); - m_configs[CONFIG_MAX_ARENA_POINTS] = 0; + sLog.outError("MaxArenaPoints (%i) can't be negative. Set to 0.",m_configUint32Values[CONFIG_UINT32_MAX_ARENA_POINTS]); + m_configUint32Values[CONFIG_UINT32_MAX_ARENA_POINTS] = 0; } - m_configs[CONFIG_START_ARENA_POINTS] = sConfig.GetIntDefault("StartArenaPoints", 0); - if(int32(m_configs[CONFIG_START_ARENA_POINTS]) < 0) + m_configUint32Values[CONFIG_UINT32_START_ARENA_POINTS] = sConfig.GetIntDefault("StartArenaPoints", 0); + if(int32(m_configUint32Values[CONFIG_UINT32_START_ARENA_POINTS]) < 0) { sLog.outError("StartArenaPoints (%i) must be in range 0..MaxArenaPoints(%u). Set to %u.", - m_configs[CONFIG_START_ARENA_POINTS],m_configs[CONFIG_MAX_ARENA_POINTS],0); - m_configs[CONFIG_MAX_ARENA_POINTS] = 0; + m_configUint32Values[CONFIG_UINT32_START_ARENA_POINTS],m_configUint32Values[CONFIG_UINT32_MAX_ARENA_POINTS],0); + m_configUint32Values[CONFIG_UINT32_MAX_ARENA_POINTS] = 0; } - else if(m_configs[CONFIG_START_ARENA_POINTS] > m_configs[CONFIG_MAX_ARENA_POINTS]) + else if(m_configUint32Values[CONFIG_UINT32_START_ARENA_POINTS] > m_configUint32Values[CONFIG_UINT32_MAX_ARENA_POINTS]) { sLog.outError("StartArenaPoints (%i) must be in range 0..MaxArenaPoints(%u). Set to %u.", - m_configs[CONFIG_START_ARENA_POINTS],m_configs[CONFIG_MAX_ARENA_POINTS],m_configs[CONFIG_MAX_ARENA_POINTS]); - m_configs[CONFIG_START_ARENA_POINTS] = m_configs[CONFIG_MAX_ARENA_POINTS]; + m_configUint32Values[CONFIG_UINT32_START_ARENA_POINTS],m_configUint32Values[CONFIG_UINT32_MAX_ARENA_POINTS],m_configUint32Values[CONFIG_UINT32_MAX_ARENA_POINTS]); + m_configUint32Values[CONFIG_UINT32_START_ARENA_POINTS] = m_configUint32Values[CONFIG_UINT32_MAX_ARENA_POINTS]; } - m_configs[CONFIG_ALL_TAXI_PATHS] = sConfig.GetBoolDefault("AllFlightPaths", false); + m_configBoolValues[CONFIG_BOOL_ALL_TAXI_PATHS] = sConfig.GetBoolDefault("AllFlightPaths", false); - m_configs[CONFIG_INSTANCE_IGNORE_LEVEL] = sConfig.GetBoolDefault("Instance.IgnoreLevel", false); - m_configs[CONFIG_INSTANCE_IGNORE_RAID] = sConfig.GetBoolDefault("Instance.IgnoreRaid", false); + m_configBoolValues[CONFIG_BOOL_INSTANCE_IGNORE_LEVEL] = sConfig.GetBoolDefault("Instance.IgnoreLevel", false); + m_configBoolValues[CONFIG_BOOL_INSTANCE_IGNORE_RAID] = sConfig.GetBoolDefault("Instance.IgnoreRaid", false); - m_configs[CONFIG_CAST_UNSTUCK] = sConfig.GetBoolDefault("CastUnstuck", true); - m_configs[CONFIG_MAX_SPELL_CASTS_IN_CHAIN] = sConfig.GetIntDefault("MaxSpellCastsInChain", 10); + m_configBoolValues[CONFIG_BOOL_CAST_UNSTUCK] = sConfig.GetBoolDefault("CastUnstuck", true); + m_configUint32Values[CONFIG_UINT32_MAX_SPELL_CASTS_IN_CHAIN] = sConfig.GetIntDefault("MaxSpellCastsInChain", 10); + m_configUint32Values[CONFIG_UINT32_INSTANCE_RESET_TIME_HOUR] = sConfig.GetIntDefault("Instance.ResetTimeHour", 4); + m_configUint32Values[CONFIG_UINT32_INSTANCE_UNLOAD_DELAY] = sConfig.GetIntDefault("Instance.UnloadDelay", 30 * MINUTE * IN_MILISECONDS); - m_configs[CONFIG_INSTANCE_RESET_TIME_HOUR] = sConfig.GetIntDefault("Instance.ResetTimeHour", 4); - m_configs[CONFIG_INSTANCE_UNLOAD_DELAY] = sConfig.GetIntDefault("Instance.UnloadDelay", 30 * MINUTE * IN_MILISECONDS); - - m_configs[CONFIG_MAX_PRIMARY_TRADE_SKILL] = sConfig.GetIntDefault("MaxPrimaryTradeSkill", 2); - m_configs[CONFIG_MIN_PETITION_SIGNS] = sConfig.GetIntDefault("MinPetitionSigns", 9); - if(m_configs[CONFIG_MIN_PETITION_SIGNS] > 9) + m_configUint32Values[CONFIG_UINT32_MAX_PRIMARY_TRADE_SKILL] = sConfig.GetIntDefault("MaxPrimaryTradeSkill", 2); + m_configUint32Values[CONFIG_UINT32_MIN_PETITION_SIGNS] = sConfig.GetIntDefault("MinPetitionSigns", 9); + if(m_configUint32Values[CONFIG_UINT32_MIN_PETITION_SIGNS] > 9) { - sLog.outError("MinPetitionSigns (%i) must be in range 0..9. Set to 9.", m_configs[CONFIG_MIN_PETITION_SIGNS]); - m_configs[CONFIG_MIN_PETITION_SIGNS] = 9; + sLog.outError("MinPetitionSigns (%i) must be in range 0..9. Set to 9.", m_configUint32Values[CONFIG_UINT32_MIN_PETITION_SIGNS]); + m_configUint32Values[CONFIG_UINT32_MIN_PETITION_SIGNS] = 9; } - m_configs[CONFIG_GM_LOGIN_STATE] = sConfig.GetIntDefault("GM.LoginState", 2); - m_configs[CONFIG_GM_VISIBLE_STATE] = sConfig.GetIntDefault("GM.Visible", 2); - m_configs[CONFIG_GM_ACCEPT_TICKETS] = sConfig.GetIntDefault("GM.AcceptTickets", 2); - m_configs[CONFIG_GM_CHAT] = sConfig.GetIntDefault("GM.Chat", 2); - m_configs[CONFIG_GM_WISPERING_TO] = sConfig.GetIntDefault("GM.WhisperingTo", 2); + m_configUint32Values[CONFIG_UINT32_GM_LOGIN_STATE] = sConfig.GetIntDefault("GM.LoginState", 2); + m_configUint32Values[CONFIG_UINT32_GM_VISIBLE_STATE] = sConfig.GetIntDefault("GM.Visible", 2); + m_configUint32Values[CONFIG_UINT32_GM_ACCEPT_TICKETS] = sConfig.GetIntDefault("GM.AcceptTickets", 2); + m_configUint32Values[CONFIG_UINT32_GM_CHAT] = sConfig.GetIntDefault("GM.Chat", 2); + m_configUint32Values[CONFIG_UINT32_GM_WISPERING_TO] = sConfig.GetIntDefault("GM.WhisperingTo", 2); - m_configs[CONFIG_GM_LEVEL_IN_GM_LIST] = sConfig.GetIntDefault("GM.InGMList.Level", SEC_ADMINISTRATOR); - m_configs[CONFIG_GM_LEVEL_IN_WHO_LIST] = sConfig.GetIntDefault("GM.InWhoList.Level", SEC_ADMINISTRATOR); - m_configs[CONFIG_GM_LOG_TRADE] = sConfig.GetBoolDefault("GM.LogTrade", false); + m_configUint32Values[CONFIG_UINT32_GM_LEVEL_IN_GM_LIST] = sConfig.GetIntDefault("GM.InGMList.Level", SEC_ADMINISTRATOR); + m_configUint32Values[CONFIG_UINT32_GM_LEVEL_IN_WHO_LIST] = sConfig.GetIntDefault("GM.InWhoList.Level", SEC_ADMINISTRATOR); + m_configBoolValues[CONFIG_BOOL_GM_LOG_TRADE] = sConfig.GetBoolDefault("GM.LogTrade", false); - m_configs[CONFIG_START_GM_LEVEL] = sConfig.GetIntDefault("GM.StartLevel", 1); - if(m_configs[CONFIG_START_GM_LEVEL] < m_configs[CONFIG_START_PLAYER_LEVEL]) + m_configUint32Values[CONFIG_UINT32_START_GM_LEVEL] = sConfig.GetIntDefault("GM.StartLevel", 1); + if(m_configUint32Values[CONFIG_UINT32_START_GM_LEVEL] < m_configUint32Values[CONFIG_UINT32_START_PLAYER_LEVEL]) { sLog.outError("GM.StartLevel (%i) must be in range StartPlayerLevel(%u)..%u. Set to %u.", - m_configs[CONFIG_START_GM_LEVEL],m_configs[CONFIG_START_PLAYER_LEVEL], MAX_LEVEL, m_configs[CONFIG_START_PLAYER_LEVEL]); - m_configs[CONFIG_START_GM_LEVEL] = m_configs[CONFIG_START_PLAYER_LEVEL]; + m_configUint32Values[CONFIG_UINT32_START_GM_LEVEL],m_configUint32Values[CONFIG_UINT32_START_PLAYER_LEVEL], MAX_LEVEL, m_configUint32Values[CONFIG_UINT32_START_PLAYER_LEVEL]); + m_configUint32Values[CONFIG_UINT32_START_GM_LEVEL] = m_configUint32Values[CONFIG_UINT32_START_PLAYER_LEVEL]; } - else if(m_configs[CONFIG_START_GM_LEVEL] > MAX_LEVEL) + else if(m_configUint32Values[CONFIG_UINT32_START_GM_LEVEL] > MAX_LEVEL) { - sLog.outError("GM.StartLevel (%i) must be in range 1..%u. Set to %u.", m_configs[CONFIG_START_GM_LEVEL], MAX_LEVEL, MAX_LEVEL); - m_configs[CONFIG_START_GM_LEVEL] = MAX_LEVEL; + sLog.outError("GM.StartLevel (%i) must be in range 1..%u. Set to %u.", m_configUint32Values[CONFIG_UINT32_START_GM_LEVEL], MAX_LEVEL, MAX_LEVEL); + m_configUint32Values[CONFIG_UINT32_START_GM_LEVEL] = MAX_LEVEL; } - m_configs[CONFIG_GM_LOWER_SECURITY] = sConfig.GetBoolDefault("GM.LowerSecurity", false); - m_configs[CONFIG_GM_ALLOW_ACHIEVEMENT_GAINS] = sConfig.GetBoolDefault("GM.AllowAchievementGain", true); + m_configBoolValues[CONFIG_BOOL_GM_LOWER_SECURITY] = sConfig.GetBoolDefault("GM.LowerSecurity", false); + m_configBoolValues[CONFIG_BOOL_GM_ALLOW_ACHIEVEMENT_GAINS] = sConfig.GetBoolDefault("GM.AllowAchievementGain", true); - m_configs[CONFIG_GROUP_VISIBILITY] = sConfig.GetIntDefault("Visibility.GroupMode",0); + m_configUint32Values[CONFIG_UINT32_GROUP_VISIBILITY] = sConfig.GetIntDefault("Visibility.GroupMode",0); - m_configs[CONFIG_MAIL_DELIVERY_DELAY] = sConfig.GetIntDefault("MailDeliveryDelay",HOUR); + m_configUint32Values[CONFIG_UINT32_MAIL_DELIVERY_DELAY] = sConfig.GetIntDefault("MailDeliveryDelay",HOUR); - m_configs[CONFIG_UPTIME_UPDATE] = sConfig.GetIntDefault("UpdateUptimeInterval", 10); - if(int32(m_configs[CONFIG_UPTIME_UPDATE])<=0) + m_configUint32Values[CONFIG_UINT32_UPTIME_UPDATE] = sConfig.GetIntDefault("UpdateUptimeInterval", 10); + if(int32(m_configUint32Values[CONFIG_UINT32_UPTIME_UPDATE])<=0) { - sLog.outError("UpdateUptimeInterval (%i) must be > 0, set to default 10.",m_configs[CONFIG_UPTIME_UPDATE]); - m_configs[CONFIG_UPTIME_UPDATE] = 10; + sLog.outError("UpdateUptimeInterval (%i) must be > 0, set to default 10.",m_configUint32Values[CONFIG_UINT32_UPTIME_UPDATE]); + m_configUint32Values[CONFIG_UINT32_UPTIME_UPDATE] = 10; } if(reload) { - m_timers[WUPDATE_UPTIME].SetInterval(m_configs[CONFIG_UPTIME_UPDATE]*MINUTE*IN_MILISECONDS); + m_timers[WUPDATE_UPTIME].SetInterval(m_configUint32Values[CONFIG_UINT32_UPTIME_UPDATE]*MINUTE*IN_MILISECONDS); m_timers[WUPDATE_UPTIME].Reset(); } - m_configs[CONFIG_SKILL_CHANCE_ORANGE] = sConfig.GetIntDefault("SkillChance.Orange",100); - m_configs[CONFIG_SKILL_CHANCE_YELLOW] = sConfig.GetIntDefault("SkillChance.Yellow",75); - m_configs[CONFIG_SKILL_CHANCE_GREEN] = sConfig.GetIntDefault("SkillChance.Green",25); - m_configs[CONFIG_SKILL_CHANCE_GREY] = sConfig.GetIntDefault("SkillChance.Grey",0); + m_configUint32Values[CONFIG_UINT32_SKILL_CHANCE_ORANGE] = sConfig.GetIntDefault("SkillChance.Orange",100); + m_configUint32Values[CONFIG_UINT32_SKILL_CHANCE_YELLOW] = sConfig.GetIntDefault("SkillChance.Yellow",75); + m_configUint32Values[CONFIG_UINT32_SKILL_CHANCE_GREEN] = sConfig.GetIntDefault("SkillChance.Green",25); + m_configUint32Values[CONFIG_UINT32_SKILL_CHANCE_GREY] = sConfig.GetIntDefault("SkillChance.Grey",0); - m_configs[CONFIG_SKILL_CHANCE_MINING_STEPS] = sConfig.GetIntDefault("SkillChance.MiningSteps",75); - m_configs[CONFIG_SKILL_CHANCE_SKINNING_STEPS] = sConfig.GetIntDefault("SkillChance.SkinningSteps",75); + m_configUint32Values[CONFIG_UINT32_SKILL_CHANCE_MINING_STEPS] = sConfig.GetIntDefault("SkillChance.MiningSteps",75); + m_configUint32Values[CONFIG_UINT32_SKILL_CHANCE_SKINNING_STEPS] = sConfig.GetIntDefault("SkillChance.SkinningSteps",75); - m_configs[CONFIG_SKILL_PROSPECTING] = sConfig.GetBoolDefault("SkillChance.Prospecting",false); - m_configs[CONFIG_SKILL_MILLING] = sConfig.GetBoolDefault("SkillChance.Milling",false); + m_configBoolValues[CONFIG_BOOL_SKILL_PROSPECTING] = sConfig.GetBoolDefault("SkillChance.Prospecting",false); + m_configBoolValues[CONFIG_BOOL_SKILL_MILLING] = sConfig.GetBoolDefault("SkillChance.Milling",false); - m_configs[CONFIG_SKILL_GAIN_CRAFTING] = sConfig.GetIntDefault("SkillGain.Crafting", 1); - if(m_configs[CONFIG_SKILL_GAIN_CRAFTING] < 0) // warning: comparison of unsigned expression < 0 is always false + m_configUint32Values[CONFIG_UINT32_SKILL_GAIN_CRAFTING] = sConfig.GetIntDefault("SkillGain.Crafting", 1); + if(m_configUint32Values[CONFIG_UINT32_SKILL_GAIN_CRAFTING] < 0) // warning: comparison of unsigned expression < 0 is always false { - sLog.outError("SkillGain.Crafting (%i) can't be negative. Set to 1.",m_configs[CONFIG_SKILL_GAIN_CRAFTING]); - m_configs[CONFIG_SKILL_GAIN_CRAFTING] = 1; + sLog.outError("SkillGain.Crafting (%i) can't be negative. Set to 1.",m_configUint32Values[CONFIG_UINT32_SKILL_GAIN_CRAFTING]); + m_configUint32Values[CONFIG_UINT32_SKILL_GAIN_CRAFTING] = 1; } - m_configs[CONFIG_SKILL_GAIN_DEFENSE] = sConfig.GetIntDefault("SkillGain.Defense", 1); - if(m_configs[CONFIG_SKILL_GAIN_DEFENSE] < 0) // warning: comparison of unsigned expression < 0 is always false + m_configUint32Values[CONFIG_UINT32_SKILL_GAIN_DEFENSE] = sConfig.GetIntDefault("SkillGain.Defense", 1); + if(m_configUint32Values[CONFIG_UINT32_SKILL_GAIN_DEFENSE] < 0) // warning: comparison of unsigned expression < 0 is always false { - sLog.outError("SkillGain.Defense (%i) can't be negative. Set to 1.",m_configs[CONFIG_SKILL_GAIN_DEFENSE]); - m_configs[CONFIG_SKILL_GAIN_DEFENSE] = 1; + sLog.outError("SkillGain.Defense (%i) can't be negative. Set to 1.",m_configUint32Values[CONFIG_UINT32_SKILL_GAIN_DEFENSE]); + m_configUint32Values[CONFIG_UINT32_SKILL_GAIN_DEFENSE] = 1; } - m_configs[CONFIG_SKILL_GAIN_GATHERING] = sConfig.GetIntDefault("SkillGain.Gathering", 1); - if(m_configs[CONFIG_SKILL_GAIN_GATHERING] < 0) // warning: comparison of unsigned expression < 0 is always false + m_configUint32Values[CONFIG_UINT32_SKILL_GAIN_GATHERING] = sConfig.GetIntDefault("SkillGain.Gathering", 1); + if(m_configUint32Values[CONFIG_UINT32_SKILL_GAIN_GATHERING] < 0) // warning: comparison of unsigned expression < 0 is always false { - sLog.outError("SkillGain.Gathering (%i) can't be negative. Set to 1.",m_configs[CONFIG_SKILL_GAIN_GATHERING]); - m_configs[CONFIG_SKILL_GAIN_GATHERING] = 1; + sLog.outError("SkillGain.Gathering (%i) can't be negative. Set to 1.",m_configUint32Values[CONFIG_UINT32_SKILL_GAIN_GATHERING]); + m_configUint32Values[CONFIG_UINT32_SKILL_GAIN_GATHERING] = 1; } - m_configs[CONFIG_SKILL_GAIN_WEAPON] = sConfig.GetIntDefault("SkillGain.Weapon", 1); - if(m_configs[CONFIG_SKILL_GAIN_WEAPON] < 0) // warning: comparison of unsigned expression < 0 is always false + m_configUint32Values[CONFIG_UINT32_SKILL_GAIN_WEAPON] = sConfig.GetIntDefault("SkillGain.Weapon", 1); + if(m_configUint32Values[CONFIG_UINT32_SKILL_GAIN_WEAPON] < 0) // warning: comparison of unsigned expression < 0 is always false { - sLog.outError("SkillGain.Weapon (%i) can't be negative. Set to 1.",m_configs[CONFIG_SKILL_GAIN_WEAPON]); - m_configs[CONFIG_SKILL_GAIN_WEAPON] = 1; + sLog.outError("SkillGain.Weapon (%i) can't be negative. Set to 1.",m_configUint32Values[CONFIG_UINT32_SKILL_GAIN_WEAPON]); + m_configUint32Values[CONFIG_UINT32_SKILL_GAIN_WEAPON] = 1; } - m_configs[CONFIG_MAX_OVERSPEED_PINGS] = sConfig.GetIntDefault("MaxOverspeedPings",2); - if(m_configs[CONFIG_MAX_OVERSPEED_PINGS] != 0 && m_configs[CONFIG_MAX_OVERSPEED_PINGS] < 2) + m_configUint32Values[CONFIG_UINT32_MAX_OVERSPEED_PINGS] = sConfig.GetIntDefault("MaxOverspeedPings",2); + if(m_configUint32Values[CONFIG_UINT32_MAX_OVERSPEED_PINGS] != 0 && m_configUint32Values[CONFIG_UINT32_MAX_OVERSPEED_PINGS] < 2) { - sLog.outError("MaxOverspeedPings (%i) must be in range 2..infinity (or 0 to disable check). Set to 2.",m_configs[CONFIG_MAX_OVERSPEED_PINGS]); - m_configs[CONFIG_MAX_OVERSPEED_PINGS] = 2; + sLog.outError("MaxOverspeedPings (%i) must be in range 2..infinity (or 0 to disable check). Set to 2.",m_configUint32Values[CONFIG_UINT32_MAX_OVERSPEED_PINGS]); + m_configUint32Values[CONFIG_UINT32_MAX_OVERSPEED_PINGS] = 2; } - m_configs[CONFIG_SAVE_RESPAWN_TIME_IMMEDIATLY] = sConfig.GetBoolDefault("SaveRespawnTimeImmediately",true); - m_configs[CONFIG_WEATHER] = sConfig.GetBoolDefault("ActivateWeather",true); + m_configBoolValues[CONFIG_BOOL_SAVE_RESPAWN_TIME_IMMEDIATLY] = sConfig.GetBoolDefault("SaveRespawnTimeImmediately",true); + m_configBoolValues[CONFIG_BOOL_WEATHER] = sConfig.GetBoolDefault("ActivateWeather",true); - m_configs[CONFIG_ALWAYS_MAX_SKILL_FOR_LEVEL] = sConfig.GetBoolDefault("AlwaysMaxSkillForLevel", false); + m_configBoolValues[CONFIG_BOOL_ALWAYS_MAX_SKILL_FOR_LEVEL] = sConfig.GetBoolDefault("AlwaysMaxSkillForLevel", false); if(reload) { uint32 val = sConfig.GetIntDefault("Expansion",MAX_EXPANSION); - if(val!=m_configs[CONFIG_EXPANSION]) - sLog.outError("Expansion option can't be changed at mangosd.conf reload, using current value (%u).",m_configs[CONFIG_EXPANSION]); + if(val!=m_configUint32Values[CONFIG_UINT32_EXPANSION]) + sLog.outError("Expansion option can't be changed at mangosd.conf reload, using current value (%u).",m_configUint32Values[CONFIG_UINT32_EXPANSION]); } else - m_configs[CONFIG_EXPANSION] = sConfig.GetIntDefault("Expansion",MAX_EXPANSION); + m_configUint32Values[CONFIG_UINT32_EXPANSION] = sConfig.GetIntDefault("Expansion",MAX_EXPANSION); - if(m_configs[CONFIG_EXPANSION] > MAX_EXPANSION) + if(m_configUint32Values[CONFIG_UINT32_EXPANSION] > MAX_EXPANSION) { - sLog.outError("Expansion option can't be greater %u but set to %u, used %u",MAX_EXPANSION,m_configs[CONFIG_EXPANSION],MAX_EXPANSION); - m_configs[CONFIG_EXPANSION] = MAX_EXPANSION; + sLog.outError("Expansion option can't be greater %u but set to %u, used %u",MAX_EXPANSION,m_configUint32Values[CONFIG_UINT32_EXPANSION],MAX_EXPANSION); + m_configUint32Values[CONFIG_UINT32_EXPANSION] = MAX_EXPANSION; } - m_configs[CONFIG_CHATFLOOD_MESSAGE_COUNT] = sConfig.GetIntDefault("ChatFlood.MessageCount",10); - m_configs[CONFIG_CHATFLOOD_MESSAGE_DELAY] = sConfig.GetIntDefault("ChatFlood.MessageDelay",1); - m_configs[CONFIG_CHATFLOOD_MUTE_TIME] = sConfig.GetIntDefault("ChatFlood.MuteTime",10); + m_configUint32Values[CONFIG_UINT32_CHATFLOOD_MESSAGE_COUNT] = sConfig.GetIntDefault("ChatFlood.MessageCount",10); + m_configUint32Values[CONFIG_UINT32_CHATFLOOD_MESSAGE_DELAY] = sConfig.GetIntDefault("ChatFlood.MessageDelay",1); + m_configUint32Values[CONFIG_UINT32_CHATFLOOD_MUTE_TIME] = sConfig.GetIntDefault("ChatFlood.MuteTime",10); - m_configs[CONFIG_EVENT_ANNOUNCE] = sConfig.GetIntDefault("Event.Announce",0); + m_configUint32Values[CONFIG_UINT32_EVENT_ANNOUNCE] = sConfig.GetIntDefault("Event.Announce",0); - m_configs[CONFIG_CREATURE_FAMILY_ASSISTANCE_DELAY] = sConfig.GetIntDefault("CreatureFamilyAssistanceDelay",1500); - m_configs[CONFIG_CREATURE_FAMILY_FLEE_DELAY] = sConfig.GetIntDefault("CreatureFamilyFleeDelay",7000); + m_configUint32Values[CONFIG_UINT32_CREATURE_FAMILY_ASSISTANCE_DELAY] = sConfig.GetIntDefault("CreatureFamilyAssistanceDelay",1500); + m_configUint32Values[CONFIG_UINT32_CREATURE_FAMILY_FLEE_DELAY] = sConfig.GetIntDefault("CreatureFamilyFleeDelay",7000); - m_configs[CONFIG_WORLD_BOSS_LEVEL_DIFF] = sConfig.GetIntDefault("WorldBossLevelDiff",3); + m_configUint32Values[CONFIG_UINT32_WORLD_BOSS_LEVEL_DIFF] = sConfig.GetIntDefault("WorldBossLevelDiff",3); // note: disable value (-1) will assigned as 0xFFFFFFF, to prevent overflow at calculations limit it to max possible player level MAX_LEVEL(100) - m_configs[CONFIG_QUEST_LOW_LEVEL_HIDE_DIFF] = sConfig.GetIntDefault("Quests.LowLevelHideDiff", 4); - if(m_configs[CONFIG_QUEST_LOW_LEVEL_HIDE_DIFF] > MAX_LEVEL) - m_configs[CONFIG_QUEST_LOW_LEVEL_HIDE_DIFF] = MAX_LEVEL; - m_configs[CONFIG_QUEST_HIGH_LEVEL_HIDE_DIFF] = sConfig.GetIntDefault("Quests.HighLevelHideDiff", 7); - if(m_configs[CONFIG_QUEST_HIGH_LEVEL_HIDE_DIFF] > MAX_LEVEL) - m_configs[CONFIG_QUEST_HIGH_LEVEL_HIDE_DIFF] = MAX_LEVEL; + m_configUint32Values[CONFIG_UINT32_QUEST_LOW_LEVEL_HIDE_DIFF] = sConfig.GetIntDefault("Quests.LowLevelHideDiff", 4); + if(m_configUint32Values[CONFIG_UINT32_QUEST_LOW_LEVEL_HIDE_DIFF] > MAX_LEVEL) + m_configUint32Values[CONFIG_UINT32_QUEST_LOW_LEVEL_HIDE_DIFF] = MAX_LEVEL; + m_configUint32Values[CONFIG_UINT32_QUEST_HIGH_LEVEL_HIDE_DIFF] = sConfig.GetIntDefault("Quests.HighLevelHideDiff", 7); + if(m_configUint32Values[CONFIG_UINT32_QUEST_HIGH_LEVEL_HIDE_DIFF] > MAX_LEVEL) + m_configUint32Values[CONFIG_UINT32_QUEST_HIGH_LEVEL_HIDE_DIFF] = MAX_LEVEL; - m_configs[CONFIG_DETECT_POS_COLLISION] = sConfig.GetBoolDefault("DetectPosCollision", true); + m_configBoolValues[CONFIG_BOOL_DETECT_POS_COLLISION] = sConfig.GetBoolDefault("DetectPosCollision", true); - m_configs[CONFIG_RESTRICTED_LFG_CHANNEL] = sConfig.GetBoolDefault("Channel.RestrictedLfg", true); - m_configs[CONFIG_SILENTLY_GM_JOIN_TO_CHANNEL] = sConfig.GetBoolDefault("Channel.SilentlyGMJoin", false); + m_configBoolValues[CONFIG_BOOL_RESTRICTED_LFG_CHANNEL] = sConfig.GetBoolDefault("Channel.RestrictedLfg", true); + m_configBoolValues[CONFIG_BOOL_SILENTLY_GM_JOIN_TO_CHANNEL] = sConfig.GetBoolDefault("Channel.SilentlyGMJoin", false); - m_configs[CONFIG_TALENTS_INSPECTING] = sConfig.GetBoolDefault("TalentsInspecting", true); - m_configs[CONFIG_CHAT_FAKE_MESSAGE_PREVENTING] = sConfig.GetBoolDefault("ChatFakeMessagePreventing", false); - m_configs[CONFIG_CHAT_STRICT_LINK_CHECKING_SEVERITY] = sConfig.GetIntDefault("ChatStrictLinkChecking.Severity", 0); - m_configs[CONFIG_CHAT_STRICT_LINK_CHECKING_KICK] = sConfig.GetIntDefault("ChatStrictLinkChecking.Kick", 0); + m_configBoolValues[CONFIG_BOOL_TALENTS_INSPECTING] = sConfig.GetBoolDefault("TalentsInspecting", true); + m_configBoolValues[CONFIG_BOOL_CHAT_FAKE_MESSAGE_PREVENTING] = sConfig.GetBoolDefault("ChatFakeMessagePreventing", false); + m_configUint32Values[CONFIG_UINT32_CHAT_STRICT_LINK_CHECKING_SEVERITY] = sConfig.GetIntDefault("ChatStrictLinkChecking.Severity", 0); + m_configUint32Values[CONFIG_UINT32_CHAT_STRICT_LINK_CHECKING_KICK] = sConfig.GetIntDefault("ChatStrictLinkChecking.Kick", 0); - m_configs[CONFIG_CORPSE_DECAY_NORMAL] = sConfig.GetIntDefault("Corpse.Decay.NORMAL", 60); - m_configs[CONFIG_CORPSE_DECAY_RARE] = sConfig.GetIntDefault("Corpse.Decay.RARE", 300); - m_configs[CONFIG_CORPSE_DECAY_ELITE] = sConfig.GetIntDefault("Corpse.Decay.ELITE", 300); - m_configs[CONFIG_CORPSE_DECAY_RAREELITE] = sConfig.GetIntDefault("Corpse.Decay.RAREELITE", 300); - m_configs[CONFIG_CORPSE_DECAY_WORLDBOSS] = sConfig.GetIntDefault("Corpse.Decay.WORLDBOSS", 3600); + m_configUint32Values[CONFIG_UINT32_CORPSE_DECAY_NORMAL] = sConfig.GetIntDefault("Corpse.Decay.NORMAL", 60); + m_configUint32Values[CONFIG_UINT32_CORPSE_DECAY_RARE] = sConfig.GetIntDefault("Corpse.Decay.RARE", 300); + m_configUint32Values[CONFIG_UINT32_CORPSE_DECAY_ELITE] = sConfig.GetIntDefault("Corpse.Decay.ELITE", 300); + m_configUint32Values[CONFIG_UINT32_CORPSE_DECAY_RAREELITE] = sConfig.GetIntDefault("Corpse.Decay.RAREELITE", 300); + m_configUint32Values[CONFIG_UINT32_CORPSE_DECAY_WORLDBOSS] = sConfig.GetIntDefault("Corpse.Decay.WORLDBOSS", 3600); - m_configs[CONFIG_DEATH_SICKNESS_LEVEL] = sConfig.GetIntDefault ("Death.SicknessLevel", 11); - m_configs[CONFIG_DEATH_CORPSE_RECLAIM_DELAY_PVP] = sConfig.GetBoolDefault("Death.CorpseReclaimDelay.PvP", true); - m_configs[CONFIG_DEATH_CORPSE_RECLAIM_DELAY_PVE] = sConfig.GetBoolDefault("Death.CorpseReclaimDelay.PvE", true); - m_configs[CONFIG_DEATH_BONES_WORLD] = sConfig.GetBoolDefault("Death.Bones.World", true); - m_configs[CONFIG_DEATH_BONES_BG_OR_ARENA] = sConfig.GetBoolDefault("Death.Bones.BattlegroundOrArena", true); + m_configUint32Values[CONFIG_UINT32_DEATH_SICKNESS_LEVEL] = sConfig.GetIntDefault ("Death.SicknessLevel", 11); - m_configs[CONFIG_THREAT_RADIUS] = sConfig.GetIntDefault("ThreatRadius", 100); + m_configBoolValues[CONFIG_BOOL_DEATH_CORPSE_RECLAIM_DELAY_PVP] = sConfig.GetBoolDefault("Death.CorpseReclaimDelay.PvP", true); + m_configBoolValues[CONFIG_BOOL_DEATH_CORPSE_RECLAIM_DELAY_PVE] = sConfig.GetBoolDefault("Death.CorpseReclaimDelay.PvE", true); + m_configBoolValues[CONFIG_BOOL_DEATH_BONES_WORLD] = sConfig.GetBoolDefault("Death.Bones.World", true); + m_configBoolValues[CONFIG_BOOL_DEATH_BONES_BG_OR_ARENA] = sConfig.GetBoolDefault("Death.Bones.BattlegroundOrArena", true); + + m_configUint32Values[CONFIG_UINT32_THREAT_RADIUS] = sConfig.GetIntDefault("ThreatRadius", 100); // always use declined names in the russian client - m_configs[CONFIG_DECLINED_NAMES_USED] = - (m_configs[CONFIG_REALM_ZONE] == REALM_ZONE_RUSSIAN) ? true : sConfig.GetBoolDefault("DeclinedNames", false); + m_configBoolValues[CONFIG_BOOL_DECLINED_NAMES_USED] = + (m_configUint32Values[CONFIG_UINT32_REALM_ZONE] == REALM_ZONE_RUSSIAN) ? true : sConfig.GetBoolDefault("DeclinedNames", false); - m_configs[CONFIG_BATTLEGROUND_CAST_DESERTER] = sConfig.GetBoolDefault("Battleground.CastDeserter", true); - m_configs[CONFIG_BATTLEGROUND_QUEUE_ANNOUNCER_ENABLE] = sConfig.GetBoolDefault("Battleground.QueueAnnouncer.Enable", false); - m_configs[CONFIG_BATTLEGROUND_QUEUE_ANNOUNCER_PLAYERONLY] = sConfig.GetBoolDefault("Battleground.QueueAnnouncer.PlayerOnly", false); - m_configs[CONFIG_BATTLEGROUND_INVITATION_TYPE] = sConfig.GetIntDefault ("Battleground.InvitationType", 0); - m_configs[CONFIG_BATTLEGROUND_PREMATURE_FINISH_TIMER] = sConfig.GetIntDefault ("BattleGround.PrematureFinishTimer", 5 * MINUTE * IN_MILISECONDS); - m_configs[CONFIG_BATTLEGROUND_PREMADE_GROUP_WAIT_FOR_MATCH] = sConfig.GetIntDefault ("BattleGround.PremadeGroupWaitForMatch", 30 * MINUTE * IN_MILISECONDS); - m_configs[CONFIG_ARENA_MAX_RATING_DIFFERENCE] = sConfig.GetIntDefault ("Arena.MaxRatingDifference", 150); - m_configs[CONFIG_ARENA_RATING_DISCARD_TIMER] = sConfig.GetIntDefault ("Arena.RatingDiscardTimer", 10 * MINUTE * IN_MILISECONDS); - m_configs[CONFIG_ARENA_AUTO_DISTRIBUTE_POINTS] = sConfig.GetBoolDefault("Arena.AutoDistributePoints", false); - m_configs[CONFIG_ARENA_AUTO_DISTRIBUTE_INTERVAL_DAYS] = sConfig.GetIntDefault ("Arena.AutoDistributeInterval", 7); - m_configs[CONFIG_ARENA_QUEUE_ANNOUNCER_ENABLE] = sConfig.GetBoolDefault("Arena.QueueAnnouncer.Enable", false); - m_configs[CONFIG_ARENA_SEASON_ID] = sConfig.GetIntDefault ("Arena.ArenaSeason.ID", 1); - m_configs[CONFIG_ARENA_SEASON_IN_PROGRESS] = sConfig.GetBoolDefault("Arena.ArenaSeason.InProgress", true); + m_configBoolValues[CONFIG_BOOL_BATTLEGROUND_CAST_DESERTER] = sConfig.GetBoolDefault("Battleground.CastDeserter", true); + m_configBoolValues[CONFIG_BOOL_BATTLEGROUND_QUEUE_ANNOUNCER_ENABLE] = sConfig.GetBoolDefault("Battleground.QueueAnnouncer.Enable", false); + m_configBoolValues[CONFIG_BOOL_BATTLEGROUND_QUEUE_ANNOUNCER_PLAYERONLY] = sConfig.GetBoolDefault("Battleground.QueueAnnouncer.PlayerOnly", false); - m_configs[CONFIG_OFFHAND_CHECK_AT_TALENTS_RESET] = sConfig.GetBoolDefault("OffhandCheckAtTalentsReset", false); + m_configUint32Values[CONFIG_UINT32_BATTLEGROUND_INVITATION_TYPE] = sConfig.GetIntDefault ("Battleground.InvitationType", 0); + m_configUint32Values[CONFIG_UINT32_BATTLEGROUND_PREMATURE_FINISH_TIMER] = sConfig.GetIntDefault ("BattleGround.PrematureFinishTimer", 5 * MINUTE * IN_MILISECONDS); + m_configUint32Values[CONFIG_UINT32_BATTLEGROUND_PREMADE_GROUP_WAIT_FOR_MATCH] = sConfig.GetIntDefault ("BattleGround.PremadeGroupWaitForMatch", 30 * MINUTE * IN_MILISECONDS); + m_configUint32Values[CONFIG_UINT32_ARENA_MAX_RATING_DIFFERENCE] = sConfig.GetIntDefault ("Arena.MaxRatingDifference", 150); + m_configUint32Values[CONFIG_UINT32_ARENA_RATING_DISCARD_TIMER] = sConfig.GetIntDefault ("Arena.RatingDiscardTimer", 10 * MINUTE * IN_MILISECONDS); + m_configBoolValues[CONFIG_BOOL_ARENA_AUTO_DISTRIBUTE_POINTS] = sConfig.GetBoolDefault("Arena.AutoDistributePoints", false); + m_configUint32Values[CONFIG_UINT32_ARENA_AUTO_DISTRIBUTE_INTERVAL_DAYS] = sConfig.GetIntDefault ("Arena.AutoDistributeInterval", 7); + m_configBoolValues[CONFIG_BOOL_ARENA_QUEUE_ANNOUNCER_ENABLE] = sConfig.GetBoolDefault("Arena.QueueAnnouncer.Enable", false); + m_configUint32Values[CONFIG_UINT32_ARENA_SEASON_ID] = sConfig.GetIntDefault ("Arena.ArenaSeason.ID", 1); + m_configBoolValues[CONFIG_BOOL_ARENA_SEASON_IN_PROGRESS] = sConfig.GetBoolDefault("Arena.ArenaSeason.InProgress", true); + + m_configBoolValues[CONFIG_BOOL_OFFHAND_CHECK_AT_TALENTS_RESET] = sConfig.GetBoolDefault("OffhandCheckAtTalentsReset", false); if(int clientCacheId = sConfig.GetIntDefault("ClientCacheVersion", 0)) { // overwrite DB/old value if(clientCacheId > 0) { - m_configs[CONFIG_CLIENTCACHE_VERSION] = clientCacheId; + m_configUint32Values[CONFIG_UINT32_CLIENTCACHE_VERSION] = clientCacheId; sLog.outString("Client cache version set to: %u", clientCacheId); } else sLog.outError("ClientCacheVersion can't be negative %d, ignored.", clientCacheId); } - m_configs[CONFIG_INSTANT_LOGOUT] = sConfig.GetIntDefault("InstantLogout", SEC_MODERATOR); + m_configUint32Values[CONFIG_UINT32_INSTANT_LOGOUT] = sConfig.GetIntDefault("InstantLogout", SEC_MODERATOR); - m_configs[CONFIG_GUILD_EVENT_LOG_COUNT] = sConfig.GetIntDefault("Guild.EventLogRecordsCount", GUILD_EVENTLOG_MAX_RECORDS); - if (m_configs[CONFIG_GUILD_EVENT_LOG_COUNT] < GUILD_EVENTLOG_MAX_RECORDS) - m_configs[CONFIG_GUILD_EVENT_LOG_COUNT] = GUILD_EVENTLOG_MAX_RECORDS; - m_configs[CONFIG_GUILD_BANK_EVENT_LOG_COUNT] = sConfig.GetIntDefault("Guild.BankEventLogRecordsCount", GUILD_BANK_MAX_LOGS); - if (m_configs[CONFIG_GUILD_BANK_EVENT_LOG_COUNT] < GUILD_BANK_MAX_LOGS) - m_configs[CONFIG_GUILD_BANK_EVENT_LOG_COUNT] = GUILD_BANK_MAX_LOGS; + m_configUint32Values[CONFIG_UINT32_GUILD_EVENT_LOG_COUNT] = sConfig.GetIntDefault("Guild.EventLogRecordsCount", GUILD_EVENTLOG_MAX_RECORDS); + if (m_configUint32Values[CONFIG_UINT32_GUILD_EVENT_LOG_COUNT] < GUILD_EVENTLOG_MAX_RECORDS) + m_configUint32Values[CONFIG_UINT32_GUILD_EVENT_LOG_COUNT] = GUILD_EVENTLOG_MAX_RECORDS; + m_configUint32Values[CONFIG_UINT32_GUILD_BANK_EVENT_LOG_COUNT] = sConfig.GetIntDefault("Guild.BankEventLogRecordsCount", GUILD_BANK_MAX_LOGS); + if (m_configUint32Values[CONFIG_UINT32_GUILD_BANK_EVENT_LOG_COUNT] < GUILD_BANK_MAX_LOGS) + m_configUint32Values[CONFIG_UINT32_GUILD_BANK_EVENT_LOG_COUNT] = GUILD_BANK_MAX_LOGS; - m_configs[CONFIG_TIMERBAR_FATIGUE_GMLEVEL] = sConfig.GetIntDefault("TimerBar.Fatigue.GMLevel", SEC_CONSOLE); - m_configs[CONFIG_TIMERBAR_FATIGUE_MAX] = sConfig.GetIntDefault("TimerBar.Fatigue.Max", 60); - m_configs[CONFIG_TIMERBAR_BREATH_GMLEVEL] = sConfig.GetIntDefault("TimerBar.Breath.GMLevel", SEC_CONSOLE); - m_configs[CONFIG_TIMERBAR_BREATH_MAX] = sConfig.GetIntDefault("TimerBar.Breath.Max", 180); - m_configs[CONFIG_TIMERBAR_FIRE_GMLEVEL] = sConfig.GetIntDefault("TimerBar.Fire.GMLevel", SEC_CONSOLE); - m_configs[CONFIG_TIMERBAR_FIRE_MAX] = sConfig.GetIntDefault("TimerBar.Fire.Max", 1); + m_configUint32Values[CONFIG_UINT32_TIMERBAR_FATIGUE_GMLEVEL] = sConfig.GetIntDefault("TimerBar.Fatigue.GMLevel", SEC_CONSOLE); + m_configUint32Values[CONFIG_UINT32_TIMERBAR_FATIGUE_MAX] = sConfig.GetIntDefault("TimerBar.Fatigue.Max", 60); + m_configUint32Values[CONFIG_UINT32_TIMERBAR_BREATH_GMLEVEL] = sConfig.GetIntDefault("TimerBar.Breath.GMLevel", SEC_CONSOLE); + m_configUint32Values[CONFIG_UINT32_TIMERBAR_BREATH_MAX] = sConfig.GetIntDefault("TimerBar.Breath.Max", 180); + m_configUint32Values[CONFIG_UINT32_TIMERBAR_FIRE_GMLEVEL] = sConfig.GetIntDefault("TimerBar.Fire.GMLevel", SEC_CONSOLE); + m_configUint32Values[CONFIG_UINT32_TIMERBAR_FIRE_MAX] = sConfig.GetIntDefault("TimerBar.Fire.Max", 1); m_VisibleUnitGreyDistance = sConfig.GetFloatDefault("Visibility.Distance.Grey.Unit", 1); if(m_VisibleUnitGreyDistance > MAX_VISIBILITY_DISTANCE) @@ -1021,10 +1023,10 @@ void World::LoadConfigSettings(bool reload) //visibility on continents m_MaxVisibleDistanceOnContinents = sConfig.GetFloatDefault("Visibility.Distance.Continents", DEFAULT_VISIBILITY_DISTANCE); - if(m_MaxVisibleDistanceOnContinents < 45*getRate(RATE_CREATURE_AGGRO)) + if(m_MaxVisibleDistanceOnContinents < 45*getConfig(CONFIG_FLOAT_RATE_CREATURE_AGGRO)) { - sLog.outError("Visibility.Distance.Continents can't be less max aggro radius %f", 45*getRate(RATE_CREATURE_AGGRO)); - m_MaxVisibleDistanceOnContinents = 45*getRate(RATE_CREATURE_AGGRO); + sLog.outError("Visibility.Distance.Continents can't be less max aggro radius %f", 45*getConfig(CONFIG_FLOAT_RATE_CREATURE_AGGRO)); + m_MaxVisibleDistanceOnContinents = 45*getConfig(CONFIG_FLOAT_RATE_CREATURE_AGGRO); } else if(m_MaxVisibleDistanceOnContinents + m_VisibleUnitGreyDistance > MAX_VISIBILITY_DISTANCE) { @@ -1034,10 +1036,10 @@ void World::LoadConfigSettings(bool reload) //visibility in instances m_MaxVisibleDistanceInInctances = sConfig.GetFloatDefault("Visibility.Distance.Instances", DEFAULT_VISIBILITY_INSTANCE); - if(m_MaxVisibleDistanceInInctances < 45*getRate(RATE_CREATURE_AGGRO)) + if(m_MaxVisibleDistanceInInctances < 45*getConfig(CONFIG_FLOAT_RATE_CREATURE_AGGRO)) { - sLog.outError("Visibility.Distance.Instances can't be less max aggro radius %f",45*getRate(RATE_CREATURE_AGGRO)); - m_MaxVisibleDistanceInInctances = 45*getRate(RATE_CREATURE_AGGRO); + sLog.outError("Visibility.Distance.Instances can't be less max aggro radius %f",45*getConfig(CONFIG_FLOAT_RATE_CREATURE_AGGRO)); + m_MaxVisibleDistanceInInctances = 45*getConfig(CONFIG_FLOAT_RATE_CREATURE_AGGRO); } else if(m_MaxVisibleDistanceInInctances + m_VisibleUnitGreyDistance > MAX_VISIBILITY_DISTANCE) { @@ -1047,10 +1049,10 @@ void World::LoadConfigSettings(bool reload) //visibility in BG/Arenas m_MaxVisibleDistanceInBGArenas = sConfig.GetFloatDefault("Visibility.Distance.BGArenas", DEFAULT_VISIBILITY_BGARENAS); - if(m_MaxVisibleDistanceInBGArenas < 45*getRate(RATE_CREATURE_AGGRO)) + if(m_MaxVisibleDistanceInBGArenas < 45*getConfig(CONFIG_FLOAT_RATE_CREATURE_AGGRO)) { - sLog.outError("Visibility.Distance.BGArenas can't be less max aggro radius %f",45*getRate(RATE_CREATURE_AGGRO)); - m_MaxVisibleDistanceInBGArenas = 45*getRate(RATE_CREATURE_AGGRO); + sLog.outError("Visibility.Distance.BGArenas can't be less max aggro radius %f",45*getConfig(CONFIG_FLOAT_RATE_CREATURE_AGGRO)); + m_MaxVisibleDistanceInBGArenas = 45*getConfig(CONFIG_FLOAT_RATE_CREATURE_AGGRO); } else if(m_MaxVisibleDistanceInBGArenas + m_VisibleUnitGreyDistance > MAX_VISIBILITY_DISTANCE) { @@ -1128,7 +1130,7 @@ void World::SetInitialWorldSettings() ||!MapManager::ExistMapAndVMap(0, 1676.35f, 1677.45f) ||!MapManager::ExistMapAndVMap(1, 10311.3f, 832.463f) ||!MapManager::ExistMapAndVMap(1,-2917.58f,-257.98f) - ||m_configs[CONFIG_EXPANSION] && ( + ||m_configUint32Values[CONFIG_UINT32_EXPANSION] && ( !MapManager::ExistMapAndVMap(530,10349.6f,-6357.29f) || !MapManager::ExistMapAndVMap(530,-3961.64f,-13931.2f) ) ) { sLog.outError("Correct *.map files not found in path '%smaps' or *.vmap/*vmdir files in '%svmaps'. Please place *.map/*.vmap/*.vmdir files in appropriate directories or correct the DataDir value in the mangosd.conf file.",m_dataPath.c_str(),m_dataPath.c_str()); @@ -1145,8 +1147,8 @@ void World::SetInitialWorldSettings() //No SQL injection as values are treated as integers // not send custom type REALM_FFA_PVP to realm list - uint32 server_type = IsFFAPvPRealm() ? REALM_TYPE_PVP : getConfig(CONFIG_GAME_TYPE); - uint32 realm_zone = getConfig(CONFIG_REALM_ZONE); + uint32 server_type = IsFFAPvPRealm() ? REALM_TYPE_PVP : getConfig(CONFIG_UINT32_GAME_TYPE); + uint32 realm_zone = getConfig(CONFIG_UINT32_REALM_ZONE); loginDatabase.PExecute("UPDATE realmlist SET icon = %u, timezone = %u WHERE id = '%d'", server_type, realm_zone, realmID); ///- Remove the bones after a restart @@ -1486,7 +1488,7 @@ void World::SetInitialWorldSettings() m_timers[WUPDATE_SESSIONS].SetInterval(0); m_timers[WUPDATE_WEATHERS].SetInterval(1*IN_MILISECONDS); m_timers[WUPDATE_AUCTIONS].SetInterval(MINUTE*IN_MILISECONDS); - m_timers[WUPDATE_UPTIME].SetInterval(m_configs[CONFIG_UPTIME_UPDATE]*MINUTE*IN_MILISECONDS); + m_timers[WUPDATE_UPTIME].SetInterval(m_configUint32Values[CONFIG_UINT32_UPTIME_UPDATE]*MINUTE*IN_MILISECONDS); //Update "uptime" table based on configuration entry in minutes. m_timers[WUPDATE_CORPSES].SetInterval(20*MINUTE*IN_MILISECONDS); //erase corpses every 20 minutes @@ -2203,7 +2205,7 @@ void World::LoadDBVersion() m_CreatureEventAIVersion = fields[1].GetCppString(); // will be overwrite by config values if different and non-0 - m_configs[CONFIG_CLIENTCACHE_VERSION] = fields[2].GetUInt32(); + m_configUint32Values[CONFIG_UINT32_CLIENTCACHE_VERSION] = fields[2].GetUInt32(); delete result; } diff --git a/src/game/World.h b/src/game/World.h index 7508de28f..879da8143 100644 --- a/src/game/World.h +++ b/src/game/World.h @@ -81,214 +81,819 @@ enum WorldTimers }; /// Configuration elements -enum WorldConfigs +enum eConfigUint32Values { - CONFIG_COMPRESSION = 0, - CONFIG_GRID_UNLOAD, - CONFIG_INTERVAL_SAVE, - CONFIG_INTERVAL_GRIDCLEAN, - CONFIG_INTERVAL_MAPUPDATE, - CONFIG_INTERVAL_CHANGEWEATHER, - CONFIG_PORT_WORLD, - CONFIG_SOCKET_SELECTTIME, - CONFIG_GAME_TYPE, - CONFIG_REALM_ZONE, - CONFIG_ALLOW_TWO_SIDE_ACCOUNTS, - CONFIG_ALLOW_TWO_SIDE_INTERACTION_CHAT, - CONFIG_ALLOW_TWO_SIDE_INTERACTION_CHANNEL, - CONFIG_ALLOW_TWO_SIDE_INTERACTION_GROUP, - CONFIG_ALLOW_TWO_SIDE_INTERACTION_GUILD, - CONFIG_ALLOW_TWO_SIDE_INTERACTION_AUCTION, - CONFIG_ALLOW_TWO_SIDE_INTERACTION_MAIL, - CONFIG_ALLOW_TWO_SIDE_WHO_LIST, - CONFIG_ALLOW_TWO_SIDE_ADD_FRIEND, - CONFIG_STRICT_PLAYER_NAMES, - CONFIG_STRICT_CHARTER_NAMES, - CONFIG_STRICT_PET_NAMES, - CONFIG_MIN_PLAYER_NAME, - CONFIG_MIN_CHARTER_NAME, - CONFIG_MIN_PET_NAME, - CONFIG_CHARACTERS_CREATING_DISABLED, - CONFIG_CHARACTERS_PER_ACCOUNT, - CONFIG_CHARACTERS_PER_REALM, - CONFIG_HEROIC_CHARACTERS_PER_REALM, - CONFIG_MIN_LEVEL_FOR_HEROIC_CHARACTER_CREATING, - CONFIG_SKIP_CINEMATICS, - CONFIG_MAX_PLAYER_LEVEL, - CONFIG_START_PLAYER_LEVEL, - CONFIG_START_HEROIC_PLAYER_LEVEL, - CONFIG_START_PLAYER_MONEY, - CONFIG_MAX_HONOR_POINTS, - CONFIG_START_HONOR_POINTS, - CONFIG_MAX_ARENA_POINTS, - CONFIG_START_ARENA_POINTS, - CONFIG_INSTANCE_IGNORE_LEVEL, - CONFIG_INSTANCE_IGNORE_RAID, - CONFIG_INSTANCE_RESET_TIME_HOUR, - CONFIG_INSTANCE_UNLOAD_DELAY, - CONFIG_CAST_UNSTUCK, - CONFIG_MAX_SPELL_CASTS_IN_CHAIN, - CONFIG_MAX_PRIMARY_TRADE_SKILL, - CONFIG_MIN_PETITION_SIGNS, - CONFIG_GM_LOGIN_STATE, - CONFIG_GM_VISIBLE_STATE, - CONFIG_GM_ACCEPT_TICKETS, - CONFIG_GM_CHAT, - CONFIG_GM_WISPERING_TO, - CONFIG_GM_LEVEL_IN_GM_LIST, - CONFIG_GM_LEVEL_IN_WHO_LIST, - CONFIG_GM_LOG_TRADE, - CONFIG_START_GM_LEVEL, - CONFIG_GM_LOWER_SECURITY, - CONFIG_GM_ALLOW_ACHIEVEMENT_GAINS, - CONFIG_GROUP_VISIBILITY, - CONFIG_MAIL_DELIVERY_DELAY, - CONFIG_UPTIME_UPDATE, - CONFIG_SKILL_CHANCE_ORANGE, - CONFIG_SKILL_CHANCE_YELLOW, - CONFIG_SKILL_CHANCE_GREEN, - CONFIG_SKILL_CHANCE_GREY, - CONFIG_SKILL_CHANCE_MINING_STEPS, - CONFIG_SKILL_CHANCE_SKINNING_STEPS, - CONFIG_SKILL_PROSPECTING, - CONFIG_SKILL_GAIN_CRAFTING, - CONFIG_SKILL_GAIN_DEFENSE, - CONFIG_SKILL_GAIN_GATHERING, - CONFIG_SKILL_GAIN_WEAPON, - CONFIG_MAX_OVERSPEED_PINGS, - CONFIG_SAVE_RESPAWN_TIME_IMMEDIATLY, - CONFIG_ALWAYS_MAX_SKILL_FOR_LEVEL, - CONFIG_WEATHER, - CONFIG_EXPANSION, - CONFIG_CHATFLOOD_MESSAGE_COUNT, - CONFIG_CHATFLOOD_MESSAGE_DELAY, - CONFIG_CHATFLOOD_MUTE_TIME, - CONFIG_EVENT_ANNOUNCE, - CONFIG_CREATURE_FAMILY_ASSISTANCE_DELAY, - CONFIG_CREATURE_FAMILY_FLEE_DELAY, - CONFIG_WORLD_BOSS_LEVEL_DIFF, - CONFIG_QUEST_LOW_LEVEL_HIDE_DIFF, - CONFIG_QUEST_HIGH_LEVEL_HIDE_DIFF, - CONFIG_DETECT_POS_COLLISION, - CONFIG_RESTRICTED_LFG_CHANNEL, - CONFIG_SILENTLY_GM_JOIN_TO_CHANNEL, - CONFIG_TALENTS_INSPECTING, - CONFIG_CHAT_FAKE_MESSAGE_PREVENTING, - CONFIG_CHAT_STRICT_LINK_CHECKING_SEVERITY, - CONFIG_CHAT_STRICT_LINK_CHECKING_KICK, - CONFIG_CORPSE_DECAY_NORMAL, - CONFIG_CORPSE_DECAY_RARE, - CONFIG_CORPSE_DECAY_ELITE, - CONFIG_CORPSE_DECAY_RAREELITE, - CONFIG_CORPSE_DECAY_WORLDBOSS, - CONFIG_ADDON_CHANNEL, - CONFIG_DEATH_SICKNESS_LEVEL, - CONFIG_DEATH_CORPSE_RECLAIM_DELAY_PVP, - CONFIG_DEATH_CORPSE_RECLAIM_DELAY_PVE, - CONFIG_DEATH_BONES_WORLD, - CONFIG_DEATH_BONES_BG_OR_ARENA, - CONFIG_THREAT_RADIUS, - CONFIG_INSTANT_LOGOUT, - CONFIG_ALL_TAXI_PATHS, - CONFIG_DECLINED_NAMES_USED, - CONFIG_SKILL_MILLING, - CONFIG_BATTLEGROUND_CAST_DESERTER, - CONFIG_BATTLEGROUND_QUEUE_ANNOUNCER_ENABLE, - CONFIG_BATTLEGROUND_QUEUE_ANNOUNCER_PLAYERONLY, - CONFIG_BATTLEGROUND_INVITATION_TYPE, - CONFIG_BATTLEGROUND_PREMATURE_FINISH_TIMER, - CONFIG_BATTLEGROUND_PREMADE_GROUP_WAIT_FOR_MATCH, - CONFIG_ARENA_MAX_RATING_DIFFERENCE, - CONFIG_ARENA_RATING_DISCARD_TIMER, - CONFIG_ARENA_AUTO_DISTRIBUTE_POINTS, - CONFIG_ARENA_AUTO_DISTRIBUTE_INTERVAL_DAYS, - CONFIG_ARENA_QUEUE_ANNOUNCER_ENABLE, - CONFIG_ARENA_SEASON_ID, - CONFIG_ARENA_SEASON_IN_PROGRESS, - CONFIG_OFFHAND_CHECK_AT_TALENTS_RESET, - CONFIG_CLIENTCACHE_VERSION, - CONFIG_GUILD_EVENT_LOG_COUNT, - CONFIG_GUILD_BANK_EVENT_LOG_COUNT, - CONFIG_TIMERBAR_FATIGUE_GMLEVEL, - CONFIG_TIMERBAR_FATIGUE_MAX, - CONFIG_TIMERBAR_BREATH_GMLEVEL, - CONFIG_TIMERBAR_BREATH_MAX, - CONFIG_TIMERBAR_FIRE_GMLEVEL, - CONFIG_TIMERBAR_FIRE_MAX, - CONFIG_VALUE_COUNT + CONFIG_UINT32_COMPRESSION = 0, + CONFIG_UINT32_GRID_UNLOAD, + CONFIG_UINT32_INTERVAL_SAVE, + CONFIG_UINT32_INTERVAL_GRIDCLEAN, + CONFIG_UINT32_INTERVAL_MAPUPDATE, + CONFIG_UINT32_INTERVAL_CHANGEWEATHER, + CONFIG_UINT32_PORT_WORLD, + CONFIG_UINT32_SOCKET_SELECTTIME, + CONFIG_UINT32_GAME_TYPE, + CONFIG_UINT32_REALM_ZONE, + CONFIG_UINT32_ALLOW_TWO_SIDE_ACCOUNTS, + CONFIG_UINT32_ALLOW_TWO_SIDE_INTERACTION_CHAT, + CONFIG_UINT32_ALLOW_TWO_SIDE_INTERACTION_CHANNEL, + CONFIG_UINT32_ALLOW_TWO_SIDE_INTERACTION_GROUP, + CONFIG_UINT32_ALLOW_TWO_SIDE_INTERACTION_GUILD, + CONFIG_UINT32_ALLOW_TWO_SIDE_INTERACTION_AUCTION, + CONFIG_UINT32_ALLOW_TWO_SIDE_INTERACTION_MAIL, + CONFIG_UINT32_ALLOW_TWO_SIDE_WHO_LIST, + CONFIG_UINT32_ALLOW_TWO_SIDE_ADD_FRIEND, + CONFIG_UINT32_STRICT_PLAYER_NAMES, + CONFIG_UINT32_STRICT_CHARTER_NAMES, + CONFIG_UINT32_STRICT_PET_NAMES, + CONFIG_UINT32_MIN_PLAYER_NAME, + CONFIG_UINT32_MIN_CHARTER_NAME, + CONFIG_UINT32_MIN_PET_NAME, + CONFIG_UINT32_CHARACTERS_CREATING_DISABLED, + CONFIG_UINT32_CHARACTERS_PER_ACCOUNT, + CONFIG_UINT32_CHARACTERS_PER_REALM, + CONFIG_UINT32_HEROIC_CHARACTERS_PER_REALM, + CONFIG_UINT32_MIN_LEVEL_FOR_HEROIC_CHARACTER_CREATING, + CONFIG_UINT32_SKIP_CINEMATICS, + CONFIG_UINT32_MAX_PLAYER_LEVEL, + CONFIG_UINT32_START_PLAYER_LEVEL, + CONFIG_UINT32_START_HEROIC_PLAYER_LEVEL, + CONFIG_UINT32_START_PLAYER_MONEY, + CONFIG_UINT32_MAX_HONOR_POINTS, + CONFIG_UINT32_START_HONOR_POINTS, + CONFIG_UINT32_MAX_ARENA_POINTS, + CONFIG_UINT32_START_ARENA_POINTS, + CONFIG_UINT32_INSTANCE_IGNORE_LEVEL, + CONFIG_UINT32_INSTANCE_IGNORE_RAID, + CONFIG_UINT32_INSTANCE_RESET_TIME_HOUR, + CONFIG_UINT32_INSTANCE_UNLOAD_DELAY, + CONFIG_UINT32_CAST_UNSTUCK, + CONFIG_UINT32_MAX_SPELL_CASTS_IN_CHAIN, + CONFIG_UINT32_MAX_PRIMARY_TRADE_SKILL, + CONFIG_UINT32_MIN_PETITION_SIGNS, + CONFIG_UINT32_GM_LOGIN_STATE, + CONFIG_UINT32_GM_VISIBLE_STATE, + CONFIG_UINT32_GM_ACCEPT_TICKETS, + CONFIG_UINT32_GM_CHAT, + CONFIG_UINT32_GM_WISPERING_TO, + CONFIG_UINT32_GM_LEVEL_IN_GM_LIST, + CONFIG_UINT32_GM_LEVEL_IN_WHO_LIST, + CONFIG_UINT32_GM_LOG_TRADE, + CONFIG_UINT32_START_GM_LEVEL, + CONFIG_UINT32_GM_LOWER_SECURITY, + CONFIG_UINT32_GM_ALLOW_ACHIEVEMENT_GAINS, + CONFIG_UINT32_GROUP_VISIBILITY, + CONFIG_UINT32_MAIL_DELIVERY_DELAY, + CONFIG_UINT32_UPTIME_UPDATE, + CONFIG_UINT32_SKILL_CHANCE_ORANGE, + CONFIG_UINT32_SKILL_CHANCE_YELLOW, + CONFIG_UINT32_SKILL_CHANCE_GREEN, + CONFIG_UINT32_SKILL_CHANCE_GREY, + CONFIG_UINT32_SKILL_CHANCE_MINING_STEPS, + CONFIG_UINT32_SKILL_CHANCE_SKINNING_STEPS, + CONFIG_UINT32_SKILL_PROSPECTING, + CONFIG_UINT32_SKILL_GAIN_CRAFTING, + CONFIG_UINT32_SKILL_GAIN_DEFENSE, + CONFIG_UINT32_SKILL_GAIN_GATHERING, + CONFIG_UINT32_SKILL_GAIN_WEAPON, + CONFIG_UINT32_MAX_OVERSPEED_PINGS, + CONFIG_UINT32_SAVE_RESPAWN_TIME_IMMEDIATLY, + CONFIG_UINT32_ALWAYS_MAX_SKILL_FOR_LEVEL, + CONFIG_UINT32_WEATHER, + CONFIG_UINT32_EXPANSION, + CONFIG_UINT32_CHATFLOOD_MESSAGE_COUNT, + CONFIG_UINT32_CHATFLOOD_MESSAGE_DELAY, + CONFIG_UINT32_CHATFLOOD_MUTE_TIME, + CONFIG_UINT32_EVENT_ANNOUNCE, + CONFIG_UINT32_CREATURE_FAMILY_ASSISTANCE_DELAY, + CONFIG_UINT32_CREATURE_FAMILY_FLEE_DELAY, + CONFIG_UINT32_WORLD_BOSS_LEVEL_DIFF, + CONFIG_UINT32_QUEST_LOW_LEVEL_HIDE_DIFF, + CONFIG_UINT32_QUEST_HIGH_LEVEL_HIDE_DIFF, + CONFIG_UINT32_DETECT_POS_COLLISION, + CONFIG_UINT32_RESTRICTED_LFG_CHANNEL, + CONFIG_UINT32_SILENTLY_GM_JOIN_TO_CHANNEL, + CONFIG_UINT32_TALENTS_INSPECTING, + CONFIG_UINT32_CHAT_FAKE_MESSAGE_PREVENTING, + CONFIG_UINT32_CHAT_STRICT_LINK_CHECKING_SEVERITY, + CONFIG_UINT32_CHAT_STRICT_LINK_CHECKING_KICK, + CONFIG_UINT32_CORPSE_DECAY_NORMAL, + CONFIG_UINT32_CORPSE_DECAY_RARE, + CONFIG_UINT32_CORPSE_DECAY_ELITE, + CONFIG_UINT32_CORPSE_DECAY_RAREELITE, + CONFIG_UINT32_CORPSE_DECAY_WORLDBOSS, + CONFIG_UINT32_ADDON_CHANNEL, + CONFIG_UINT32_DEATH_SICKNESS_LEVEL, + CONFIG_UINT32_DEATH_CORPSE_RECLAIM_DELAY_PVP, + CONFIG_UINT32_DEATH_CORPSE_RECLAIM_DELAY_PVE, + CONFIG_UINT32_DEATH_BONES_WORLD, + CONFIG_UINT32_DEATH_BONES_BG_OR_ARENA, + CONFIG_UINT32_THREAT_RADIUS, + CONFIG_UINT32_INSTANT_LOGOUT, + CONFIG_UINT32_ALL_TAXI_PATHS, + CONFIG_UINT32_DECLINED_NAMES_USED, + CONFIG_UINT32_SKILL_MILLING, + CONFIG_UINT32_BATTLEGROUND_CAST_DESERTER, + CONFIG_UINT32_BATTLEGROUND_QUEUE_ANNOUNCER_ENABLE, + CONFIG_UINT32_BATTLEGROUND_QUEUE_ANNOUNCER_PLAYERONLY, + CONFIG_UINT32_BATTLEGROUND_INVITATION_TYPE, + CONFIG_UINT32_BATTLEGROUND_PREMATURE_FINISH_TIMER, + CONFIG_UINT32_BATTLEGROUND_PREMADE_GROUP_WAIT_FOR_MATCH, + CONFIG_UINT32_ARENA_MAX_RATING_DIFFERENCE, + CONFIG_UINT32_ARENA_RATING_DISCARD_TIMER, + CONFIG_UINT32_ARENA_AUTO_DISTRIBUTE_POINTS, + CONFIG_UINT32_ARENA_AUTO_DISTRIBUTE_INTERVAL_DAYS, + CONFIG_UINT32_ARENA_QUEUE_ANNOUNCER_ENABLE, + CONFIG_UINT32_ARENA_SEASON_ID, + CONFIG_UINT32_ARENA_SEASON_IN_PROGRESS, + CONFIG_UINT32_OFFHAND_CHECK_AT_TALENTS_RESET, + CONFIG_UINT32_CLIENTCACHE_VERSION, + CONFIG_UINT32_GUILD_EVENT_LOG_COUNT, + CONFIG_UINT32_GUILD_BANK_EVENT_LOG_COUNT, + CONFIG_UINT32_TIMERBAR_FATIGUE_GMLEVEL, + CONFIG_UINT32_TIMERBAR_FATIGUE_MAX, + CONFIG_UINT32_TIMERBAR_BREATH_GMLEVEL, + CONFIG_UINT32_TIMERBAR_BREATH_MAX, + CONFIG_UINT32_TIMERBAR_FIRE_GMLEVEL, + CONFIG_UINT32_TIMERBAR_FIRE_MAX, + // + CONFIG_UINT32_RATE_HEALTH, + CONFIG_UINT32_RATE_POWER_MANA, + CONFIG_UINT32_RATE_POWER_RAGE_INCOME, + CONFIG_UINT32_RATE_POWER_RAGE_LOSS, + CONFIG_UINT32_RATE_POWER_RUNICPOWER_INCOME, + CONFIG_UINT32_RATE_POWER_RUNICPOWER_LOSS, + CONFIG_UINT32_RATE_POWER_FOCUS, + CONFIG_UINT32_RATE_SKILL_DISCOVERY, + CONFIG_UINT32_RATE_DROP_ITEM_POOR, + CONFIG_UINT32_RATE_DROP_ITEM_NORMAL, + CONFIG_UINT32_RATE_DROP_ITEM_UNCOMMON, + CONFIG_UINT32_RATE_DROP_ITEM_RARE, + CONFIG_UINT32_RATE_DROP_ITEM_EPIC, + CONFIG_UINT32_RATE_DROP_ITEM_LEGENDARY, + CONFIG_UINT32_RATE_DROP_ITEM_ARTIFACT, + CONFIG_UINT32_RATE_DROP_ITEM_REFERENCED, + CONFIG_UINT32_RATE_DROP_MONEY, + CONFIG_UINT32_RATE_XP_KILL, + CONFIG_UINT32_RATE_XP_QUEST, + CONFIG_UINT32_RATE_XP_EXPLORE, + CONFIG_UINT32_RATE_REPUTATION_GAIN, + CONFIG_UINT32_RATE_REPUTATION_LOWLEVEL_KILL, + CONFIG_UINT32_RATE_REPUTATION_LOWLEVEL_QUEST, + CONFIG_UINT32_RATE_CREATURE_NORMAL_HP, + CONFIG_UINT32_RATE_CREATURE_ELITE_ELITE_HP, + CONFIG_UINT32_RATE_CREATURE_ELITE_RAREELITE_HP, + CONFIG_UINT32_RATE_CREATURE_ELITE_WORLDBOSS_HP, + CONFIG_UINT32_RATE_CREATURE_ELITE_RARE_HP, + CONFIG_UINT32_RATE_CREATURE_NORMAL_DAMAGE, + CONFIG_UINT32_RATE_CREATURE_ELITE_ELITE_DAMAGE, + CONFIG_UINT32_RATE_CREATURE_ELITE_RAREELITE_DAMAGE, + CONFIG_UINT32_RATE_CREATURE_ELITE_WORLDBOSS_DAMAGE, + CONFIG_UINT32_RATE_CREATURE_ELITE_RARE_DAMAGE, + CONFIG_UINT32_RATE_CREATURE_NORMAL_SPELLDAMAGE, + CONFIG_UINT32_RATE_CREATURE_ELITE_ELITE_SPELLDAMAGE, + CONFIG_UINT32_RATE_CREATURE_ELITE_RAREELITE_SPELLDAMAGE, + CONFIG_UINT32_RATE_CREATURE_ELITE_WORLDBOSS_SPELLDAMAGE, + CONFIG_UINT32_RATE_CREATURE_ELITE_RARE_SPELLDAMAGE, + CONFIG_UINT32_RATE_CREATURE_AGGRO, + CONFIG_UINT32_RATE_REST_INGAME, + CONFIG_UINT32_RATE_REST_OFFLINE_IN_TAVERN_OR_CITY, + CONFIG_UINT32_RATE_REST_OFFLINE_IN_WILDERNESS, + CONFIG_UINT32_RATE_DAMAGE_FALL, + CONFIG_UINT32_RATE_AUCTION_TIME, + CONFIG_UINT32_RATE_AUCTION_DEPOSIT, + CONFIG_UINT32_RATE_AUCTION_CUT, + CONFIG_UINT32_RATE_HONOR, + CONFIG_UINT32_RATE_MINING_AMOUNT, + CONFIG_UINT32_RATE_MINING_NEXT, + CONFIG_UINT32_RATE_TALENT, + CONFIG_UINT32_RATE_CORPSE_DECAY_LOOTED, + CONFIG_UINT32_RATE_INSTANCE_RESET_TIME, + CONFIG_UINT32_RATE_TARGET_POS_RECALCULATION_RANGE, + CONFIG_UINT32_RATE_DURABILITY_LOSS_DAMAGE, + CONFIG_UINT32_RATE_DURABILITY_LOSS_PARRY, + CONFIG_UINT32_RATE_DURABILITY_LOSS_ABSORB, + CONFIG_UINT32_RATE_DURABILITY_LOSS_BLOCK, + CONFIG_UINT32_SIGHT_GUARDER, + CONFIG_UINT32_SIGHT_MONSTER, + CONFIG_UINT32_LISTEN_RANGE_SAY, + CONFIG_UINT32_LISTEN_RANGE_YELL, + CONFIG_UINT32_LISTEN_RANGE_TEXTEMOTE, + CONFIG_UINT32_CREATURE_FAMILY_FLEE_ASSISTANCE_RADIUS, + CONFIG_UINT32_CREATURE_FAMILY_ASSISTANCE_RADIUS, + CONFIG_UINT32_GROUP_XP_DISTANCE, + CONFIG_UINT32_VALUE_COUNT }; -/// Server rates -enum Rates +/// Configuration elements +enum eConfigInt32Values { - RATE_HEALTH=0, - RATE_POWER_MANA, - RATE_POWER_RAGE_INCOME, - RATE_POWER_RAGE_LOSS, - RATE_POWER_RUNICPOWER_INCOME, - RATE_POWER_RUNICPOWER_LOSS, - RATE_POWER_FOCUS, - RATE_SKILL_DISCOVERY, - RATE_DROP_ITEM_POOR, - RATE_DROP_ITEM_NORMAL, - RATE_DROP_ITEM_UNCOMMON, - RATE_DROP_ITEM_RARE, - RATE_DROP_ITEM_EPIC, - RATE_DROP_ITEM_LEGENDARY, - RATE_DROP_ITEM_ARTIFACT, - RATE_DROP_ITEM_REFERENCED, - RATE_DROP_MONEY, - RATE_XP_KILL, - RATE_XP_QUEST, - RATE_XP_EXPLORE, - RATE_REPUTATION_GAIN, - RATE_REPUTATION_LOWLEVEL_KILL, - RATE_REPUTATION_LOWLEVEL_QUEST, - RATE_CREATURE_NORMAL_HP, - RATE_CREATURE_ELITE_ELITE_HP, - RATE_CREATURE_ELITE_RAREELITE_HP, - RATE_CREATURE_ELITE_WORLDBOSS_HP, - RATE_CREATURE_ELITE_RARE_HP, - RATE_CREATURE_NORMAL_DAMAGE, - RATE_CREATURE_ELITE_ELITE_DAMAGE, - RATE_CREATURE_ELITE_RAREELITE_DAMAGE, - RATE_CREATURE_ELITE_WORLDBOSS_DAMAGE, - RATE_CREATURE_ELITE_RARE_DAMAGE, - RATE_CREATURE_NORMAL_SPELLDAMAGE, - RATE_CREATURE_ELITE_ELITE_SPELLDAMAGE, - RATE_CREATURE_ELITE_RAREELITE_SPELLDAMAGE, - RATE_CREATURE_ELITE_WORLDBOSS_SPELLDAMAGE, - RATE_CREATURE_ELITE_RARE_SPELLDAMAGE, - RATE_CREATURE_AGGRO, - RATE_REST_INGAME, - RATE_REST_OFFLINE_IN_TAVERN_OR_CITY, - RATE_REST_OFFLINE_IN_WILDERNESS, - RATE_DAMAGE_FALL, - RATE_AUCTION_TIME, - RATE_AUCTION_DEPOSIT, - RATE_AUCTION_CUT, - RATE_HONOR, - RATE_MINING_AMOUNT, - RATE_MINING_NEXT, - RATE_TALENT, - RATE_CORPSE_DECAY_LOOTED, - RATE_INSTANCE_RESET_TIME, - RATE_TARGET_POS_RECALCULATION_RANGE, - RATE_DURABILITY_LOSS_DAMAGE, - RATE_DURABILITY_LOSS_PARRY, - RATE_DURABILITY_LOSS_ABSORB, - RATE_DURABILITY_LOSS_BLOCK, - //{ TODO: store float config values (not only rates), need rename to more generic name - RATE_SIGHT_GUARDER, - RATE_SIGHT_MONSTER, - RATE_LISTEN_RANGE_SAY, - RATE_LISTEN_RANGE_YELL, - RATE_LISTEN_RANGE_TEXTEMOTE, - RATE_CREATURE_FAMILY_FLEE_ASSISTANCE_RADIUS, - RATE_CREATURE_FAMILY_ASSISTANCE_RADIUS, - RATE_GROUP_XP_DISTANCE, - //} - MAX_RATES + CONFIG_INT32_COMPRESSION = 0, + CONFIG_INT32_GRID_UNLOAD, + CONFIG_INT32_INTERVAL_SAVE, + CONFIG_INT32_INTERVAL_GRIDCLEAN, + CONFIG_INT32_INTERVAL_MAPUPDATE, + CONFIG_INT32_INTERVAL_CHANGEWEATHER, + CONFIG_INT32_PORT_WORLD, + CONFIG_INT32_SOCKET_SELECTTIME, + CONFIG_INT32_GAME_TYPE, + CONFIG_INT32_REALM_ZONE, + CONFIG_INT32_ALLOW_TWO_SIDE_ACCOUNTS, + CONFIG_INT32_ALLOW_TWO_SIDE_INTERACTION_CHAT, + CONFIG_INT32_ALLOW_TWO_SIDE_INTERACTION_CHANNEL, + CONFIG_INT32_ALLOW_TWO_SIDE_INTERACTION_GROUP, + CONFIG_INT32_ALLOW_TWO_SIDE_INTERACTION_GUILD, + CONFIG_INT32_ALLOW_TWO_SIDE_INTERACTION_AUCTION, + CONFIG_INT32_ALLOW_TWO_SIDE_INTERACTION_MAIL, + CONFIG_INT32_ALLOW_TWO_SIDE_WHO_LIST, + CONFIG_INT32_ALLOW_TWO_SIDE_ADD_FRIEND, + CONFIG_INT32_STRICT_PLAYER_NAMES, + CONFIG_INT32_STRICT_CHARTER_NAMES, + CONFIG_INT32_STRICT_PET_NAMES, + CONFIG_INT32_MIN_PLAYER_NAME, + CONFIG_INT32_MIN_CHARTER_NAME, + CONFIG_INT32_MIN_PET_NAME, + CONFIG_INT32_CHARACTERS_CREATING_DISABLED, + CONFIG_INT32_CHARACTERS_PER_ACCOUNT, + CONFIG_INT32_CHARACTERS_PER_REALM, + CONFIG_INT32_HEROIC_CHARACTERS_PER_REALM, + CONFIG_INT32_MIN_LEVEL_FOR_HEROIC_CHARACTER_CREATING, + CONFIG_INT32_SKIP_CINEMATICS, + CONFIG_INT32_MAX_PLAYER_LEVEL, + CONFIG_INT32_START_PLAYER_LEVEL, + CONFIG_INT32_START_HEROIC_PLAYER_LEVEL, + CONFIG_INT32_START_PLAYER_MONEY, + CONFIG_INT32_MAX_HONOR_POINTS, + CONFIG_INT32_START_HONOR_POINTS, + CONFIG_INT32_MAX_ARENA_POINTS, + CONFIG_INT32_START_ARENA_POINTS, + CONFIG_INT32_INSTANCE_IGNORE_LEVEL, + CONFIG_INT32_INSTANCE_IGNORE_RAID, + CONFIG_INT32_INSTANCE_RESET_TIME_HOUR, + CONFIG_INT32_INSTANCE_UNLOAD_DELAY, + CONFIG_INT32_CAST_UNSTUCK, + CONFIG_INT32_MAX_SPELL_CASTS_IN_CHAIN, + CONFIG_INT32_MAX_PRIMARY_TRADE_SKILL, + CONFIG_INT32_MIN_PETITION_SIGNS, + CONFIG_INT32_GM_LOGIN_STATE, + CONFIG_INT32_GM_VISIBLE_STATE, + CONFIG_INT32_GM_ACCEPT_TICKETS, + CONFIG_INT32_GM_CHAT, + CONFIG_INT32_GM_WISPERING_TO, + CONFIG_INT32_GM_LEVEL_IN_GM_LIST, + CONFIG_INT32_GM_LEVEL_IN_WHO_LIST, + CONFIG_INT32_GM_LOG_TRADE, + CONFIG_INT32_START_GM_LEVEL, + CONFIG_INT32_GM_LOWER_SECURITY, + CONFIG_INT32_GM_ALLOW_ACHIEVEMENT_GAINS, + CONFIG_INT32_GROUP_VISIBILITY, + CONFIG_INT32_MAIL_DELIVERY_DELAY, + CONFIG_INT32_UPTIME_UPDATE, + CONFIG_INT32_SKILL_CHANCE_ORANGE, + CONFIG_INT32_SKILL_CHANCE_YELLOW, + CONFIG_INT32_SKILL_CHANCE_GREEN, + CONFIG_INT32_SKILL_CHANCE_GREY, + CONFIG_INT32_SKILL_CHANCE_MINING_STEPS, + CONFIG_INT32_SKILL_CHANCE_SKINNING_STEPS, + CONFIG_INT32_SKILL_PROSPECTING, + CONFIG_INT32_SKILL_GAIN_CRAFTING, + CONFIG_INT32_SKILL_GAIN_DEFENSE, + CONFIG_INT32_SKILL_GAIN_GATHERING, + CONFIG_INT32_SKILL_GAIN_WEAPON, + CONFIG_INT32_MAX_OVERSPEED_PINGS, + CONFIG_INT32_SAVE_RESPAWN_TIME_IMMEDIATLY, + CONFIG_INT32_ALWAYS_MAX_SKILL_FOR_LEVEL, + CONFIG_INT32_WEATHER, + CONFIG_INT32_EXPANSION, + CONFIG_INT32_CHATFLOOD_MESSAGE_COUNT, + CONFIG_INT32_CHATFLOOD_MESSAGE_DELAY, + CONFIG_INT32_CHATFLOOD_MUTE_TIME, + CONFIG_INT32_EVENT_ANNOUNCE, + CONFIG_INT32_CREATURE_FAMILY_ASSISTANCE_DELAY, + CONFIG_INT32_CREATURE_FAMILY_FLEE_DELAY, + CONFIG_INT32_WORLD_BOSS_LEVEL_DIFF, + CONFIG_INT32_QUEST_LOW_LEVEL_HIDE_DIFF, + CONFIG_INT32_QUEST_HIGH_LEVEL_HIDE_DIFF, + CONFIG_INT32_DETECT_POS_COLLISION, + CONFIG_INT32_RESTRICTED_LFG_CHANNEL, + CONFIG_INT32_SILENTLY_GM_JOIN_TO_CHANNEL, + CONFIG_INT32_TALENTS_INSPECTING, + CONFIG_INT32_CHAT_FAKE_MESSAGE_PREVENTING, + CONFIG_INT32_CHAT_STRICT_LINK_CHECKING_SEVERITY, + CONFIG_INT32_CHAT_STRICT_LINK_CHECKING_KICK, + CONFIG_INT32_CORPSE_DECAY_NORMAL, + CONFIG_INT32_CORPSE_DECAY_RARE, + CONFIG_INT32_CORPSE_DECAY_ELITE, + CONFIG_INT32_CORPSE_DECAY_RAREELITE, + CONFIG_INT32_CORPSE_DECAY_WORLDBOSS, + CONFIG_INT32_ADDON_CHANNEL, + CONFIG_INT32_DEATH_SICKNESS_LEVEL, + CONFIG_INT32_DEATH_CORPSE_RECLAIM_DELAY_PVP, + CONFIG_INT32_DEATH_CORPSE_RECLAIM_DELAY_PVE, + CONFIG_INT32_DEATH_BONES_WORLD, + CONFIG_INT32_DEATH_BONES_BG_OR_ARENA, + CONFIG_INT32_THREAT_RADIUS, + CONFIG_INT32_INSTANT_LOGOUT, + CONFIG_INT32_ALL_TAXI_PATHS, + CONFIG_INT32_DECLINED_NAMES_USED, + CONFIG_INT32_SKILL_MILLING, + CONFIG_INT32_BATTLEGROUND_CAST_DESERTER, + CONFIG_INT32_BATTLEGROUND_QUEUE_ANNOUNCER_ENABLE, + CONFIG_INT32_BATTLEGROUND_QUEUE_ANNOUNCER_PLAYERONLY, + CONFIG_INT32_BATTLEGROUND_INVITATION_TYPE, + CONFIG_INT32_BATTLEGROUND_PREMATURE_FINISH_TIMER, + CONFIG_INT32_BATTLEGROUND_PREMADE_GROUP_WAIT_FOR_MATCH, + CONFIG_INT32_ARENA_MAX_RATING_DIFFERENCE, + CONFIG_INT32_ARENA_RATING_DISCARD_TIMER, + CONFIG_INT32_ARENA_AUTO_DISTRIBUTE_POINTS, + CONFIG_INT32_ARENA_AUTO_DISTRIBUTE_INTERVAL_DAYS, + CONFIG_INT32_ARENA_QUEUE_ANNOUNCER_ENABLE, + CONFIG_INT32_ARENA_SEASON_ID, + CONFIG_INT32_ARENA_SEASON_IN_PROGRESS, + CONFIG_INT32_OFFHAND_CHECK_AT_TALENTS_RESET, + CONFIG_INT32_CLIENTCACHE_VERSION, + CONFIG_INT32_GUILD_EVENT_LOG_COUNT, + CONFIG_INT32_GUILD_BANK_EVENT_LOG_COUNT, + CONFIG_INT32_TIMERBAR_FATIGUE_GMLEVEL, + CONFIG_INT32_TIMERBAR_FATIGUE_MAX, + CONFIG_INT32_TIMERBAR_BREATH_GMLEVEL, + CONFIG_INT32_TIMERBAR_BREATH_MAX, + CONFIG_INT32_TIMERBAR_FIRE_GMLEVEL, + CONFIG_INT32_TIMERBAR_FIRE_MAX, + // + CONFIG_INT32_RATE_HEALTH, + CONFIG_INT32_RATE_POWER_MANA, + CONFIG_INT32_RATE_POWER_RAGE_INCOME, + CONFIG_INT32_RATE_POWER_RAGE_LOSS, + CONFIG_INT32_RATE_POWER_RUNICPOWER_INCOME, + CONFIG_INT32_RATE_POWER_RUNICPOWER_LOSS, + CONFIG_INT32_RATE_POWER_FOCUS, + CONFIG_INT32_RATE_SKILL_DISCOVERY, + CONFIG_INT32_RATE_DROP_ITEM_POOR, + CONFIG_INT32_RATE_DROP_ITEM_NORMAL, + CONFIG_INT32_RATE_DROP_ITEM_UNCOMMON, + CONFIG_INT32_RATE_DROP_ITEM_RARE, + CONFIG_INT32_RATE_DROP_ITEM_EPIC, + CONFIG_INT32_RATE_DROP_ITEM_LEGENDARY, + CONFIG_INT32_RATE_DROP_ITEM_ARTIFACT, + CONFIG_INT32_RATE_DROP_ITEM_REFERENCED, + CONFIG_INT32_RATE_DROP_MONEY, + CONFIG_INT32_RATE_XP_KILL, + CONFIG_INT32_RATE_XP_QUEST, + CONFIG_INT32_RATE_XP_EXPLORE, + CONFIG_INT32_RATE_REPUTATION_GAIN, + CONFIG_INT32_RATE_REPUTATION_LOWLEVEL_KILL, + CONFIG_INT32_RATE_REPUTATION_LOWLEVEL_QUEST, + CONFIG_INT32_RATE_CREATURE_NORMAL_HP, + CONFIG_INT32_RATE_CREATURE_ELITE_ELITE_HP, + CONFIG_INT32_RATE_CREATURE_ELITE_RAREELITE_HP, + CONFIG_INT32_RATE_CREATURE_ELITE_WORLDBOSS_HP, + CONFIG_INT32_RATE_CREATURE_ELITE_RARE_HP, + CONFIG_INT32_RATE_CREATURE_NORMAL_DAMAGE, + CONFIG_INT32_RATE_CREATURE_ELITE_ELITE_DAMAGE, + CONFIG_INT32_RATE_CREATURE_ELITE_RAREELITE_DAMAGE, + CONFIG_INT32_RATE_CREATURE_ELITE_WORLDBOSS_DAMAGE, + CONFIG_INT32_RATE_CREATURE_ELITE_RARE_DAMAGE, + CONFIG_INT32_RATE_CREATURE_NORMAL_SPELLDAMAGE, + CONFIG_INT32_RATE_CREATURE_ELITE_ELITE_SPELLDAMAGE, + CONFIG_INT32_RATE_CREATURE_ELITE_RAREELITE_SPELLDAMAGE, + CONFIG_INT32_RATE_CREATURE_ELITE_WORLDBOSS_SPELLDAMAGE, + CONFIG_INT32_RATE_CREATURE_ELITE_RARE_SPELLDAMAGE, + CONFIG_INT32_RATE_CREATURE_AGGRO, + CONFIG_INT32_RATE_REST_INGAME, + CONFIG_INT32_RATE_REST_OFFLINE_IN_TAVERN_OR_CITY, + CONFIG_INT32_RATE_REST_OFFLINE_IN_WILDERNESS, + CONFIG_INT32_RATE_DAMAGE_FALL, + CONFIG_INT32_RATE_AUCTION_TIME, + CONFIG_INT32_RATE_AUCTION_DEPOSIT, + CONFIG_INT32_RATE_AUCTION_CUT, + CONFIG_INT32_RATE_HONOR, + CONFIG_INT32_RATE_MINING_AMOUNT, + CONFIG_INT32_RATE_MINING_NEXT, + CONFIG_INT32_RATE_TALENT, + CONFIG_INT32_RATE_CORPSE_DECAY_LOOTED, + CONFIG_INT32_RATE_INSTANCE_RESET_TIME, + CONFIG_INT32_RATE_TARGET_POS_RECALCULATION_RANGE, + CONFIG_INT32_RATE_DURABILITY_LOSS_DAMAGE, + CONFIG_INT32_RATE_DURABILITY_LOSS_PARRY, + CONFIG_INT32_RATE_DURABILITY_LOSS_ABSORB, + CONFIG_INT32_RATE_DURABILITY_LOSS_BLOCK, + CONFIG_INT32_SIGHT_GUARDER, + CONFIG_INT32_SIGHT_MONSTER, + CONFIG_INT32_LISTEN_RANGE_SAY, + CONFIG_INT32_LISTEN_RANGE_YELL, + CONFIG_INT32_LISTEN_RANGE_TEXTEMOTE, + CONFIG_INT32_CREATURE_FAMILY_FLEE_ASSISTANCE_RADIUS, + CONFIG_INT32_CREATURE_FAMILY_ASSISTANCE_RADIUS, + CONFIG_INT32_GROUP_XP_DISTANCE, + CONFIG_INT32_VALUE_COUNT +}; + +/// Server config +enum eConfigFLoatValues +{ + CONFIG_FLOAT_COMPRESSION = 0, + CONFIG_FLOAT_GRID_UNLOAD, + CONFIG_FLOAT_INTERVAL_SAVE, + CONFIG_FLOAT_INTERVAL_GRIDCLEAN, + CONFIG_FLOAT_INTERVAL_MAPUPDATE, + CONFIG_FLOAT_INTERVAL_CHANGEWEATHER, + CONFIG_FLOAT_PORT_WORLD, + CONFIG_FLOAT_SOCKET_SELECTTIME, + CONFIG_FLOAT_GAME_TYPE, + CONFIG_FLOAT_REALM_ZONE, + CONFIG_FLOAT_ALLOW_TWO_SIDE_ACCOUNTS, + CONFIG_FLOAT_ALLOW_TWO_SIDE_INTERACTION_CHAT, + CONFIG_FLOAT_ALLOW_TWO_SIDE_INTERACTION_CHANNEL, + CONFIG_FLOAT_ALLOW_TWO_SIDE_INTERACTION_GROUP, + CONFIG_FLOAT_ALLOW_TWO_SIDE_INTERACTION_GUILD, + CONFIG_FLOAT_ALLOW_TWO_SIDE_INTERACTION_AUCTION, + CONFIG_FLOAT_ALLOW_TWO_SIDE_INTERACTION_MAIL, + CONFIG_FLOAT_ALLOW_TWO_SIDE_WHO_LIST, + CONFIG_FLOAT_ALLOW_TWO_SIDE_ADD_FRIEND, + CONFIG_FLOAT_STRICT_PLAYER_NAMES, + CONFIG_FLOAT_STRICT_CHARTER_NAMES, + CONFIG_FLOAT_STRICT_PET_NAMES, + CONFIG_FLOAT_MIN_PLAYER_NAME, + CONFIG_FLOAT_MIN_CHARTER_NAME, + CONFIG_FLOAT_MIN_PET_NAME, + CONFIG_FLOAT_CHARACTERS_CREATING_DISABLED, + CONFIG_FLOAT_CHARACTERS_PER_ACCOUNT, + CONFIG_FLOAT_CHARACTERS_PER_REALM, + CONFIG_FLOAT_HEROIC_CHARACTERS_PER_REALM, + CONFIG_FLOAT_MIN_LEVEL_FOR_HEROIC_CHARACTER_CREATING, + CONFIG_FLOAT_SKIP_CINEMATICS, + CONFIG_FLOAT_MAX_PLAYER_LEVEL, + CONFIG_FLOAT_START_PLAYER_LEVEL, + CONFIG_FLOAT_START_HEROIC_PLAYER_LEVEL, + CONFIG_FLOAT_START_PLAYER_MONEY, + CONFIG_FLOAT_MAX_HONOR_POINTS, + CONFIG_FLOAT_START_HONOR_POINTS, + CONFIG_FLOAT_MAX_ARENA_POINTS, + CONFIG_FLOAT_START_ARENA_POINTS, + CONFIG_FLOAT_INSTANCE_IGNORE_LEVEL, + CONFIG_FLOAT_INSTANCE_IGNORE_RAID, + CONFIG_FLOAT_INSTANCE_RESET_TIME_HOUR, + CONFIG_FLOAT_INSTANCE_UNLOAD_DELAY, + CONFIG_FLOAT_CAST_UNSTUCK, + CONFIG_FLOAT_MAX_SPELL_CASTS_IN_CHAIN, + CONFIG_FLOAT_MAX_PRIMARY_TRADE_SKILL, + CONFIG_FLOAT_MIN_PETITION_SIGNS, + CONFIG_FLOAT_GM_LOGIN_STATE, + CONFIG_FLOAT_GM_VISIBLE_STATE, + CONFIG_FLOAT_GM_ACCEPT_TICKETS, + CONFIG_FLOAT_GM_CHAT, + CONFIG_FLOAT_GM_WISPERING_TO, + CONFIG_FLOAT_GM_LEVEL_IN_GM_LIST, + CONFIG_FLOAT_GM_LEVEL_IN_WHO_LIST, + CONFIG_FLOAT_GM_LOG_TRADE, + CONFIG_FLOAT_START_GM_LEVEL, + CONFIG_FLOAT_GM_LOWER_SECURITY, + CONFIG_FLOAT_GM_ALLOW_ACHIEVEMENT_GAINS, + CONFIG_FLOAT_GROUP_VISIBILITY, + CONFIG_FLOAT_MAIL_DELIVERY_DELAY, + CONFIG_FLOAT_UPTIME_UPDATE, + CONFIG_FLOAT_SKILL_CHANCE_ORANGE, + CONFIG_FLOAT_SKILL_CHANCE_YELLOW, + CONFIG_FLOAT_SKILL_CHANCE_GREEN, + CONFIG_FLOAT_SKILL_CHANCE_GREY, + CONFIG_FLOAT_SKILL_CHANCE_MINING_STEPS, + CONFIG_FLOAT_SKILL_CHANCE_SKINNING_STEPS, + CONFIG_FLOAT_SKILL_PROSPECTING, + CONFIG_FLOAT_SKILL_GAIN_CRAFTING, + CONFIG_FLOAT_SKILL_GAIN_DEFENSE, + CONFIG_FLOAT_SKILL_GAIN_GATHERING, + CONFIG_FLOAT_SKILL_GAIN_WEAPON, + CONFIG_FLOAT_MAX_OVERSPEED_PINGS, + CONFIG_FLOAT_SAVE_RESPAWN_TIME_IMMEDIATLY, + CONFIG_FLOAT_ALWAYS_MAX_SKILL_FOR_LEVEL, + CONFIG_FLOAT_WEATHER, + CONFIG_FLOAT_EXPANSION, + CONFIG_FLOAT_CHATFLOOD_MESSAGE_COUNT, + CONFIG_FLOAT_CHATFLOOD_MESSAGE_DELAY, + CONFIG_FLOAT_CHATFLOOD_MUTE_TIME, + CONFIG_FLOAT_EVENT_ANNOUNCE, + CONFIG_FLOAT_CREATURE_FAMILY_ASSISTANCE_DELAY, + CONFIG_FLOAT_CREATURE_FAMILY_FLEE_DELAY, + CONFIG_FLOAT_WORLD_BOSS_LEVEL_DIFF, + CONFIG_FLOAT_QUEST_LOW_LEVEL_HIDE_DIFF, + CONFIG_FLOAT_QUEST_HIGH_LEVEL_HIDE_DIFF, + CONFIG_FLOAT_DETECT_POS_COLLISION, + CONFIG_FLOAT_RESTRICTED_LFG_CHANNEL, + CONFIG_FLOAT_SILENTLY_GM_JOIN_TO_CHANNEL, + CONFIG_FLOAT_TALENTS_INSPECTING, + CONFIG_FLOAT_CHAT_FAKE_MESSAGE_PREVENTING, + CONFIG_FLOAT_CHAT_STRICT_LINK_CHECKING_SEVERITY, + CONFIG_FLOAT_CHAT_STRICT_LINK_CHECKING_KICK, + CONFIG_FLOAT_CORPSE_DECAY_NORMAL, + CONFIG_FLOAT_CORPSE_DECAY_RARE, + CONFIG_FLOAT_CORPSE_DECAY_ELITE, + CONFIG_FLOAT_CORPSE_DECAY_RAREELITE, + CONFIG_FLOAT_CORPSE_DECAY_WORLDBOSS, + CONFIG_FLOAT_ADDON_CHANNEL, + CONFIG_FLOAT_DEATH_SICKNESS_LEVEL, + CONFIG_FLOAT_DEATH_CORPSE_RECLAIM_DELAY_PVP, + CONFIG_FLOAT_DEATH_CORPSE_RECLAIM_DELAY_PVE, + CONFIG_FLOAT_DEATH_BONES_WORLD, + CONFIG_FLOAT_DEATH_BONES_BG_OR_ARENA, + CONFIG_FLOAT_THREAT_RADIUS, + CONFIG_FLOAT_INSTANT_LOGOUT, + CONFIG_FLOAT_ALL_TAXI_PATHS, + CONFIG_FLOAT_DECLINED_NAMES_USED, + CONFIG_FLOAT_SKILL_MILLING, + CONFIG_FLOAT_BATTLEGROUND_CAST_DESERTER, + CONFIG_FLOAT_BATTLEGROUND_QUEUE_ANNOUNCER_ENABLE, + CONFIG_FLOAT_BATTLEGROUND_QUEUE_ANNOUNCER_PLAYERONLY, + CONFIG_FLOAT_BATTLEGROUND_INVITATION_TYPE, + CONFIG_FLOAT_BATTLEGROUND_PREMATURE_FINISH_TIMER, + CONFIG_FLOAT_BATTLEGROUND_PREMADE_GROUP_WAIT_FOR_MATCH, + CONFIG_FLOAT_ARENA_MAX_RATING_DIFFERENCE, + CONFIG_FLOAT_ARENA_RATING_DISCARD_TIMER, + CONFIG_FLOAT_ARENA_AUTO_DISTRIBUTE_POINTS, + CONFIG_FLOAT_ARENA_AUTO_DISTRIBUTE_INTERVAL_DAYS, + CONFIG_FLOAT_ARENA_QUEUE_ANNOUNCER_ENABLE, + CONFIG_FLOAT_ARENA_SEASON_ID, + CONFIG_FLOAT_ARENA_SEASON_IN_PROGRESS, + CONFIG_FLOAT_OFFHAND_CHECK_AT_TALENTS_RESET, + CONFIG_FLOAT_CLIENTCACHE_VERSION, + CONFIG_FLOAT_GUILD_EVENT_LOG_COUNT, + CONFIG_FLOAT_GUILD_BANK_EVENT_LOG_COUNT, + CONFIG_FLOAT_TIMERBAR_FATIGUE_GMLEVEL, + CONFIG_FLOAT_TIMERBAR_FATIGUE_MAX, + CONFIG_FLOAT_TIMERBAR_BREATH_GMLEVEL, + CONFIG_FLOAT_TIMERBAR_BREATH_MAX, + CONFIG_FLOAT_TIMERBAR_FIRE_GMLEVEL, + CONFIG_FLOAT_TIMERBAR_FIRE_MAX, + // + CONFIG_FLOAT_RATE_HEALTH, + CONFIG_FLOAT_RATE_POWER_MANA, + CONFIG_FLOAT_RATE_POWER_RAGE_INCOME, + CONFIG_FLOAT_RATE_POWER_RAGE_LOSS, + CONFIG_FLOAT_RATE_POWER_RUNICPOWER_INCOME, + CONFIG_FLOAT_RATE_POWER_RUNICPOWER_LOSS, + CONFIG_FLOAT_RATE_POWER_FOCUS, + CONFIG_FLOAT_RATE_SKILL_DISCOVERY, + CONFIG_FLOAT_RATE_DROP_ITEM_POOR, + CONFIG_FLOAT_RATE_DROP_ITEM_NORMAL, + CONFIG_FLOAT_RATE_DROP_ITEM_UNCOMMON, + CONFIG_FLOAT_RATE_DROP_ITEM_RARE, + CONFIG_FLOAT_RATE_DROP_ITEM_EPIC, + CONFIG_FLOAT_RATE_DROP_ITEM_LEGENDARY, + CONFIG_FLOAT_RATE_DROP_ITEM_ARTIFACT, + CONFIG_FLOAT_RATE_DROP_ITEM_REFERENCED, + CONFIG_FLOAT_RATE_DROP_MONEY, + CONFIG_FLOAT_RATE_XP_KILL, + CONFIG_FLOAT_RATE_XP_QUEST, + CONFIG_FLOAT_RATE_XP_EXPLORE, + CONFIG_FLOAT_RATE_REPUTATION_GAIN, + CONFIG_FLOAT_RATE_REPUTATION_LOWLEVEL_KILL, + CONFIG_FLOAT_RATE_REPUTATION_LOWLEVEL_QUEST, + CONFIG_FLOAT_RATE_CREATURE_NORMAL_HP, + CONFIG_FLOAT_RATE_CREATURE_ELITE_ELITE_HP, + CONFIG_FLOAT_RATE_CREATURE_ELITE_RAREELITE_HP, + CONFIG_FLOAT_RATE_CREATURE_ELITE_WORLDBOSS_HP, + CONFIG_FLOAT_RATE_CREATURE_ELITE_RARE_HP, + CONFIG_FLOAT_RATE_CREATURE_NORMAL_DAMAGE, + CONFIG_FLOAT_RATE_CREATURE_ELITE_ELITE_DAMAGE, + CONFIG_FLOAT_RATE_CREATURE_ELITE_RAREELITE_DAMAGE, + CONFIG_FLOAT_RATE_CREATURE_ELITE_WORLDBOSS_DAMAGE, + CONFIG_FLOAT_RATE_CREATURE_ELITE_RARE_DAMAGE, + CONFIG_FLOAT_RATE_CREATURE_NORMAL_SPELLDAMAGE, + CONFIG_FLOAT_RATE_CREATURE_ELITE_ELITE_SPELLDAMAGE, + CONFIG_FLOAT_RATE_CREATURE_ELITE_RAREELITE_SPELLDAMAGE, + CONFIG_FLOAT_RATE_CREATURE_ELITE_WORLDBOSS_SPELLDAMAGE, + CONFIG_FLOAT_RATE_CREATURE_ELITE_RARE_SPELLDAMAGE, + CONFIG_FLOAT_RATE_CREATURE_AGGRO, + CONFIG_FLOAT_RATE_REST_INGAME, + CONFIG_FLOAT_RATE_REST_OFFLINE_IN_TAVERN_OR_CITY, + CONFIG_FLOAT_RATE_REST_OFFLINE_IN_WILDERNESS, + CONFIG_FLOAT_RATE_DAMAGE_FALL, + CONFIG_FLOAT_RATE_AUCTION_TIME, + CONFIG_FLOAT_RATE_AUCTION_DEPOSIT, + CONFIG_FLOAT_RATE_AUCTION_CUT, + CONFIG_FLOAT_RATE_HONOR, + CONFIG_FLOAT_RATE_MINING_AMOUNT, + CONFIG_FLOAT_RATE_MINING_NEXT, + CONFIG_FLOAT_RATE_TALENT, + CONFIG_FLOAT_RATE_CORPSE_DECAY_LOOTED, + CONFIG_FLOAT_RATE_INSTANCE_RESET_TIME, + CONFIG_FLOAT_RATE_TARGET_POS_RECALCULATION_RANGE, + CONFIG_FLOAT_RATE_DURABILITY_LOSS_DAMAGE, + CONFIG_FLOAT_RATE_DURABILITY_LOSS_PARRY, + CONFIG_FLOAT_RATE_DURABILITY_LOSS_ABSORB, + CONFIG_FLOAT_RATE_DURABILITY_LOSS_BLOCK, + CONFIG_FLOAT_SIGHT_GUARDER, + CONFIG_FLOAT_SIGHT_MONSTER, + CONFIG_FLOAT_LISTEN_RANGE_SAY, + CONFIG_FLOAT_LISTEN_RANGE_YELL, + CONFIG_FLOAT_LISTEN_RANGE_TEXTEMOTE, + CONFIG_FLOAT_CREATURE_FAMILY_FLEE_ASSISTANCE_RADIUS, + CONFIG_FLOAT_CREATURE_FAMILY_ASSISTANCE_RADIUS, + CONFIG_FLOAT_GROUP_XP_DISTANCE, + CONFIG_FLOAT_VALUE_COUNT +}; + +/// Configuration elements +enum eConfigBoolValues +{ + CONFIG_BOOL_COMPRESSION = 0, + CONFIG_BOOL_GRID_UNLOAD, + CONFIG_BOOL_INTERVAL_SAVE, + CONFIG_BOOL_INTERVAL_GRIDCLEAN, + CONFIG_BOOL_INTERVAL_MAPUPDATE, + CONFIG_BOOL_INTERVAL_CHANGEWEATHER, + CONFIG_BOOL_PORT_WORLD, + CONFIG_BOOL_SOCKET_SELECTTIME, + CONFIG_BOOL_GAME_TYPE, + CONFIG_BOOL_REALM_ZONE, + CONFIG_BOOL_ALLOW_TWO_SIDE_ACCOUNTS, + CONFIG_BOOL_ALLOW_TWO_SIDE_INTERACTION_CHAT, + CONFIG_BOOL_ALLOW_TWO_SIDE_INTERACTION_CHANNEL, + CONFIG_BOOL_ALLOW_TWO_SIDE_INTERACTION_GROUP, + CONFIG_BOOL_ALLOW_TWO_SIDE_INTERACTION_GUILD, + CONFIG_BOOL_ALLOW_TWO_SIDE_INTERACTION_AUCTION, + CONFIG_BOOL_ALLOW_TWO_SIDE_INTERACTION_MAIL, + CONFIG_BOOL_ALLOW_TWO_SIDE_WHO_LIST, + CONFIG_BOOL_ALLOW_TWO_SIDE_ADD_FRIEND, + CONFIG_BOOL_STRICT_PLAYER_NAMES, + CONFIG_BOOL_STRICT_CHARTER_NAMES, + CONFIG_BOOL_STRICT_PET_NAMES, + CONFIG_BOOL_MIN_PLAYER_NAME, + CONFIG_BOOL_MIN_CHARTER_NAME, + CONFIG_BOOL_MIN_PET_NAME, + CONFIG_BOOL_CHARACTERS_CREATING_DISABLED, + CONFIG_BOOL_CHARACTERS_PER_ACCOUNT, + CONFIG_BOOL_CHARACTERS_PER_REALM, + CONFIG_BOOL_HEROIC_CHARACTERS_PER_REALM, + CONFIG_BOOL_MIN_LEVEL_FOR_HEROIC_CHARACTER_CREATING, + CONFIG_BOOL_SKIP_CINEMATICS, + CONFIG_BOOL_MAX_PLAYER_LEVEL, + CONFIG_BOOL_START_PLAYER_LEVEL, + CONFIG_BOOL_START_HEROIC_PLAYER_LEVEL, + CONFIG_BOOL_START_PLAYER_MONEY, + CONFIG_BOOL_MAX_HONOR_POINTS, + CONFIG_BOOL_START_HONOR_POINTS, + CONFIG_BOOL_MAX_ARENA_POINTS, + CONFIG_BOOL_START_ARENA_POINTS, + CONFIG_BOOL_INSTANCE_IGNORE_LEVEL, + CONFIG_BOOL_INSTANCE_IGNORE_RAID, + CONFIG_BOOL_INSTANCE_RESET_TIME_HOUR, + CONFIG_BOOL_INSTANCE_UNLOAD_DELAY, + CONFIG_BOOL_CAST_UNSTUCK, + CONFIG_BOOL_MAX_SPELL_CASTS_IN_CHAIN, + CONFIG_BOOL_MAX_PRIMARY_TRADE_SKILL, + CONFIG_BOOL_MIN_PETITION_SIGNS, + CONFIG_BOOL_GM_LOGIN_STATE, + CONFIG_BOOL_GM_VISIBLE_STATE, + CONFIG_BOOL_GM_ACCEPT_TICKETS, + CONFIG_BOOL_GM_CHAT, + CONFIG_BOOL_GM_WISPERING_TO, + CONFIG_BOOL_GM_LEVEL_IN_GM_LIST, + CONFIG_BOOL_GM_LEVEL_IN_WHO_LIST, + CONFIG_BOOL_GM_LOG_TRADE, + CONFIG_BOOL_START_GM_LEVEL, + CONFIG_BOOL_GM_LOWER_SECURITY, + CONFIG_BOOL_GM_ALLOW_ACHIEVEMENT_GAINS, + CONFIG_BOOL_GROUP_VISIBILITY, + CONFIG_BOOL_MAIL_DELIVERY_DELAY, + CONFIG_BOOL_UPTIME_UPDATE, + CONFIG_BOOL_SKILL_CHANCE_ORANGE, + CONFIG_BOOL_SKILL_CHANCE_YELLOW, + CONFIG_BOOL_SKILL_CHANCE_GREEN, + CONFIG_BOOL_SKILL_CHANCE_GREY, + CONFIG_BOOL_SKILL_CHANCE_MINING_STEPS, + CONFIG_BOOL_SKILL_CHANCE_SKINNING_STEPS, + CONFIG_BOOL_SKILL_PROSPECTING, + CONFIG_BOOL_SKILL_GAIN_CRAFTING, + CONFIG_BOOL_SKILL_GAIN_DEFENSE, + CONFIG_BOOL_SKILL_GAIN_GATHERING, + CONFIG_BOOL_SKILL_GAIN_WEAPON, + CONFIG_BOOL_MAX_OVERSPEED_PINGS, + CONFIG_BOOL_SAVE_RESPAWN_TIME_IMMEDIATLY, + CONFIG_BOOL_ALWAYS_MAX_SKILL_FOR_LEVEL, + CONFIG_BOOL_WEATHER, + CONFIG_BOOL_EXPANSION, + CONFIG_BOOL_CHATFLOOD_MESSAGE_COUNT, + CONFIG_BOOL_CHATFLOOD_MESSAGE_DELAY, + CONFIG_BOOL_CHATFLOOD_MUTE_TIME, + CONFIG_BOOL_EVENT_ANNOUNCE, + CONFIG_BOOL_CREATURE_FAMILY_ASSISTANCE_DELAY, + CONFIG_BOOL_CREATURE_FAMILY_FLEE_DELAY, + CONFIG_BOOL_WORLD_BOSS_LEVEL_DIFF, + CONFIG_BOOL_QUEST_LOW_LEVEL_HIDE_DIFF, + CONFIG_BOOL_QUEST_HIGH_LEVEL_HIDE_DIFF, + CONFIG_BOOL_DETECT_POS_COLLISION, + CONFIG_BOOL_RESTRICTED_LFG_CHANNEL, + CONFIG_BOOL_SILENTLY_GM_JOIN_TO_CHANNEL, + CONFIG_BOOL_TALENTS_INSPECTING, + CONFIG_BOOL_CHAT_FAKE_MESSAGE_PREVENTING, + CONFIG_BOOL_CHAT_STRICT_LINK_CHECKING_SEVERITY, + CONFIG_BOOL_CHAT_STRICT_LINK_CHECKING_KICK, + CONFIG_BOOL_CORPSE_DECAY_NORMAL, + CONFIG_BOOL_CORPSE_DECAY_RARE, + CONFIG_BOOL_CORPSE_DECAY_ELITE, + CONFIG_BOOL_CORPSE_DECAY_RAREELITE, + CONFIG_BOOL_CORPSE_DECAY_WORLDBOSS, + CONFIG_BOOL_ADDON_CHANNEL, + CONFIG_BOOL_DEATH_SICKNESS_LEVEL, + CONFIG_BOOL_DEATH_CORPSE_RECLAIM_DELAY_PVP, + CONFIG_BOOL_DEATH_CORPSE_RECLAIM_DELAY_PVE, + CONFIG_BOOL_DEATH_BONES_WORLD, + CONFIG_BOOL_DEATH_BONES_BG_OR_ARENA, + CONFIG_BOOL_THREAT_RADIUS, + CONFIG_BOOL_INSTANT_LOGOUT, + CONFIG_BOOL_ALL_TAXI_PATHS, + CONFIG_BOOL_DECLINED_NAMES_USED, + CONFIG_BOOL_SKILL_MILLING, + CONFIG_BOOL_BATTLEGROUND_CAST_DESERTER, + CONFIG_BOOL_BATTLEGROUND_QUEUE_ANNOUNCER_ENABLE, + CONFIG_BOOL_BATTLEGROUND_QUEUE_ANNOUNCER_PLAYERONLY, + CONFIG_BOOL_BATTLEGROUND_INVITATION_TYPE, + CONFIG_BOOL_BATTLEGROUND_PREMATURE_FINISH_TIMER, + CONFIG_BOOL_BATTLEGROUND_PREMADE_GROUP_WAIT_FOR_MATCH, + CONFIG_BOOL_ARENA_MAX_RATING_DIFFERENCE, + CONFIG_BOOL_ARENA_RATING_DISCARD_TIMER, + CONFIG_BOOL_ARENA_AUTO_DISTRIBUTE_POINTS, + CONFIG_BOOL_ARENA_AUTO_DISTRIBUTE_INTERVAL_DAYS, + CONFIG_BOOL_ARENA_QUEUE_ANNOUNCER_ENABLE, + CONFIG_BOOL_ARENA_SEASON_ID, + CONFIG_BOOL_ARENA_SEASON_IN_PROGRESS, + CONFIG_BOOL_OFFHAND_CHECK_AT_TALENTS_RESET, + CONFIG_BOOL_CLIENTCACHE_VERSION, + CONFIG_BOOL_GUILD_EVENT_LOG_COUNT, + CONFIG_BOOL_GUILD_BANK_EVENT_LOG_COUNT, + CONFIG_BOOL_TIMERBAR_FATIGUE_GMLEVEL, + CONFIG_BOOL_TIMERBAR_FATIGUE_MAX, + CONFIG_BOOL_TIMERBAR_BREATH_GMLEVEL, + CONFIG_BOOL_TIMERBAR_BREATH_MAX, + CONFIG_BOOL_TIMERBAR_FIRE_GMLEVEL, + CONFIG_BOOL_TIMERBAR_FIRE_MAX, + // + CONFIG_BOOL_RATE_HEALTH, + CONFIG_BOOL_RATE_POWER_MANA, + CONFIG_BOOL_RATE_POWER_RAGE_INCOME, + CONFIG_BOOL_RATE_POWER_RAGE_LOSS, + CONFIG_BOOL_RATE_POWER_RUNICPOWER_INCOME, + CONFIG_BOOL_RATE_POWER_RUNICPOWER_LOSS, + CONFIG_BOOL_RATE_POWER_FOCUS, + CONFIG_BOOL_RATE_SKILL_DISCOVERY, + CONFIG_BOOL_RATE_DROP_ITEM_POOR, + CONFIG_BOOL_RATE_DROP_ITEM_NORMAL, + CONFIG_BOOL_RATE_DROP_ITEM_UNCOMMON, + CONFIG_BOOL_RATE_DROP_ITEM_RARE, + CONFIG_BOOL_RATE_DROP_ITEM_EPIC, + CONFIG_BOOL_RATE_DROP_ITEM_LEGENDARY, + CONFIG_BOOL_RATE_DROP_ITEM_ARTIFACT, + CONFIG_BOOL_RATE_DROP_ITEM_REFERENCED, + CONFIG_BOOL_RATE_DROP_MONEY, + CONFIG_BOOL_RATE_XP_KILL, + CONFIG_BOOL_RATE_XP_QUEST, + CONFIG_BOOL_RATE_XP_EXPLORE, + CONFIG_BOOL_RATE_REPUTATION_GAIN, + CONFIG_BOOL_RATE_REPUTATION_LOWLEVEL_KILL, + CONFIG_BOOL_RATE_REPUTATION_LOWLEVEL_QUEST, + CONFIG_BOOL_RATE_CREATURE_NORMAL_HP, + CONFIG_BOOL_RATE_CREATURE_ELITE_ELITE_HP, + CONFIG_BOOL_RATE_CREATURE_ELITE_RAREELITE_HP, + CONFIG_BOOL_RATE_CREATURE_ELITE_WORLDBOSS_HP, + CONFIG_BOOL_RATE_CREATURE_ELITE_RARE_HP, + CONFIG_BOOL_RATE_CREATURE_NORMAL_DAMAGE, + CONFIG_BOOL_RATE_CREATURE_ELITE_ELITE_DAMAGE, + CONFIG_BOOL_RATE_CREATURE_ELITE_RAREELITE_DAMAGE, + CONFIG_BOOL_RATE_CREATURE_ELITE_WORLDBOSS_DAMAGE, + CONFIG_BOOL_RATE_CREATURE_ELITE_RARE_DAMAGE, + CONFIG_BOOL_RATE_CREATURE_NORMAL_SPELLDAMAGE, + CONFIG_BOOL_RATE_CREATURE_ELITE_ELITE_SPELLDAMAGE, + CONFIG_BOOL_RATE_CREATURE_ELITE_RAREELITE_SPELLDAMAGE, + CONFIG_BOOL_RATE_CREATURE_ELITE_WORLDBOSS_SPELLDAMAGE, + CONFIG_BOOL_RATE_CREATURE_ELITE_RARE_SPELLDAMAGE, + CONFIG_BOOL_RATE_CREATURE_AGGRO, + CONFIG_BOOL_RATE_REST_INGAME, + CONFIG_BOOL_RATE_REST_OFFLINE_IN_TAVERN_OR_CITY, + CONFIG_BOOL_RATE_REST_OFFLINE_IN_WILDERNESS, + CONFIG_BOOL_RATE_DAMAGE_FALL, + CONFIG_BOOL_RATE_AUCTION_TIME, + CONFIG_BOOL_RATE_AUCTION_DEPOSIT, + CONFIG_BOOL_RATE_AUCTION_CUT, + CONFIG_BOOL_RATE_HONOR, + CONFIG_BOOL_RATE_MINING_AMOUNT, + CONFIG_BOOL_RATE_MINING_NEXT, + CONFIG_BOOL_RATE_TALENT, + CONFIG_BOOL_RATE_CORPSE_DECAY_LOOTED, + CONFIG_BOOL_RATE_INSTANCE_RESET_TIME, + CONFIG_BOOL_RATE_TARGET_POS_RECALCULATION_RANGE, + CONFIG_BOOL_RATE_DURABILITY_LOSS_DAMAGE, + CONFIG_BOOL_RATE_DURABILITY_LOSS_PARRY, + CONFIG_BOOL_RATE_DURABILITY_LOSS_ABSORB, + CONFIG_BOOL_RATE_DURABILITY_LOSS_BLOCK, + CONFIG_BOOL_SIGHT_GUARDER, + CONFIG_BOOL_SIGHT_MONSTER, + CONFIG_BOOL_LISTEN_RANGE_SAY, + CONFIG_BOOL_LISTEN_RANGE_YELL, + CONFIG_BOOL_LISTEN_RANGE_TEXTEMOTE, + CONFIG_BOOL_CREATURE_FAMILY_FLEE_ASSISTANCE_RADIUS, + CONFIG_BOOL_CREATURE_FAMILY_ASSISTANCE_RADIUS, + CONFIG_BOOL_GROUP_XP_DISTANCE, + CONFIG_BOOL_VALUE_COUNT }; /// Type of server @@ -443,7 +1048,7 @@ class World /// Get the maximum skill level a player can reach uint16 GetConfigMaxSkillValue() const { - uint32 lvl = getConfig(CONFIG_MAX_PLAYER_LEVEL); + uint32 lvl = getConfig(CONFIG_UINT32_MAX_PLAYER_LEVEL); return lvl > 60 ? 300 + ((lvl - 60) * 75) / 10 : lvl*5; } @@ -469,19 +1074,30 @@ class World void Update(uint32 diff); void UpdateSessions( uint32 diff ); - /// Set a server rate (see #Rates) - void setRate(Rates rate,float value) { rate_values[rate]=value; } - /// Get a server rate (see #Rates) - float getRate(Rates rate) const { return rate_values[rate]; } - /// Set a server configuration element (see #WorldConfigs) - void setConfig(WorldConfigs index,uint32 value) { m_configs[index]=value; } - /// Get a server configuration element (see #WorldConfigs) - uint32 getConfig(WorldConfigs index) const { return m_configs[index]; } + /// et a server configuration element (see #eConfigFLoatValues) + void setConfig(eConfigFLoatValues index,float value) { m_configFloatValues[index]=value; } + /// Get a server configuration element (see #eConfigFLoatValues) + float getConfig(eConfigFLoatValues rate) const { return m_configFloatValues[rate]; } + + /// Set a server configuration element (see #eConfigUint32Values) + void setConfig(eConfigUint32Values index, uint32 value) { m_configUint32Values[index]=value; } + /// Get a server configuration element (see #eConfigUint32Values) + uint32 getConfig(eConfigUint32Values index) const { return m_configUint32Values[index]; } + + /// Set a server configuration element (see #eConfigInt32Values) + void setConfig(eConfigInt32Values index, int32 value) { m_configInt32Values[index]=value; } + /// Get a server configuration element (see #eConfigInt32Values) + int32 getConfig(eConfigInt32Values index) const { return m_configInt32Values[index]; } + + /// Set a server configuration element (see #eConfigBoolValues) + void setConfig(eConfigBoolValues index, bool value) { m_configBoolValues[index]=value; } + /// Get a server configuration element (see #eConfigBoolValues) + bool getConfig(eConfigBoolValues index) const { return m_configBoolValues[index]; } /// Are we on a "Player versus Player" server? - bool IsPvPRealm() { return (getConfig(CONFIG_GAME_TYPE) == REALM_TYPE_PVP || getConfig(CONFIG_GAME_TYPE) == REALM_TYPE_RPPVP || getConfig(CONFIG_GAME_TYPE) == REALM_TYPE_FFA_PVP); } - bool IsFFAPvPRealm() { return getConfig(CONFIG_GAME_TYPE) == REALM_TYPE_FFA_PVP; } + bool IsPvPRealm() { return (getConfig(CONFIG_UINT32_GAME_TYPE) == REALM_TYPE_PVP || getConfig(CONFIG_UINT32_GAME_TYPE) == REALM_TYPE_RPPVP || getConfig(CONFIG_UINT32_GAME_TYPE) == REALM_TYPE_FFA_PVP); } + bool IsFFAPvPRealm() { return getConfig(CONFIG_UINT32_GAME_TYPE) == REALM_TYPE_FFA_PVP; } void KickAll(); void KickAllLess(AccountTypes sec); @@ -551,8 +1167,12 @@ class World uint32 m_maxActiveSessionCount; uint32 m_maxQueuedSessionCount; - float rate_values[MAX_RATES]; - uint32 m_configs[CONFIG_VALUE_COUNT]; + + uint32 m_configUint32Values[CONFIG_UINT32_VALUE_COUNT]; + int32 m_configInt32Values[CONFIG_INT32_VALUE_COUNT]; + float m_configFloatValues[CONFIG_FLOAT_VALUE_COUNT]; + bool m_configBoolValues[CONFIG_BOOL_VALUE_COUNT]; + int32 m_playerLimit; LocaleConstant m_defaultDbcLocale; // from config for one from loaded DBC locales uint32 m_availableDbcLocaleMask; // by loaded DBC diff --git a/src/game/WorldSocket.cpp b/src/game/WorldSocket.cpp index acaaf839d..625049f52 100644 --- a/src/game/WorldSocket.cpp +++ b/src/game/WorldSocket.cpp @@ -808,7 +808,7 @@ int WorldSocket::HandleAuthSession (WorldPacket& recvPacket) Field* fields = result->Fetch (); - expansion = ((sWorld.getConfig(CONFIG_EXPANSION) > fields[7].GetUInt8()) ? fields[7].GetUInt8() : sWorld.getConfig(CONFIG_EXPANSION)); + expansion = ((sWorld.getConfig(CONFIG_UINT32_EXPANSION) > fields[7].GetUInt8()) ? fields[7].GetUInt8() : sWorld.getConfig(CONFIG_UINT32_EXPANSION)); N.SetHexStr ("894B645E89E1535BBDAD5B8B290650530801B18EBFBF5E8FAB3C82872A3E9BB7"); g.SetDword (7); @@ -968,7 +968,7 @@ int WorldSocket::HandlePing (WorldPacket& recvPacket) { ++m_OverSpeedPings; - uint32 max_count = sWorld.getConfig (CONFIG_MAX_OVERSPEED_PINGS); + uint32 max_count = sWorld.getConfig (CONFIG_UINT32_MAX_OVERSPEED_PINGS); if (max_count && m_OverSpeedPings > max_count) { diff --git a/src/mangosd/Master.cpp b/src/mangosd/Master.cpp index 98720eae2..a89d049a7 100644 --- a/src/mangosd/Master.cpp +++ b/src/mangosd/Master.cpp @@ -119,7 +119,7 @@ public: RARunnable () { - uint32 socketSelecttime = sWorld.getConfig (CONFIG_SOCKET_SELECTTIME); + uint32 socketSelecttime = sWorld.getConfig (CONFIG_UINT32_SOCKET_SELECTTIME); numLoops = (sConfig.GetIntDefault ("MaxPingTime", 30) * (MINUTE * 1000000 / socketSelecttime)); loopCounter = 0; } @@ -163,7 +163,7 @@ public: } // Socket Selet time is in microseconds , not miliseconds!! - uint32 socketSelecttime = sWorld.getConfig (CONFIG_SOCKET_SELECTTIME); + uint32 socketSelecttime = sWorld.getConfig (CONFIG_UINT32_SOCKET_SELECTTIME); // if use ra spend time waiting for io, if not use ra ,just sleep if (usera) @@ -303,7 +303,7 @@ int Master::Run() } ///- Launch the world listener socket - port_t wsport = sWorld.getConfig (CONFIG_PORT_WORLD); + port_t wsport = sWorld.getConfig (CONFIG_UINT32_PORT_WORLD); std::string bind_ip = sConfig.GetStringDefault ("BindIP", "0.0.0.0"); if (sWorldSocketMgr->StartNetwork (wsport, bind_ip.c_str ()) == -1) diff --git a/src/shared/revision_nr.h b/src/shared/revision_nr.h index e32c328d3..d9a1144fc 100644 --- a/src/shared/revision_nr.h +++ b/src/shared/revision_nr.h @@ -1,4 +1,4 @@ #ifndef __REVISION_NR_H__ #define __REVISION_NR_H__ - #define REVISION_NR "9388" + #define REVISION_NR "9389" #endif // __REVISION_NR_H__