CPP File Format: Difference between revisions

From Bohemia Interactive Community
m (Text replacement - "{{unsupported-doc}}" to "{{Feature|UnsupportedDoc}}")
m (Remove unofficial warning)
 
(3 intermediate revisions by the same user not shown)
Line 1: Line 1:
{{Feature|UnsupportedDoc}}
The {{hl|.cpp}} file extension is a generic identifier that ''indicates'' the contents contain pre-raPified text and ''can'' be raPified (binarised).
This is by convention only - the actual content could be binarised already and the engine would load it without failure.


FileExtension .cpp is a generic identifier that ''indicates'' the contents contain pre-raPified text and ''can'' be raPified (binarised). This is by-convention-only. The ''actual'' contents could be binarised already. The engine doesn't care.
{{Feature|informative|The binarised (raPified) equivalent of {{hl|.cpp}} file is {{hl|.bin}} - see {{Link|Config.cpp/bin File Format}}.}}


The binarised (raPified) equivalent of any .cpp file is .bin.
There are currently several cpp/bin files used by {{Name|bi}}:


There are currently several cpp/bin files used by bis.
* [[Config.cpp/bin File Format|Config.cpp/bin]]
* [[Mod.cpp/bin File Format|Mod.cpp/bin]]
* [[Product.cpp/bin File Format|Product.cpp/bin]]
* [[Resource.cpp/bin]] - {{ofp}} only


*[[Config.cpp/bin File Format|Config.cpp/bin]]
*[[Mod.cpp/bin File Format|Mod.cpp/bin]]
*[[Product.cpp/bin File Format|Product.cpp/bin]]
*[[Resource.cpp/bin]] // OFP only


In all circumstances, a .cpp, if present in the same folder, takes precedence. (the .bin is ignored).
== Syntax ==


[[Category:BIS_File_Formats]]
Values are set in the following format: {{hl|1= valueName = value;}} - a semicolon always ends the line.
They can be present at the root of the file but more frequently than not will be defined in a '''class''' - note that '''classes are also ended by a semicolon'''.
 
<syntaxhighlight lang="cpp">
class MyConfigClass
{
intValue = 42;
floatValue = 66.6;
stringValue = "text";
translatedValue = "$STR_MyStringtableKey"; // quotes are good practice
arrayValueColour[] = { 1, 0, 0, 1 };
arrayValueRandom[] = { "ValuesCanBeMixed", 1, 42.0, { 0, 1, 0, 1 } };
 
class MySubConfigClass // subclasses are possible
{
subValue = 123456;
};
}; // a semicolon ALWAYS closes a class
</syntaxhighlight>
 
 
There are '''no boolean value''' in config; you can define them for ease of use/readability using {{hl|#define}}, usually in the first lines:
<syntaxhighlight lang="cpp">
#define true 1
#define false 0
 
class MyConfigClass
{
// ...
useTexture = true; // would have otherwise to be useTexture = 1;
// ...
};
</syntaxhighlight>
 
A commonly-edited config file is [[Description.ext]], a file storing scenario settings - the file extension differs but the syntax remains the same.
 
 
[[Category:Real Virtuality File Formats]]

Latest revision as of 13:44, 8 May 2025

The .cpp file extension is a generic identifier that indicates the contents contain pre-raPified text and can be raPified (binarised). This is by convention only - the actual content could be binarised already and the engine would load it without failure.

The binarised (raPified) equivalent of .cpp file is .bin - see Config.cpp/bin File Format.

There are currently several cpp/bin files used by Bohemia Interactive:


Syntax

Values are set in the following format: valueName = value; - a semicolon always ends the line. They can be present at the root of the file but more frequently than not will be defined in a class - note that classes are also ended by a semicolon.

class MyConfigClass
{
	intValue = 42;
	floatValue = 66.6;
	stringValue = "text";
	translatedValue = "$STR_MyStringtableKey"; // quotes are good practice
	arrayValueColour[] = { 1, 0, 0, 1 };
	arrayValueRandom[] = { "ValuesCanBeMixed", 1, 42.0, { 0, 1, 0, 1 } };

	class MySubConfigClass // subclasses are possible
	{
		subValue = 123456;
	};
}; // a semicolon ALWAYS closes a class


There are no boolean value in config; you can define them for ease of use/readability using #define, usually in the first lines:

#define true 1
#define false 0

class MyConfigClass
{
	// ...
	useTexture = true; // would have otherwise to be useTexture = 1;
	// ...
};

A commonly-edited config file is Description.ext, a file storing scenario settings - the file extension differs but the syntax remains the same.