From ce387d853552cef4e1d7912e2e9fb45f2c776b1f Mon Sep 17 00:00:00 2001 From: Wyk3d Date: Thu, 27 Nov 2008 00:22:03 +0200 Subject: [PATCH 1/2] [6850] Use the HashMapHolder instead of MapReference in Map::Update for now (the refs can get invalidated during the loop). --- src/game/Map.cpp | 13 +++++++++++-- src/shared/revision_nr.h | 2 +- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/game/Map.cpp b/src/game/Map.cpp index 606d53df6..924901864 100644 --- a/src/game/Map.cpp +++ b/src/game/Map.cpp @@ -573,12 +573,21 @@ void Map::Update(const uint32 &t_diff) // for pets TypeContainerVisitor world_object_update(updater); - for(MapRefManager::iterator iter = m_mapRefManager.begin(); iter != m_mapRefManager.end(); ++iter) + //TODO: Player guard + HashMapHolder::MapType& playerMap = HashMapHolder::GetContainer(); + for(HashMapHolder::MapType::iterator iter = playerMap.begin(); iter != playerMap.end(); ++iter) { - Player* plr = iter->getSource(); + Player* plr = iter->second; + if(!plr->IsInWorld()) continue; + if(plr->GetMapId() != GetId()) + continue; + + if(plr->GetInstanceId() != GetInstanceId()) + continue; + CellPair standing_cell(MaNGOS::ComputeCellPair(plr->GetPositionX(), plr->GetPositionY())); // Check for correctness of standing_cell, it also avoids problems with update_cell diff --git a/src/shared/revision_nr.h b/src/shared/revision_nr.h index 4cca1495f..fe6de2022 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 "6849" + #define REVISION_NR "6850" #endif // __REVISION_NR_H__ From b83cd2a2a901139eeef26534a7850183b2039573 Mon Sep 17 00:00:00 2001 From: arrai Date: Wed, 26 Nov 2008 23:59:10 +0100 Subject: [PATCH 2/2] [6851] Removed level dependant scaling for warlock pets. Only hunter pets are supposed to behave in that way. --- src/game/Pet.cpp | 2 +- src/shared/revision_nr.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/game/Pet.cpp b/src/game/Pet.cpp index e72e29e64..40cdd9f75 100644 --- a/src/game/Pet.cpp +++ b/src/game/Pet.cpp @@ -1006,7 +1006,7 @@ bool Pet::InitStatsForLevel(uint32 petlevel) SetFloatValue(UNIT_MOD_CAST_SPEED, 1.0); CreatureFamilyEntry const* cFamily = sCreatureFamilyStore.LookupEntry(cinfo->family); - if(cFamily && cFamily->minScale > 0.0f) + if(cFamily && cFamily->minScale > 0.0f && getPetType()==HUNTER_PET) { float scale; if (getLevel() >= cFamily->maxScaleLevel) diff --git a/src/shared/revision_nr.h b/src/shared/revision_nr.h index fe6de2022..fb11e456c 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 "6850" + #define REVISION_NR "6851" #endif // __REVISION_NR_H__