refactor(Core/Instances): Update CHAR_DELETE_INSTANCE_SAVED_DATA (#11866)
* Update InstanceSaveMgr.cpp * Update Group.cpp * Update InstanceSaveMgr.cpp * Update InstanceSaveMgr.h * Update InstanceSaveMgr.cpp * Update InstanceSaveMgr.h * Update InstanceSaveMgr.cpp * Update InstanceSaveMgr.h * Update InstanceSaveMgr.cpp * Update Group.cpp * Update PlayerMisc.cpp * Update InstanceSaveMgr.h * Update Group.cpp * Update PlayerMisc.cpp * Update Group.cpp * Update Group.cpp * Update InstanceSaveMgr.cpp * Update InstanceSaveMgr.h * Update Group.h * Update InstanceSaveMgr.cpp * Update InstanceSaveMgr.cpp * Update InstanceSaveMgr.cpp
This commit is contained in:
@@ -181,16 +181,6 @@ void Player::SendResetFailedNotify(uint32 mapid)
|
|||||||
GetSession()->SendPacket(&data);
|
GetSession()->SendPacket(&data);
|
||||||
}
|
}
|
||||||
|
|
||||||
void DeleteInstanceSavedData(uint32 instanceId)
|
|
||||||
{
|
|
||||||
if (instanceId)
|
|
||||||
{
|
|
||||||
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DELETE_INSTANCE_SAVED_DATA);
|
|
||||||
stmt->SetData(0, instanceId);
|
|
||||||
CharacterDatabase.Execute(stmt);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Reset all solo instances and optionally send a message on success for each
|
/// Reset all solo instances and optionally send a message on success for each
|
||||||
void Player::ResetInstances(ObjectGuid guid, uint8 method, bool isRaid)
|
void Player::ResetInstances(ObjectGuid guid, uint8 method, bool isRaid)
|
||||||
{
|
{
|
||||||
@@ -223,7 +213,7 @@ void Player::ResetInstances(ObjectGuid guid, uint8 method, bool isRaid)
|
|||||||
p->SendResetInstanceFailed(0, instanceSave->GetMapId());
|
p->SendResetInstanceFailed(0, instanceSave->GetMapId());
|
||||||
}
|
}
|
||||||
|
|
||||||
DeleteInstanceSavedData(instanceSave->GetInstanceId());
|
sInstanceSaveMgr->DeleteInstanceSavedData(instanceSave->GetInstanceId());
|
||||||
}
|
}
|
||||||
for (std::vector<InstanceSave*>::const_iterator itr = toUnbind.begin(); itr != toUnbind.end(); ++itr)
|
for (std::vector<InstanceSave*>::const_iterator itr = toUnbind.begin(); itr != toUnbind.end(); ++itr)
|
||||||
{
|
{
|
||||||
@@ -258,7 +248,7 @@ void Player::ResetInstances(ObjectGuid guid, uint8 method, bool isRaid)
|
|||||||
p->SendResetInstanceFailed(0, instanceSave->GetMapId());
|
p->SendResetInstanceFailed(0, instanceSave->GetMapId());
|
||||||
}
|
}
|
||||||
|
|
||||||
DeleteInstanceSavedData(instanceSave->GetInstanceId());
|
sInstanceSaveMgr->DeleteInstanceSavedData(instanceSave->GetInstanceId());
|
||||||
}
|
}
|
||||||
for (std::vector<InstanceSave*>::const_iterator itr = toUnbind.begin(); itr != toUnbind.end(); ++itr)
|
for (std::vector<InstanceSave*>::const_iterator itr = toUnbind.begin(); itr != toUnbind.end(); ++itr)
|
||||||
sInstanceSaveMgr->UnbindAllFor(*itr);
|
sInstanceSaveMgr->UnbindAllFor(*itr);
|
||||||
@@ -287,7 +277,7 @@ void Player::ResetInstances(ObjectGuid guid, uint8 method, bool isRaid)
|
|||||||
//else
|
//else
|
||||||
// p->SendResetInstanceFailed(0, instanceSave->GetMapId());
|
// p->SendResetInstanceFailed(0, instanceSave->GetMapId());
|
||||||
|
|
||||||
DeleteInstanceSavedData(instanceSave->GetInstanceId());
|
sInstanceSaveMgr->DeleteInstanceSavedData(instanceSave->GetInstanceId());
|
||||||
}
|
}
|
||||||
for (std::vector<InstanceSave*>::const_iterator itr = toUnbind.begin(); itr != toUnbind.end(); ++itr)
|
for (std::vector<InstanceSave*>::const_iterator itr = toUnbind.begin(); itr != toUnbind.end(); ++itr)
|
||||||
sInstanceSaveMgr->PlayerUnbindInstance(p->GetGUID(), (*itr)->GetMapId(), (*itr)->GetDifficulty(), true, p);
|
sInstanceSaveMgr->PlayerUnbindInstance(p->GetGUID(), (*itr)->GetMapId(), (*itr)->GetDifficulty(), true, p);
|
||||||
|
|||||||
@@ -829,12 +829,7 @@ void Group::Disband(bool hideDestroy /* = false */)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Cleaning up instance saved data for gameobjects when a group is disbanded
|
// Cleaning up instance saved data for gameobjects when a group is disbanded
|
||||||
if (instanceId)
|
sInstanceSaveMgr->DeleteInstanceSavedData(instanceId);
|
||||||
{
|
|
||||||
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DELETE_INSTANCE_SAVED_DATA);
|
|
||||||
stmt->SetData(0, instanceId);
|
|
||||||
CharacterDatabase.Execute(stmt);
|
|
||||||
}
|
|
||||||
|
|
||||||
sGroupMgr->RemoveGroup(this);
|
sGroupMgr->RemoveGroup(this);
|
||||||
delete this;
|
delete this;
|
||||||
@@ -2037,16 +2032,6 @@ void Group::SetRaidDifficulty(Difficulty difficulty)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void Group::ResetInstanceSavedGameobjects(uint32 instanceId)
|
|
||||||
{
|
|
||||||
if (instanceId)
|
|
||||||
{
|
|
||||||
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DELETE_INSTANCE_SAVED_DATA);
|
|
||||||
stmt->SetData(0, instanceId);
|
|
||||||
CharacterDatabase.Execute(stmt);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void Group::ResetInstances(uint8 method, bool isRaid, Player* leader)
|
void Group::ResetInstances(uint8 method, bool isRaid, Player* leader)
|
||||||
{
|
{
|
||||||
if (isBGGroup() || isBFGroup() || isLFGGroup())
|
if (isBGGroup() || isBFGroup() || isLFGGroup())
|
||||||
@@ -2078,7 +2063,7 @@ void Group::ResetInstances(uint8 method, bool isRaid, Player* leader)
|
|||||||
leader->SendResetInstanceFailed(0, instanceSave->GetMapId());
|
leader->SendResetInstanceFailed(0, instanceSave->GetMapId());
|
||||||
}
|
}
|
||||||
|
|
||||||
ResetInstanceSavedGameobjects(instanceSave->GetInstanceId());
|
sInstanceSaveMgr->DeleteInstanceSavedData(instanceSave->GetInstanceId());
|
||||||
}
|
}
|
||||||
for (std::vector<InstanceSave*>::const_iterator itr = toUnbind.begin(); itr != toUnbind.end(); ++itr)
|
for (std::vector<InstanceSave*>::const_iterator itr = toUnbind.begin(); itr != toUnbind.end(); ++itr)
|
||||||
sInstanceSaveMgr->UnbindAllFor(*itr);
|
sInstanceSaveMgr->UnbindAllFor(*itr);
|
||||||
@@ -2106,7 +2091,7 @@ void Group::ResetInstances(uint8 method, bool isRaid, Player* leader)
|
|||||||
leader->SendResetInstanceFailed(0, instanceSave->GetMapId());
|
leader->SendResetInstanceFailed(0, instanceSave->GetMapId());
|
||||||
}
|
}
|
||||||
|
|
||||||
ResetInstanceSavedGameobjects(instanceSave->GetInstanceId());
|
sInstanceSaveMgr->DeleteInstanceSavedData(instanceSave->GetInstanceId());
|
||||||
}
|
}
|
||||||
for (std::vector<InstanceSave*>::const_iterator itr = toUnbind.begin(); itr != toUnbind.end(); ++itr)
|
for (std::vector<InstanceSave*>::const_iterator itr = toUnbind.begin(); itr != toUnbind.end(); ++itr)
|
||||||
sInstanceSaveMgr->UnbindAllFor(*itr);
|
sInstanceSaveMgr->UnbindAllFor(*itr);
|
||||||
|
|||||||
@@ -316,8 +316,6 @@ public:
|
|||||||
void SetDifficultyChangePrevention(DifficultyPreventionChangeType type);
|
void SetDifficultyChangePrevention(DifficultyPreventionChangeType type);
|
||||||
void DoForAllMembers(std::function<void(Player*)> const& worker);
|
void DoForAllMembers(std::function<void(Player*)> const& worker);
|
||||||
|
|
||||||
// Reset Instance Gameobjects
|
|
||||||
void ResetInstanceSavedGameobjects(uint32 instanceId);
|
|
||||||
protected:
|
protected:
|
||||||
void _homebindIfInstance(Player* player);
|
void _homebindIfInstance(Player* player);
|
||||||
void _cancelHomebindIfInstance(Player* player);
|
void _cancelHomebindIfInstance(Player* player);
|
||||||
|
|||||||
@@ -132,6 +132,7 @@ bool InstanceSaveMgr::DeleteInstanceSaveIfNeeded(InstanceSave* save, bool skipMa
|
|||||||
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_INSTANCE_BY_INSTANCE);
|
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_INSTANCE_BY_INSTANCE);
|
||||||
stmt->SetData(0, save->GetInstanceId());
|
stmt->SetData(0, save->GetInstanceId());
|
||||||
CharacterDatabase.Execute(stmt);
|
CharacterDatabase.Execute(stmt);
|
||||||
|
DeleteInstanceSavedData(save->GetInstanceId());
|
||||||
|
|
||||||
// clear respawn times (if map is loaded do it just to be sure, if already unloaded it won't do it by itself)
|
// clear respawn times (if map is loaded do it just to be sure, if already unloaded it won't do it by itself)
|
||||||
Map::DeleteRespawnTimesInDB(save->GetMapId(), save->GetInstanceId());
|
Map::DeleteRespawnTimesInDB(save->GetMapId(), save->GetInstanceId());
|
||||||
@@ -244,6 +245,16 @@ void InstanceSaveMgr::SanitizeInstanceSavedData()
|
|||||||
CharacterDatabase.Execute(stmt);
|
CharacterDatabase.Execute(stmt);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void InstanceSaveMgr::DeleteInstanceSavedData(uint32 instanceId)
|
||||||
|
{
|
||||||
|
if (instanceId)
|
||||||
|
{
|
||||||
|
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DELETE_INSTANCE_SAVED_DATA);
|
||||||
|
stmt->SetData(0, instanceId);
|
||||||
|
CharacterDatabase.Execute(stmt);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void InstanceSaveMgr::LoadInstances()
|
void InstanceSaveMgr::LoadInstances()
|
||||||
{
|
{
|
||||||
uint32 oldMSTime = getMSTime();
|
uint32 oldMSTime = getMSTime();
|
||||||
@@ -512,6 +523,7 @@ void InstanceSaveMgr::_ResetSave(InstanceSaveHashMap::iterator& itr)
|
|||||||
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_INSTANCE_BY_INSTANCE);
|
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_INSTANCE_BY_INSTANCE);
|
||||||
stmt->SetData(0, itr->second->GetInstanceId());
|
stmt->SetData(0, itr->second->GetInstanceId());
|
||||||
CharacterDatabase.Execute(stmt);
|
CharacterDatabase.Execute(stmt);
|
||||||
|
DeleteInstanceSavedData(itr->second->GetInstanceId());
|
||||||
|
|
||||||
// clear respawn times if the map is already unloaded and won't do it by itself
|
// clear respawn times if the map is already unloaded and won't do it by itself
|
||||||
if (!sMapMgr->FindMap(itr->second->GetMapId(), itr->second->GetInstanceId()))
|
if (!sMapMgr->FindMap(itr->second->GetMapId(), itr->second->GetInstanceId()))
|
||||||
|
|||||||
@@ -183,6 +183,7 @@ public:
|
|||||||
void UnbindAllFor(InstanceSave* save);
|
void UnbindAllFor(InstanceSave* save);
|
||||||
|
|
||||||
void SanitizeInstanceSavedData();
|
void SanitizeInstanceSavedData();
|
||||||
|
void DeleteInstanceSavedData(uint32 instanceId);
|
||||||
protected:
|
protected:
|
||||||
static uint16 ResetTimeDelay[];
|
static uint16 ResetTimeDelay[];
|
||||||
static PlayerBindStorage playerBindStorage;
|
static PlayerBindStorage playerBindStorage;
|
||||||
|
|||||||
Reference in New Issue
Block a user