aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/game/PetHandler.cpp9
-rw-r--r--src/game/World.cpp2
-rw-r--r--src/game/World.h2
-rw-r--r--src/trinitycore/trinitycore.conf.dist8
4 files changed, 16 insertions, 5 deletions
diff --git a/src/game/PetHandler.cpp b/src/game/PetHandler.cpp
index a3644371f47..350c390d86c 100644
--- a/src/game/PetHandler.cpp
+++ b/src/game/PetHandler.cpp
@@ -115,9 +115,14 @@ void WorldSession::HandlePetAction( WorldPacket & recv_data )
return;
// Not let attack through obstructions
- //if(!pet->IsWithinLOSInMap(TargetUnit))
- // return;
+ if(sWorld.getConfig(CONFIG_PET_LOS))
+ {
+
+ if(!pet->IsWithinLOSInMap(TargetUnit))
+ return;
+ }
+
pet->clearUnitState(UNIT_STAT_FOLLOW);
if(pet->GetTypeId() != TYPEID_PLAYER && ((Creature*)pet)->IsAIEnabled)
diff --git a/src/game/World.cpp b/src/game/World.cpp
index d1f5490ba55..c0f815e8888 100644
--- a/src/game/World.cpp
+++ b/src/game/World.cpp
@@ -1009,7 +1009,7 @@ void World::LoadConfigSettings(bool reload)
m_configs[CONFIG_MAX_WHO] = sConfig.GetIntDefault("MaxWhoListReturns", 49);
-
+ m_configs[CONFIG_PET_LOS] = sConfig.GetBoolDefault("vmap.petLOS", false);
m_configs[CONFIG_PREMATURE_BG_REWARD] = sConfig.GetBoolDefault("Battleground.PrematureReward", true);
m_configs[CONFIG_BG_START_MUSIC] = sConfig.GetBoolDefault("MusicInBattleground", false);
m_configs[CONFIG_START_ALL_SPELLS] = sConfig.GetBoolDefault("PlayerStart.AllSpells", false);
diff --git a/src/game/World.h b/src/game/World.h
index 513d8894640..32af277c8f5 100644
--- a/src/game/World.h
+++ b/src/game/World.h
@@ -207,7 +207,7 @@ enum WorldConfigs
CONFIG_MIN_LOG_UPDATE,
CONFIG_ENABLE_SINFO_LOGIN,
CONFIG_PREMATURE_BG_REWARD,
-
+ CONFIG_PET_LOS,
CONFIG_VALUE_COUNT
};
diff --git a/src/trinitycore/trinitycore.conf.dist b/src/trinitycore/trinitycore.conf.dist
index d7b892320d9..ce290c796b9 100644
--- a/src/trinitycore/trinitycore.conf.dist
+++ b/src/trinitycore/trinitycore.conf.dist
@@ -146,7 +146,12 @@ EAIErrorLevel = 2
# vmap.ignoreSpellIds
# These spells are ignored for LoS calculation
# List of ids with delimiter ','
-#
+#
+# vmap.petLOS
+# Check LOS for pets, to avoid them going through walls etc.
+# Default: 0 (disable, less CPU usage)
+# 1 (enable, each pet attack command will check for LOS)
+#
# DetectPosCollision
# Check final move position, summon position, etc for visible collision with other objects or
# wall (wall only if vmaps are enabled)
@@ -193,6 +198,7 @@ vmap.enableLOS = 0
vmap.enableHeight = 0
vmap.ignoreMapIds = "369"
vmap.ignoreSpellIds = "7720"
+vmap.petLOS = 0
DetectPosCollision = 1
TargetPosRecalculateRange = 1.5
UpdateUptimeInterval = 10