From 7b67ada8e262300ea6acc88053e392dc552c3862 Mon Sep 17 00:00:00 2001 From: sanctum32 Date: Fri, 25 Oct 2013 00:42:59 +0300 Subject: [PATCH] [12714] Implemented CMSG_RETURN_TO_GRAVEYARD --- src/game/MiscHandler.cpp | 8 ++++++++ src/game/Opcodes.cpp | 1 + src/game/Opcodes.h | 1 + src/game/WorldSession.h | 1 + src/shared/revision_nr.h | 2 +- 5 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/game/MiscHandler.cpp b/src/game/MiscHandler.cpp index d5a3f62db..bf26842ab 100644 --- a/src/game/MiscHandler.cpp +++ b/src/game/MiscHandler.cpp @@ -677,6 +677,14 @@ void WorldSession::HandleResurrectResponseOpcode(WorldPacket& recv_data) GetPlayer()->ResurectUsingRequestData(); // will call spawncorpsebones } +void WorldSession::HandleReturnToGraveyard(WorldPacket& /*recvPacket*/) +{ + if (GetPlayer()->isAlive() || !GetPlayer()->HasFlag(PLAYER_FLAGS, PLAYER_FLAGS_GHOST)) + return; + + GetPlayer()->RepopAtGraveyard(); +} + void WorldSession::HandleAreaTriggerOpcode(WorldPacket& recv_data) { DEBUG_LOG("WORLD: Received opcode CMSG_AREATRIGGER"); diff --git a/src/game/Opcodes.cpp b/src/game/Opcodes.cpp index 621a0a9ef..305dff37d 100644 --- a/src/game/Opcodes.cpp +++ b/src/game/Opcodes.cpp @@ -423,6 +423,7 @@ void InitializeOpcodes() OPCODE(CMSG_REPOP_REQUEST, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleRepopRequestOpcode ); OPCODE(SMSG_RESURRECT_REQUEST, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); OPCODE(CMSG_RESURRECT_RESPONSE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleResurrectResponseOpcode ); + OPCODE(CMSG_RETURN_TO_GRAVEYARD, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleReturnToGraveyard ); OPCODE(CMSG_LOOT, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleLootOpcode ); OPCODE(CMSG_LOOT_MONEY, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleLootMoneyOpcode ); OPCODE(CMSG_LOOT_RELEASE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleLootReleaseOpcode ); diff --git a/src/game/Opcodes.h b/src/game/Opcodes.h index 9643c8fef..3fd1386ec 100644 --- a/src/game/Opcodes.h +++ b/src/game/Opcodes.h @@ -407,6 +407,7 @@ enum Opcodes CMSG_REPOP_REQUEST = 0x6235, // 4.3.4 15595 SMSG_RESURRECT_REQUEST = 0x2905, // 4.3.4 15595 CMSG_RESURRECT_RESPONSE = 0x6827, // 4.3.4 15595 + CMSG_RETURN_TO_GRAVEYARD = 0x301E, // 4.3.4 15595 CMSG_LOOT = 0x0127, // 4.3.4 15595 CMSG_LOOT_CURRENCY = 0x781C, // 4.3.4 15595 CMSG_LOOT_MONEY = 0x6227, // 4.3.4 15595 diff --git a/src/game/WorldSession.h b/src/game/WorldSession.h index 1ad36bb35..4022f9617 100644 --- a/src/game/WorldSession.h +++ b/src/game/WorldSession.h @@ -714,6 +714,7 @@ class MANGOS_DLL_SPEC WorldSession void HandleCorpseQueryOpcode(WorldPacket& recvPacket); void HandleCorpseMapPositionQueryOpcode(WorldPacket& recvPacket); void HandleResurrectResponseOpcode(WorldPacket& recvPacket); + void HandleReturnToGraveyard(WorldPacket& recvPacket); void HandleSummonResponseOpcode(WorldPacket& recv_data); void HandleJoinChannelOpcode(WorldPacket& recvPacket); diff --git a/src/shared/revision_nr.h b/src/shared/revision_nr.h index f15a0cafb..4bb32f897 100644 --- a/src/shared/revision_nr.h +++ b/src/shared/revision_nr.h @@ -1,4 +1,4 @@ #ifndef __REVISION_NR_H__ #define __REVISION_NR_H__ - #define REVISION_NR "12713" + #define REVISION_NR "12714" #endif // __REVISION_NR_H__