2017-01-20 08:36:52 -05:00
|
|
|
#pragma once
|
|
|
|
|
2017-01-19 16:23:59 -05:00
|
|
|
namespace Components
|
|
|
|
{
|
|
|
|
class StructuredData : public Component
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
enum PlayerDataType
|
|
|
|
{
|
|
|
|
ENUM_FEATURES,
|
|
|
|
ENUM_WEAPONS,
|
|
|
|
ENUM_ATTACHEMENTS,
|
|
|
|
ENUM_CHALLENGES,
|
|
|
|
ENUM_CAMOS,
|
|
|
|
ENUM_PERKS,
|
|
|
|
ENUM_KILLSTREAKS,
|
|
|
|
ENUM_ACCOLADES,
|
|
|
|
ENUM_CARDICONS,
|
|
|
|
ENUM_CARDTITLES,
|
|
|
|
ENUM_CARDNAMEPLATES,
|
|
|
|
ENUM_TEAMS,
|
|
|
|
ENUM_GAMETYPES,
|
|
|
|
ENUM_MAX
|
|
|
|
};
|
|
|
|
|
|
|
|
StructuredData();
|
|
|
|
~StructuredData();
|
|
|
|
|
|
|
|
#if defined(DEBUG) || defined(FORCE_UNIT_TESTS)
|
2017-01-20 08:36:52 -05:00
|
|
|
const char* getName() override { return "StructuredData"; };
|
2017-01-19 16:23:59 -05:00
|
|
|
#endif
|
|
|
|
|
|
|
|
private:
|
2017-02-22 14:17:58 -05:00
|
|
|
static bool UpdateVersionOffsets(Game::StructuredDataDefSet *set, Game::StructuredDataBuffer *buffer, Game::StructuredDataDef *oldDef);
|
|
|
|
|
2017-01-19 16:23:59 -05:00
|
|
|
static void PatchPlayerDataEnum(Game::StructuredDataDef* data, PlayerDataType type, std::vector<std::string>& entries);
|
2017-02-20 13:18:07 -05:00
|
|
|
static void PatchAdditionalData(Game::StructuredDataDef* data, std::unordered_map<std::string, std::string>& patches);
|
|
|
|
|
|
|
|
static void PatchCustomClassLimit(Game::StructuredDataDef* data, int count);
|
2017-01-19 16:23:59 -05:00
|
|
|
static Utils::Memory::Allocator MemAllocator;
|
|
|
|
|
|
|
|
static const char* EnumTranslation[ENUM_MAX];
|
|
|
|
};
|
|
|
|
}
|