Ark Server API (ASA) - Wiki
Loading...
Searching...
No Matches
ConfigHierarchy.h
Go to the documentation of this file.
1
// Copyright Epic Games, Inc. All Rights Reserved.
2
3
#
pragma
once
4
5
#
include
"Misc/ConfigTypes.h"
6
7
// See FConfigContext.cpp for the types here
8
9
static
FConfigLayer
GConfigLayers
[] =
10
{
11
/**************************************************
12
**** CRITICAL NOTES
13
**** If you change this array, you need to also change EnumerateConfigFileLocations() in ConfigHierarchy.cs!!!
14
**** And maybe UObject::GetDefaultConfigFilename(), UObject::GetGlobalUserConfigFilename()
15
**************************************************/
16
17
// Engine/Base.ini
18
{
TEXT
(
"AbsoluteBase"
),
TEXT
(
"{ENGINE}/Config/Base.ini"
),
EConfigLayerFlags
::
NoExpand
},
19
20
// Engine/Base*.ini
21
{
TEXT
(
"Base"
),
TEXT
(
"{ENGINE}/Config/Base{TYPE}.ini"
) },
22
// Engine/Platform/BasePlatform*.ini
23
{
TEXT
(
"BasePlatform"
),
TEXT
(
"{ENGINE}/Config/{PLATFORM}/Base{PLATFORM}{TYPE}.ini"
) },
24
// Project/Default*.ini
25
{
TEXT
(
"ProjectDefault"
),
TEXT
(
"{PROJECT}/Config/Default{TYPE}.ini"
),
EConfigLayerFlags
::
AllowCommandLineOverride
},
26
// Project/Generated*.ini Reserved for files generated by build process and should never be checked in
27
{
TEXT
(
"ProjectGenerated"
),
TEXT
(
"{PROJECT}/Config/Generated{TYPE}.ini"
) },
28
// Project/Custom/CustomConfig/Default*.ini only if CustomConfig is defined
29
{
TEXT
(
"CustomConfig"
),
TEXT
(
"{PROJECT}/Config/Custom/{CUSTOMCONFIG}/Default{TYPE}.ini"
),
EConfigLayerFlags
::
RequiresCustomConfig
},
30
// Engine/Platform/Platform*.ini
31
{
TEXT
(
"EnginePlatform"
),
TEXT
(
"{ENGINE}/Config/{PLATFORM}/{PLATFORM}{TYPE}.ini"
) },
32
// Project/Platform/Platform*.ini
33
{
TEXT
(
"ProjectPlatform"
),
TEXT
(
"{PROJECT}/Config/{PLATFORM}/{PLATFORM}{TYPE}.ini"
) },
34
// Project/Platform/GeneratedPlatform*.ini Reserved for files generated by build process and should never be checked in
35
{
TEXT
(
"ProjectPlatformGenerated"
),
TEXT
(
"{PROJECT}/Config/{PLATFORM}/Generated{PLATFORM}{TYPE}.ini"
) },
36
// Project/Platform/Custom/CustomConfig/Platform*.ini only if CustomConfig is defined
37
{
TEXT
(
"CustomConfigPlatform"
),
TEXT
(
"{PROJECT}/Config/{PLATFORM}/Custom/{CUSTOMCONFIG}/{PLATFORM}{TYPE}.ini"
),
EConfigLayerFlags
::
RequiresCustomConfig
},
38
// UserSettings/.../User*.ini
39
{
TEXT
(
"UserSettingsDir"
),
TEXT
(
"{USERSETTINGS}Unreal Engine/Engine/Config/User{TYPE}.ini"
),
EConfigLayerFlags
::
NoExpand
},
40
// UserDir/.../User*.ini
41
{
TEXT
(
"UserDir"
),
TEXT
(
"{USER}Unreal Engine/Engine/Config/User{TYPE}.ini"
),
EConfigLayerFlags
::
NoExpand
},
42
// Project/User*.ini
43
{
TEXT
(
"GameDirUser"
),
TEXT
(
"{PROJECT}/Config/User{TYPE}.ini"
),
EConfigLayerFlags
::
NoExpand
},
44
};
45
46
47
/// <summary>
48
/// Plugins don't need to look at the same number of insane layers. Here PROJECT is the Plugin dir
49
/// </summary>
50
static
FConfigLayer
GPluginLayers
[] =
51
{
52
// Engine/Base.ini
53
{
TEXT
(
"AbsoluteBase"
),
TEXT
(
"{ENGINE}/Config/Base.ini"
),
EConfigLayerFlags
::
NoExpand
},
54
55
// Plugin/Base*.ini
56
{
TEXT
(
"PluginBase"
),
TEXT
(
"{PLUGIN}/Config/Base{TYPE}.ini"
) },
57
// Plugin/Default*.ini (we use Base and Default as we can have both depending on Engine or Project plugin, but going forward we should stick with Default)
58
{
TEXT
(
"PluginDefault"
),
TEXT
(
"{PLUGIN}/Config/Default{TYPE}.ini"
) },
59
// Plugin/Platform/Platform*.ini
60
{
TEXT
(
"PluginPlatform"
),
TEXT
(
"{PLUGIN}/Config/{PLATFORM}/{PLATFORM}{TYPE}.ini"
) },
61
// Project/Default.ini
62
{
TEXT
(
"ProjectDefault"
),
TEXT
(
"{PROJECT}/Config/Default{TYPE}.ini"
) },
63
// Project/Platform/.ini
64
{
TEXT
(
"ProjectDefault"
),
TEXT
(
"{PROJECT}/Config/{PLATFORM}/{PLATFORM}{TYPE}.ini"
) },
65
};
66
67
68
69
/**************************************************
70
**** CRITICAL NOTES
71
**** If you change these arrays, you need to also change EnumerateConfigFileLocations() in ConfigHierarchy.cs!!!
72
**************************************************/
73
static
FConfigLayerExpansion
GConfigExpansions
[] =
74
{
75
// No replacements
76
{
nullptr
,
nullptr
,
nullptr
,
nullptr
,
EConfigExpansionFlags
::
All
},
77
78
// Restricted Locations
79
{
80
TEXT
(
"{ENGINE}/"
),
TEXT
(
"{ENGINE}/Restricted/NotForLicensees/"
),
81
TEXT
(
"{PROJECT}/Config/"
),
TEXT
(
"{RESTRICTEDPROJECT_NFL}/Config/"
),
82
EConfigExpansionFlags
::
ForUncooked
|
EConfigExpansionFlags
::
ForCooked
83
},
84
{
85
TEXT
(
"{ENGINE}/"
),
TEXT
(
"{ENGINE}/Restricted/NoRedist/"
),
86
TEXT
(
"{PROJECT}/Config/"
),
TEXT
(
"{RESTRICTEDPROJECT_NR}/Config/"
),
87
EConfigExpansionFlags
::
ForUncooked
88
},
89
90
// Platform Extensions
91
{
92
TEXT
(
"{ENGINE}/Config/{PLATFORM}/"
),
TEXT
(
"{EXTENGINE}/Config/"
),
93
TEXT
(
"{PROJECT}/Config/{PLATFORM}/"
),
TEXT
(
"{EXTPROJECT}/Config/"
),
94
EConfigExpansionFlags
::
ForUncooked
|
EConfigExpansionFlags
::
ForCooked
|
EConfigExpansionFlags
::
ForPlugin
95
},
96
97
// Platform Extensions in Restricted Locations
98
//
99
// Regarding the commented EConfigExpansionFlags::ForPlugin expansions: in the interest of keeping plugin ini scanning fast,
100
// we disable these expansions for plugins because they are not used by Epic, and are unlikely to be used by licensees. If
101
// we can make scanning fast (caching what directories exist, etc), then we could turn this back on to be future-proof.
102
{
103
TEXT
(
"{ENGINE}/Config/{PLATFORM}/"
),
TEXT
(
"{ENGINE}/Restricted/NotForLicensees/Platforms/{PLATFORM}/Config/"
),
104
TEXT
(
"{PROJECT}/Config/{PLATFORM}/"
),
TEXT
(
"{RESTRICTEDPROJECT_NFL}/Platforms/{PLATFORM}/Config/"
),
105
EConfigExpansionFlags
::
ForUncooked
|
EConfigExpansionFlags
::
ForCooked
// | EConfigExpansionFlags::ForPlugin
106
},
107
{
108
TEXT
(
"{ENGINE}/Config/{PLATFORM}/"
),
TEXT
(
"{ENGINE}/Restricted/NoRedist/Platforms/{PLATFORM}/Config/"
),
109
TEXT
(
"{PROJECT}/Config/{PLATFORM}/"
),
TEXT
(
"{RESTRICTEDPROJECT_NR}/Platforms/{PLATFORM}/Config/"
),
110
EConfigExpansionFlags
::
ForUncooked
// | EConfigExpansionFlags::ForPlugin
111
},
112
};
GPluginLayers
static FConfigLayer GPluginLayers[]
Plugins don't need to look at the same number of insane layers. Here PROJECT is the Plugin dir.
Definition
ConfigHierarchy.h:50
GConfigLayers
static FConfigLayer GConfigLayers[]
Definition
ConfigHierarchy.h:9
GConfigExpansions
static FConfigLayerExpansion GConfigExpansions[]
Definition
ConfigHierarchy.h:73
EConfigExpansionFlags
EConfigExpansionFlags
Definition
Enums.h:18841
EConfigExpansionFlags::ForUncooked
@ ForUncooked
EConfigExpansionFlags::All
@ All
EConfigExpansionFlags::ForCooked
@ ForCooked
EConfigExpansionFlags::ForPlugin
@ ForPlugin
EConfigLayerFlags
EConfigLayerFlags
Definition
Enums.h:11993
EConfigLayerFlags::AllowCommandLineOverride
@ AllowCommandLineOverride
EConfigLayerFlags::NoExpand
@ NoExpand
EConfigLayerFlags::RequiresCustomConfig
@ RequiresCustomConfig
TEXT
#define TEXT(x)
Definition
Platform.h:1108
FConfigLayerExpansion
Definition
ConfigTypes.h:82
FConfigLayer
Definition
ConfigTypes.h:53
Downloads
ArkServerAPI_NEW
ASA
AsaApi
AsaApi
Core
Public
API
UE
Misc
ConfigHierarchy.h
Generated by
1.10.0