aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/def_old_hillsbrad.h1
-rw-r--r--src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/instance_old_hillsbrad.cpp8
-rw-r--r--src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/old_hillsbrad.cpp3
-rw-r--r--src/game/Map.cpp18
4 files changed, 14 insertions, 16 deletions
diff --git a/src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/def_old_hillsbrad.h b/src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/def_old_hillsbrad.h
index 95934718599..39db5bed06a 100644
--- a/src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/def_old_hillsbrad.h
+++ b/src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/def_old_hillsbrad.h
@@ -13,6 +13,7 @@
#define TYPE_THRALL_PART4 6
#define DATA_THRALL 7
#define DATA_TARETHA 8
+#define DATA_EPOCH 9
#define WORLD_STATE_OH 2436
#endif
diff --git a/src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/instance_old_hillsbrad.cpp b/src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/instance_old_hillsbrad.cpp
index 92d9c7c10a6..8b0a62c4452 100644
--- a/src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/instance_old_hillsbrad.cpp
+++ b/src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/instance_old_hillsbrad.cpp
@@ -28,6 +28,7 @@ EndScriptData */
#define THRALL_ENTRY 17876
#define TARETHA_ENTRY 18887
+#define EPOCH_ENTRY 18096
#define DRAKE_ENTRY 17848
@@ -44,6 +45,7 @@ struct TRINITY_DLL_DECL instance_old_hillsbrad : public ScriptedInstance
uint64 ThrallGUID;
uint64 TarethaGUID;
+ uint64 EpochGUID;
void Initialize()
{
@@ -51,6 +53,7 @@ struct TRINITY_DLL_DECL instance_old_hillsbrad : public ScriptedInstance
mThrallEventCount = 0;
ThrallGUID = 0;
TarethaGUID = 0;
+ EpochGUID = 0;
for(uint8 i = 0; i < ENCOUNTERS; i++)
Encounter[i] = NOT_STARTED;
@@ -103,6 +106,9 @@ struct TRINITY_DLL_DECL instance_old_hillsbrad : public ScriptedInstance
case TARETHA_ENTRY:
TarethaGUID = creature->GetGUID();
break;
+ case EPOCH_ENTRY:
+ EpochGUID = creature->GetGUID();
+ break;
}
}
@@ -216,6 +222,8 @@ struct TRINITY_DLL_DECL instance_old_hillsbrad : public ScriptedInstance
return ThrallGUID;
case DATA_TARETHA:
return TarethaGUID;
+ case DATA_EPOCH:
+ return EpochGUID;
}
return 0;
}
diff --git a/src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/old_hillsbrad.cpp b/src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/old_hillsbrad.cpp
index bc18f91e795..8d81e939dd8 100644
--- a/src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/old_hillsbrad.cpp
+++ b/src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/old_hillsbrad.cpp
@@ -812,7 +812,8 @@ bool GossipSelect_npc_taretha(Player *player, Creature *_Creature, uint32 sender
if( pInstance->GetData(TYPE_THRALL_EVENT) == IN_PROGRESS )
{
pInstance->SetData(TYPE_THRALL_PART4,IN_PROGRESS);
- _Creature->SummonCreature(ENTRY_EPOCH,2639.13,698.55,65.43,4.59,TEMPSUMMON_TIMED_OR_DEAD_DESPAWN,120000);
+ if(pInstance->GetData64(DATA_EPOCH) == 0)
+ _Creature->SummonCreature(ENTRY_EPOCH,2639.13,698.55,65.43,4.59,TEMPSUMMON_TIMED_OR_DEAD_DESPAWN,120000);
if (uint64 ThrallGUID = pInstance->GetData64(DATA_THRALL))
{
diff --git a/src/game/Map.cpp b/src/game/Map.cpp
index b82c4127d94..0d31be8aa98 100644
--- a/src/game/Map.cpp
+++ b/src/game/Map.cpp
@@ -451,6 +451,7 @@ bool Map::Add(Player *player)
player->m_IsInNotifyList = false;
player->m_Notified = false;
+ player->m_clientGUIDs.clear();
AddNotifier(player);
return true;
@@ -596,24 +597,12 @@ void Map::RelocationNotify()
for(std::vector<uint64>::iterator iter = i_unitsToNotify.begin(); iter != i_unitsToNotify.end(); ++iter)
{
Unit *unit = ObjectAccessor::GetObjectInWorld(*iter, (Unit*)NULL);
- if(!unit || unit->GetMapId() != GetId())
+ if(!unit || !unit->IsInWorld() || unit->GetMapId() != GetId())
{
*iter = 0;
continue;
}
- if(!unit->IsInWorld())
- {
- //other objs are done during remove
- if(unit->GetTypeId() == TYPEID_PLAYER)
- {
- Trinity::VisibleChangesNotifier notifier(*unit);
- VisitWorld(unit->GetPositionX(), unit->GetPositionY(), World::GetMaxVisibleDistance(), notifier);
- }
- *iter = 0;
- continue;
- }
-
unit->m_Notified = true;
if(unit->GetTypeId() == TYPEID_PLAYER)
@@ -772,8 +761,6 @@ void Map::Update(const uint32 &t_diff)
void Map::Remove(Player *player, bool remove)
{
- AddUnitToNotify(player);
-
// this may be called during Map::Update
// after decrement+unlink, ++m_mapRefIter will continue correctly
// when the first element of the list is being removed
@@ -810,6 +797,7 @@ void Map::Remove(Player *player, bool remove)
RemoveFromGrid(player,grid,cell);
SendRemoveTransports(player);
+ UpdateObjectVisibility(player,cell,p);
if( remove )
DeleteFromWorld(player);