mirror of
https://github.com/mod-playerbots/azerothcore-wotlk.git
synced 2026-01-24 14:16:31 +00:00
feat(Core/DBLayer): replace char const* to std::string_view (#10211)
* feat(Core/DBLayer): replace `char const*` to `std::string_view` * CString * 1 * chore(Core/Misc): code cleanup * cl * db fix * fmt style sql * to fmt * py * del old * 1 * 2 * 3 * 1 * 1
This commit is contained in:
@@ -532,11 +532,11 @@ void AchievementMgr::DeleteFromDB(ObjectGuid::LowType lowguid)
|
||||
CharacterDatabaseTransaction trans = CharacterDatabase.BeginTransaction();
|
||||
|
||||
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_CHAR_ACHIEVEMENT);
|
||||
stmt->setUInt32(0, lowguid);
|
||||
stmt->SetData(0, lowguid);
|
||||
trans->Append(stmt);
|
||||
|
||||
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_CHAR_ACHIEVEMENT_PROGRESS);
|
||||
stmt->setUInt32(0, lowguid);
|
||||
stmt->SetData(0, lowguid);
|
||||
trans->Append(stmt);
|
||||
|
||||
CharacterDatabase.CommitTransaction(trans);
|
||||
@@ -552,14 +552,14 @@ void AchievementMgr::SaveToDB(CharacterDatabaseTransaction trans)
|
||||
continue;
|
||||
|
||||
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_CHAR_ACHIEVEMENT_BY_ACHIEVEMENT);
|
||||
stmt->setUInt16(0, iter->first);
|
||||
stmt->setUInt32(1, GetPlayer()->GetGUID().GetCounter());
|
||||
stmt->SetData(0, iter->first);
|
||||
stmt->SetData(1, GetPlayer()->GetGUID().GetCounter());
|
||||
trans->Append(stmt);
|
||||
|
||||
stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_CHAR_ACHIEVEMENT);
|
||||
stmt->setUInt32(0, GetPlayer()->GetGUID().GetCounter());
|
||||
stmt->setUInt16(1, iter->first);
|
||||
stmt->setUInt32(2, uint32(iter->second.date));
|
||||
stmt->SetData(0, GetPlayer()->GetGUID().GetCounter());
|
||||
stmt->SetData(1, iter->first);
|
||||
stmt->SetData(2, uint32(iter->second.date));
|
||||
trans->Append(stmt);
|
||||
|
||||
iter->second.changed = false;
|
||||
@@ -576,18 +576,18 @@ void AchievementMgr::SaveToDB(CharacterDatabaseTransaction trans)
|
||||
continue;
|
||||
|
||||
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_CHAR_ACHIEVEMENT_PROGRESS_BY_CRITERIA);
|
||||
stmt->setUInt32(0, GetPlayer()->GetGUID().GetCounter());
|
||||
stmt->setUInt16(1, iter->first);
|
||||
stmt->SetData(0, GetPlayer()->GetGUID().GetCounter());
|
||||
stmt->SetData(1, iter->first);
|
||||
trans->Append(stmt);
|
||||
|
||||
// pussywizard: insert only for (counter != 0) is very important! this is how criteria of completed achievements gets deleted from db (by setting counter to 0); if conflicted during merge - contact me
|
||||
if (iter->second.counter)
|
||||
{
|
||||
stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_CHAR_ACHIEVEMENT_PROGRESS);
|
||||
stmt->setUInt32(0, GetPlayer()->GetGUID().GetCounter());
|
||||
stmt->setUInt16(1, iter->first);
|
||||
stmt->setUInt32(2, iter->second.counter);
|
||||
stmt->setUInt32(3, uint32(iter->second.date));
|
||||
stmt->SetData(0, GetPlayer()->GetGUID().GetCounter());
|
||||
stmt->SetData(1, iter->first);
|
||||
stmt->SetData(2, iter->second.counter);
|
||||
stmt->SetData(3, uint32(iter->second.date));
|
||||
trans->Append(stmt);
|
||||
}
|
||||
|
||||
@@ -605,7 +605,7 @@ void AchievementMgr::LoadFromDB(PreparedQueryResult achievementResult, PreparedQ
|
||||
do
|
||||
{
|
||||
Field* fields = achievementResult->Fetch();
|
||||
uint32 achievementid = fields[0].GetUInt16();
|
||||
uint32 achievementid = fields[0].Get<uint16>();
|
||||
|
||||
// must not happen: cleanup at server startup in sAchievementMgr->LoadCompletedAchievements()
|
||||
AchievementEntry const* achievement = sAchievementStore.LookupEntry(achievementid);
|
||||
@@ -613,7 +613,7 @@ void AchievementMgr::LoadFromDB(PreparedQueryResult achievementResult, PreparedQ
|
||||
continue;
|
||||
|
||||
CompletedAchievementData& ca = m_completedAchievements[achievementid];
|
||||
ca.date = time_t(fields[1].GetUInt32());
|
||||
ca.date = time_t(fields[1].Get<uint32>());
|
||||
ca.changed = false;
|
||||
|
||||
// title achievement rewards are retroactive
|
||||
@@ -630,9 +630,9 @@ void AchievementMgr::LoadFromDB(PreparedQueryResult achievementResult, PreparedQ
|
||||
do
|
||||
{
|
||||
Field* fields = criteriaResult->Fetch();
|
||||
uint32 id = fields[0].GetUInt16();
|
||||
uint32 counter = fields[1].GetUInt32();
|
||||
time_t date = time_t(fields[2].GetUInt32());
|
||||
uint32 id = fields[0].Get<uint16>();
|
||||
uint32 counter = fields[1].Get<uint32>();
|
||||
time_t date = time_t(fields[2].Get<uint32>());
|
||||
|
||||
AchievementCriteriaEntry const* criteria = sAchievementCriteriaStore.LookupEntry(id);
|
||||
if (!criteria)
|
||||
@@ -642,7 +642,7 @@ void AchievementMgr::LoadFromDB(PreparedQueryResult achievementResult, PreparedQ
|
||||
|
||||
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_INVALID_ACHIEV_PROGRESS_CRITERIA);
|
||||
|
||||
stmt->setUInt16(0, uint16(id));
|
||||
stmt->SetData(0, uint16(id));
|
||||
|
||||
CharacterDatabase.Execute(stmt);
|
||||
|
||||
@@ -2645,7 +2645,7 @@ void AchievementGlobalMgr::LoadAchievementCriteriaData()
|
||||
do
|
||||
{
|
||||
Field* fields = result->Fetch();
|
||||
uint32 criteria_id = fields[0].GetUInt32();
|
||||
uint32 criteria_id = fields[0].Get<uint32>();
|
||||
|
||||
AchievementCriteriaEntry const* criteria = sAchievementCriteriaStore.LookupEntry(criteria_id);
|
||||
|
||||
@@ -2655,8 +2655,8 @@ void AchievementGlobalMgr::LoadAchievementCriteriaData()
|
||||
continue;
|
||||
}
|
||||
|
||||
uint32 dataType = fields[1].GetUInt8();
|
||||
std::string scriptName = fields[4].GetString();
|
||||
uint32 dataType = fields[1].Get<uint8>();
|
||||
std::string scriptName = fields[4].Get<std::string>();
|
||||
uint32 scriptId = 0;
|
||||
if (scriptName.length()) // not empty
|
||||
{
|
||||
@@ -2666,7 +2666,7 @@ void AchievementGlobalMgr::LoadAchievementCriteriaData()
|
||||
scriptId = sObjectMgr->GetScriptId(scriptName.c_str());
|
||||
}
|
||||
|
||||
AchievementCriteriaData data(dataType, fields[2].GetUInt32(), fields[3].GetUInt32(), scriptId);
|
||||
AchievementCriteriaData data(dataType, fields[2].Get<uint32>(), fields[3].Get<uint32>(), scriptId);
|
||||
|
||||
if (!data.IsValid(criteria))
|
||||
continue;
|
||||
@@ -2785,7 +2785,7 @@ void AchievementGlobalMgr::LoadCompletedAchievements()
|
||||
{
|
||||
Field* fields = result->Fetch();
|
||||
|
||||
uint16 achievementId = fields[0].GetUInt16();
|
||||
uint16 achievementId = fields[0].Get<uint16>();
|
||||
const AchievementEntry* achievement = sAchievementStore.LookupEntry(achievementId);
|
||||
if (!achievement)
|
||||
{
|
||||
@@ -2794,7 +2794,7 @@ void AchievementGlobalMgr::LoadCompletedAchievements()
|
||||
|
||||
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_INVALID_ACHIEVMENT);
|
||||
|
||||
stmt->setUInt16(0, uint16(achievementId));
|
||||
stmt->SetData(0, uint16(achievementId));
|
||||
CharacterDatabase.Execute(stmt);
|
||||
|
||||
continue;
|
||||
@@ -2828,7 +2828,7 @@ void AchievementGlobalMgr::LoadRewards()
|
||||
do
|
||||
{
|
||||
Field* fields = result->Fetch();
|
||||
uint32 entry = fields[0].GetUInt32();
|
||||
uint32 entry = fields[0].Get<uint32>();
|
||||
AchievementEntry const* achievement = sAchievementStore.LookupEntry(entry);
|
||||
if (!achievement)
|
||||
{
|
||||
@@ -2837,13 +2837,13 @@ void AchievementGlobalMgr::LoadRewards()
|
||||
}
|
||||
|
||||
AchievementReward reward;
|
||||
reward.titleId[0] = fields[1].GetUInt32(); // Alliance title
|
||||
reward.titleId[1] = fields[2].GetUInt32(); // Horde title
|
||||
reward.itemId = fields[3].GetUInt32();
|
||||
reward.sender = fields[4].GetUInt32(); // The sender of the mail (a creature from creature_template)
|
||||
reward.subject = fields[5].GetString();
|
||||
reward.text = fields[6].GetString(); // Body in DB
|
||||
reward.mailTemplate = fields[7].GetUInt32();
|
||||
reward.titleId[0] = fields[1].Get<uint32>(); // Alliance title
|
||||
reward.titleId[1] = fields[2].Get<uint32>(); // Horde title
|
||||
reward.itemId = fields[3].Get<uint32>();
|
||||
reward.sender = fields[4].Get<uint32>(); // The sender of the mail (a creature from creature_template)
|
||||
reward.subject = fields[5].Get<std::string>();
|
||||
reward.text = fields[6].Get<std::string>(); // Body in DB
|
||||
reward.mailTemplate = fields[7].Get<uint32>();
|
||||
|
||||
// Must reward a title or send a mail else, skip it.
|
||||
if (!reward.titleId[0] && !reward.titleId[1] && !reward.sender)
|
||||
@@ -2948,20 +2948,20 @@ void AchievementGlobalMgr::LoadRewardLocales()
|
||||
{
|
||||
Field* fields = result->Fetch();
|
||||
|
||||
uint32 ID = fields[0].GetUInt32();
|
||||
uint32 ID = fields[0].Get<uint32>();
|
||||
if (m_achievementRewards.find(ID) == m_achievementRewards.end())
|
||||
{
|
||||
LOG_ERROR("sql.sql", "Table `achievement_reward_locale` (Entry: {}) has locale strings for non-existing achievement reward.", ID);
|
||||
continue;
|
||||
}
|
||||
|
||||
LocaleConstant locale = GetLocaleByName(fields[1].GetString());
|
||||
LocaleConstant locale = GetLocaleByName(fields[1].Get<std::string>());
|
||||
if (locale == LOCALE_enUS)
|
||||
continue;
|
||||
|
||||
AchievementRewardLocale& data = m_achievementRewardLocales[ID];
|
||||
ObjectMgr::AddLocaleString(fields[2].GetString(), locale, data.Subject);
|
||||
ObjectMgr::AddLocaleString(fields[3].GetString(), locale, data.Text);
|
||||
ObjectMgr::AddLocaleString(fields[2].Get<std::string>(), locale, data.Subject);
|
||||
ObjectMgr::AddLocaleString(fields[3].Get<std::string>(), locale, data.Text);
|
||||
} while (result->NextRow());
|
||||
|
||||
LOG_INFO("server.loading", ">> Loaded {} Achievement Reward Locale strings in {} ms", (unsigned long)m_achievementRewardLocales.size(), GetMSTimeDiffToNow(oldMSTime));
|
||||
|
||||
Reference in New Issue
Block a user