mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-25 19:31:59 +01:00
Core/Gossip: Implemented new gossip option type GOSSIP_OPTION_TRANSMOGRIFIER
Ref #21845
This commit is contained in:
@@ -52,6 +52,7 @@ enum Gossip_Option
|
||||
GOSSIP_OPTION_UNLEARNPETTALENTS_OLD = 17, // deprecated
|
||||
GOSSIP_OPTION_LEARNDUALSPEC = 18, //UNIT_NPC_FLAG_TRAINER (16) (bonus option for GOSSIP_OPTION_TRAINER)
|
||||
GOSSIP_OPTION_OUTDOORPVP = 19, //added by code (option for outdoor pvp creatures)
|
||||
GOSSIP_OPTION_TRANSMOGRIFIER = 20, //UNIT_NPC_FLAG_TRANSMOGRIFIER
|
||||
GOSSIP_OPTION_MAX
|
||||
};
|
||||
|
||||
|
||||
@@ -14322,6 +14322,7 @@ void Player::PrepareGossipMenu(WorldObject* source, uint32 menuId /*= 0*/, bool
|
||||
case GOSSIP_OPTION_PETITIONER:
|
||||
case GOSSIP_OPTION_TABARDDESIGNER:
|
||||
case GOSSIP_OPTION_AUCTIONEER:
|
||||
case GOSSIP_OPTION_TRANSMOGRIFIER:
|
||||
break; // no checks
|
||||
case GOSSIP_OPTION_OUTDOORPVP:
|
||||
if (!sOutdoorPvPMgr->CanTalkTo(this, creature, itr->second))
|
||||
@@ -14530,6 +14531,9 @@ void Player::OnGossipSelect(WorldObject* source, uint32 optionIndex, uint32 menu
|
||||
sBattlegroundMgr->SendBattlegroundList(this, guid, bgTypeId);
|
||||
break;
|
||||
}
|
||||
case GOSSIP_OPTION_TRANSMOGRIFIER:
|
||||
GetSession()->SendOpenTransmogrifier(guid);
|
||||
break;
|
||||
}
|
||||
|
||||
ModifyMoney(-cost);
|
||||
|
||||
@@ -284,3 +284,8 @@ void WorldSession::HandleTransmogrifyItems(WorldPackets::Transmogrification::Tra
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void WorldSession::SendOpenTransmogrifier(ObjectGuid const& guid)
|
||||
{
|
||||
SendPacket(WorldPackets::Transmogrification::OpenTransmogrifier(guid).Write());
|
||||
}
|
||||
|
||||
@@ -46,3 +46,10 @@ WorldPacket const* WorldPackets::Transmogrification::TransmogCollectionUpdate::W
|
||||
|
||||
return &_worldPacket;
|
||||
}
|
||||
|
||||
WorldPacket const* WorldPackets::Transmogrification::OpenTransmogrifier::Write()
|
||||
{
|
||||
_worldPacket << Guid;
|
||||
|
||||
return &_worldPacket;
|
||||
}
|
||||
|
||||
@@ -61,6 +61,16 @@ namespace WorldPackets
|
||||
bool IsSetFavorite = false;
|
||||
std::vector<uint32> FavoriteAppearances;
|
||||
};
|
||||
|
||||
class OpenTransmogrifier final : public ServerPacket
|
||||
{
|
||||
public:
|
||||
OpenTransmogrifier(ObjectGuid const& guid) : ServerPacket(SMSG_OPEN_TRANSMOGRIFIER, 16), Guid(guid) { }
|
||||
|
||||
WorldPacket const* Write() override;
|
||||
|
||||
ObjectGuid Guid;
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1485,7 +1485,7 @@ void OpcodeTable::Initialize()
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_OPEN_LFG_DUNGEON_FINDER, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_OPEN_SHIPMENT_NPC_FROM_GOSSIP, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_OPEN_SHIPMENT_NPC_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_OPEN_TRANSMOGRIFIER, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_OPEN_TRANSMOGRIFIER, STATUS_NEVER, CONNECTION_TYPE_INSTANCE);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_OVERRIDE_LIGHT, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_PAGE_TEXT, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_PARTY_COMMAND_RESULT, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
|
||||
@@ -982,6 +982,7 @@ class TC_GAME_API WorldSession
|
||||
void SendTabardVendorActivate(ObjectGuid guid);
|
||||
void SendSpiritResurrect();
|
||||
void SendBindPoint(Creature* npc);
|
||||
void SendOpenTransmogrifier(ObjectGuid const& guid);
|
||||
|
||||
void SendAttackStop(Unit const* enemy);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user