This commit is the equivalent of a atomic bomb

This commit is contained in:
2026-02-15 08:08:56 -03:00
commit e4ac56b038
6934 changed files with 916278 additions and 0 deletions
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,16 @@
class CfgPatches
{
class BRAF_LR110_F
{
// List of units defined in this "PBO"
units[]=
{
"BRAF_LR_110_SW","BRAF_LR110_SW_01_Special_F"
};
weapons[]={};
requiredVersion=0.1;
// because we are using references to this addon, our test car should not be loaded if A3_Soft_F is not present
requiredAddons[] = {"A3_Soft_F"};
};
};
@@ -0,0 +1,82 @@
ambient[]={1.000000,1.000000,1.000000,0.990000};
diffuse[]={1.000000,1.000000,1.000000,0.990000};
forcedDiffuse[]={0.000000,0.000000,0.000000,1.000000};
emmisive[]={0.000000,0.000000,0.000000,1.000000};
specular[]={0.989000,0.989000,0.989000,0.990000};
specularPower=220.000000;
PixelShaderID="Super";
VertexShaderID="Super";
class Stage1
{
texture="braf\braf_soft\braf_land_rover\DATA\braf_landrover_out_nohq.paa";
uvSource="tex";
class uvTransform
{
aside[]={1.000000,0.000000,0.000000};
up[]={0.000000,1.000000,0.000000};
dir[]={0.000000,0.000000,0.000000};
pos[]={0.000000,0.000000,0.000000};
};
};
class Stage2
{
texture="#(argb,8,8,3)color(0.5,0.5,0.5,1,DT)";
uvSource="tex";
class uvTransform
{
aside[]={10.000000,0.000000,0.000000};
up[]={0.000000,10.000000,0.000000};
dir[]={0.000000,0.000000,0.000000};
pos[]={0.000000,0.000000,0.000000};
};
};
class Stage3
{
texture="#(argb,8,8,3)color(0,0,0,0,MC)";
uvSource="tex";
class uvTransform
{
aside[]={1.000000,0.000000,0.000000};
up[]={0.000000,1.000000,0.000000};
dir[]={0.000000,0.000000,0.000000};
pos[]={0.000000,0.000000,0.000000};
};
};
class Stage4
{
texture="braf\braf_soft\braf_land_rover\DATA\braf_landrover_out_as.paa";
uvSource="tex";
class uvTransform
{
aside[]={1.000000,0.000000,0.000000};
up[]={0.000000,1.000000,0.000000};
dir[]={0.000000,0.000000,1.000000};
pos[]={0.000000,0.000000,1.000000};
};
};
class Stage5
{
texture="braf\braf_soft\braf_land_rover\DATA\braf_landrover_out_smdi.paa";
uvSource="tex";
class uvTransform
{
aside[]={1.000000,0.000000,0.000000};
up[]={0.000000,1.000000,0.000000};
dir[]={0.000000,0.000000,1.000000};
pos[]={0.000000,0.000000,1.000000};
};
};
class Stage6
{
texture="#(ai,64,64,1)fresnel(2.0,0.1)";
uvSource="none";
};
class Stage7
{
texture="A3\data_f\env_land_co.paa";
uvSource="none";
};
class StageTI
{
texture="braf\braf_soft\braf_land_rover\DATA\braf_landrover_base_ti_ca.paa";
};
Binary file not shown.
@@ -0,0 +1,82 @@
class StageTI
{
texture="a3\data_f\default_ti_ca.paa";
};
ambient[]={1.000000,1.000000,1.000000,0.990000};
diffuse[]={1.000000,1.000000,1.000000,0.990000};
forcedDiffuse[]={0.000000,0.000000,0.000000,1.000000};
emmisive[]={0.000000,0.000000,0.000000,1.000000};
specular[]={0.989000,0.989000,0.989000,0.990000};
specularPower=220.000000;
PixelShaderID="Super";
VertexShaderID="Super";
class Stage1
{
texture="braf\braf_soft\braf_land_rover\Data\braf_landrover_out_nohq.paa";
uvSource="tex";
class uvTransform
{
aside[]={1.000000,0.000000,0.000000};
up[]={0.000000,1.000000,0.000000};
dir[]={0.000000,0.000000,0.000000};
pos[]={0.000000,0.000000,0.000000};
};
};
class Stage2
{
texture="a3\data_f\Destruct\damage_metal_tankArmor_dt.tga";
uvSource="tex";
class uvTransform
{
aside[]={10.000000,0.000000,0.000000};
up[]={0.000000,10.000000,0.000000};
dir[]={0.000000,0.000000,0.000000};
pos[]={0.000000,0.000000,0.000000};
};
};
class Stage3
{
texture="a3\data_f\Destruct\destruct_plech_full_mc.tga";
uvSource="tex";
class uvTransform
{
aside[]={1.000000,0.000000,0.000000};
up[]={0.000000,1.000000,0.000000};
dir[]={0.000000,0.000000,0.000000};
pos[]={0.000000,0.000000,0.000000};
};
};
class Stage4
{
texture="#(argb,8,8,3)color(1,1,1,1,AS)";
uvSource="tex";
class uvTransform
{
aside[]={1.000000,0.000000,0.000000};
up[]={0.000000,1.000000,0.000000};
dir[]={0.000000,0.000000,1.000000};
pos[]={0.000000,0.000000,1.000000};
};
};
class Stage5
{
texture="braf\braf_soft\braf_land_rover\Data\braf_landrover_out_smdi.paa";
uvSource="tex";
class uvTransform
{
aside[]={1.000000,0.000000,0.000000};
up[]={0.000000,1.000000,0.000000};
dir[]={0.000000,0.000000,1.000000};
pos[]={0.000000,0.000000,1.000000};
};
};
class Stage6
{
texture="#(ai,64,64,1)fresnel(2.0,0.1)";
uvSource="none";
};
class Stage7
{
texture="a3\data_f\env_land_ca.paa";
uvSource="none";
};
@@ -0,0 +1,82 @@
ambient[]={1,1,1,0.99};
diffuse[]={1,1,1,0.99};
forcedDiffuse[]={0,0,0,1};
emmisive[]={0,0,0,1};
specular[]={0.989,0.989,0.989,0.99};
specularPower=220;
PixelShaderID="Super";
VertexShaderID="Super";
class Stage1
{
texture="braf\braf_soft\braf_land_rover\Data\braf_landrover_out_nohq.paa";
uvSource="tex";
class uvTransform
{
aside[]={1,0,0};
up[]={0,1,0};
dir[]={0,0,0};
pos[]={0,0,0};
};
};
class Stage2
{
texture="a3\data_f\Destruct\damage_metal_tankArmor_dt.tga";
uvSource="tex";
class uvTransform
{
aside[]={10,0,0};
up[]={0,10,0};
dir[]={0,0,0};
pos[]={0,0,0};
};
};
class Stage3
{
texture = "a3\data_f\destruct\destruct_rust_mca.paa";
uvSource="tex";
class uvTransform
{
aside[]={1,0,0};
up[]={0,1,0};
dir[]={0,0,0};
pos[]={0,0,0};
};
};
class Stage4
{
texture="#(argb,8,8,3)color(1,1,1,1,AS)";
uvSource="tex";
class uvTransform
{
aside[]={1,0,0};
up[]={0,1,0};
dir[]={0,0,1};
pos[]={0,0,1};
};
};
class Stage5
{
texture = "a3\data_f\destruct\destruct_rust_smdi.paa";
uvSource="tex";
class uvTransform
{
aside[]={1,0,0};
up[]={0,1,0};
dir[]={0,0,0};
pos[]={0,0,0};
};
};
class Stage6
{
texture="#(ai,64,64,1)fresnel(2.0,0.1)";
uvSource="none";
};
class Stage7
{
texture = "a3\data_f\env_land_ca.paa";
uvSource="none";
};
class StageTI
{
texture="a3\data_f\destruct_ti_ca.paa";
};
@@ -0,0 +1,82 @@
ambient[]={1.000000,1.000000,1.000000,0.990000};
diffuse[]={1.000000,1.000000,1.000000,0.990000};
forcedDiffuse[]={0.000000,0.000000,0.000000,1.000000};
emmisive[]={1.000000,1.000000,1.000000,1.000000};
specular[]={0.989000,0.989000,0.989000,0.990000};
specularPower=220.000000;
PixelShaderID="Super";
VertexShaderID="Super";
class Stage1
{
texture="braf\braf_soft\braf_land_rover\Data\braf_landrover_out_nohq.paa";
uvSource="tex";
class uvTransform
{
aside[]={1.000000,0.000000,0.000000};
up[]={0.000000,1.000000,0.000000};
dir[]={0.000000,0.000000,0.000000};
pos[]={0.000000,0.000000,0.000000};
};
};
class Stage2
{
texture="#(argb,8,8,3)color(0.5,0.5,0.5,1,DT)";
uvSource="tex";
class uvTransform
{
aside[]={10.000000,0.000000,0.000000};
up[]={0.000000,10.000000,0.000000};
dir[]={0.000000,0.000000,0.000000};
pos[]={0.000000,0.000000,0.000000};
};
};
class Stage3
{
texture="#(argb,8,8,3)color(0,0,0,0,MC)";
uvSource="tex";
class uvTransform
{
aside[]={1.000000,0.000000,0.000000};
up[]={0.000000,1.000000,0.000000};
dir[]={0.000000,0.000000,0.000000};
pos[]={0.000000,0.000000,0.000000};
};
};
class Stage4
{
texture="#(argb,8,8,3)color(1,1,1,1,AS)";
uvSource="tex";
class uvTransform
{
aside[]={1.000000,0.000000,0.000000};
up[]={0.000000,1.000000,0.000000};
dir[]={0.000000,0.000000,1.000000};
pos[]={0.000000,0.000000,1.000000};
};
};
class Stage5
{
texture="braf\braf_soft\braf_land_rover\Data\braf_landrover_out_smdi.paa";
uvSource="tex";
class uvTransform
{
aside[]={1.000000,0.000000,0.000000};
up[]={0.000000,1.000000,0.000000};
dir[]={0.000000,0.000000,1.000000};
pos[]={0.000000,0.000000,1.000000};
};
};
class Stage6
{
texture="#(ai,64,64,1)fresnel(2.0,0.1)";
uvSource="none";
};
class Stage7
{
texture=""a3\data_f\env_land_ca.paa"";
uvSource="none";
};
class StageTI
{
texture="a3\data_f\default_ti_ca.paa";
};
@@ -0,0 +1,96 @@
ambient[]={1.000000,1.000000,1.000000,1.000000};
diffuse[]={1.000000,1.000000,1.000000,1.000000};
forcedDiffuse[]={0.000000,0.000000,0.000000,0.000000};
emmisive[]={0.000000,0.000000,0.000000,0.000000};
specular[]={0.470588,0.470588,0.470588,1.000000};
specularPower=100.000000;
PixelShaderID="Super";
VertexShaderID="Super";
class Stage1
{
texture = "a3\data_f\destruct\destr_glass_plexi_half_nohq.paa";
uvSource="tex";
class uvTransform
{
aside[]={1.000000,0.000000,0.000000};
up[]={0.000000,1.000000,0.000000};
dir[]={0.000000,0.000000,0.000000};
pos[]={0.000000,0.000000,0.000000};
};
};
class Stage2
{
texture = "a3\data_f\destruct\destr_glass_plexi_half_ca.paa";
uvSource="tex";
class uvTransform
{
aside[]={3.000000,0.000000,0.000000};
up[]={0.000000,3.000000,0.000000};
dir[]={0.000000,0.000000,0.000000};
pos[]={0.000000,0.000000,0.000000};
};
};
class Stage3
{
texture = "a3\data_f\destruct\destr_glass_plexi_half_ca.paa";
uvSource="tex";
class uvTransform
{
aside[]={1.000000,0.000000,0.000000};
up[]={0.000000,1.000000,0.000000};
dir[]={0.000000,0.000000,0.000000};
pos[]={0.000000,0.000000,0.000000};
};
};
class Stage4
{
texture="#(argb,8,8,3)color(1,1,1,1,AS)";
uvSource="tex";
class uvTransform
{
aside[]={1.000000,0.000000,0.000000};
up[]={0.000000,1.000000,0.000000};
dir[]={0.000000,0.000000,0.000000};
pos[]={0.000000,0.000000,0.000000};
};
};
class Stage5
{
texture = "a3\data_f\destruct\destr_glass_plexi_half_smdi.paa";
uvSource="tex";
class uvTransform
{
aside[]={1.000000,0.000000,0.000000};
up[]={0.000000,1.000000,0.000000};
dir[]={0.000000,0.000000,0.000000};
pos[]={0.000000,0.000000,0.000000};
};
};
class Stage6
{
texture="#(ai,64,64,1)fresnelGlass(2.1)";
uvSource="tex";
class uvTransform
{
aside[]={1.000000,0.000000,0.000000};
up[]={0.000000,1.000000,0.000000};
dir[]={0.000000,0.000000,0.000000};
pos[]={0.000000,0.000000,0.000000};
};
};
class Stage7
{
texture = "a3\data_f\env_land_co.paa";
uvSource="tex";
class uvTransform
{
aside[]={1.000000,0.000000,0.000000};
up[]={0.000000,1.000000,0.000000};
dir[]={0.000000,0.000000,0.000000};
pos[]={0.000000,0.000000,0.000000};
};
};
class StageTI
{
texture = "a3\data_f\default_vehicle_ti_ca.paa";
};
@@ -0,0 +1,96 @@
ambient[]={1,1,1,1};
diffuse[]={1,1,1,1};
forcedDiffuse[]={0,0,0,0};
emmisive[]={0,0,0,0};
specular[]={0.470588,0.470588,0.470588,1};
specularPower=100;
PixelShaderID="Super";
VertexShaderID="Super";
class Stage1
{
texture="a3\data_f\Destruct\destr_glass_armour2_full_NOHQ.tga";
uvSource="tex";
class uvTransform
{
aside[]={1,0,0};
up[]={0,1,0};
dir[]={0,0,0};
pos[]={0,0,0};
};
};
class Stage2
{
texture="a3\data_f\Destruct\damage_metal_basicarmor_dt";
uvSource="tex";
class uvTransform
{
aside[]={3,0,0};
up[]={0,3,0};
dir[]={0,0,0};
pos[]={0,0,0};
};
};
class Stage3
{
texture="a3\data_f\Destruct\destr_glass_armour2_full_CA.tga";
uvSource="tex";
class uvTransform
{
aside[]={1,0,0};
up[]={0,1,0};
dir[]={0,0,0};
pos[]={0,0,0};
};
};
class Stage4
{
texture="#(argb,8,8,3)color(1,1,1,1,AS)";
uvSource="tex";
class uvTransform
{
aside[]={1,0,0};
up[]={0,1,0};
dir[]={0,0,0};
pos[]={0,0,0};
};
};
class Stage5
{
texture="BRAF\braf_soft\braf_land_rover\data\braf_landrover_glass_smdi.paa";
uvSource="tex";
class uvTransform
{
aside[]={1,0,0};
up[]={0,1,0};
dir[]={0,0,0};
pos[]={0,0,0};
};
};
class Stage6
{
texture="#(ai,64,64,1)fresnelGlass(2.1)";
uvSource="tex";
class uvTransform
{
aside[]={1,0,0};
up[]={0,1,0};
dir[]={0,0,0};
pos[]={0,0,0};
};
};
class Stage7
{
texture = "a3\data_f\env_land_ca.paa";
uvSource="tex";
class uvTransform
{
aside[]={1,0,0};
up[]={0,1,0};
dir[]={0,0,0};
pos[]={0,0,0};
};
};
class StageTI
{
texture = "a3\data_f\destruct_ti_ca.paa";
};
@@ -0,0 +1,85 @@
#define _ARMA_
ambient[] = {0.75,0.75,0.75,1.0};
diffuse[] = {0.75,0.75,0.75,1.0};
forcedDiffuse[] = {0.0,0.0,0.0,1.0};
emmisive[] = {0.0,0.0,0.0,1.0};
specular[] = {0.15,0.15,0.15,1.0};
specularPower = 75;
PixelShaderID = "Super";
VertexShaderID = "Super";
class Stage1
{
texture = "braf\braf_soft\braf_land_rover\Data\braf_landrover_in_nohq.paa";
uvSource = "tex";
class uvTransform
{
aside[] = {1.0,0.0,0.0};
up[] = {0.0,1.0,0.0};
dir[] = {0.0,0.0,0.0};
pos[] = {0.0,0.0,0.0};
};
};
class Stage2
{
texture = "#(argb,8,8,3)color(0.5,0.5,0.5,1,DT)";
uvSource = "tex";
class uvTransform
{
aside[] = {10.0,0.0,0.0};
up[] = {0.0,10.0,0.0};
dir[] = {0.0,0.0,0.0};
pos[] = {0.0,0.0,0.0};
};
};
class Stage3
{
texture = "#(argb,8,8,3)color(0,0,0,0,MC)";
uvSource = "tex";
class uvTransform
{
aside[] = {1.0,0.0,0.0};
up[] = {0.0,1.0,0.0};
dir[] = {0.0,0.0,0.0};
pos[] = {0.0,0.0,0.0};
};
};
class Stage4
{
texture = "braf\braf_soft\braf_land_rover\Data\braf_landrover_in_as.paa";
uvSource = "tex";
class uvTransform
{
aside[] = {1.0,0.0,0.0};
up[] = {0.0,1.0,0.0};
dir[] = {0.0,0.0,1.0};
pos[] = {0.0,0.0,1.0};
};
};
class Stage5
{
texture = "braf\braf_soft\braf_land_rover\Data\Skins\EB\braf_EB_landroverin_smdi.paa";
uvSource = "tex";
class uvTransform
{
aside[] = {1.0,0.0,0.0};
up[] = {0.0,1.0,0.0};
dir[] = {0.0,0.0,1.0};
pos[] = {0.0,0.0,1.0};
};
};
class Stage6
{
texture = "#(ai,64,64,1)fresnel(2.0,0.1)";
uvSource = "none";
};
class Stage7
{
texture="a3\data_f\env_land_co.paa";
uvSource = "none";
};
// FIXME TeTeT
// class StageTI
// {
// texture = "braf\braf_soft\Braf_Marrua\AM11\Data\camo_1_ti_ca.paa";
// };
@@ -0,0 +1,85 @@
#define _ARMA_
ambient[] = {7,7,7,1};
diffuse[] = {0.75,0.75,0.75,1.0};
forcedDiffuse[] = {0.0,0.0,0.0,1.0};
emmisive[] = {0.0,0.0,0.0,1.0};
specular[] = {0.15,0.15,0.15,1.0};
specularPower = 75;
PixelShaderID = "Super";
VertexShaderID = "Super";
class Stage1
{
texture = "braf\braf_soft\braf_land_rover\Data\braf_landrover_out_nohq.paa";
uvSource = "tex";
class uvTransform
{
aside[] = {1.0,0.0,0.0};
up[] = {0.0,1.0,0.0};
dir[] = {0.0,0.0,0.0};
pos[] = {0.0,0.0,0.0};
};
};
class Stage2
{
texture = "#(argb,8,8,3)color(0.5,0.5,0.5,1,DT)";
uvSource = "tex";
class uvTransform
{
aside[] = {10.0,0.0,0.0};
up[] = {0.0,10.0,0.0};
dir[] = {0.0,0.0,0.0};
pos[] = {0.0,0.0,0.0};
};
};
class Stage3
{
texture = "#(argb,8,8,3)color(0,0,0,0,MC)";
uvSource = "tex";
class uvTransform
{
aside[] = {1.0,0.0,0.0};
up[] = {0.0,1.0,0.0};
dir[] = {0.0,0.0,0.0};
pos[] = {0.0,0.0,0.0};
};
};
class Stage4
{
texture = "braf\braf_soft\braf_land_rover\Data\braf_landrover_out_as.paa";
uvSource = "tex";
class uvTransform
{
aside[] = {1.0,0.0,0.0};
up[] = {0.0,1.0,0.0};
dir[] = {0.0,0.0,1.0};
pos[] = {0.0,0.0,1.0};
};
};
class Stage5
{
texture = "braf\braf_soft\braf_land_rover\Data\Skins\EB\braf_EB_landroverout_smdi.paa";
uvSource = "tex";
class uvTransform
{
aside[] = {1.0,0.0,0.0};
up[] = {0.0,1.0,0.0};
dir[] = {0.0,0.0,1.0};
pos[] = {0.0,0.0,1.0};
};
};
class Stage6
{
texture = "#(ai,64,64,1)fresnel(2.0,0.1)";
uvSource = "none";
};
class Stage7
{
texture="a3\data_f\env_land_co.paa";
uvSource = "none";
};
// FIXME TeTeT
// class StageTI
// {
// texture = "braf\braf_soft\Braf_Marrua\AM11\Data\camo_1_ti_ca.paa";
// };
@@ -0,0 +1,85 @@
#define _ARMA_
ambient[] = {0.75,0.75,0.75,1.0};
diffuse[] = {0.75,0.75,0.75,1.0};
forcedDiffuse[] = {0.0,0.0,0.0,1.0};
emmisive[] = {0.0,0.0,0.0,1.0};
specular[] = {0.15,0.15,0.15,1.0};
specularPower = 75;
PixelShaderID = "Super";
VertexShaderID = "Super";
class Stage1
{
texture = "braf\braf_soft\braf_land_rover\Data\Skins\GEN\braf_landrover_GENin_nohq.paa";
uvSource = "tex";
class uvTransform
{
aside[] = {1.0,0.0,0.0};
up[] = {0.0,1.0,0.0};
dir[] = {0.0,0.0,0.0};
pos[] = {0.0,0.0,0.0};
};
};
class Stage2
{
texture = "#(argb,8,8,3)color(0.5,0.5,0.5,1,DT)";
uvSource = "tex";
class uvTransform
{
aside[] = {10.0,0.0,0.0};
up[] = {0.0,10.0,0.0};
dir[] = {0.0,0.0,0.0};
pos[] = {0.0,0.0,0.0};
};
};
class Stage3
{
texture = "#(argb,8,8,3)color(0,0,0,0,MC)";
uvSource = "tex";
class uvTransform
{
aside[] = {1.0,0.0,0.0};
up[] = {0.0,1.0,0.0};
dir[] = {0.0,0.0,0.0};
pos[] = {0.0,0.0,0.0};
};
};
class Stage4
{
texture = "braf\braf_soft\braf_land_rover\Data\braf_landrover_in_as.paa";
uvSource = "tex";
class uvTransform
{
aside[] = {1.0,0.0,0.0};
up[] = {0.0,1.0,0.0};
dir[] = {0.0,0.0,1.0};
pos[] = {0.0,0.0,1.0};
};
};
class Stage5
{
texture = "braf\braf_soft\braf_land_rover\Data\Skins\GEN\braf_landrover_GENin_smdi.paa";
uvSource = "tex";
class uvTransform
{
aside[] = {1.0,0.0,0.0};
up[] = {0.0,1.0,0.0};
dir[] = {0.0,0.0,1.0};
pos[] = {0.0,0.0,1.0};
};
};
class Stage6
{
texture = "#(ai,64,64,1)fresnel(2.0,0.1)";
uvSource = "none";
};
class Stage7
{
texture="a3\data_f\env_land_co.paa";
uvSource = "none";
};
// FIXME TeTeT
// class StageTI
// {
// texture = "braf\braf_soft\Braf_Marrua\AM11\Data\camo_1_ti_ca.paa";
// };
@@ -0,0 +1,85 @@
#define _ARMA_
ambient[] = {7,7,7,1};
diffuse[] = {0.75,0.75,0.75,1.0};
forcedDiffuse[] = {0.0,0.0,0.0,1.0};
emmisive[] = {0.0,0.0,0.0,1.0};
specular[] = {0.15,0.15,0.15,1.0};
specularPower = 75;
PixelShaderID = "Super";
VertexShaderID = "Super";
class Stage1
{
texture = "braf\braf_soft\braf_land_rover\Data\braf_landrover_out_nohq.paa";
uvSource = "tex";
class uvTransform
{
aside[] = {1.0,0.0,0.0};
up[] = {0.0,1.0,0.0};
dir[] = {0.0,0.0,0.0};
pos[] = {0.0,0.0,0.0};
};
};
class Stage2
{
texture = "#(argb,8,8,3)color(0.5,0.5,0.5,1,DT)";
uvSource = "tex";
class uvTransform
{
aside[] = {10.0,0.0,0.0};
up[] = {0.0,10.0,0.0};
dir[] = {0.0,0.0,0.0};
pos[] = {0.0,0.0,0.0};
};
};
class Stage3
{
texture = "#(argb,8,8,3)color(0,0,0,0,MC)";
uvSource = "tex";
class uvTransform
{
aside[] = {1.0,0.0,0.0};
up[] = {0.0,1.0,0.0};
dir[] = {0.0,0.0,0.0};
pos[] = {0.0,0.0,0.0};
};
};
class Stage4
{
texture = "braf\braf_soft\braf_land_rover\Data\braf_landrover_out_as.paa";
uvSource = "tex";
class uvTransform
{
aside[] = {1.0,0.0,0.0};
up[] = {0.0,1.0,0.0};
dir[] = {0.0,0.0,1.0};
pos[] = {0.0,0.0,1.0};
};
};
class Stage5
{
texture = "braf\braf_soft\braf_land_rover\Data\Skins\GEN\braf_landrover_GENout_smdi.paa";
uvSource = "tex";
class uvTransform
{
aside[] = {1.0,0.0,0.0};
up[] = {0.0,1.0,0.0};
dir[] = {0.0,0.0,1.0};
pos[] = {0.0,0.0,1.0};
};
};
class Stage6
{
texture = "#(ai,64,64,1)fresnel(2.0,0.1)";
uvSource = "none";
};
class Stage7
{
texture="a3\data_f\env_land_co.paa";
uvSource = "none";
};
// FIXME TeTeT
// class StageTI
// {
// texture = "braf\braf_soft\Braf_Marrua\AM11\Data\camo_1_ti_ca.paa";
// };
@@ -0,0 +1,85 @@
#define _ARMA_
ambient[] = {0.75,0.75,0.75,1.0};
diffuse[] = {0.75,0.75,0.75,1.0};
forcedDiffuse[] = {0.0,0.0,0.0,1.0};
emmisive[] = {0.0,0.0,0.0,1.0};
specular[] = {0.15,0.15,0.15,1.0};
specularPower = 75;
PixelShaderID = "Super";
VertexShaderID = "Super";
class Stage1
{
texture = "braf\braf_soft\braf_land_rover\Data\braf_landrover_in_nohq.paa";
uvSource = "tex";
class uvTransform
{
aside[] = {1.0,0.0,0.0};
up[] = {0.0,1.0,0.0};
dir[] = {0.0,0.0,0.0};
pos[] = {0.0,0.0,0.0};
};
};
class Stage2
{
texture = "#(argb,8,8,3)color(0.5,0.5,0.5,1,DT)";
uvSource = "tex";
class uvTransform
{
aside[] = {10.0,0.0,0.0};
up[] = {0.0,10.0,0.0};
dir[] = {0.0,0.0,0.0};
pos[] = {0.0,0.0,0.0};
};
};
class Stage3
{
texture = "#(argb,8,8,3)color(0,0,0,0,MC)";
uvSource = "tex";
class uvTransform
{
aside[] = {1.0,0.0,0.0};
up[] = {0.0,1.0,0.0};
dir[] = {0.0,0.0,0.0};
pos[] = {0.0,0.0,0.0};
};
};
class Stage4
{
texture = "braf\braf_soft\braf_land_rover\Data\braf_landrover_in_as.paa";
uvSource = "tex";
class uvTransform
{
aside[] = {1.0,0.0,0.0};
up[] = {0.0,1.0,0.0};
dir[] = {0.0,0.0,1.0};
pos[] = {0.0,0.0,1.0};
};
};
class Stage5
{
texture = "braf\braf_soft\braf_land_rover\Data\Skins\cfn\braf_landrover_navy_in_co.paa";
uvSource = "tex";
class uvTransform
{
aside[] = {1.0,0.0,0.0};
up[] = {0.0,1.0,0.0};
dir[] = {0.0,0.0,1.0};
pos[] = {0.0,0.0,1.0};
};
};
class Stage6
{
texture = "#(ai,64,64,1)fresnel(2.0,0.1)";
uvSource = "none";
};
class Stage7
{
texture="a3\data_f\env_land_co.paa";
uvSource = "none";
};
// FIXME TeTeT
// class StageTI
// {
// texture = "braf\braf_soft\Braf_Marrua\AM11\Data\camo_1_ti_ca.paa";
// };
@@ -0,0 +1,85 @@
#define _ARMA_
ambient[] = {7,7,7,1};
diffuse[] = {0.75,0.75,0.75,1.0};
forcedDiffuse[] = {0.0,0.0,0.0,1.0};
emmisive[] = {0.0,0.0,0.0,1.0};
specular[] = {0.15,0.15,0.15,1.0};
specularPower = 75;
PixelShaderID = "Super";
VertexShaderID = "Super";
class Stage1
{
texture = "braf\braf_soft\braf_land_rover\Data\braf_landrover_out_nohq.paa";
uvSource = "tex";
class uvTransform
{
aside[] = {1.0,0.0,0.0};
up[] = {0.0,1.0,0.0};
dir[] = {0.0,0.0,0.0};
pos[] = {0.0,0.0,0.0};
};
};
class Stage2
{
texture = "#(argb,8,8,3)color(0.5,0.5,0.5,1,DT)";
uvSource = "tex";
class uvTransform
{
aside[] = {10.0,0.0,0.0};
up[] = {0.0,10.0,0.0};
dir[] = {0.0,0.0,0.0};
pos[] = {0.0,0.0,0.0};
};
};
class Stage3
{
texture = "#(argb,8,8,3)color(0,0,0,0,MC)";
uvSource = "tex";
class uvTransform
{
aside[] = {1.0,0.0,0.0};
up[] = {0.0,1.0,0.0};
dir[] = {0.0,0.0,0.0};
pos[] = {0.0,0.0,0.0};
};
};
class Stage4
{
texture = "braf\braf_soft\braf_land_rover\Data\braf_landrover_out_as.paa";
uvSource = "tex";
class uvTransform
{
aside[] = {1.0,0.0,0.0};
up[] = {0.0,1.0,0.0};
dir[] = {0.0,0.0,1.0};
pos[] = {0.0,0.0,1.0};
};
};
class Stage5
{
texture = "braf\braf_soft\braf_land_rover\Data\Skins\CFN\braf_landrover_navy_out_smdi.paa";
uvSource = "tex";
class uvTransform
{
aside[] = {1.0,0.0,0.0};
up[] = {0.0,1.0,0.0};
dir[] = {0.0,0.0,1.0};
pos[] = {0.0,0.0,1.0};
};
};
class Stage6
{
texture = "#(ai,64,64,1)fresnel(2.0,0.1)";
uvSource = "none";
};
class Stage7
{
texture="a3\data_f\env_land_co.paa";
uvSource = "none";
};
// FIXME TeTeT
// class StageTI
// {
// texture = "braf\braf_soft\Braf_Marrua\AM11\Data\camo_1_ti_ca.paa";
// };
@@ -0,0 +1,85 @@
#define _ARMA_
ambient[] = {0.75,0.75,0.75,1.0};
diffuse[] = {0.75,0.75,0.75,1.0};
forcedDiffuse[] = {0.0,0.0,0.0,1.0};
emmisive[] = {0.0,0.0,0.0,1.0};
specular[] = {0.15,0.15,0.15,1.0};
specularPower = 75;
PixelShaderID = "Super";
VertexShaderID = "Super";
class Stage1
{
texture = "braf\braf_soft\braf_land_rover\Data\braf_landrover_in_nohq.paa";
uvSource = "tex";
class uvTransform
{
aside[] = {1.0,0.0,0.0};
up[] = {0.0,1.0,0.0};
dir[] = {0.0,0.0,0.0};
pos[] = {0.0,0.0,0.0};
};
};
class Stage2
{
texture = "#(argb,8,8,3)color(0.5,0.5,0.5,1,DT)";
uvSource = "tex";
class uvTransform
{
aside[] = {10.0,0.0,0.0};
up[] = {0.0,10.0,0.0};
dir[] = {0.0,0.0,0.0};
pos[] = {0.0,0.0,0.0};
};
};
class Stage3
{
texture = "#(argb,8,8,3)color(0,0,0,0,MC)";
uvSource = "tex";
class uvTransform
{
aside[] = {1.0,0.0,0.0};
up[] = {0.0,1.0,0.0};
dir[] = {0.0,0.0,0.0};
pos[] = {0.0,0.0,0.0};
};
};
class Stage4
{
texture = "braf\braf_soft\braf_land_rover\Data\braf_landrover_in_as.paa";
uvSource = "tex";
class uvTransform
{
aside[] = {1.0,0.0,0.0};
up[] = {0.0,1.0,0.0};
dir[] = {0.0,0.0,1.0};
pos[] = {0.0,0.0,1.0};
};
};
class Stage5
{
texture = "braf\braf_soft\braf_land_rover\Data\Skins\hiaf\braf_landrover_hiaf_in_smdi.paa";
uvSource = "tex";
class uvTransform
{
aside[] = {1.0,0.0,0.0};
up[] = {0.0,1.0,0.0};
dir[] = {0.0,0.0,1.0};
pos[] = {0.0,0.0,1.0};
};
};
class Stage6
{
texture = "#(ai,64,64,1)fresnel(2.0,0.1)";
uvSource = "none";
};
class Stage7
{
texture="a3\data_f\env_land_co.paa";
uvSource = "none";
};
// FIXME TeTeT
// class StageTI
// {
// texture = "braf\braf_soft\Braf_Marrua\AM11\Data\camo_1_ti_ca.paa";
// };
@@ -0,0 +1,85 @@
#define _ARMA_
ambient[] = {7,7,7,1};
diffuse[] = {0.75,0.75,0.75,1.0};
forcedDiffuse[] = {0.0,0.0,0.0,1.0};
emmisive[] = {0.0,0.0,0.0,1.0};
specular[] = {0.15,0.15,0.15,1.0};
specularPower = 75;
PixelShaderID = "Super";
VertexShaderID = "Super";
class Stage1
{
texture = "braf\braf_soft\braf_land_rover\Data\braf_landrover_out_nohq.paa";
uvSource = "tex";
class uvTransform
{
aside[] = {1.0,0.0,0.0};
up[] = {0.0,1.0,0.0};
dir[] = {0.0,0.0,0.0};
pos[] = {0.0,0.0,0.0};
};
};
class Stage2
{
texture = "#(argb,8,8,3)color(0.5,0.5,0.5,1,DT)";
uvSource = "tex";
class uvTransform
{
aside[] = {10.0,0.0,0.0};
up[] = {0.0,10.0,0.0};
dir[] = {0.0,0.0,0.0};
pos[] = {0.0,0.0,0.0};
};
};
class Stage3
{
texture = "#(argb,8,8,3)color(0,0,0,0,MC)";
uvSource = "tex";
class uvTransform
{
aside[] = {1.0,0.0,0.0};
up[] = {0.0,1.0,0.0};
dir[] = {0.0,0.0,0.0};
pos[] = {0.0,0.0,0.0};
};
};
class Stage4
{
texture = "braf\braf_soft\braf_land_rover\Data\braf_landrover_out_as.paa";
uvSource = "tex";
class uvTransform
{
aside[] = {1.0,0.0,0.0};
up[] = {0.0,1.0,0.0};
dir[] = {0.0,0.0,1.0};
pos[] = {0.0,0.0,1.0};
};
};
class Stage5
{
texture = "braf\braf_soft\braf_land_rover\Data\Skins\hiaf\braf_landrover_hiaf_out_smdi.paa";
uvSource = "tex";
class uvTransform
{
aside[] = {1.0,0.0,0.0};
up[] = {0.0,1.0,0.0};
dir[] = {0.0,0.0,1.0};
pos[] = {0.0,0.0,1.0};
};
};
class Stage6
{
texture = "#(ai,64,64,1)fresnel(2.0,0.1)";
uvSource = "none";
};
class Stage7
{
texture="a3\data_f\env_land_co.paa";
uvSource = "none";
};
// FIXME TeTeT
// class StageTI
// {
// texture = "braf\braf_soft\Braf_Marrua\AM11\Data\camo_1_ti_ca.paa";
// };
@@ -0,0 +1,85 @@
#define _ARMA_
ambient[] = {0.75,0.75,0.75,1.0};
diffuse[] = {0.75,0.75,0.75,1.0};
forcedDiffuse[] = {0.0,0.0,0.0,1.0};
emmisive[] = {0.0,0.0,0.0,1.0};
specular[] = {0.15,0.15,0.15,1.0};
specularPower = 75;
PixelShaderID = "Super";
VertexShaderID = "Super";
class Stage1
{
texture = "braf\braf_soft\braf_land_rover\Data\braf_landrover_in_nohq.paa";
uvSource = "tex";
class uvTransform
{
aside[] = {1.0,0.0,0.0};
up[] = {0.0,1.0,0.0};
dir[] = {0.0,0.0,0.0};
pos[] = {0.0,0.0,0.0};
};
};
class Stage2
{
texture = "#(argb,8,8,3)color(0.5,0.5,0.5,1,DT)";
uvSource = "tex";
class uvTransform
{
aside[] = {10.0,0.0,0.0};
up[] = {0.0,10.0,0.0};
dir[] = {0.0,0.0,0.0};
pos[] = {0.0,0.0,0.0};
};
};
class Stage3
{
texture = "#(argb,8,8,3)color(0,0,0,0,MC)";
uvSource = "tex";
class uvTransform
{
aside[] = {1.0,0.0,0.0};
up[] = {0.0,1.0,0.0};
dir[] = {0.0,0.0,0.0};
pos[] = {0.0,0.0,0.0};
};
};
class Stage4
{
texture = "braf\braf_soft\braf_land_rover\Data\braf_landrover_in_as.paa";
uvSource = "tex";
class uvTransform
{
aside[] = {1.0,0.0,0.0};
up[] = {0.0,1.0,0.0};
dir[] = {0.0,0.0,1.0};
pos[] = {0.0,0.0,1.0};
};
};
class Stage5
{
texture = "braf\braf_soft\braf_land_rover\Data\Skins\UN\braf_landrover_un_in_smdi.paa";
uvSource = "tex";
class uvTransform
{
aside[] = {1.0,0.0,0.0};
up[] = {0.0,1.0,0.0};
dir[] = {0.0,0.0,1.0};
pos[] = {0.0,0.0,1.0};
};
};
class Stage6
{
texture = "#(ai,64,64,1)fresnel(2.0,0.1)";
uvSource = "none";
};
class Stage7
{
texture="a3\data_f\env_land_co.paa";
uvSource = "none";
};
// FIXME TeTeT
// class StageTI
// {
// texture = "braf\braf_soft\Braf_Marrua\AM11\Data\camo_1_ti_ca.paa";
// };
@@ -0,0 +1,85 @@
#define _ARMA_
ambient[] = {7,7,7,1};
diffuse[] = {0.75,0.75,0.75,1.0};
forcedDiffuse[] = {0.0,0.0,0.0,1.0};
emmisive[] = {0.0,0.0,0.0,1.0};
specular[] = {0.15,0.15,0.15,1.0};
specularPower = 75;
PixelShaderID = "Super";
VertexShaderID = "Super";
class Stage1
{
texture = "braf\braf_soft\braf_land_rover\Data\braf_landrover_out_nohq.paa";
uvSource = "tex";
class uvTransform
{
aside[] = {1.0,0.0,0.0};
up[] = {0.0,1.0,0.0};
dir[] = {0.0,0.0,0.0};
pos[] = {0.0,0.0,0.0};
};
};
class Stage2
{
texture = "#(argb,8,8,3)color(0.5,0.5,0.5,1,DT)";
uvSource = "tex";
class uvTransform
{
aside[] = {10.0,0.0,0.0};
up[] = {0.0,10.0,0.0};
dir[] = {0.0,0.0,0.0};
pos[] = {0.0,0.0,0.0};
};
};
class Stage3
{
texture = "#(argb,8,8,3)color(0,0,0,0,MC)";
uvSource = "tex";
class uvTransform
{
aside[] = {1.0,0.0,0.0};
up[] = {0.0,1.0,0.0};
dir[] = {0.0,0.0,0.0};
pos[] = {0.0,0.0,0.0};
};
};
class Stage4
{
texture = "braf\braf_soft\braf_land_rover\Data\braf_landrover_out_as.paa";
uvSource = "tex";
class uvTransform
{
aside[] = {1.0,0.0,0.0};
up[] = {0.0,1.0,0.0};
dir[] = {0.0,0.0,1.0};
pos[] = {0.0,0.0,1.0};
};
};
class Stage5
{
texture = "braf\braf_soft\braf_land_rover\Data\Skins\UN\braf_landrover_un_in_smdi.paa";
uvSource = "tex";
class uvTransform
{
aside[] = {1.0,0.0,0.0};
up[] = {0.0,1.0,0.0};
dir[] = {0.0,0.0,1.0};
pos[] = {0.0,0.0,1.0};
};
};
class Stage6
{
texture = "#(ai,64,64,1)fresnel(2.0,0.1)";
uvSource = "none";
};
class Stage7
{
texture="a3\data_f\env_land_co.paa";
uvSource = "none";
};
// FIXME TeTeT
// class StageTI
// {
// texture = "braf\braf_soft\Braf_Marrua\AM11\Data\camo_1_ti_ca.paa";
// };
Binary file not shown.
@@ -0,0 +1,85 @@
// FIXME TeTeT, this is just a copy
#define _ARMA_
ambient[] = {7,7,7,1};
diffuse[] = {0.75,0.75,0.75,1.0};
forcedDiffuse[] = {0.0,0.0,0.0,1.0};
emmisive[] = {0.0,0.0,0.0,1.0};
specular[] = {0.15,0.15,0.15,1.0};
specularPower = 75;
PixelShaderID = "Super";
VertexShaderID = "Super";
class Stage1
{
texture = "braf\braf_soft\braf_land_rover\Data\braf_extraparts_nohq.paa";
uvSource = "tex";
class uvTransform
{
aside[] = {1.0,0.0,0.0};
up[] = {0.0,1.0,0.0};
dir[] = {0.0,0.0,0.0};
pos[] = {0.0,0.0,0.0};
};
};
class Stage2
{
texture = "#(argb,8,8,3)color(0.5,0.5,0.5,1,DT)";
uvSource = "tex";
class uvTransform
{
aside[] = {10.0,0.0,0.0};
up[] = {0.0,10.0,0.0};
dir[] = {0.0,0.0,0.0};
pos[] = {0.0,0.0,0.0};
};
};
class Stage3
{
texture = "#(argb,8,8,3)color(0,0,0,0,MC)";
uvSource = "tex";
class uvTransform
{
aside[] = {1.0,0.0,0.0};
up[] = {0.0,1.0,0.0};
dir[] = {0.0,0.0,0.0};
pos[] = {0.0,0.0,0.0};
};
};
class Stage4
{
texture = "braf\braf_soft\braf_land_rover\Data\braf_extraparts_as.paa";
uvSource = "tex";
class uvTransform
{
aside[] = {1.0,0.0,0.0};
up[] = {0.0,1.0,0.0};
dir[] = {0.0,0.0,1.0};
pos[] = {0.0,0.0,1.0};
};
};
class Stage5
{
texture = "braf\braf_soft\braf_land_rover\Data\braf_extraparts_smdi.paa";
uvSource = "tex";
class uvTransform
{
aside[] = {1.0,0.0,0.0};
up[] = {0.0,1.0,0.0};
dir[] = {0.0,0.0,1.0};
pos[] = {0.0,0.0,1.0};
};
};
class Stage6
{
texture = "#(ai,64,64,1)fresnel(2.0,0.1)";
uvSource = "none";
};
class Stage7
{
texture="a3\data_f\env_land_co.paa";
uvSource = "none";
};
class StageTI
{
texture="a3\data_f\default_ti_ca.paa";
};
@@ -0,0 +1,96 @@
ambient[]={1.000000,1.000000,1.000000,1.000000};
diffuse[]={1.000000,1.000000,1.000000,1.000000};
forcedDiffuse[]={0.000000,0.000000,0.000000,0.000000};
emmisive[]={0.000000,0.000000,0.000000,0.000000};
specular[]={0.470588,0.470588,0.470588,1.000000};
specularPower=100.000000;
PixelShaderID="Super";
VertexShaderID="Super";
class Stage1
{
texture="braf\braf_soft\braf_land_rover\Data\braf_landrover_glass_nohq.paa";
uvSource="tex";
class uvTransform
{
aside[]={1.000000,0.000000,0.000000};
up[]={0.000000,1.000000,0.000000};
dir[]={0.000000,0.000000,0.000000};
pos[]={0.000000,0.000000,0.000000};
};
};
class Stage2
{
texture="#(argb,8,8,3)color(0.5,0.5,0.5,1,DT)";
uvSource="tex";
class uvTransform
{
aside[]={3.000000,0.000000,0.000000};
up[]={0.000000,3.000000,0.000000};
dir[]={0.000000,0.000000,0.000000};
pos[]={0.000000,0.000000,0.000000};
};
};
class Stage3
{
texture="#(argb,8,8,3)color(0,0,0,0,MC)";
uvSource="tex";
class uvTransform
{
aside[]={1.000000,0.000000,0.000000};
up[]={0.000000,1.000000,0.000000};
dir[]={0.000000,0.000000,0.000000};
pos[]={0.000000,0.000000,0.000000};
};
};
class Stage4
{
texture="#(argb,8,8,3)color(1,1,1,1,AS)";
uvSource="tex";
class uvTransform
{
aside[]={1.000000,0.000000,0.000000};
up[]={0.000000,1.000000,0.000000};
dir[]={0.000000,0.000000,0.000000};
pos[]={0.000000,0.000000,0.000000};
};
};
class Stage5
{
texture="braf\braf_soft\braf_land_rover\Data\braf_landrover_glass_smdi.paa";
uvSource="tex";
class uvTransform
{
aside[]={1.000000,0.000000,0.000000};
up[]={0.000000,1.000000,0.000000};
dir[]={0.000000,0.000000,0.000000};
pos[]={0.000000,0.000000,0.000000};
};
};
class Stage6
{
texture="#(ai,64,64,1)fresnelGlass(2.1)";
uvSource="tex";
class uvTransform
{
aside[]={1.000000,0.000000,0.000000};
up[]={0.000000,1.000000,0.000000};
dir[]={0.000000,0.000000,0.000000};
pos[]={0.000000,0.000000,0.000000};
};
};
class Stage7
{
texture="a3\data_f\env_land_ca.paa";
uvSource="tex";
class uvTransform
{
aside[]={1.000000,0.000000,0.000000};
up[]={0.000000,1.000000,0.000000};
dir[]={0.000000,0.000000,0.000000};
pos[]={0.000000,0.000000,0.000000};
};
};
class StageTI
{
texture="a3\data_f\default_ti_ca.paa";
};
@@ -0,0 +1,85 @@
#define _ARMA_
ambient[] = {0.75,0.75,0.75,1.0};
diffuse[] = {0.75,0.75,0.75,1.0};
forcedDiffuse[] = {0.0,0.0,0.0,1.0};
emmisive[] = {0.0,0.0,0.0,1.0};
specular[] = {0.15,0.15,0.15,1.0};
specularPower = 75;
PixelShaderID = "Super";
VertexShaderID = "Super";
class Stage1
{
texture = "braf\braf_soft\braf_land_rover\Data\braf_landrover_in_nohq.paa";
uvSource = "tex";
class uvTransform
{
aside[] = {1.0,0.0,0.0};
up[] = {0.0,1.0,0.0};
dir[] = {0.0,0.0,0.0};
pos[] = {0.0,0.0,0.0};
};
};
class Stage2
{
texture = "#(argb,8,8,3)color(0.5,0.5,0.5,1,DT)";
uvSource = "tex";
class uvTransform
{
aside[] = {10.0,0.0,0.0};
up[] = {0.0,10.0,0.0};
dir[] = {0.0,0.0,0.0};
pos[] = {0.0,0.0,0.0};
};
};
class Stage3
{
texture = "#(argb,8,8,3)color(0,0,0,0,MC)";
uvSource = "tex";
class uvTransform
{
aside[] = {1.0,0.0,0.0};
up[] = {0.0,1.0,0.0};
dir[] = {0.0,0.0,0.0};
pos[] = {0.0,0.0,0.0};
};
};
class Stage4
{
texture = "braf\braf_soft\braf_land_rover\Data\braf_landrover_in_as.paa";
uvSource = "tex";
class uvTransform
{
aside[] = {1.0,0.0,0.0};
up[] = {0.0,1.0,0.0};
dir[] = {0.0,0.0,1.0};
pos[] = {0.0,0.0,1.0};
};
};
class Stage5
{
texture = "braf\braf_soft\braf_land_rover\Data\braf_landrover_in_smdi.paa";
uvSource = "tex";
class uvTransform
{
aside[] = {1.0,0.0,0.0};
up[] = {0.0,1.0,0.0};
dir[] = {0.0,0.0,1.0};
pos[] = {0.0,0.0,1.0};
};
};
class Stage6
{
texture = "#(ai,64,64,1)fresnel(2.0,0.1)";
uvSource = "none";
};
class Stage7
{
texture="a3\data_f\env_land_co.paa";
uvSource = "none";
};
// FIXME TeTeT
// class StageTI
// {
// texture = "braf\braf_soft\Braf_Marrua\AM11\Data\camo_1_ti_ca.paa";
// };
@@ -0,0 +1,84 @@
#define _ARMA_
ambient[] = {7,7,7,1};
diffuse[] = {0.75,0.75,0.75,1.0};
forcedDiffuse[] = {0.0,0.0,0.0,1.0};
emmisive[] = {0.0,0.0,0.0,1.0};
specular[] = {0.15,0.15,0.15,1.0};
specularPower = 75;
PixelShaderID = "Super";
VertexShaderID = "Super";
class Stage1
{
texture = "braf\braf_soft\braf_land_rover\Data\braf_landrover_out_nohq.paa";
uvSource = "tex";
class uvTransform
{
aside[] = {1.0,0.0,0.0};
up[] = {0.0,1.0,0.0};
dir[] = {0.0,0.0,0.0};
pos[] = {0.0,0.0,0.0};
};
};
class Stage2
{
texture = "#(argb,8,8,3)color(0.5,0.5,0.5,1,DT)";
uvSource = "tex";
class uvTransform
{
aside[] = {10.0,0.0,0.0};
up[] = {0.0,10.0,0.0};
dir[] = {0.0,0.0,0.0};
pos[] = {0.0,0.0,0.0};
};
};
class Stage3
{
texture = "#(argb,8,8,3)color(0,0,0,0,MC)";
uvSource = "tex";
class uvTransform
{
aside[] = {1.0,0.0,0.0};
up[] = {0.0,1.0,0.0};
dir[] = {0.0,0.0,0.0};
pos[] = {0.0,0.0,0.0};
};
};
class Stage4
{
texture = "braf\braf_soft\braf_land_rover\Data\braf_landrover_out_as.paa";
uvSource = "tex";
class uvTransform
{
aside[] = {1.0,0.0,0.0};
up[] = {0.0,1.0,0.0};
dir[] = {0.0,0.0,1.0};
pos[] = {0.0,0.0,1.0};
};
};
class Stage5
{
texture = "braf\braf_soft\braf_land_rover\Data\braf_landrover_out_smdi.paa";
uvSource = "tex";
class uvTransform
{
aside[] = {1.0,0.0,0.0};
up[] = {0.0,1.0,0.0};
dir[] = {0.0,0.0,1.0};
pos[] = {0.0,0.0,1.0};
};
};
class Stage6
{
texture = "#(ai,64,64,1)fresnel(2.0,0.1)";
uvSource = "none";
};
class Stage7
{
texture="a3\data_f\env_land_co.paa";
uvSource = "none";
};
class StageTI
{
texture = "a3\data_f\default_ti_ca.paa";
};
@@ -0,0 +1,93 @@
#define true 1
#define false 0
#define VSoft 0
#define VArmor 1
#define VAir 2
// type scope
#define private 0
#define protected 1
#define public 2
#define CanSeeRadar 1
#define CanSeeEye 2
#define CanSeeOptics 4
#define CanSeeEar 8
#define CanSeeCompass 16
#define CanSeeRadarC CanSeeRadar+CanSeeCompass
#define CanSeeAll 31
#define CanSeePeripheral 32
//lock acquiring
#define manualLA 0
#define automaticLA 1
//lockable target type
#define lockGroundTT 0
#define lockAirGroundTT 1
#define lockAirTT 2
#define lockGround 0
#define lockAirGround 1
#define lockAir 2
//missile lock type
#define fireAndForgetLT 0
#define keepLockedLT 1
#define manualLT 2
#define SPEED_STATIC 1e10
#define LockNo 0
#define LockCadet 1
#define LockYes 2
enum {StabilizedInAxesNone,StabilizedInAxisX,StabilizedInAxisY,StabilizedInAxesBoth, StabilizedInAxesXYZ};
#define StabilizedInAxesNone 0
#define StabilizedInAxisX 1
#define StabilizedInAxisY 2
#define StabilizedInAxesBoth 3
#define StabilizedInAxesXYZ 4
#define CM_none 0
#define CM_Lock_Visual 1
#define CM_Lock_IR 2
#define CM_Lock_Laser 4
#define CM_Lock_Radar 8
#define CM_Missile 16
#define CMImmunity_GOOD 0.9
#define CMImmunity_MIDDLE 0.65
#define CMImmunity_BAD 0.5
#define mag_xx(a,b) class _xx_##a {magazine = a; count = b;}
#define weap_xx(a,b) class _xx_##a {weapon = a; count = b;}
#define item_xx(a,b) class _xx_##a {name = a; count = b;}
#define bag_xx(a,b) class _xx_##a {backpack = a; count = b;}
#define DEFAULT_SLOT 0
#define MUZZLE_SLOT 101
#define OPTICS_SLOT 201
#define FLASHLIGHT_SLOT 301
#define NVG_SLOT 602
#define GOGGLE_SLOT 603
#define HEADGEAR_SLOT 605
#define UNIFORM_SLOT 801
#define HMD_SLOT 616
#define BINOCULAR_SLOT 617
#define MEDIKIT_SLOT 619
#define RADIO_SLOT 611
#define VEST_SLOT 701
#define BACKPACK_SLOT 901
#define LOAD(weight,capacity) maximumLoad = ##capacity##; \
mass = ##weight##;
#define HeadArmourCoef 2.5
#define BodyArmourCoef 10
#define HandArmourCoef 5
#define LegArmourCoef 5
@@ -0,0 +1,5 @@
class BIS_AddonInfo
{
author="Bento";
timepacked="1711545759";
};
Binary file not shown.
@@ -0,0 +1,46 @@
topLeft = "HUD_top_left";
topRight = "HUD_top_right";
bottomLeft = "HUD_bottom_left";
/// adjust position inside of memory points LOD
borderLeft = 0;
borderRight = 0;
borderTop = 0;
borderBottom = 0.0;
color[] = {0.15, 0.15, 1.0, 1.0};
enableParallax = false;
class Bones
{
};
class Draw
{
color[] = {0.07, 0.67, 0.745};
alpha = 1;
class ClockHour
{
type = text;
source = ClockHour;
sourceScale = 12; /// the original source is on the scale (0-1), it needs to be multiplied
align = right;
scale = 2;
pos[] = {{0.05, 0.00}, 1};
right[] = {{0.40, 0.00}, 1};
down[] = {{0.05, 1.00}, 1};
};
class ClockMinute
{
type = text;
source = ClockMinute;
sourceScale = 60; /// the original source is on the scale (0-1), it needs to be multiplied
align = right;
scale = 2;
pos[] = {{0.55, 0.00}, 1};
right[] = {{0.90, 0.00}, 1};
down[] = {{0.55, 1.00}, 1};
};
};
@@ -0,0 +1,118 @@
class TextureSources
{
class C_BRAF_LR110_SW
{
displayName = "Army";
author = "OdyseusBR";
textures[] =
{
"braf\braf_soft\braf_land_rover\Data\Skins\EB\braf_EB_landroverout_co.paa",
"braf\braf_soft\braf_land_rover\Data\Skins\EB\braf_EB_landroverin_co.paa",
};
hiddenSelectionsMaterials[] =
{
"braf\braf_soft\braf_land_rover\Data\Skins\EB\braf_EB_landrover_out.rvmat",
"braf\braf_soft\braf_land_rover\Data\Skins\EB\braf_EB_landrover_in.rvmat",
};
};
class C_BRAF_LR110_CFN
{
displayName = "Navy";
author = "OdyseusBR";
textures[] =
{
"braf\braf_soft\braf_land_rover\Data\Skins\CFN\braf_landrover_navy_out_co.paa",
"braf\braf_soft\braf_land_rover\Data\Skins\EB\braf_EB_landroverin_co.paa",
};
hiddenSelectionsMaterials[] =
{
"braf\braf_soft\braf_land_rover\Data\Skins\EB\braf_EB_landrover_in.rvmat",
"braf\braf_soft\braf_land_rover\Data\Skins\CFN\braf_CFN_landrover_in.rvmat",
};
};
class C_BRAF_LR_110_GEN
{
displayName = "Gendarmerie";
author = "OdyseusBR";
textures[] =
{
"braf\braf_soft\braf_land_rover\Data\Skins\GEN\braf_landrover_GENout_co.paa",
"braf\braf_soft\braf_land_rover\Data\Skins\GEN\braf_landrover_GENin_co.paa"
};
hiddenSelectionsMaterials[] =
{
"braf\braf_soft\braf_land_rover\Data\Skins\GEN\braf_GEN_landrover_out.rvmat",
"braf\braf_soft\braf_land_rover\Data\Skins\GEN\braf_GEN_landrover_in.rvmat",
};
};
class C_BRAF_LR_110_UN
{
displayName = "UN";
author = "OdyseusBR";
textures[] =
{
"braf\braf_soft\braf_land_rover\Data\Skins\UN\braf_landrover_UN_out_co.paa",
"braf\braf_soft\braf_land_rover\Data\Skins\UN\braf_landrover_UN_in_co.paa"
};
hiddenSelectionsMaterials[] =
{
"braf\braf_soft\braf_land_rover\Data\Skins\GEN\braf_GEN_landrover_out.rvmat",
"braf\braf_soft\braf_land_rover\Data\Skins\GEN\braf_GEN_landrover_in.rvmat",
};
};
class C_BRAF_LR_110_HIAF
{
displayName = "HIAF";
author = "OdyseusBR";
textures[] =
{
"braf\braf_soft\braf_land_rover\Data\Skins\HIAF\braf_landrover_HIAF_out_co.paa",
"braf\braf_soft\braf_land_rover\Data\Skins\HIAF\braf_landrover_HIAF_in_co.paa"
};
};
class C_BRAF_LR_110_white
{
displayName = "White";
author = "OdyseusBR";
textures[] =
{
"braf\braf_soft\braf_land_rover\Data\braf_landrover_out_co.paa",
"braf\braf_soft\braf_land_rover\Data\braf_landrover_in_co.paa"
};
};
};
animationList[] = {};
textureList[] =
{
"C_BRAF_LR110_SW", 1,
"C_BRAF_LR_110_GEN", 0,
"C_BRAF_LR_110_UN", 0,
"C_BRAF_LR_110_HIAF", 0,
"C_BRAF_LR_110_white", 0,
};
+752
View File
@@ -0,0 +1,752 @@
#include "BIS_AddonInfo.hpp"
#include "basicdefines_A3.hpp"
class DefaultEventhandlers;
#include "CfgPatches.hpp"
class WeaponFireGun;
class WeaponCloudsGun;
class WeaponFireMGun;
class WeaponCloudsMGun;
class CfgVehicles
{
class LandVehicle;
class Car: LandVehicle
{
class HitPoints;
class NewTurret;
};
class Car_F: Car
{
class Turrets
{
class MainTurret: NewTurret
{
class ViewOptics;
class ViewGunner;
};
};
class HitPoints /// we want to use hitpoints predefined for all cars
{
class HitLFWheel;
class HitLF2Wheel;
class HitRFWheel;
class HitRF2Wheel;
class HitBody;
class HitFuel;
class HitEngine;
class HitGlass1{};
class HitGlass2;
class HitGlass3;
class HitGlass4;
};
class EventHandlers;
class AnimationSources;
};
class Offroad_01_base_F: car_f {};
class BRAF_LR_01_Base: Offroad_01_base_F
{
selectionBackLights = "zadni svetlo";
selectionBrakeLights = "brzdove svetlo";
model = "braf\braf_soft\braf_land_rover\braf_LR.p3d"; /// simple path to model
picture = "braf\braf_soft\braf_land_rover\DATA\UI\Picture_lr_CA.paa"; /// just some icon in command bar
icon = "braf\braf_soft\braf_land_rover\data\UI\icon_lr_transport_ca.paa"; /// icon in map // imcompleto precisa ser feito
vehicleClass = "BRAF_Car";
displayName = "Defender 110 SW"; /// displayed in Editor
hiddenSelections[] =
{
"camo1",
"camo2"
};
hiddenSelectionsTextures[] =
{
"braf\braf_soft\braf_land_rover\data\braf_landrover_out_co.paa",
"braf\braf_soft\braf_land_rover\data\braf_landrover_in_co.paa"
};
terrainCoef = 2.5; /// different surface affects this car more, stick to tarmac
turnCoef = 2.5; /// should match the wheel turn radius
precision = 10; /// how much freedom has the AI for its internal waypoints - lower number means more precise but slower approach to way
brakeDistance = 3.0; /// how many internal waypoints should the AI plan braking in advance
acceleration = 15; /// how fast acceleration does the AI think the car has
fireResistance = 5; /// lesser protection against fire than tanks
armor = 32; /// just some protection against missiles, collisions and explosions
cost = 50000; /// how likely is the enemy going to target this vehicle
afmax = 100;
transportMaxBackpacks = 8; /// just some backpacks fit the trunk by default
transportSoldier = 4; /// number of cargo except driver
cargoProxyIndexes[] = {4,5,6,7};
getInProxyOrder[] = {1,2,3,4,5,6,7};
class CargoTurret;
class Turrets: Turrets
{
class CargoTurret_01: CargoTurret
{
gunnerAction = "passenger_inside_7";
memoryPointsGetInGunner = "pos cargo RF";
memoryPointsGetInGunnerDir = "pos cargo RF dir";
gunnerName = "$STR_A3_TURRETS_CARGOTURRET_R1";
gunnerCompartments = "Compartment2";
proxyIndex = 1;
isPersonTurret = 3;
canHideGunner = 0;
allowLauncherIn = 0;
allowLauncherOut = 0;
class TurnIn
{
limitsArrayTop[] = {{23.9621,-61.2561},{14.3315,-18.7728}};
limitsArrayBottom[] = {{-19.6203,-79.3331},{-16.2632,-23.6018}};
};
class dynamicViewLimits
{
CargoTurret_02[] = {-65,75};
};
};
class CargoTurret_02: CargoTurret_01
{
gunnerAction = "passenger_inside_7";
gunnerName = "$STR_A3_TURRETS_CARGOTURRET_L2";
memoryPointsGetInGunner = "pos cargo LR";
memoryPointsGetInGunnerDir = "pos cargo LR dir";
proxyIndex = 2;
class TurnIn
{
limitsArrayTop[] = {{37.1488,-71.9003},{36.4967,92.2757}};
limitsArrayBottom[] = {{-22.1832,-70.0989},{-13.9068,-22.8107},{-7.1236,75.6849},{-7.8564,102.5826}};
};
class dynamicViewLimits
{
CargoTurret_01[] = {-75,65};
};
};
class CargoTurret_03: CargoTurret_01
{
gunnerAction = "passenger_inside_7";
gunnerName = "$STR_A3_TURRETS_CARGOTURRET_R2";
memoryPointsGetInGunner = "pos cargo RR";
memoryPointsGetInGunnerDir = "pos cargo RR dir";
proxyIndex = 3;
class TurnIn
{
limitsArrayTop[] = {{23.9621,-61.2561},{14.3315,-18.7728}};
limitsArrayBottom[] = {{-19.6203,-79.3331},{-16.2632,-23.6018}};
};
class dynamicViewLimits
{
CargoTurret_01[] = {5,75};
CargoTurret_02[] = {-15,75};
CargoTurret_04[] = {-75,75};
};
};
};
/// some values from parent class to show how to set them up
wheelDamageRadiusCoef = 0.9; /// for precision tweaking of damaged wheel size
wheelDestroyRadiusCoef = 0.4; /// for tweaking of rims size to fit ground
maxFordingDepth = 0.5; /// how high water would damage the engine of the car
waterResistance = 1; /// if the depth of water is bigger than maxFordingDepth it starts to damage the engine after this time
crewCrashProtection = 0.25; /// multiplier of damage to crew of the vehicle => low number means better protection
driverLeftHandAnimName = "drivewheel"; /// according to what bone in model of car does hand move
driverRightHandAnimName = "drivewheel"; /// beware, non-existent bones may cause game crashes (even if the bones are hidden during play)
class TransportItems /// some first aid kits in trunk according to safety regulations
{
item_xx(FirstAidKit,4);
};
#include "cfg_TextureSources.hpp"
driverAction = driver_offroad01; /// what action is going the driver take inside the vehicle. Non-existent action makes the vehicle inaccessible
cargoAction[] = { passenger_generic01_foldhands, passenger_generic01_foldhands, passenger_generic01_foldhands, passenger_generic01_foldhands, passenger_generic01_foldhands}; /// the same of all the crew
getInAction = GetInLow; /// how does driver look while getting in
getOutAction = GetOutLow; /// and out
cargoGetInAction[] = {"GetInLow"}; /// and the same for the rest, if the array has fewer members than the count of crew, the last one is used for the rest
cargoGetOutAction[] = {"GetOutLow"}; /// that means all use the same in this case
#include "sounds.hpp" /// sounds are in a separate file to make this one simple
#include "pip.hpp" /// PiPs are in a separate file to make this one simple
#include "physx.hpp" /// PhysX settings are in a separate file to make this one simple
class PlayerSteeringCoefficients /// steering sensitivity configuration
{
turnIncreaseConst = 0.3; // basic sensitivity value, higher value = faster steering
turnIncreaseLinear = 1.0; // higher value means less sensitive steering in higher speed, more sensitive in lower speeds
turnIncreaseTime = 1.0; // higher value means smoother steering around the center and more sensitive when the actual steering angle gets closer to the max. steering angle
turnDecreaseConst = 5.0; // basic caster effect value, higher value = the faster the wheels align in the direction of travel
turnDecreaseLinear = 3.0; // higher value means faster wheel re-centering in higher speed, slower in lower speeds
turnDecreaseTime = 0.0; // higher value means stronger caster effect at the max. steering angle and weaker once the wheels are closer to centered position
maxTurnHundred = 0.7; // coefficient of the maximum turning angle @ 100km/h; limit goes linearly to the default max. turn. angle @ 0km/h
};
/// memory points where do tracks of the wheel appear *****(complete by OdyseusBR)******
// front left track, left offset
memoryPointTrackFLL = "TrackFLL";
// front left track, right offset
memoryPointTrackFLR = "TrackFLR";
// back left track, left offset
memoryPointTrackBLL = "TrackBLL";
// back left track, right offset
memoryPointTrackBLR = "TrackBLR";
// front right track, left offset
memoryPointTrackFRL = "TrackFRL";
// front right track, right offset
memoryPointTrackFRR = "TrackFRR";
// back right track, left offset
memoryPointTrackBRL = "TrackBRL";
// back right track, right offset
memoryPointTrackBRR = "TrackBRR";
class Damage /// damage changes material in specific places (visual in hitPoint)
{
tex[]={};
mat[]=
{
"braf\braf_soft\braf_land_rover\data\braf_landrover_out.rvmat",
"braf\braf_soft\braf_land_rover\data\LR_base_damage.rvmat",
"braf\braf_soft\braf_land_rover\data\LR_base_destruct.rvmat",
"braf\braf_soft\braf_land_rover\data\braf_landrover_glass.rvmat",
"braf\braf_soft\braf_land_rover\data\LR_glass_damage.rvmat",
"braf\braf_soft\braf_land_rover\data\LR_glass_destruct.rvmat",
/*"braf\braf_soft\braf_land_rover\data\LR_Special.rvmat",
"braf\braf_soft\braf_land_rover\data\LR_Special_damage.rvmat",
"braf\braf_soft\braf_land_rover\data\LR_Special_destruct.rvmat",*/
"a3\data_f\default.rvmat", "a3\data_f\default.rvmat",
"a3\data_f\default_destruct.rvmat"
};
};
/// class exhaust is complete ****(Complete by Bento)*****
class Exhausts /// specific exhaust effects for the car
{
class Exhaust1 /// the car has two exhausts - each on one side
{
position = "vyfuk start"; /// name of initial memory point
direction = "vyfuk konec"; /// name of memory point for exhaust direction
effect = "ExhaustsEffect"; /// what particle effect is it going to use
};
};
class Reflectors /// only front lights are considered to be reflectors to save CPU
{
class LightCarHeadL01 /// lights on each side consist of two bulbs with different flares
{
color[] = {1900, 1800, 1700}; /// approximate colour of standard lights
ambient[] = {5, 5, 5}; /// nearly a white one
position = "LightCarHeadL01"; /// memory point for start of the light and flare
direction = "LightCarHeadL01_end"; /// memory point for the light direction
hitpoint = "Light_L"; /// point(s) in hitpoint lod for the light (hitPoints are created by engine)
selection = "Light_L"; /// selection for artificial glow around the bulb, not much used any more
size = 1; /// size of the light point seen from distance
innerAngle = 100; /// angle of full light
outerAngle = 179; /// angle of some light
coneFadeCoef = 10; /// attenuation of light between the above angles
intensity = 1; /// strength of the light
useFlare = true; /// does the light use flare?
dayLight = false; /// switching light off during day saves CPU a lot
flareSize = 1.0; /// how big is the flare
class Attenuation
{
start = 1.0;
constant = 0;
linear = 0;
quadratic = 0.25;
hardLimitStart = 30; /// it is good to have some limit otherwise the light would shine to infinite distance
hardLimitEnd = 60; /// this allows adding more lights into scene
};
};
class LightCarHeadR01: LightCarHeadL01
{
position = "LightCarHeadR01";
direction = "LightCarHeadR01_end";
hitpoint = "Light_R";
selection = "Light_R";
};
};
aggregateReflectors[] = {{"LightCarHeadL01", "LightCarHeadL02"}, {"LightCarHeadR01", "LightCarHeadR02"}}; /// aggregating reflectors helps the engine a lot
/// it might be even good to aggregate all lights into one source as it is done for most of the cars
class EventHandlers: EventHandlers
{
postInit = "if (local (_this select 0)) then { [(_this select 0), """", [], false] call BIS_fnc_initVehicle; };";
};
/*
// Must be kept as fail-safe in case of issue with the function
hiddenSelectionsTextures[]={"\A3\Weapons_F\Data\placeholder_co.paa"}; /// we could use any texture to cover the car
// Definition of texture sources (skins), used for the VhC (Vehicle customization)
// Also, because the Garage uses the VhC, it will make them available from the garage
class textureSources
{
class red // Source class
{
displayName="Red"; // name displayed, among other, from the garage
author=$STR_A3_Bohemia_Interactive; // Author of the skin
textures[]=// List of textures, in the same order as the hiddenSelections definition
{
"braf\braf_soft\braf_land_rover\data\BRAF_LANDROVER_BASE_co.paa",
"braf\braf_soft\braf_land_rover\data\BRAF_EB_landrover_co.paa",
};
};
};
// [_textureSourceClass1, _probability1, _textureSourceClass2, _probability2, ...]
// Default behavior of the VhC is to select one of these sources, with a weighted random
textureList[]=
{
"red", 1
// You can noticed that the white source is missing, therefore, it won't be part of the random
};*/
class AnimationSources: AnimationSources
{
class HideDoor1
{
scope = 0;
};
class HideDoor2: HideDoor1
{
scope = 0;
};
class HideGlass2
{
scope = 0;
};
class HideDoor3: HideDoor1
{
scope = 0;
};
class HideBackpacks
{
scope = 0;
};
class HideBumper1
{
displayName = "Hide Bumper Brazilian Army";
source = "user";
initPhase = 1;
animPeriod = 0.001;
forceAnimatePhase = 0;
forceAnimate[] = {"HideBumper2", 1};
forceAnimate2[] = {"HideBumper2", 0};
mass = -50;
};
class HideBumper2
{
displayName = "Hide Bumper Gendarmerie";
source = "user";
initPhase = 1;
animPeriod = 0.001;
forceAnimatePhase = 0;
forceAnimate[] = {"HideBumper1", 1};
forceAnimate2[] = {"HideBumper1", 0};
mass = -90;
};
class hidePolicelights
{
displayName = "Hide Policy Light";
source = "Proxy";
initPhase = 1;
mass = -12;
};
class HideConstruction
{
scope = 0;
};
class hidePolice
{
scope = 0;
};
class HideServices
{
scope = 0;
};
class BeaconsStart
{
scope = 0;
};
class BeaconsServicesStart
{
scope = 0;
};
class Hide_Dashboard
{
scope = 0;
};
class Doors
{
scope = 0;
};
/*
class Proxy
{
source = "user";
animPeriod = 0.001;
initPhase = 1;
};
*/
class Beacons
{
scope = 0;
};
class Destruct
{
scope = 0;
};
};
class HitPoints: HitPoints
{
class HitLFWheel: HitLFWheel {armor=0.125; passThrough=0;}; /// it is easier to destroy wheels than hull of the vehicle
class HitLF2Wheel: HitLF2Wheel {armor=0.125; passThrough=0;};
class HitRFWheel: HitRFWheel {armor=0.125; passThrough=0;};
class HitRF2Wheel: HitRF2Wheel {armor=0.125; passThrough=0;};
class HitFuel {armor=0.50; material=-1; name="fueltank"; visual=""; passThrough=0.2;}; /// correct points for fuel tank, some of the damage is aFRLied to the whole
class HitEngine {armor=0.50; material=-1; name="engine"; visual=""; passThrough=0.2;};
class HitBody: HitBody {name = "body"; visual="camo1"; passThrough=1;}; /// all damage to the hull is aFRLied to total damage
class HitGlass1: HitGlass1 {armor=0.25;}; /// it is pretty easy to puncture the glass but not so easy to remove it
class HitGlass2: HitGlass2 {armor=0.25;};
class HitGlass3: HitGlass3 {armor=0.25;};
class HitGlass4: HitGlass4 {armor=0.25;};
};
class MFD /// Clocks on the car board
{
class ClockHUD
{
#include "cfgHUD.hpp"
};
};
};
/*class BRAF_LR_110_SW: BRAF_LR_Base {
forceInGarage=1; // This will force the garage to display this vehicle, otherwise it won't because it shares the same p3d as the previous
scopeCurator=2;
faction = "BRAF_ARMY";
side = 2;
scope = 2;
typicalcargo[] = {};
displayname = "Land Rover 110 SW";
hiddenSelectionsTextures[] = {
"braf\braf_soft\braf_land_rover\data\BRAF_LANDROVER_BASE_co.paa",
"braf\braf_soft\braf_land_rover\data\BRAF_EB_landrover_co.paa",
};
class Turrets {
};
class HitPoints: HitPoints {
class HitGlass1 {
armor = 0.15;
};
class HitGlass2 {
armor = 0.1;
};
class HitGlass3 {
armor = 0.1;
};
};
class TransportMagazines {
};
class TransportWeapons {
};
class NVGMarkers {
class NVGMarker01 {
ambient[] = {0.003, 0.0003, 0.0003, 1};
blinking = 1;
brightness = 0.001;
color[] = {0.03, 0.003, 0.003, 1};
name = "nvg_marker";
};
};*/
// Derivate from the base class
class BRAF_LR110_Hardtop: BRAF_LR_01_Base /// some class that is going to be visible in editor
{
scope = 2; /// makes the car visible in editor
scopeCurator = 2; // scope 2 means it's available in Zeus mode (0 means hidden)
crew = "braf_soldier_light"; /// we need someone to fit into the car
side = 2; /// civilian car should be on civilian side
faction = "BRAF_ARMY"; /// and with civilian faction
displayName = "Land Rover 110 SW (Hard Top)";
hiddenSelections[] =
{
"camo1",
"camo2"
};
hiddenSelectionsTextures[] =
{
"braf\braf_soft\braf_land_rover\data\Skins\EB\braf_EB_landroverout_co.paa",
"braf\braf_soft\braf_land_rover\data\Skins\EB\braf_EB_landroverin_co.paa"
};
hiddenSelectionsMaterials[] =
{
"braf\braf_soft\braf_land_rover\data\Skins\EB\braf_EB_landrover_out.rvmat",
"braf\braf_soft\braf_land_rover\data\Skins\EB\braf_EB_landrover_in.rvmat"
};
animationList[] =
{
"HideBumper1", 0,
"HideBumper2", 1
};
textureList[] =
{
"C_BRAF_LR110_SW", 1,
"C_BRAF_LR_110_GEN", 0,
"C_BRAF_LR_110_white", 0,
"C_BRAF_LR_110_white", 0
};
};
class BRAF_LR110_CIV: BRAF_LR_01_Base /// some class that is going to be visible in editor
{
scope = 2; /// makes the car visible in editor
scopeCurator = 2; // scope 2 means it's available in Zeus mode (0 means hidden)
crew = "braf_soldier_light"; /// we need someone to fit into the car
side = 3; /// civilian car should be on civilian side
faction = "BRAF_CIV"; /// and with civilian faction
displayName = "Land Rover 110 SW (Hard Top)";
animationList[] =
{
"HideBumper1", 1,
"HideBumper2", 1
};
textureList[] =
{
"C_BRAF_LR110_SW", 0,
"C_BRAF_LR_110_GEN", 0,
"C_BRAF_LR_110_white", 0,
"C_BRAF_LR_110_white", 1
};
};
class BRAF_LR110_gendarmerie: BRAF_LR_01_Base /// some class that is going to be visible in editor
{
scope = 2; /// makes the car visible in editor
scopeCurator = 2; // scope 2 means it's available in Zeus mode (0 means hidden)
crew = "braf_soldier_light"; /// we need someone to fit into the car
side = 1;
faction = "BLU_GEN_F";
displayName = "Land Rover 110 SW (Hard Top)";
hiddenSelections[] =
{
"camo1",
"camo2"
};
hiddenSelectionsTextures[] =
{
"braf\braf_soft\braf_land_rover\data\Skins\GEN\braf_landrover_GENout_co.paa",
"braf\braf_soft\braf_land_rover\data\Skins\GEN\braf_landrover_GENin_co.paa"
};
hiddenSelectionsMaterials[] =
{
"braf\braf_soft\braf_land_rover\data\Skins\GEN\braf_GEN_landrover_out.rvmat",
"braf\braf_soft\braf_land_rover\data\Skins\GEN\braf_GEN_landrover_in.rvmat"
};
animationList[] =
{
"HideBumper1", 1,
"HideBumper2", 0,
"hidePolicelights", 1,
};
textureList[] =
{
"C_BRAF_LR110_SW", 0,
"C_BRAF_LR_110_GEN", 1,
"C_BRAF_LR_110_white", 0,
"C_BRAF_LR_110_white", 0
};
};
class BRAF_LR110_UN: BRAF_LR_01_Base /// some class that is going to be visible in editor
{
scope = 2; /// makes the car visible in editor
scopeCurator = 2; // scope 2 means it's available in Zeus mode (0 means hidden)
crew = "braf_soldier_light"; /// we need someone to fit into the car
side = 1;
faction = "UN";
displayName = "Land Rover 110 SW (Hard Top)";
hiddenSelections[] =
{
"camo1",
"camo2"
};
hiddenSelectionsTextures[] =
{
"braf\braf_soft\braf_land_rover\data\Skins\UN\braf_landrover_UN_out_co.paa",
"braf\braf_soft\braf_land_rover\data\Skins\UN\braf_landrover_UN_in_co.paa"
};
hiddenSelectionsMaterials[] =
{
"braf\braf_soft\braf_land_rover\data\Skins\UN\braf_landrover_un_out.rvmat",
"braf\braf_soft\braf_land_rover\data\Skins\UN\braf_landrover_un_in.rvmat"
};
animationList[] =
{
"HideBumper1", 1,
"HideBumper2", 0
};
textureList[] =
{
"C_BRAF_LR110_SW", 0,
"C_BRAF_LR_110_GEN", 0,
"C_BRAF_LR_110_white", 1,
"C_BRAF_LR_110_white", 0
};
};
class BRAF_LR_softtop_4d: BRAF_LR_01_Base /// some class that is going to be visible in editor
{
model = "braf\braf_soft\braf_land_rover\bRAF_LR_softtop_4d"; /// simple path to model
scope = 2; /// makes the car visible in editor
displayname = "Land Rover 110 SW (Soft Top)" ; /// displayed in Editor
scopeCurator=2; // scope 2 means it's available in Zeus mode (0 means hidden)
crew = "braf_Soldier_light_naval"; /// we need someone to fit into the car
side = 2;
faction = "BRAF_ARMY";
hiddenSelections[] = {"camo1","camo2"}; ///we want to allow changing the color of this selection
hiddenSelectionsTextures[] = {
"braf\braf_soft\braf_land_rover\data\Skins\EB\braf_EB_landroverout_co.paa",
"braf\braf_soft\braf_land_rover\data\Skins\EB\braf_EB_landroverin_co.paa",
};
hiddenSelectionsMaterials[] = {
"braf\braf_soft\braf_land_rover\data\Skins\EB\braf_EB_landrover_out.rvmat",
"braf\braf_soft\braf_land_rover\data\Skins\EB\braf_EB_landrover_in.rvmat",
};
animationList[] =
{
"HideBumper1", 0,
"HideBumper2", 1
};
textureList[] =
{
"C_BRAF_LR110_SW", 1,
"C_BRAF_LR_110_GEN", 0,
"C_BRAF_LR_110_white", 0
};
};
class BRAF_LR_softtop_4d_armed: BRAF_LR_01_Base /// some class that is going to be visible in editor
{
model = "braf\braf_soft\braf_land_rover\BRAF_LR_softtop_4d_armed"; /// simple path to model
scope = 2; /// makes the car visible in editor
displayname = "Land Rover 110 (ARMED)" ; /// displayed in Editor
scopeCurator=2; // scope 2 means it's available in Zeus mode (0 means hidden)
crew = "braf_Soldier_light_naval"; /// we need someone to fit into the car
side = 2;
faction = "BRAF_ARMY";
hiddenSelections[] = {"camo1","camo2"}; ///we want to allow changing the color of this selection
hiddenSelectionsTextures[] = {
"braf\braf_soft\braf_land_rover\data\Skins\EB\braf_EB_landroverout_co.paa",
"braf\braf_soft\braf_land_rover\data\Skins\EB\braf_EB_landroverin_co.paa",
};
hiddenSelectionsMaterials[] = {
"braf\braf_soft\braf_land_rover\data\Skins\EB\braf_EB_landrover_out.rvmat",
"braf\braf_soft\braf_land_rover\data\Skins\EB\braf_EB_landrover_in.rvmat",
};
animationList[] =
{
"HideBumper1", 0,
"HideBumper2", 1
};
textureList[] =
{
"C_BRAF_LR110_SW", 1,
"C_BRAF_LR_110_GEN", 0,
"C_BRAF_LR_110_white", 0
};
};
/*
class BRAF_LR110_SW_01_Special_F: BRAF_LR_01_Base /// some class that is going to be visible in editor
{
model = "braf\braf_soft\braf_land_rover\bRAF_LR_navy.p3d"; /// simple path to model
forceInGarage=1; // This will force the garage to display this vehicle, otherwise it won't because it shares the same p3d as the previous
displayName="Defender 110 SW (Open)";
scope=2; /// makes the car visible in editor
crew = "braf_Soldier_light_naval"; /// we need someone to fit into the car
side=2; /// civilian car should be on civilian side
faction = "braf_fn"; /// and with civilian faction
// the texture source used will be the green one, whatever it probability because it's the only one defined here
hiddenSelections[] = {"camo1","camo2"}; ///we want to allow changing the color of this selection
hiddenSelectionsTextures[] = {
"braf\braf_soft\braf_land_rover\data\Skins\BRAF_FN_landrover_co.paa",
"braf\braf_soft\braf_land_rover\data\Skins\lr_special_FN_co.paa"
};
};*/
};
File diff suppressed because it is too large Load Diff
+332
View File
@@ -0,0 +1,332 @@
/// splendid tutorial by RedPhoenix could be found at
/// http://forums.bistudio.com/showthread.php?165390-Tutorial-Creating-Custom-Engine-Gearbox-and-Suspension-Vehicle-configuration
thrustDelay = 0.2; /// initial delay to cause lesser slip when on 1st gear - thrust goes from zero to full in this time
brakeIdleSpeed = 1.78; /// under what speed (in m/s) does the brake apply for a vehicle without thrust
maxSpeed = 150; /// vehicle can go a bit over, but dramatically decreases thrust
fuelCapacity = 20;
wheelCircumference = 2.607; /// diameter of 725 Measured diameter 0.830m so wheelCircumference = 2.607;
antiRollbarForceCoef = 1.9; /// how strong is the anti-roll bar of vehicle preventing it to lose grip in turns (not any magical stuff, real ARB)
antiRollbarForceLimit = 24; /// highest possible force of ARB
antiRollbarSpeedMin = 30; /// the roll bar force gets from zero to full in range of min and max speed
antiRollbarSpeedMax = 150; /// this simulates losing grip at high speed turns
/// Gearbox and transmission via PhysX
idleRpm = 900; // RPM at which the engine idles.
redRpm = 6900; // RPM at which the engine redlines.
class complexGearbox
{
GearboxRatios[] = {"R1",-3.231,"N",0,"D1",2.462,"D2",1.870,"D3",1.241,"D4",0.970,"D5",0.711};
TransmissionRatios[] = {"High",4.111}; // Optional: defines transmission ratios (for example, High and Low range as commonly found in offroad vehicles)
gearBoxMode = "auto"; //gearbox can be of type: full-auto (only requires 'W' or 'S'), auto (requires shift between drive and reverse), semi-auto, manual
moveOffGear = 1; // defines what gear an automatic or semi-automatic gearbox will move off from stationary in. 1 by default.
driveString = "D"; // string to display in the HUD for forward gears.
neutralString = "N"; // string to display in the HUD for neutral gear.
reverseString = "R"; // string to display in the HUD for reverse gears.
};
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// PhysX parameters
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// <Description>: Defines simulation type of the vehicle. PhysX simulation ends with letter "x", "carx", "tankx" ...
// <Type>: string
// <Default>: (required)
simulation = "carx";
// <Description>: Defines how much dampers react to random little bumps on surface. It's only visual effect, doesn't influence drive simulation,
// only taken into account when calculating damper animation.
// <Type>: float
// <Default>: 0.0
dampersBumpCoef = 0.05;
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Differential parameters
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// <Description>: A number of differential types are supported: 4-wheel drive with open differential, 4-wheel drive with limited slip, front-wheel drive
// with open differential, front-wheel drive with limited slip, rear-wheel drive with open differential, rear-wheel drive with limited slip.
// <Type>: string; acceptable values: "all_open", "all_limited", "front_open", "front_limited", "rear_open", "rear_limited"
// <Default>: "all_limited"
differentialType = "all_limited";
// <Description>: Ratio of engine power that goes to front wheels out of total power for 4-wheel drive differentials.
// Choosing a value greater than 0.5 delivers more torque to the front wheels, while choosing a value less than 0.5
// delivers more torque to the rear wheels. This value is ignored for front-wheel drive and rear-wheel drive differentials.
// <Type>: float
// <Default>: 0.5
frontRearSplit = 0.5;
// <Description>: This is the largest possible relative difference between speed of front wheels. It helps to have outside wheels a bit faster
// during the turns, but it prevents the faster wheel to take all the power while sliding. The power is shifted to slower wheel once the value is reached.
// Locked differential has value of 1, the softer is the lock the greater should the value be.
// This value is ignored except for front-wheel drive or four wheel drive with limited slip.
// A good starting value is around 1.3.
// <Type>:
// <Default>:
frontBias = 1.5;
// <Description>: This is similar to frontBias except that it refers to the rear wheels.
// This value is ignored except for rear-wheel drive or four wheel drive with limited slip.
// A good starting value is around 1.3.
// <Type>: float
// <Default>: 1.3
rearBias = 1.3;
// <Description>: This value is similar to the frontBias and rearBias, except that it refers to the sum of the front wheel rotation speeds and the sum
// of the rear wheel rotation speeds.
// This value is ignored except for four wheel drive with limited slip.
// A good starting value is around 1.3.
// <Type>: float
// <Default>: 1.3
centreBias = 1.3;
// <Description>: How fast is engine power distributed to the wheels. Stronger values mean more aggressive drive performance inclining to
// slip a little while changing gears while weaker values are better for comfortable seamless ride.
// <Type>: float
// <Default>: 10.0
clutchStrength = 15.0;
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Engine parameters
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// <Description>: Power of the engine in kW.
// <Type>: float
// <Default>: (required)
enginePower = 100;
// <Description>: This is the maximum rotational speed of the engine expressed in radians per second. It could be calculated from maximum
// engine RPM like this:
// maxOmega = (maxRpm*2*Pi)/60.
// <Type>: float
// <Default>: 600 which is cca 6000 rounds per minute.
maxOmega = 720;
// <Description>: This is the maximum torque that is ever available from the engine. This is expressed in Newton metres.
// <Type>: float
// <Default>: value calculated from enginePower according to http://en.wikipedia.org/wiki/Horsepower#Relationship_with_torque
peakTorque = 350;
// <Description>: These three values describe internal damping of the engine. Bigger values mean greater damping. Clutch disengaged value
// is used while shifting gears, engine interpolates between clutch engaged and full throttle values according to throttle input.
// We tend to use slightly lower clutch engaged values because it allows cars to turn more smoothly.
// Typical values in range (0.25,3). The simulation can become unstable with damping rates of 0.
// <Type>: float, float, float
// <Default>: 0.08, 2.0, 0.35
dampingRateFullThrottle = 0.08;
dampingRateZeroThrottleClutchEngaged = 0.35;
dampingRateZeroThrottleClutchDisengaged = 0.35;
// <Description>: This is a graph of peak torque versus engine rotational speed.
// The x-axis of the curve is the relative engine speed; that is, the engine speed divided by the maximum engine speed. The y-axis of the curve is a
// multiplier in range (0,1) that is used to scale the peak torque. It is good to keep the values in mind while setting changeGearMinEffectivity.
// <Type>: Array[i][2] where i = number of samples, maximum 8;
// <Default>: {{0.0, 0.8}, {0.33, 1.0}, {1.0, 0.8}}
torqueCurve[] = {{0.000, 0.000}, {0.178, 0.800}, {0.250, 1.0}, {0.461, 0.900}, {0.900, 0.800}, {1.000, 0.300}};
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Gearbox parameters
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// <Description>: Value of minimal gear effectivity to hold current gear. If there is better gear and effectivity is below this value then change gear.
// <Range>: (0,1)
// <Type>: Array[i] where i = number of gears
// <Default>: 0.95 for every value (Neutral = 0.15 Not sure how important this is but we want to kick out of neutral very quickly)
changeGearMinEffectivity[] = {0.95, 0.15, 0.95, 0.95, 0.95, 0.95, 0.95};
// <Description>: The switch time describes how long it takes (in seconds) for a gear change to be completed. This needs to be set to aggresive shifting
// or it would cause issues while trying to run aggressively (mainly during evading the enemies).
// <Type>: float
// <Default>: 0.01
switchTime = 0.31;
// <Description>: Set the latency time of the gearbox, specified in s.
// This is used to prevent instant shifting after changing gears - there is some power loss during gear change and it could seem that
// previous gear is better for a brief time after shifting.
// <Type>: float
// <Default>: 2.0
latency = 1.0;
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Wheels parameters
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
class Wheels
{
class LF
{
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// General parameters
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// <Description>: Name of the bone, used for wheel and suspension animations.
// <Type>: string
// <Default>: ""
boneName = "wheel_1_1_damper";
// <Description>: If true, wheel is steerable, false - wheel is fixed.
// <Type>: bool
// <Default>: (required)
steering = true;
// <Description>: Defines if wheel is on the right or left side of the vehicle
// <Type>: string
// <Default>: "right"
side = "left";
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Wheel PX parameters
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// <Description>: Center of the wheel (axis)
// <Type>: memory point
// <Default>: (required)
center = "wheel_1_1_axis";
// <Description>: Point on the outside rim of the tire, used to calculate radius of the wheel (distance between center and boundary).
// <Type>: memory point
// <Default>: (required)
boundary = "wheel_1_1_bound";
// <Description>: This is the weight in kg of wheel including both rim and tyre.
// <Type>: float
// <Default>: 10.0
mass = 100;
// <Description>: This is the wheel's moment of inertia about the rolling axis. Smaller values result in more slips in aggresive driving
// while larger hamper the gain of speed. Good base to start with is this formula:
// MOI = 0.5 * Mass * Radius * Radius
// Some tweaking is needed after the computation, but it is still better than nothing.
// <Type>: float
// <Default>: 0.5 * WheelMass * WheelRadius * WheelRadius
MOI = 3.3;
// <Description>:The damping rate describes the rate at which a freely spinning wheel loses rotational speed.
// Values in range (0.25, 2) seem like sensible values. Experimentation is always a good idea, even outside this range.
// <Type>: float
// <Default>: 0.1
dampingRate = 0.5;
// <Description>: This is the value of the torque applied to the wheel when the brakes are maximally applied. Higher torques will lock the wheel
// quicker when braking, while lower torques will take longer to lock the wheel.
// A value of around 1500 is a good starting point for a vanilla wheel but a google search will reveal typical braking torques. One difficulty is
// that these are often expressed by manufacturers as braking horsepower or in "pounds inches". The values required here are in "Newton metres".
// <Type>: float
// <Default>: 2500
maxBrakeTorque = 2000;
// <Description>: This is the same as the max brake torque except for the handbrake rather than the brake. Typically, for a 4-wheeled car,
// the handbrake is stronger than the brake and is only applied to the rear wheels. A value of 4000 for the rear wheels is a good starting point,
// while a value of 0 is necessary for the front wheels to make sure they do not react to the handbrake.
// <Type>: float
// <Default>: 2*maxBrakeTorque
maxHandBrakeTorque = 4000;
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Wheel simulation parameters
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// <Description>: This is the direction of the suspension in the downward direction in the rest configuration of the vehicle. A vector that
// points straight downwards is a good starting point.
// <Type>: Array[3]
// <Default>: {0, -1, 0}
suspTravelDirection[] = {0, -1, 0};
// <Description>: This is the application point of the suspension force.
// <Type>: memory point
// <Default>: center
suspForceAppPointOffset = "wheel_1_1_axis";
// <Description>: This is almost the same as the suspension force app point except for the lateral and longitudinal forces that develop on the tire.
// A good starting point is to duplicate the suspension force application point.
// <Type>: memory point
// <Default>: suspForceAppPointOffset
tireForceAppPointOffset = "wheel_1_1_axis";
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Suspension parameters
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// <Description>: These values describe the maximum compression and elongation in metres that the spring can support.
// <Type>: float
// <Default>: 0.15
maxCompression = 0.15; //0.75*0.2
mMaxDroop = 0.15;
// <Description>: This is the mass in kg that is supported by the suspension spring.
// <Type>: float
// <Default>: vehicleMass/numberOfWheels
sprungMass = 475; // 1900/4
// <Description>: This is the strength of the suspension spring in Newtons per metre.
// springStrength = naturalFrequency * naturalFrequency * sprungMass
// <Type>: float
// <Default>: sprungMass*5,0*5,0
//springStrength = 9680;
//springStrength = 22600;
springStrength = 59375; // = 125 * sprungMass
// <Description>: This describes the rate at which the spring dissipates the energy stored in the spring.
// Basic equiation for this is
// springDamperRate = dampingRatio * 2 * sqrt(springStrength * sprungMass)
// where dampingRatio = 1 mean critical damping (critically damped pendulum should get back to start point in every swing)
// <Type>: float
// <Default>: 0,4*2*sqrt(springStrength*sprungMass)
//springDamperRate = 1936;
//springDamperRate = 8680;
springDamperRate = 10621;
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Tire parameters
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// <Description>: Increasing this value will result in the tire attempting to generate more longitudinal force when the tire is slipping.
// Typically, increasing longitudinal stiffness will help the car accelerate and brake. The total tire force available is limited by the
// load on the tire so be aware that increases in this value might have no effect or even come at the expense of reduced lateral force.
// <Type>: float
// <Default>: 10000
longitudinalStiffnessPerUnitGravity = 100000;
// <Description>: These values together describe the lateral stiffness per unit lateral slip (in radians) of the tire.
// <Type>: float, float
// <Default>: 25, 180
latStiffX = 25;
latStiffY = 18000;
// <Description>: These six values describe a graph of friction as a function of longitudinal slip.
// A good starting point for this is a flat graph of friction vs slip with these values:
// frictionVsSlipGraph[0][0]=0.0
// frictionVsSlipGraph[0][1]=1.0
// frictionVsSlipGraph[1][0]=0.5
// frictionVsSlipGraph[1][1]=1.0
// frictionVsSlipGraph[2][0]=1.0
// frictionVsSlipGraph[2][1]=1.0
// <Type>: Array[3][2]
// <Default>: {{0, 1}, {0.5, 1}, {1,1}}
frictionVsSlipGraph[] = {{0, 1}, {0.5, 1}, {1,1}};
};
class LR: LF
{
boneName = "wheel_1_2_damper";
steering = false;
center = "wheel_1_2_axis";
boundary = "wheel_1_2_bound";
suspForceAppPointOffset = "wheel_1_2_axis";
tireForceAppPointOffset = "wheel_1_2_axis";
};
class RF: LF
{
boneName = "wheel_2_1_damper";
center = "wheel_2_1_axis";
boundary = "wheel_2_1_bound";
suspForceAppPointOffset = "wheel_2_1_axis";
tireForceAppPointOffset = "wheel_2_1_axis";
steering = true;
side = "right";
};
class RR: RF
{
boneName = "wheel_2_2_damper";
steering = false;
center = "wheel_2_2_axis";
boundary = "wheel_2_2_bound";
suspForceAppPointOffset = "wheel_2_2_axis";
tireForceAppPointOffset = "wheel_2_2_axis";
};
};
+39
View File
@@ -0,0 +1,39 @@
class RenderTargets /// class for all Picture-in-Picture (PiP)
{
class LeftMirror
{
renderTarget = "rendertarget0"; /// what texture is going to be used, it should be mapped in model like #(argb,256,512,1)r2t(rendertarget0,1.0)
class CameraView1
{
pointPosition = "PIP0_pos"; /// memory point of PiP origin
pointDirection = "PIP0_dir"; /// memory point of PiP direction
renderQuality = 2; /// what quality should the PiP be
renderVisionMode = 0; /// zero means standard vision
fov = 0.7; /// what is the angle of the PiP field of view
};
};
class RightMirror /// rendering of PiPs is shared, it is best to have one for all sources, this is just an example
{
renderTarget = "rendertarget1";
class CameraView1
{
pointPosition = "PIP1_pos";
pointDirection = "PIP1_dir";
renderQuality = 2;
renderVisionMode = 0;
fov = 0.7;
};
};
class RearMirror
{
renderTarget = "rendertarget2";
class CameraView1
{
pointPosition = "PIP2_pos";
pointDirection = "PIP2_dir";
renderQuality = 2;
renderVisionMode = 0;
fov = 0.7;
};
};
};
+475
View File
@@ -0,0 +1,475 @@
attenuationEffectType = "CarAttenuation"; //Attenuation in interior (Link to Attenuation.hpp in folder SOUNDS_F)
soundGetIn[]={"A3\Sounds_F\vehicles\soft\Hatchback_01\Hatchback_01_door",db-5,1};
soundGetOut[]={"A3\Sounds_F\vehicles\soft\Hatchback_01\Hatchback_01_door",db-5,1, 40};
soundDammage[]={"", db-5, 1};
soundEngineOnInt[] = {"A3\Sounds_F\vehicles\soft\Hatchback_01\Hatchback_01_int_start", db-8, 1.0};
soundEngineOnExt[] = {"A3\Sounds_F\vehicles\soft\Hatchback_01\Hatchback_01_ext_start", db-7, 1.0, 200};
soundEngineOffInt[] = {"A3\Sounds_F\vehicles\soft\Hatchback_01\Hatchback_01_int_stop", db-8, 1.0};
soundEngineOffExt[] = {"A3\Sounds_F\vehicles\soft\Hatchback_01\Hatchback_01_ext_stop", db-7, 1.0, 200};
/* ---- CRASHES START ---- */
buildCrash0[]={"A3\Sounds_F\vehicles\crashes\cars\cars_coll_big_default_ext_1", db0, 1,200};
buildCrash1[]={"A3\Sounds_F\vehicles\crashes\cars\cars_coll_big_default_ext_2", db0, 1,200};
buildCrash2[]={"A3\Sounds_F\vehicles\crashes\cars\cars_coll_big_default_ext_3", db0, 1,200};
buildCrash3[]={"A3\Sounds_F\vehicles\crashes\cars\cars_coll_big_default_ext_4", db0, 1,200};
soundBuildingCrash[]={buildCrash0, 0.25, buildCrash1, 0.25, buildCrash2, 0.25, buildCrash3, 0.25};
WoodCrash0[]={"A3\Sounds_F\vehicles\crashes\cars\cars_coll_big_wood_ext_1", db0, 1,200};
WoodCrash1[]={"A3\Sounds_F\vehicles\crashes\cars\cars_coll_big_wood_ext_1", db0, 1,200};
WoodCrash2[]={"A3\Sounds_F\vehicles\crashes\cars\cars_coll_big_wood_ext_1", db0, 1,200};
WoodCrash3[]={"A3\Sounds_F\vehicles\crashes\cars\cars_coll_big_wood_ext_1", db0, 1,200};
soundWoodCrash[]={woodCrash0, 0.25, woodCrash1, 0.25, woodCrash2, 0.25, woodCrash3, 0.25};
armorCrash0[]={"A3\Sounds_F\vehicles\crashes\cars\cars_coll_big_default_ext_1", db0, 1,200};
armorCrash1[]={"A3\Sounds_F\vehicles\crashes\cars\cars_coll_big_default_ext_2", db0, 1,200};
armorCrash2[]={"A3\Sounds_F\vehicles\crashes\cars\cars_coll_big_default_ext_3", db0, 1,200};
armorCrash3[]={"A3\Sounds_F\vehicles\crashes\cars\cars_coll_big_default_ext_4", db0, 1,200};
soundArmorCrash[]={ArmorCrash0, 0.25, ArmorCrash1, 0.25, ArmorCrash2, 0.25, ArmorCrash3, 0.25};
/* ---- CRASHES END ---- */
class Sounds
{
// warp factor
#define FACTOR(val,from,to) (val factor[from,to])
// RANGE(val, begin, band, end, band)
#define RANGE(val,from,band0,to,band1) FACTOR2(val,from,(from+band0),to,(to+band1))
// FACTOR2(val, 0, 400, 1200, 2000)
#define FACTOR2(val,from0,to0,from1,to1) (FACTOR(val,from0,to0) * FACTOR(val,to1,from1))
// redRpm
#define MAX_RPM 6900
// scaled rpm to 0 - 1
#define RPM(rpm) (rpm/MAX_RPM)
// specialized FACTOR for rpm
#define FACTOR_RPM(from,to) FACTOR(RPM(rpm),RPM(from),RPM(to))
// specialized peak for rpm
#define FACTOR2_RPM(from0,to0,from1,to1) (FACTOR_RPM(from0,to0) * FACTOR_RPM(to1,from1))
// specialized peak, different definition, version for rpm
#define RANGE_RPM(from,band0,to,band1) FACTOR2_RPM(from,(from+band0),to,(to+band1))
#define HZ_IDLE FACTOR_RPM(400,1150)
#define HZ_RPM1 FACTOR_RPM(900,2100)
#define HZ_RPM2 FACTOR_RPM(1300,3100)
#define HZ_RPM3 FACTOR_RPM(2200,4100)
#define HZ_RPM4 FACTOR_RPM(3300,4900)
#define HZ_RPM5 FACTOR_RPM(4200,6200)
#define HZ_RPM6 FACTOR_RPM(5100,6900)
#define VOLUME_IDLE FACTOR2_RPM(400,700,900,1100)
#define VOLUME_RPM1 FACTOR2_RPM(870,1100,1300,2100)
#define VOLUME_RPM2 FACTOR2_RPM(1250,2050,2300,3100)
#define VOLUME_RPM3 FACTOR2_RPM(2250,3050,3300,4100)
#define VOLUME_RPM4 FACTOR2_RPM(3250,4050,4200,4870)
#define VOLUME_RPM5 FACTOR2_RPM(4150,4800,5150,6150)
#define VOLUME_RPM6 FACTOR_RPM(5100,6100)
/* hatchback external sounds without gas */
class Idle_ext
{
sound[] = {"A3\Sounds_F\vehicles\soft\Hatchback_01\Hatchback_01_ext_idle", db-13, 1, 150};
frequency = 0.9 + HZ_IDLE*0.2;
volume = engineOn*camPos*VOLUME_IDLE;
};
class Engine
{
sound[] = {"A3\Sounds_F\vehicles\soft\Hatchback_01\Hatchback_01_ext_1400rpm", db-11,1, 200};
frequency = 0.8 + HZ_RPM1*0.2;
volume = engineOn*camPos*VOLUME_RPM1;
};
class Engine1_ext
{
sound[] = {"A3\Sounds_F\vehicles\soft\Hatchback_01\Hatchback_01_ext_2000rpm", db-9,1, 240};
frequency = 0.8 + HZ_RPM2*0.2;
volume = engineOn*camPos*VOLUME_RPM2;
};
class Engine2_ext
{
sound[] = {"A3\Sounds_F\vehicles\soft\Hatchback_01\Hatchback_01_ext_2600rpm", db-8,1, 280};
frequency = 0.8 + HZ_RPM3*0.2;
volume = engineOn*camPos*VOLUME_RPM3;
};
class Engine3_ext
{
sound[] = {"A3\Sounds_F\vehicles\soft\Hatchback_01\Hatchback_01_ext_3200rpm", db-7,1, 320};
frequency = 0.8 + HZ_RPM4*0.2;
volume = engineOn*camPos*VOLUME_RPM4;
};
class Engine4_ext
{
sound[] = {"A3\Sounds_F\vehicles\soft\Hatchback_01\Hatchback_01_ext_3600rpm", db-6,1, 360};
frequency = 0.8 + HZ_RPM5*0.2;
volume = engineOn*camPos*VOLUME_RPM5;
};
class Engine5_ext
{
sound[] = {"A3\Sounds_F\vehicles\soft\Hatchback_01\Hatchback_01_ext_4000rpm", db-5,1, 420};
frequency = 0.95 + HZ_RPM6*0.15;
volume = engineOn*camPos*VOLUME_RPM6;
};
/* hatchback external sounds with gas */
class IdleThrust
{
sound[] = {"A3\Sounds_F\vehicles\soft\Hatchback_01\Hatchback_01_ext_idle_exhaust", db-6,1, 200};
frequency = 0.9 + HZ_IDLE*0.2;
volume = engineOn*camPos*(0.4+(0.6*FACTOR(thrust,0.1,1)))*VOLUME_IDLE;
};
class EngineThrust
{
sound[] = {"A3\Sounds_F\vehicles\soft\Hatchback_01\Hatchback_01_ext_1400rpm_exhaust", db-5,1, 250};
frequency = 0.8 + HZ_RPM1*0.2;
volume = engineOn*camPos*(0.4+(0.6*FACTOR(thrust,0.1,1)))*VOLUME_RPM1;
};
class Engine1_Thrust_ext
{
sound[] = {"A3\Sounds_F\vehicles\soft\Hatchback_01\Hatchback_01_ext_2000rpm_exhaust", db-4,1, 280};
frequency = 0.8 + HZ_RPM2*0.2;
volume = engineOn*camPos*(0.4+(0.6*FACTOR(thrust,0.1,1)))*VOLUME_RPM2;
};
class Engine2_Thrust_ext
{
sound[] = {"A3\Sounds_F\vehicles\soft\Hatchback_01\Hatchback_01_ext_2600rpm_exhaust", db-3,1, 320};
frequency = 0.8 + HZ_RPM3*0.2;
volume = engineOn*camPos*(0.4+(0.6*FACTOR(thrust,0.1,1)))*VOLUME_RPM3;
};
class Engine3_Thrust_ext
{
sound[] = {"A3\Sounds_F\vehicles\soft\Hatchback_01\Hatchback_01_ext_3200rpm_exhaust", db-2,1, 360};
frequency = 0.8 + HZ_RPM4*0.2;
volume = engineOn*camPos*(0.4+(0.6*FACTOR(thrust,0.1,1)))*VOLUME_RPM4;
};
class Engine4_Thrust_ext
{
sound[] = {"A3\Sounds_F\vehicles\soft\Hatchback_01\Hatchback_01_ext_3600rpm_exhaust", db0,1, 400};
frequency = 0.8 + HZ_RPM5*0.3;
volume = engineOn*camPos*(0.4+(0.6*FACTOR(thrust,0.1,1)))*VOLUME_RPM5;
};
class Engine5_Thrust_ext
{
sound[] = {"A3\Sounds_F\vehicles\soft\Hatchback_01\Hatchback_01_ext_4000rpm_exhaust", db2,1, 450};
frequency = 0.9 + HZ_RPM6*0.2;
volume = engineOn*camPos*(0.4+(0.6*FACTOR(thrust,0.1,1)))*VOLUME_RPM6;
};
/* end external sounds with gas */
/* hatchback internal sounds without gas */
class Idle_int
{
sound[] = {"A3\Sounds_F\vehicles\soft\Hatchback_01\Hatchback_01_int_idle", db-15, 1};
frequency = 0.9 + HZ_IDLE*0.2;
volume = engineOn*(1-camPos)*VOLUME_IDLE;
};
class Engine_int
{
sound[] = {"A3\Sounds_F\vehicles\soft\Hatchback_01\Hatchback_01_int_1000rpm", db-14,1 };
frequency = 0.8 + HZ_RPM1*0.2;
volume = engineOn*(1-camPos)*VOLUME_RPM1;
};
class Engine1_int
{
sound[] = {"A3\Sounds_F\vehicles\soft\Hatchback_01\Hatchback_01_int_2000rpm", db-12,1 };
frequency = 0.8 + HZ_RPM2*0.2;
volume = engineOn*(1-camPos)*VOLUME_RPM2;
};
class Engine2_int
{
sound[] = {"A3\Sounds_F\vehicles\soft\Hatchback_01\Hatchback_01_int_2600rpm", db-11,1 };
frequency = 0.8 + HZ_RPM3*0.2;
volume = engineOn*(1-camPos)*VOLUME_RPM3;
};
class Engine3_int
{
sound[] = {"A3\Sounds_F\vehicles\soft\Hatchback_01\Hatchback_01_int_3200rpm", db-10,1 };
frequency = 0.8 + HZ_RPM4*0.2;
volume = engineOn*(1-camPos)*VOLUME_RPM4;
};
class Engine4_int
{
sound[] = {"A3\Sounds_F\vehicles\soft\Hatchback_01\Hatchback_01_int_4000rpm", db-9,1 };
frequency = 0.8 + HZ_RPM5*0.2;
volume = engineOn*(1-camPos)*VOLUME_RPM5;
};
class Engine5_int
{
sound[] = {"A3\Sounds_F\vehicles\soft\Hatchback_01\Hatchback_01_int_5000rpm", db-6,1 };
frequency = 0.95 + HZ_RPM6*0.15;
volume = engineOn*(1-camPos)*VOLUME_RPM6;
};
/* hatchback internal sounds with gas */
class IdleThrust_int
{
sound[] = {"A3\Sounds_F\vehicles\soft\Hatchback_01\Hatchback_01_int_idle_exhaust", db-10,1 };
frequency = 0.9 + HZ_IDLE*0.2;
volume = engineOn*(1-camPos)*(0.4+(0.6*FACTOR(thrust,0.1,1)))*VOLUME_IDLE;
};
class EngineThrust_int
{
sound[] = {"A3\Sounds_F\vehicles\soft\Hatchback_01\Hatchback_01_int_1000rpm_exhaust", db-9,1 };
frequency = 0.8 + HZ_RPM1*0.2;
volume = engineOn*(1-camPos)*(0.4+(0.6*FACTOR(thrust,0.1,1)))*VOLUME_RPM1;
};
class Engine1_Thrust_int
{
sound[] = {"A3\Sounds_F\vehicles\soft\Hatchback_01\Hatchback_01_int_2000rpm_exhaust", db-8,1 };
frequency = 0.8 + HZ_RPM2*0.2;
volume = engineOn*(1-camPos)*(0.4+(0.6*FACTOR(thrust,0.1,1)))*VOLUME_RPM2;
};
class Engine2_Thrust_int
{
sound[] = {"A3\Sounds_F\vehicles\soft\Hatchback_01\Hatchback_01_int_2600rpm_exhaust", db-7,1 };
frequency = 0.8 + HZ_RPM3*0.2;
volume = engineOn*(1-camPos)*(0.4+(0.6*FACTOR(thrust,0.1,1)))*VOLUME_RPM3;
};
class Engine3_Thrust_int
{
sound[] = {"A3\Sounds_F\vehicles\soft\Hatchback_01\Hatchback_01_int_3200rpm_exhaust", db-6,1 };
frequency = 0.8 + HZ_RPM4*0.2;
volume = engineOn*(1-camPos)*(0.4+(0.6*FACTOR(thrust,0.1,1)))*VOLUME_RPM4;
};
class Engine4_Thrust_int
{
sound[] = {"A3\Sounds_F\vehicles\soft\Hatchback_01\Hatchback_01_int_4000rpm_exhaust", db-5,1 };
frequency = 0.8 + HZ_RPM5*0.3;
volume = engineOn*(1-camPos)*(0.4+(0.6*FACTOR(thrust,0.1,1)))*VOLUME_RPM5;
};
class Engine5_Thrust_int
{
sound[] = {"A3\Sounds_F\vehicles\soft\Hatchback_01\Hatchback_01_int_5000rpm_exhaust", db-4,1 };
frequency = 0.9 + HZ_RPM6*0.2;
volume = engineOn*(1-camPos)*(0.4+(0.6*FACTOR(thrust,0.1,1)))*VOLUME_RPM6;
};
class Movement
{
sound = "soundEnviron";
frequency = "1";
volume = "0";
};
/* end internal sounds with gas */
/*----------------------------------*/
/*----------- TIRES EXT ---------*/
/*----------------------------------*/
class TiresRockOut
{
sound[] = {"A3\Sounds_F\vehicles\soft\tires\ext_tires_dirt_soft_1", db-6, 1.0, 60};
frequency = "1";
volume = "camPos*rock*(speed factor[2, 20])";
};
class TiresSandOut
{
sound[] = {"A3\Sounds_F\vehicles\soft\tires\ext-tires-sand1", db-6, 1.0, 60};
frequency = "1";
volume = "camPos*sand*(speed factor[2, 20])";
};
class TiresGrassOut
{
sound[] = {"A3\Sounds_F\vehicles\soft\tires\ext_tires_dirt_soft_2", db-6, 1.0, 60};
frequency = "1";
volume = "camPos*grass*(speed factor[2, 20])";
};
class TiresMudOut
{
sound[] = {"A3\Sounds_F\vehicles\soft\tires\ext-tires-mud2", db-6, 1.0, 60};
frequency = "1";
volume = "camPos*mud*(speed factor[2, 20])";
};
class TiresGravelOut
{
sound[] = {"A3\Sounds_F\vehicles\soft\tires\ext_tires_gravel_1", db-6, 1.0, 60};
frequency = "1";
volume = "camPos*gravel*(speed factor[2, 20])";
};
class TiresAsphaltOut
{
sound[] = {"A3\Sounds_F\vehicles\soft\tires\ext_tires_asfalt_2", db-6, 1.0, 60};
frequency = "1";
volume = "camPos*asphalt*(speed factor[2, 20])";
};
class NoiseOut
{
sound[] = {"A3\Sounds_F\vehicles\soft\noises\noise_ext_car_3", db-8, 1.0, 90};
frequency = "1";
volume = "camPos*(damper0 max 0.02)*(speed factor[0, 8])";
};
/*----------------------------------*/
/*----------- TIRES INT ---------*/
/*----------------------------------*/
class TiresRockIn
{
sound[] = {"A3\Sounds_F\vehicles\soft\tires\int_tires_dirt_soft_1", db-6, 1.0};
frequency = "1";
volume = "(1-camPos)*rock*(speed factor[2, 20])";
};
class TiresSandIn
{
sound[] = {"A3\Sounds_F\vehicles\soft\tires\int-tires-sand2", db-6, 1.0};
frequency = "1";
volume = "(1-camPos)*sand*(speed factor[2, 20])";
};
class TiresGrassIn
{
sound[] = {"A3\Sounds_F\vehicles\soft\tires\int_tires_dirt_soft_2", db-6, 1.0};
frequency = "1";
volume = "(1-camPos)*grass*(speed factor[2, 20])";
};
class TiresMudIn
{
sound[] = {"A3\Sounds_F\vehicles\soft\tires\int-tires-mud2", db-6, 1.0};
frequency = "1";
volume = "(1-camPos)*mud*(speed factor[2, 20])";
};
class TiresGravelIn
{
sound[] = {"A3\Sounds_F\vehicles\soft\tires\int_tires_gravel_1", db-6, 1.0};
frequency = "1";
volume = "(1-camPos)*gravel*(speed factor[2, 20])";
};
class TiresAsphaltIn
{
sound[] = {"A3\Sounds_F\vehicles\soft\tires\int_tires_asfalt_2", db-6, 1.0};
frequency = "1";
volume = "(1-camPos)*asphalt*(speed factor[2, 20])";
};
class NoiseIn
{
sound[] = {"A3\Sounds_F\vehicles\soft\noises\noise_int_car_3", db-12, 1.0};
frequency = "1";
volume = "(damper0 max 0.1)*(speed factor[0, 8])*(1-camPos)"; //Definition of inside sounds
};
/*------------------------------------------------------------------*/
/*-------------- external sounds for screeching tires on the road -------------*/
/*------------------------------------------------------------------*/
/* sounds on the road */
class breaking_ext_road
{
sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_loop_04", db-3, 1, 80};
frequency = 1;
volume = engineOn*camPos*asphalt*(LongSlipDrive Factor[-0.1, -0.4])*(Speed Factor[2, 15]);
};
class acceleration_ext_road
{
sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_loop_02", db-3, 1, 80};
frequency = 1;
volume = engineOn*camPos*asphalt*(LongSlipDrive Factor[0.1, 0.4])*(Speed Factor[15, 2]);
};
class turn_left_ext_road
{
sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_loop_02", db-3, 1, 80};
frequency = 1;
volume = engineOn*camPos*asphalt*(latSlipDrive Factor[0.1, 0.4])*(Speed Factor[2, 15]);
};
class turn_right_ext_road
{
sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_loop_02", db-3, 1, 80};
frequency = 1;
volume = engineOn*camPos*asphalt*(latSlipDrive Factor[-0.1, -0.4])*(Speed Factor[2, 15]);
};
/*-----------------------------------------------------------------*/
/* external sounds for screeching tires on other surfaces */
/*-----------------------------------------------------------------*/
class breaking_ext_dirt
{
sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_14_dirt_breaking", db-3, 1, 60};
frequency = 1;
volume = engineOn*camPos*(1-asphalt)*(LongSlipDrive Factor[-0.1, -0.4])*(Speed Factor[1, 15]);
};
class acceleration_ext_dirt
{
sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_16_dirt_acceleration", db-3, 1, 60};
frequency = 1;
volume = engineOn*camPos*(1-asphalt)*(LongSlipDrive Factor[0.1, 0.4])*(Speed Factor[15, 1]);
};
class turn_left_ext_dirt
{
sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_18_dirt", db-3, 1, 60};
frequency = 1;
volume = engineOn*camPos*(1-asphalt)*(latSlipDrive Factor[0.1, 0.4])*(Speed Factor[1, 15]);
};
class turn_right_ext_dirt
{
sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_18_dirt", db-3, 1, 60};
frequency = 1;
volume = engineOn*camPos*(1-asphalt)*(latSlipDrive Factor[-0.1, -0.4])*(Speed Factor[1, 15]);
};
/*---------------------------------------------------------------------------*/
/*-------------- internal sounds for screeching tires on the road --------------*/
/*---------------------------------------------------------------------------*/
class breaking_int_road
{
sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_loop_04_int", db-10, 1};
frequency = 1;
volume = engineOn*asphalt*(1-camPos)*(LongSlipDrive Factor[-0.1, -0.4])*(Speed Factor[2, 15]);
};
class acceleration_int_road
{
sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_loop_02_int", db-10, 1};
frequency = 1;
volume = engineOn*asphalt*(1-camPos)*(LongSlipDrive Factor[0.1, 0.4])*(Speed Factor[15, 2]);
};
class turn_left_int_road
{
sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_loop_02_int", db-10, 1};
frequency = 1;
volume = engineOn*asphalt*(1-camPos)*(latSlipDrive Factor[0.1, 0.4])*(Speed Factor[2, 15]);
};
class turn_right_int_road
{
sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_loop_02_int", db-10, 1};
frequency = 1;
volume = engineOn*asphalt*(1-camPos)*(latSlipDrive Factor[-0.1, -0.4])*(Speed Factor[2, 15]);
};
/*--------------------------------------------------------------------------------------------*/
/*-------------- internal sounds for screeching tires on other surfaces -------------*/
/*--------------------------------------------------------------------------------------------*/
class breaking_int_dirt
{
sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_14_dirt_breaking_int", db-10, 1};
frequency = 1;
volume = engineOn*(1-asphalt)*(1-camPos)*(LongSlipDrive Factor[-01, -0.4])*(Speed Factor[2, 15]);
};
class acceleration_int_dirt
{
sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_16_dirt_acceleration_int", db-10, 1};
frequency = 1;
volume = engineOn*(1-asphalt)*(1-camPos)*(LongSlipDrive Factor[0.1, 0.4])*(Speed Factor[15, 2]);
};
class turn_left_int_dirt
{
sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_18_dirt_int", db-10, 1};
frequency = 1;
volume = engineOn*(1-asphalt)*(1-camPos)*(latSlipDrive Factor[0.1, 0.4])*(Speed Factor[2, 15]);
};
class turn_right_int_dirt
{
sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_18_dirt_int", db-10, 1};
frequency = 1;
volume = engineOn*(1-asphalt)*(1-camPos)*(latSlipDrive Factor[-0.1, -0.4])*(Speed Factor[2, 15]);
};
};