diff options
| author | Vincent-Michael <Vincent_Michael@gmx.de> | 2013-08-07 11:59:51 +0200 |
|---|---|---|
| committer | Vincent-Michael <Vincent_Michael@gmx.de> | 2013-08-07 11:59:51 +0200 |
| commit | c0fc0f237f7e85ab3c5cc422fea7a1000fa72b23 (patch) | |
| tree | 8f9ba881f1e2eb5e58a712afbeb9bb0cb5753e35 /src/server/game/Entities | |
| parent | 0c96062687475191685d07b014e888ffcfbf5534 (diff) | |
| parent | 33f8c3ead4da07ff024a94b5e8cf0d05c2ebc23a (diff) | |
Merge branch 'master' of github.com:TrinityCore/TrinityCore into 4.3.4
Conflicts:
src/server/game/Battlegrounds/Battleground.cpp
src/server/game/Handlers/QuestHandler.cpp
src/server/shared/DataStores/DBCFileLoader.h
Diffstat (limited to 'src/server/game/Entities')
| -rw-r--r-- | src/server/game/Entities/GameObject/GameObject.cpp | 26 | ||||
| -rw-r--r-- | src/server/game/Entities/Player/Player.cpp | 19 |
2 files changed, 16 insertions, 29 deletions
diff --git a/src/server/game/Entities/GameObject/GameObject.cpp b/src/server/game/Entities/GameObject/GameObject.cpp index 9aaf45737ce..df0a4055beb 100644 --- a/src/server/game/Entities/GameObject/GameObject.cpp +++ b/src/server/game/Entities/GameObject/GameObject.cpp @@ -17,7 +17,7 @@ */ #include "GameObjectAI.h" -#include "BattlegroundAV.h" +#include "Battleground.h" #include "CellImpl.h" #include "CreatureAISelector.h" #include "DynamicTree.h" @@ -325,7 +325,7 @@ void GameObject::Update(uint32 diff) WorldPacket packet; BuildValuesUpdateBlockForPlayer(&udata, caster->ToPlayer()); udata.BuildPacket(&packet); - caster->ToPlayer()->GetSession()->SendPacket(&packet); + caster->ToPlayer()->SendDirectMessage(&packet); SendCustomAnim(GetGoAnimProgress()); } @@ -374,7 +374,7 @@ void GameObject::Update(uint32 diff) caster->ToPlayer()->RemoveGameObject(this, false); WorldPacket data(SMSG_FISH_ESCAPED, 0); - caster->ToPlayer()->GetSession()->SendPacket(&data); + caster->ToPlayer()->SendDirectMessage(&data); } // can be delete m_lootState = GO_JUST_DEACTIVATED; @@ -873,7 +873,9 @@ bool GameObject::IsDynTransport() const bool GameObject::IsDestructibleBuilding() const { GameObjectTemplate const* gInfo = GetGOInfo(); - if (!gInfo) return false; + if (!gInfo) + return false; + return gInfo->type == GAMEOBJECT_TYPE_DESTRUCTIBLE_BUILDING; } @@ -949,12 +951,8 @@ bool GameObject::ActivateToQuest(Player* target) const { if (LootTemplates_Gameobject.HaveQuestLootForPlayer(GetGOInfo()->GetLootId(), target)) { - /// @todo fix this hack - //look for battlegroundAV for some objects which are only activated after mine gots captured by own team - if (GetEntry() == BG_AV_OBJECTID_MINE_N || GetEntry() == BG_AV_OBJECTID_MINE_S) - if (Battleground* bg = target->GetBattleground()) - if (bg->GetTypeID(true) == BATTLEGROUND_AV && !bg->ToBattlegroundAV()->PlayerCanDoMineQuest(GetEntry(), target->GetTeam())) - return false; + if (Battleground const* bg = target->GetBattleground()) + return bg->CanActivateGO(GetEntry(), target->GetTeam()); return true; } break; @@ -1243,7 +1241,7 @@ void GameObject::Use(Unit* user) { WorldPacket data(SMSG_GAMEOBJECT_PAGETEXT, 8); data << GetGUID(); - player->GetSession()->SendPacket(&data); + player->SendDirectMessage(&data); } else if (info->goober.gossipID) { @@ -1385,7 +1383,7 @@ void GameObject::Use(Unit* user) SetLootState(GO_JUST_DEACTIVATED); WorldPacket data(SMSG_FISH_NOT_HOOKED, 0); - player->GetSession()->SendPacket(&data); + player->SendDirectMessage(&data); break; } } @@ -1648,7 +1646,7 @@ void GameObject::Use(Unit* user) player->TeleportTo(GetMapId(), GetPositionX(), GetPositionY(), GetPositionZ(), GetOrientation(), TELE_TO_NOT_LEAVE_TRANSPORT | TELE_TO_NOT_LEAVE_COMBAT | TELE_TO_NOT_UNSUMMON_PET); WorldPacket data(SMSG_ENABLE_BARBER_SHOP, 0); - player->GetSession()->SendPacket(&data); + player->SendDirectMessage(&data); player->SetStandState(UNIT_STAND_STATE_SIT_LOW_CHAIR+info->barberChair.chairheight); return; @@ -1844,7 +1842,7 @@ void GameObject::ModifyHealth(int32 change, Unit* attackerOrHealer /*= NULL*/, u data << uint32(-change); // change < 0 triggers SPELL_BUILDING_HEAL combat log event // change >= 0 triggers SPELL_BUILDING_DAMAGE event data << uint32(spellId); - player->GetSession()->SendPacket(&data); + player->SendDirectMessage(&data); } GameObjectDestructibleState newState = GetDestructibleState(); diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index f8390cecbe9..c0b7b889753 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -25,7 +25,6 @@ #include "BattlefieldMgr.h" #include "BattlefieldWG.h" #include "Battleground.h" -#include "BattlegroundAV.h" #include "BattlegroundMgr.h" #include "CellImpl.h" #include "Channel.h" @@ -9003,22 +9002,12 @@ void Player::SendLoot(uint64 guid, LootType loot_type) if (go->getLootState() == GO_READY) { uint32 lootid = go->GetGOInfo()->GetLootId(); - - /// @todo fix this big hack - if ((go->GetEntry() == BG_AV_OBJECTID_MINE_N || go->GetEntry() == BG_AV_OBJECTID_MINE_S)) - { - if (Battleground* bg = GetBattleground()) + if (Battleground* bg = GetBattleground()) + if (!bg->CanActivateGO(go->GetEntry(), GetTeam())) { - if (bg->GetTypeID(true) == BATTLEGROUND_AV) - { - if (!bg->ToBattlegroundAV()->PlayerCanDoMineQuest(go->GetEntry(), GetTeam())) - { - SendLootRelease(guid); - return; - } - } + SendLootRelease(guid); + return; } - } if (lootid) { |
