1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
|
#ifndef GAMEBRYO_MODDATACONTENT_H
#define GAMEBRYO_MODDATACONTENT_H
#include <ifiletree.h>
#include <moddatacontent.h>
namespace MOBase
{
class IGameFeatures;
}
/**
* @brief ModDataContent for GameBryo games.
*
*/
class GamebryoModDataContent : public MOBase::ModDataContent
{
protected:
/**
* Note: These are used to index m_Enabled so should have standard
* enum values, not custom ones.
*/
enum EContent
{
CONTENT_PLUGIN,
CONTENT_OPTIONAL,
CONTENT_TEXTURE,
CONTENT_MESH,
CONTENT_BSA,
CONTENT_INTERFACE,
CONTENT_SOUND,
CONTENT_SCRIPT,
CONTENT_SKSE,
CONTENT_SKSE_FILES,
CONTENT_SKYPROC,
CONTENT_MCM,
CONTENT_INI,
CONTENT_FACEGEN,
CONTENT_MODGROUP
};
/**
* This is the first value that can be used for game-specific contents.
*/
constexpr static auto CONTENT_NEXT_VALUE = CONTENT_MODGROUP + 1;
public:
/**
*
*/
GamebryoModDataContent(const MOBase::IGameFeatures* gameFeatures);
/**
* @return the list of all possible contents for the corresponding game.
*/
virtual std::vector<Content> getAllContents() const override;
/**
* @brief Retrieve the list of contents in the given tree.
*
* @param fileTree The tree corresponding to the mod to retrieve contents for.
*
* @return the IDs of the content in the given tree.
*/
virtual std::vector<int>
getContentsFor(std::shared_ptr<const MOBase::IFileTree> fileTree) const override;
protected:
MOBase::IGameFeatures const* const m_GameFeatures;
// List of enabled contents:
std::vector<bool> m_Enabled;
};
#endif // GAMEBRYO_MODDATACONTENT_H
|