ReXGlue SDK
Toggle main menu visibility
Loading...
Searching...
No Matches
xdbf.h
Go to the documentation of this file.
1
13
14
#pragma once
15
16
#include <string>
17
#include <vector>
18
19
#include <
rex/platform.h
>
20
#include <
rex/types.h
>
21
#include <
rex/memory.h
>
22
#include <
rex/filesystem/xex.h
>
23
#include <
rex/kernel/types/content.h
>
24
25
namespace
rex
{
26
namespace
filesystem {
27
28
enum class
XDBFSection
: u8 {
29
kMetadata = 0x0001,
30
kImage = 0x0002,
31
kStringTable
= 0x0003,
32
};
33
34
#pragma pack(push, 1)
35
struct
XDBFHeader
{
36
be_u32 magic;
37
be_u32 version;
38
be_u32 entry_capacity;
39
be_u32 entry_used;
40
be_u32
free_count
;
41
be_u32
free_used
;
42
};
43
REX_STATIC_ASSERT_SIZE(
XDBFHeader
, 24);
44
46
struct
XDBFEntry
{
47
be_u16 section;
48
be_u64 id;
49
be_u32
offset
;
50
be_u32 size;
51
};
52
REX_STATIC_ASSERT_SIZE(
XDBFEntry
, 18);
53
55
struct
XDBFFileLocation
{
56
be_u32 offset;
57
be_u32 size;
58
};
59
REX_STATIC_ASSERT_SIZE(
XDBFFileLocation
, 8);
60
62
struct
XDBFXSTC
{
63
be_u32 magic;
64
be_u32 version;
65
be_u32 size;
66
be_u32
default_language
;
67
};
68
REX_STATIC_ASSERT_SIZE(
XDBFXSTC
, 16);
69
71
struct
XDBFSectionHeader
{
72
be_u32 magic;
73
be_u32 version;
74
be_u32 size;
75
be_u16 count;
76
};
77
REX_STATIC_ASSERT_SIZE(
XDBFSectionHeader
, 14);
78
80
struct
XDBFStringTableEntry
{
81
be_u16 id;
82
be_u16
string_length
;
83
};
84
REX_STATIC_ASSERT_SIZE(
XDBFStringTableEntry
, 4);
85
86
struct
XDBFAchievementTableEntry
{
87
be_u16 id;
88
be_u16
label_id
;
89
be_u16
description_id
;
90
be_u16
unachieved_id
;
91
be_u32
image_id
;
92
be_u16 gamerscore;
93
be_u16 unk0e;
94
be_u32 flags;
95
be_u32 unk14;
96
be_u32 unk18;
97
be_u32 unk1c;
98
be_u32 unk20;
99
};
100
REX_STATIC_ASSERT_SIZE(
XDBFAchievementTableEntry
, 0x24);
101
#pragma pack(pop)
102
104
struct
XDBFBlock
{
105
const
u8*
buffer
;
106
size_t
size;
107
108
operator
bool()
const
{
return
buffer
!=
nullptr
; }
109
};
110
112
class
IXDBFReader
{
113
public
:
114
virtual
~IXDBFReader
() =
default
;
115
116
virtual
bool
IsValid()
const
= 0;
117
119
virtual
XDBFBlock
GetEntry
(
XDBFSection
section, u64
id
)
const
= 0;
120
124
virtual
std::string
GetStringTableEntry
(
kernel::XLanguage
language, u16 string_id)
const
= 0;
125
126
virtual
std::vector<XDBFAchievementTableEntry> GetAchievements()
const
= 0;
127
};
128
129
class
IXDBFTitleData
:
public
IXDBFReader
{
130
public
:
132
virtual
kernel::XLanguage
GetSupportedLanguage
(
kernel::XLanguage
language_to_check)
const
= 0;
133
134
virtual
XDBFBlock
GetIcon()
const
= 0;
135
136
virtual
kernel::XLanguage
GetDefaultLanguage()
const
= 0;
137
138
virtual
std::string GetTitle()
const
= 0;
139
141
virtual
std::string
GetTitle
(
kernel::XLanguage
language)
const
= 0;
142
};
143
144
}
// namespace filesystem
145
}
// namespace rex
rex::filesystem::IXDBFReader
Definition
xdbf.h:112
rex::filesystem::IXDBFReader::GetStringTableEntry
virtual std::string GetStringTableEntry(kernel::XLanguage language, u16 string_id) const =0
rex::filesystem::IXDBFReader::GetEntry
virtual XDBFBlock GetEntry(XDBFSection section, u64 id) const =0
rex::filesystem::IXDBFTitleData
Definition
xdbf.h:129
rex::filesystem::IXDBFTitleData::GetTitle
virtual std::string GetTitle(kernel::XLanguage language) const =0
rex::filesystem::IXDBFTitleData::GetSupportedLanguage
virtual kernel::XLanguage GetSupportedLanguage(kernel::XLanguage language_to_check) const =0
content.h
Content package and language IDs.
xex.h
XEX image reader and PE image parsing.
memory.h
rex::kernel::XLanguage
XLanguage
Definition
content.h:156
rex
Definition
app.h:36
platform.h
Platform flags, packing macros and export markers.
rex::filesystem::XDBFAchievementTableEntry
Definition
xdbf.h:86
rex::filesystem::XDBFAchievementTableEntry::description_id
be_u16 description_id
Definition
xdbf.h:89
rex::filesystem::XDBFAchievementTableEntry::image_id
be_u32 image_id
Definition
xdbf.h:91
rex::filesystem::XDBFAchievementTableEntry::label_id
be_u16 label_id
Definition
xdbf.h:88
rex::filesystem::XDBFAchievementTableEntry::unachieved_id
be_u16 unachieved_id
Definition
xdbf.h:90
rex::filesystem::XDBFBlock
Definition
xdbf.h:104
rex::filesystem::XDBFBlock::buffer
const u8 * buffer
Definition
xdbf.h:105
rex::filesystem::XDBFEntry
Definition
xdbf.h:46
rex::filesystem::XDBFEntry::offset
be_u32 offset
Definition
xdbf.h:49
rex::filesystem::XDBFFileLocation
Definition
xdbf.h:55
rex::filesystem::XDBFHeader
Definition
xdbf.h:35
rex::filesystem::XDBFHeader::free_count
be_u32 free_count
Definition
xdbf.h:40
rex::filesystem::XDBFHeader::free_used
be_u32 free_used
Definition
xdbf.h:41
rex::filesystem::XDBFSectionHeader
Definition
xdbf.h:71
rex::filesystem::XDBFStringTableEntry
Definition
xdbf.h:80
rex::filesystem::XDBFStringTableEntry::string_length
be_u16 string_length
Definition
xdbf.h:82
rex::filesystem::XDBFXSTC
Definition
xdbf.h:62
rex::filesystem::XDBFXSTC::default_language
be_u32 default_language
Definition
xdbf.h:66
types.h
Integer types, byte order wrappers and size literals.
rex::filesystem::XDBFSection
XDBFSection
Definition
xdbf.h:28
rex::filesystem::XDBFSection::kStringTable
@ kStringTable
Definition
xdbf.h:31
rex
filesystem
xdbf.h
Generated by
1.18.0