From 6b3359575b849c863886d239a3fe390360e60b12 Mon Sep 17 00:00:00 2001 From: NoFantasy Date: Sat, 28 May 2011 13:05:16 +0200 Subject: [PATCH] [11554] Add some "tail" data for SMSG_CAST_FAILED and SMSG_PET_CAST_FAILED Not all SPELL_FAILED_* are used currently (but ok for future implementation) Signed-off-by: NoFantasy --- src/game/Spell.cpp | 12 ++++++++++++ src/game/Unit.cpp | 13 +++++++++++-- src/shared/revision_nr.h | 2 +- 3 files changed, 24 insertions(+), 3 deletions(-) diff --git a/src/game/Spell.cpp b/src/game/Spell.cpp index c4ea95969..a758504e1 100644 --- a/src/game/Spell.cpp +++ b/src/game/Spell.cpp @@ -3560,6 +3560,9 @@ void Spell::SendCastResult(Player* caster, SpellEntry const* spellInfo, uint8 ca data << uint8(result); // problem switch (result) { + case SPELL_FAILED_NOT_READY: + data << uint32(0); // unknown, value 1 seen for 14177 + break; case SPELL_FAILED_REQUIRES_SPELL_FOCUS: data << uint32(spellInfo->RequiresSpellFocus); break; @@ -3598,6 +3601,15 @@ void Spell::SendCastResult(Player* caster, SpellEntry const* spellInfo, uint8 ca data << uint32(spellInfo->EquippedItemSubClassMask); //data << uint32(spellInfo->EquippedItemInventoryTypeMask); break; + case SPELL_FAILED_EQUIPPED_ITEM_CLASS_MAINHAND: + case SPELL_FAILED_EQUIPPED_ITEM_CLASS_OFFHAND: + // same data as SPELL_FAILED_EQUIPPED_ITEM_CLASS ? + data << uint32(0); + data << uint32(0); + break; + case SPELL_FAILED_PREVENTED_BY_MECHANIC: + data << uint32(0); // unknown, mechanic mask? + break; default: break; } diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp index 846f146c6..ab8d950e4 100644 --- a/src/game/Unit.cpp +++ b/src/game/Unit.cpp @@ -9870,8 +9870,17 @@ void Unit::SendPetCastFail(uint32 spellid, SpellCastResult msg) data << uint8(0); // cast count? data << uint32(spellid); data << uint8(msg); - // uint32 for some reason - // uint32 for some reason + + // More cases exist, see Spell::SendCastResult (can possibly be unified) + switch(msg) + { + case SPELL_FAILED_NOT_READY: + data << uint32(0); // unknown + break; + default: + break; + } + ((Player*)owner)->GetSession()->SendPacket(&data); } diff --git a/src/shared/revision_nr.h b/src/shared/revision_nr.h index 58daf8cc4..8cd655ece 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 "11553" + #define REVISION_NR "11554" #endif // __REVISION_NR_H__