Custom Info – Arma 3

From Bohemia Interactive Community
Revision as of 15:24, 22 December 2016 by Ondrejkuzel (talk | contribs) (Added examples)
Jump to navigation Jump to search

Template:Cfg ref

Overview

UI window elements that encompass various display modules and gadgets (Navigation, Camera feeds, Radar...)

Forum topic: Main thread

User Interface

Arma 3 Custom Info overview.jpeg

Action keybinds (default)

[ next module on left display
RCTRL + [ previous module on left display
] next module on right display
RCTRL + ] previous module on right display
RALT + [ close left display
RALT + ] close right display


Configuration

The new Sensor system gets enabled by defining a VehicleSystemsDisplayManagerComponentLeft (left display) or VehicleSystemsDisplayManagerComponentRight (right display) class inside the vehicle's Components class.

class MyVehicle_F : MyBaseVehicle_F
{
       class Components : Components                   
      {
            class VehicleSystemsDisplayManagerComponentLeft : DefaultVehicleSystemsDisplayManagerLeft
            {
            }; 
            class VehicleSystemsDisplayManagerComponentRight : DefaultVehicleSystemsDisplayManagerRight
            {
            };                                                                                                        
      };
};

For simplicity the class can inherit from one of the templates that are available in the configFile root.

VehicleSystemsTemplateLeftDriver
VehicleSystemsTemplateRightDriver
VehicleSystemsTemplateLeftCommander
VehicleSystemsTemplateRightCommander
VehicleSystemsTemplateLeftGunner
VehicleSystemsTemplateRightGunner
VehicleSystemsTemplateLeftSensorsCommander 
VehicleSystemsTemplateRightSensorsCommander 
VehicleSystemsTemplateLeftSensorsGunner
VehicleSystemsTemplateRightSensorsGunner

Automatic usage & backwards compatibility

If the Vehicle doesn't have the VehicleSystemsDisplayManagerComponent defined one of the two default pairs is used.

// core definitions, do not override
DefaultVehicleSystemsDisplayManagerLeft
DefaultVehicleSystemsDisplayManagerRight
DefaultVehicleSystemsDisplayManagerLeftSensors  
DefaultVehicleSystemsDisplayManagerRightSensors

The pair of defaults with Sensors suffix is used whenever the vehicle had radarType defined as air radar or ground radar.

Modules and properties

class VehicleSystemsDisplayManagerLeft
{
	componentType = "VehicleSystemsDisplayManager"; //mandatory
	x = (safezoneX + 0.5 * (((safezoneW / safezoneH) min 1.2) / 40));
	y = (safezoneY + safezoneH - 21 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25));
	left = 1;
	defaultDisplay = "CrewDisplay";   //display to be selected when player changes vehicle and had "empty" previously selected

	class Components
	{
		class MinimapDisplay        //GPS
		{
			componentType = "MinimapDisplayComponent";
			resource = "RscCustomInfoMiniMap";
		};
		class SlingLoadDisplay      //Slingload Assistant
		{
			componentType = "SlingLoadDisplayComponent";
			resource = "RscCustomInfoSlingLoad";
		};
		class SensorsDisplayClose   //Combined display showing sensors, detected and tracked targets, info about marked target and threats
		{
			componentType = "SensorsDisplayComponent";
			range = 1000;
			resource = "RscCustomInfoSensor";
		};
		class SensorsDisplayFar     //Combined display showing sensors, detected and tracked targets, info about marked target and threats - this time with a different range setting
		{
			componentType = "SensorsDisplayComponent";
			range = 4000;
			resource = "RscCustomInfoSensor";
		};
		class UAVFeedDisplay        //Drone camera feed
		{
			componentType = "UAVFeedDisplayComponent";
			// resource = "RscCustomInfoAVCamera"; // hardcoded
		};
		class VehicleDriverDisplay  //Camera feed from driver's optics
		{
			componentType = "TransportFeedDisplayComponent";
			source = "Driver";
			// resource = "RscTransportCameraComponentDriver"; // hardcoded 
		};
		class VehicleGunnerDisplay  //Camera feed from gunner's optics
		{
			componentType = "TransportFeedDisplayComponent";
			source = "PrimaryGunner";
			// resource = "RscTransportCameraComponentPrimaryGunner"; // hardcoded 
		};
		class VehicleCommanderDisplay //Camera feed from commander's optics
		{
			componentType = "TransportFeedDisplayComponent";
			source = "Commander";
			// resource = "RscTransportCameraComponentCommander"; // hardcoded
		};
		class MissileDisplay        //Camera feed from missile's warhead
		{
			componentType = "TransportFeedDisplayComponent";
			source = "Missile";
			resource = "RscTransportCameraComponentMissile"; // hardcoded in the engine - here just fyi where is the resource
		};
		class CrewDisplay           //List of all crew members, cargo and transported or slingloaded vehicle
		{
			componentType = "CrewDisplayComponent";
			resource = "RscCustomInfoCrew";
		};
		class CustomDisplayXY       //Custom display using custom resource
		{
			componentType = "CustomDisplayComponent";
			resource = "RscCustomInfoLeftOnly";
		};
		class EmptyDisplay          //Empty display - hide panel
		{
			componentType = "EmptyDisplayComponent";
		};
	};
};

class VehicleSystemsDisplayManagerRight : VehicleSystemsDisplayManagerLeft
{
	x = ((10 * (((safezoneW / safezoneH) min 1.2) / 40)) + 0.5 * (((safezoneW / safezoneH) min 1.2) / 40)));
	left = 0;
	right = 1;
	forcedDisplay = "SensorsDisplayFar";      //display to be selected when player enters the vehicle no matter what was selected before
}

Related