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:
Kargatum
2022-02-05 06:37:11 +07:00
committed by GitHub
parent d6ead1d1e0
commit de13bf426e
140 changed files with 5055 additions and 4882 deletions

View File

@@ -140,20 +140,20 @@ public:
CharacterDatabasePreparedStatement* stmt = nullptr;
stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_PET_DECLINED_NAME);
stmt->setUInt32(0, ownerGuid);
stmt->setUInt32(1, petNumber);
stmt->SetData(0, ownerGuid);
stmt->SetData(1, petNumber);
SetPreparedQuery(DECLINED_NAMES, stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_PET_AURA);
stmt->setUInt32(0, petNumber);
stmt->SetData(0, petNumber);
SetPreparedQuery(AURAS, stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_PET_SPELL);
stmt->setUInt32(0, petNumber);
stmt->SetData(0, petNumber);
SetPreparedQuery(SPELLS, stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_PET_SPELL_COOLDOWN);
stmt->setUInt32(0, petNumber);
stmt->SetData(0, petNumber);
SetPreparedQuery(COOLDOWNS, stmt);
}
};
@@ -455,7 +455,7 @@ bool Pet::LoadPetFromDB(Player* owner, uint32 petEntry, uint32 petnumber, bool c
m_declinedname = std::make_unique<DeclinedName>();
Field* fields = result->Fetch();
for (uint8 i = 0; i < MAX_DECLINED_NAME_CASES; ++i)
m_declinedname->name[i] = fields[i].GetString();
m_declinedname->name[i] = fields[i].Get<std::string>();
}
}
@@ -536,16 +536,16 @@ void Pet::SavePetToDB(PetSaveMode mode)
// remove current data
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_CHAR_PET_BY_ID);
stmt->setUInt32(0, m_charmInfo->GetPetNumber());
stmt->SetData(0, m_charmInfo->GetPetNumber());
trans->Append(stmt);
// prevent existence another hunter pet in PET_SAVE_AS_CURRENT and PET_SAVE_NOT_IN_SLOT
if (getPetType() == HUNTER_PET && (mode == PET_SAVE_AS_CURRENT || mode > PET_SAVE_LAST_STABLE_SLOT))
{
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_CHAR_PET_BY_SLOT);
stmt->setUInt32(0, ownerLowGUID);
stmt->setUInt8(1, uint8(PET_SAVE_AS_CURRENT));
stmt->setUInt8(2, uint8(PET_SAVE_LAST_STABLE_SLOT));
stmt->SetData(0, ownerLowGUID);
stmt->SetData(1, uint8(PET_SAVE_AS_CURRENT));
stmt->SetData(2, uint8(PET_SAVE_LAST_STABLE_SLOT));
trans->Append(stmt);
}
@@ -556,23 +556,23 @@ void Pet::SavePetToDB(PetSaveMode mode)
FillPetInfo(&owner->GetPetStable()->CurrentPet.value());
stmt = CharacterDatabase.GetPreparedStatement(CHAR_REP_CHAR_PET);
stmt->setUInt32(0, m_charmInfo->GetPetNumber());
stmt->setUInt32(1, GetEntry());
stmt->setUInt32(2, ownerLowGUID);
stmt->setUInt32(3, GetNativeDisplayId());
stmt->setUInt32(4, GetUInt32Value(UNIT_CREATED_BY_SPELL));
stmt->setUInt8(5, uint8(getPetType()));
stmt->setUInt8(6, getLevel());
stmt->setUInt32(7, GetUInt32Value(UNIT_FIELD_PETEXPERIENCE));
stmt->setUInt8(8, uint8(GetReactState()));
stmt->setString(9, GetName());
stmt->setUInt8(10, uint8(HasByteFlag(UNIT_FIELD_BYTES_2, 2, UNIT_CAN_BE_RENAMED) ? 0 : 1));
stmt->setUInt8(11, uint8(mode));
stmt->setUInt32(12, curhealth);
stmt->setUInt32(13, curmana);
stmt->setUInt32(14, GetPower(POWER_HAPPINESS));
stmt->setUInt32(15, GameTime::GetGameTime().count());
stmt->setString(16, actionBar);
stmt->SetData(0, m_charmInfo->GetPetNumber());
stmt->SetData(1, GetEntry());
stmt->SetData(2, ownerLowGUID);
stmt->SetData(3, GetNativeDisplayId());
stmt->SetData(4, GetUInt32Value(UNIT_CREATED_BY_SPELL));
stmt->SetData(5, uint8(getPetType()));
stmt->SetData(6, getLevel());
stmt->SetData(7, GetUInt32Value(UNIT_FIELD_PETEXPERIENCE));
stmt->SetData(8, uint8(GetReactState()));
stmt->SetData(9, GetName());
stmt->SetData(10, uint8(HasByteFlag(UNIT_FIELD_BYTES_2, 2, UNIT_CAN_BE_RENAMED) ? 0 : 1));
stmt->SetData(11, uint8(mode));
stmt->SetData(12, curhealth);
stmt->SetData(13, curmana);
stmt->SetData(14, GetPower(POWER_HAPPINESS));
stmt->SetData(15, GameTime::GetGameTime().count());
stmt->SetData(16, actionBar);
trans->Append(stmt);
CharacterDatabase.CommitTransaction(trans);
@@ -590,23 +590,23 @@ void Pet::DeleteFromDB(ObjectGuid::LowType guidlow)
CharacterDatabaseTransaction trans = CharacterDatabase.BeginTransaction();
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_CHAR_PET_BY_ID);
stmt->setUInt32(0, guidlow);
stmt->SetData(0, guidlow);
trans->Append(stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_CHAR_PET_DECLINEDNAME);
stmt->setUInt32(0, guidlow);
stmt->SetData(0, guidlow);
trans->Append(stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_PET_AURAS);
stmt->setUInt32(0, guidlow);
stmt->SetData(0, guidlow);
trans->Append(stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_PET_SPELLS);
stmt->setUInt32(0, guidlow);
stmt->SetData(0, guidlow);
trans->Append(stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_PET_SPELL_COOLDOWNS);
stmt->setUInt32(0, guidlow);
stmt->SetData(0, guidlow);
trans->Append(stmt);
CharacterDatabase.CommitTransaction(trans);
@@ -1431,9 +1431,9 @@ void Pet::_LoadSpellCooldowns(PreparedQueryResult result)
{
Field* fields = result->Fetch();
uint32 spell_id = fields[0].GetUInt32();
uint16 category = fields[1].GetUInt16();
time_t db_time = time_t(fields[2].GetUInt32());
uint32 spell_id = fields[0].Get<uint32>();
uint16 category = fields[1].Get<uint16>();
time_t db_time = time_t(fields[2].Get<uint32>());
if (!sSpellMgr->GetSpellInfo(spell_id))
{
@@ -1463,7 +1463,7 @@ void Pet::_LoadSpellCooldowns(PreparedQueryResult result)
void Pet::_SaveSpellCooldowns(CharacterDatabaseTransaction trans)
{
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_PET_SPELL_COOLDOWNS);
stmt->setUInt32(0, m_charmInfo->GetPetNumber());
stmt->SetData(0, m_charmInfo->GetPetNumber());
trans->Append(stmt);
time_t curTime = GameTime::GetGameTime().count();
@@ -1485,10 +1485,10 @@ void Pet::_SaveSpellCooldowns(CharacterDatabaseTransaction trans)
{
uint32 cooldown = ((itr2->second.end - curMSTime) / IN_MILLISECONDS) + curTime;
stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_PET_SPELL_COOLDOWN);
stmt->setUInt32(0, m_charmInfo->GetPetNumber());
stmt->setUInt32(1, itr2->first);
stmt->setUInt16(2, itr2->second.category);
stmt->setUInt32(3, cooldown);
stmt->SetData(0, m_charmInfo->GetPetNumber());
stmt->SetData(1, itr2->first);
stmt->SetData(2, itr2->second.category);
stmt->SetData(3, cooldown);
trans->Append(stmt);
}
}
@@ -1502,7 +1502,7 @@ void Pet::_LoadSpells(PreparedQueryResult result)
{
Field* fields = result->Fetch();
addSpell(fields[0].GetUInt32(), ActiveStates(fields[1].GetUInt8()), PETSPELL_UNCHANGED);
addSpell(fields[0].Get<uint32>(), ActiveStates(fields[1].Get<uint8>()), PETSPELL_UNCHANGED);
} while (result->NextRow());
}
}
@@ -1523,30 +1523,30 @@ void Pet::_SaveSpells(CharacterDatabaseTransaction trans)
{
case PETSPELL_REMOVED:
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_PET_SPELL_BY_SPELL);
stmt->setUInt32(0, m_charmInfo->GetPetNumber());
stmt->setUInt32(1, itr->first);
stmt->SetData(0, m_charmInfo->GetPetNumber());
stmt->SetData(1, itr->first);
trans->Append(stmt);
m_spells.erase(itr);
continue;
case PETSPELL_CHANGED:
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_PET_SPELL_BY_SPELL);
stmt->setUInt32(0, m_charmInfo->GetPetNumber());
stmt->setUInt32(1, itr->first);
stmt->SetData(0, m_charmInfo->GetPetNumber());
stmt->SetData(1, itr->first);
trans->Append(stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_PET_SPELL);
stmt->setUInt32(0, m_charmInfo->GetPetNumber());
stmt->setUInt32(1, itr->first);
stmt->setUInt8(2, itr->second.active);
stmt->SetData(0, m_charmInfo->GetPetNumber());
stmt->SetData(1, itr->first);
stmt->SetData(2, itr->second.active);
trans->Append(stmt);
break;
case PETSPELL_NEW:
stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_PET_SPELL);
stmt->setUInt32(0, m_charmInfo->GetPetNumber());
stmt->setUInt32(1, itr->first);
stmt->setUInt8(2, itr->second.active);
stmt->SetData(0, m_charmInfo->GetPetNumber());
stmt->SetData(1, itr->first);
stmt->SetData(2, itr->second.active);
trans->Append(stmt);
break;
case PETSPELL_UNCHANGED:
@@ -1567,23 +1567,23 @@ void Pet::_LoadAuras(PreparedQueryResult result, uint32 timediff)
int32 damage[3];
int32 baseDamage[3];
Field* fields = result->Fetch();
ObjectGuid caster_guid = ObjectGuid(fields[0].GetUInt64());
ObjectGuid caster_guid = ObjectGuid(fields[0].Get<uint64>());
// nullptr guid stored - pet is the caster of the spell - see Pet::_SaveAuras
if (!caster_guid)
caster_guid = GetGUID();
uint32 spellid = fields[1].GetUInt32();
uint8 effmask = fields[2].GetUInt8();
uint8 recalculatemask = fields[3].GetUInt8();
uint8 stackcount = fields[4].GetUInt8();
damage[0] = fields[5].GetInt32();
damage[1] = fields[6].GetInt32();
damage[2] = fields[7].GetInt32();
baseDamage[0] = fields[8].GetInt32();
baseDamage[1] = fields[9].GetInt32();
baseDamage[2] = fields[10].GetInt32();
int32 maxduration = fields[11].GetInt32();
int32 remaintime = fields[12].GetInt32();
uint8 remaincharges = fields[13].GetUInt8();
uint32 spellid = fields[1].Get<uint32>();
uint8 effmask = fields[2].Get<uint8>();
uint8 recalculatemask = fields[3].Get<uint8>();
uint8 stackcount = fields[4].Get<uint8>();
damage[0] = fields[5].Get<int32>();
damage[1] = fields[6].Get<int32>();
damage[2] = fields[7].Get<int32>();
baseDamage[0] = fields[8].Get<int32>();
baseDamage[1] = fields[9].Get<int32>();
baseDamage[2] = fields[10].Get<int32>();
int32 maxduration = fields[11].Get<int32>();
int32 remaintime = fields[12].Get<int32>();
uint8 remaincharges = fields[13].Get<uint8>();
SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(spellid);
if (!spellInfo)
@@ -1639,7 +1639,7 @@ void Pet::_LoadAuras(PreparedQueryResult result, uint32 timediff)
void Pet::_SaveAuras(CharacterDatabaseTransaction trans)
{
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_PET_AURAS);
stmt->setUInt32(0, m_charmInfo->GetPetNumber());
stmt->SetData(0, m_charmInfo->GetPetNumber());
trans->Append(stmt);
for (AuraMap::const_iterator itr = m_ownedAuras.begin(); itr != m_ownedAuras.end(); ++itr)
@@ -1699,21 +1699,21 @@ void Pet::_SaveAuras(CharacterDatabaseTransaction trans)
uint8 index = 0;
CharacterDatabasePreparedStatement* stmt2 = CharacterDatabase.GetPreparedStatement(CHAR_INS_PET_AURA);
stmt2->setUInt32(index++, m_charmInfo->GetPetNumber());
stmt2->setUInt64(index++, casterGUID.GetRawValue());
stmt2->setUInt32(index++, itr->second->GetId());
stmt2->setUInt8(index++, effMask);
stmt2->setUInt8(index++, recalculateMask);
stmt2->setUInt8(index++, itr->second->GetStackAmount());
stmt2->setInt32(index++, damage[0]);
stmt2->setInt32(index++, damage[1]);
stmt2->setInt32(index++, damage[2]);
stmt2->setInt32(index++, baseDamage[0]);
stmt2->setInt32(index++, baseDamage[1]);
stmt2->setInt32(index++, baseDamage[2]);
stmt2->setInt32(index++, itr->second->GetMaxDuration());
stmt2->setInt32(index++, itr->second->GetDuration());
stmt2->setUInt8(index++, itr->second->GetCharges());
stmt2->SetData(index++, m_charmInfo->GetPetNumber());
stmt2->SetData(index++, casterGUID.GetRawValue());
stmt2->SetData(index++, itr->second->GetId());
stmt2->SetData(index++, effMask);
stmt2->SetData(index++, recalculateMask);
stmt2->SetData(index++, itr->second->GetStackAmount());
stmt2->SetData(index++, damage[0]);
stmt2->SetData(index++, damage[1]);
stmt2->SetData(index++, damage[2]);
stmt2->SetData(index++, baseDamage[0]);
stmt2->SetData(index++, baseDamage[1]);
stmt2->SetData(index++, baseDamage[2]);
stmt2->SetData(index++, itr->second->GetMaxDuration());
stmt2->SetData(index++, itr->second->GetDuration());
stmt2->SetData(index++, itr->second->GetCharges());
trans->Append(stmt2);
}
}
@@ -1729,7 +1729,7 @@ bool Pet::addSpell(uint32 spellId, ActiveStates active /*= ACT_DECIDE*/, PetSpel
LOG_ERROR("entities.pet", "Pet::addSpell: Non-existed in SpellStore spell #{} request, deleting for all pets in `pet_spell`.", spellId);
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_INVALID_PET_SPELL);
stmt->setUInt32(0, spellId);
stmt->SetData(0, spellId);
CharacterDatabase.Execute(stmt);
}
else