aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Entities
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2019-07-27 10:52:33 +0200
committerShauren <shauren.trinity@gmail.com>2019-07-27 10:52:33 +0200
commitf6e2b8cdc1c8a3dd291947f67566b41dac116622 (patch)
tree22a01cb91b2d47827ae73b48fcace3926587a341 /src/server/game/Entities
parente8e89f58fb800014f53341f12505f60ee2b5fb6f (diff)
Core/DBLayer: Prevent committing transactions started on a different database
Diffstat (limited to 'src/server/game/Entities')
-rw-r--r--src/server/game/Entities/Corpse/Corpse.cpp6
-rw-r--r--src/server/game/Entities/Corpse/Corpse.h4
-rw-r--r--src/server/game/Entities/Creature/Creature.cpp4
-rw-r--r--src/server/game/Entities/GameObject/GameObject.cpp2
-rw-r--r--src/server/game/Entities/Item/Container/Bag.cpp4
-rw-r--r--src/server/game/Entities/Item/Container/Bag.h4
-rw-r--r--src/server/game/Entities/Item/Item.cpp18
-rw-r--r--src/server/game/Entities/Item/Item.h14
-rw-r--r--src/server/game/Entities/Pet/Pet.cpp10
-rw-r--r--src/server/game/Entities/Pet/Pet.h4
-rw-r--r--src/server/game/Entities/Player/CollectionMgr.cpp8
-rw-r--r--src/server/game/Entities/Player/CollectionMgr.h8
-rw-r--r--src/server/game/Entities/Player/Player.cpp98
-rw-r--r--src/server/game/Entities/Player/Player.h50
14 files changed, 117 insertions, 117 deletions
diff --git a/src/server/game/Entities/Corpse/Corpse.cpp b/src/server/game/Entities/Corpse/Corpse.cpp
index dd61c6d7fa5..9e1e680b589 100644
--- a/src/server/game/Entities/Corpse/Corpse.cpp
+++ b/src/server/game/Entities/Corpse/Corpse.cpp
@@ -95,7 +95,7 @@ bool Corpse::Create(ObjectGuid::LowType guidlow, Player* owner)
void Corpse::SaveToDB()
{
// prevent DB data inconsistence problems and duplicates
- SQLTransaction trans = CharacterDatabase.BeginTransaction();
+ CharacterDatabaseTransaction trans = CharacterDatabase.BeginTransaction();
DeleteFromDB(trans);
std::ostringstream items;
@@ -136,12 +136,12 @@ void Corpse::SaveToDB()
CharacterDatabase.CommitTransaction(trans);
}
-void Corpse::DeleteFromDB(SQLTransaction& trans)
+void Corpse::DeleteFromDB(CharacterDatabaseTransaction& trans)
{
DeleteFromDB(GetOwnerGUID(), trans);
}
-void Corpse::DeleteFromDB(ObjectGuid const& ownerGuid, SQLTransaction& trans)
+void Corpse::DeleteFromDB(ObjectGuid const& ownerGuid, CharacterDatabaseTransaction& trans)
{
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_CORPSE);
stmt->setUInt64(0, ownerGuid.GetCounter());
diff --git a/src/server/game/Entities/Corpse/Corpse.h b/src/server/game/Entities/Corpse/Corpse.h
index 2aec35372d3..2412e979174 100644
--- a/src/server/game/Entities/Corpse/Corpse.h
+++ b/src/server/game/Entities/Corpse/Corpse.h
@@ -66,8 +66,8 @@ class TC_GAME_API Corpse : public WorldObject, public GridObject<Corpse>
void SaveToDB();
bool LoadCorpseFromDB(ObjectGuid::LowType guid, Field* fields);
- void DeleteFromDB(SQLTransaction& trans);
- static void DeleteFromDB(ObjectGuid const& ownerGuid, SQLTransaction& trans);
+ void DeleteFromDB(CharacterDatabaseTransaction& trans);
+ static void DeleteFromDB(ObjectGuid const& ownerGuid, CharacterDatabaseTransaction& trans);
void AddCorpseDynamicFlag(CorpseDynFlags dynamicFlags) { SetUpdateFieldFlagValue(m_values.ModifyValue(&Corpse::m_corpseData).ModifyValue(&UF::CorpseData::DynamicFlags), dynamicFlags); }
void RemoveCorpseDynamicFlag(CorpseDynFlags dynamicFlags) { RemoveUpdateFieldFlagValue(m_values.ModifyValue(&Corpse::m_corpseData).ModifyValue(&UF::CorpseData::DynamicFlags), dynamicFlags); }
diff --git a/src/server/game/Entities/Creature/Creature.cpp b/src/server/game/Entities/Creature/Creature.cpp
index 7aa36545a10..66186cdeeab 100644
--- a/src/server/game/Entities/Creature/Creature.cpp
+++ b/src/server/game/Entities/Creature/Creature.cpp
@@ -1241,7 +1241,7 @@ void Creature::SaveToDB(uint32 mapid, std::vector<Difficulty> const& spawnDiffic
data.phaseGroup = GetDBPhase() < 0 ? -GetDBPhase() : data.phaseGroup;
// update in DB
- SQLTransaction trans = WorldDatabase.BeginTransaction();
+ WorldDatabaseTransaction trans = WorldDatabase.BeginTransaction();
WorldDatabasePreparedStatement* stmt = WorldDatabase.GetPreparedStatement(WORLD_DEL_CREATURE);
stmt->setUInt64(0, m_spawnId);
@@ -1635,7 +1635,7 @@ void Creature::DeleteFromDB()
GetMap()->RemoveCreatureRespawnTime(m_spawnId);
sObjectMgr->DeleteCreatureData(m_spawnId);
- SQLTransaction trans = WorldDatabase.BeginTransaction();
+ WorldDatabaseTransaction trans = WorldDatabase.BeginTransaction();
WorldDatabasePreparedStatement* stmt = WorldDatabase.GetPreparedStatement(WORLD_DEL_CREATURE);
stmt->setUInt64(0, m_spawnId);
diff --git a/src/server/game/Entities/GameObject/GameObject.cpp b/src/server/game/Entities/GameObject/GameObject.cpp
index 0c4bf935e16..944a1c0922d 100644
--- a/src/server/game/Entities/GameObject/GameObject.cpp
+++ b/src/server/game/Entities/GameObject/GameObject.cpp
@@ -962,7 +962,7 @@ void GameObject::SaveToDB(uint32 mapid, std::vector<Difficulty> const& spawnDiff
data.phaseGroup = GetDBPhase() < 0 ? -GetDBPhase() : data.phaseGroup;
// Update in DB
- SQLTransaction trans = WorldDatabase.BeginTransaction();
+ WorldDatabaseTransaction trans = WorldDatabase.BeginTransaction();
uint8 index = 0;
diff --git a/src/server/game/Entities/Item/Container/Bag.cpp b/src/server/game/Entities/Item/Container/Bag.cpp
index 5d2df6b0466..43f0f518adf 100644
--- a/src/server/game/Entities/Item/Container/Bag.cpp
+++ b/src/server/game/Entities/Item/Container/Bag.cpp
@@ -104,7 +104,7 @@ bool Bag::Create(ObjectGuid::LowType guidlow, uint32 itemid, Player const* owner
return true;
}
-void Bag::SaveToDB(SQLTransaction& trans)
+void Bag::SaveToDB(CharacterDatabaseTransaction& trans)
{
Item::SaveToDB(trans);
}
@@ -127,7 +127,7 @@ bool Bag::LoadFromDB(ObjectGuid::LowType guid, ObjectGuid owner_guid, Field* fie
return true;
}
-void Bag::DeleteFromDB(SQLTransaction& trans)
+void Bag::DeleteFromDB(CharacterDatabaseTransaction& trans)
{
for (uint8 i = 0; i < MAX_BAG_SIZE; ++i)
if (m_bagslot[i])
diff --git a/src/server/game/Entities/Item/Container/Bag.h b/src/server/game/Entities/Item/Container/Bag.h
index ffe5942fb0c..b59acb52b1c 100644
--- a/src/server/game/Entities/Item/Container/Bag.h
+++ b/src/server/game/Entities/Item/Container/Bag.h
@@ -51,11 +51,11 @@ class TC_GAME_API Bag : public Item
// DB operations
// overwrite virtual Item::SaveToDB
- void SaveToDB(SQLTransaction& trans) override;
+ void SaveToDB(CharacterDatabaseTransaction& trans) override;
// overwrite virtual Item::LoadFromDB
bool LoadFromDB(ObjectGuid::LowType guid, ObjectGuid owner_guid, Field* fields, uint32 entry) override;
// overwrite virtual Item::DeleteFromDB
- void DeleteFromDB(SQLTransaction& trans) override;
+ void DeleteFromDB(CharacterDatabaseTransaction& trans) override;
void BuildCreateUpdateBlockForPlayer(UpdateData* data, Player* target) const override;
void BuildValuesCreate(ByteBuffer* data, Player const* target) const override;
diff --git a/src/server/game/Entities/Item/Item.cpp b/src/server/game/Entities/Item/Item.cpp
index 12c8c79295c..6bd47efb600 100644
--- a/src/server/game/Entities/Item/Item.cpp
+++ b/src/server/game/Entities/Item/Item.cpp
@@ -373,7 +373,7 @@ void Item::UpdateDuration(Player* owner, uint32 diff)
SetState(ITEM_CHANGED, owner); // save new time in database
}
-void Item::SaveToDB(SQLTransaction& trans)
+void Item::SaveToDB(CharacterDatabaseTransaction& trans)
{
bool isInTransaction = bool(trans);
if (!isInTransaction)
@@ -875,14 +875,14 @@ void Item::CheckArtifactRelicSlotUnlock(Player const* owner)
}
/*static*/
-void Item::DeleteFromDB(SQLTransaction& trans, ObjectGuid::LowType itemGuid)
+void Item::DeleteFromDB(CharacterDatabaseTransaction& trans, ObjectGuid::LowType itemGuid)
{
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_ITEM_INSTANCE);
stmt->setUInt64(0, itemGuid);
trans->Append(stmt);
}
-void Item::DeleteFromDB(SQLTransaction& trans)
+void Item::DeleteFromDB(CharacterDatabaseTransaction& trans)
{
DeleteFromDB(trans, GetGUID().GetCounter());
@@ -892,14 +892,14 @@ void Item::DeleteFromDB(SQLTransaction& trans)
}
/*static*/
-void Item::DeleteFromInventoryDB(SQLTransaction& trans, ObjectGuid::LowType itemGuid)
+void Item::DeleteFromInventoryDB(CharacterDatabaseTransaction& trans, ObjectGuid::LowType itemGuid)
{
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_CHAR_INVENTORY_BY_ITEM);
stmt->setUInt64(0, itemGuid);
trans->Append(stmt);
}
-void Item::DeleteFromInventoryDB(SQLTransaction& trans)
+void Item::DeleteFromInventoryDB(CharacterDatabaseTransaction& trans)
{
DeleteFromInventoryDB(trans, GetGUID().GetCounter());
}
@@ -1486,7 +1486,7 @@ void Item::RemoveFromObjectUpdate()
void Item::SaveRefundDataToDB()
{
- SQLTransaction trans = CharacterDatabase.BeginTransaction();
+ CharacterDatabaseTransaction trans = CharacterDatabase.BeginTransaction();
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_ITEM_REFUND_INSTANCE);
stmt->setUInt64(0, GetGUID().GetCounter());
@@ -1502,7 +1502,7 @@ void Item::SaveRefundDataToDB()
CharacterDatabase.CommitTransaction(trans);
}
-void Item::DeleteRefundDataFromDB(SQLTransaction* trans)
+void Item::DeleteRefundDataFromDB(CharacterDatabaseTransaction* trans)
{
if (trans)
{
@@ -1513,7 +1513,7 @@ void Item::DeleteRefundDataFromDB(SQLTransaction* trans)
}
}
-void Item::SetNotRefundable(Player* owner, bool changestate /*= true*/, SQLTransaction* trans /*= nullptr*/, bool addToCollection /*= true*/)
+void Item::SetNotRefundable(Player* owner, bool changestate /*= true*/, CharacterDatabaseTransaction* trans /*= nullptr*/, bool addToCollection /*= true*/)
{
if (!HasItemFlag(ITEM_FIELD_FLAG_REFUNDABLE))
return;
@@ -1949,7 +1949,7 @@ void Item::ItemContainerSaveLootToDB()
if (loot.isLooted()) // no money and no loot
return;
- SQLTransaction trans = CharacterDatabase.BeginTransaction();
+ CharacterDatabaseTransaction trans = CharacterDatabase.BeginTransaction();
loot.containerID = GetGUID(); // Save this for when a LootItem is removed
diff --git a/src/server/game/Entities/Item/Item.h b/src/server/game/Entities/Item/Item.h
index cafb01c84ad..b5f9897a3e8 100644
--- a/src/server/game/Entities/Item/Item.h
+++ b/src/server/game/Entities/Item/Item.h
@@ -169,7 +169,7 @@ class TC_GAME_API Item : public Object
bool IsBattlenetAccountBound() const { return (GetTemplate()->GetFlags2() & ITEM_FLAG2_BNET_ACCOUNT_TRADE_OK) != 0; }
bool IsBindedNotWith(Player const* player) const;
bool IsBoundByEnchant() const;
- virtual void SaveToDB(SQLTransaction& trans);
+ virtual void SaveToDB(CharacterDatabaseTransaction& trans);
virtual bool LoadFromDB(ObjectGuid::LowType guid, ObjectGuid ownerGuid, Field* fields, uint32 entry);
void LoadArtifactData(Player* owner, uint64 xp, uint32 artifactAppearanceId, uint32 artifactTier, std::vector<ArtifactPowerLoadInfo>& powers); // must be called after LoadFromDB to have gems (relics) initialized
void CheckArtifactRelicSlotUnlock(Player const* owner);
@@ -178,9 +178,9 @@ class TC_GAME_API Item : public Object
void SetBonuses(std::vector<int32> bonusListIDs);
void ClearBonuses();
- static void DeleteFromDB(SQLTransaction& trans, ObjectGuid::LowType itemGuid);
- virtual void DeleteFromDB(SQLTransaction& trans);
- static void DeleteFromInventoryDB(SQLTransaction& trans, ObjectGuid::LowType itemGuid);
+ static void DeleteFromDB(CharacterDatabaseTransaction& trans, ObjectGuid::LowType itemGuid);
+ virtual void DeleteFromDB(CharacterDatabaseTransaction& trans);
+ static void DeleteFromInventoryDB(CharacterDatabaseTransaction& trans, ObjectGuid::LowType itemGuid);
// Lootable items and their contents
void ItemContainerSaveLootToDB();
@@ -190,9 +190,9 @@ class TC_GAME_API Item : public Object
void ItemContainerDeleteLootMoneyFromDB();
void ItemContainerDeleteLootMoneyAndLootItemsFromDB();
- void DeleteFromInventoryDB(SQLTransaction& trans);
+ void DeleteFromInventoryDB(CharacterDatabaseTransaction& trans);
void SaveRefundDataToDB();
- void DeleteRefundDataFromDB(SQLTransaction* trans);
+ void DeleteRefundDataFromDB(CharacterDatabaseTransaction* trans);
Bag* ToBag() { if (IsBag()) return reinterpret_cast<Bag*>(this); else return NULL; }
const Bag* ToBag() const { if (IsBag()) return reinterpret_cast<const Bag*>(this); else return NULL; }
@@ -299,7 +299,7 @@ class TC_GAME_API Item : public Object
void SetFixedLevel(uint8 level);
// Item Refund system
- void SetNotRefundable(Player* owner, bool changestate = true, SQLTransaction* trans = nullptr, bool addToCollection = true);
+ void SetNotRefundable(Player* owner, bool changestate = true, CharacterDatabaseTransaction* trans = nullptr, bool addToCollection = true);
void SetRefundRecipient(ObjectGuid const& guid) { m_refundRecipient = guid; }
void SetPaidMoney(uint64 money) { m_paidMoney = money; }
void SetPaidExtendedCost(uint32 iece) { m_paidExtendedCost = iece; }
diff --git a/src/server/game/Entities/Pet/Pet.cpp b/src/server/game/Entities/Pet/Pet.cpp
index ee6e1d1aaf7..7a2b13f80ce 100644
--- a/src/server/game/Entities/Pet/Pet.cpp
+++ b/src/server/game/Entities/Pet/Pet.cpp
@@ -278,7 +278,7 @@ bool Pet::LoadPetFromDB(Player* owner, uint32 petEntry, uint32 petnumber, bool c
// PET_SAVE_NOT_IN_SLOT(100) = not stable slot (summoning))
if (fields[7].GetUInt8())
{
- SQLTransaction trans = CharacterDatabase.BeginTransaction();
+ CharacterDatabaseTransaction trans = CharacterDatabase.BeginTransaction();
stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_CHAR_PET_SLOT_BY_SLOT_EXCLUDE_ID);
stmt->setUInt8(0, uint8(PET_SAVE_NOT_IN_SLOT));
@@ -410,7 +410,7 @@ void Pet::SavePetToDB(PetSaveMode mode)
uint32 curhealth = GetHealth();
uint32 curmana = GetPower(POWER_MANA);
- SQLTransaction trans = CharacterDatabase.BeginTransaction();
+ CharacterDatabaseTransaction trans = CharacterDatabase.BeginTransaction();
// save auras before possibly removing them
_SaveAuras(trans);
@@ -488,7 +488,7 @@ void Pet::SavePetToDB(PetSaveMode mode)
void Pet::DeleteFromDB(uint32 guidlow)
{
- SQLTransaction trans = CharacterDatabase.BeginTransaction();
+ CharacterDatabaseTransaction trans = CharacterDatabase.BeginTransaction();
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_CHAR_PET_BY_ID);
stmt->setUInt32(0, guidlow);
@@ -1076,7 +1076,7 @@ void Pet::_LoadSpells()
}
}
-void Pet::_SaveSpells(SQLTransaction& trans)
+void Pet::_SaveSpells(CharacterDatabaseTransaction& trans)
{
for (PetSpellMap::iterator itr = m_spells.begin(), next = m_spells.begin(); itr != m_spells.end(); itr = next)
{
@@ -1229,7 +1229,7 @@ void Pet::_LoadAuras(uint32 timediff)
}
}
-void Pet::_SaveAuras(SQLTransaction& trans)
+void Pet::_SaveAuras(CharacterDatabaseTransaction& trans)
{
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_PET_AURA_EFFECTS);
stmt->setUInt32(0, m_charmInfo->GetPetNumber());
diff --git a/src/server/game/Entities/Pet/Pet.h b/src/server/game/Entities/Pet/Pet.h
index 0ee1e732d6b..8f2547258d6 100644
--- a/src/server/game/Entities/Pet/Pet.h
+++ b/src/server/game/Entities/Pet/Pet.h
@@ -114,9 +114,9 @@ class TC_GAME_API Pet : public Guardian
void _LoadSpellCooldowns();
void _LoadAuras(uint32 timediff);
- void _SaveAuras(SQLTransaction& trans);
+ void _SaveAuras(CharacterDatabaseTransaction& trans);
void _LoadSpells();
- void _SaveSpells(SQLTransaction& trans);
+ void _SaveSpells(CharacterDatabaseTransaction& trans);
bool addSpell(uint32 spellId, ActiveStates active = ACT_DECIDE, PetSpellState state = PETSPELL_NEW, PetSpellType type = PETSPELL_NORMAL);
bool learnSpell(uint32 spell_id);
diff --git a/src/server/game/Entities/Player/CollectionMgr.cpp b/src/server/game/Entities/Player/CollectionMgr.cpp
index 9a263ca35bf..bfd63df4398 100644
--- a/src/server/game/Entities/Player/CollectionMgr.cpp
+++ b/src/server/game/Entities/Player/CollectionMgr.cpp
@@ -123,7 +123,7 @@ void CollectionMgr::LoadAccountToys(PreparedQueryResult result)
} while (result->NextRow());
}
-void CollectionMgr::SaveAccountToys(SQLTransaction& trans)
+void CollectionMgr::SaveAccountToys(LoginDatabaseTransaction& trans)
{
LoginDatabasePreparedStatement* stmt = nullptr;
for (auto const& toy : _toys)
@@ -201,7 +201,7 @@ void CollectionMgr::LoadAccountHeirlooms(PreparedQueryResult result)
} while (result->NextRow());
}
-void CollectionMgr::SaveAccountHeirlooms(SQLTransaction& trans)
+void CollectionMgr::SaveAccountHeirlooms(LoginDatabaseTransaction& trans)
{
LoginDatabasePreparedStatement* stmt = nullptr;
for (auto const& heirloom : _heirlooms)
@@ -395,7 +395,7 @@ void CollectionMgr::LoadAccountMounts(PreparedQueryResult result)
} while (result->NextRow());
}
-void CollectionMgr::SaveAccountMounts(SQLTransaction& trans)
+void CollectionMgr::SaveAccountMounts(LoginDatabaseTransaction& trans)
{
for (auto const& mount : _mounts)
{
@@ -551,7 +551,7 @@ void CollectionMgr::LoadAccountItemAppearances(PreparedQueryResult knownAppearan
}
}
-void CollectionMgr::SaveAccountItemAppearances(SQLTransaction& trans)
+void CollectionMgr::SaveAccountItemAppearances(LoginDatabaseTransaction& trans)
{
uint16 blockIndex = 0;
boost::to_block_range(*_appearances, DynamicBitsetBlockOutputIterator([this, &blockIndex, trans](uint32 blockValue)
diff --git a/src/server/game/Entities/Player/CollectionMgr.h b/src/server/game/Entities/Player/CollectionMgr.h
index 5292d07bf67..be3e1601145 100644
--- a/src/server/game/Entities/Player/CollectionMgr.h
+++ b/src/server/game/Entities/Player/CollectionMgr.h
@@ -86,7 +86,7 @@ public:
// Account-wide toys
void LoadToys();
void LoadAccountToys(PreparedQueryResult result);
- void SaveAccountToys(SQLTransaction& trans);
+ void SaveAccountToys(LoginDatabaseTransaction& trans);
void ToySetFavorite(uint32 itemId, bool favorite);
void ToyClearFanfare(uint32 itemId);
@@ -101,7 +101,7 @@ public:
// Account-wide heirlooms
void LoadHeirlooms();
void LoadAccountHeirlooms(PreparedQueryResult result);
- void SaveAccountHeirlooms(SQLTransaction& trans);
+ void SaveAccountHeirlooms(LoginDatabaseTransaction& trans);
void AddHeirloom(uint32 itemId, uint32 flags);
void UpgradeHeirloom(uint32 itemId, int32 castItem);
void CheckHeirloomUpgrades(Item* item);
@@ -114,7 +114,7 @@ public:
// Account-wide mounts
void LoadMounts();
void LoadAccountMounts(PreparedQueryResult result);
- void SaveAccountMounts(SQLTransaction& trans);
+ void SaveAccountMounts(LoginDatabaseTransaction& trans);
bool AddMount(uint32 spellId, MountStatusFlags flags, bool factionMount = false, bool learned = false);
void MountSetFavorite(uint32 spellId, bool favorite);
void SendSingleMountUpdate(std::pair<uint32, MountStatusFlags> mount);
@@ -123,7 +123,7 @@ public:
// Appearances
void LoadItemAppearances();
void LoadAccountItemAppearances(PreparedQueryResult knownAppearances, PreparedQueryResult favoriteAppearances);
- void SaveAccountItemAppearances(SQLTransaction& trans);
+ void SaveAccountItemAppearances(LoginDatabaseTransaction& trans);
void AddItemAppearance(Item* item);
void AddItemAppearance(uint32 itemId, uint32 appearanceModId = 0);
void AddTransmogSet(uint32 transmogSetId);
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp
index dbdd375fedf..994e54b49e0 100644
--- a/src/server/game/Entities/Player/Player.cpp
+++ b/src/server/game/Entities/Player/Player.cpp
@@ -2480,7 +2480,7 @@ void Player::GiveLevel(uint8 level)
if (MailLevelReward const* mailReward = sObjectMgr->GetMailLevelReward(level, getRaceMask()))
{
/// @todo Poor design of mail system
- SQLTransaction trans = CharacterDatabase.BeginTransaction();
+ CharacterDatabaseTransaction trans = CharacterDatabase.BeginTransaction();
MailDraft(mailReward->mailTemplateId).SendMailTo(trans, this, MailSender(MAIL_CREATURE, uint64(mailReward->senderEntry)));
CharacterDatabase.CommitTransaction(trans);
}
@@ -3535,7 +3535,7 @@ bool Player::ResetTalents(bool noCost)
RemoveTalent(talentInfo);
}
- SQLTransaction trans = CharacterDatabase.BeginTransaction();
+ CharacterDatabaseTransaction trans = CharacterDatabase.BeginTransaction();
_SaveTalents(trans);
_SaveSpells(trans);
CharacterDatabase.CommitTransaction(trans);
@@ -3572,7 +3572,7 @@ void Player::ResetPvpTalents()
RemovePvpTalent(talentInfo);
}
- SQLTransaction trans = CharacterDatabase.BeginTransaction();
+ CharacterDatabaseTransaction trans = CharacterDatabase.BeginTransaction();
_SaveTalents(trans);
_SaveSpells(trans);
CharacterDatabase.CommitTransaction(trans);
@@ -3807,7 +3807,7 @@ void Player::DeleteFromDB(ObjectGuid playerguid, uint32 accountId, bool updateRe
charDeleteMethod = CHAR_DELETE_REMOVE;
}
- SQLTransaction trans = CharacterDatabase.BeginTransaction();
+ CharacterDatabaseTransaction trans = CharacterDatabase.BeginTransaction();
if (ObjectGuid::LowType guildId = sCharacterCache->GetCharacterGuildIdByGuid(playerguid))
if (Guild* guild = sGuildMgr->GetGuildById(guildId))
guild->DeleteMember(trans, playerguid, false, false, true);
@@ -4405,7 +4405,7 @@ void Player::KillPlayer()
UpdateObjectVisibility();
}
-void Player::OfflineResurrect(ObjectGuid const& guid, SQLTransaction& trans)
+void Player::OfflineResurrect(ObjectGuid const& guid, CharacterDatabaseTransaction& trans)
{
Corpse::DeleteFromDB(guid, trans);
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_ADD_AT_LOGIN_FLAG);
@@ -6611,7 +6611,7 @@ void Player::_LoadCurrency(PreparedQueryResult result)
} while (result->NextRow());
}
-void Player::_SaveCurrency(SQLTransaction& trans)
+void Player::_SaveCurrency(CharacterDatabaseTransaction& trans)
{
CharacterDatabasePreparedStatement* stmt;
for (PlayerCurrenciesMap::iterator itr = _currencyStorage.begin(); itr != _currencyStorage.end(); ++itr)
@@ -9955,7 +9955,7 @@ void Player::SetInventorySlotCount(uint8 slots)
{
std::size_t fullBatches = unstorableItems.size() / MAX_MAIL_ITEMS;
std::size_t remainder = unstorableItems.size() % MAX_MAIL_ITEMS;
- SQLTransaction trans = CharacterDatabase.BeginTransaction();
+ CharacterDatabaseTransaction trans = CharacterDatabase.BeginTransaction();
auto sendItemsBatch = [this, &trans, &unstorableItems](std::size_t batchNumber, std::size_t batchSize)
{
@@ -15418,7 +15418,7 @@ void Player::RewardQuest(Quest const* quest, uint32 reward, Object* questGiver,
if (uint32 mail_template_id = quest->GetRewMailTemplateId())
{
/// @todo Poor design of mail system
- SQLTransaction trans = CharacterDatabase.BeginTransaction();
+ CharacterDatabaseTransaction trans = CharacterDatabase.BeginTransaction();
if (uint32 questMailSender = quest->GetRewMailSenderEntry())
MailDraft(mail_template_id).SendMailTo(trans, this, questMailSender, MAIL_CHECK_MASK_HAS_BODY, quest->GetRewMailDelaySecs());
else
@@ -15449,7 +15449,7 @@ void Player::RewardQuest(Quest const* quest, uint32 reward, Object* questGiver,
// StoreNewItem, mail reward, etc. save data directly to the database
// to prevent exploitable data desynchronisation we save the quest status to the database too
// (to prevent rewarding this quest another time while rewards were already given out)
- SQLTransaction trans = SQLTransaction(nullptr);
+ CharacterDatabaseTransaction trans = CharacterDatabaseTransaction(nullptr);
_SaveQuestStatus(trans);
SendQuestReward(quest, questGiver ? questGiver->ToCreature() : nullptr, XP, !announce);
@@ -18598,7 +18598,7 @@ void Player::_LoadInventory(PreparedQueryResult result, PreparedQueryResult arti
std::map<ObjectGuid, Bag*> bagMap; // fast guid lookup for bags
std::map<ObjectGuid, Item*> invalidBagMap; // fast guid lookup for bags
std::list<Item*> problematicItems;
- SQLTransaction trans = CharacterDatabase.BeginTransaction();
+ CharacterDatabaseTransaction trans = CharacterDatabase.BeginTransaction();
// Prevent items from being added to the queue while loading
m_itemUpdateQueueBlocked = true;
@@ -18790,7 +18790,7 @@ void Player::_LoadVoidStorage(PreparedQueryResult result)
while (result->NextRow());
}
-Item* Player::_LoadItem(SQLTransaction& trans, uint32 zoneId, uint32 timeDiff, Field* fields)
+Item* Player::_LoadItem(CharacterDatabaseTransaction& trans, uint32 zoneId, uint32 timeDiff, Field* fields)
{
Item* item = nullptr;
ObjectGuid::LowType itemGuid = fields[0].GetUInt64();
@@ -18965,7 +18965,7 @@ void Player::_LoadMailedItems(Mail* mail)
item->FSetState(ITEM_REMOVED);
- SQLTransaction temp = SQLTransaction(nullptr);
+ CharacterDatabaseTransaction temp = CharacterDatabaseTransaction(nullptr);
item->SaveToDB(temp); // it also deletes item object !
continue;
}
@@ -19899,7 +19899,7 @@ void Player::SaveToDB(bool create /*=false*/)
if (!create)
sScriptMgr->OnPlayerSave(this);
- SQLTransaction trans = CharacterDatabase.BeginTransaction();
+ CharacterDatabaseTransaction trans = CharacterDatabase.BeginTransaction();
CharacterDatabasePreparedStatement* stmt = nullptr;
uint8 index = 0;
@@ -20253,18 +20253,18 @@ void Player::SaveToDB(bool create /*=false*/)
CharacterDatabase.CommitTransaction(trans);
// TODO: Move this out
- trans = LoginDatabase.BeginTransaction();
- GetSession()->GetCollectionMgr()->SaveAccountToys(trans);
- GetSession()->GetBattlePetMgr()->SaveToDB(trans);
- GetSession()->GetCollectionMgr()->SaveAccountHeirlooms(trans);
- GetSession()->GetCollectionMgr()->SaveAccountMounts(trans);
- GetSession()->GetCollectionMgr()->SaveAccountItemAppearances(trans);
+ LoginDatabaseTransaction loginTransaction = LoginDatabase.BeginTransaction();
+ GetSession()->GetCollectionMgr()->SaveAccountToys(loginTransaction);
+ GetSession()->GetBattlePetMgr()->SaveToDB(loginTransaction);
+ GetSession()->GetCollectionMgr()->SaveAccountHeirlooms(loginTransaction);
+ GetSession()->GetCollectionMgr()->SaveAccountMounts(loginTransaction);
+ GetSession()->GetCollectionMgr()->SaveAccountItemAppearances(loginTransaction);
LoginDatabasePreparedStatement* loginStmt = LoginDatabase.GetPreparedStatement(LOGIN_DEL_BNET_LAST_PLAYER_CHARACTERS);
loginStmt->setUInt32(0, GetSession()->GetAccountId());
loginStmt->setUInt8(1, realm.Id.Region);
loginStmt->setUInt8(2, realm.Id.Site);
- trans->Append(loginStmt);
+ loginTransaction->Append(loginStmt);
loginStmt = LoginDatabase.GetPreparedStatement(LOGIN_INS_BNET_LAST_PLAYER_CHARACTERS);
loginStmt->setUInt32(0, GetSession()->GetAccountId());
@@ -20274,9 +20274,9 @@ void Player::SaveToDB(bool create /*=false*/)
loginStmt->setString(4, GetName());
loginStmt->setUInt64(5, GetGUID().GetCounter());
loginStmt->setUInt32(6, time(nullptr));
- trans->Append(loginStmt);
+ loginTransaction->Append(loginStmt);
- LoginDatabase.CommitTransaction(trans);
+ LoginDatabase.CommitTransaction(loginTransaction);
// save pet (hunter pet level and experience and all type pets health/mana).
if (Pet* pet = GetPet())
@@ -20284,14 +20284,14 @@ void Player::SaveToDB(bool create /*=false*/)
}
// fast save function for item/money cheating preventing - save only inventory and money state
-void Player::SaveInventoryAndGoldToDB(SQLTransaction& trans)
+void Player::SaveInventoryAndGoldToDB(CharacterDatabaseTransaction& trans)
{
_SaveInventory(trans);
_SaveCurrency(trans);
SaveGoldToDB(trans);
}
-void Player::SaveGoldToDB(SQLTransaction& trans) const
+void Player::SaveGoldToDB(CharacterDatabaseTransaction& trans) const
{
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_CHAR_MONEY);
stmt->setUInt64(0, GetMoney());
@@ -20299,7 +20299,7 @@ void Player::SaveGoldToDB(SQLTransaction& trans) const
trans->Append(stmt);
}
-void Player::_SaveActions(SQLTransaction& trans)
+void Player::_SaveActions(CharacterDatabaseTransaction& trans)
{
CharacterDatabasePreparedStatement* stmt;
@@ -20347,7 +20347,7 @@ void Player::_SaveActions(SQLTransaction& trans)
}
}
-void Player::_SaveAuras(SQLTransaction& trans)
+void Player::_SaveAuras(CharacterDatabaseTransaction& trans)
{
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_CHAR_AURA_EFFECT);
stmt->setUInt64(0, GetGUID().GetCounter());
@@ -20402,7 +20402,7 @@ void Player::_SaveAuras(SQLTransaction& trans)
}
}
-void Player::_SaveInventory(SQLTransaction& trans)
+void Player::_SaveInventory(CharacterDatabaseTransaction& trans)
{
CharacterDatabasePreparedStatement* stmt;
// force items in buyback slots to new state
@@ -20527,7 +20527,7 @@ void Player::_SaveInventory(SQLTransaction& trans)
m_itemUpdateQueue.clear();
}
-void Player::_SaveVoidStorage(SQLTransaction& trans)
+void Player::_SaveVoidStorage(CharacterDatabaseTransaction& trans)
{
CharacterDatabasePreparedStatement* stmt = nullptr;
@@ -20564,7 +20564,7 @@ void Player::_SaveVoidStorage(SQLTransaction& trans)
}
}
-void Player::_SaveCUFProfiles(SQLTransaction& trans)
+void Player::_SaveCUFProfiles(CharacterDatabaseTransaction& trans)
{
CharacterDatabasePreparedStatement* stmt;
for (uint8 i = 0; i < MAX_CUF_PROFILES; ++i)
@@ -20600,7 +20600,7 @@ void Player::_SaveCUFProfiles(SQLTransaction& trans)
}
}
-void Player::_SaveMail(SQLTransaction& trans)
+void Player::_SaveMail(CharacterDatabaseTransaction& trans)
{
if (!m_mailsLoaded)
return;
@@ -20673,7 +20673,7 @@ void Player::_SaveMail(SQLTransaction& trans)
m_mailsUpdated = false;
}
-void Player::_SaveQuestStatus(SQLTransaction& trans)
+void Player::_SaveQuestStatus(CharacterDatabaseTransaction& trans)
{
bool isTransaction = bool(trans);
if (!isTransaction)
@@ -20756,7 +20756,7 @@ void Player::_SaveQuestStatus(SQLTransaction& trans)
CharacterDatabase.CommitTransaction(trans);
}
-void Player::_SaveDailyQuestStatus(SQLTransaction& trans)
+void Player::_SaveDailyQuestStatus(CharacterDatabaseTransaction& trans)
{
if (!m_DailyQuestChanged)
return;
@@ -20792,7 +20792,7 @@ void Player::_SaveDailyQuestStatus(SQLTransaction& trans)
}
}
-void Player::_SaveWeeklyQuestStatus(SQLTransaction& trans)
+void Player::_SaveWeeklyQuestStatus(CharacterDatabaseTransaction& trans)
{
if (!m_WeeklyQuestChanged || m_weeklyquests.empty())
return;
@@ -20815,7 +20815,7 @@ void Player::_SaveWeeklyQuestStatus(SQLTransaction& trans)
m_WeeklyQuestChanged = false;
}
-void Player::_SaveSeasonalQuestStatus(SQLTransaction& trans)
+void Player::_SaveSeasonalQuestStatus(CharacterDatabaseTransaction& trans)
{
if (!m_SeasonalQuestChanged || m_seasonalquests.empty())
return;
@@ -20844,7 +20844,7 @@ void Player::_SaveSeasonalQuestStatus(SQLTransaction& trans)
m_SeasonalQuestChanged = false;
}
-void Player::_SaveMonthlyQuestStatus(SQLTransaction& trans)
+void Player::_SaveMonthlyQuestStatus(CharacterDatabaseTransaction& trans)
{
if (!m_MonthlyQuestChanged || m_monthlyquests.empty())
return;
@@ -20867,7 +20867,7 @@ void Player::_SaveMonthlyQuestStatus(SQLTransaction& trans)
m_MonthlyQuestChanged = false;
}
-void Player::_SaveSkills(SQLTransaction& trans)
+void Player::_SaveSkills(CharacterDatabaseTransaction& trans)
{
CharacterDatabasePreparedStatement* stmt;
// we don't need transactions here.
@@ -20915,7 +20915,7 @@ void Player::_SaveSkills(SQLTransaction& trans)
}
}
-void Player::_SaveSpells(SQLTransaction& trans)
+void Player::_SaveSpells(CharacterDatabaseTransaction& trans)
{
CharacterDatabasePreparedStatement* stmt;
@@ -20955,7 +20955,7 @@ void Player::_SaveSpells(SQLTransaction& trans)
// save player stats -- only for external usage
// real stats will be recalculated on player login
-void Player::_SaveStats(SQLTransaction& trans) const
+void Player::_SaveStats(CharacterDatabaseTransaction& trans) const
{
// check if stat saving is enabled and if char level is high enough
if (!sWorld->getIntConfig(CONFIG_MIN_LEVEL_STAT_SAVE) || getLevel() < sWorld->getIntConfig(CONFIG_MIN_LEVEL_STAT_SAVE))
@@ -21058,7 +21058,7 @@ bool Player::CanSpeak() const
/*** LOW LEVEL FUNCTIONS:Notifiers ***/
/*********************************************************/
-void Player::SavePositionInDB(WorldLocation const& loc, uint16 zoneId, ObjectGuid guid, SQLTransaction& trans)
+void Player::SavePositionInDB(WorldLocation const& loc, uint16 zoneId, ObjectGuid guid, CharacterDatabaseTransaction& trans)
{
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_CHARACTER_POSITION);
@@ -21991,7 +21991,7 @@ void Player::RemovePetitionsAndSigns(ObjectGuid guid)
CharacterDatabase.Execute(stmt);
}
- SQLTransaction trans = CharacterDatabase.BeginTransaction();
+ CharacterDatabaseTransaction trans = CharacterDatabase.BeginTransaction();
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_PETITION_BY_OWNER);
stmt->setUInt64(0, guid.GetCounter());
@@ -24656,7 +24656,7 @@ void Player::AutoUnequipOffhandIfNeed(bool force /*= false*/)
else
{
MoveItemFromInventory(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_OFFHAND, true);
- SQLTransaction trans = CharacterDatabase.BeginTransaction();
+ CharacterDatabaseTransaction trans = CharacterDatabase.BeginTransaction();
offItem->DeleteFromInventoryDB(trans); // deletes item from character's inventory
offItem->SaveToDB(trans); // recursive and not have transaction guard into self, item not in inventory and can be save standalone
@@ -26550,7 +26550,7 @@ void Player::SetEquipmentSet(EquipmentSetInfo::EquipmentSetData const& newEqSet)
eqSlot.State = eqSlot.State == EQUIPMENT_SET_NEW ? EQUIPMENT_SET_NEW : EQUIPMENT_SET_CHANGED;
}
-void Player::_SaveEquipmentSets(SQLTransaction& trans)
+void Player::_SaveEquipmentSets(CharacterDatabaseTransaction& trans)
{
for (EquipmentSetContainer::iterator itr = _equipmentSets.begin(); itr != _equipmentSets.end();)
{
@@ -26643,7 +26643,7 @@ void Player::_SaveEquipmentSets(SQLTransaction& trans)
}
}
-void Player::_SaveBGData(SQLTransaction& trans)
+void Player::_SaveBGData(CharacterDatabaseTransaction& trans)
{
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_PLAYER_BGDATA);
stmt->setUInt64(0, GetGUID().GetCounter());
@@ -26736,7 +26736,7 @@ void Player::_LoadGlyphs(PreparedQueryResult result)
} while (result->NextRow());
}
-void Player::_SaveGlyphs(SQLTransaction& trans) const
+void Player::_SaveGlyphs(CharacterDatabaseTransaction& trans) const
{
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_CHAR_GLYPHS);
stmt->setUInt64(0, GetGUID().GetCounter());
@@ -26783,7 +26783,7 @@ void Player::_LoadPvpTalents(PreparedQueryResult result)
}
}
-void Player::_SaveTalents(SQLTransaction& trans)
+void Player::_SaveTalents(CharacterDatabaseTransaction& trans)
{
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_CHAR_TALENT);
stmt->setUInt64(0, GetGUID().GetCounter());
@@ -26835,7 +26835,7 @@ void Player::ActivateTalentGroup(ChrSpecializationEntry const* spec)
if (IsNonMeleeSpellCast(false))
InterruptNonMeleeSpells(false);
- SQLTransaction trans = CharacterDatabase.BeginTransaction();
+ CharacterDatabaseTransaction trans = CharacterDatabase.BeginTransaction();
_SaveActions(trans);
CharacterDatabase.CommitTransaction(trans);
@@ -27240,7 +27240,7 @@ void Player::RefundItem(Item* item)
uint64 moneyRefund = item->GetPaidMoney(); // item-> will be invalidated in DestroyItem
// Save all relevant data to DB to prevent desynchronisation exploits
- SQLTransaction trans = CharacterDatabase.BeginTransaction();
+ CharacterDatabaseTransaction trans = CharacterDatabase.BeginTransaction();
// Delete any references to the refund data
item->SetNotRefundable(this, true, &trans, false);
@@ -27289,7 +27289,7 @@ void Player::SendItemRetrievalMail(uint32 itemEntry, uint32 count)
{
MailSender sender(MAIL_CREATURE, UI64LIT(34337) /* The Postmaster */);
MailDraft draft("Recovered Item", "We recovered a lost item in the twisting nether and noted that it was yours.$B$BPlease find said object enclosed."); // This is the text used in Cataclysm, it probably wasn't changed.
- SQLTransaction trans = CharacterDatabase.BeginTransaction();
+ CharacterDatabaseTransaction trans = CharacterDatabase.BeginTransaction();
if (Item* item = Item::CreateItem(itemEntry, count, nullptr))
{
@@ -27354,7 +27354,7 @@ void Player::_LoadInstanceTimeRestrictions(PreparedQueryResult result)
} while (result->NextRow());
}
-void Player::_SaveInstanceTimeRestrictions(SQLTransaction& trans)
+void Player::_SaveInstanceTimeRestrictions(CharacterDatabaseTransaction& trans)
{
if (_instanceResetTimes.empty())
return;
diff --git a/src/server/game/Entities/Player/Player.h b/src/server/game/Entities/Player/Player.h
index 73f37ecd97f..93e33a350d6 100644
--- a/src/server/game/Entities/Player/Player.h
+++ b/src/server/game/Entities/Player/Player.h
@@ -1450,11 +1450,11 @@ class TC_GAME_API Player : public Unit, public GridObject<Player>
/*********************************************************/
void SaveToDB(bool create = false);
- void SaveInventoryAndGoldToDB(SQLTransaction& trans); // fast save function for item/money cheating preventing
- void SaveGoldToDB(SQLTransaction& trans) const;
+ void SaveInventoryAndGoldToDB(CharacterDatabaseTransaction& trans); // fast save function for item/money cheating preventing
+ void SaveGoldToDB(CharacterDatabaseTransaction& trans) const;
static void SetUInt32ValueInArray(Tokenizer& data, uint16 index, uint32 value);
- static void SavePositionInDB(WorldLocation const& loc, uint16 zoneId, ObjectGuid guid, SQLTransaction& trans);
+ static void SavePositionInDB(WorldLocation const& loc, uint16 zoneId, ObjectGuid guid, CharacterDatabaseTransaction& trans);
static void DeleteFromDB(ObjectGuid playerguid, uint32 accountId, bool updateRealmChars = true, bool deleteFinally = false);
static void DeleteOldCharacters();
@@ -1839,7 +1839,7 @@ class TC_GAME_API Player : public Unit, public GridObject<Player>
void SpawnCorpseBones(bool triggerSave = true);
Corpse* CreateCorpse();
void KillPlayer();
- static void OfflineResurrect(ObjectGuid const& guid, SQLTransaction& trans);
+ static void OfflineResurrect(ObjectGuid const& guid, CharacterDatabaseTransaction& trans);
bool HasCorpse() const { return _corpseLocation.GetMapId() != MAPID_INVALID; }
WorldLocation GetCorpseLocation() const { return _corpseLocation; }
void InitializeSelfResurrectionSpells();
@@ -2521,26 +2521,26 @@ class TC_GAME_API Player : public Unit, public GridObject<Player>
/*** SAVE SYSTEM ***/
/*********************************************************/
- void _SaveActions(SQLTransaction& trans);
- void _SaveAuras(SQLTransaction& trans);
- void _SaveInventory(SQLTransaction& trans);
- void _SaveVoidStorage(SQLTransaction& trans);
- void _SaveMail(SQLTransaction& trans);
- void _SaveQuestStatus(SQLTransaction& trans);
- void _SaveDailyQuestStatus(SQLTransaction& trans);
- void _SaveWeeklyQuestStatus(SQLTransaction& trans);
- void _SaveMonthlyQuestStatus(SQLTransaction& trans);
- void _SaveSeasonalQuestStatus(SQLTransaction& trans);
- void _SaveSkills(SQLTransaction& trans);
- void _SaveSpells(SQLTransaction& trans);
- void _SaveEquipmentSets(SQLTransaction& trans);
- void _SaveBGData(SQLTransaction& trans);
- void _SaveGlyphs(SQLTransaction& trans) const;
- void _SaveTalents(SQLTransaction& trans);
- void _SaveStats(SQLTransaction& trans) const;
- void _SaveInstanceTimeRestrictions(SQLTransaction& trans);
- void _SaveCurrency(SQLTransaction& trans);
- void _SaveCUFProfiles(SQLTransaction& trans);
+ void _SaveActions(CharacterDatabaseTransaction& trans);
+ void _SaveAuras(CharacterDatabaseTransaction& trans);
+ void _SaveInventory(CharacterDatabaseTransaction& trans);
+ void _SaveVoidStorage(CharacterDatabaseTransaction& trans);
+ void _SaveMail(CharacterDatabaseTransaction& trans);
+ void _SaveQuestStatus(CharacterDatabaseTransaction& trans);
+ void _SaveDailyQuestStatus(CharacterDatabaseTransaction& trans);
+ void _SaveWeeklyQuestStatus(CharacterDatabaseTransaction& trans);
+ void _SaveMonthlyQuestStatus(CharacterDatabaseTransaction& trans);
+ void _SaveSeasonalQuestStatus(CharacterDatabaseTransaction& trans);
+ void _SaveSkills(CharacterDatabaseTransaction& trans);
+ void _SaveSpells(CharacterDatabaseTransaction& trans);
+ void _SaveEquipmentSets(CharacterDatabaseTransaction& trans);
+ void _SaveBGData(CharacterDatabaseTransaction& trans);
+ void _SaveGlyphs(CharacterDatabaseTransaction& trans) const;
+ void _SaveTalents(CharacterDatabaseTransaction& trans);
+ void _SaveStats(CharacterDatabaseTransaction& trans) const;
+ void _SaveInstanceTimeRestrictions(CharacterDatabaseTransaction& trans);
+ void _SaveCurrency(CharacterDatabaseTransaction& trans);
+ void _SaveCUFProfiles(CharacterDatabaseTransaction& trans);
/*********************************************************/
/*** ENVIRONMENTAL SYSTEM ***/
@@ -2711,7 +2711,7 @@ class TC_GAME_API Player : public Unit, public GridObject<Player>
InventoryResult CanStoreItem_InBag(uint8 bag, ItemPosCountVec& dest, ItemTemplate const* pProto, uint32& count, bool merge, bool non_specialized, Item* pSrcItem, uint8 skip_bag, uint8 skip_slot) const;
InventoryResult CanStoreItem_InInventorySlots(uint8 slot_begin, uint8 slot_end, ItemPosCountVec& dest, ItemTemplate const* pProto, uint32& count, bool merge, Item* pSrcItem, uint8 skip_bag, uint8 skip_slot) const;
Item* _StoreItem(uint16 pos, Item* pItem, uint32 count, bool clone, bool update);
- Item* _LoadItem(SQLTransaction& trans, uint32 zoneId, uint32 timeDiff, Field* fields);
+ Item* _LoadItem(CharacterDatabaseTransaction& trans, uint32 zoneId, uint32 timeDiff, Field* fields);
CinematicMgr* _cinematicMgr;