All pastes #1290207 Raw Edit

Mine

public text v1 · immutable
#1290207 ·published 2008-12-20 16:00 UTC
rendered paste body
diff --git a/src/game/MotionMaster.cpp b/src/game/MotionMaster.cpp
index 2dc42cd..36f49a2 100644
--- a/src/game/MotionMaster.cpp
+++ b/src/game/MotionMaster.cpp
@@ -150,8 +150,21 @@ MotionMaster::MoveTargetedHome()
     }
     else if(i_owner->GetTypeId()==TYPEID_UNIT && ((Creature*)i_owner)->GetCharmerOrOwnerGUID())
     {
-        sLog.outError("Pet or controlled creature (Entry: %u GUID: %u) attempt targeted home",
+        DEBUG_LOG("Pet or controlled creature (Entry: %u GUID: %u) targeting home",
             i_owner->GetEntry(), i_owner->GetGUIDLow() );
+        Unit *target = ((Creature*)i_owner)->GetCharmerOrOwner();
+        if(!target)
+        {
+            sLog.outError("Cannot find owner "I64FMTD, ((Creature*)i_owner)->GetCharmerOrOwnerGUID());
+        }
+        else
+        {
+            i_owner->addUnitState(UNIT_STAT_FOLLOW);
+            DEBUG_LOG("Following %s (GUID: %u)",
+                target->GetTypeId()==TYPEID_PLAYER ? "player" : "creature",
+                target->GetTypeId()==TYPEID_PLAYER ? target->GetGUIDLow() : ((Creature*)target)->GetDBTableGUIDLow() );
+            Mutate(new TargetedMovementGenerator<Creature>(*target,PET_FOLLOW_DIST,PET_FOLLOW_ANGLE));
+        }
     }
     else
     {
diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp
index 5925b21..402d9e6 100644
--- a/src/game/Unit.cpp
+++ b/src/game/Unit.cpp
@@ -9047,8 +9047,12 @@ bool Unit::CanHaveThreatList() const
     if( !isAlive() )
         return false;
 
-    // pets and totems can not have threat list
-    if( ((Creature*)this)->isPet() || ((Creature*)this)->isTotem() )
+    // totems can not have threat list
+    if( ((Creature*)this)->isTotem() )
+        return false;
+
+    // pets can not have a threat list, unless they are controlled by a creature
+    if( ((Creature*)this)->isPet() && IS_PLAYER_GUID(((Pet*)this)->GetOwnerGUID()) )
         return false;
 
     return true;
diff --git a/win/VC90/game.vcproj b/win/VC90/game.vcproj
index e716264..22a25bd 100644
--- a/win/VC90/game.vcproj
+++ b/win/VC90/game.vcproj
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="Windows-1252"?>
 <VisualStudioProject
 	ProjectType="Visual C++"
-	Version="9,00"
+	Version="9.00"
 	Name="game"
 	ProjectGUID="{1DC6C4DA-A028-41F3-877D-D5400C594F88}"
 	RootNamespace="game"