Permalink
Fetching contributors…
Cannot retrieve contributors at this time
222 lines (186 sloc) 13.4 KB
; Orx settings template / UTF-8 unicode support
; Sections are defined using [ ]
; Example:
; [My section]
; Everything after a ';' is considered as comment
; Key/value pairs are written like this:
; MyKey = MyValue
; Warning! If you want to add comments, use the ';' separator
; Example:
; MyKey = MyValue; Everything I wrote now is part of comments and not of the value
; If you want to use a ';' in a non-numerical value, use a block assignation delimited with '"'
; Example:
; MyKey = "MyValuePart1 ; MyValuePart2"
; Blocks are also useful for assigning multi-line values
; Example:
; MyKey = "This value
; spans
; on multiple lines"
; If you double the first '"', the value won't be considered as a block but as a regular one. It'll still contain a '"' at the start of the string value;
;Example:
; MyKey = ""MyQuotedValue"
; The string <"MyQuotedValue">, including the quotes, will be stored as a value
; All sections can inherit from any other one using the inheritance marker '@'
; Example:
; [Template]
; MyKey1 = MyValue1;
; MyKey2 = MyValue2;
; [Object@Template] <= This section will contains all values defined in the section 'Template';
; A parent can be removed when overriding a section and using no name after '@'.
; The implicit default parent section can be forced to be ignored by using the specific '@@' syntax
; Example:
; [Object] <= This section doesn't use any explicit parent but will use the implicit default parent if defined (see SettingsTemplate.ini, section [Config])
; [Object@Template] <= This section now uses 'Template' as an explicit parent section;
; [Object@] <= This section now has removed any explicit parent but is still using the implicit default parent if defined (see SettingsTemplate.ini, section [Config]))
; [Object@@] <= This section now has removed any parent and will not use the implicit default parent section either
; All values can be locally inherited from another section using the inheritance marker '@', with the optional use of '.' if we want to specify another key
; Example:
; [Template]
; MyKey = MyValue;
; MyOtherKey = MyOtherValue;
; [Object]
; MyKey = @Template; <= The value for 'MyKey' will be inherited from the one in the section 'Template', with the same key. This inheritance can be chained;
; My2ndKey = @Template.MyKey; <= The value for 'My2ndKey' will be inherited from the section 'Template' using the key 'MyKey'. This inheritance can also be chained;
; MyLastKey = @.MyKey; <= The value for 'MyLastKey' will be inherited from the current section ('Object') using the key 'MyKey'. This inheritance can also be chained;
; NB: MyOtherKey isn't inherited at all in this case.
; All values can implicitly refer to their own section using the inheritance marker '@' by itself. Its value will be dynamic and carry any inheritance to always result in the name of the child section;
; Example:
; [Template]
; MyKey = @; <= The value for 'MyKey' will be 'Template', the name of this section
; MyOtherKey = @; <= Same here, the value for 'MyOtherKey' will also be the name of this section: 'Template'
; [Object@Template]
; MyNewKey = @; <= The value for 'MyNewKey' will be 'Object'
; MyKey = @Template; <= The value for 'MyKey' will be inherited from the section 'Template' using the same key and its value will be 'Object', ie. this section, not the parent one, 'Template'
; NB: MyOtherKey will use the section inheritance and its value will be 'Object', ie. this section, not the parent one, 'Template'
; In the case of the in-section/nameless inheritance (@.Key), the "nameless" section used will also be dynamic;
; [Parent]
; MyKey = MyValue
; MyOtherKey = @.MyKey
; [Child@Parent]
; MyKey = MyLastValue
; Querying Child.MyOtherKey will result in 'MyLastValue': Child.MyOtherKey -> Parent.MyOtherKey -> <nameless>.Mykey -> Child.MyKey -> MyLastValue
; If you want to load another file, you need to write this on an empty line:
; @path/to/MyOtherFile@
; Loading will happen instantly in the parsing, which can override previously defined values
; Also, values defined in the "included" file can be overridden afterward
; Lastly, after loading an "included" file, parsing will continue in the same section as before
; Example:
; [MySection]
; Key1 = Var1;
; @IncludeFile@
; Key2 = Var2; <= this will be added to the 'MySection' section
; FLOAT values are expressed with a '.' as decimal separator.
; INT values can be expressed using different prefixes (not case sensitive):
; - decimal without any prefix: 16
; - hexadecimal with prefix '0x': 0x10
; - octal with prefix '0': 020
; - binary with prefix '0b': 0b10000
; VECTOR values are expressed this way:
; MyVector = (1.0, 2.0, 3.0); NB: { } can be used in place of ( ). Components can be (x, y, z) most of the time, or (r, g, b) for color
; Wherever numerical values are used (Ints, Floats and Vectors), a random generated value can be obtained using the separator ~.
; Example:
; Value1 = 0.5 ~ 1.0;
; Value2 = (0.0, 0.0, 0.0) ~ (1.0, 1.0, 1.0);
; You can also specify lists of values using the separator #.
; The default behavior will be to select randomly a value from a list *EXCEPT* if a list item index is provided in the code.
; For all properties defined in this template, values will be taken randomly if a list is provided for any field that doesn't explicitly accept one.
; Lists can contain random values.
; Example:
; Key1 = Var1 # Var2 # RandVar3 ~ RandVar4 # Var5;
; Lists can span multiple lines when using # at the end of the line (line ending comments are allowed).
; If you want to define an empty element at the end of a list, use ##
; Example:
; Key2 = Var1 # Var2 #
; Var3 #; This list still continues on next line and this comment is valid.
; Var4 ; This list is now complete and contains 4 elements.
; Key3 = Var1 # Var2 ##; This list will not span on the next line but will contain a 3rd (and last) empty element.
[Main] ; !!! DEPRECATED - This section is only used by the default orx launcher, not for stand alone applications !!!
GameFile = path/to/GameFile; NB: This is only used with the default built-in main launcher;
[iOS] ; !!! This section is only used on iOS (iPhone/iPod Touch/iPad) !!!
AccelerometerFrequency = [Float]; NB: Frequency in Hz, if explicitly set to 0, the accelerometer will be disabled. Defaults to iOS' default value;
[Android] ; !!! This section is only used on Android !!!
AccelerometerFrequency = [Float]; NB: Frequency in Hz, if explicitly set to 0, the accelerometer will be disabled. Defaults to Android's default value;
UseJoystick = [Bool]; NB: use joystick and gamepads, if enabled will disable Accelerometer.
SurfaceScale = [Float]; Read-Only, scaling factor applied
[Resource]
Config = path/to/storage1 # ... # path/to/storageN; NB: Config group: orx will look for resources following the order defined by this list, from first to last;
Sound = path/to/storage1 # ... # path/to/storageN; NB: Sound group: orx will look for resources following the order defined by this list, from first to last;
Texture = path/to/storage1 # ... # path/to/storageN; NB: Texture group: orx will look for resources following the order defined by this list, from first to last;
WatchList = Texture # Config # Sound # ...; NB: If defined, orx will monitor these groups of resources and will reload them as soon as modified. Dev feature, only active on computers;
[Config]
DefaultParent = DefaultParentName; NB: This section will be used as implicit parent for any other config section. By default there's not default parent section;
[Console]
ToggleKey = KEY_*; NB: Defines the toggle key for activating the in-game console;
ScrollSize = [UInt]; NB: Number of lines to scroll at a time, defaults to 3;
Alias = [Command]; NB: Any other key than ToggleKey will be added as a command alias; Commands are case sensitive;
MyOtherAlias = [Command]; NB: Any other key than ToggleKey will be added as a command alias; Commands are case sensitive;
[Clock]
MainClockFrequency = [Float]; NB: If no value is specified, the main clock will update as often as possible.
[Plugin]
DebugSuffix = DebugSuffixString; NB: If none if given, orx will use "d" as default;
[Display]
ScreenWidth = [Int]; NB: For Android, limit the width of the display framebuffer
ScreenHeight = [Int]; NB: For Android, limit the height of the display frame buffer (ignored if ScreenWidth is defined);
ScreenDepth = [Int]; NB: Defaults to 32bits;
ScreenPosition = [Vector]; NB: Defaults to OS positioning when not specified;
RefreshRate = [Int]; NB: Defaults to 60Hz;
FullScreen = [Bool];
Decoration = [Bool]; NB: Only used when not in fullscreen, defaults to true;
AllowResize = [Bool]; NB: Only works in windowed mode, defaults to false;
Title = TitleText;
Smoothing = [Bool];
VSync = [Bool];
DepthBuffer = [Bool]; NB: Defaults to false, set it to true only if you plan on doing 3D rendering on your own;
ShaderVersion = [Int]; NB: If defined, a matching shader version preprocessor directive will be added to the top of fragment shaders;
ShaderExtensionList = [+|-]Extension1 # ... # [+|-]ExtensionN; NB: If defined, shader extension directives will be added to the top of fragment shaders;
Monitor = [Int]; NB: Index of monitor, defaults to 1 = primary monitor;
Cursor = arrow|ibeam|crosshair|hand|hresize|vresize|default|path/to/texture # [Vector]; NB: Defaults to 'default'; If a texture is provided, an optional vector can be added as the hotspot;
IconList = path/to/texture1 # ... # path/to/textureN ; NB: Up to 16 icons can be defined, the one with the best-fitting resolution will be used automatically;
[Render]
ShowFPS = [Bool]; NB: Displays current FPS in the top left corner of the screen;
ShowProfiler = [Bool]; NB: Displays a layer containing gathered profiling info;
MinFrequency = [Float]; NB: Minimum frequency allowed for render/core clock. Defaults to 10Hz. Can be deactivated with an explicit negative value;
ConsoleColor = [Vector]; NB: If specified, will override console's background color;
[Mouse]
ShowCursor = [Bool]; NB: Defaults to true;
[Input]
SetList = InputSetTemplate1 # InputSetTemplate2; NB: The first valid set in list will become the default one when loaded;
DefaultThreshold = [Float]; NB: Defines a value [0.0, 1.0] under which all input values will be ignored. Defaults to 0.15;
DefaultMultiplier = [Float]; NB: Defines a value ]0.0, +inf[ by which all input values will be multiplied. Defaults to 1.0;
[InputSetTemplate] ; NB: Up to 8 different bindings can exist in the same set for the same input
KEY_SPACE = Jump # Validate; NB: Binds space key to the "Jump" and Validate inputs;
MOUSE_LEFT = Select; NB: Binds mouse's left button to the "Select" input;
KEY_LCTRL = Select; NB: Binds left control to the "Select" input;
JOY_A_1 = Attack; NB: Binds first joystick's A button to the "Attack" input;
JOY_LX_2 = Move; NB: Binds second joystick's left X axis to the "Move" input;
+JOY_LX_1 = MoveRight; NB: Binds first joystick's positive left X half-axis to the "MoveRight" input;
-JOY_LX_1 = MoveLeft; NB: Binds first joystick's negative left X half-axis to the "MoveLeft" input;
MOUSE_X = Move; NB: Binds mouse's X axis to the "Move" input;
AttackThreshold = [Float]; NB: Defines a value [0.0, 1.0] under which values for the input "Attack" will be ignored. Takes precedence over DefaultThreshold, if defined;
MoveMultiplier = [Float]; NB: Defines a value ]0.0, +inf[ by which values of for the input "Move" will be multiplied. Takes precedence over DefaultMultiplier, if defined;
CombineList = Select # Attack; NB: If an input is in this list, it will activate if and only if all its bindings are active. Otherwise, an input will activate if any of its binding is active;
[Locale]
LanguageList = Language1 # Language2; NB: The first defined language will be used by default if valid;
[LanguageTemplate]
MyTextEntry = A string localized for this language.
MyOtherTextEntry = Another string localized for this language.
[Physics]
Gravity = [Vector];
AllowSleep = [Bool]; NB: Defaults to true;
IterationsPerStep = [Int];
DimensionRatio = [Float];
StepFrequency = [Float]; NB: Frequency used for fixed-step world physics simulation; Defaults to 60Hz.
ShowDebug = [Bool]; NB: Defaults to false; Only used in non-Release builds (ie. Debug and Profiler ones);
CollisionFlagList = [String] # ...; NB: Optional: defines all the literals that can be used to define the SelfFlags and CheckMask properties of Body. This list will grow with every new flag encountered at runtime;
[SoundSystem]
DimensionRatio = [Float];
StreamBufferNumber = [Int]; Number of buffers to use for sound streaming. Needs to be at least 2, defaults to 4;
StreamBufferSize = [Int]; Size of buffer to use for sound streaming. Needs to be a multiple of 4, defaults to 4096;
[Screenshot]
Directory = path/to/directory; NB: If not specified, screenshots will be stored in the Documents directory on iOS or in the current active directory otherwise;
BaseName = MyScreenshotBaseName; NB: Defaults to "screenshot-";
Extension = EXT; NB: Defaults to png on iOS and tga otherwise; Available extensions depend on the active plugin. GLFW -> .png, .tga & .bmp
Digits = [Int]; NB: Number of digits for screenshot indexing. Defaults to 4;
[Param] ; NB: All command line parameters can be defined in this section, using their long name
plugin = path/to/FirstPlugin # ... # path/to/LastPlugin;
config = path/to/FirstConfigFile # ... # path/to/LastConfigFile; NB: This files can override values set in the main config file;