mirror of
https://github.com/DarkflameUniverse/DarkflameServer
synced 2024-08-30 18:43:58 +00:00
c6087ce77a
* Move away from constructor queries Fix up other large tables to have proper backup lookups Revert "idk im just dumb ig" This reverts commit 5d5be5df53b8959b42b291613d7db749a65a3585. idk im just dumb ig * Fix slow components registry lookup * add define for cdclient cache all * Huge loot namespace rework - Remove all excess memory usage - do not cache components registry - cache loot matrices on startup of the destroyable component - convert loot singleton class to a namespace - rework loot cdclient tables to operate closer to how someone would actually use them (basically doing the previous LootGenerator::LootGenerator caching but in those tables) - Memory usage reduced by 10%+ across the board * cache rebuild matrix * Database: move reading to own function Also change name of cache to PascalCase * Database: Move common function rading
91 lines
4.1 KiB
C++
91 lines
4.1 KiB
C++
#include "CDClientManager.h"
|
|
#include "CDActivityRewardsTable.h"
|
|
#include "CDAnimationsTable.h"
|
|
#include "CDBehaviorParameterTable.h"
|
|
#include "CDBehaviorTemplateTable.h"
|
|
#include "CDComponentsRegistryTable.h"
|
|
#include "CDCurrencyTableTable.h"
|
|
#include "CDDestructibleComponentTable.h"
|
|
#include "CDEmoteTable.h"
|
|
#include "CDInventoryComponentTable.h"
|
|
#include "CDItemComponentTable.h"
|
|
#include "CDItemSetsTable.h"
|
|
#include "CDItemSetSkillsTable.h"
|
|
#include "CDLevelProgressionLookupTable.h"
|
|
#include "CDLootMatrixTable.h"
|
|
#include "CDLootTableTable.h"
|
|
#include "CDMissionNPCComponentTable.h"
|
|
#include "CDMissionTasksTable.h"
|
|
#include "CDMissionsTable.h"
|
|
#include "CDObjectSkillsTable.h"
|
|
#include "CDObjectsTable.h"
|
|
#include "CDPhysicsComponentTable.h"
|
|
#include "CDRebuildComponentTable.h"
|
|
#include "CDScriptComponentTable.h"
|
|
#include "CDSkillBehaviorTable.h"
|
|
#include "CDZoneTableTable.h"
|
|
#include "CDVendorComponentTable.h"
|
|
#include "CDActivitiesTable.h"
|
|
#include "CDPackageComponentTable.h"
|
|
#include "CDProximityMonitorComponentTable.h"
|
|
#include "CDMovementAIComponentTable.h"
|
|
#include "CDBrickIDTableTable.h"
|
|
#include "CDRarityTableTable.h"
|
|
#include "CDMissionEmailTable.h"
|
|
#include "CDRewardsTable.h"
|
|
#include "CDPropertyEntranceComponentTable.h"
|
|
#include "CDPropertyTemplateTable.h"
|
|
#include "CDFeatureGatingTable.h"
|
|
#include "CDRailActivatorComponent.h"
|
|
|
|
// Uncomment this to cache the full cdclient database into memory. This will make the server load faster, but will use more memory.
|
|
// A vanilla CDClient takes about 46MB of memory + the regular world data.
|
|
// #define CDCLIENT_CACHE_ALL
|
|
|
|
#ifdef CDCLIENT_CACHE_ALL
|
|
#define CDCLIENT_DONT_CACHE_TABLE(x) x
|
|
#else
|
|
#define CDCLIENT_DONT_CACHE_TABLE(x)
|
|
#endif
|
|
|
|
CDClientManager::CDClientManager() {
|
|
CDActivityRewardsTable::Instance().LoadValuesFromDatabase();
|
|
CDActivitiesTable::Instance().LoadValuesFromDatabase();
|
|
CDCLIENT_DONT_CACHE_TABLE(CDAnimationsTable::Instance().LoadValuesFromDatabase());
|
|
CDBehaviorParameterTable::Instance().LoadValuesFromDatabase();
|
|
CDBehaviorTemplateTable::Instance().LoadValuesFromDatabase();
|
|
CDBrickIDTableTable::Instance().LoadValuesFromDatabase();
|
|
CDCLIENT_DONT_CACHE_TABLE(CDComponentsRegistryTable::Instance().LoadValuesFromDatabase());
|
|
CDCurrencyTableTable::Instance().LoadValuesFromDatabase();
|
|
CDDestructibleComponentTable::Instance().LoadValuesFromDatabase();
|
|
CDEmoteTableTable::Instance().LoadValuesFromDatabase();
|
|
CDFeatureGatingTable::Instance().LoadValuesFromDatabase();
|
|
CDInventoryComponentTable::Instance().LoadValuesFromDatabase();
|
|
CDCLIENT_DONT_CACHE_TABLE(CDItemComponentTable::Instance().LoadValuesFromDatabase());
|
|
CDItemSetSkillsTable::Instance().LoadValuesFromDatabase();
|
|
CDItemSetsTable::Instance().LoadValuesFromDatabase();
|
|
CDLevelProgressionLookupTable::Instance().LoadValuesFromDatabase();
|
|
CDCLIENT_DONT_CACHE_TABLE(CDLootMatrixTable::Instance().LoadValuesFromDatabase());
|
|
CDCLIENT_DONT_CACHE_TABLE(CDLootTableTable::Instance().LoadValuesFromDatabase());
|
|
CDMissionEmailTable::Instance().LoadValuesFromDatabase();
|
|
CDMissionNPCComponentTable::Instance().LoadValuesFromDatabase();
|
|
CDMissionTasksTable::Instance().LoadValuesFromDatabase();
|
|
CDMissionsTable::Instance().LoadValuesFromDatabase();
|
|
CDMovementAIComponentTable::Instance().LoadValuesFromDatabase();
|
|
CDObjectSkillsTable::Instance().LoadValuesFromDatabase();
|
|
CDCLIENT_DONT_CACHE_TABLE(CDObjectsTable::Instance().LoadValuesFromDatabase());
|
|
CDPhysicsComponentTable::Instance().LoadValuesFromDatabase();
|
|
CDPackageComponentTable::Instance().LoadValuesFromDatabase();
|
|
CDProximityMonitorComponentTable::Instance().LoadValuesFromDatabase();
|
|
CDPropertyEntranceComponentTable::Instance().LoadValuesFromDatabase();
|
|
CDPropertyTemplateTable::Instance().LoadValuesFromDatabase();
|
|
CDRailActivatorComponentTable::Instance().LoadValuesFromDatabase();
|
|
CDRarityTableTable::Instance().LoadValuesFromDatabase();
|
|
CDRebuildComponentTable::Instance().LoadValuesFromDatabase();
|
|
CDRewardsTable::Instance().LoadValuesFromDatabase();
|
|
CDScriptComponentTable::Instance().LoadValuesFromDatabase();
|
|
CDSkillBehaviorTable::Instance().LoadValuesFromDatabase();
|
|
CDVendorComponentTable::Instance().LoadValuesFromDatabase();
|
|
CDZoneTableTable::Instance().LoadValuesFromDatabase();
|
|
}
|