diff options
| author | Nay <dnpd.dd@gmail.com> | 2012-09-04 19:08:22 +0100 |
|---|---|---|
| committer | Nay <dnpd.dd@gmail.com> | 2012-09-04 19:08:22 +0100 |
| commit | 5ee22a8006d2c6ba5995bee96b530a802d85fbc3 (patch) | |
| tree | 4094b91bf4a63bcc7cb60fe539ff01288f0cd7d3 /src/server/game | |
| parent | a005d4a9e31a294e00d256652080f2d872509046 (diff) | |
| parent | 73172c67f02b8f2649b762262d54aea7b7f94d07 (diff) | |
Merge remote-tracking branch 'origin/master' into 4.3.4
Conflicts:
src/server/game/Achievements/AchievementMgr.cpp
src/server/game/Spells/SpellInfo.cpp
src/server/scripts/Commands/cs_misc.cpp
Diffstat (limited to 'src/server/game')
| -rwxr-xr-x | src/server/game/Battlegrounds/Zones/BattlegroundAB.cpp | 5 | ||||
| -rwxr-xr-x | src/server/game/Entities/Totem/Totem.cpp | 6 | ||||
| -rwxr-xr-x | src/server/game/Entities/Unit/Unit.cpp | 18 | ||||
| -rwxr-xr-x | src/server/game/Maps/Map.cpp | 4 | ||||
| -rwxr-xr-x | src/server/game/Movement/MovementGenerators/FleeingMovementGenerator.cpp | 5 | ||||
| -rwxr-xr-x | src/server/game/Spells/Auras/SpellAuras.cpp | 1 | ||||
| -rwxr-xr-x | src/server/game/Spells/Spell.cpp | 5 | ||||
| -rw-r--r-- | src/server/game/Spells/SpellInfo.cpp | 2 |
8 files changed, 31 insertions, 15 deletions
diff --git a/src/server/game/Battlegrounds/Zones/BattlegroundAB.cpp b/src/server/game/Battlegrounds/Zones/BattlegroundAB.cpp index fa36f0b02aa..365ffb853d2 100755 --- a/src/server/game/Battlegrounds/Zones/BattlegroundAB.cpp +++ b/src/server/game/Battlegrounds/Zones/BattlegroundAB.cpp @@ -371,9 +371,10 @@ void BattlegroundAB::_NodeOccupied(uint8 node, Team team) if (node >= BG_AB_DYNAMIC_NODES_COUNT)//only dynamic nodes, no start points return; - Creature* trigger = GetBGCreature(node+7);//0-6 spirit guides + + Creature* trigger = BgCreatures[node+7] ? GetBGCreature(node+7) : NULL;//0-6 spirit guides if (!trigger) - trigger = AddCreature(WORLD_TRIGGER, node+7, team, BG_AB_NodePositions[node][0], BG_AB_NodePositions[node][1], BG_AB_NodePositions[node][2], BG_AB_NodePositions[node][3]); + trigger = AddCreature(WORLD_TRIGGER, node+7, team, BG_AB_NodePositions[node][0], BG_AB_NodePositions[node][1], BG_AB_NodePositions[node][2], BG_AB_NodePositions[node][3]); //add bonus honor aura trigger creature when node is accupied //cast bonus aura (+50% honor in 25yards) diff --git a/src/server/game/Entities/Totem/Totem.cpp b/src/server/game/Entities/Totem/Totem.cpp index a9a0484a4ea..d5d1bd99277 100755 --- a/src/server/game/Entities/Totem/Totem.cpp +++ b/src/server/game/Entities/Totem/Totem.cpp @@ -98,6 +98,12 @@ void Totem::InitSummon() void Totem::UnSummon(uint32 msTime) { + if (msTime) + { + m_Events.AddEvent(new ForcedUnsummonDelayEvent(*this), m_Events.CalculateTime(msTime)); + return; + } + CombatStop(); RemoveAurasDueToSpell(GetSpell(), GetGUID()); diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index 8c372bad34a..8e161551f40 100755 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -11051,19 +11051,21 @@ bool Unit::_IsValidAttackTarget(Unit const* target, SpellInfo const* bySpell, Wo if (GetReactionTo(target) == REP_NEUTRAL && target->GetReactionTo(this) == REP_NEUTRAL) { - if ( - !(target->GetTypeId() == TYPEID_PLAYER && GetTypeId() == TYPEID_PLAYER) && - !(target->GetTypeId() == TYPEID_UNIT && GetTypeId() == TYPEID_UNIT) - ) + if (!(target->GetTypeId() == TYPEID_PLAYER && GetTypeId() == TYPEID_PLAYER) && + !(target->GetTypeId() == TYPEID_UNIT && GetTypeId() == TYPEID_UNIT)) { Player const* player = target->GetTypeId() == TYPEID_PLAYER ? target->ToPlayer() : ToPlayer(); Unit const* creature = target->GetTypeId() == TYPEID_UNIT ? target : this; if (FactionTemplateEntry const* factionTemplate = creature->getFactionTemplateEntry()) - if (FactionEntry const* factionEntry = sFactionStore.LookupEntry(factionTemplate->faction)) - if (FactionState const* repState = player->GetReputationMgr().GetState(factionEntry)) - if (!(repState->Flags & FACTION_FLAG_AT_WAR)) - return false; + { + if (!(player->GetReputationMgr().GetForcedRankIfAny(factionTemplate))) + if (FactionEntry const* factionEntry = sFactionStore.LookupEntry(factionTemplate->faction)) + if (FactionState const* repState = player->GetReputationMgr().GetState(factionEntry)) + if (!(repState->Flags & FACTION_FLAG_AT_WAR)) + return false; + + } } } diff --git a/src/server/game/Maps/Map.cpp b/src/server/game/Maps/Map.cpp index 6b115878135..2d56c859e44 100755 --- a/src/server/game/Maps/Map.cpp +++ b/src/server/game/Maps/Map.cpp @@ -1223,8 +1223,8 @@ bool GridMap::loadLiquidData(FILE* in, uint32 offset, uint32 /*size*/) } if (!(header.flags & MAP_LIQUID_NO_HEIGHT)) { - _liquidMap = new float[_liquidWidth*_liquidHeight]; - if (fread(_liquidMap, sizeof(float), _liquidWidth*_liquidHeight, in) != _liquidWidth*_liquidHeight) + _liquidMap = new float[uint32(_liquidWidth) * uint32(_liquidHeight)]; + if (fread(_liquidMap, sizeof(float), _liquidWidth*_liquidHeight, in) != (uint32(_liquidWidth) * uint32(_liquidHeight))) return false; } return true; diff --git a/src/server/game/Movement/MovementGenerators/FleeingMovementGenerator.cpp b/src/server/game/Movement/MovementGenerators/FleeingMovementGenerator.cpp index 7e130a2c143..56818e95a2b 100755 --- a/src/server/game/Movement/MovementGenerators/FleeingMovementGenerator.cpp +++ b/src/server/game/Movement/MovementGenerators/FleeingMovementGenerator.cpp @@ -140,7 +140,12 @@ bool FleeingMovementGenerator<T>::_getPoint(T &owner, float &x, float &y, float angle = i_cur_angle + static_cast<float>(M_PI); distance /= 2; break; + default: + angle = 0.0f; + distance = 0.0f; + break; } + temp_x = x + distance * cos(angle); temp_y = y + distance * sin(angle); Trinity::NormalizeMapCoord(temp_x); diff --git a/src/server/game/Spells/Auras/SpellAuras.cpp b/src/server/game/Spells/Auras/SpellAuras.cpp index 22202d11a94..d3044d0fedb 100755 --- a/src/server/game/Spells/Auras/SpellAuras.cpp +++ b/src/server/game/Spells/Auras/SpellAuras.cpp @@ -1803,6 +1803,7 @@ void Aura::LoadScripts() { std::list<AuraScript*>::iterator bitr = itr; ++itr; + delete (*bitr); m_loadedScripts.erase(bitr); continue; } diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp index 1655256666f..8a093bce2b9 100755 --- a/src/server/game/Spells/Spell.cpp +++ b/src/server/game/Spells/Spell.cpp @@ -3003,7 +3003,7 @@ void Spell::prepare(SpellCastTargets const* targets, AuraEffect const* triggered if (m_caster->GetTypeId() == TYPEID_PLAYER) { m_caster->ToPlayer()->SetSpellModTakingSpell(this, false); - + // Set casttime to 0 if .cheat casttime is enabled. if (m_caster->ToPlayer()->GetCommandStatus(CHEAT_CASTTIME)) m_casttime = 0; @@ -3301,7 +3301,7 @@ void Spell::cast(bool skipCheck) if (m_caster->GetTypeId() == TYPEID_PLAYER) { m_caster->ToPlayer()->SetSpellModTakingSpell(this, false); - + //Clear spell cooldowns after every spell is cast if .cheat cooldown is enabled. if (m_caster->ToPlayer()->GetCommandStatus(CHEAT_COOLDOWN)) m_caster->ToPlayer()->RemoveSpellCooldown(m_spellInfo->Id, true); @@ -6908,6 +6908,7 @@ void Spell::LoadScripts() { std::list<SpellScript*>::iterator bitr = itr; ++itr; + delete (*bitr); m_loadedScripts.erase(bitr); continue; } diff --git a/src/server/game/Spells/SpellInfo.cpp b/src/server/game/Spells/SpellInfo.cpp index 8fa008da823..21bffaee433 100644 --- a/src/server/game/Spells/SpellInfo.cpp +++ b/src/server/game/Spells/SpellInfo.cpp @@ -367,7 +367,7 @@ bool SpellEffectInfo::IsAura() const bool SpellEffectInfo::IsAura(AuraType aura) const { - return IsAura() && AuraType(ApplyAuraName) == aura; + return IsAura() && AuraType(ApplyAuraName) == uint32(aura); } bool SpellEffectInfo::IsTargetingArea() const |
