aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Handlers/CharacterHandler.cpp
diff options
context:
space:
mode:
authormyran2 <henrytgordon@gmail.com>2016-04-29 11:49:07 -0400
committerShauren <shauren.trinity@gmail.com>2016-05-26 17:20:01 +0200
commitbc1a81747ae032bc2ae3681d99f5f6058d20caff (patch)
treebbec4aca0ee5f8a486cc64a12e91145d04816a4c /src/server/game/Handlers/CharacterHandler.cpp
parent6c71c8694f91f6254e8a913f0550e4ff78cb6875 (diff)
Core/Pets: Implemented pet specializations (#17058)
* Use prepared statements in Pet::SavePetToDB * Add support for resetting all of a player's pet specializations * Send one big spell unlearn/learn packet instead of lots of small ones * Implemented Adaptation talent
Diffstat (limited to 'src/server/game/Handlers/CharacterHandler.cpp')
-rw-r--r--src/server/game/Handlers/CharacterHandler.cpp12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/server/game/Handlers/CharacterHandler.cpp b/src/server/game/Handlers/CharacterHandler.cpp
index ee75a4ed58c..95a1317b17c 100644
--- a/src/server/game/Handlers/CharacterHandler.cpp
+++ b/src/server/game/Handlers/CharacterHandler.cpp
@@ -1077,7 +1077,17 @@ void WorldSession::HandlePlayerLogin(LoginQueryHolder* holder)
// reset for all pets before pet loading
if (pCurrChar->HasAtLoginFlag(AT_LOGIN_RESET_PET_TALENTS))
- Pet::resetTalentsForAllPetsOf(pCurrChar);
+ {
+ // Delete all of the player's pet spells
+ PreparedStatement* stmtSpells = CharacterDatabase.GetPreparedStatement(CHAR_DEL_ALL_PET_SPELLS_BY_OWNER);
+ stmtSpells->setUInt64(0, pCurrChar->GetGUID().GetCounter());
+ CharacterDatabase.Execute(stmtSpells);
+
+ // Then reset all of the player's pet specualizations
+ PreparedStatement* stmtSpec = CharacterDatabase.GetPreparedStatement(CHAR_DEL_ALL_PET_SPELLS_BY_OWNER);
+ stmtSpec->setUInt64(0, pCurrChar->GetGUID().GetCounter());
+ CharacterDatabase.Execute(stmtSpec);
+ }
// Load pet if any (if player not alive and in taxi flight or another then pet will remember as temporary unsummoned)
pCurrChar->LoadPet();