import (Config): Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
No edit summary
Line 73: Line 73:
==Checking imported classes==
==Checking imported classes==


In debug console type <tt>utils 2</tt>, LOCAL EXEC, and select mission config from drop down menu. The mission config will be displayed with including imported classes
In debug console type <tt>utils 2</tt>, LOCAL EXEC, and select mission config from drop down menu. The mission config will be displayed including imported classes

Revision as of 22:31, 6 September 2020

import keyword

The import keyword is used in mission config, pretty much like class keyword, in order to import a class from main config into mission config. Useful for UI creation as UI controls have a lot of properties which are already defined in main config, so if only some tweaks are required, it could be easily done after importing the class.

The keyword tells parser to copy given class during parsing of the mission config so the imported class will be placed where the keyword import was placed. For example if one needs to inherit from RscText, the import RscText; should precede the inheritance:

import RscText;
class MyText: RscText 
{
...
};

The import keyword tells the engine to look for the base class in main config, which means classes in base directory. However, it is also possible to look in other dirs using from keyword.

from keyword

The from keyword is used to indicate specific config path from where the class should be imported. For example, one can do things like this, not that one will even need this particular usage:

import SlotsInfo from CfgVehicles/B_Soldier_F/UniformInfo;
class MySlotsInfo: SlotsInfo
{
...
};

Modifying properties

The properties override is done in the same way it is done for modding.

import RscText;
class MyText: RscText 
{
	style = 2;
};

When property is inside another class, this is how it could be done:

import RscStructuredText;	
class MyText: RscStructuredText
{
	class Attributes: Attributes
	{
		align = "right";
	};
};

Here is example of overriding the color of vignette:

import RscDisplayEmpty;	
class MyRscDisplayEmpty: RscDisplayEmpty
{
	class controls: controls
	{
		class CA_Vignette: CA_Vignette
		{
			colorText[] = {1,0,0,1};
		};
	};
};

And the result, after executing findDisplay 46 createDisplay "MyRscDisplayEmpty"; in debug console:

vignette modified.jpg

Checking imported classes

In debug console type utils 2, LOCAL EXEC, and select mission config from drop down menu. The mission config will be displayed including imported classes