* Changed SetSpells() to AddSpell(spellid, spellslot)
* Added handling of SMSG_LEARNED_SPELL opcode
This commit is contained in:
parent
0aaf7b45d6
commit
739ee2eae2
@ -32,23 +32,13 @@ void MyCharacter::SetActionButtons(WorldPacket &data)
|
||||
|
||||
}
|
||||
|
||||
void MyCharacter::SetSpells(WorldPacket &data)
|
||||
void MyCharacter::AddSpell(uint16 spellid, uint16 spellslot)
|
||||
{
|
||||
uint8 unk;
|
||||
uint16 spellid,spellslot,count;
|
||||
data >> unk >> count;
|
||||
logdebug("Got initial spells list, %u spells.",count);
|
||||
for(uint16 i = 0; i < count; i++)
|
||||
{
|
||||
data >> spellid >> spellslot;
|
||||
logdebug("Initial Spell: id=%u slot=%u",spellid,spellslot);
|
||||
|
||||
SpellBookEntry _spell;
|
||||
_spell.id = spellid;
|
||||
_spell.slot = spellslot;
|
||||
|
||||
_spells.push_back(_spell);
|
||||
}
|
||||
}
|
||||
|
||||
uint16 MyCharacter::GetSpellSlot(uint32 spellid)
|
||||
|
||||
@ -202,7 +202,7 @@ public:
|
||||
MyCharacter();
|
||||
|
||||
void SetActionButtons(WorldPacket &data);
|
||||
void SetSpells(WorldPacket &data);
|
||||
void AddSpell(uint16 spellid, uint16 spellslot);
|
||||
uint64 GetTarget(void) { return _target; }
|
||||
void SetTarget(uint64 guid) { _target = guid; } // should only be called by WorldSession::SendSetSelection() !!
|
||||
bool HasSpell(uint32 spellid) { return GetSpellSlot(spellid) != 0; }
|
||||
|
||||
@ -185,6 +185,7 @@ OpcodeHandler *WorldSession::_GetOpcodeHandlerTable() const
|
||||
{SMSG_ITEM_QUERY_SINGLE_RESPONSE, &WorldSession::_HandleItemQuerySingleResponseOpcode},
|
||||
{SMSG_DESTROY_OBJECT, &WorldSession::_HandleDestroyObjectOpcode},
|
||||
{SMSG_INITIAL_SPELLS, &WorldSession::_HandleInitialSpellsOpcode},
|
||||
{SMSG_LEARNED_SPELL, &WorldSession::_HandleLearnedSpellOpcode},
|
||||
|
||||
// table termination
|
||||
{ 0, NULL }
|
||||
@ -642,7 +643,25 @@ void WorldSession::_HandleCastResultOpcode(WorldPacket& recvPacket)
|
||||
|
||||
void WorldSession::_HandleInitialSpellsOpcode(WorldPacket& recvPacket)
|
||||
{
|
||||
// suggestion for later: what about MyCharacter->AddSpellBookEntry() ?
|
||||
GetMyChar()->SetSpells(recvPacket);
|
||||
uint8 unk;
|
||||
uint16 spellid,spellslot,count;
|
||||
recvPacket >> unk >> count;
|
||||
logdebug("Got initial spells list, %u spells.",count);
|
||||
for(uint16 i = 0; i < count; i++)
|
||||
{
|
||||
recvPacket >> spellid >> spellslot;
|
||||
logdebug("Initial Spell: id=%u slot=%u",spellid,spellslot);
|
||||
|
||||
GetMyChar()->AddSpell(spellid, spellslot);
|
||||
}
|
||||
}
|
||||
|
||||
void WorldSession::_HandleLearnedSpellOpcode(WorldPacket& recvPacket)
|
||||
{
|
||||
uint16 spellid;
|
||||
recvPacket >> spellid;
|
||||
GetMyChar()->AddSpell(spellid, 0);
|
||||
|
||||
logdebug("Learned spell: id=%u",spellid);
|
||||
}
|
||||
|
||||
|
||||
@ -92,6 +92,7 @@ private:
|
||||
void _HandleItemQuerySingleResponseOpcode(WorldPacket& recvPacket);
|
||||
void _HandleDestroyObjectOpcode(WorldPacket& recvPacket);
|
||||
void _HandleInitialSpellsOpcode(WorldPacket& recvPacket);
|
||||
void _HandleLearnedSpellOpcode(WorldPacket& recvPacket);
|
||||
|
||||
void _MovementUpdate(uint8 objtypeid, uint64 guid, WorldPacket& recvPacket); // Helper for _HandleUpdateObjectOpcode
|
||||
void _ValuesUpdate(uint64 uguid, WorldPacket& recvPacket); // ...
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user