[Traps] Convert Load of LDoN Traps/Trap Entries to Repositories (#3953)

- Convert `LoadLDoNTraps()` and `LoadLDoNTrapEntries()` to repositories.
This commit is contained in:
Alex King 2024-01-12 20:05:00 -05:00 committed by GitHub
parent 4afc1efb38
commit 1238a6ca68
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -59,6 +59,8 @@
#include "../common/repositories/object_repository.h"
#include "../common/repositories/rule_sets_repository.h"
#include "../common/repositories/level_exp_mods_repository.h"
#include "../common/repositories/ldon_trap_entries_repository.h"
#include "../common/repositories/ldon_trap_templates_repository.h"
#include "../common/serverinfo.h"
#include <time.h>
@ -2344,55 +2346,46 @@ void Zone::SetInstanceTimer(uint32 new_duration)
void Zone::LoadLDoNTraps()
{
const std::string query = "SELECT id, type, spell_id, skill, locked FROM ldon_trap_templates";
auto results = content_db.QueryDatabase(query);
if (!results.Success()) {
return;
}
const auto& l = LdonTrapTemplatesRepository::All(content_db);
for (auto row = results.begin(); row != results.end(); ++row) {
auto lt = new LDoNTrapTemplate;
lt->id = Strings::ToInt(row[0]);
lt->type = (LDoNChestTypes) Strings::ToInt(row[1]);
lt->spell_id = Strings::ToInt(row[2]);
lt->skill = Strings::ToInt(row[3]);
lt->locked = Strings::ToInt(row[4]);
ldon_trap_list[lt->id] = lt;
}
for (const auto& e : l) {
auto t = new LDoNTrapTemplate;
t->id = e.id;
t->type = static_cast<LDoNChestTypes>(e.type);
t->spell_id = static_cast<uint32>(e.spell_id);
t->skill = e.skill;
t->locked = e.locked;
ldon_trap_list[e.id] = t;
}
}
void Zone::LoadLDoNTrapEntries()
{
const std::string query = "SELECT id, trap_id FROM ldon_trap_entries";
auto results = content_db.QueryDatabase(query);
if (!results.Success()) {
return;
}
const auto& l = LdonTrapEntriesRepository::All(content_db);
for (auto row = results.begin(); row != results.end(); ++row)
{
uint32 id = Strings::ToInt(row[0]);
uint32 trap_id = Strings::ToInt(row[1]);
for (const auto& e : l) {
auto t = new LDoNTrapTemplate;
LDoNTrapTemplate *trapTemplate = nullptr;
auto it = ldon_trap_list.find(trap_id);
if(it == ldon_trap_list.end())
auto i = ldon_trap_list.find(e.trap_id);
if (i == ldon_trap_list.end()) {
continue;
trapTemplate = ldon_trap_list[trap_id];
std::list<LDoNTrapTemplate*> temp;
auto iter = ldon_trap_entry_list.find(id);
if(iter != ldon_trap_entry_list.end())
temp = ldon_trap_entry_list[id];
temp.push_back(trapTemplate);
ldon_trap_entry_list[id] = temp;
}
t = ldon_trap_list[e.trap_id];
std::list<LDoNTrapTemplate*> tl;
auto ei = ldon_trap_entry_list.find(e.id);
if (ei != ldon_trap_entry_list.end()) {
tl = ldon_trap_entry_list[e.id];
}
tl.emplace_back(t);
ldon_trap_entry_list[e.id] = tl;
}
}
void Zone::LoadVeteranRewards()