mirror of
https://github.com/acemod/ACE3.git
synced 2024-08-30 18:23:18 +00:00
Merge branch 'master' into pr/8215
This commit is contained in:
commit
28c166d650
2
.gitignore
vendored
2
.gitignore
vendored
@ -7,7 +7,7 @@ extensions/vcproj64/*
|
||||
.vscode/*
|
||||
hemtt
|
||||
hemtt.exe
|
||||
.hemtt/
|
||||
.hemttout
|
||||
tools/temp
|
||||
*.cache
|
||||
*.pbo
|
||||
|
37
.hemtt/project.toml
Normal file
37
.hemtt/project.toml
Normal file
@ -0,0 +1,37 @@
|
||||
name = "ACE3"
|
||||
prefix = "ace"
|
||||
author = "ACE-Team"
|
||||
|
||||
[files]
|
||||
include = [
|
||||
"*.dll",
|
||||
"*.so",
|
||||
"mod.cpp",
|
||||
"README.md",
|
||||
"docs/README_*.md",
|
||||
"AUTHORS.txt",
|
||||
"LICENSE",
|
||||
"logo_ace3_ca.paa",
|
||||
"meta.cpp",
|
||||
]
|
||||
|
||||
[version]
|
||||
git_hash = 0
|
||||
|
||||
# TODO Enable once templating is added in v0.10
|
||||
#[properties]
|
||||
#version = "{{git \"id 8\"}}"
|
||||
|
||||
[asc]
|
||||
enabled = true
|
||||
exclude = [
|
||||
"/initsettings.sqf",
|
||||
"/initkeybinds.sqf",
|
||||
"/xeh_prep.sqf",
|
||||
"dev",
|
||||
"medical_ai/statemachine.sqf",
|
||||
"common/functions/fnc_dummy.sqf",
|
||||
]
|
||||
|
||||
[hemtt.config]
|
||||
preset = "Hemtt" # TODO will change after v0.10-a14
|
@ -145,6 +145,7 @@ PiZZADOX <509thParachuteInfantry@gmail.com>
|
||||
pokertour
|
||||
Professor <lukas.trneny@wo.cz>
|
||||
Pterolatypus <pterolatypus@gmail.com>
|
||||
QuantX
|
||||
QuickDagger
|
||||
rakowozz
|
||||
ramius86 <pasini86@hotmail.com>
|
||||
@ -182,4 +183,4 @@ wizpig64
|
||||
YetheSamartaka
|
||||
xrufix
|
||||
Zakant <Zakant@gmx.de>
|
||||
zGuba
|
||||
zGuba
|
@ -50,7 +50,6 @@ class GVAR(rangeTableDialog) {
|
||||
};
|
||||
class ChargeListBox: RscListbox {
|
||||
idc = IDC_CHARGELIST;
|
||||
style = ST_RIGHT;
|
||||
x = "13 *(safeZoneH / 40) + (safezoneX + (safezoneW - safeZoneH) / 2)";
|
||||
y = "2 * ((safeZoneH / 1.2) / 25) + (safezoneY + (safezoneH - (safeZoneH / 1.2)) / 2)";
|
||||
w = "5 * (safeZoneH / 40)";
|
||||
|
@ -36,7 +36,9 @@ if (_item isEqualType "") then {
|
||||
_validItem =
|
||||
(alive _item) &&
|
||||
{_ignoreInteraction || {([_item, _vehicle] call EFUNC(interaction,getInteractionDistance)) < MAX_LOAD_DISTANCE}} &&
|
||||
{!(_item getVariable [QEGVAR(cookoff,isCookingOff), false])};
|
||||
{!(_item getVariable [QEGVAR(cookoff,isCookingOff), false])} &&
|
||||
{isNull(_item getVariable [QEGVAR(refuel,nozzle), objNull])} && // Objects which have a refueling nozzle connected to them cannot be loaded
|
||||
{isNull(_item getVariable [QEGVAR(refuel,ownedNozzle), objNull])}; // Fuel sources which have their nozzle out cannot be loaded
|
||||
};
|
||||
|
||||
_validItem &&
|
||||
|
@ -6,7 +6,8 @@ class CfgUIGrids {
|
||||
grid_ACE_displayText[] = {
|
||||
{
|
||||
"((safezoneX + safezoneW) - (10 *(((safezoneW / safezoneH) min 1.2) / 40)) - 2.9 *(((safezoneW / safezoneH) min 1.2) / 40))",
|
||||
"safeZoneY + 0.175 * safezoneH, (10 *(((safezoneW / safezoneH) min 1.2) / 40))",
|
||||
"safeZoneY + 0.175 * safezoneH",
|
||||
"(10 *(((safezoneW / safezoneH) min 1.2) / 40))",
|
||||
"(3 *((((safezoneW / safezoneH) min 1.2) / 1.2) / 25))"
|
||||
},
|
||||
"(((safezoneW / safezoneH) min 1.2) / 40)",
|
||||
|
@ -1,4 +1,3 @@
|
||||
class ctrlMapEmpty;
|
||||
class GVAR(DisableMouse_Dialog) {
|
||||
idd = -1;
|
||||
movingEnable = 0;
|
||||
|
@ -1,19 +1,20 @@
|
||||
class GVAR(ProgressBar_Dialog) {
|
||||
idd = -1;
|
||||
movingEnable = 0;
|
||||
onLoad = QUOTE(uiNamespace setVariable [ARR_2(QUOTE(QGVAR(ctrlProgressBG)),(_this select 0) displayCtrl 1)]; uiNamespace setVariable [ARR_2(QUOTE(QGVAR(ctrlProgressBar)),(_this select 0) displayCtrl 2)]; uiNamespace setVariable [ARR_2(QUOTE(QGVAR(ctrlProgressBarTitle)),(_this select 0) displayCtrl 3)];);
|
||||
onLoad = QUOTE(uiNamespace setVariable [ARR_2(QUOTE(QGVAR(dlgProgress)),_this select 0)]; uiNamespace setVariable [ARR_2(QUOTE(QGVAR(ctrlProgressBG)),(_this select 0) displayCtrl 1)]; uiNamespace setVariable [ARR_2(QUOTE(QGVAR(ctrlProgressBar)),(_this select 0) displayCtrl 2)]; uiNamespace setVariable [ARR_2(QUOTE(QGVAR(ctrlProgressBarTitle)),(_this select 0) displayCtrl 3)];);
|
||||
objects[] = {};
|
||||
|
||||
class controlsBackground {
|
||||
class Background {
|
||||
idc = -1;
|
||||
class Background: ctrlMapEmpty {
|
||||
idc = 101;
|
||||
moving = 0;
|
||||
fade = 1;
|
||||
font = "TahomaB";
|
||||
text = "";
|
||||
sizeEx = 0;
|
||||
lineSpacing = 0;
|
||||
type = 0;
|
||||
style = 0;
|
||||
style = 48;
|
||||
type = 101;
|
||||
size = 1;
|
||||
colorBackground[] = {0, 0, 0, 0.0};
|
||||
colorText[] = {0, 0, 0, 0};
|
||||
|
@ -64,6 +64,7 @@ PREP(getDefaultAnim);
|
||||
PREP(getDefinedVariable);
|
||||
PREP(getDefinedVariableDefault);
|
||||
PREP(getDefinedVariableInfo);
|
||||
PREP(getFiremodeIndex);
|
||||
PREP(getFirstObjectIntersection);
|
||||
PREP(getFirstTerrainIntersection);
|
||||
PREP(getGunner);
|
||||
|
@ -59,6 +59,16 @@ GVAR(hexArray) = [
|
||||
"F0","F1","F2","F3","F4","F5","F6","F7","F8","F9","FA","FB","FC","FD","FE","FF"
|
||||
];
|
||||
|
||||
GVAR(canDigSurfaces) = createHashMapFromArray [
|
||||
["int_concrete",false],["int_pavement_exp",false],["int_solidwood_exp",false],["tiling",false],["roof_tiles",false],["stony",false],
|
||||
["wavymetal",false],["int_wood",false],["int_tiles",false],["softwood_exp",false],["int_concrete_exp",false],["tiles_int",false],
|
||||
["metalplate_exp",false],["int_metalplate_exp",false],["steel_exp",false],["metal",false],["int_lino_exp",false],["metal_int",false],
|
||||
["wavymetal_exp",false],["int_metal",false],["asphalt_exp",false],["pavement_exp",false],["gridmetal_exp",false],
|
||||
["rooftiles_exp",false],["rock",false],["int_mat_exp",false],["wood_int",false],["concrete_int",false],["tarmac",false],["wood",false],
|
||||
["roof_tin",false],["lino_exp",false],["concrete",false],["int_softwood_exp",false], ["concrete_exp",false],["stones_exp",false],
|
||||
["forest_exp",true],["snow",true],["grasstall_exp",true],["grass",true]
|
||||
];
|
||||
|
||||
isHC = !hasInterface && !isDedicated; // deprecated because no tag
|
||||
missionNamespace setVariable ["ACE_isHC", ACE_isHC];
|
||||
uiNamespace setVariable ["ACE_isHC", ACE_isHC];
|
||||
|
@ -58,6 +58,8 @@ class ACE_Rsc_Control_Base {
|
||||
h = 0;
|
||||
};
|
||||
|
||||
class ctrlMapEmpty;
|
||||
|
||||
#include "ACE_Settings.hpp"
|
||||
#include "define.hpp"
|
||||
#include "ProgressScreen.hpp"
|
||||
|
@ -4,34 +4,36 @@
|
||||
* Checks if the player can dig on the surface below (enough dust).
|
||||
*
|
||||
* Arguments:
|
||||
* 0: Unit <OBJECT>
|
||||
* 0: Unit or Position (2d/3d) <OBJECT><ARRAY>
|
||||
*
|
||||
* Return Value:
|
||||
* Can Dig <BOOL>
|
||||
*
|
||||
* Example:
|
||||
* [ACE_player] call ace_common_fnc_canDig
|
||||
* [[1000,2000]] call ace_common_fnc_canDig
|
||||
*
|
||||
* Public: No
|
||||
*/
|
||||
|
||||
params ["_unit"];
|
||||
params ["_input"];
|
||||
|
||||
private _posASL = getPosASL _unit;
|
||||
private _posASL = _input;
|
||||
|
||||
if ((getPosATL _unit) select 2 > 0.05 || // Walking on objects, such as buildings, pavements, etc.
|
||||
if ((_input isEqualType objNull) && {
|
||||
_posASL = getPosASL _input;
|
||||
(getPosATL _unit) select 2 > 0.05 || // Walking on objects, such as buildings, pavements, etc.
|
||||
{surfaceIsWater _posASL} // posATL in low water (not as low to allow awalking) is negative
|
||||
) exitWith {false};
|
||||
}) exitWith {false};
|
||||
|
||||
private _surfaceClass = (surfaceType _posASL) select [1];
|
||||
private _config = configFile >> "CfgSurfaces" >> _surfaceClass;
|
||||
private _surfaceType = getText (_config >> "soundEnviron");
|
||||
private _surfaceDust = getNumber (_config >> "dust");
|
||||
|
||||
TRACE_2("Surface",_surfaceType,_surfaceDust);
|
||||
TRACE_3("",_surfaceClass,getText (_config >> "soundEnviron"),getNumber (_config >> "dust"));
|
||||
|
||||
if (isNumber (_config >> "ACE_canDig")) then {
|
||||
(getNumber (_config >> "ACE_canDig")) == 1 // return
|
||||
} else {
|
||||
!(_surfaceType in DIG_SURFACE_BLACKLIST) && {(_surfaceDust >= 0.1) || {_surfaceType in DIG_SURFACE_WHITELIST}} // return
|
||||
private _surfaceType = getText (_config >> "soundEnviron");
|
||||
GVAR(canDigSurfaces) getOrDefault [_surfaceType, getNumber (_config >> "dust") >= 0.1, true] // return
|
||||
};
|
||||
|
@ -1,5 +1,5 @@
|
||||
#include "script_component.hpp"
|
||||
#include "\a3\ui_f_curator\ui\defineresincldesign.inc"
|
||||
#include "\a3\ui_f_curator\ui\defineResinclDesign.inc"
|
||||
/*
|
||||
* Author: commy2
|
||||
* Disables key input. ESC can still be pressed to open the menu.
|
||||
@ -107,11 +107,24 @@ if (_state) then {
|
||||
};
|
||||
|
||||
GVAR(disableInputPFH) = [{
|
||||
if (isNull (uiNamespace getVariable [QGVAR(dlgDisableMouse), displayNull]) && {!visibleMap && {isNull findDisplay IDD_INTERRUPT} && {isNull findDisplay IDD_RSCDISPLAYCURATOR} && {isNull findDisplay IDD_TEAMSWITCH}}) then {
|
||||
if (isNull (uiNamespace getVariable [QGVAR(dlgDisableMouse), displayNull]) && {!visibleMap && {isNull findDisplay IDD_INTERRUPT} && {isNull findDisplay IDD_RSCDISPLAYCURATOR} && {isNull findDisplay IDD_TEAMSWITCH}}) exitWith {
|
||||
[GVAR(disableInputPFH)] call CBA_fnc_removePerFrameHandler;
|
||||
GVAR(disableInputPFH) = nil;
|
||||
[true] call FUNC(disableUserInput);
|
||||
};
|
||||
|
||||
// Allow user input if the player is respawning and a respawn template (menu position or spectator)
|
||||
// is open (otherwise they cannot click the respawn button)
|
||||
if (
|
||||
!alive player
|
||||
&& {playerRespawnTime != -1}
|
||||
&& {
|
||||
missionNamespace getVariable ["BIS_RscRespawnControlsMap_shown", false]
|
||||
|| {missionNamespace getVariable ["BIS_RscRespawnControlsSpectate_shown", false]}
|
||||
}
|
||||
) exitWith {
|
||||
[false] call FUNC(disableUserInput);
|
||||
};
|
||||
}, 0, []] call CBA_fnc_addPerFrameHandler;
|
||||
} else {
|
||||
if (!isNil QGVAR(disableInputPFH)) then {
|
||||
|
31
addons/common/functions/fnc_getFiremodeIndex.sqf
Normal file
31
addons/common/functions/fnc_getFiremodeIndex.sqf
Normal file
@ -0,0 +1,31 @@
|
||||
#include "script_component.hpp"
|
||||
/*
|
||||
* Author: PabstMirror
|
||||
* Get the firemode index of the weapon for use with "SwitchWeapon"
|
||||
*
|
||||
* Arguments:
|
||||
* 0: Unit <OBJECT>
|
||||
* 1: Muzzle <STRING> (Optional)
|
||||
* 2: Firemode <STRING> (Optional)
|
||||
*
|
||||
* Return Value:
|
||||
* Weapon/Mode index <NUMBER>
|
||||
*
|
||||
* Example:
|
||||
* [player] call ace_common_fnc_getFiremodeIndex
|
||||
*
|
||||
* Public: Yes
|
||||
*/
|
||||
|
||||
params ["_unit"];
|
||||
(weaponState _unit) params ["", "_currentMuzzle", "_currentFiremode"];
|
||||
params ["", ["_muzzle", _currentMuzzle], ["_firemode", _currentFireMode]];
|
||||
|
||||
private _weapons = _unit weaponsInfo [_muzzle, false];
|
||||
private _index = -1;
|
||||
{
|
||||
_x params ["_xIndex", "", "", "", "_xFiremode"];
|
||||
if (_xFiremode == _firemode) exitWith { _index = _xIndex; };
|
||||
} forEach _weapons;
|
||||
|
||||
_index
|
@ -30,6 +30,15 @@ private _player = ACE_player;
|
||||
closeDialog 0;
|
||||
createDialog QGVAR(ProgressBar_Dialog);
|
||||
|
||||
private _display = uiNamespace getVariable QGVAR(dlgProgress);
|
||||
|
||||
// Ensure CBA keybindings are hooked into the display
|
||||
_display call (uiNamespace getVariable "CBA_events_fnc_initDisplayCurator");
|
||||
|
||||
// Hide cursor by using custom transparent cursor
|
||||
private _map = _display displayCtrl 101;
|
||||
_map ctrlMapCursor ["", QGVAR(blank)];
|
||||
|
||||
(uiNamespace getVariable QGVAR(ctrlProgressBarTitle)) ctrlSetText _localizedTitle;
|
||||
|
||||
//Adjust position based on user setting:
|
||||
|
@ -15,18 +15,3 @@
|
||||
#endif
|
||||
|
||||
#include "\z\ace\addons\main\script_macros.hpp"
|
||||
|
||||
|
||||
#define DIG_SURFACE_BLACKLIST [ \
|
||||
"concrete", "concrete_exp", "concrete_int", "int_concrete", "int_concrete_exp", \
|
||||
"pavement_exp", "int_pavement_exp", \
|
||||
"tiling", "tiles_int", "int_tiles", \
|
||||
"roof_tin", "roof_tiles", "rooftiles_exp", \
|
||||
"tarmac", "asphalt_exp", \
|
||||
"stones_exp", "rock", "stony", \
|
||||
"metal", "gridmetal_exp", "metalplate_exp", "int_metalplate_exp", "metal_int", "wavymetal", "wavymetal_exp", "int_metal", "steel_exp", \
|
||||
"lino_exp", "int_lino_exp", "int_mat_exp", \
|
||||
"wood", "wood_int", "int_wood", "softwood_exp", "int_softwood_exp", "int_solidwood_exp" \
|
||||
]
|
||||
|
||||
#define DIG_SURFACE_WHITELIST ["grass", "grasstall_exp", "forest_exp", "snow"]
|
||||
|
@ -51,7 +51,7 @@ params ["_listBoxCtrl", "_itemsCountArray"];
|
||||
_picture = getText (_configPath >> _classname >> "picture");
|
||||
};
|
||||
default {
|
||||
ERROR(format ["[%1] - bad classname", _classname]);
|
||||
ERROR_1("[%1] - bad classname",_classname);
|
||||
};
|
||||
};
|
||||
|
||||
|
BIN
addons/dragging/anim/zDummy.rtm
Normal file
BIN
addons/dragging/anim/zDummy.rtm
Normal file
Binary file not shown.
@ -48,7 +48,12 @@ if (_target isKindOf "CAManBase" || {animationState _unit in CARRY_ANIMATIONS})
|
||||
_unit removeWeapon "ACE_FakePrimaryWeapon";
|
||||
|
||||
// reselect weapon and re-enable sprint
|
||||
_unit selectWeapon primaryWeapon _unit;
|
||||
private _previousWeaponIndex = _unit getVariable [QGVAR(previousWeapon), -1];
|
||||
_unit setVariable [QGVAR(previousWeapon), nil, true];
|
||||
|
||||
if (_previousWeaponIndex != -1) then {
|
||||
_unit action ["SwitchWeapon", _unit, _unit, _previousWeaponIndex];
|
||||
};
|
||||
|
||||
[_unit, "forceWalk", "ACE_dragging", false] call EFUNC(common,statusEffect_set);
|
||||
[_unit, "blockThrow", "ACE_dragging", false] call EFUNC(common,statusEffect_set);
|
||||
|
@ -51,13 +51,13 @@ if (_target isKindOf "CAManBase") then {
|
||||
_timer = CBA_missionTime + 10;
|
||||
|
||||
} else {
|
||||
|
||||
// select no weapon and stop sprinting
|
||||
private _previousWeaponIndex = [_unit] call EFUNC(common,getFiremodeIndex);
|
||||
_unit setVariable [QGVAR(previousWeapon), _previousWeaponIndex, true];
|
||||
_unit action ["SwitchWeapon", _unit, _unit, 299];
|
||||
[_unit, "AmovPercMstpSnonWnonDnon", 0] call EFUNC(common,doAnimation);
|
||||
|
||||
[_unit, "forceWalk", "ACE_dragging", true] call EFUNC(common,statusEffect_set);
|
||||
|
||||
};
|
||||
|
||||
[_unit, "blockThrow", "ACE_dragging", true] call EFUNC(common,statusEffect_set);
|
||||
|
Binary file not shown.
@ -1,119 +0,0 @@
|
||||
class cfgSkeletons {
|
||||
class OFP2_ManSkeleton {
|
||||
isDiscrete = 0;
|
||||
skeletonInherit = "";
|
||||
skeletonBones[] = {
|
||||
"Pelvis","",
|
||||
"Spine","Pelvis",
|
||||
"Spine1","Spine",
|
||||
"Spine2","Spine1",
|
||||
"Spine3","Spine2",
|
||||
"camera","Pelvis",// case has changed for arma3
|
||||
"weapon","Spine1",
|
||||
"launcher","Spine1",
|
||||
"Neck","Spine3",
|
||||
"Neck1","Neck",
|
||||
"Head","Neck1", //Head skeleton in hierarchy
|
||||
//Left upper side
|
||||
"LeftShoulder","Spine3",
|
||||
"LeftArm","LeftShoulder",
|
||||
"LeftArmRoll","LeftArm",
|
||||
"LeftForeArm","LeftArmRoll",
|
||||
"LeftForeArmRoll","LeftForeArm",
|
||||
"LeftHand","LeftForeArmRoll",
|
||||
"LeftHandRing","LeftHand",
|
||||
"LeftHandRing1","LeftHandRing",
|
||||
"LeftHandRing2","LeftHandRing1",
|
||||
"LeftHandRing3","LeftHandRing2",
|
||||
"LeftHandPinky1","LeftHandRing",
|
||||
"LeftHandPinky2","LeftHandPinky1",
|
||||
"LeftHandPinky3","LeftHandPinky2",
|
||||
"LeftHandMiddle1","LeftHand",
|
||||
"LeftHandMiddle2","LeftHandMiddle1",
|
||||
"LeftHandMiddle3","LeftHandMiddle2",
|
||||
"LeftHandIndex1","LeftHand",
|
||||
"LeftHandIndex2","LeftHandIndex1",
|
||||
"LeftHandIndex3","LeftHandIndex2",
|
||||
"LeftHandThumb1","LeftHand",
|
||||
"LeftHandThumb2","LeftHandThumb1",
|
||||
"LeftHandThumb3","LeftHandThumb2",
|
||||
//Right upper side
|
||||
"RightShoulder","Spine3",
|
||||
"RightArm","RightShoulder",
|
||||
"RightArmRoll","RightArm",
|
||||
"RightForeArm","RightArmRoll",
|
||||
"RightForeArmRoll","RightForeArm",
|
||||
"RightHand","RightForeArmRoll",
|
||||
"RightHandRing","RightHand",
|
||||
"RightHandRing1","RightHandRing",
|
||||
"RightHandRing2","RightHandRing1",
|
||||
"RightHandRing3","RightHandRing2",
|
||||
"RightHandPinky1","RightHandRing",
|
||||
"RightHandPinky2","RightHandPinky1",
|
||||
"RightHandPinky3","RightHandPinky2",
|
||||
"RightHandMiddle1","RightHand",
|
||||
"RightHandMiddle2","RightHandMiddle1",
|
||||
"RightHandMiddle3","RightHandMiddle2",
|
||||
"RightHandIndex1","RightHand",
|
||||
"RightHandIndex2","RightHandIndex1",
|
||||
"RightHandIndex3","RightHandIndex2",
|
||||
"RightHandThumb1","RightHand",
|
||||
"RightHandThumb2","RightHandThumb1",
|
||||
"RightHandThumb3","RightHandThumb2",
|
||||
//Left lower side
|
||||
"LeftUpLeg","Pelvis",
|
||||
"LeftUpLegRoll","LeftUpLeg",
|
||||
"LeftLeg","LeftUpLegRoll",
|
||||
"LeftLegRoll","LeftLeg",
|
||||
"LeftFoot","LeftLegRoll",
|
||||
"LeftToeBase","LeftFoot",
|
||||
//Right lower side
|
||||
"RightUpLeg","Pelvis",
|
||||
"RightUpLegRoll","RightUpLeg",
|
||||
"RightLeg","RightUpLegRoll",
|
||||
"RightLegRoll","RightLeg",
|
||||
"RightFoot","RightLegRoll",
|
||||
"RightToeBase","RightFoot",
|
||||
//New facial features arma3 only
|
||||
"Face_Hub","Head",
|
||||
"Face_Jawbone","Face_Hub",
|
||||
"Face_Jowl","Face_Jawbone",
|
||||
"Face_chopRight","Face_Jawbone",
|
||||
"Face_chopLeft","Face_Jawbone",
|
||||
"Face_LipLowerMiddle","Face_Jawbone",
|
||||
"Face_LipLowerLeft","Face_Jawbone",
|
||||
"Face_LipLowerRight","Face_Jawbone",
|
||||
"Face_Chin","Face_Jawbone",
|
||||
"Face_Tongue","Face_Jawbone",
|
||||
"Face_CornerRight","Face_Hub",
|
||||
"Face_CheekSideRight","Face_CornerRight",
|
||||
"Face_CornerLeft","Face_Hub",
|
||||
"Face_CheekSideLeft","Face_CornerLeft",
|
||||
"Face_CheekFrontRight","Face_Hub",
|
||||
"Face_CheekFrontLeft","Face_Hub",
|
||||
"Face_CheekUpperRight","Face_Hub",
|
||||
"Face_CheekUpperLeft","Face_Hub",
|
||||
"Face_LipUpperMiddle","Face_Hub",
|
||||
"Face_LipUpperRight","Face_Hub",
|
||||
"Face_LipUpperLeft","Face_Hub",
|
||||
"Face_NostrilRight","Face_Hub",
|
||||
"Face_NostrilLeft","Face_Hub",
|
||||
"Face_Forehead","Face_Hub",
|
||||
"Face_BrowFrontRight","Face_Forehead",
|
||||
"Face_BrowFrontLeft","Face_Forehead",
|
||||
"Face_BrowMiddle","Face_Forehead",
|
||||
"Face_BrowSideRight","Face_Forehead",
|
||||
"Face_BrowSideLeft","Face_Forehead",
|
||||
"Face_Eyelids","Face_Hub",
|
||||
"Face_EyelidUpperRight","Face_Hub",
|
||||
"Face_EyelidUpperLeft","Face_Hub",
|
||||
"Face_EyelidLowerRight","Face_Hub",
|
||||
"Face_EyelidLowerLeft","Face_Hub",
|
||||
"EyeLeft","Face_Hub",
|
||||
"EyeRight","Face_Hub"
|
||||
};// end of skeleton array
|
||||
// location of pivot points (local axes) for hierarchical animation
|
||||
pivotsModel="A3\anims_f\data\skeleton\SkeletonPivots.p3d";
|
||||
};
|
||||
};
|
||||
|
BIN
addons/field_rations/anim/zDummy.rtm
Normal file
BIN
addons/field_rations/anim/zDummy.rtm
Normal file
Binary file not shown.
@ -3,7 +3,7 @@
|
||||
#define CREATE_SCREAM(no)\
|
||||
class GVAR(DOUBLES(scream,no)) { \
|
||||
name = QUOTE(GVAR(CONCAT(scream,no)));\
|
||||
sound[] = {QUOTE(PATHTOF(CONCAT(sounds\scream,no).ogg)), "db + 8", 1};\
|
||||
sound[] = {QUOTE(PATHTOF(CONCAT(sounds\scream,no).ogg)), QUOTE(db+8), 1};\
|
||||
titles[] = {}; \
|
||||
}
|
||||
|
||||
|
@ -38,7 +38,7 @@
|
||||
<English>Auto add fortify item</English>
|
||||
<German>Füge das Bauwerkzeug automatisch hinzu</German>
|
||||
<Japanese>自動的に要塞ツールを追加</Japanese>
|
||||
<Korean>자동 추가 요새 항목</Korean>
|
||||
<Korean>요새화 도구 자동으로 추가</Korean>
|
||||
<Chinese>自動增加要塞物品</Chinese>
|
||||
<Chinesesimp>自动增加设防物品</Chinesesimp>
|
||||
<Polish>Automatycznie dodaj narzędzie do fortyfikowania</Polish>
|
||||
|
BIN
addons/gestures/anim/zDummy.rtm
Normal file
BIN
addons/gestures/anim/zDummy.rtm
Normal file
Binary file not shown.
BIN
addons/goggles/anim/zDummy.rtm
Normal file
BIN
addons/goggles/anim/zDummy.rtm
Normal file
Binary file not shown.
@ -10,8 +10,8 @@ Fast Recompiling via function
|
||||
#define PREP_RECOMPILE_END }; call _recomp; ACE_RECOMPILES pushBack _recomp;
|
||||
#else
|
||||
#define LINKFUNC(x) FUNC(x)
|
||||
#define PREP_RECOMPILE_START /* */
|
||||
#define PREP_RECOMPILE_END /* */
|
||||
#define PREP_RECOMPILE_START ; /* disabled */
|
||||
#define PREP_RECOMPILE_END ; /* disabled */
|
||||
#endif
|
||||
|
||||
|
||||
@ -32,7 +32,7 @@ STACK TRACING
|
||||
#else
|
||||
#define CALLSTACK(function) function
|
||||
#define CALLSTACK_NAMED(function, functionName) function
|
||||
#define DUMPSTACK
|
||||
#define DUMPSTACK ; /* disabled */
|
||||
#endif
|
||||
|
||||
|
||||
@ -51,8 +51,8 @@ PERFORMANCE COUNTERS SECTION
|
||||
|
||||
#define DUMP_COUNTERS ([__FILE__, __LINE__] call ACE_DUMPCOUNTERS_FNC)
|
||||
#else
|
||||
#define CREATE_COUNTER(x) /* disabled */
|
||||
#define BEGIN_COUNTER(x) /* disabled */
|
||||
#define END_COUNTER(x) /* disabled */
|
||||
#define DUMP_COUNTERS /* disabled */
|
||||
#define CREATE_COUNTER(x) ; /* disabled */
|
||||
#define BEGIN_COUNTER(x) ; /* disabled */
|
||||
#define END_COUNTER(x) ; /* disabled */
|
||||
#define DUMP_COUNTERS ; /* disabled */
|
||||
#endif
|
||||
|
@ -9,10 +9,10 @@ if (isServer) then {
|
||||
GVAR(bloodDrops) = [];
|
||||
|
||||
[QGVAR(bloodDropCreated), {
|
||||
params ["_bloodDrop"];
|
||||
params ["_bloodDrop", "_source"];
|
||||
|
||||
// Add to created queue with format: [expire time, blood object]
|
||||
private _index = GVAR(bloodDrops) pushBack [CBA_missionTime + GVAR(bloodLifetime), _bloodDrop];
|
||||
// Add to created queue with format: [expire time, blood object, source unit]
|
||||
private _index = GVAR(bloodDrops) pushBack [CBA_missionTime + GVAR(bloodLifetime), _bloodDrop, _source];
|
||||
|
||||
if (count GVAR(bloodDrops) >= GVAR(maxBloodObjects)) then {
|
||||
(GVAR(bloodDrops) deleteAt 0) params ["", "_deletedBloodDrop"];
|
||||
|
@ -7,18 +7,19 @@
|
||||
* Arguments:
|
||||
* 0: Blood Drop Type <STRING>
|
||||
* 1: Position <ARRAY>
|
||||
* 2: Source <OBJECT>
|
||||
*
|
||||
* Return Value:
|
||||
* Blood Drop <OBJECT>
|
||||
*
|
||||
* Example:
|
||||
* ["blooddrop_2", getPos player] call ace_medical_blood_fnc_createBlood
|
||||
* ["blooddrop_2", getPos player, player] call ace_medical_blood_fnc_createBlood
|
||||
*
|
||||
* Public: No
|
||||
*/
|
||||
|
||||
params ["_type", "_position"];
|
||||
TRACE_2("Creating blood",_type,_position);
|
||||
params ["_type", "_position", "_source"];
|
||||
TRACE_3("Creating blood",_type,_position,_source);
|
||||
|
||||
private _model = GVAR(models) getVariable _type;
|
||||
|
||||
@ -26,6 +27,6 @@ private _bloodDrop = createSimpleObject [_model, [0, 0, 0]];
|
||||
_bloodDrop setDir random 360;
|
||||
_bloodDrop setPos _position;
|
||||
|
||||
[QGVAR(bloodDropCreated), _bloodDrop] call CBA_fnc_serverEvent;
|
||||
[QGVAR(bloodDropCreated), [_bloodDrop, _source]] call CBA_fnc_serverEvent;
|
||||
|
||||
_bloodDrop
|
||||
|
@ -35,5 +35,5 @@ if (CBA_missionTime > (_unit getVariable [QGVAR(nextTime), -10])) then {
|
||||
_position set [2, 0];
|
||||
|
||||
private _bloodDrop = ["blooddrop_1", "blooddrop_2", "blooddrop_3", "blooddrop_4"] select floor (_bloodLoss min 3);
|
||||
[_bloodDrop, _position] call FUNC(createBlood);
|
||||
[_bloodDrop, _position, _unit] call FUNC(createBlood);
|
||||
};
|
||||
|
@ -27,7 +27,7 @@ private _distanceBetweenDrops = DISTANCE_BETWEEN_DROPS * _damage;
|
||||
private _offset = OFFSET + _distanceBetweenDrops;
|
||||
private _position = _unit getPos [_offset, _direction];
|
||||
|
||||
["blooddrop_2", _position, _direction] call FUNC(createBlood);
|
||||
["blooddrop_2", _position, _unit] call FUNC(createBlood);
|
||||
|
||||
private _dropAmount = ceil (MAXIMUM_DROPS * _damage);
|
||||
TRACE_2("Spurting blood",_dropAmount,_damage);
|
||||
@ -35,6 +35,6 @@ TRACE_2("Spurting blood",_dropAmount,_damage);
|
||||
if (_dropAmount > 1) then {
|
||||
for "_i" from 2 to _dropAmount do {
|
||||
_position = _position getPos [_distanceBetweenDrops, _direction];
|
||||
["blooddrop_1", _position, _direction] call FUNC(createBlood);
|
||||
["blooddrop_1", _position, _unit] call FUNC(createBlood);
|
||||
};
|
||||
};
|
||||
|
BIN
addons/medical_engine/data/zDummy.rtm
Normal file
BIN
addons/medical_engine/data/zDummy.rtm
Normal file
Binary file not shown.
@ -74,10 +74,10 @@ if (_isRespawn) then {
|
||||
_unit setVariable [VAR_MEDICATIONS, [], true];
|
||||
|
||||
// Unconscious spontanious wake up chance
|
||||
_unit setVariable [QEGVAR(medical,lastWakeUpCheck), nil];
|
||||
_unit setVariable [QEGVAR(medical,lastWakeUpCheck), nil, true];
|
||||
|
||||
// Cause of death
|
||||
_unit setVariable [QEGVAR(medical,causeOfDeath), nil];
|
||||
_unit setVariable [QEGVAR(medical,causeOfDeath), nil, true];
|
||||
};
|
||||
|
||||
[{
|
||||
|
@ -29,6 +29,7 @@ GVAR(enabled)
|
||||
}
|
||||
&& {alive _vehicle}
|
||||
&& {2 > locked _vehicle}
|
||||
&& {isNull getConnectedUAVUnit _unit}
|
||||
&& {simulationEnabled _vehicle}
|
||||
&& {
|
||||
-1 == crew _vehicle findIf {alive _x}
|
||||
|
@ -43,14 +43,16 @@ _source setVariable [QGVAR(currentSupply), _currentSupply + _rearmCargo, true];
|
||||
|
||||
private _rearmCargoConfig = getNumber (configOf _source >> QGVAR(defaultSupply));
|
||||
|
||||
// already initialized because this is a config rearm vehicle
|
||||
if (_rearmCargoConfig > 0 || _source getVariable [QGVAR(isSupplyVehicle), false]) exitWith {};
|
||||
// initialize if it's not a config rearm vehicle
|
||||
if (!(_rearmCargoConfig > 0 && _source getVariable [QGVAR(isSupplyVehicle), false])) then {
|
||||
_source setVariable [QGVAR(isSupplyVehicle), true, true];
|
||||
|
||||
_source setVariable [QGVAR(isSupplyVehicle), true, true];
|
||||
// only add if menu does not already exist
|
||||
if (isNil {_source getVariable QGVAR(initSupplyVehicle_jipID)}) then {
|
||||
private _jipID = [QGVAR(initSupplyVehicle), [_source]] call CBA_fnc_globalEventJIP;
|
||||
[_jipID, _source] call CBA_fnc_removeGlobalEventJIP;
|
||||
_source setVariable [QGVAR(initSupplyVehicle_jipID), _jipID];
|
||||
};
|
||||
};
|
||||
|
||||
// check if menu already exists
|
||||
if (!isNil {_source getVariable QGVAR(initSupplyVehicle_jipID)}) exitWith {};
|
||||
|
||||
private _jipID = [QGVAR(initSupplyVehicle), [_source]] call CBA_fnc_globalEventJIP;
|
||||
[_jipID, _source] call CBA_fnc_removeGlobalEventJIP;
|
||||
_source setVariable [QGVAR(initSupplyVehicle_jipID), _jipID];
|
||||
[QGVAR(rearmSourceInitalized), [_source]] call CBA_fnc_globalEvent;
|
||||
|
@ -1,45 +1,3 @@
|
||||
#define MACRO_NOZZLE_ACTIONS \
|
||||
class ACE_Actions { \
|
||||
class ACE_MainActions { \
|
||||
displayName = CSTRING(Refuel); \
|
||||
distance = REFUEL_ACTION_DISTANCE; \
|
||||
position = "[0,-0.025,0.125]"; \
|
||||
condition = "true"; \
|
||||
statement = ""; \
|
||||
exceptions[] = {INTERACT_EXCEPTIONS}; \
|
||||
showDisabled = 0; \
|
||||
icon = QPATHTOF(ui\icon_refuel_interact.paa); \
|
||||
class GVAR(PickUpNozzle) { \
|
||||
displayName = CSTRING(TakeNozzle); \
|
||||
condition = QUOTE([ARR_2(_player,_target)] call FUNC(canTakeNozzle)); \
|
||||
statement = QUOTE([ARR_2(_player,_target)] call FUNC(takeNozzle)); \
|
||||
exceptions[] = {INTERACT_EXCEPTIONS_REFUELING}; \
|
||||
icon = QPATHTOF(ui\icon_refuel_interact.paa); \
|
||||
}; \
|
||||
class GVAR(TurnOn) { \
|
||||
displayName = CSTRING(TurnOn); \
|
||||
condition = QUOTE([ARR_2(_player,_target)] call FUNC(canTurnOn)); \
|
||||
statement = QUOTE([ARR_2(_player,_target)] call DFUNC(turnOn)); \
|
||||
exceptions[] = {INTERACT_EXCEPTIONS}; \
|
||||
icon = QPATHTOF(ui\icon_refuel_interact.paa); \
|
||||
}; \
|
||||
class GVAR(TurnOff) { \
|
||||
displayName = CSTRING(TurnOff); \
|
||||
condition = QUOTE([ARR_2(_player,_target)] call FUNC(canTurnOff)); \
|
||||
statement = QUOTE([ARR_2(_player,_target)] call DFUNC(turnOff)); \
|
||||
exceptions[] = {INTERACT_EXCEPTIONS}; \
|
||||
icon = QPATHTOF(ui\icon_refuel_interact.paa); \
|
||||
}; \
|
||||
class GVAR(Disconnect) { \
|
||||
displayName = CSTRING(Disconnect); \
|
||||
condition = QUOTE([ARR_2(_player,_target)] call FUNC(canDisconnect)); \
|
||||
statement = QUOTE([ARR_2(_player,_target)] call DFUNC(disconnect)); \
|
||||
exceptions[] = {INTERACT_EXCEPTIONS_REFUELING}; \
|
||||
icon = QPATHTOF(ui\icon_refuel_interact.paa); \
|
||||
}; \
|
||||
}; \
|
||||
}
|
||||
|
||||
class CBA_Extended_EventHandlers;
|
||||
|
||||
class CfgNonAIVehicles {
|
||||
@ -91,12 +49,59 @@ class CfgVehicles {
|
||||
class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
|
||||
};
|
||||
|
||||
MACRO_NOZZLE_ACTIONS;
|
||||
displayName = QGVAR(fuelNozzle);
|
||||
scope = 1;
|
||||
scopeCurator = 1;
|
||||
model = QPATHTOF(data\nozzle.p3d);
|
||||
destrType = "DestructNo";
|
||||
|
||||
class ACE_Actions {
|
||||
class ACE_MainActions {
|
||||
displayName = CSTRING(Refuel);
|
||||
distance = REFUEL_ACTION_DISTANCE;
|
||||
position = "[0,-0.025,0.125]";
|
||||
condition = "true";
|
||||
statement = "";
|
||||
exceptions[] = {INTERACT_EXCEPTIONS};
|
||||
showDisabled = 0;
|
||||
icon = QPATHTOF(ui\icon_refuel_interact.paa);
|
||||
class GVAR(PickUpNozzle) {
|
||||
displayName = CSTRING(TakeNozzle);
|
||||
condition = QUOTE([ARR_2(_player,_target)] call FUNC(canTakeNozzle));
|
||||
statement = QUOTE([ARR_2(_player,_target)] call FUNC(takeNozzle));
|
||||
exceptions[] = {INTERACT_EXCEPTIONS_REFUELING};
|
||||
icon = QPATHTOF(ui\icon_refuel_interact.paa);
|
||||
};
|
||||
class GVAR(TurnOn) {
|
||||
displayName = CSTRING(TurnOn);
|
||||
condition = QUOTE([ARR_2(_player,_target)] call FUNC(canTurnOn));
|
||||
statement = QUOTE([ARR_2(_player,_target)] call FUNC(turnOn));
|
||||
exceptions[] = {INTERACT_EXCEPTIONS};
|
||||
icon = QPATHTOF(ui\icon_refuel_interact.paa);
|
||||
};
|
||||
class GVAR(TurnOn_Container) {
|
||||
displayName = CSTRING(TurnOn_Container);
|
||||
condition = QUOTE([ARR_3(_player,_target,true)] call FUNC(canTurnOn));
|
||||
statement = QUOTE([ARR_3(_player,_target,true)] call FUNC(turnOn));
|
||||
exceptions[] = {INTERACT_EXCEPTIONS};
|
||||
icon = QPATHTOF(ui\icon_refuel_interact.paa);
|
||||
};
|
||||
class GVAR(TurnOff) {
|
||||
displayName = CSTRING(TurnOff);
|
||||
condition = QUOTE([ARR_2(_player,_target)] call FUNC(canTurnOff));
|
||||
statement = QUOTE([ARR_2(_player,_target)] call FUNC(turnOff));
|
||||
exceptions[] = {INTERACT_EXCEPTIONS};
|
||||
icon = QPATHTOF(ui\icon_refuel_interact.paa);
|
||||
};
|
||||
class GVAR(Disconnect) {
|
||||
displayName = CSTRING(Disconnect);
|
||||
condition = QUOTE([ARR_2(_player,_target)] call FUNC(canDisconnect));
|
||||
statement = QUOTE([ARR_2(_player,_target)] call FUNC(disconnect));
|
||||
exceptions[] = {INTERACT_EXCEPTIONS_REFUELING};
|
||||
icon = QPATHTOF(ui\icon_refuel_interact.paa);
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class Rope;
|
||||
|
@ -1,4 +1,5 @@
|
||||
PREP(canCheckFuel);
|
||||
PREP(canConnectNozzle);
|
||||
PREP(canDisconnect);
|
||||
PREP(canReturnNozzle);
|
||||
PREP(canTakeNozzle);
|
||||
@ -8,6 +9,7 @@ PREP(checkFuel);
|
||||
PREP(connectNozzleAction);
|
||||
PREP(disconnect);
|
||||
PREP(dropNozzle);
|
||||
PREP(getCapacity);
|
||||
PREP(getFuel);
|
||||
PREP(handleDisconnect);
|
||||
PREP(handleRespawn);
|
||||
|
@ -20,7 +20,7 @@ GVAR(mainAction) = [
|
||||
{
|
||||
alive _target
|
||||
&& {[_player, _target, [INTERACT_EXCEPTIONS]] call EFUNC(common,canInteractWith)}
|
||||
&& {REFUEL_DISABLED_FUEL != [_target] call FUNC(getFuel)}
|
||||
&& {REFUEL_DISABLED_FUEL != ([_target] call FUNC(getCapacity))}
|
||||
},
|
||||
{}, [], [0,0,0],
|
||||
REFUEL_ACTION_DISTANCE
|
||||
|
@ -8,7 +8,7 @@ class CfgPatches {
|
||||
requiredVersion = REQUIRED_VERSION;
|
||||
requiredAddons[] = {"ace_interaction"};
|
||||
author = ECSTRING(common,ACETeam);
|
||||
authors[] = {"GitHawk"};
|
||||
authors[] = {"GitHawk", "QuantX"};
|
||||
url = ECSTRING(main,URL);
|
||||
VERSION_CONFIG;
|
||||
};
|
||||
|
@ -23,4 +23,4 @@ params [["_unit", objNull, [objNull]], ["_source", objNull, [objNull]]];
|
||||
{!local _unit} ||
|
||||
{!alive _source} ||
|
||||
{([_unit, _source] call EFUNC(interaction,getInteractionDistance)) > REFUEL_ACTION_DISTANCE} ||
|
||||
{(_source call FUNC(getFuel) == REFUEL_INFINITE_FUEL)})
|
||||
{(_source call FUNC(getCapacity)) in [REFUEL_INFINITE_FUEL, REFUEL_DISABLED_FUEL]})
|
||||
|
30
addons/refuel/functions/fnc_canConnectNozzle.sqf
Normal file
30
addons/refuel/functions/fnc_canConnectNozzle.sqf
Normal file
@ -0,0 +1,30 @@
|
||||
#include "script_component.hpp"
|
||||
/*
|
||||
* Author: QuantX
|
||||
* Checks if an object can have a nozzle connected to it.
|
||||
*
|
||||
* Arguments:
|
||||
* 0: Object <OBJECT>
|
||||
*
|
||||
* Return Value:
|
||||
* Can nozzle be connected <BOOL>
|
||||
*
|
||||
* Example:
|
||||
* [myVehicle] call ace_refuel_fnc_canConnectNozzle;
|
||||
* [myJerryCan] call ace_refuel_fnc_canConnectNozzle;
|
||||
*
|
||||
* Public: No
|
||||
*/
|
||||
|
||||
params [["_object", objNull, [objNull]]];
|
||||
|
||||
// Make sure object doesn't already have a nozzle connected
|
||||
if (isNull _object || {!isNull (_object getVariable [QGVAR(nozzle), objNull])} ) exitWith {false};
|
||||
|
||||
// Can't fuel a jerry can that is connected to another object
|
||||
if (_object getVariable [QGVAR(jerryCan), false]) exitWith {!(_object getVariable [QGVAR(isConnected), false])};
|
||||
|
||||
// We need to check "canReceive" before we check if the tank can be filled
|
||||
// This handles the edge case where a fuel truck has an infintite supply (i.e. the truck can be refueled, but the tank cannot)
|
||||
(getNumber ((configOf _object) >> QGVAR(canReceive)) == 1) ||
|
||||
{!(([_object] call FUNC(getCapacity)) in [REFUEL_INFINITE_FUEL, REFUEL_DISABLED_FUEL])}
|
@ -22,7 +22,8 @@ if (isNull _unit ||
|
||||
{!(_unit isKindOf "CAManBase")} ||
|
||||
{!local _unit} ||
|
||||
{!alive _object} ||
|
||||
{!isNull (_unit getVariable [QGVAR(nozzle), objNull])} ||
|
||||
{!isNull (_unit getVariable [QGVAR(nozzle), objNull])} || // Not already carrying a nozzle
|
||||
{(_object getVariable [QGVAR(jerryCan), false]) && {!isNull (_object getVariable [QGVAR(nozzle), objNull])}} || // Prevent jerry cans from being picked up if they have a nozzle connected
|
||||
{typeOf _object == QGVAR(fuelNozzle) && {!isNull (attachedTo _object)}} || // Not carried by someone else
|
||||
{([_unit, _object] call EFUNC(interaction,getInteractionDistance)) > REFUEL_ACTION_DISTANCE}) exitWith {false};
|
||||
|
||||
|
@ -1,11 +1,12 @@
|
||||
#include "script_component.hpp"
|
||||
/*
|
||||
* Author: GitHawk
|
||||
* Check if a unit can turn on a fuel nozzle
|
||||
* Check if a unit can turn on a fuel nozzle.
|
||||
*
|
||||
* Arguments:
|
||||
* 0: Unit <OBJECT>
|
||||
* 1: Nozzle <OBJECT>
|
||||
* 2: Refuel container <BOOL> (default: false)
|
||||
*
|
||||
* Return Value:
|
||||
* Can turn on <BOOL>
|
||||
@ -16,7 +17,7 @@
|
||||
* Public: No
|
||||
*/
|
||||
|
||||
params [["_unit", objNull, [objNull]], ["_nozzle", objNull, [objNull]]];
|
||||
params [["_unit", objNull, [objNull]], ["_nozzle", objNull, [objNull]], ["_refuelContainer", false, [false]]];
|
||||
|
||||
if (isNull _unit ||
|
||||
{isNull _nozzle} ||
|
||||
@ -24,7 +25,18 @@ if (isNull _unit ||
|
||||
{!local _unit} ||
|
||||
{(_nozzle distance _unit) > REFUEL_ACTION_DISTANCE}) exitWith {false};
|
||||
|
||||
private _source = _nozzle getVariable [QGVAR(source), objNull];
|
||||
private _sink = _nozzle getVariable [QGVAR(sink), objNull];
|
||||
|
||||
if (isNull _source || {isNull _sink}) exitWith {false};
|
||||
|
||||
private _isSinkFull = if (_refuelContainer) then {
|
||||
([_sink] call FUNC(getCapacity)) in [REFUEL_DISABLED_FUEL, REFUEL_INFINITE_FUEL, [_sink] call FUNC(getFuel)]
|
||||
} else {
|
||||
fuel _sink == 1
|
||||
};
|
||||
|
||||
!(_nozzle getVariable [QGVAR(isRefueling), false]) &&
|
||||
{[_nozzle getVariable QGVAR(source)] call FUNC(getFuel) != 0} &&
|
||||
{!isNull (_nozzle getVariable [QGVAR(sink), objNull])} &&
|
||||
{(fuel (_nozzle getVariable QGVAR(sink))) < 1}
|
||||
{(([_source] call FUNC(getCapacity)) == REFUEL_INFINITE_FUEL) || {[_source] call FUNC(getFuel) > 0}} && // Make sure the source has fuel
|
||||
{!_isSinkFull} && // Make sure the sink isn't full
|
||||
{!(_refuelContainer && {_source == _sink})}; // No endless container ot itself loop
|
||||
|
@ -72,6 +72,8 @@ private _attachPosModel = _sink worldToModel (ASLtoAGL _bestPosASL);
|
||||
_args params [["_unit", objNull, [objNull]], ["_nozzle", objNull, [objNull]], ["_sink", objNull, [objNull]], ["_endPosTestOffset", [0,0,0], [[]], 3]];
|
||||
_unit setVariable [QGVAR(nozzle), nil, true];
|
||||
_unit setVariable [QGVAR(isRefueling), false];
|
||||
|
||||
private _source = _nozzle getVariable QGVAR(source);
|
||||
|
||||
detach _nozzle;
|
||||
_nozzle attachTo [_sink, _endPosTestOffset];
|
||||
@ -111,21 +113,34 @@ private _attachPosModel = _sink worldToModel (ASLtoAGL _bestPosASL);
|
||||
_nozzle setVariable [QGVAR(isConnected), true, true];
|
||||
_sink setVariable [QGVAR(nozzle), _nozzle, true];
|
||||
|
||||
_source = _nozzle getVariable QGVAR(source);
|
||||
private _fuel = [_source] call FUNC(getFuel);
|
||||
if (_fuel == REFUEL_INFINITE_FUEL) then {
|
||||
_source setVariable [QGVAR(fuelCounter), 0, true];
|
||||
} else {
|
||||
_source setVariable [QGVAR(fuelCounter), _fuel, true];
|
||||
};
|
||||
// Reset fuel counter
|
||||
_source setVariable [QGVAR(fuelCounter), 0, true];
|
||||
|
||||
[_unit, _sink, _nozzle, _endPosTestOffset] call FUNC(refuel);
|
||||
|
||||
if ([_unit, _nozzle] call FUNC(canTurnOn)) then {
|
||||
_unit setVariable [QGVAR(tempFuel), nil];
|
||||
[_unit, _nozzle] call FUNC(turnOn);
|
||||
} else {
|
||||
[localize LSTRING(CouldNotTurnOn)] call EFUNC(common,displayText);
|
||||
private _canReceive = getNumber ((configOf _sink) >> QGVAR(canReceive)) == 1;
|
||||
private _isContainer = ([_sink] call FUNC(getCapacity)) != REFUEL_DISABLED_FUEL;
|
||||
|
||||
// Decide if cargo or vehicle will be refueled
|
||||
switch (true) do {
|
||||
case (_canReceive && {!_isContainer || {_sink == _source}}): {
|
||||
// is not a refueling vehicle or refueling vehicle tries to refuel itself
|
||||
if ([_unit, _nozzle, false] call FUNC(canTurnOn)) then {
|
||||
[_unit, _nozzle, false] call FUNC(turnOn);
|
||||
} else {
|
||||
[localize LSTRING(CouldNotTurnOn)] call EFUNC(common,displayText);
|
||||
};
|
||||
};
|
||||
case (!_canReceive && _isContainer): {
|
||||
if ([_unit, _nozzle, true] call FUNC(canTurnOn)) then {
|
||||
[_unit, _nozzle, true] call FUNC(turnOn);
|
||||
} else {
|
||||
[localize LSTRING(CouldNotTurnOn)] call EFUNC(common,displayText);
|
||||
};
|
||||
};
|
||||
default {
|
||||
/* Target is a refueling vehicle, let user manually decide if he wants to refuel cargo or vehicle itself */
|
||||
};
|
||||
};
|
||||
},
|
||||
"",
|
||||
|
@ -1,10 +1,10 @@
|
||||
#include "script_component.hpp"
|
||||
/*
|
||||
* Author: GitHawk
|
||||
* Disconnect a fuel nozzle.
|
||||
* Disconnects a fuel nozzle and makes unit pick it up.
|
||||
*
|
||||
* Arguments:
|
||||
* 0: Unit <OBJECT>
|
||||
* 0: Unit <OBJECT> (default: objNull)
|
||||
* 1: Nozzle <OBJECT>
|
||||
*
|
||||
* Return Value:
|
||||
@ -27,4 +27,6 @@ _nozzle setVariable [QGVAR(sink), nil, true];
|
||||
_nozzle setVariable [QGVAR(isConnected), false, true];
|
||||
[objNull, _nozzle, true] call FUNC(dropNozzle);
|
||||
|
||||
[_unit, _nozzle] call FUNC(takeNozzle);
|
||||
if (!isNull _unit) then {
|
||||
[_unit, _nozzle] call FUNC(takeNozzle);
|
||||
};
|
||||
|
@ -4,7 +4,7 @@
|
||||
* Detaches the fuel nozzle, drops it and removes player variables.
|
||||
*
|
||||
* Arguments:
|
||||
* 0: Unit <OBJECT> (optional)
|
||||
* 0: Unit <OBJECT> (default: objNull)
|
||||
* 1: Nozzle <OBJECT>
|
||||
* 2: Disconnect Only <BOOL>
|
||||
*
|
||||
|
35
addons/refuel/functions/fnc_getCapacity.sqf
Normal file
35
addons/refuel/functions/fnc_getCapacity.sqf
Normal file
@ -0,0 +1,35 @@
|
||||
#include "script_component.hpp"
|
||||
/*
|
||||
* Author: QuantX
|
||||
* Gets the capacity of a fuel source's tank.
|
||||
*
|
||||
* Arguments:
|
||||
* 0: Fuel Source <OBJECT>
|
||||
*
|
||||
* Return Value:
|
||||
* Fuel capacity <NUMBER> (-10 means infinte fuel, -1 means not a fuel source, >0 is a capacity in liters)
|
||||
*
|
||||
* Example:
|
||||
* [fuelTruck] call ace_refuel_fnc_getCapacity
|
||||
*
|
||||
* Public: Yes
|
||||
*/
|
||||
|
||||
params [["_source", objNull, [objNull]]];
|
||||
|
||||
if (isNull _source) exitWith {REFUEL_DISABLED_FUEL};
|
||||
|
||||
private _capacity = _source getVariable QGVAR(capacity);
|
||||
|
||||
// Initialize fuel truck if needed
|
||||
if (isNil "_capacity") then {
|
||||
// Check if this object has a fuelCargo config entry
|
||||
private _fuelCargo = configOf _source >> QGVAR(fuelCargo);
|
||||
_capacity = if (isNumber _fuelCargo) then {getNumber _fuelCargo} else {REFUEL_DISABLED_FUEL};
|
||||
|
||||
// Set capacity even if this isn't a fuel source to save on config lookup time in the event this function is used in a loop
|
||||
_source setVariable [QGVAR(capacity), _capacity, true];
|
||||
[_source, _capacity] call FUNC(setFuel);
|
||||
};
|
||||
|
||||
_capacity;
|
@ -22,8 +22,8 @@ if (isNull _source) exitWith {0};
|
||||
private _fuel = _source getVariable QGVAR(currentFuelCargo);
|
||||
|
||||
if (isNil "_fuel") then {
|
||||
_fuel = getNumber (configOf _source >> QGVAR(fuelCargo));
|
||||
_source setVariable [QGVAR(currentFuelCargo), _fuel, true];
|
||||
// Calling getCapacity will initialize the fuel source and return the amount of fuel in the tank
|
||||
_fuel = [_source] call FUNC(getCapacity);
|
||||
};
|
||||
|
||||
_fuel
|
||||
|
@ -22,11 +22,14 @@ if (isNull _target ||
|
||||
{_target isKindOf "AllVehicles"} ||
|
||||
{_target getVariable [QGVAR(jerryCan), false]}) exitWith {};
|
||||
|
||||
if (isServer) then {
|
||||
[_target, _fuelAmount] call FUNC(setFuel); // has global effects
|
||||
};
|
||||
_target setVariable [QGVAR(jerryCan), true];
|
||||
_target setVariable [QGVAR(source), _target];
|
||||
_target setVariable [QGVAR(capacity), _fuelAmount];
|
||||
|
||||
if (isServer) then {
|
||||
[_target, _fuelAmount] call FUNC(setFuel); // has global effects
|
||||
[QGVAR(jerryCanInitalized), [_target]] call CBA_fnc_globalevent;
|
||||
};
|
||||
|
||||
// Main Action
|
||||
private _action = [QGVAR(Refuel),
|
||||
@ -64,6 +67,30 @@ _action = [QGVAR(TurnOn),
|
||||
REFUEL_ACTION_DISTANCE] call EFUNC(interact_menu,createAction);
|
||||
[_target, 0, ["ACE_MainActions", QGVAR(Refuel)], _action] call EFUNC(interact_menu,addActionToObject);
|
||||
|
||||
// Add turnOn container
|
||||
_action = [QGVAR(TurnOn_Container),
|
||||
localize LSTRING(TurnOn_Container),
|
||||
QPATHTOF(ui\icon_refuel_interact.paa),
|
||||
{[_player, _target, true] call FUNC(turnOn)},
|
||||
{[_player, _target, true] call FUNC(canTurnOn)},
|
||||
{},
|
||||
[],
|
||||
[0, 0, 0],
|
||||
REFUEL_ACTION_DISTANCE] call EFUNC(interact_menu,createAction);
|
||||
[_target, 0, ["ACE_MainActions", QGVAR(Refuel)], _action] call EFUNC(interact_menu,addActionToObject);
|
||||
|
||||
// Add check fuel
|
||||
_action = [QGVAR(CheckFuel),
|
||||
localize LSTRING(CheckFuel),
|
||||
QPATHTOF(ui\icon_refuel_interact.paa),
|
||||
{[_player, _target] call FUNC(checkFuel)},
|
||||
{[_player, _target] call FUNC(canCheckFuel)},
|
||||
{},
|
||||
[],
|
||||
[0,0,0],
|
||||
REFUEL_ACTION_DISTANCE] call EFUNC(interact_menu,createAction),
|
||||
[_target, 0, ["ACE_MainActions", QGVAR(Refuel)], _action] call EFUNC(interact_menu,addActionToObject);
|
||||
|
||||
// Add turnOff
|
||||
_action = [QGVAR(TurnOff),
|
||||
localize LSTRING(TurnOff),
|
||||
|
@ -40,10 +40,14 @@ if (
|
||||
|| {_fuelCargo != 0 && {_fuelCargo == _fuelCargoConfig}}
|
||||
) exitWith {};
|
||||
|
||||
[_source, _fuelCargo] call FUNC(setFuel);
|
||||
private _capacity = if (_fuelCargo < 0) then {_fuelCargo} else {_fuelCargoConfig max _fuelCargo};
|
||||
|
||||
_source setVariable [QGVAR(capacity), _capacity, true];
|
||||
|
||||
if (_fuelCargo == REFUEL_DISABLED_FUEL) exitWith {};
|
||||
|
||||
[_source, _fuelCargo] call FUNC(setFuel);
|
||||
|
||||
if (
|
||||
!isNil "_hooks"
|
||||
&& {_hooks isEqualTypeAll []}
|
||||
@ -52,9 +56,11 @@ if (
|
||||
_source setVariable [QGVAR(hooks), _hooks, true];
|
||||
};
|
||||
|
||||
// check if menu already exists
|
||||
if (_fuelCargoConfig != 0 || {!isNil {_source getVariable QGVAR(initSource_jipID)}}) exitWith {};
|
||||
// only add if menu doesn't already exist
|
||||
if (!(_fuelCargoConfig != 0 && {!isNil {_source getVariable QGVAR(initSource_jipID)}})) then {
|
||||
private _jipID = [QGVAR(initSource), [_source]] call CBA_fnc_globalEventJIP;
|
||||
[_jipID, _source] call CBA_fnc_removeGlobalEventJIP;
|
||||
_source setVariable [QGVAR(initSource_jipID), _jipID];
|
||||
};
|
||||
|
||||
private _jipID = [QGVAR(initSource), [_source]] call CBA_fnc_globalEventJIP;
|
||||
[_jipID, _source] call CBA_fnc_removeGlobalEventJIP;
|
||||
_source setVariable [QGVAR(initSource_jipID), _jipID];
|
||||
[QGVAR(sourceInitialized), [_source]] call CBA_fnc_globalEvent;
|
||||
|
@ -42,10 +42,11 @@ private _virtualPosASL = (eyePos _unit) vectorAdd (positionCameraToWorld [0,0,0.
|
||||
if (cameraView == "EXTERNAL") then {
|
||||
_virtualPosASL = _virtualPosASL vectorAdd ((positionCameraToWorld [0.3,0,0]) vectorDiff (positionCameraToWorld [0,0,0]));
|
||||
};
|
||||
|
||||
if (
|
||||
!isNull _cursorObject
|
||||
&& {_distance < REFUEL_NOZZLE_ACTION_DISTANCE}
|
||||
&& {1 == getNumber (configOf _cursorObject >> QGVAR(canReceive))}
|
||||
&& {[_cursorObject] call FUNC(canConnectNozzle)}
|
||||
&& {isNull (_cursorObject getVariable [QGVAR(nozzle), objNull])}
|
||||
&& {!lineIntersects [eyePos _unit, _virtualPosASL, _unit]}
|
||||
) then {
|
||||
|
@ -18,12 +18,6 @@
|
||||
|
||||
params [["_unit", objNull, [objNull]], ["_source", objNull, [objNull]]];
|
||||
|
||||
private _currentFuel = [_source] call FUNC(getFuel);
|
||||
private _fuelCounter = if (_currentFuel == REFUEL_INFINITE_FUEL) then {
|
||||
_source getVariable [QGVAR(fuelCounter), 0]
|
||||
} else {
|
||||
(_source getVariable [QGVAR(fuelCounter), _currentFuel]) - _currentFuel
|
||||
};
|
||||
|
||||
private _fuelCounter = 0.01 * round (100 * _fuelCounter);
|
||||
private _fuelCounter = _source getVariable [QGVAR(fuelCounter), 0];
|
||||
_fuelCounter = 0.01 * round (100 * _fuelCounter);
|
||||
[[LSTRING(Hint_FuelCounter), _fuelCounter], 1.5, _unit] call EFUNC(common,displayTextStructured);
|
||||
|
@ -1,6 +1,6 @@
|
||||
#include "script_component.hpp"
|
||||
/*
|
||||
* Author: GitHawk
|
||||
* Author: GitHawk, QuantX
|
||||
* Refuels the vehicle.
|
||||
*
|
||||
* Arguments:
|
||||
@ -21,93 +21,111 @@
|
||||
params [["_unit", objNull, [objNull]], ["_sink", objNull, [objNull]], ["_nozzle", objNull, [objNull]], ["_connectToPoint", [0,0,0], [[]], 3]];
|
||||
|
||||
private _config = configOf _sink;
|
||||
private _rate = if (isNumber (_config >> QGVAR(flowRate))) then {
|
||||
getNumber (_config >> QGVAR(flowRate)) * GVAR(rate)
|
||||
} else {
|
||||
// Jerry cans for example have no flow rate defined, default to 1
|
||||
GVAR(rate)
|
||||
};
|
||||
|
||||
private _rate = getNumber (_config >> QGVAR(flowRate)) * GVAR(rate);
|
||||
private _maxFuel = getNumber (_config >> QGVAR(fuelCapacity));
|
||||
|
||||
// How much fuel is in a vehicle's fuel tank
|
||||
private _maxFuelTank = getNumber (_config >> QGVAR(fuelCapacity));
|
||||
// Fall back to vanilla fuelCapacity value (only air and sea vehicles don't have this defined by default by us)
|
||||
// Air and sea vehicles have that value properly defined in liters, unlike ground vehicles which is is formula of (range * tested factor) - different fuel consumption system than ground vehicles
|
||||
if (_maxFuel == 0) then {
|
||||
_maxFuel = getNumber (_config >> "fuelCapacity");
|
||||
if (_maxFuelTank == 0) then {
|
||||
_maxFuelTank = getNumber (_config >> "fuelCapacity");
|
||||
};
|
||||
|
||||
[{
|
||||
params ["_args", "_pfID"];
|
||||
_args params [["_source", objNull, [objNull]], ["_sink", objNull, [objNull]], ["_unit", objNull, [objNull]], ["_nozzle", objNull, [objNull]], ["_rate", 1, [0]], ["_startFuel", 0, [0]], ["_maxFuel", 0, [0]], ["_connectFromPoint", [0,0,0], [[]], 3], ["_connectToPoint", [0,0,0], [[]], 3]];
|
||||
_args params [["_source", objNull, [objNull]], ["_sink", objNull, [objNull]], ["_unit", objNull, [objNull]], ["_nozzle", objNull, [objNull]], ["_rate", 1, [0]], ["_maxFuelTank", 1, [0]], ["_connectFromPoint", [0,0,0], [[]], 3], ["_connectToPoint", [0,0,0], [[]], 3]];
|
||||
|
||||
if !(_nozzle getVariable [QGVAR(isConnected), false]) exitWith {
|
||||
[_pfID] call CBA_fnc_removePerFrameHandler;
|
||||
};
|
||||
|
||||
// Quit if target or fuel tank got destroyed
|
||||
if (!alive _source || {!alive _sink}) exitWith {
|
||||
[objNull, _nozzle] call FUNC(dropNozzle);
|
||||
_nozzle setVariable [QGVAR(isConnected), false, true];
|
||||
if (_nozzle isKindOf "Land_CanisterFuel_F") then { _nozzle setVariable [QEGVAR(cargo,canLoad), true, true]; };
|
||||
_nozzle setVariable [QGVAR(sink), nil, true];
|
||||
_sink setVariable [QGVAR(nozzle), nil, true];
|
||||
[objNull, _nozzle] call FUNC(disconnect);
|
||||
[_pfID] call CBA_fnc_removePerFrameHandler;
|
||||
};
|
||||
|
||||
// Quit if hose distance was exceeded
|
||||
private _hoseLength = _source getVariable [QGVAR(hoseLength), GVAR(hoseLength)];
|
||||
private _tooFar = ((_sink modelToWorld _connectToPoint) distance (_source modelToWorld _connectFromPoint)) > (_hoseLength - 2);
|
||||
if (_tooFar && {!(_nozzle getVariable [QGVAR(jerryCan), false])}) exitWith {
|
||||
[LSTRING(Hint_TooFar), 2, _unit] call EFUNC(common,displayTextStructured);
|
||||
|
||||
[objNull, _nozzle] call FUNC(dropNozzle);
|
||||
_nozzle setVariable [QGVAR(isConnected), false, true];
|
||||
if (_nozzle isKindOf "Land_CanisterFuel_F") then { _nozzle setVariable [QEGVAR(cargo,canLoad), true, true]; };
|
||||
_nozzle setVariable [QGVAR(sink), nil, true];
|
||||
_sink setVariable [QGVAR(nozzle), nil, true];
|
||||
[objNull, _nozzle] call FUNC(disconnect);
|
||||
[_pfID] call CBA_fnc_removePerFrameHandler;
|
||||
};
|
||||
|
||||
// Main fueling process
|
||||
private _finished = false;
|
||||
private _fueling = _nozzle getVariable [QGVAR(isRefueling), false];
|
||||
if (_fueling) then {
|
||||
private _fuelInSource = [_source] call FUNC(getFuel);
|
||||
if (_fuelInSource == 0) exitWith {
|
||||
[LSTRING(Hint_SourceEmpty), 2, _unit] call EFUNC(common,displayTextStructured);
|
||||
_nozzle setVariable [QGVAR(lastTickMissionTime), nil];
|
||||
_nozzle setVariable [QGVAR(isRefueling), false, true];
|
||||
};
|
||||
|
||||
private _refuelContainer = _nozzle getVariable [QGVAR(refuelContainer), false];
|
||||
|
||||
// Use special cargo refuel rate when refueling containers
|
||||
// TODO: Add flow dedicated input/output flow rates for every container and use the lower of the two instead
|
||||
if (_refuelContainer) then {_rate = GVAR(cargoRate)};
|
||||
|
||||
// Calculate rate using mission time to take time acceleration and pause into account
|
||||
private _rateTime = _rate * (CBA_missionTime - (_nozzle getVariable [QGVAR(lastTickMissionTime), CBA_missionTime]));
|
||||
private _addedFuel = _rate * (CBA_missionTime - (_nozzle getVariable [QGVAR(lastTickMissionTime), CBA_missionTime]));
|
||||
_nozzle setVariable [QGVAR(lastTickMissionTime), CBA_missionTime];
|
||||
|
||||
if (_fuelInSource != REFUEL_INFINITE_FUEL) then {
|
||||
if (_rateTime > _fuelInSource) then {
|
||||
_rateTime = _fuelInSource;
|
||||
// Figure out exactly how much fuel to transfer while being sure not to take too much from source
|
||||
private _fuelInSource = [_source] call FUNC(getFuel);
|
||||
if (([_source] call FUNC(getCapacity)) != REFUEL_INFINITE_FUEL) then {
|
||||
if (_addedFuel > _fuelInSource) then {
|
||||
_addedFuel = _fuelInSource;
|
||||
_fuelInSource = 0;
|
||||
_finished = true;
|
||||
[LSTRING(Hint_SourceEmpty), 2, _unit] call EFUNC(common,displayTextStructured);
|
||||
} else {
|
||||
_fuelInSource = _fuelInSource - _rateTime;
|
||||
_fuelInSource = _fuelInSource - _addedFuel;
|
||||
};
|
||||
};
|
||||
|
||||
private _fuelInSink = (if (_refuelContainer) then {
|
||||
[_sink] call FUNC(getFuel)
|
||||
} else {
|
||||
_source setVariable [QGVAR(fuelCounter), (_source getVariable [QGVAR(fuelCounter), 0]) + _rateTime, true];
|
||||
};
|
||||
if (_fuelInSource <= 0 && {_fuelInSource != REFUEL_INFINITE_FUEL}) then {
|
||||
_fuelInSource = 0;
|
||||
[_source, _fuelInSource] call FUNC(setFuel);
|
||||
_finished = true;
|
||||
[LSTRING(Hint_SourceEmpty), 2, _unit] call EFUNC(common,displayTextStructured);
|
||||
};
|
||||
|
||||
private _fuelInSink = (_unit getVariable [QGVAR(tempFuel), _startFuel]) + ( _rateTime / _maxFuel);
|
||||
if (_fuelInSink > 1) then {
|
||||
_fuelInSink = 1;
|
||||
// How full the gas tank is. We keep our own record, since `fuel _sink` doesn't update quick enough
|
||||
(_nozzle getVariable [QGVAR(tempFuel), fuel _sink]) * _maxFuelTank
|
||||
}) + _addedFuel;
|
||||
|
||||
// Add fuel to target while being sure not to put too much into sink
|
||||
private _maxFuelContainer = [_sink] call FUNC(getCapacity);
|
||||
private _maxFuel = [_maxFuelTank, _maxFuelContainer] select _refuelContainer;
|
||||
if (_fuelInSink >= _maxFuel) then {
|
||||
// Put any extra fuel back
|
||||
_fuelInSource = _fuelInSource + (_fuelInSink - _maxFuel);
|
||||
_addedFuel = _maxFuel - _fuelInSink;
|
||||
// We're done
|
||||
_fuelInSink = _maxFuel;
|
||||
_finished = true;
|
||||
[LSTRING(Hint_Completed), 2, _unit] call EFUNC(common,displayTextStructured);
|
||||
};
|
||||
_unit setVariable [QGVAR(tempFuel), _fuelInSink];
|
||||
|
||||
if (_refuelContainer) then {
|
||||
[_sink, _fuelInSink] call FUNC(setFuel);
|
||||
} else {
|
||||
private _fillRatio = _fuelInSink / _maxFuelTank;
|
||||
[QEGVAR(common,setFuel), [_sink, _fillRatio], _sink] call CBA_fnc_targetEvent;
|
||||
_nozzle setVariable [QGVAR(tempFuel), _fillRatio];
|
||||
};
|
||||
|
||||
// Increment fuel counter
|
||||
_source setVariable [QGVAR(fuelCounter), (_source getVariable [QGVAR(fuelCounter), 0]) + _addedFuel, true];
|
||||
|
||||
[QGVAR(tick), [_source, _sink, _rateTime]] call CBA_fnc_localEvent;
|
||||
[QGVAR(tick), [_source, _sink, _addedFuel, _refuelContainer]] call CBA_fnc_localEvent;
|
||||
|
||||
[QEGVAR(common,setFuel), [_sink, _fuelInSink], _sink] call CBA_fnc_targetEvent;
|
||||
[_source, _fuelInSource] call FUNC(setFuel);
|
||||
} else {
|
||||
_unit setVariable [QGVAR(tempFuel), fuel _sink];
|
||||
_nozzle setVariable [QGVAR(tempFuel), fuel _sink];
|
||||
};
|
||||
|
||||
if (_finished) exitWith {
|
||||
// Reset variables when done
|
||||
if (_finished) then {
|
||||
[QGVAR(stopped), [_source, _sink]] call CBA_fnc_localEvent;
|
||||
_nozzle setVariable [QGVAR(lastTickMissionTime), nil];
|
||||
_nozzle setVariable [QGVAR(isRefueling), false, true];
|
||||
@ -118,8 +136,7 @@ if (_maxFuel == 0) then {
|
||||
_unit,
|
||||
_nozzle,
|
||||
_rate,
|
||||
fuel _sink,
|
||||
_maxFuel,
|
||||
_maxFuelTank,
|
||||
_nozzle getVariable [QGVAR(attachPos), [0,0,0]],
|
||||
_connectToPoint
|
||||
]] call CBA_fnc_addPerFrameHandler;
|
||||
|
@ -43,6 +43,10 @@ if (isNull _nozzle || {_source != _nozzle getVariable QGVAR(source)}) exitWith {
|
||||
deleteVehicle _helper;
|
||||
};
|
||||
deleteVehicle _nozzle;
|
||||
|
||||
// Restore ability to drag and carry this object
|
||||
_source setVariable [QEGVAR(dragging,canCarry), _source getVariable [QGVAR(canCarryLast), false], true];
|
||||
_source setVariable [QEGVAR(dragging,canDrag), _source getVariable [QGVAR(canDragLast), false], true];
|
||||
|
||||
[_source, "blockEngine", "ACE_Refuel", false] call EFUNC(common,statusEffect_set);
|
||||
},
|
||||
|
@ -18,7 +18,12 @@
|
||||
|
||||
params [["_source", objNull, [objNull]], ["_fuel", nil, [0]]];
|
||||
|
||||
if (isNull _source ||
|
||||
{isNil "_fuel"}) exitWith {};
|
||||
// Ensure valid fuel quantity
|
||||
if (isNull _source || {isNil "_fuel"}) exitWith {};
|
||||
|
||||
_source setVariable [QGVAR(currentFuelCargo), _fuel, true];
|
||||
// Make sure this is actually a finite fuel source
|
||||
private _capacity = [_source] call FUNC(getCapacity);
|
||||
if (_capacity in [REFUEL_INFINITE_FUEL, REFUEL_DISABLED_FUEL]) exitWith {};
|
||||
|
||||
// Don't overfill or underfill tank
|
||||
_source setVariable [QGVAR(currentFuelCargo), (_fuel min _capacity) max 0, true];
|
||||
|
@ -95,10 +95,7 @@ TRACE_2("start",_unit,_nozzle);
|
||||
|
||||
getCursorObjectParams params ["_cursorObject", "", "_distance"];
|
||||
if (!isNull _cursorObject && {_distance < REFUEL_NOZZLE_ACTION_DISTANCE}) then {
|
||||
if (
|
||||
1 == getNumber (configOf _cursorObject >> QGVAR(canReceive))
|
||||
&& {isNull (_cursorObject getVariable [QGVAR(nozzle), objNull])}
|
||||
) then {
|
||||
if ([_cursorObject] call FUNC(canConnectNozzle)) then {
|
||||
_hintLMB = localize LSTRING(Connect);
|
||||
};
|
||||
if ([_unit, _cursorObject] call FUNC(canReturnNozzle)) then {
|
||||
|
@ -77,6 +77,13 @@ params [
|
||||
[_source, "blockEngine", "ACE_Refuel", true] call EFUNC(common,statusEffect_set);
|
||||
_source setVariable [QGVAR(isConnected), true, true];
|
||||
_source setVariable [QGVAR(ownedNozzle), _nozzle, true];
|
||||
|
||||
// Prevent moving the fuel source while the hose is out
|
||||
_source setVariable [QGVAR(canCarryLast), _source getVariable [QEGVAR(dragging,canCarry), false], true];
|
||||
_source setVariable [QGVAR(canDragLast), _source getVariable [QEGVAR(dragging,canDrag), false], true];
|
||||
|
||||
_source setVariable [QEGVAR(dragging,canCarry), false, true];
|
||||
_source setVariable [QEGVAR(dragging,canDrag), false, true];
|
||||
};
|
||||
|
||||
_unit setVariable [QGVAR(nozzle), _nozzle, true];
|
||||
|
@ -6,6 +6,7 @@
|
||||
* Arguments:
|
||||
* 0: Unit <OBJECT>
|
||||
* 1: Nozzle <OBJECT>
|
||||
* 2: Refuel container <BOOL> (default: false)
|
||||
*
|
||||
* Return Value:
|
||||
* None
|
||||
@ -16,9 +17,10 @@
|
||||
* Public: No
|
||||
*/
|
||||
|
||||
params [["_unit", objNull, [objNull]], ["_nozzle", objNull, [objNull]]];
|
||||
params [["_unit", objNull, [objNull]], ["_nozzle", objNull, [objNull]], ["_refuelContainer", false, [false]]];
|
||||
|
||||
_nozzle setVariable [QGVAR(lastTickMissionTime), CBA_missionTime];
|
||||
_nozzle setVariable [QGVAR(refuelContainer), _refuelContainer];
|
||||
_nozzle setVariable [QGVAR(isRefueling), true, true];
|
||||
[LSTRING(Hint_Started), 1.5, _unit] call EFUNC(common,displayTextStructured);
|
||||
[QGVAR(started), [_nozzle getVariable QGVAR(source), _nozzle getVariable QGVAR(sink)]] call CBA_fnc_localEvent;
|
||||
|
@ -7,6 +7,15 @@
|
||||
{[QGVAR(rate), _this] call EFUNC(common,cbaSettings_settingChanged)}
|
||||
] call CBA_fnc_addSetting;
|
||||
|
||||
[
|
||||
QGVAR(cargoRate), "SLIDER",
|
||||
[LSTRING(RefuelSettings_speedCargo_DisplayName), LSTRING(RefuelSettings_speedCargo_Description)],
|
||||
[localize ELSTRING(OptionsMenu,CategoryLogistics), localize "str_state_refuel"],
|
||||
[0,250,10,1], // [min, max, default value, trailing decimals (-1 for whole numbers only)]
|
||||
true, // isGlobal
|
||||
{[QGVAR(cargoRate), _this] call EFUNC(common,cbaSettings_settingChanged)}
|
||||
] call CBA_fnc_addSetting;
|
||||
|
||||
[
|
||||
QGVAR(hoseLength), "SLIDER",
|
||||
[LSTRING(RefuelSettings_hoseLength_DisplayName)],
|
||||
|
@ -49,6 +49,12 @@
|
||||
<Chinese>載具多快會加油完畢?</Chinese>
|
||||
<Turkish>Bir araca ne kadar hızlı yakıt ikmali yapılmalıdır?</Turkish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Refuel_RefuelSettings_speedCargo_DisplayName">
|
||||
<English>Cargo Flow Rate</English>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Refuel_RefuelSettings_speedCargo_Description">
|
||||
<English>How fast should a fuel source's tank be filled?</English>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Refuel_Refuel">
|
||||
<English>Refuel</English>
|
||||
<German>Betankung</German>
|
||||
@ -289,6 +295,10 @@
|
||||
<Chinese>開始加油</Chinese>
|
||||
<Turkish>Yakıt Doldurmayı Başlat</Turkish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Refuel_TurnOn_Container">
|
||||
<English>Start fueling (container)</English>
|
||||
<German>Betankung beginnen (Container)</German>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Refuel_CouldNotTurnOn">
|
||||
<English>Couldn't turn on fuel nozzle</English>
|
||||
<German>Kann Zapfpistole nicht anschalten</German>
|
||||
|
@ -13,7 +13,6 @@ class RscInGameUI {
|
||||
controls[] += {QGVAR(speedIndicator)};
|
||||
class GVAR(speedIndicator): RscPictureKeepAspect {
|
||||
onLoad = QUOTE(uiNamespace setVariable [ARR_2(QQGVAR(speedIndicator),_this select 0)]);
|
||||
test = QUOTE(ace_IGUI_GRID_STANCE_X);
|
||||
x = QUOTE(ace_IGUI_GRID_STANCE_X + IGUI_GRID_STANCE_WAbs / 2 - SPEED_INDICATOR_W / 2);
|
||||
y = QUOTE(ace_IGUI_GRID_STANCE_Y + IGUI_GRID_STANCE_HAbs - SPEED_INDICATOR_Y_OFFSET);
|
||||
w = QUOTE(SPEED_INDICATOR_W);
|
||||
|
@ -21,4 +21,5 @@
|
||||
#define MOUSE_SCROLL_UP 0xF8
|
||||
#define MOUSE_SCROLL_DOWN 0xF9
|
||||
|
||||
#define FUEL_FACTOR 0.165 // fuel capacity = range in km * FUEL_FACTOR
|
||||
// fuel capacity = range in km * FUEL_FACTOR
|
||||
#define FUEL_FACTOR 0.165
|
||||
|
@ -183,18 +183,18 @@ if (!hasInterface) exitWith {};
|
||||
{false},
|
||||
[0, [false, false, false]], false] call CBA_fnc_addKeybind; //Unbound (was 5 Key)
|
||||
|
||||
["ACE3 Vehicles", QGVAR(FireSmokeLauncher), localize LSTRING(FireSmokeLauncher), {
|
||||
// Conditions: canInteract
|
||||
if !([ACE_player, vehicle ACE_player, []] call EFUNC(common,canInteractWith)) exitWith {false};
|
||||
// Conditions: specific
|
||||
if !(ACE_player != vehicle ACE_player && {ACE_player == commander vehicle ACE_player}) exitWith {false};
|
||||
// ["ACE3 Vehicles", QGVAR(FireSmokeLauncher), localize LSTRING(FireSmokeLauncher), {
|
||||
// // Conditions: canInteract
|
||||
// if !([ACE_player, vehicle ACE_player, []] call EFUNC(common,canInteractWith)) exitWith {false};
|
||||
// // Conditions: specific
|
||||
// if !(ACE_player != vehicle ACE_player && {ACE_player == commander vehicle ACE_player}) exitWith {false};
|
||||
|
||||
// Statement
|
||||
[vehicle ACE_player] call FUNC(fireSmokeLauncher);
|
||||
true
|
||||
},
|
||||
{false},
|
||||
[10, [false, false, false]], false] call CBA_fnc_addKeybind; //9 Key
|
||||
// // Statement
|
||||
// [vehicle ACE_player] call FUNC(fireSmokeLauncher);
|
||||
// true
|
||||
// },
|
||||
// {false},
|
||||
// [10, [false, false, false]], false] call CBA_fnc_addKeybind; //9 Key
|
||||
|
||||
["ACE3 Vehicles", QGVAR(CollisionLights), localize LSTRING(CollisionLights), {
|
||||
// Conditions: canInteract
|
||||
|
@ -51,7 +51,7 @@ switch (false) do {
|
||||
private _units = units _unit;
|
||||
// Make sure all units are disembarked
|
||||
{
|
||||
if (vehicle _x != _x) then {
|
||||
if (vehicle _x != _x && {!isPlayer _x}) then {
|
||||
moveOut _x;
|
||||
};
|
||||
} forEach _units;
|
||||
|
@ -20,4 +20,4 @@
|
||||
|
||||
TRACE_1("params",_this);
|
||||
|
||||
#include "\a3\ui_f_curator\UI\Displays\RscDisplayAttributes.sqf"
|
||||
#include "\a3\ui_f_curator\ui\displays\RscDisplayAttributes.sqf"
|
||||
|
@ -58,7 +58,7 @@ mklink /J "[Arma 3 installation folder]\z\ace" "[location of the ACE3 project]"
|
||||
mklink /J "P:\z\ace" "[location of the ACE3 project]"
|
||||
```
|
||||
|
||||
Then, copy the `cba` folder from the `tools` folder to `P:\x\cba`. Create the `x` folder if needed. That folder contains the parts of the CBA source code that are required for the macros to work.
|
||||
Then, copy the `cba` folder from the `include\x` folder to `P:\x\cba`. Create the `x` folder if needed. That folder contains the parts of the CBA source code that are required for the macros to work.
|
||||
|
||||
|
||||
## 4.2 Creating a Test Build
|
||||
|
@ -235,3 +235,9 @@ This function sets the current supply count of the ammo truck. It can be used to
|
||||
---| --------- | -----------
|
||||
0 | `ammo_truck` | My ammo truck object
|
||||
1 | `1000`| Supply Count
|
||||
|
||||
## 4. Events
|
||||
|
||||
| Name | Arguments | Global? | Added in |
|
||||
| ------------- | ------------- | ------------- |
|
||||
| ace_rearm_sourceInitalized | Yes | Ammo truck (OBJECT) | 3.16.0 |
|
||||
|
@ -125,3 +125,10 @@ The jerry can will now have a volume of 200 liters.
|
||||
---| --------- | -----------
|
||||
0 | `cursorObject` | Fuel source object
|
||||
1 | `100` | Fuel supply
|
||||
|
||||
## 3. Events
|
||||
|
||||
| Name | Arguments | Global? | Added in |
|
||||
| ------------- | ------------- | ------------- |
|
||||
| ace_refuel_sourceInitialized | Fuel source (OBJECT), items (BOOL or ARRAY) | Yes | 3.16.0 |
|
||||
| ace_refuel_jerryCanInitalized | Jerry can (OBJECT) | Yes | 3.16.0 |
|
||||
|
624
include/a3/ui_f_curator/ui/defineResinclDesign.inc
Normal file
624
include/a3/ui_f_curator/ui/defineResinclDesign.inc
Normal file
@ -0,0 +1,624 @@
|
||||
#include "\a3\ui_f\hpp\defineResincl.inc"
|
||||
|
||||
//--- RscDisplayCurator
|
||||
#define IDC_RSCDISPLAYCURATOR_CREATEBACKGROUND 15505
|
||||
#define IDC_RSCDISPLAYCURATOR_CLOCKDURATION 15506
|
||||
#define IDC_RSCDISPLAYCURATOR_ENTITIESBACKGROUND 15508
|
||||
#define IDC_RSCDISPLAYCURATOR_CLOCKDAYTIME 15509
|
||||
#define IDC_RSCDISPLAYCURATOR_CREATECLASSESBACKGROUND 15510
|
||||
#define IDC_RSCDISPLAYCURATOR_CLOCKCOUNTDOWN 15511
|
||||
#define IDC_RSCDISPLAYCURATOR_FEEDBACKMESSAGE 15512
|
||||
#define IDC_RSCDISPLAYCURATOR_POINTSBACKGROUND 15513
|
||||
#define IDC_RSCDISPLAYCURATOR_POINTS 15515
|
||||
#define IDC_RSCDISPLAYCURATOR_POINTSPREVIEW 15516
|
||||
#define IDC_RSCDISPLAYCURATOR_COMPASSBACKGROUND 15518
|
||||
#define IDC_RSCDISPLAYCURATOR_MODEUNITS 15704
|
||||
#define IDC_RSCDISPLAYCURATOR_MODEGROUPS 15705
|
||||
#define IDC_RSCDISPLAYCURATOR_MODEMODULES 15706
|
||||
#define IDC_RSCDISPLAYCURATOR_MODEMARKERS 15708
|
||||
#define IDC_RSCDISPLAYCURATOR_SIDEBLUFOR 15709
|
||||
#define IDC_RSCDISPLAYCURATOR_SIDEOPFOR 15710
|
||||
#define IDC_RSCDISPLAYCURATOR_SIDEINDEPENDENT 15711
|
||||
#define IDC_RSCDISPLAYCURATOR_SIDECIVILIAN 15712
|
||||
#define IDC_RSCDISPLAYCURATOR_SIDEEMPTY 15713
|
||||
#define IDC_RSCDISPLAYCURATOR_LOGO 15715
|
||||
#define IDC_RSCDISPLAYCURATOR_WATERMARK 15717
|
||||
#define IDC_RSCDISPLAYCURATOR_MISSIONBARTITLE 16104
|
||||
#define IDC_RSCDISPLAYCURATOR_ADDBARTITLE 16105
|
||||
#define IDC_RSCDISPLAYCURATOR_MODEFRAME 16304
|
||||
#define IDC_RSCDISPLAYCURATOR_SIDEFRAME 16305
|
||||
#define IDC_RSCDISPLAYCURATOR_POINTSFRAME 16306
|
||||
#define IDC_RSCDISPLAYCURATOR_CREATEFRAME 16307
|
||||
#define IDC_RSCDISPLAYCURATOR_ENTITIESFRAME 16308
|
||||
#define IDC_RSCDISPLAYCURATOR_ADDBARFRAME 16309
|
||||
#define IDC_RSCDISPLAYCURATOR_CLOCKFRAME 16310
|
||||
#define IDC_RSCDISPLAYCURATOR_MISSIONBARFRAME 16311
|
||||
#define IDC_RSCDISPLAYCURATOR_COMPASSFRAME 16312
|
||||
#define IDC_RSCDISPLAYCURATOR_COMPASSCARET 16314
|
||||
#define IDC_RSCDISPLAYCURATOR_MISSION 16804
|
||||
#define IDC_RSCDISPLAYCURATOR_ADDBAR 16805
|
||||
#define IDC_RSCDISPLAYCURATOR_MAIN 16806
|
||||
#define IDC_RSCDISPLAYCURATOR_ADD 16807
|
||||
#define IDC_RSCDISPLAYCURATOR_CLOCK 16808
|
||||
#define IDC_RSCDISPLAYCURATOR_MISSIONBAR 16809
|
||||
#define IDC_RSCDISPLAYCURATOR_COMPASS 16810
|
||||
|
||||
//--- Engine Curator
|
||||
#define IDD_RSCDISPLAYCURATOR 312
|
||||
#define IDC_RSCDISPLAYCURATOR_SIDEBLUFOR 155
|
||||
#define IDC_RSCDISPLAYCURATOR_SIDEOPFOR 156
|
||||
#define IDC_RSCDISPLAYCURATOR_SIDEINDEPENDENT 157
|
||||
#define IDC_RSCDISPLAYCURATOR_SIDECIVILIAN 158
|
||||
#define IDC_RSCDISPLAYCURATOR_SIDEEMPTY 159
|
||||
#define IDC_RSCDISPLAYCURATOR_MODEUNITS 150
|
||||
#define IDC_RSCDISPLAYCURATOR_MODEGROUPS 151
|
||||
#define IDC_RSCDISPLAYCURATOR_MODEMODULES 152
|
||||
#define IDC_RSCDISPLAYCURATOR_MODEMARKERS 154
|
||||
#define IDC_RSCDISPLAYCURATOR_MODERECENT 170
|
||||
#define IDC_RSCDISPLAYCURATOR_ADD 450
|
||||
#define IDC_RSCDISPLAYCURATOR_MISSION 453
|
||||
#define IDC_RSCDISPLAYCURATOR_MAINMAP 50
|
||||
#define IDC_RSCDISPLAYCURATOR_MOUSEAREA 53
|
||||
#define IDC_RSCDISPLAYCURATOR_POINTS 111
|
||||
#define IDC_RSCDISPLAYCURATOR_POINTSPREVIEW 112
|
||||
#define IDC_RSCDISPLAYCURATOR_ENTITIES 251
|
||||
#define IDC_RSCDISPLAYCURATOR_CREATE_UNITS_WEST 270
|
||||
#define IDC_RSCDISPLAYCURATOR_CREATE_UNITS_EAST 271
|
||||
#define IDC_RSCDISPLAYCURATOR_CREATE_UNITS_GUER 272
|
||||
#define IDC_RSCDISPLAYCURATOR_CREATE_UNITS_CIV 273
|
||||
#define IDC_RSCDISPLAYCURATOR_CREATE_UNITS_EMPTY 274
|
||||
#define IDC_RSCDISPLAYCURATOR_CREATE_GROUPS_WEST 275
|
||||
#define IDC_RSCDISPLAYCURATOR_CREATE_GROUPS_EAST 276
|
||||
#define IDC_RSCDISPLAYCURATOR_CREATE_GROUPS_GUER 277
|
||||
#define IDC_RSCDISPLAYCURATOR_CREATE_GROUPS_CIV 278
|
||||
#define IDC_RSCDISPLAYCURATOR_CREATE_GROUPS_EMPTY 279
|
||||
#define IDC_RSCDISPLAYCURATOR_CREATE_MODULES 280
|
||||
#define IDC_RSCDISPLAYCURATOR_CREATE_MARKERS 281
|
||||
#define IDC_RSCDISPLAYCURATOR_CREATE_RECENT 282
|
||||
#define IDC_RSCDISPLAYCURATOR_CREATE_SEARCH 283
|
||||
//#define IDC_RSCDISPLAYCURATOR_FILTERPLAYERS 282
|
||||
//#define IDC_RSCDISPLAYCURATOR_FILTERAI 283
|
||||
//#define IDC_RSCDISPLAYCURATOR_FILTERCREW 284
|
||||
//#define IDC_RSCDISPLAYCURATOR_FILTERDEAD 285
|
||||
//#define IDC_RSCDISPLAYCURATOR_FILTEREMPTY 286
|
||||
//#define IDC_RSCDISPLAYCURATOR_FILTERMODULE 287
|
||||
#define IDC_RSCDISPLAYCURATOR_BLACK 999
|
||||
|
||||
//--- RscCuratorPing
|
||||
#define IDC_RSCCURATORPING_ICON 10674
|
||||
#define IDC_RSCCURATORPING_PLAYER 10675
|
||||
|
||||
//--- RSCCURATORVISIONMODES
|
||||
#define IDC_RSCCURATORVISIONMODES_VISIONMODE0 10463
|
||||
#define IDC_RSCCURATORVISIONMODES_VISIONMODE1 10464
|
||||
#define IDC_RSCCURATORVISIONMODES_VISIONMODE2 10465
|
||||
#define IDC_RSCCURATORVISIONMODES_VISIONMODE3 10466
|
||||
#define IDC_RSCCURATORVISIONMODES_VISIONMODE4 10467
|
||||
#define IDC_RSCCURATORVISIONMODES_VISIONMODE5 10468
|
||||
#define IDC_RSCCURATORVISIONMODES_VISIONMODE6 10469
|
||||
#define IDC_RSCCURATORVISIONMODES_VISIONMODE7 10470
|
||||
#define IDC_RSCCURATORVISIONMODES_VISIONMODE8 10471
|
||||
#define IDC_RSCCURATORVISIONMODES_VISIONMODE9 10472
|
||||
#define IDC_RSCCURATORVISIONMODES_FRAME 11263
|
||||
#define IDC_RSCCURATORVISIONMODES_VISIONMODES 11763
|
||||
|
||||
//--- RscDisplayModuleSkiptime
|
||||
#define IDC_RSCDISPLAYMODULESKIPTIME_BACKGROUND 1000
|
||||
#define IDC_RSCDISPLAYMODULESKIPTIME_TITLE 1001
|
||||
#define IDC_RSCDISPLAYMODULESKIPTIME_DESCRIPTION 1100
|
||||
#define IDC_RSCDISPLAYMODULESKIPTIME_SLIDERVALUE 1003
|
||||
#define IDC_RSCDISPLAYMODULESKIPTIME_SLIDER 1900
|
||||
#define IDC_RSCDISPLAYMODULESKIPTIME_BUTTONOK 2600
|
||||
#define IDC_RSCDISPLAYMODULESKIPTIME_BUTTONCANCEL 2700
|
||||
|
||||
//--- RscDisplayAttributes
|
||||
#define IDC_RSCDISPLAYATTRIBUTES_BACKGROUND 30001
|
||||
#define IDC_RSCDISPLAYATTRIBUTES_TITLE 30002
|
||||
#define IDC_RSCDISPLAYATTRIBUTES_CONTENT 30003
|
||||
#define IDC_RSCDISPLAYATTRIBUTES_BUTTONCUSTOM 30004
|
||||
#define IDC_RSCDISPLAYATTRIBUTES_BUTTONOK 30005
|
||||
#define IDC_RSCDISPLAYATTRIBUTES_BUTTONCANCEL 30006
|
||||
|
||||
#define IDC_RSCDISPLAYCURATORATTRIBUTES_TEXT 1000
|
||||
#define IDC_RSCDISPLAYCURATORATTRIBUTES_STRUCTUREDTEXT 1100
|
||||
#define IDC_RSCDISPLAYCURATORATTRIBUTES_PICTURE 1200
|
||||
#define IDC_RSCDISPLAYCURATORATTRIBUTES_ACTIVETEXT 1300
|
||||
#define IDC_RSCDISPLAYCURATORATTRIBUTES_EDIT 1400
|
||||
#define IDC_RSCDISPLAYCURATORATTRIBUTES_COMBO 2100
|
||||
#define IDC_RSCDISPLAYCURATORATTRIBUTES_LISTBOX 1500
|
||||
#define IDC_RSCDISPLAYCURATORATTRIBUTES_SLIDER 1900
|
||||
|
||||
//--- RscAttributeRank
|
||||
#define IDC_RSCATTRIBUTERANK_BACKGROUND 13469
|
||||
#define IDC_RSCATTRIBUTERANK_TITLE 13471
|
||||
#define IDC_RSCATTRIBUTERANK_PRIVATE 13669
|
||||
#define IDC_RSCATTRIBUTERANK_CORPORAL 13670
|
||||
#define IDC_RSCATTRIBUTERANK_SERGEANT 13671
|
||||
#define IDC_RSCATTRIBUTERANK_LIEUTENANT 13672
|
||||
#define IDC_RSCATTRIBUTERANK_CAPTAIN 13673
|
||||
#define IDC_RSCATTRIBUTERANK_MAJOR 13674
|
||||
#define IDC_RSCATTRIBUTERANK_COLONEL 13675
|
||||
#define IDC_RSCATTRIBUTERANK_RSCATTRIBUTERANK 14769
|
||||
|
||||
//--- RscAttributeUnitPos
|
||||
#define IDC_RSCATTRIBUTEUNITPOS_BACKGROUND 18976
|
||||
#define IDC_RSCATTRIBUTEUNITPOS_TITLE 18978
|
||||
#define IDC_RSCATTRIBUTEUNITPOS_DOWN 19176
|
||||
#define IDC_RSCATTRIBUTEUNITPOS_CROUCH 19177
|
||||
#define IDC_RSCATTRIBUTEUNITPOS_UP 19178
|
||||
#define IDC_RSCATTRIBUTEUNITPOS_AUTO 19179
|
||||
#define IDC_RSCATTRIBUTEUNITPOS_RSCATTRIBUTEUNITPOS 20276
|
||||
|
||||
//--- RscAttributeDamage
|
||||
#define IDC_RSCATTRIBUTEDAMAGE_TITLE 16502
|
||||
#define IDC_RSCATTRIBUTEDAMAGE_VALUE 17402
|
||||
#define IDC_RSCATTRIBUTEDAMAGE_RSCATTRIBUTEDAMAGE 17802
|
||||
|
||||
//--- RscAttributeFuel
|
||||
#define IDC_RSCATTRIBUTEFUEL_TITLE 13474
|
||||
#define IDC_RSCATTRIBUTEFUEL_VALUE 14374
|
||||
#define IDC_RSCATTRIBUTEFUEL_RSCATTRIBUTEFUEL 14774
|
||||
|
||||
//--- RscAttributeSide
|
||||
#define IDC_RSCATTRIBUTESIDE_BACKGROUND 31000
|
||||
#define IDC_RSCATTRIBUTESIDE_TITLE 31002
|
||||
#define IDC_RSCATTRIBUTESIDE_BLUFOR 31200
|
||||
#define IDC_RSCATTRIBUTESIDE_OPFOR 31201
|
||||
#define IDC_RSCATTRIBUTESIDE_INDEPENDENT 31202
|
||||
#define IDC_RSCATTRIBUTESIDE_CIVILIAN 31203
|
||||
#define IDC_RSCATTRIBUTESIDE_RSCATTRIBUTESIDE 32300
|
||||
|
||||
//--- RscAttributeOwners
|
||||
/*
|
||||
#define IDC_RSCATTRIBUTEOWNERS_BACKGROUND 31000
|
||||
#define IDC_RSCATTRIBUTEOWNERS_TITLE 31002
|
||||
#define IDC_RSCATTRIBUTEOWNERS_BLUFOR 31200
|
||||
#define IDC_RSCATTRIBUTEOWNERS_OPFOR 31201
|
||||
#define IDC_RSCATTRIBUTEOWNERS_INDEPENDENT 31202
|
||||
#define IDC_RSCATTRIBUTEOWNERS_CIVILIAN 31203
|
||||
#define IDC_RSCATTRIBUTEOWNERS_RSCATTRIBUTEOWNERS 32300
|
||||
*/
|
||||
//--- RscAttributeOwners
|
||||
#define IDC_RSCATTRIBUTEOWNERS_BACKGROUND 17408
|
||||
#define IDC_RSCATTRIBUTEOWNERS_TITLE 17410
|
||||
#define IDC_RSCATTRIBUTEOWNERS_BLUFOR 17608
|
||||
#define IDC_RSCATTRIBUTEOWNERS_OPFOR 17609
|
||||
#define IDC_RSCATTRIBUTEOWNERS_INDEPENDENT 17610
|
||||
#define IDC_RSCATTRIBUTEOWNERS_CIVILIAN 17611
|
||||
#define IDC_RSCATTRIBUTEOWNERS_TABSIDE 18010
|
||||
#define IDC_RSCATTRIBUTEOWNERS_TABGROUP 18011
|
||||
#define IDC_RSCATTRIBUTEOWNERS_TABUNIT 18012
|
||||
#define IDC_RSCATTRIBUTEOWNERS_GROUPLIST 18508
|
||||
#define IDC_RSCATTRIBUTEOWNERS_UNITLIST 18509
|
||||
#define IDC_RSCATTRIBUTEOWNERS_RSCATTRIBUTEOWNERS 18708
|
||||
|
||||
|
||||
|
||||
//--- RscAttributeOwners2
|
||||
#define IDC_RSCATTRIBUTEOWNERS2_BACKGROUND1 18308
|
||||
#define IDC_RSCATTRIBUTEOWNERS2_TITLE2 18309
|
||||
#define IDC_RSCATTRIBUTEOWNERS2_TITLE1 18310
|
||||
#define IDC_RSCATTRIBUTEOWNERS2_BACKGROUND2 18311
|
||||
#define IDC_RSCATTRIBUTEOWNERS2_BLUFOR1 18508
|
||||
#define IDC_RSCATTRIBUTEOWNERS2_OPFOR1 18509
|
||||
#define IDC_RSCATTRIBUTEOWNERS2_INDEPENDENT1 18510
|
||||
#define IDC_RSCATTRIBUTEOWNERS2_CIVILIAN1 18511
|
||||
#define IDC_RSCATTRIBUTEOWNERS2_BLUFOR2 18512
|
||||
#define IDC_RSCATTRIBUTEOWNERS2_OPFOR2 18513
|
||||
#define IDC_RSCATTRIBUTEOWNERS2_INDEPENDENT2 18514
|
||||
#define IDC_RSCATTRIBUTEOWNERS2_CIVILIAN2 18515
|
||||
#define IDC_RSCATTRIBUTEOWNERS2_RSCATTRIBUTEOWNERS2 19608
|
||||
|
||||
//--- RscAttributeTaskState
|
||||
#define IDC_RSCATTRIBUTETASKSTATE_BACKGROUND 41000
|
||||
#define IDC_RSCATTRIBUTETASKSTATE_TITLE 41002
|
||||
#define IDC_RSCATTRIBUTETASKSTATE_ASSIGNED 41200
|
||||
#define IDC_RSCATTRIBUTETASKSTATE_CREATED 41201
|
||||
#define IDC_RSCATTRIBUTETASKSTATE_SUCCEEDED 41202
|
||||
#define IDC_RSCATTRIBUTETASKSTATE_FAILED 41203
|
||||
#define IDC_RSCATTRIBUTETASKSTATE_CANCELED 41204
|
||||
#define IDC_RSCATTRIBUTETASKSTATE_RSCATTRIBUTETASKSTATE 42300
|
||||
|
||||
//--- RscAttributeTaskDescription
|
||||
#define IDC_RSCATTRIBUTETASKDESCRIPTION_TITLEMARKER 38091
|
||||
#define IDC_RSCATTRIBUTETASKDESCRIPTION_TITLEDESCRIPTION 38092
|
||||
#define IDC_RSCATTRIBUTETASKDESCRIPTION_TITLETITLE 38093
|
||||
#define IDC_RSCATTRIBUTETASKDESCRIPTION_TITLETEMPLATE 38094
|
||||
#define IDC_RSCATTRIBUTETASKDESCRIPTION_EDITTITLE 38491
|
||||
#define IDC_RSCATTRIBUTETASKDESCRIPTION_EDITMARKER 38492
|
||||
#define IDC_RSCATTRIBUTETASKDESCRIPTION_EDITDESCRIPTION 38493
|
||||
#define IDC_RSCATTRIBUTETASKDESCRIPTION_EDITTEMPLATE 39191
|
||||
#define IDC_RSCATTRIBUTETASKDESCRIPTION_RSCATTRIBUTETASKDESCRIPTION 39391
|
||||
|
||||
//--- RscAttributeSkiptime
|
||||
#define IDC_RSCATTRIBUTESKIPTIME_TITLE 21138
|
||||
#define IDC_RSCATTRIBUTESKIPTIME_TIME 21139
|
||||
#define IDC_RSCATTRIBUTESKIPTIME_BACKGROUND 21140
|
||||
#define IDC_RSCATTRIBUTESKIPTIME_SKIPTIME 21141
|
||||
#define IDC_RSCATTRIBUTESKIPTIME_VALUE 22038
|
||||
#define IDC_RSCATTRIBUTESKIPTIME_RSCATTRIBUTESKIPTIME 22438
|
||||
|
||||
//--- RscAttributeSound
|
||||
#define IDC_RSCATTRIBUTESOUND_TITLE 15406
|
||||
#define IDC_RSCATTRIBUTESOUND_VALUE 16506
|
||||
#define IDC_RSCATTRIBUTESOUND_RSCATTRIBUTESOUND 16706
|
||||
|
||||
//--- RscAttributeMusic
|
||||
#define IDC_RSCATTRIBUTEMUSIC_TITLE 15293
|
||||
#define IDC_RSCATTRIBUTEMUSIC_VALUE 16393
|
||||
#define IDC_RSCATTRIBUTEMUSIC_RSCATTRIBUTEMUSIC 16593
|
||||
|
||||
//--- RscAttributeMusicVolume
|
||||
#define IDC_RSCATTRIBUTEMUSICVOLUME_TITLE 27656
|
||||
#define IDC_RSCATTRIBUTEMUSICVOLUME_VALUE 28556
|
||||
#define IDC_RSCATTRIBUTEMUSICVOLUME_RSCATTRIBUTEMUSICVOLUME 28956
|
||||
|
||||
//--- RscAttributeGenericRadio
|
||||
#define IDC_RSCATTRIBUTEGENERICRADIO_TITLE 29151
|
||||
#define IDC_RSCATTRIBUTEGENERICRADIO_VALUE 29651
|
||||
#define IDC_RSCATTRIBUTEGENERICRADIO_RSCATTRIBUTEGENERICRADIO 30451
|
||||
|
||||
//--- RscAttributeDiaryRecord
|
||||
#define IDC_RSCATTRIBUTEDIARYRECORD_IMAGETITLE 27171
|
||||
#define IDC_RSCATTRIBUTEDIARYRECORD_DESCRIPTIONTITLE 27172
|
||||
#define IDC_RSCATTRIBUTEDIARYRECORD_TITLETITLE 27173
|
||||
#define IDC_RSCATTRIBUTEDIARYRECORD_IMAGETREE 27174
|
||||
#define IDC_RSCATTRIBUTEDIARYRECORD_TEMPLATETITLE 27175
|
||||
#define IDC_RSCATTRIBUTEDIARYRECORD_IMAGEPREVIEW 27371
|
||||
#define IDC_RSCATTRIBUTEDIARYRECORD_TITLEEDIT 27571
|
||||
#define IDC_RSCATTRIBUTEDIARYRECORD_DESCRIPTIONEDIT 27573
|
||||
#define IDC_RSCATTRIBUTEDIARYRECORD_TEMPLATELIST 28271
|
||||
#define IDC_RSCATTRIBUTEDIARYRECORD_RSCATTRIBUTEDIARYRECORD 28471
|
||||
|
||||
//--- RscAttributeOvercast
|
||||
#define IDC_RSCATTRIBUTEOVERCAST_BACKGROUND 21192
|
||||
#define IDC_RSCATTRIBUTEOVERCAST_TITLE 21194
|
||||
#define IDC_RSCATTRIBUTEOVERCAST_VALUE000 21392
|
||||
#define IDC_RSCATTRIBUTEOVERCAST_VALUE025 21393
|
||||
#define IDC_RSCATTRIBUTEOVERCAST_VALUE050 21394
|
||||
#define IDC_RSCATTRIBUTEOVERCAST_VALUE075 21395
|
||||
#define IDC_RSCATTRIBUTEOVERCAST_VALUE100 21396
|
||||
#define IDC_RSCATTRIBUTEOVERCAST_RSCATTRIBUTEOVERCAST 22492
|
||||
|
||||
//--- RscAttributeFog
|
||||
#define IDC_RSCATTRIBUTEFOG_TITLE 11804
|
||||
#define IDC_RSCATTRIBUTEFOG_ALTTITLE 11805
|
||||
#define IDC_RSCATTRIBUTEFOG_VALUE 12704
|
||||
#define IDC_RSCATTRIBUTEFOG_ALTVALUE 12705
|
||||
#define IDC_RSCATTRIBUTEFOG_RSCATTRIBUTEFOG 13104
|
||||
|
||||
//--- RscAttributePostprocess
|
||||
#define IDC_RSCATTRIBUTEPOSTPROCESS_TITLE 28406
|
||||
#define IDC_RSCATTRIBUTEPOSTPROCESS_VALUE 28906
|
||||
#define IDC_RSCATTRIBUTEPOSTPROCESS_RSCATTRIBUTEPOSTPROCESS 29706
|
||||
|
||||
//--- RscAttributeGroupID
|
||||
#define IDC_RSCATTRIBUTEGROUPID_TITLE 17979
|
||||
#define IDC_RSCATTRIBUTEGROUPID_VALUE 18379
|
||||
#define IDC_RSCATTRIBUTEGROUPID_RSCATTRIBUTEGROUPID 19279
|
||||
|
||||
//--- RscAttributeFormation
|
||||
#define IDC_RSCATTRIBUTEFORMATION_BACKGROUND 23316
|
||||
#define IDC_RSCATTRIBUTEFORMATION_TITLE 23318
|
||||
#define IDC_RSCATTRIBUTEFORMATION_COLUMN 23516
|
||||
#define IDC_RSCATTRIBUTEFORMATION_STAG_COLUMN 23517
|
||||
#define IDC_RSCATTRIBUTEFORMATION_WEDGE 23518
|
||||
#define IDC_RSCATTRIBUTEFORMATION_ECH_LEFT 23519
|
||||
#define IDC_RSCATTRIBUTEFORMATION_ECH_RIGHT 23520
|
||||
#define IDC_RSCATTRIBUTEFORMATION_VEE 23521
|
||||
#define IDC_RSCATTRIBUTEFORMATION_LINE 23522
|
||||
#define IDC_RSCATTRIBUTEFORMATION_FILE 23523
|
||||
#define IDC_RSCATTRIBUTEFORMATION_DIAMOND 23524
|
||||
#define IDC_RSCATTRIBUTEFORMATION_DEFAULT 23525
|
||||
#define IDC_RSCATTRIBUTEFORMATION_RSCATTRIBUTEFORMATION 24616
|
||||
|
||||
//--- RscAttributeBehaviour
|
||||
#define IDC_RSCATTRIBUTEBEHAVIOUR_BACKGROUND 23269
|
||||
#define IDC_RSCATTRIBUTEBEHAVIOUR_TITLE 23271
|
||||
#define IDC_RSCATTRIBUTEBEHAVIOUR_STEALTH 23469
|
||||
#define IDC_RSCATTRIBUTEBEHAVIOUR_DEFAULT 23470
|
||||
#define IDC_RSCATTRIBUTEBEHAVIOUR_SAFE 23471
|
||||
#define IDC_RSCATTRIBUTEBEHAVIOUR_AWARE 23474
|
||||
#define IDC_RSCATTRIBUTEBEHAVIOUR_COMBAT 23475
|
||||
#define IDC_RSCATTRIBUTEBEHAVIOUR_RSCATTRIBUTEBEHAVIOUR 24569
|
||||
|
||||
//--- RscAttributeLock
|
||||
#define IDC_RSCATTRIBUTELOCK_BACKGROUND 13425
|
||||
#define IDC_RSCATTRIBUTELOCK_TITLE 13427
|
||||
#define IDC_RSCATTRIBUTELOCK_LOCKED 13627
|
||||
#define IDC_RSCATTRIBUTELOCK_UNLOCKED 13630
|
||||
#define IDC_RSCATTRIBUTELOCK_RSCATTRIBUTELOCK 14725
|
||||
|
||||
//--- RscAttributeMarkerText
|
||||
#define IDC_RSCATTRIBUTEMARKERTEXT_TITLE 25286
|
||||
#define IDC_RSCATTRIBUTEMARKERTEXT_VALUE 25686
|
||||
#define IDC_RSCATTRIBUTEMARKERTEXT_RSCATTRIBUTEMARKERTEXT 26586
|
||||
|
||||
//--- RscAttributeMarkerColor
|
||||
#define IDC_RSCATTRIBUTEMARKERCOLOR_BACKGROUND 27333
|
||||
#define IDC_RSCATTRIBUTEMARKERCOLOR_TITLE 27335
|
||||
#define IDC_RSCATTRIBUTEMARKERCOLOR_COLOR3 27533
|
||||
#define IDC_RSCATTRIBUTEMARKERCOLOR_COLOR4 27534
|
||||
#define IDC_RSCATTRIBUTEMARKERCOLOR_COLOR1 27535
|
||||
#define IDC_RSCATTRIBUTEMARKERCOLOR_COLOR5 27536
|
||||
#define IDC_RSCATTRIBUTEMARKERCOLOR_COLOR6 27537
|
||||
#define IDC_RSCATTRIBUTEMARKERCOLOR_COLOR2 27538
|
||||
#define IDC_RSCATTRIBUTEMARKERCOLOR_COLOR7 27539
|
||||
#define IDC_RSCATTRIBUTEMARKERCOLOR_COLOR8 27540
|
||||
#define IDC_RSCATTRIBUTEMARKERCOLOR_COLOR9 27541
|
||||
#define IDC_RSCATTRIBUTEMARKERCOLOR_COLOR10 27542
|
||||
#define IDC_RSCATTRIBUTEMARKERCOLOR_COLOR11 27543
|
||||
#define IDC_RSCATTRIBUTEMARKERCOLOR_COLOR12 27544
|
||||
#define IDC_RSCATTRIBUTEMARKERCOLOR_COLOR13 27545
|
||||
#define IDC_RSCATTRIBUTEMARKERCOLOR_COLOR14 27546
|
||||
#define IDC_RSCATTRIBUTEMARKERCOLOR_RSCATTRIBUTEMARKERCOLOR 28633
|
||||
|
||||
//--- RscAttributeRespawnVehicle
|
||||
#define IDC_RSCATTRIBUTERESPAWNVEHICLE_BACKGROUND 34763
|
||||
#define IDC_RSCATTRIBUTERESPAWNVEHICLE_TITLE 34765
|
||||
#define IDC_RSCATTRIBUTERESPAWNVEHICLE_START 34963
|
||||
#define IDC_RSCATTRIBUTERESPAWNVEHICLE_WEST 34964
|
||||
#define IDC_RSCATTRIBUTERESPAWNVEHICLE_EAST 34965
|
||||
#define IDC_RSCATTRIBUTERESPAWNVEHICLE_GUER 34966
|
||||
#define IDC_RSCATTRIBUTERESPAWNVEHICLE_CIV 34967
|
||||
#define IDC_RSCATTRIBUTERESPAWNVEHICLE_DISABLED 34968
|
||||
#define IDC_RSCATTRIBUTERESPAWNVEHICLE_RSCATTRIBUTERESPAWNVEHICLE 36063
|
||||
|
||||
//--- RscAttributeSkill
|
||||
#define IDC_RSCATTRIBUTESKILL_TITLE 15284
|
||||
#define IDC_RSCATTRIBUTESKILL_VALUE 16184
|
||||
#define IDC_RSCATTRIBUTESKILL_RSCATTRIBUTESKILL 16584
|
||||
|
||||
//--- RscAttributeRespawnPosition
|
||||
#define IDC_RSCATTRIBUTERESPAWNPOSITION_BACKGROUND 38509
|
||||
#define IDC_RSCATTRIBUTERESPAWNPOSITION_TITLE 38511
|
||||
#define IDC_RSCATTRIBUTERESPAWNPOSITION_WEST 38710
|
||||
#define IDC_RSCATTRIBUTERESPAWNPOSITION_EAST 38711
|
||||
#define IDC_RSCATTRIBUTERESPAWNPOSITION_GUER 38712
|
||||
#define IDC_RSCATTRIBUTERESPAWNPOSITION_CIV 38713
|
||||
#define IDC_RSCATTRIBUTERESPAWNPOSITION_DISABLED 38714
|
||||
#define IDC_RSCATTRIBUTERESPAWNPOSITION_RSCATTRIBUTERESPAWNPOSITION 39809
|
||||
|
||||
//--- RscAttributeText
|
||||
#define IDC_RSCATTRIBUTETEXT_TITLE 13920
|
||||
#define IDC_RSCATTRIBUTETEXT_RSCATTRIBUTETEXT 15120
|
||||
|
||||
//--- RscAttributeAreaSize
|
||||
#define IDC_RSCATTRIBUTEAREASIZE_TITLE 20438
|
||||
#define IDC_RSCATTRIBUTEAREASIZE_VALUE 20439
|
||||
#define IDC_RSCATTRIBUTEAREASIZE_RSCATTRIBUTEAREASIZE 21738
|
||||
|
||||
//--- RscAttributeRespawnTickets
|
||||
#define IDC_RSCATTRIBUTERESPAWNTICKETS_BACKGROUND 35332
|
||||
#define IDC_RSCATTRIBUTERESPAWNTICKETS_WESTTEXT 35333
|
||||
#define IDC_RSCATTRIBUTERESPAWNTICKETS_EASTTEXT 35334
|
||||
#define IDC_RSCATTRIBUTERESPAWNTICKETS_GUERTEXT 35335
|
||||
#define IDC_RSCATTRIBUTERESPAWNTICKETS_CIVTEXT 35336
|
||||
#define IDC_RSCATTRIBUTERESPAWNTICKETS_TITLE 35337
|
||||
#define IDC_RSCATTRIBUTERESPAWNTICKETS_VALUE 35338
|
||||
#define IDC_RSCATTRIBUTERESPAWNTICKETS_WEST 35532
|
||||
#define IDC_RSCATTRIBUTERESPAWNTICKETS_EAST 35533
|
||||
#define IDC_RSCATTRIBUTERESPAWNTICKETS_GUER 35534
|
||||
#define IDC_RSCATTRIBUTERESPAWNTICKETS_CIV 35535
|
||||
#define IDC_RSCATTRIBUTERESPAWNTICKETS_WESTVALUE 36232
|
||||
#define IDC_RSCATTRIBUTERESPAWNTICKETS_EASTVALUE 36233
|
||||
#define IDC_RSCATTRIBUTERESPAWNTICKETS_GUERVALUE 36234
|
||||
#define IDC_RSCATTRIBUTERESPAWNTICKETS_CIVVALUE 36235
|
||||
#define IDC_RSCATTRIBUTERESPAWNTICKETS_RSCATTRIBUTERESPAWNTICKETS 36632
|
||||
|
||||
//--- RscAttributeCountdown
|
||||
#define IDC_RSCATTRIBUTECOUNTDOWN_TITLE 23629
|
||||
#define IDC_RSCATTRIBUTECOUNTDOWN_TIME 23630
|
||||
#define IDC_RSCATTRIBUTECOUNTDOWN_BACKGROUND 23631
|
||||
#define IDC_RSCATTRIBUTECOUNTDOWN_VALUE 24529
|
||||
#define IDC_RSCATTRIBUTECOUNTDOWN_RSCATTRIBUTECOUNTDOWN 24929
|
||||
|
||||
//--- RscAttributeEndMission
|
||||
#define IDC_RSCATTRIBUTEENDMISSION_TITLE 25122
|
||||
#define IDC_RSCATTRIBUTEENDMISSION_TITLEDEBRIEFING 25123
|
||||
#define IDC_RSCATTRIBUTEENDMISSION_DEBRIEFING 25522
|
||||
#define IDC_RSCATTRIBUTEENDMISSION_VALUE 25622
|
||||
#define IDC_RSCATTRIBUTEENDMISSION_RSCATTRIBUTEENDMISSION 26422
|
||||
|
||||
//--- RscAttributeName
|
||||
#define IDC_RSCATTRIBUTENAME_TITLE 13317
|
||||
#define IDC_RSCATTRIBUTENAME_VALUE 13717
|
||||
#define IDC_RSCATTRIBUTENAME_RSCATTRIBUTENAME 14617
|
||||
|
||||
//--- RscAttributeInventory
|
||||
#define IDC_RSCATTRIBUTEINVENTORY_LOAD 23868
|
||||
#define IDC_RSCATTRIBUTEINVENTORY_LISTBACKGROUND 23869
|
||||
#define IDC_RSCATTRIBUTEINVENTORY_FILTERBACKGROUND 23870
|
||||
#define IDC_RSCATTRIBUTEINVENTORY_FILTER0 24068
|
||||
#define IDC_RSCATTRIBUTEINVENTORY_FILTER1 24069
|
||||
#define IDC_RSCATTRIBUTEINVENTORY_FILTER2 24070
|
||||
#define IDC_RSCATTRIBUTEINVENTORY_FILTER3 24071
|
||||
#define IDC_RSCATTRIBUTEINVENTORY_FILTER4 24072
|
||||
#define IDC_RSCATTRIBUTEINVENTORY_FILTER5 24073
|
||||
#define IDC_RSCATTRIBUTEINVENTORY_FILTER6 24074
|
||||
#define IDC_RSCATTRIBUTEINVENTORY_FILTER7 24075
|
||||
#define IDC_RSCATTRIBUTEINVENTORY_FILTER8 24076
|
||||
#define IDC_RSCATTRIBUTEINVENTORY_FILTER9 24077
|
||||
#define IDC_RSCATTRIBUTEINVENTORY_FILTER10 24078
|
||||
#define IDC_RSCATTRIBUTEINVENTORY_FILTER11 24079
|
||||
#define IDC_RSCATTRIBUTEINVENTORY_FILTER12 24080
|
||||
#define IDC_RSCATTRIBUTEINVENTORY_LIST 24368
|
||||
#define IDC_RSCATTRIBUTEINVENTORY_ARROWLEFT 24468
|
||||
#define IDC_RSCATTRIBUTEINVENTORY_ARROWRIGHT 24469
|
||||
#define IDC_RSCATTRIBUTEINVENTORY_RSCATTRIBUTEINVENTORY 25168
|
||||
|
||||
//--- RscAttributeRespawnInventory
|
||||
#define IDC_RSCATTRIBUTERESPAWNINVENTORY_LISTBACKGROUND 41829
|
||||
#define IDC_RSCATTRIBUTERESPAWNINVENTORY_FILTERBACKGROUND 41830
|
||||
#define IDC_RSCATTRIBUTERESPAWNINVENTORY_FILTER0 42028
|
||||
#define IDC_RSCATTRIBUTERESPAWNINVENTORY_FILTER1 42029
|
||||
#define IDC_RSCATTRIBUTERESPAWNINVENTORY_FILTER2 42030
|
||||
#define IDC_RSCATTRIBUTERESPAWNINVENTORY_FILTER3 42031
|
||||
#define IDC_RSCATTRIBUTERESPAWNINVENTORY_TREEWEST 42328
|
||||
#define IDC_RSCATTRIBUTERESPAWNINVENTORY_TREEEAST 42329
|
||||
#define IDC_RSCATTRIBUTERESPAWNINVENTORY_TREEGUER 42330
|
||||
#define IDC_RSCATTRIBUTERESPAWNINVENTORY_TREECIV 42331
|
||||
#define IDC_RSCATTRIBUTERESPAWNINVENTORY_RSCATTRIBUTERESPAWNINVENTORY 43128
|
||||
|
||||
//--- RscAttributeCAS
|
||||
#define IDC_RSCATTRIBUTECAS_TITLE 10890
|
||||
#define IDC_RSCATTRIBUTECAS_VALUE 11390
|
||||
#define IDC_RSCATTRIBUTECAS_RSCATTRIBUTECAS 12190
|
||||
|
||||
//--- RscAttributeExec
|
||||
#define IDC_RSCATTRIBUTEEXEC_TITLE 13366
|
||||
#define IDC_RSCATTRIBUTEEXEC_VALUE 13766
|
||||
#define IDC_RSCATTRIBUTEEXEC_VALUETEMPLATE 14466
|
||||
#define IDC_RSCATTRIBUTEEXEC_RSCATTRIBUTEEXEC 14666
|
||||
|
||||
//--- RSCATTRIBUTEMISSIONNAME
|
||||
#define IDC_RSCATTRIBUTEMISSIONNAME_TITLE 20175
|
||||
#define IDC_RSCATTRIBUTEMISSIONNAME_PREVIEWTITLE 20176
|
||||
#define IDC_RSCATTRIBUTEMISSIONNAME_PREVIEW 20275
|
||||
#define IDC_RSCATTRIBUTEMISSIONNAME_VALUE 20575
|
||||
#define IDC_RSCATTRIBUTEMISSIONNAME_RSCATTRIBUTEMISSIONNAME 21475
|
||||
|
||||
//--- RscAttributeSpeedMode
|
||||
#define IDC_RSCATTRIBUTESPEEDMODE_BACKGROUND 22287
|
||||
#define IDC_RSCATTRIBUTESPEEDMODE_TITLE 22289
|
||||
#define IDC_RSCATTRIBUTESPEEDMODE_DEFAULT 22488
|
||||
#define IDC_RSCATTRIBUTESPEEDMODE_LIMITED 22489
|
||||
#define IDC_RSCATTRIBUTESPEEDMODE_NORMAL 22492
|
||||
#define IDC_RSCATTRIBUTESPEEDMODE_FULL 22493
|
||||
#define IDC_RSCATTRIBUTESPEEDMODE_RSCATTRIBUTESPEEDMODE 23587
|
||||
|
||||
//--- RscAttributeTaskDestination
|
||||
#define IDC_RSCATTRIBUTETASKDESTINATION_BACKGROUND 38009
|
||||
#define IDC_RSCATTRIBUTETASKDESTINATION_VALUE 38010
|
||||
#define IDC_RSCATTRIBUTETASKDESTINATION_TITLE 38011
|
||||
#define IDC_RSCATTRIBUTETASKDESTINATION_RSCATTRIBUTETASKDESTINATION 39309
|
||||
|
||||
//--- RscAttributeWaypointType
|
||||
#define IDC_RSCATTRIBUTEWAYPOINTTYPE_BACKGROUND 30511
|
||||
#define IDC_RSCATTRIBUTEWAYPOINTTYPE_TITLE 30513
|
||||
#define IDC_RSCATTRIBUTEWAYPOINTTYPE_VALUE 31011
|
||||
#define IDC_RSCATTRIBUTEWAYPOINTTYPE_RSCATTRIBUTEWAYPOINTTYPE 31811
|
||||
|
||||
//--- RscAttributeWaypointTimeout
|
||||
#define IDC_RSCATTRIBUTEWAYPOINTTIMEOUT_TITLE 38714
|
||||
#define IDC_RSCATTRIBUTEWAYPOINTTIMEOUT_BUTTONTIME00 39314
|
||||
#define IDC_RSCATTRIBUTEWAYPOINTTIMEOUT_BUTTONTIME05 39316
|
||||
#define IDC_RSCATTRIBUTEWAYPOINTTIMEOUT_BUTTONTIME10 39317
|
||||
#define IDC_RSCATTRIBUTEWAYPOINTTIMEOUT_BUTTONTIME15 39318
|
||||
#define IDC_RSCATTRIBUTEWAYPOINTTIMEOUT_BUTTONTIME20 39319
|
||||
#define IDC_RSCATTRIBUTEWAYPOINTTIMEOUT_BUTTONTIME25 39320
|
||||
#define IDC_RSCATTRIBUTEWAYPOINTTIMEOUT_BUTTONTIME30 39321
|
||||
#define IDC_RSCATTRIBUTEWAYPOINTTIMEOUT_RSCATTRIBUTEWAYPOINTTIMEOUT 40014
|
||||
|
||||
//--- RscAttributeTimeMultiplier
|
||||
#define IDC_RSCATTRIBUTETIMEMULTIPLIER_TITLE 35379
|
||||
#define IDC_RSCATTRIBUTETIMEMULTIPLIER_MULTIPLIER 35380
|
||||
#define IDC_RSCATTRIBUTETIMEMULTIPLIER_BACKGROUND 35381
|
||||
#define IDC_RSCATTRIBUTETIMEMULTIPLIER_EXAMPLE 35382
|
||||
#define IDC_RSCATTRIBUTETIMEMULTIPLIER_VALUE 36279
|
||||
#define IDC_RSCATTRIBUTETIMEMULTIPLIER_RSCATTRIBUTETIMEMULTIPLIER 36679
|
||||
|
||||
//--- RscAttributeHintTopics
|
||||
#define IDC_RSCATTRIBUTEHINTTOPICS_TITLE 25225
|
||||
#define IDC_RSCATTRIBUTEHINTTOPICS_VALUE 25725
|
||||
#define IDC_RSCATTRIBUTEHINTTOPICS_RSCATTRIBUTEHINTTOPICS 26525
|
||||
|
||||
//--- RscAttributeBootcampStage
|
||||
#define IDC_RSCATTRIBUTEBOOTCAMPSTAGE_BACKGROUND 31954
|
||||
#define IDC_RSCATTRIBUTEBOOTCAMPSTAGE_TITLE 31956
|
||||
#define IDC_RSCATTRIBUTEBOOTCAMPSTAGE_INFANTRY 32154
|
||||
#define IDC_RSCATTRIBUTEBOOTCAMPSTAGE_MOTORIZEDVEHICLES 32155
|
||||
#define IDC_RSCATTRIBUTEBOOTCAMPSTAGE_RSCATTRIBUTEBOOTCAMPSTAGE 33254
|
||||
|
||||
//--- RscAttributeHintCustom
|
||||
#define IDC_RSCATTRIBUTEHINTCUSTOM_TITLETITLE 25434
|
||||
#define IDC_RSCATTRIBUTEHINTCUSTOM_EDITTITLE 25832
|
||||
#define IDC_RSCATTRIBUTEHINTCUSTOM_RSCATTRIBUTEHINTCUSTOM 26732
|
||||
|
||||
//--- RscAttributePunishmentAnimation
|
||||
#define IDC_RSCATTRIBUTEPUNISHMENTANIMATION_BACKGROUND 50118
|
||||
#define IDC_RSCATTRIBUTEPUNISHMENTANIMATION_TITLE 50120
|
||||
#define IDC_RSCATTRIBUTEPUNISHMENTANIMATION_PUSHUPS 50318
|
||||
#define IDC_RSCATTRIBUTEPUNISHMENTANIMATION_LEGPUSHUPS 50319
|
||||
#define IDC_RSCATTRIBUTEPUNISHMENTANIMATION_RSCATTRIBUTEPUNISHMENTANIMATION 51418
|
||||
|
||||
//--- RscAttributeTargetPopup
|
||||
#define IDC_RSCATTRIBUTETARGETPOPUP_BACKGROUND 27787
|
||||
#define IDC_RSCATTRIBUTETARGETPOPUP_VALUE 27788
|
||||
#define IDC_RSCATTRIBUTETARGETPOPUP_TITLE 27789
|
||||
#define IDC_RSCATTRIBUTETARGETPOPUP_RSCATTRIBUTETARGETPOPUP 29087
|
||||
|
||||
//--- RscAttributeTargetPopupDelay
|
||||
#define IDC_RSCATTRIBUTETARGETPOPUPDELAY_TITLE 40264
|
||||
#define IDC_RSCATTRIBUTETARGETPOPUPDELAY_VALUE 41164
|
||||
#define IDC_RSCATTRIBUTETARGETPOPUPDELAY_RSCATTRIBUTETARGETPOPUPDELAY 41564
|
||||
|
||||
//--- RscAttributeTargetData
|
||||
#define IDC_RSCATTRIBUTETARGETDATA_VALUE 25001
|
||||
#define IDC_RSCATTRIBUTETARGETDATA_RSCATTRIBUTETARGETDATA 25801
|
||||
|
||||
//--- RscAttributeTargetDataStore
|
||||
#define IDC_RSCATTRIBUTETARGETDATASTORE_BACKGROUND 37135
|
||||
#define IDC_RSCATTRIBUTETARGETDATASTORE_VALUE 37136
|
||||
#define IDC_RSCATTRIBUTETARGETDATASTORE_TITLE 37137
|
||||
#define IDC_RSCATTRIBUTETARGETDATASTORE_RSCATTRIBUTETARGETDATASTORE 38435
|
||||
|
||||
//--- RscAttributeTargetTexture
|
||||
#define IDC_RSCATTRIBUTETARGETTEXTURE_BACKGROUND 32964
|
||||
#define IDC_RSCATTRIBUTETARGETTEXTURE_TITLE 32966
|
||||
#define IDC_RSCATTRIBUTETARGETTEXTURE_PREVIEW 33167
|
||||
#define IDC_RSCATTRIBUTETARGETTEXTURE_TEXTURELIST 33464
|
||||
#define IDC_RSCATTRIBUTETARGETTEXTURE_RSCATTRIBUTETARGETTEXTURE 34264
|
||||
#define IDC_RSCATTRIBUTETARGETTEXTURE_OVERLAP 34265
|
||||
|
||||
//--- RscAttributeTargetState
|
||||
#define IDC_RSCATTRIBUTETARGETSTATE_BACKGROUND 27373
|
||||
#define IDC_RSCATTRIBUTETARGETSTATE_VALUE 27374
|
||||
#define IDC_RSCATTRIBUTETARGETSTATE_TITLE 27375
|
||||
#define IDC_RSCATTRIBUTETARGETSTATE_RSCATTRIBUTETARGETSTATE 28673
|
||||
|
||||
//--- RscDisplayTargetBoard
|
||||
#define IDC_RSCDISPLAYTARGETBOARD_TABLE 22928
|
||||
#define IDC_RSCDISPLAYTARGETBOARD_BACKGROUNDTITLE 23628
|
||||
#define IDC_RSCDISPLAYTARGETBOARD_BACKGROUND 23629
|
||||
#define IDC_RSCDISPLAYTARGETBOARD_BUTTONOK 24028
|
||||
|
||||
//--- RscDisplayFiringRangeBoard
|
||||
#define IDC_RSCDISPLAYFIRINGRANGEBOARD_TABLE 34191
|
||||
#define IDC_RSCDISPLAYFIRINGRANGEBOARD_BACKGROUNDTITLE 34891
|
||||
#define IDC_RSCDISPLAYFIRINGRANGEBOARD_BUTTONOK 35291
|
||||
|
||||
//--- RscDisplayTimeTrialBoard
|
||||
#define IDC_RSCDISPLAYTIMETRIALBOARD_TABLE 29399
|
||||
#define IDC_RSCDISPLAYTIMETRIALBOARD_BACKGROUNDTITLE 30099
|
||||
#define IDC_RSCDISPLAYTIMETRIALBOARD_BUTTONOK 30499
|
||||
|
||||
//--- RscRecruitStatus
|
||||
#define IDC_RSCRECRUITSTATUS_PROGRESSBAR 13986
|
||||
#define IDC_RSCRECRUITSTATUS_TITLE 14086
|
||||
#define IDC_RSCRECRUITSTATUS_DESCRIPTION 14087
|
||||
#define IDC_RSCRECRUITSTATUS_LIST 14486
|
||||
#define IDC_RSCRECRUITSTATUS_BACKGROUND 15186
|
||||
|
||||
#define IDC_RSCMISSIONTEXT 20145
|
||||
#define IDC_RSCMISSIONTEXT_TEXT 20146
|
||||
|
||||
//--- RscVRMeta
|
||||
#define IDC_RSCVRMETA_BACKGROUNDFATIGUE 4478
|
||||
#define IDC_RSCVRMETA_BACKGROUNDSPEED 4479
|
||||
#define IDC_RSCVRMETA_BACKGROUNDLOAD 4480
|
||||
#define IDC_RSCVRMETA_BACKGROUNDTGT 4481
|
||||
#define IDC_RSCVRMETA_PROGRESSLOAD 4482
|
||||
#define IDC_RSCVRMETA_PROGRESSFATIGUE 4483
|
||||
#define IDC_RSCVRMETA_PROGRESSSPEED 4484
|
||||
#define IDC_RSCVRMETA_TEXTLOAD 4485
|
||||
#define IDC_RSCVRMETA_TEXTFATIGUE 4486
|
||||
#define IDC_RSCVRMETA_TEXTSPEED 4487
|
||||
#define IDC_RSCVRMETA_VALUELOAD 4488
|
||||
#define IDC_RSCVRMETA_VALUEFATIGUE 4489
|
||||
#define IDC_RSCVRMETA_VALUESPEED 4490
|
||||
#define IDC_RSCVRMETA_TEXTTGT 4491
|
||||
#define IDC_RSCVRMETA_PROGRESSTGT 4492
|
||||
#define IDC_RSCVRMETA_VALUETGT 4494
|
||||
#define IDC_RSCVRMETA_VALUETGTDMG 4495
|
||||
#define IDC_RSCVRMETA_VRMETA 5778
|
140
include/a3/ui_f_curator/ui/displays/RscDisplayAttributes.sqf
Normal file
140
include/a3/ui_f_curator/ui/displays/RscDisplayAttributes.sqf
Normal file
@ -0,0 +1,140 @@
|
||||
#include "\a3\ui_f_curator\ui\defineResinclDesign.inc"
|
||||
|
||||
_mode = _this select 0;
|
||||
_params = _this select 1;
|
||||
_class = _this select 2;
|
||||
|
||||
switch _mode do {
|
||||
case "onLoad": {
|
||||
|
||||
_display = _params select 0;
|
||||
_displayConfig = configfile >> _class;
|
||||
|
||||
_ctrlBackground = _display displayctrl IDC_RSCDISPLAYATTRIBUTES_BACKGROUND;
|
||||
_ctrlTitle = _display displayctrl IDC_RSCDISPLAYATTRIBUTES_TITLE;
|
||||
_ctrlContent = _display displayctrl IDC_RSCDISPLAYATTRIBUTES_CONTENT;
|
||||
_ctrlButtonOK = _display displayctrl IDC_OK;
|
||||
_ctrlButtonCancel = _display displayctrl IDC_CANCEL;
|
||||
_ctrlButtonCustom = _display displayctrl IDC_RSCDISPLAYATTRIBUTES_BUTTONCUSTOM;
|
||||
|
||||
_ctrlBackgroundPos = ctrlposition _ctrlBackground;
|
||||
_ctrlTitlePos = ctrlposition _ctrlTitle;
|
||||
_ctrlContentPos = ctrlposition _ctrlContent;
|
||||
_ctrlButtonOKPos = ctrlposition _ctrlButtonOK;
|
||||
_ctrlButtonCancelPos = ctrlposition _ctrlButtonCancel;
|
||||
_ctrlButtonCustomPos = ctrlposition _ctrlButtonCustom;
|
||||
|
||||
_ctrlTitleOffsetY = (_ctrlBackgroundPos select 1) - (_ctrlTitlePos select 1) - (_ctrlTitlePos select 3);
|
||||
_ctrlContentOffsetY = (_ctrlContentPos select 1) - (_ctrlBackgroundPos select 1);
|
||||
|
||||
//--- Show fake map in the background
|
||||
_ctrlMap = _display displayctrl IDC_RSCDISPLAYCURATOR_MAINMAP;
|
||||
_ctrlMap ctrlenable false;
|
||||
if (visiblemap) then {
|
||||
_ctrlCuratorMap = (finddisplay IDD_RSCDISPLAYCURATOR) displayctrl IDC_RSCDISPLAYCURATOR_MAINMAP;
|
||||
_ctrlMap ctrlmapanimadd [0,ctrlmapscale _ctrlCuratorMap,_ctrlCuratorMap ctrlmapscreentoworld [0.5,0.5]];
|
||||
ctrlmapanimcommit _ctrlMap;
|
||||
} else {
|
||||
_ctrlMap ctrlshow false;
|
||||
};
|
||||
|
||||
//--- Load default attributes
|
||||
_attributes = if (getnumber (_displayConfig >> "filterAttributes") > 0) then {missionnamespace getvariable ["BIS_fnc_initCuratorAttributes_attributes",[]]} else {["%ALL"]};
|
||||
_allAttributes = "%ALL" in _attributes;
|
||||
|
||||
//--- Initialize attributes
|
||||
_posY = _ctrlContentOffsetY;
|
||||
_contentControls = _displayConfig >> "Controls" >> "Content" >> "Controls";
|
||||
_enableDebugConsole = ["DebugConsole",getnumber (missionconfigfile >> "enableDebugConsole")] call bis_fnc_getParamValue;
|
||||
_enableAdmin = (_enableDebugConsole == 1 && (isserver || serverCommandAvailable "#shutdown")) || _enableDebugConsole == 2;
|
||||
for "_i" from 0 to (count _contentControls - 1) do {
|
||||
_cfgControl = _contentControls select _i;
|
||||
if (isclass _cfgControl) then {
|
||||
_idc = getnumber (_cfgControl >> "idc");
|
||||
_control = _display displayctrl _idc;
|
||||
|
||||
//--- Admin specific attribute
|
||||
_show = if (getnumber (_cfgControl >> "adminOnly") > 0) then {_enableAdmin} else {true};
|
||||
|
||||
if ((_allAttributes || {_x == configname _cfgControl} count _attributes > 0) && _show) then {
|
||||
_controlPos = ctrlposition _control;
|
||||
_controlPos set [0,0];
|
||||
_controlPos set [1,_posY];
|
||||
_control ctrlsetposition _controlPos;
|
||||
_control ctrlcommit 0;
|
||||
_posY = _posY + (_controlPos select 3) + 0.005;
|
||||
ctrlsetfocus _control;
|
||||
} else {
|
||||
_control ctrlsetposition [0,0,0,0];
|
||||
_control ctrlcommit 0;
|
||||
_control ctrlshow false;
|
||||
};
|
||||
};
|
||||
};
|
||||
_posH = ((_posY + _ctrlContentOffsetY) min 0.9) * 0.5;
|
||||
|
||||
_target = missionnamespace getvariable ["BIS_fnc_initCuratorAttributes_target",objnull];
|
||||
_name = switch (typename _target) do {
|
||||
case (typename objnull): {gettext (configfile >> "cfgvehicles" >> typeof _target >> "displayname")};
|
||||
case (typename grpnull): {groupid _target};
|
||||
case (typename []): {format ["%1: %3 #%2",groupid (_target select 0),_target select 1,localize "str_a3_cfgmarkers_waypoint_0"]};
|
||||
case (typename ""): {markertext _target};
|
||||
};
|
||||
_ctrlTitle ctrlsettext format [ctrltext _ctrlTitle,toupper _name];
|
||||
|
||||
_ctrlTitlePos set [1,(0.5 - _posH) - (_ctrlTitlePos select 3) - _ctrlTitleOffsetY];
|
||||
_ctrlTitle ctrlsetposition _ctrlTitlePos;
|
||||
_ctrlTitle ctrlcommit 0;
|
||||
|
||||
_ctrlContentPos set [1,0.5 - _posH];
|
||||
_ctrlContentPos set [3,_posH * 2];
|
||||
_ctrlContent ctrlsetposition _ctrlContentPos;
|
||||
_ctrlContent ctrlcommit 0;
|
||||
|
||||
_ctrlBackgroundPos set [1,0.5 - _posH];
|
||||
_ctrlBackgroundPos set [3,_posH * 2];
|
||||
_ctrlBackground ctrlsetposition _ctrlBackgroundPos;
|
||||
_ctrlBackground ctrlcommit 0;
|
||||
|
||||
_ctrlButtonOKPos set [1,0.5 + _posH + _ctrlTitleOffsetY];
|
||||
_ctrlButtonOK ctrlsetposition _ctrlButtonOKPos;
|
||||
_ctrlButtonOK ctrlcommit 0;
|
||||
ctrlsetfocus _ctrlButtonOK;
|
||||
|
||||
_ctrlButtonCancelPos set [1,0.5 + _posH + _ctrlTitleOffsetY];
|
||||
_ctrlButtonCancel ctrlsetposition _ctrlButtonCancelPos;
|
||||
_ctrlButtonCancel ctrlcommit 0;
|
||||
|
||||
_ctrlButtonCustomPos set [1,0.5 + _posH + _ctrlTitleOffsetY];
|
||||
_ctrlButtonCustom ctrlsetposition _ctrlButtonCustomPos;
|
||||
_ctrlButtonCustom ctrlcommit 0;
|
||||
|
||||
//--- Close the display when entity is altered
|
||||
[_display] spawn {
|
||||
disableserialization;
|
||||
_display = _this select 0;
|
||||
_target = missionnamespace getvariable ["BIS_fnc_initCuratorAttributes_target",objnull];
|
||||
switch (typename _target) do {
|
||||
case (typename objnull): {
|
||||
_isAlive = alive _target;
|
||||
waituntil {isnull _display || (_isAlive && !alive _target)};
|
||||
};
|
||||
case (typename grpnull): {
|
||||
waituntil {isnull _display || isnull _target};
|
||||
};
|
||||
case (typename []): {
|
||||
_grp = _target select 0;
|
||||
_wpCount = count waypoints _grp;
|
||||
waituntil {isnull _display || (count waypoints _grp != _wpCount)};
|
||||
};
|
||||
case (typename ""): {
|
||||
waituntil {isnull _display || markertype _target == ""};
|
||||
};
|
||||
};
|
||||
_display closedisplay 2;
|
||||
};
|
||||
};
|
||||
case "onUnload": {
|
||||
|
||||
};
|
||||
};
|
Loading…
Reference in New Issue
Block a user