diff --git a/src/game/OutdoorPvP/OutdoorPvPMgr.cpp b/src/game/OutdoorPvP/OutdoorPvPMgr.cpp index 4c688e109..331ed17b1 100644 --- a/src/game/OutdoorPvP/OutdoorPvPMgr.cpp +++ b/src/game/OutdoorPvP/OutdoorPvPMgr.cpp @@ -44,21 +44,29 @@ OutdoorPvPMgr::~OutdoorPvPMgr() delete m_scripts[i]; } +#define LOAD_OPVP_ZONE(a) \ + if (sWorld.getConfig(CONFIG_BOOL_OUTDOORPVP_##a##_ENABLED)) \ + { \ + m_scripts[OPVP_ID_##a##] = new OutdoorPvP##a##(); \ + ++counter; \ + } /** Function which loads all outdoor pvp scripts */ void OutdoorPvPMgr::InitOutdoorPvP() { - m_scripts[OPVP_ID_SI] = new OutdoorPvPSI(); - m_scripts[OPVP_ID_EP] = new OutdoorPvPEP(); - m_scripts[OPVP_ID_HP] = new OutdoorPvPHP(); - m_scripts[OPVP_ID_ZM] = new OutdoorPvPZM(); - m_scripts[OPVP_ID_TF] = new OutdoorPvPTF(); - m_scripts[OPVP_ID_NA] = new OutdoorPvPNA(); - m_scripts[OPVP_ID_GH] = new OutdoorPvPGH(); + uint8 counter = 0; + + LOAD_OPVP_ZONE(SI); + LOAD_OPVP_ZONE(EP); + LOAD_OPVP_ZONE(HP); + LOAD_OPVP_ZONE(ZM); + LOAD_OPVP_ZONE(TF); + LOAD_OPVP_ZONE(NA); + LOAD_OPVP_ZONE(GH); sLog.outString(); - sLog.outString(">> Loaded %u Outdoor PvP zones", MAX_OPVP_ID); + sLog.outString(">> Loaded %u Outdoor PvP zones", counter); } OutdoorPvP* OutdoorPvPMgr::GetScript(uint32 zoneId) diff --git a/src/game/World.cpp b/src/game/World.cpp index 58e913010..17b742ffc 100644 --- a/src/game/World.cpp +++ b/src/game/World.cpp @@ -751,6 +751,13 @@ void World::LoadConfigSettings(bool reload) setConfig(CONFIG_UINT32_ARENA_SEASON_PREVIOUS_ID, "Arena.ArenaSeasonPrevious.ID", 0); setConfigMin(CONFIG_INT32_ARENA_STARTRATING, "Arena.StartRating", -1, -1); setConfigMin(CONFIG_INT32_ARENA_STARTPERSONALRATING, "Arena.StartPersonalRating", -1, -1); + setConfig(CONFIG_BOOL_OUTDOORPVP_SI_ENABLED, "OutdoorPvp.SIEnabled", true); + setConfig(CONFIG_BOOL_OUTDOORPVP_EP_ENABLED, "OutdoorPvp.EPEnabled", true); + setConfig(CONFIG_BOOL_OUTDOORPVP_HP_ENABLED, "OutdoorPvp.HPEnabled", true); + setConfig(CONFIG_BOOL_OUTDOORPVP_ZM_ENABLED, "OutdoorPvp.ZMEnabled", true); + setConfig(CONFIG_BOOL_OUTDOORPVP_TF_ENABLED, "OutdoorPvp.TFEnabled", true); + setConfig(CONFIG_BOOL_OUTDOORPVP_NA_ENABLED, "OutdoorPvp.NAEnabled", true); + setConfig(CONFIG_BOOL_OUTDOORPVP_GH_ENABLED, "OutdoorPvp.GHEnabled", true); setConfig(CONFIG_BOOL_OFFHAND_CHECK_AT_TALENTS_RESET, "OffhandCheckAtTalentsReset", false); diff --git a/src/game/World.h b/src/game/World.h index 34f0dc83a..d83de9010 100644 --- a/src/game/World.h +++ b/src/game/World.h @@ -328,6 +328,13 @@ enum eConfigBoolValues CONFIG_BOOL_ARENA_AUTO_DISTRIBUTE_POINTS, CONFIG_BOOL_ARENA_QUEUE_ANNOUNCER_JOIN, CONFIG_BOOL_ARENA_QUEUE_ANNOUNCER_EXIT, + CONFIG_BOOL_OUTDOORPVP_SI_ENABLED, + CONFIG_BOOL_OUTDOORPVP_EP_ENABLED, + CONFIG_BOOL_OUTDOORPVP_HP_ENABLED, + CONFIG_BOOL_OUTDOORPVP_ZM_ENABLED, + CONFIG_BOOL_OUTDOORPVP_TF_ENABLED, + CONFIG_BOOL_OUTDOORPVP_NA_ENABLED, + CONFIG_BOOL_OUTDOORPVP_GH_ENABLED, CONFIG_BOOL_KICK_PLAYER_ON_BAD_PACKET, CONFIG_BOOL_STATS_SAVE_ONLY_ON_LOGOUT, CONFIG_BOOL_CLEAN_CHARACTER_DB, diff --git a/src/mangosd/mangosd.conf.dist.in b/src/mangosd/mangosd.conf.dist.in index bae5240c6..5086a21a4 100644 --- a/src/mangosd/mangosd.conf.dist.in +++ b/src/mangosd/mangosd.conf.dist.in @@ -1538,6 +1538,29 @@ Arena.ArenaSeasonPrevious.ID = 0 Arena.StartRating = -1 Arena.StartPersonalRating = -1 +################################################################################################################### +# OUTDOOR PVP CONFIG +# +# OutdoorPvp.SIEnabled #Enable Silithus Outdoor pvp +# OutdoorPvp.EPEnabled #Enable Eastern Plaguelands Outdoor pvp +# OutdoorPvp.HPEnabled #Enable Hellfire Peninsula Outdoor pvp +# OutdoorPvp.ZMEnabled #Enable Zangarmarsh Outdoor pvp +# OutdoorPvp.TFEnabled #Enable Terokkar Forest Outdoor pvp +# OutdoorPvp.NAEnabled #Enable Halaa (Nagrand) Outdoor pvp +# OutdoorPvp.GHEnabled #Enable Venture Bay (Grizzly Hills) Outdoor pvp +# Default: 1 (enable) +# 0 (disable) +# +################################################################################################################### + +OutdoorPvp.SIEnabled = 1 +OutdoorPvp.EPEnabled = 1 +OutdoorPvp.HPEnabled = 1 +OutdoorPvp.ZMEnabled = 1 +OutdoorPvp.TFEnabled = 1 +OutdoorPvp.NAEnabled = 1 +OutdoorPvp.GHEnabled = 1 + ################################################################################################################### # NETWORK CONFIG # diff --git a/src/shared/revision_nr.h b/src/shared/revision_nr.h index f5f71e9f6..35ca15573 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 "0135" + #define REVISION_NR "12103" #endif // __REVISION_NR_H__