mirror of
https://github.com/mangosfour/server.git
synced 2025-12-13 13:37:05 +00:00
[10901] Allow vehicles to have gossip menu
In addition rename IsGameobject -> IsGameObject.
This commit is contained in:
parent
d736fe9d9a
commit
2f4e7a9377
8 changed files with 12 additions and 13 deletions
|
|
@ -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)
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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; }
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
|
|
||||||
|
|
@ -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__
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue