diff options
author | Shauren <shauren.trinity@gmail.com> | 2013-06-21 02:35:37 +0200 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2013-06-21 02:35:37 +0200 |
commit | b2cc07556c1470d5547f138e33a96b0296d5b6f2 (patch) | |
tree | 5d722fbc8e553d9a45c72fe30e88f0e262484ce9 /src | |
parent | cd32579a43ae3dbdb7681cc281fc7c6e414f7136 (diff) |
Core/PacketIO: Enabled SMSG_STABLE_RESULT and updated stable results enum
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/Handlers/NPCHandler.cpp | 22 | ||||
-rw-r--r-- | src/server/game/Server/Protocol/Opcodes.cpp | 2 |
2 files changed, 13 insertions, 11 deletions
diff --git a/src/server/game/Handlers/NPCHandler.cpp b/src/server/game/Handlers/NPCHandler.cpp index 776643af0a9..ad7cb112a29 100644 --- a/src/server/game/Handlers/NPCHandler.cpp +++ b/src/server/game/Handlers/NPCHandler.cpp @@ -41,11 +41,12 @@ enum StableResultCode { STABLE_ERR_MONEY = 0x01, // "you don't have enough money" - STABLE_ERR_STABLE = 0x06, // currently used in most fail cases + STABLE_ERR_INVALID_SLOT = 0x03, // "That slot is locked" STABLE_SUCCESS_STABLE = 0x08, // stable success STABLE_SUCCESS_UNSTABLE = 0x09, // unstable/swap success STABLE_SUCCESS_BUY_SLOT = 0x0A, // buy slot success - STABLE_ERR_EXOTIC = 0x0C // "you are unable to control exotic creatures" + STABLE_ERR_EXOTIC = 0x0B, // "you are unable to control exotic creatures" + STABLE_ERR_STABLE = 0x0C, // "Internal pet error" }; void WorldSession::HandleTabardVendorActivateOpcode(WorldPacket& recvData) @@ -655,14 +656,13 @@ void WorldSession::HandleStablePetCallback(PreparedQueryResult result) while (result->NextRow()); } - WorldPacket data(SMSG_STABLE_RESULT, 1); if (freeSlot > 0 && freeSlot <= GetPlayer()->m_stableSlots) { _player->RemovePet(_player->GetPet(), PetSaveMode(freeSlot)); SendStableResult(STABLE_SUCCESS_STABLE); } else - SendStableResult(STABLE_ERR_STABLE); + SendStableResult(STABLE_ERR_INVALID_SLOT); } void WorldSession::HandleUnstablePet(WorldPacket& recvData) @@ -844,13 +844,15 @@ void WorldSession::HandleStableSwapPetCallback(PreparedQueryResult result, uint3 } CreatureTemplate const* creatureInfo = sObjectMgr->GetCreatureTemplate(petEntry); - if (!creatureInfo || !creatureInfo->IsTameable(_player->CanTameExoticPets())) + if (!creatureInfo || !creatureInfo->IsTameable(true)) { - // if problem in exotic pet - if (creatureInfo && creatureInfo->IsTameable(true)) - SendStableResult(STABLE_ERR_EXOTIC); - else - SendStableResult(STABLE_ERR_STABLE); + SendStableResult(STABLE_ERR_STABLE); + return; + } + + if (!creatureInfo->IsTameable(_player->CanTameExoticPets())) + { + SendStableResult(STABLE_ERR_EXOTIC); return; } diff --git a/src/server/game/Server/Protocol/Opcodes.cpp b/src/server/game/Server/Protocol/Opcodes.cpp index 76f57f6fe3e..052a47f85c8 100644 --- a/src/server/game/Server/Protocol/Opcodes.cpp +++ b/src/server/game/Server/Protocol/Opcodes.cpp @@ -1217,7 +1217,7 @@ void OpcodeTable::Initialize() DEFINE_OPCODE_HANDLER(SMSG_SPLINE_MOVE_UNROOT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); DEFINE_OPCODE_HANDLER(SMSG_SPLINE_MOVE_UNSET_FLYING, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); DEFINE_OPCODE_HANDLER(SMSG_SPLINE_MOVE_UNSET_HOVER, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); - DEFINE_OPCODE_HANDLER(SMSG_STABLE_RESULT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); + DEFINE_OPCODE_HANDLER(SMSG_STABLE_RESULT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); DEFINE_OPCODE_HANDLER(SMSG_STANDSTATE_UPDATE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); DEFINE_OPCODE_HANDLER(SMSG_START_MIRROR_TIMER, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); DEFINE_OPCODE_HANDLER(SMSG_START_TIMER, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); |