Only attach some triggers

This commit is contained in:
PabstMirror 2015-07-15 23:52:47 -05:00
parent 7cc2628c53
commit 1f4488253d
2 changed files with 20 additions and 5 deletions

View File

@ -1,5 +1,5 @@
class ACE_Triggers {
/* onPlace parameters:
/* onPlace parameters:
0: OBJECT - unit placing
1: OBJECT - Placed explosive
2: STRING - Magazine classname
@ -7,46 +7,54 @@ class ACE_Triggers {
Last Index: ACE_Triggers config of trigger type.
onSetup parameters:
0: STRING - Magazine Classname
*/
*/
class Command {
isAttachable = 1;
displayName = CSTRING(clacker_displayName);
picture = PATHTOF(Data\UI\Clacker.paa);
onPlace = QUOTE(_this call FUNC(AddClacker);false);
requires[] = {"ACE_Clacker"};
};
class MK16_Transmitter:Command {
isAttachable = 1;
displayName = CSTRING(MK16_displayName);
picture = PATHTOF(Data\UI\MK16_Reciever_ca.paa);
requires[] = {"ACE_M26_Clacker"};
};
class DeadManSwitch:Command {
isAttachable = 1;
displayName = CSTRING(DeadManSwitch_displayName);
picture = PATHTOF(Data\UI\DeadmanSwitch.paa);
requires[] = {"ACE_DeadManSwitch"};
};
class Cellphone:Command {
isAttachable = 1;
displayName = CSTRING(cellphone_displayName);
picture = PATHTOF(Data\UI\Cellphone_UI.paa);
onPlace = QUOTE(_this call FUNC(addCellphoneIED);false);
requires[] = {"ACE_Cellphone"};
};
class PressurePlate {
isAttachable = 0;
displayName = CSTRING(PressurePlate);
picture = PATHTOF(Data\UI\PressurePlate.paa);
onPlace = "_dist=GetNumber(ConfigFile >> 'CfgMagazines' >> (_this select 2) >> 'ACE_Triggers' >> 'PressurePlate' >> 'digDistance');_ex=_this select 1;_ex setPosATL ((getPosATL _ex) vectorDiff ((VectorUp _ex) vectorCrossProduct [0,0,_dist]));false";
};
class IRSensor {
isAttachable = 0;
displayName = CSTRING(IRSensor);
picture = PATHTOF(Data\UI\PressurePlate.paa);
onPlace = "false";
};
class Timer {
isAttachable = 1;
displayName = CSTRING(timerName);
picture = PATHTOF(data\UI\Timer.paa);
onPlace = QUOTE([ARR_2(_this select 1,(_this select 3) select 0)] call FUNC(startTimer);false);
onSetup = QUOTE(_this call FUNC(openTimerSetUI);true);
};
class Tripwire {
isAttachable = 0;
displayName = CSTRING(TripWire);
picture = PATHTOF(Data\UI\Tripwire.paa);
onPlace = "false";

View File

@ -37,6 +37,13 @@ _unit setVariable [QGVAR(cancelActionEH), [_unit, "zoomtemp", {true}, {GVAR(plac
(QGVAR(virtualAmmo) call BIS_fnc_rscLayer) cutRsc [QGVAR(virtualAmmo), "PLAIN", 0, false];
((uiNamespace getVariable [QGVAR(virtualAmmoDisplay), displayNull]) displayCtrl 800851) ctrlSetModel _p3dModel;
_isAttachable = false;
_supportedTriggers = getArray (configFile >> "CfgMagazines" >> _magClassname >> "ACE_Triggers" >> "SupportedTriggers");
{
if ((getNumber (configFile >> "ACE_Triggers" >> _x >> "isAttachable")) == 1) exitWith {_isAttachable = true;};
} forEach _supportedTriggers;
GVAR(pfeh_running) = true;
GVAR(placeAction) = PLACE_WAITING;
GVAR(TweakedAngle) = 0;
@ -46,7 +53,7 @@ GVAR(TweakedAngle) = 0;
BEGIN_COUNTER(pfeh);
PARAMS_2(_args,_pfID);
EXPLODE_3_PVT(_args,_unit,_magClassname,_setupObjectClass);
EXPLODE_4_PVT(_args,_unit,_magClassname,_setupObjectClass,_isAttachable);
_lookDirVector = (positionCameraToWorld [0,0,0]) vectorFromTo (positionCameraToWorld [0,0,1]);
_cameraAngle = (_lookDirVector select 0) atan2 (_lookDirVector select 1);
@ -73,7 +80,7 @@ GVAR(TweakedAngle) = 0;
_attachVehicle = objNull;
if (_badPosition && {!isNull cursorTarget} && {(cursorTarget isKindOf "Car")}) then {
if (_isAttachable && _badPosition && {!isNull cursorTarget} && {(cursorTarget isKindOf "Car")}) then {
_attachVehicle = cursorTarget;
if ([0.05] call _testPositionIsValid) then {
_min = 0.05;
@ -173,4 +180,4 @@ GVAR(TweakedAngle) = 0;
END_COUNTER(pfeh);
}, 0, [_unit, _magClassname, _setupObjectClass]] call CBA_fnc_addPerFrameHandler;
}, 0, [_unit, _magClassname, _setupObjectClass, _isAttachable]] call CBA_fnc_addPerFrameHandler;