From 6af247d34fe5346fcc3498a4a321cfaa48fe3bfb Mon Sep 17 00:00:00 2001 From: Blaymoira Date: Thu, 4 Mar 2010 08:54:14 +0100 Subject: [PATCH] [9514] Implement opcode CMSG_HEARTH_AND_RESURRECT Signed-off-by: Lightguard --- src/game/MiscHandler.cpp | 14 ++++++++++++++ src/game/Opcodes.cpp | 2 +- src/game/WorldSession.h | 1 + src/shared/revision_nr.h | 2 +- 4 files changed, 17 insertions(+), 2 deletions(-) diff --git a/src/game/MiscHandler.cpp b/src/game/MiscHandler.cpp index fe2ee3c65..4fcff529a 100644 --- a/src/game/MiscHandler.cpp +++ b/src/game/MiscHandler.cpp @@ -1573,3 +1573,17 @@ void WorldSession::HandleReadyForAccountDataTimes(WorldPacket& /*recv_data*/) SendAccountDataTimes(GLOBAL_CACHE_MASK); } + +void WorldSession::HandleHearthandResurrect(WorldPacket & /*recv_data*/) +{ + sLog.outDebug("WORLD: CMSG_HEARTH_AND_RESURRECT"); + + // Can't use in flight + if (_player->isInFlight()) + return; + + // Send Everytime + _player->BuildPlayerRepop(); + _player->ResurrectPlayer(100); + _player->TeleportToHomebind(); +} diff --git a/src/game/Opcodes.cpp b/src/game/Opcodes.cpp index e93788008..ea7bcb9b4 100644 --- a/src/game/Opcodes.cpp +++ b/src/game/Opcodes.cpp @@ -1206,7 +1206,7 @@ OpcodeHandler opcodeTable[NUM_MSG_TYPES] = /*0x499*/ { "SMSG_PET_LEARNED_SPELL", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x49A*/ { "SMSG_PET_REMOVED_SPELL", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x49B*/ { "CMSG_CHANGE_SEATS_ON_CONTROLLED_VEHICLE", STATUS_NEVER, &WorldSession::Handle_NULL }, - /*0x49C*/ { "CMSG_HEARTH_AND_RESURRECT", STATUS_UNHANDLED,&WorldSession::Handle_NULL }, + /*0x49C*/ { "CMSG_HEARTH_AND_RESURRECT", STATUS_LOGGEDIN, &WorldSession::HandleHearthandResurrect }, /*0x49D*/ { "SMSG_ON_CANCEL_EXPECTED_RIDE_VEHICLE_AURA", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x49E*/ { "SMSG_CRITERIA_DELETED", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x49F*/ { "SMSG_ACHIEVEMENT_DELETED", STATUS_NEVER, &WorldSession::Handle_ServerSide }, diff --git a/src/game/WorldSession.h b/src/game/WorldSession.h index ece594061..776b1043e 100644 --- a/src/game/WorldSession.h +++ b/src/game/WorldSession.h @@ -655,6 +655,7 @@ class MANGOS_DLL_SPEC WorldSession void HandleTimeSyncResp(WorldPacket& recv_data); void HandleWhoisOpcode(WorldPacket& recv_data); void HandleResetInstancesOpcode(WorldPacket& recv_data); + void HandleHearthandResurrect(WorldPacket & recv_data); // Arena Team void HandleInspectArenaTeamsOpcode(WorldPacket& recv_data); diff --git a/src/shared/revision_nr.h b/src/shared/revision_nr.h index 8965cd2d5..cecb60f4d 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 "9513" + #define REVISION_NR "9514" #endif // __REVISION_NR_H__