mirror of
https://github.com/EQEmu/Server.git
synced 2026-05-17 07:18:37 +00:00
[Character] Convert Delete/Load/Save of Character Disciplines to Repositories (#3850)
* [Character] Convert Delete/Load/Save of Character Disciplines to Repositories - Convert `DeleteCharacterDiscipline` and `SaveCharacterDiscipline` to repositories. - `LoadCharacterDiscipline` already used repositories, cleaned up the logic. * Update effects.cpp * Update client.cpp * Update effects.cpp * Update client.cpp * Update zonedb.cpp * Update client.cpp
This commit is contained in:
+12
-12
@@ -10742,22 +10742,22 @@ void Client::SaveSpells()
|
||||
|
||||
void Client::SaveDisciplines()
|
||||
{
|
||||
std::vector<CharacterDisciplinesRepository::CharacterDisciplines> character_discs = {};
|
||||
std::vector<CharacterDisciplinesRepository::CharacterDisciplines> v;
|
||||
|
||||
for (int index = 0; index < MAX_PP_DISCIPLINES; index++) {
|
||||
if (IsValidSpell(m_pp.disciplines.values[index])) {
|
||||
auto discipline = CharacterDisciplinesRepository::NewEntity();
|
||||
discipline.id = CharacterID();
|
||||
discipline.slot_id = index;
|
||||
discipline.disc_id = m_pp.disciplines.values[index];
|
||||
character_discs.emplace_back(discipline);
|
||||
for (int slot_id = 0; slot_id < MAX_PP_DISCIPLINES; slot_id++) {
|
||||
if (IsValidSpell(m_pp.disciplines.values[slot_id])) {
|
||||
auto e = CharacterDisciplinesRepository::NewEntity();
|
||||
|
||||
e.id = CharacterID();
|
||||
e.slot_id = slot_id;
|
||||
e.disc_id = m_pp.disciplines.values[slot_id];
|
||||
|
||||
v.emplace_back(e);
|
||||
}
|
||||
}
|
||||
|
||||
CharacterDisciplinesRepository::DeleteWhere(database, fmt::format("id = {}", CharacterID()));
|
||||
|
||||
if (!character_discs.empty()) {
|
||||
CharacterDisciplinesRepository::InsertMany(database, character_discs);
|
||||
if (!v.empty()) {
|
||||
CharacterDisciplinesRepository::ReplaceMany(database, v);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user