Bulk load grids at repop and zone init instead of 2 costly individual selects per NPC, create repositories to decouple database logic from business logic

This commit is contained in:
Akkadius
2020-03-30 05:49:43 -05:00
parent 128cc458fd
commit 43716332aa
7 changed files with 298 additions and 40 deletions
+7
View File
@@ -24,6 +24,9 @@
#include "../common/types.h"
#include "../common/random.h"
#include "../common/string_util.h"
#include "zonedb.h"
#include "../common/repositories/grid_repository.h"
#include "../common/repositories/grid_entries_repository.h"
#include "qglobals.h"
#include "spawn2.h"
#include "spawngroup.h"
@@ -202,6 +205,9 @@ public:
std::unordered_map<int, std::unique_ptr<AA::Ability>> aa_abilities;
std::unordered_map<int, std::unique_ptr<AA::Rank>> aa_ranks;
std::vector<GridRepository::Grid> grids;
std::vector<GridEntriesRepository::GridEntry> grid_entries;
time_t weather_timer;
Timer spawn2_timer;
Timer hot_reload_timer;
@@ -239,6 +245,7 @@ public:
void LoadLDoNTrapEntries();
void LoadLDoNTraps();
void LoadLevelEXPMods();
void LoadGrids();
void LoadMercSpells();
void LoadMercTemplates();
void LoadNewMerchantData(uint32 merchantid);