aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Handlers/TicketHandler.cpp
diff options
context:
space:
mode:
authorVincent_Michael <Vincent_Michael@gmx.de>2014-01-21 21:57:09 +0100
committerVincent_Michael <Vincent_Michael@gmx.de>2014-01-21 21:58:30 +0100
commit3f99890b129c836cd364169ec4d69620bff0ca82 (patch)
treec71f17ba9f1425ec1044b6dfec60c4e8aa2902a8 /src/server/game/Handlers/TicketHandler.cpp
parent7c4a16e6c2f9cd6faa4d66ade9fa017267310632 (diff)
parent101ac7f5110030ac12fa13f3e9a9d2c671e48734 (diff)
Merge branch 'master' of github.com:TrinityCore/TrinityCore into 4.3.4
Conflicts: src/server/game/Entities/Unit/Unit.cpp src/server/game/Entities/Unit/Unit.h
Diffstat (limited to 'src/server/game/Handlers/TicketHandler.cpp')
-rw-r--r--src/server/game/Handlers/TicketHandler.cpp24
1 files changed, 20 insertions, 4 deletions
diff --git a/src/server/game/Handlers/TicketHandler.cpp b/src/server/game/Handlers/TicketHandler.cpp
index aefe7d96331..4ea4d835ae9 100644
--- a/src/server/game/Handlers/TicketHandler.cpp
+++ b/src/server/game/Handlers/TicketHandler.cpp
@@ -49,13 +49,23 @@ void WorldSession::HandleGMTicketCreateOpcode(WorldPacket& recvData)
// Player must not have ticket
if (!ticket || ticket->IsClosed())
{
- ticket = new GmTicket(GetPlayer(), recvData);
-
+ uint32 mapId;
+ float x, y, z;
+ std::string message;
+ uint32 needResponse;
+ bool needMoreHelp;
uint32 count;
std::list<uint32> times;
uint32 decompressedSize;
std::string chatLog;
+ recvData >> mapId;
+ recvData >> x >> y >> z;
+ recvData >> message;
+
+ recvData >> needResponse;
+ recvData >> needMoreHelp;
+
recvData >> count;
for (uint32 i = 0; i < count; i++)
@@ -77,19 +87,25 @@ void WorldSession::HandleGMTicketCreateOpcode(WorldPacket& recvData)
if (uncompress(dest.contents(), &realSize, recvData.contents() + pos, recvData.size() - pos) == Z_OK)
{
dest >> chatLog;
- ticket->SetChatLog(times, chatLog);
}
else
{
TC_LOG_ERROR("network", "CMSG_GMTICKET_CREATE possibly corrupt. Uncompression failed.");
recvData.rfinish();
- delete ticket;
return;
}
recvData.rfinish(); // Will still have compressed data in buffer.
}
+ ticket = new GmTicket(GetPlayer());
+ ticket->SetPosition(mapId, x, y, z);
+ ticket->SetMessage(message);
+ ticket->SetGmAction(needResponse, needMoreHelp);
+
+ if (!chatLog.empty())
+ ticket->SetChatLog(times, chatLog);
+
sTicketMgr->AddTicket(ticket);
sTicketMgr->UpdateLastChange();