76 lines
1.7 KiB
C++
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
|