diff --git a/src/game/Player.cpp b/src/game/Player.cpp index 870555c15..ed69cc186 100644 --- a/src/game/Player.cpp +++ b/src/game/Player.cpp @@ -13608,7 +13608,7 @@ bool Player::CanSeeStartQuest(Quest const *pQuest) const SatisfyQuestMonth(pQuest, false) && pQuest->IsActive()) { - return getLevel() + sWorld.getConfig(CONFIG_UINT32_QUEST_HIGH_LEVEL_HIDE_DIFF) >= pQuest->GetMinLevel(); + return int32(getLevel()) + sWorld.getConfig(CONFIG_INT32_QUEST_HIGH_LEVEL_HIDE_DIFF) >= int32(pQuest->GetMinLevel()); } return false; diff --git a/src/game/QuestHandler.cpp b/src/game/QuestHandler.cpp index fb3c50fb3..8306964bd 100644 --- a/src/game/QuestHandler.cpp +++ b/src/game/QuestHandler.cpp @@ -564,7 +564,7 @@ uint32 WorldSession::getDialogStatus(Player *pPlayer, Object* questgiver, uint32 { dialogStatusNew = DIALOG_STATUS_REWARD_REP; } - else if (pPlayer->getLevel() <= pPlayer->GetQuestLevelForPlayer(pQuest) + sWorld.getConfig(CONFIG_UINT32_QUEST_LOW_LEVEL_HIDE_DIFF)) + else if (int32(pPlayer->getLevel()) <= int32(pPlayer->GetQuestLevelForPlayer(pQuest)) + sWorld.getConfig(CONFIG_INT32_QUEST_LOW_LEVEL_HIDE_DIFF)) { if (pQuest->HasQuestFlag(QUEST_FLAGS_DAILY) || pQuest->HasQuestFlag(QUEST_FLAGS_WEEKLY)) dialogStatusNew = DIALOG_STATUS_AVAILABLE_REP; diff --git a/src/game/World.cpp b/src/game/World.cpp index 9c1540b9e..0b6a44a39 100644 --- a/src/game/World.cpp +++ b/src/game/World.cpp @@ -490,7 +490,7 @@ void World::LoadConfigSettings(bool reload) setConfigPos(CONFIG_FLOAT_RATE_AUCTION_TIME, "Rate.Auction.Time", 1.0f); setConfig(CONFIG_FLOAT_RATE_AUCTION_DEPOSIT, "Rate.Auction.Deposit", 1.0f); setConfig(CONFIG_FLOAT_RATE_AUCTION_CUT, "Rate.Auction.Cut", 1.0f); - setConfigPos(CONFIG_UINT32_AUCTION_DEPOSIT_MIN, "Auction.Deposit.Min", SILVER); + setConfig(CONFIG_UINT32_AUCTION_DEPOSIT_MIN, "Auction.Deposit.Min", SILVER); setConfig(CONFIG_FLOAT_RATE_HONOR, "Rate.Honor",1.0f); setConfigPos(CONFIG_FLOAT_RATE_MINING_AMOUNT, "Rate.Mining.Amount", 1.0f); setConfigPos(CONFIG_FLOAT_RATE_MINING_NEXT, "Rate.Mining.Next", 1.0f); @@ -521,7 +521,7 @@ void World::LoadConfigSettings(bool reload) setConfig(CONFIG_BOOL_ADDON_CHANNEL, "AddonChannel", true); setConfig(CONFIG_BOOL_CLEAN_CHARACTER_DB, "CleanCharacterDB", true); setConfig(CONFIG_BOOL_GRID_UNLOAD, "GridUnload", true); - setConfigPos(CONFIG_UINT32_INTERVAL_SAVE, "PlayerSave.Interval", 15 * MINUTE * IN_MILLISECONDS); + setConfig(CONFIG_UINT32_INTERVAL_SAVE, "PlayerSave.Interval", 15 * MINUTE * IN_MILLISECONDS); setConfigMinMax(CONFIG_UINT32_MIN_LEVEL_STAT_SAVE, "PlayerSave.Stats.MinLevel", 0, 0, MAX_LEVEL); setConfig(CONFIG_BOOL_STATS_SAVE_ONLY_ON_LOGOUT, "PlayerSave.Stats.SaveOnlyOnLogout", true); @@ -583,11 +583,11 @@ void World::LoadConfigSettings(bool reload) setConfigMinMax(CONFIG_UINT32_START_PLAYER_MONEY, "StartPlayerMoney", 0, 0, MAX_MONEY_AMOUNT); - setConfigPos(CONFIG_UINT32_MAX_HONOR_POINTS, "MaxHonorPoints", 75000); + setConfig(CONFIG_UINT32_MAX_HONOR_POINTS, "MaxHonorPoints", 75000); setConfigMinMax(CONFIG_UINT32_START_HONOR_POINTS, "StartHonorPoints", 0, 0, getConfig(CONFIG_UINT32_MAX_HONOR_POINTS)); - setConfigPos(CONFIG_UINT32_MAX_ARENA_POINTS, "MaxArenaPoints", 5000); + setConfig(CONFIG_UINT32_MAX_ARENA_POINTS, "MaxArenaPoints", 5000); setConfigMinMax(CONFIG_UINT32_START_ARENA_POINTS, "StartArenaPoints", 0, 0, getConfig(CONFIG_UINT32_MAX_ARENA_POINTS)); @@ -631,7 +631,7 @@ void World::LoadConfigSettings(bool reload) setConfigMin(CONFIG_UINT32_MASS_MAILER_SEND_PER_TICK, "MassMailer.SendPerTick", 10, 1); - setConfigPos(CONFIG_UINT32_UPTIME_UPDATE, "UpdateUptimeInterval", 10); + setConfig(CONFIG_UINT32_UPTIME_UPDATE, "UpdateUptimeInterval", 10); if (reload) { m_timers[WUPDATE_UPTIME].SetInterval(getConfig(CONFIG_UINT32_UPTIME_UPDATE)*MINUTE*IN_MILLISECONDS); @@ -643,15 +643,15 @@ void World::LoadConfigSettings(bool reload) setConfig(CONFIG_UINT32_SKILL_CHANCE_GREEN, "SkillChance.Green", 25); setConfig(CONFIG_UINT32_SKILL_CHANCE_GREY, "SkillChance.Grey", 0); - setConfigPos(CONFIG_UINT32_SKILL_CHANCE_MINING_STEPS, "SkillChance.MiningSteps", 75); - setConfigPos(CONFIG_UINT32_SKILL_CHANCE_SKINNING_STEPS, "SkillChance.SkinningSteps", 75); + setConfig(CONFIG_UINT32_SKILL_CHANCE_MINING_STEPS, "SkillChance.MiningSteps", 75); + setConfig(CONFIG_UINT32_SKILL_CHANCE_SKINNING_STEPS, "SkillChance.SkinningSteps", 75); setConfig(CONFIG_BOOL_SKILL_PROSPECTING, "SkillChance.Prospecting", false); setConfig(CONFIG_BOOL_SKILL_MILLING, "SkillChance.Milling", false); - setConfigPos(CONFIG_UINT32_SKILL_GAIN_CRAFTING, "SkillGain.Crafting", 1); - setConfigPos(CONFIG_UINT32_SKILL_GAIN_DEFENSE, "SkillGain.Defense", 1); - setConfigPos(CONFIG_UINT32_SKILL_GAIN_GATHERING, "SkillGain.Gathering", 1); + setConfig(CONFIG_UINT32_SKILL_GAIN_CRAFTING, "SkillGain.Crafting", 1); + setConfig(CONFIG_UINT32_SKILL_GAIN_DEFENSE, "SkillGain.Defense", 1); + setConfig(CONFIG_UINT32_SKILL_GAIN_GATHERING, "SkillGain.Gathering", 1); setConfig(CONFIG_UINT32_SKILL_GAIN_WEAPON, "SkillGain.Weapon", 1); setConfig(CONFIG_BOOL_SKILL_FAIL_LOOT_FISHING, "SkillFail.Loot.Fishing", true); @@ -685,12 +685,8 @@ void World::LoadConfigSettings(bool reload) setConfig(CONFIG_UINT32_WORLD_BOSS_LEVEL_DIFF, "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) - setConfig(CONFIG_UINT32_QUEST_LOW_LEVEL_HIDE_DIFF, "Quests.LowLevelHideDiff", 4); - if (getConfig(CONFIG_UINT32_QUEST_LOW_LEVEL_HIDE_DIFF) > MAX_LEVEL) - setConfig(CONFIG_UINT32_QUEST_LOW_LEVEL_HIDE_DIFF, MAX_LEVEL); - setConfig(CONFIG_UINT32_QUEST_HIGH_LEVEL_HIDE_DIFF, "Quests.HighLevelHideDiff", 7); - if (getConfig(CONFIG_UINT32_QUEST_HIGH_LEVEL_HIDE_DIFF) > MAX_LEVEL) - setConfig(CONFIG_UINT32_QUEST_HIGH_LEVEL_HIDE_DIFF, MAX_LEVEL); + setConfigMinMax(CONFIG_INT32_QUEST_LOW_LEVEL_HIDE_DIFF, "Quests.LowLevelHideDiff", 4, -1, MAX_LEVEL); + setConfigMinMax(CONFIG_INT32_QUEST_HIGH_LEVEL_HIDE_DIFF, "Quests.HighLevelHideDiff", 7, -1, MAX_LEVEL); setConfigMinMax(CONFIG_UINT32_QUEST_DAILY_RESET_HOUR, "Quests.Daily.ResetHour", 6, 0, 23); setConfigMinMax(CONFIG_UINT32_QUEST_WEEKLY_RESET_WEEK_DAY, "Quests.Weekly.ResetWeekDay", 3, 0, 6); @@ -710,11 +706,11 @@ void World::LoadConfigSettings(bool reload) setConfig(CONFIG_UINT32_CHAT_STRICT_LINK_CHECKING_KICK, "ChatStrictLinkChecking.Kick", 0); setConfig(CONFIG_BOOL_CORPSE_EMPTY_LOOT_SHOW, "Corpse.EmptyLootShow", true); - setConfigPos(CONFIG_UINT32_CORPSE_DECAY_NORMAL, "Corpse.Decay.NORMAL", 300); - setConfigPos(CONFIG_UINT32_CORPSE_DECAY_RARE, "Corpse.Decay.RARE", 900); - setConfigPos(CONFIG_UINT32_CORPSE_DECAY_ELITE, "Corpse.Decay.ELITE", 600); - setConfigPos(CONFIG_UINT32_CORPSE_DECAY_RAREELITE, "Corpse.Decay.RAREELITE", 1200); - setConfigPos(CONFIG_UINT32_CORPSE_DECAY_WORLDBOSS, "Corpse.Decay.WORLDBOSS", 3600); + setConfig(CONFIG_UINT32_CORPSE_DECAY_NORMAL, "Corpse.Decay.NORMAL", 300); + setConfig(CONFIG_UINT32_CORPSE_DECAY_RARE, "Corpse.Decay.RARE", 900); + setConfig(CONFIG_UINT32_CORPSE_DECAY_ELITE, "Corpse.Decay.ELITE", 600); + setConfig(CONFIG_UINT32_CORPSE_DECAY_RAREELITE, "Corpse.Decay.RAREELITE", 1200); + setConfig(CONFIG_UINT32_CORPSE_DECAY_WORLDBOSS, "Corpse.Decay.WORLDBOSS", 3600); setConfig(CONFIG_INT32_DEATH_SICKNESS_LEVEL, "Death.SicknessLevel", 11); @@ -845,12 +841,12 @@ void World::LoadConfigSettings(bool reload) ///- Load the CharDelete related config options setConfigMinMax(CONFIG_UINT32_CHARDELETE_METHOD, "CharDelete.Method", 0, 0, 1); setConfigMinMax(CONFIG_UINT32_CHARDELETE_MIN_LEVEL, "CharDelete.MinLevel", 0, 0, getConfig(CONFIG_UINT32_MAX_PLAYER_LEVEL)); - setConfigPos(CONFIG_UINT32_CHARDELETE_KEEP_DAYS, "CharDelete.KeepDays", 30); + setConfig(CONFIG_UINT32_CHARDELETE_KEEP_DAYS, "CharDelete.KeepDays", 30); if (configNoReload(reload, CONFIG_UINT32_GUID_RESERVE_SIZE_CREATURE, "GuidReserveSize.Creature", 100)) - setConfigPos(CONFIG_UINT32_GUID_RESERVE_SIZE_CREATURE, "GuidReserveSize.Creature", 100); + setConfig(CONFIG_UINT32_GUID_RESERVE_SIZE_CREATURE, "GuidReserveSize.Creature", 100); if (configNoReload(reload, CONFIG_UINT32_GUID_RESERVE_SIZE_GAMEOBJECT, "GuidReserveSize.GameObject", 100)) - setConfigPos(CONFIG_UINT32_GUID_RESERVE_SIZE_GAMEOBJECT, "GuidReserveSize.GameObject", 100); + setConfig(CONFIG_UINT32_GUID_RESERVE_SIZE_GAMEOBJECT, "GuidReserveSize.GameObject", 100); setConfig(CONFIG_UINT32_MIN_LEVEL_FOR_RAID, "Raid.MinLevel", 10); @@ -2174,6 +2170,11 @@ void World::LoadDBVersion() void World::setConfig(eConfigUInt32Values index, char const* fieldname, uint32 defvalue) { setConfig(index, sConfig.GetIntDefault(fieldname,defvalue)); + if (int32(getConfig(index)) < 0) + { + sLog.outError("%s (%i) can't be negative. Using %u instead.", fieldname, int32(getConfig(index)), defvalue); + setConfig(index, defvalue); + } } void World::setConfig(eConfigInt32Values index, char const* fieldname, int32 defvalue) @@ -2191,16 +2192,6 @@ void World::setConfig( eConfigBoolValues index, char const* fieldname, bool defv setConfig(index, sConfig.GetBoolDefault(fieldname,defvalue)); } -void World::setConfigPos(eConfigUInt32Values index, char const* fieldname, uint32 defvalue) -{ - setConfig(index, fieldname, defvalue); - if (int32(getConfig(index)) < 0) - { - sLog.outError("%s (%i) can't be negative. Using %u instead.", fieldname, int32(getConfig(index)), defvalue); - setConfig(index, defvalue); - } -} - void World::setConfigPos(eConfigFloatValues index, char const* fieldname, float defvalue) { setConfig(index, fieldname, defvalue); diff --git a/src/game/World.h b/src/game/World.h index 6b49a6471..15c69cad0 100644 --- a/src/game/World.h +++ b/src/game/World.h @@ -151,8 +151,6 @@ enum eConfigUInt32Values 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_QUEST_DAILY_RESET_HOUR, CONFIG_UINT32_QUEST_WEEKLY_RESET_WEEK_DAY, CONFIG_UINT32_QUEST_WEEKLY_RESET_HOUR, @@ -198,6 +196,8 @@ enum eConfigInt32Values CONFIG_INT32_DEATH_SICKNESS_LEVEL = 0, CONFIG_INT32_ARENA_STARTRATING, CONFIG_INT32_ARENA_STARTPERSONALRATING, + CONFIG_INT32_QUEST_LOW_LEVEL_HIDE_DIFF, + CONFIG_INT32_QUEST_HIGH_LEVEL_HIDE_DIFF, CONFIG_INT32_VALUE_COUNT }; @@ -596,7 +596,6 @@ class World void setConfig(eConfigInt32Values index, char const* fieldname, int32 defvalue); void setConfig(eConfigFloatValues index, char const* fieldname, float defvalue); void setConfig(eConfigBoolValues index, char const* fieldname, bool defvalue); - void setConfigPos(eConfigUInt32Values index, char const* fieldname, uint32 defvalue); void setConfigPos(eConfigFloatValues index, char const* fieldname, float defvalue); void setConfigMin(eConfigUInt32Values index, char const* fieldname, uint32 defvalue, uint32 minvalue); void setConfigMin(eConfigInt32Values index, char const* fieldname, int32 defvalue, int32 minvalue); diff --git a/src/shared/revision_nr.h b/src/shared/revision_nr.h index 1973131cf..7503e5808 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 "11714" + #define REVISION_NR "11715" #endif // __REVISION_NR_H__