1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
|
/*
* This file is part of the TrinityCore Project. See AUTHORS file for Copyright information
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation; either version 2 of the License, or (at your
* option) any later version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*
* You should have received a copy of the GNU General Public License along
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "ScriptedGossip.h"
#include "Creature.h"
#include "Player.h"
uint32 GetGossipSenderFor(Player* player, uint32 menuId)
{
return player->PlayerTalkClass->GetGossipOptionSender(menuId);
}
uint32 GetGossipActionFor(Player* player, uint32 gossipListId)
{
return player->PlayerTalkClass->GetGossipOptionAction(gossipListId);
}
void InitGossipMenuFor(Player* player, uint32 menuId)
{
player->PlayerTalkClass->GetGossipMenu().SetMenuId(menuId);
}
void ClearGossipMenuFor(Player* player)
{
player->PlayerTalkClass->ClearMenus();
}
// Using provided text, not from DB
void AddGossipItemFor(Player* player, GossipOptionNpc optionNpc, std::string text, uint32 sender, uint32 action)
{
player->PlayerTalkClass->GetGossipMenu().AddMenuItem(0, -1, optionNpc, std::move(text), 0, GossipOptionFlags::None, {}, 0, 0, false, 0, "", {}, {}, sender, action);
}
// Using provided texts, not from DB
void AddGossipItemFor(Player* player, GossipOptionNpc optionNpc, std::string text, uint32 sender, uint32 action, std::string popupText, uint64 popupMoney, bool coded)
{
player->PlayerTalkClass->GetGossipMenu().AddMenuItem(0, -1, optionNpc, std::move(text), 0, GossipOptionFlags::None, {}, 0, 0, coded, popupMoney, std::move(popupText), {}, {}, sender, action);
}
// Uses gossip item info from DB
void AddGossipItemFor(Player* player, uint32 gossipMenuID, uint32 gossipMenuItemID, uint32 sender, uint32 action)
{
player->PlayerTalkClass->GetGossipMenu().AddMenuItem(gossipMenuID, gossipMenuItemID, sender, action);
}
void SendGossipMenuFor(Player* player, uint32 npcTextID, ObjectGuid const& guid)
{
player->PlayerTalkClass->SendGossipMenu(npcTextID, guid);
}
void SendGossipMenuFor(Player* player, uint32 npcTextID, Creature const* creature)
{
if (creature)
SendGossipMenuFor(player, npcTextID, creature->GetGUID());
}
void CloseGossipMenuFor(Player* player)
{
player->PlayerTalkClass->SendCloseGossip();
}
|