aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xsrc/server/game/Tickets/TicketMgr.cpp35
1 files changed, 19 insertions, 16 deletions
diff --git a/src/server/game/Tickets/TicketMgr.cpp b/src/server/game/Tickets/TicketMgr.cpp
index f82c01adf31..e43d6ca5443 100755
--- a/src/server/game/Tickets/TicketMgr.cpp
+++ b/src/server/game/Tickets/TicketMgr.cpp
@@ -144,11 +144,24 @@ void GmTicket::SendResponse(WorldSession* session) const
data << uint32(1); // responseID
data << uint32(_id); // ticketID
data << _message.c_str();
- data << _response.c_str();
- // 3 null strings (unused)
- data << uint8(0);
- data << uint8(0);
- data << uint8(0);
+
+ size_t len = _response.size();
+ char const* s = _response.c_str();
+
+ for (int i = 0; i < 4; i++)
+ {
+ if (len)
+ {
+ size_t writeLen = std::min<size_t>(len, 3999);
+ data.append(s, writeLen);
+
+ len -= writeLen;
+ s += writeLen;
+ }
+
+ data << uint8(0);
+ }
+
session->SendPacket(&data);
}
@@ -371,17 +384,7 @@ void TicketMgr::SendTicket(WorldSession* session, GmTicket* ticket) const
// we've got the easy stuff done by now.
// Now we need to go through the client logic for displaying various levels of ticket load
- if (ticket)
- ticket->WritePacket(data);
- else
- {
- // we can't actually get any numbers here...
- data << float(0);
- data << float(0);
- data << float(1);
- data << uint8(0);
- data << uint8(0);
- }
+ ticket->WritePacket(data);
}
session->SendPacket(&data);
}