[10901] Allow vehicles to have gossip menu

In addition rename IsGameobject -> IsGameObject.
This commit is contained in:
zergtmn 2010-12-21 15:11:41 +05:00
parent d736fe9d9a
commit 2f4e7a9377
8 changed files with 12 additions and 13 deletions

View file

@ -528,7 +528,7 @@ void WorldSession::HandleLootMasterGiveOpcode( WorldPacket & recv_data )
pLoot = &pCreature->loot; pLoot = &pCreature->loot;
} }
else if(lootguid.IsGameobject()) else if(lootguid.IsGameObject())
{ {
GameObject *pGO = GetPlayer()->GetMap()->GetGameObject(lootguid); GameObject *pGO = GetPlayer()->GetMap()->GetGameObject(lootguid);
if(!pGO) if(!pGO)

View file

@ -330,7 +330,7 @@ void WorldSession::HandleGossipSelectOptionOpcode( WorldPacket & recv_data )
uint32 gossipListId; uint32 gossipListId;
uint32 menuId; uint32 menuId;
ObjectGuid guid; ObjectGuid guid;
std::string code = ""; std::string code;
recv_data >> guid >> menuId >> gossipListId; recv_data >> guid >> menuId >> gossipListId;
@ -344,8 +344,7 @@ void WorldSession::HandleGossipSelectOptionOpcode( WorldPacket & recv_data )
if (GetPlayer()->hasUnitState(UNIT_STAT_DIED)) if (GetPlayer()->hasUnitState(UNIT_STAT_DIED))
GetPlayer()->RemoveSpellsCausingAura(SPELL_AURA_FEIGN_DEATH); GetPlayer()->RemoveSpellsCausingAura(SPELL_AURA_FEIGN_DEATH);
// can vehicle have gossip? If so, need check for this also. if (guid.IsAnyTypeCreature())
if (guid.IsCreatureOrPet())
{ {
Creature *pCreature = GetPlayer()->GetNPCIfCanInteractWith(guid, UNIT_NPC_FLAG_NONE); Creature *pCreature = GetPlayer()->GetNPCIfCanInteractWith(guid, UNIT_NPC_FLAG_NONE);
@ -366,7 +365,7 @@ void WorldSession::HandleGossipSelectOptionOpcode( WorldPacket & recv_data )
_player->OnGossipSelect(pCreature, gossipListId, menuId); _player->OnGossipSelect(pCreature, gossipListId, menuId);
} }
} }
else if (guid.IsGameobject()) else if (guid.IsGameObject())
{ {
GameObject *pGo = GetPlayer()->GetGameObjectIfCanInteractWith(guid); GameObject *pGo = GetPlayer()->GetGameObjectIfCanInteractWith(guid);

View file

@ -134,7 +134,7 @@ class MANGOS_DLL_SPEC ObjectGuid
bool IsPlayer() const { return !IsEmpty() && GetHigh() == HIGHGUID_PLAYER; } bool IsPlayer() const { return !IsEmpty() && GetHigh() == HIGHGUID_PLAYER; }
bool IsUnit() const { return IsAnyTypeCreature() || IsPlayer(); } bool IsUnit() const { return IsAnyTypeCreature() || IsPlayer(); }
bool IsItem() const { return GetHigh() == HIGHGUID_ITEM; } bool IsItem() const { return GetHigh() == HIGHGUID_ITEM; }
bool IsGameobject() const { return GetHigh() == HIGHGUID_GAMEOBJECT; } bool IsGameObject() const { return GetHigh() == HIGHGUID_GAMEOBJECT; }
bool IsDynamicObject() const { return GetHigh() == HIGHGUID_DYNAMICOBJECT; } bool IsDynamicObject() const { return GetHigh() == HIGHGUID_DYNAMICOBJECT; }
bool IsCorpse() const { return GetHigh() == HIGHGUID_CORPSE; } bool IsCorpse() const { return GetHigh() == HIGHGUID_CORPSE; }
bool IsTransport() const { return GetHigh() == HIGHGUID_TRANSPORT; } bool IsTransport() const { return GetHigh() == HIGHGUID_TRANSPORT; }

View file

@ -20223,7 +20223,7 @@ void Player::UpdateForQuestWorldObjects()
WorldPacket packet; WorldPacket packet;
for(ObjectGuidSet::const_iterator itr=m_clientGUIDs.begin(); itr!=m_clientGUIDs.end(); ++itr) for(ObjectGuidSet::const_iterator itr=m_clientGUIDs.begin(); itr!=m_clientGUIDs.end(); ++itr)
{ {
if (itr->IsGameobject()) if (itr->IsGameObject())
{ {
if (GameObject *obj = GetMap()->GetGameObject(*itr)) if (GameObject *obj = GetMap()->GetGameObject(*itr))
obj->BuildValuesUpdateBlockForPlayer(&udata,this); obj->BuildValuesUpdateBlockForPlayer(&udata,this);

View file

@ -672,7 +672,7 @@ void WorldSession::HandleQuestgiverStatusMultipleQuery(WorldPacket& /*recvPacket
data << uint8(dialogStatus); data << uint8(dialogStatus);
++count; ++count;
} }
else if (itr->IsGameobject()) else if (itr->IsGameObject())
{ {
GameObject *questgiver = GetPlayer()->GetMap()->GetGameObject(*itr); GameObject *questgiver = GetPlayer()->GetMap()->GetGameObject(*itr);

View file

@ -6327,7 +6327,7 @@ void Spell::UpdateOriginalCasterPointer()
{ {
if(m_originalCasterGUID == m_caster->GetObjectGuid()) if(m_originalCasterGUID == m_caster->GetObjectGuid())
m_originalCaster = m_caster; m_originalCaster = m_caster;
else if (m_originalCasterGUID.IsGameobject()) else if (m_originalCasterGUID.IsGameObject())
{ {
GameObject* go = m_caster->IsInWorld() ? m_caster->GetMap()->GetGameObject(m_originalCasterGUID) : NULL; GameObject* go = m_caster->IsInWorld() ? m_caster->GetMap()->GetGameObject(m_originalCasterGUID) : NULL;
m_originalCaster = go ? go->GetOwner() : NULL; m_originalCaster = go ? go->GetOwner() : NULL;
@ -6781,14 +6781,14 @@ WorldObject* Spell::GetAffectiveCasterObject() const
if (m_originalCasterGUID.IsEmpty()) if (m_originalCasterGUID.IsEmpty())
return m_caster; return m_caster;
if (m_originalCasterGUID.IsGameobject() && m_caster->IsInWorld()) if (m_originalCasterGUID.IsGameObject() && m_caster->IsInWorld())
return m_caster->GetMap()->GetGameObject(m_originalCasterGUID); return m_caster->GetMap()->GetGameObject(m_originalCasterGUID);
return m_originalCaster; return m_originalCaster;
} }
WorldObject* Spell::GetCastingObject() const WorldObject* Spell::GetCastingObject() const
{ {
if (m_originalCasterGUID.IsGameobject()) if (m_originalCasterGUID.IsGameObject())
return m_caster->IsInWorld() ? m_caster->GetMap()->GetGameObject(m_originalCasterGUID) : NULL; return m_caster->IsInWorld() ? m_caster->GetMap()->GetGameObject(m_originalCasterGUID) : NULL;
else else
return m_caster; return m_caster;

View file

@ -3193,7 +3193,7 @@ void Spell::EffectApplyAura(SpellEffectIndex eff_idx)
{ {
// FIXME: currently we can't have auras applied explIcitly by gameobjects // FIXME: currently we can't have auras applied explIcitly by gameobjects
// so for auras from wild gameobjects (no owner) target used // so for auras from wild gameobjects (no owner) target used
if (m_originalCasterGUID.IsGameobject()) if (m_originalCasterGUID.IsGameObject())
caster = unitTarget; caster = unitTarget;
else else
return; return;

View file

@ -1,4 +1,4 @@
#ifndef __REVISION_NR_H__ #ifndef __REVISION_NR_H__
#define __REVISION_NR_H__ #define __REVISION_NR_H__
#define REVISION_NR "10900" #define REVISION_NR "10901"
#endif // __REVISION_NR_H__ #endif // __REVISION_NR_H__