Files
ThordekkCore/src/server/game/PerkProgram/PerkProgramData.h
T
2026-03-15 19:40:29 -03:00

76 lines
1.7 KiB
C++

/*
* Copyright (C) WowCommunity Project
*
* This SourceCode is NOT free a software. Please hold everything Private
* and read our Terms
*/
#ifndef _PERK_PROGRAM_DATA_STORE_H
#define _PERK_PROGRAM_DATA_STORE_H
#include "PerksProgramPacketsCommon.h"
#include "PacketUtilities.h"
#include "DatabaseEnv.h"
#include <vector>
#include <unordered_map>
#include <ctime>
class PerkProgramManager;
namespace PerkProgramData
{
struct PerkVendorItem
{
uint32 Id;
uint32 ItemID;
uint32 MountSpellID;
uint32 PetSpellID;
uint32 TransmogSet;
uint32 ItemModifiedAppearanceID;
uint32 ToyItem;
time_t AvailableUntil;
uint32 Cost;
uint32 CategoryId;
};
struct ActivityTemplate
{
uint32 ActivityID;
uint32 CriteriaTree;
uint32 Priority;
uint32 CurrencyAmount;
};
};
class TC_GAME_API PerkProgramDataStoreMgr
{
PerkProgramDataStoreMgr();
~PerkProgramDataStoreMgr();
public:
static PerkProgramDataStoreMgr* instance();
void Initialize();
std::unordered_map<uint32, PerkProgramData::PerkVendorItem> GetVendorItems();
PerkProgramData::PerkVendorItem const* GetVendorItem(uint32 entry);
PerkProgramData::PerkVendorItem const* GetRandomVendorItem();
std::vector<PerkProgramData::ActivityTemplate> GetActivities();
uint32 GetActivityCriteriatree(uint32 activityId);
uint32 GetActivityCurrencyAmount(uint32 activityId);
private:
void LoadPerkVendorItem();
void LoadActivities();
void GenerateRandomActivities(bool clearOld);
time_t m_activityTime;
};
#define sPerkProgramDataStore PerkProgramDataStoreMgr::instance()
#endif