diff options
author | maximius <none@none> | 2009-10-17 15:51:44 -0700 |
---|---|---|
committer | maximius <none@none> | 2009-10-17 15:51:44 -0700 |
commit | e585187b248f48b3c6e9247b49fa07c6565d65e5 (patch) | |
tree | 637c5b7ddacf41040bef4ea4f75a97da64c6a9bc /src/game/TicketHandler.cpp | |
parent | 26b5e033ffde3d161382fc9addbfa99738379641 (diff) |
*Backed out changeset 3be01fb200a5
--HG--
branch : trunk
Diffstat (limited to 'src/game/TicketHandler.cpp')
-rw-r--r-- | src/game/TicketHandler.cpp | 27 |
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; |