aboutsummaryrefslogtreecommitdiff
path: root/src/game/TicketHandler.cpp
diff options
context:
space:
mode:
authormaximius <none@none>2009-10-17 15:51:44 -0700
committermaximius <none@none>2009-10-17 15:51:44 -0700
commite585187b248f48b3c6e9247b49fa07c6565d65e5 (patch)
tree637c5b7ddacf41040bef4ea4f75a97da64c6a9bc /src/game/TicketHandler.cpp
parent26b5e033ffde3d161382fc9addbfa99738379641 (diff)
*Backed out changeset 3be01fb200a5
--HG-- branch : trunk
Diffstat (limited to 'src/game/TicketHandler.cpp')
-rw-r--r--src/game/TicketHandler.cpp27
1 files changed, 26 insertions, 1 deletions
diff --git a/src/game/TicketHandler.cpp b/src/game/TicketHandler.cpp
index 091b26519b9..2ac0c601edc 100644
--- a/src/game/TicketHandler.cpp
+++ b/src/game/TicketHandler.cpp
@@ -17,12 +17,14 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
+
#include "Language.h"
#include "WorldPacket.h"
#include "Common.h"
#include "ObjectMgr.h"
#include "Player.h"
#include "World.h"
+
void WorldSession::HandleGMTicketCreateOpcode( WorldPacket & recv_data )
{
if(GM_Ticket *ticket = objmgr.GetGMTicketByPlayer(GetPlayer()->GetGUID()))
@@ -32,9 +34,11 @@ void WorldSession::HandleGMTicketCreateOpcode( WorldPacket & recv_data )
SendPacket( &data );
return;
}
+
uint32 map;
float x, y, z;
std::string ticketText, ticketText2;
+
WorldPacket data(SMSG_GMTICKET_CREATE, 4);
recv_data >> map;
recv_data >> x;
@@ -42,7 +46,8 @@ void WorldSession::HandleGMTicketCreateOpcode( WorldPacket & recv_data )
recv_data >> z;
recv_data >> ticketText;
recv_data >> ticketText2;
- GM_Ticket *ticket = new GM_Ticket;
+
+ GM_Ticket *ticket = new GM_Ticket;
ticket->name = GetPlayer()->GetName();
ticket->guid = objmgr.GenerateGMTicketId();
ticket->playerGuid = GetPlayer()->GetGUID();
@@ -56,16 +61,23 @@ void WorldSession::HandleGMTicketCreateOpcode( WorldPacket & recv_data )
ticket->closed = 0;
ticket->assignedToGM = 0;
ticket->comment = "";
+
objmgr.AddOrUpdateGMTicket(*ticket, true);
+
data << uint32(2);
SendPacket(&data);
+
sWorld.SendGMText(LANG_COMMAND_TICKETNEW, GetPlayer()->GetName(), ticket->guid);
+
}
+
void WorldSession::HandleGMTicketUpdateOpcode( WorldPacket & recv_data)
{
WorldPacket data(SMSG_GMTICKET_UPDATETEXT, 4);
+
std::string message;
recv_data >> message;
+
GM_Ticket *ticket = objmgr.GetGMTicketByPlayer(GetPlayer()->GetGUID());
if(!ticket)
{
@@ -73,44 +85,57 @@ void WorldSession::HandleGMTicketUpdateOpcode( WorldPacket & recv_data)
SendPacket(&data);
return;
}
+
ticket->message = message;
ticket->timestamp = time(NULL);
+
objmgr.AddOrUpdateGMTicket(*ticket);
+
data << uint32(2);
SendPacket(&data);
+
sWorld.SendGMText(LANG_COMMAND_TICKETUPDATED, GetPlayer()->GetName(), ticket->guid);
+
}
+
void WorldSession::HandleGMTicketDeleteOpcode( WorldPacket & /*recv_data*/)
{
GM_Ticket* ticket = objmgr.GetGMTicketByPlayer(GetPlayer()->GetGUID());
+
if(ticket)
{
WorldPacket data(SMSG_GMTICKET_DELETETICKET, 4);
data << uint32(9);
SendPacket(&data);
+
sWorld.SendGMText(LANG_COMMAND_TICKETPLAYERABANDON, GetPlayer()->GetName(), ticket->guid );
objmgr.RemoveGMTicket(ticket, GetPlayer()->GetGUID(), false);
SendGMTicketGetTicket(0x0A, 0);
}
}
+
void WorldSession::HandleGMTicketGetTicketOpcode( WorldPacket & /*recv_data*/)
{
WorldPacket data( SMSG_QUERY_TIME_RESPONSE, 4+4 );
data << (uint32)time(NULL);
data << (uint32)0;
SendPacket( &data );
+
GM_Ticket *ticket = objmgr.GetGMTicketByPlayer(GetPlayer()->GetGUID());
if(ticket)
SendGMTicketGetTicket(0x06, ticket->message.c_str());
else
SendGMTicketGetTicket(0x0A, 0);
+
}
+
void WorldSession::HandleGMTicketSystemStatusOpcode( WorldPacket & /*recv_data*/)
{
WorldPacket data(SMSG_GMTICKET_SYSTEMSTATUS, 4);
data << uint32(1);
SendPacket(&data);
}
+
void WorldSession::SendGMTicketGetTicket(uint32 status, char const* text)
{
int len = text ? strlen(text) : 0;