XenonRecomp/XenonUtils/xdbf_wrapper.h

47 lines
972 B
C
Raw Normal View History

2024-11-25 11:12:38 +00:00
#pragma once
#include <vector>
2024-11-25 11:12:38 +00:00
#include "xdbf.h"
struct Achievement
{
uint16_t ID;
std::string Name;
std::string UnlockedDesc;
std::string LockedDesc;
const uint8_t* pImageBuffer;
size_t ImageBufferSize;
uint16_t Score;
};
struct XDBFBlock
{
const uint8_t* pBuffer;
size_t BufferSize;
operator bool() const
{
return pBuffer;
}
};
class XDBFWrapper
{
public:
const uint8_t* pBuffer;
size_t BufferSize;
const uint8_t* pContent;
const XDBFHeader* pHeader;
const XDBFEntry* pEntries;
const XDBFFreeSpaceEntry* pFiles;
XDBFWrapper() {}
XDBFWrapper(const uint8_t* pBuffer, size_t bufferSize);
XDBFBlock GetResource(EXDBFNamespace ns, uint64_t id) const;
std::string GetString(EXDBFLanguage language, uint16_t id) const;
std::vector<Achievement> GetAchievements(EXDBFLanguage language) const;
Achievement GetAchievement(EXDBFLanguage language, uint16_t id) const;
};